<?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>182004</bug_id>
          
          <creation_ts>2018-01-23 12:41:13 -0800</creation_ts>
          <short_desc>[css-multicol] Support percentages in column-gap</short_desc>
          <delta_ts>2018-05-09 10:11:36 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.chromium.org/p/chromium/issues/detail?id=799413</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>182044</dependson>
          <blocked>180290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jfernandez</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1392209</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-23 12:41:13 -0800</bug_when>
    <thetext>Chromium and Edge are the only browser supporting percentages in &quot;column-gap&quot; at this point.
However all browsers support percentage in &quot;grid-column-gap&quot;, which will be renamed to &quot;column-gap&quot; (bug #180290).
So it seems it&apos;d be a nice moment to add support in Multicolumn too.

The Multicolumn spec has not any special text regarding this (https://drafts.csswg.org/css-multicol/#column-gap),
however it&apos;s worth noticing the text in css-align spec (https://drafts.csswg.org/css-align-3/#column-row-gap):
  &quot;Percentages resolve to zero when specified against a content-based size
   (such as the logical width of a float or the auto logical height of a block-level grid container).&quot;

Note that there&apos;s some ongoing discussion with the CSS WG to clarify it:
https://github.com/w3c/csswg-drafts/issues/509#issuecomment-355242101

I believe the text in the spec needs to be changed for &quot;column-gap&quot;,
as the width is always definite during layout, so we have to resolve the percentages.
At least I don&apos;t see how in Blink/WebKit we could detect the cases that try to cover the new text in the spec,
things like the width of a floated element is only indefinite during intrinsic size computation
(when the percentages are treated as 0)
but during layout we&apos;ve a definite width to resolve percentages against it.
IMHO this should work like percentages widths work on regular blocks.
And that&apos;s what has been implemented in both Chromium and Edge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392518</commentid>
    <comment_count>1</comment_count>
      <attachid>332149</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-24 05:23:52 -0800</bug_when>
    <thetext>Created attachment 332149
Patch

Patch is ready but the test http://w3c-test.org/css/css-multicol/multicol-gap-percentage-001.html, but we need to update some paths of WPT tests before being able to import it (see bug #182044).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392520</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-01-24 05:25:08 -0800</bug_when>
    <thetext>Attachment 332149 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:25:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
WARNING: This machine could support 4 simulators, but is only configured for 3.
WARNING: Please see &lt;https://trac.webkit.org/wiki/IncreasingKernelLimits&gt;.
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392525</commentid>
    <comment_count>3</comment_count>
      <attachid>332149</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-01-24 06:18:39 -0800</bug_when>
    <thetext>Comment on attachment 332149
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        No new tests (OOPS!).

Explain why we don&apos;t need new tests.

&gt; Source/WebCore/page/FrameView.cpp:719
&gt; +        LayoutUnit columnGap;

Perhaps we can use a ternary conditional expression and avoid a double assignment. Something like this:

    GapLength columnGapLength = documentOrBodyRenderer-&gt;style().columnGap(); 
    LayoutUnit columnGap = columnGapLength.isNormal() ? documentOrBodyRenderer-&gt;style().fontDescription().computedPixelSize() : valueForLength(columnGapLength.length(), downcast&lt;RenderBox&gt;(documentOrBodyRenderer)-&gt;availableLogicalWidth())

&gt; Source/WebCore/page/animation/CSSPropertyAnimation.cpp:95
&gt; +    if (from.isNormal() || to.isNormal())

I think we can implement this in 1 line.

&gt; Source/WebCore/rendering/style/StyleMultiColData.h:53
&gt; +    GapLength columnGap;

I think we are increasing the RenderStyle size here. Shouldn&apos;t we update the SameSizeAsRenderStyle assert accordingly ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393028</commentid>
    <comment_count>4</comment_count>
      <attachid>332263</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-25 07:19:17 -0800</bug_when>
    <thetext>Created attachment 332263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393029</commentid>
    <comment_count>5</comment_count>
      <attachid>332149</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-25 07:20:47 -0800</bug_when>
    <thetext>Comment on attachment 332149
Patch

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

Thanks for the review.

&gt;&gt; Source/WebCore/ChangeLog:25
&gt;&gt; +        No new tests (OOPS!).
&gt; 
&gt; Explain why we don&apos;t need new tests.

As I explained in a comment, this was not ready for review at that point,
I was still importing some new tests from css-multicol WPT suite.

&gt;&gt; Source/WebCore/page/FrameView.cpp:719
&gt;&gt; +        LayoutUnit columnGap;
&gt; 
&gt; Perhaps we can use a ternary conditional expression and avoid a double assignment. Something like this:
&gt; 
&gt;     GapLength columnGapLength = documentOrBodyRenderer-&gt;style().columnGap(); 
&gt;     LayoutUnit columnGap = columnGapLength.isNormal() ? documentOrBodyRenderer-&gt;style().fontDescription().computedPixelSize() : valueForLength(columnGapLength.length(), downcast&lt;RenderBox&gt;(documentOrBodyRenderer)-&gt;availableLogicalWidth())

Done.

&gt;&gt; Source/WebCore/page/animation/CSSPropertyAnimation.cpp:95
&gt;&gt; +    if (from.isNormal() || to.isNormal())
&gt; 
&gt; I think we can implement this in 1 line.

Done.

&gt;&gt; Source/WebCore/rendering/style/StyleMultiColData.h:53
&gt;&gt; +    GapLength columnGap;
&gt; 
&gt; I think we are increasing the RenderStyle size here. Shouldn&apos;t we update the SameSizeAsRenderStyle assert accordingly ?

It seems it&apos;s not needed, we&apos;re adding a boolean in GapLength, but we&apos;re removing the normalGap bool too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393055</commentid>
    <comment_count>6</comment_count>
      <attachid>332268</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-25 08:17:06 -0800</bug_when>
    <thetext>Created attachment 332268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393484</commentid>
    <comment_count>7</comment_count>
      <attachid>332268</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-01-26 02:36:04 -0800</bug_when>
    <thetext>Comment on attachment 332268
Patch

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

&gt; Source/WebCore/css/StyleBuilderConverter.h:1545
&gt; +    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);

What about using a ternary conditional statement here ? We would avoid declaring the primitiveValue variable, which is used just once. 

return downcast&lt;CSSPrimitiveValue&gt;(value).valueID() == CSSValueNormal ?  GapLength() : GapLength(convertLength(styleResolver, value));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393507</commentid>
    <comment_count>8</comment_count>
      <attachid>332367</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-26 05:11:49 -0800</bug_when>
    <thetext>Created attachment 332367
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393509</commentid>
    <comment_count>9</comment_count>
      <attachid>332268</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-26 05:12:59 -0800</bug_when>
    <thetext>Comment on attachment 332268
Patch

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

Thanks for the review.

&gt;&gt; Source/WebCore/css/StyleBuilderConverter.h:1545
&gt;&gt; +    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
&gt; 
&gt; What about using a ternary conditional statement here ? We would avoid declaring the primitiveValue variable, which is used just once. 
&gt; 
&gt; return downcast&lt;CSSPrimitiveValue&gt;(value).valueID() == CSSValueNormal ?  GapLength() : GapLength(convertLength(styleResolver, value));

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393522</commentid>
    <comment_count>10</comment_count>
      <attachid>332373</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-01-26 06:33:50 -0800</bug_when>
    <thetext>Created attachment 332373
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393525</commentid>
    <comment_count>11</comment_count>
      <attachid>332373</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-26 06:57:52 -0800</bug_when>
    <thetext>Comment on attachment 332373
Rebased patch

Clearing flags on attachment: 332373

Committed r227676: &lt;https://trac.webkit.org/changeset/227676&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393526</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-26 06:57:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393527</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-26 06:58:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/36908657&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422296</commentid>
    <comment_count>14</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-09 09:22:54 -0700</bug_when>
    <thetext>This patch caused a security issue -&gt; bug 184724</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422315</commentid>
    <comment_count>15</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-05-09 09:57:08 -0700</bug_when>
    <thetext>(In reply to zalan from comment #14)
&gt; This patch caused a security issue -&gt; bug 184724

Sorry but I don&apos;t have permissions to see that bug. :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422320</commentid>
    <comment_count>16</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-09 10:05:08 -0700</bug_when>
    <thetext>(In reply to Manuel Rego Casasnovas from comment #15)
&gt; (In reply to zalan from comment #14)
&gt; &gt; This patch caused a security issue -&gt; bug 184724
&gt; 
&gt; Sorry but I don&apos;t have permissions to see that bug. :-/
Fix got landed here https://trac.webkit.org/changeset/231379</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422327</commentid>
    <comment_count>17</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-05-09 10:11:36 -0700</bug_when>
    <thetext>(In reply to zalan from comment #16)
&gt; (In reply to Manuel Rego Casasnovas from comment #15)
&gt; &gt; (In reply to zalan from comment #14)
&gt; &gt; &gt; This patch caused a security issue -&gt; bug 184724
&gt; &gt; 
&gt; &gt; Sorry but I don&apos;t have permissions to see that bug. :-/
&gt; Fix got landed here https://trac.webkit.org/changeset/231379

Yeah it makes sense, sorry for missing it in the original patch.

Thanks for fixing it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332149</attachid>
            <date>2018-01-24 05:23:52 -0800</date>
            <delta_ts>2018-01-25 07:19:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182004-20180124142351.patch</filename>
            <type>text/plain</type>
            <size>24669</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA0OWQxZmYxN2QwMTJk
NTU3MGIzZWNhM2IxMjU2ZDgyNTRiNGQ3Mi4uYzcwYjgwYWQ0YWJlNDVmYjM1ZWFmYzk1YjA3ODk4
MDY5MGQ4ODdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE4LTAxLTI0ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtbXVs
dGljb2xdIFN1cHBvcnQgcGVyY2VudGFnZXMgaW4gY29sdW1uLWdhcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMDA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHBlcmNlbnRh
Z2Ugc3VwcG9ydCB0byBjb2x1bW4tZ2FwIHByb3BlcnR5LgorCisgICAgICAgIE1vc3Qgb2YgdGhl
IGNoYW5nZXMgYXJlIHJlbGF0ZWQgdG8gdGhlIHBhcnNpbmcgbG9naWMsCisgICAgICAgIHRoZSBj
b2x1bW4tZ2FwIHByb3BlcnR5IG5vdyBhY2NlcHRzIGJvdGggbGVuZ3RoIGFuZCBwZXJjZW50YWdl
cywKKyAgICAgICAgb24gdG9wIG9mIHRoZSAibm9ybWFsIiBpbml0aWFsIHZhbHVlLgorICAgICAg
ICBBIG5ldyB1dGlsaXR5IGNsYXNzIEdhcExlbmd0aCBoYXMgYmVlbiBhZGRlZCwgYXMgaXQnbGwg
YmUgdXNlZnVsCisgICAgICAgIHRvIGltcGxlbWVudCByb3ctZ2FwIGluIHRoZSBmdXR1cmUuCisK
KyAgICAgICAgQXBhcnQgZnJvbSB0aGF0IHRoZSBtdXRpY29sdW1uIGxheW91dCBjb2RlIGhhcyBi
ZWVuIG1vZGlmaWVkCisgICAgICAgIHRvIHJlc29sdmUgdGhlIHBlcmNlbnRhZ2UgZ2FwcyAodHJl
YXRpbmcgdGhlbSBhcyB6ZXJvIHdoaWxlIGNvbXB1dGluZworICAgICAgICBwcmVmZXJyZWQgd2lk
dGhzKSBhbmQgcmVzb2x2aW5nIHRoZW0gZHVyaW5nIGxheW91dC4KKyAgICAgICAgVGhpcyBkb2Vz
bid0IGZvbGxvdyB0aGUgY3VycmVudCB0ZXh0IG9uIHRoZSBzcGVjLCBidXQgdGhlcmUgaXMgYW4K
KyAgICAgICAgb25nb2luZyBkaXNjdXNzaW9uIHRoYXQgbWlnaHQgY2F1c2UgdGhlIHRleHQgaXMg
Y2hhbmdlZDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNz
dWVzLzUwOSNpc3N1ZWNvbW1lbnQtMzU1MjQyMTAxCisgICAgICAgIFdlIGNvdWxkIHVwZGF0ZSB0
aGUgaW1wbGVtZW50YXRpb24gb25jZSB3ZSBoYXZlIGEgZGVmaW5pdGl2ZSBhbnN3ZXIKKyAgICAg
ICAgZnJvbSB0aGUgQ1NTIFdHLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisg
ICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5aW5TdHlsZSk6
CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3MvU3R5bGVC
dWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDb252ZXJ0
ZXI6OmNvbnZlcnRHYXBMZW5ndGgpOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXJDdXN0b20u
aDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcndhcmRJbmhlcml0ZWRWYWx1ZSk6CisgICAgICAgICog
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dW1lR2FwTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpwYXJz
ZVNpbmdsZVZhbHVlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5UGFnaW5hdGlvblRvVmlld3BvcnQpOgorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmJsZW5kRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldy
YXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
a0Zsb3c6OmNvbHVtbkdhcCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0Ojpj
b2x1bW5HYXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HYXBMZW5ndGguaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHYXBMZW5ndGg6OkdhcExlbmd0aCk6CisgICAgICAg
IChXZWJDb3JlOjpHYXBMZW5ndGg6OmlzTm9ybWFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdhcExlbmd0aDo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdhcExlbmd0aDo6
b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sdW1uR2FwIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb2x1bW5HYXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxDb2x1bW5HYXApOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11
bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNvbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVN
dWx0aUNvbERhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZU11bHRpQ29sRGF0YS5oOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZUZvckRv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQp
OgorCiAyMDE4LTAxLTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIEhhcmRlbiBhZ2FpbnN0IGxheW91dCBwYXNzZXMgdHJpZ2dlcmVkIHdoZW4gaXRl
cmF0aW5nIHRocm91Z2ggSFRNTEZvcm1FbGVtZW50Ojphc3NvY2lhdGVkRWxlbWVudHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5k
ZXggNzQwNTI1YzdjZTY0ODU5ZTU5NDdhMmM5YTAyMGQ2ZTJlMzljODI5Ni4uZDc4YzVjNmIzZWY3
ZDVjMmM4ODkyYTAwYzliZjMzMmRjY2NiY2FlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI5MjUsOSArMjkyNSw5IEBA
IFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0
eWluU3R5bGUoY29uc3QgUmVuZGVyU3R5CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5G
aWxsOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5j
b2x1bW5GaWxsKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q29sdW1uR2FwOgotICAgICAg
ICAgICAgaWYgKHN0eWxlLmhhc05vcm1hbENvbHVtbkdhcCgpKQorICAgICAgICAgICAgaWYgKHN0
eWxlLmNvbHVtbkdhcCgpLmlzTm9ybWFsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpOwotICAgICAgICAg
ICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUoc3R5bGUuY29sdW1uR2FwKCksIHN0eWxl
KTsKKyAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHN0
eWxlLmNvbHVtbkdhcCgpLmxlbmd0aCgpLCBzdHlsZSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRDb2x1bW5Qcm9ncmVzc2lvbjoKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2wuY3JlYXRlVmFsdWUoc3R5bGUuY29sdW1uUHJvZ3Jlc3Npb24oKSk7CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlDb2x1bW5SdWxlQ29sb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMu
anNvbgppbmRleCAzZWY0NGEwMmU2ZTFkMDg5ODdiMTA3MGJhZTE5MWJhZDdhOGFjOWFhLi4yNWMw
ZmJkMGUwYmRmMDQ0NTk5M2I4MDQ5NzEzZDc2MTU0NjA5MTFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0aWVzLmpzb24KQEAgLTQzMDYsMTEgKzQzMDYsMTEgQEAKICAgICAgICAgICAgICAg
ICAiYWxpYXNlcyI6IFsKICAgICAgICAgICAgICAgICAgICAgIi13ZWJraXQtY29sdW1uLWdhcCIK
ICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJjdXN0b20iOiAiQWxsIgorICAg
ICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiR2FwTGVuZ3RoIgogICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogIHsKICAgICAgICAgICAgICAgICAiY2F0ZWdvcnki
OiAiY3NzLW11bHRpY29sIiwKLSAgICAgICAgICAgICAgICAidXJsIjogIiIKKyAgICAgICAgICAg
ICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtbXVsdGljb2wvI2NvbHVt
bi1nYXAiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgICItd2Via2l0LWNvbHVt
bi1wcm9ncmVzc2lvbiI6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1
aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaAppbmRleCAyMGQ3OTRkNTI5ZDQwY2IwMTUwOTA0NWZkYWU2MzYzNjY5Nzg4ZmIzLi5mNDgw
Y2IyYmE2ZmU3NDM0N2RmZjVkOGQ1ZGZkNWY5NGNkYmYyMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC0xNTAsNiArMTUwLDggQEAgcHVibGljOgog
CiAgICAgc3RhdGljIExlbmd0aCBjb252ZXJ0UG9zaXRpb25Db21wb25lbnRYKFN0eWxlUmVzb2x2
ZXImLCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBMZW5ndGggY29udmVydFBvc2l0aW9u
Q29tcG9uZW50WShTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmKTsKKworICAgIHN0YXRp
YyBHYXBMZW5ndGggY29udmVydEdhcExlbmd0aChTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFs
dWUmKTsKICAgICAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFN0eWxlQnVpbGRlckN1c3Rv
bTsKQEAgLTE1MzgsNCArMTU0MCwxMyBAQCBpbmxpbmUgSGFuZ2luZ1B1bmN0dWF0aW9uIFN0eWxl
QnVpbGRlckNvbnZlcnRlcjo6Y29udmVydEhhbmdpbmdQdW5jdHVhdGlvbihTdHlsZQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKK2lubGluZSBHYXBMZW5ndGggU3R5bGVCdWlsZGVyQ29udmVydGVy
Ojpjb252ZXJ0R2FwTGVuZ3RoKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIGNvbnN0IENT
U1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICBhdXRvJiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSk7CisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLnZhbHVlSUQo
KSA9PSBDU1NWYWx1ZU5vcm1hbCkKKyAgICAgICAgcmV0dXJuIEdhcExlbmd0aCgpOworCisgICAg
cmV0dXJuIEdhcExlbmd0aChjb252ZXJ0TGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHZhbHVlKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUJ1aWxkZXJDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJD
dXN0b20uaAppbmRleCAwNzQxOGNlMzM0OTk1YjRlMWQwZGUyOWExOGUzNDJiMmM2NmM5OGNkLi4w
NjYwMGFlOGYzMzgwYjBjMDRkYTM5NzdkNzRmNTJhZGFkNjY2YTljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCkBAIC02Miw2ICs2Miw3IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBUIGZvcndhcmRJbmhlcml0ZWRWYWx1ZShUJiYgdmFsdWUpIHsgcmV0dXJu
IHN0ZDo6Zm9yCiBpbmxpbmUgTGVuZ3RoIGZvcndhcmRJbmhlcml0ZWRWYWx1ZShjb25zdCBMZW5n
dGgmIHZhbHVlKSB7IGF1dG8gY29weSA9IHZhbHVlOyByZXR1cm4gY29weTsgfQogaW5saW5lIExl
bmd0aFNpemUgZm9yd2FyZEluaGVyaXRlZFZhbHVlKGNvbnN0IExlbmd0aFNpemUmIHZhbHVlKSB7
IGF1dG8gY29weSA9IHZhbHVlOyByZXR1cm4gY29weTsgfQogaW5saW5lIExlbmd0aEJveCBmb3J3
YXJkSW5oZXJpdGVkVmFsdWUoY29uc3QgTGVuZ3RoQm94JiB2YWx1ZSkgeyBhdXRvIGNvcHkgPSB2
YWx1ZTsgcmV0dXJuIGNvcHk7IH0KK2lubGluZSBHYXBMZW5ndGggZm9yd2FyZEluaGVyaXRlZFZh
bHVlKGNvbnN0IEdhcExlbmd0aCYgdmFsdWUpIHsgYXV0byBjb3B5ID0gdmFsdWU7IHJldHVybiBj
b3B5OyB9CiAKIC8vIE5vdGUgdGhhdCB3ZSBhc3N1bWUgdGhlIENTUyBwYXJzZXIgb25seSBhbGxv
d3MgdmFsaWQgQ1NTVmFsdWUgdHlwZXMuCiBjbGFzcyBTdHlsZUJ1aWxkZXJDdXN0b20gewpAQCAt
NzMsNyArNzQsNiBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExF
UlMoQm9yZGVySW1hZ2VXaWR0aCk7CiAgICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExF
UlMoQm94U2hhZG93KTsKICAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5ETEVSUyhDbGlw
KTsKLSAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5ETEVSUyhDb2x1bW5HYXApOwogICAg
IERFQ0xBUkVfUFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKENvbnRlbnQpOwogICAgIERFQ0xBUkVf
UFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKENvdW50ZXJJbmNyZW1lbnQpOwogICAgIERFQ0xBUkVf
UFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKENvdW50ZXJSZXNldCk7CkBAIC0xMzY0LDI3ICsxMzY0
LDYgQEAgaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlV2Via2l0U3Zn
U2hhZG93KFN0eWxlUmVzb2x2ZXImIHN0eWxlUmUKICAgICBzdmdTdHlsZS5zZXRTaGFkb3coc3Rk
OjptYWtlX3VuaXF1ZTxTaGFkb3dEYXRhPihsb2NhdGlvbiwgYmx1ciwgMCwgTm9ybWFsLCBmYWxz
ZSwgY29sb3IuaXNWYWxpZCgpID8gY29sb3IgOiBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKIH0KIAot
aW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxDb2x1bW5HYXAoU3R5
bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcikKLXsKLSAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCkt
PnNldEhhc05vcm1hbENvbHVtbkdhcCgpOwotfQotCi1pbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJD
dXN0b206OmFwcGx5SW5oZXJpdENvbHVtbkdhcChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVy
KQotewotICAgIGlmIChzdHlsZVJlc29sdmVyLnBhcmVudFN0eWxlKCktPmhhc05vcm1hbENvbHVt
bkdhcCgpKQotICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05vcm1hbENvbHVt
bkdhcCgpOwotICAgIGVsc2UKLSAgICAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRDb2x1
bW5HYXAoc3R5bGVSZXNvbHZlci5wYXJlbnRTdHlsZSgpLT5jb2x1bW5HYXAoKSk7Ci19Ci0KLWlu
bGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUNvbHVtbkdhcChTdHlsZVJl
c29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCi17Ci0gICAgaWYgKGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkudmFsdWVJRCgpID09IENTU1ZhbHVlTm9ybWFs
KQotICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05vcm1hbENvbHVtbkdhcCgp
OwotICAgIGVsc2UKLSAgICAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRDb2x1bW5HYXAo
U3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Q29tcHV0ZWRMZW5ndGg8ZmxvYXQ+KHN0eWxl
UmVzb2x2ZXIsIHZhbHVlKSk7Ci19Ci0KIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6
YXBwbHlJbml0aWFsQ29udGVudChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyKQogewogICAg
IHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+Y2xlYXJDb250ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDFlOWE3MGIyNjA5MjYx
YTQ4MzBlZjQ0NmNlMDQ4ODMxYWQ2MmQ3ZjUuLmUwNzI0MDMyOGE0NjJkM2I4NDMzNzYwYmEzYWFm
ZTk2MTE0ZGI4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXIuY3BwCkBAIC0xMzczLDExICsxMzczLDExIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVDb2x1bW5Db3VudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICBy
ZXR1cm4gY29uc3VtZVBvc2l0aXZlSW50ZWdlcihyYW5nZSk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8
Q1NTVmFsdWU+IGNvbnN1bWVDb2x1bW5HYXAoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENT
U1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1
bWVHYXBMZW5ndGgoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3Nz
UGFyc2VyTW9kZSkKIHsKICAgICBpZiAocmFuZ2UucGVlaygpLmlkKCkgPT0gQ1NTVmFsdWVOb3Jt
YWwpCiAgICAgICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwotICAgIHJldHVybiBjb25z
dW1lTGVuZ3RoKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOwor
ICAgIHJldHVybiBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBW
YWx1ZVJhbmdlTm9uTmVnYXRpdmUpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25z
dW1lQ29sdW1uU3BhbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKQEAgLTQwMTQsNyArNDAx
NCw3IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFs
dWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVt
bkNvdW50OgogICAgICAgICByZXR1cm4gY29uc3VtZUNvbHVtbkNvdW50KG1fcmFuZ2UpOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5HYXA6Ci0gICAgICAgIHJldHVybiBjb25zdW1lQ29sdW1u
R2FwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVHYXBM
ZW5ndGgobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1
bW5TcGFuOgogICAgICAgICByZXR1cm4gY29uc3VtZUNvbHVtblNwYW4obV9yYW5nZSk7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVpvb206CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMzNl
OGIyNWUwY2I0YzE4ZGY4NDA5OWY1Y2ViZTljMjMwOTFjMzhjZi4uN2NkZTQwZGRhZTk3OGM0NjBj
ODlhYWQ4ZTliYzJkODFlOTc4MDhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
NzE2LDcgKzcxNiwxMiBAQCB2b2lkIEZyYW1lVmlldzo6YXBwbHlQYWdpbmF0aW9uVG9WaWV3cG9y
dCgpCiAgICAgRU92ZXJmbG93IG92ZXJmbG93WSA9IGRvY3VtZW50T3JCb2R5UmVuZGVyZXItPnN0
eWxlKCkub3ZlcmZsb3dZKCk7CiAgICAgaWYgKG92ZXJmbG93WSA9PSBPUEFHRURYIHx8IG92ZXJm
bG93WSA9PSBPUEFHRURZKSB7CiAgICAgICAgIHBhZ2luYXRpb24ubW9kZSA9IFdlYkNvcmU6OnBh
Z2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoZG9jdW1lbnRPckJvZHlSZW5kZXJlci0+c3R5bGUo
KSk7Ci0gICAgICAgIHBhZ2luYXRpb24uZ2FwID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRvY3Vt
ZW50T3JCb2R5UmVuZGVyZXItPnN0eWxlKCkuY29sdW1uR2FwKCkpOworICAgICAgICBMYXlvdXRV
bml0IGNvbHVtbkdhcDsKKyAgICAgICAgaWYgKGRvY3VtZW50T3JCb2R5UmVuZGVyZXItPnN0eWxl
KCkuY29sdW1uR2FwKCkuaXNOb3JtYWwoKSkKKyAgICAgICAgICAgIGNvbHVtbkdhcCA9IGRvY3Vt
ZW50T3JCb2R5UmVuZGVyZXItPnN0eWxlKCkuZm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRQaXhl
bFNpemUoKTsgLy8gIjFlbSIgaXMgcmVjb21tZW5kZWQgYXMgdGhlIG5vcm1hbCBnYXAgc2V0dGlu
Zy4gTWF0Y2hlcyA8cD4gbWFyZ2lucy4KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29sdW1u
R2FwID0gdmFsdWVGb3JMZW5ndGgoZG9jdW1lbnRPckJvZHlSZW5kZXJlci0+c3R5bGUoKS5jb2x1
bW5HYXAoKS5sZW5ndGgoKSwgZG93bmNhc3Q8UmVuZGVyQm94Pihkb2N1bWVudE9yQm9keVJlbmRl
cmVyKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCkpOworICAgICAgICBwYWdpbmF0aW9uLmdhcCA9
IGNvbHVtbkdhcC50b1Vuc2lnbmVkKCk7CiAgICAgfQogICAgIHNldFBhZ2luYXRpb24ocGFnaW5h
dGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggZWExMjE4OTUxNTgzMGU5Mzg4NTY1ODRkMWI5Yjc1
MzlhMTlmMWU0Zi4uMDY4YThhZDA4YmRhZDgyNWY0OWM1ZTI5ZDUzNWQ3MGYzNTYwODhhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5p
bWF0aW9uLmNwcApAQCAtOTAsNiArOTAsMTQgQEAgc3RhdGljIGlubGluZSBMZW5ndGggYmxlbmRG
dW5jKGNvbnN0IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQqLCBjb25zdCBMZW5ndGgmIGYKICAg
ICByZXR1cm4gYmxlbmQoZnJvbSwgdG8sIHByb2dyZXNzKTsKIH0KIAorc3RhdGljIGlubGluZSBH
YXBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQqLCBjb25z
dCBHYXBMZW5ndGgmIGZyb20sIGNvbnN0IEdhcExlbmd0aCYgdG8sIGRvdWJsZSBwcm9ncmVzcykK
K3sKKyAgICBpZiAoZnJvbS5pc05vcm1hbCgpIHx8IHRvLmlzTm9ybWFsKCkpCisgICAgICAgIHJl
dHVybiB0bzsKKworICAgIHJldHVybiBibGVuZChmcm9tLmxlbmd0aCgpLCB0by5sZW5ndGgoKSwg
cHJvZ3Jlc3MpOworfQorCiBzdGF0aWMgaW5saW5lIExlbmd0aFNpemUgYmxlbmRGdW5jKGNvbnN0
IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQqIGFuaW0sIGNvbnN0IExlbmd0aFNpemUmIGZyb20s
IGNvbnN0IExlbmd0aFNpemUmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgcmV0dXJuIHsg
YmxlbmRGdW5jKGFuaW0sIGZyb20ud2lkdGgsIHRvLndpZHRoLCBwcm9ncmVzcyksIGJsZW5kRnVu
YyhhbmltLCBmcm9tLmhlaWdodCwgdG8uaGVpZ2h0LCBwcm9ncmVzcykgfTsKQEAgLTE1MTksNyAr
MTUyNyw3IEBAIENTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmlt
YXRpb25XcmFwcGVyTWFwKCkKIAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihD
U1NQcm9wZXJ0eUZvbnRTaXplLCAmUmVuZGVyU3R5bGU6OmNvbXB1dGVkRm9udFNpemUsICZSZW5k
ZXJTdHlsZTo6c2V0Rm9udFNpemUpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPHVuc2ln
bmVkIHNob3J0PihDU1NQcm9wZXJ0eUNvbHVtblJ1bGVXaWR0aCwgJlJlbmRlclN0eWxlOjpjb2x1
bW5SdWxlV2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZVdpZHRoKSwKLSAgICAgICAg
bmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NTUHJvcGVydHlDb2x1bW5HYXAsICZSZW5kZXJT
dHlsZTo6Y29sdW1uR2FwLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtbkdhcCksCisgICAgICAgIG5l
dyBMZW5ndGhQcm9wZXJ0eVdyYXBwZXI8R2FwTGVuZ3RoPihDU1NQcm9wZXJ0eUNvbHVtbkdhcCwg
JlJlbmRlclN0eWxlOjpjb2x1bW5HYXAsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uR2FwKSwKICAg
ICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjx1bnNpZ25lZCBzaG9ydD4oQ1NTUHJvcGVydHlDb2x1
bW5Db3VudCwgJlJlbmRlclN0eWxlOjpjb2x1bW5Db3VudCwgJlJlbmRlclN0eWxlOjpzZXRDb2x1
bW5Db3VudCksCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5
Q29sdW1uV2lkdGgsICZSZW5kZXJTdHlsZTo6Y29sdW1uV2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0
Q29sdW1uV2lkdGgpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9w
ZXJ0eVdlYmtpdEJvcmRlckhvcml6b250YWxTcGFjaW5nLCAmUmVuZGVyU3R5bGU6Omhvcml6b250
YWxCb3JkZXJTcGFjaW5nLCAmUmVuZGVyU3R5bGU6OnNldEhvcml6b250YWxCb3JkZXJTcGFjaW5n
KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXgg
YTE5NzRhZWUzNzI5NzFlOWVjMThiNzNiNTExNGNhZTM5NTRkNDRhNS4uYzFhNjljZjM0NTc2NThi
ZTQzOTRjOWQ5M2UxNDg4ODdmY2VjOGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTM3MSw5ICszNzEsOSBAQCBib29sIFJlbmRlckJsb2Nr
Rmxvdzo6cmVjb21wdXRlTG9naWNhbFdpZHRoQW5kQ29sdW1uV2lkdGgoKQogCiBMYXlvdXRVbml0
IFJlbmRlckJsb2NrRmxvdzo6Y29sdW1uR2FwKCkgY29uc3QKIHsKLSAgICBpZiAoc3R5bGUoKS5o
YXNOb3JtYWxDb2x1bW5HYXAoKSkKKyAgICBpZiAoc3R5bGUoKS5jb2x1bW5HYXAoKS5pc05vcm1h
bCgpKQogICAgICAgICByZXR1cm4gc3R5bGUoKS5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFBp
eGVsU2l6ZSgpOyAvLyAiMWVtIiBpcyByZWNvbW1lbmRlZCBhcyB0aGUgbm9ybWFsIGdhcCBzZXR0
aW5nLiBNYXRjaGVzIDxwPiBtYXJnaW5zLgotICAgIHJldHVybiBzdHlsZSgpLmNvbHVtbkdhcCgp
OworICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChzdHlsZSgpLmNvbHVtbkdhcCgpLmxlbmd0aCgp
LCBhdmFpbGFibGVMb2dpY2FsV2lkdGgoKSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojpj
b21wdXRlQ29sdW1uQ291bnRBbmRXaWR0aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAppbmRleCAwZWU1OWQ3YWM0ZDg1NWJhYzExYTFi
YmExNjc5N2ZlMTZiNWU2ZGRiLi5lYzQzZGIzOTI4ZWQ0MTQzNzAwMzBhZDk4YzIyMjZlNTgzOTcy
ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1
bW5TZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
blNldC5jcHAKQEAgLTQyOSw5ICs0MjksOSBAQCBMYXlvdXRVbml0IFJlbmRlck11bHRpQ29sdW1u
U2V0Ojpjb2x1bW5HYXAoKSBjb25zdAogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHdpbGwg
Y2FjaGUgdGhlIGNvbHVtbiBnYXAgd2hlbiB0aGUgd2lkdGhzIG9mIGNvbHVtbnMgc3RhcnQgdmFy
eWluZywgYnV0IGZvciBub3cgd2UganVzdAogICAgIC8vIGdvIHRvIHRoZSBwYXJlbnQgYmxvY2sg
dG8gZ2V0IHRoZSBnYXAuCiAgICAgUmVuZGVyQmxvY2tGbG93JiBwYXJlbnRCbG9jayA9IGRvd25j
YXN0PFJlbmRlckJsb2NrRmxvdz4oKnBhcmVudCgpKTsKLSAgICBpZiAocGFyZW50QmxvY2suc3R5
bGUoKS5oYXNOb3JtYWxDb2x1bW5HYXAoKSkKKyAgICBpZiAocGFyZW50QmxvY2suc3R5bGUoKS5j
b2x1bW5HYXAoKS5pc05vcm1hbCgpKQogICAgICAgICByZXR1cm4gcGFyZW50QmxvY2suc3R5bGUo
KS5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFBpeGVsU2l6ZSgpOyAvLyAiMWVtIiBpcyByZWNv
bW1lbmRlZCBhcyB0aGUgbm9ybWFsIGdhcCBzZXR0aW5nLiBNYXRjaGVzIDxwPiBtYXJnaW5zLgot
ICAgIHJldHVybiBwYXJlbnRCbG9jay5zdHlsZSgpLmNvbHVtbkdhcCgpOworICAgIHJldHVybiB2
YWx1ZUZvckxlbmd0aChwYXJlbnRCbG9jay5zdHlsZSgpLmNvbHVtbkdhcCgpLmxlbmd0aCgpLCBw
YXJlbnRCbG9jay5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKSk7CiB9CiAKIHVuc2lnbmVkIFJlbmRl
ck11bHRpQ29sdW1uU2V0Ojpjb2x1bW5Db3VudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzZmNlY2ZiYjRhMjNmMTYyOTQ3
NWUzMDI3ZTk3YjYwMjEwNGRhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9HYXBMZW5ndGguaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJMZW5ndGguaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNzIHdyYXBzIHRoZSBsZW5naHQg
b2YgYSBnYXAgdXNlZCBieSBwcm9wZXJ0aWVzIGNvbHVtbi1nYXAgYW5kIHJvdy1nYXAuCisvLyBU
aGUgdmFsaWQgdmFsdWVzIGFyZSAibm9ybWFsIiBvciBhIG5vbi1uZWdhdGl2ZSA8bGVuZ3RoLXBl
cmNlbnRhZ2U+LgorY2xhc3MgR2FwTGVuZ3RoIHsKK3B1YmxpYzoKKyAgICBHYXBMZW5ndGgoKQor
ICAgICAgICA6IG1faXNOb3JtYWwodHJ1ZSkKKyAgICB7CisgICAgfQorCisgICAgR2FwTGVuZ3Ro
KGNvbnN0IExlbmd0aCYgbGVuZ3RoKQorICAgICAgICA6IG1faXNOb3JtYWwoZmFsc2UpCisgICAg
ICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGlzTm9ybWFs
KCkgY29uc3QgeyByZXR1cm4gbV9pc05vcm1hbDsgfQorICAgIGNvbnN0IExlbmd0aCYgbGVuZ3Ro
KCkgY29uc3QgeyBBU1NFUlQoIW1faXNOb3JtYWwpOyByZXR1cm4gbV9sZW5ndGg7IH0KKworICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBHYXBMZW5ndGgmIG8pIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9pc05vcm1hbCA9PSBvLm1faXNOb3JtYWwgJiYgbV9sZW5ndGggPT0gby5tX2xl
bmd0aDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2lzTm9ybWFsOworICAgIExlbmd0
aCBtX2xlbmd0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggYWRkZmJkN2Y4NzNlZmZjYjdj
YTViZjlkM2ZlODMyN2Q0M2E2ZmYwNS4uN2VkMWI5ZWNiNTViOGQ4YjFlMGMxMGE2NzJjMmUxZjE1
ZGZhYjFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJEYXRhUmVmLmgiCiAjaW5jbHVkZSAiRmls
dGVyT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IkdhcExlbmd0aC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJMZW5n
dGguaCIKICNpbmNsdWRlICJMZW5ndGhCb3guaCIKQEAgLTYwNCw4ICs2MDUsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNBdXRvQ29sdW1uQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25J
bmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+YXV0b0NvdW50OyB9CiAgICAgYm9vbCBzcGVjaWZpZXND
b2x1bW5zKCkgY29uc3QgeyByZXR1cm4gIWhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFoYXNBdXRv
Q29sdW1uV2lkdGgoKSB8fCAhaGFzSW5saW5lQ29sdW1uQXhpcygpOyB9CiAgICAgQ29sdW1uRmls
bCBjb2x1bW5GaWxsKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29sdW1uRmlsbD4obV9y
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPmZpbGwpOyB9Ci0gICAgZmxvYXQgY29sdW1u
R2FwKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPmdh
cDsgfQotICAgIGJvb2wgaGFzTm9ybWFsQ29sdW1uR2FwKCkgY29uc3QgeyByZXR1cm4gbV9yYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPm5vcm1hbEdhcDsgfQorICAgIGNvbnN0IEdhcExl
bmd0aCYgY29sdW1uR2FwKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bXVsdGlDb2wtPmNvbHVtbkdhcDsgfQogICAgIEVCb3JkZXJTdHlsZSBjb2x1bW5SdWxlU3R5bGUo
KSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+cnVsZS5z
dHlsZSgpOyB9CiAgICAgdW5zaWduZWQgc2hvcnQgY29sdW1uUnVsZVdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPnJ1bGVXaWR0aCgpOyB9CiAg
ICAgYm9vbCBjb2x1bW5SdWxlSXNUcmFuc3BhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5v
bkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5ydWxlLmlzVHJhbnNwYXJlbnQoKTsgfQpAQCAtMTEy
Nyw4ICsxMTI3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29sdW1uQ291bnQodW5zaWduZWQg
c2hvcnQgYykgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNv
bCwgYXV0b0NvdW50LCBmYWxzZSk7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERh
dGEsIG11bHRpQ29sLCBjb3VudCwgYyk7IH0KICAgICB2b2lkIHNldEhhc0F1dG9Db2x1bW5Db3Vu
dCgpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIGF1
dG9Db3VudCwgdHJ1ZSk7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11
bHRpQ29sLCBjb3VudCwgMCk7IH0KICAgICB2b2lkIHNldENvbHVtbkZpbGwoQ29sdW1uRmlsbCBj
b2x1bW5GaWxsKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRp
Q29sLCBmaWxsLCBjb2x1bW5GaWxsKTsgfQotICAgIHZvaWQgc2V0Q29sdW1uR2FwKGZsb2F0IGYp
IHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIG5vcm1h
bEdhcCwgZmFsc2UpOyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0
aUNvbCwgZ2FwLCBmKTsgfQotICAgIHZvaWQgc2V0SGFzTm9ybWFsQ29sdW1uR2FwKCkgeyBTRVRf
TkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgbm9ybWFsR2FwLCB0
cnVlKTsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIGdh
cCwgMCk7IH0KKyAgICB2b2lkIHNldENvbHVtbkdhcChHYXBMZW5ndGgmJiBnYXBMZW5ndGgpIHsg
U0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIGNvbHVtbkdh
cCwgV1RGTW92ZShnYXBMZW5ndGgpKTsgfQogICAgIHZvaWQgc2V0Q29sdW1uUnVsZUNvbG9yKGNv
bnN0IENvbG9yJiBjKSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLm11bHRpQ29sLCBydWxlLCBjKTsgfQogICAgIHZvaWQgc2V0Q29sdW1uUnVs
ZVN0eWxlKEVCb3JkZXJTdHlsZSBiKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRl
ZERhdGEsIG11bHRpQ29sLCBydWxlLm1fc3R5bGUsIGIpOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5S
dWxlV2lkdGgodW5zaWduZWQgc2hvcnQgdykgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCBtdWx0aUNvbCwgcnVsZS5tX3dpZHRoLCB3KTsgfQpAQCAtMTUzMCw2ICsxNTI5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbml0aWFsQ29sdW1uQ291
bnQoKSB7IHJldHVybiAxOyB9CiAgICAgc3RhdGljIENvbHVtbkZpbGwgaW5pdGlhbENvbHVtbkZp
bGwoKSB7IHJldHVybiBDb2x1bW5GaWxsQmFsYW5jZTsgfQogICAgIHN0YXRpYyBDb2x1bW5TcGFu
IGluaXRpYWxDb2x1bW5TcGFuKCkgeyByZXR1cm4gQ29sdW1uU3Bhbk5vbmU7IH0KKyAgICBzdGF0
aWMgR2FwTGVuZ3RoIGluaXRpYWxDb2x1bW5HYXAoKSB7IHJldHVybiBHYXBMZW5ndGgoKTsgfQog
ICAgIHN0YXRpYyBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiBpbml0aWFsVHJhbnNmb3JtKCkg
eyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VHJhbnNmb3JtT3BlcmF0aW9ucz4gb3BzOyByZXR1cm4g
b3BzOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsVHJhbnNmb3JtT3JpZ2luWCgpIHsgcmV0
dXJuIExlbmd0aCg1MC4wZiwgUGVyY2VudCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxU
cmFuc2Zvcm1PcmlnaW5ZKCkgeyByZXR1cm4gTGVuZ3RoKDUwLjBmLCBQZXJjZW50KTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5j
cHAKaW5kZXggYjdlNzk0Zjg0YjM5N2NmZDhiNmE0OWFhZmUxZjdmYjk4Yjc3OTIxYy4uNGRjMjc5
MWI2ZWVkOWM1MjE3Nzg1OTBlMDY2OWRiMDhkNTcyYTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwCkBAIC0zMCw3ICsz
MCw2IEBAIFN0eWxlTXVsdGlDb2xEYXRhOjpTdHlsZU11bHRpQ29sRGF0YSgpCiAgICAgOiBjb3Vu
dChSZW5kZXJTdHlsZTo6aW5pdGlhbENvbHVtbkNvdW50KCkpCiAgICAgLCBhdXRvV2lkdGgodHJ1
ZSkKICAgICAsIGF1dG9Db3VudCh0cnVlKQotICAgICwgbm9ybWFsR2FwKHRydWUpCiAgICAgLCBm
aWxsKFJlbmRlclN0eWxlOjppbml0aWFsQ29sdW1uRmlsbCgpKQogICAgICwgY29sdW1uU3Bhbihm
YWxzZSkKICAgICAsIGF4aXMoUmVuZGVyU3R5bGU6OmluaXRpYWxDb2x1bW5BeGlzKCkpCkBAIC00
MiwxMiArNDEsMTEgQEAgaW5saW5lIFN0eWxlTXVsdGlDb2xEYXRhOjpTdHlsZU11bHRpQ29sRGF0
YShjb25zdCBTdHlsZU11bHRpQ29sRGF0YSYgb3RoZXIpCiAgICAgOiBSZWZDb3VudGVkPFN0eWxl
TXVsdGlDb2xEYXRhPigpCiAgICAgLCB3aWR0aChvdGhlci53aWR0aCkKICAgICAsIGNvdW50KG90
aGVyLmNvdW50KQotICAgICwgZ2FwKG90aGVyLmdhcCkKKyAgICAsIGNvbHVtbkdhcChvdGhlci5j
b2x1bW5HYXApCiAgICAgLCBydWxlKG90aGVyLnJ1bGUpCiAgICAgLCB2aXNpdGVkTGlua0NvbHVt
blJ1bGVDb2xvcihvdGhlci52aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcikKICAgICAsIGF1dG9X
aWR0aChvdGhlci5hdXRvV2lkdGgpCiAgICAgLCBhdXRvQ291bnQob3RoZXIuYXV0b0NvdW50KQot
ICAgICwgbm9ybWFsR2FwKG90aGVyLm5vcm1hbEdhcCkKICAgICAsIGZpbGwob3RoZXIuZmlsbCkK
ICAgICAsIGNvbHVtblNwYW4ob3RoZXIuY29sdW1uU3BhbikKICAgICAsIGF4aXMob3RoZXIuYXhp
cykKQEAgLTYyLDkgKzYwLDkgQEAgUmVmPFN0eWxlTXVsdGlDb2xEYXRhPiBTdHlsZU11bHRpQ29s
RGF0YTo6Y29weSgpIGNvbnN0CiAKIGJvb2wgU3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0o
Y29uc3QgU3R5bGVNdWx0aUNvbERhdGEmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiB3aWR0
aCA9PSBvdGhlci53aWR0aCAmJiBjb3VudCA9PSBvdGhlci5jb3VudCAmJiBnYXAgPT0gb3RoZXIu
Z2FwCisgICAgcmV0dXJuIHdpZHRoID09IG90aGVyLndpZHRoICYmIGNvdW50ID09IG90aGVyLmNv
dW50ICYmIGNvbHVtbkdhcCA9PSBvdGhlci5jb2x1bW5HYXAKICAgICAgICAgJiYgcnVsZSA9PSBv
dGhlci5ydWxlICYmIHZpc2l0ZWRMaW5rQ29sdW1uUnVsZUNvbG9yID09IG90aGVyLnZpc2l0ZWRM
aW5rQ29sdW1uUnVsZUNvbG9yCi0gICAgICAgICYmIGF1dG9XaWR0aCA9PSBvdGhlci5hdXRvV2lk
dGggJiYgYXV0b0NvdW50ID09IG90aGVyLmF1dG9Db3VudCAmJiBub3JtYWxHYXAgPT0gb3RoZXIu
bm9ybWFsR2FwCisgICAgICAgICYmIGF1dG9XaWR0aCA9PSBvdGhlci5hdXRvV2lkdGggJiYgYXV0
b0NvdW50ID09IG90aGVyLmF1dG9Db3VudAogICAgICAgICAmJiBmaWxsID09IG90aGVyLmZpbGwg
JiYgY29sdW1uU3BhbiA9PSBvdGhlci5jb2x1bW5TcGFuCiAgICAgICAgICYmIGF4aXMgPT0gb3Ro
ZXIuYXhpcyAmJiBwcm9ncmVzc2lvbiA9PSBvdGhlci5wcm9ncmVzc2lvbjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmgKaW5kZXgg
ZjkyZDIzYzVmOTA4ZjE0MjcxZjMzODc0M2I4MDYwNzU1MjU5YTBhNi4uYTZkZTFlZmJjNzE3Mjhh
Y2NjZjg0NGViZWQwNzA0MWU5YzJjZjcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiQm9yZGVyVmFsdWUuaCIKKyNpbmNsdWRlICJHYXBMZW5ndGgu
aCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKQEAgLTQ5LDEzICs1MCwxMiBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB3aWR0
aCB7IDAgfTsKICAgICB1bnNpZ25lZCBzaG9ydCBjb3VudDsKLSAgICBmbG9hdCBnYXAgeyAwIH07
CisgICAgR2FwTGVuZ3RoIGNvbHVtbkdhcDsKICAgICBCb3JkZXJWYWx1ZSBydWxlOwogICAgIENv
bG9yIHZpc2l0ZWRMaW5rQ29sdW1uUnVsZUNvbG9yOwogCiAgICAgYm9vbCBhdXRvV2lkdGggOiAx
OwogICAgIGJvb2wgYXV0b0NvdW50IDogMTsKLSAgICBib29sIG5vcm1hbEdhcCA6IDE7CiAgICAg
dW5zaWduZWQgZmlsbCA6IDE7IC8vIENvbHVtbkZpbGwKICAgICB1bnNpZ25lZCBjb2x1bW5TcGFu
IDogMTsKICAgICB1bnNpZ25lZCBheGlzIDogMjsgLy8gQ29sdW1uQXhpcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCmluZGV4IGI2ZTcyMDQ1
OTM4NjY4NTAyYzBiOTQ2NWRkMjkxNTk0NGU4NmVlNjEuLjQwMTMyY2Y0MWIwZjY2NDI4NDM4ZDk3
NDhlMTJkYjQ5YjI4MGIxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZUZvckRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVGb3JEb2N1bWVudC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUmVuZGVyU3R5bGUgcmVzb2x2
ZUZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICBjb25zdCBQYWdpbmF0
aW9uJiBwYWdpbmF0aW9uID0gcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5wYWdpbmF0aW9uKCk7CiAg
ICAgaWYgKHBhZ2luYXRpb24ubW9kZSAhPSBQYWdpbmF0aW9uOjpVbnBhZ2luYXRlZCkgewogICAg
ICAgICBkb2N1bWVudFN0eWxlLnNldENvbHVtblN0eWxlc0Zyb21QYWdpbmF0aW9uTW9kZShwYWdp
bmF0aW9uLm1vZGUpOwotICAgICAgICBkb2N1bWVudFN0eWxlLnNldENvbHVtbkdhcChwYWdpbmF0
aW9uLmdhcCk7CisgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uR2FwKEdhcExlbmd0aChM
ZW5ndGgoKGludCkgcGFnaW5hdGlvbi5nYXAsIEZpeGVkKSkpOwogICAgICAgICBpZiAocmVuZGVy
Vmlldy5tdWx0aUNvbHVtbkZsb3coKSkKICAgICAgICAgICAgIHJlbmRlclZpZXcudXBkYXRlQ29s
dW1uUHJvZ3Jlc3Npb25Gcm9tU3R5bGUoZG9jdW1lbnRTdHlsZSk7CiAgICAgICAgIGlmIChyZW5k
ZXJWaWV3LnBhZ2UoKS5wYWdpbmF0aW9uTGluZUdyaWRFbmFibGVkKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332263</attachid>
            <date>2018-01-25 07:19:17 -0800</date>
            <delta_ts>2018-01-25 08:17:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182004-20180125161915.patch</filename>
            <type>text/plain</type>
            <size>41443</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNhOGQ4NzM2NDQyODhl
YzVjZDlmY2JiYzg3Y2E5NjlmNDFlMzc2Mi4uZTU5MDYyYTczMGExNmRmN2I2NzdkOGViZjM4MjMw
YTEwOTg5YTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE4LTAxLTI1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtbXVs
dGljb2xdIFN1cHBvcnQgcGVyY2VudGFnZXMgaW4gY29sdW1uLWdhcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMDA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHBlcmNlbnRh
Z2Ugc3VwcG9ydCB0byBjb2x1bW4tZ2FwIHByb3BlcnR5LgorCisgICAgICAgIE1vc3Qgb2YgdGhl
IGNoYW5nZXMgYXJlIHJlbGF0ZWQgdG8gdGhlIHBhcnNpbmcgbG9naWMsCisgICAgICAgIHRoZSBj
b2x1bW4tZ2FwIHByb3BlcnR5IG5vdyBhY2NlcHRzIGJvdGggbGVuZ3RoIGFuZCBwZXJjZW50YWdl
cywKKyAgICAgICAgb24gdG9wIG9mIHRoZSAibm9ybWFsIiBpbml0aWFsIHZhbHVlLgorICAgICAg
ICBBIG5ldyB1dGlsaXR5IGNsYXNzIEdhcExlbmd0aCBoYXMgYmVlbiBhZGRlZCwgYXMgaXQnbGwg
YmUgdXNlZnVsCisgICAgICAgIHRvIGltcGxlbWVudCByb3ctZ2FwIGluIHRoZSBmdXR1cmUuCisK
KyAgICAgICAgQXBhcnQgZnJvbSB0aGF0IHRoZSBtdXRpY29sdW1uIGxheW91dCBjb2RlIGhhcyBi
ZWVuIG1vZGlmaWVkCisgICAgICAgIHRvIHJlc29sdmUgdGhlIHBlcmNlbnRhZ2UgZ2FwcyAodHJl
YXRpbmcgdGhlbSBhcyB6ZXJvIHdoaWxlIGNvbXB1dGluZworICAgICAgICBwcmVmZXJyZWQgd2lk
dGhzKSBhbmQgcmVzb2x2aW5nIHRoZW0gZHVyaW5nIGxheW91dC4KKyAgICAgICAgVGhpcyBkb2Vz
bid0IGZvbGxvdyB0aGUgY3VycmVudCB0ZXh0IG9uIHRoZSBzcGVjLCBidXQgdGhlcmUgaXMgYW4K
KyAgICAgICAgb25nb2luZyBkaXNjdXNzaW9uIHRoYXQgbWlnaHQgY2F1c2UgdGhlIHRleHQgaXMg
Y2hhbmdlZDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNz
dWVzLzUwOSNpc3N1ZWNvbW1lbnQtMzU1MjQyMTAxCisgICAgICAgIFdlIGNvdWxkIHVwZGF0ZSB0
aGUgaW1wbGVtZW50YXRpb24gb25jZSB3ZSBoYXZlIGEgZGVmaW5pdGl2ZSBhbnN3ZXIKKyAgICAg
ICAgZnJvbSB0aGUgQ1NTIFdHLgorCisgICAgICAgIFRlc3Q6IHdlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1wZXJjZW50YWdlLTAwMS5odG1sCisKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5
aW5TdHlsZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBj
c3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxk
ZXJDb252ZXJ0ZXI6OmNvbnZlcnRHYXBMZW5ndGgpOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxk
ZXJDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcndhcmRJbmhlcml0ZWRWYWx1ZSk6Cisg
ICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb25zdW1lR2FwTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFy
c2VyOjpwYXJzZVNpbmdsZVZhbHVlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5UGFnaW5hdGlvblRvVmlld3BvcnQpOgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmJsZW5kRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFu
aW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9ja0Zsb3c6OmNvbHVtbkdhcCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29s
dW1uU2V0Ojpjb2x1bW5HYXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HYXBM
ZW5ndGguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9HYXBMZW5ndGguaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHYXBMZW5ndGg6OkdhcExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpHYXBMZW5ndGg6Omlz
Tm9ybWFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdhcExlbmd0aDo6bGVuZ3RoIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhcExlbmd0aDo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTdHlsZTo6Y29sdW1uR2FwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzZXRDb2x1bW5HYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRp
YWxDb2x1bW5HYXApOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNv
bERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0g
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQpOgorCiAyMDE4LTAxLTI1ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ2Fpcm9dIFVzZSBHcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm8gaW4gTmljb3NpYTo6UGFpbnRpbmdDb250ZXh0Q2Fpcm8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggOTg0YmQ3ODM5MDhmZmQ1YzdkZjA5Yzg2ZjA0MTFmMmE2NzEwNTA4MC4u
MjI1N2U4YTlhYWQ2ZjYxNzQzMzYzZWEyOTkyMmViYTA5NzZlOGE3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE5MTUsNiArMTkxNSw3IEBAIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHAKIHJlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKIHJlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5jcHAKIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCityZW5kZXJpbmcvc3R5
bGUvR2FwTGVuZ3RoLmNwcAogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5jcHAKIHJlbmRl
cmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwCiByZW5kZXJpbmcvc3R5bGUvS2V5
ZnJhbWVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDUxZDM1MTlmMmM0MzAzYmFjZTJhNjc2ZTgyNTUwMjU1YTcyNTA3
NGUuLmY5Njc4NGEzZDQyMjg1ZDJkZWM0OTRiMDNhZDc4MTZkNTVkYmQzNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzOTEs
NiArMjM5MSw3IEBACiAJCThBRjRFNTU2MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5h
dmlnYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBRjRFNTUzMTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCAqLzsg
fTsKIAkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1OTExREM1
QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsKIAkJOEU0Qzk2REQxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hSZXNwb25zZS5oICovOyB9OworCQk4RUM2Qzk2MzIwMUEyNTE2MDBGQkZBNTMgLyogR2FwTGVu
Z3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RUM2
Qzk2MTIwMUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTAwMTc3NDAxMkUwMzQ3ODAw
NjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKQEAgLTk5MzUsOCArOTkzNiwxMCBAQAogCQk4QUY0RTU1
NDExREM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4QUY0RTU1OTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1p
bmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9ybWFuY2VUaW1pbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFGNEU1NUExMURDNUE2MzAwMEVEM0RF
IC8qIFBlcmZvcm1hbmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3Jt
YW5jZVRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThFMzNDRDkzMjAx
QTI5QzEwMEUzOTA5MyAvKiBHYXBMZW5ndGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2FwTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNw
b25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RUM2Qzk2MTIwMUEyNTAxMDBG
QkZBNTMgLyogR2FwTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdh
cExlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjY3NTYxOTEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4
OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRF
eGVjU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDU2
LDYgKzIzNDU5LDggQEAKIAkJCQlCQzIyNzQ2RTBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5o
ICovLAogCQkJCUJDNUVCNjlDMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuY3BwICovLAog
CQkJCUJDNUVCNjlEMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCAqLywKKwkJCQk4RTMz
Q0Q5MzIwMUEyOUMxMDBFMzkwOTMgLyogR2FwTGVuZ3RoLmNwcCAqLywKKwkJCQk4RUM2Qzk2MTIw
MUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi8sCiAJCQkJQ0QzRTI1MUIxODA0NkIwNjAw
RTI3RjU2IC8qIEdyaWRBcmVhLmggKi8sCiAJCQkJQ0RFRjRGRDYxN0U4NUM4RjAwQUVFMjRCIC8q
IEdyaWRMZW5ndGguaCAqLywKIAkJCQlFMUY4MTc0NTFFODk3QTUyMDBGMjJDRDAgLyogR3JpZFBv
c2l0aW9uLmNwcCAqLywKQEAgLTI3MzQ0LDYgKzI3MzQ5LDcgQEAKIAkJCQk1MUE5RDlFQTE5NUI5
MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJF
MTkyMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNUJFMTkzMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCThFQzZDOTYzMjAxQTI1MTYwMEZCRkE1MyAvKiBHYXBMZW5ndGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0Nzc1MDlBQzREOEUwMEE2QUFCNCAvKiBHYXBSZWN0
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQzMkU4NDcwQzUxNDkzODAwQjE1MDBGIC8qIEdDQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDMDU0Q0MxMTE4QzhFNDAwQ0UyNjM2IC8q
IGdlbmVyYXRlLWJpbmRpbmdzLnBsIGluIEhlYWRlcnMgKi8sCkBAIC0yODYyNiw3ICsyODYzMiw2
IEBACiAJCQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcu
aCBpbiBIZWFkZXJzICovLAotCQkJCTk0Q0ZENjBEMUZFQUNFRkUwMDI0ODhBRCAvKiBSZW5kZXJM
aW5lc0NsYW1wU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NF
NDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEQ0Q3RjMxRDQ3RTY1NTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0E4MDYxNzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI5MTYwLDYgKzI5MTY1LDggQEAKIAkJCQkzQzI0NEZFQUEzNzVBQzYzM0Y4
OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEJF
MDMwQTIwRjMxMTJGQjAwM0MxQTQ2IC8qIFJlbmRlckxpbmVCb3hMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VBNDg2NDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyTGluZUJyZWFrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NENGRDYwQTFGRTk4NjdFMDAyNDg4QUQgLyogUmVuZGVyTGluZXND
bGFtcEZsb3cuaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Q0ZENjBEMUZFQUNFRkUwMDI0ODhBRCAv
KiBSZW5kZXJMaW5lc0NsYW1wU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQkI1NDE5RjBBQ0RE
RkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdB
NTIwQTE5MUE1MjAwQThFRjVGIC8qIFJlbmRlckxpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBN0E1MDBBMTkxQTUyMDBBOEVGNUYgLyogUmVuZGVyTGlzdE1hcmtlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yOTI5Myw3ICsyOTMwMCw2IEBACiAJCQkJQTVDRTlGM0YxRTRDNDE3NDAwMUJC
RTdDIC8qIFJlc291cmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkMyRDIzMDFDRTVC
OEExMDBEMTg4MEIgLyogUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTUwNzFFODUxQzU2RDBEQzAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VEYXRhLmggaW4g
SGVhZGVycyAqLywKLQkJCQk5NENGRDYwQTFGRTk4NjdFMDAyNDg4QUQgLyogUmVuZGVyTGluZXND
bGFtcEZsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEQkFENkVGMUJDREQ5NTcwMDM4MTMyNSAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwNzFFODcxQzU2
RDBFMTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCA5NzRmYTZmY2YwMzIzOGU3MzA5ZTIyNzFiZGU2ZWQzOWM2M2Y4ZGIzLi4wYTQ3MTZkNDE0
ZWI2NDBmM2EyZDZiZWY1ZjY5NTk0ZTU5NWQ4NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjkyNiw5ICsyOTI2LDkg
QEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3Bl
cnR5aW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVt
bkZpbGw6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxl
LmNvbHVtbkZpbGwoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5HYXA6Ci0gICAg
ICAgICAgICBpZiAoc3R5bGUuaGFzTm9ybWFsQ29sdW1uR2FwKCkpCisgICAgICAgICAgICBpZiAo
c3R5bGUuY29sdW1uR2FwKCkuaXNOb3JtYWwoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7Ci0gICAgICAg
ICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZShzdHlsZS5jb2x1bW5HYXAoKSwgc3R5
bGUpOworICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgo
c3R5bGUuY29sdW1uR2FwKCkubGVuZ3RoKCksIHN0eWxlKTsKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdENvbHVtblByb2dyZXNzaW9uOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5jb2x1bW5Qcm9ncmVzc2lvbigpKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVDb2xvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCmluZGV4IDFiNmM1ZjkxMjUwNTk5YzYxZmVhZjQ5YWU5MmZhNGFkZjc0MWY5M2MuLmJi
YzBhNTliODI4Y2U4ODdkMTEyMTg5ZjA5M2Q0YmFhYzM1NGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtNDMwNiwxMSArNDMwNiwxMSBAQAogICAgICAgICAgICAg
ICAgICJhbGlhc2VzIjogWwogICAgICAgICAgICAgICAgICAgICAiLXdlYmtpdC1jb2x1bW4tZ2Fw
IgogICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImN1c3RvbSI6ICJBbGwiCisg
ICAgICAgICAgICAgICAgImNvbnZlcnRlciI6ICJHYXBMZW5ndGgiCiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiAgewogICAgICAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJjc3MtbXVsdGljb2wiLAotICAgICAgICAgICAgICAgICJ1cmwiOiAiIgorICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1tdWx0aWNvbC8jY29s
dW1uLWdhcCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgIi13ZWJraXQtY29s
dW1uLXByb2dyZXNzaW9uIjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZl
cnRlci5oCmluZGV4IDIwZDc5NGQ1MjlkNDBjYjAxNTA5MDQ1ZmRhZTYzNjM2Njk3ODhmYjMuLmY0
ODBjYjJiYTZmZTc0MzQ3ZGZmNWQ4ZDVkZmQ1Zjk0Y2RiZjIzODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRQb3NpdGlvbkNvbXBvbmVudFgoU3R5bGVSZXNv
bHZlciYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIExlbmd0aCBjb252ZXJ0UG9zaXRp
b25Db21wb25lbnRZKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOworCisgICAgc3Rh
dGljIEdhcExlbmd0aCBjb252ZXJ0R2FwTGVuZ3RoKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NW
YWx1ZSYpOwogICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgU3R5bGVCdWlsZGVyQ3Vz
dG9tOwpAQCAtMTUzOCw0ICsxNTQwLDEzIEBAIGlubGluZSBIYW5naW5nUHVuY3R1YXRpb24gU3R5
bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0SGFuZ2luZ1B1bmN0dWF0aW9uKFN0eWxlCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAoraW5saW5lIEdhcExlbmd0aCBTdHlsZUJ1aWxkZXJDb252ZXJ0
ZXI6OmNvbnZlcnRHYXBMZW5ndGgoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgY29uc3Qg
Q1NTVmFsdWUmIHZhbHVlKQoreworICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUudmFsdWVJ
RCgpID09IENTU1ZhbHVlTm9ybWFsKQorICAgICAgICByZXR1cm4gR2FwTGVuZ3RoKCk7CisKKyAg
ICByZXR1cm4gR2FwTGVuZ3RoKGNvbnZlcnRMZW5ndGgoc3R5bGVSZXNvbHZlciwgdmFsdWUpKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRl
ckN1c3RvbS5oCmluZGV4IGQ0OGVkNmQ0NTU5MzUwNmQzZGExMjk4NDdmMWFiMjJmZDRiZTkyZTku
LjU0ZjE2MjQxMDU3MWM4ZTc5MjUxYmNmMmU2Mzg0NzRlZDQ1NTY3N2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTYyLDYgKzYyLDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gaW5saW5lIFQgZm9yd2FyZEluaGVyaXRlZFZhbHVlKFQmJiB2YWx1ZSkgeyByZXR1
cm4gc3RkOjpmb3IKIGlubGluZSBMZW5ndGggZm9yd2FyZEluaGVyaXRlZFZhbHVlKGNvbnN0IExl
bmd0aCYgdmFsdWUpIHsgYXV0byBjb3B5ID0gdmFsdWU7IHJldHVybiBjb3B5OyB9CiBpbmxpbmUg
TGVuZ3RoU2l6ZSBmb3J3YXJkSW5oZXJpdGVkVmFsdWUoY29uc3QgTGVuZ3RoU2l6ZSYgdmFsdWUp
IHsgYXV0byBjb3B5ID0gdmFsdWU7IHJldHVybiBjb3B5OyB9CiBpbmxpbmUgTGVuZ3RoQm94IGZv
cndhcmRJbmhlcml0ZWRWYWx1ZShjb25zdCBMZW5ndGhCb3gmIHZhbHVlKSB7IGF1dG8gY29weSA9
IHZhbHVlOyByZXR1cm4gY29weTsgfQoraW5saW5lIEdhcExlbmd0aCBmb3J3YXJkSW5oZXJpdGVk
VmFsdWUoY29uc3QgR2FwTGVuZ3RoJiB2YWx1ZSkgeyBhdXRvIGNvcHkgPSB2YWx1ZTsgcmV0dXJu
IGNvcHk7IH0KIAogLy8gTm90ZSB0aGF0IHdlIGFzc3VtZSB0aGUgQ1NTIHBhcnNlciBvbmx5IGFs
bG93cyB2YWxpZCBDU1NWYWx1ZSB0eXBlcy4KIGNsYXNzIFN0eWxlQnVpbGRlckN1c3RvbSB7CkBA
IC03Myw3ICs3NCw2IEBAIHB1YmxpYzoKICAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5E
TEVSUyhCb3JkZXJJbWFnZVdpZHRoKTsKICAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5E
TEVSUyhCb3hTaGFkb3cpOwogICAgIERFQ0xBUkVfUFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKENs
aXApOwotICAgIERFQ0xBUkVfUFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKENvbHVtbkdhcCk7CiAg
ICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQ29udGVudCk7CiAgICAgREVDTEFS
RV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQ291bnRlckluY3JlbWVudCk7CiAgICAgREVDTEFS
RV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQ291bnRlclJlc2V0KTsKQEAgLTEzNjYsMjcgKzEz
NjYsNiBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVXZWJraXRT
dmdTaGFkb3coU3R5bGVSZXNvbHZlciYgc3R5bGVSZQogICAgIHN2Z1N0eWxlLnNldFNoYWRvdyhz
dGQ6Om1ha2VfdW5pcXVlPFNoYWRvd0RhdGE+KGxvY2F0aW9uLCBibHVyLCAwLCBOb3JtYWwsIGZh
bHNlLCBjb2xvci5pc1ZhbGlkKCkgPyBjb2xvciA6IENvbG9yOjp0cmFuc3BhcmVudCkpOwogfQog
Ci1pbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5pdGlhbENvbHVtbkdhcChT
dHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyKQotewotICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUo
KS0+c2V0SGFzTm9ybWFsQ29sdW1uR2FwKCk7Ci19Ci0KLWlubGluZSB2b2lkIFN0eWxlQnVpbGRl
ckN1c3RvbTo6YXBwbHlJbmhlcml0Q29sdW1uR2FwKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2
ZXIpCi17Ci0gICAgaWYgKHN0eWxlUmVzb2x2ZXIucGFyZW50U3R5bGUoKS0+aGFzTm9ybWFsQ29s
dW1uR2FwKCkpCi0gICAgICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0SGFzTm9ybWFsQ29s
dW1uR2FwKCk7Ci0gICAgZWxzZQotICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldENv
bHVtbkdhcChzdHlsZVJlc29sdmVyLnBhcmVudFN0eWxlKCktPmNvbHVtbkdhcCgpKTsKLX0KLQot
aW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlQ29sdW1uR2FwKFN0eWxl
UmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlJiB2YWx1ZSkKLXsKLSAgICBpZiAoZG93
bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb3Jt
YWwpCi0gICAgICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0SGFzTm9ybWFsQ29sdW1uR2Fw
KCk7Ci0gICAgZWxzZQotICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldENvbHVtbkdh
cChTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRDb21wdXRlZExlbmd0aDxmbG9hdD4oc3R5
bGVSZXNvbHZlciwgdmFsdWUpKTsKLX0KLQogaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9t
OjphcHBseUluaXRpYWxDb250ZW50KFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIpCiB7CiAg
ICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5jbGVhckNvbnRlbnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggMGQzNDNjOTgxMzI0
ZGNmM2VhYjYyMTUxYzNiYjY1MjQzNmZmZWFmYi4uMTg5MjM1NmI0YjkzMTc0ZDU1MTcxYzUwMTcy
MTczZmRmZjRhMTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKQEAgLTEzOTIsMTEgKzEzOTIsMTEgQEAgc3RhdGljIFJlZlB0cjxDU1NW
YWx1ZT4gY29uc3VtZUNvbHVtbkNvdW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogICAg
IHJldHVybiBjb25zdW1lUG9zaXRpdmVJbnRlZ2VyKHJhbmdlKTsKIH0KIAotc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUNvbHVtbkdhcChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Q1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUdhcExlbmd0aChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBj
c3NQYXJzZXJNb2RlKQogewogICAgIGlmIChyYW5nZS5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1ZU5v
cm1hbCkKICAgICAgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Ci0gICAgcmV0dXJuIGNv
bnN1bWVMZW5ndGgocmFuZ2UsIGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7
CisgICAgcmV0dXJuIGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2UsIGNzc1BhcnNlck1vZGUs
IFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CiB9CiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNv
bnN1bWVDb2x1bW5TcGFuKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQpAQCAtNDAzNSw3ICs0
MDM1LDcgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICAgICBjYXNlIENTU1Byb3BlcnR5Q29s
dW1uQ291bnQ6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ29sdW1uQ291bnQobV9yYW5nZSk7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtbkdhcDoKLSAgICAgICAgcmV0dXJuIGNvbnN1bWVDb2x1
bW5HYXAobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOworICAgICAgICByZXR1cm4gY29uc3VtZUdh
cExlbmd0aChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNv
bHVtblNwYW46CiAgICAgICAgIHJldHVybiBjb25zdW1lQ29sdW1uU3BhbihtX3JhbmdlKTsKICAg
ICBjYXNlIENTU1Byb3BlcnR5Wm9vbToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAz
M2U4YjI1ZTBjYjRjMThkZjg0MDk5ZjVjZWJlOWMyMzA5MWMzOGNmLi4zOGMzNGQ5OThlZDczNzcz
ZmY5OWUyNTEzMjc0MWNiMjc0OTliZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC03MTYsNyArNzE2LDggQEAgdm9pZCBGcmFtZVZpZXc6OmFwcGx5UGFnaW5hdGlvblRvVmlld3Bv
cnQoKQogICAgIEVPdmVyZmxvdyBvdmVyZmxvd1kgPSBkb2N1bWVudE9yQm9keVJlbmRlcmVyLT5z
dHlsZSgpLm92ZXJmbG93WSgpOwogICAgIGlmIChvdmVyZmxvd1kgPT0gT1BBR0VEWCB8fCBvdmVy
Zmxvd1kgPT0gT1BBR0VEWSkgewogICAgICAgICBwYWdpbmF0aW9uLm1vZGUgPSBXZWJDb3JlOjpw
YWdpbmF0aW9uTW9kZUZvclJlbmRlclN0eWxlKGRvY3VtZW50T3JCb2R5UmVuZGVyZXItPnN0eWxl
KCkpOwotICAgICAgICBwYWdpbmF0aW9uLmdhcCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkb2N1
bWVudE9yQm9keVJlbmRlcmVyLT5zdHlsZSgpLmNvbHVtbkdhcCgpKTsKKyAgICAgICAgR2FwTGVu
Z3RoIGNvbHVtbkdhcExlbmd0aCA9IGRvY3VtZW50T3JCb2R5UmVuZGVyZXItPnN0eWxlKCkuY29s
dW1uR2FwKCk7CisgICAgICAgIHBhZ2luYXRpb24uZ2FwID0gY29sdW1uR2FwTGVuZ3RoLmlzTm9y
bWFsKCkgPyBkb2N1bWVudE9yQm9keVJlbmRlcmVyLT5zdHlsZSgpLmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkgOiB2YWx1ZUZvckxlbmd0aChjb2x1bW5HYXBMZW5ndGgubGVu
Z3RoKCksIGRvd25jYXN0PFJlbmRlckJveD4oZG9jdW1lbnRPckJvZHlSZW5kZXJlciktPmF2YWls
YWJsZUxvZ2ljYWxXaWR0aCgpKS50b1Vuc2lnbmVkKCk7CiAgICAgfQogICAgIHNldFBhZ2luYXRp
b24ocGFnaW5hdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggZWExMjE4OTUxNTgzMGU5Mzg4NTY1
ODRkMWI5Yjc1MzlhMTlmMWU0Zi4uMzNiODQxYzg0MGVjZGU4MTA4YTYzODcyZjc3ZjBjYjRlODlk
NmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1By
b3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29u
dmVyc2lvbi5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCIKICNpbmNsdWRl
ICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJHYXBMZW5ndGguaCIKICNpbmNsdWRl
ICJJZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIgpAQCAtOTAsNiArOTEsMTEgQEAg
c3RhdGljIGlubGluZSBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IENTU1Byb3BlcnR5QmxlbmRpbmdD
bGllbnQqLCBjb25zdCBMZW5ndGgmIGYKICAgICByZXR1cm4gYmxlbmQoZnJvbSwgdG8sIHByb2dy
ZXNzKTsKIH0KIAorc3RhdGljIGlubGluZSBHYXBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IENTU1By
b3BlcnR5QmxlbmRpbmdDbGllbnQqLCBjb25zdCBHYXBMZW5ndGgmIGZyb20sIGNvbnN0IEdhcExl
bmd0aCYgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3sKKyAgICByZXR1cm4gKGZyb20uaXNOb3JtYWwo
KSB8fCB0by5pc05vcm1hbCgpKSA/IHRvIDogYmxlbmQoZnJvbS5sZW5ndGgoKSwgdG8ubGVuZ3Ro
KCksIHByb2dyZXNzKTsKK30KKwogc3RhdGljIGlubGluZSBMZW5ndGhTaXplIGJsZW5kRnVuYyhj
b25zdCBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50KiBhbmltLCBjb25zdCBMZW5ndGhTaXplJiBm
cm9tLCBjb25zdCBMZW5ndGhTaXplJiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIHJldHVy
biB7IGJsZW5kRnVuYyhhbmltLCBmcm9tLndpZHRoLCB0by53aWR0aCwgcHJvZ3Jlc3MpLCBibGVu
ZEZ1bmMoYW5pbSwgZnJvbS5oZWlnaHQsIHRvLmhlaWdodCwgcHJvZ3Jlc3MpIH07CkBAIC0xNTE5
LDcgKzE1MjUsNyBAQCBDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5
QW5pbWF0aW9uV3JhcHBlck1hcCgpCiAKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxmbG9h
dD4oQ1NTUHJvcGVydHlGb250U2l6ZSwgJlJlbmRlclN0eWxlOjpjb21wdXRlZEZvbnRTaXplLCAm
UmVuZGVyU3R5bGU6OnNldEZvbnRTaXplKSwKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjx1
bnNpZ25lZCBzaG9ydD4oQ1NTUHJvcGVydHlDb2x1bW5SdWxlV2lkdGgsICZSZW5kZXJTdHlsZTo6
Y29sdW1uUnVsZVdpZHRoLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVXaWR0aCksCi0gICAg
ICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5Q29sdW1uR2FwLCAmUmVu
ZGVyU3R5bGU6OmNvbHVtbkdhcCwgJlJlbmRlclN0eWxlOjpzZXRDb2x1bW5HYXApLAorICAgICAg
ICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFwcGVyPEdhcExlbmd0aD4oQ1NTUHJvcGVydHlDb2x1bW5H
YXAsICZSZW5kZXJTdHlsZTo6Y29sdW1uR2FwLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtbkdhcCks
CiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8dW5zaWduZWQgc2hvcnQ+KENTU1Byb3BlcnR5
Q29sdW1uQ291bnQsICZSZW5kZXJTdHlsZTo6Y29sdW1uQ291bnQsICZSZW5kZXJTdHlsZTo6c2V0
Q29sdW1uQ291bnQpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9w
ZXJ0eUNvbHVtbldpZHRoLCAmUmVuZGVyU3R5bGU6OmNvbHVtbldpZHRoLCAmUmVuZGVyU3R5bGU6
OnNldENvbHVtbldpZHRoKSwKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NT
UHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZywgJlJlbmRlclN0eWxlOjpob3Jp
em9udGFsQm9yZGVyU3BhY2luZywgJlJlbmRlclN0eWxlOjpzZXRIb3Jpem9udGFsQm9yZGVyU3Bh
Y2luZyksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmlu
ZGV4IDI4Y2Y0ZTBmOTI5NzY5Nzc3OTBlM2E5MmNiNzJlNjJkZmNlMTE4ZWUuLjVmYmYwNzY1Yzk1
ZTkzZWFkMThjYjJlODIzMDk2Y2Q4ZTlmNTNjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0zNzEsOSArMzcxLDkgQEAgYm9vbCBSZW5kZXJC
bG9ja0Zsb3c6OnJlY29tcHV0ZUxvZ2ljYWxXaWR0aEFuZENvbHVtbldpZHRoKCkKIAogTGF5b3V0
VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OmNvbHVtbkdhcCgpIGNvbnN0CiB7Ci0gICAgaWYgKHN0eWxl
KCkuaGFzTm9ybWFsQ29sdW1uR2FwKCkpCisgICAgaWYgKHN0eWxlKCkuY29sdW1uR2FwKCkuaXNO
b3JtYWwoKSkKICAgICAgICAgcmV0dXJuIHN0eWxlKCkuZm9udERlc2NyaXB0aW9uKCkuY29tcHV0
ZWRQaXhlbFNpemUoKTsgLy8gIjFlbSIgaXMgcmVjb21tZW5kZWQgYXMgdGhlIG5vcm1hbCBnYXAg
c2V0dGluZy4gTWF0Y2hlcyA8cD4gbWFyZ2lucy4KLSAgICByZXR1cm4gc3R5bGUoKS5jb2x1bW5H
YXAoKTsKKyAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5jb2x1bW5HYXAoKS5sZW5n
dGgoKSwgYXZhaWxhYmxlTG9naWNhbFdpZHRoKCkpOwogfQogCiB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6Y29tcHV0ZUNvbHVtbkNvdW50QW5kV2lkdGgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKaW5kZXggYTgyYzFmYTM4N2Q4MjIzNzll
YWRjZTVjMzAzMmQ4ZjdhMDAxNDNlNy4uY2ViODVmNzZjMTZmN2UyN2NhNDJkOTc2ZDBhOTE4YWY2
YTAyM2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5TZXQuY3BwCkBAIC00MjksOSArNDI5LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJNdWx0aUNv
bHVtblNldDo6Y29sdW1uR2FwKCkgY29uc3QKICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSB3
aWxsIGNhY2hlIHRoZSBjb2x1bW4gZ2FwIHdoZW4gdGhlIHdpZHRocyBvZiBjb2x1bW5zIHN0YXJ0
IHZhcnlpbmcsIGJ1dCBmb3Igbm93IHdlIGp1c3QKICAgICAvLyBnbyB0byB0aGUgcGFyZW50IGJs
b2NrIHRvIGdldCB0aGUgZ2FwLgogICAgIFJlbmRlckJsb2NrRmxvdyYgcGFyZW50QmxvY2sgPSBk
b3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpwYXJlbnQoKSk7Ci0gICAgaWYgKHBhcmVudEJsb2Nr
LnN0eWxlKCkuaGFzTm9ybWFsQ29sdW1uR2FwKCkpCisgICAgaWYgKHBhcmVudEJsb2NrLnN0eWxl
KCkuY29sdW1uR2FwKCkuaXNOb3JtYWwoKSkKICAgICAgICAgcmV0dXJuIHBhcmVudEJsb2NrLnN0
eWxlKCkuZm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRQaXhlbFNpemUoKTsgLy8gIjFlbSIgaXMg
cmVjb21tZW5kZWQgYXMgdGhlIG5vcm1hbCBnYXAgc2V0dGluZy4gTWF0Y2hlcyA8cD4gbWFyZ2lu
cy4KLSAgICByZXR1cm4gcGFyZW50QmxvY2suc3R5bGUoKS5jb2x1bW5HYXAoKTsKKyAgICByZXR1
cm4gdmFsdWVGb3JMZW5ndGgocGFyZW50QmxvY2suc3R5bGUoKS5jb2x1bW5HYXAoKS5sZW5ndGgo
KSwgcGFyZW50QmxvY2suYXZhaWxhYmxlTG9naWNhbFdpZHRoKCkpOwogfQogCiB1bnNpZ25lZCBS
ZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sdW1uQ291bnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dhcExlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODY4M2RkMjMzZGFi
MzE5NGEzOTNkYzk3ZTI2NWM2NzQ4M2EwOTZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dhcExlbmd0aC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJHYXBMZW5ndGguaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBHYXBMZW5ndGgmIGdhcExlbmd0aCkKK3sKKyAgICBpZiAoZ2FwTGVuZ3RoLmlz
Tm9ybWFsKCkpCisgICAgICAgIHRzIDw8ICJub3JtYWwiOworICAgIGVsc2UKKyAgICAgICAgdHMg
PDwgZ2FwTGVuZ3RoLmxlbmd0aCgpOworICAgIHJldHVybiB0czsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dh
cExlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dhcExlbmd0aC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNlMTBiMDUxYmVlNTI2OTVkZThlMWI4NTE1MWU5YjZhMTU3YTUzYmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmgK
QEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiTGVuZ3RoLmgiCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3Mg
VGV4dFN0cmVhbTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNzIHdy
YXBzIHRoZSBsZW5naHQgb2YgYSBnYXAgdXNlZCBieSBwcm9wZXJ0aWVzIGNvbHVtbi1nYXAgYW5k
IHJvdy1nYXAuCisvLyBUaGUgdmFsaWQgdmFsdWVzIGFyZSAibm9ybWFsIiBvciBhIG5vbi1uZWdh
dGl2ZSA8bGVuZ3RoLXBlcmNlbnRhZ2U+LgorY2xhc3MgR2FwTGVuZ3RoIHsKK3B1YmxpYzoKKyAg
ICBHYXBMZW5ndGgoKQorICAgICAgICA6IG1faXNOb3JtYWwodHJ1ZSkKKyAgICB7CisgICAgfQor
CisgICAgR2FwTGVuZ3RoKGNvbnN0IExlbmd0aCYgbGVuZ3RoKQorICAgICAgICA6IG1faXNOb3Jt
YWwoZmFsc2UpCisgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgIHsKKyAgICB9CisKKyAg
ICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV9pc05vcm1hbDsgfQorICAgIGNvbnN0
IExlbmd0aCYgbGVuZ3RoKCkgY29uc3QgeyBBU1NFUlQoIW1faXNOb3JtYWwpOyByZXR1cm4gbV9s
ZW5ndGg7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHYXBMZW5ndGgmIG8pIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9pc05vcm1hbCA9PSBvLm1faXNOb3JtYWwgJiYgbV9s
ZW5ndGggPT0gby5tX2xlbmd0aDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2lzTm9y
bWFsOworICAgIExlbmd0aCBtX2xlbmd0aDsKK307CisKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBHYXBMZW5ndGgmKTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAppbmRleCAxMzk2ZDNmZmRiNTIyYzgyNGFkYTMwMGNlYjZjZTFhOTA3OTFlOTM2Li45NDc5ZThh
ZWEzMzIyZmI3ZDhjNjg1MDJhYWRhYWQxZmI3ZDc4MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IkRhdGFSZWYuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiRm9u
dERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiR2FwTGVuZ3RoLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NUeXBlcy5oIgogI2luY2x1ZGUgIkxlbmd0aC5oIgogI2luY2x1ZGUgIkxlbmd0aEJveC5oIgpA
QCAtNjA0LDggKzYwNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0F1dG9Db2x1bW5Db3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5hdXRvQ291
bnQ7IH0KICAgICBib29sIHNwZWNpZmllc0NvbHVtbnMoKSBjb25zdCB7IHJldHVybiAhaGFzQXV0
b0NvbHVtbkNvdW50KCkgfHwgIWhhc0F1dG9Db2x1bW5XaWR0aCgpIHx8ICFoYXNJbmxpbmVDb2x1
bW5BeGlzKCk7IH0KICAgICBDb2x1bW5GaWxsIGNvbHVtbkZpbGwoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxDb2x1bW5GaWxsPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+
ZmlsbCk7IH0KLSAgICBmbG9hdCBjb2x1bW5HYXAoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25J
bmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+Z2FwOyB9Ci0gICAgYm9vbCBoYXNOb3JtYWxDb2x1bW5H
YXAoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+bm9y
bWFsR2FwOyB9CisgICAgY29uc3QgR2FwTGVuZ3RoJiBjb2x1bW5HYXAoKSBjb25zdCB7IHJldHVy
biBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+Y29sdW1uR2FwOyB9CiAgICAgRUJv
cmRlclN0eWxlIGNvbHVtblJ1bGVTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVy
aXRlZERhdGEtPm11bHRpQ29sLT5ydWxlLnN0eWxlKCk7IH0KICAgICB1bnNpZ25lZCBzaG9ydCBj
b2x1bW5SdWxlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5t
dWx0aUNvbC0+cnVsZVdpZHRoKCk7IH0KICAgICBib29sIGNvbHVtblJ1bGVJc1RyYW5zcGFyZW50
KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPnJ1bGUu
aXNUcmFuc3BhcmVudCgpOyB9CkBAIC0xMTI5LDggKzExMjksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRDb2x1bW5Db3VudCh1bnNpZ25lZCBzaG9ydCBjKSB7IFNFVF9ORVNURURfVkFSKG1fcmFy
ZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBhdXRvQ291bnQsIGZhbHNlKTsgU0VUX05FU1RF
RF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIGNvdW50LCBjKTsgfQogICAg
IHZvaWQgc2V0SGFzQXV0b0NvbHVtbkNvdW50KCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25J
bmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgYXV0b0NvdW50LCB0cnVlKTsgU0VUX05FU1RFRF9WQVIo
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIGNvdW50LCAwKTsgfQogICAgIHZvaWQg
c2V0Q29sdW1uRmlsbChDb2x1bW5GaWxsIGNvbHVtbkZpbGwpIHsgU0VUX05FU1RFRF9WQVIobV9y
YXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIGZpbGwsIGNvbHVtbkZpbGwpOyB9Ci0gICAg
dm9pZCBzZXRDb2x1bW5HYXAoZmxvYXQgZikgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCBtdWx0aUNvbCwgbm9ybWFsR2FwLCBmYWxzZSk7IFNFVF9ORVNURURfVkFSKG1f
cmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBnYXAsIGYpOyB9Ci0gICAgdm9pZCBzZXRI
YXNOb3JtYWxDb2x1bW5HYXAoKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERh
dGEsIG11bHRpQ29sLCBub3JtYWxHYXAsIHRydWUpOyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25J
bmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgZ2FwLCAwKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uR2Fw
KEdhcExlbmd0aCYmIGdhcExlbmd0aCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLCBtdWx0aUNvbCwgY29sdW1uR2FwLCBXVEZNb3ZlKGdhcExlbmd0aCkpOyB9CiAgICAg
dm9pZCBzZXRDb2x1bW5SdWxlQ29sb3IoY29uc3QgQ29sb3ImIGMpIHsgU0VUX0JPUkRFUlZBTFVF
X0NPTE9SKG1fcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkubXVsdGlDb2wsIHJ1bGUsIGMp
OyB9CiAgICAgdm9pZCBzZXRDb2x1bW5SdWxlU3R5bGUoRUJvcmRlclN0eWxlIGIpIHsgU0VUX05F
U1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIHJ1bGUubV9zdHlsZSwg
Yik7IH0KICAgICB2b2lkIHNldENvbHVtblJ1bGVXaWR0aCh1bnNpZ25lZCBzaG9ydCB3KSB7IFNF
VF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBydWxlLm1fd2lk
dGgsIHcpOyB9CkBAIC0xNTMzLDYgKzE1MzIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHVuc2ln
bmVkIHNob3J0IGluaXRpYWxDb2x1bW5Db3VudCgpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMg
Q29sdW1uRmlsbCBpbml0aWFsQ29sdW1uRmlsbCgpIHsgcmV0dXJuIENvbHVtbkZpbGxCYWxhbmNl
OyB9CiAgICAgc3RhdGljIENvbHVtblNwYW4gaW5pdGlhbENvbHVtblNwYW4oKSB7IHJldHVybiBD
b2x1bW5TcGFuTm9uZTsgfQorICAgIHN0YXRpYyBHYXBMZW5ndGggaW5pdGlhbENvbHVtbkdhcCgp
IHsgcmV0dXJuIEdhcExlbmd0aCgpOyB9CiAgICAgc3RhdGljIGNvbnN0IFRyYW5zZm9ybU9wZXJh
dGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0oKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUcmFuc2Zv
cm1PcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRp
YWxUcmFuc2Zvcm1PcmlnaW5YKCkgeyByZXR1cm4gTGVuZ3RoKDUwLjBmLCBQZXJjZW50KTsgfQog
ICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRyYW5zZm9ybU9yaWdpblkoKSB7IHJldHVybiBMZW5n
dGgoNTAuMGYsIFBlcmNlbnQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmNwcAppbmRleCBiN2U3OTRmODRiMzk3Y2ZkOGI2YTQ5
YWFmZTFmN2ZiOThiNzc5MjFjLi40ZGMyNzkxYjZlZWQ5YzUyMTc3ODU5MGUwNjY5ZGIwOGQ1NzJh
NTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0
aUNvbERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11
bHRpQ29sRGF0YS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAgU3R5bGVNdWx0aUNvbERhdGE6OlN0eWxl
TXVsdGlDb2xEYXRhKCkKICAgICA6IGNvdW50KFJlbmRlclN0eWxlOjppbml0aWFsQ29sdW1uQ291
bnQoKSkKICAgICAsIGF1dG9XaWR0aCh0cnVlKQogICAgICwgYXV0b0NvdW50KHRydWUpCi0gICAg
LCBub3JtYWxHYXAodHJ1ZSkKICAgICAsIGZpbGwoUmVuZGVyU3R5bGU6OmluaXRpYWxDb2x1bW5G
aWxsKCkpCiAgICAgLCBjb2x1bW5TcGFuKGZhbHNlKQogICAgICwgYXhpcyhSZW5kZXJTdHlsZTo6
aW5pdGlhbENvbHVtbkF4aXMoKSkKQEAgLTQyLDEyICs0MSwxMSBAQCBpbmxpbmUgU3R5bGVNdWx0
aUNvbERhdGE6OlN0eWxlTXVsdGlDb2xEYXRhKGNvbnN0IFN0eWxlTXVsdGlDb2xEYXRhJiBvdGhl
cikKICAgICA6IFJlZkNvdW50ZWQ8U3R5bGVNdWx0aUNvbERhdGE+KCkKICAgICAsIHdpZHRoKG90
aGVyLndpZHRoKQogICAgICwgY291bnQob3RoZXIuY291bnQpCi0gICAgLCBnYXAob3RoZXIuZ2Fw
KQorICAgICwgY29sdW1uR2FwKG90aGVyLmNvbHVtbkdhcCkKICAgICAsIHJ1bGUob3RoZXIucnVs
ZSkKICAgICAsIHZpc2l0ZWRMaW5rQ29sdW1uUnVsZUNvbG9yKG90aGVyLnZpc2l0ZWRMaW5rQ29s
dW1uUnVsZUNvbG9yKQogICAgICwgYXV0b1dpZHRoKG90aGVyLmF1dG9XaWR0aCkKICAgICAsIGF1
dG9Db3VudChvdGhlci5hdXRvQ291bnQpCi0gICAgLCBub3JtYWxHYXAob3RoZXIubm9ybWFsR2Fw
KQogICAgICwgZmlsbChvdGhlci5maWxsKQogICAgICwgY29sdW1uU3BhbihvdGhlci5jb2x1bW5T
cGFuKQogICAgICwgYXhpcyhvdGhlci5heGlzKQpAQCAtNjIsOSArNjAsOSBAQCBSZWY8U3R5bGVN
dWx0aUNvbERhdGE+IFN0eWxlTXVsdGlDb2xEYXRhOjpjb3B5KCkgY29uc3QKIAogYm9vbCBTdHls
ZU11bHRpQ29sRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZU11bHRpQ29sRGF0YSYgb3RoZXIp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHdpZHRoID09IG90aGVyLndpZHRoICYmIGNvdW50ID09IG90
aGVyLmNvdW50ICYmIGdhcCA9PSBvdGhlci5nYXAKKyAgICByZXR1cm4gd2lkdGggPT0gb3RoZXIu
d2lkdGggJiYgY291bnQgPT0gb3RoZXIuY291bnQgJiYgY29sdW1uR2FwID09IG90aGVyLmNvbHVt
bkdhcAogICAgICAgICAmJiBydWxlID09IG90aGVyLnJ1bGUgJiYgdmlzaXRlZExpbmtDb2x1bW5S
dWxlQ29sb3IgPT0gb3RoZXIudmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3IKLSAgICAgICAgJiYg
YXV0b1dpZHRoID09IG90aGVyLmF1dG9XaWR0aCAmJiBhdXRvQ291bnQgPT0gb3RoZXIuYXV0b0Nv
dW50ICYmIG5vcm1hbEdhcCA9PSBvdGhlci5ub3JtYWxHYXAKKyAgICAgICAgJiYgYXV0b1dpZHRo
ID09IG90aGVyLmF1dG9XaWR0aCAmJiBhdXRvQ291bnQgPT0gb3RoZXIuYXV0b0NvdW50CiAgICAg
ICAgICYmIGZpbGwgPT0gb3RoZXIuZmlsbCAmJiBjb2x1bW5TcGFuID09IG90aGVyLmNvbHVtblNw
YW4KICAgICAgICAgJiYgYXhpcyA9PSBvdGhlci5heGlzICYmIHByb2dyZXNzaW9uID09IG90aGVy
LnByb2dyZXNzaW9uOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVNdWx0aUNvbERhdGEuaAppbmRleCBmOTJkMjNjNWY5MDhmMTQyNzFmMzM4NzQzYjgwNjA3
NTUyNTlhMGE2Li5hNmRlMWVmYmM3MTcyOGFjY2NmODQ0ZWJlZDA3MDQxZTljMmNmNzE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEu
aApAQCAtMjUsNiArMjUsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJCb3JkZXJWYWx1
ZS5oIgorI2luY2x1ZGUgIkdhcExlbmd0aC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3Rh
bnRzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtNDksMTMgKzUwLDEyIEBA
IHB1YmxpYzoKIAogICAgIGZsb2F0IHdpZHRoIHsgMCB9OwogICAgIHVuc2lnbmVkIHNob3J0IGNv
dW50OwotICAgIGZsb2F0IGdhcCB7IDAgfTsKKyAgICBHYXBMZW5ndGggY29sdW1uR2FwOwogICAg
IEJvcmRlclZhbHVlIHJ1bGU7CiAgICAgQ29sb3IgdmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3I7
CiAKICAgICBib29sIGF1dG9XaWR0aCA6IDE7CiAgICAgYm9vbCBhdXRvQ291bnQgOiAxOwotICAg
IGJvb2wgbm9ybWFsR2FwIDogMTsKICAgICB1bnNpZ25lZCBmaWxsIDogMTsgLy8gQ29sdW1uRmls
bAogICAgIHVuc2lnbmVkIGNvbHVtblNwYW4gOiAxOwogICAgIHVuc2lnbmVkIGF4aXMgOiAyOyAv
LyBDb2x1bW5BeGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JE
b2N1bWVudC5jcHAKaW5kZXggYjZlNzIwNDU5Mzg2Njg1MDJjMGI5NDY1ZGQyOTE1OTQ0ZTg2ZWU2
MS4uNDAxMzJjZjQxYjBmNjY0Mjg0MzhkOTc0OGUxMmRiNDliMjgwYjEwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcApAQCAtOTQsNyAr
OTQsNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSByZW5kZXJWaWV3LmZy
YW1lVmlldygpLnBhZ2luYXRpb24oKTsKICAgICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2lu
YXRpb246OlVucGFnaW5hdGVkKSB7CiAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5
bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7Ci0gICAgICAgIGRvY3VtZW50
U3R5bGUuc2V0Q29sdW1uR2FwKHBhZ2luYXRpb24uZ2FwKTsKKyAgICAgICAgZG9jdW1lbnRTdHls
ZS5zZXRDb2x1bW5HYXAoR2FwTGVuZ3RoKExlbmd0aCgoaW50KSBwYWdpbmF0aW9uLmdhcCwgRml4
ZWQpKSk7CiAgICAgICAgIGlmIChyZW5kZXJWaWV3Lm11bHRpQ29sdW1uRmxvdygpKQogICAgICAg
ICAgICAgcmVuZGVyVmlldy51cGRhdGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21TdHlsZShkb2N1bWVu
dFN0eWxlKTsKICAgICAgICAgaWYgKHJlbmRlclZpZXcucGFnZSgpLnBhZ2luYXRpb25MaW5lR3Jp
ZEVuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYTQxZjdkZjY1
ZTAxZThmZmIzYjk4MTQwODNlNDQ4OTc5MTEzNTQxYi4uNDNmY2JkOTNlZTZhZWE2NjhhYjQ5NWQw
ZDBkN2ExMmI3ODk4Njg2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTgtMDEtMjUgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW2Nzcy1tdWx0aWNvbF0gU3VwcG9ydCBwZXJjZW50YWdlcyBpbiBj
b2x1bW4tZ2FwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODIwMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOZXcgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgYSBmZXcgdGVzdHMgdGhhdCBhcmUgcGFzc2luZyBu
b3cuCisgICAgICAgIE9uZSBpcyB0aGUgdGVzdCBmb3IgdGhpcyBzcGVjaWZpYyBwYXRjaCwgdGhl
IG90aGVyIGFyZSB0ZXN0cyByZWxhdGVkIHRvIGFuaW1hdGlvbnMKKyAgICAgICAgb2YgIm5vcm1h
bCIgYW5kIGluaXRpYWwgdmFsdWUsIHRoYXQgd2VyZSBmaXhlZCB3aXRoIHRoZSBpbnRyb2R1Y3Rp
b24gb2YgR2FwTGVuZ3RoLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
bXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1hdGlvbi0wMDItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1hbmlt
YXRpb24tMDAzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtcGVyY2VudGFnZS0wMDEtZXhwZWN0ZWQudHh0Ogor
CiAyMDE4LTAxLTI1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtjc3MtbXVsdGljb2xdIFVwZGF0ZSBXUFQgdGVzdCBzdWl0ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11
bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0
aWNvbC1nYXAtYW5pbWF0aW9uLTAwMi1leHBlY3RlZC50eHQKaW5kZXggOTRjYzg5YzRlOGI2Mjli
NzJmZTU3MmFmYjZmMDkwZmNhY2MzMmYxZS4uNmVkYzc1MDFlMmFmZjcxNTc2MjcxOGIyNDgxZTdm
NGNmZTk5ZDQxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1hdGlvbi0wMDItZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIGNvbHVtbi1nYXA6IG5vcm1hbCBpcyBub3QgaW50
ZXJwb2xhYmxlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIxMDBweCIgYnV0IGdvdCAiODAuMjQx
Mzk0MDQyOTY4NzVweCIKK1BBU1MgY29sdW1uLWdhcDogbm9ybWFsIGlzIG5vdCBpbnRlcnBvbGFi
bGUgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1hdGlvbi0wMDMtZXhwZWN0ZWQudHh0CmluZGV4
IDRhNWU5M2FmNTkyZjNkOGQ0ZWFhNWRjN2MxMDFiYmEzMjdkNjNmYmUuLjMyMWIxNThlN2Y5NmIz
NDc0NGNhNDlkYzlkYzhmODEyNWE4NjkyMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAt
YW5pbWF0aW9uLTAwMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRp
b24tMDAzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBEZWZhdWx0IGNvbHVt
bi1nYXAgaXMgbm90IGludGVycG9sYWJsZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTAwcHgi
IGJ1dCBnb3QgIjgwLjI0MTM5NDA0Mjk2ODc1cHgiCitQQVNTIERlZmF1bHQgY29sdW1uLWdhcCBp
cyBub3QgaW50ZXJwb2xhYmxlIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLXBlcmNl
bnRhZ2UtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtcGVyY2VudGFnZS0wMDEt
ZXhwZWN0ZWQudHh0CmluZGV4IGEyNDIyNWJkMzYyYWUxYTYzYjI2NGY2MmI5YTg2YTMwOTIxYTJi
MjQuLmViZmEzZGRkMDhlNDc1MjhlZWI3MTk3NTMwMzNlY2MxZWVlNDcxMDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0
aWNvbC9tdWx0aWNvbC1nYXAtcGVyY2VudGFnZS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9t
dWx0aWNvbC1nYXAtcGVyY2VudGFnZS0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDc2ICsxLDE2IEBA
CiAKLUZBSUwgLm11bHRpY29sIDEgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNv
bCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjgiIGRhdGEtZXhwZWN0ZWQt
aGVpZ2h0PSIyMCI+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhY
PC9kaXY+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRh
LWV4cGVjdGVkLXdpZHRoPSIzIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+
Ci0gIDwvZGl2Pgotd2lkdGggZXhwZWN0ZWQgMyBidXQgZ290IDAKLUZBSUwgLm11bHRpY29sIDIg
YXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRh
dGEtZXhwZWN0ZWQtd2lkdGg9IjgiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI2MCI+Ci0gICAgPGRp
diBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRo
PSIzIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNjAiPlhYIFggWDwvZGl2PgotICAgIDxkaXYgZGF0
YS1vZmZzZXQteD0iNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMyIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjYwIj5YWCBYIFg8L2Rpdj4KLSAgPC9kaXY+Ci13aWR0aCBl
eHBlY3RlZCAzIGJ1dCBnb3QgMAotRkFJTCAubXVsdGljb2wgMyBhc3NlcnRfZXF1YWxzOiAKLTxk
aXYgY2xhc3M9Im11bHRpY29sIG1hcmdpblRvcEJvdHRvbSIgZGF0YS1leHBlY3RlZC13aWR0aD0i
OCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAi
IGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMiIGRhdGEtZXhwZWN0ZWQt
aGVpZ2h0PSIyMCI+WDwvZGl2PgotICAgIDxkaXYgZGF0YS1vZmZzZXQteD0iNSIgZGF0YS1vZmZz
ZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIw
Ij5YPC9kaXY+Ci0gIDwvZGl2Pgotd2lkdGggZXhwZWN0ZWQgMyBidXQgZ290IDAKLUZBSUwgLm11
bHRpY29sIDQgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BC
b3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIw
Ij4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0g
ICAgPGRpdiBkYXRhLW9mZnNldC14PSIxMjUiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0gIDwv
ZGl2Pgotd2lkdGggZXhwZWN0ZWQgNzUgYnV0IGdvdCA5MAotRkFJTCAubXVsdGljb2wgNSBhc3Nl
cnRfZXF1YWxzOiAKLTxkaXYgY2xhc3M9Im11bHRpY29sIG1hcmdpblRvcEJvdHRvbSIgZGF0YS1l
eHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAiPgotICAgIDxkaXYg
ZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
NzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+WFggWCBYPC9kaXY+Ci0gICAgPGRpdiBkYXRh
LW9mZnNldC14PSIxMjUiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1
IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAiPlhYIFggWDwvZGl2PgotICA8L2Rpdj4KLXdpZHRo
IGV4cGVjdGVkIDc1IGJ1dCBnb3QgOTAKLUZBSUwgLm11bHRpY29sIDYgYXNzZXJ0X2VxdWFsczog
Ci08ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0
LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iMjAiPlg8L2Rpdj4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjEyNSIg
ZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQt
aGVpZ2h0PSIyMCI+WDwvZGl2PgotICA8L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDc1IGJ1dCBnb3Qg
OTAKLUZBSUwgLm11bHRpY29sIDcgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNv
bCBpbmxpbmVCbG9jayIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4cGVjdGVkLWhl
aWdodD0iMjAiPgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRh
dGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9k
aXY+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2Pgot
PC9kaXY+Ci13aWR0aCBleHBlY3RlZCAyMDAgYnV0IGdvdCAyMjAKLUZBSUwgLm11bHRpY29sIDgg
YXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBpbmxpbmVCbG9jayIgZGF0YS1l
eHBlY3RlZC13aWR0aD0iMjQwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAiPgotICA8ZGl2IGRh
dGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijkw
IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAiPlhYIFggWDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zm
c2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iOTAiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+WFggWCBYPC9kaXY+Ci08L2Rpdj4KLXdpZHRoIGV4cGVj
dGVkIDI0MCBidXQgZ290IDI2MAotRkFJTCAubXVsdGljb2wgOSBhc3NlcnRfZXF1YWxzOiAKLTxk
aXYgY2xhc3M9Im11bHRpY29sIGlubGluZUJsb2NrIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI0MCIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRh
LW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxNSIgZGF0YS1leHBlY3RlZC1oZWln
aHQ9IjIwIj5YPC9kaXY+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0iMjUiIGRhdGEtb2Zmc2V0LXk9
IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlg8
L2Rpdj4KLTwvZGl2Pgotd2lkdGggZXhwZWN0ZWQgNDAgYnV0IGdvdCA2MAotRkFJTCAubXVsdGlj
b2wgMTAgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBmaXhlZDIwMCIgZGF0
YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPgotICA8ZGl2
IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0gIDxkaXYgZGF0YS1v
ZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotPC9kaXY+Ci13aWR0aCBleHBl
Y3RlZCA3NSBidXQgZ290IDkwCi1GQUlMIC5tdWx0aWNvbCAxMSBhc3NlcnRfZXF1YWxzOiAKLTxk
aXYgY2xhc3M9Im11bHRpY29sIGZpeGVkMjAwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyMDAiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1v
ZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSI0MCI+WFggWCBYPC9kaXY+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNl
dC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjQw
Ij5YWCBYIFg8L2Rpdj4KLTwvZGl2Pgotd2lkdGggZXhwZWN0ZWQgNzUgYnV0IGdvdCA5MAotRkFJ
TCAubXVsdGljb2wgMTIgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBmaXhl
ZDIwMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAi
PgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlg8L2Rpdj4KLSAgPGRpdiBk
YXRhLW9mZnNldC14PSIxMjUiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlg8L2Rpdj4KLTwvZGl2Pgotd2lkdGggZXhw
ZWN0ZWQgNzUgYnV0IGdvdCA5MAorUEFTUyAubXVsdGljb2wgMSAKK1BBU1MgLm11bHRpY29sIDIg
CitQQVNTIC5tdWx0aWNvbCAzIAorUEFTUyAubXVsdGljb2wgNCAKK1BBU1MgLm11bHRpY29sIDUg
CitQQVNTIC5tdWx0aWNvbCA2IAorUEFTUyAubXVsdGljb2wgNyAKK1BBU1MgLm11bHRpY29sIDgg
CitQQVNTIC5tdWx0aWNvbCA5IAorUEFTUyAubXVsdGljb2wgMTAgCitQQVNTIC5tdWx0aWNvbCAx
MSAKK1BBU1MgLm11bHRpY29sIDEyIAogTXVsdGljb2wgY29udGFpbmVyOiBmaXhlZCB3aWR0aAog
CiBYCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332268</attachid>
            <date>2018-01-25 08:17:06 -0800</date>
            <delta_ts>2018-01-26 05:11:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182004-20180125171704.patch</filename>
            <type>text/plain</type>
            <size>39820</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNhOGQ4NzM2NDQyODhl
YzVjZDlmY2JiYzg3Y2E5NjlmNDFlMzc2Mi4uZTU5MDYyYTczMGExNmRmN2I2NzdkOGViZjM4MjMw
YTEwOTg5YTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE4LTAxLTI1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtbXVs
dGljb2xdIFN1cHBvcnQgcGVyY2VudGFnZXMgaW4gY29sdW1uLWdhcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMDA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHBlcmNlbnRh
Z2Ugc3VwcG9ydCB0byBjb2x1bW4tZ2FwIHByb3BlcnR5LgorCisgICAgICAgIE1vc3Qgb2YgdGhl
IGNoYW5nZXMgYXJlIHJlbGF0ZWQgdG8gdGhlIHBhcnNpbmcgbG9naWMsCisgICAgICAgIHRoZSBj
b2x1bW4tZ2FwIHByb3BlcnR5IG5vdyBhY2NlcHRzIGJvdGggbGVuZ3RoIGFuZCBwZXJjZW50YWdl
cywKKyAgICAgICAgb24gdG9wIG9mIHRoZSAibm9ybWFsIiBpbml0aWFsIHZhbHVlLgorICAgICAg
ICBBIG5ldyB1dGlsaXR5IGNsYXNzIEdhcExlbmd0aCBoYXMgYmVlbiBhZGRlZCwgYXMgaXQnbGwg
YmUgdXNlZnVsCisgICAgICAgIHRvIGltcGxlbWVudCByb3ctZ2FwIGluIHRoZSBmdXR1cmUuCisK
KyAgICAgICAgQXBhcnQgZnJvbSB0aGF0IHRoZSBtdXRpY29sdW1uIGxheW91dCBjb2RlIGhhcyBi
ZWVuIG1vZGlmaWVkCisgICAgICAgIHRvIHJlc29sdmUgdGhlIHBlcmNlbnRhZ2UgZ2FwcyAodHJl
YXRpbmcgdGhlbSBhcyB6ZXJvIHdoaWxlIGNvbXB1dGluZworICAgICAgICBwcmVmZXJyZWQgd2lk
dGhzKSBhbmQgcmVzb2x2aW5nIHRoZW0gZHVyaW5nIGxheW91dC4KKyAgICAgICAgVGhpcyBkb2Vz
bid0IGZvbGxvdyB0aGUgY3VycmVudCB0ZXh0IG9uIHRoZSBzcGVjLCBidXQgdGhlcmUgaXMgYW4K
KyAgICAgICAgb25nb2luZyBkaXNjdXNzaW9uIHRoYXQgbWlnaHQgY2F1c2UgdGhlIHRleHQgaXMg
Y2hhbmdlZDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNz
dWVzLzUwOSNpc3N1ZWNvbW1lbnQtMzU1MjQyMTAxCisgICAgICAgIFdlIGNvdWxkIHVwZGF0ZSB0
aGUgaW1wbGVtZW50YXRpb24gb25jZSB3ZSBoYXZlIGEgZGVmaW5pdGl2ZSBhbnN3ZXIKKyAgICAg
ICAgZnJvbSB0aGUgQ1NTIFdHLgorCisgICAgICAgIFRlc3Q6IHdlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1wZXJjZW50YWdlLTAwMS5odG1sCisKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5
aW5TdHlsZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBj
c3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxk
ZXJDb252ZXJ0ZXI6OmNvbnZlcnRHYXBMZW5ndGgpOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxk
ZXJDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcndhcmRJbmhlcml0ZWRWYWx1ZSk6Cisg
ICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb25zdW1lR2FwTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFy
c2VyOjpwYXJzZVNpbmdsZVZhbHVlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5UGFnaW5hdGlvblRvVmlld3BvcnQpOgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmJsZW5kRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFu
aW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9ja0Zsb3c6OmNvbHVtbkdhcCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29s
dW1uU2V0Ojpjb2x1bW5HYXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HYXBM
ZW5ndGguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9HYXBMZW5ndGguaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHYXBMZW5ndGg6OkdhcExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpHYXBMZW5ndGg6Omlz
Tm9ybWFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdhcExlbmd0aDo6bGVuZ3RoIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhcExlbmd0aDo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTdHlsZTo6Y29sdW1uR2FwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzZXRDb2x1bW5HYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRp
YWxDb2x1bW5HYXApOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNv
bERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVNdWx0aUNvbERhdGE6Om9wZXJhdG9yPT0g
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQpOgorCiAyMDE4LTAxLTI1ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ2Fpcm9dIFVzZSBHcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm8gaW4gTmljb3NpYTo6UGFpbnRpbmdDb250ZXh0Q2Fpcm8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggOTg0YmQ3ODM5MDhmZmQ1YzdkZjA5Yzg2ZjA0MTFmMmE2NzEwNTA4MC4u
MjI1N2U4YTlhYWQ2ZjYxNzQzMzYzZWEyOTkyMmViYTA5NzZlOGE3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE5MTUsNiArMTkxNSw3IEBAIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHAKIHJlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKIHJlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5jcHAKIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCityZW5kZXJpbmcvc3R5
bGUvR2FwTGVuZ3RoLmNwcAogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5jcHAKIHJlbmRl
cmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwCiByZW5kZXJpbmcvc3R5bGUvS2V5
ZnJhbWVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDUxZDM1MTlmMmM0MzAzYmFjZTJhNjc2ZTgyNTUwMjU1YTcyNTA3
NGUuLmIyY2QzMDI4YjhhN2Y3YWE0MmM0YjQ0YmFiYmI2NTRhM2RkNGJkN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzOTEs
NiArMjM5MSw3IEBACiAJCThBRjRFNTU2MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5h
dmlnYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBRjRFNTUzMTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCAqLzsg
fTsKIAkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1OTExREM1
QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsKIAkJOEU0Qzk2REQxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hSZXNwb25zZS5oICovOyB9OworCQk4RUM2Qzk2MzIwMUEyNTE2MDBGQkZBNTMgLyogR2FwTGVu
Z3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RUM2
Qzk2MTIwMUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTAwMTc3NDAxMkUwMzQ3ODAw
NjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKQEAgLTk5MzUsOCArOTkzNiwxMCBAQAogCQk4QUY0RTU1
NDExREM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4QUY0RTU1OTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1p
bmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9ybWFuY2VUaW1pbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFGNEU1NUExMURDNUE2MzAwMEVEM0RF
IC8qIFBlcmZvcm1hbmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3Jt
YW5jZVRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThFMzNDRDkzMjAx
QTI5QzEwMEUzOTA5MyAvKiBHYXBMZW5ndGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2FwTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNw
b25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RUM2Qzk2MTIwMUEyNTAxMDBG
QkZBNTMgLyogR2FwTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdh
cExlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjY3NTYxOTEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4
OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRF
eGVjU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDU2
LDYgKzIzNDU5LDggQEAKIAkJCQlCQzIyNzQ2RTBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5o
ICovLAogCQkJCUJDNUVCNjlDMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuY3BwICovLAog
CQkJCUJDNUVCNjlEMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCAqLywKKwkJCQk4RTMz
Q0Q5MzIwMUEyOUMxMDBFMzkwOTMgLyogR2FwTGVuZ3RoLmNwcCAqLywKKwkJCQk4RUM2Qzk2MTIw
MUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi8sCiAJCQkJQ0QzRTI1MUIxODA0NkIwNjAw
RTI3RjU2IC8qIEdyaWRBcmVhLmggKi8sCiAJCQkJQ0RFRjRGRDYxN0U4NUM4RjAwQUVFMjRCIC8q
IEdyaWRMZW5ndGguaCAqLywKIAkJCQlFMUY4MTc0NTFFODk3QTUyMDBGMjJDRDAgLyogR3JpZFBv
c2l0aW9uLmNwcCAqLywKQEAgLTI3MzQ0LDYgKzI3MzQ5LDcgQEAKIAkJCQk1MUE5RDlFQTE5NUI5
MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJF
MTkyMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNUJFMTkzMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCThFQzZDOTYzMjAxQTI1MTYwMEZCRkE1MyAvKiBHYXBMZW5ndGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0Nzc1MDlBQzREOEUwMEE2QUFCNCAvKiBHYXBSZWN0
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQzMkU4NDcwQzUxNDkzODAwQjE1MDBGIC8qIEdDQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDMDU0Q0MxMTE4QzhFNDAwQ0UyNjM2IC8q
IGdlbmVyYXRlLWJpbmRpbmdzLnBsIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDk3NGZhNmZjZjAz
MjM4ZTczMDllMjI3MWJkZTZlZDM5YzYzZjhkYjMuLjBhNDcxNmQ0MTRlYjY0MGYzYTJkNmJlZjVm
Njk1OTRlNTk1ZDg3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yOTI2LDkgKzI5MjYsOSBAQCBSZWZQdHI8Q1NTVmFs
dWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxlKGNvbnN0
IFJlbmRlclN0eQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q29sdW1uRmlsbDoKICAgICAgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUuY29sdW1uRmlsbCgpKTsK
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtbkdhcDoKLSAgICAgICAgICAgIGlmIChzdHls
ZS5oYXNOb3JtYWxDb2x1bW5HYXAoKSkKKyAgICAgICAgICAgIGlmIChzdHlsZS5jb2x1bW5HYXAo
KS5pc05vcm1hbCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKTsKLSAgICAgICAgICAgIHJldHVybiB6b29t
QWRqdXN0ZWRQaXhlbFZhbHVlKHN0eWxlLmNvbHVtbkdhcCgpLCBzdHlsZSk7CisgICAgICAgICAg
ICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS5jb2x1bW5HYXAo
KS5sZW5ndGgoKSwgc3R5bGUpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1u
UHJvZ3Jlc3Npb246CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVl
KHN0eWxlLmNvbHVtblByb2dyZXNzaW9uKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q29s
dW1uUnVsZUNvbG9yOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRp
ZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5kZXggMWI2
YzVmOTEyNTA1OTljNjFmZWFmNDlhZTkyZmE0YWRmNzQxZjkzYy4uYmJjMGE1OWI4MjhjZTg4N2Qx
MTIxODlmMDkzZDRiYWFjMzU0Y2RmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5q
c29uCkBAIC00MzA2LDExICs0MzA2LDExIEBACiAgICAgICAgICAgICAgICAgImFsaWFzZXMiOiBb
CiAgICAgICAgICAgICAgICAgICAgICItd2Via2l0LWNvbHVtbi1nYXAiCiAgICAgICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICAgICAiY3VzdG9tIjogIkFsbCIKKyAgICAgICAgICAgICAgICAi
Y29udmVydGVyIjogIkdhcExlbmd0aCIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAic3Bl
Y2lmaWNhdGlvbiI6ICB7CiAgICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy1tdWx0aWNv
bCIsCi0gICAgICAgICAgICAgICAgInVybCI6ICIiCisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLW11bHRpY29sLyNjb2x1bW4tZ2FwIgogICAgICAg
ICAgICAgfQogICAgICAgICB9LAogICAgICAgICAiLXdlYmtpdC1jb2x1bW4tcHJvZ3Jlc3Npb24i
OiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggMjBk
Nzk0ZDUyOWQ0MGNiMDE1MDkwNDVmZGFlNjM2MzY2OTc4OGZiMy4uZjQ4MGNiMmJhNmZlNzQzNDdk
ZmY1ZDhkNWRmZDVmOTRjZGJmMjM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXJDb252ZXJ0ZXIuaApAQCAtMTUwLDYgKzE1MCw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBM
ZW5ndGggY29udmVydFBvc2l0aW9uQ29tcG9uZW50WChTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NT
VmFsdWUmKTsKICAgICBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRQb3NpdGlvbkNvbXBvbmVudFkoU3R5
bGVSZXNvbHZlciYsIGNvbnN0IENTU1ZhbHVlJik7CisKKyAgICBzdGF0aWMgR2FwTGVuZ3RoIGNv
bnZlcnRHYXBMZW5ndGgoU3R5bGVSZXNvbHZlciYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgCiBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBTdHlsZUJ1aWxkZXJDdXN0b207CkBAIC0xNTM4LDQg
KzE1NDAsMTMgQEAgaW5saW5lIEhhbmdpbmdQdW5jdHVhdGlvbiBTdHlsZUJ1aWxkZXJDb252ZXJ0
ZXI6OmNvbnZlcnRIYW5naW5nUHVuY3R1YXRpb24oU3R5bGUKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCitpbmxpbmUgR2FwTGVuZ3RoIFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydEdhcExl
bmd0aChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUp
Cit7CisgICAgYXV0byYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4odmFsdWUpOworICAgIGlmIChwcmltaXRpdmVWYWx1ZS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVO
b3JtYWwpCisgICAgICAgIHJldHVybiBHYXBMZW5ndGgoKTsKKworICAgIHJldHVybiBHYXBMZW5n
dGgoY29udmVydExlbmd0aChzdHlsZVJlc29sdmVyLCB2YWx1ZSkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVy
Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5kZXgg
ZDQ4ZWQ2ZDQ1NTkzNTA2ZDNkYTEyOTg0N2YxYWIyMmZkNGJlOTJlOS4uNTRmMTYyNDEwNTcxYzhl
NzkyNTFiY2YyZTYzODQ3NGVkNDU1Njc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQnVpbGRlckN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXJDdXN0b20uaApAQCAtNjIsNiArNjIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
VCBmb3J3YXJkSW5oZXJpdGVkVmFsdWUoVCYmIHZhbHVlKSB7IHJldHVybiBzdGQ6OmZvcgogaW5s
aW5lIExlbmd0aCBmb3J3YXJkSW5oZXJpdGVkVmFsdWUoY29uc3QgTGVuZ3RoJiB2YWx1ZSkgeyBh
dXRvIGNvcHkgPSB2YWx1ZTsgcmV0dXJuIGNvcHk7IH0KIGlubGluZSBMZW5ndGhTaXplIGZvcndh
cmRJbmhlcml0ZWRWYWx1ZShjb25zdCBMZW5ndGhTaXplJiB2YWx1ZSkgeyBhdXRvIGNvcHkgPSB2
YWx1ZTsgcmV0dXJuIGNvcHk7IH0KIGlubGluZSBMZW5ndGhCb3ggZm9yd2FyZEluaGVyaXRlZFZh
bHVlKGNvbnN0IExlbmd0aEJveCYgdmFsdWUpIHsgYXV0byBjb3B5ID0gdmFsdWU7IHJldHVybiBj
b3B5OyB9CitpbmxpbmUgR2FwTGVuZ3RoIGZvcndhcmRJbmhlcml0ZWRWYWx1ZShjb25zdCBHYXBM
ZW5ndGgmIHZhbHVlKSB7IGF1dG8gY29weSA9IHZhbHVlOyByZXR1cm4gY29weTsgfQogCiAvLyBO
b3RlIHRoYXQgd2UgYXNzdW1lIHRoZSBDU1MgcGFyc2VyIG9ubHkgYWxsb3dzIHZhbGlkIENTU1Zh
bHVlIHR5cGVzLgogY2xhc3MgU3R5bGVCdWlsZGVyQ3VzdG9tIHsKQEAgLTczLDcgKzc0LDYgQEAg
cHVibGljOgogICAgIERFQ0xBUkVfUFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKEJvcmRlckltYWdl
V2lkdGgpOwogICAgIERFQ0xBUkVfUFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKEJveFNoYWRvdyk7
CiAgICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQ2xpcCk7Ci0gICAgREVDTEFS
RV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQ29sdW1uR2FwKTsKICAgICBERUNMQVJFX1BST1BF
UlRZX0NVU1RPTV9IQU5ETEVSUyhDb250ZW50KTsKICAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RP
TV9IQU5ETEVSUyhDb3VudGVySW5jcmVtZW50KTsKICAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RP
TV9IQU5ETEVSUyhDb3VudGVyUmVzZXQpOwpAQCAtMTM2NiwyNyArMTM2Niw2IEBAIGlubGluZSB2
b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZVdlYmtpdFN2Z1NoYWRvdyhTdHlsZVJl
c29sdmVyJiBzdHlsZVJlCiAgICAgc3ZnU3R5bGUuc2V0U2hhZG93KHN0ZDo6bWFrZV91bmlxdWU8
U2hhZG93RGF0YT4obG9jYXRpb24sIGJsdXIsIDAsIE5vcm1hbCwgZmFsc2UsIGNvbG9yLmlzVmFs
aWQoKSA/IGNvbG9yIDogQ29sb3I6OnRyYW5zcGFyZW50KSk7CiB9CiAKLWlubGluZSB2b2lkIFN0
eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbml0aWFsQ29sdW1uR2FwKFN0eWxlUmVzb2x2ZXImIHN0
eWxlUmVzb2x2ZXIpCi17Ci0gICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRIYXNOb3JtYWxD
b2x1bW5HYXAoKTsKLX0KLQotaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUlu
aGVyaXRDb2x1bW5HYXAoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcikKLXsKLSAgICBpZiAo
c3R5bGVSZXNvbHZlci5wYXJlbnRTdHlsZSgpLT5oYXNOb3JtYWxDb2x1bW5HYXAoKSkKLSAgICAg
ICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRIYXNOb3JtYWxDb2x1bW5HYXAoKTsKLSAgICBl
bHNlCi0gICAgICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0Q29sdW1uR2FwKHN0eWxlUmVz
b2x2ZXIucGFyZW50U3R5bGUoKS0+Y29sdW1uR2FwKCkpOwotfQotCi1pbmxpbmUgdm9pZCBTdHls
ZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVDb2x1bW5HYXAoU3R5bGVSZXNvbHZlciYgc3R5bGVS
ZXNvbHZlciwgQ1NTVmFsdWUmIHZhbHVlKQotewotICAgIGlmIChkb3duY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkKLSAgICAgICAgc3R5
bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRIYXNOb3JtYWxDb2x1bW5HYXAoKTsKLSAgICBlbHNlCi0g
ICAgICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0Q29sdW1uR2FwKFN0eWxlQnVpbGRlckNv
bnZlcnRlcjo6Y29udmVydENvbXB1dGVkTGVuZ3RoPGZsb2F0PihzdHlsZVJlc29sdmVyLCB2YWx1
ZSkpOwotfQotCiBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5SW5pdGlhbENv
bnRlbnQoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlcikKIHsKICAgICBzdHlsZVJlc29sdmVy
LnN0eWxlKCktPmNsZWFyQ29udGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCAwZDM0M2M5ODEzMjRkY2YzZWFiNjIxNTFjM2Ji
NjUyNDM2ZmZlYWZiLi4xODkyMzU2YjRiOTMxNzRkNTUxNzFjNTAxNzIxNzNmZGZmNGExMmRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApA
QCAtMTM5MiwxMSArMTM5MiwxMSBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQ29s
dW1uQ291bnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgcmV0dXJuIGNvbnN1bWVQ
b3NpdGl2ZUludGVnZXIocmFuZ2UpOwogfQogCi1zdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25z
dW1lQ29sdW1uR2FwKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNz
c1BhcnNlck1vZGUpCitzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lR2FwTGVuZ3RoKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCiB7
CiAgICAgaWYgKHJhbmdlLnBlZWsoKS5pZCgpID09IENTU1ZhbHVlTm9ybWFsKQogICAgICAgICBy
ZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKLSAgICByZXR1cm4gY29uc3VtZUxlbmd0aChyYW5n
ZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKKyAgICByZXR1cm4gY29u
c3VtZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5l
Z2F0aXZlKTsKIH0KIAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUNvbHVtblNwYW4o
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCkBAIC00MDM1LDcgKzQwMzUsNyBAQCBSZWZQdHI8
Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5Db3VudDoKICAgICAg
ICAgcmV0dXJuIGNvbnN1bWVDb2x1bW5Db3VudChtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5Q29sdW1uR2FwOgotICAgICAgICByZXR1cm4gY29uc3VtZUNvbHVtbkdhcChtX3JhbmdlLCBt
X2NvbnRleHQubW9kZSk7CisgICAgICAgIHJldHVybiBjb25zdW1lR2FwTGVuZ3RoKG1fcmFuZ2Us
IG1fY29udGV4dC5tb2RlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q29sdW1uU3BhbjoKICAgICAg
ICAgcmV0dXJuIGNvbnN1bWVDb2x1bW5TcGFuKG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlab29tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDMzZThiMjVlMGNiNGMxOGRm
ODQwOTlmNWNlYmU5YzIzMDkxYzM4Y2YuLjAwNTJlOTA4Njk0ZjE3MDRlYmI2NjM3Y2U3ZjE2ODIy
ZmFhMzFlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTcxNiw3ICs3MTYsOCBA
QCB2b2lkIEZyYW1lVmlldzo6YXBwbHlQYWdpbmF0aW9uVG9WaWV3cG9ydCgpCiAgICAgRU92ZXJm
bG93IG92ZXJmbG93WSA9IGRvY3VtZW50T3JCb2R5UmVuZGVyZXItPnN0eWxlKCkub3ZlcmZsb3dZ
KCk7CiAgICAgaWYgKG92ZXJmbG93WSA9PSBPUEFHRURYIHx8IG92ZXJmbG93WSA9PSBPUEFHRURZ
KSB7CiAgICAgICAgIHBhZ2luYXRpb24ubW9kZSA9IFdlYkNvcmU6OnBhZ2luYXRpb25Nb2RlRm9y
UmVuZGVyU3R5bGUoZG9jdW1lbnRPckJvZHlSZW5kZXJlci0+c3R5bGUoKSk7Ci0gICAgICAgIHBh
Z2luYXRpb24uZ2FwID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRvY3VtZW50T3JCb2R5UmVuZGVy
ZXItPnN0eWxlKCkuY29sdW1uR2FwKCkpOworICAgICAgICBHYXBMZW5ndGggY29sdW1uR2FwTGVu
Z3RoID0gZG9jdW1lbnRPckJvZHlSZW5kZXJlci0+c3R5bGUoKS5jb2x1bW5HYXAoKTsKKyAgICAg
ICAgcGFnaW5hdGlvbi5nYXAgPSBjb2x1bW5HYXBMZW5ndGguaXNOb3JtYWwoKSA/IDAgOiB2YWx1
ZUZvckxlbmd0aChjb2x1bW5HYXBMZW5ndGgubGVuZ3RoKCksIGRvd25jYXN0PFJlbmRlckJveD4o
ZG9jdW1lbnRPckJvZHlSZW5kZXJlciktPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpKS50b1Vuc2ln
bmVkKCk7CiAgICAgfQogICAgIHNldFBhZ2luYXRpb24ocGFnaW5hdGlvbik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5j
cHAKaW5kZXggZWExMjE4OTUxNTgzMGU5Mzg4NTY1ODRkMWI5Yjc1MzlhMTlmMWU0Zi4uMzNiODQx
Yzg0MGVjZGU4MTA4YTYzODcyZjc3ZjBjYjRlODlkNmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZvbnRT
ZWxlY3Rpb25BbGdvcml0aG0uaCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKKyNp
bmNsdWRlICJHYXBMZW5ndGguaCIKICNpbmNsdWRlICJJZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlv
bi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbi5oIgpAQCAtOTAsNiArOTEsMTEgQEAgc3RhdGljIGlubGluZSBMZW5ndGggYmxlbmRG
dW5jKGNvbnN0IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQqLCBjb25zdCBMZW5ndGgmIGYKICAg
ICByZXR1cm4gYmxlbmQoZnJvbSwgdG8sIHByb2dyZXNzKTsKIH0KIAorc3RhdGljIGlubGluZSBH
YXBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQqLCBjb25z
dCBHYXBMZW5ndGgmIGZyb20sIGNvbnN0IEdhcExlbmd0aCYgdG8sIGRvdWJsZSBwcm9ncmVzcykK
K3sKKyAgICByZXR1cm4gKGZyb20uaXNOb3JtYWwoKSB8fCB0by5pc05vcm1hbCgpKSA/IHRvIDog
YmxlbmQoZnJvbS5sZW5ndGgoKSwgdG8ubGVuZ3RoKCksIHByb2dyZXNzKTsKK30KKwogc3RhdGlj
IGlubGluZSBMZW5ndGhTaXplIGJsZW5kRnVuYyhjb25zdCBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xp
ZW50KiBhbmltLCBjb25zdCBMZW5ndGhTaXplJiBmcm9tLCBjb25zdCBMZW5ndGhTaXplJiB0bywg
ZG91YmxlIHByb2dyZXNzKQogewogICAgIHJldHVybiB7IGJsZW5kRnVuYyhhbmltLCBmcm9tLndp
ZHRoLCB0by53aWR0aCwgcHJvZ3Jlc3MpLCBibGVuZEZ1bmMoYW5pbSwgZnJvbS5oZWlnaHQsIHRv
LmhlaWdodCwgcHJvZ3Jlc3MpIH07CkBAIC0xNTE5LDcgKzE1MjUsNyBAQCBDU1NQcm9wZXJ0eUFu
aW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCgpCiAKICAg
ICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NTUHJvcGVydHlGb250U2l6ZSwgJlJl
bmRlclN0eWxlOjpjb21wdXRlZEZvbnRTaXplLCAmUmVuZGVyU3R5bGU6OnNldEZvbnRTaXplKSwK
ICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjx1bnNpZ25lZCBzaG9ydD4oQ1NTUHJvcGVydHlD
b2x1bW5SdWxlV2lkdGgsICZSZW5kZXJTdHlsZTo6Y29sdW1uUnVsZVdpZHRoLCAmUmVuZGVyU3R5
bGU6OnNldENvbHVtblJ1bGVXaWR0aCksCi0gICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8Zmxv
YXQ+KENTU1Byb3BlcnR5Q29sdW1uR2FwLCAmUmVuZGVyU3R5bGU6OmNvbHVtbkdhcCwgJlJlbmRl
clN0eWxlOjpzZXRDb2x1bW5HYXApLAorICAgICAgICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFwcGVy
PEdhcExlbmd0aD4oQ1NTUHJvcGVydHlDb2x1bW5HYXAsICZSZW5kZXJTdHlsZTo6Y29sdW1uR2Fw
LCAmUmVuZGVyU3R5bGU6OnNldENvbHVtbkdhcCksCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBw
ZXI8dW5zaWduZWQgc2hvcnQ+KENTU1Byb3BlcnR5Q29sdW1uQ291bnQsICZSZW5kZXJTdHlsZTo6
Y29sdW1uQ291bnQsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uQ291bnQpLAogICAgICAgICBuZXcg
UHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eUNvbHVtbldpZHRoLCAmUmVuZGVyU3R5
bGU6OmNvbHVtbldpZHRoLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtbldpZHRoKSwKICAgICAgICAg
bmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9u
dGFsU3BhY2luZywgJlJlbmRlclN0eWxlOjpob3Jpem9udGFsQm9yZGVyU3BhY2luZywgJlJlbmRl
clN0eWxlOjpzZXRIb3Jpem9udGFsQm9yZGVyU3BhY2luZyksCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDI4Y2Y0ZTBmOTI5NzY5Nzc3OTBlM2E5
MmNiNzJlNjJkZmNlMTE4ZWUuLjVmYmYwNzY1Yzk1ZTkzZWFkMThjYjJlODIzMDk2Y2Q4ZTlmNTNj
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBA
IC0zNzEsOSArMzcxLDkgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnJlY29tcHV0ZUxvZ2ljYWxX
aWR0aEFuZENvbHVtbldpZHRoKCkKIAogTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OmNvbHVt
bkdhcCgpIGNvbnN0CiB7Ci0gICAgaWYgKHN0eWxlKCkuaGFzTm9ybWFsQ29sdW1uR2FwKCkpCisg
ICAgaWYgKHN0eWxlKCkuY29sdW1uR2FwKCkuaXNOb3JtYWwoKSkKICAgICAgICAgcmV0dXJuIHN0
eWxlKCkuZm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRQaXhlbFNpemUoKTsgLy8gIjFlbSIgaXMg
cmVjb21tZW5kZWQgYXMgdGhlIG5vcm1hbCBnYXAgc2V0dGluZy4gTWF0Y2hlcyA8cD4gbWFyZ2lu
cy4KLSAgICByZXR1cm4gc3R5bGUoKS5jb2x1bW5HYXAoKTsKKyAgICByZXR1cm4gdmFsdWVGb3JM
ZW5ndGgoc3R5bGUoKS5jb2x1bW5HYXAoKS5sZW5ndGgoKSwgYXZhaWxhYmxlTG9naWNhbFdpZHRo
KCkpOwogfQogCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUNvbHVtbkNvdW50QW5kV2lk
dGgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNl
dC5jcHAKaW5kZXggYTgyYzFmYTM4N2Q4MjIzNzllYWRjZTVjMzAzMmQ4ZjdhMDAxNDNlNy4uY2Vi
ODVmNzZjMTZmN2UyN2NhNDJkOTc2ZDBhOTE4YWY2YTAyM2FlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCkBAIC00MjksOSArNDI5
LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sdW1uR2FwKCkgY29uc3QK
ICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSB3aWxsIGNhY2hlIHRoZSBjb2x1bW4gZ2FwIHdo
ZW4gdGhlIHdpZHRocyBvZiBjb2x1bW5zIHN0YXJ0IHZhcnlpbmcsIGJ1dCBmb3Igbm93IHdlIGp1
c3QKICAgICAvLyBnbyB0byB0aGUgcGFyZW50IGJsb2NrIHRvIGdldCB0aGUgZ2FwLgogICAgIFJl
bmRlckJsb2NrRmxvdyYgcGFyZW50QmxvY2sgPSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpw
YXJlbnQoKSk7Ci0gICAgaWYgKHBhcmVudEJsb2NrLnN0eWxlKCkuaGFzTm9ybWFsQ29sdW1uR2Fw
KCkpCisgICAgaWYgKHBhcmVudEJsb2NrLnN0eWxlKCkuY29sdW1uR2FwKCkuaXNOb3JtYWwoKSkK
ICAgICAgICAgcmV0dXJuIHBhcmVudEJsb2NrLnN0eWxlKCkuZm9udERlc2NyaXB0aW9uKCkuY29t
cHV0ZWRQaXhlbFNpemUoKTsgLy8gIjFlbSIgaXMgcmVjb21tZW5kZWQgYXMgdGhlIG5vcm1hbCBn
YXAgc2V0dGluZy4gTWF0Y2hlcyA8cD4gbWFyZ2lucy4KLSAgICByZXR1cm4gcGFyZW50QmxvY2su
c3R5bGUoKS5jb2x1bW5HYXAoKTsKKyAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgocGFyZW50Qmxv
Y2suc3R5bGUoKS5jb2x1bW5HYXAoKS5sZW5ndGgoKSwgcGFyZW50QmxvY2suYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKCkpOwogfQogCiB1bnNpZ25lZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sdW1u
Q291bnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0dhcExlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3Ro
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yODY4M2RkMjMzZGFiMzE5NGEzOTNkYzk3ZTI2NWM2NzQ4M2EwOTZi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dhcExl
bmd0aC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHYXBMZW5ndGguaCIKKworI2luY2x1
ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBHYXBMZW5ndGgmIGdhcExl
bmd0aCkKK3sKKyAgICBpZiAoZ2FwTGVuZ3RoLmlzTm9ybWFsKCkpCisgICAgICAgIHRzIDw8ICJu
b3JtYWwiOworICAgIGVsc2UKKyAgICAgICAgdHMgPDwgZ2FwTGVuZ3RoLmxlbmd0aCgpOworICAg
IHJldHVybiB0czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dhcExlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0dhcExlbmd0aC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMTBiMDUxYmVlNTI2OTVk
ZThlMWI4NTE1MWU5YjZhMTU3YTUzYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTGVuZ3Ro
LmgiCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVhbTsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNzIHdyYXBzIHRoZSBsZW5naHQgb2YgYSBnYXAgdXNl
ZCBieSBwcm9wZXJ0aWVzIGNvbHVtbi1nYXAgYW5kIHJvdy1nYXAuCisvLyBUaGUgdmFsaWQgdmFs
dWVzIGFyZSAibm9ybWFsIiBvciBhIG5vbi1uZWdhdGl2ZSA8bGVuZ3RoLXBlcmNlbnRhZ2U+Lgor
Y2xhc3MgR2FwTGVuZ3RoIHsKK3B1YmxpYzoKKyAgICBHYXBMZW5ndGgoKQorICAgICAgICA6IG1f
aXNOb3JtYWwodHJ1ZSkKKyAgICB7CisgICAgfQorCisgICAgR2FwTGVuZ3RoKGNvbnN0IExlbmd0
aCYgbGVuZ3RoKQorICAgICAgICA6IG1faXNOb3JtYWwoZmFsc2UpCisgICAgICAgICwgbV9sZW5n
dGgobGVuZ3RoKQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc05vcm1hbDsgfQorICAgIGNvbnN0IExlbmd0aCYgbGVuZ3RoKCkgY29uc3QgeyBB
U1NFUlQoIW1faXNOb3JtYWwpOyByZXR1cm4gbV9sZW5ndGg7IH0KKworICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBHYXBMZW5ndGgmIG8pIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9p
c05vcm1hbCA9PSBvLm1faXNOb3JtYWwgJiYgbV9sZW5ndGggPT0gby5tX2xlbmd0aDsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2lzTm9ybWFsOworICAgIExlbmd0aCBtX2xlbmd0aDsK
K307CisKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25z
dCBHYXBMZW5ndGgmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAxMzk2ZDNmZmRiNTIyYzgyNGFk
YTMwMGNlYjZjZTFhOTA3OTFlOTM2Li45NDc5ZThhZWEzMzIyZmI3ZDhjNjg1MDJhYWRhYWQxZmI3
ZDc4MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkRhdGFSZWYuaCIKICNpbmNsdWRlICJGaWx0
ZXJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAi
R2FwTGVuZ3RoLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkxlbmd0
aC5oIgogI2luY2x1ZGUgIkxlbmd0aEJveC5oIgpAQCAtNjA0LDggKzYwNSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0F1dG9Db2x1bW5Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbklu
aGVyaXRlZERhdGEtPm11bHRpQ29sLT5hdXRvQ291bnQ7IH0KICAgICBib29sIHNwZWNpZmllc0Nv
bHVtbnMoKSBjb25zdCB7IHJldHVybiAhaGFzQXV0b0NvbHVtbkNvdW50KCkgfHwgIWhhc0F1dG9D
b2x1bW5XaWR0aCgpIHx8ICFoYXNJbmxpbmVDb2x1bW5BeGlzKCk7IH0KICAgICBDb2x1bW5GaWxs
IGNvbHVtbkZpbGwoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDb2x1bW5GaWxsPihtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+ZmlsbCk7IH0KLSAgICBmbG9hdCBjb2x1bW5H
YXAoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+Z2Fw
OyB9Ci0gICAgYm9vbCBoYXNOb3JtYWxDb2x1bW5HYXAoKSBjb25zdCB7IHJldHVybiBtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+bm9ybWFsR2FwOyB9CisgICAgY29uc3QgR2FwTGVu
Z3RoJiBjb2x1bW5HYXAoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5t
dWx0aUNvbC0+Y29sdW1uR2FwOyB9CiAgICAgRUJvcmRlclN0eWxlIGNvbHVtblJ1bGVTdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5ydWxlLnN0
eWxlKCk7IH0KICAgICB1bnNpZ25lZCBzaG9ydCBjb2x1bW5SdWxlV2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+cnVsZVdpZHRoKCk7IH0KICAg
ICBib29sIGNvbHVtblJ1bGVJc1RyYW5zcGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPnJ1bGUuaXNUcmFuc3BhcmVudCgpOyB9CkBAIC0xMTI5
LDggKzExMjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb2x1bW5Db3VudCh1bnNpZ25lZCBz
aG9ydCBjKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29s
LCBhdXRvQ291bnQsIGZhbHNlKTsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0
YSwgbXVsdGlDb2wsIGNvdW50LCBjKTsgfQogICAgIHZvaWQgc2V0SGFzQXV0b0NvbHVtbkNvdW50
KCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgYXV0
b0NvdW50LCB0cnVlKTsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVs
dGlDb2wsIGNvdW50LCAwKTsgfQogICAgIHZvaWQgc2V0Q29sdW1uRmlsbChDb2x1bW5GaWxsIGNv
bHVtbkZpbGwpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlD
b2wsIGZpbGwsIGNvbHVtbkZpbGwpOyB9Ci0gICAgdm9pZCBzZXRDb2x1bW5HYXAoZmxvYXQgZikg
eyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgbm9ybWFs
R2FwLCBmYWxzZSk7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRp
Q29sLCBnYXAsIGYpOyB9Ci0gICAgdm9pZCBzZXRIYXNOb3JtYWxDb2x1bW5HYXAoKSB7IFNFVF9O
RVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBub3JtYWxHYXAsIHRy
dWUpOyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgZ2Fw
LCAwKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uR2FwKEdhcExlbmd0aCYmIGdhcExlbmd0aCkgeyBT
RVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgY29sdW1uR2Fw
LCBXVEZNb3ZlKGdhcExlbmd0aCkpOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5SdWxlQ29sb3IoY29u
c3QgQ29sb3ImIGMpIHsgU0VUX0JPUkRFUlZBTFVFX0NPTE9SKG1fcmFyZU5vbkluaGVyaXRlZERh
dGEuYWNjZXNzKCkubXVsdGlDb2wsIHJ1bGUsIGMpOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5SdWxl
U3R5bGUoRUJvcmRlclN0eWxlIGIpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVk
RGF0YSwgbXVsdGlDb2wsIHJ1bGUubV9zdHlsZSwgYik7IH0KICAgICB2b2lkIHNldENvbHVtblJ1
bGVXaWR0aCh1bnNpZ25lZCBzaG9ydCB3KSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVy
aXRlZERhdGEsIG11bHRpQ29sLCBydWxlLm1fd2lkdGgsIHcpOyB9CkBAIC0xNTMzLDYgKzE1MzIs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHVuc2lnbmVkIHNob3J0IGluaXRpYWxDb2x1bW5Db3Vu
dCgpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMgQ29sdW1uRmlsbCBpbml0aWFsQ29sdW1uRmls
bCgpIHsgcmV0dXJuIENvbHVtbkZpbGxCYWxhbmNlOyB9CiAgICAgc3RhdGljIENvbHVtblNwYW4g
aW5pdGlhbENvbHVtblNwYW4oKSB7IHJldHVybiBDb2x1bW5TcGFuTm9uZTsgfQorICAgIHN0YXRp
YyBHYXBMZW5ndGggaW5pdGlhbENvbHVtbkdhcCgpIHsgcmV0dXJuIEdhcExlbmd0aCgpOyB9CiAg
ICAgc3RhdGljIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0oKSB7
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUcmFuc2Zvcm1PcGVyYXRpb25zPiBvcHM7IHJldHVybiBv
cHM7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUcmFuc2Zvcm1PcmlnaW5YKCkgeyByZXR1
cm4gTGVuZ3RoKDUwLjBmLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRy
YW5zZm9ybU9yaWdpblkoKSB7IHJldHVybiBMZW5ndGgoNTAuMGYsIFBlcmNlbnQpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmNw
cAppbmRleCBiN2U3OTRmODRiMzk3Y2ZkOGI2YTQ5YWFmZTFmN2ZiOThiNzc5MjFjLi40ZGMyNzkx
YjZlZWQ5YzUyMTc3ODU5MGUwNjY5ZGIwOGQ1NzJhNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAKQEAgLTMwLDcgKzMw
LDYgQEAgU3R5bGVNdWx0aUNvbERhdGE6OlN0eWxlTXVsdGlDb2xEYXRhKCkKICAgICA6IGNvdW50
KFJlbmRlclN0eWxlOjppbml0aWFsQ29sdW1uQ291bnQoKSkKICAgICAsIGF1dG9XaWR0aCh0cnVl
KQogICAgICwgYXV0b0NvdW50KHRydWUpCi0gICAgLCBub3JtYWxHYXAodHJ1ZSkKICAgICAsIGZp
bGwoUmVuZGVyU3R5bGU6OmluaXRpYWxDb2x1bW5GaWxsKCkpCiAgICAgLCBjb2x1bW5TcGFuKGZh
bHNlKQogICAgICwgYXhpcyhSZW5kZXJTdHlsZTo6aW5pdGlhbENvbHVtbkF4aXMoKSkKQEAgLTQy
LDEyICs0MSwxMSBAQCBpbmxpbmUgU3R5bGVNdWx0aUNvbERhdGE6OlN0eWxlTXVsdGlDb2xEYXRh
KGNvbnN0IFN0eWxlTXVsdGlDb2xEYXRhJiBvdGhlcikKICAgICA6IFJlZkNvdW50ZWQ8U3R5bGVN
dWx0aUNvbERhdGE+KCkKICAgICAsIHdpZHRoKG90aGVyLndpZHRoKQogICAgICwgY291bnQob3Ro
ZXIuY291bnQpCi0gICAgLCBnYXAob3RoZXIuZ2FwKQorICAgICwgY29sdW1uR2FwKG90aGVyLmNv
bHVtbkdhcCkKICAgICAsIHJ1bGUob3RoZXIucnVsZSkKICAgICAsIHZpc2l0ZWRMaW5rQ29sdW1u
UnVsZUNvbG9yKG90aGVyLnZpc2l0ZWRMaW5rQ29sdW1uUnVsZUNvbG9yKQogICAgICwgYXV0b1dp
ZHRoKG90aGVyLmF1dG9XaWR0aCkKICAgICAsIGF1dG9Db3VudChvdGhlci5hdXRvQ291bnQpCi0g
ICAgLCBub3JtYWxHYXAob3RoZXIubm9ybWFsR2FwKQogICAgICwgZmlsbChvdGhlci5maWxsKQog
ICAgICwgY29sdW1uU3BhbihvdGhlci5jb2x1bW5TcGFuKQogICAgICwgYXhpcyhvdGhlci5heGlz
KQpAQCAtNjIsOSArNjAsOSBAQCBSZWY8U3R5bGVNdWx0aUNvbERhdGE+IFN0eWxlTXVsdGlDb2xE
YXRhOjpjb3B5KCkgY29uc3QKIAogYm9vbCBTdHlsZU11bHRpQ29sRGF0YTo6b3BlcmF0b3I9PShj
b25zdCBTdHlsZU11bHRpQ29sRGF0YSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHdpZHRo
ID09IG90aGVyLndpZHRoICYmIGNvdW50ID09IG90aGVyLmNvdW50ICYmIGdhcCA9PSBvdGhlci5n
YXAKKyAgICByZXR1cm4gd2lkdGggPT0gb3RoZXIud2lkdGggJiYgY291bnQgPT0gb3RoZXIuY291
bnQgJiYgY29sdW1uR2FwID09IG90aGVyLmNvbHVtbkdhcAogICAgICAgICAmJiBydWxlID09IG90
aGVyLnJ1bGUgJiYgdmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3IgPT0gb3RoZXIudmlzaXRlZExp
bmtDb2x1bW5SdWxlQ29sb3IKLSAgICAgICAgJiYgYXV0b1dpZHRoID09IG90aGVyLmF1dG9XaWR0
aCAmJiBhdXRvQ291bnQgPT0gb3RoZXIuYXV0b0NvdW50ICYmIG5vcm1hbEdhcCA9PSBvdGhlci5u
b3JtYWxHYXAKKyAgICAgICAgJiYgYXV0b1dpZHRoID09IG90aGVyLmF1dG9XaWR0aCAmJiBhdXRv
Q291bnQgPT0gb3RoZXIuYXV0b0NvdW50CiAgICAgICAgICYmIGZpbGwgPT0gb3RoZXIuZmlsbCAm
JiBjb2x1bW5TcGFuID09IG90aGVyLmNvbHVtblNwYW4KICAgICAgICAgJiYgYXhpcyA9PSBvdGhl
ci5heGlzICYmIHByb2dyZXNzaW9uID09IG90aGVyLnByb2dyZXNzaW9uOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuaAppbmRleCBm
OTJkMjNjNWY5MDhmMTQyNzFmMzM4NzQzYjgwNjA3NTUyNTlhMGE2Li5hNmRlMWVmYmM3MTcyOGFj
Y2NmODQ0ZWJlZDA3MDQxZTljMmNmNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuaApAQCAtMjUsNiArMjUsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJCb3JkZXJWYWx1ZS5oIgorI2luY2x1ZGUgIkdhcExlbmd0aC5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KIApAQCAtNDksMTMgKzUwLDEyIEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHdpZHRo
IHsgMCB9OwogICAgIHVuc2lnbmVkIHNob3J0IGNvdW50OwotICAgIGZsb2F0IGdhcCB7IDAgfTsK
KyAgICBHYXBMZW5ndGggY29sdW1uR2FwOwogICAgIEJvcmRlclZhbHVlIHJ1bGU7CiAgICAgQ29s
b3IgdmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3I7CiAKICAgICBib29sIGF1dG9XaWR0aCA6IDE7
CiAgICAgYm9vbCBhdXRvQ291bnQgOiAxOwotICAgIGJvb2wgbm9ybWFsR2FwIDogMTsKICAgICB1
bnNpZ25lZCBmaWxsIDogMTsgLy8gQ29sdW1uRmlsbAogICAgIHVuc2lnbmVkIGNvbHVtblNwYW4g
OiAxOwogICAgIHVuc2lnbmVkIGF4aXMgOiAyOyAvLyBDb2x1bW5BeGlzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKaW5kZXggYjZlNzIwNDU5
Mzg2Njg1MDJjMGI5NDY1ZGQyOTE1OTQ0ZTg2ZWU2MS4uNDAxMzJjZjQxYjBmNjY0Mjg0MzhkOTc0
OGUxMmRiNDliMjgwYjEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlRm9yRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVz
b2x2ZUZvckRvY3VtZW50LmNwcApAQCAtOTQsNyArOTQsNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZl
Rm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIGNvbnN0IFBhZ2luYXRp
b24mIHBhZ2luYXRpb24gPSByZW5kZXJWaWV3LmZyYW1lVmlldygpLnBhZ2luYXRpb24oKTsKICAg
ICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkKSB7CiAgICAg
ICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2lu
YXRpb24ubW9kZSk7Ci0gICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uR2FwKHBhZ2luYXRp
b24uZ2FwKTsKKyAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRDb2x1bW5HYXAoR2FwTGVuZ3RoKExl
bmd0aCgoaW50KSBwYWdpbmF0aW9uLmdhcCwgRml4ZWQpKSk7CiAgICAgICAgIGlmIChyZW5kZXJW
aWV3Lm11bHRpQ29sdW1uRmxvdygpKQogICAgICAgICAgICAgcmVuZGVyVmlldy51cGRhdGVDb2x1
bW5Qcm9ncmVzc2lvbkZyb21TdHlsZShkb2N1bWVudFN0eWxlKTsKICAgICAgICAgaWYgKHJlbmRl
clZpZXcucGFnZSgpLnBhZ2luYXRpb25MaW5lR3JpZEVuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggYTQxZjdkZjY1ZTAxZThmZmIzYjk4MTQwODNlNDQ4OTc5MTEz
NTQxYi4uNDNmY2JkOTNlZTZhZWE2NjhhYjQ5NWQwZDBkN2ExMmI3ODk4Njg2MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDEtMjUgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1tdWx0
aWNvbF0gU3VwcG9ydCBwZXJjZW50YWdlcyBpbiBjb2x1bW4tZ2FwCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIwMDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgZXhwZWN0ZWQgcmVzdWx0cyBmb3Ig
YSBmZXcgdGVzdHMgdGhhdCBhcmUgcGFzc2luZyBub3cuCisgICAgICAgIE9uZSBpcyB0aGUgdGVz
dCBmb3IgdGhpcyBzcGVjaWZpYyBwYXRjaCwgdGhlIG90aGVyIGFyZSB0ZXN0cyByZWxhdGVkIHRv
IGFuaW1hdGlvbnMKKyAgICAgICAgb2YgIm5vcm1hbCIgYW5kIGluaXRpYWwgdmFsdWUsIHRoYXQg
d2VyZSBmaXhlZCB3aXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2YgR2FwTGVuZ3RoLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1h
dGlvbi0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLW11bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAt
cGVyY2VudGFnZS0wMDEtZXhwZWN0ZWQudHh0OgorCiAyMDE4LTAxLTI1ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtbXVsdGljb2xdIFVw
ZGF0ZSBXUFQgdGVzdCBzdWl0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRp
b24tMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMi1leHBl
Y3RlZC50eHQKaW5kZXggOTRjYzg5YzRlOGI2MjliNzJmZTU3MmFmYjZmMDkwZmNhY2MzMmYxZS4u
NmVkYzc1MDFlMmFmZjcxNTc2MjcxOGIyNDgxZTdmNGNmZTk5ZDQxMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29s
L211bHRpY29sLWdhcC1hbmltYXRpb24tMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGlj
b2wtZ2FwLWFuaW1hdGlvbi0wMDItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlM
IGNvbHVtbi1nYXA6IG5vcm1hbCBpcyBub3QgaW50ZXJwb2xhYmxlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICIxMDBweCIgYnV0IGdvdCAiODAuMjQxMzk0MDQyOTY4NzVweCIKK1BBU1MgY29sdW1u
LWdhcDogbm9ybWFsIGlzIG5vdCBpbnRlcnBvbGFibGUgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0
aWNvbC1nYXAtYW5pbWF0aW9uLTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFu
aW1hdGlvbi0wMDMtZXhwZWN0ZWQudHh0CmluZGV4IDRhNWU5M2FmNTkyZjNkOGQ0ZWFhNWRjN2Mx
MDFiYmEzMjdkNjNmYmUuLjMyMWIxNThlN2Y5NmIzNDc0NGNhNDlkYzlkYzhmODEyNWE4NjkyMDkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LW11bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAzLWV4cGVjdGVkLnR4dApAQCAtMSwz
ICsxLDMgQEAKIAotRkFJTCBEZWZhdWx0IGNvbHVtbi1nYXAgaXMgbm90IGludGVycG9sYWJsZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTAwcHgiIGJ1dCBnb3QgIjgwLjI0MTM5NDA0Mjk2ODc1
cHgiCitQQVNTIERlZmF1bHQgY29sdW1uLWdhcCBpcyBub3QgaW50ZXJwb2xhYmxlIAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNv
bC9tdWx0aWNvbC1nYXAtcGVyY2VudGFnZS0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IGEyNDIyNWJk
MzYyYWUxYTYzYjI2NGY2MmI5YTg2YTMwOTIxYTJiMjQuLmViZmEzZGRkMDhlNDc1MjhlZWI3MTk3
NTMwMzNlY2MxZWVlNDcxMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtcGVyY2VudGFn
ZS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtcGVyY2VudGFnZS0wMDEt
ZXhwZWN0ZWQudHh0CkBAIC0xLDc2ICsxLDE2IEBACiAKLUZBSUwgLm11bHRpY29sIDEgYXNzZXJ0
X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjgiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0gICAgPGRpdiBkYXRh
LW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzIiBk
YXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0gICAgPGRpdiBkYXRhLW9mZnNl
dC14PSI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0gIDwvZGl2Pgotd2lkdGggZXhwZWN0ZWQg
MyBidXQgZ290IDAKLUZBSUwgLm11bHRpY29sIDIgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNz
PSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjgiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSI2MCI+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
NjAiPlhYIFggWDwvZGl2PgotICAgIDxkaXYgZGF0YS1vZmZzZXQteD0iNSIgZGF0YS1vZmZzZXQt
eT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjYwIj5Y
WCBYIFg8L2Rpdj4KLSAgPC9kaXY+Ci13aWR0aCBleHBlY3RlZCAzIGJ1dCBnb3QgMAotRkFJTCAu
bXVsdGljb2wgMyBhc3NlcnRfZXF1YWxzOiAKLTxkaXYgY2xhc3M9Im11bHRpY29sIG1hcmdpblRv
cEJvdHRvbSIgZGF0YS1leHBlY3RlZC13aWR0aD0iOCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIw
Ij4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjMiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WDwvZGl2PgotICAgIDxk
aXYgZGF0YS1vZmZzZXQteD0iNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0
aD0iMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci0gIDwvZGl2Pgotd2lkdGgg
ZXhwZWN0ZWQgMyBidXQgZ290IDAKLUZBSUwgLm11bHRpY29sIDQgYXNzZXJ0X2VxdWFsczogCi08
ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9
IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIxMjUi
IGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVk
LWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0gIDwvZGl2Pgotd2lkdGggZXhwZWN0ZWQgNzUgYnV0
IGdvdCA5MAotRkFJTCAubXVsdGljb2wgNSBhc3NlcnRfZXF1YWxzOiAKLTxkaXYgY2xhc3M9Im11
bHRpY29sIG1hcmdpblRvcEJvdHRvbSIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iNDAiPgotICAgIDxkaXYgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZz
ZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI0
MCI+WFggWCBYPC9kaXY+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIxMjUiIGRhdGEtb2Zmc2V0
LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAi
PlhYIFggWDwvZGl2PgotICA8L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDc1IGJ1dCBnb3QgOTAKLUZB
SUwgLm11bHRpY29sIDYgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJn
aW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWln
aHQ9IjIwIj4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRh
dGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlg8L2Rpdj4K
LSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjEyNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WDwvZGl2PgotICA8L2Rp
dj4KLXdpZHRoIGV4cGVjdGVkIDc1IGJ1dCBnb3QgOTAKLUZBSUwgLm11bHRpY29sIDcgYXNzZXJ0
X2VxdWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBpbmxpbmVCbG9jayIgZGF0YS1leHBlY3Rl
ZC13aWR0aD0iMjAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPgotICA8ZGl2IGRhdGEtb2Zm
c2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRh
LWV4cGVjdGVkLWhlaWdodD0iMjAiPlhYWFhYPC9kaXY+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0i
MTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotPC9kaXY+Ci13aWR0aCBleHBlY3RlZCAyMDAg
YnV0IGdvdCAyMjAKLUZBSUwgLm11bHRpY29sIDggYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNsYXNz
PSJtdWx0aWNvbCBpbmxpbmVCbG9jayIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjQwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iNDAiPgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0
LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjkwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAi
PlhYIFggWDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0i
MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iOTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+WFgg
WCBYPC9kaXY+Ci08L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDI0MCBidXQgZ290IDI2MAotRkFJTCAu
bXVsdGljb2wgOSBhc3NlcnRfZXF1YWxzOiAKLTxkaXYgY2xhc3M9Im11bHRpY29sIGlubGluZUJs
b2NrIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI0MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4K
LSAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVk
LXdpZHRoPSIxNSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci0gIDxkaXYgZGF0
YS1vZmZzZXQteD0iMjUiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE1
IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPlg8L2Rpdj4KLTwvZGl2Pgotd2lkdGggZXhwZWN0
ZWQgNDAgYnV0IGdvdCA2MAotRkFJTCAubXVsdGljb2wgMTAgYXNzZXJ0X2VxdWFsczogCi08ZGl2
IGNsYXNzPSJtdWx0aWNvbCBmaXhlZDIwMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRh
LWV4cGVjdGVkLWhlaWdodD0iMjAiPgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zm
c2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
MjAiPlhYWFhYPC9kaXY+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15
PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5Y
WFhYWDwvZGl2PgotPC9kaXY+Ci13aWR0aCBleHBlY3RlZCA3NSBidXQgZ290IDkwCi1GQUlMIC5t
dWx0aWNvbCAxMSBhc3NlcnRfZXF1YWxzOiAKLTxkaXYgY2xhc3M9Im11bHRpY29sIGZpeGVkMjAw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+Ci0g
IDxkaXYgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13
aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+WFggWCBYPC9kaXY+Ci0gIDxkaXYg
ZGF0YS1vZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRo
PSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj5YWCBYIFg8L2Rpdj4KLTwvZGl2Pgotd2lk
dGggZXhwZWN0ZWQgNzUgYnV0IGdvdCA5MAotRkFJTCAubXVsdGljb2wgMTIgYXNzZXJ0X2VxdWFs
czogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBmaXhlZDIwMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
MjAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAiPgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAi
IGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVk
LWhlaWdodD0iMjAiPlg8L2Rpdj4KLSAgPGRpdiBkYXRhLW9mZnNldC14PSIxMjUiIGRhdGEtb2Zm
c2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
MjAiPlg8L2Rpdj4KLTwvZGl2Pgotd2lkdGggZXhwZWN0ZWQgNzUgYnV0IGdvdCA5MAorUEFTUyAu
bXVsdGljb2wgMSAKK1BBU1MgLm11bHRpY29sIDIgCitQQVNTIC5tdWx0aWNvbCAzIAorUEFTUyAu
bXVsdGljb2wgNCAKK1BBU1MgLm11bHRpY29sIDUgCitQQVNTIC5tdWx0aWNvbCA2IAorUEFTUyAu
bXVsdGljb2wgNyAKK1BBU1MgLm11bHRpY29sIDggCitQQVNTIC5tdWx0aWNvbCA5IAorUEFTUyAu
bXVsdGljb2wgMTAgCitQQVNTIC5tdWx0aWNvbCAxMSAKK1BBU1MgLm11bHRpY29sIDEyIAogTXVs
dGljb2wgY29udGFpbmVyOiBmaXhlZCB3aWR0aAogCiBYCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332367</attachid>
            <date>2018-01-26 05:11:49 -0800</date>
            <delta_ts>2018-01-26 06:33:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-182004-20180126141147.patch</filename>
            <type>text/plain</type>
            <size>41381</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI1ODYyNDk2NWI5OTEx
NDk3YmZlYzQ3MTY2OWY2MzU1ZGE0Njk0MC4uMmMxZWJkNzIxMWJkMmNmMzUyZTI2NTczNmRkMzUz
Njk0NDM2Yjg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE4LTAxLTI2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtbXVs
dGljb2xdIFN1cHBvcnQgcGVyY2VudGFnZXMgaW4gY29sdW1uLWdhcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMDA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSmF2aWVyIEZlcm5hbmRlei4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcGVyY2Vu
dGFnZSBzdXBwb3J0IHRvIGNvbHVtbi1nYXAgcHJvcGVydHkuCisKKyAgICAgICAgTW9zdCBvZiB0
aGUgY2hhbmdlcyBhcmUgcmVsYXRlZCB0byB0aGUgcGFyc2luZyBsb2dpYywKKyAgICAgICAgdGhl
IGNvbHVtbi1nYXAgcHJvcGVydHkgbm93IGFjY2VwdHMgYm90aCBsZW5ndGggYW5kIHBlcmNlbnRh
Z2VzLAorICAgICAgICBvbiB0b3Agb2YgdGhlICJub3JtYWwiIGluaXRpYWwgdmFsdWUuCisgICAg
ICAgIEEgbmV3IHV0aWxpdHkgY2xhc3MgR2FwTGVuZ3RoIGhhcyBiZWVuIGFkZGVkLCBhcyBpdCds
bCBiZSB1c2VmdWwKKyAgICAgICAgdG8gaW1wbGVtZW50IHJvdy1nYXAgaW4gdGhlIGZ1dHVyZS4K
KworICAgICAgICBBcGFydCBmcm9tIHRoYXQgdGhlIG11dGljb2x1bW4gbGF5b3V0IGNvZGUgaGFz
IGJlZW4gbW9kaWZpZWQKKyAgICAgICAgdG8gcmVzb2x2ZSB0aGUgcGVyY2VudGFnZSBnYXBzICh0
cmVhdGluZyB0aGVtIGFzIHplcm8gd2hpbGUgY29tcHV0aW5nCisgICAgICAgIHByZWZlcnJlZCB3
aWR0aHMpIGFuZCByZXNvbHZpbmcgdGhlbSBkdXJpbmcgbGF5b3V0LgorICAgICAgICBUaGlzIGRv
ZXNuJ3QgZm9sbG93IHRoZSBjdXJyZW50IHRleHQgb24gdGhlIHNwZWMsIGJ1dCB0aGVyZSBpcyBh
bgorICAgICAgICBvbmdvaW5nIGRpc2N1c3Npb24gdGhhdCBtaWdodCBjYXVzZSB0aGUgdGV4dCBp
cyBjaGFuZ2VkOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9p
c3N1ZXMvNTA5I2lzc3VlY29tbWVudC0zNTUyNDIxMDEKKyAgICAgICAgV2UgY291bGQgdXBkYXRl
IHRoZSBpbXBsZW1lbnRhdGlvbiBvbmNlIHdlIGhhdmUgYSBkZWZpbml0aXZlIGFuc3dlcgorICAg
ICAgICBmcm9tIHRoZSBDU1MgV0cuCisKKyAgICAgICAgVGVzdDogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLmh0bWwKKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVy
dHlpblN0eWxlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5qc29uOgorICAgICAgICAq
IGNzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVp
bGRlckNvbnZlcnRlcjo6Y29udmVydEdhcExlbmd0aCk6CisgICAgICAgICogY3NzL1N0eWxlQnVp
bGRlckN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6Zm9yd2FyZEluaGVyaXRlZFZhbHVlKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN1bWVHYXBMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQ
YXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6YXBwbHlQYWdpbmF0aW9uVG9WaWV3cG9ydCk6
CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6YmxlbmRGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6Y29sdW1uR2FwIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlD
b2x1bW5TZXQ6OmNvbHVtbkdhcCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dh
cExlbmd0aC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0dhcExlbmd0aC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdhcExlbmd0aDo6R2FwTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkdhcExlbmd0aDo6
aXNOb3JtYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R2FwTGVuZ3RoOjpsZW5ndGggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6R2FwTGVuZ3RoOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpjb2x1bW5HYXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldENvbHVtbkdhcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5p
dGlhbENvbHVtbkdhcCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTXVsdGlDb2xEYXRhOjpTdHlsZU11bHRp
Q29sRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6b3BlcmF0b3I9
PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmg6
CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OnJlc29sdmVGb3JEb2N1bWVudCk6CisKIDIwMTgtMDEtMjYgIEVtaWxp
byBDb2JvcyDDgWx2YXJleiAgPGVtaWxpb0BjcmlzYWwuaW8+CiAKICAgICAgICAgUmVtb3ZlIHVu
dXNlZCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6Y3JlYXRlRnJhZ21lbnRlZEZsb3dTdHlsZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggYThiODIxZDM0YmEyMWM5Yjc3YzU2ZTBkY2ZjZDA2OTE0ZTZhZjFhZS4u
MzdlYjk1OTc5NzdlYjEzMjZkNDgzNTM3ZTBkZTJlNzE2NDY0Yzk1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE5MTYsNiArMTkxNiw3IEBAIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHAKIHJlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKIHJlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5jcHAKIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCityZW5kZXJpbmcvc3R5
bGUvR2FwTGVuZ3RoLmNwcAogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5jcHAKIHJlbmRl
cmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwCiByZW5kZXJpbmcvc3R5bGUvS2V5
ZnJhbWVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGE0OTNmYzkzZTE1MjUxNjZmNmZiNjI3YWRlNTRhMDc0YTUyNjBj
Y2IuLjNiMDA4ZTM1NTRkMDg2NDU1YTY0ZjdlOWUwNTgwOGVmMTU4Yzc0NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzOTAs
NiArMjM5MCw3IEBACiAJCThBRjRFNTU2MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5h
dmlnYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBRjRFNTUzMTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCAqLzsg
fTsKIAkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1OTExREM1
QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsKIAkJOEU0Qzk2REQxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hSZXNwb25zZS5oICovOyB9OworCQk4RUM2Qzk2MzIwMUEyNTE2MDBGQkZBNTMgLyogR2FwTGVu
Z3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RUM2
Qzk2MTIwMUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTAwMTc3NDAxMkUwMzQ3ODAw
NjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKQEAgLTk5MzQsOCArOTkzNSwxMCBAQAogCQk4QUY0RTU1
NDExREM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4QUY0RTU1OTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1p
bmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9ybWFuY2VUaW1pbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFGNEU1NUExMURDNUE2MzAwMEVEM0RF
IC8qIFBlcmZvcm1hbmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3Jt
YW5jZVRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThFMzNDRDkzMjAx
QTI5QzEwMEUzOTA5MyAvKiBHYXBMZW5ndGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2FwTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNw
b25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RUM2Qzk2MTIwMUEyNTAxMDBG
QkZBNTMgLyogR2FwTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdh
cExlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjY3NTYxOTEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4
OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRF
eGVjU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDU1
LDYgKzIzNDU4LDggQEAKIAkJCQlCQzIyNzQ2RTBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5o
ICovLAogCQkJCUJDNUVCNjlDMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuY3BwICovLAog
CQkJCUJDNUVCNjlEMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCAqLywKKwkJCQk4RTMz
Q0Q5MzIwMUEyOUMxMDBFMzkwOTMgLyogR2FwTGVuZ3RoLmNwcCAqLywKKwkJCQk4RUM2Qzk2MTIw
MUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi8sCiAJCQkJQ0QzRTI1MUIxODA0NkIwNjAw
RTI3RjU2IC8qIEdyaWRBcmVhLmggKi8sCiAJCQkJQ0RFRjRGRDYxN0U4NUM4RjAwQUVFMjRCIC8q
IEdyaWRMZW5ndGguaCAqLywKIAkJCQlFMUY4MTc0NTFFODk3QTUyMDBGMjJDRDAgLyogR3JpZFBv
c2l0aW9uLmNwcCAqLywKQEAgLTI3MzQzLDYgKzI3MzQ4LDcgQEAKIAkJCQk1MUE5RDlFQTE5NUI5
MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJF
MTkyMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNUJFMTkzMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCThFQzZDOTYzMjAxQTI1MTYwMEZCRkE1MyAvKiBHYXBMZW5ndGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0Nzc1MDlBQzREOEUwMEE2QUFCNCAvKiBHYXBSZWN0
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQzMkU4NDcwQzUxNDkzODAwQjE1MDBGIC8qIEdDQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDMDU0Q0MxMTE4QzhFNDAwQ0UyNjM2IC8q
IGdlbmVyYXRlLWJpbmRpbmdzLnBsIGluIEhlYWRlcnMgKi8sCkBAIC0yODYyNSw3ICsyODYzMSw2
IEBACiAJCQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcu
aCBpbiBIZWFkZXJzICovLAotCQkJCTk0Q0ZENjBEMUZFQUNFRkUwMDI0ODhBRCAvKiBSZW5kZXJM
aW5lc0NsYW1wU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NF
NDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEQ0Q3RjMxRDQ3RTY1NTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0E4MDYxNzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI5MTU5LDYgKzI5MTY0LDggQEAKIAkJCQkzQzI0NEZFQUEzNzVBQzYzM0Y4
OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEJF
MDMwQTIwRjMxMTJGQjAwM0MxQTQ2IC8qIFJlbmRlckxpbmVCb3hMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VBNDg2NDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyTGluZUJyZWFrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NENGRDYwQTFGRTk4NjdFMDAyNDg4QUQgLyogUmVuZGVyTGluZXND
bGFtcEZsb3cuaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Q0ZENjBEMUZFQUNFRkUwMDI0ODhBRCAv
KiBSZW5kZXJMaW5lc0NsYW1wU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQkI1NDE5RjBBQ0RE
RkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdB
NTIwQTE5MUE1MjAwQThFRjVGIC8qIFJlbmRlckxpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBN0E1MDBBMTkxQTUyMDBBOEVGNUYgLyogUmVuZGVyTGlzdE1hcmtlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yOTI5Miw3ICsyOTI5OSw2IEBACiAJCQkJQTVDRTlGM0YxRTRDNDE3NDAwMUJC
RTdDIC8qIFJlc291cmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkMyRDIzMDFDRTVC
OEExMDBEMTg4MEIgLyogUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTUwNzFFODUxQzU2RDBEQzAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VEYXRhLmggaW4g
SGVhZGVycyAqLywKLQkJCQk5NENGRDYwQTFGRTk4NjdFMDAyNDg4QUQgLyogUmVuZGVyTGluZXND
bGFtcEZsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEQkFENkVGMUJDREQ5NTcwMDM4MTMyNSAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwNzFFODcxQzU2
RDBFMTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCA5NzRmYTZmY2YwMzIzOGU3MzA5ZTIyNzFiZGU2ZWQzOWM2M2Y4ZGIzLi4wYTQ3MTZkNDE0
ZWI2NDBmM2EyZDZiZWY1ZjY5NTk0ZTU5NWQ4NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjkyNiw5ICsyOTI2LDkg
QEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3Bl
cnR5aW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVt
bkZpbGw6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxl
LmNvbHVtbkZpbGwoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5HYXA6Ci0gICAg
ICAgICAgICBpZiAoc3R5bGUuaGFzTm9ybWFsQ29sdW1uR2FwKCkpCisgICAgICAgICAgICBpZiAo
c3R5bGUuY29sdW1uR2FwKCkuaXNOb3JtYWwoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7Ci0gICAgICAg
ICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZShzdHlsZS5jb2x1bW5HYXAoKSwgc3R5
bGUpOworICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgo
c3R5bGUuY29sdW1uR2FwKCkubGVuZ3RoKCksIHN0eWxlKTsKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdENvbHVtblByb2dyZXNzaW9uOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5jb2x1bW5Qcm9ncmVzc2lvbigpKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVDb2xvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCmluZGV4IDFiNmM1ZjkxMjUwNTk5YzYxZmVhZjQ5YWU5MmZhNGFkZjc0MWY5M2MuLmJi
YzBhNTliODI4Y2U4ODdkMTEyMTg5ZjA5M2Q0YmFhYzM1NGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtNDMwNiwxMSArNDMwNiwxMSBAQAogICAgICAgICAgICAg
ICAgICJhbGlhc2VzIjogWwogICAgICAgICAgICAgICAgICAgICAiLXdlYmtpdC1jb2x1bW4tZ2Fw
IgogICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImN1c3RvbSI6ICJBbGwiCisg
ICAgICAgICAgICAgICAgImNvbnZlcnRlciI6ICJHYXBMZW5ndGgiCiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiAgewogICAgICAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJjc3MtbXVsdGljb2wiLAotICAgICAgICAgICAgICAgICJ1cmwiOiAiIgorICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1tdWx0aWNvbC8jY29s
dW1uLWdhcCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgIi13ZWJraXQtY29s
dW1uLXByb2dyZXNzaW9uIjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZl
cnRlci5oCmluZGV4IDIwZDc5NGQ1MjlkNDBjYjAxNTA5MDQ1ZmRhZTYzNjM2Njk3ODhmYjMuLjlk
NjBiMTAxMTAwMTdhZDA5NGVjZmU1MDJlNTljYzcyODJhYjVjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRQb3NpdGlvbkNvbXBvbmVudFgoU3R5bGVSZXNv
bHZlciYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIExlbmd0aCBjb252ZXJ0UG9zaXRp
b25Db21wb25lbnRZKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOworCisgICAgc3Rh
dGljIEdhcExlbmd0aCBjb252ZXJ0R2FwTGVuZ3RoKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NW
YWx1ZSYpOwogICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgU3R5bGVCdWlsZGVyQ3Vz
dG9tOwpAQCAtMTUzOCw0ICsxNTQwLDkgQEAgaW5saW5lIEhhbmdpbmdQdW5jdHVhdGlvbiBTdHls
ZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRIYW5naW5nUHVuY3R1YXRpb24oU3R5bGUKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCitpbmxpbmUgR2FwTGVuZ3RoIFN0eWxlQnVpbGRlckNvbnZlcnRl
cjo6Y29udmVydEdhcExlbmd0aChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBjb25zdCBD
U1NWYWx1ZSYgdmFsdWUpCit7CisgICAgcmV0dXJuIChkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgPyBHYXBMZW5ndGgoKSA6IEdh
cExlbmd0aChjb252ZXJ0TGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHZhbHVlKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1
aWxkZXJDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaApp
bmRleCBkNDhlZDZkNDU1OTM1MDZkM2RhMTI5ODQ3ZjFhYjIyZmQ0YmU5MmU5Li41NGYxNjI0MTA1
NzFjOGU3OTI1MWJjZjJlNjM4NDc0ZWQ0NTU2NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlckN1c3RvbS5oCkBAIC02Miw2ICs2Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBUIGZvcndhcmRJbmhlcml0ZWRWYWx1ZShUJiYgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6Zm9y
CiBpbmxpbmUgTGVuZ3RoIGZvcndhcmRJbmhlcml0ZWRWYWx1ZShjb25zdCBMZW5ndGgmIHZhbHVl
KSB7IGF1dG8gY29weSA9IHZhbHVlOyByZXR1cm4gY29weTsgfQogaW5saW5lIExlbmd0aFNpemUg
Zm9yd2FyZEluaGVyaXRlZFZhbHVlKGNvbnN0IExlbmd0aFNpemUmIHZhbHVlKSB7IGF1dG8gY29w
eSA9IHZhbHVlOyByZXR1cm4gY29weTsgfQogaW5saW5lIExlbmd0aEJveCBmb3J3YXJkSW5oZXJp
dGVkVmFsdWUoY29uc3QgTGVuZ3RoQm94JiB2YWx1ZSkgeyBhdXRvIGNvcHkgPSB2YWx1ZTsgcmV0
dXJuIGNvcHk7IH0KK2lubGluZSBHYXBMZW5ndGggZm9yd2FyZEluaGVyaXRlZFZhbHVlKGNvbnN0
IEdhcExlbmd0aCYgdmFsdWUpIHsgYXV0byBjb3B5ID0gdmFsdWU7IHJldHVybiBjb3B5OyB9CiAK
IC8vIE5vdGUgdGhhdCB3ZSBhc3N1bWUgdGhlIENTUyBwYXJzZXIgb25seSBhbGxvd3MgdmFsaWQg
Q1NTVmFsdWUgdHlwZXMuCiBjbGFzcyBTdHlsZUJ1aWxkZXJDdXN0b20gewpAQCAtNzMsNyArNzQs
NiBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQm9yZGVy
SW1hZ2VXaWR0aCk7CiAgICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQm94U2hh
ZG93KTsKICAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5ETEVSUyhDbGlwKTsKLSAgICBE
RUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5ETEVSUyhDb2x1bW5HYXApOwogICAgIERFQ0xBUkVf
UFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKENvbnRlbnQpOwogICAgIERFQ0xBUkVfUFJPUEVSVFlf
Q1VTVE9NX0hBTkRMRVJTKENvdW50ZXJJbmNyZW1lbnQpOwogICAgIERFQ0xBUkVfUFJPUEVSVFlf
Q1VTVE9NX0hBTkRMRVJTKENvdW50ZXJSZXNldCk7CkBAIC0xMzY2LDI3ICsxMzY2LDYgQEAgaW5s
aW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlV2Via2l0U3ZnU2hhZG93KFN0
eWxlUmVzb2x2ZXImIHN0eWxlUmUKICAgICBzdmdTdHlsZS5zZXRTaGFkb3coc3RkOjptYWtlX3Vu
aXF1ZTxTaGFkb3dEYXRhPihsb2NhdGlvbiwgYmx1ciwgMCwgTm9ybWFsLCBmYWxzZSwgY29sb3Iu
aXNWYWxpZCgpID8gY29sb3IgOiBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKIH0KIAotaW5saW5lIHZv
aWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxDb2x1bW5HYXAoU3R5bGVSZXNvbHZl
ciYgc3R5bGVSZXNvbHZlcikKLXsKLSAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05v
cm1hbENvbHVtbkdhcCgpOwotfQotCi1pbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFw
cGx5SW5oZXJpdENvbHVtbkdhcChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyKQotewotICAg
IGlmIChzdHlsZVJlc29sdmVyLnBhcmVudFN0eWxlKCktPmhhc05vcm1hbENvbHVtbkdhcCgpKQot
ICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05vcm1hbENvbHVtbkdhcCgpOwot
ICAgIGVsc2UKLSAgICAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRDb2x1bW5HYXAoc3R5
bGVSZXNvbHZlci5wYXJlbnRTdHlsZSgpLT5jb2x1bW5HYXAoKSk7Ci19Ci0KLWlubGluZSB2b2lk
IFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUNvbHVtbkdhcChTdHlsZVJlc29sdmVyJiBz
dHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCi17Ci0gICAgaWYgKGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPih2YWx1ZSkudmFsdWVJRCgpID09IENTU1ZhbHVlTm9ybWFsKQotICAgICAg
ICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05vcm1hbENvbHVtbkdhcCgpOwotICAgIGVs
c2UKLSAgICAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRDb2x1bW5HYXAoU3R5bGVCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0Q29tcHV0ZWRMZW5ndGg8ZmxvYXQ+KHN0eWxlUmVzb2x2ZXIs
IHZhbHVlKSk7Ci19Ci0KIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbml0
aWFsQ29udGVudChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyKQogewogICAgIHN0eWxlUmVz
b2x2ZXIuc3R5bGUoKS0+Y2xlYXJDb250ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDBkMzQzYzk4MTMyNGRjZjNlYWI2MjE1
MWMzYmI2NTI0MzZmZmVhZmIuLjE4OTIzNTZiNGI5MzE3NGQ1NTE3MWM1MDE3MjE3M2ZkZmY0YTEy
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCkBAIC0xMzkyLDExICsxMzkyLDExIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1
bWVDb2x1bW5Db3VudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICByZXR1cm4gY29u
c3VtZVBvc2l0aXZlSW50ZWdlcihyYW5nZSk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+
IGNvbnN1bWVDb2x1bW5HYXAoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1v
ZGUgY3NzUGFyc2VyTW9kZSkKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHYXBMZW5n
dGgoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9k
ZSkKIHsKICAgICBpZiAocmFuZ2UucGVlaygpLmlkKCkgPT0gQ1NTVmFsdWVOb3JtYWwpCiAgICAg
ICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwotICAgIHJldHVybiBjb25zdW1lTGVuZ3Ro
KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOworICAgIHJldHVy
biBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdl
Tm9uTmVnYXRpdmUpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQ29sdW1u
U3BhbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKQEAgLTQwMzUsNyArNDAzNSw3IEBAIFJl
ZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtbkNvdW50Ogog
ICAgICAgICByZXR1cm4gY29uc3VtZUNvbHVtbkNvdW50KG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlDb2x1bW5HYXA6Ci0gICAgICAgIHJldHVybiBjb25zdW1lQ29sdW1uR2FwKG1fcmFu
Z2UsIG1fY29udGV4dC5tb2RlKTsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVHYXBMZW5ndGgobV9y
YW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5TcGFuOgog
ICAgICAgICByZXR1cm4gY29uc3VtZUNvbHVtblNwYW4obV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVpvb206CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggOWFmMTY0YjRmODRk
ODgzODE1NGUwMGEyOGYwMjE4YjY1MWI1NzYyYS4uYjZhNzAyNmI3YjQ3ZjcxNmQ2MDRiNTMyMjc3
YTAxODMyOWE2ZjBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNzIwLDcgKzcy
MCw4IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBseVBhZ2luYXRpb25Ub1ZpZXdwb3J0KCkKICAgICBF
T3ZlcmZsb3cgb3ZlcmZsb3dZID0gZG9jdW1lbnRPckJvZHlSZW5kZXJlci0+c3R5bGUoKS5vdmVy
Zmxvd1koKTsKICAgICBpZiAob3ZlcmZsb3dZID09IE9QQUdFRFggfHwgb3ZlcmZsb3dZID09IE9Q
QUdFRFkpIHsKICAgICAgICAgcGFnaW5hdGlvbi5tb2RlID0gV2ViQ29yZTo6cGFnaW5hdGlvbk1v
ZGVGb3JSZW5kZXJTdHlsZShkb2N1bWVudE9yQm9keVJlbmRlcmVyLT5zdHlsZSgpKTsKLSAgICAg
ICAgcGFnaW5hdGlvbi5nYXAgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZG9jdW1lbnRPckJvZHlS
ZW5kZXJlci0+c3R5bGUoKS5jb2x1bW5HYXAoKSk7CisgICAgICAgIEdhcExlbmd0aCBjb2x1bW5H
YXBMZW5ndGggPSBkb2N1bWVudE9yQm9keVJlbmRlcmVyLT5zdHlsZSgpLmNvbHVtbkdhcCgpOwor
ICAgICAgICBwYWdpbmF0aW9uLmdhcCA9IGNvbHVtbkdhcExlbmd0aC5pc05vcm1hbCgpID8gMCA6
IHZhbHVlRm9yTGVuZ3RoKGNvbHVtbkdhcExlbmd0aC5sZW5ndGgoKSwgZG93bmNhc3Q8UmVuZGVy
Qm94Pihkb2N1bWVudE9yQm9keVJlbmRlcmVyKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCkpLnRv
VW5zaWduZWQoKTsKICAgICB9CiAgICAgc2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcAppbmRleCBlYTEyMTg5NTE1ODMwZTkzODg1NjU4NGQxYjliNzUzOWExOWYxZTRmLi4z
M2I4NDFjODQwZWNkZTgxMDhhNjM4NzJmNzdmMGNiNGU4OWQ2YWMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi
Rm9udFNlbGVjdGlvbkFsZ29yaXRobS5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIkdhcExlbmd0aC5oIgogI2luY2x1ZGUgIklkZW50aXR5VHJhbnNmb3JtT3Bl
cmF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1hdHJpeDNEVHJhbnNm
b3JtT3BlcmF0aW9uLmgiCkBAIC05MCw2ICs5MSwxMSBAQCBzdGF0aWMgaW5saW5lIExlbmd0aCBi
bGVuZEZ1bmMoY29uc3QgQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudCosIGNvbnN0IExlbmd0aCYg
ZgogICAgIHJldHVybiBibGVuZChmcm9tLCB0bywgcHJvZ3Jlc3MpOwogfQogCitzdGF0aWMgaW5s
aW5lIEdhcExlbmd0aCBibGVuZEZ1bmMoY29uc3QgQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudCos
IGNvbnN0IEdhcExlbmd0aCYgZnJvbSwgY29uc3QgR2FwTGVuZ3RoJiB0bywgZG91YmxlIHByb2dy
ZXNzKQoreworICAgIHJldHVybiAoZnJvbS5pc05vcm1hbCgpIHx8IHRvLmlzTm9ybWFsKCkpID8g
dG8gOiBibGVuZChmcm9tLmxlbmd0aCgpLCB0by5sZW5ndGgoKSwgcHJvZ3Jlc3MpOworfQorCiBz
dGF0aWMgaW5saW5lIExlbmd0aFNpemUgYmxlbmRGdW5jKGNvbnN0IENTU1Byb3BlcnR5QmxlbmRp
bmdDbGllbnQqIGFuaW0sIGNvbnN0IExlbmd0aFNpemUmIGZyb20sIGNvbnN0IExlbmd0aFNpemUm
IHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgcmV0dXJuIHsgYmxlbmRGdW5jKGFuaW0sIGZy
b20ud2lkdGgsIHRvLndpZHRoLCBwcm9ncmVzcyksIGJsZW5kRnVuYyhhbmltLCBmcm9tLmhlaWdo
dCwgdG8uaGVpZ2h0LCBwcm9ncmVzcykgfTsKQEAgLTE1MTksNyArMTUyNSw3IEBAIENTU1Byb3Bl
cnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKCkK
IAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eUZvbnRTaXpl
LCAmUmVuZGVyU3R5bGU6OmNvbXB1dGVkRm9udFNpemUsICZSZW5kZXJTdHlsZTo6c2V0Rm9udFNp
emUpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPHVuc2lnbmVkIHNob3J0PihDU1NQcm9w
ZXJ0eUNvbHVtblJ1bGVXaWR0aCwgJlJlbmRlclN0eWxlOjpjb2x1bW5SdWxlV2lkdGgsICZSZW5k
ZXJTdHlsZTo6c2V0Q29sdW1uUnVsZVdpZHRoKSwKLSAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBl
cjxmbG9hdD4oQ1NTUHJvcGVydHlDb2x1bW5HYXAsICZSZW5kZXJTdHlsZTo6Y29sdW1uR2FwLCAm
UmVuZGVyU3R5bGU6OnNldENvbHVtbkdhcCksCisgICAgICAgIG5ldyBMZW5ndGhQcm9wZXJ0eVdy
YXBwZXI8R2FwTGVuZ3RoPihDU1NQcm9wZXJ0eUNvbHVtbkdhcCwgJlJlbmRlclN0eWxlOjpjb2x1
bW5HYXAsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uR2FwKSwKICAgICAgICAgbmV3IFByb3BlcnR5
V3JhcHBlcjx1bnNpZ25lZCBzaG9ydD4oQ1NTUHJvcGVydHlDb2x1bW5Db3VudCwgJlJlbmRlclN0
eWxlOjpjb2x1bW5Db3VudCwgJlJlbmRlclN0eWxlOjpzZXRDb2x1bW5Db3VudCksCiAgICAgICAg
IG5ldyBQcm9wZXJ0eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5Q29sdW1uV2lkdGgsICZSZW5k
ZXJTdHlsZTo6Y29sdW1uV2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uV2lkdGgpLAogICAg
ICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckhv
cml6b250YWxTcGFjaW5nLCAmUmVuZGVyU3R5bGU6Omhvcml6b250YWxCb3JkZXJTcGFjaW5nLCAm
UmVuZGVyU3R5bGU6OnNldEhvcml6b250YWxCb3JkZXJTcGFjaW5nKSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMDdkODFkMGMwNjEyZmMyMDI5
NzI4ZDAxZmZlYmExMThjMzkxYWViNy4uYTZlMDc4YTUyZDc2NmNlNjllNzk1ZDE4NzJlMDViZmM3
NzQ2Y2Q1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKQEAgLTM2Niw5ICszNjYsOSBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6cmVjb21wdXRlTG9n
aWNhbFdpZHRoQW5kQ29sdW1uV2lkdGgoKQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6
Y29sdW1uR2FwKCkgY29uc3QKIHsKLSAgICBpZiAoc3R5bGUoKS5oYXNOb3JtYWxDb2x1bW5HYXAo
KSkKKyAgICBpZiAoc3R5bGUoKS5jb2x1bW5HYXAoKS5pc05vcm1hbCgpKQogICAgICAgICByZXR1
cm4gc3R5bGUoKS5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFBpeGVsU2l6ZSgpOyAvLyAiMWVt
IiBpcyByZWNvbW1lbmRlZCBhcyB0aGUgbm9ybWFsIGdhcCBzZXR0aW5nLiBNYXRjaGVzIDxwPiBt
YXJnaW5zLgotICAgIHJldHVybiBzdHlsZSgpLmNvbHVtbkdhcCgpOworICAgIHJldHVybiB2YWx1
ZUZvckxlbmd0aChzdHlsZSgpLmNvbHVtbkdhcCgpLmxlbmd0aCgpLCBhdmFpbGFibGVMb2dpY2Fs
V2lkdGgoKSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlQ29sdW1uQ291bnRB
bmRXaWR0aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmNwcAppbmRleCBhODJjMWZhMzg3ZDgyMjM3OWVhZGNlNWMzMDMyZDhmN2EwMDE0M2U3
Li5jZWI4NWY3NmMxNmY3ZTI3Y2E0MmQ5NzZkMGE5MThhZjZhMDIzYWU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKQEAgLTQyOSw5
ICs0MjksOSBAQCBMYXlvdXRVbml0IFJlbmRlck11bHRpQ29sdW1uU2V0Ojpjb2x1bW5HYXAoKSBj
b25zdAogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHdpbGwgY2FjaGUgdGhlIGNvbHVtbiBn
YXAgd2hlbiB0aGUgd2lkdGhzIG9mIGNvbHVtbnMgc3RhcnQgdmFyeWluZywgYnV0IGZvciBub3cg
d2UganVzdAogICAgIC8vIGdvIHRvIHRoZSBwYXJlbnQgYmxvY2sgdG8gZ2V0IHRoZSBnYXAuCiAg
ICAgUmVuZGVyQmxvY2tGbG93JiBwYXJlbnRCbG9jayA9IGRvd25jYXN0PFJlbmRlckJsb2NrRmxv
dz4oKnBhcmVudCgpKTsKLSAgICBpZiAocGFyZW50QmxvY2suc3R5bGUoKS5oYXNOb3JtYWxDb2x1
bW5HYXAoKSkKKyAgICBpZiAocGFyZW50QmxvY2suc3R5bGUoKS5jb2x1bW5HYXAoKS5pc05vcm1h
bCgpKQogICAgICAgICByZXR1cm4gcGFyZW50QmxvY2suc3R5bGUoKS5mb250RGVzY3JpcHRpb24o
KS5jb21wdXRlZFBpeGVsU2l6ZSgpOyAvLyAiMWVtIiBpcyByZWNvbW1lbmRlZCBhcyB0aGUgbm9y
bWFsIGdhcCBzZXR0aW5nLiBNYXRjaGVzIDxwPiBtYXJnaW5zLgotICAgIHJldHVybiBwYXJlbnRC
bG9jay5zdHlsZSgpLmNvbHVtbkdhcCgpOworICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChwYXJl
bnRCbG9jay5zdHlsZSgpLmNvbHVtbkdhcCgpLmxlbmd0aCgpLCBwYXJlbnRCbG9jay5hdmFpbGFi
bGVMb2dpY2FsV2lkdGgoKSk7CiB9CiAKIHVuc2lnbmVkIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpj
b2x1bW5Db3VudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR2FwTGVuZ3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HYXBM
ZW5ndGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4NjgzZGQyMzNkYWIzMTk0YTM5M2RjOTdlMjY1YzY3NDgz
YTA5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
R2FwTGVuZ3RoLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdhcExlbmd0aC5oIgorCisj
aW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEdhcExlbmd0aCYg
Z2FwTGVuZ3RoKQoreworICAgIGlmIChnYXBMZW5ndGguaXNOb3JtYWwoKSkKKyAgICAgICAgdHMg
PDwgIm5vcm1hbCI7CisgICAgZWxzZQorICAgICAgICB0cyA8PCBnYXBMZW5ndGgubGVuZ3RoKCk7
CisgICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UxMGIwNTFiZWU1
MjY5NWRlOGUxYjg1MTUxZTliNmExNTdhNTNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HYXBMZW5ndGguaApAQCAtMCwwICsxLDcxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJM
ZW5ndGguaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0U3RyZWFtOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgY2xhc3Mgd3JhcHMgdGhlIGxlbmdodCBvZiBhIGdh
cCB1c2VkIGJ5IHByb3BlcnRpZXMgY29sdW1uLWdhcCBhbmQgcm93LWdhcC4KKy8vIFRoZSB2YWxp
ZCB2YWx1ZXMgYXJlICJub3JtYWwiIG9yIGEgbm9uLW5lZ2F0aXZlIDxsZW5ndGgtcGVyY2VudGFn
ZT4uCitjbGFzcyBHYXBMZW5ndGggeworcHVibGljOgorICAgIEdhcExlbmd0aCgpCisgICAgICAg
IDogbV9pc05vcm1hbCh0cnVlKQorICAgIHsKKyAgICB9CisKKyAgICBHYXBMZW5ndGgoY29uc3Qg
TGVuZ3RoJiBsZW5ndGgpCisgICAgICAgIDogbV9pc05vcm1hbChmYWxzZSkKKyAgICAgICAgLCBt
X2xlbmd0aChsZW5ndGgpCisgICAgeworICAgIH0KKworICAgIGJvb2wgaXNOb3JtYWwoKSBjb25z
dCB7IHJldHVybiBtX2lzTm9ybWFsOyB9CisgICAgY29uc3QgTGVuZ3RoJiBsZW5ndGgoKSBjb25z
dCB7IEFTU0VSVCghbV9pc05vcm1hbCk7IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEdhcExlbmd0aCYgbykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2lzTm9ybWFsID09IG8ubV9pc05vcm1hbCAmJiBtX2xlbmd0aCA9PSBvLm1fbGVuZ3RoOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIG1faXNOb3JtYWw7CisgICAgTGVuZ3RoIG1fbGVu
Z3RoOworfTsKKworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IGNvbnN0IEdhcExlbmd0aCYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDEzOTZkM2ZmZGI1MjJj
ODI0YWRhMzAwY2ViNmNlMWE5MDc5MWU5MzYuLjk0NzllOGFlYTMzMjJmYjdkOGM2ODUwMmFhZGFh
ZDFmYjdkNzgwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRGF0YVJlZi5oIgogI2luY2x1ZGUg
IkZpbHRlck9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNs
dWRlICJHYXBMZW5ndGguaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAi
TGVuZ3RoLmgiCiAjaW5jbHVkZSAiTGVuZ3RoQm94LmgiCkBAIC02MDQsOCArNjA1LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzQXV0b0NvbHVtbkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPmF1dG9Db3VudDsgfQogICAgIGJvb2wgc3BlY2lm
aWVzQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJuICFoYXNBdXRvQ29sdW1uQ291bnQoKSB8fCAhaGFz
QXV0b0NvbHVtbldpZHRoKCkgfHwgIWhhc0lubGluZUNvbHVtbkF4aXMoKTsgfQogICAgIENvbHVt
bkZpbGwgY29sdW1uRmlsbCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbHVtbkZpbGw+
KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5maWxsKTsgfQotICAgIGZsb2F0IGNv
bHVtbkdhcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29s
LT5nYXA7IH0KLSAgICBib29sIGhhc05vcm1hbENvbHVtbkdhcCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5ub3JtYWxHYXA7IH0KKyAgICBjb25zdCBH
YXBMZW5ndGgmIGNvbHVtbkdhcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERh
dGEtPm11bHRpQ29sLT5jb2x1bW5HYXA7IH0KICAgICBFQm9yZGVyU3R5bGUgY29sdW1uUnVsZVN0
eWxlKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPnJ1
bGUuc3R5bGUoKTsgfQogICAgIHVuc2lnbmVkIHNob3J0IGNvbHVtblJ1bGVXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5ydWxlV2lkdGgoKTsg
fQogICAgIGJvb2wgY29sdW1uUnVsZUlzVHJhbnNwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+cnVsZS5pc1RyYW5zcGFyZW50KCk7IH0KQEAg
LTExMjksOCArMTEyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvbHVtbkNvdW50KHVuc2ln
bmVkIHNob3J0IGMpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVs
dGlDb2wsIGF1dG9Db3VudCwgZmFsc2UpOyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLCBtdWx0aUNvbCwgY291bnQsIGMpOyB9CiAgICAgdm9pZCBzZXRIYXNBdXRvQ29sdW1u
Q291bnQoKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29s
LCBhdXRvQ291bnQsIHRydWUpOyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCBtdWx0aUNvbCwgY291bnQsIDApOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5GaWxsKENvbHVtbkZp
bGwgY29sdW1uRmlsbCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBt
dWx0aUNvbCwgZmlsbCwgY29sdW1uRmlsbCk7IH0KLSAgICB2b2lkIHNldENvbHVtbkdhcChmbG9h
dCBmKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBu
b3JtYWxHYXAsIGZhbHNlKTsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwg
bXVsdGlDb2wsIGdhcCwgZik7IH0KLSAgICB2b2lkIHNldEhhc05vcm1hbENvbHVtbkdhcCgpIHsg
U0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIG5vcm1hbEdh
cCwgdHJ1ZSk7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29s
LCBnYXAsIDApOyB9CisgICAgdm9pZCBzZXRDb2x1bW5HYXAoR2FwTGVuZ3RoJiYgZ2FwTGVuZ3Ro
KSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBjb2x1
bW5HYXAsIFdURk1vdmUoZ2FwTGVuZ3RoKSk7IH0KICAgICB2b2lkIHNldENvbHVtblJ1bGVDb2xv
cihjb25zdCBDb2xvciYgYykgeyBTRVRfQk9SREVSVkFMVUVfQ09MT1IobV9yYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS5tdWx0aUNvbCwgcnVsZSwgYyk7IH0KICAgICB2b2lkIHNldENvbHVt
blJ1bGVTdHlsZShFQm9yZGVyU3R5bGUgYikgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCBtdWx0aUNvbCwgcnVsZS5tX3N0eWxlLCBiKTsgfQogICAgIHZvaWQgc2V0Q29s
dW1uUnVsZVdpZHRoKHVuc2lnbmVkIHNob3J0IHcpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9u
SW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIHJ1bGUubV93aWR0aCwgdyk7IH0KQEAgLTE1MzMsNiAr
MTUzMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdW5zaWduZWQgc2hvcnQgaW5pdGlhbENvbHVt
bkNvdW50KCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBDb2x1bW5GaWxsIGluaXRpYWxDb2x1
bW5GaWxsKCkgeyByZXR1cm4gQ29sdW1uRmlsbEJhbGFuY2U7IH0KICAgICBzdGF0aWMgQ29sdW1u
U3BhbiBpbml0aWFsQ29sdW1uU3BhbigpIHsgcmV0dXJuIENvbHVtblNwYW5Ob25lOyB9CisgICAg
c3RhdGljIEdhcExlbmd0aCBpbml0aWFsQ29sdW1uR2FwKCkgeyByZXR1cm4gR2FwTGVuZ3RoKCk7
IH0KICAgICBzdGF0aWMgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgaW5pdGlhbFRyYW5zZm9y
bSgpIHsgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRyYW5zZm9ybU9wZXJhdGlvbnM+IG9wczsgcmV0
dXJuIG9wczsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRyYW5zZm9ybU9yaWdpblgoKSB7
IHJldHVybiBMZW5ndGgoNTAuMGYsIFBlcmNlbnQpOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0
aWFsVHJhbnNmb3JtT3JpZ2luWSgpIHsgcmV0dXJuIExlbmd0aCg1MC4wZiwgUGVyY2VudCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29s
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERh
dGEuY3BwCmluZGV4IGI3ZTc5NGY4NGIzOTdjZmQ4YjZhNDlhYWZlMWY3ZmI5OGI3NzkyMWMuLjRk
YzI3OTFiNmVlZDljNTIxNzc4NTkwZTA2NjlkYjA4ZDU3MmE1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmNwcApAQCAtMzAs
NyArMzAsNiBAQCBTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNvbERhdGEoKQogICAgIDog
Y291bnQoUmVuZGVyU3R5bGU6OmluaXRpYWxDb2x1bW5Db3VudCgpKQogICAgICwgYXV0b1dpZHRo
KHRydWUpCiAgICAgLCBhdXRvQ291bnQodHJ1ZSkKLSAgICAsIG5vcm1hbEdhcCh0cnVlKQogICAg
ICwgZmlsbChSZW5kZXJTdHlsZTo6aW5pdGlhbENvbHVtbkZpbGwoKSkKICAgICAsIGNvbHVtblNw
YW4oZmFsc2UpCiAgICAgLCBheGlzKFJlbmRlclN0eWxlOjppbml0aWFsQ29sdW1uQXhpcygpKQpA
QCAtNDIsMTIgKzQxLDExIEBAIGlubGluZSBTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNv
bERhdGEoY29uc3QgU3R5bGVNdWx0aUNvbERhdGEmIG90aGVyKQogICAgIDogUmVmQ291bnRlZDxT
dHlsZU11bHRpQ29sRGF0YT4oKQogICAgICwgd2lkdGgob3RoZXIud2lkdGgpCiAgICAgLCBjb3Vu
dChvdGhlci5jb3VudCkKLSAgICAsIGdhcChvdGhlci5nYXApCisgICAgLCBjb2x1bW5HYXAob3Ro
ZXIuY29sdW1uR2FwKQogICAgICwgcnVsZShvdGhlci5ydWxlKQogICAgICwgdmlzaXRlZExpbmtD
b2x1bW5SdWxlQ29sb3Iob3RoZXIudmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3IpCiAgICAgLCBh
dXRvV2lkdGgob3RoZXIuYXV0b1dpZHRoKQogICAgICwgYXV0b0NvdW50KG90aGVyLmF1dG9Db3Vu
dCkKLSAgICAsIG5vcm1hbEdhcChvdGhlci5ub3JtYWxHYXApCiAgICAgLCBmaWxsKG90aGVyLmZp
bGwpCiAgICAgLCBjb2x1bW5TcGFuKG90aGVyLmNvbHVtblNwYW4pCiAgICAgLCBheGlzKG90aGVy
LmF4aXMpCkBAIC02Miw5ICs2MCw5IEBAIFJlZjxTdHlsZU11bHRpQ29sRGF0YT4gU3R5bGVNdWx0
aUNvbERhdGE6OmNvcHkoKSBjb25zdAogCiBib29sIFN0eWxlTXVsdGlDb2xEYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlTXVsdGlDb2xEYXRhJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4g
d2lkdGggPT0gb3RoZXIud2lkdGggJiYgY291bnQgPT0gb3RoZXIuY291bnQgJiYgZ2FwID09IG90
aGVyLmdhcAorICAgIHJldHVybiB3aWR0aCA9PSBvdGhlci53aWR0aCAmJiBjb3VudCA9PSBvdGhl
ci5jb3VudCAmJiBjb2x1bW5HYXAgPT0gb3RoZXIuY29sdW1uR2FwCiAgICAgICAgICYmIHJ1bGUg
PT0gb3RoZXIucnVsZSAmJiB2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvciA9PSBvdGhlci52aXNp
dGVkTGlua0NvbHVtblJ1bGVDb2xvcgotICAgICAgICAmJiBhdXRvV2lkdGggPT0gb3RoZXIuYXV0
b1dpZHRoICYmIGF1dG9Db3VudCA9PSBvdGhlci5hdXRvQ291bnQgJiYgbm9ybWFsR2FwID09IG90
aGVyLm5vcm1hbEdhcAorICAgICAgICAmJiBhdXRvV2lkdGggPT0gb3RoZXIuYXV0b1dpZHRoICYm
IGF1dG9Db3VudCA9PSBvdGhlci5hdXRvQ291bnQKICAgICAgICAgJiYgZmlsbCA9PSBvdGhlci5m
aWxsICYmIGNvbHVtblNwYW4gPT0gb3RoZXIuY29sdW1uU3BhbgogICAgICAgICAmJiBheGlzID09
IG90aGVyLmF4aXMgJiYgcHJvZ3Jlc3Npb24gPT0gb3RoZXIucHJvZ3Jlc3Npb247CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oCmlu
ZGV4IGY5MmQyM2M1ZjkwOGYxNDI3MWYzMzg3NDNiODA2MDc1NTI1OWEwYTYuLmE2ZGUxZWZiYzcx
NzI4YWNjY2Y4NDRlYmVkMDcwNDFlOWMyY2Y3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oCkBAIC0yNSw2ICsyNSw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkJvcmRlclZhbHVlLmgiCisjaW5jbHVkZSAiR2FwTGVu
Z3RoLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCkBAIC00OSwxMyArNTAsMTIgQEAgcHVibGljOgogCiAgICAgZmxvYXQg
d2lkdGggeyAwIH07CiAgICAgdW5zaWduZWQgc2hvcnQgY291bnQ7Ci0gICAgZmxvYXQgZ2FwIHsg
MCB9OworICAgIEdhcExlbmd0aCBjb2x1bW5HYXA7CiAgICAgQm9yZGVyVmFsdWUgcnVsZTsKICAg
ICBDb2xvciB2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcjsKIAogICAgIGJvb2wgYXV0b1dpZHRo
IDogMTsKICAgICBib29sIGF1dG9Db3VudCA6IDE7Ci0gICAgYm9vbCBub3JtYWxHYXAgOiAxOwog
ICAgIHVuc2lnbmVkIGZpbGwgOiAxOyAvLyBDb2x1bW5GaWxsCiAgICAgdW5zaWduZWQgY29sdW1u
U3BhbiA6IDE7CiAgICAgdW5zaWduZWQgYXhpcyA6IDI7IC8vIENvbHVtbkF4aXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcAppbmRleCBiNmU3
MjA0NTkzODY2ODUwMmMwYjk0NjVkZDI5MTU5NDRlODZlZTYxLi40MDEzMmNmNDFiMGY2NjQyODQz
OGQ5NzQ4ZTEyZGI0OWIyODBiMTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFJlbmRlclN0eWxlIHJl
c29sdmVGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgY29uc3QgUGFn
aW5hdGlvbiYgcGFnaW5hdGlvbiA9IHJlbmRlclZpZXcuZnJhbWVWaWV3KCkucGFnaW5hdGlvbigp
OwogICAgIGlmIChwYWdpbmF0aW9uLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdpbmF0ZWQpIHsK
ICAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRDb2x1bW5TdHlsZXNGcm9tUGFnaW5hdGlvbk1vZGUo
cGFnaW5hdGlvbi5tb2RlKTsKLSAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRDb2x1bW5HYXAocGFn
aW5hdGlvbi5nYXApOworICAgICAgICBkb2N1bWVudFN0eWxlLnNldENvbHVtbkdhcChHYXBMZW5n
dGgoTGVuZ3RoKChpbnQpIHBhZ2luYXRpb24uZ2FwLCBGaXhlZCkpKTsKICAgICAgICAgaWYgKHJl
bmRlclZpZXcubXVsdGlDb2x1bW5GbG93KCkpCiAgICAgICAgICAgICByZW5kZXJWaWV3LnVwZGF0
ZUNvbHVtblByb2dyZXNzaW9uRnJvbVN0eWxlKGRvY3VtZW50U3R5bGUpOwogICAgICAgICBpZiAo
cmVuZGVyVmlldy5wYWdlKCkucGFnaW5hdGlvbkxpbmVHcmlkRW5hYmxlZCgpKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjNjRmYmNlYWI3ZWJjYTg4ZmYxNGUzMDMwMjhiYjkw
MGI1YmFmNmJmLi4xYjQxZjlhOWJlY2ZiYzI4MjQ2NTgzMjAxMmIwZDgxOWEzNjBhODQyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wMS0yNiAg
TWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3Nz
LW11bHRpY29sXSBTdXBwb3J0IHBlcmNlbnRhZ2VzIGluIGNvbHVtbi1nYXAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjAwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEphdmllciBGZXJuYW5kZXouCisKKyAgICAgICAgTmV3IGV4cGVjdGVkIHJlc3Vs
dHMgZm9yIGEgZmV3IHRlc3RzIHRoYXQgYXJlIHBhc3Npbmcgbm93LgorICAgICAgICBPbmUgaXMg
dGhlIHRlc3QgZm9yIHRoaXMgc3BlY2lmaWMgcGF0Y2gsIHRoZSBvdGhlciBhcmUgdGVzdHMgcmVs
YXRlZCB0byBhbmltYXRpb25zCisgICAgICAgIG9mICJub3JtYWwiIGFuZCBpbml0aWFsIHZhbHVl
LCB0aGF0IHdlcmUgZml4ZWQgd2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIEdhcExlbmd0aC4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdh
cC1hbmltYXRpb24tMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGlj
b2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVjdGVkLnR4dDoKKwogMjAxOC0wMS0yNSAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXJyb3JoYW5kbGluZy5odG1sIGNyYXNoZXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNv
bC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wt
Z2FwLWFuaW1hdGlvbi0wMDItZXhwZWN0ZWQudHh0CmluZGV4IDk0Y2M4OWM0ZThiNjI5YjcyZmU1
NzJhZmI2ZjA5MGZjYWNjMzJmMWUuLjZlZGM3NTAxZTJhZmY3MTU3NjI3MThiMjQ4MWU3ZjRjZmU5
OWQ0MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAyLWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKIAotRkFJTCBjb2x1bW4tZ2FwOiBub3JtYWwgaXMgbm90IGludGVycG9s
YWJsZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTAwcHgiIGJ1dCBnb3QgIjgwLjI0MTM5NDA0
Mjk2ODc1cHgiCitQQVNTIGNvbHVtbi1nYXA6IG5vcm1hbCBpcyBub3QgaW50ZXJwb2xhYmxlIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1hdGlvbi0wMDMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11
bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAzLWV4cGVjdGVkLnR4dAppbmRleCA0YTVl
OTNhZjU5MmYzZDhkNGVhYTVkYzdjMTAxYmJhMzI3ZDYzZmJlLi4zMjFiMTU4ZTdmOTZiMzQ3NDRj
YTQ5ZGM5ZGM4ZjgxMjVhODY5MjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1h
dGlvbi0wMDMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAw
My1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgRGVmYXVsdCBjb2x1bW4tZ2Fw
IGlzIG5vdCBpbnRlcnBvbGFibGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjEwMHB4IiBidXQg
Z290ICI4MC4yNDEzOTQwNDI5Njg3NXB4IgorUEFTUyBEZWZhdWx0IGNvbHVtbi1nYXAgaXMgbm90
IGludGVycG9sYWJsZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1wZXJjZW50YWdl
LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVj
dGVkLnR4dAppbmRleCBhMjQyMjViZDM2MmFlMWE2M2IyNjRmNjJiOWE4NmEzMDkyMWEyYjI0Li5l
YmZhM2RkZDA4ZTQ3NTI4ZWViNzE5NzUzMDMzZWNjMWVlZTQ3MTA5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wv
bXVsdGljb2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGlj
b2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVjdGVkLnR4dApAQCAtMSw3NiArMSwxNiBAQAogCi1G
QUlMIC5tdWx0aWNvbCAxIGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgbWFy
Z2luVG9wQm90dG9tIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI4IiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iMjAiPgotICAgIDxkaXYgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0
YS1leHBlY3RlZC13aWR0aD0iMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2
PgotICAgIDxkaXYgZGF0YS1vZmZzZXQteD0iNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICA8
L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDMgYnV0IGdvdCAwCi1GQUlMIC5tdWx0aWNvbCAyIGFzc2Vy
dF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgbWFyZ2luVG9wQm90dG9tIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI4IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNjAiPgotICAgIDxkaXYgZGF0
YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMyIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjYwIj5YWCBYIFg8L2Rpdj4KLSAgICA8ZGl2IGRhdGEtb2Zm
c2V0LXg9IjUiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSI2MCI+WFggWCBYPC9kaXY+Ci0gIDwvZGl2Pgotd2lkdGggZXhwZWN0
ZWQgMyBidXQgZ290IDAKLUZBSUwgLm11bHRpY29sIDMgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNs
YXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjgiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRh
LW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzIiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iMjAiPlg8L2Rpdj4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjUiIGRhdGEtb2Zmc2V0LXk9
IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WDwv
ZGl2PgotICA8L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDMgYnV0IGdvdCAwCi1GQUlMIC5tdWx0aWNv
bCA0IGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgbWFyZ2luVG9wQm90dG9t
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0g
ICAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVk
LXdpZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICAgIDxk
aXYgZGF0YS1vZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICA8L2Rpdj4K
LXdpZHRoIGV4cGVjdGVkIDc1IGJ1dCBnb3QgOTAKLUZBSUwgLm11bHRpY29sIDUgYXNzZXJ0X2Vx
dWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj4KLSAgICA8ZGl2IGRhdGEt
b2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBk
YXRhLWV4cGVjdGVkLWhlaWdodD0iNDAiPlhYIFggWDwvZGl2PgotICAgIDxkaXYgZGF0YS1vZmZz
ZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj5YWCBYIFg8L2Rpdj4KLSAgPC9kaXY+Ci13aWR0aCBleHBl
Y3RlZCA3NSBidXQgZ290IDkwCi1GQUlMIC5tdWx0aWNvbCA2IGFzc2VydF9lcXVhbHM6IAotPGRp
diBjbGFzcz0ibXVsdGljb2wgbWFyZ2luVG9wQm90dG9tIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIy
MDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIw
IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBlY3Rl
ZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIxMjUiIGRhdGEt
b2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iMjAiPlg8L2Rpdj4KLSAgPC9kaXY+Ci13aWR0aCBleHBlY3RlZCA3NSBidXQgZ290IDkwCi1G
QUlMIC5tdWx0aWNvbCA3IGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgaW5s
aW5lQmxvY2siIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjIwIj4KLSAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2Pgot
ICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjEyNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3Rl
ZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WFhYWFg8L2Rpdj4KLTwvZGl2
Pgotd2lkdGggZXhwZWN0ZWQgMjAwIGJ1dCBnb3QgMjIwCi1GQUlMIC5tdWx0aWNvbCA4IGFzc2Vy
dF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgaW5saW5lQmxvY2siIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjI0MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj4KLSAgPGRpdiBkYXRhLW9m
ZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI5MCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj5YWCBYIFg8L2Rpdj4KLSAgPGRpdiBkYXRhLW9mZnNldC14
PSIxNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjkwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iNDAiPlhYIFggWDwvZGl2PgotPC9kaXY+Ci13aWR0aCBleHBlY3RlZCAy
NDAgYnV0IGdvdCAyNjAKLUZBSUwgLm11bHRpY29sIDkgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNs
YXNzPSJtdWx0aWNvbCBpbmxpbmVCbG9jayIgZGF0YS1leHBlY3RlZC13aWR0aD0iNDAiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZz
ZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIy
MCI+WDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjI1IiBkYXRhLW9mZnNldC15PSIwIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSIxNSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+
Ci08L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDQwIGJ1dCBnb3QgNjAKLUZBSUwgLm11bHRpY29sIDEw
IGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgZml4ZWQyMDAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAgPGRpdiBkYXRh
LW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zmc2V0
LXg9IjEyNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNzUiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WFhYWFg8L2Rpdj4KLTwvZGl2Pgotd2lkdGggZXhwZWN0ZWQg
NzUgYnV0IGdvdCA5MAotRkFJTCAubXVsdGljb2wgMTEgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNs
YXNzPSJtdWx0aWNvbCBmaXhlZDIwMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iNDAiPgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0
LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAi
PlhYIFggWDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjEyNSIgZGF0YS1vZmZzZXQteT0i
MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+WFgg
WCBYPC9kaXY+Ci08L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDc1IGJ1dCBnb3QgOTAKLUZBSUwgLm11
bHRpY29sIDEyIGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgZml4ZWQyMDAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAg
PGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci0gIDxkaXYgZGF0YS1v
ZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci08L2Rpdj4KLXdpZHRoIGV4cGVjdGVk
IDc1IGJ1dCBnb3QgOTAKK1BBU1MgLm11bHRpY29sIDEgCitQQVNTIC5tdWx0aWNvbCAyIAorUEFT
UyAubXVsdGljb2wgMyAKK1BBU1MgLm11bHRpY29sIDQgCitQQVNTIC5tdWx0aWNvbCA1IAorUEFT
UyAubXVsdGljb2wgNiAKK1BBU1MgLm11bHRpY29sIDcgCitQQVNTIC5tdWx0aWNvbCA4IAorUEFT
UyAubXVsdGljb2wgOSAKK1BBU1MgLm11bHRpY29sIDEwIAorUEFTUyAubXVsdGljb2wgMTEgCitQ
QVNTIC5tdWx0aWNvbCAxMiAKIE11bHRpY29sIGNvbnRhaW5lcjogZml4ZWQgd2lkdGgKIAogWAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332373</attachid>
            <date>2018-01-26 06:33:50 -0800</date>
            <delta_ts>2018-01-26 06:57:52 -0800</delta_ts>
            <desc>Rebased patch</desc>
            <filename>bug-182004-20180126153347.patch</filename>
            <type>text/plain</type>
            <size>41381</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3Njc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI1ODYyNDk2NWI5OTEx
NDk3YmZlYzQ3MTY2OWY2MzU1ZGE0Njk0MC4uMmMxZWJkNzIxMWJkMmNmMzUyZTI2NTczNmRkMzUz
Njk0NDM2Yjg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE4LTAxLTI2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtbXVs
dGljb2xdIFN1cHBvcnQgcGVyY2VudGFnZXMgaW4gY29sdW1uLWdhcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMDA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSmF2aWVyIEZlcm5hbmRlei4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcGVyY2Vu
dGFnZSBzdXBwb3J0IHRvIGNvbHVtbi1nYXAgcHJvcGVydHkuCisKKyAgICAgICAgTW9zdCBvZiB0
aGUgY2hhbmdlcyBhcmUgcmVsYXRlZCB0byB0aGUgcGFyc2luZyBsb2dpYywKKyAgICAgICAgdGhl
IGNvbHVtbi1nYXAgcHJvcGVydHkgbm93IGFjY2VwdHMgYm90aCBsZW5ndGggYW5kIHBlcmNlbnRh
Z2VzLAorICAgICAgICBvbiB0b3Agb2YgdGhlICJub3JtYWwiIGluaXRpYWwgdmFsdWUuCisgICAg
ICAgIEEgbmV3IHV0aWxpdHkgY2xhc3MgR2FwTGVuZ3RoIGhhcyBiZWVuIGFkZGVkLCBhcyBpdCds
bCBiZSB1c2VmdWwKKyAgICAgICAgdG8gaW1wbGVtZW50IHJvdy1nYXAgaW4gdGhlIGZ1dHVyZS4K
KworICAgICAgICBBcGFydCBmcm9tIHRoYXQgdGhlIG11dGljb2x1bW4gbGF5b3V0IGNvZGUgaGFz
IGJlZW4gbW9kaWZpZWQKKyAgICAgICAgdG8gcmVzb2x2ZSB0aGUgcGVyY2VudGFnZSBnYXBzICh0
cmVhdGluZyB0aGVtIGFzIHplcm8gd2hpbGUgY29tcHV0aW5nCisgICAgICAgIHByZWZlcnJlZCB3
aWR0aHMpIGFuZCByZXNvbHZpbmcgdGhlbSBkdXJpbmcgbGF5b3V0LgorICAgICAgICBUaGlzIGRv
ZXNuJ3QgZm9sbG93IHRoZSBjdXJyZW50IHRleHQgb24gdGhlIHNwZWMsIGJ1dCB0aGVyZSBpcyBh
bgorICAgICAgICBvbmdvaW5nIGRpc2N1c3Npb24gdGhhdCBtaWdodCBjYXVzZSB0aGUgdGV4dCBp
cyBjaGFuZ2VkOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9p
c3N1ZXMvNTA5I2lzc3VlY29tbWVudC0zNTUyNDIxMDEKKyAgICAgICAgV2UgY291bGQgdXBkYXRl
IHRoZSBpbXBsZW1lbnRhdGlvbiBvbmNlIHdlIGhhdmUgYSBkZWZpbml0aXZlIGFuc3dlcgorICAg
ICAgICBmcm9tIHRoZSBDU1MgV0cuCisKKyAgICAgICAgVGVzdDogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLmh0bWwKKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVy
dHlpblN0eWxlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5qc29uOgorICAgICAgICAq
IGNzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVp
bGRlckNvbnZlcnRlcjo6Y29udmVydEdhcExlbmd0aCk6CisgICAgICAgICogY3NzL1N0eWxlQnVp
bGRlckN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6Zm9yd2FyZEluaGVyaXRlZFZhbHVlKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN1bWVHYXBMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQ
YXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6YXBwbHlQYWdpbmF0aW9uVG9WaWV3cG9ydCk6
CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6YmxlbmRGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6Y29sdW1uR2FwIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlD
b2x1bW5TZXQ6OmNvbHVtbkdhcCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dh
cExlbmd0aC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0dhcExlbmd0aC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdhcExlbmd0aDo6R2FwTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkdhcExlbmd0aDo6
aXNOb3JtYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R2FwTGVuZ3RoOjpsZW5ndGggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6R2FwTGVuZ3RoOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpjb2x1bW5HYXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldENvbHVtbkdhcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5p
dGlhbENvbHVtbkdhcCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlTXVsdGlDb2xEYXRhOjpTdHlsZU11bHRp
Q29sRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6b3BlcmF0b3I9
PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmg6
CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OnJlc29sdmVGb3JEb2N1bWVudCk6CisKIDIwMTgtMDEtMjYgIEVtaWxp
byBDb2JvcyDDgWx2YXJleiAgPGVtaWxpb0BjcmlzYWwuaW8+CiAKICAgICAgICAgUmVtb3ZlIHVu
dXNlZCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6Y3JlYXRlRnJhZ21lbnRlZEZsb3dTdHlsZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggYThiODIxZDM0YmEyMWM5Yjc3YzU2ZTBkY2ZjZDA2OTE0ZTZhZjFhZS4u
MzdlYjk1OTc5NzdlYjEzMjZkNDgzNTM3ZTBkZTJlNzE2NDY0Yzk1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE5MTYsNiArMTkxNiw3IEBAIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHAKIHJlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKIHJlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5jcHAKIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCityZW5kZXJpbmcvc3R5
bGUvR2FwTGVuZ3RoLmNwcAogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5jcHAKIHJlbmRl
cmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwCiByZW5kZXJpbmcvc3R5bGUvS2V5
ZnJhbWVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGE0OTNmYzkzZTE1MjUxNjZmNmZiNjI3YWRlNTRhMDc0YTUyNjBj
Y2IuLjNiMDA4ZTM1NTRkMDg2NDU1YTY0ZjdlOWUwNTgwOGVmMTU4Yzc0NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzOTAs
NiArMjM5MCw3IEBACiAJCThBRjRFNTU2MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5h
dmlnYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBRjRFNTUzMTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCAqLzsg
fTsKIAkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1OTExREM1
QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsKIAkJOEU0Qzk2REQxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hSZXNwb25zZS5oICovOyB9OworCQk4RUM2Qzk2MzIwMUEyNTE2MDBGQkZBNTMgLyogR2FwTGVu
Z3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RUM2
Qzk2MTIwMUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTAwMTc3NDAxMkUwMzQ3ODAw
NjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKQEAgLTk5MzQsOCArOTkzNSwxMCBAQAogCQk4QUY0RTU1
NDExREM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4QUY0RTU1OTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1p
bmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9ybWFuY2VUaW1pbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFGNEU1NUExMURDNUE2MzAwMEVEM0RF
IC8qIFBlcmZvcm1hbmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3Jt
YW5jZVRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThFMzNDRDkzMjAx
QTI5QzEwMEUzOTA5MyAvKiBHYXBMZW5ndGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2FwTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNw
b25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RUM2Qzk2MTIwMUEyNTAxMDBG
QkZBNTMgLyogR2FwTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdh
cExlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjY3NTYxOTEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4
OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRF
eGVjU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDU1
LDYgKzIzNDU4LDggQEAKIAkJCQlCQzIyNzQ2RTBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5o
ICovLAogCQkJCUJDNUVCNjlDMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuY3BwICovLAog
CQkJCUJDNUVCNjlEMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCAqLywKKwkJCQk4RTMz
Q0Q5MzIwMUEyOUMxMDBFMzkwOTMgLyogR2FwTGVuZ3RoLmNwcCAqLywKKwkJCQk4RUM2Qzk2MTIw
MUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi8sCiAJCQkJQ0QzRTI1MUIxODA0NkIwNjAw
RTI3RjU2IC8qIEdyaWRBcmVhLmggKi8sCiAJCQkJQ0RFRjRGRDYxN0U4NUM4RjAwQUVFMjRCIC8q
IEdyaWRMZW5ndGguaCAqLywKIAkJCQlFMUY4MTc0NTFFODk3QTUyMDBGMjJDRDAgLyogR3JpZFBv
c2l0aW9uLmNwcCAqLywKQEAgLTI3MzQzLDYgKzI3MzQ4LDcgQEAKIAkJCQk1MUE5RDlFQTE5NUI5
MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJF
MTkyMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNUJFMTkzMUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCThFQzZDOTYzMjAxQTI1MTYwMEZCRkE1MyAvKiBHYXBMZW5ndGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0Nzc1MDlBQzREOEUwMEE2QUFCNCAvKiBHYXBSZWN0
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQzMkU4NDcwQzUxNDkzODAwQjE1MDBGIC8qIEdDQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDMDU0Q0MxMTE4QzhFNDAwQ0UyNjM2IC8q
IGdlbmVyYXRlLWJpbmRpbmdzLnBsIGluIEhlYWRlcnMgKi8sCkBAIC0yODYyNSw3ICsyODYzMSw2
IEBACiAJCQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcu
aCBpbiBIZWFkZXJzICovLAotCQkJCTk0Q0ZENjBEMUZFQUNFRkUwMDI0ODhBRCAvKiBSZW5kZXJM
aW5lc0NsYW1wU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NF
NDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEQ0Q3RjMxRDQ3RTY1NTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0E4MDYxNzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI5MTU5LDYgKzI5MTY0LDggQEAKIAkJCQkzQzI0NEZFQUEzNzVBQzYzM0Y4
OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEJF
MDMwQTIwRjMxMTJGQjAwM0MxQTQ2IC8qIFJlbmRlckxpbmVCb3hMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VBNDg2NDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyTGluZUJyZWFrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NENGRDYwQTFGRTk4NjdFMDAyNDg4QUQgLyogUmVuZGVyTGluZXND
bGFtcEZsb3cuaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Q0ZENjBEMUZFQUNFRkUwMDI0ODhBRCAv
KiBSZW5kZXJMaW5lc0NsYW1wU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQkI1NDE5RjBBQ0RE
RkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdB
NTIwQTE5MUE1MjAwQThFRjVGIC8qIFJlbmRlckxpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBN0E1MDBBMTkxQTUyMDBBOEVGNUYgLyogUmVuZGVyTGlzdE1hcmtlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yOTI5Miw3ICsyOTI5OSw2IEBACiAJCQkJQTVDRTlGM0YxRTRDNDE3NDAwMUJC
RTdDIC8qIFJlc291cmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkMyRDIzMDFDRTVC
OEExMDBEMTg4MEIgLyogUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTUwNzFFODUxQzU2RDBEQzAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VEYXRhLmggaW4g
SGVhZGVycyAqLywKLQkJCQk5NENGRDYwQTFGRTk4NjdFMDAyNDg4QUQgLyogUmVuZGVyTGluZXND
bGFtcEZsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEQkFENkVGMUJDREQ5NTcwMDM4MTMyNSAv
KiBSZXNvdXJjZVVzYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwNzFFODcxQzU2
RDBFMTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCA5NzRmYTZmY2YwMzIzOGU3MzA5ZTIyNzFiZGU2ZWQzOWM2M2Y4ZGIzLi4wYTQ3MTZkNDE0
ZWI2NDBmM2EyZDZiZWY1ZjY5NTk0ZTU5NWQ4NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjkyNiw5ICsyOTI2LDkg
QEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3Bl
cnR5aW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVt
bkZpbGw6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxl
LmNvbHVtbkZpbGwoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5HYXA6Ci0gICAg
ICAgICAgICBpZiAoc3R5bGUuaGFzTm9ybWFsQ29sdW1uR2FwKCkpCisgICAgICAgICAgICBpZiAo
c3R5bGUuY29sdW1uR2FwKCkuaXNOb3JtYWwoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7Ci0gICAgICAg
ICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZShzdHlsZS5jb2x1bW5HYXAoKSwgc3R5
bGUpOworICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgo
c3R5bGUuY29sdW1uR2FwKCkubGVuZ3RoKCksIHN0eWxlKTsKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdENvbHVtblByb2dyZXNzaW9uOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5jb2x1bW5Qcm9ncmVzc2lvbigpKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVDb2xvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCmluZGV4IDFiNmM1ZjkxMjUwNTk5YzYxZmVhZjQ5YWU5MmZhNGFkZjc0MWY5M2MuLmJi
YzBhNTliODI4Y2U4ODdkMTEyMTg5ZjA5M2Q0YmFhYzM1NGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtNDMwNiwxMSArNDMwNiwxMSBAQAogICAgICAgICAgICAg
ICAgICJhbGlhc2VzIjogWwogICAgICAgICAgICAgICAgICAgICAiLXdlYmtpdC1jb2x1bW4tZ2Fw
IgogICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImN1c3RvbSI6ICJBbGwiCisg
ICAgICAgICAgICAgICAgImNvbnZlcnRlciI6ICJHYXBMZW5ndGgiCiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiAgewogICAgICAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJjc3MtbXVsdGljb2wiLAotICAgICAgICAgICAgICAgICJ1cmwiOiAiIgorICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1tdWx0aWNvbC8jY29s
dW1uLWdhcCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgIi13ZWJraXQtY29s
dW1uLXByb2dyZXNzaW9uIjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZl
cnRlci5oCmluZGV4IDIwZDc5NGQ1MjlkNDBjYjAxNTA5MDQ1ZmRhZTYzNjM2Njk3ODhmYjMuLjlk
NjBiMTAxMTAwMTdhZDA5NGVjZmU1MDJlNTljYzcyODJhYjVjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRQb3NpdGlvbkNvbXBvbmVudFgoU3R5bGVSZXNv
bHZlciYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIExlbmd0aCBjb252ZXJ0UG9zaXRp
b25Db21wb25lbnRZKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOworCisgICAgc3Rh
dGljIEdhcExlbmd0aCBjb252ZXJ0R2FwTGVuZ3RoKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NW
YWx1ZSYpOwogICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgU3R5bGVCdWlsZGVyQ3Vz
dG9tOwpAQCAtMTUzOCw0ICsxNTQwLDkgQEAgaW5saW5lIEhhbmdpbmdQdW5jdHVhdGlvbiBTdHls
ZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRIYW5naW5nUHVuY3R1YXRpb24oU3R5bGUKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCitpbmxpbmUgR2FwTGVuZ3RoIFN0eWxlQnVpbGRlckNvbnZlcnRl
cjo6Y29udmVydEdhcExlbmd0aChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBjb25zdCBD
U1NWYWx1ZSYgdmFsdWUpCit7CisgICAgcmV0dXJuIChkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgPyBHYXBMZW5ndGgoKSA6IEdh
cExlbmd0aChjb252ZXJ0TGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHZhbHVlKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1
aWxkZXJDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaApp
bmRleCBkNDhlZDZkNDU1OTM1MDZkM2RhMTI5ODQ3ZjFhYjIyZmQ0YmU5MmU5Li41NGYxNjI0MTA1
NzFjOGU3OTI1MWJjZjJlNjM4NDc0ZWQ0NTU2NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlckN1c3RvbS5oCkBAIC02Miw2ICs2Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBUIGZvcndhcmRJbmhlcml0ZWRWYWx1ZShUJiYgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6Zm9y
CiBpbmxpbmUgTGVuZ3RoIGZvcndhcmRJbmhlcml0ZWRWYWx1ZShjb25zdCBMZW5ndGgmIHZhbHVl
KSB7IGF1dG8gY29weSA9IHZhbHVlOyByZXR1cm4gY29weTsgfQogaW5saW5lIExlbmd0aFNpemUg
Zm9yd2FyZEluaGVyaXRlZFZhbHVlKGNvbnN0IExlbmd0aFNpemUmIHZhbHVlKSB7IGF1dG8gY29w
eSA9IHZhbHVlOyByZXR1cm4gY29weTsgfQogaW5saW5lIExlbmd0aEJveCBmb3J3YXJkSW5oZXJp
dGVkVmFsdWUoY29uc3QgTGVuZ3RoQm94JiB2YWx1ZSkgeyBhdXRvIGNvcHkgPSB2YWx1ZTsgcmV0
dXJuIGNvcHk7IH0KK2lubGluZSBHYXBMZW5ndGggZm9yd2FyZEluaGVyaXRlZFZhbHVlKGNvbnN0
IEdhcExlbmd0aCYgdmFsdWUpIHsgYXV0byBjb3B5ID0gdmFsdWU7IHJldHVybiBjb3B5OyB9CiAK
IC8vIE5vdGUgdGhhdCB3ZSBhc3N1bWUgdGhlIENTUyBwYXJzZXIgb25seSBhbGxvd3MgdmFsaWQg
Q1NTVmFsdWUgdHlwZXMuCiBjbGFzcyBTdHlsZUJ1aWxkZXJDdXN0b20gewpAQCAtNzMsNyArNzQs
NiBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQm9yZGVy
SW1hZ2VXaWR0aCk7CiAgICAgREVDTEFSRV9QUk9QRVJUWV9DVVNUT01fSEFORExFUlMoQm94U2hh
ZG93KTsKICAgICBERUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5ETEVSUyhDbGlwKTsKLSAgICBE
RUNMQVJFX1BST1BFUlRZX0NVU1RPTV9IQU5ETEVSUyhDb2x1bW5HYXApOwogICAgIERFQ0xBUkVf
UFJPUEVSVFlfQ1VTVE9NX0hBTkRMRVJTKENvbnRlbnQpOwogICAgIERFQ0xBUkVfUFJPUEVSVFlf
Q1VTVE9NX0hBTkRMRVJTKENvdW50ZXJJbmNyZW1lbnQpOwogICAgIERFQ0xBUkVfUFJPUEVSVFlf
Q1VTVE9NX0hBTkRMRVJTKENvdW50ZXJSZXNldCk7CkBAIC0xMzY2LDI3ICsxMzY2LDYgQEAgaW5s
aW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlV2Via2l0U3ZnU2hhZG93KFN0
eWxlUmVzb2x2ZXImIHN0eWxlUmUKICAgICBzdmdTdHlsZS5zZXRTaGFkb3coc3RkOjptYWtlX3Vu
aXF1ZTxTaGFkb3dEYXRhPihsb2NhdGlvbiwgYmx1ciwgMCwgTm9ybWFsLCBmYWxzZSwgY29sb3Iu
aXNWYWxpZCgpID8gY29sb3IgOiBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKIH0KIAotaW5saW5lIHZv
aWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseUluaXRpYWxDb2x1bW5HYXAoU3R5bGVSZXNvbHZl
ciYgc3R5bGVSZXNvbHZlcikKLXsKLSAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05v
cm1hbENvbHVtbkdhcCgpOwotfQotCi1pbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFw
cGx5SW5oZXJpdENvbHVtbkdhcChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyKQotewotICAg
IGlmIChzdHlsZVJlc29sdmVyLnBhcmVudFN0eWxlKCktPmhhc05vcm1hbENvbHVtbkdhcCgpKQot
ICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05vcm1hbENvbHVtbkdhcCgpOwot
ICAgIGVsc2UKLSAgICAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRDb2x1bW5HYXAoc3R5
bGVSZXNvbHZlci5wYXJlbnRTdHlsZSgpLT5jb2x1bW5HYXAoKSk7Ci19Ci0KLWlubGluZSB2b2lk
IFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUNvbHVtbkdhcChTdHlsZVJlc29sdmVyJiBz
dHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCi17Ci0gICAgaWYgKGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPih2YWx1ZSkudmFsdWVJRCgpID09IENTU1ZhbHVlTm9ybWFsKQotICAgICAg
ICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc05vcm1hbENvbHVtbkdhcCgpOwotICAgIGVs
c2UKLSAgICAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRDb2x1bW5HYXAoU3R5bGVCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0Q29tcHV0ZWRMZW5ndGg8ZmxvYXQ+KHN0eWxlUmVzb2x2ZXIs
IHZhbHVlKSk7Ci19Ci0KIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlJbml0
aWFsQ29udGVudChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyKQogewogICAgIHN0eWxlUmVz
b2x2ZXIuc3R5bGUoKS0+Y2xlYXJDb250ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDBkMzQzYzk4MTMyNGRjZjNlYWI2MjE1
MWMzYmI2NTI0MzZmZmVhZmIuLjE4OTIzNTZiNGI5MzE3NGQ1NTE3MWM1MDE3MjE3M2ZkZmY0YTEy
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCkBAIC0xMzkyLDExICsxMzkyLDExIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1
bWVDb2x1bW5Db3VudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICByZXR1cm4gY29u
c3VtZVBvc2l0aXZlSW50ZWdlcihyYW5nZSk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+
IGNvbnN1bWVDb2x1bW5HYXAoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1v
ZGUgY3NzUGFyc2VyTW9kZSkKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHYXBMZW5n
dGgoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9k
ZSkKIHsKICAgICBpZiAocmFuZ2UucGVlaygpLmlkKCkgPT0gQ1NTVmFsdWVOb3JtYWwpCiAgICAg
ICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwotICAgIHJldHVybiBjb25zdW1lTGVuZ3Ro
KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOworICAgIHJldHVy
biBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdl
Tm9uTmVnYXRpdmUpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQ29sdW1u
U3BhbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKQEAgLTQwMzUsNyArNDAzNSw3IEBAIFJl
ZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtbkNvdW50Ogog
ICAgICAgICByZXR1cm4gY29uc3VtZUNvbHVtbkNvdW50KG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlDb2x1bW5HYXA6Ci0gICAgICAgIHJldHVybiBjb25zdW1lQ29sdW1uR2FwKG1fcmFu
Z2UsIG1fY29udGV4dC5tb2RlKTsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVHYXBMZW5ndGgobV9y
YW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5TcGFuOgog
ICAgICAgICByZXR1cm4gY29uc3VtZUNvbHVtblNwYW4obV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVpvb206CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggOWFmMTY0YjRmODRk
ODgzODE1NGUwMGEyOGYwMjE4YjY1MWI1NzYyYS4uYjZhNzAyNmI3YjQ3ZjcxNmQ2MDRiNTMyMjc3
YTAxODMyOWE2ZjBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNzIwLDcgKzcy
MCw4IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBseVBhZ2luYXRpb25Ub1ZpZXdwb3J0KCkKICAgICBF
T3ZlcmZsb3cgb3ZlcmZsb3dZID0gZG9jdW1lbnRPckJvZHlSZW5kZXJlci0+c3R5bGUoKS5vdmVy
Zmxvd1koKTsKICAgICBpZiAob3ZlcmZsb3dZID09IE9QQUdFRFggfHwgb3ZlcmZsb3dZID09IE9Q
QUdFRFkpIHsKICAgICAgICAgcGFnaW5hdGlvbi5tb2RlID0gV2ViQ29yZTo6cGFnaW5hdGlvbk1v
ZGVGb3JSZW5kZXJTdHlsZShkb2N1bWVudE9yQm9keVJlbmRlcmVyLT5zdHlsZSgpKTsKLSAgICAg
ICAgcGFnaW5hdGlvbi5nYXAgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZG9jdW1lbnRPckJvZHlS
ZW5kZXJlci0+c3R5bGUoKS5jb2x1bW5HYXAoKSk7CisgICAgICAgIEdhcExlbmd0aCBjb2x1bW5H
YXBMZW5ndGggPSBkb2N1bWVudE9yQm9keVJlbmRlcmVyLT5zdHlsZSgpLmNvbHVtbkdhcCgpOwor
ICAgICAgICBwYWdpbmF0aW9uLmdhcCA9IGNvbHVtbkdhcExlbmd0aC5pc05vcm1hbCgpID8gMCA6
IHZhbHVlRm9yTGVuZ3RoKGNvbHVtbkdhcExlbmd0aC5sZW5ndGgoKSwgZG93bmNhc3Q8UmVuZGVy
Qm94Pihkb2N1bWVudE9yQm9keVJlbmRlcmVyKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCkpLnRv
VW5zaWduZWQoKTsKICAgICB9CiAgICAgc2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcAppbmRleCBlYTEyMTg5NTE1ODMwZTkzODg1NjU4NGQxYjliNzUzOWExOWYxZTRmLi4z
M2I4NDFjODQwZWNkZTgxMDhhNjM4NzJmNzdmMGNiNGU4OWQ2YWMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi
Rm9udFNlbGVjdGlvbkFsZ29yaXRobS5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIkdhcExlbmd0aC5oIgogI2luY2x1ZGUgIklkZW50aXR5VHJhbnNmb3JtT3Bl
cmF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1hdHJpeDNEVHJhbnNm
b3JtT3BlcmF0aW9uLmgiCkBAIC05MCw2ICs5MSwxMSBAQCBzdGF0aWMgaW5saW5lIExlbmd0aCBi
bGVuZEZ1bmMoY29uc3QgQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudCosIGNvbnN0IExlbmd0aCYg
ZgogICAgIHJldHVybiBibGVuZChmcm9tLCB0bywgcHJvZ3Jlc3MpOwogfQogCitzdGF0aWMgaW5s
aW5lIEdhcExlbmd0aCBibGVuZEZ1bmMoY29uc3QgQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudCos
IGNvbnN0IEdhcExlbmd0aCYgZnJvbSwgY29uc3QgR2FwTGVuZ3RoJiB0bywgZG91YmxlIHByb2dy
ZXNzKQoreworICAgIHJldHVybiAoZnJvbS5pc05vcm1hbCgpIHx8IHRvLmlzTm9ybWFsKCkpID8g
dG8gOiBibGVuZChmcm9tLmxlbmd0aCgpLCB0by5sZW5ndGgoKSwgcHJvZ3Jlc3MpOworfQorCiBz
dGF0aWMgaW5saW5lIExlbmd0aFNpemUgYmxlbmRGdW5jKGNvbnN0IENTU1Byb3BlcnR5QmxlbmRp
bmdDbGllbnQqIGFuaW0sIGNvbnN0IExlbmd0aFNpemUmIGZyb20sIGNvbnN0IExlbmd0aFNpemUm
IHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgcmV0dXJuIHsgYmxlbmRGdW5jKGFuaW0sIGZy
b20ud2lkdGgsIHRvLndpZHRoLCBwcm9ncmVzcyksIGJsZW5kRnVuYyhhbmltLCBmcm9tLmhlaWdo
dCwgdG8uaGVpZ2h0LCBwcm9ncmVzcykgfTsKQEAgLTE1MTksNyArMTUyNSw3IEBAIENTU1Byb3Bl
cnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKCkK
IAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eUZvbnRTaXpl
LCAmUmVuZGVyU3R5bGU6OmNvbXB1dGVkRm9udFNpemUsICZSZW5kZXJTdHlsZTo6c2V0Rm9udFNp
emUpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPHVuc2lnbmVkIHNob3J0PihDU1NQcm9w
ZXJ0eUNvbHVtblJ1bGVXaWR0aCwgJlJlbmRlclN0eWxlOjpjb2x1bW5SdWxlV2lkdGgsICZSZW5k
ZXJTdHlsZTo6c2V0Q29sdW1uUnVsZVdpZHRoKSwKLSAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBl
cjxmbG9hdD4oQ1NTUHJvcGVydHlDb2x1bW5HYXAsICZSZW5kZXJTdHlsZTo6Y29sdW1uR2FwLCAm
UmVuZGVyU3R5bGU6OnNldENvbHVtbkdhcCksCisgICAgICAgIG5ldyBMZW5ndGhQcm9wZXJ0eVdy
YXBwZXI8R2FwTGVuZ3RoPihDU1NQcm9wZXJ0eUNvbHVtbkdhcCwgJlJlbmRlclN0eWxlOjpjb2x1
bW5HYXAsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uR2FwKSwKICAgICAgICAgbmV3IFByb3BlcnR5
V3JhcHBlcjx1bnNpZ25lZCBzaG9ydD4oQ1NTUHJvcGVydHlDb2x1bW5Db3VudCwgJlJlbmRlclN0
eWxlOjpjb2x1bW5Db3VudCwgJlJlbmRlclN0eWxlOjpzZXRDb2x1bW5Db3VudCksCiAgICAgICAg
IG5ldyBQcm9wZXJ0eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5Q29sdW1uV2lkdGgsICZSZW5k
ZXJTdHlsZTo6Y29sdW1uV2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uV2lkdGgpLAogICAg
ICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckhv
cml6b250YWxTcGFjaW5nLCAmUmVuZGVyU3R5bGU6Omhvcml6b250YWxCb3JkZXJTcGFjaW5nLCAm
UmVuZGVyU3R5bGU6OnNldEhvcml6b250YWxCb3JkZXJTcGFjaW5nKSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMDdkODFkMGMwNjEyZmMyMDI5
NzI4ZDAxZmZlYmExMThjMzkxYWViNy4uYTZlMDc4YTUyZDc2NmNlNjllNzk1ZDE4NzJlMDViZmM3
NzQ2Y2Q1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKQEAgLTM2Niw5ICszNjYsOSBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6cmVjb21wdXRlTG9n
aWNhbFdpZHRoQW5kQ29sdW1uV2lkdGgoKQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6
Y29sdW1uR2FwKCkgY29uc3QKIHsKLSAgICBpZiAoc3R5bGUoKS5oYXNOb3JtYWxDb2x1bW5HYXAo
KSkKKyAgICBpZiAoc3R5bGUoKS5jb2x1bW5HYXAoKS5pc05vcm1hbCgpKQogICAgICAgICByZXR1
cm4gc3R5bGUoKS5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFBpeGVsU2l6ZSgpOyAvLyAiMWVt
IiBpcyByZWNvbW1lbmRlZCBhcyB0aGUgbm9ybWFsIGdhcCBzZXR0aW5nLiBNYXRjaGVzIDxwPiBt
YXJnaW5zLgotICAgIHJldHVybiBzdHlsZSgpLmNvbHVtbkdhcCgpOworICAgIHJldHVybiB2YWx1
ZUZvckxlbmd0aChzdHlsZSgpLmNvbHVtbkdhcCgpLmxlbmd0aCgpLCBhdmFpbGFibGVMb2dpY2Fs
V2lkdGgoKSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlQ29sdW1uQ291bnRB
bmRXaWR0aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmNwcAppbmRleCBhODJjMWZhMzg3ZDgyMjM3OWVhZGNlNWMzMDMyZDhmN2EwMDE0M2U3
Li5jZWI4NWY3NmMxNmY3ZTI3Y2E0MmQ5NzZkMGE5MThhZjZhMDIzYWU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKQEAgLTQyOSw5
ICs0MjksOSBAQCBMYXlvdXRVbml0IFJlbmRlck11bHRpQ29sdW1uU2V0Ojpjb2x1bW5HYXAoKSBj
b25zdAogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHdpbGwgY2FjaGUgdGhlIGNvbHVtbiBn
YXAgd2hlbiB0aGUgd2lkdGhzIG9mIGNvbHVtbnMgc3RhcnQgdmFyeWluZywgYnV0IGZvciBub3cg
d2UganVzdAogICAgIC8vIGdvIHRvIHRoZSBwYXJlbnQgYmxvY2sgdG8gZ2V0IHRoZSBnYXAuCiAg
ICAgUmVuZGVyQmxvY2tGbG93JiBwYXJlbnRCbG9jayA9IGRvd25jYXN0PFJlbmRlckJsb2NrRmxv
dz4oKnBhcmVudCgpKTsKLSAgICBpZiAocGFyZW50QmxvY2suc3R5bGUoKS5oYXNOb3JtYWxDb2x1
bW5HYXAoKSkKKyAgICBpZiAocGFyZW50QmxvY2suc3R5bGUoKS5jb2x1bW5HYXAoKS5pc05vcm1h
bCgpKQogICAgICAgICByZXR1cm4gcGFyZW50QmxvY2suc3R5bGUoKS5mb250RGVzY3JpcHRpb24o
KS5jb21wdXRlZFBpeGVsU2l6ZSgpOyAvLyAiMWVtIiBpcyByZWNvbW1lbmRlZCBhcyB0aGUgbm9y
bWFsIGdhcCBzZXR0aW5nLiBNYXRjaGVzIDxwPiBtYXJnaW5zLgotICAgIHJldHVybiBwYXJlbnRC
bG9jay5zdHlsZSgpLmNvbHVtbkdhcCgpOworICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChwYXJl
bnRCbG9jay5zdHlsZSgpLmNvbHVtbkdhcCgpLmxlbmd0aCgpLCBwYXJlbnRCbG9jay5hdmFpbGFi
bGVMb2dpY2FsV2lkdGgoKSk7CiB9CiAKIHVuc2lnbmVkIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpj
b2x1bW5Db3VudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR2FwTGVuZ3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HYXBM
ZW5ndGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4NjgzZGQyMzNkYWIzMTk0YTM5M2RjOTdlMjY1YzY3NDgz
YTA5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
R2FwTGVuZ3RoLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdhcExlbmd0aC5oIgorCisj
aW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEdhcExlbmd0aCYg
Z2FwTGVuZ3RoKQoreworICAgIGlmIChnYXBMZW5ndGguaXNOb3JtYWwoKSkKKyAgICAgICAgdHMg
PDwgIm5vcm1hbCI7CisgICAgZWxzZQorICAgICAgICB0cyA8PCBnYXBMZW5ndGgubGVuZ3RoKCk7
CisgICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvR2FwTGVuZ3RoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UxMGIwNTFiZWU1
MjY5NWRlOGUxYjg1MTUxZTliNmExNTdhNTNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HYXBMZW5ndGguaApAQCAtMCwwICsxLDcxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJM
ZW5ndGguaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0U3RyZWFtOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgY2xhc3Mgd3JhcHMgdGhlIGxlbmdodCBvZiBhIGdh
cCB1c2VkIGJ5IHByb3BlcnRpZXMgY29sdW1uLWdhcCBhbmQgcm93LWdhcC4KKy8vIFRoZSB2YWxp
ZCB2YWx1ZXMgYXJlICJub3JtYWwiIG9yIGEgbm9uLW5lZ2F0aXZlIDxsZW5ndGgtcGVyY2VudGFn
ZT4uCitjbGFzcyBHYXBMZW5ndGggeworcHVibGljOgorICAgIEdhcExlbmd0aCgpCisgICAgICAg
IDogbV9pc05vcm1hbCh0cnVlKQorICAgIHsKKyAgICB9CisKKyAgICBHYXBMZW5ndGgoY29uc3Qg
TGVuZ3RoJiBsZW5ndGgpCisgICAgICAgIDogbV9pc05vcm1hbChmYWxzZSkKKyAgICAgICAgLCBt
X2xlbmd0aChsZW5ndGgpCisgICAgeworICAgIH0KKworICAgIGJvb2wgaXNOb3JtYWwoKSBjb25z
dCB7IHJldHVybiBtX2lzTm9ybWFsOyB9CisgICAgY29uc3QgTGVuZ3RoJiBsZW5ndGgoKSBjb25z
dCB7IEFTU0VSVCghbV9pc05vcm1hbCk7IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEdhcExlbmd0aCYgbykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2lzTm9ybWFsID09IG8ubV9pc05vcm1hbCAmJiBtX2xlbmd0aCA9PSBvLm1fbGVuZ3RoOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIG1faXNOb3JtYWw7CisgICAgTGVuZ3RoIG1fbGVu
Z3RoOworfTsKKworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IGNvbnN0IEdhcExlbmd0aCYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDEzOTZkM2ZmZGI1MjJj
ODI0YWRhMzAwY2ViNmNlMWE5MDc5MWU5MzYuLjk0NzllOGFlYTMzMjJmYjdkOGM2ODUwMmFhZGFh
ZDFmYjdkNzgwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRGF0YVJlZi5oIgogI2luY2x1ZGUg
IkZpbHRlck9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNs
dWRlICJHYXBMZW5ndGguaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAi
TGVuZ3RoLmgiCiAjaW5jbHVkZSAiTGVuZ3RoQm94LmgiCkBAIC02MDQsOCArNjA1LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzQXV0b0NvbHVtbkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPmF1dG9Db3VudDsgfQogICAgIGJvb2wgc3BlY2lm
aWVzQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJuICFoYXNBdXRvQ29sdW1uQ291bnQoKSB8fCAhaGFz
QXV0b0NvbHVtbldpZHRoKCkgfHwgIWhhc0lubGluZUNvbHVtbkF4aXMoKTsgfQogICAgIENvbHVt
bkZpbGwgY29sdW1uRmlsbCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbHVtbkZpbGw+
KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5maWxsKTsgfQotICAgIGZsb2F0IGNv
bHVtbkdhcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29s
LT5nYXA7IH0KLSAgICBib29sIGhhc05vcm1hbENvbHVtbkdhcCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5ub3JtYWxHYXA7IH0KKyAgICBjb25zdCBH
YXBMZW5ndGgmIGNvbHVtbkdhcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERh
dGEtPm11bHRpQ29sLT5jb2x1bW5HYXA7IH0KICAgICBFQm9yZGVyU3R5bGUgY29sdW1uUnVsZVN0
eWxlKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bXVsdGlDb2wtPnJ1
bGUuc3R5bGUoKTsgfQogICAgIHVuc2lnbmVkIHNob3J0IGNvbHVtblJ1bGVXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5ydWxlV2lkdGgoKTsg
fQogICAgIGJvb2wgY29sdW1uUnVsZUlzVHJhbnNwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+cnVsZS5pc1RyYW5zcGFyZW50KCk7IH0KQEAg
LTExMjksOCArMTEyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvbHVtbkNvdW50KHVuc2ln
bmVkIHNob3J0IGMpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVs
dGlDb2wsIGF1dG9Db3VudCwgZmFsc2UpOyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLCBtdWx0aUNvbCwgY291bnQsIGMpOyB9CiAgICAgdm9pZCBzZXRIYXNBdXRvQ29sdW1u
Q291bnQoKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29s
LCBhdXRvQ291bnQsIHRydWUpOyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCBtdWx0aUNvbCwgY291bnQsIDApOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5GaWxsKENvbHVtbkZp
bGwgY29sdW1uRmlsbCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBt
dWx0aUNvbCwgZmlsbCwgY29sdW1uRmlsbCk7IH0KLSAgICB2b2lkIHNldENvbHVtbkdhcChmbG9h
dCBmKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBu
b3JtYWxHYXAsIGZhbHNlKTsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwg
bXVsdGlDb2wsIGdhcCwgZik7IH0KLSAgICB2b2lkIHNldEhhc05vcm1hbENvbHVtbkdhcCgpIHsg
U0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIG5vcm1hbEdh
cCwgdHJ1ZSk7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29s
LCBnYXAsIDApOyB9CisgICAgdm9pZCBzZXRDb2x1bW5HYXAoR2FwTGVuZ3RoJiYgZ2FwTGVuZ3Ro
KSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRpQ29sLCBjb2x1
bW5HYXAsIFdURk1vdmUoZ2FwTGVuZ3RoKSk7IH0KICAgICB2b2lkIHNldENvbHVtblJ1bGVDb2xv
cihjb25zdCBDb2xvciYgYykgeyBTRVRfQk9SREVSVkFMVUVfQ09MT1IobV9yYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS5tdWx0aUNvbCwgcnVsZSwgYyk7IH0KICAgICB2b2lkIHNldENvbHVt
blJ1bGVTdHlsZShFQm9yZGVyU3R5bGUgYikgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCBtdWx0aUNvbCwgcnVsZS5tX3N0eWxlLCBiKTsgfQogICAgIHZvaWQgc2V0Q29s
dW1uUnVsZVdpZHRoKHVuc2lnbmVkIHNob3J0IHcpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9u
SW5oZXJpdGVkRGF0YSwgbXVsdGlDb2wsIHJ1bGUubV93aWR0aCwgdyk7IH0KQEAgLTE1MzMsNiAr
MTUzMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdW5zaWduZWQgc2hvcnQgaW5pdGlhbENvbHVt
bkNvdW50KCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBDb2x1bW5GaWxsIGluaXRpYWxDb2x1
bW5GaWxsKCkgeyByZXR1cm4gQ29sdW1uRmlsbEJhbGFuY2U7IH0KICAgICBzdGF0aWMgQ29sdW1u
U3BhbiBpbml0aWFsQ29sdW1uU3BhbigpIHsgcmV0dXJuIENvbHVtblNwYW5Ob25lOyB9CisgICAg
c3RhdGljIEdhcExlbmd0aCBpbml0aWFsQ29sdW1uR2FwKCkgeyByZXR1cm4gR2FwTGVuZ3RoKCk7
IH0KICAgICBzdGF0aWMgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgaW5pdGlhbFRyYW5zZm9y
bSgpIHsgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRyYW5zZm9ybU9wZXJhdGlvbnM+IG9wczsgcmV0
dXJuIG9wczsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRyYW5zZm9ybU9yaWdpblgoKSB7
IHJldHVybiBMZW5ndGgoNTAuMGYsIFBlcmNlbnQpOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0
aWFsVHJhbnNmb3JtT3JpZ2luWSgpIHsgcmV0dXJuIExlbmd0aCg1MC4wZiwgUGVyY2VudCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29s
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERh
dGEuY3BwCmluZGV4IGI3ZTc5NGY4NGIzOTdjZmQ4YjZhNDlhYWZlMWY3ZmI5OGI3NzkyMWMuLjRk
YzI3OTFiNmVlZDljNTIxNzc4NTkwZTA2NjlkYjA4ZDU3MmE1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmNwcApAQCAtMzAs
NyArMzAsNiBAQCBTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNvbERhdGEoKQogICAgIDog
Y291bnQoUmVuZGVyU3R5bGU6OmluaXRpYWxDb2x1bW5Db3VudCgpKQogICAgICwgYXV0b1dpZHRo
KHRydWUpCiAgICAgLCBhdXRvQ291bnQodHJ1ZSkKLSAgICAsIG5vcm1hbEdhcCh0cnVlKQogICAg
ICwgZmlsbChSZW5kZXJTdHlsZTo6aW5pdGlhbENvbHVtbkZpbGwoKSkKICAgICAsIGNvbHVtblNw
YW4oZmFsc2UpCiAgICAgLCBheGlzKFJlbmRlclN0eWxlOjppbml0aWFsQ29sdW1uQXhpcygpKQpA
QCAtNDIsMTIgKzQxLDExIEBAIGlubGluZSBTdHlsZU11bHRpQ29sRGF0YTo6U3R5bGVNdWx0aUNv
bERhdGEoY29uc3QgU3R5bGVNdWx0aUNvbERhdGEmIG90aGVyKQogICAgIDogUmVmQ291bnRlZDxT
dHlsZU11bHRpQ29sRGF0YT4oKQogICAgICwgd2lkdGgob3RoZXIud2lkdGgpCiAgICAgLCBjb3Vu
dChvdGhlci5jb3VudCkKLSAgICAsIGdhcChvdGhlci5nYXApCisgICAgLCBjb2x1bW5HYXAob3Ro
ZXIuY29sdW1uR2FwKQogICAgICwgcnVsZShvdGhlci5ydWxlKQogICAgICwgdmlzaXRlZExpbmtD
b2x1bW5SdWxlQ29sb3Iob3RoZXIudmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3IpCiAgICAgLCBh
dXRvV2lkdGgob3RoZXIuYXV0b1dpZHRoKQogICAgICwgYXV0b0NvdW50KG90aGVyLmF1dG9Db3Vu
dCkKLSAgICAsIG5vcm1hbEdhcChvdGhlci5ub3JtYWxHYXApCiAgICAgLCBmaWxsKG90aGVyLmZp
bGwpCiAgICAgLCBjb2x1bW5TcGFuKG90aGVyLmNvbHVtblNwYW4pCiAgICAgLCBheGlzKG90aGVy
LmF4aXMpCkBAIC02Miw5ICs2MCw5IEBAIFJlZjxTdHlsZU11bHRpQ29sRGF0YT4gU3R5bGVNdWx0
aUNvbERhdGE6OmNvcHkoKSBjb25zdAogCiBib29sIFN0eWxlTXVsdGlDb2xEYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlTXVsdGlDb2xEYXRhJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4g
d2lkdGggPT0gb3RoZXIud2lkdGggJiYgY291bnQgPT0gb3RoZXIuY291bnQgJiYgZ2FwID09IG90
aGVyLmdhcAorICAgIHJldHVybiB3aWR0aCA9PSBvdGhlci53aWR0aCAmJiBjb3VudCA9PSBvdGhl
ci5jb3VudCAmJiBjb2x1bW5HYXAgPT0gb3RoZXIuY29sdW1uR2FwCiAgICAgICAgICYmIHJ1bGUg
PT0gb3RoZXIucnVsZSAmJiB2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvciA9PSBvdGhlci52aXNp
dGVkTGlua0NvbHVtblJ1bGVDb2xvcgotICAgICAgICAmJiBhdXRvV2lkdGggPT0gb3RoZXIuYXV0
b1dpZHRoICYmIGF1dG9Db3VudCA9PSBvdGhlci5hdXRvQ291bnQgJiYgbm9ybWFsR2FwID09IG90
aGVyLm5vcm1hbEdhcAorICAgICAgICAmJiBhdXRvV2lkdGggPT0gb3RoZXIuYXV0b1dpZHRoICYm
IGF1dG9Db3VudCA9PSBvdGhlci5hdXRvQ291bnQKICAgICAgICAgJiYgZmlsbCA9PSBvdGhlci5m
aWxsICYmIGNvbHVtblNwYW4gPT0gb3RoZXIuY29sdW1uU3BhbgogICAgICAgICAmJiBheGlzID09
IG90aGVyLmF4aXMgJiYgcHJvZ3Jlc3Npb24gPT0gb3RoZXIucHJvZ3Jlc3Npb247CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oCmlu
ZGV4IGY5MmQyM2M1ZjkwOGYxNDI3MWYzMzg3NDNiODA2MDc1NTI1OWEwYTYuLmE2ZGUxZWZiYzcx
NzI4YWNjY2Y4NDRlYmVkMDcwNDFlOWMyY2Y3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oCkBAIC0yNSw2ICsyNSw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkJvcmRlclZhbHVlLmgiCisjaW5jbHVkZSAiR2FwTGVu
Z3RoLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCkBAIC00OSwxMyArNTAsMTIgQEAgcHVibGljOgogCiAgICAgZmxvYXQg
d2lkdGggeyAwIH07CiAgICAgdW5zaWduZWQgc2hvcnQgY291bnQ7Ci0gICAgZmxvYXQgZ2FwIHsg
MCB9OworICAgIEdhcExlbmd0aCBjb2x1bW5HYXA7CiAgICAgQm9yZGVyVmFsdWUgcnVsZTsKICAg
ICBDb2xvciB2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcjsKIAogICAgIGJvb2wgYXV0b1dpZHRo
IDogMTsKICAgICBib29sIGF1dG9Db3VudCA6IDE7Ci0gICAgYm9vbCBub3JtYWxHYXAgOiAxOwog
ICAgIHVuc2lnbmVkIGZpbGwgOiAxOyAvLyBDb2x1bW5GaWxsCiAgICAgdW5zaWduZWQgY29sdW1u
U3BhbiA6IDE7CiAgICAgdW5zaWduZWQgYXhpcyA6IDI7IC8vIENvbHVtbkF4aXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcAppbmRleCBiNmU3
MjA0NTkzODY2ODUwMmMwYjk0NjVkZDI5MTU5NDRlODZlZTYxLi40MDEzMmNmNDFiMGY2NjQyODQz
OGQ5NzQ4ZTEyZGI0OWIyODBiMTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFJlbmRlclN0eWxlIHJl
c29sdmVGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgY29uc3QgUGFn
aW5hdGlvbiYgcGFnaW5hdGlvbiA9IHJlbmRlclZpZXcuZnJhbWVWaWV3KCkucGFnaW5hdGlvbigp
OwogICAgIGlmIChwYWdpbmF0aW9uLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdpbmF0ZWQpIHsK
ICAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRDb2x1bW5TdHlsZXNGcm9tUGFnaW5hdGlvbk1vZGUo
cGFnaW5hdGlvbi5tb2RlKTsKLSAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRDb2x1bW5HYXAocGFn
aW5hdGlvbi5nYXApOworICAgICAgICBkb2N1bWVudFN0eWxlLnNldENvbHVtbkdhcChHYXBMZW5n
dGgoTGVuZ3RoKChpbnQpIHBhZ2luYXRpb24uZ2FwLCBGaXhlZCkpKTsKICAgICAgICAgaWYgKHJl
bmRlclZpZXcubXVsdGlDb2x1bW5GbG93KCkpCiAgICAgICAgICAgICByZW5kZXJWaWV3LnVwZGF0
ZUNvbHVtblByb2dyZXNzaW9uRnJvbVN0eWxlKGRvY3VtZW50U3R5bGUpOwogICAgICAgICBpZiAo
cmVuZGVyVmlldy5wYWdlKCkucGFnaW5hdGlvbkxpbmVHcmlkRW5hYmxlZCgpKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjNjRmYmNlYWI3ZWJjYTg4ZmYxNGUzMDMwMjhiYjkw
MGI1YmFmNmJmLi4xYjQxZjlhOWJlY2ZiYzI4MjQ2NTgzMjAxMmIwZDgxOWEzNjBhODQyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wMS0yNiAg
TWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3Nz
LW11bHRpY29sXSBTdXBwb3J0IHBlcmNlbnRhZ2VzIGluIGNvbHVtbi1nYXAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjAwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEphdmllciBGZXJuYW5kZXouCisKKyAgICAgICAgTmV3IGV4cGVjdGVkIHJlc3Vs
dHMgZm9yIGEgZmV3IHRlc3RzIHRoYXQgYXJlIHBhc3Npbmcgbm93LgorICAgICAgICBPbmUgaXMg
dGhlIHRlc3QgZm9yIHRoaXMgc3BlY2lmaWMgcGF0Y2gsIHRoZSBvdGhlciBhcmUgdGVzdHMgcmVs
YXRlZCB0byBhbmltYXRpb25zCisgICAgICAgIG9mICJub3JtYWwiIGFuZCBpbml0aWFsIHZhbHVl
LCB0aGF0IHdlcmUgZml4ZWQgd2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIEdhcExlbmd0aC4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdh
cC1hbmltYXRpb24tMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGlj
b2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVjdGVkLnR4dDoKKwogMjAxOC0wMS0yNSAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXJyb3JoYW5kbGluZy5odG1sIGNyYXNoZXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNv
bC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wt
Z2FwLWFuaW1hdGlvbi0wMDItZXhwZWN0ZWQudHh0CmluZGV4IDk0Y2M4OWM0ZThiNjI5YjcyZmU1
NzJhZmI2ZjA5MGZjYWNjMzJmMWUuLjZlZGM3NTAxZTJhZmY3MTU3NjI3MThiMjQ4MWU3ZjRjZmU5
OWQ0MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAwMi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAyLWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKIAotRkFJTCBjb2x1bW4tZ2FwOiBub3JtYWwgaXMgbm90IGludGVycG9s
YWJsZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTAwcHgiIGJ1dCBnb3QgIjgwLjI0MTM5NDA0
Mjk2ODc1cHgiCitQQVNTIGNvbHVtbi1nYXA6IG5vcm1hbCBpcyBub3QgaW50ZXJwb2xhYmxlIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1hdGlvbi0wMDMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11
bHRpY29sL211bHRpY29sLWdhcC1hbmltYXRpb24tMDAzLWV4cGVjdGVkLnR4dAppbmRleCA0YTVl
OTNhZjU5MmYzZDhkNGVhYTVkYzdjMTAxYmJhMzI3ZDYzZmJlLi4zMjFiMTU4ZTdmOTZiMzQ3NDRj
YTQ5ZGM5ZGM4ZjgxMjVhODY5MjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLWFuaW1h
dGlvbi0wMDMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYXAtYW5pbWF0aW9uLTAw
My1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgRGVmYXVsdCBjb2x1bW4tZ2Fw
IGlzIG5vdCBpbnRlcnBvbGFibGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjEwMHB4IiBidXQg
Z290ICI4MC4yNDEzOTQwNDI5Njg3NXB4IgorUEFTUyBEZWZhdWx0IGNvbHVtbi1nYXAgaXMgbm90
IGludGVycG9sYWJsZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLWdhcC1wZXJjZW50YWdl
LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVj
dGVkLnR4dAppbmRleCBhMjQyMjViZDM2MmFlMWE2M2IyNjRmNjJiOWE4NmEzMDkyMWEyYjI0Li5l
YmZhM2RkZDA4ZTQ3NTI4ZWViNzE5NzUzMDMzZWNjMWVlZTQ3MTA5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wv
bXVsdGljb2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGlj
b2wtZ2FwLXBlcmNlbnRhZ2UtMDAxLWV4cGVjdGVkLnR4dApAQCAtMSw3NiArMSwxNiBAQAogCi1G
QUlMIC5tdWx0aWNvbCAxIGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgbWFy
Z2luVG9wQm90dG9tIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI4IiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iMjAiPgotICAgIDxkaXYgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0
YS1leHBlY3RlZC13aWR0aD0iMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2
PgotICAgIDxkaXYgZGF0YS1vZmZzZXQteD0iNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICA8
L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDMgYnV0IGdvdCAwCi1GQUlMIC5tdWx0aWNvbCAyIGFzc2Vy
dF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgbWFyZ2luVG9wQm90dG9tIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI4IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNjAiPgotICAgIDxkaXYgZGF0
YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMyIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjYwIj5YWCBYIFg8L2Rpdj4KLSAgICA8ZGl2IGRhdGEtb2Zm
c2V0LXg9IjUiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSI2MCI+WFggWCBYPC9kaXY+Ci0gIDwvZGl2Pgotd2lkdGggZXhwZWN0
ZWQgMyBidXQgZ290IDAKLUZBSUwgLm11bHRpY29sIDMgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNs
YXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjgiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRh
LW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzIiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iMjAiPlg8L2Rpdj4KLSAgICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjUiIGRhdGEtb2Zmc2V0LXk9
IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WDwv
ZGl2PgotICA8L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDMgYnV0IGdvdCAwCi1GQUlMIC5tdWx0aWNv
bCA0IGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgbWFyZ2luVG9wQm90dG9t
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0g
ICAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVk
LXdpZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICAgIDxk
aXYgZGF0YS1vZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICA8L2Rpdj4K
LXdpZHRoIGV4cGVjdGVkIDc1IGJ1dCBnb3QgOTAKLUZBSUwgLm11bHRpY29sIDUgYXNzZXJ0X2Vx
dWFsczogCi08ZGl2IGNsYXNzPSJtdWx0aWNvbCBtYXJnaW5Ub3BCb3R0b20iIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj4KLSAgICA8ZGl2IGRhdGEt
b2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBk
YXRhLWV4cGVjdGVkLWhlaWdodD0iNDAiPlhYIFggWDwvZGl2PgotICAgIDxkaXYgZGF0YS1vZmZz
ZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj5YWCBYIFg8L2Rpdj4KLSAgPC9kaXY+Ci13aWR0aCBleHBl
Y3RlZCA3NSBidXQgZ290IDkwCi1GQUlMIC5tdWx0aWNvbCA2IGFzc2VydF9lcXVhbHM6IAotPGRp
diBjbGFzcz0ibXVsdGljb2wgbWFyZ2luVG9wQm90dG9tIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIy
MDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIw
IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBlY3Rl
ZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci0gICAgPGRpdiBkYXRhLW9mZnNldC14PSIxMjUiIGRhdGEt
b2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD0iMjAiPlg8L2Rpdj4KLSAgPC9kaXY+Ci13aWR0aCBleHBlY3RlZCA3NSBidXQgZ290IDkwCi1G
QUlMIC5tdWx0aWNvbCA3IGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgaW5s
aW5lQmxvY2siIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjIwIj4KLSAgPGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2Pgot
ICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjEyNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3Rl
ZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WFhYWFg8L2Rpdj4KLTwvZGl2
Pgotd2lkdGggZXhwZWN0ZWQgMjAwIGJ1dCBnb3QgMjIwCi1GQUlMIC5tdWx0aWNvbCA4IGFzc2Vy
dF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgaW5saW5lQmxvY2siIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjI0MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj4KLSAgPGRpdiBkYXRhLW9m
ZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI5MCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjQwIj5YWCBYIFg8L2Rpdj4KLSAgPGRpdiBkYXRhLW9mZnNldC14
PSIxNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjkwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iNDAiPlhYIFggWDwvZGl2PgotPC9kaXY+Ci13aWR0aCBleHBlY3RlZCAy
NDAgYnV0IGdvdCAyNjAKLUZBSUwgLm11bHRpY29sIDkgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNs
YXNzPSJtdWx0aWNvbCBpbmxpbmVCbG9jayIgZGF0YS1leHBlY3RlZC13aWR0aD0iNDAiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+Ci0gIDxkaXYgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZz
ZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIy
MCI+WDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjI1IiBkYXRhLW9mZnNldC15PSIwIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSIxNSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+
Ci08L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDQwIGJ1dCBnb3QgNjAKLUZBSUwgLm11bHRpY29sIDEw
IGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgZml4ZWQyMDAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAgPGRpdiBkYXRh
LW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YWFhYWDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zmc2V0
LXg9IjEyNSIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNzUiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSIyMCI+WFhYWFg8L2Rpdj4KLTwvZGl2Pgotd2lkdGggZXhwZWN0ZWQg
NzUgYnV0IGdvdCA5MAotRkFJTCAubXVsdGljb2wgMTEgYXNzZXJ0X2VxdWFsczogCi08ZGl2IGNs
YXNzPSJtdWx0aWNvbCBmaXhlZDIwMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iNDAiPgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0
LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9Ijc1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAi
PlhYIFggWDwvZGl2PgotICA8ZGl2IGRhdGEtb2Zmc2V0LXg9IjEyNSIgZGF0YS1vZmZzZXQteT0i
MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNzUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI0MCI+WFgg
WCBYPC9kaXY+Ci08L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDc1IGJ1dCBnb3QgOTAKLUZBSUwgLm11
bHRpY29sIDEyIGFzc2VydF9lcXVhbHM6IAotPGRpdiBjbGFzcz0ibXVsdGljb2wgZml4ZWQyMDAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj4KLSAg
PGRpdiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI3NSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci0gIDxkaXYgZGF0YS1v
ZmZzZXQteD0iMTI1IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI3NSIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIj5YPC9kaXY+Ci08L2Rpdj4KLXdpZHRoIGV4cGVjdGVk
IDc1IGJ1dCBnb3QgOTAKK1BBU1MgLm11bHRpY29sIDEgCitQQVNTIC5tdWx0aWNvbCAyIAorUEFT
UyAubXVsdGljb2wgMyAKK1BBU1MgLm11bHRpY29sIDQgCitQQVNTIC5tdWx0aWNvbCA1IAorUEFT
UyAubXVsdGljb2wgNiAKK1BBU1MgLm11bHRpY29sIDcgCitQQVNTIC5tdWx0aWNvbCA4IAorUEFT
UyAubXVsdGljb2wgOSAKK1BBU1MgLm11bHRpY29sIDEwIAorUEFTUyAubXVsdGljb2wgMTEgCitQ
QVNTIC5tdWx0aWNvbCAxMiAKIE11bHRpY29sIGNvbnRhaW5lcjogZml4ZWQgd2lkdGgKIAogWAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>