<?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>205675</bug_id>
          
          <creation_ts>2020-01-01 11:58:49 -0800</creation_ts>
          <short_desc>Support lab(), lch() and color(lab ...) colors</short_desc>
          <delta_ts>2021-01-21 14:07:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220684</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>205725</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>bkardell</cc>
    
    <cc>cdumez</cc>
    
    <cc>chris</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>felipeerias</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kyle.bavender</cc>
    
    <cc>lea</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>michael</cc>
    
    <cc>mjs</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>redbalex</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1602090</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-01 11:58:49 -0800</bug_when>
    <thetext>Add support for lab(), lch() and gray() colors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602114</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-01 15:27:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/58264078&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602195</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-02 12:11:28 -0800</bug_when>
    <thetext>I have parsing and conversion done, but for computed style we need to store lab/lch colors without converting them to sRGB.

Also gradients/animations will need work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602516</commentid>
    <comment_count>3</comment_count>
      <attachid>386699</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 11:01:55 -0800</bug_when>
    <thetext>Created attachment 386699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602526</commentid>
    <comment_count>4</comment_count>
      <attachid>386699</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-01-03 11:11:55 -0800</bug_when>
    <thetext>Comment on attachment 386699
Patch

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

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:722
&gt; +    float alpha = 1.0f;
&gt; +    if (consumeSlashIncludingWhitespace(args)) {
&gt; +        auto alphaParameter = consumePercent(args, ValueRangeAll);
&gt; +        if (alphaParameter)
&gt; +            alpha = clampTo&lt;float&gt;(alphaParameter-&gt;doubleValue() / 100.0, 0.0, 1.0);
&gt; +        else {
&gt; +            alphaParameter = consumeNumber(args, ValueRangeAll);
&gt; +            if (!alphaParameter)
&gt; +                return Color();
&gt; +            alpha = clampTo&lt;float&gt;(alphaParameter-&gt;doubleValue(), 0.0, 1.0);
&gt; +        }
&gt; +    }

Seems like we do this often enough to separate into a function.

&gt; Source/WebCore/platform/graphics/ExtendedColor.h:61
&gt; +    const FloatComponents&amp; value() const { return m_value; }

Maybe channels() or something?

&gt; Source/WebCore/platform/graphics/cg/ColorCG.cpp:121
&gt; +            // FIXME: This will give incorrect results on platforms that don&apos;t support CGColorSpaceCreateLab(). We should
&gt; +            // convert to sRGB.

What platforms are they? This is already inside ColorCG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602621</commentid>
    <comment_count>5</comment_count>
      <attachid>386722</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 15:40:45 -0800</bug_when>
    <thetext>Created attachment 386722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602730</commentid>
    <comment_count>6</comment_count>
      <attachid>386752</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 21:07:32 -0800</bug_when>
    <thetext>Created attachment 386752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602732</commentid>
    <comment_count>7</comment_count>
      <attachid>386754</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 21:27:11 -0800</bug_when>
    <thetext>Created attachment 386754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602742</commentid>
    <comment_count>8</comment_count>
      <attachid>386758</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 22:53:37 -0800</bug_when>
    <thetext>Created attachment 386758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602743</commentid>
    <comment_count>9</comment_count>
      <attachid>386759</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 23:04:36 -0800</bug_when>
    <thetext>Created attachment 386759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647301</commentid>
    <comment_count>10</comment_count>
    <who name="Felipe Erias">felipeerias</who>
    <bug_when>2020-04-30 00:20:21 -0700</bug_when>
    <thetext>I would like to call your attention to the TAG discussion about this feature, specially when it comes to identifying which other pieces of the web platform would need to change in order to correctly support colors outside the sRGB gamut:

https://github.com/w3ctag/design-reviews/issues/488

I started looking into implementing lab() and lch() in Chromium, but it seems that WebKit is in a better position to lead the way here because it already has support for higher-precision colors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647394</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-30 09:37:12 -0700</bug_when>
    <thetext>Noted, although WebKit already supports P3 colors so adding lab() support isn&apos;t going to newly expose out-of-sRGB colors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653084</commentid>
    <comment_count>12</comment_count>
      <attachid>399486</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-15 09:35:45 -0700</bug_when>
    <thetext>Created attachment 399486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716518</commentid>
    <comment_count>13</comment_count>
      <attachid>416728</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-12-23 15:30:55 -0800</bug_when>
    <thetext>Created attachment 416728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716519</commentid>
    <comment_count>14</comment_count>
      <attachid>416728</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-23 15:42:35 -0800</bug_when>
    <thetext>Comment on attachment 416728
Patch

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

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:150
&gt; +        // FIXME: CGColorSpace indicates that the D50 White Point is { 0.9642, 1.0, 0.8249 }
&gt; +        // and can be accessed via CGColorSpaceCreateWithName(kCGColorSpaceGenericLab).
&gt; +
&gt; +        constexpr CGFloat d50WhitePoint[] = { 0.96422, 1.00000, 0.82521 };

I&apos;m not sure what value this comment is adding. Does it mean we should just use kCGColorSpaceGenericLab ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716522</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-12-23 15:59:17 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #14)
&gt; Comment on attachment 416728 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=416728&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:150
&gt; &gt; +        // FIXME: CGColorSpace indicates that the D50 White Point is { 0.9642, 1.0, 0.8249 }
&gt; &gt; +        // and can be accessed via CGColorSpaceCreateWithName(kCGColorSpaceGenericLab).
&gt; &gt; +
&gt; &gt; +        constexpr CGFloat d50WhitePoint[] = { 0.96422, 1.00000, 0.82521 };
&gt; 
&gt; I&apos;m not sure what value this comment is adding. Does it mean we should just
&gt; use kCGColorSpaceGenericLab ?

It was meant to remind me to ask you why you picked the values you did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716686</commentid>
    <comment_count>16</comment_count>
      <attachid>416793</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-12-26 15:07:47 -0800</bug_when>
    <thetext>Created attachment 416793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717052</commentid>
    <comment_count>17</comment_count>
      <attachid>416915</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-03 11:58:00 -0800</bug_when>
    <thetext>Created attachment 416915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717053</commentid>
    <comment_count>18</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-03 12:03:42 -0800</bug_when>
    <thetext>Simon, what do you think is left here to get this in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717054</commentid>
    <comment_count>19</comment_count>
      <attachid>416916</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-03 12:09:53 -0800</bug_when>
    <thetext>Created attachment 416916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717322</commentid>
    <comment_count>20</comment_count>
      <attachid>416916</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-05 08:41:04 -0800</bug_when>
    <thetext>Comment on attachment 416916
Patch

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

Would be nice to have some ref tests that show that the color conversions work correctly.

&gt; Source/WebCore/ChangeLog:70
&gt; +        Add Lab to callWithColorType sinc it is now a valid ColorSpace.

sinc

&gt; Source/WebCore/platform/graphics/Color.h:61
&gt;  //    - 4x float (0-1) Linear sRGBA, stored in a reference counted sub-object
&gt;  //    - 4x float (0-1) DisplayP3, stored in a reference counted sub-object
&gt; +//    - 4x float (0-1) Lab, stored in a reference counted sub-object

It&apos;s a bit weird that we spell all these out here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717332</commentid>
    <comment_count>21</comment_count>
      <attachid>417011</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-05 08:57:49 -0800</bug_when>
    <thetext>Created attachment 417011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717335</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-05 08:59:25 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #20)
&gt; Comment on attachment 416916 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=416916&amp;action=review
&gt; 
&gt; Would be nice to have some ref tests that show that the color conversions
&gt; work correctly.

There are some WPT tests that are skipped, turning those on to see if we pass :).

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:70
&gt; &gt; +        Add Lab to callWithColorType sinc it is now a valid ColorSpace.
&gt; 
&gt; sinc

Fixed.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/Color.h:61
&gt; &gt;  //    - 4x float (0-1) Linear sRGBA, stored in a reference counted sub-object
&gt; &gt;  //    - 4x float (0-1) DisplayP3, stored in a reference counted sub-object
&gt; &gt; +//    - 4x float (0-1) Lab, stored in a reference counted sub-object
&gt; 
&gt; It&apos;s a bit weird that we spell all these out here.

I liked it. Seems like good documentation for Color. If we end up adding a lot of colors it won&apos;t be useful to have each spelled out like this, but for now it seems ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717405</commentid>
    <comment_count>23</comment_count>
      <attachid>417022</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-05 11:39:05 -0800</bug_when>
    <thetext>Created attachment 417022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717406</commentid>
    <comment_count>24</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-01-05 11:39:53 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717436</commentid>
    <comment_count>25</comment_count>
      <attachid>417027</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-05 12:39:14 -0800</bug_when>
    <thetext>Created attachment 417027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718608</commentid>
    <comment_count>26</comment_count>
      <attachid>417352</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-10 11:40:34 -0800</bug_when>
    <thetext>Created attachment 417352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718609</commentid>
    <comment_count>27</comment_count>
      <attachid>417353</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-10 11:51:40 -0800</bug_when>
    <thetext>Created attachment 417353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718614</commentid>
    <comment_count>28</comment_count>
      <attachid>417357</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-10 15:24:02 -0800</bug_when>
    <thetext>Created attachment 417357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718696</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-11 08:57:03 -0800</bug_when>
    <thetext>Committed r271362: &lt;https://trac.webkit.org/changeset/271362&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417357.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720127</commentid>
    <comment_count>30</comment_count>
    <who name="Lea Verou">lea</who>
    <bug_when>2021-01-16 04:34:58 -0800</bug_when>
    <thetext>&gt; This change does not add support for the host platform layer (e.g. CoreGraphics, etc)
&gt; understanding of the Lab colorspace, and as such, when creating host color objects
&gt; (for instance via the cachedCGColor() helper) Lab&lt;float&gt; colors are converted to sRGB
&gt; first and then the host color is made. The ramification of this is for platforms that
&gt; use backingstores with greater than sRGB gamuts, Lab colors will be clampted to sRGB.
&gt; This should be rectified in a follow up change that adds proper creation of these host
&gt; objects but is being left off the initial change to limit changes.

If I&apos;m reading this right, it appears that lab()/lch() colors are currently clamped to sRGB? If so, please hold off shipping them until this can be resolved. It will be detrimental to their adoption if they cannot be trusted to go beyond sRGB, as authors cannot detect this programmatically. We do not want to see people resorting to using lch() with a color(display-p3) fallback, do we?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720128</commentid>
    <comment_count>31</comment_count>
    <who name="Chris Lilley">chris</who>
    <bug_when>2021-01-16 04:36:46 -0800</bug_when>
    <thetext>&gt; Some of the imported tests have been updated to use rectangles rather than text to avoid anti-aliasing issues and will be upstreamed to WPT following landing.

Thanks, I agree that rectangles are better (for example the patch can be measured with a spectrophotometer). Ping me for review once the revised tests land on WPT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720129</commentid>
    <comment_count>32</comment_count>
    <who name="Chris Lilley">chris</who>
    <bug_when>2021-01-16 04:46:41 -0800</bug_when>
    <thetext>(In reply to Lea Verou from comment #30)
&gt; &gt; This change does not add support for the host platform layer (e.g. CoreGraphics, etc)
&gt; &gt; understanding of the Lab colorspace, and as such, when creating host color objects
&gt; &gt; (for instance via the cachedCGColor() helper) Lab&lt;float&gt; colors are converted to sRGB
&gt; &gt; first and then the host color is made. The ramification of this is for platforms that
&gt; &gt; use backingstores with greater than sRGB gamuts, Lab colors will be clampted to sRGB.
&gt; &gt; This should be rectified in a follow up change that adds proper creation of these host
&gt; &gt; objects but is being left off the initial change to limit changes.
&gt; 
&gt; If I&apos;m reading this right, it appears that lab()/lch() colors are currently
&gt; clamped to sRGB? If so, please hold off shipping them until this can be
&gt; resolved. It will be detrimental to their adoption if they cannot be trusted
&gt; to go beyond sRGB, as authors cannot detect this programmatically. We do not
&gt; want to see people resorting to using lch() with a color(display-p3)
&gt; fallback, do we?

I agree that content creators will be super confused if they specify, say, color(display-p3 0 1 0) and it gets displayed as P3 primary green, BUT if they specify the same color as lab(86.61% -106.56 102.87) it gets stored as the sRGB-clamped value lab(86.67% -78.41 80.1) which is rgb(0% 98.54% 0%) or color(display-p3 0.4513 0.9709 0.2934).

https://colorjs.io/apps/convert/?color=color(display-p3%200%201%200)&amp;precision=4

So I&apos;m happy to see this initial patch land, but suggest either not closing this bug, or opening another one to resolve the undesirable early clamping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720144</commentid>
    <comment_count>33</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-16 12:51:42 -0800</bug_when>
    <thetext>(In reply to Lea Verou from comment #30)
&gt; &gt; This change does not add support for the host platform layer (e.g. CoreGraphics, etc)
&gt; &gt; understanding of the Lab colorspace, and as such, when creating host color objects
&gt; &gt; (for instance via the cachedCGColor() helper) Lab&lt;float&gt; colors are converted to sRGB
&gt; &gt; first and then the host color is made. The ramification of this is for platforms that
&gt; &gt; use backingstores with greater than sRGB gamuts, Lab colors will be clampted to sRGB.
&gt; &gt; This should be rectified in a follow up change that adds proper creation of these host
&gt; &gt; objects but is being left off the initial change to limit changes.
&gt; 
&gt; If I&apos;m reading this right, it appears that lab()/lch() colors are currently
&gt; clamped to sRGB? If so, please hold off shipping them until this can be
&gt; resolved. It will be detrimental to their adoption if they cannot be trusted
&gt; to go beyond sRGB, as authors cannot detect this programmatically. We do not
&gt; want to see people resorting to using lch() with a color(display-p3)
&gt; fallback, do we?

Yep, no intention of shipping like this, just breaking up the patch to make it easier to focus on the few lines needed to finish it off without the distraction of all the rest.

If you are interested, I am finishing things off in https://bugs.webkit.org/show_bug.cgi?id=220684.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721330</commentid>
    <comment_count>34</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-21 14:07:13 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #33)
&gt; (In reply to Lea Verou from comment #30)
&gt; &gt; &gt; This change does not add support for the host platform layer (e.g. CoreGraphics, etc)
&gt; &gt; &gt; understanding of the Lab colorspace, and as such, when creating host color objects
&gt; &gt; &gt; (for instance via the cachedCGColor() helper) Lab&lt;float&gt; colors are converted to sRGB
&gt; &gt; &gt; first and then the host color is made. The ramification of this is for platforms that
&gt; &gt; &gt; use backingstores with greater than sRGB gamuts, Lab colors will be clampted to sRGB.
&gt; &gt; &gt; This should be rectified in a follow up change that adds proper creation of these host
&gt; &gt; &gt; objects but is being left off the initial change to limit changes.
&gt; &gt; 
&gt; &gt; If I&apos;m reading this right, it appears that lab()/lch() colors are currently
&gt; &gt; clamped to sRGB? If so, please hold off shipping them until this can be
&gt; &gt; resolved. It will be detrimental to their adoption if they cannot be trusted
&gt; &gt; to go beyond sRGB, as authors cannot detect this programmatically. We do not
&gt; &gt; want to see people resorting to using lch() with a color(display-p3)
&gt; &gt; fallback, do we?
&gt; 
&gt; Yep, no intention of shipping like this, just breaking up the patch to make
&gt; it easier to focus on the few lines needed to finish it off without the
&gt; distraction of all the rest.
&gt; 
&gt; If you are interested, I am finishing things off in
&gt; https://bugs.webkit.org/show_bug.cgi?id=220684.

Following up, the clamping has been removed as of &lt;https://trac.webkit.org/changeset/271712&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386699</attachid>
            <date>2020-01-03 11:01:55 -0800</date>
            <delta_ts>2020-01-03 15:40:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20200103110154.patch</filename>
            <type>text/plain</type>
            <size>38348</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzI4OTBmZmEwYjFkNzJm
ODc1OTQ2NGQwYjJkM2NkYmNmMTE5ODMyMi4uMTNhYTBjN2ZkNzZkMzA1YmMxNGM5MzBjYzllNjhl
OGVmNDNlZWE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFi
KCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkg
YW5kIGdyYXkoKSBjb2xvcnMgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGFiLWNvbG9ycy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2Ugd2UgaGF2ZSB0byBwcmVzZXJ2
ZSB0aGVtIGFzIGxhYigpIGNvbG9ycyBmb3IgY29tcHV0ZWQgc3R5bGUsIHRoZXkgYXJlIHN0b3Jl
ZCBhcworICAgICAgICBmbG9hdHMgaW4gRXh0ZW5kZWRDb2xvciwgd2hpY2ggaXMgbWFkZSBtb3Jl
IGdlbmVyaWMgdG8gaGFuZGxlIGFueSA0LWZsb2F0IGNvbG9yIGZvcm1hdC4KKyAgICAgICAgV2Ug
YWRkIGEgQ29sb3JTcGFjZTo6TGFiLCBhbmQgd2hlbiBjcmVhdGluZyBjb2xvcnMgdG8gcGFpbnQs
IHJlbHkgb24gQ29yZUdyYXBoaWNzIHRvIGNyZWF0ZQorICAgICAgICBDR0NvbG9yUmVmcyBpbiB0
aGUgbGFiIGNvbG9yc3BhY2UsIHVzaW5nIEQ1MCB3aGl0ZSB2YWx1ZXMgcGVyIHNwZWMuCisgICAg
ICAgIAorICAgICAgICBsYWIgPC0+IGxjaCA8LT4gc1JHQiBjb252ZXJzaW9uIGZhY2lsaXRpZXMg
YXJlIGFkZGVkIHRvIENvbG9yVXRpbGl0aWVzLiBXZSBkb24ndAorICAgICAgICBldmVyIGNvbnZl
cnQgdG8gc1JHQiB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIGJ1dCBwcm9iYWJseSB3aWxsIGluIGZ1
dHVyZSBmb3IgaW50ZXJwb2xhdGluZworICAgICAgICBpbiBncmFkaWVudHMgYW5kIGFuaW1hdGlv
bnMgd2l0aCBtaXhlZCBjb2xvciB0eXBlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlTGFiUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaWVYWVpUb0xpbmVhclNSR0IpOgorICAgICAgICAoV2ViQ29yZTo6bGFiWFlaKToK
KyAgICAgICAgKFdlYkNvcmU6OmxhYlRvQ0lFWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OmxhYlRv
U1JHQik6CisgICAgICAgIChXZWJDb3JlOjpMQ0hUb1NSR0IpOgorICAgICAgICAoV2ViQ29yZTo6
TENIVG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpibHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
ZGVkQ29sb3I6OmFscGhhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OkV4dGVuZGVk
Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkQ1MENvbG9y
U3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDR0NvbG9yU3BhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9u
OjppbnZlcnNlVHJhbnNmb3JtQ29sb3IgY29uc3QpOgorCiAyMDIwLTAxLTAxICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBz
aG91bGQgaGF2ZSBhIG1vdmUgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNjVlMDZmYmI2ZWE5ODJhMTg1NDVi
ZmU4NDI2NjlhZGNmYWExODEyLi5jMzA3MTQ4YzU0MWMxNzEwMDZkODM2OWFlNWZlZmQ3ZDFhNzc0
NWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zNjEsNiArMzYxLDcgQEAKIAkJMEZFQTNFODAxOTFCMzE2OTAwMEYxQjU1IC8q
IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUEzRTdFMTkxQjMxNjkwMDBGMUI1NSAvKiBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFQTNFODQxOTFCMzFCRjAwMEYxQjU1IC8q
IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBM0U4MjE5MUIzMUJGMDAwRjFCNTUgLyog
U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkVBM0U4ODE5MUIzQkQ3MDAwRjFCNTUg
LyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQTNFODYxOTFCM0JENzAwMEYxQjU1IC8qIFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkVBRjY2QjIzQkZDMzlFMDA0MDMwREEgLyogQ29s
b3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRTZDNzZDMUZCRkI3QTYwMDI1QzA1MyAvKiBDb2xvclV0aWxpdGllcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRUMxMjBDMjJCRjJD
RDIwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzEyMDkyMkJGMkNDNzAwNEU5RDM1
IC8qIExheWVyQW5jZXN0b3JDbGlwcGluZ1N0YWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZGM0I5MjkxRUUzQjZERTAwQjg0MTQ0IC8qIEpT
RE9NUXVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZGM0I5MjUxRUUzQjZERTAwQjg0MTQ0IC8qIEpTRE9NUXVhZC5oICovOyB9OwogCQkwRkYzQjky
QjFFRTNCNkRFMDBCODQxNDQgLyogSlNET01RdWFkSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGM0I5MjcxRUUzQjZERTAwQjg0MTQ0IC8qIEpT
RE9NUXVhZEluaXQuaCAqLzsgfTsKQEAgLTI5MzA0LDYgKzI5MzA1LDcgQEAKIAkJCQlDRTUxNjlF
NzIxRjFCODQ3MDBFQTRGNzggLyogQ29sb3JJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUVERTNB
NTAwMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM4
MkRGNTgxMEE4RDVDOTAwOTI1NjUyIC8qIENvbG9yU3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRUFGNjZCMjNCRkMzOUUwMDQwMzBEQSAvKiBDb2xvclV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNERDQ1NEUxMjM2Qzk1QzAwOUE3OTg1IC8qIENvbHVtbkluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzRURENjdGMUI0ODVEQkYwMDY0MEU3NSAvKiBDb21iaW5lZEZpbHRlcnNB
bHBoYWJldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0RDkxQUM0QjJERDAwN0I4NUI1IC8q
IENvbWJpbmVkVVJMRmlsdGVycy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCmluZGV4IDc2NGYwYWM5ODlmNzUyMWQ5NThlNjRlMDQxMmE1NzA2MTg5
MTI0OGUuLmJlZWJiZWE3NzUxYzcwZGVlYmEzNjdhNmQzMWQ1MGNkNmMyMjYxZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMjY5LDYgKzEyNjksOSBAQCByZ2IK
IHJnYmEKIGhzbAogaHNsYQorbGFiCitsY2gKKy8vIGdyYXkKIC8vY29sb3IKIAogLy8gdHJhbnNm
b3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAKaW5kZXggZjUwMmM2ZmNhZjE0MGY5Njk5ZDcxZTllZWEwZjE0OTYwMmVh
YmU4Zi4uN2M2ZWNjOWUwYjgwZDNkZjAwZDIyZmI1N2Q0MDMxYzk3MjIzMjI5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkNTU1BhaW50SW1hZ2VWYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU1BhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgor
I2luY2x1ZGUgIkNvbG9yVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTdHlsZUNvbG9yLmgiCkBAIC0y
MzcsNiArMjM4LDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lRm9udFdlaWdo
dE51bWJlcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIGlubGluZSBib29sIHNob3VsZEFj
Y2VwdFVuaXRsZXNzVmFsdWUoZG91YmxlIHZhbHVlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MpCiB7CiAgICAgLy8gRklYTUU6IFByZXNlbnRhdGlv
bmFsIEhUTUwgYXR0cmlidXRlcyBzaG91bGRuJ3QgdXNlIHRoZSBDU1MgcGFyc2VyIGZvciBsZW5n
dGhzCisgICAgLy8gRklYTUU6IFVuaXRsZXNzIHplcm8gc2hvdWxkIG5vdCBhbHdheXMgYmUgYWxs
b3dlZC4gd2Via2l0Lm9yZy9iLzIwNTczMy4KICAgICByZXR1cm4gdmFsdWUgPT0gMAogICAgICAg
ICB8fCBpc1VuaXRMZXNzVmFsdWVQYXJzaW5nRW5hYmxlZEZvck1vZGUoY3NzUGFyc2VyTW9kZSkK
ICAgICAgICAgfHwgKGNzc1BhcnNlck1vZGUgPT0gSFRNTFF1aXJrc01vZGUgJiYgdW5pdGxlc3Mg
PT0gVW5pdGxlc3NRdWlyazo6QWxsb3cpOwpAQCAtNjQzLDYgKzY0NSwxMTggQEAgc3RhdGljIENv
bG9yIHBhcnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFy
c2VyTW9kZSBjc3NQYXIKICAgICByZXR1cm4gQ29sb3IobWFrZVJHQkFGcm9tSFNMQShzdGF0aWNf
Y2FzdDxmbG9hdD4oY29sb3JBcnJheVswXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvckFycmF5
WzFdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMl0pLCBzdGF0aWNfY2FzdDxmbG9h
dD4oYWxwaGEpKSk7CiB9CiAKK3N0YXRpYyBDb2xvciBwYXJzZUxhYlBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlv
bklkKCkgPT0gQ1NTVmFsdWVMYWIpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNv
bnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJj
ZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICBy
ZXR1cm4gQ29sb3IoKTsKKyAgICAKKyAgICBhdXRvIGFWYWx1ZSA9IGNvbnN1bWVOdW1iZXIoYXJn
cywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFhVmFsdWUpCisgICAgICAgIHJldHVybiBDb2xv
cigpOworICAgIGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxs
KTsKKyAgICBpZiAoIWJWYWx1ZSkKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBmbG9h
dCBhbHBoYSA9IDEuMGY7CisgICAgaWYgKGNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2Uo
YXJncykpIHsKKyAgICAgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9IGNvbnN1bWVQZXJjZW50KGFy
Z3MsIFZhbHVlUmFuZ2VBbGwpOworICAgICAgICBpZiAoYWxwaGFQYXJhbWV0ZXIpCisgICAgICAg
ICAgICBhbHBoYSA9IGNsYW1wVG88ZmxvYXQ+KGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgp
IC8gMTAwLjAsIDAuMCwgMS4wKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhbHBoYVBh
cmFtZXRlciA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgICAg
ICBpZiAoIWFscGhhUGFyYW1ldGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBDb2xvcigpOwor
ICAgICAgICAgICAgYWxwaGEgPSBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91Ymxl
VmFsdWUoKSwgMC4wLCAxLjApOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFhcmdzLmF0
RW5kKCkpCisgICAgICAgIHJldHVybiBDb2xvcigpOworCisgICAgcmV0dXJuIENvbG9yKGxpZ2h0
bmVzcy0+ZmxvYXRWYWx1ZSgpLCBhVmFsdWUtPmZsb2F0VmFsdWUoKSwgYlZhbHVlLT5mbG9hdFZh
bHVlKCksIGFscGhhLCBDb2xvclNwYWNlOjpMYWIpOworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VM
Q0hQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIEFTU0VSVChy
YW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlTGNoKTsKKyAgICBDU1NQYXJzZXJU
b2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAgYXV0byBsaWdo
dG5lc3MgPSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWxp
Z2h0bmVzcykKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisgICAgYXV0byBjaHJvbWFW
YWx1ZSA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFjaHJv
bWFWYWx1ZSkKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICAvLyBIdWUgaXMgPG51bWJl
cj4gb3IgPGFuZ2xlPiAoZGlzYWxsb3dpbmcgdW5pdGxlc3MgemVybykuCisgICAgYXV0byBodWVW
YWx1ZSA9IGNvbnN1bWVBbmdsZShhcmdzLCBIVE1MU3RhbmRhcmRNb2RlLCBVbml0bGVzc1F1aXJr
OjpGb3JiaWQpOworICAgIGZsb2F0IGFuZ2xlSW5EZWdyZWVzOworICAgIGlmICghaHVlVmFsdWUp
IHsKKyAgICAgICAgaHVlVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgICAgICBpZiAoIWh1ZVZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIENvbG9yKCk7Cisg
ICAgICAgIGFuZ2xlSW5EZWdyZWVzID0gaHVlVmFsdWUtPmRvdWJsZVZhbHVlKCk7CisgICAgfSBl
bHNlCisgICAgICAgIGFuZ2xlSW5EZWdyZWVzID0gaHVlVmFsdWUtPmNvbXB1dGVEZWdyZWVzKCk7
CisKKyAgICBhbmdsZUluRGVncmVlcyA9IGZtb2RmKGFuZ2xlSW5EZWdyZWVzLCAzNjAuMGYpOwor
ICAgIGlmIChhbmdsZUluRGVncmVlcyA8IDAuMCkKKyAgICAgICAgYW5nbGVJbkRlZ3JlZXMgKz0g
MzYwLjBmOworCisgICAgZmxvYXQgYWxwaGEgPSAxLjBmOworICAgIGlmIChjb25zdW1lU2xhc2hJ
bmNsdWRpbmdXaGl0ZXNwYWNlKGFyZ3MpKSB7CisgICAgICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIg
PSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICAgICAgaWYgKGFscGhh
UGFyYW1ldGVyKQorICAgICAgICAgICAgYWxwaGEgPSBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFt
ZXRlci0+ZG91YmxlVmFsdWUoKSAvIDEwMC4wLCAwLjAsIDEuMCk7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgYWxwaGFQYXJhbWV0ZXIgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFu
Z2VBbGwpOworICAgICAgICAgICAgaWYgKCFhbHBoYVBhcmFtZXRlcikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxw
aGFQYXJhbWV0ZXItPmRvdWJsZVZhbHVlKCksIDAuMCwgMS4wKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAg
IGF1dG8gbGFiQ29sb3IgPSBMQ0hUb0xhYih7IGxpZ2h0bmVzcy0+ZmxvYXRWYWx1ZSgpLCBjaHJv
bWFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBhbmdsZUluRGVncmVlcywgYWxwaGEgfSk7CisgICAgcmV0
dXJuIENvbG9yKGxhYkNvbG9yLmNvbXBvbmVudHNbMF0sIGxhYkNvbG9yLmNvbXBvbmVudHNbMV0s
IGxhYkNvbG9yLmNvbXBvbmVudHNbMl0sIGxhYkNvbG9yLmNvbXBvbmVudHNbM10sIENvbG9yU3Bh
Y2U6OkxhYik7Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUdyYXlQYXJhbWV0ZXJzKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25J
ZCgpID09IENTU1ZhbHVlR3JheSk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29u
c3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIC8vIFVubGlrZSBsYWIvbGNoLCBncmF5KCkgdGFr
ZXMgYSBudW1iZXIsIGJ1dCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMv
aXNzdWVzLzQ2NDgKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFs
dWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiBDb2xvcigp
OworICAgIAorICAgIGZsb2F0IGFscGhhID0gMS4wZjsKKyAgICBpZiAoY29uc3VtZVNsYXNoSW5j
bHVkaW5nV2hpdGVzcGFjZShhcmdzKSkgeworICAgICAgICBhdXRvIGFscGhhUGFyYW1ldGVyID0g
Y29uc3VtZVBlcmNlbnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmIChhbHBoYVBh
cmFtZXRlcikKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0
ZXItPmRvdWJsZVZhbHVlKCkgLyAxMDAuMCwgMC4wLCAxLjApOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdl
QWxsKTsKKyAgICAgICAgICAgIGlmICghYWxwaGFQYXJhbWV0ZXIpCisgICAgICAgICAgICAgICAg
cmV0dXJuIENvbG9yKCk7CisgICAgICAgICAgICBhbHBoYSA9IGNsYW1wVG88ZmxvYXQ+KGFscGhh
UGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpLCAwLjAsIDEuMCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBy
ZXR1cm4gQ29sb3IobGlnaHRuZXNzLT5mbG9hdFZhbHVlKCksIDAsIDAsIGFscGhhLCBDb2xvclNw
YWNlOjpMYWIpOworfQorCiBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBBU1NFUlQocmFuZ2UucGVlaygp
LmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUNvbG9yKTsKQEAgLTczNiw2ICs4NTAsMTUgQEAgc3Rh
dGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Q1NTUGFyc2VyTW9kZSBjc3NQYXIKICAgICBjYXNlIENTU1ZhbHVlSHNsYToKICAgICAgICAgY29s
b3IgPSBwYXJzZUhTTFBhcmFtZXRlcnMoY29sb3JSYW5nZSwgY3NzUGFyc2VyTW9kZSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNvbG9yID0gcGFyc2VM
YWJQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Zh
bHVlTGNoOgorICAgICAgICBjb2xvciA9IHBhcnNlTENIUGFyYW1ldGVycyhjb2xvclJhbmdlKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUdyYXk6CisgICAgICAgIGNvbG9yID0g
cGFyc2VHcmF5UGFyYW1ldGVycyhjb2xvclJhbmdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUNvbG9yOgogICAgICAgICBjb2xvciA9IHBhcnNlQ29sb3JGdW5jdGlvblBhcmFt
ZXRlcnMoY29sb3JSYW5nZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IGVjMTQzYTBhM2ZjMDQ2YjAxMTg1MWNkYjcxYjAw
ZmY0NjQyNzY0ZjUuLmZiMzA5OTYyYWFiNjQ4ZmQ3YjNjNjU1NTMyNWM0MWFhYWY5NGQ5ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKQEAgLTI3MCwxMiAr
MjcwLDEyIEBAIENvbG9yOjpDb2xvcihDb2xvciYmIG90aGVyKQogICAgICp0aGlzID0gV1RGTW92
ZShvdGhlcik7CiB9CiAKLUNvbG9yOjpDb2xvcihmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBm
bG9hdCBhLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCitDb2xvcjo6Q29sb3IoZmxvYXQgYzEsIGZs
b2F0IGMyLCBmbG9hdCBjMywgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsK
ICAgICAvLyBaZXJvIHRoZSB1bmlvbiwganVzdCBpbiBjYXNlIGEgMzItYml0IHN5c3RlbSBvbmx5
IGFzc2lnbnMgdGhlCiAgICAgLy8gdG9wIDMyIGJpdHMgd2hlbiBjb3B5aW5nIHRoZSBleHRlbmRl
ZENvbG9yIHBvaW50ZXIgYmVsb3cuCiAgICAgbV9jb2xvckRhdGEucmdiYUFuZEZsYWdzID0gMDsK
LSAgICBhdXRvIGV4dGVuZGVkQ29sb3JSZWYgPSBFeHRlbmRlZENvbG9yOjpjcmVhdGUociwgZywg
YiwgYSwgY29sb3JTcGFjZSk7CisgICAgYXV0byBleHRlbmRlZENvbG9yUmVmID0gRXh0ZW5kZWRD
b2xvcjo6Y3JlYXRlKGMxLCBjMiwgYzMsIGFscGhhLCBjb2xvclNwYWNlKTsKICAgICBtX2NvbG9y
RGF0YS5leHRlbmRlZENvbG9yID0gJmV4dGVuZGVkQ29sb3JSZWYubGVha1JlZigpOwogICAgIEFT
U0VSVChpc0V4dGVuZGVkKCkpOwogfQpAQCAtNjU5LDYgKzY1OSw5IEBAIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKICAgICBjYXNl
IENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgdHMgPDwgIkRpc3BsYXlQMyI7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICB0cyA8PCAiTCph
KmIiOworICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKaW5kZXggOGUzNWUwOTllNGFmMzJkNjk3N2Vl
YmQyYzcwNWNhNzY2YTQzZWY0NC4uMDQ3NGVlYWI5ODU1Mzc5NTA2OTc5YzUyYmIyMWZjNGJhMTY5
NTE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCkBAIC0xNzMs
NyArMTczLDcgQEAgcHVibGljOgogICAgIC8vIFRoaXMgY3JlYXRlcyBhbiBFeHRlbmRlZENvbG9y
LgogICAgIC8vIEZJWE1FOiBJZiB0aGUgY29sb3JTcGFjZSBpcyBzUkdCIGFuZCB0aGUgdmFsdWVz
IGNhbiBhbGwgYmUKICAgICAvLyBjb252ZXJ0ZWQgZXhhY3RseSB0byBpbnRlZ2Vycywgd2Ugc2hv
dWxkIG1ha2UgYSBub3JtYWwgQ29sb3IuCi0gICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IoZmxvYXQg
ciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBDb2xvcihmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgQ29sb3JT
cGFjZSk7CiAKICAgICBDb2xvcihSR0JBLCBDb2xvclNwYWNlKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBDb2xvcihjb25zdCBDb2xvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTcGFjZS5oCmluZGV4IDBhYTI3NGExYzUwOTUzNTI2YTg4ZWU0YTRlZmEzZjljOGQy
MzdiM2IuLmQ2NzMxYjdkNzM4YjQyMDgyZGM1YmE0ZGNhYzMzMDVkZjc3MWUwZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKQEAgLTMwLDcgKzMw
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhf
dCB7CiAgICAgU1JHQiwKICAgICBMaW5lYXJSR0IsCi0gICAgRGlzcGxheVAzCisgICAgRGlzcGxh
eVAzLAorICAgIExhYgogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcAppbmRl
eCA3ZTlmOTg5MmRjM2MxNGFjZWVkODM4MTBmYjUzYWVlYjc4MDk4YTFmLi4wMTAzODM4MTE1Nzc2
NTg3ZGI1ZDZlYWJlMGFkZGFlZjliNjE3NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCkBAIC05Myw2ICs5Myw4NSBAQCBG
bG9hdENvbXBvbmVudHMgbGluZWFyVG9TUkdCQ29tcG9uZW50cyhjb25zdCBGbG9hdENvbXBvbmVu
dHMmIGxpbmVhclJHQikKICAgICB9OwogfQogCitzdGF0aWMgRmxvYXRDb21wb25lbnRzIGNpZVhZ
WlRvTGluZWFyU1JHQihjb25zdCBGbG9hdENvbXBvbmVudHMmIGNpZVhZWikKK3sKKyAgICBjb25z
dCBmbG9hdCB2YWx1ZXNbXSA9IHsKKyAgICAgICAgIDMuMjQwNDU0MmYsIC0xLjUzNzEzODVmLCAt
MC40OTg1MzE0ZiwgMC4wZiwgMC4wZiwKKyAgICAgICAgLTAuOTY5MjY2MGYsICAxLjg3NjAxMDhm
LCAgMC4wNDE1NTYwZiwgMC4wZiwgMC4wZiwKKyAgICAgICAgIDAuMDU1NjQzNGYsIC0wLjIwNDAy
NTlmLCAgMS4wNTcyMjUyZiwgMC4wZiwgMC4wZiwKKyAgICAgICAgIDAuMGYsICAgICAgICAwLjBm
LCAgICAgICAgMC4wZiwgICAgICAgMS4wZiwgMC4wZiwKKyAgICB9OworICAgIENvbG9yTWF0cml4
IGNpZVhZWlRvTGluZWFyU1JHQk1hdHJpeCh2YWx1ZXMpOworICAgIAorICAgIEZsb2F0Q29tcG9u
ZW50cyByZXN1bHQgPSBjaWVYWVo7CisgICAgY2llWFlaVG9MaW5lYXJTUkdCTWF0cml4LnRyYW5z
Zm9ybUNvbG9yQ29tcG9uZW50cyhyZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0
YXRpYyBmbG9hdCBsYWJYWVooZmxvYXQgdCkKK3sKKyAgICBjb25zdCBmbG9hdCBMQUJlID0gMjE2
LjBmIC8gMjQzODkuMGY7CisgICAgY29uc3QgZmxvYXQgTEFCayA9IDI0Mzg5LjBmIC8gMjcuMGY7
CisKKyAgICBmbG9hdCB0Q3ViZWQgPSB0ICogdCAqIHQ7CisgICAgaWYgKHRDdWJlZCA+IExBQmUp
CisgICAgICAgIHJldHVybiB0Q3ViZWQ7CisgICAgCisgICAgcmV0dXJuICgxMTYuMGYgKiB0IC0g
MTYuMGYpIC8gTEFCazsKK30KKworc3RhdGljIEZsb2F0Q29tcG9uZW50cyBsYWJUb0NJRVhZWihj
b25zdCBGbG9hdENvbXBvbmVudHMmIGxhYikKK3sKKyAgICBmbG9hdCBMID0gbGFiLmNvbXBvbmVu
dHNbMF07CisgICAgZmxvYXQgYSA9IGxhYi5jb21wb25lbnRzWzFdOworICAgIGZsb2F0IGIgPSBs
YWIuY29tcG9uZW50c1syXTsKKworICAgIGZsb2F0IHkgPSAoTCArIDE2LjBmKSAvIDExNi4wZjsK
KyAgICBmbG9hdCB4ID0geSArIGEgLyA1MDAuMGY7CisgICAgZmxvYXQgeiA9IHkgLSBiIC8gMjAw
LjBmOworICAgIAorICAgIGNvbnN0IGZsb2F0IEQ2NVdoaXRlVmFsdWVzW10gPSB7CisgICAgICAg
IDAuOTUwNDdmLAorICAgICAgICAxLjBmLAorICAgICAgICAxLjA4ODgzZgorICAgIH07CisgICAg
eCA9IEQ2NVdoaXRlVmFsdWVzWzBdICogbGFiWFlaKHgpOworICAgIHkgPSBENjVXaGl0ZVZhbHVl
c1sxXSAqIGxhYlhZWih5KTsKKyAgICB6ID0gRDY1V2hpdGVWYWx1ZXNbMl0gKiBsYWJYWVooeik7
CisKKyAgICByZXR1cm4geyB4LCB5LCB6LCBsYWIuY29tcG9uZW50c1szXSB9OworfQorCisvLyBs
YWJDb21wb25lbnRzIGFyZSBsaWdodG5lc3MsIGEsIGIsIGFscGhhLgorLy8gaHR0cHM6Ly93d3cu
dzMub3JnL1RSL2Nzcy1jb2xvci00LyNsYWItdG8tcmdiCitGbG9hdENvbXBvbmVudHMgbGFiVG9T
UkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGFiKQoreworICAgIEZsb2F0Q29tcG9uZW50cyBj
aWVYWVogPSBsYWJUb0NJRVhZWihsYWIpOworICAgIGF1dG8gbGluZWFyUkdCID0gY2llWFlaVG9M
aW5lYXJTUkdCKGNpZVhZWik7CisgICAgcmV0dXJuIGxpbmVhclRvU1JHQkNvbXBvbmVudHMobGlu
ZWFyUkdCKTsKK30KKworLy8gbGNoQ29tcG9uZW50cyBhcmUgbGlnaHRuZXNzLCBjaHJvbWEsIGh1
ZSBhbmdsZSAoaW4gZGVncmVlcyksIGFscGhhLgorRmxvYXRDb21wb25lbnRzIExDSFRvU1JHQihj
b25zdCBGbG9hdENvbXBvbmVudHMmIGxjaENvbXBvbmVudHMpCit7CisgICAgRmxvYXRDb21wb25l
bnRzIGxhYkNvbXBvbmVudHMgPSBMQ0hUb0xhYihsY2hDb21wb25lbnRzKTsKKyAgICByZXR1cm4g
bGFiVG9TUkdCKGxhYkNvbXBvbmVudHMpOworfQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIv
Y3NzLWNvbG9yLTQvI2xjaC10by1sYWIKK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb0xhYihjb25zdCBG
bG9hdENvbXBvbmVudHMmIGxjaENvbXBvbmVudHMpCit7CisgICAgZmxvYXQgY2hyb21hID0gbGNo
Q29tcG9uZW50cy5jb21wb25lbnRzWzFdOworICAgIGZsb2F0IGh1ZUFuZ2xlUmFkaWFucyA9IGRl
ZzJyYWQobGNoQ29tcG9uZW50cy5jb21wb25lbnRzWzJdKTsKKworICAgIHJldHVybiB7CisgICAg
ICAgIGxjaENvbXBvbmVudHMuY29tcG9uZW50c1swXSwKKyAgICAgICAgY2hyb21hICogY29zKGh1
ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGNocm9tYSAqIHNpbihodWVBbmdsZVJhZGlhbnMpLAor
ICAgICAgICBsY2hDb21wb25lbnRzLmNvbXBvbmVudHNbM10KKyAgICB9OworfQorCiAvLyBUaGlz
IGlzIHNpbWlsYXIgdG8gc1JHQlRvTGluZWFyQ29sb3JDb21wb25lbnQgYnV0IGZvciBzb21lIHJl
YXNvbgogLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8j
cmVsYXRpdmVsdW1pbmFuY2VkZWYKIC8vIGRvZXNuJ3QgdXNlIHRoZSBzdGFuZGFyZCBzUkdCIC0+
IGxpbmVhclJHQiB0aHJlc2hvbGQgb2YgMC4wNDA0NS4KQEAgLTIyMCw3ICsyOTksNyBAQCBDb2xv
ck1hdHJpeDo6Q29sb3JNYXRyaXgoKQogICAgIG1ha2VJZGVudGl0eSgpOwogfQogCi1Db2xvck1h
dHJpeDo6Q29sb3JNYXRyaXgoZmxvYXQgdmFsdWVzWzIwXSkKK0NvbG9yTWF0cml4OjpDb2xvck1h
dHJpeChjb25zdCBmbG9hdCB2YWx1ZXNbMjBdKQogewogICAgIG1fbWF0cml4WzBdWzBdID0gdmFs
dWVzWzBdOwogICAgIG1fbWF0cml4WzBdWzFdID0gdmFsdWVzWzFdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKaW5kZXggNzhlZjgyN2U1
Yzk3NDU2MGY1NDUxNjZmYmVmY2Y3ZjZiNTZiY2RlNy4uN2IxYzViNDBkY2U1ZGM2NGY3NDJhYmZl
OTM0OTA1OGI5ZDA5YzhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvclV0aWxpdGllcy5oCkBAIC0zMSw2ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgQ29sb3I7CisKIHN0cnVjdCBGbG9hdENvbXBvbmVudHMgewogICAgIEZs
b2F0Q29tcG9uZW50cyhmbG9hdCBhID0gMCwgZmxvYXQgYiA9IDAsIGZsb2F0IGMgPSAwLCBmbG9h
dCBkID0gMCkKICAgICB7CkBAIC0xNTgsNiArMTYwLDEyIEBAIEZsb2F0Q29tcG9uZW50cyBzUkdC
Q29sb3JUb0xpbmVhckNvbXBvbmVudHMoY29uc3QgQ29sb3ImKTsKIEZsb2F0Q29tcG9uZW50cyBz
UkdCVG9MaW5lYXJDb21wb25lbnRzKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogRmxvYXRDb21w
b25lbnRzIGxpbmVhclRvU1JHQkNvbXBvbmVudHMoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CiAK
K0Zsb2F0Q29tcG9uZW50cyBsYWJUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CitGbG9h
dENvbXBvbmVudHMgTENIVG9TUkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOworCisvLyBUaGUg
aHVlIGFuZ2xlIGNvbXBvbmVudCBpcyBpbiBkZWdyZWVzLgorRmxvYXRDb21wb25lbnRzIExDSFRv
TGFiKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOworCiBGbG9hdENvbXBvbmVudHMgc1JHQlRvSFNM
KGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogRmxvYXRDb21wb25lbnRzIEhTTFRvU1JHQihjb25z
dCBGbG9hdENvbXBvbmVudHMmKTsKIApAQCAtMTcyLDcgKzE4MCw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgQ29sb3JNYXRyaXggc2VwaWFNYXRyaXgoZmxvYXQpOwogCiAgICAgQ29sb3JNYXRyaXgo
KTsKLSAgICBDb2xvck1hdHJpeChmbG9hdFsyMF0pOworICAgIENvbG9yTWF0cml4KGNvbnN0IGZs
b2F0WzIwXSk7CiAgICAgCiAgICAgdm9pZCB0cmFuc2Zvcm1Db2xvckNvbXBvbmVudHMoRmxvYXRD
b21wb25lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKaW5kZXggZWIwZTAyZDNlY2E5NTJmMjcxOTM5OWNmNDFk
YjdmN2JjOTdjNTUxYS4uZDNjMzYyMzYxYTE1ZTNmODgwZDEwZTc5ZmRhMzAyNGE2MDg4ZDM3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xv
ci5jcHAKQEAgLTMzLDE1ICszMywzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxF
eHRlbmRlZENvbG9yPiBFeHRlbmRlZENvbG9yOjpjcmVhdGUoZmxvYXQgcmVkLCBmbG9hdCBncmVl
biwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK1JlZjxF
eHRlbmRlZENvbG9yPiBFeHRlbmRlZENvbG9yOjpjcmVhdGUoZmxvYXQgYzEsIGZsb2F0IGMyLCBm
bG9hdCBjMywgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRlZENvbG9yKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhLCBj
b2xvclNwYWNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXh0ZW5kZWRDb2xvcihjMSwg
YzIsIGMzLCBhbHBoYSwgY29sb3JTcGFjZSkpOwogfQogCiBTdHJpbmcgRXh0ZW5kZWRDb2xvcjo6
Y3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KDQwKTsKKworICAgIGlmIChtX2NvbG9yU3BhY2UgPT0gQ29sb3JT
cGFjZTo6TGFiKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgibGFiKCIpOworCisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kRml4ZWRQcmVjaXNpb25OdW1iZXIobV92YWx1ZS5jb21wb25l
bnRzWzBdKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiUgIik7CisKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRGaXhlZFByZWNpc2lvbk51bWJlcihtX3ZhbHVlLmNvbXBvbmVudHNbMV0pOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kRml4ZWRQ
cmVjaXNpb25OdW1iZXIobV92YWx1ZS5jb21wb25lbnRzWzJdKTsKKyAgICAgICAgaWYgKGFscGhh
KCkgPCAxKSB7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiIC8gIik7CisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZEZpeGVkUHJlY2lzaW9uTnVtYmVyKGFscGhhKCkpOworICAgICAgICB9
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICB9CisgICAgCiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJjb2xv
cigiKTsKIAogICAgIHN3aXRjaCAobV9jb2xvclNwYWNlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKaW5kZXggMTI3N2Y5NDhmMTIxNTU5
NThjODkzMmNlOWM2MTczNTgxZTMxNGFmOS4uNWRjNjVmMzRkZDQxYjhiM2EwMzk5OWEyZDNmOGUw
MWNlZTFiMmJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RXh0ZW5kZWRDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4
dGVuZGVkQ29sb3IuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5o
IgogCisjaW5jbHVkZSAiQ29sb3JVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTM1LDMxICszNiw0MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4dGVu
ZGVkQ29sb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxFeHRlbmRlZENvbG9yPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxFeHRlbmRlZENvbG9yPiBjcmVhdGUoZmxvYXQgcmVkLCBmbG9hdCBncmVl
biwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdC
KTsKKyAgICBzdGF0aWMgUmVmPEV4dGVuZGVkQ29sb3I+IGNyZWF0ZShmbG9hdCwgZmxvYXQsIGZs
b2F0LCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0IpOwogCi0gICAg
ZmxvYXQgcmVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWQ7IH0KLSAgICBmbG9hdCBncmVlbigpIGNv
bnN0IHsgcmV0dXJuIG1fZ3JlZW47IH0KLSAgICBmbG9hdCBibHVlKCkgY29uc3QgeyByZXR1cm4g
bV9ibHVlOyB9Ci0gICAgZmxvYXQgYWxwaGEoKSBjb25zdCB7IHJldHVybiBtX2FscGhhOyB9Cisg
ICAgZmxvYXQgcmVkKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NvbG9yU3BhY2Ug
IT0gQ29sb3JTcGFjZTo6TGFiKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUuY29tcG9uZW50c1sw
XTsKKyAgICB9CisKKyAgICBmbG9hdCBncmVlbigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQobV9jb2xvclNwYWNlICE9IENvbG9yU3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBtX3Zh
bHVlLmNvbXBvbmVudHNbMV07CisgICAgfQorCisgICAgZmxvYXQgYmx1ZSgpIGNvbnN0CisgICAg
eworICAgICAgICBBU1NFUlQobV9jb2xvclNwYWNlICE9IENvbG9yU3BhY2U6OkxhYik7CisgICAg
ICAgIHJldHVybiBtX3ZhbHVlLmNvbXBvbmVudHNbMl07CisgICAgfQorCisgICAgZmxvYXQgYWxw
aGEoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmNvbXBvbmVudHNbM107IH0KKworICAgIGNvbnN0
IEZsb2F0Q29tcG9uZW50cyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAKICAg
ICBDb2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgRXh0ZW5kZWRDb2xvcihmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UpCi0gICAgICAgIDogbV9yZWQocikKLSAgICAgICAgLCBtX2dy
ZWVuKGcpCi0gICAgICAgICwgbV9ibHVlKGIpCi0gICAgICAgICwgbV9hbHBoYShhKQorICAgIEV4
dGVuZGVkQ29sb3IoZmxvYXQgYzEsIGZsb2F0IGMyLCBmbG9hdCBjMywgZmxvYXQgYWxwaGEsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkKKyAgICAgICAgOiBtX3ZhbHVlKGMxLCBjMiwgYzMsIGFscGhh
KQogICAgICAgICAsIG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgIHsgfQogCi0gICAgZmxv
YXQgbV9yZWQgeyAwIH07Ci0gICAgZmxvYXQgbV9ncmVlbiB7IDAgfTsKLSAgICBmbG9hdCBtX2Js
dWUgeyAwIH07Ci0gICAgZmxvYXQgbV9hbHBoYSB7IDAgfTsKLQorICAgIEZsb2F0Q29tcG9uZW50
cyBtX3ZhbHVlOwogICAgIENvbG9yU3BhY2UgbV9jb2xvclNwYWNlIHsgQ29sb3JTcGFjZTo6U1JH
QiB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvQ29sb3JDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xv
ckNHLmNwcAppbmRleCBjZGZmYTNmNjBlOWFkMThmMmE0MGE4ZTg5ODUyYTM2YTMzN2Y1MTAwLi5k
MTNlMjJjNmRhYjI2YTNkZWZiNjI5NTFjNWY4YTZiOTcyY2IzYWY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcApAQCAtMTA2LDE1ICsxMDYs
MjAgQEAgc3RhdGljIENHQ29sb3JSZWYgbGVha0NHQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQog
ICAgIENHRmxvYXQgY29tcG9uZW50c1s0XTsKICAgICBpZiAoY29sb3IuaXNFeHRlbmRlZCgpKSB7
CiAgICAgICAgIEV4dGVuZGVkQ29sb3ImIGV4dGVuZGVkQ29sb3IgPSBjb2xvci5hc0V4dGVuZGVk
KCk7Ci0gICAgICAgIGNvbXBvbmVudHNbMF0gPSBleHRlbmRlZENvbG9yLnJlZCgpOwotICAgICAg
ICBjb21wb25lbnRzWzFdID0gZXh0ZW5kZWRDb2xvci5ncmVlbigpOwotICAgICAgICBjb21wb25l
bnRzWzJdID0gZXh0ZW5kZWRDb2xvci5ibHVlKCk7Ci0gICAgICAgIGNvbXBvbmVudHNbM10gPSBl
eHRlbmRlZENvbG9yLmFscGhhKCk7CisgICAgICAgIGF1dG8gdmFsdWUgPSBleHRlbmRlZENvbG9y
LnZhbHVlKCk7CisgICAgICAgIGNvbXBvbmVudHNbMF0gPSB2YWx1ZS5jb21wb25lbnRzWzBdOwor
ICAgICAgICBjb21wb25lbnRzWzFdID0gdmFsdWUuY29tcG9uZW50c1sxXTsKKyAgICAgICAgY29t
cG9uZW50c1syXSA9IHZhbHVlLmNvbXBvbmVudHNbMl07CisgICAgICAgIGNvbXBvbmVudHNbM10g
PSB2YWx1ZS5jb21wb25lbnRzWzNdOwogICAgICAgICBzd2l0Y2ggKGV4dGVuZGVkQ29sb3IuY29s
b3JTcGFjZSgpKSB7CiAgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6U1JHQjoKICAgICAgICAgICAg
IHJldHVybiBDR0NvbG9yQ3JlYXRlKHNSR0JDb2xvclNwYWNlUmVmKCksIGNvbXBvbmVudHMpOwog
ICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgICAgIHJldHVybiBD
R0NvbG9yQ3JlYXRlKGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKSwgY29tcG9uZW50cyk7CisgICAg
ICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgd2ls
bCBnaXZlIGluY29ycmVjdCByZXN1bHRzIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHN1cHBvcnQg
Q0dDb2xvclNwYWNlQ3JlYXRlTGFiKCkuIFdlIHNob3VsZAorICAgICAgICAgICAgLy8gY29udmVy
dCB0byBzUkdCLgorICAgICAgICAgICAgcmV0dXJuIENHQ29sb3JDcmVhdGUobGFiRDUwQ29sb3JT
cGFjZVJlZigpLCBjb21wb25lbnRzKTsKICAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJS
R0I6CiAgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgZXZlciBjcmVhdGUgQ0dDb2xvclJlZnMg
aW4gdGhlc2Ugc3BhY2VzPyBJdCBtYXkgb25seSBiZSBJbWFnZUJ1ZmZlcnMuCiAgICAgICAgICAg
ICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFjZVJlZigpLCBjb21wb25lbnRzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcAppbmRleCA0OTZlY2EzMjRkM2U0ZGEyMmZjYTU5OTk4ZWI1ZWY1ZWU3
M2QyMDlhLi45YzM2M2UzMjQxY2VhNTcyNTJiMzA4Y2JlOTEzNTA0Y2Y5ZmZiNTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwCkBAIC0xMzksNiArMTM5LDIxIEBAIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5
UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZTsKIH0KIAor
Q0dDb2xvclNwYWNlUmVmIGxhYkQ1MENvbG9yU3BhY2VSZWYoKQoreworICAgIHN0YXRpYyBDR0Nv
bG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICAgICAgY29uc3QgQ0dGbG9hdCBkNTBXaGl0ZVBvaW50W10gPSB7IDAuOTY0MjIs
IDEuMDAwMDAsIDAuODI1MjEgfTsKKyAgICAgICAgbGFiQ29sb3JTcGFjZSA9IENHQ29sb3JTcGFj
ZUNyZWF0ZUxhYihkNTBXaGl0ZVBvaW50LCBudWxscHRyLCBudWxscHRyKTsKKyNlbHNlCisgICAg
ICAgIGxhYkNvbG9yU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOworI2VuZGlmCisgICAgfSk7
CisgICAgcmV0dXJuIGxhYkNvbG9yU3BhY2U7Cit9CisKIHN0YXRpYyBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBjb252ZXJ0SW50ZXJwb2xhdGlvblF1YWxpdHkoQ0dJbnRlcnBvbGF0aW9uUXVhbGl0eSBx
dWFsaXR5KQogewogICAgIHN3aXRjaCAocXVhbGl0eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmgKaW5kZXggNWQ1
OWQxNWRiZWRmNWUzNTIzOWIzN2FiNTJlYzQ0OWE5MTJiZDRkOC4uMGMxNzRiYzgzNWE2NTNhNmQ0
NjZkMDYyYWE0NWYxMDgwM2VmMGFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCkBAIC0zNCw2ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBzUkdC
Q29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVk
U1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBkaXNw
bGF5UDNDb2xvclNwYWNlUmVmKCk7CitXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgbGFi
RDUwQ29sb3JTcGFjZVJlZigpOyAvLyBMKmEqYiBjb2xvcnNwYWNlIFdpdGggRDUwIHdoaXRlIHBv
aW50LgogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3BhY2VS
ZWYoKTsKIAogQ0dBZmZpbmVUcmFuc2Zvcm0gZ2V0VXNlclRvQmFzZUNUTShDR0NvbnRleHRSZWYp
OwpAQCAtNDcsNiArNDgsOCBAQCBzdGF0aWMgaW5saW5lIENHQ29sb3JTcGFjZVJlZiBjYWNoZWRD
R0NvbG9yU3BhY2UoQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogICAgICAgICByZXR1cm4gbGluZWFy
UkdCQ29sb3JTcGFjZVJlZigpOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAg
ICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpOworICAgIGNhc2UgQ29sb3JTcGFj
ZTo6TGFiOgorICAgICAgICByZXR1cm4gbGFiRDUwQ29sb3JTcGFjZVJlZigpOwogICAgIH0KICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyT3BlcmF0aW9uLmNwcAppbmRleCAzMGJiNDhjYzhmMGM0OTU0NDhhYjY1ZjY4MTE3
MmNjYzZiY2E1MzVjLi4xNzAzMmQyNDQxOTBkMWZkMmIwZDFkOTcwZGRmZTEwMmQzYWVmNDMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ck9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwCkBAIC0yMzYsNyArMjM2LDcgQEAgYm9vbCBJbnZlcnRM
aWdodG5lc3NGaWx0ZXJPcGVyYXRpb246OnRyYW5zZm9ybUNvbG9yKEZsb2F0Q29tcG9uZW50cyYg
c1JHQkNvbG9yQ28KICAgICBzUkdCQ29sb3JDb21wb25lbnRzID0gSFNMVG9TUkdCKGhzbENvbXBv
bmVudHMpOwogICAgIAogICAgIC8vIEFwcGx5IHRoZSBtYXRyaXguIFNlZSByZGFyOi8vcHJvYmxl
bS80MTE0NjY1MCBmb3IgaG93IHRoaXMgbWF0cml4IHdhcyBkZXJpdmVkLgotICAgIGZsb2F0IG1h
dHJpeFZhbHVlc1syMF0gPSB7CisgICAgY29uc3QgZmxvYXQgbWF0cml4VmFsdWVzWzIwXSA9IHsK
ICAgICAgICAtMC43NzAsICAwLjA1OSwgLTAuMDg5LCAwLCAxLAogICAgICAgICAwLjAzMCwgLTAu
NzQxLCAtMC4wODksIDAsIDEsCiAgICAgICAgIDAuMDMwLCAgMC4wNTksIC0wLjg5MCwgMCwgMSwK
QEAgLTI1Miw3ICsyNTIsNyBAQCBib29sIEludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6
aW52ZXJzZVRyYW5zZm9ybUNvbG9yKEZsb2F0Q29tcG9uZW50cyYgc1JHQgogewogICAgIEZsb2F0
Q29tcG9uZW50cyByZ2JDb21wb25lbnRzID0gc1JHQkNvbG9yQ29tcG9uZW50czsKICAgICAvLyBB
cHBseSB0aGUgbWF0cml4LgotICAgIGZsb2F0IG1hdHJpeFZhbHVlc1syMF0gPSB7CisgICAgY29u
c3QgZmxvYXQgbWF0cml4VmFsdWVzWzIwXSA9IHsKICAgICAgICAgLTEuMzAwLCAtMC4wOTcsICAw
LjE0NywgMCwgMS4yNSwKICAgICAgICAgLTAuMDQ5LCAtMS4zNDcsICAwLjE0NiwgMCwgMS4yNSwK
ICAgICAgICAgLTAuMDQ5LCAtMC4wOTcsIC0xLjEwNCwgMCwgMS4yNSwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYjAwYmRl
YTFiZGJkYWY4M2U3ZmYxN2VmOGViMjYwOGIzMDdkYTk4Li44NDZlZjljMTg0OGYzNTY3MGMyMTBm
NmRmZTgzYTVjYTNlYzMxNzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMDMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBs
YWIoKSwgbGNoKCkgYW5kIGdyYXkoKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUGFyc2luZyB0ZXN0cyBmb3IgbGFiL2xjaC9n
cmF5IGNvbG9ycy4KKyAgICAgICAgTW9yZSByZW5kZXJpbmcgdGVzdHMgbmVlZGVkLgorCisgICAg
ICAgICogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIw
LTAxLTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgdHJhbnNjZWl2ZXIgc2V0Q29kZWNQcmVmZXJlbmNlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDUxYWM0M2QzZWNiYWE2MGYwM2VkOTdkNjA4MmUxYTU1YTYxZDMzMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1OSBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiBsYWIsIGxjaCBhbmQgZ3JheSBj
b2xvcnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitsYWIoKQorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDApIikgaXMgImxhYigwJSAw
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAg
LyAxKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMCUgMCAwIC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvMC41KSIpIGlz
ICJsYWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigyMCUgMCAxMC81MCUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwMCUgMCAxMC81MCUpIikg
aXMgImxhYig0MDAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYig1MCUgLTE2MCAxNjApIikgaXMgImxhYig1MCUgLTE2MCAxNjApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTIwMCAyMDApIikg
aXMgImxhYig1MCUgLTIwMCAyMDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDAgLyAtMTAlKSIpIGlzICJsYWIoMCUgMCAwIC8gMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDExMCUpIikgaXMg
ImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxh
YigwJSAwIDAgLyAzMDAlKSIpIGlzICJsYWIoMCUgMCAwKSIKKworbGNoKCkKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnKSIpIGlzICJsYWIoMCUg
MCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAw
ZGVnIC8gMSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwMCUgMjMwIDBk
ZWcgLyAwLjUpIikgaXMgImxhYigxMDAlIDIzMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzAuNSkiKSBpcyAibGFiKDIw
JSA0Ni45ODQ2IDE3LjEwMSAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy81MCUpIikgaXMgImxhYigyMCUgNDYuOTg0NiAxNy4x
MDEgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgx
MCUgMjAgMjBkZWcgLyAtMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0IC8gMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAv
IDExMCUpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMS4yOHJhZCkiKSBpcyAibGFiKDEwJSA1
LjczNDMgMTkuMTYwMykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDEwJSAyMCAzODBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTM0MGRlZykiKSBp
cyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKDEwJSAyMCA3NDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0
MDQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAg
LTcwMGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCisKK2dyYXkoKQorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMCkiKSBpcyAibGFiKDAlIDAg
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEw
JSkiKSBpcyAibGFiKDEwJSAwIDAgLyAwLjEpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImdyYXkoMTIwIC8gMTAlKSIpIGlzICJsYWIoMTIwJSAwIDAgLyAwLjEpIgor
CitUZXN0IGludmFsaWQgdmFsdWVzCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDAgMCAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAwKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAg
MSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCAwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwZGVnKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwJSAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwIDAg
MCAvIDAuNSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK0ZBSUwgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwIC8gMC41KSIpIHNob3VsZCBiZSByZ2JhKDAsIDAs
IDAsIDApLiBXYXMgbGFiKDAlIDAgMCAvIDAuNSkuCitGQUlMIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMCkiKSBzaG91bGQgYmUgcmdiYSgwLCAwLCAwLCAw
KS4gV2FzIGxhYigyMCUgOS44NDgwOCAxLjczNjQ4KS4KK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAg
MTBkZWcgMTAgLyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCAxMCki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJncmF5KDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCAxMCkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xv
cnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI0Zjk2N2FlODgwOWFlZDE1ODMzMWE2ZjEyODI2YmUwNDRkYWM2ZTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRt
bApAQCAtMCwwICsxLDk3IEBACis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGUgcGFyc2luZyBvZiBsYWIsIGxjaCBhbmQgZ3JheSBj
b2xvcnMuIik7CisKKyAgICBmdW5jdGlvbiBjb21wdXRlZFN0eWxlKHByb3BlcnR5LCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAgICAgICBkaXYuc3R5
bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAgdmFyIGNvbXB1dGVkVmFs
dWUgPSBnZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICAgICAgcmV0dXJuIGNv
bXB1dGVkVmFsdWU7CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5uZXJTdHlsZShwcm9wZXJ0eSwg
dmFsdWUpCisgICAgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOwor
ICAgICAgICByZXR1cm4gZGl2LnN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVk
KQorICAgIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKCIn
ICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7
CisgICAgICAgIGlmIChleHBlY3RlZCA9PT0gbnVsbCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0g
IiI7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3Bl
cnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZGVi
dWcoJ2xhYigpJyk7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigw
JSAwIDApIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDAgLyAxKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMC41KSIsICJsYWIoMCUgMCAwIC8g
MC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAg
MTAvMC41KSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC81MCUpIiwgImxhYigyMCUgMCAxMCAvIDAuNSki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwMCUgMCAxMC81
MCUpIiwgImxhYig0MDAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYig1MCUgLTE2MCAxNjApIiwgImxhYig1MCUgLTE2MCAxNjApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTIwMCAyMDApIiwg
ImxhYig1MCUgLTIwMCAyMDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigwJSAwIDAgLyAtMTAlKSIsICJsYWIoMCUgMCAwIC8gMCkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDExMCUpIiwgImxhYigwJSAw
IDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAg
LyAzMDAlKSIsICJsYWIoMCUgMCAwKSIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCds
Y2goKScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAw
ZGVnKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMCUgMCAwZGVnIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDAuNSkiLCAibGFiKDAlIDAg
MCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEw
MCUgMjMwIDBkZWcgLyAwLjUpIiwgImxhYigxMDAlIDIzMCAwIC8gMC41KSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzAuNSkiLCAibGFi
KDIwJSA0Ni45ODQ2IDE3LjEwMSAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy81MCUpIiwgImxhYigyMCUgNDYuOTg0NiAxNy4x
MDEgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgx
MCUgMjAgMjBkZWcgLyAtMTAlKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0IC8gMCkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIDEx
MCUpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMS4yOHJhZCkiLCAibGFiKDEwJSA1LjczNDMgMTku
MTYwMykiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAy
MCAzODBkZWcpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTM0MGRlZykiLCAibGFiKDEwJSAxOC43
OTM5IDYuODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDEwJSAyMCA3NDBkZWcpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMGRlZykiLCAibGFiKDEw
JSAxOC43OTM5IDYuODQwNCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnZ3JheSgp
Jyk7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMCkiLCAibGFi
KDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgx
MCAvIDEwJSkiLCAibGFiKDEwJSAwIDAgLyAwLjEpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImdyYXkoMTIwIC8gMTAlKSIsICJsYWIoMTIwJSAwIDAgLyAwLjEpIik7
CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1Rlc3QgaW52YWxpZCB2YWx1ZXMnKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAgMCAwKSIsICJyZ2JhKDAs
IDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigw
JSAwJSAwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEwJSkiLCAicmdiYSgw
LCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MCUgMCAwZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAwZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIsICJy
Z2JhKDAsIDAsIDAsIDApIik7CisKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDAgMCAwIC8gMC41KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDAgLyAwLjUpIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsgLy8gTm8gdW5pdGxlc3MgemVybyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJr
aXQub3JnL2IvMjA1NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgyMCUgMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsgLy8gTm8gdW5pdGxlc3MgYW5nbGUu
IEN1cnJlbnRseSBmYWlsczogd2Via2l0Lm9yZy9iLzIwNTczMworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIsICJyZ2JhKDAsIDAsIDAs
IDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAg
MTBkZWcgMTAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwJSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIsICJy
Z2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImdyYXkoMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7
CisKKzwvc2NyaXB0PgorICAgIAorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViS2l0
Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZSBi
L1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNz
Y2hlbWUKaW5kZXggYjc1ZjRiZDE5OWQ4YWU1NmViZmYzNzdjOGYyMjgxMzFhOGViMzI3Yi4uZTFj
OTc0Y2FmM2IxYWY1ZjZmMGNmZTU3NzA0YTU2N2UyODNjNTA5ZCAxMDA2NDQKLS0tIGEvV2ViS2l0
Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkK
KysrIGIvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJj
ZS54Y3NjaGVtZQkKQEAgLTU3LDcgKzU3LDcgQEAKICAgICAgICAgICAgIDxCdWlsZGFibGVSZWZl
cmVuY2UKICAgICAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKICAg
ICAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiRkIzOUQwRDAxMjAwRjBFMzAwMDg4
RTY5IgotICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJsaWJBTkdMRS5hIgorICAgICAg
ICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJsaWJBTkdMRS1zaGFyZWQuZHlsaWIiCiAgICAgICAg
ICAgICAgICBCbHVlcHJpbnROYW1lID0gIkFOR0xFIgogICAgICAgICAgICAgICAgUmVmZXJlbmNl
ZENvbnRhaW5lciA9ICJjb250YWluZXI6U291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNv
ZGVwcm9qIj4KICAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386722</attachid>
            <date>2020-01-03 15:40:45 -0800</date>
            <delta_ts>2020-01-03 21:07:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20200103154044.patch</filename>
            <type>text/plain</type>
            <size>37537</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZiMmFiYWYwNGNkYmU3
YTczNzk0ZDBhMWI4NmM2YTcwY2JiMTQyYi4uOTI1ZWQ1YWQ4OWQ1MWI0ZTNjNDFiMmJiMmI1MmNl
NDEwZjYzZDY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFi
KCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkg
YW5kIGdyYXkoKSBjb2xvcnMgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGFiLWNvbG9ycy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2Ugd2UgaGF2ZSB0byBwcmVzZXJ2
ZSB0aGVtIGFzIGxhYigpIGNvbG9ycyBmb3IgY29tcHV0ZWQgc3R5bGUsIHRoZXkgYXJlIHN0b3Jl
ZCBhcworICAgICAgICBmbG9hdHMgaW4gRXh0ZW5kZWRDb2xvciwgd2hpY2ggaXMgbWFkZSBtb3Jl
IGdlbmVyaWMgdG8gaGFuZGxlIGFueSA0LWZsb2F0IGNvbG9yIGZvcm1hdC4KKyAgICAgICAgV2Ug
YWRkIGEgQ29sb3JTcGFjZTo6TGFiLCBhbmQgd2hlbiBjcmVhdGluZyBjb2xvcnMgdG8gcGFpbnQs
IHJlbHkgb24gQ29yZUdyYXBoaWNzIHRvIGNyZWF0ZQorICAgICAgICBDR0NvbG9yUmVmcyBpbiB0
aGUgbGFiIGNvbG9yc3BhY2UsIHVzaW5nIEQ1MCB3aGl0ZSB2YWx1ZXMgcGVyIHNwZWMuCisgICAg
ICAgIAorICAgICAgICBsYWIgPC0+IGxjaCA8LT4gc1JHQiBjb252ZXJzaW9uIGZhY2lsaXRpZXMg
YXJlIGFkZGVkIHRvIENvbG9yVXRpbGl0aWVzLiBXZSBkb24ndAorICAgICAgICBldmVyIGNvbnZl
cnQgdG8gc1JHQiB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIGJ1dCBwcm9iYWJseSB3aWxsIGluIGZ1
dHVyZSBmb3IgaW50ZXJwb2xhdGluZworICAgICAgICBpbiBncmFkaWVudHMgYW5kIGFuaW1hdGlv
bnMgd2l0aCBtaXhlZCBjb2xvciB0eXBlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlTGFiUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaWVYWVpUb0xpbmVhclNSR0IpOgorICAgICAgICAoV2ViQ29yZTo6bGFiWFlaKToK
KyAgICAgICAgKFdlYkNvcmU6OmxhYlRvQ0lFWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OmxhYlRv
U1JHQik6CisgICAgICAgIChXZWJDb3JlOjpMQ0hUb1NSR0IpOgorICAgICAgICAoV2ViQ29yZTo6
TENIVG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpibHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
ZGVkQ29sb3I6OmFscGhhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OkV4dGVuZGVk
Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkQ1MENvbG9y
U3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDR0NvbG9yU3BhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9u
OjppbnZlcnNlVHJhbnNmb3JtQ29sb3IgY29uc3QpOgorCiAyMDIwLTAxLTAzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgZGlzcGF0Y2hFdmVudCgpIHNob3VsZCBu
b3QgY2xlYXIgdGhlIGV2ZW50J3MgaXNUcnVzdGVkIGZsYWcgd2hlbiBpdCByZXR1cm5zIGVhcmx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYWM3MTY1MzZmNTM3NzFmYTZiMmFjYmI1YzM0OGJmMzg0ODY2YmMwZi4uZDdjZTk5NmNj
MTMxOTEwZWFiZWQ4YzQ0NGZmNjgzMjEyZjc2YWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzYxLDYgKzM2MSw3IEBACiAJ
CTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkVBM0U3RTE5MUIzMTY5MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGRUEzRTg0MTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZFQTNFODIxOTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEZFQTNFODgxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RUEzRTg2MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZF
QUY2NkIyM0JGQzM5RTAwNDAzMERBIC8qIENvbG9yVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU2Qzc2QzFGQkZCN0E2MDAyNUMwNTMg
LyogQ29sb3JVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRkVDMTIwQzIyQkYyQ0QyMDA0RTlEMzUgLyogTGF5ZXJBbmNlc3RvckNs
aXBwaW5nU3RhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUMxMjA5MjJCRjJDQzcwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RjNCOTI5MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjNCOTI1MUVFM0I2REUwMEI4NDE0NCAvKiBK
U0RPTVF1YWQuaCAqLzsgfTsKIAkJMEZGM0I5MkIxRUUzQjZERTAwQjg0MTQ0IC8qIEpTRE9NUXVh
ZEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RjNCOTI3MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWRJbml0LmggKi87IH07CkBAIC0yOTMw
Niw2ICsyOTMwNyw3IEBACiAJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJERjU4MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xv
clNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVBRjY2QjIzQkZDMzlFMDA0MDMwREEgLyog
Q29sb3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREQ0NTRFMTIzNkM5NUMwMDlB
Nzk4NSAvKiBDb2x1bW5JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0VERDY3RjFCNDg1REJG
MDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFiZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI2RTk0NEQ5MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3NjRmMGFj
OTg5Zjc1MjFkOTU4ZTY0ZTA0MTJhNTcwNjE4OTEyNDhlLi5iZWViYmVhNzc1MWM3MGRlZWJhMzY3
YTZkMzFkNTBjZDZjMjI2MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgpAQCAtMTI2OSw2ICsxMjY5LDkgQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCisv
LyBncmF5CiAvL2NvbG9yCiAKIC8vIHRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IGY1MDJjNmZj
YWYxNDBmOTY5OWQ3MWU5ZWVhMGYxNDk2MDJlYWJlOGYuLjdjNmVjYzllMGI4MGQzZGYwMGQyMmZi
NTdkNDAzMWM5NzIyMzIyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJDU1NQYWludEltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKKyNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU3R5bGVDb2xvci5oIgpAQCAtMjM3LDYgKzIzOCw3IEBAIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gY29uc3VtZUZvbnRXZWlnaHROdW1iZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiBpbmxpbmUgYm9vbCBzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKGRvdWJsZSB2YWx1
ZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrIHVuaXRsZXNzKQog
ewogICAgIC8vIEZJWE1FOiBQcmVzZW50YXRpb25hbCBIVE1MIGF0dHJpYnV0ZXMgc2hvdWxkbid0
IHVzZSB0aGUgQ1NTIHBhcnNlciBmb3IgbGVuZ3RocworICAgIC8vIEZJWE1FOiBVbml0bGVzcyB6
ZXJvIHNob3VsZCBub3QgYWx3YXlzIGJlIGFsbG93ZWQuIHdlYmtpdC5vcmcvYi8yMDU3MzMuCiAg
ICAgcmV0dXJuIHZhbHVlID09IDAKICAgICAgICAgfHwgaXNVbml0TGVzc1ZhbHVlUGFyc2luZ0Vu
YWJsZWRGb3JNb2RlKGNzc1BhcnNlck1vZGUpCiAgICAgICAgIHx8IChjc3NQYXJzZXJNb2RlID09
IEhUTUxRdWlya3NNb2RlICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93KTsKQEAg
LTY0Myw2ICs2NDUsMTE4IEBAIHN0YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyCiAgICAgcmV0dXJuIENv
bG9yKG1ha2VSR0JBRnJvbUhTTEEoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMF0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xv
ckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSkpOwogfQogCitzdGF0aWMgQ29s
b3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAg
IEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlTGFiKTsKKyAgICBD
U1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAg
YXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAg
ICBpZiAoIWxpZ2h0bmVzcykKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisgICAgYXV0
byBhVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICgh
YVZhbHVlKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICBhdXRvIGJWYWx1ZSA9IGNvbnN1
bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFiVmFsdWUpCisgICAgICAg
IHJldHVybiBDb2xvcigpOworCisgICAgZmxvYXQgYWxwaGEgPSAxLjBmOworICAgIGlmIChjb25z
dW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKGFyZ3MpKSB7CisgICAgICAgIGF1dG8gYWxwaGFQ
YXJhbWV0ZXIgPSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICAgICAg
aWYgKGFscGhhUGFyYW1ldGVyKQorICAgICAgICAgICAgYWxwaGEgPSBjbGFtcFRvPGZsb2F0Pihh
bHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSAvIDEwMC4wLCAwLjAsIDEuMCk7CisgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgYWxwaGFQYXJhbWV0ZXIgPSBjb25zdW1lTnVtYmVyKGFyZ3Ms
IFZhbHVlUmFuZ2VBbGwpOworICAgICAgICAgICAgaWYgKCFhbHBoYVBhcmFtZXRlcikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxm
bG9hdD4oYWxwaGFQYXJhbWV0ZXItPmRvdWJsZVZhbHVlKCksIDAuMCwgMS4wKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gQ29sb3Io
KTsKKworICAgIHJldHVybiBDb2xvcihsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgYVZhbHVlLT5m
bG9hdFZhbHVlKCksIGJWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBhbHBoYSwgQ29sb3JTcGFjZTo6TGFi
KTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBD
U1NWYWx1ZUxjaCk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0
aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnQoYXJncywg
VmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiBDb2xv
cigpOworICAgIAorICAgIGF1dG8gY2hyb21hVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZh
bHVlUmFuZ2VBbGwpOworICAgIGlmICghY2hyb21hVmFsdWUpCisgICAgICAgIHJldHVybiBDb2xv
cigpOworCisgICAgLy8gSHVlIGlzIDxudW1iZXI+IG9yIDxhbmdsZT4gKGRpc2FsbG93aW5nIHVu
aXRsZXNzIHplcm8pLgorICAgIGF1dG8gaHVlVmFsdWUgPSBjb25zdW1lQW5nbGUoYXJncywgSFRN
TFN0YW5kYXJkTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKKyAgICBmbG9hdCBhbmdsZUlu
RGVncmVlczsKKyAgICBpZiAoIWh1ZVZhbHVlKSB7CisgICAgICAgIGh1ZVZhbHVlID0gY29uc3Vt
ZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICAgICAgaWYgKCFodWVWYWx1ZSkKKyAg
ICAgICAgICAgIHJldHVybiBDb2xvcigpOworICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZh
bHVlLT5kb3VibGVWYWx1ZSgpOworICAgIH0gZWxzZQorICAgICAgICBhbmdsZUluRGVncmVlcyA9
IGh1ZVZhbHVlLT5jb21wdXRlRGVncmVlcygpOworCisgICAgYW5nbGVJbkRlZ3JlZXMgPSBmbW9k
ZihhbmdsZUluRGVncmVlcywgMzYwLjBmKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjAp
CisgICAgICAgIGFuZ2xlSW5EZWdyZWVzICs9IDM2MC4wZjsKKworICAgIGZsb2F0IGFscGhhID0g
MS4wZjsKKyAgICBpZiAoY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKSkgewor
ICAgICAgICBhdXRvIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZVBlcmNlbnQoYXJncywgVmFsdWVS
YW5nZUFsbCk7CisgICAgICAgIGlmIChhbHBoYVBhcmFtZXRlcikKKyAgICAgICAgICAgIGFscGhh
ID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0ZXItPmRvdWJsZVZhbHVlKCkgLyAxMDAuMCwg
MC4wLCAxLjApOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFscGhhUGFyYW1ldGVyID0g
Y29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICAgICAgICAgIGlmICghYWxw
aGFQYXJhbWV0ZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgICAgICAg
ICBhbHBoYSA9IGNsYW1wVG88ZmxvYXQ+KGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpLCAw
LjAsIDEuMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAg
ICAgICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBhdXRvIGxhYkNvbG9yID0gTENIVG9MYWIoeyBs
aWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgY2hyb21hVmFsdWUtPmZsb2F0VmFsdWUoKSwgYW5nbGVJ
bkRlZ3JlZXMsIGFscGhhIH0pOworICAgIHJldHVybiBDb2xvcihsYWJDb2xvci5jb21wb25lbnRz
WzBdLCBsYWJDb2xvci5jb21wb25lbnRzWzFdLCBsYWJDb2xvci5jb21wb25lbnRzWzJdLCBsYWJD
b2xvci5jb21wb25lbnRzWzNdLCBDb2xvclNwYWNlOjpMYWIpOworfQorCitzdGF0aWMgQ29sb3Ig
cGFyc2VHcmF5UGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBB
U1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUdyYXkpOworICAgIENT
U1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICAv
LyBVbmxpa2UgbGFiL2xjaCwgZ3JheSgpIHRha2VzIGEgbnVtYmVyLCBidXQgc2VlIGh0dHBzOi8v
Z2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy80NjQ4CisgICAgYXV0byBsaWdodG5l
c3MgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRu
ZXNzKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAKKyAgICBmbG9hdCBhbHBoYSA9IDEu
MGY7CisgICAgaWYgKGNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UoYXJncykpIHsKKyAg
ICAgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9IGNvbnN1bWVQZXJjZW50KGFyZ3MsIFZhbHVlUmFu
Z2VBbGwpOworICAgICAgICBpZiAoYWxwaGFQYXJhbWV0ZXIpCisgICAgICAgICAgICBhbHBoYSA9
IGNsYW1wVG88ZmxvYXQ+KGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpIC8gMTAwLjAsIDAu
MCwgMS4wKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhbHBoYVBhcmFtZXRlciA9IGNv
bnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgICAgICBpZiAoIWFscGhh
UGFyYW1ldGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBDb2xvcigpOworICAgICAgICAgICAg
YWxwaGEgPSBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSwgMC4w
LCAxLjApOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAg
ICAgIHJldHVybiBDb2xvcigpOworCisgICAgcmV0dXJuIENvbG9yKGxpZ2h0bmVzcy0+ZmxvYXRW
YWx1ZSgpLCAwLCAwLCBhbHBoYSwgQ29sb3JTcGFjZTo6TGFiKTsKK30KKwogc3RhdGljIENvbG9y
IHBhcnNlQ29sb3JGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Up
CiB7CiAgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVDb2xv
cik7CkBAIC03MzYsNiArODUwLDE1IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb24o
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyCiAgICAgY2Fz
ZSBDU1NWYWx1ZUhzbGE6CiAgICAgICAgIGNvbG9yID0gcGFyc2VIU0xQYXJhbWV0ZXJzKGNvbG9y
UmFuZ2UsIGNzc1BhcnNlck1vZGUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVl
TGFiOgorICAgICAgICBjb2xvciA9IHBhcnNlTGFiUGFyYW1ldGVycyhjb2xvclJhbmdlKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxjaDoKKyAgICAgICAgY29sb3IgPSBwYXJz
ZUxDSFBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVHcmF5OgorICAgICAgICBjb2xvciA9IHBhcnNlR3JheVBhcmFtZXRlcnMoY29sb3JSYW5n
ZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTVmFsdWVDb2xvcjoKICAgICAgICAgY29s
b3IgPSBwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOwogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRleCBl
YTJkMzQ4MjZlMzY4OGQ1M2QzYmI2MzllYTRjZDBlOTYyZDEwMDEyLi4yZTAyZWQ0ZTkzMWI2ZTc0
MTNlMDA2NzViMzg5YzBjMWQxNjVlNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwCkBAIC0yNzAsMTIgKzI3MCwxMiBAQCBDb2xvcjo6Q29sb3IoQ29sb3Im
JiBvdGhlcikKICAgICAqdGhpcyA9IFdURk1vdmUob3RoZXIpOwogfQogCi1Db2xvcjo6Q29sb3Io
ZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQorQ29sb3I6OkNvbG9yKGZsb2F0IGMxLCBmbG9hdCBjMiwgZmxvYXQgYzMsIGZsb2F0IGFscGhh
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgLy8gWmVybyB0aGUgdW5pb24sIGp1c3Qg
aW4gY2FzZSBhIDMyLWJpdCBzeXN0ZW0gb25seSBhc3NpZ25zIHRoZQogICAgIC8vIHRvcCAzMiBi
aXRzIHdoZW4gY29weWluZyB0aGUgZXh0ZW5kZWRDb2xvciBwb2ludGVyIGJlbG93LgogICAgIG1f
Y29sb3JEYXRhLnJnYmFBbmRGbGFncyA9IDA7Ci0gICAgYXV0byBleHRlbmRlZENvbG9yUmVmID0g
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKHIsIGcsIGIsIGEsIGNvbG9yU3BhY2UpOworICAgIGF1dG8g
ZXh0ZW5kZWRDb2xvclJlZiA9IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShjMSwgYzIsIGMzLCBhbHBo
YSwgY29sb3JTcGFjZSk7CiAgICAgbV9jb2xvckRhdGEuZXh0ZW5kZWRDb2xvciA9ICZleHRlbmRl
ZENvbG9yUmVmLmxlYWtSZWYoKTsKICAgICBBU1NFUlQoaXNFeHRlbmRlZCgpKTsKIH0KQEAgLTY1
OSw2ICs2NTksOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UpCiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAg
ICAgIHRzIDw8ICJEaXNwbGF5UDMiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9yU3Bh
Y2U6OkxhYjoKKyAgICAgICAgdHMgPDwgIkwqYSpiIjsKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5o
CmluZGV4IDhlMzVlMDk5ZTRhZjMyZDY5NzdlZWJkMmM3MDVjYTc2NmE0M2VmNDQuLjA0NzRlZWFi
OTg1NTM3OTUwNjk3OWM1MmJiMjFmYzRiYTE2OTUxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuaApAQCAtMTczLDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICAvLyBU
aGlzIGNyZWF0ZXMgYW4gRXh0ZW5kZWRDb2xvci4KICAgICAvLyBGSVhNRTogSWYgdGhlIGNvbG9y
U3BhY2UgaXMgc1JHQiBhbmQgdGhlIHZhbHVlcyBjYW4gYWxsIGJlCiAgICAgLy8gY29udmVydGVk
IGV4YWN0bHkgdG8gaW50ZWdlcnMsIHdlIHNob3VsZCBtYWtlIGEgbm9ybWFsIENvbG9yLgotICAg
IFdFQkNPUkVfRVhQT1JUIENvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IoZmxvYXQs
IGZsb2F0LCBmbG9hdCwgZmxvYXQsIENvbG9yU3BhY2UpOwogCiAgICAgQ29sb3IoUkdCQSwgQ29s
b3JTcGFjZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IoY29uc3QgQ29sb3ImKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAppbmRleCAwYWEyNzRh
MWM1MDk1MzUyNmE4OGVlNGE0ZWZhM2Y5YzhkMjM3YjNiLi5kNjczMWI3ZDczOGI0MjA4MmRjNWJh
NGRjYWMzMzA1ZGY3NzFlMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTcGFjZS5oCkBAIC0zMCw3ICszMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGVu
dW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIFNSR0IsCiAgICAgTGluZWFyUkdC
LAotICAgIERpc3BsYXlQMworICAgIERpc3BsYXlQMywKKyAgICBMYWIKIH07CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvclV0aWxpdGllcy5jcHAKaW5kZXggN2U5Zjk4OTJkYzNjMTRhY2VlZDgzODEwZmI1
M2FlZWI3ODA5OGExZi4uMDEwMzgzODExNTc3NjU4N2RiNWQ2ZWFiZTBhZGRhZWY5YjYxNzQxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0
aWVzLmNwcApAQCAtOTMsNiArOTMsODUgQEAgRmxvYXRDb21wb25lbnRzIGxpbmVhclRvU1JHQkNv
bXBvbmVudHMoY29uc3QgRmxvYXRDb21wb25lbnRzJiBsaW5lYXJSR0IpCiAgICAgfTsKIH0KIAor
c3RhdGljIEZsb2F0Q29tcG9uZW50cyBjaWVYWVpUb0xpbmVhclNSR0IoY29uc3QgRmxvYXRDb21w
b25lbnRzJiBjaWVYWVopCit7CisgICAgY29uc3QgZmxvYXQgdmFsdWVzW10gPSB7CisgICAgICAg
ICAzLjI0MDQ1NDJmLCAtMS41MzcxMzg1ZiwgLTAuNDk4NTMxNGYsIDAuMGYsIDAuMGYsCisgICAg
ICAgIC0wLjk2OTI2NjBmLCAgMS44NzYwMTA4ZiwgIDAuMDQxNTU2MGYsIDAuMGYsIDAuMGYsCisg
ICAgICAgICAwLjA1NTY0MzRmLCAtMC4yMDQwMjU5ZiwgIDEuMDU3MjI1MmYsIDAuMGYsIDAuMGYs
CisgICAgICAgICAwLjBmLCAgICAgICAgMC4wZiwgICAgICAgIDAuMGYsICAgICAgIDEuMGYsIDAu
MGYsCisgICAgfTsKKyAgICBDb2xvck1hdHJpeCBjaWVYWVpUb0xpbmVhclNSR0JNYXRyaXgodmFs
dWVzKTsKKyAgICAKKyAgICBGbG9hdENvbXBvbmVudHMgcmVzdWx0ID0gY2llWFlaOworICAgIGNp
ZVhZWlRvTGluZWFyU1JHQk1hdHJpeC50cmFuc2Zvcm1Db2xvckNvbXBvbmVudHMocmVzdWx0KTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgZmxvYXQgbGFiWFlaKGZsb2F0IHQpCit7
CisgICAgY29uc3QgZmxvYXQgTEFCZSA9IDIxNi4wZiAvIDI0Mzg5LjBmOworICAgIGNvbnN0IGZs
b2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOworCisgICAgZmxvYXQgdEN1YmVkID0gdCAqIHQg
KiB0OworICAgIGlmICh0Q3ViZWQgPiBMQUJlKQorICAgICAgICByZXR1cm4gdEN1YmVkOworICAg
IAorICAgIHJldHVybiAoMTE2LjBmICogdCAtIDE2LjBmKSAvIExBQms7Cit9CisKK3N0YXRpYyBG
bG9hdENvbXBvbmVudHMgbGFiVG9DSUVYWVooY29uc3QgRmxvYXRDb21wb25lbnRzJiBsYWIpCit7
CisgICAgZmxvYXQgTCA9IGxhYi5jb21wb25lbnRzWzBdOworICAgIGZsb2F0IGEgPSBsYWIuY29t
cG9uZW50c1sxXTsKKyAgICBmbG9hdCBiID0gbGFiLmNvbXBvbmVudHNbMl07CisKKyAgICBmbG9h
dCB5ID0gKEwgKyAxNi4wZikgLyAxMTYuMGY7CisgICAgZmxvYXQgeCA9IHkgKyBhIC8gNTAwLjBm
OworICAgIGZsb2F0IHogPSB5IC0gYiAvIDIwMC4wZjsKKyAgICAKKyAgICBjb25zdCBmbG9hdCBE
NjVXaGl0ZVZhbHVlc1tdID0geworICAgICAgICAwLjk1MDQ3ZiwKKyAgICAgICAgMS4wZiwKKyAg
ICAgICAgMS4wODg4M2YKKyAgICB9OworICAgIHggPSBENjVXaGl0ZVZhbHVlc1swXSAqIGxhYlhZ
Wih4KTsKKyAgICB5ID0gRDY1V2hpdGVWYWx1ZXNbMV0gKiBsYWJYWVooeSk7CisgICAgeiA9IEQ2
NVdoaXRlVmFsdWVzWzJdICogbGFiWFlaKHopOworCisgICAgcmV0dXJuIHsgeCwgeSwgeiwgbGFi
LmNvbXBvbmVudHNbM10gfTsKK30KKworLy8gbGFiQ29tcG9uZW50cyBhcmUgbGlnaHRuZXNzLCBh
LCBiLCBhbHBoYS4KKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGFiLXRv
LXJnYgorRmxvYXRDb21wb25lbnRzIGxhYlRvU1JHQihjb25zdCBGbG9hdENvbXBvbmVudHMmIGxh
YikKK3sKKyAgICBGbG9hdENvbXBvbmVudHMgY2llWFlaID0gbGFiVG9DSUVYWVoobGFiKTsKKyAg
ICBhdXRvIGxpbmVhclJHQiA9IGNpZVhZWlRvTGluZWFyU1JHQihjaWVYWVopOworICAgIHJldHVy
biBsaW5lYXJUb1NSR0JDb21wb25lbnRzKGxpbmVhclJHQik7Cit9CisKKy8vIGxjaENvbXBvbmVu
dHMgYXJlIGxpZ2h0bmVzcywgY2hyb21hLCBodWUgYW5nbGUgKGluIGRlZ3JlZXMpLCBhbHBoYS4K
K0Zsb2F0Q29tcG9uZW50cyBMQ0hUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRzJiBsY2hDb21w
b25lbnRzKQoreworICAgIEZsb2F0Q29tcG9uZW50cyBsYWJDb21wb25lbnRzID0gTENIVG9MYWIo
bGNoQ29tcG9uZW50cyk7CisgICAgcmV0dXJuIGxhYlRvU1JHQihsYWJDb21wb25lbnRzKTsKK30K
KworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsY2gtdG8tbGFiCitGbG9h
dENvbXBvbmVudHMgTENIVG9MYWIoY29uc3QgRmxvYXRDb21wb25lbnRzJiBsY2hDb21wb25lbnRz
KQoreworICAgIGZsb2F0IGNocm9tYSA9IGxjaENvbXBvbmVudHMuY29tcG9uZW50c1sxXTsKKyAg
ICBmbG9hdCBodWVBbmdsZVJhZGlhbnMgPSBkZWcycmFkKGxjaENvbXBvbmVudHMuY29tcG9uZW50
c1syXSk7CisKKyAgICByZXR1cm4geworICAgICAgICBsY2hDb21wb25lbnRzLmNvbXBvbmVudHNb
MF0sCisgICAgICAgIGNocm9tYSAqIGNvcyhodWVBbmdsZVJhZGlhbnMpLAorICAgICAgICBjaHJv
bWEgKiBzaW4oaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgbGNoQ29tcG9uZW50cy5jb21wb25l
bnRzWzNdCisgICAgfTsKK30KKwogLy8gVGhpcyBpcyBzaW1pbGFyIHRvIHNSR0JUb0xpbmVhckNv
bG9yQ29tcG9uZW50IGJ1dCBmb3Igc29tZSByZWFzb24KIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9U
Ui8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmCiAvLyBkb2Vz
bid0IHVzZSB0aGUgc3RhbmRhcmQgc1JHQiAtPiBsaW5lYXJSR0IgdGhyZXNob2xkIG9mIDAuMDQw
NDUuCkBAIC0yMjAsNyArMjk5LDcgQEAgQ29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KCkKICAgICBt
YWtlSWRlbnRpdHkoKTsKIH0KIAotQ29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KGZsb2F0IHZhbHVl
c1syMF0pCitDb2xvck1hdHJpeDo6Q29sb3JNYXRyaXgoY29uc3QgZmxvYXQgdmFsdWVzWzIwXSkK
IHsKICAgICBtX21hdHJpeFswXVswXSA9IHZhbHVlc1swXTsKICAgICBtX21hdHJpeFswXVsxXSA9
IHZhbHVlc1sxXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clV0aWxpdGllcy5oCmluZGV4IDc4ZWY4MjdlNWM5NzQ1NjBmNTQ1MTY2ZmJlZmNmN2Y2YjU2YmNk
ZTcuLjdiMWM1YjQwZGNlNWRjNjRmNzQyYWJmZTkzNDkwNThiOWQwOWM4YjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaApAQCAtMzEs
NiArMzEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENvbG9yOworCiBzdHJ1
Y3QgRmxvYXRDb21wb25lbnRzIHsKICAgICBGbG9hdENvbXBvbmVudHMoZmxvYXQgYSA9IDAsIGZs
b2F0IGIgPSAwLCBmbG9hdCBjID0gMCwgZmxvYXQgZCA9IDApCiAgICAgewpAQCAtMTU4LDYgKzE2
MCwxMiBAQCBGbG9hdENvbXBvbmVudHMgc1JHQkNvbG9yVG9MaW5lYXJDb21wb25lbnRzKGNvbnN0
IENvbG9yJik7CiBGbG9hdENvbXBvbmVudHMgc1JHQlRvTGluZWFyQ29tcG9uZW50cyhjb25zdCBG
bG9hdENvbXBvbmVudHMmKTsKIEZsb2F0Q29tcG9uZW50cyBsaW5lYXJUb1NSR0JDb21wb25lbnRz
KGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogCitGbG9hdENvbXBvbmVudHMgbGFiVG9TUkdCKGNv
bnN0IEZsb2F0Q29tcG9uZW50cyYpOworRmxvYXRDb21wb25lbnRzIExDSFRvU1JHQihjb25zdCBG
bG9hdENvbXBvbmVudHMmKTsKKworLy8gVGhlIGh1ZSBhbmdsZSBjb21wb25lbnQgaXMgaW4gZGVn
cmVlcy4KK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb0xhYihjb25zdCBGbG9hdENvbXBvbmVudHMmKTsK
KwogRmxvYXRDb21wb25lbnRzIHNSR0JUb0hTTChjb25zdCBGbG9hdENvbXBvbmVudHMmKTsKIEZs
b2F0Q29tcG9uZW50cyBIU0xUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CiAKQEAgLTE3
Miw3ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENvbG9yTWF0cml4IHNlcGlhTWF0cml4
KGZsb2F0KTsKIAogICAgIENvbG9yTWF0cml4KCk7Ci0gICAgQ29sb3JNYXRyaXgoZmxvYXRbMjBd
KTsKKyAgICBDb2xvck1hdHJpeChjb25zdCBmbG9hdFsyMF0pOwogICAgIAogICAgIHZvaWQgdHJh
bnNmb3JtQ29sb3JDb21wb25lbnRzKEZsb2F0Q29tcG9uZW50cyYpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCmluZGV4
IGUwOWQyODcwZjYxZWI1NTMzMjFlYjcyM2Q0MjQzNmE0OTRiMDU0MmQuLjlkZjg5ZDI0Nzk4YWI1
MWYzOGUyZTgwNzgwNmNkYjg2MjRiMzJlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCkBAIC0zMywxNSArMzMsMzEgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RXh0ZW5kZWRDb2xvcj4gRXh0ZW5kZWRDb2xvcjo6
Y3JlYXRlKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UpCitSZWY8RXh0ZW5kZWRDb2xvcj4gRXh0ZW5kZWRDb2xvcjo6
Y3JlYXRlKGZsb2F0IGMxLCBmbG9hdCBjMiwgZmxvYXQgYzMsIGZsb2F0IGFscGhhLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXh0ZW5kZWRDb2xv
cihyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSwgY29sb3JTcGFjZSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEV4dGVuZGVkQ29sb3IoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpKTsK
IH0KIAogU3RyaW5nIEV4dGVuZGVkQ29sb3I6OmNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSg0MCk7CisKKyAg
ICBpZiAobV9jb2xvclNwYWNlID09IENvbG9yU3BhY2U6OkxhYikgeworICAgICAgICBidWlsZGVy
LmFwcGVuZCgibGFiKCIsCisgICAgICAgICAgICBGb3JtYXR0ZWROdW1iZXI6OmZpeGVkUHJlY2lz
aW9uKG1fdmFsdWUuY29tcG9uZW50c1swXSksCisgICAgICAgICAgICAiJSAiLAorICAgICAgICAg
ICAgRm9ybWF0dGVkTnVtYmVyOjpmaXhlZFByZWNpc2lvbihtX3ZhbHVlLmNvbXBvbmVudHNbMV0p
LAorICAgICAgICAgICAgIiAiLAorICAgICAgICAgICAgRm9ybWF0dGVkTnVtYmVyOjpmaXhlZFBy
ZWNpc2lvbihtX3ZhbHVlLmNvbXBvbmVudHNbMl0pKTsKKworICAgICAgICBpZiAoYWxwaGEoKSA8
IDEpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiIC8gIiwgRm9ybWF0dGVkTnVtYmVyOjpm
aXhlZFByZWNpc2lvbihhbHBoYSgpKSk7CisKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsK
KyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCiAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJjb2xvcigiKTsKIAogICAgIHN3aXRjaCAobV9jb2xvclNwYWNl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRl
ZENvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmgKaW5kZXggMTI3N2Y5NDhmMTIxNTU5NThjODkzMmNlOWM2MTczNTgxZTMxNGFmOS4uNWRjNjVm
MzRkZDQxYjhiM2EwMzk5OWEyZDNmOGUwMWNlZTFiMmJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuaApAQCAtMjcsNiArMjcsNyBAQAog
CiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogCisjaW5jbHVkZSAiQ29sb3JVdGlsaXRpZXMuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM1LDMxICszNiw0MSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEV4dGVuZGVkQ29sb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxFeHRl
bmRlZENvbG9yPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxFeHRlbmRlZENvbG9yPiBjcmVh
dGUoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEsIENvbG9y
U3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCKTsKKyAgICBzdGF0aWMgUmVmPEV4dGVuZGVkQ29sb3I+
IGNyZWF0ZShmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSA9IENv
bG9yU3BhY2U6OlNSR0IpOwogCi0gICAgZmxvYXQgcmVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWQ7
IH0KLSAgICBmbG9hdCBncmVlbigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JlZW47IH0KLSAgICBmbG9h
dCBibHVlKCkgY29uc3QgeyByZXR1cm4gbV9ibHVlOyB9Ci0gICAgZmxvYXQgYWxwaGEoKSBjb25z
dCB7IHJldHVybiBtX2FscGhhOyB9CisgICAgZmxvYXQgcmVkKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEFTU0VSVChtX2NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZTo6TGFiKTsKKyAgICAgICAgcmV0
dXJuIG1fdmFsdWUuY29tcG9uZW50c1swXTsKKyAgICB9CisKKyAgICBmbG9hdCBncmVlbigpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9jb2xvclNwYWNlICE9IENvbG9yU3BhY2U6Okxh
Yik7CisgICAgICAgIHJldHVybiBtX3ZhbHVlLmNvbXBvbmVudHNbMV07CisgICAgfQorCisgICAg
ZmxvYXQgYmx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9jb2xvclNwYWNlICE9
IENvbG9yU3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBtX3ZhbHVlLmNvbXBvbmVudHNbMl07
CisgICAgfQorCisgICAgZmxvYXQgYWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmNvbXBv
bmVudHNbM107IH0KKworICAgIGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgdmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX3ZhbHVlOyB9CiAKICAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCB7
IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjc3NU
ZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgRXh0ZW5kZWRDb2xvcihmbG9hdCByLCBmbG9h
dCBnLCBmbG9hdCBiLCBmbG9hdCBhLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCi0gICAgICAgIDog
bV9yZWQocikKLSAgICAgICAgLCBtX2dyZWVuKGcpCi0gICAgICAgICwgbV9ibHVlKGIpCi0gICAg
ICAgICwgbV9hbHBoYShhKQorICAgIEV4dGVuZGVkQ29sb3IoZmxvYXQgYzEsIGZsb2F0IGMyLCBm
bG9hdCBjMywgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKKyAgICAgICAgOiBt
X3ZhbHVlKGMxLCBjMiwgYzMsIGFscGhhKQogICAgICAgICAsIG1fY29sb3JTcGFjZShjb2xvclNw
YWNlKQogICAgIHsgfQogCi0gICAgZmxvYXQgbV9yZWQgeyAwIH07Ci0gICAgZmxvYXQgbV9ncmVl
biB7IDAgfTsKLSAgICBmbG9hdCBtX2JsdWUgeyAwIH07Ci0gICAgZmxvYXQgbV9hbHBoYSB7IDAg
fTsKLQorICAgIEZsb2F0Q29tcG9uZW50cyBtX3ZhbHVlOwogICAgIENvbG9yU3BhY2UgbV9jb2xv
clNwYWNlIHsgQ29sb3JTcGFjZTo6U1JHQiB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcAppbmRleCBjZGZmYTNmNjBlOWFkMThmMmE0
MGE4ZTg5ODUyYTM2YTMzN2Y1MTAwLi5kMTNlMjJjNmRhYjI2YTNkZWZiNjI5NTFjNWY4YTZiOTcy
Y2IzYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9D
b2xvckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xv
ckNHLmNwcApAQCAtMTA2LDE1ICsxMDYsMjAgQEAgc3RhdGljIENHQ29sb3JSZWYgbGVha0NHQ29s
b3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIENHRmxvYXQgY29tcG9uZW50c1s0XTsKICAgICBp
ZiAoY29sb3IuaXNFeHRlbmRlZCgpKSB7CiAgICAgICAgIEV4dGVuZGVkQ29sb3ImIGV4dGVuZGVk
Q29sb3IgPSBjb2xvci5hc0V4dGVuZGVkKCk7Ci0gICAgICAgIGNvbXBvbmVudHNbMF0gPSBleHRl
bmRlZENvbG9yLnJlZCgpOwotICAgICAgICBjb21wb25lbnRzWzFdID0gZXh0ZW5kZWRDb2xvci5n
cmVlbigpOwotICAgICAgICBjb21wb25lbnRzWzJdID0gZXh0ZW5kZWRDb2xvci5ibHVlKCk7Ci0g
ICAgICAgIGNvbXBvbmVudHNbM10gPSBleHRlbmRlZENvbG9yLmFscGhhKCk7CisgICAgICAgIGF1
dG8gdmFsdWUgPSBleHRlbmRlZENvbG9yLnZhbHVlKCk7CisgICAgICAgIGNvbXBvbmVudHNbMF0g
PSB2YWx1ZS5jb21wb25lbnRzWzBdOworICAgICAgICBjb21wb25lbnRzWzFdID0gdmFsdWUuY29t
cG9uZW50c1sxXTsKKyAgICAgICAgY29tcG9uZW50c1syXSA9IHZhbHVlLmNvbXBvbmVudHNbMl07
CisgICAgICAgIGNvbXBvbmVudHNbM10gPSB2YWx1ZS5jb21wb25lbnRzWzNdOwogICAgICAgICBz
d2l0Y2ggKGV4dGVuZGVkQ29sb3IuY29sb3JTcGFjZSgpKSB7CiAgICAgICAgIGNhc2UgQ29sb3JT
cGFjZTo6U1JHQjoKICAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKHNSR0JDb2xvclNw
YWNlUmVmKCksIGNvbXBvbmVudHMpOwogICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQ
MzoKICAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKGRpc3BsYXlQM0NvbG9yU3BhY2VS
ZWYoKSwgY29tcG9uZW50cyk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBnaXZlIGluY29ycmVjdCByZXN1bHRzIG9uIHBsYXRm
b3JtcyB0aGF0IGRvbid0IHN1cHBvcnQgQ0dDb2xvclNwYWNlQ3JlYXRlTGFiKCkuIFdlIHNob3Vs
ZAorICAgICAgICAgICAgLy8gY29udmVydCB0byBzUkdCLgorICAgICAgICAgICAgcmV0dXJuIENH
Q29sb3JDcmVhdGUobGFiRDUwQ29sb3JTcGFjZVJlZigpLCBjb21wb25lbnRzKTsKICAgICAgICAg
Y2FzZSBDb2xvclNwYWNlOjpMaW5lYXJSR0I6CiAgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2Ug
ZXZlciBjcmVhdGUgQ0dDb2xvclJlZnMgaW4gdGhlc2Ugc3BhY2VzPyBJdCBtYXkgb25seSBiZSBJ
bWFnZUJ1ZmZlcnMuCiAgICAgICAgICAgICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JT
cGFjZVJlZigpLCBjb21wb25lbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCA0OTZlY2EzMjRk
M2U0ZGEyMmZjYTU5OTk4ZWI1ZWY1ZWU3M2QyMDlhLi45YzM2M2UzMjQxY2VhNTcyNTJiMzA4Y2Jl
OTEzNTA0Y2Y5ZmZiNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xMzksNiArMTM5LDIxIEBA
IENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4gZGlz
cGxheVAzQ29sb3JTcGFjZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkQ1MENvbG9yU3BhY2VS
ZWYoKQoreworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZTsKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZs
YWcsIFtdIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgY29uc3QgQ0dGbG9hdCBkNTBX
aGl0ZVBvaW50W10gPSB7IDAuOTY0MjIsIDEuMDAwMDAsIDAuODI1MjEgfTsKKyAgICAgICAgbGFi
Q29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZUxhYihkNTBXaGl0ZVBvaW50LCBudWxscHRy
LCBudWxscHRyKTsKKyNlbHNlCisgICAgICAgIGxhYkNvbG9yU3BhY2UgPSBzUkdCQ29sb3JTcGFj
ZVJlZigpOworI2VuZGlmCisgICAgfSk7CisgICAgcmV0dXJuIGxhYkNvbG9yU3BhY2U7Cit9CisK
IHN0YXRpYyBJbnRlcnBvbGF0aW9uUXVhbGl0eSBjb252ZXJ0SW50ZXJwb2xhdGlvblF1YWxpdHko
Q0dJbnRlcnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRjaCAocXVhbGl0eSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmgKaW5kZXggNWQ1OWQxNWRiZWRmNWUzNTIzOWIzN2FiNTJlYzQ0OWE5MTJi
ZDRkOC4uMGMxNzRiYzgzNWE2NTNhNmQ0NjZkMDYyYWE0NWYxMDgwM2VmMGFjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQ
T1JUIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQg
Q0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQ
T1JUIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CitXRUJDT1JFX0VY
UE9SVCBDR0NvbG9yU3BhY2VSZWYgbGFiRDUwQ29sb3JTcGFjZVJlZigpOyAvLyBMKmEqYiBjb2xv
cnNwYWNlIFdpdGggRDUwIHdoaXRlIHBvaW50LgogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNl
UmVmIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKIAogQ0dBZmZpbmVUcmFuc2Zvcm0gZ2V0VXNl
clRvQmFzZUNUTShDR0NvbnRleHRSZWYpOwpAQCAtNDcsNiArNDgsOCBAQCBzdGF0aWMgaW5saW5l
IENHQ29sb3JTcGFjZVJlZiBjYWNoZWRDR0NvbG9yU3BhY2UoQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQogICAgICAgICByZXR1cm4gbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogICAgIGNhc2UgQ29s
b3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZVJl
ZigpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gbGFiRDUwQ29s
b3JTcGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcAppbmRleCAzMGJi
NDhjYzhmMGM0OTU0NDhhYjY1ZjY4MTE3MmNjYzZiY2E1MzVjLi4xNzAzMmQyNDQxOTBkMWZkMmIw
ZDFkOTcwZGRmZTEwMmQzYWVmNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwCkBAIC0yMzYs
NyArMjM2LDcgQEAgYm9vbCBJbnZlcnRMaWdodG5lc3NGaWx0ZXJPcGVyYXRpb246OnRyYW5zZm9y
bUNvbG9yKEZsb2F0Q29tcG9uZW50cyYgc1JHQkNvbG9yQ28KICAgICBzUkdCQ29sb3JDb21wb25l
bnRzID0gSFNMVG9TUkdCKGhzbENvbXBvbmVudHMpOwogICAgIAogICAgIC8vIEFwcGx5IHRoZSBt
YXRyaXguIFNlZSByZGFyOi8vcHJvYmxlbS80MTE0NjY1MCBmb3IgaG93IHRoaXMgbWF0cml4IHdh
cyBkZXJpdmVkLgotICAgIGZsb2F0IG1hdHJpeFZhbHVlc1syMF0gPSB7CisgICAgY29uc3QgZmxv
YXQgbWF0cml4VmFsdWVzWzIwXSA9IHsKICAgICAgICAtMC43NzAsICAwLjA1OSwgLTAuMDg5LCAw
LCAxLAogICAgICAgICAwLjAzMCwgLTAuNzQxLCAtMC4wODksIDAsIDEsCiAgICAgICAgIDAuMDMw
LCAgMC4wNTksIC0wLjg5MCwgMCwgMSwKQEAgLTI1Miw3ICsyNTIsNyBAQCBib29sIEludmVydExp
Z2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6aW52ZXJzZVRyYW5zZm9ybUNvbG9yKEZsb2F0Q29tcG9u
ZW50cyYgc1JHQgogewogICAgIEZsb2F0Q29tcG9uZW50cyByZ2JDb21wb25lbnRzID0gc1JHQkNv
bG9yQ29tcG9uZW50czsKICAgICAvLyBBcHBseSB0aGUgbWF0cml4LgotICAgIGZsb2F0IG1hdHJp
eFZhbHVlc1syMF0gPSB7CisgICAgY29uc3QgZmxvYXQgbWF0cml4VmFsdWVzWzIwXSA9IHsKICAg
ICAgICAgLTEuMzAwLCAtMC4wOTcsICAwLjE0NywgMCwgMS4yNSwKICAgICAgICAgLTAuMDQ5LCAt
MS4zNDcsICAwLjE0NiwgMCwgMS4yNSwKICAgICAgICAgLTAuMDQ5LCAtMC4wOTcsIC0xLjEwNCwg
MCwgMS4yNSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2NDQ3OWE2NWFkNTNlYmYwMjI1OTEwZDAzNzljOWY5YmZhZDljOTBm
Li43MTdkYzRjZjEyODg3ZmZmNjcwMTc4NDU3M2YwMjJhN2I0MzdkY2NlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjAtMDEtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCkgYW5kIGdyYXkoKSBjb2xvcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUGFy
c2luZyB0ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKyAgICAgICAgTW9yZSByZW5kZXJp
bmcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3Jz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDIwLTAxLTAzICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2ViR0xdIEVuYWJsZSBBTkdMRSBieSBkZWZhdWx0IGZvciBDb2Nv
YSBwbGF0Zm9ybXMgKGV4Y2VwdCBzaW11bGF0b3IpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTFhYzQz
ZDNlY2JhYTYwZjAzZWQ5N2Q2MDgyZTFhNTVhNjFkMzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDU5IEBACitUZXN0IHRoZSBwYXJzaW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2xhYigpCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCkiKSBpcyAibGFiKDAlIDAgMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDEpIikg
aXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgLyAwLjUpIikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC8wLjUpIikgaXMgImxhYigy
MCUgMCAxMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDIwJSAwIDEwLzUwJSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiKSBpcyAibGFi
KDQwMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKDUwJSAtMTYwIDE2MCkiKSBpcyAibGFiKDUwJSAtMTYwIDE2MCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiKSBpcyAibGFi
KDUwJSAtMjAwIDIwMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDAlIDAgMCAvIC0xMCUpIikgaXMgImxhYigwJSAwIDAgLyAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMTEwJSkiKSBpcyAibGFiKDAl
IDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAg
MCAvIDMwMCUpIikgaXMgImxhYigwJSAwIDApIgorCitsY2goKQorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcpIikgaXMgImxhYigwJSAwIDApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAx
KSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMCUgMCAwZGVnIC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAwJSAyMzAgMGRlZyAvIDAu
NSkiKSBpcyAibGFiKDEwMCUgMjMwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvMC41KSIpIGlzICJsYWIoMjAlIDQ2Ljk4
NDYgMTcuMTAxIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMjAlIDUwIDIwZGVnLzUwJSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2IDE3LjEwMSAvIDAu
NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAy
MGRlZyAvIC0xMCUpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQgLyAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSki
KSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAxLjI4cmFkKSIpIGlzICJsYWIoMTAlIDUuNzM0MyAx
OS4xNjAzKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAl
IDIwIDM4MGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVnKSIpIGlzICJsYWIo
MTAlIDE4Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMTAlIDIwIDc0MGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwZGVn
KSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIKKworZ3JheSgpCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIpIGlz
ICJsYWIoMTAlIDAgMCAvIDAuMSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAiZ3JheSgxMjAgLyAxMCUpIikgaXMgImxhYigxMjAlIDAgMCAvIDAuMSkiCisKK1Rlc3Qg
aW52YWxpZCB2YWx1ZXMKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCAwIDApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigwJSAwIDAgMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAl
IDAlIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKDQwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAgMCAwIC8gMC41
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorRkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgwJSAwIDAgLyAwLjUpIikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCku
IFdhcyBsYWIoMCUgMCAwIC8gMC41KS4KK0ZBSUwgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMjAlIDEwIDEwKSIpIHNob3VsZCBiZSByZ2JhKDAsIDAsIDAsIDApLiBXYXMg
bGFiKDIwJSA5Ljg0ODA4IDEuNzM2NDgpLgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAx
MCAvIDAuNSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJncmF5KDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImdyYXkoMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjRmOTY3YWU4ODA5YWVkMTU4MzMxYTZmMTI4MjZiZTA0NGRhYzZlNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCkBAIC0w
LDAgKzEsOTcgQEAKKzxodG1sPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4i
KTsKKworICAgIGZ1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsK
KyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQ
cm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdl
dENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRW
YWx1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiBkaXYuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdGVzdENvbXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAg
eworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUoIicgKyBwcm9w
ZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAg
ICAgaWYgKGV4cGVjdGVkID09PSBudWxsKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSAiIjsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAn
IiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnbGFi
KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCki
LCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDAlIDAgMCAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC8wLjUp
IiwgImxhYigyMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGFiKDIwJSAwIDEwLzUwJSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiLCAi
bGFiKDQwMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDUwJSAtMTYwIDE2MCkiLCAibGFiKDUwJSAtMTYwIDE2MCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiLCAibGFiKDUw
JSAtMjAwIDIwMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KDAlIDAgMCAvIC0xMCUpIiwgImxhYigwJSAwIDAgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMTEwJSkiLCAibGFiKDAlIDAgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDMwMCUp
IiwgImxhYigwJSAwIDApIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ2xjaCgpJyk7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcpIiwg
ImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgwJSAwIDBkZWcgLyAxKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAwJSAyMzAg
MGRlZyAvIDAuNSkiLCAibGFiKDEwMCUgMjMwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvMC41KSIsICJsYWIoMjAlIDQ2
Ljk4NDYgMTcuMTAxIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMjAlIDUwIDIwZGVnLzUwJSkiLCAibGFiKDIwJSA0Ni45ODQ2IDE3LjEwMSAvIDAu
NSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAy
MGRlZyAvIC0xMCUpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQgLyAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiLCAi
bGFiKDEwJSAxOC43OTM5IDYuODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDEwJSAyMCAxLjI4cmFkKSIsICJsYWIoMTAlIDUuNzM0MyAxOS4xNjAzKSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRl
ZykiLCAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44
NDA0KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIw
IDc0MGRlZykiLCAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwZGVnKSIsICJsYWIoMTAlIDE4Ljc5
MzkgNi44NDA0KSIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdncmF5KCknKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgwKSIsICJsYWIoMCUgMCAw
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAl
KSIsICJsYWIoMTAlIDAgMCAvIDAuMSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAiZ3JheSgxMjAgLyAxMCUpIiwgImxhYigxMjAlIDAgMCAvIDAuMSkiKTsKKworICAg
IGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHZhbHVlcycpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCAwIDApIiwgInJnYmEoMCwgMCwgMCwg
MCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDAp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDAlIDAgMCAxKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAs
IDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBk
ZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGFiKDAlIDAlIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwJSAwIDBkZWcpIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
MCAwIDAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIp
OyAvLyBObyB1bml0bGVzcyB6ZXJvIGFuZ2xlLiBDdXJyZW50bHkgZmFpbHM6IHdlYmtpdC5vcmcv
Yi8yMDU3MzMKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAx
MCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyBhbmdsZS4gQ3VycmVu
dGx5IGZhaWxzOiB3ZWJraXQub3JnL2IvMjA1NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAx
MCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImdyYXkoMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgx
MCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEwIC8gMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworPC9z
Y3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386752</attachid>
            <date>2020-01-03 21:07:32 -0800</date>
            <delta_ts>2020-01-03 21:27:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20200103210731.patch</filename>
            <type>text/plain</type>
            <size>41680</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkM2Y5NGNmYTQ1Mzlk
OTJjZDQ1MTEwZmIyZDg0MzEyNWE1NDIyMS4uOWFhNjUxN2I5ZjA1YmRmYjhhYzJkNTMxNzkwNzhl
ZDg0NGI0NzczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFi
KCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkg
YW5kIGdyYXkoKSBjb2xvcnMgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGFiLWNvbG9ycy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2Ugd2UgaGF2ZSB0byBwcmVzZXJ2
ZSB0aGVtIGFzIGxhYigpIGNvbG9ycyBmb3IgY29tcHV0ZWQgc3R5bGUsIHRoZXkgYXJlIHN0b3Jl
ZCBhcworICAgICAgICBmbG9hdHMgaW4gRXh0ZW5kZWRDb2xvciwgd2hpY2ggaXMgbWFkZSBtb3Jl
IGdlbmVyaWMgdG8gaGFuZGxlIGFueSA0LWZsb2F0IGNvbG9yIGZvcm1hdC4KKyAgICAgICAgV2Ug
YWRkIGEgQ29sb3JTcGFjZTo6TGFiLCBhbmQgd2hlbiBjcmVhdGluZyBjb2xvcnMgdG8gcGFpbnQs
IHJlbHkgb24gQ29yZUdyYXBoaWNzIHRvIGNyZWF0ZQorICAgICAgICBDR0NvbG9yUmVmcyBpbiB0
aGUgbGFiIGNvbG9yc3BhY2UsIHVzaW5nIEQ1MCB3aGl0ZSB2YWx1ZXMgcGVyIHNwZWMuCisgICAg
ICAgIAorICAgICAgICBsYWIgPC0+IGxjaCA8LT4gc1JHQiBjb252ZXJzaW9uIGZhY2lsaXRpZXMg
YXJlIGFkZGVkIHRvIENvbG9yVXRpbGl0aWVzLiBXZSBkb24ndAorICAgICAgICBldmVyIGNvbnZl
cnQgdG8gc1JHQiB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIGJ1dCBwcm9iYWJseSB3aWxsIGluIGZ1
dHVyZSBmb3IgaW50ZXJwb2xhdGluZworICAgICAgICBpbiBncmFkaWVudHMgYW5kIGFuaW1hdGlv
bnMgd2l0aCBtaXhlZCBjb2xvciB0eXBlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlTGFiUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaWVYWVpUb0xpbmVhclNSR0IpOgorICAgICAgICAoV2ViQ29yZTo6bGFiWFlaKToK
KyAgICAgICAgKFdlYkNvcmU6OmxhYlRvQ0lFWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OmxhYlRv
U1JHQik6CisgICAgICAgIChXZWJDb3JlOjpMQ0hUb1NSR0IpOgorICAgICAgICAoV2ViQ29yZTo6
TENIVG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpibHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
ZGVkQ29sb3I6OmFscGhhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OkV4dGVuZGVk
Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkQ1MENvbG9y
U3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDR0NvbG9yU3BhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9u
OjppbnZlcnNlVHJhbnNmb3JtQ29sb3IgY29uc3QpOgorCiAyMDIwLTAxLTAzICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZyBhdCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVuT3Bl
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYWM3MTY1MzZmNTM3NzFmYTZiMmFjYmI1YzM0OGJmMzg0ODY2YmMwZi4uZDdj
ZTk5NmNjMTMxOTEwZWFiZWQ4YzQ0NGZmNjgzMjEyZjc2YWE1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzYxLDYgKzM2MSw3
IEBACiAJCTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkVBM0U3RTE5MUIzMTY5MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGRUEzRTg0MTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFQTNFODIxOTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEZFQTNFODgxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUEzRTg2MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMEZFQUY2NkIyM0JGQzM5RTAwNDAzMERBIC8qIENvbG9yVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU2Qzc2QzFGQkZCN0E2MDAy
NUMwNTMgLyogQ29sb3JVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRkVDMTIwQzIyQkYyQ0QyMDA0RTlEMzUgLyogTGF5ZXJBbmNl
c3RvckNsaXBwaW5nU3RhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGRUMxMjA5MjJCRjJDQzcwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBp
bmdTdGFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGRjNCOTI5MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjNCOTI1MUVFM0I2REUwMEI4NDE0
NCAvKiBKU0RPTVF1YWQuaCAqLzsgfTsKIAkJMEZGM0I5MkIxRUUzQjZERTAwQjg0MTQ0IC8qIEpT
RE9NUXVhZEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRjNCOTI3MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWRJbml0LmggKi87IH07CkBA
IC0yOTMwNiw2ICsyOTMwNyw3IEBACiAJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENv
bG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyog
Q29sb3JNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJERjU4MTBBOEQ1QzkwMDkyNTY1MiAv
KiBDb2xvclNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVBRjY2QjIzQkZDMzlFMDA0MDMw
REEgLyogQ29sb3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREQ0NTRFMTIzNkM5
NUMwMDlBNzk4NSAvKiBDb2x1bW5JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0VERDY3RjFC
NDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFiZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTI2RTk0NEQ5MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3
NjRmMGFjOTg5Zjc1MjFkOTU4ZTY0ZTA0MTJhNTcwNjE4OTEyNDhlLi5iZWViYmVhNzc1MWM3MGRl
ZWJhMzY3YTZkMzFkNTBjZDZjMjI2MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgpAQCAtMTI2OSw2ICsxMjY5LDkgQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgor
bGNoCisvLyBncmF5CiAvL2NvbG9yCiAKIC8vIHRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IGY1
MDJjNmZjYWYxNDBmOTY5OWQ3MWU5ZWVhMGYxNDk2MDJlYWJlOGYuLmM0YTg4Yzg5NmJiNjY1ZTM4
NGY2NTI4MWM4OTI3YTFmOWUyMGY0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJDU1NQYWludEltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKKyNpbmNsdWRlICJDb2xvclV0aWxpdGll
cy5oIgogI2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiU3R5bGVDb2xvci5oIgpAQCAtMjM3LDYgKzIzOCw3IEBAIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUZvbnRXZWlnaHROdW1iZXIoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UpCiBpbmxpbmUgYm9vbCBzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKGRvdWJs
ZSB2YWx1ZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrIHVuaXRs
ZXNzKQogewogICAgIC8vIEZJWE1FOiBQcmVzZW50YXRpb25hbCBIVE1MIGF0dHJpYnV0ZXMgc2hv
dWxkbid0IHVzZSB0aGUgQ1NTIHBhcnNlciBmb3IgbGVuZ3RocworICAgIC8vIEZJWE1FOiBVbml0
bGVzcyB6ZXJvIHNob3VsZCBub3QgYWx3YXlzIGJlIGFsbG93ZWQuIHdlYmtpdC5vcmcvYi8yMDU3
MzMuCiAgICAgcmV0dXJuIHZhbHVlID09IDAKICAgICAgICAgfHwgaXNVbml0TGVzc1ZhbHVlUGFy
c2luZ0VuYWJsZWRGb3JNb2RlKGNzc1BhcnNlck1vZGUpCiAgICAgICAgIHx8IChjc3NQYXJzZXJN
b2RlID09IEhUTUxRdWlya3NNb2RlICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93
KTsKQEAgLTY0Myw2ICs2NDUsMTA4IEBAIHN0YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyCiAgICAgcmV0
dXJuIENvbG9yKG1ha2VSR0JBRnJvbUhTTEEoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlb
MF0pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0
Pihjb2xvckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSkpOwogfQogCitzdGF0
aWMgYm9vbCBwYXJzZU9wdGlvbmFsQWxwaGEoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGZs
b2F0JiBhbHBoYSkKK3sKKyAgICBhbHBoYSA9IDEuMGY7CisgICAgaWYgKGNvbnN1bWVTbGFzaElu
Y2x1ZGluZ1doaXRlc3BhY2UocmFuZ2UpKSB7CisgICAgICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIg
PSBjb25zdW1lUGVyY2VudChyYW5nZSwgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmIChhbHBo
YVBhcmFtZXRlcikKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJh
bWV0ZXItPmRvdWJsZVZhbHVlKCkgLyAxMDAuMCwgMC4wLCAxLjApOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZU51bWJlcihyYW5nZSwgVmFsdWVS
YW5nZUFsbCk7CisgICAgICAgICAgICBpZiAoIWFscGhhUGFyYW1ldGVyKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxw
aGFQYXJhbWV0ZXItPmRvdWJsZVZhbHVlKCksIDAuMCwgMS4wKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTGFiUGFyYW1ldGVycyhD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1
bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUxhYik7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdz
ID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3Vt
ZVBlcmNlbnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAg
ICAgIHJldHVybiBDb2xvcigpOworICAgIAorICAgIGF1dG8gYVZhbHVlID0gY29uc3VtZU51bWJl
cihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFWYWx1ZSkKKyAgICAgICAgcmV0dXJu
IENvbG9yKCk7CisgICAgYXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFu
Z2VBbGwpOworICAgIGlmICghYlZhbHVlKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAg
IGZsb2F0IGFscGhhOworICAgIGlmICghcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MsIGFscGhhKSkK
KyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAg
ICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICByZXR1cm4gQ29sb3IobGlnaHRuZXNzLT5mbG9hdFZh
bHVlKCksIGFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBiVmFsdWUtPmZsb2F0VmFsdWUoKSwgYWxwaGEs
IENvbG9yU3BhY2U6OkxhYik7Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUxDSFBhcmFtZXRlcnMo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5m
dW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVMY2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJn
cyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1
bWVQZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAg
ICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAKKyAgICBhdXRvIGNocm9tYVZhbHVlID0gY29uc3Vt
ZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWNocm9tYVZhbHVlKQorICAg
ICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+
IChkaXNhbGxvd2luZyB1bml0bGVzcyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3Vt
ZUFuZ2xlKGFyZ3MsIEhUTUxTdGFuZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7Cisg
ICAgZmxvYXQgYW5nbGVJbkRlZ3JlZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBo
dWVWYWx1ZSA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlm
ICghaHVlVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgYW5nbGVJ
bkRlZ3JlZXMgPSBodWVWYWx1ZS0+ZG91YmxlVmFsdWUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
YW5nbGVJbkRlZ3JlZXMgPSBodWVWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKKworICAgIGFuZ2xl
SW5EZWdyZWVzID0gZm1vZGYoYW5nbGVJbkRlZ3JlZXMsIDM2MC4wZik7CisgICAgaWYgKGFuZ2xl
SW5EZWdyZWVzIDwgMC4wKQorICAgICAgICBhbmdsZUluRGVncmVlcyArPSAzNjAuMGY7CisKKyAg
ICBmbG9hdCBhbHBoYTsKKyAgICBpZiAoIXBhcnNlT3B0aW9uYWxBbHBoYShhcmdzLCBhbHBoYSkp
CisgICAgICAgIHJldHVybiBDb2xvcigpOworCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAg
ICAgIHJldHVybiBDb2xvcigpOworCisgICAgYXV0byBsYWJDb2xvciA9IExDSFRvTGFiKHsgbGln
aHRuZXNzLT5mbG9hdFZhbHVlKCksIGNocm9tYVZhbHVlLT5mbG9hdFZhbHVlKCksIGFuZ2xlSW5E
ZWdyZWVzLCBhbHBoYSB9KTsKKyAgICByZXR1cm4gQ29sb3IobGFiQ29sb3IuY29tcG9uZW50c1sw
XSwgbGFiQ29sb3IuY29tcG9uZW50c1sxXSwgbGFiQ29sb3IuY29tcG9uZW50c1syXSwgbGFiQ29s
b3IuY29tcG9uZW50c1szXSwgQ29sb3JTcGFjZTo6TGFiKTsKK30KKworc3RhdGljIENvbG9yIHBh
cnNlR3JheVBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNT
RVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVHcmF5KTsKKyAgICBDU1NQ
YXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAgLy8g
VW5saWtlIGxhYi9sY2gsIGdyYXkoKSB0YWtlcyBhIG51bWJlciwgYnV0IHNlZSBodHRwczovL2dp
dGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNDY0OAorICAgIGF1dG8gbGlnaHRuZXNz
ID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWxpZ2h0bmVz
cykKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisgICAgZmxvYXQgYWxwaGE7CisgICAg
aWYgKCFwYXJzZU9wdGlvbmFsQWxwaGEoYXJncywgYWxwaGEpKQorICAgICAgICByZXR1cm4gQ29s
b3IoKTsKKworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KworICAgIHJldHVybiBDb2xvcihsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgMCwgMCwgYWxwaGEs
IENvbG9yU3BhY2U6OkxhYik7Cit9CisKIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25Q
YXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIEFTU0VSVChyYW5n
ZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlQ29sb3IpOwpAQCAtNzM2LDYgKzg0MCwx
NSBAQCBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcgogICAgIGNhc2UgQ1NTVmFsdWVIc2xhOgogICAg
ICAgICBjb2xvciA9IHBhcnNlSFNMUGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJNb2Rl
KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29sb3Ig
PSBwYXJzZUxhYlBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVMY2g6CisgICAgICAgIGNvbG9yID0gcGFyc2VMQ0hQYXJhbWV0ZXJzKGNvbG9y
UmFuZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlR3JheToKKyAgICAgICAg
Y29sb3IgPSBwYXJzZUdyYXlQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsK
ICAgICBjYXNlIENTU1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0
aW9uUGFyYW1ldGVycyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXggZWEyZDM0ODI2ZTM2ODhkNTNkM2Ji
NjM5ZWE0Y2QwZTk2MmQxMDAxMi4uZDJlZTliNDJkMTRhOTYzODMyNjEyOGEwOGZmMGYyMDBmZWMx
MjQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAt
MjcwLDEyICsyNzAsMTIgQEAgQ29sb3I6OkNvbG9yKENvbG9yJiYgb3RoZXIpCiAgICAgKnRoaXMg
PSBXVEZNb3ZlKG90aGVyKTsKIH0KIAotQ29sb3I6OkNvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZs
b2F0IGIsIGZsb2F0IGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK0NvbG9yOjpDb2xvcihmbG9h
dCBjMSwgZmxvYXQgYzIsIGZsb2F0IGMzLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlKQogewogICAgIC8vIFplcm8gdGhlIHVuaW9uLCBqdXN0IGluIGNhc2UgYSAzMi1iaXQgc3lz
dGVtIG9ubHkgYXNzaWducyB0aGUKICAgICAvLyB0b3AgMzIgYml0cyB3aGVuIGNvcHlpbmcgdGhl
IGV4dGVuZGVkQ29sb3IgcG9pbnRlciBiZWxvdy4KICAgICBtX2NvbG9yRGF0YS5yZ2JhQW5kRmxh
Z3MgPSAwOwotICAgIGF1dG8gZXh0ZW5kZWRDb2xvclJlZiA9IEV4dGVuZGVkQ29sb3I6OmNyZWF0
ZShyLCBnLCBiLCBhLCBjb2xvclNwYWNlKTsKKyAgICBhdXRvIGV4dGVuZGVkQ29sb3JSZWYgPSBF
eHRlbmRlZENvbG9yOjpjcmVhdGUoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpOwogICAg
IG1fY29sb3JEYXRhLmV4dGVuZGVkQ29sb3IgPSAmZXh0ZW5kZWRDb2xvclJlZi5sZWFrUmVmKCk7
CiAgICAgQVNTRVJUKGlzRXh0ZW5kZWQoKSk7CiB9CkBAIC01ODIsNiArNTgyLDI3IEBAIHZvaWQg
Q29sb3I6OmdldEhTVihkb3VibGUmIGh1ZSwgZG91YmxlJiBzYXR1cmF0aW9uLCBkb3VibGUmIHZh
bHVlKSBjb25zdAogICAgIHZhbHVlID0gbWF4OwogfQogCitzdGQ6OmFycmF5PGZsb2F0LCA0PiBD
b2xvcjo6bG9zc3lUb1NSR0JBQ29tcG9uZW50cygpIGNvbnN0Cit7CisgICAgaWYgKGlzRXh0ZW5k
ZWQoKSkgeworICAgICAgICBhdXRvJiBleHRlbmRlZENvbG9yID0gYXNFeHRlbmRlZCgpOworICAg
ICAgICBzd2l0Y2ggKGV4dGVuZGVkQ29sb3IuY29sb3JTcGFjZSgpKSB7CisgICAgICAgIGNhc2Ug
Q29sb3JTcGFjZTo6U1JHQjoKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJSR0I6Cisg
ICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgorICAgICAgICAgICAgLy8gRklYTUU6
IFRoaXMgZG9lc24ndCBjb252ZXJ0IGludG8gc1JHQiBhbmQgc2hvdWxkLgorICAgICAgICAgICAg
cmV0dXJuIHsgZXh0ZW5kZWRDb2xvci5yZWQoKSwgZXh0ZW5kZWRDb2xvci5ncmVlbigpLCBleHRl
bmRlZENvbG9yLmJsdWUoKSwgZXh0ZW5kZWRDb2xvci5hbHBoYSgpIH07CisgICAgICAgIGNhc2Ug
Q29sb3JTcGFjZTo6TGFiOiB7CisgICAgICAgICAgICBhdXRvIHJnYkNoYW5uZWxzID0gbGFiVG9T
UkdCKGV4dGVuZGVkQ29sb3IuY2hhbm5lbHMoKSk7CisgICAgICAgICAgICByZXR1cm4geyByZ2JD
aGFubmVscy5jb21wb25lbnRzWzBdLCByZ2JDaGFubmVscy5jb21wb25lbnRzWzFdLCByZ2JDaGFu
bmVscy5jb21wb25lbnRzWzJdLCByZ2JDaGFubmVscy5jb21wb25lbnRzWzNdIH07CisgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKyAgICBmbG9hdCByLCBnLCBiLCBhOworICAgIGdldFJHQkEo
ciwgZywgYiwgYSk7CisgICAgcmV0dXJuIHsgYSwgZywgYiwgYSB9OworfQorCiBDb2xvciBjb2xv
ckZyb21QcmVtdWx0aXBsaWVkQVJHQihSR0JBMzIgcGl4ZWxDb2xvcikKIHsKICAgICBpbnQgYWxw
aGEgPSBhbHBoYUNoYW5uZWwocGl4ZWxDb2xvcik7CkBAIC02MzYsNyArNjU3LDcgQEAgdm9pZCBD
b2xvcjo6dGFnQXNWYWxpZCgpCiAgICAgbV9jb2xvckRhdGEucmdiYUFuZEZsYWdzIHw9IHZhbGlk
UkdCQUNvbG9yOwogfQogCi1FeHRlbmRlZENvbG9yJiBDb2xvcjo6YXNFeHRlbmRlZCgpIGNvbnN0
Citjb25zdCBFeHRlbmRlZENvbG9yJiBDb2xvcjo6YXNFeHRlbmRlZCgpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGlzRXh0ZW5kZWQoKSk7CiAgICAgcmV0dXJuICptX2NvbG9yRGF0YS5leHRlbmRlZENv
bG9yOwpAQCAtNjU5LDYgKzY4MCw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3Bs
YXlQMzoKICAgICAgICAgdHMgPDwgIkRpc3BsYXlQMyI7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICB0cyA8PCAiTCphKmIiOworICAgICAgICBicmVh
azsKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmgKaW5kZXggOGUzNWUwOTllNGFmMzJkNjk3N2VlYmQyYzcwNWNhNzY2YTQzZWY0
NC4uZDk5YzIwZjRmYmFjYmE5ODgzYWYzNjRlYjAyMzBjZjlmNTIyODgyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCkBAIC0xNzMsNyArMTczLDcgQEAgcHVibGlj
OgogICAgIC8vIFRoaXMgY3JlYXRlcyBhbiBFeHRlbmRlZENvbG9yLgogICAgIC8vIEZJWE1FOiBJ
ZiB0aGUgY29sb3JTcGFjZSBpcyBzUkdCIGFuZCB0aGUgdmFsdWVzIGNhbiBhbGwgYmUKICAgICAv
LyBjb252ZXJ0ZWQgZXhhY3RseSB0byBpbnRlZ2Vycywgd2Ugc2hvdWxkIG1ha2UgYSBub3JtYWwg
Q29sb3IuCi0gICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQg
YiwgZmxvYXQgYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBD
b2xvcihmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgQ29sb3JTcGFjZSk7CiAKICAgICBDb2xv
cihSR0JBLCBDb2xvclNwYWNlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvcihjb25zdCBDb2xv
ciYpOwpAQCAtMjMwLDYgKzIzMCw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGdldEhTTChkb3VibGUmIGgsIGRvdWJsZSYgcywgZG91YmxlJiBsKSBjb25zdDsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGdldEhTVihkb3VibGUmIGgsIGRvdWJsZSYgcywgZG91YmxlJiB2KSBj
b25zdDsKIAorICAgIC8vIFRoaXMgd2lsbCBjb252ZXJ0IG5vbi1zUkdCIGNvbG9yc3BhY2UgY29s
b3JzIGludG8gc1JHQi4KKyAgICBzdGQ6OmFycmF5PGZsb2F0LCA0PiBsb3NzeVRvU1JHQkFDb21w
b25lbnRzKCkgY29uc3Q7CisKICAgICBDb2xvciBsaWdodCgpIGNvbnN0OwogICAgIENvbG9yIGRh
cmsoKSBjb25zdDsKIApAQCAtMjg4LDcgKzI5MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IHJldHVybiAhKG1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyAmIGludmFsaWRSR0JBQ29sb3IpOwog
ICAgIH0KLSAgICBXRUJDT1JFX0VYUE9SVCBFeHRlbmRlZENvbG9yJiBhc0V4dGVuZGVkKCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgRXh0ZW5kZWRDb2xvciYgYXNFeHRlbmRlZCgp
IGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3ImIG9wZXJhdG9yPShjb25zdCBDb2xv
ciYpOwogICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yJiBvcGVyYXRvcj0oQ29sb3ImJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKaW5kZXggMGFhMjc0
YTFjNTA5NTM1MjZhODhlZTRhNGVmYTNmOWM4ZDIzN2IzYi4uZDY3MzFiN2Q3MzhiNDIwODJkYzVi
YTRkY2FjMzMwNWRmNzcxZTBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yU3BhY2UuaApAQCAtMzAsNyArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBl
bnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90IHsKICAgICBTUkdCLAogICAgIExpbmVhclJH
QiwKLSAgICBEaXNwbGF5UDMKKyAgICBEaXNwbGF5UDMsCisgICAgTGFiCiB9OwogICAgIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCmluZGV4IDdlOWY5ODkyZGMzYzE0YWNlZWQ4MzgxMGZi
NTNhZWViNzgwOThhMWYuLjAxMDM4MzgxMTU3NzY1ODdkYjVkNmVhYmUwYWRkYWVmOWI2MTc0MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxp
dGllcy5jcHAKQEAgLTkzLDYgKzkzLDg1IEBAIEZsb2F0Q29tcG9uZW50cyBsaW5lYXJUb1NSR0JD
b21wb25lbnRzKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGluZWFyUkdCKQogICAgIH07CiB9CiAK
K3N0YXRpYyBGbG9hdENvbXBvbmVudHMgY2llWFlaVG9MaW5lYXJTUkdCKGNvbnN0IEZsb2F0Q29t
cG9uZW50cyYgY2llWFlaKQoreworICAgIGNvbnN0IGZsb2F0IHZhbHVlc1tdID0geworICAgICAg
ICAgMy4yNDA0NTQyZiwgLTEuNTM3MTM4NWYsIC0wLjQ5ODUzMTRmLCAwLjBmLCAwLjBmLAorICAg
ICAgICAtMC45NjkyNjYwZiwgIDEuODc2MDEwOGYsICAwLjA0MTU1NjBmLCAwLjBmLCAwLjBmLAor
ICAgICAgICAgMC4wNTU2NDM0ZiwgLTAuMjA0MDI1OWYsICAxLjA1NzIyNTJmLCAwLjBmLCAwLjBm
LAorICAgICAgICAgMC4wZiwgICAgICAgIDAuMGYsICAgICAgICAwLjBmLCAgICAgICAxLjBmLCAw
LjBmLAorICAgIH07CisgICAgQ29sb3JNYXRyaXggY2llWFlaVG9MaW5lYXJTUkdCTWF0cml4KHZh
bHVlcyk7CisgICAgCisgICAgRmxvYXRDb21wb25lbnRzIHJlc3VsdCA9IGNpZVhZWjsKKyAgICBj
aWVYWVpUb0xpbmVhclNSR0JNYXRyaXgudHJhbnNmb3JtQ29sb3JDb21wb25lbnRzKHJlc3VsdCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGZsb2F0IGxhYlhZWihmbG9hdCB0KQor
eworICAgIGNvbnN0IGZsb2F0IExBQmUgPSAyMTYuMGYgLyAyNDM4OS4wZjsKKyAgICBjb25zdCBm
bG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKKworICAgIGZsb2F0IHRDdWJlZCA9IHQgKiB0
ICogdDsKKyAgICBpZiAodEN1YmVkID4gTEFCZSkKKyAgICAgICAgcmV0dXJuIHRDdWJlZDsKKyAg
ICAKKyAgICByZXR1cm4gKDExNi4wZiAqIHQgLSAxNi4wZikgLyBMQUJrOworfQorCitzdGF0aWMg
RmxvYXRDb21wb25lbnRzIGxhYlRvQ0lFWFlaKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGFiKQor
eworICAgIGZsb2F0IEwgPSBsYWIuY29tcG9uZW50c1swXTsKKyAgICBmbG9hdCBhID0gbGFiLmNv
bXBvbmVudHNbMV07CisgICAgZmxvYXQgYiA9IGxhYi5jb21wb25lbnRzWzJdOworCisgICAgZmxv
YXQgeSA9IChMICsgMTYuMGYpIC8gMTE2LjBmOworICAgIGZsb2F0IHggPSB5ICsgYSAvIDUwMC4w
ZjsKKyAgICBmbG9hdCB6ID0geSAtIGIgLyAyMDAuMGY7CisgICAgCisgICAgY29uc3QgZmxvYXQg
RDY1V2hpdGVWYWx1ZXNbXSA9IHsKKyAgICAgICAgMC45NTA0N2YsCisgICAgICAgIDEuMGYsCisg
ICAgICAgIDEuMDg4ODNmCisgICAgfTsKKyAgICB4ID0gRDY1V2hpdGVWYWx1ZXNbMF0gKiBsYWJY
WVooeCk7CisgICAgeSA9IEQ2NVdoaXRlVmFsdWVzWzFdICogbGFiWFlaKHkpOworICAgIHogPSBE
NjVXaGl0ZVZhbHVlc1syXSAqIGxhYlhZWih6KTsKKworICAgIHJldHVybiB7IHgsIHksIHosIGxh
Yi5jb21wb25lbnRzWzNdIH07Cit9CisKKy8vIGxhYkNvbXBvbmVudHMgYXJlIGxpZ2h0bmVzcywg
YSwgYiwgYWxwaGEuCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI2xhYi10
by1yZ2IKK0Zsb2F0Q29tcG9uZW50cyBsYWJUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRzJiBs
YWIpCit7CisgICAgRmxvYXRDb21wb25lbnRzIGNpZVhZWiA9IGxhYlRvQ0lFWFlaKGxhYik7Cisg
ICAgYXV0byBsaW5lYXJSR0IgPSBjaWVYWVpUb0xpbmVhclNSR0IoY2llWFlaKTsKKyAgICByZXR1
cm4gbGluZWFyVG9TUkdCQ29tcG9uZW50cyhsaW5lYXJSR0IpOworfQorCisvLyBsY2hDb21wb25l
bnRzIGFyZSBsaWdodG5lc3MsIGNocm9tYSwgaHVlIGFuZ2xlIChpbiBkZWdyZWVzKSwgYWxwaGEu
CitGbG9hdENvbXBvbmVudHMgTENIVG9TUkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGNoQ29t
cG9uZW50cykKK3sKKyAgICBGbG9hdENvbXBvbmVudHMgbGFiQ29tcG9uZW50cyA9IExDSFRvTGFi
KGxjaENvbXBvbmVudHMpOworICAgIHJldHVybiBsYWJUb1NSR0IobGFiQ29tcG9uZW50cyk7Cit9
CisKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGNoLXRvLWxhYgorRmxv
YXRDb21wb25lbnRzIExDSFRvTGFiKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGNoQ29tcG9uZW50
cykKK3sKKyAgICBmbG9hdCBjaHJvbWEgPSBsY2hDb21wb25lbnRzLmNvbXBvbmVudHNbMV07Cisg
ICAgZmxvYXQgaHVlQW5nbGVSYWRpYW5zID0gZGVnMnJhZChsY2hDb21wb25lbnRzLmNvbXBvbmVu
dHNbMl0pOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgbGNoQ29tcG9uZW50cy5jb21wb25lbnRz
WzBdLAorICAgICAgICBjaHJvbWEgKiBjb3MoaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY2hy
b21hICogc2luKGh1ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGxjaENvbXBvbmVudHMuY29tcG9u
ZW50c1szXQorICAgIH07Cit9CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0byBzUkdCVG9MaW5lYXJD
b2xvckNvbXBvbmVudCBidXQgZm9yIHNvbWUgcmVhc29uCiAvLyBodHRwczovL3d3dy53My5vcmcv
VFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZgogLy8gZG9l
c24ndCB1c2UgdGhlIHN0YW5kYXJkIHNSR0IgLT4gbGluZWFyUkdCIHRocmVzaG9sZCBvZiAwLjA0
MDQ1LgpAQCAtMjIwLDcgKzI5OSw3IEBAIENvbG9yTWF0cml4OjpDb2xvck1hdHJpeCgpCiAgICAg
bWFrZUlkZW50aXR5KCk7CiB9CiAKLUNvbG9yTWF0cml4OjpDb2xvck1hdHJpeChmbG9hdCB2YWx1
ZXNbMjBdKQorQ29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KGNvbnN0IGZsb2F0IHZhbHVlc1syMF0p
CiB7CiAgICAgbV9tYXRyaXhbMF1bMF0gPSB2YWx1ZXNbMF07CiAgICAgbV9tYXRyaXhbMF1bMV0g
PSB2YWx1ZXNbMV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JVdGlsaXRpZXMuaAppbmRleCA3OGVmODI3ZTVjOTc0NTYwZjU0NTE2NmZiZWZjZjdmNmI1NmJj
ZGU3Li5hZmU0ZmU2ZmMxNTg0ZTY5MmZmY2EyOTA2MDQ2MDJkZmMyZWFiMGZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKQEAgLTI1
LDEyICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5j
bHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGFycmF5PgogI2luY2x1ZGUgPG1hdGguaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDb2xvcjsKKwogc3RydWN0IEZsb2F0Q29tcG9u
ZW50cyB7CiAgICAgRmxvYXRDb21wb25lbnRzKGZsb2F0IGEgPSAwLCBmbG9hdCBiID0gMCwgZmxv
YXQgYyA9IDAsIGZsb2F0IGQgPSAwKQogICAgIHsKQEAgLTQwLDYgKzQyLDE0IEBAIHN0cnVjdCBG
bG9hdENvbXBvbmVudHMgewogICAgICAgICBjb21wb25lbnRzWzNdID0gZDsKICAgICB9CiAKKyAg
ICBGbG9hdENvbXBvbmVudHMoY29uc3Qgc3RkOjphcnJheTxmbG9hdCwgND4mIHZhbHVlcykKKyAg
ICB7CisgICAgICAgIGNvbXBvbmVudHNbMF0gPSB2YWx1ZXNbMF07CisgICAgICAgIGNvbXBvbmVu
dHNbMV0gPSB2YWx1ZXNbMV07CisgICAgICAgIGNvbXBvbmVudHNbMl0gPSB2YWx1ZXNbMl07Cisg
ICAgICAgIGNvbXBvbmVudHNbM10gPSB2YWx1ZXNbM107CisgICAgfQorCiAgICAgRmxvYXRDb21w
b25lbnRzKGNvbnN0IENvbG9yJik7CiAKICAgICBGbG9hdENvbXBvbmVudHMmIG9wZXJhdG9yKz0o
Y29uc3QgRmxvYXRDb21wb25lbnRzJiByaHMpCkBAIC05MSw3ICsxMDEsNyBAQCBzdHJ1Y3QgRmxv
YXRDb21wb25lbnRzIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBmbG9h
dCBjb21wb25lbnRzWzRdOworICAgIHN0ZDo6YXJyYXk8ZmxvYXQsIDQ+IGNvbXBvbmVudHM7CiB9
OwogCiBzdHJ1Y3QgQ29sb3JDb21wb25lbnRzIHsKQEAgLTE1OCw2ICsxNjgsMTIgQEAgRmxvYXRD
b21wb25lbnRzIHNSR0JDb2xvclRvTGluZWFyQ29tcG9uZW50cyhjb25zdCBDb2xvciYpOwogRmxv
YXRDb21wb25lbnRzIHNSR0JUb0xpbmVhckNvbXBvbmVudHMoY29uc3QgRmxvYXRDb21wb25lbnRz
Jik7CiBGbG9hdENvbXBvbmVudHMgbGluZWFyVG9TUkdCQ29tcG9uZW50cyhjb25zdCBGbG9hdENv
bXBvbmVudHMmKTsKIAorRmxvYXRDb21wb25lbnRzIGxhYlRvU1JHQihjb25zdCBGbG9hdENvbXBv
bmVudHMmKTsKK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRz
Jik7CisKKy8vIFRoZSBodWUgYW5nbGUgY29tcG9uZW50IGlzIGluIGRlZ3JlZXMuCitGbG9hdENv
bXBvbmVudHMgTENIVG9MYWIoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CisKIEZsb2F0Q29tcG9u
ZW50cyBzUkdCVG9IU0woY29uc3QgRmxvYXRDb21wb25lbnRzJik7CiBGbG9hdENvbXBvbmVudHMg
SFNMVG9TUkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogCkBAIC0xNzIsNyArMTg4LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBDb2xvck1hdHJpeCBzZXBpYU1hdHJpeChmbG9hdCk7CiAKICAg
ICBDb2xvck1hdHJpeCgpOwotICAgIENvbG9yTWF0cml4KGZsb2F0WzIwXSk7CisgICAgQ29sb3JN
YXRyaXgoY29uc3QgZmxvYXRbMjBdKTsKICAgICAKICAgICB2b2lkIHRyYW5zZm9ybUNvbG9yQ29t
cG9uZW50cyhGbG9hdENvbXBvbmVudHMmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAppbmRleCBlMDlkMjg3MGY2MWVi
NTUzMzIxZWI3MjNkNDI0MzZhNDk0YjA1NDJkLi43NDYwNjMxZmFlYzBkODYyZjVkZDhlNTVjMzZl
YWEyNTI5MTE0MjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9FeHRlbmRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9FeHRlbmRlZENvbG9yLmNwcApAQCAtMzMsMTUgKzMzLDMxIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVmPEV4dGVuZGVkQ29sb3I+IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShmbG9hdCBy
ZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlKQorUmVmPEV4dGVuZGVkQ29sb3I+IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShmbG9hdCBj
MSwgZmxvYXQgYzIsIGZsb2F0IGMzLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGVkQ29sb3IocmVkLCBncmVlbiwg
Ymx1ZSwgYWxwaGEsIGNvbG9yU3BhY2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRl
bmRlZENvbG9yKGMxLCBjMiwgYzMsIGFscGhhLCBjb2xvclNwYWNlKSk7CiB9CiAKIFN0cmluZyBF
eHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoNDApOworCisgICAgaWYgKG1fY29sb3JT
cGFjZSA9PSBDb2xvclNwYWNlOjpMYWIpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoImxhYigi
LAorICAgICAgICAgICAgRm9ybWF0dGVkTnVtYmVyOjpmaXhlZFByZWNpc2lvbihtX2NoYW5uZWxz
LmNvbXBvbmVudHNbMF0pLAorICAgICAgICAgICAgIiUgIiwKKyAgICAgICAgICAgIEZvcm1hdHRl
ZE51bWJlcjo6Zml4ZWRQcmVjaXNpb24obV9jaGFubmVscy5jb21wb25lbnRzWzFdKSwKKyAgICAg
ICAgICAgICIgIiwKKyAgICAgICAgICAgIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRQcmVjaXNpb24o
bV9jaGFubmVscy5jb21wb25lbnRzWzJdKSk7CisKKyAgICAgICAgaWYgKGFscGhhKCkgPCAxKQor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAvICIsIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRQ
cmVjaXNpb24oYWxwaGEoKSkpOworCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAg
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAogICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiY29sb3IoIik7CiAKICAgICBzd2l0Y2ggKG1fY29sb3JTcGFjZSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oCmlu
ZGV4IDEyNzdmOTQ4ZjEyMTU1OTU4Yzg5MzJjZTljNjE3MzU4MWUzMTRhZjkuLmFmMTJkYzFhZDVl
ZmVlZjY2NjA5YzM4NjY1ZmRiMzQzMDQ2ZGVhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lu
Y2x1ZGUgIkNvbG9yU3BhY2UuaCIKIAorI2luY2x1ZGUgIkNvbG9yVXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNSwzMSArMzYsNDEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBFeHRlbmRlZENvbG9yIDogcHVibGljIFJlZkNvdW50ZWQ8RXh0ZW5kZWRD
b2xvcj4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RXh0ZW5kZWRDb2xvcj4gY3JlYXRlKGZs
b2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhLCBDb2xvclNwYWNl
ID0gQ29sb3JTcGFjZTo6U1JHQik7CisgICAgc3RhdGljIFJlZjxFeHRlbmRlZENvbG9yPiBjcmVh
dGUoZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgPSBDb2xvclNw
YWNlOjpTUkdCKTsKIAotICAgIGZsb2F0IHJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkOyB9Ci0g
ICAgZmxvYXQgZ3JlZW4oKSBjb25zdCB7IHJldHVybiBtX2dyZWVuOyB9Ci0gICAgZmxvYXQgYmx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmx1ZTsgfQotICAgIGZsb2F0IGFscGhhKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbHBoYTsgfQorICAgIGZsb2F0IHJlZCgpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQobV9jb2xvclNwYWNlICE9IENvbG9yU3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBt
X2NoYW5uZWxzLmNvbXBvbmVudHNbMF07CisgICAgfQorCisgICAgZmxvYXQgZ3JlZW4oKSBjb25z
dAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fY29sb3JTcGFjZSAhPSBDb2xvclNwYWNlOjpMYWIp
OworICAgICAgICByZXR1cm4gbV9jaGFubmVscy5jb21wb25lbnRzWzFdOworICAgIH0KKworICAg
IGZsb2F0IGJsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fY29sb3JTcGFjZSAh
PSBDb2xvclNwYWNlOjpMYWIpOworICAgICAgICByZXR1cm4gbV9jaGFubmVscy5jb21wb25lbnRz
WzJdOworICAgIH0KKworICAgIGZsb2F0IGFscGhhKCkgY29uc3QgeyByZXR1cm4gbV9jaGFubmVs
cy5jb21wb25lbnRzWzNdOyB9CisKKyAgICBjb25zdCBGbG9hdENvbXBvbmVudHMmIGNoYW5uZWxz
KCkgY29uc3QgeyByZXR1cm4gbV9jaGFubmVsczsgfQogCiAgICAgQ29sb3JTcGFjZSBjb2xvclNw
YWNlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEV4dGVuZGVkQ29sb3Io
ZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQotICAgICAgICA6IG1fcmVkKHIpCi0gICAgICAgICwgbV9ncmVlbihnKQotICAgICAgICAsIG1f
Ymx1ZShiKQotICAgICAgICAsIG1fYWxwaGEoYSkKKyAgICBFeHRlbmRlZENvbG9yKGZsb2F0IGMx
LCBmbG9hdCBjMiwgZmxvYXQgYzMsIGZsb2F0IGFscGhhLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Up
CisgICAgICAgIDogbV9jaGFubmVscyhjMSwgYzIsIGMzLCBhbHBoYSkKICAgICAgICAgLCBtX2Nv
bG9yU3BhY2UoY29sb3JTcGFjZSkKICAgICB7IH0KIAotICAgIGZsb2F0IG1fcmVkIHsgMCB9Owot
ICAgIGZsb2F0IG1fZ3JlZW4geyAwIH07Ci0gICAgZmxvYXQgbV9ibHVlIHsgMCB9OwotICAgIGZs
b2F0IG1fYWxwaGEgeyAwIH07Ci0KKyAgICBGbG9hdENvbXBvbmVudHMgbV9jaGFubmVsczsKICAg
ICBDb2xvclNwYWNlIG1fY29sb3JTcGFjZSB7IENvbG9yU3BhY2U6OlNSR0IgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKaW5kZXgg
Y2RmZmEzZjYwZTlhZDE4ZjJhNDBhOGU4OTg1MmEzNmEzMzdmNTEwMC4uODFhNWE0MjgwODVlMTdi
MTBjNjBiMWVlNDA1YzY0MGU1NWU3YmZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKQEAgLTEwNSwxNiArMTA1LDIxIEBAIHN0YXRpYyBD
R0NvbG9yUmVmIGxlYWtDR0NvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIHsKICAgICBDR0Zsb2F0
IGNvbXBvbmVudHNbNF07CiAgICAgaWYgKGNvbG9yLmlzRXh0ZW5kZWQoKSkgewotICAgICAgICBF
eHRlbmRlZENvbG9yJiBleHRlbmRlZENvbG9yID0gY29sb3IuYXNFeHRlbmRlZCgpOwotICAgICAg
ICBjb21wb25lbnRzWzBdID0gZXh0ZW5kZWRDb2xvci5yZWQoKTsKLSAgICAgICAgY29tcG9uZW50
c1sxXSA9IGV4dGVuZGVkQ29sb3IuZ3JlZW4oKTsKLSAgICAgICAgY29tcG9uZW50c1syXSA9IGV4
dGVuZGVkQ29sb3IuYmx1ZSgpOwotICAgICAgICBjb21wb25lbnRzWzNdID0gZXh0ZW5kZWRDb2xv
ci5hbHBoYSgpOworICAgICAgICBjb25zdCBhdXRvJiBleHRlbmRlZENvbG9yID0gY29sb3IuYXNF
eHRlbmRlZCgpOworICAgICAgICBhdXRvIGNoYW5uZWxzID0gZXh0ZW5kZWRDb2xvci5jaGFubmVs
cygpOworICAgICAgICBjb21wb25lbnRzWzBdID0gY2hhbm5lbHMuY29tcG9uZW50c1swXTsKKyAg
ICAgICAgY29tcG9uZW50c1sxXSA9IGNoYW5uZWxzLmNvbXBvbmVudHNbMV07CisgICAgICAgIGNv
bXBvbmVudHNbMl0gPSBjaGFubmVscy5jb21wb25lbnRzWzJdOworICAgICAgICBjb21wb25lbnRz
WzNdID0gY2hhbm5lbHMuY29tcG9uZW50c1szXTsKICAgICAgICAgc3dpdGNoIChleHRlbmRlZENv
bG9yLmNvbG9yU3BhY2UoKSkgewogICAgICAgICBjYXNlIENvbG9yU3BhY2U6OlNSR0I6CiAgICAg
ICAgICAgICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFjZVJlZigpLCBjb21wb25l
bnRzKTsKICAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgICAgICBy
ZXR1cm4gQ0dDb2xvckNyZWF0ZShkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCksIGNvbXBvbmVudHMp
OworICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBU
aGlzIHdpbGwgZ2l2ZSBpbmNvcnJlY3QgcmVzdWx0cyBvbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBz
dXBwb3J0IENHQ29sb3JTcGFjZUNyZWF0ZUxhYigpLiBXZSBzaG91bGQKKyAgICAgICAgICAgIC8v
IGNvbnZlcnQgdG8gc1JHQi4KKyAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKGxhYkQ1
MENvbG9yU3BhY2VSZWYoKSwgY29tcG9uZW50cyk7CiAgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6
TGluZWFyUkdCOgogICAgICAgICAgICAgLy8gRklYTUU6IERvIHdlIGV2ZXIgY3JlYXRlIENHQ29s
b3JSZWZzIGluIHRoZXNlIHNwYWNlcz8gSXQgbWF5IG9ubHkgYmUgSW1hZ2VCdWZmZXJzLgogICAg
ICAgICAgICAgcmV0dXJuIENHQ29sb3JDcmVhdGUoc1JHQkNvbG9yU3BhY2VSZWYoKSwgY29tcG9u
ZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggNDk2ZWNhMzI0ZDNlNGRhMjJmY2E1OTk5OGVi
NWVmNWVlNzNkMjA5YS4uOWMzNjNlMzI0MWNlYTU3MjUyYjMwOGNiZTkxMzUwNGNmOWZmYjUwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcApAQCAtMTM5LDYgKzEzOSwyMSBAQCBDR0NvbG9yU3BhY2VSZWYg
ZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpCiAgICAgcmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2U7
CiB9CiAKK0NHQ29sb3JTcGFjZVJlZiBsYWJENTBDb2xvclNwYWNlUmVmKCkKK3sKKyAgICBzdGF0
aWMgQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2U7CisgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgIGNvbnN0IENHRmxvYXQgZDUwV2hpdGVQb2ludFtdID0geyAw
Ljk2NDIyLCAxLjAwMDAwLCAwLjgyNTIxIH07CisgICAgICAgIGxhYkNvbG9yU3BhY2UgPSBDR0Nv
bG9yU3BhY2VDcmVhdGVMYWIoZDUwV2hpdGVQb2ludCwgbnVsbHB0ciwgbnVsbHB0cik7CisjZWxz
ZQorICAgICAgICBsYWJDb2xvclNwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsKKyNlbmRpZgor
ICAgIH0pOworICAgIHJldHVybiBsYWJDb2xvclNwYWNlOworfQorCiBzdGF0aWMgSW50ZXJwb2xh
dGlvblF1YWxpdHkgY29udmVydEludGVycG9sYXRpb25RdWFsaXR5KENHSW50ZXJwb2xhdGlvblF1
YWxpdHkgcXVhbGl0eSkKIHsKICAgICBzd2l0Y2ggKHF1YWxpdHkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCmlu
ZGV4IDVkNTlkMTVkYmVkZjVlMzUyMzliMzdhYjUyZWM0NDlhOTEyYmQ0ZDguLjBjMTc0YmM4MzVh
NjUzYTZkNDY2ZDA2MmFhNDVmMTA4MDNlZjBhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaApAQCAtMzQsNiAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VS
ZWYgc1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBl
eHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKCk7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VS
ZWYgZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpOworV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNl
UmVmIGxhYkQ1MENvbG9yU3BhY2VSZWYoKTsgLy8gTCphKmIgY29sb3JzcGFjZSBXaXRoIEQ1MCB3
aGl0ZSBwb2ludC4KIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xv
clNwYWNlUmVmKCk7CiAKIENHQWZmaW5lVHJhbnNmb3JtIGdldFVzZXJUb0Jhc2VDVE0oQ0dDb250
ZXh0UmVmKTsKQEAgLTQ3LDYgKzQ4LDggQEAgc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYg
Y2FjaGVkQ0dDb2xvclNwYWNlKENvbG9yU3BhY2UgY29sb3JTcGFjZSkKICAgICAgICAgcmV0dXJu
IGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQ
MzoKICAgICAgICAgcmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKKyAgICBjYXNlIENv
bG9yU3BhY2U6OkxhYjoKKyAgICAgICAgcmV0dXJuIGxhYkQ1MENvbG9yU3BhY2VSZWYoKTsKICAg
ICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHNSR0JDb2xvclNwYWNl
UmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKaW5kZXggMzBiYjQ4Y2M4ZjBjNDk1NDQ4YWI2
NWY2ODExNzJjY2M2YmNhNTM1Yy4uMTcwMzJkMjQ0MTkwZDFmZDJiMGQxZDk3MGRkZmUxMDJkM2Fl
ZjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcApAQCAtMjM2LDcgKzIzNiw3IEBAIGJvb2wg
SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9uOjp0cmFuc2Zvcm1Db2xvcihGbG9hdENvbXBv
bmVudHMmIHNSR0JDb2xvckNvCiAgICAgc1JHQkNvbG9yQ29tcG9uZW50cyA9IEhTTFRvU1JHQiho
c2xDb21wb25lbnRzKTsKICAgICAKICAgICAvLyBBcHBseSB0aGUgbWF0cml4LiBTZWUgcmRhcjov
L3Byb2JsZW0vNDExNDY2NTAgZm9yIGhvdyB0aGlzIG1hdHJpeCB3YXMgZGVyaXZlZC4KLSAgICBm
bG9hdCBtYXRyaXhWYWx1ZXNbMjBdID0geworICAgIGNvbnN0IGZsb2F0IG1hdHJpeFZhbHVlc1sy
MF0gPSB7CiAgICAgICAgLTAuNzcwLCAgMC4wNTksIC0wLjA4OSwgMCwgMSwKICAgICAgICAgMC4w
MzAsIC0wLjc0MSwgLTAuMDg5LCAwLCAxLAogICAgICAgICAwLjAzMCwgIDAuMDU5LCAtMC44OTAs
IDAsIDEsCkBAIC0yNTIsNyArMjUyLDcgQEAgYm9vbCBJbnZlcnRMaWdodG5lc3NGaWx0ZXJPcGVy
YXRpb246OmludmVyc2VUcmFuc2Zvcm1Db2xvcihGbG9hdENvbXBvbmVudHMmIHNSR0IKIHsKICAg
ICBGbG9hdENvbXBvbmVudHMgcmdiQ29tcG9uZW50cyA9IHNSR0JDb2xvckNvbXBvbmVudHM7CiAg
ICAgLy8gQXBwbHkgdGhlIG1hdHJpeC4KLSAgICBmbG9hdCBtYXRyaXhWYWx1ZXNbMjBdID0gewor
ICAgIGNvbnN0IGZsb2F0IG1hdHJpeFZhbHVlc1syMF0gPSB7CiAgICAgICAgIC0xLjMwMCwgLTAu
MDk3LCAgMC4xNDcsIDAsIDEuMjUsCiAgICAgICAgIC0wLjA0OSwgLTEuMzQ3LCAgMC4xNDYsIDAs
IDEuMjUsCiAgICAgICAgIC0wLjA0OSwgLTAuMDk3LCAtMS4xMDQsIDAsIDEuMjUsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcAppbmRleCBk
NjY4NGE3MjE3OTU2MjJiNzhmOWEzNWQwOTU0NmQ3ZTcyY2U0MjdjLi5mOTZmOGNmNmIyZTIxOTg4
ZTc4MTY2NDZkY2JlY2MyMmU0MDdlMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xvci5oIgogCisjaW5jbHVkZSAiQ29sb3JVdGlsaXRp
ZXMuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1
LDEyICszNiw4IEBAIENvbG9yOjpDb2xvcihjb25zdCBHZGtSR0JBJiBjKQogCiBDb2xvcjo6b3Bl
cmF0b3IgR2RrUkdCQSgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzRXh0ZW5kZWQoKSkKLSAgICAgICAg
cmV0dXJuIHsgYXNFeHRlbmRlZCgpLnJlZCgpLCBhc0V4dGVuZGVkKCkuZ3JlZW4oKSwgYXNFeHRl
bmRlZCgpLmJsdWUoKSwgYXNFeHRlbmRlZCgpLmFscGhhKCkgfTsKLQotICAgIGRvdWJsZSByZWQs
IGdyZWVuLCBibHVlLCBhbHBoYTsKLSAgICBnZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhh
KTsKLSAgICByZXR1cm4geyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSB9OworICAgIGF1dG8gYXNS
R0JBID0gbG9zc3lUb1NSR0JBQ29tcG9uZW50cygpOworICAgIHJldHVybiB7IHN0YXRpY19jYXN0
PGRvdWJsZT4oYXNSR0JBWzBdKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihhc1JHQkFbMV0pLCBzdGF0
aWNfY2FzdDxkb3VibGU+KGFzUkdCQVsyXSksIHN0YXRpY19jYXN0PGRvdWJsZT4oYXNSR0JBWzNd
KSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vQ29sb3JEaXJlY3QyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vQ29sb3JEaXJlY3QyRC5jcHAKaW5kZXggZGVhZGRkNmY4ZjhmMzA3YjM5YmYxYzExYzRi
ZGI0YTRjM2I0MTBiMC4uM2VlNmM3Y2NmMTJjZWZlMDYxMzBhNTdkNmQxNWZjOTE1NDgxMjk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9yRGly
ZWN0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xv
ckRpcmVjdDJELmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oV0lOKQogCisj
aW5jbHVkZSAiQ29sb3JVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxkMmQxLmg+CiAjaW5jbHVkZSA8
ZDJkMV8xaGVscGVyLmg+CiAKQEAgLTQwLDE2ICs0MSwxOCBAQCBDb2xvcjo6Q29sb3IoRDJEMV9D
T0xPUl9GIGNvbG9yKQogCiBDb2xvcjo6b3BlcmF0b3IgRDJEMV9DT0xPUl9GKCkgY29uc3QKIHsK
KyAgICBpZiAoaXNFeHRlbmRlZCgpKSB7CisgICAgICAgIGF1dG8gYXNSR0JBID0gbG9zc3lUb1NS
R0JBQ29tcG9uZW50cygpOworICAgICAgICByZXR1cm4gRDJEMTo6Q29sb3JGKGFzUkdCQVswXSwg
YXNSR0JBWzFdLCBhc1JHQkFbMl0sIGFzUkdCQVszXSk7CisgICAgfQogICAgIGZsb2F0IGNvbG9y
QWxwaGEgPSBhbHBoYSgpIC8gMjU1LjBmOwotCiAgICAgcmV0dXJuIEQyRDE6OkNvbG9yRihyZ2Io
KSwgY29sb3JBbHBoYSk7CiB9CiAKIENvbG9yOjpvcGVyYXRvciBEMkQxX1ZFQ1RPUl80RigpIGNv
bnN0CiB7Ci0gICAgZmxvYXQgciwgZywgYiwgYTsKLSAgICBnZXRSR0JBKHIsIGcsIGIsIGEpOwot
ICAgIHJldHVybiBEMkQxOjpWZWN0b3I0RihyLCBnLCBiLCBhKTsKKyAgICBhdXRvIGFzUkdCQSA9
IGxvc3N5VG9TUkdCQUNvbXBvbmVudHMoKTsKKyAgICByZXR1cm4gRDJEMTo6VmVjdG9yNEYoYXNS
R0JBWzBdLCBhc1JHQkFbMV0sIGFzUkdCQVsyXSwgYXNSR0JBWzNdKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGIwYjkwMDRlMWRmMWVkZWQzODMxZjI3MzEyZGNjMzY1YmIwNzFmZDIuLjUxZjFjYWNhODMxZjk4
ZDgyMDY1MWRkMzMzMzllNTNmYTk1NmM4YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0w
MS0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBT
dXBwb3J0IGxhYigpLCBsY2goKSBhbmQgZ3JheSgpIGNvbG9ycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQYXJzaW5nIHRlc3RzIGZvciBs
YWIvbGNoL2dyYXkgY29sb3JzLgorICAgICAgICBNb3JlIHJlbmRlcmluZyB0ZXN0cyBuZWVkZWQu
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMjAtMDEtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBkb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1uYW1lc3BhY2UuaHRtbCBXUFQgdGVz
dCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxh
Yi1jb2xvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWIt
Y29sb3JzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTFhYzQzZDNlY2JhYTYwZjAzZWQ5N2Q2
MDgyZTFhNTVhNjFkMzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5IEBACitUZXN0IHRo
ZSBwYXJzaW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK2xhYigpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDAlIDAgMCkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDEpIikgaXMgImxhYigwJSAwIDApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAwLjUp
IikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigyMCUgMCAxMC8wLjUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzUwJSki
KSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiKSBpcyAibGFiKDQwMCUgMCAxMCAvIDAuNSki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMTYwIDE2
MCkiKSBpcyAibGFiKDUwJSAtMTYwIDE2MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiKSBpcyAibGFiKDUwJSAtMjAwIDIwMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIC0xMCUp
IikgaXMgImxhYigwJSAwIDAgLyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMCUgMCAwIC8gMTEwJSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDMwMCUpIikgaXMgImxh
YigwJSAwIDApIgorCitsY2goKQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgwJSAwIDBkZWcpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAxKSIpIGlzICJsYWIoMCUgMCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVn
IC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAwJSAyMzAgMGRlZyAvIDAuNSkiKSBpcyAibGFiKDEwMCUg
MjMwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgyMCUgNTAgMjBkZWcvMC41KSIpIGlzICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVn
LzUwJSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2IDE3LjEwMSAvIDAuNSkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0xMCUpIikgaXMg
ImxhYigxMCUgMTguNzkzOSA2Ljg0MDQgLyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiKSBpcyAibGFiKDEwJSAxOC43
OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDEwJSAyMCAxLjI4cmFkKSIpIGlzICJsYWIoMTAlIDUuNzM0MyAxOS4xNjAzKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRlZykiKSBpcyAi
bGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDc0
MGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwZGVnKSIpIGlzICJsYWIoMTAlIDE4
Ljc5MzkgNi44NDA0KSIKKworZ3JheSgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiZ3JheSgwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIpIGlzICJsYWIoMTAlIDAgMCAvIDAu
MSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMjAgLyAx
MCUpIikgaXMgImxhYigxMjAlIDAgMCAvIDAuMSkiCisKK1Rlc3QgaW52YWxpZCB2YWx1ZXMKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCAwIDApIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDAlIDAlIDApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMTAl
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDQwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAgMCAwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorRkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAw
IDAgLyAwLjUpIikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMCUgMCAwIC8g
MC41KS4KK0ZBSUwgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEw
IDEwKSIpIHNob3VsZCBiZSByZ2JhKDAsIDAsIDAsIDApLiBXYXMgbGFiKDIwJSA5Ljg0ODA4IDEu
NzM2NDgpLgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUg
MTAgMTBkZWcgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJn
cmF5KDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTApIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiZ3JheSgxMCAvIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRmOTY3YWU4ODA5YWVk
MTU4MzMxYTZmMTI4MjZiZTA0NGRhYzZlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzxodG1s
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRo
ZSBwYXJzaW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4iKTsKKworICAgIGZ1bmN0aW9u
IGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRpdik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwg
dmFsdWUpOworICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2
KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChkaXYpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgZGl2LnN0eWxl
LnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBkaXYuc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENv
bXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZh
bHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RJbm5lcihw
cm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkID09
PSBudWxsKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSAiIjsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICci
KScsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnbGFiKCknKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCkiLCAibGFiKDAlIDAgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDEpIiwg
ImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxh
YigwJSAwIDAgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC8wLjUpIiwgImxhYigyMCUgMCAxMCAv
IDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAw
IDEwLzUwJSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiLCAibGFiKDQwMCUgMCAxMCAvIDAu
NSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMTYw
IDE2MCkiLCAibGFiKDUwJSAtMTYwIDE2MCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiLCAibGFiKDUwJSAtMjAwIDIwMCkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIC0xMCUpIiwg
ImxhYigwJSAwIDAgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMCUgMCAwIC8gMTEwJSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDMwMCUpIiwgImxhYigwJSAwIDApIik7
CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ2xjaCgpJyk7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcpIiwgImxhYigwJSAwIDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAxKSIs
ICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goMCUgMCAwZGVnIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41KSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAwJSAyMzAgMGRlZyAvIDAuNSkiLCAibGFi
KDEwMCUgMjMwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgyMCUgNTAgMjBkZWcvMC41KSIsICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIw
ZGVnLzUwJSkiLCAibGFiKDIwJSA0Ni45ODQ2IDE3LjEwMSAvIDAuNSkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0xMCUpIiwgImxh
YigxMCUgMTguNzkzOSA2Ljg0MDQgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiLCAibGFiKDEwJSAxOC43OTM5IDYu
ODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAy
MCAxLjI4cmFkKSIsICJsYWIoMTAlIDUuNzM0MyAxOS4xNjAzKSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRlZykiLCAibGFiKDEwJSAxOC43
OTM5IDYuODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDEwJSAyMCAtMzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDc0MGRlZykiLCAibGFiKDEw
JSAxOC43OTM5IDYuODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDEwJSAyMCAtNzAwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworCisg
ICAgZGVidWcoJycpOworICAgIGRlYnVnKCdncmF5KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAiZ3JheSgwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIsICJsYWIoMTAlIDAgMCAv
IDAuMSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMjAg
LyAxMCUpIiwgImxhYigxMjAlIDAgMCAvIDAuMSkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBk
ZWJ1ZygnVGVzdCBpbnZhbGlkIHZhbHVlcycpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCAwIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDApIiwgInJnYmEoMCwgMCwgMCwg
MCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAx
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAl
IDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDQwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIiwgInJn
YmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDAlIDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyB6
ZXJvIGFuZ2xlLiBDdXJyZW50bHkgZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMCkiLCAicmdiYSgwLCAw
LCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJraXQu
b3JnL2IvMjA1NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgy
MCUgMTAgMTBkZWcgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiLCAicmdiYSgw
LCAwLCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdy
YXkoMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiLCAicmdiYSgwLCAw
LCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEw
IC8gMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworPC9zY3JpcHQ+CisgICAgCis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386754</attachid>
            <date>2020-01-03 21:27:11 -0800</date>
            <delta_ts>2020-01-03 22:53:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20200103212710.patch</filename>
            <type>text/plain</type>
            <size>42244</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkM2Y5NGNmYTQ1Mzlk
OTJjZDQ1MTEwZmIyZDg0MzEyNWE1NDIyMS4uOWFhNjUxN2I5ZjA1YmRmYjhhYzJkNTMxNzkwNzhl
ZDg0NGI0NzczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFi
KCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkg
YW5kIGdyYXkoKSBjb2xvcnMgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGFiLWNvbG9ycy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2Ugd2UgaGF2ZSB0byBwcmVzZXJ2
ZSB0aGVtIGFzIGxhYigpIGNvbG9ycyBmb3IgY29tcHV0ZWQgc3R5bGUsIHRoZXkgYXJlIHN0b3Jl
ZCBhcworICAgICAgICBmbG9hdHMgaW4gRXh0ZW5kZWRDb2xvciwgd2hpY2ggaXMgbWFkZSBtb3Jl
IGdlbmVyaWMgdG8gaGFuZGxlIGFueSA0LWZsb2F0IGNvbG9yIGZvcm1hdC4KKyAgICAgICAgV2Ug
YWRkIGEgQ29sb3JTcGFjZTo6TGFiLCBhbmQgd2hlbiBjcmVhdGluZyBjb2xvcnMgdG8gcGFpbnQs
IHJlbHkgb24gQ29yZUdyYXBoaWNzIHRvIGNyZWF0ZQorICAgICAgICBDR0NvbG9yUmVmcyBpbiB0
aGUgbGFiIGNvbG9yc3BhY2UsIHVzaW5nIEQ1MCB3aGl0ZSB2YWx1ZXMgcGVyIHNwZWMuCisgICAg
ICAgIAorICAgICAgICBsYWIgPC0+IGxjaCA8LT4gc1JHQiBjb252ZXJzaW9uIGZhY2lsaXRpZXMg
YXJlIGFkZGVkIHRvIENvbG9yVXRpbGl0aWVzLiBXZSBkb24ndAorICAgICAgICBldmVyIGNvbnZl
cnQgdG8gc1JHQiB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIGJ1dCBwcm9iYWJseSB3aWxsIGluIGZ1
dHVyZSBmb3IgaW50ZXJwb2xhdGluZworICAgICAgICBpbiBncmFkaWVudHMgYW5kIGFuaW1hdGlv
bnMgd2l0aCBtaXhlZCBjb2xvciB0eXBlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlTGFiUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaWVYWVpUb0xpbmVhclNSR0IpOgorICAgICAgICAoV2ViQ29yZTo6bGFiWFlaKToK
KyAgICAgICAgKFdlYkNvcmU6OmxhYlRvQ0lFWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OmxhYlRv
U1JHQik6CisgICAgICAgIChXZWJDb3JlOjpMQ0hUb1NSR0IpOgorICAgICAgICAoV2ViQ29yZTo6
TENIVG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpibHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
ZGVkQ29sb3I6OmFscGhhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OkV4dGVuZGVk
Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkQ1MENvbG9y
U3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDR0NvbG9yU3BhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9u
OjppbnZlcnNlVHJhbnNmb3JtQ29sb3IgY29uc3QpOgorCiAyMDIwLTAxLTAzICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZyBhdCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVuT3Bl
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhYTE2MDNjZTNjMzNlN2RjYzIxY2UyYjhjNTBh
YWYyMzg3NjVhYTY3Li45ZDVjYjZjNjI0M2Y5MTFiYmZhNjY1ZGQ2ZmY5MGMzYTBkODFjNGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwMTksNiArMTAxOSw3IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JIYXNoLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clNwYWNlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9EYXNoQXJyYXkuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0RlY29kaW5nT3B0aW9ucy5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYWM3MTY1MzZmNTM3NzFmYTZiMmFjYmI1YzM0OGJmMzg0ODY2YmMwZi4uZDdjZTk5NmNj
MTMxOTEwZWFiZWQ4YzQ0NGZmNjgzMjEyZjc2YWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzYxLDYgKzM2MSw3IEBACiAJ
CTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkVBM0U3RTE5MUIzMTY5MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGRUEzRTg0MTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZFQTNFODIxOTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEZFQTNFODgxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RUEzRTg2MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZF
QUY2NkIyM0JGQzM5RTAwNDAzMERBIC8qIENvbG9yVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU2Qzc2QzFGQkZCN0E2MDAyNUMwNTMg
LyogQ29sb3JVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRkVDMTIwQzIyQkYyQ0QyMDA0RTlEMzUgLyogTGF5ZXJBbmNlc3RvckNs
aXBwaW5nU3RhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUMxMjA5MjJCRjJDQzcwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RjNCOTI5MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjNCOTI1MUVFM0I2REUwMEI4NDE0NCAvKiBK
U0RPTVF1YWQuaCAqLzsgfTsKIAkJMEZGM0I5MkIxRUUzQjZERTAwQjg0MTQ0IC8qIEpTRE9NUXVh
ZEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RjNCOTI3MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWRJbml0LmggKi87IH07CkBAIC0yOTMw
Niw2ICsyOTMwNyw3IEBACiAJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJERjU4MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xv
clNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVBRjY2QjIzQkZDMzlFMDA0MDMwREEgLyog
Q29sb3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREQ0NTRFMTIzNkM5NUMwMDlB
Nzk4NSAvKiBDb2x1bW5JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0VERDY3RjFCNDg1REJG
MDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFiZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI2RTk0NEQ5MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3NjRmMGFj
OTg5Zjc1MjFkOTU4ZTY0ZTA0MTJhNTcwNjE4OTEyNDhlLi5iZWViYmVhNzc1MWM3MGRlZWJhMzY3
YTZkMzFkNTBjZDZjMjI2MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgpAQCAtMTI2OSw2ICsxMjY5LDkgQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCisv
LyBncmF5CiAvL2NvbG9yCiAKIC8vIHRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IGY1MDJjNmZj
YWYxNDBmOTY5OWQ3MWU5ZWVhMGYxNDk2MDJlYWJlOGYuLmM0YTg4Yzg5NmJiNjY1ZTM4NGY2NTI4
MWM4OTI3YTFmOWUyMGY0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJDU1NQYWludEltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKKyNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU3R5bGVDb2xvci5oIgpAQCAtMjM3LDYgKzIzOCw3IEBAIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gY29uc3VtZUZvbnRXZWlnaHROdW1iZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiBpbmxpbmUgYm9vbCBzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKGRvdWJsZSB2YWx1
ZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrIHVuaXRsZXNzKQog
ewogICAgIC8vIEZJWE1FOiBQcmVzZW50YXRpb25hbCBIVE1MIGF0dHJpYnV0ZXMgc2hvdWxkbid0
IHVzZSB0aGUgQ1NTIHBhcnNlciBmb3IgbGVuZ3RocworICAgIC8vIEZJWE1FOiBVbml0bGVzcyB6
ZXJvIHNob3VsZCBub3QgYWx3YXlzIGJlIGFsbG93ZWQuIHdlYmtpdC5vcmcvYi8yMDU3MzMuCiAg
ICAgcmV0dXJuIHZhbHVlID09IDAKICAgICAgICAgfHwgaXNVbml0TGVzc1ZhbHVlUGFyc2luZ0Vu
YWJsZWRGb3JNb2RlKGNzc1BhcnNlck1vZGUpCiAgICAgICAgIHx8IChjc3NQYXJzZXJNb2RlID09
IEhUTUxRdWlya3NNb2RlICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93KTsKQEAg
LTY0Myw2ICs2NDUsMTA4IEBAIHN0YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyCiAgICAgcmV0dXJuIENv
bG9yKG1ha2VSR0JBRnJvbUhTTEEoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMF0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xv
ckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSkpOwogfQogCitzdGF0aWMgYm9v
bCBwYXJzZU9wdGlvbmFsQWxwaGEoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGZsb2F0JiBh
bHBoYSkKK3sKKyAgICBhbHBoYSA9IDEuMGY7CisgICAgaWYgKGNvbnN1bWVTbGFzaEluY2x1ZGlu
Z1doaXRlc3BhY2UocmFuZ2UpKSB7CisgICAgICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIgPSBjb25z
dW1lUGVyY2VudChyYW5nZSwgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmIChhbHBoYVBhcmFt
ZXRlcikKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0ZXIt
PmRvdWJsZVZhbHVlKCkgLyAxMDAuMCwgMC4wLCAxLjApOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZU51bWJlcihyYW5nZSwgVmFsdWVSYW5nZUFs
bCk7CisgICAgICAgICAgICBpZiAoIWFscGhhUGFyYW1ldGVyKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJh
bWV0ZXItPmRvdWJsZVZhbHVlKCksIDAuMCwgMS4wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTGFiUGFyYW1ldGVycyhDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9u
SWQoKSA9PSBDU1NWYWx1ZUxhYik7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29u
c3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNl
bnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJl
dHVybiBDb2xvcigpOworICAgIAorICAgIGF1dG8gYVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdz
LCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFWYWx1ZSkKKyAgICAgICAgcmV0dXJuIENvbG9y
KCk7CisgICAgYXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghYlZhbHVlKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIGZsb2F0
IGFscGhhOworICAgIGlmICghcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MsIGFscGhhKSkKKyAgICAg
ICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0
dXJuIENvbG9yKCk7CisKKyAgICByZXR1cm4gQ29sb3IobGlnaHRuZXNzLT5mbG9hdFZhbHVlKCks
IGFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBiVmFsdWUtPmZsb2F0VmFsdWUoKSwgYWxwaGEsIENvbG9y
U3BhY2U6OkxhYik7Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUxDSFBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlv
bklkKCkgPT0gQ1NTVmFsdWVMY2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNv
bnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJj
ZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICBy
ZXR1cm4gQ29sb3IoKTsKKyAgICAKKyAgICBhdXRvIGNocm9tYVZhbHVlID0gY29uc3VtZU51bWJl
cihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWNocm9tYVZhbHVlKQorICAgICAgICBy
ZXR1cm4gQ29sb3IoKTsKKworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+IChkaXNh
bGxvd2luZyB1bml0bGVzcyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3VtZUFuZ2xl
KGFyZ3MsIEhUTUxTdGFuZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgZmxv
YXQgYW5nbGVJbkRlZ3JlZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBodWVWYWx1
ZSA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmICghaHVl
VmFsdWUpCisgICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgYW5nbGVJbkRlZ3Jl
ZXMgPSBodWVWYWx1ZS0+ZG91YmxlVmFsdWUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5nbGVJ
bkRlZ3JlZXMgPSBodWVWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKKworICAgIGFuZ2xlSW5EZWdy
ZWVzID0gZm1vZGYoYW5nbGVJbkRlZ3JlZXMsIDM2MC4wZik7CisgICAgaWYgKGFuZ2xlSW5EZWdy
ZWVzIDwgMC4wKQorICAgICAgICBhbmdsZUluRGVncmVlcyArPSAzNjAuMGY7CisKKyAgICBmbG9h
dCBhbHBoYTsKKyAgICBpZiAoIXBhcnNlT3B0aW9uYWxBbHBoYShhcmdzLCBhbHBoYSkpCisgICAg
ICAgIHJldHVybiBDb2xvcigpOworCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJl
dHVybiBDb2xvcigpOworCisgICAgYXV0byBsYWJDb2xvciA9IExDSFRvTGFiKHsgbGlnaHRuZXNz
LT5mbG9hdFZhbHVlKCksIGNocm9tYVZhbHVlLT5mbG9hdFZhbHVlKCksIGFuZ2xlSW5EZWdyZWVz
LCBhbHBoYSB9KTsKKyAgICByZXR1cm4gQ29sb3IobGFiQ29sb3IuY29tcG9uZW50c1swXSwgbGFi
Q29sb3IuY29tcG9uZW50c1sxXSwgbGFiQ29sb3IuY29tcG9uZW50c1syXSwgbGFiQ29sb3IuY29t
cG9uZW50c1szXSwgQ29sb3JTcGFjZTo6TGFiKTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlR3Jh
eVBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJh
bmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVHcmF5KTsKKyAgICBDU1NQYXJzZXJU
b2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAgLy8gVW5saWtl
IGxhYi9sY2gsIGdyYXkoKSB0YWtlcyBhIG51bWJlciwgYnV0IHNlZSBodHRwczovL2dpdGh1Yi5j
b20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNDY0OAorICAgIGF1dG8gbGlnaHRuZXNzID0gY29u
c3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAg
ICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisgICAgZmxvYXQgYWxwaGE7CisgICAgaWYgKCFw
YXJzZU9wdGlvbmFsQWxwaGEoYXJncywgYWxwaGEpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAg
IHJldHVybiBDb2xvcihsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgMCwgMCwgYWxwaGEsIENvbG9y
U3BhY2U6OkxhYik7Cit9CisKIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0
ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIEFTU0VSVChyYW5nZS5wZWVr
KCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlQ29sb3IpOwpAQCAtNzM2LDYgKzg0MCwxNSBAQCBz
dGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
LCBDU1NQYXJzZXJNb2RlIGNzc1BhcgogICAgIGNhc2UgQ1NTVmFsdWVIc2xhOgogICAgICAgICBj
b2xvciA9IHBhcnNlSFNMUGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJNb2RlKTsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29sb3IgPSBwYXJz
ZUxhYlBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVMY2g6CisgICAgICAgIGNvbG9yID0gcGFyc2VMQ0hQYXJhbWV0ZXJzKGNvbG9yUmFuZ2Up
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlR3JheToKKyAgICAgICAgY29sb3Ig
PSBwYXJzZUdyYXlQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFy
YW1ldGVycyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXggZWEyZDM0ODI2ZTM2ODhkNTNkM2JiNjM5ZWE0
Y2QwZTk2MmQxMDAxMi4uZDJlZTliNDJkMTRhOTYzODMyNjEyOGEwOGZmMGYyMDBmZWMxMjQ0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMjcwLDEy
ICsyNzAsMTIgQEAgQ29sb3I6OkNvbG9yKENvbG9yJiYgb3RoZXIpCiAgICAgKnRoaXMgPSBXVEZN
b3ZlKG90aGVyKTsKIH0KIAotQ29sb3I6OkNvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIs
IGZsb2F0IGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK0NvbG9yOjpDb2xvcihmbG9hdCBjMSwg
ZmxvYXQgYzIsIGZsb2F0IGMzLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQog
ewogICAgIC8vIFplcm8gdGhlIHVuaW9uLCBqdXN0IGluIGNhc2UgYSAzMi1iaXQgc3lzdGVtIG9u
bHkgYXNzaWducyB0aGUKICAgICAvLyB0b3AgMzIgYml0cyB3aGVuIGNvcHlpbmcgdGhlIGV4dGVu
ZGVkQ29sb3IgcG9pbnRlciBiZWxvdy4KICAgICBtX2NvbG9yRGF0YS5yZ2JhQW5kRmxhZ3MgPSAw
OwotICAgIGF1dG8gZXh0ZW5kZWRDb2xvclJlZiA9IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShyLCBn
LCBiLCBhLCBjb2xvclNwYWNlKTsKKyAgICBhdXRvIGV4dGVuZGVkQ29sb3JSZWYgPSBFeHRlbmRl
ZENvbG9yOjpjcmVhdGUoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpOwogICAgIG1fY29s
b3JEYXRhLmV4dGVuZGVkQ29sb3IgPSAmZXh0ZW5kZWRDb2xvclJlZi5sZWFrUmVmKCk7CiAgICAg
QVNTRVJUKGlzRXh0ZW5kZWQoKSk7CiB9CkBAIC01ODIsNiArNTgyLDI3IEBAIHZvaWQgQ29sb3I6
OmdldEhTVihkb3VibGUmIGh1ZSwgZG91YmxlJiBzYXR1cmF0aW9uLCBkb3VibGUmIHZhbHVlKSBj
b25zdAogICAgIHZhbHVlID0gbWF4OwogfQogCitzdGQ6OmFycmF5PGZsb2F0LCA0PiBDb2xvcjo6
bG9zc3lUb1NSR0JBQ29tcG9uZW50cygpIGNvbnN0Cit7CisgICAgaWYgKGlzRXh0ZW5kZWQoKSkg
eworICAgICAgICBhdXRvJiBleHRlbmRlZENvbG9yID0gYXNFeHRlbmRlZCgpOworICAgICAgICBz
d2l0Y2ggKGV4dGVuZGVkQ29sb3IuY29sb3JTcGFjZSgpKSB7CisgICAgICAgIGNhc2UgQ29sb3JT
cGFjZTo6U1JHQjoKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJSR0I6CisgICAgICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
ZG9lc24ndCBjb252ZXJ0IGludG8gc1JHQiBhbmQgc2hvdWxkLgorICAgICAgICAgICAgcmV0dXJu
IHsgZXh0ZW5kZWRDb2xvci5yZWQoKSwgZXh0ZW5kZWRDb2xvci5ncmVlbigpLCBleHRlbmRlZENv
bG9yLmJsdWUoKSwgZXh0ZW5kZWRDb2xvci5hbHBoYSgpIH07CisgICAgICAgIGNhc2UgQ29sb3JT
cGFjZTo6TGFiOiB7CisgICAgICAgICAgICBhdXRvIHJnYkNoYW5uZWxzID0gbGFiVG9TUkdCKGV4
dGVuZGVkQ29sb3IuY2hhbm5lbHMoKSk7CisgICAgICAgICAgICByZXR1cm4geyByZ2JDaGFubmVs
cy5jb21wb25lbnRzWzBdLCByZ2JDaGFubmVscy5jb21wb25lbnRzWzFdLCByZ2JDaGFubmVscy5j
b21wb25lbnRzWzJdLCByZ2JDaGFubmVscy5jb21wb25lbnRzWzNdIH07CisgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKyAgICBmbG9hdCByLCBnLCBiLCBhOworICAgIGdldFJHQkEociwgZywg
YiwgYSk7CisgICAgcmV0dXJuIHsgYSwgZywgYiwgYSB9OworfQorCiBDb2xvciBjb2xvckZyb21Q
cmVtdWx0aXBsaWVkQVJHQihSR0JBMzIgcGl4ZWxDb2xvcikKIHsKICAgICBpbnQgYWxwaGEgPSBh
bHBoYUNoYW5uZWwocGl4ZWxDb2xvcik7CkBAIC02MzYsNyArNjU3LDcgQEAgdm9pZCBDb2xvcjo6
dGFnQXNWYWxpZCgpCiAgICAgbV9jb2xvckRhdGEucmdiYUFuZEZsYWdzIHw9IHZhbGlkUkdCQUNv
bG9yOwogfQogCi1FeHRlbmRlZENvbG9yJiBDb2xvcjo6YXNFeHRlbmRlZCgpIGNvbnN0Citjb25z
dCBFeHRlbmRlZENvbG9yJiBDb2xvcjo6YXNFeHRlbmRlZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzRXh0ZW5kZWQoKSk7CiAgICAgcmV0dXJuICptX2NvbG9yRGF0YS5leHRlbmRlZENvbG9yOwpA
QCAtNjU5LDYgKzY4MCw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSkKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoK
ICAgICAgICAgdHMgPDwgIkRpc3BsYXlQMyI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29s
b3JTcGFjZTo6TGFiOgorICAgICAgICB0cyA8PCAiTCphKmIiOworICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmgKaW5kZXggOGUzNWUwOTllNGFmMzJkNjk3N2VlYmQyYzcwNWNhNzY2YTQzZWY0NC4uZDk5
YzIwZjRmYmFjYmE5ODgzYWYzNjRlYjAyMzBjZjlmNTIyODgyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCkBAIC0xNzMsNyArMTczLDcgQEAgcHVibGljOgogICAg
IC8vIFRoaXMgY3JlYXRlcyBhbiBFeHRlbmRlZENvbG9yLgogICAgIC8vIEZJWE1FOiBJZiB0aGUg
Y29sb3JTcGFjZSBpcyBzUkdCIGFuZCB0aGUgdmFsdWVzIGNhbiBhbGwgYmUKICAgICAvLyBjb252
ZXJ0ZWQgZXhhY3RseSB0byBpbnRlZ2Vycywgd2Ugc2hvdWxkIG1ha2UgYSBub3JtYWwgQ29sb3Iu
Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxv
YXQgYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBDb2xvcihm
bG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgQ29sb3JTcGFjZSk7CiAKICAgICBDb2xvcihSR0JB
LCBDb2xvclNwYWNlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvcihjb25zdCBDb2xvciYpOwpA
QCAtMjMwLDYgKzIzMCw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEhT
TChkb3VibGUmIGgsIGRvdWJsZSYgcywgZG91YmxlJiBsKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGdldEhTVihkb3VibGUmIGgsIGRvdWJsZSYgcywgZG91YmxlJiB2KSBjb25zdDsK
IAorICAgIC8vIFRoaXMgd2lsbCBjb252ZXJ0IG5vbi1zUkdCIGNvbG9yc3BhY2UgY29sb3JzIGlu
dG8gc1JHQi4KKyAgICBzdGQ6OmFycmF5PGZsb2F0LCA0PiBsb3NzeVRvU1JHQkFDb21wb25lbnRz
KCkgY29uc3Q7CisKICAgICBDb2xvciBsaWdodCgpIGNvbnN0OwogICAgIENvbG9yIGRhcmsoKSBj
b25zdDsKIApAQCAtMjg4LDcgKzI5MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biAhKG1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyAmIGludmFsaWRSR0JBQ29sb3IpOwogICAgIH0K
LSAgICBXRUJDT1JFX0VYUE9SVCBFeHRlbmRlZENvbG9yJiBhc0V4dGVuZGVkKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgRXh0ZW5kZWRDb2xvciYgYXNFeHRlbmRlZCgpIGNvbnN0
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3ImIG9wZXJhdG9yPShjb25zdCBDb2xvciYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yJiBvcGVyYXRvcj0oQ29sb3ImJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKaW5kZXggMGFhMjc0YTFjNTA5
NTM1MjZhODhlZTRhNGVmYTNmOWM4ZDIzN2IzYi4uZDY3MzFiN2Q3MzhiNDIwODJkYzViYTRkY2Fj
MzMwNWRmNzcxZTBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yU3BhY2UuaApAQCAtMzAsNyArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNs
YXNzIENvbG9yU3BhY2UgOiB1aW50OF90IHsKICAgICBTUkdCLAogICAgIExpbmVhclJHQiwKLSAg
ICBEaXNwbGF5UDMKKyAgICBEaXNwbGF5UDMsCisgICAgTGFiCiB9OwogICAgIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JVdGlsaXRpZXMuY3BwCmluZGV4IDdlOWY5ODkyZGMzYzE0YWNlZWQ4MzgxMGZiNTNhZWVi
NzgwOThhMWYuLjAxMDM4MzgxMTU3NzY1ODdkYjVkNmVhYmUwYWRkYWVmOWI2MTc0MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5j
cHAKQEAgLTkzLDYgKzkzLDg1IEBAIEZsb2F0Q29tcG9uZW50cyBsaW5lYXJUb1NSR0JDb21wb25l
bnRzKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGluZWFyUkdCKQogICAgIH07CiB9CiAKK3N0YXRp
YyBGbG9hdENvbXBvbmVudHMgY2llWFlaVG9MaW5lYXJTUkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50
cyYgY2llWFlaKQoreworICAgIGNvbnN0IGZsb2F0IHZhbHVlc1tdID0geworICAgICAgICAgMy4y
NDA0NTQyZiwgLTEuNTM3MTM4NWYsIC0wLjQ5ODUzMTRmLCAwLjBmLCAwLjBmLAorICAgICAgICAt
MC45NjkyNjYwZiwgIDEuODc2MDEwOGYsICAwLjA0MTU1NjBmLCAwLjBmLCAwLjBmLAorICAgICAg
ICAgMC4wNTU2NDM0ZiwgLTAuMjA0MDI1OWYsICAxLjA1NzIyNTJmLCAwLjBmLCAwLjBmLAorICAg
ICAgICAgMC4wZiwgICAgICAgIDAuMGYsICAgICAgICAwLjBmLCAgICAgICAxLjBmLCAwLjBmLAor
ICAgIH07CisgICAgQ29sb3JNYXRyaXggY2llWFlaVG9MaW5lYXJTUkdCTWF0cml4KHZhbHVlcyk7
CisgICAgCisgICAgRmxvYXRDb21wb25lbnRzIHJlc3VsdCA9IGNpZVhZWjsKKyAgICBjaWVYWVpU
b0xpbmVhclNSR0JNYXRyaXgudHJhbnNmb3JtQ29sb3JDb21wb25lbnRzKHJlc3VsdCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGZsb2F0IGxhYlhZWihmbG9hdCB0KQoreworICAg
IGNvbnN0IGZsb2F0IExBQmUgPSAyMTYuMGYgLyAyNDM4OS4wZjsKKyAgICBjb25zdCBmbG9hdCBM
QUJrID0gMjQzODkuMGYgLyAyNy4wZjsKKworICAgIGZsb2F0IHRDdWJlZCA9IHQgKiB0ICogdDsK
KyAgICBpZiAodEN1YmVkID4gTEFCZSkKKyAgICAgICAgcmV0dXJuIHRDdWJlZDsKKyAgICAKKyAg
ICByZXR1cm4gKDExNi4wZiAqIHQgLSAxNi4wZikgLyBMQUJrOworfQorCitzdGF0aWMgRmxvYXRD
b21wb25lbnRzIGxhYlRvQ0lFWFlaKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGFiKQoreworICAg
IGZsb2F0IEwgPSBsYWIuY29tcG9uZW50c1swXTsKKyAgICBmbG9hdCBhID0gbGFiLmNvbXBvbmVu
dHNbMV07CisgICAgZmxvYXQgYiA9IGxhYi5jb21wb25lbnRzWzJdOworCisgICAgZmxvYXQgeSA9
IChMICsgMTYuMGYpIC8gMTE2LjBmOworICAgIGZsb2F0IHggPSB5ICsgYSAvIDUwMC4wZjsKKyAg
ICBmbG9hdCB6ID0geSAtIGIgLyAyMDAuMGY7CisgICAgCisgICAgY29uc3QgZmxvYXQgRDY1V2hp
dGVWYWx1ZXNbXSA9IHsKKyAgICAgICAgMC45NTA0N2YsCisgICAgICAgIDEuMGYsCisgICAgICAg
IDEuMDg4ODNmCisgICAgfTsKKyAgICB4ID0gRDY1V2hpdGVWYWx1ZXNbMF0gKiBsYWJYWVooeCk7
CisgICAgeSA9IEQ2NVdoaXRlVmFsdWVzWzFdICogbGFiWFlaKHkpOworICAgIHogPSBENjVXaGl0
ZVZhbHVlc1syXSAqIGxhYlhZWih6KTsKKworICAgIHJldHVybiB7IHgsIHksIHosIGxhYi5jb21w
b25lbnRzWzNdIH07Cit9CisKKy8vIGxhYkNvbXBvbmVudHMgYXJlIGxpZ2h0bmVzcywgYSwgYiwg
YWxwaGEuCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI2xhYi10by1yZ2IK
K0Zsb2F0Q29tcG9uZW50cyBsYWJUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRzJiBsYWIpCit7
CisgICAgRmxvYXRDb21wb25lbnRzIGNpZVhZWiA9IGxhYlRvQ0lFWFlaKGxhYik7CisgICAgYXV0
byBsaW5lYXJSR0IgPSBjaWVYWVpUb0xpbmVhclNSR0IoY2llWFlaKTsKKyAgICByZXR1cm4gbGlu
ZWFyVG9TUkdCQ29tcG9uZW50cyhsaW5lYXJSR0IpOworfQorCisvLyBsY2hDb21wb25lbnRzIGFy
ZSBsaWdodG5lc3MsIGNocm9tYSwgaHVlIGFuZ2xlIChpbiBkZWdyZWVzKSwgYWxwaGEuCitGbG9h
dENvbXBvbmVudHMgTENIVG9TUkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGNoQ29tcG9uZW50
cykKK3sKKyAgICBGbG9hdENvbXBvbmVudHMgbGFiQ29tcG9uZW50cyA9IExDSFRvTGFiKGxjaENv
bXBvbmVudHMpOworICAgIHJldHVybiBsYWJUb1NSR0IobGFiQ29tcG9uZW50cyk7Cit9CisKKy8v
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGNoLXRvLWxhYgorRmxvYXRDb21w
b25lbnRzIExDSFRvTGFiKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGNoQ29tcG9uZW50cykKK3sK
KyAgICBmbG9hdCBjaHJvbWEgPSBsY2hDb21wb25lbnRzLmNvbXBvbmVudHNbMV07CisgICAgZmxv
YXQgaHVlQW5nbGVSYWRpYW5zID0gZGVnMnJhZChsY2hDb21wb25lbnRzLmNvbXBvbmVudHNbMl0p
OworCisgICAgcmV0dXJuIHsKKyAgICAgICAgbGNoQ29tcG9uZW50cy5jb21wb25lbnRzWzBdLAor
ICAgICAgICBjaHJvbWEgKiBjb3MoaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY2hyb21hICog
c2luKGh1ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGxjaENvbXBvbmVudHMuY29tcG9uZW50c1sz
XQorICAgIH07Cit9CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0byBzUkdCVG9MaW5lYXJDb2xvckNv
bXBvbmVudCBidXQgZm9yIHNvbWUgcmVhc29uCiAvLyBodHRwczovL3d3dy53My5vcmcvVFIvMjAw
OC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZgogLy8gZG9lc24ndCB1
c2UgdGhlIHN0YW5kYXJkIHNSR0IgLT4gbGluZWFyUkdCIHRocmVzaG9sZCBvZiAwLjA0MDQ1LgpA
QCAtMjIwLDcgKzI5OSw3IEBAIENvbG9yTWF0cml4OjpDb2xvck1hdHJpeCgpCiAgICAgbWFrZUlk
ZW50aXR5KCk7CiB9CiAKLUNvbG9yTWF0cml4OjpDb2xvck1hdHJpeChmbG9hdCB2YWx1ZXNbMjBd
KQorQ29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KGNvbnN0IGZsb2F0IHZhbHVlc1syMF0pCiB7CiAg
ICAgbV9tYXRyaXhbMF1bMF0gPSB2YWx1ZXNbMF07CiAgICAgbV9tYXRyaXhbMF1bMV0gPSB2YWx1
ZXNbMV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGls
aXRpZXMuaAppbmRleCA3OGVmODI3ZTVjOTc0NTYwZjU0NTE2NmZiZWZjZjdmNmI1NmJjZGU3Li5h
ZmU0ZmU2ZmMxNTg0ZTY5MmZmY2EyOTA2MDQ2MDJkZmMyZWFiMGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKQEAgLTI1LDEyICsy
NSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSA8
YWxnb3JpdGhtPgorI2luY2x1ZGUgPGFycmF5PgogI2luY2x1ZGUgPG1hdGguaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBDb2xvcjsKKwogc3RydWN0IEZsb2F0Q29tcG9uZW50cyB7
CiAgICAgRmxvYXRDb21wb25lbnRzKGZsb2F0IGEgPSAwLCBmbG9hdCBiID0gMCwgZmxvYXQgYyA9
IDAsIGZsb2F0IGQgPSAwKQogICAgIHsKQEAgLTQwLDYgKzQyLDE0IEBAIHN0cnVjdCBGbG9hdENv
bXBvbmVudHMgewogICAgICAgICBjb21wb25lbnRzWzNdID0gZDsKICAgICB9CiAKKyAgICBGbG9h
dENvbXBvbmVudHMoY29uc3Qgc3RkOjphcnJheTxmbG9hdCwgND4mIHZhbHVlcykKKyAgICB7Cisg
ICAgICAgIGNvbXBvbmVudHNbMF0gPSB2YWx1ZXNbMF07CisgICAgICAgIGNvbXBvbmVudHNbMV0g
PSB2YWx1ZXNbMV07CisgICAgICAgIGNvbXBvbmVudHNbMl0gPSB2YWx1ZXNbMl07CisgICAgICAg
IGNvbXBvbmVudHNbM10gPSB2YWx1ZXNbM107CisgICAgfQorCiAgICAgRmxvYXRDb21wb25lbnRz
KGNvbnN0IENvbG9yJik7CiAKICAgICBGbG9hdENvbXBvbmVudHMmIG9wZXJhdG9yKz0oY29uc3Qg
RmxvYXRDb21wb25lbnRzJiByaHMpCkBAIC05MSw3ICsxMDEsNyBAQCBzdHJ1Y3QgRmxvYXRDb21w
b25lbnRzIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBmbG9hdCBjb21w
b25lbnRzWzRdOworICAgIHN0ZDo6YXJyYXk8ZmxvYXQsIDQ+IGNvbXBvbmVudHM7CiB9OwogCiBz
dHJ1Y3QgQ29sb3JDb21wb25lbnRzIHsKQEAgLTE1OCw2ICsxNjgsMTIgQEAgRmxvYXRDb21wb25l
bnRzIHNSR0JDb2xvclRvTGluZWFyQ29tcG9uZW50cyhjb25zdCBDb2xvciYpOwogRmxvYXRDb21w
b25lbnRzIHNSR0JUb0xpbmVhckNvbXBvbmVudHMoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CiBG
bG9hdENvbXBvbmVudHMgbGluZWFyVG9TUkdCQ29tcG9uZW50cyhjb25zdCBGbG9hdENvbXBvbmVu
dHMmKTsKIAorRmxvYXRDb21wb25lbnRzIGxhYlRvU1JHQihjb25zdCBGbG9hdENvbXBvbmVudHMm
KTsKK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CisK
Ky8vIFRoZSBodWUgYW5nbGUgY29tcG9uZW50IGlzIGluIGRlZ3JlZXMuCitGbG9hdENvbXBvbmVu
dHMgTENIVG9MYWIoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CisKIEZsb2F0Q29tcG9uZW50cyBz
UkdCVG9IU0woY29uc3QgRmxvYXRDb21wb25lbnRzJik7CiBGbG9hdENvbXBvbmVudHMgSFNMVG9T
UkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogCkBAIC0xNzIsNyArMTg4LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBDb2xvck1hdHJpeCBzZXBpYU1hdHJpeChmbG9hdCk7CiAKICAgICBDb2xv
ck1hdHJpeCgpOwotICAgIENvbG9yTWF0cml4KGZsb2F0WzIwXSk7CisgICAgQ29sb3JNYXRyaXgo
Y29uc3QgZmxvYXRbMjBdKTsKICAgICAKICAgICB2b2lkIHRyYW5zZm9ybUNvbG9yQ29tcG9uZW50
cyhGbG9hdENvbXBvbmVudHMmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAppbmRleCBlMDlkMjg3MGY2MWViNTUzMzIx
ZWI3MjNkNDI0MzZhNDk0YjA1NDJkLi43NDYwNjMxZmFlYzBkODYyZjVkZDhlNTVjMzZlYWEyNTI5
MTE0MjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bmRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bmRlZENvbG9yLmNwcApAQCAtMzMsMTUgKzMzLDMxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUmVmPEV4dGVuZGVkQ29sb3I+IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShmbG9hdCByZWQsIGZs
b2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQorUmVmPEV4dGVuZGVkQ29sb3I+IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShmbG9hdCBjMSwgZmxv
YXQgYzIsIGZsb2F0IGMzLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGVkQ29sb3IocmVkLCBncmVlbiwgYmx1ZSwg
YWxwaGEsIGNvbG9yU3BhY2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRlZENv
bG9yKGMxLCBjMiwgYzMsIGFscGhhLCBjb2xvclNwYWNlKSk7CiB9CiAKIFN0cmluZyBFeHRlbmRl
ZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoNDApOworCisgICAgaWYgKG1fY29sb3JTcGFjZSA9
PSBDb2xvclNwYWNlOjpMYWIpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoImxhYigiLAorICAg
ICAgICAgICAgRm9ybWF0dGVkTnVtYmVyOjpmaXhlZFByZWNpc2lvbihtX2NoYW5uZWxzLmNvbXBv
bmVudHNbMF0pLAorICAgICAgICAgICAgIiUgIiwKKyAgICAgICAgICAgIEZvcm1hdHRlZE51bWJl
cjo6Zml4ZWRQcmVjaXNpb24obV9jaGFubmVscy5jb21wb25lbnRzWzFdKSwKKyAgICAgICAgICAg
ICIgIiwKKyAgICAgICAgICAgIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRQcmVjaXNpb24obV9jaGFu
bmVscy5jb21wb25lbnRzWzJdKSk7CisKKyAgICAgICAgaWYgKGFscGhhKCkgPCAxKQorICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIiAvICIsIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRQcmVjaXNp
b24oYWxwaGEoKSkpOworCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiY29sb3IoIik7CiAKICAgICBzd2l0Y2ggKG1fY29sb3JTcGFjZSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oCmluZGV4IDEy
NzdmOTQ4ZjEyMTU1OTU4Yzg5MzJjZTljNjE3MzU4MWUzMTRhZjkuLmFmMTJkYzFhZDVlZmVlZjY2
NjA5YzM4NjY1ZmRiMzQzMDQ2ZGVhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUg
IkNvbG9yU3BhY2UuaCIKIAorI2luY2x1ZGUgIkNvbG9yVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CkBAIC0zNSwzMSArMzYsNDEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBFeHRlbmRlZENvbG9yIDogcHVibGljIFJlZkNvdW50ZWQ8RXh0ZW5kZWRDb2xvcj4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RXh0ZW5kZWRDb2xvcj4gY3JlYXRlKGZsb2F0IHJl
ZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhLCBDb2xvclNwYWNlID0gQ29s
b3JTcGFjZTo6U1JHQik7CisgICAgc3RhdGljIFJlZjxFeHRlbmRlZENvbG9yPiBjcmVhdGUoZmxv
YXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpT
UkdCKTsKIAotICAgIGZsb2F0IHJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkOyB9Ci0gICAgZmxv
YXQgZ3JlZW4oKSBjb25zdCB7IHJldHVybiBtX2dyZWVuOyB9Ci0gICAgZmxvYXQgYmx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYmx1ZTsgfQotICAgIGZsb2F0IGFscGhhKCkgY29uc3QgeyByZXR1cm4g
bV9hbHBoYTsgfQorICAgIGZsb2F0IHJlZCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
bV9jb2xvclNwYWNlICE9IENvbG9yU3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBtX2NoYW5u
ZWxzLmNvbXBvbmVudHNbMF07CisgICAgfQorCisgICAgZmxvYXQgZ3JlZW4oKSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKG1fY29sb3JTcGFjZSAhPSBDb2xvclNwYWNlOjpMYWIpOworICAg
ICAgICByZXR1cm4gbV9jaGFubmVscy5jb21wb25lbnRzWzFdOworICAgIH0KKworICAgIGZsb2F0
IGJsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fY29sb3JTcGFjZSAhPSBDb2xv
clNwYWNlOjpMYWIpOworICAgICAgICByZXR1cm4gbV9jaGFubmVscy5jb21wb25lbnRzWzJdOwor
ICAgIH0KKworICAgIGZsb2F0IGFscGhhKCkgY29uc3QgeyByZXR1cm4gbV9jaGFubmVscy5jb21w
b25lbnRzWzNdOyB9CisKKyAgICBjb25zdCBGbG9hdENvbXBvbmVudHMmIGNoYW5uZWxzKCkgY29u
c3QgeyByZXR1cm4gbV9jaGFubmVsczsgfQogCiAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgY3NzVGV4dCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEV4dGVuZGVkQ29sb3IoZmxvYXQg
ciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQotICAg
ICAgICA6IG1fcmVkKHIpCi0gICAgICAgICwgbV9ncmVlbihnKQotICAgICAgICAsIG1fYmx1ZShi
KQotICAgICAgICAsIG1fYWxwaGEoYSkKKyAgICBFeHRlbmRlZENvbG9yKGZsb2F0IGMxLCBmbG9h
dCBjMiwgZmxvYXQgYzMsIGZsb2F0IGFscGhhLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCisgICAg
ICAgIDogbV9jaGFubmVscyhjMSwgYzIsIGMzLCBhbHBoYSkKICAgICAgICAgLCBtX2NvbG9yU3Bh
Y2UoY29sb3JTcGFjZSkKICAgICB7IH0KIAotICAgIGZsb2F0IG1fcmVkIHsgMCB9OwotICAgIGZs
b2F0IG1fZ3JlZW4geyAwIH07Ci0gICAgZmxvYXQgbV9ibHVlIHsgMCB9OwotICAgIGZsb2F0IG1f
YWxwaGEgeyAwIH07Ci0KKyAgICBGbG9hdENvbXBvbmVudHMgbV9jaGFubmVsczsKICAgICBDb2xv
clNwYWNlIG1fY29sb3JTcGFjZSB7IENvbG9yU3BhY2U6OlNSR0IgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKaW5kZXggY2RmZmEz
ZjYwZTlhZDE4ZjJhNDBhOGU4OTg1MmEzNmEzMzdmNTEwMC4uODFhNWE0MjgwODVlMTdiMTBjNjBi
MWVlNDA1YzY0MGU1NWU3YmZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvQ29sb3JDRy5jcHAKQEAgLTEwNSwxNiArMTA1LDIxIEBAIHN0YXRpYyBDR0NvbG9y
UmVmIGxlYWtDR0NvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIHsKICAgICBDR0Zsb2F0IGNvbXBv
bmVudHNbNF07CiAgICAgaWYgKGNvbG9yLmlzRXh0ZW5kZWQoKSkgewotICAgICAgICBFeHRlbmRl
ZENvbG9yJiBleHRlbmRlZENvbG9yID0gY29sb3IuYXNFeHRlbmRlZCgpOwotICAgICAgICBjb21w
b25lbnRzWzBdID0gZXh0ZW5kZWRDb2xvci5yZWQoKTsKLSAgICAgICAgY29tcG9uZW50c1sxXSA9
IGV4dGVuZGVkQ29sb3IuZ3JlZW4oKTsKLSAgICAgICAgY29tcG9uZW50c1syXSA9IGV4dGVuZGVk
Q29sb3IuYmx1ZSgpOwotICAgICAgICBjb21wb25lbnRzWzNdID0gZXh0ZW5kZWRDb2xvci5hbHBo
YSgpOworICAgICAgICBjb25zdCBhdXRvJiBleHRlbmRlZENvbG9yID0gY29sb3IuYXNFeHRlbmRl
ZCgpOworICAgICAgICBhdXRvIGNoYW5uZWxzID0gZXh0ZW5kZWRDb2xvci5jaGFubmVscygpOwor
ICAgICAgICBjb21wb25lbnRzWzBdID0gY2hhbm5lbHMuY29tcG9uZW50c1swXTsKKyAgICAgICAg
Y29tcG9uZW50c1sxXSA9IGNoYW5uZWxzLmNvbXBvbmVudHNbMV07CisgICAgICAgIGNvbXBvbmVu
dHNbMl0gPSBjaGFubmVscy5jb21wb25lbnRzWzJdOworICAgICAgICBjb21wb25lbnRzWzNdID0g
Y2hhbm5lbHMuY29tcG9uZW50c1szXTsKICAgICAgICAgc3dpdGNoIChleHRlbmRlZENvbG9yLmNv
bG9yU3BhY2UoKSkgewogICAgICAgICBjYXNlIENvbG9yU3BhY2U6OlNSR0I6CiAgICAgICAgICAg
ICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFjZVJlZigpLCBjb21wb25lbnRzKTsK
ICAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgICAgICByZXR1cm4g
Q0dDb2xvckNyZWF0ZShkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCksIGNvbXBvbmVudHMpOworICAg
ICAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdp
bGwgZ2l2ZSBpbmNvcnJlY3QgcmVzdWx0cyBvbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0
IENHQ29sb3JTcGFjZUNyZWF0ZUxhYigpLiBXZSBzaG91bGQKKyAgICAgICAgICAgIC8vIGNvbnZl
cnQgdG8gc1JHQi4KKyAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKGxhYkQ1MENvbG9y
U3BhY2VSZWYoKSwgY29tcG9uZW50cyk7CiAgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6TGluZWFy
UkdCOgogICAgICAgICAgICAgLy8gRklYTUU6IERvIHdlIGV2ZXIgY3JlYXRlIENHQ29sb3JSZWZz
IGluIHRoZXNlIHNwYWNlcz8gSXQgbWF5IG9ubHkgYmUgSW1hZ2VCdWZmZXJzLgogICAgICAgICAg
ICAgcmV0dXJuIENHQ29sb3JDcmVhdGUoc1JHQkNvbG9yU3BhY2VSZWYoKSwgY29tcG9uZW50cyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAKaW5kZXggNDk2ZWNhMzI0ZDNlNGRhMjJmY2E1OTk5OGViNWVmNWVl
NzNkMjA5YS4uOWMzNjNlMzI0MWNlYTU3MjUyYjMwOGNiZTkxMzUwNGNmOWZmYjUwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcApAQCAtMTM5LDYgKzEzOSwyMSBAQCBDR0NvbG9yU3BhY2VSZWYgZGlzcGxh
eVAzQ29sb3JTcGFjZVJlZigpCiAgICAgcmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2U7CiB9CiAK
K0NHQ29sb3JTcGFjZVJlZiBsYWJENTBDb2xvclNwYWNlUmVmKCkKK3sKKyAgICBzdGF0aWMgQ0dD
b2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2U7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9u
Y2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgIGNvbnN0IENHRmxvYXQgZDUwV2hpdGVQb2ludFtdID0geyAwLjk2NDIy
LCAxLjAwMDAwLCAwLjgyNTIxIH07CisgICAgICAgIGxhYkNvbG9yU3BhY2UgPSBDR0NvbG9yU3Bh
Y2VDcmVhdGVMYWIoZDUwV2hpdGVQb2ludCwgbnVsbHB0ciwgbnVsbHB0cik7CisjZWxzZQorICAg
ICAgICBsYWJDb2xvclNwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsKKyNlbmRpZgorICAgIH0p
OworICAgIHJldHVybiBsYWJDb2xvclNwYWNlOworfQorCiBzdGF0aWMgSW50ZXJwb2xhdGlvblF1
YWxpdHkgY29udmVydEludGVycG9sYXRpb25RdWFsaXR5KENHSW50ZXJwb2xhdGlvblF1YWxpdHkg
cXVhbGl0eSkKIHsKICAgICBzd2l0Y2ggKHF1YWxpdHkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCmluZGV4IDVk
NTlkMTVkYmVkZjVlMzUyMzliMzdhYjUyZWM0NDlhOTEyYmQ0ZDguLjBjMTc0YmM4MzVhNjUzYTZk
NDY2ZDA2MmFhNDVmMTA4MDNlZjBhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaApAQCAtMzQsNiArMzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgc1JH
QkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBleHRlbmRl
ZFNSR0JDb2xvclNwYWNlUmVmKCk7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgZGlz
cGxheVAzQ29sb3JTcGFjZVJlZigpOworV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxh
YkQ1MENvbG9yU3BhY2VSZWYoKTsgLy8gTCphKmIgY29sb3JzcGFjZSBXaXRoIEQ1MCB3aGl0ZSBw
b2ludC4KIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNwYWNl
UmVmKCk7CiAKIENHQWZmaW5lVHJhbnNmb3JtIGdldFVzZXJUb0Jhc2VDVE0oQ0dDb250ZXh0UmVm
KTsKQEAgLTQ3LDYgKzQ4LDggQEAgc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVk
Q0dDb2xvclNwYWNlKENvbG9yU3BhY2UgY29sb3JTcGFjZSkKICAgICAgICAgcmV0dXJuIGxpbmVh
clJHQkNvbG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAg
ICAgICAgcmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKKyAgICBjYXNlIENvbG9yU3Bh
Y2U6OkxhYjoKKyAgICAgICAgcmV0dXJuIGxhYkQ1MENvbG9yU3BhY2VSZWYoKTsKICAgICB9CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHNSR0JDb2xvclNwYWNlUmVmKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlck9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKaW5kZXggMzBiYjQ4Y2M4ZjBjNDk1NDQ4YWI2NWY2ODEx
NzJjY2M2YmNhNTM1Yy4uMTcwMzJkMjQ0MTkwZDFmZDJiMGQxZDk3MGRkZmUxMDJkM2FlZjQzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcApAQCAtMjM2LDcgKzIzNiw3IEBAIGJvb2wgSW52ZXJ0
TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9uOjp0cmFuc2Zvcm1Db2xvcihGbG9hdENvbXBvbmVudHMm
IHNSR0JDb2xvckNvCiAgICAgc1JHQkNvbG9yQ29tcG9uZW50cyA9IEhTTFRvU1JHQihoc2xDb21w
b25lbnRzKTsKICAgICAKICAgICAvLyBBcHBseSB0aGUgbWF0cml4LiBTZWUgcmRhcjovL3Byb2Js
ZW0vNDExNDY2NTAgZm9yIGhvdyB0aGlzIG1hdHJpeCB3YXMgZGVyaXZlZC4KLSAgICBmbG9hdCBt
YXRyaXhWYWx1ZXNbMjBdID0geworICAgIGNvbnN0IGZsb2F0IG1hdHJpeFZhbHVlc1syMF0gPSB7
CiAgICAgICAgLTAuNzcwLCAgMC4wNTksIC0wLjA4OSwgMCwgMSwKICAgICAgICAgMC4wMzAsIC0w
Ljc0MSwgLTAuMDg5LCAwLCAxLAogICAgICAgICAwLjAzMCwgIDAuMDU5LCAtMC44OTAsIDAsIDEs
CkBAIC0yNTIsNyArMjUyLDcgQEAgYm9vbCBJbnZlcnRMaWdodG5lc3NGaWx0ZXJPcGVyYXRpb246
OmludmVyc2VUcmFuc2Zvcm1Db2xvcihGbG9hdENvbXBvbmVudHMmIHNSR0IKIHsKICAgICBGbG9h
dENvbXBvbmVudHMgcmdiQ29tcG9uZW50cyA9IHNSR0JDb2xvckNvbXBvbmVudHM7CiAgICAgLy8g
QXBwbHkgdGhlIG1hdHJpeC4KLSAgICBmbG9hdCBtYXRyaXhWYWx1ZXNbMjBdID0geworICAgIGNv
bnN0IGZsb2F0IG1hdHJpeFZhbHVlc1syMF0gPSB7CiAgICAgICAgIC0xLjMwMCwgLTAuMDk3LCAg
MC4xNDcsIDAsIDEuMjUsCiAgICAgICAgIC0wLjA0OSwgLTEuMzQ3LCAgMC4xNDYsIDAsIDEuMjUs
CiAgICAgICAgIC0wLjA0OSwgLTAuMDk3LCAtMS4xMDQsIDAsIDEuMjUsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcAppbmRleCBkNjY4NGE3
MjE3OTU2MjJiNzhmOWEzNWQwOTU0NmQ3ZTcyY2U0MjdjLi5mOTZmOGNmNmIyZTIxOTg4ZTc4MTY2
NDZkY2JlY2MyMmU0MDdlMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9Db2xvckd0ay5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJDb2xvci5oIgogCisjaW5jbHVkZSAiQ29sb3JVdGlsaXRpZXMuaCIK
ICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDEyICsz
Niw4IEBAIENvbG9yOjpDb2xvcihjb25zdCBHZGtSR0JBJiBjKQogCiBDb2xvcjo6b3BlcmF0b3Ig
R2RrUkdCQSgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzRXh0ZW5kZWQoKSkKLSAgICAgICAgcmV0dXJu
IHsgYXNFeHRlbmRlZCgpLnJlZCgpLCBhc0V4dGVuZGVkKCkuZ3JlZW4oKSwgYXNFeHRlbmRlZCgp
LmJsdWUoKSwgYXNFeHRlbmRlZCgpLmFscGhhKCkgfTsKLQotICAgIGRvdWJsZSByZWQsIGdyZWVu
LCBibHVlLCBhbHBoYTsKLSAgICBnZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKLSAg
ICByZXR1cm4geyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSB9OworICAgIGF1dG8gYXNSR0JBID0g
bG9zc3lUb1NSR0JBQ29tcG9uZW50cygpOworICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGRvdWJs
ZT4oYXNSR0JBWzBdKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihhc1JHQkFbMV0pLCBzdGF0aWNfY2Fz
dDxkb3VibGU+KGFzUkdCQVsyXSksIHN0YXRpY19jYXN0PGRvdWJsZT4oYXNSR0JBWzNdKSB9Owog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Q29sb3JEaXJlY3QyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Q29sb3JEaXJlY3QyRC5jcHAKaW5kZXggZGVhZGRkNmY4ZjhmMzA3YjM5YmYxYzExYzRiZGI0YTRj
M2I0MTBiMC4uM2VlNmM3Y2NmMTJjZWZlMDYxMzBhNTdkNmQxNWZjOTE1NDgxMjk3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9yRGlyZWN0MkQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVj
dDJELmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oV0lOKQogCisjaW5jbHVk
ZSAiQ29sb3JVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxkMmQxLmg+CiAjaW5jbHVkZSA8ZDJkMV8x
aGVscGVyLmg+CiAKQEAgLTQwLDE2ICs0MSwxOCBAQCBDb2xvcjo6Q29sb3IoRDJEMV9DT0xPUl9G
IGNvbG9yKQogCiBDb2xvcjo6b3BlcmF0b3IgRDJEMV9DT0xPUl9GKCkgY29uc3QKIHsKKyAgICBp
ZiAoaXNFeHRlbmRlZCgpKSB7CisgICAgICAgIGF1dG8gYXNSR0JBID0gbG9zc3lUb1NSR0JBQ29t
cG9uZW50cygpOworICAgICAgICByZXR1cm4gRDJEMTo6Q29sb3JGKGFzUkdCQVswXSwgYXNSR0JB
WzFdLCBhc1JHQkFbMl0sIGFzUkdCQVszXSk7CisgICAgfQogICAgIGZsb2F0IGNvbG9yQWxwaGEg
PSBhbHBoYSgpIC8gMjU1LjBmOwotCiAgICAgcmV0dXJuIEQyRDE6OkNvbG9yRihyZ2IoKSwgY29s
b3JBbHBoYSk7CiB9CiAKIENvbG9yOjpvcGVyYXRvciBEMkQxX1ZFQ1RPUl80RigpIGNvbnN0CiB7
Ci0gICAgZmxvYXQgciwgZywgYiwgYTsKLSAgICBnZXRSR0JBKHIsIGcsIGIsIGEpOwotICAgIHJl
dHVybiBEMkQxOjpWZWN0b3I0RihyLCBnLCBiLCBhKTsKKyAgICBhdXRvIGFzUkdCQSA9IGxvc3N5
VG9TUkdCQUNvbXBvbmVudHMoKTsKKyAgICByZXR1cm4gRDJEMTo6VmVjdG9yNEYoYXNSR0JBWzBd
LCBhc1JHQkFbMV0sIGFzUkdCQVsyXSwgYXNSR0JBWzNdKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIwYjkw
MDRlMWRmMWVkZWQzODMxZjI3MzEyZGNjMzY1YmIwNzFmZDIuLjUxZjFjYWNhODMxZjk4ZDgyMDY1
MWRkMzMzMzllNTNmYTk1NmM4YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMS0wMyAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0
IGxhYigpLCBsY2goKSBhbmQgZ3JheSgpIGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQYXJzaW5nIHRlc3RzIGZvciBsYWIvbGNo
L2dyYXkgY29sb3JzLgorICAgICAgICBNb3JlIHJlbmRlcmluZyB0ZXN0cyBuZWVkZWQuCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIw
MjAtMDEtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBkb20v
bm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1uYW1lc3BhY2UuaHRtbCBXUFQgdGVzdCBpcyBm
YWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xv
cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3Jz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTFhYzQzZDNlY2JhYTYwZjAzZWQ5N2Q2MDgyZTFh
NTVhNjFkMzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2lu
Zy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5IEBACitUZXN0IHRoZSBwYXJz
aW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK2xhYigpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDAlIDAgMCkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDEpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAwLjUpIikgaXMg
ImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigyMCUgMCAxMC8wLjUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzUwJSkiKSBpcyAi
bGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiKSBpcyAibGFiKDQwMCUgMCAxMCAvIDAuNSkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMTYwIDE2MCkiKSBp
cyAibGFiKDUwJSAtMTYwIDE2MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiKSBpcyAibGFiKDUwJSAtMjAwIDIwMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIC0xMCUpIikgaXMg
ImxhYigwJSAwIDAgLyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMCUgMCAwIC8gMTEwJSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDMwMCUpIikgaXMgImxhYigwJSAw
IDApIgorCitsY2goKQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgwJSAwIDBkZWcpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAxKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMC41
KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goMTAwJSAyMzAgMGRlZyAvIDAuNSkiKSBpcyAibGFiKDEwMCUgMjMwIDAg
LyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUg
NTAgMjBkZWcvMC41KSIpIGlzICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzUwJSki
KSBpcyAibGFiKDIwJSA0Ni45ODQ2IDE3LjEwMSAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0xMCUpIikgaXMgImxhYigx
MCUgMTguNzkzOSA2Ljg0MDQgLyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM5IDYu
ODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAy
MCAxLjI4cmFkKSIpIGlzICJsYWIoMTAlIDUuNzM0MyAxOS4xNjAzKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRlZykiKSBpcyAibGFiKDEw
JSAxOC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDEwJSAyMCAtMzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDc0MGRlZyki
KSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzkg
Ni44NDA0KSIKKworZ3JheSgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiZ3JheSgwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIpIGlzICJsYWIoMTAlIDAgMCAvIDAuMSkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMjAgLyAxMCUpIikg
aXMgImxhYigxMjAlIDAgMCAvIDAuMSkiCisKK1Rlc3QgaW52YWxpZCB2YWx1ZXMKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCAwIDApIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAl
IDAlIDApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMTAlKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcpIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQw
JSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDAgMCAwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgorRkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDAgLyAw
LjUpIikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMCUgMCAwIC8gMC41KS4K
K0ZBSUwgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwKSIp
IHNob3VsZCBiZSByZ2JhKDAsIDAsIDAsIDApLiBXYXMgbGFiKDIwJSA5Ljg0ODA4IDEuNzM2NDgp
LgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBk
ZWcgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEw
JSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTApIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3Jh
eSgxMCAvIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cGFyc2luZy1sYWItY29sb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRmOTY3YWU4ODA5YWVkMTU4MzMx
YTZmMTI4MjZiZTA0NGRhYzZlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzxodG1sPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJz
aW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4iKTsKKworICAgIGZ1bmN0aW9uIGNvbXB1
dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGRpdik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUp
OworICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQ
cm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChkaXYpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFBy
b3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXB1dGVk
KHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsg
JyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0
eSwgdmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkID09PSBudWxs
KQorICAgICAgICAgICAgZXhwZWN0ZWQgPSAiIjsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4
cGVjdGVkKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnbGFiKCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDEpIiwgImxhYigw
JSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAw
IDAgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC8wLjUpIiwgImxhYigyMCUgMCAxMCAvIDAuNSki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzUw
JSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiLCAibGFiKDQwMCUgMCAxMCAvIDAuNSkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMTYwIDE2MCki
LCAibGFiKDUwJSAtMTYwIDE2MCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiLCAibGFiKDUwJSAtMjAwIDIwMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIC0xMCUpIiwgImxhYigw
JSAwIDAgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MCUgMCAwIC8gMTEwJSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDMwMCUpIiwgImxhYigwJSAwIDApIik7CisKKyAg
ICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ2xjaCgpJyk7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAxKSIsICJsYWIo
MCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUg
MCAwZGVnIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAwJSAyMzAgMGRlZyAvIDAuNSkiLCAibGFiKDEwMCUg
MjMwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgyMCUgNTAgMjBkZWcvMC41KSIsICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41KSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzUw
JSkiLCAibGFiKDIwJSA0Ni45ODQ2IDE3LjEwMSAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0xMCUpIiwgImxhYigxMCUg
MTguNzkzOSA2Ljg0MDQgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiLCAibGFiKDEwJSAxOC43OTM5IDYuODQwNCki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAxLjI4
cmFkKSIsICJsYWIoMTAlIDUuNzM0MyAxOS4xNjAzKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRlZykiLCAibGFiKDEwJSAxOC43OTM5IDYu
ODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAy
MCAtMzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDc0MGRlZykiLCAibGFiKDEwJSAxOC43
OTM5IDYuODQwNCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDEwJSAyMCAtNzAwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworCisgICAgZGVi
dWcoJycpOworICAgIGRlYnVnKCdncmF5KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAiZ3JheSgwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIsICJsYWIoMTAlIDAgMCAvIDAuMSki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMjAgLyAxMCUp
IiwgImxhYigxMjAlIDAgMCAvIDAuMSkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1Zygn
VGVzdCBpbnZhbGlkIHZhbHVlcycpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoMCAwIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIsICJy
Z2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDQwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAl
IDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyB6ZXJvIGFu
Z2xlLiBDdXJyZW50bHkgZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAw
KSIpOyAvLyBObyB1bml0bGVzcyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJraXQub3JnL2Iv
MjA1NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAg
MTBkZWcgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAw
LCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAl
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImdyYXkoMTAgMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAw
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAg
MTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386758</attachid>
            <date>2020-01-03 22:53:37 -0800</date>
            <delta_ts>2020-01-03 23:04:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20200103225336.patch</filename>
            <type>text/plain</type>
            <size>42318</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkM2Y5NGNmYTQ1Mzlk
OTJjZDQ1MTEwZmIyZDg0MzEyNWE1NDIyMS4uOWFhNjUxN2I5ZjA1YmRmYjhhYzJkNTMxNzkwNzhl
ZDg0NGI0NzczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFi
KCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkg
YW5kIGdyYXkoKSBjb2xvcnMgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGFiLWNvbG9ycy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2Ugd2UgaGF2ZSB0byBwcmVzZXJ2
ZSB0aGVtIGFzIGxhYigpIGNvbG9ycyBmb3IgY29tcHV0ZWQgc3R5bGUsIHRoZXkgYXJlIHN0b3Jl
ZCBhcworICAgICAgICBmbG9hdHMgaW4gRXh0ZW5kZWRDb2xvciwgd2hpY2ggaXMgbWFkZSBtb3Jl
IGdlbmVyaWMgdG8gaGFuZGxlIGFueSA0LWZsb2F0IGNvbG9yIGZvcm1hdC4KKyAgICAgICAgV2Ug
YWRkIGEgQ29sb3JTcGFjZTo6TGFiLCBhbmQgd2hlbiBjcmVhdGluZyBjb2xvcnMgdG8gcGFpbnQs
IHJlbHkgb24gQ29yZUdyYXBoaWNzIHRvIGNyZWF0ZQorICAgICAgICBDR0NvbG9yUmVmcyBpbiB0
aGUgbGFiIGNvbG9yc3BhY2UsIHVzaW5nIEQ1MCB3aGl0ZSB2YWx1ZXMgcGVyIHNwZWMuCisgICAg
ICAgIAorICAgICAgICBsYWIgPC0+IGxjaCA8LT4gc1JHQiBjb252ZXJzaW9uIGZhY2lsaXRpZXMg
YXJlIGFkZGVkIHRvIENvbG9yVXRpbGl0aWVzLiBXZSBkb24ndAorICAgICAgICBldmVyIGNvbnZl
cnQgdG8gc1JHQiB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIGJ1dCBwcm9iYWJseSB3aWxsIGluIGZ1
dHVyZSBmb3IgaW50ZXJwb2xhdGluZworICAgICAgICBpbiBncmFkaWVudHMgYW5kIGFuaW1hdGlv
bnMgd2l0aCBtaXhlZCBjb2xvciB0eXBlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlTGFiUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaWVYWVpUb0xpbmVhclNSR0IpOgorICAgICAgICAoV2ViQ29yZTo6bGFiWFlaKToK
KyAgICAgICAgKFdlYkNvcmU6OmxhYlRvQ0lFWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OmxhYlRv
U1JHQik6CisgICAgICAgIChXZWJDb3JlOjpMQ0hUb1NSR0IpOgorICAgICAgICAoV2ViQ29yZTo6
TENIVG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpibHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
ZGVkQ29sb3I6OmFscGhhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OkV4dGVuZGVk
Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkQ1MENvbG9y
U3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDR0NvbG9yU3BhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9u
OjppbnZlcnNlVHJhbnNmb3JtQ29sb3IgY29uc3QpOgorCiAyMDIwLTAxLTAzICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZyBhdCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVuT3Bl
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhYTE2MDNjZTNjMzNlN2RjYzIxY2UyYjhjNTBh
YWYyMzg3NjVhYTY3Li45ZDVjYjZjNjI0M2Y5MTFiYmZhNjY1ZGQ2ZmY5MGMzYTBkODFjNGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwMTksNiArMTAxOSw3IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JIYXNoLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clNwYWNlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9EYXNoQXJyYXkuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0RlY29kaW5nT3B0aW9ucy5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYWM3MTY1MzZmNTM3NzFmYTZiMmFjYmI1YzM0OGJmMzg0ODY2YmMwZi4uZDdjZTk5NmNj
MTMxOTEwZWFiZWQ4YzQ0NGZmNjgzMjEyZjc2YWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzYxLDYgKzM2MSw3IEBACiAJ
CTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkVBM0U3RTE5MUIzMTY5MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGRUEzRTg0MTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZFQTNFODIxOTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEZFQTNFODgxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RUEzRTg2MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZF
QUY2NkIyM0JGQzM5RTAwNDAzMERBIC8qIENvbG9yVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU2Qzc2QzFGQkZCN0E2MDAyNUMwNTMg
LyogQ29sb3JVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRkVDMTIwQzIyQkYyQ0QyMDA0RTlEMzUgLyogTGF5ZXJBbmNlc3RvckNs
aXBwaW5nU3RhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUMxMjA5MjJCRjJDQzcwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RjNCOTI5MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjNCOTI1MUVFM0I2REUwMEI4NDE0NCAvKiBK
U0RPTVF1YWQuaCAqLzsgfTsKIAkJMEZGM0I5MkIxRUUzQjZERTAwQjg0MTQ0IC8qIEpTRE9NUXVh
ZEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RjNCOTI3MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWRJbml0LmggKi87IH07CkBAIC0yOTMw
Niw2ICsyOTMwNyw3IEBACiAJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJERjU4MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xv
clNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVBRjY2QjIzQkZDMzlFMDA0MDMwREEgLyog
Q29sb3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREQ0NTRFMTIzNkM5NUMwMDlB
Nzk4NSAvKiBDb2x1bW5JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0VERDY3RjFCNDg1REJG
MDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFiZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI2RTk0NEQ5MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3NjRmMGFj
OTg5Zjc1MjFkOTU4ZTY0ZTA0MTJhNTcwNjE4OTEyNDhlLi5iZWViYmVhNzc1MWM3MGRlZWJhMzY3
YTZkMzFkNTBjZDZjMjI2MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgpAQCAtMTI2OSw2ICsxMjY5LDkgQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCisv
LyBncmF5CiAvL2NvbG9yCiAKIC8vIHRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IGY1MDJjNmZj
YWYxNDBmOTY5OWQ3MWU5ZWVhMGYxNDk2MDJlYWJlOGYuLmM0YTg4Yzg5NmJiNjY1ZTM4NGY2NTI4
MWM4OTI3YTFmOWUyMGY0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJDU1NQYWludEltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKKyNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU3R5bGVDb2xvci5oIgpAQCAtMjM3LDYgKzIzOCw3IEBAIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gY29uc3VtZUZvbnRXZWlnaHROdW1iZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiBpbmxpbmUgYm9vbCBzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKGRvdWJsZSB2YWx1
ZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrIHVuaXRsZXNzKQog
ewogICAgIC8vIEZJWE1FOiBQcmVzZW50YXRpb25hbCBIVE1MIGF0dHJpYnV0ZXMgc2hvdWxkbid0
IHVzZSB0aGUgQ1NTIHBhcnNlciBmb3IgbGVuZ3RocworICAgIC8vIEZJWE1FOiBVbml0bGVzcyB6
ZXJvIHNob3VsZCBub3QgYWx3YXlzIGJlIGFsbG93ZWQuIHdlYmtpdC5vcmcvYi8yMDU3MzMuCiAg
ICAgcmV0dXJuIHZhbHVlID09IDAKICAgICAgICAgfHwgaXNVbml0TGVzc1ZhbHVlUGFyc2luZ0Vu
YWJsZWRGb3JNb2RlKGNzc1BhcnNlck1vZGUpCiAgICAgICAgIHx8IChjc3NQYXJzZXJNb2RlID09
IEhUTUxRdWlya3NNb2RlICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93KTsKQEAg
LTY0Myw2ICs2NDUsMTA4IEBAIHN0YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyCiAgICAgcmV0dXJuIENv
bG9yKG1ha2VSR0JBRnJvbUhTTEEoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMF0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xv
ckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSkpOwogfQogCitzdGF0aWMgYm9v
bCBwYXJzZU9wdGlvbmFsQWxwaGEoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGZsb2F0JiBh
bHBoYSkKK3sKKyAgICBhbHBoYSA9IDEuMGY7CisgICAgaWYgKGNvbnN1bWVTbGFzaEluY2x1ZGlu
Z1doaXRlc3BhY2UocmFuZ2UpKSB7CisgICAgICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIgPSBjb25z
dW1lUGVyY2VudChyYW5nZSwgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmIChhbHBoYVBhcmFt
ZXRlcikKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0ZXIt
PmRvdWJsZVZhbHVlKCkgLyAxMDAuMCwgMC4wLCAxLjApOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZU51bWJlcihyYW5nZSwgVmFsdWVSYW5nZUFs
bCk7CisgICAgICAgICAgICBpZiAoIWFscGhhUGFyYW1ldGVyKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJh
bWV0ZXItPmRvdWJsZVZhbHVlKCksIDAuMCwgMS4wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTGFiUGFyYW1ldGVycyhDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9u
SWQoKSA9PSBDU1NWYWx1ZUxhYik7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29u
c3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNl
bnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJl
dHVybiBDb2xvcigpOworICAgIAorICAgIGF1dG8gYVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdz
LCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFWYWx1ZSkKKyAgICAgICAgcmV0dXJuIENvbG9y
KCk7CisgICAgYXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghYlZhbHVlKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIGZsb2F0
IGFscGhhOworICAgIGlmICghcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MsIGFscGhhKSkKKyAgICAg
ICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0
dXJuIENvbG9yKCk7CisKKyAgICByZXR1cm4gQ29sb3IobGlnaHRuZXNzLT5mbG9hdFZhbHVlKCks
IGFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBiVmFsdWUtPmZsb2F0VmFsdWUoKSwgYWxwaGEsIENvbG9y
U3BhY2U6OkxhYik7Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUxDSFBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlv
bklkKCkgPT0gQ1NTVmFsdWVMY2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNv
bnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJj
ZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICBy
ZXR1cm4gQ29sb3IoKTsKKyAgICAKKyAgICBhdXRvIGNocm9tYVZhbHVlID0gY29uc3VtZU51bWJl
cihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWNocm9tYVZhbHVlKQorICAgICAgICBy
ZXR1cm4gQ29sb3IoKTsKKworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+IChkaXNh
bGxvd2luZyB1bml0bGVzcyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3VtZUFuZ2xl
KGFyZ3MsIEhUTUxTdGFuZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgZmxv
YXQgYW5nbGVJbkRlZ3JlZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBodWVWYWx1
ZSA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmICghaHVl
VmFsdWUpCisgICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgYW5nbGVJbkRlZ3Jl
ZXMgPSBodWVWYWx1ZS0+ZG91YmxlVmFsdWUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5nbGVJ
bkRlZ3JlZXMgPSBodWVWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKKworICAgIGFuZ2xlSW5EZWdy
ZWVzID0gZm1vZGYoYW5nbGVJbkRlZ3JlZXMsIDM2MC4wZik7CisgICAgaWYgKGFuZ2xlSW5EZWdy
ZWVzIDwgMC4wKQorICAgICAgICBhbmdsZUluRGVncmVlcyArPSAzNjAuMGY7CisKKyAgICBmbG9h
dCBhbHBoYTsKKyAgICBpZiAoIXBhcnNlT3B0aW9uYWxBbHBoYShhcmdzLCBhbHBoYSkpCisgICAg
ICAgIHJldHVybiBDb2xvcigpOworCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJl
dHVybiBDb2xvcigpOworCisgICAgYXV0byBsYWJDb2xvciA9IExDSFRvTGFiKHsgbGlnaHRuZXNz
LT5mbG9hdFZhbHVlKCksIGNocm9tYVZhbHVlLT5mbG9hdFZhbHVlKCksIGFuZ2xlSW5EZWdyZWVz
LCBhbHBoYSB9KTsKKyAgICByZXR1cm4gQ29sb3IobGFiQ29sb3IuY29tcG9uZW50c1swXSwgbGFi
Q29sb3IuY29tcG9uZW50c1sxXSwgbGFiQ29sb3IuY29tcG9uZW50c1syXSwgbGFiQ29sb3IuY29t
cG9uZW50c1szXSwgQ29sb3JTcGFjZTo6TGFiKTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlR3Jh
eVBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJh
bmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVHcmF5KTsKKyAgICBDU1NQYXJzZXJU
b2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAgLy8gVW5saWtl
IGxhYi9sY2gsIGdyYXkoKSB0YWtlcyBhIG51bWJlciwgYnV0IHNlZSBodHRwczovL2dpdGh1Yi5j
b20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNDY0OAorICAgIGF1dG8gbGlnaHRuZXNzID0gY29u
c3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAg
ICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisgICAgZmxvYXQgYWxwaGE7CisgICAgaWYgKCFw
YXJzZU9wdGlvbmFsQWxwaGEoYXJncywgYWxwaGEpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAg
IHJldHVybiBDb2xvcihsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgMCwgMCwgYWxwaGEsIENvbG9y
U3BhY2U6OkxhYik7Cit9CisKIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0
ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIEFTU0VSVChyYW5nZS5wZWVr
KCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlQ29sb3IpOwpAQCAtNzM2LDYgKzg0MCwxNSBAQCBz
dGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
LCBDU1NQYXJzZXJNb2RlIGNzc1BhcgogICAgIGNhc2UgQ1NTVmFsdWVIc2xhOgogICAgICAgICBj
b2xvciA9IHBhcnNlSFNMUGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJNb2RlKTsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29sb3IgPSBwYXJz
ZUxhYlBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVMY2g6CisgICAgICAgIGNvbG9yID0gcGFyc2VMQ0hQYXJhbWV0ZXJzKGNvbG9yUmFuZ2Up
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlR3JheToKKyAgICAgICAgY29sb3Ig
PSBwYXJzZUdyYXlQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFy
YW1ldGVycyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXggZWEyZDM0ODI2ZTM2ODhkNTNkM2JiNjM5ZWE0
Y2QwZTk2MmQxMDAxMi4uNjlhM2U1YzkyNDlkYmIxY2RmMGJlYmIyMzU5Mzg5ODU4Mjc0ZTMxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMjcwLDEy
ICsyNzAsMTIgQEAgQ29sb3I6OkNvbG9yKENvbG9yJiYgb3RoZXIpCiAgICAgKnRoaXMgPSBXVEZN
b3ZlKG90aGVyKTsKIH0KIAotQ29sb3I6OkNvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIs
IGZsb2F0IGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK0NvbG9yOjpDb2xvcihmbG9hdCBjMSwg
ZmxvYXQgYzIsIGZsb2F0IGMzLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQog
ewogICAgIC8vIFplcm8gdGhlIHVuaW9uLCBqdXN0IGluIGNhc2UgYSAzMi1iaXQgc3lzdGVtIG9u
bHkgYXNzaWducyB0aGUKICAgICAvLyB0b3AgMzIgYml0cyB3aGVuIGNvcHlpbmcgdGhlIGV4dGVu
ZGVkQ29sb3IgcG9pbnRlciBiZWxvdy4KICAgICBtX2NvbG9yRGF0YS5yZ2JhQW5kRmxhZ3MgPSAw
OwotICAgIGF1dG8gZXh0ZW5kZWRDb2xvclJlZiA9IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShyLCBn
LCBiLCBhLCBjb2xvclNwYWNlKTsKKyAgICBhdXRvIGV4dGVuZGVkQ29sb3JSZWYgPSBFeHRlbmRl
ZENvbG9yOjpjcmVhdGUoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpOwogICAgIG1fY29s
b3JEYXRhLmV4dGVuZGVkQ29sb3IgPSAmZXh0ZW5kZWRDb2xvclJlZi5sZWFrUmVmKCk7CiAgICAg
QVNTRVJUKGlzRXh0ZW5kZWQoKSk7CiB9CkBAIC01ODIsNiArNTgyLDI3IEBAIHZvaWQgQ29sb3I6
OmdldEhTVihkb3VibGUmIGh1ZSwgZG91YmxlJiBzYXR1cmF0aW9uLCBkb3VibGUmIHZhbHVlKSBj
b25zdAogICAgIHZhbHVlID0gbWF4OwogfQogCitzdGQ6OmFycmF5PGZsb2F0LCA0PiBDb2xvcjo6
bG9zc3lUb1NSR0JBQ29tcG9uZW50cygpIGNvbnN0Cit7CisgICAgaWYgKGlzRXh0ZW5kZWQoKSkg
eworICAgICAgICBhdXRvJiBleHRlbmRlZENvbG9yID0gYXNFeHRlbmRlZCgpOworICAgICAgICBz
d2l0Y2ggKGV4dGVuZGVkQ29sb3IuY29sb3JTcGFjZSgpKSB7CisgICAgICAgIGNhc2UgQ29sb3JT
cGFjZTo6U1JHQjoKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJSR0I6CisgICAgICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
ZG9lc24ndCBjb252ZXJ0IGludG8gc1JHQiBhbmQgc2hvdWxkLgorICAgICAgICAgICAgcmV0dXJu
IHt7IGV4dGVuZGVkQ29sb3IucmVkKCksIGV4dGVuZGVkQ29sb3IuZ3JlZW4oKSwgZXh0ZW5kZWRD
b2xvci5ibHVlKCksIGV4dGVuZGVkQ29sb3IuYWxwaGEoKSB9fTsgLy8gRG91YmxlIGJyYWNlcyBy
ZXF1aXJlZCB0byBhdm9pZCB3YXJuaW5nIHdpdGggb2xkZXIgY2xhbmcgdmVyc2lvbnMuCisgICAg
ICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOiB7CisgICAgICAgICAgICBhdXRvIHJnYkNoYW5uZWxz
ID0gbGFiVG9TUkdCKGV4dGVuZGVkQ29sb3IuY2hhbm5lbHMoKSk7CisgICAgICAgICAgICByZXR1
cm4ge3sgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1swXSwgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1sx
XSwgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1syXSwgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1szXSB9
fTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGZsb2F0IHIsIGcsIGIsIGE7Cisg
ICAgZ2V0UkdCQShyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4geyBhLCBnLCBiLCBhIH07Cit9CisK
IENvbG9yIGNvbG9yRnJvbVByZW11bHRpcGxpZWRBUkdCKFJHQkEzMiBwaXhlbENvbG9yKQogewog
ICAgIGludCBhbHBoYSA9IGFscGhhQ2hhbm5lbChwaXhlbENvbG9yKTsKQEAgLTYzNiw3ICs2NTcs
NyBAQCB2b2lkIENvbG9yOjp0YWdBc1ZhbGlkKCkKICAgICBtX2NvbG9yRGF0YS5yZ2JhQW5kRmxh
Z3MgfD0gdmFsaWRSR0JBQ29sb3I7CiB9CiAKLUV4dGVuZGVkQ29sb3ImIENvbG9yOjphc0V4dGVu
ZGVkKCkgY29uc3QKK2NvbnN0IEV4dGVuZGVkQ29sb3ImIENvbG9yOjphc0V4dGVuZGVkKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNFeHRlbmRlZCgpKTsKICAgICByZXR1cm4gKm1fY29sb3JEYXRh
LmV4dGVuZGVkQ29sb3I7CkBAIC02NTksNiArNjgwLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogICAgIGNhc2UgQ29sb3JT
cGFjZTo6RGlzcGxheVAzOgogICAgICAgICB0cyA8PCAiRGlzcGxheVAzIjsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHRzIDw8ICJMKmEqYiI7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAppbmRleCA4ZTM1ZTA5OWU0YWYzMmQ2OTc3ZWViZDJjNzA1
Y2E3NjZhNDNlZjQ0Li5kOTljMjBmNGZiYWNiYTk4ODNhZjM2NGViMDIzMGNmOWY1MjI4ODI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKQEAgLTE3Myw3ICsxNzMs
NyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBjcmVhdGVzIGFuIEV4dGVuZGVkQ29sb3IuCiAgICAg
Ly8gRklYTUU6IElmIHRoZSBjb2xvclNwYWNlIGlzIHNSR0IgYW5kIHRoZSB2YWx1ZXMgY2FuIGFs
bCBiZQogICAgIC8vIGNvbnZlcnRlZCBleGFjdGx5IHRvIGludGVnZXJzLCB3ZSBzaG91bGQgbWFr
ZSBhIG5vcm1hbCBDb2xvci4KLSAgICBXRUJDT1JFX0VYUE9SVCBDb2xvcihmbG9hdCByLCBmbG9h
dCBnLCBmbG9hdCBiLCBmbG9hdCBhLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpOworICAgIFdFQkNP
UkVfRVhQT1JUIENvbG9yKGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBDb2xvclNwYWNlKTsK
IAogICAgIENvbG9yKFJHQkEsIENvbG9yU3BhY2UpOwogICAgIFdFQkNPUkVfRVhQT1JUIENvbG9y
KGNvbnN0IENvbG9yJik7CkBAIC0yMzAsNiArMjMwLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZ2V0SFNMKGRvdWJsZSYgaCwgZG91YmxlJiBzLCBkb3VibGUmIGwpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SFNWKGRvdWJsZSYgaCwgZG91YmxlJiBzLCBk
b3VibGUmIHYpIGNvbnN0OwogCisgICAgLy8gVGhpcyB3aWxsIGNvbnZlcnQgbm9uLXNSR0IgY29s
b3JzcGFjZSBjb2xvcnMgaW50byBzUkdCLgorICAgIHN0ZDo6YXJyYXk8ZmxvYXQsIDQ+IGxvc3N5
VG9TUkdCQUNvbXBvbmVudHMoKSBjb25zdDsKKwogICAgIENvbG9yIGxpZ2h0KCkgY29uc3Q7CiAg
ICAgQ29sb3IgZGFyaygpIGNvbnN0OwogCkBAIC0yODgsNyArMjkxLDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuICEobV9jb2xvckRhdGEucmdiYUFuZEZsYWdzICYgaW52YWxpZFJH
QkFDb2xvcik7CiAgICAgfQotICAgIFdFQkNPUkVfRVhQT1JUIEV4dGVuZGVkQ29sb3ImIGFzRXh0
ZW5kZWQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBFeHRlbmRlZENvbG9yJiBh
c0V4dGVuZGVkKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciYgb3BlcmF0b3I9
KGNvbnN0IENvbG9yJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3ImIG9wZXJhdG9yPShDb2xv
ciYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
U3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaApp
bmRleCAwYWEyNzRhMWM1MDk1MzUyNmE4OGVlNGE0ZWZhM2Y5YzhkMjM3YjNiLi5kNjczMWI3ZDcz
OGI0MjA4MmRjNWJhNGRjYWMzMzA1ZGY3NzFlMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCkBAIC0zMCw3ICszMCw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIFNSR0IsCiAg
ICAgTGluZWFyUkdCLAotICAgIERpc3BsYXlQMworICAgIERpc3BsYXlQMywKKyAgICBMYWIKIH07
CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAKaW5kZXggN2U5Zjk4OTJkYzNjMTRh
Y2VlZDgzODEwZmI1M2FlZWI3ODA5OGExZi4uMDEwMzgzODExNTc3NjU4N2RiNWQ2ZWFiZTBhZGRh
ZWY5YjYxNzQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yVXRpbGl0aWVzLmNwcApAQCAtOTMsNiArOTMsODUgQEAgRmxvYXRDb21wb25lbnRzIGxp
bmVhclRvU1JHQkNvbXBvbmVudHMoY29uc3QgRmxvYXRDb21wb25lbnRzJiBsaW5lYXJSR0IpCiAg
ICAgfTsKIH0KIAorc3RhdGljIEZsb2F0Q29tcG9uZW50cyBjaWVYWVpUb0xpbmVhclNSR0IoY29u
c3QgRmxvYXRDb21wb25lbnRzJiBjaWVYWVopCit7CisgICAgY29uc3QgZmxvYXQgdmFsdWVzW10g
PSB7CisgICAgICAgICAzLjI0MDQ1NDJmLCAtMS41MzcxMzg1ZiwgLTAuNDk4NTMxNGYsIDAuMGYs
IDAuMGYsCisgICAgICAgIC0wLjk2OTI2NjBmLCAgMS44NzYwMTA4ZiwgIDAuMDQxNTU2MGYsIDAu
MGYsIDAuMGYsCisgICAgICAgICAwLjA1NTY0MzRmLCAtMC4yMDQwMjU5ZiwgIDEuMDU3MjI1MmYs
IDAuMGYsIDAuMGYsCisgICAgICAgICAwLjBmLCAgICAgICAgMC4wZiwgICAgICAgIDAuMGYsICAg
ICAgIDEuMGYsIDAuMGYsCisgICAgfTsKKyAgICBDb2xvck1hdHJpeCBjaWVYWVpUb0xpbmVhclNS
R0JNYXRyaXgodmFsdWVzKTsKKyAgICAKKyAgICBGbG9hdENvbXBvbmVudHMgcmVzdWx0ID0gY2ll
WFlaOworICAgIGNpZVhZWlRvTGluZWFyU1JHQk1hdHJpeC50cmFuc2Zvcm1Db2xvckNvbXBvbmVu
dHMocmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgZmxvYXQgbGFiWFla
KGZsb2F0IHQpCit7CisgICAgY29uc3QgZmxvYXQgTEFCZSA9IDIxNi4wZiAvIDI0Mzg5LjBmOwor
ICAgIGNvbnN0IGZsb2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOworCisgICAgZmxvYXQgdEN1
YmVkID0gdCAqIHQgKiB0OworICAgIGlmICh0Q3ViZWQgPiBMQUJlKQorICAgICAgICByZXR1cm4g
dEN1YmVkOworICAgIAorICAgIHJldHVybiAoMTE2LjBmICogdCAtIDE2LjBmKSAvIExBQms7Cit9
CisKK3N0YXRpYyBGbG9hdENvbXBvbmVudHMgbGFiVG9DSUVYWVooY29uc3QgRmxvYXRDb21wb25l
bnRzJiBsYWIpCit7CisgICAgZmxvYXQgTCA9IGxhYi5jb21wb25lbnRzWzBdOworICAgIGZsb2F0
IGEgPSBsYWIuY29tcG9uZW50c1sxXTsKKyAgICBmbG9hdCBiID0gbGFiLmNvbXBvbmVudHNbMl07
CisKKyAgICBmbG9hdCB5ID0gKEwgKyAxNi4wZikgLyAxMTYuMGY7CisgICAgZmxvYXQgeCA9IHkg
KyBhIC8gNTAwLjBmOworICAgIGZsb2F0IHogPSB5IC0gYiAvIDIwMC4wZjsKKyAgICAKKyAgICBj
b25zdCBmbG9hdCBENjVXaGl0ZVZhbHVlc1tdID0geworICAgICAgICAwLjk1MDQ3ZiwKKyAgICAg
ICAgMS4wZiwKKyAgICAgICAgMS4wODg4M2YKKyAgICB9OworICAgIHggPSBENjVXaGl0ZVZhbHVl
c1swXSAqIGxhYlhZWih4KTsKKyAgICB5ID0gRDY1V2hpdGVWYWx1ZXNbMV0gKiBsYWJYWVooeSk7
CisgICAgeiA9IEQ2NVdoaXRlVmFsdWVzWzJdICogbGFiWFlaKHopOworCisgICAgcmV0dXJuIHsg
eCwgeSwgeiwgbGFiLmNvbXBvbmVudHNbM10gfTsKK30KKworLy8gbGFiQ29tcG9uZW50cyBhcmUg
bGlnaHRuZXNzLCBhLCBiLCBhbHBoYS4KKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29s
b3ItNC8jbGFiLXRvLXJnYgorRmxvYXRDb21wb25lbnRzIGxhYlRvU1JHQihjb25zdCBGbG9hdENv
bXBvbmVudHMmIGxhYikKK3sKKyAgICBGbG9hdENvbXBvbmVudHMgY2llWFlaID0gbGFiVG9DSUVY
WVoobGFiKTsKKyAgICBhdXRvIGxpbmVhclJHQiA9IGNpZVhZWlRvTGluZWFyU1JHQihjaWVYWVop
OworICAgIHJldHVybiBsaW5lYXJUb1NSR0JDb21wb25lbnRzKGxpbmVhclJHQik7Cit9CisKKy8v
IGxjaENvbXBvbmVudHMgYXJlIGxpZ2h0bmVzcywgY2hyb21hLCBodWUgYW5nbGUgKGluIGRlZ3Jl
ZXMpLCBhbHBoYS4KK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb1NSR0IoY29uc3QgRmxvYXRDb21wb25l
bnRzJiBsY2hDb21wb25lbnRzKQoreworICAgIEZsb2F0Q29tcG9uZW50cyBsYWJDb21wb25lbnRz
ID0gTENIVG9MYWIobGNoQ29tcG9uZW50cyk7CisgICAgcmV0dXJuIGxhYlRvU1JHQihsYWJDb21w
b25lbnRzKTsKK30KKworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsY2gt
dG8tbGFiCitGbG9hdENvbXBvbmVudHMgTENIVG9MYWIoY29uc3QgRmxvYXRDb21wb25lbnRzJiBs
Y2hDb21wb25lbnRzKQoreworICAgIGZsb2F0IGNocm9tYSA9IGxjaENvbXBvbmVudHMuY29tcG9u
ZW50c1sxXTsKKyAgICBmbG9hdCBodWVBbmdsZVJhZGlhbnMgPSBkZWcycmFkKGxjaENvbXBvbmVu
dHMuY29tcG9uZW50c1syXSk7CisKKyAgICByZXR1cm4geworICAgICAgICBsY2hDb21wb25lbnRz
LmNvbXBvbmVudHNbMF0sCisgICAgICAgIGNocm9tYSAqIGNvcyhodWVBbmdsZVJhZGlhbnMpLAor
ICAgICAgICBjaHJvbWEgKiBzaW4oaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgbGNoQ29tcG9u
ZW50cy5jb21wb25lbnRzWzNdCisgICAgfTsKK30KKwogLy8gVGhpcyBpcyBzaW1pbGFyIHRvIHNS
R0JUb0xpbmVhckNvbG9yQ29tcG9uZW50IGJ1dCBmb3Igc29tZSByZWFzb24KIC8vIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNl
ZGVmCiAvLyBkb2Vzbid0IHVzZSB0aGUgc3RhbmRhcmQgc1JHQiAtPiBsaW5lYXJSR0IgdGhyZXNo
b2xkIG9mIDAuMDQwNDUuCkBAIC0yMjAsNyArMjk5LDcgQEAgQ29sb3JNYXRyaXg6OkNvbG9yTWF0
cml4KCkKICAgICBtYWtlSWRlbnRpdHkoKTsKIH0KIAotQ29sb3JNYXRyaXg6OkNvbG9yTWF0cml4
KGZsb2F0IHZhbHVlc1syMF0pCitDb2xvck1hdHJpeDo6Q29sb3JNYXRyaXgoY29uc3QgZmxvYXQg
dmFsdWVzWzIwXSkKIHsKICAgICBtX21hdHJpeFswXVswXSA9IHZhbHVlc1swXTsKICAgICBtX21h
dHJpeFswXVsxXSA9IHZhbHVlc1sxXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclV0aWxpdGllcy5oCmluZGV4IDc4ZWY4MjdlNWM5NzQ1NjBmNTQ1MTY2ZmJl
ZmNmN2Y2YjU2YmNkZTcuLmFmZTRmZTZmYzE1ODRlNjkyZmZjYTI5MDYwNDYwMmRmYzJlYWIwZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRp
ZXMuaApAQCAtMjUsMTIgKzI1LDE0IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ29s
b3IuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8YXJyYXk+CiAjaW5jbHVkZSA8
bWF0aC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENvbG9yOworCiBzdHJ1Y3Qg
RmxvYXRDb21wb25lbnRzIHsKICAgICBGbG9hdENvbXBvbmVudHMoZmxvYXQgYSA9IDAsIGZsb2F0
IGIgPSAwLCBmbG9hdCBjID0gMCwgZmxvYXQgZCA9IDApCiAgICAgewpAQCAtNDAsNiArNDIsMTQg
QEAgc3RydWN0IEZsb2F0Q29tcG9uZW50cyB7CiAgICAgICAgIGNvbXBvbmVudHNbM10gPSBkOwog
ICAgIH0KIAorICAgIEZsb2F0Q29tcG9uZW50cyhjb25zdCBzdGQ6OmFycmF5PGZsb2F0LCA0PiYg
dmFsdWVzKQorICAgIHsKKyAgICAgICAgY29tcG9uZW50c1swXSA9IHZhbHVlc1swXTsKKyAgICAg
ICAgY29tcG9uZW50c1sxXSA9IHZhbHVlc1sxXTsKKyAgICAgICAgY29tcG9uZW50c1syXSA9IHZh
bHVlc1syXTsKKyAgICAgICAgY29tcG9uZW50c1szXSA9IHZhbHVlc1szXTsKKyAgICB9CisKICAg
ICBGbG9hdENvbXBvbmVudHMoY29uc3QgQ29sb3ImKTsKIAogICAgIEZsb2F0Q29tcG9uZW50cyYg
b3BlcmF0b3IrPShjb25zdCBGbG9hdENvbXBvbmVudHMmIHJocykKQEAgLTkxLDcgKzEwMSw3IEBA
IHN0cnVjdCBGbG9hdENvbXBvbmVudHMgewogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
IAotICAgIGZsb2F0IGNvbXBvbmVudHNbNF07CisgICAgc3RkOjphcnJheTxmbG9hdCwgND4gY29t
cG9uZW50czsKIH07CiAKIHN0cnVjdCBDb2xvckNvbXBvbmVudHMgewpAQCAtMTU4LDYgKzE2OCwx
MiBAQCBGbG9hdENvbXBvbmVudHMgc1JHQkNvbG9yVG9MaW5lYXJDb21wb25lbnRzKGNvbnN0IENv
bG9yJik7CiBGbG9hdENvbXBvbmVudHMgc1JHQlRvTGluZWFyQ29tcG9uZW50cyhjb25zdCBGbG9h
dENvbXBvbmVudHMmKTsKIEZsb2F0Q29tcG9uZW50cyBsaW5lYXJUb1NSR0JDb21wb25lbnRzKGNv
bnN0IEZsb2F0Q29tcG9uZW50cyYpOwogCitGbG9hdENvbXBvbmVudHMgbGFiVG9TUkdCKGNvbnN0
IEZsb2F0Q29tcG9uZW50cyYpOworRmxvYXRDb21wb25lbnRzIExDSFRvU1JHQihjb25zdCBGbG9h
dENvbXBvbmVudHMmKTsKKworLy8gVGhlIGh1ZSBhbmdsZSBjb21wb25lbnQgaXMgaW4gZGVncmVl
cy4KK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb0xhYihjb25zdCBGbG9hdENvbXBvbmVudHMmKTsKKwog
RmxvYXRDb21wb25lbnRzIHNSR0JUb0hTTChjb25zdCBGbG9hdENvbXBvbmVudHMmKTsKIEZsb2F0
Q29tcG9uZW50cyBIU0xUb1NSR0IoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CiAKQEAgLTE3Miw3
ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENvbG9yTWF0cml4IHNlcGlhTWF0cml4KGZs
b2F0KTsKIAogICAgIENvbG9yTWF0cml4KCk7Ci0gICAgQ29sb3JNYXRyaXgoZmxvYXRbMjBdKTsK
KyAgICBDb2xvck1hdHJpeChjb25zdCBmbG9hdFsyMF0pOwogICAgIAogICAgIHZvaWQgdHJhbnNm
b3JtQ29sb3JDb21wb25lbnRzKEZsb2F0Q29tcG9uZW50cyYpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCmluZGV4IGUw
OWQyODcwZjYxZWI1NTMzMjFlYjcyM2Q0MjQzNmE0OTRiMDU0MmQuLjc0NjA2MzFmYWVjMGQ4NjJm
NWRkOGU1NWMzNmVhYTI1MjkxMTQyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCkBAIC0zMywxNSArMzMsMzEgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RXh0ZW5kZWRDb2xvcj4gRXh0ZW5kZWRDb2xvcjo6Y3Jl
YXRlKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UpCitSZWY8RXh0ZW5kZWRDb2xvcj4gRXh0ZW5kZWRDb2xvcjo6Y3Jl
YXRlKGZsb2F0IGMxLCBmbG9hdCBjMiwgZmxvYXQgYzMsIGZsb2F0IGFscGhhLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXh0ZW5kZWRDb2xvcihy
ZWQsIGdyZWVuLCBibHVlLCBhbHBoYSwgY29sb3JTcGFjZSkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEV4dGVuZGVkQ29sb3IoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpKTsKIH0K
IAogU3RyaW5nIEV4dGVuZGVkQ29sb3I6OmNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSg0MCk7CisKKyAgICBp
ZiAobV9jb2xvclNwYWNlID09IENvbG9yU3BhY2U6OkxhYikgeworICAgICAgICBidWlsZGVyLmFw
cGVuZCgibGFiKCIsCisgICAgICAgICAgICBGb3JtYXR0ZWROdW1iZXI6OmZpeGVkUHJlY2lzaW9u
KG1fY2hhbm5lbHMuY29tcG9uZW50c1swXSksCisgICAgICAgICAgICAiJSAiLAorICAgICAgICAg
ICAgRm9ybWF0dGVkTnVtYmVyOjpmaXhlZFByZWNpc2lvbihtX2NoYW5uZWxzLmNvbXBvbmVudHNb
MV0pLAorICAgICAgICAgICAgIiAiLAorICAgICAgICAgICAgRm9ybWF0dGVkTnVtYmVyOjpmaXhl
ZFByZWNpc2lvbihtX2NoYW5uZWxzLmNvbXBvbmVudHNbMl0pKTsKKworICAgICAgICBpZiAoYWxw
aGEoKSA8IDEpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiIC8gIiwgRm9ybWF0dGVkTnVt
YmVyOjpmaXhlZFByZWNpc2lvbihhbHBoYSgpKSk7CisKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyknKTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCiAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJjb2xvcigiKTsKIAogICAgIHN3aXRjaCAobV9jb2xv
clNwYWNlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9F
eHRlbmRlZENvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRl
ZENvbG9yLmgKaW5kZXggMTI3N2Y5NDhmMTIxNTU5NThjODkzMmNlOWM2MTczNTgxZTMxNGFmOS4u
YWYxMmRjMWFkNWVmZWVmNjY2MDljMzg2NjVmZGIzNDMwNDZkZWFhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuaApAQCAtMjcsNiArMjcs
NyBAQAogCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogCisjaW5jbHVkZSAiQ29sb3JVdGlsaXRp
ZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM1LDMxICszNiw0MSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4dGVuZGVkQ29sb3IgOiBwdWJsaWMgUmVmQ291bnRl
ZDxFeHRlbmRlZENvbG9yPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxFeHRlbmRlZENvbG9y
PiBjcmVhdGUoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEs
IENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCKTsKKyAgICBzdGF0aWMgUmVmPEV4dGVuZGVk
Q29sb3I+IGNyZWF0ZShmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFj
ZSA9IENvbG9yU3BhY2U6OlNSR0IpOwogCi0gICAgZmxvYXQgcmVkKCkgY29uc3QgeyByZXR1cm4g
bV9yZWQ7IH0KLSAgICBmbG9hdCBncmVlbigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JlZW47IH0KLSAg
ICBmbG9hdCBibHVlKCkgY29uc3QgeyByZXR1cm4gbV9ibHVlOyB9Ci0gICAgZmxvYXQgYWxwaGEo
KSBjb25zdCB7IHJldHVybiBtX2FscGhhOyB9CisgICAgZmxvYXQgcmVkKCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChtX2NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZTo6TGFiKTsKKyAgICAg
ICAgcmV0dXJuIG1fY2hhbm5lbHMuY29tcG9uZW50c1swXTsKKyAgICB9CisKKyAgICBmbG9hdCBn
cmVlbigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9jb2xvclNwYWNlICE9IENvbG9y
U3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBtX2NoYW5uZWxzLmNvbXBvbmVudHNbMV07Cisg
ICAgfQorCisgICAgZmxvYXQgYmx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9j
b2xvclNwYWNlICE9IENvbG9yU3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBtX2NoYW5uZWxz
LmNvbXBvbmVudHNbMl07CisgICAgfQorCisgICAgZmxvYXQgYWxwaGEoKSBjb25zdCB7IHJldHVy
biBtX2NoYW5uZWxzLmNvbXBvbmVudHNbM107IH0KKworICAgIGNvbnN0IEZsb2F0Q29tcG9uZW50
cyYgY2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxzOyB9CiAKICAgICBDb2xvclNw
YWNlIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KIAogICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgRXh0
ZW5kZWRDb2xvcihmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCi0gICAgICAgIDogbV9yZWQocikKLSAgICAgICAgLCBtX2dyZWVuKGcpCi0g
ICAgICAgICwgbV9ibHVlKGIpCi0gICAgICAgICwgbV9hbHBoYShhKQorICAgIEV4dGVuZGVkQ29s
b3IoZmxvYXQgYzEsIGZsb2F0IGMyLCBmbG9hdCBjMywgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkKKyAgICAgICAgOiBtX2NoYW5uZWxzKGMxLCBjMiwgYzMsIGFscGhhKQogICAg
ICAgICAsIG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgIHsgfQogCi0gICAgZmxvYXQgbV9y
ZWQgeyAwIH07Ci0gICAgZmxvYXQgbV9ncmVlbiB7IDAgfTsKLSAgICBmbG9hdCBtX2JsdWUgeyAw
IH07Ci0gICAgZmxvYXQgbV9hbHBoYSB7IDAgfTsKLQorICAgIEZsb2F0Q29tcG9uZW50cyBtX2No
YW5uZWxzOwogICAgIENvbG9yU3BhY2UgbV9jb2xvclNwYWNlIHsgQ29sb3JTcGFjZTo6U1JHQiB9
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
Q29sb3JDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNH
LmNwcAppbmRleCBjZGZmYTNmNjBlOWFkMThmMmE0MGE4ZTg5ODUyYTM2YTMzN2Y1MTAwLi44MWE1
YTQyODA4NWUxN2IxMGM2MGIxZWU0MDVjNjQwZTU1ZTdiZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcApAQCAtMTA1LDE2ICsxMDUsMjEg
QEAgc3RhdGljIENHQ29sb3JSZWYgbGVha0NHQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogewog
ICAgIENHRmxvYXQgY29tcG9uZW50c1s0XTsKICAgICBpZiAoY29sb3IuaXNFeHRlbmRlZCgpKSB7
Ci0gICAgICAgIEV4dGVuZGVkQ29sb3ImIGV4dGVuZGVkQ29sb3IgPSBjb2xvci5hc0V4dGVuZGVk
KCk7Ci0gICAgICAgIGNvbXBvbmVudHNbMF0gPSBleHRlbmRlZENvbG9yLnJlZCgpOwotICAgICAg
ICBjb21wb25lbnRzWzFdID0gZXh0ZW5kZWRDb2xvci5ncmVlbigpOwotICAgICAgICBjb21wb25l
bnRzWzJdID0gZXh0ZW5kZWRDb2xvci5ibHVlKCk7Ci0gICAgICAgIGNvbXBvbmVudHNbM10gPSBl
eHRlbmRlZENvbG9yLmFscGhhKCk7CisgICAgICAgIGNvbnN0IGF1dG8mIGV4dGVuZGVkQ29sb3Ig
PSBjb2xvci5hc0V4dGVuZGVkKCk7CisgICAgICAgIGF1dG8gY2hhbm5lbHMgPSBleHRlbmRlZENv
bG9yLmNoYW5uZWxzKCk7CisgICAgICAgIGNvbXBvbmVudHNbMF0gPSBjaGFubmVscy5jb21wb25l
bnRzWzBdOworICAgICAgICBjb21wb25lbnRzWzFdID0gY2hhbm5lbHMuY29tcG9uZW50c1sxXTsK
KyAgICAgICAgY29tcG9uZW50c1syXSA9IGNoYW5uZWxzLmNvbXBvbmVudHNbMl07CisgICAgICAg
IGNvbXBvbmVudHNbM10gPSBjaGFubmVscy5jb21wb25lbnRzWzNdOwogICAgICAgICBzd2l0Y2gg
KGV4dGVuZGVkQ29sb3IuY29sb3JTcGFjZSgpKSB7CiAgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6
U1JHQjoKICAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKHNSR0JDb2xvclNwYWNlUmVm
KCksIGNvbXBvbmVudHMpOwogICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAg
ICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKSwg
Y29tcG9uZW50cyk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgd2lsbCBnaXZlIGluY29ycmVjdCByZXN1bHRzIG9uIHBsYXRmb3JtcyB0
aGF0IGRvbid0IHN1cHBvcnQgQ0dDb2xvclNwYWNlQ3JlYXRlTGFiKCkuIFdlIHNob3VsZAorICAg
ICAgICAgICAgLy8gY29udmVydCB0byBzUkdCLgorICAgICAgICAgICAgcmV0dXJuIENHQ29sb3JD
cmVhdGUobGFiRDUwQ29sb3JTcGFjZVJlZigpLCBjb21wb25lbnRzKTsKICAgICAgICAgY2FzZSBD
b2xvclNwYWNlOjpMaW5lYXJSR0I6CiAgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgZXZlciBj
cmVhdGUgQ0dDb2xvclJlZnMgaW4gdGhlc2Ugc3BhY2VzPyBJdCBtYXkgb25seSBiZSBJbWFnZUJ1
ZmZlcnMuCiAgICAgICAgICAgICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFjZVJl
ZigpLCBjb21wb25lbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCA0OTZlY2EzMjRkM2U0ZGEy
MmZjYTU5OTk4ZWI1ZWY1ZWU3M2QyMDlhLi45YzM2M2UzMjQxY2VhNTcyNTJiMzA4Y2JlOTEzNTA0
Y2Y5ZmZiNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xMzksNiArMTM5LDIxIEBAIENHQ29s
b3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4gZGlzcGxheVAz
Q29sb3JTcGFjZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkQ1MENvbG9yU3BhY2VSZWYoKQor
eworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZTsKKyAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
IHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgY29uc3QgQ0dGbG9hdCBkNTBXaGl0ZVBv
aW50W10gPSB7IDAuOTY0MjIsIDEuMDAwMDAsIDAuODI1MjEgfTsKKyAgICAgICAgbGFiQ29sb3JT
cGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZUxhYihkNTBXaGl0ZVBvaW50LCBudWxscHRyLCBudWxs
cHRyKTsKKyNlbHNlCisgICAgICAgIGxhYkNvbG9yU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigp
OworI2VuZGlmCisgICAgfSk7CisgICAgcmV0dXJuIGxhYkNvbG9yU3BhY2U7Cit9CisKIHN0YXRp
YyBJbnRlcnBvbGF0aW9uUXVhbGl0eSBjb252ZXJ0SW50ZXJwb2xhdGlvblF1YWxpdHkoQ0dJbnRl
cnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRjaCAocXVhbGl0eSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmgKaW5kZXggNWQ1OWQxNWRiZWRmNWUzNTIzOWIzN2FiNTJlYzQ0OWE5MTJiZDRkOC4u
MGMxNzRiYzgzNWE2NTNhNmQ0NjZkMDYyYWE0NWYxMDgwM2VmMGFjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5o
CkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQT1JUIENH
Q29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xv
clNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENH
Q29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CitXRUJDT1JFX0VYUE9SVCBD
R0NvbG9yU3BhY2VSZWYgbGFiRDUwQ29sb3JTcGFjZVJlZigpOyAvLyBMKmEqYiBjb2xvcnNwYWNl
IFdpdGggRDUwIHdoaXRlIHBvaW50LgogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxp
bmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKIAogQ0dBZmZpbmVUcmFuc2Zvcm0gZ2V0VXNlclRvQmFz
ZUNUTShDR0NvbnRleHRSZWYpOwpAQCAtNDcsNiArNDgsOCBAQCBzdGF0aWMgaW5saW5lIENHQ29s
b3JTcGFjZVJlZiBjYWNoZWRDR0NvbG9yU3BhY2UoQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogICAg
ICAgICByZXR1cm4gbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogICAgIGNhc2UgQ29sb3JTcGFj
ZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpOwor
ICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gbGFiRDUwQ29sb3JTcGFj
ZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc1JH
QkNvbG9yU3BhY2VSZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcAppbmRleCAzMGJiNDhjYzhm
MGM0OTU0NDhhYjY1ZjY4MTE3MmNjYzZiY2E1MzVjLi4xNzAzMmQyNDQxOTBkMWZkMmIwZDFkOTcw
ZGRmZTEwMmQzYWVmNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwCkBAIC0yMzYsNyArMjM2
LDcgQEAgYm9vbCBJbnZlcnRMaWdodG5lc3NGaWx0ZXJPcGVyYXRpb246OnRyYW5zZm9ybUNvbG9y
KEZsb2F0Q29tcG9uZW50cyYgc1JHQkNvbG9yQ28KICAgICBzUkdCQ29sb3JDb21wb25lbnRzID0g
SFNMVG9TUkdCKGhzbENvbXBvbmVudHMpOwogICAgIAogICAgIC8vIEFwcGx5IHRoZSBtYXRyaXgu
IFNlZSByZGFyOi8vcHJvYmxlbS80MTE0NjY1MCBmb3IgaG93IHRoaXMgbWF0cml4IHdhcyBkZXJp
dmVkLgotICAgIGZsb2F0IG1hdHJpeFZhbHVlc1syMF0gPSB7CisgICAgY29uc3QgZmxvYXQgbWF0
cml4VmFsdWVzWzIwXSA9IHsKICAgICAgICAtMC43NzAsICAwLjA1OSwgLTAuMDg5LCAwLCAxLAog
ICAgICAgICAwLjAzMCwgLTAuNzQxLCAtMC4wODksIDAsIDEsCiAgICAgICAgIDAuMDMwLCAgMC4w
NTksIC0wLjg5MCwgMCwgMSwKQEAgLTI1Miw3ICsyNTIsNyBAQCBib29sIEludmVydExpZ2h0bmVz
c0ZpbHRlck9wZXJhdGlvbjo6aW52ZXJzZVRyYW5zZm9ybUNvbG9yKEZsb2F0Q29tcG9uZW50cyYg
c1JHQgogewogICAgIEZsb2F0Q29tcG9uZW50cyByZ2JDb21wb25lbnRzID0gc1JHQkNvbG9yQ29t
cG9uZW50czsKICAgICAvLyBBcHBseSB0aGUgbWF0cml4LgotICAgIGZsb2F0IG1hdHJpeFZhbHVl
c1syMF0gPSB7CisgICAgY29uc3QgZmxvYXQgbWF0cml4VmFsdWVzWzIwXSA9IHsKICAgICAgICAg
LTEuMzAwLCAtMC4wOTcsICAwLjE0NywgMCwgMS4yNSwKICAgICAgICAgLTAuMDQ5LCAtMS4zNDcs
ICAwLjE0NiwgMCwgMS4yNSwKICAgICAgICAgLTAuMDQ5LCAtMC4wOTcsIC0xLjEwNCwgMCwgMS4y
NSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Db2xv
ckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JHdGsu
Y3BwCmluZGV4IGQ2Njg0YTcyMTc5NTYyMmI3OGY5YTM1ZDA5NTQ2ZDdlNzJjZTQyN2MuLmY5NmY4
Y2Y2YjJlMjE5ODhlNzgxNjY0NmRjYmVjYzIyZTQwN2UwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcApAQCAtMjEsNiArMjEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCiAKKyNpbmNsdWRlICJD
b2xvclV0aWxpdGllcy5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzUsMTIgKzM2LDggQEAgQ29sb3I6OkNvbG9yKGNvbnN0IEdka1JHQkEmIGMpCiAK
IENvbG9yOjpvcGVyYXRvciBHZGtSR0JBKCkgY29uc3QKIHsKLSAgICBpZiAoaXNFeHRlbmRlZCgp
KQotICAgICAgICByZXR1cm4geyBhc0V4dGVuZGVkKCkucmVkKCksIGFzRXh0ZW5kZWQoKS5ncmVl
bigpLCBhc0V4dGVuZGVkKCkuYmx1ZSgpLCBhc0V4dGVuZGVkKCkuYWxwaGEoKSB9OwotCi0gICAg
ZG91YmxlIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOwotICAgIGdldFJHQkEocmVkLCBncmVlbiwg
Ymx1ZSwgYWxwaGEpOwotICAgIHJldHVybiB7IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhIH07Cisg
ICAgYXV0byBhc1JHQkEgPSBsb3NzeVRvU1JHQkFDb21wb25lbnRzKCk7CisgICAgcmV0dXJuIHsg
c3RhdGljX2Nhc3Q8ZG91YmxlPihhc1JHQkFbMF0pLCBzdGF0aWNfY2FzdDxkb3VibGU+KGFzUkdC
QVsxXSksIHN0YXRpY19jYXN0PGRvdWJsZT4oYXNSR0JBWzJdKSwgc3RhdGljX2Nhc3Q8ZG91Ymxl
Pihhc1JHQkFbM10pIH07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNwcAppbmRleCBkZWFkZGQ2ZjhmOGYzMDdi
MzliZjFjMTFjNGJkYjRhNGMzYjQxMGIwLi4zZWU2YzdjY2YxMmNlZmUwNjEzMGE1N2Q2ZDE1ZmM5
MTU0ODEyOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vQ29sb3JEaXJlY3QyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0NvbG9yRGlyZWN0MkQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9S
TShXSU4pCiAKKyNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogI2luY2x1ZGUgPGQyZDEuaD4K
ICNpbmNsdWRlIDxkMmQxXzFoZWxwZXIuaD4KIApAQCAtNDAsMTYgKzQxLDE4IEBAIENvbG9yOjpD
b2xvcihEMkQxX0NPTE9SX0YgY29sb3IpCiAKIENvbG9yOjpvcGVyYXRvciBEMkQxX0NPTE9SX0Yo
KSBjb25zdAogeworICAgIGlmIChpc0V4dGVuZGVkKCkpIHsKKyAgICAgICAgYXV0byBhc1JHQkEg
PSBsb3NzeVRvU1JHQkFDb21wb25lbnRzKCk7CisgICAgICAgIHJldHVybiBEMkQxOjpDb2xvckYo
YXNSR0JBWzBdLCBhc1JHQkFbMV0sIGFzUkdCQVsyXSwgYXNSR0JBWzNdKTsKKyAgICB9CiAgICAg
ZmxvYXQgY29sb3JBbHBoYSA9IGFscGhhKCkgLyAyNTUuMGY7Ci0KICAgICByZXR1cm4gRDJEMTo6
Q29sb3JGKHJnYigpLCBjb2xvckFscGhhKTsKIH0KIAogQ29sb3I6Om9wZXJhdG9yIEQyRDFfVkVD
VE9SXzRGKCkgY29uc3QKIHsKLSAgICBmbG9hdCByLCBnLCBiLCBhOwotICAgIGdldFJHQkEociwg
ZywgYiwgYSk7Ci0gICAgcmV0dXJuIEQyRDE6OlZlY3RvcjRGKHIsIGcsIGIsIGEpOworICAgIGF1
dG8gYXNSR0JBID0gbG9zc3lUb1NSR0JBQ29tcG9uZW50cygpOworICAgIHJldHVybiBEMkQxOjpW
ZWN0b3I0Rihhc1JHQkFbMF0sIGFzUkdCQVsxXSwgYXNSR0JBWzJdLCBhc1JHQkFbM10pOwogfQog
CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYjBiOTAwNGUxZGYxZWRlZDM4MzFmMjczMTJkY2MzNjViYjA3MWZkMi4uNTFm
MWNhY2E4MzFmOThkODIwNjUxZGQzMzMzOWU1M2ZhOTU2YzhhZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIwLTAxLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFN1cHBvcnQgbGFiKCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFBhcnNpbmcg
dGVzdHMgZm9yIGxhYi9sY2gvZ3JheSBjb2xvcnMuCisgICAgICAgIE1vcmUgcmVuZGVyaW5nIHRl
c3RzIG5lZWRlZC4KKworICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKwogMjAyMC0wMS0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIGRvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS5o
dG1sIFdQVCB0ZXN0IGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1MWFjNDNkM2VjYmFh
NjBmMDNlZDk3ZDYwODJlMWE1NWE2MWQzMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkg
QEAKK1Rlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworbGFiKCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSkiKSBpcyAibGFi
KDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAl
IDAgMCAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiKSBpcyAibGFiKDIwJSAwIDEw
IC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAl
IDAgMTAvNTAlKSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIpIGlzICJsYWIoNDAwJSAw
IDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
NTAlIC0xNjAgMTYwKSIpIGlzICJsYWIoNTAlIC0xNjAgMTYwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIpIGlzICJsYWIoNTAlIC0y
MDAgMjAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUg
MCAwIC8gLTEwJSkiKSBpcyAibGFiKDAlIDAgMCAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIpIGlzICJsYWIoMCUgMCAwKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAw
JSkiKSBpcyAibGFiKDAlIDAgMCkiCisKK2xjaCgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDEpIikgaXMg
ImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgwJSAwIDBkZWcgLyAwLjUpIikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIpIGlz
ICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIikgaXMgImxhYigyMCUgNDYuOTg0NiAxNy4x
MDEgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgy
MCUgNTAgMjBkZWcvNTAlKSIpIGlzICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8g
LTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCAvIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIpIGlzICJs
YWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIikgaXMgImxhYigxMCUgNS43MzQzIDE5LjE2MDMp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMzgw
ZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIikgaXMgImxhYigxMCUgMTgu
NzkzOSA2Ljg0MDQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgxMCUgMjAgNzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC03MDBkZWcpIikgaXMg
ImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorCitncmF5KCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJncmF5KDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCUpIikgaXMgImxhYigx
MCUgMCAwIC8gMC4xKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJn
cmF5KDEyMCAvIDEwJSkiKSBpcyAibGFiKDEyMCUgMCAwIC8gMC4xKSIKKworVGVzdCBpbnZhbGlk
IHZhbHVlcworUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAg
MCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCUgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEpIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KDAlIDAgMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRl
ZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCitGQUlMIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDAlIDAgMCAvIDAuNSkiKSBzaG91bGQgYmUgcmdiYSgwLCAwLCAwLCAwKS4gV2FzIGxh
YigwJSAwIDAgLyAwLjUpLgorRkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgyMCUgMTAgMTApIikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMjAl
IDkuODQ4MDggMS43MzY0OCkuCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwIC8gMC41
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIikgaXMgInJnYmEoMCwg
MCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgx
MCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGY5
NjdhZTg4MDlhZWQxNTgzMzFhNmYxMjgyNmJlMDQ0ZGFjNmU2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKQEAgLTAsMCArMSw5
NyBAQAorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLiIpOworCisg
ICAgZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgeworICAgICAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5
KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0
ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAgIHJldHVybiBjb21wdXRlZFZhbHVlOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsK
KyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAg
ICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IGRpdi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsg
JyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
dGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAo
ZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgICAgICBleHBlY3RlZCA9ICIiOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyAr
IHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdsYWIoKScpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIsICJsYWIo
MCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUg
MCAwIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiLCAibGFi
KDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMjAlIDAgMTAvNTAlKSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIsICJsYWIoNDAw
JSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoNTAlIC0xNjAgMTYwKSIsICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAlIC0yMDAg
MjAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAw
IC8gLTEwJSkiLCAibGFiKDAlIDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiLCAibGFi
KDAlIDAgMCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnbGNoKCknKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiLCAibGFiKDAl
IDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAg
MGRlZyAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8g
MC41KSIsICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIiwgImxhYigyMCUgNDYuOTg0NiAx
Ny4xMDEgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgyMCUgNTAgMjBkZWcvNTAlKSIsICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41KSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8g
LTEwJSkiLCAibGFiKDEwJSAxOC43OTM5IDYuODQwNCAvIDApIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIsICJsYWIoMTAl
IDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUgNS43MzQzIDE5LjE2MDMpIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMzgwZGVnKSIsICJs
YWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVn
KSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC03MDBkZWcpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0
MDQpIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ2dyYXkoKScpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDApIiwgImxhYigwJSAwIDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCUpIiwgImxh
YigxMCUgMCAwIC8gMC4xKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJncmF5KDEyMCAvIDEwJSkiLCAibGFiKDEyMCUgMCAwIC8gMC4xKSIpOworCisgICAgZGVidWco
JycpOworICAgIGRlYnVnKCdUZXN0IGludmFsaWQgdmFsdWVzJyk7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMCkiLCAicmdi
YSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIDEpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMGRlZykiLCAi
cmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMCUgMCUgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAw
KSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwIDAgMCAv
IDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goMCUgMCAwIC8gMC41KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7IC8vIE5v
IHVuaXRsZXNzIHplcm8gYW5nbGUuIEN1cnJlbnRseSBmYWlsczogd2Via2l0Lm9yZy9iLzIwNTcz
MworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwKSIs
ICJyZ2JhKDAsIDAsIDAsIDApIik7IC8vIE5vIHVuaXRsZXNzIGFuZ2xlLiBDdXJyZW50bHkgZmFp
bHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwIC8gMC41
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAiZ3JheSgxMCUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAw
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwKSIs
ICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImdyYXkoMTAgLyAxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworCis8L3NjcmlwdD4K
KyAgICAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386759</attachid>
            <date>2020-01-03 23:04:36 -0800</date>
            <delta_ts>2020-05-15 09:35:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20200103230435.patch</filename>
            <type>text/plain</type>
            <size>42320</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkM2Y5NGNmYTQ1Mzlk
OTJjZDQ1MTEwZmIyZDg0MzEyNWE1NDIyMS4uOWFhNjUxN2I5ZjA1YmRmYjhhYzJkNTMxNzkwNzhl
ZDg0NGI0NzczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFi
KCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkg
YW5kIGdyYXkoKSBjb2xvcnMgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGFiLWNvbG9ycy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2Ugd2UgaGF2ZSB0byBwcmVzZXJ2
ZSB0aGVtIGFzIGxhYigpIGNvbG9ycyBmb3IgY29tcHV0ZWQgc3R5bGUsIHRoZXkgYXJlIHN0b3Jl
ZCBhcworICAgICAgICBmbG9hdHMgaW4gRXh0ZW5kZWRDb2xvciwgd2hpY2ggaXMgbWFkZSBtb3Jl
IGdlbmVyaWMgdG8gaGFuZGxlIGFueSA0LWZsb2F0IGNvbG9yIGZvcm1hdC4KKyAgICAgICAgV2Ug
YWRkIGEgQ29sb3JTcGFjZTo6TGFiLCBhbmQgd2hlbiBjcmVhdGluZyBjb2xvcnMgdG8gcGFpbnQs
IHJlbHkgb24gQ29yZUdyYXBoaWNzIHRvIGNyZWF0ZQorICAgICAgICBDR0NvbG9yUmVmcyBpbiB0
aGUgbGFiIGNvbG9yc3BhY2UsIHVzaW5nIEQ1MCB3aGl0ZSB2YWx1ZXMgcGVyIHNwZWMuCisgICAg
ICAgIAorICAgICAgICBsYWIgPC0+IGxjaCA8LT4gc1JHQiBjb252ZXJzaW9uIGZhY2lsaXRpZXMg
YXJlIGFkZGVkIHRvIENvbG9yVXRpbGl0aWVzLiBXZSBkb24ndAorICAgICAgICBldmVyIGNvbnZl
cnQgdG8gc1JHQiB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIGJ1dCBwcm9iYWJseSB3aWxsIGluIGZ1
dHVyZSBmb3IgaW50ZXJwb2xhdGluZworICAgICAgICBpbiBncmFkaWVudHMgYW5kIGFuaW1hdGlv
bnMgd2l0aCBtaXhlZCBjb2xvciB0eXBlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlTGFiUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaWVYWVpUb0xpbmVhclNSR0IpOgorICAgICAgICAoV2ViQ29yZTo6bGFiWFlaKToK
KyAgICAgICAgKFdlYkNvcmU6OmxhYlRvQ0lFWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OmxhYlRv
U1JHQik6CisgICAgICAgIChXZWJDb3JlOjpMQ0hUb1NSR0IpOgorICAgICAgICAoV2ViQ29yZTo6
TENIVG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpibHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
ZGVkQ29sb3I6OmFscGhhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OkV4dGVuZGVk
Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkQ1MENvbG9y
U3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDR0NvbG9yU3BhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9u
OjppbnZlcnNlVHJhbnNmb3JtQ29sb3IgY29uc3QpOgorCiAyMDIwLTAxLTAzICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZyBhdCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVuT3Bl
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhYTE2MDNjZTNjMzNlN2RjYzIxY2UyYjhjNTBh
YWYyMzg3NjVhYTY3Li45ZDVjYjZjNjI0M2Y5MTFiYmZhNjY1ZGQ2ZmY5MGMzYTBkODFjNGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwMTksNiArMTAxOSw3IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JIYXNoLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clNwYWNlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9EYXNoQXJyYXkuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0RlY29kaW5nT3B0aW9ucy5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYWM3MTY1MzZmNTM3NzFmYTZiMmFjYmI1YzM0OGJmMzg0ODY2YmMwZi4uZDdjZTk5NmNj
MTMxOTEwZWFiZWQ4YzQ0NGZmNjgzMjEyZjc2YWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzYxLDYgKzM2MSw3IEBACiAJ
CTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkVBM0U3RTE5MUIzMTY5MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGRUEzRTg0MTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZFQTNFODIxOTFCMzFCRjAwMEYxQjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEZFQTNFODgxOTFCM0JENzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RUEzRTg2MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZF
QUY2NkIyM0JGQzM5RTAwNDAzMERBIC8qIENvbG9yVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU2Qzc2QzFGQkZCN0E2MDAyNUMwNTMg
LyogQ29sb3JVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRkVDMTIwQzIyQkYyQ0QyMDA0RTlEMzUgLyogTGF5ZXJBbmNlc3RvckNs
aXBwaW5nU3RhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUMxMjA5MjJCRjJDQzcwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFj
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RjNCOTI5MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjNCOTI1MUVFM0I2REUwMEI4NDE0NCAvKiBK
U0RPTVF1YWQuaCAqLzsgfTsKIAkJMEZGM0I5MkIxRUUzQjZERTAwQjg0MTQ0IC8qIEpTRE9NUXVh
ZEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RjNCOTI3MUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWRJbml0LmggKi87IH07CkBAIC0yOTMw
Niw2ICsyOTMwNyw3IEBACiAJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJERjU4MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xv
clNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVBRjY2QjIzQkZDMzlFMDA0MDMwREEgLyog
Q29sb3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREQ0NTRFMTIzNkM5NUMwMDlB
Nzk4NSAvKiBDb2x1bW5JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0VERDY3RjFCNDg1REJG
MDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFiZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI2RTk0NEQ5MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRlcnMuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3NjRmMGFj
OTg5Zjc1MjFkOTU4ZTY0ZTA0MTJhNTcwNjE4OTEyNDhlLi5iZWViYmVhNzc1MWM3MGRlZWJhMzY3
YTZkMzFkNTBjZDZjMjI2MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgpAQCAtMTI2OSw2ICsxMjY5LDkgQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCisv
LyBncmF5CiAvL2NvbG9yCiAKIC8vIHRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IGY1MDJjNmZj
YWYxNDBmOTY5OWQ3MWU5ZWVhMGYxNDk2MDJlYWJlOGYuLmM0YTg4Yzg5NmJiNjY1ZTM4NGY2NTI4
MWM4OTI3YTFmOWUyMGY0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJDU1NQYWludEltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKKyNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU3R5bGVDb2xvci5oIgpAQCAtMjM3LDYgKzIzOCw3IEBAIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gY29uc3VtZUZvbnRXZWlnaHROdW1iZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiBpbmxpbmUgYm9vbCBzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKGRvdWJsZSB2YWx1
ZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrIHVuaXRsZXNzKQog
ewogICAgIC8vIEZJWE1FOiBQcmVzZW50YXRpb25hbCBIVE1MIGF0dHJpYnV0ZXMgc2hvdWxkbid0
IHVzZSB0aGUgQ1NTIHBhcnNlciBmb3IgbGVuZ3RocworICAgIC8vIEZJWE1FOiBVbml0bGVzcyB6
ZXJvIHNob3VsZCBub3QgYWx3YXlzIGJlIGFsbG93ZWQuIHdlYmtpdC5vcmcvYi8yMDU3MzMuCiAg
ICAgcmV0dXJuIHZhbHVlID09IDAKICAgICAgICAgfHwgaXNVbml0TGVzc1ZhbHVlUGFyc2luZ0Vu
YWJsZWRGb3JNb2RlKGNzc1BhcnNlck1vZGUpCiAgICAgICAgIHx8IChjc3NQYXJzZXJNb2RlID09
IEhUTUxRdWlya3NNb2RlICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93KTsKQEAg
LTY0Myw2ICs2NDUsMTA4IEBAIHN0YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyCiAgICAgcmV0dXJuIENv
bG9yKG1ha2VSR0JBRnJvbUhTTEEoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMF0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xv
ckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSkpOwogfQogCitzdGF0aWMgYm9v
bCBwYXJzZU9wdGlvbmFsQWxwaGEoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGZsb2F0JiBh
bHBoYSkKK3sKKyAgICBhbHBoYSA9IDEuMGY7CisgICAgaWYgKGNvbnN1bWVTbGFzaEluY2x1ZGlu
Z1doaXRlc3BhY2UocmFuZ2UpKSB7CisgICAgICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIgPSBjb25z
dW1lUGVyY2VudChyYW5nZSwgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmIChhbHBoYVBhcmFt
ZXRlcikKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0ZXIt
PmRvdWJsZVZhbHVlKCkgLyAxMDAuMCwgMC4wLCAxLjApOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZU51bWJlcihyYW5nZSwgVmFsdWVSYW5nZUFs
bCk7CisgICAgICAgICAgICBpZiAoIWFscGhhUGFyYW1ldGVyKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGFscGhhID0gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJh
bWV0ZXItPmRvdWJsZVZhbHVlKCksIDAuMCwgMS4wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTGFiUGFyYW1ldGVycyhDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9u
SWQoKSA9PSBDU1NWYWx1ZUxhYik7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29u
c3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNl
bnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJl
dHVybiBDb2xvcigpOworICAgIAorICAgIGF1dG8gYVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdz
LCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFWYWx1ZSkKKyAgICAgICAgcmV0dXJuIENvbG9y
KCk7CisgICAgYXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghYlZhbHVlKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIGZsb2F0
IGFscGhhOworICAgIGlmICghcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MsIGFscGhhKSkKKyAgICAg
ICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0
dXJuIENvbG9yKCk7CisKKyAgICByZXR1cm4gQ29sb3IobGlnaHRuZXNzLT5mbG9hdFZhbHVlKCks
IGFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBiVmFsdWUtPmZsb2F0VmFsdWUoKSwgYWxwaGEsIENvbG9y
U3BhY2U6OkxhYik7Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUxDSFBhcmFtZXRlcnMoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlv
bklkKCkgPT0gQ1NTVmFsdWVMY2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNv
bnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJj
ZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICBy
ZXR1cm4gQ29sb3IoKTsKKyAgICAKKyAgICBhdXRvIGNocm9tYVZhbHVlID0gY29uc3VtZU51bWJl
cihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWNocm9tYVZhbHVlKQorICAgICAgICBy
ZXR1cm4gQ29sb3IoKTsKKworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+IChkaXNh
bGxvd2luZyB1bml0bGVzcyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3VtZUFuZ2xl
KGFyZ3MsIEhUTUxTdGFuZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgZmxv
YXQgYW5nbGVJbkRlZ3JlZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBodWVWYWx1
ZSA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmICghaHVl
VmFsdWUpCisgICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICAgICAgYW5nbGVJbkRlZ3Jl
ZXMgPSBodWVWYWx1ZS0+ZG91YmxlVmFsdWUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5nbGVJ
bkRlZ3JlZXMgPSBodWVWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKKworICAgIGFuZ2xlSW5EZWdy
ZWVzID0gZm1vZGYoYW5nbGVJbkRlZ3JlZXMsIDM2MC4wZik7CisgICAgaWYgKGFuZ2xlSW5EZWdy
ZWVzIDwgMC4wKQorICAgICAgICBhbmdsZUluRGVncmVlcyArPSAzNjAuMGY7CisKKyAgICBmbG9h
dCBhbHBoYTsKKyAgICBpZiAoIXBhcnNlT3B0aW9uYWxBbHBoYShhcmdzLCBhbHBoYSkpCisgICAg
ICAgIHJldHVybiBDb2xvcigpOworCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJl
dHVybiBDb2xvcigpOworCisgICAgYXV0byBsYWJDb2xvciA9IExDSFRvTGFiKHsgbGlnaHRuZXNz
LT5mbG9hdFZhbHVlKCksIGNocm9tYVZhbHVlLT5mbG9hdFZhbHVlKCksIGFuZ2xlSW5EZWdyZWVz
LCBhbHBoYSB9KTsKKyAgICByZXR1cm4gQ29sb3IobGFiQ29sb3IuY29tcG9uZW50c1swXSwgbGFi
Q29sb3IuY29tcG9uZW50c1sxXSwgbGFiQ29sb3IuY29tcG9uZW50c1syXSwgbGFiQ29sb3IuY29t
cG9uZW50c1szXSwgQ29sb3JTcGFjZTo6TGFiKTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlR3Jh
eVBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJh
bmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVHcmF5KTsKKyAgICBDU1NQYXJzZXJU
b2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAgLy8gVW5saWtl
IGxhYi9sY2gsIGdyYXkoKSB0YWtlcyBhIG51bWJlciwgYnV0IHNlZSBodHRwczovL2dpdGh1Yi5j
b20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNDY0OAorICAgIGF1dG8gbGlnaHRuZXNzID0gY29u
c3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAg
ICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisgICAgZmxvYXQgYWxwaGE7CisgICAgaWYgKCFw
YXJzZU9wdGlvbmFsQWxwaGEoYXJncywgYWxwaGEpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAg
IHJldHVybiBDb2xvcihsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgMCwgMCwgYWxwaGEsIENvbG9y
U3BhY2U6OkxhYik7Cit9CisKIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0
ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIEFTU0VSVChyYW5nZS5wZWVr
KCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlQ29sb3IpOwpAQCAtNzM2LDYgKzg0MCwxNSBAQCBz
dGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
LCBDU1NQYXJzZXJNb2RlIGNzc1BhcgogICAgIGNhc2UgQ1NTVmFsdWVIc2xhOgogICAgICAgICBj
b2xvciA9IHBhcnNlSFNMUGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJNb2RlKTsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29sb3IgPSBwYXJz
ZUxhYlBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVMY2g6CisgICAgICAgIGNvbG9yID0gcGFyc2VMQ0hQYXJhbWV0ZXJzKGNvbG9yUmFuZ2Up
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlR3JheToKKyAgICAgICAgY29sb3Ig
PSBwYXJzZUdyYXlQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFy
YW1ldGVycyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXggZWEyZDM0ODI2ZTM2ODhkNTNkM2JiNjM5ZWE0
Y2QwZTk2MmQxMDAxMi4uZDY0MDNkMDExNzBkYjZlMTAxOTg3ZWFiNmQ2NGUxMzIwOWEwZGJkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMjcwLDEy
ICsyNzAsMTIgQEAgQ29sb3I6OkNvbG9yKENvbG9yJiYgb3RoZXIpCiAgICAgKnRoaXMgPSBXVEZN
b3ZlKG90aGVyKTsKIH0KIAotQ29sb3I6OkNvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIs
IGZsb2F0IGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK0NvbG9yOjpDb2xvcihmbG9hdCBjMSwg
ZmxvYXQgYzIsIGZsb2F0IGMzLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQog
ewogICAgIC8vIFplcm8gdGhlIHVuaW9uLCBqdXN0IGluIGNhc2UgYSAzMi1iaXQgc3lzdGVtIG9u
bHkgYXNzaWducyB0aGUKICAgICAvLyB0b3AgMzIgYml0cyB3aGVuIGNvcHlpbmcgdGhlIGV4dGVu
ZGVkQ29sb3IgcG9pbnRlciBiZWxvdy4KICAgICBtX2NvbG9yRGF0YS5yZ2JhQW5kRmxhZ3MgPSAw
OwotICAgIGF1dG8gZXh0ZW5kZWRDb2xvclJlZiA9IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShyLCBn
LCBiLCBhLCBjb2xvclNwYWNlKTsKKyAgICBhdXRvIGV4dGVuZGVkQ29sb3JSZWYgPSBFeHRlbmRl
ZENvbG9yOjpjcmVhdGUoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpOwogICAgIG1fY29s
b3JEYXRhLmV4dGVuZGVkQ29sb3IgPSAmZXh0ZW5kZWRDb2xvclJlZi5sZWFrUmVmKCk7CiAgICAg
QVNTRVJUKGlzRXh0ZW5kZWQoKSk7CiB9CkBAIC01ODIsNiArNTgyLDI3IEBAIHZvaWQgQ29sb3I6
OmdldEhTVihkb3VibGUmIGh1ZSwgZG91YmxlJiBzYXR1cmF0aW9uLCBkb3VibGUmIHZhbHVlKSBj
b25zdAogICAgIHZhbHVlID0gbWF4OwogfQogCitzdGQ6OmFycmF5PGZsb2F0LCA0PiBDb2xvcjo6
bG9zc3lUb1NSR0JBQ29tcG9uZW50cygpIGNvbnN0Cit7CisgICAgaWYgKGlzRXh0ZW5kZWQoKSkg
eworICAgICAgICBhdXRvJiBleHRlbmRlZENvbG9yID0gYXNFeHRlbmRlZCgpOworICAgICAgICBz
d2l0Y2ggKGV4dGVuZGVkQ29sb3IuY29sb3JTcGFjZSgpKSB7CisgICAgICAgIGNhc2UgQ29sb3JT
cGFjZTo6U1JHQjoKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJSR0I6CisgICAgICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
ZG9lc24ndCBjb252ZXJ0IGludG8gc1JHQiBhbmQgc2hvdWxkLgorICAgICAgICAgICAgcmV0dXJu
IHt7IGV4dGVuZGVkQ29sb3IucmVkKCksIGV4dGVuZGVkQ29sb3IuZ3JlZW4oKSwgZXh0ZW5kZWRD
b2xvci5ibHVlKCksIGV4dGVuZGVkQ29sb3IuYWxwaGEoKSB9fTsgLy8gRG91YmxlIGJyYWNlcyBy
ZXF1aXJlZCB0byBhdm9pZCB3YXJuaW5nIHdpdGggb2xkZXIgY2xhbmcgdmVyc2lvbnMuCisgICAg
ICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOiB7CisgICAgICAgICAgICBhdXRvIHJnYkNoYW5uZWxz
ID0gbGFiVG9TUkdCKGV4dGVuZGVkQ29sb3IuY2hhbm5lbHMoKSk7CisgICAgICAgICAgICByZXR1
cm4ge3sgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1swXSwgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1sx
XSwgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1syXSwgcmdiQ2hhbm5lbHMuY29tcG9uZW50c1szXSB9
fTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGZsb2F0IHIsIGcsIGIsIGE7Cisg
ICAgZ2V0UkdCQShyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4ge3sgYSwgZywgYiwgYSB9fTsKK30K
KwogQ29sb3IgY29sb3JGcm9tUHJlbXVsdGlwbGllZEFSR0IoUkdCQTMyIHBpeGVsQ29sb3IpCiB7
CiAgICAgaW50IGFscGhhID0gYWxwaGFDaGFubmVsKHBpeGVsQ29sb3IpOwpAQCAtNjM2LDcgKzY1
Nyw3IEBAIHZvaWQgQ29sb3I6OnRhZ0FzVmFsaWQoKQogICAgIG1fY29sb3JEYXRhLnJnYmFBbmRG
bGFncyB8PSB2YWxpZFJHQkFDb2xvcjsKIH0KIAotRXh0ZW5kZWRDb2xvciYgQ29sb3I6OmFzRXh0
ZW5kZWQoKSBjb25zdAorY29uc3QgRXh0ZW5kZWRDb2xvciYgQ29sb3I6OmFzRXh0ZW5kZWQoKSBj
b25zdAogewogICAgIEFTU0VSVChpc0V4dGVuZGVkKCkpOwogICAgIHJldHVybiAqbV9jb2xvckRh
dGEuZXh0ZW5kZWRDb2xvcjsKQEAgLTY1OSw2ICs2ODAsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiAgICAgY2FzZSBDb2xv
clNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHRzIDw8ICJEaXNwbGF5UDMiOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgdHMgPDwgIkwqYSpiIjsK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCmluZGV4IDhlMzVlMDk5ZTRhZjMyZDY5NzdlZWJkMmM3
MDVjYTc2NmE0M2VmNDQuLmQ5OWMyMGY0ZmJhY2JhOTg4M2FmMzY0ZWIwMjMwY2Y5ZjUyMjg4Mjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaApAQCAtMTczLDcgKzE3
Myw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGNyZWF0ZXMgYW4gRXh0ZW5kZWRDb2xvci4KICAg
ICAvLyBGSVhNRTogSWYgdGhlIGNvbG9yU3BhY2UgaXMgc1JHQiBhbmQgdGhlIHZhbHVlcyBjYW4g
YWxsIGJlCiAgICAgLy8gY29udmVydGVkIGV4YWN0bHkgdG8gaW50ZWdlcnMsIHdlIHNob3VsZCBt
YWtlIGEgbm9ybWFsIENvbG9yLgotICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yKGZsb2F0IHIsIGZs
b2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgQ29sb3IoZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIENvbG9yU3BhY2Up
OwogCiAgICAgQ29sb3IoUkdCQSwgQ29sb3JTcGFjZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ29s
b3IoY29uc3QgQ29sb3ImKTsKQEAgLTIzMCw2ICsyMzAsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBnZXRIU0woZG91YmxlJiBoLCBkb3VibGUmIHMsIGRvdWJsZSYgbCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRIU1YoZG91YmxlJiBoLCBkb3VibGUmIHMs
IGRvdWJsZSYgdikgY29uc3Q7CiAKKyAgICAvLyBUaGlzIHdpbGwgY29udmVydCBub24tc1JHQiBj
b2xvcnNwYWNlIGNvbG9ycyBpbnRvIHNSR0IuCisgICAgc3RkOjphcnJheTxmbG9hdCwgND4gbG9z
c3lUb1NSR0JBQ29tcG9uZW50cygpIGNvbnN0OworCiAgICAgQ29sb3IgbGlnaHQoKSBjb25zdDsK
ICAgICBDb2xvciBkYXJrKCkgY29uc3Q7CiAKQEAgLTI4OCw3ICsyOTEsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICByZXR1cm4gIShtX2NvbG9yRGF0YS5yZ2JhQW5kRmxhZ3MgJiBpbnZhbGlk
UkdCQUNvbG9yKTsKICAgICB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgRXh0ZW5kZWRDb2xvciYgYXNF
eHRlbmRlZCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEV4dGVuZGVkQ29sb3Im
IGFzRXh0ZW5kZWQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yJiBvcGVyYXRv
cj0oY29uc3QgQ29sb3ImKTsKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciYgb3BlcmF0b3I9KENv
bG9yJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5o
CmluZGV4IDBhYTI3NGExYzUwOTUzNTI2YTg4ZWU0YTRlZmEzZjljOGQyMzdiM2IuLmQ2NzMxYjdk
NzM4YjQyMDgyZGM1YmE0ZGNhYzMzMDVkZjc3MWUwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKQEAgLTMwLDcgKzMwLDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdCB7CiAgICAgU1JHQiwK
ICAgICBMaW5lYXJSR0IsCi0gICAgRGlzcGxheVAzCisgICAgRGlzcGxheVAzLAorICAgIExhYgog
fTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcAppbmRleCA3ZTlmOTg5MmRjM2Mx
NGFjZWVkODM4MTBmYjUzYWVlYjc4MDk4YTFmLi4wMTAzODM4MTE1Nzc2NTg3ZGI1ZDZlYWJlMGFk
ZGFlZjliNjE3NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JVdGlsaXRpZXMuY3BwCkBAIC05Myw2ICs5Myw4NSBAQCBGbG9hdENvbXBvbmVudHMg
bGluZWFyVG9TUkdCQ29tcG9uZW50cyhjb25zdCBGbG9hdENvbXBvbmVudHMmIGxpbmVhclJHQikK
ICAgICB9OwogfQogCitzdGF0aWMgRmxvYXRDb21wb25lbnRzIGNpZVhZWlRvTGluZWFyU1JHQihj
b25zdCBGbG9hdENvbXBvbmVudHMmIGNpZVhZWikKK3sKKyAgICBjb25zdCBmbG9hdCB2YWx1ZXNb
XSA9IHsKKyAgICAgICAgIDMuMjQwNDU0MmYsIC0xLjUzNzEzODVmLCAtMC40OTg1MzE0ZiwgMC4w
ZiwgMC4wZiwKKyAgICAgICAgLTAuOTY5MjY2MGYsICAxLjg3NjAxMDhmLCAgMC4wNDE1NTYwZiwg
MC4wZiwgMC4wZiwKKyAgICAgICAgIDAuMDU1NjQzNGYsIC0wLjIwNDAyNTlmLCAgMS4wNTcyMjUy
ZiwgMC4wZiwgMC4wZiwKKyAgICAgICAgIDAuMGYsICAgICAgICAwLjBmLCAgICAgICAgMC4wZiwg
ICAgICAgMS4wZiwgMC4wZiwKKyAgICB9OworICAgIENvbG9yTWF0cml4IGNpZVhZWlRvTGluZWFy
U1JHQk1hdHJpeCh2YWx1ZXMpOworICAgIAorICAgIEZsb2F0Q29tcG9uZW50cyByZXN1bHQgPSBj
aWVYWVo7CisgICAgY2llWFlaVG9MaW5lYXJTUkdCTWF0cml4LnRyYW5zZm9ybUNvbG9yQ29tcG9u
ZW50cyhyZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBmbG9hdCBsYWJY
WVooZmxvYXQgdCkKK3sKKyAgICBjb25zdCBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMjQzODkuMGY7
CisgICAgY29uc3QgZmxvYXQgTEFCayA9IDI0Mzg5LjBmIC8gMjcuMGY7CisKKyAgICBmbG9hdCB0
Q3ViZWQgPSB0ICogdCAqIHQ7CisgICAgaWYgKHRDdWJlZCA+IExBQmUpCisgICAgICAgIHJldHVy
biB0Q3ViZWQ7CisgICAgCisgICAgcmV0dXJuICgxMTYuMGYgKiB0IC0gMTYuMGYpIC8gTEFCazsK
K30KKworc3RhdGljIEZsb2F0Q29tcG9uZW50cyBsYWJUb0NJRVhZWihjb25zdCBGbG9hdENvbXBv
bmVudHMmIGxhYikKK3sKKyAgICBmbG9hdCBMID0gbGFiLmNvbXBvbmVudHNbMF07CisgICAgZmxv
YXQgYSA9IGxhYi5jb21wb25lbnRzWzFdOworICAgIGZsb2F0IGIgPSBsYWIuY29tcG9uZW50c1sy
XTsKKworICAgIGZsb2F0IHkgPSAoTCArIDE2LjBmKSAvIDExNi4wZjsKKyAgICBmbG9hdCB4ID0g
eSArIGEgLyA1MDAuMGY7CisgICAgZmxvYXQgeiA9IHkgLSBiIC8gMjAwLjBmOworICAgIAorICAg
IGNvbnN0IGZsb2F0IEQ2NVdoaXRlVmFsdWVzW10gPSB7CisgICAgICAgIDAuOTUwNDdmLAorICAg
ICAgICAxLjBmLAorICAgICAgICAxLjA4ODgzZgorICAgIH07CisgICAgeCA9IEQ2NVdoaXRlVmFs
dWVzWzBdICogbGFiWFlaKHgpOworICAgIHkgPSBENjVXaGl0ZVZhbHVlc1sxXSAqIGxhYlhZWih5
KTsKKyAgICB6ID0gRDY1V2hpdGVWYWx1ZXNbMl0gKiBsYWJYWVooeik7CisKKyAgICByZXR1cm4g
eyB4LCB5LCB6LCBsYWIuY29tcG9uZW50c1szXSB9OworfQorCisvLyBsYWJDb21wb25lbnRzIGFy
ZSBsaWdodG5lc3MsIGEsIGIsIGFscGhhLgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1j
b2xvci00LyNsYWItdG8tcmdiCitGbG9hdENvbXBvbmVudHMgbGFiVG9TUkdCKGNvbnN0IEZsb2F0
Q29tcG9uZW50cyYgbGFiKQoreworICAgIEZsb2F0Q29tcG9uZW50cyBjaWVYWVogPSBsYWJUb0NJ
RVhZWihsYWIpOworICAgIGF1dG8gbGluZWFyUkdCID0gY2llWFlaVG9MaW5lYXJTUkdCKGNpZVhZ
Wik7CisgICAgcmV0dXJuIGxpbmVhclRvU1JHQkNvbXBvbmVudHMobGluZWFyUkdCKTsKK30KKwor
Ly8gbGNoQ29tcG9uZW50cyBhcmUgbGlnaHRuZXNzLCBjaHJvbWEsIGh1ZSBhbmdsZSAoaW4gZGVn
cmVlcyksIGFscGhhLgorRmxvYXRDb21wb25lbnRzIExDSFRvU1JHQihjb25zdCBGbG9hdENvbXBv
bmVudHMmIGxjaENvbXBvbmVudHMpCit7CisgICAgRmxvYXRDb21wb25lbnRzIGxhYkNvbXBvbmVu
dHMgPSBMQ0hUb0xhYihsY2hDb21wb25lbnRzKTsKKyAgICByZXR1cm4gbGFiVG9TUkdCKGxhYkNv
bXBvbmVudHMpOworfQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI2xj
aC10by1sYWIKK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb0xhYihjb25zdCBGbG9hdENvbXBvbmVudHMm
IGxjaENvbXBvbmVudHMpCit7CisgICAgZmxvYXQgY2hyb21hID0gbGNoQ29tcG9uZW50cy5jb21w
b25lbnRzWzFdOworICAgIGZsb2F0IGh1ZUFuZ2xlUmFkaWFucyA9IGRlZzJyYWQobGNoQ29tcG9u
ZW50cy5jb21wb25lbnRzWzJdKTsKKworICAgIHJldHVybiB7CisgICAgICAgIGxjaENvbXBvbmVu
dHMuY29tcG9uZW50c1swXSwKKyAgICAgICAgY2hyb21hICogY29zKGh1ZUFuZ2xlUmFkaWFucyks
CisgICAgICAgIGNocm9tYSAqIHNpbihodWVBbmdsZVJhZGlhbnMpLAorICAgICAgICBsY2hDb21w
b25lbnRzLmNvbXBvbmVudHNbM10KKyAgICB9OworfQorCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8g
c1JHQlRvTGluZWFyQ29sb3JDb21wb25lbnQgYnV0IGZvciBzb21lIHJlYXNvbgogLy8gaHR0cHM6
Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFu
Y2VkZWYKIC8vIGRvZXNuJ3QgdXNlIHRoZSBzdGFuZGFyZCBzUkdCIC0+IGxpbmVhclJHQiB0aHJl
c2hvbGQgb2YgMC4wNDA0NS4KQEAgLTIyMCw3ICsyOTksNyBAQCBDb2xvck1hdHJpeDo6Q29sb3JN
YXRyaXgoKQogICAgIG1ha2VJZGVudGl0eSgpOwogfQogCi1Db2xvck1hdHJpeDo6Q29sb3JNYXRy
aXgoZmxvYXQgdmFsdWVzWzIwXSkKK0NvbG9yTWF0cml4OjpDb2xvck1hdHJpeChjb25zdCBmbG9h
dCB2YWx1ZXNbMjBdKQogewogICAgIG1fbWF0cml4WzBdWzBdID0gdmFsdWVzWzBdOwogICAgIG1f
bWF0cml4WzBdWzFdID0gdmFsdWVzWzFdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKaW5kZXggNzhlZjgyN2U1Yzk3NDU2MGY1NDUxNjZm
YmVmY2Y3ZjZiNTZiY2RlNy4uYWZlNGZlNmZjMTU4NGU2OTJmZmNhMjkwNjA0NjAyZGZjMmVhYjBm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGls
aXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxp
dGllcy5oCkBAIC0yNSwxMiArMjUsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJD
b2xvci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxhcnJheT4KICNpbmNsdWRl
IDxtYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ29sb3I7CisKIHN0cnVj
dCBGbG9hdENvbXBvbmVudHMgewogICAgIEZsb2F0Q29tcG9uZW50cyhmbG9hdCBhID0gMCwgZmxv
YXQgYiA9IDAsIGZsb2F0IGMgPSAwLCBmbG9hdCBkID0gMCkKICAgICB7CkBAIC00MCw2ICs0Miwx
NCBAQCBzdHJ1Y3QgRmxvYXRDb21wb25lbnRzIHsKICAgICAgICAgY29tcG9uZW50c1szXSA9IGQ7
CiAgICAgfQogCisgICAgRmxvYXRDb21wb25lbnRzKGNvbnN0IHN0ZDo6YXJyYXk8ZmxvYXQsIDQ+
JiB2YWx1ZXMpCisgICAgeworICAgICAgICBjb21wb25lbnRzWzBdID0gdmFsdWVzWzBdOworICAg
ICAgICBjb21wb25lbnRzWzFdID0gdmFsdWVzWzFdOworICAgICAgICBjb21wb25lbnRzWzJdID0g
dmFsdWVzWzJdOworICAgICAgICBjb21wb25lbnRzWzNdID0gdmFsdWVzWzNdOworICAgIH0KKwog
ICAgIEZsb2F0Q29tcG9uZW50cyhjb25zdCBDb2xvciYpOwogCiAgICAgRmxvYXRDb21wb25lbnRz
JiBvcGVyYXRvcis9KGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgcmhzKQpAQCAtOTEsNyArMTAxLDcg
QEAgc3RydWN0IEZsb2F0Q29tcG9uZW50cyB7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogCi0gICAgZmxvYXQgY29tcG9uZW50c1s0XTsKKyAgICBzdGQ6OmFycmF5PGZsb2F0LCA0PiBj
b21wb25lbnRzOwogfTsKIAogc3RydWN0IENvbG9yQ29tcG9uZW50cyB7CkBAIC0xNTgsNiArMTY4
LDEyIEBAIEZsb2F0Q29tcG9uZW50cyBzUkdCQ29sb3JUb0xpbmVhckNvbXBvbmVudHMoY29uc3Qg
Q29sb3ImKTsKIEZsb2F0Q29tcG9uZW50cyBzUkdCVG9MaW5lYXJDb21wb25lbnRzKGNvbnN0IEZs
b2F0Q29tcG9uZW50cyYpOwogRmxvYXRDb21wb25lbnRzIGxpbmVhclRvU1JHQkNvbXBvbmVudHMo
Y29uc3QgRmxvYXRDb21wb25lbnRzJik7CiAKK0Zsb2F0Q29tcG9uZW50cyBsYWJUb1NSR0IoY29u
c3QgRmxvYXRDb21wb25lbnRzJik7CitGbG9hdENvbXBvbmVudHMgTENIVG9TUkdCKGNvbnN0IEZs
b2F0Q29tcG9uZW50cyYpOworCisvLyBUaGUgaHVlIGFuZ2xlIGNvbXBvbmVudCBpcyBpbiBkZWdy
ZWVzLgorRmxvYXRDb21wb25lbnRzIExDSFRvTGFiKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwor
CiBGbG9hdENvbXBvbmVudHMgc1JHQlRvSFNMKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogRmxv
YXRDb21wb25lbnRzIEhTTFRvU1JHQihjb25zdCBGbG9hdENvbXBvbmVudHMmKTsKIApAQCAtMTcy
LDcgKzE4OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ29sb3JNYXRyaXggc2VwaWFNYXRyaXgo
ZmxvYXQpOwogCiAgICAgQ29sb3JNYXRyaXgoKTsKLSAgICBDb2xvck1hdHJpeChmbG9hdFsyMF0p
OworICAgIENvbG9yTWF0cml4KGNvbnN0IGZsb2F0WzIwXSk7CiAgICAgCiAgICAgdm9pZCB0cmFu
c2Zvcm1Db2xvckNvbXBvbmVudHMoRmxvYXRDb21wb25lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKaW5kZXgg
ZTA5ZDI4NzBmNjFlYjU1MzMyMWViNzIzZDQyNDM2YTQ5NGIwNTQyZC4uNzQ2MDYzMWZhZWMwZDg2
MmY1ZGQ4ZTU1YzM2ZWFhMjUyOTExNDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKQEAgLTMzLDE1ICszMywzMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxFeHRlbmRlZENvbG9yPiBFeHRlbmRlZENvbG9yOjpj
cmVhdGUoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkKK1JlZjxFeHRlbmRlZENvbG9yPiBFeHRlbmRlZENvbG9yOjpj
cmVhdGUoZmxvYXQgYzEsIGZsb2F0IGMyLCBmbG9hdCBjMywgZmxvYXQgYWxwaGEsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRlZENvbG9y
KHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhLCBjb2xvclNwYWNlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRXh0ZW5kZWRDb2xvcihjMSwgYzIsIGMzLCBhbHBoYSwgY29sb3JTcGFjZSkpOwog
fQogCiBTdHJpbmcgRXh0ZW5kZWRDb2xvcjo6Y3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDQwKTsKKworICAg
IGlmIChtX2NvbG9yU3BhY2UgPT0gQ29sb3JTcGFjZTo6TGFiKSB7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCJsYWIoIiwKKyAgICAgICAgICAgIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRQcmVjaXNp
b24obV9jaGFubmVscy5jb21wb25lbnRzWzBdKSwKKyAgICAgICAgICAgICIlICIsCisgICAgICAg
ICAgICBGb3JtYXR0ZWROdW1iZXI6OmZpeGVkUHJlY2lzaW9uKG1fY2hhbm5lbHMuY29tcG9uZW50
c1sxXSksCisgICAgICAgICAgICAiICIsCisgICAgICAgICAgICBGb3JtYXR0ZWROdW1iZXI6OmZp
eGVkUHJlY2lzaW9uKG1fY2hhbm5lbHMuY29tcG9uZW50c1syXSkpOworCisgICAgICAgIGlmIChh
bHBoYSgpIDwgMSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgLyAiLCBGb3JtYXR0ZWRO
dW1iZXI6OmZpeGVkUHJlY2lzaW9uKGFscGhhKCkpKTsKKworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnKScpOworICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KKyAgICAK
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImNvbG9yKCIpOwogCiAgICAgc3dpdGNoIChtX2Nv
bG9yU3BhY2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0V4dGVuZGVkQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVu
ZGVkQ29sb3IuaAppbmRleCAxMjc3Zjk0OGYxMjE1NTk1OGM4OTMyY2U5YzYxNzM1ODFlMzE0YWY5
Li5hZjEyZGMxYWQ1ZWZlZWY2NjYwOWMzODY2NWZkYjM0MzA0NmRlYWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAKKyNpbmNsdWRlICJDb2xvclV0aWxp
dGllcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzUsMzEgKzM2LDQxIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXh0ZW5kZWRDb2xvciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEV4dGVuZGVkQ29sb3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEV4dGVuZGVkQ29s
b3I+IGNyZWF0ZShmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBo
YSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0IpOworICAgIHN0YXRpYyBSZWY8RXh0ZW5k
ZWRDb2xvcj4gY3JlYXRlKGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0IGFscGhhLCBDb2xvclNw
YWNlID0gQ29sb3JTcGFjZTo6U1JHQik7CiAKLSAgICBmbG9hdCByZWQoKSBjb25zdCB7IHJldHVy
biBtX3JlZDsgfQotICAgIGZsb2F0IGdyZWVuKCkgY29uc3QgeyByZXR1cm4gbV9ncmVlbjsgfQot
ICAgIGZsb2F0IGJsdWUoKSBjb25zdCB7IHJldHVybiBtX2JsdWU7IH0KLSAgICBmbG9hdCBhbHBo
YSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxwaGE7IH0KKyAgICBmbG9hdCByZWQoKSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKG1fY29sb3JTcGFjZSAhPSBDb2xvclNwYWNlOjpMYWIpOworICAg
ICAgICByZXR1cm4gbV9jaGFubmVscy5jb21wb25lbnRzWzBdOworICAgIH0KKworICAgIGZsb2F0
IGdyZWVuKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NvbG9yU3BhY2UgIT0gQ29s
b3JTcGFjZTo6TGFiKTsKKyAgICAgICAgcmV0dXJuIG1fY2hhbm5lbHMuY29tcG9uZW50c1sxXTsK
KyAgICB9CisKKyAgICBmbG9hdCBibHVlKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVCht
X2NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZTo6TGFiKTsKKyAgICAgICAgcmV0dXJuIG1fY2hhbm5l
bHMuY29tcG9uZW50c1syXTsKKyAgICB9CisKKyAgICBmbG9hdCBhbHBoYSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2hhbm5lbHMuY29tcG9uZW50c1szXTsgfQorCisgICAgY29uc3QgRmxvYXRDb21wb25l
bnRzJiBjaGFubmVscygpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbHM7IH0KIAogICAgIENvbG9y
U3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JTcGFjZTsgfQogCiAgICAg
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBF
eHRlbmRlZENvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSkKLSAgICAgICAgOiBtX3JlZChyKQotICAgICAgICAsIG1fZ3JlZW4oZykK
LSAgICAgICAgLCBtX2JsdWUoYikKLSAgICAgICAgLCBtX2FscGhhKGEpCisgICAgRXh0ZW5kZWRD
b2xvcihmbG9hdCBjMSwgZmxvYXQgYzIsIGZsb2F0IGMzLCBmbG9hdCBhbHBoYSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlKQorICAgICAgICA6IG1fY2hhbm5lbHMoYzEsIGMyLCBjMywgYWxwaGEpCiAg
ICAgICAgICwgbV9jb2xvclNwYWNlKGNvbG9yU3BhY2UpCiAgICAgeyB9CiAKLSAgICBmbG9hdCBt
X3JlZCB7IDAgfTsKLSAgICBmbG9hdCBtX2dyZWVuIHsgMCB9OwotICAgIGZsb2F0IG1fYmx1ZSB7
IDAgfTsKLSAgICBmbG9hdCBtX2FscGhhIHsgMCB9OwotCisgICAgRmxvYXRDb21wb25lbnRzIG1f
Y2hhbm5lbHM7CiAgICAgQ29sb3JTcGFjZSBtX2NvbG9yU3BhY2UgeyBDb2xvclNwYWNlOjpTUkdC
IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9y
Q0cuY3BwCmluZGV4IGNkZmZhM2Y2MGU5YWQxOGYyYTQwYThlODk4NTJhMzZhMzM3ZjUxMDAuLjgx
YTVhNDI4MDg1ZTE3YjEwYzYwYjFlZTQwNWM2NDBlNTVlN2JmY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCkBAIC0xMDUsMTYgKzEwNSwy
MSBAQCBzdGF0aWMgQ0dDb2xvclJlZiBsZWFrQ0dDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiB7
CiAgICAgQ0dGbG9hdCBjb21wb25lbnRzWzRdOwogICAgIGlmIChjb2xvci5pc0V4dGVuZGVkKCkp
IHsKLSAgICAgICAgRXh0ZW5kZWRDb2xvciYgZXh0ZW5kZWRDb2xvciA9IGNvbG9yLmFzRXh0ZW5k
ZWQoKTsKLSAgICAgICAgY29tcG9uZW50c1swXSA9IGV4dGVuZGVkQ29sb3IucmVkKCk7Ci0gICAg
ICAgIGNvbXBvbmVudHNbMV0gPSBleHRlbmRlZENvbG9yLmdyZWVuKCk7Ci0gICAgICAgIGNvbXBv
bmVudHNbMl0gPSBleHRlbmRlZENvbG9yLmJsdWUoKTsKLSAgICAgICAgY29tcG9uZW50c1szXSA9
IGV4dGVuZGVkQ29sb3IuYWxwaGEoKTsKKyAgICAgICAgY29uc3QgYXV0byYgZXh0ZW5kZWRDb2xv
ciA9IGNvbG9yLmFzRXh0ZW5kZWQoKTsKKyAgICAgICAgYXV0byBjaGFubmVscyA9IGV4dGVuZGVk
Q29sb3IuY2hhbm5lbHMoKTsKKyAgICAgICAgY29tcG9uZW50c1swXSA9IGNoYW5uZWxzLmNvbXBv
bmVudHNbMF07CisgICAgICAgIGNvbXBvbmVudHNbMV0gPSBjaGFubmVscy5jb21wb25lbnRzWzFd
OworICAgICAgICBjb21wb25lbnRzWzJdID0gY2hhbm5lbHMuY29tcG9uZW50c1syXTsKKyAgICAg
ICAgY29tcG9uZW50c1szXSA9IGNoYW5uZWxzLmNvbXBvbmVudHNbM107CiAgICAgICAgIHN3aXRj
aCAoZXh0ZW5kZWRDb2xvci5jb2xvclNwYWNlKCkpIHsKICAgICAgICAgY2FzZSBDb2xvclNwYWNl
OjpTUkdCOgogICAgICAgICAgICAgcmV0dXJuIENHQ29sb3JDcmVhdGUoc1JHQkNvbG9yU3BhY2VS
ZWYoKSwgY29tcG9uZW50cyk7CiAgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgog
ICAgICAgICAgICAgcmV0dXJuIENHQ29sb3JDcmVhdGUoZGlzcGxheVAzQ29sb3JTcGFjZVJlZigp
LCBjb21wb25lbnRzKTsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgICAg
ICAvLyBGSVhNRTogVGhpcyB3aWxsIGdpdmUgaW5jb3JyZWN0IHJlc3VsdHMgb24gcGxhdGZvcm1z
IHRoYXQgZG9uJ3Qgc3VwcG9ydCBDR0NvbG9yU3BhY2VDcmVhdGVMYWIoKS4gV2Ugc2hvdWxkCisg
ICAgICAgICAgICAvLyBjb252ZXJ0IHRvIHNSR0IuCisgICAgICAgICAgICByZXR1cm4gQ0dDb2xv
ckNyZWF0ZShsYWJENTBDb2xvclNwYWNlUmVmKCksIGNvbXBvbmVudHMpOwogICAgICAgICBjYXNl
IENvbG9yU3BhY2U6OkxpbmVhclJHQjoKICAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBldmVy
IGNyZWF0ZSBDR0NvbG9yUmVmcyBpbiB0aGVzZSBzcGFjZXM/IEl0IG1heSBvbmx5IGJlIEltYWdl
QnVmZmVycy4KICAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKHNSR0JDb2xvclNwYWNl
UmVmKCksIGNvbXBvbmVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDQ5NmVjYTMyNGQzZTRk
YTIyZmNhNTk5OThlYjVlZjVlZTczZDIwOWEuLjljMzYzZTMyNDFjZWE1NzI1MmIzMDhjYmU5MTM1
MDRjZjlmZmI1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTEzOSw2ICsxMzksMjEgQEAgQ0dD
b2xvclNwYWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKQogICAgIHJldHVybiBkaXNwbGF5
UDNDb2xvclNwYWNlOwogfQogCitDR0NvbG9yU3BhY2VSZWYgbGFiRDUwQ29sb3JTcGFjZVJlZigp
Cit7CisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsYWJDb2xvclNwYWNlOworICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywg
W10geworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBjb25zdCBDR0Zsb2F0IGQ1MFdoaXRl
UG9pbnRbXSA9IHsgMC45NjQyMiwgMS4wMDAwMCwgMC44MjUyMSB9OworICAgICAgICBsYWJDb2xv
clNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlTGFiKGQ1MFdoaXRlUG9pbnQsIG51bGxwdHIsIG51
bGxwdHIpOworI2Vsc2UKKyAgICAgICAgbGFiQ29sb3JTcGFjZSA9IHNSR0JDb2xvclNwYWNlUmVm
KCk7CisjZW5kaWYKKyAgICB9KTsKKyAgICByZXR1cm4gbGFiQ29sb3JTcGFjZTsKK30KKwogc3Rh
dGljIEludGVycG9sYXRpb25RdWFsaXR5IGNvbnZlcnRJbnRlcnBvbGF0aW9uUXVhbGl0eShDR0lu
dGVycG9sYXRpb25RdWFsaXR5IHF1YWxpdHkpCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuaAppbmRleCA1ZDU5ZDE1ZGJlZGY1ZTM1MjM5YjM3YWI1MmVjNDQ5YTkxMmJkNGQ4
Li4wYzE3NGJjODM1YTY1M2E2ZDQ2NmQwNjJhYTQ1ZjEwODAzZWYwYWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENH
LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV0VCQ09SRV9FWFBPUlQg
Q0dDb2xvclNwYWNlUmVmIHNSR0JDb2xvclNwYWNlUmVmKCk7CiBXRUJDT1JFX0VYUE9SVCBDR0Nv
bG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQg
Q0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKK1dFQkNPUkVfRVhQT1JU
IENHQ29sb3JTcGFjZVJlZiBsYWJENTBDb2xvclNwYWNlUmVmKCk7IC8vIEwqYSpiIGNvbG9yc3Bh
Y2UgV2l0aCBENTAgd2hpdGUgcG9pbnQuCiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYg
bGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogCiBDR0FmZmluZVRyYW5zZm9ybSBnZXRVc2VyVG9C
YXNlQ1RNKENHQ29udGV4dFJlZik7CkBAIC00Nyw2ICs0OCw4IEBAIHN0YXRpYyBpbmxpbmUgQ0dD
b2xvclNwYWNlUmVmIGNhY2hlZENHQ29sb3JTcGFjZShDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiAg
ICAgICAgIHJldHVybiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCk7CiAgICAgY2FzZSBDb2xvclNw
YWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHJldHVybiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7
CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHJldHVybiBsYWJENTBDb2xvclNw
YWNlUmVmKCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBz
UkdCQ29sb3JTcGFjZVJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwCmluZGV4IDMwYmI0OGNj
OGYwYzQ5NTQ0OGFiNjVmNjgxMTcyY2NjNmJjYTUzNWMuLjE3MDMyZDI0NDE5MGQxZmQyYjBkMWQ5
NzBkZGZlMTAyZDNhZWY0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKQEAgLTIzNiw3ICsy
MzYsNyBAQCBib29sIEludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29s
b3IoRmxvYXRDb21wb25lbnRzJiBzUkdCQ29sb3JDbwogICAgIHNSR0JDb2xvckNvbXBvbmVudHMg
PSBIU0xUb1NSR0IoaHNsQ29tcG9uZW50cyk7CiAgICAgCiAgICAgLy8gQXBwbHkgdGhlIG1hdHJp
eC4gU2VlIHJkYXI6Ly9wcm9ibGVtLzQxMTQ2NjUwIGZvciBob3cgdGhpcyBtYXRyaXggd2FzIGRl
cml2ZWQuCi0gICAgZmxvYXQgbWF0cml4VmFsdWVzWzIwXSA9IHsKKyAgICBjb25zdCBmbG9hdCBt
YXRyaXhWYWx1ZXNbMjBdID0gewogICAgICAgIC0wLjc3MCwgIDAuMDU5LCAtMC4wODksIDAsIDEs
CiAgICAgICAgIDAuMDMwLCAtMC43NDEsIC0wLjA4OSwgMCwgMSwKICAgICAgICAgMC4wMzAsICAw
LjA1OSwgLTAuODkwLCAwLCAxLApAQCAtMjUyLDcgKzI1Miw3IEBAIGJvb2wgSW52ZXJ0TGlnaHRu
ZXNzRmlsdGVyT3BlcmF0aW9uOjppbnZlcnNlVHJhbnNmb3JtQ29sb3IoRmxvYXRDb21wb25lbnRz
JiBzUkdCCiB7CiAgICAgRmxvYXRDb21wb25lbnRzIHJnYkNvbXBvbmVudHMgPSBzUkdCQ29sb3JD
b21wb25lbnRzOwogICAgIC8vIEFwcGx5IHRoZSBtYXRyaXguCi0gICAgZmxvYXQgbWF0cml4VmFs
dWVzWzIwXSA9IHsKKyAgICBjb25zdCBmbG9hdCBtYXRyaXhWYWx1ZXNbMjBdID0gewogICAgICAg
ICAtMS4zMDAsIC0wLjA5NywgIDAuMTQ3LCAwLCAxLjI1LAogICAgICAgICAtMC4wNDksIC0xLjM0
NywgIDAuMTQ2LCAwLCAxLjI1LAogICAgICAgICAtMC4wNDksIC0wLjA5NywgLTEuMTA0LCAwLCAx
LjI1LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Nv
bG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0
ay5jcHAKaW5kZXggZDY2ODRhNzIxNzk1NjIyYjc4ZjlhMzVkMDk1NDZkN2U3MmNlNDI3Yy4uZjk2
ZjhjZjZiMmUyMTk4OGU3ODE2NjQ2ZGNiZWNjMjJlNDA3ZTA4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwCkBAIC0yMSw2ICsyMSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKIAorI2luY2x1ZGUg
IkNvbG9yVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zNSwxMiArMzYsOCBAQCBDb2xvcjo6Q29sb3IoY29uc3QgR2RrUkdCQSYgYykK
IAogQ29sb3I6Om9wZXJhdG9yIEdka1JHQkEoKSBjb25zdAogewotICAgIGlmIChpc0V4dGVuZGVk
KCkpCi0gICAgICAgIHJldHVybiB7IGFzRXh0ZW5kZWQoKS5yZWQoKSwgYXNFeHRlbmRlZCgpLmdy
ZWVuKCksIGFzRXh0ZW5kZWQoKS5ibHVlKCksIGFzRXh0ZW5kZWQoKS5hbHBoYSgpIH07Ci0KLSAg
ICBkb3VibGUgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7Ci0gICAgZ2V0UkdCQShyZWQsIGdyZWVu
LCBibHVlLCBhbHBoYSk7Ci0gICAgcmV0dXJuIHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfTsK
KyAgICBhdXRvIGFzUkdCQSA9IGxvc3N5VG9TUkdCQUNvbXBvbmVudHMoKTsKKyAgICByZXR1cm4g
eyBzdGF0aWNfY2FzdDxkb3VibGU+KGFzUkdCQVswXSksIHN0YXRpY19jYXN0PGRvdWJsZT4oYXNS
R0JBWzFdKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihhc1JHQkFbMl0pLCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KGFzUkdCQVszXSkgfTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9yRGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9yRGlyZWN0MkQuY3BwCmluZGV4IGRlYWRkZDZmOGY4ZjMw
N2IzOWJmMWMxMWM0YmRiNGE0YzNiNDEwYjAuLjNlZTZjN2NjZjEyY2VmZTA2MTMwYTU3ZDZkMTVm
YzkxNTQ4MTI5N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Db2xvckRpcmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vQ29sb3JEaXJlY3QyRC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRG
T1JNKFdJTikKIAorI2luY2x1ZGUgIkNvbG9yVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8ZDJkMS5o
PgogI2luY2x1ZGUgPGQyZDFfMWhlbHBlci5oPgogCkBAIC00MCwxNiArNDEsMTggQEAgQ29sb3I6
OkNvbG9yKEQyRDFfQ09MT1JfRiBjb2xvcikKIAogQ29sb3I6Om9wZXJhdG9yIEQyRDFfQ09MT1Jf
RigpIGNvbnN0CiB7CisgICAgaWYgKGlzRXh0ZW5kZWQoKSkgeworICAgICAgICBhdXRvIGFzUkdC
QSA9IGxvc3N5VG9TUkdCQUNvbXBvbmVudHMoKTsKKyAgICAgICAgcmV0dXJuIEQyRDE6OkNvbG9y
Rihhc1JHQkFbMF0sIGFzUkdCQVsxXSwgYXNSR0JBWzJdLCBhc1JHQkFbM10pOworICAgIH0KICAg
ICBmbG9hdCBjb2xvckFscGhhID0gYWxwaGEoKSAvIDI1NS4wZjsKLQogICAgIHJldHVybiBEMkQx
OjpDb2xvckYocmdiKCksIGNvbG9yQWxwaGEpOwogfQogCiBDb2xvcjo6b3BlcmF0b3IgRDJEMV9W
RUNUT1JfNEYoKSBjb25zdAogewotICAgIGZsb2F0IHIsIGcsIGIsIGE7Ci0gICAgZ2V0UkdCQShy
LCBnLCBiLCBhKTsKLSAgICByZXR1cm4gRDJEMTo6VmVjdG9yNEYociwgZywgYiwgYSk7CisgICAg
YXV0byBhc1JHQkEgPSBsb3NzeVRvU1JHQkFDb21wb25lbnRzKCk7CisgICAgcmV0dXJuIEQyRDE6
OlZlY3RvcjRGKGFzUkdCQVswXSwgYXNSR0JBWzFdLCBhc1JHQkFbMl0sIGFzUkdCQVszXSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBiMGI5MDA0ZTFkZjFlZGVkMzgzMWYyNzMxMmRjYzM2NWJiMDcxZmQyLi41
MWYxY2FjYTgzMWY5OGQ4MjA2NTFkZDMzMzM5ZTUzZmE5NTZjOGFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjAtMDEtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCkgYW5kIGdyYXkoKSBjb2xvcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUGFyc2lu
ZyB0ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKyAgICAgICAgTW9yZSByZW5kZXJpbmcg
dGVzdHMgbmVlZGVkLgorCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorCiAyMDIwLTAxLTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNl
Lmh0bWwgV1BUIHRlc3QgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDUxYWM0M2QzZWNi
YWE2MGYwM2VkOTdkNjA4MmUxYTU1YTYxZDMzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
OSBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiBsYWIsIGxjaCBhbmQgZ3JheSBjb2xvcnMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitsYWIoKQorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxKSIpIGlzICJs
YWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MCUgMCAwIC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvMC41KSIpIGlzICJsYWIoMjAlIDAg
MTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigy
MCUgMCAxMC81MCUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwMCUgMCAxMC81MCUpIikgaXMgImxhYig0MDAl
IDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxh
Yig1MCUgLTE2MCAxNjApIikgaXMgImxhYig1MCUgLTE2MCAxNjApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTIwMCAyMDApIikgaXMgImxhYig1MCUg
LTIwMCAyMDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigw
JSAwIDAgLyAtMTAlKSIpIGlzICJsYWIoMCUgMCAwIC8gMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDExMCUpIikgaXMgImxhYigwJSAwIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAz
MDAlKSIpIGlzICJsYWIoMCUgMCAwKSIKKworbGNoKCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMSkiKSBp
cyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDAlIDAgMGRlZyAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwMCUgMjMwIDBkZWcgLyAwLjUpIikg
aXMgImxhYigxMDAlIDIzMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzAuNSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2IDE3
LjEwMSAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDIwJSA1MCAyMGRlZy81MCUpIikgaXMgImxhYigyMCUgNDYuOTg0NiAxNy4xMDEgLyAwLjUpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcg
LyAtMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0IC8gMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIDExMCUpIikgaXMg
ImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgxMCUgMjAgMS4yOHJhZCkiKSBpcyAibGFiKDEwJSA1LjczNDMgMTkuMTYw
MykiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAz
ODBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTM0MGRlZykiKSBpcyAibGFiKDEwJSAx
OC43OTM5IDYuODQwNCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDEwJSAyMCA3NDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMGRlZykiKSBp
cyAibGFiKDEwJSAxOC43OTM5IDYuODQwNCkiCisKK2dyYXkoKQorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMCkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEwJSkiKSBpcyAibGFi
KDEwJSAwIDAgLyAwLjEpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImdyYXkoMTIwIC8gMTAlKSIpIGlzICJsYWIoMTIwJSAwIDAgLyAwLjEpIgorCitUZXN0IGludmFs
aWQgdmFsdWVzCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAg
MCAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYigwJSAwJSAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMSkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAw
ZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwIDAgMCAvIDAuNSkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK0ZBSUwgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMCUgMCAwIC8gMC41KSIpIHNob3VsZCBiZSByZ2JhKDAsIDAsIDAsIDApLiBXYXMg
bGFiKDAlIDAgMCAvIDAuNSkuCitGQUlMIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDIwJSAxMCAxMCkiKSBzaG91bGQgYmUgcmdiYSgwLCAwLCAwLCAwKS4gV2FzIGxhYigy
MCUgOS44NDgwOCAxLjczNjQ4KS4KK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTAgLyAw
LjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiZ3JheSgxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCAxMCkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5
KDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0
Zjk2N2FlODgwOWFlZDE1ODMzMWE2ZjEyODI2YmUwNDRkYWM2ZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbApAQCAtMCwwICsx
LDk3IEBACis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdCB0aGUgcGFyc2luZyBvZiBsYWIsIGxjaCBhbmQgZ3JheSBjb2xvcnMuIik7CisK
KyAgICBmdW5jdGlvbiBjb21wdXRlZFN0eWxlKHByb3BlcnR5LCB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVy
dHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSBnZXRDb21w
dXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7
CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5uZXJTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAg
eworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
ICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgICAgICByZXR1
cm4gZGl2LnN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkg
KyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIGlm
IChleHBlY3RlZCA9PT0gbnVsbCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gIiI7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICIn
ICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZGVidWcoJ2xhYigpJyk7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDApIiwgImxh
YigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigw
JSAwIDAgLyAxKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41KSIpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvMC41KSIsICJs
YWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigyMCUgMCAxMC81MCUpIiwgImxhYigyMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwMCUgMCAxMC81MCUpIiwgImxhYig0
MDAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYig1MCUgLTE2MCAxNjApIiwgImxhYig1MCUgLTE2MCAxNjApIik7CisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTIwMCAyMDApIiwgImxhYig1MCUgLTIw
MCAyMDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAw
IDAgLyAtMTAlKSIsICJsYWIoMCUgMCAwIC8gMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDExMCUpIiwgImxhYigwJSAwIDApIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAzMDAlKSIsICJs
YWIoMCUgMCAwKSIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdsY2goKScpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnKSIsICJsYWIo
MCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUg
MCAwZGVnIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwMCUgMjMwIDBkZWcg
LyAwLjUpIiwgImxhYigxMDAlIDIzMCAwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzAuNSkiLCAibGFiKDIwJSA0Ni45ODQ2
IDE3LjEwMSAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDIwJSA1MCAyMGRlZy81MCUpIiwgImxhYigyMCUgNDYuOTg0NiAxNy4xMDEgLyAwLjUpIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcg
LyAtMTAlKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0IC8gMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIDExMCUpIiwgImxhYigx
MCUgMTguNzkzOSA2Ljg0MDQpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgxMCUgMjAgMS4yOHJhZCkiLCAibGFiKDEwJSA1LjczNDMgMTkuMTYwMykiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAzODBkZWcpIiwg
ImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgxMCUgMjAgLTM0MGRlZykiLCAibGFiKDEwJSAxOC43OTM5IDYuODQwNCki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCA3NDBk
ZWcpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMGRlZykiLCAibGFiKDEwJSAxOC43OTM5IDYu
ODQwNCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnZ3JheSgpJyk7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMCkiLCAibGFiKDAlIDAgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEwJSkiLCAi
bGFiKDEwJSAwIDAgLyAwLjEpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImdyYXkoMTIwIC8gMTAlKSIsICJsYWIoMTIwJSAwIDAgLyAwLjEpIik7CisKKyAgICBkZWJ1
ZygnJyk7CisgICAgZGVidWcoJ1Rlc3QgaW52YWxpZCB2YWx1ZXMnKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAgMCAwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAwKSIsICJy
Z2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgMSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEwJSkiLCAicmdiYSgwLCAwLCAwLCAwKSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwZGVnKSIs
ICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigwJSAwJSAwZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIsICJyZ2JhKDAsIDAsIDAs
IDApIik7CisKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAgMCAw
IC8gMC41KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaCgwJSAwIDAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsgLy8g
Tm8gdW5pdGxlc3MgemVybyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJraXQub3JnL2IvMjA1
NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTAp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsgLy8gTm8gdW5pdGxlc3MgYW5nbGUuIEN1cnJlbnRseSBm
YWlsczogd2Via2l0Lm9yZy9iLzIwNTczMworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTAgLyAw
LjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEwJSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAs
IDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTAp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAiZ3JheSgxMCAvIDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisKKzwvc2NyaXB0
PgorICAgIAorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399486</attachid>
            <date>2020-05-15 09:35:45 -0700</date>
            <delta_ts>2021-01-03 11:57:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20200515093544.patch</filename>
            <type>text/plain</type>
            <size>42171</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI3MDQzODIxNjFhY2My
ZmEwOTcyMzBmOTcyYmVhMWJkNjE2NTNhMy4uZTNiNjc1ZmJkNTc5ZmVlMjQyNDVlZTFjODlkOGVm
ZDE5MGFlMDE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTA1LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFi
KCksIGxjaCgpIGFuZCBncmF5KCkgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkg
YW5kIGdyYXkoKSBjb2xvcnMgcGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGFiLWNvbG9ycy4KKyAgICAgICAgCisgICAgICAgIEJlY2F1c2Ugd2UgaGF2ZSB0byBwcmVzZXJ2
ZSB0aGVtIGFzIGxhYigpIGNvbG9ycyBmb3IgY29tcHV0ZWQgc3R5bGUsIHRoZXkgYXJlIHN0b3Jl
ZCBhcworICAgICAgICBmbG9hdHMgaW4gRXh0ZW5kZWRDb2xvciwgd2hpY2ggaXMgbWFkZSBtb3Jl
IGdlbmVyaWMgdG8gaGFuZGxlIGFueSA0LWZsb2F0IGNvbG9yIGZvcm1hdC4KKyAgICAgICAgV2Ug
YWRkIGEgQ29sb3JTcGFjZTo6TGFiLCBhbmQgd2hlbiBjcmVhdGluZyBjb2xvcnMgdG8gcGFpbnQs
IHJlbHkgb24gQ29yZUdyYXBoaWNzIHRvIGNyZWF0ZQorICAgICAgICBDR0NvbG9yUmVmcyBpbiB0
aGUgbGFiIGNvbG9yc3BhY2UsIHVzaW5nIEQ1MCB3aGl0ZSB2YWx1ZXMgcGVyIHNwZWMuCisgICAg
ICAgIAorICAgICAgICBsYWIgPC0+IGxjaCA8LT4gc1JHQiBjb252ZXJzaW9uIGZhY2lsaXRpZXMg
YXJlIGFkZGVkIHRvIENvbG9yVXRpbGl0aWVzLiBXZSBkb24ndAorICAgICAgICBldmVyIGNvbnZl
cnQgdG8gc1JHQiB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIGJ1dCBwcm9iYWJseSB3aWxsIGluIGZ1
dHVyZSBmb3IgaW50ZXJwb2xhdGluZworICAgICAgICBpbiBncmFkaWVudHMgYW5kIGFuaW1hdGlv
bnMgd2l0aCBtaXhlZCBjb2xvciB0eXBlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlTGFiUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaWVYWVpUb0xpbmVhclNSR0IpOgorICAgICAgICAoV2ViQ29yZTo6bGFiWFlaKToK
KyAgICAgICAgKFdlYkNvcmU6OmxhYlRvQ0lFWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OmxhYlRv
U1JHQik6CisgICAgICAgIChXZWJDb3JlOjpMQ0hUb1NSR0IpOgorICAgICAgICAoV2ViQ29yZTo6
TENIVG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpibHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
ZGVkQ29sb3I6OmFscGhhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6
OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OkV4dGVuZGVk
Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkQ1MENvbG9y
U3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmg6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDR0NvbG9yU3BhY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludmVydExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6dHJhbnNmb3JtQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW52ZXJ0TGlnaHRuZXNzRmlsdGVyT3BlcmF0aW9u
OjppbnZlcnNlVHJhbnNmb3JtQ29sb3IgY29uc3QpOgorCiAyMDIwLTA1LTE0ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gRG9uJ3QgY2xl
YXIgTm93UGxheWluZyBzdGF0ZSB1bmxlc3MgaXQgd2FzIHNldApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggNWExYjQ1YTIxZWY3MDA0ZDhmNTUwYzI4YWU5MzJiMTMyMWVkMzE0Mi4uYjEwMjQwNDkxYzg0
NDI1MzA1MzMwNTk1MGZkMjFiMTI0Y2Y1ZTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMDgw
LDYgKzEwODAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9ySGFz
aC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0
Q29udHJvbGxlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGFzaEFycmF5LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYThmOGZhNmRiYzY3MWZi
YzM0YzU5MjBmOGFkNGNjMzYzY2I5MGY4Li4wYTExMjQ5ZGEwNDNjNjA0ZmZjOGRhNWNiZmRhMjg4
MmMwMWJmNWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zNjMsNiArMzYzLDcgQEAKIAkJMEZFQTNFODAxOTFCMzE2OTAwMEYx
QjU1IC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUEzRTdFMTkxQjMxNjkwMDBGMUI1
NSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFQTNFODQxOTFCMzFCRjAwMEYx
QjU1IC8qIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBM0U4MjE5MUIzMUJGMDAwRjFC
NTUgLyogU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkVBM0U4ODE5MUIzQkQ3MDAw
RjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQTNFODYxOTFCM0JENzAwMEYxQjU1
IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkVBRjY2QjIzQkZDMzlFMDA0MDMwREEg
LyogQ29sb3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGRTZDNzZDMUZCRkI3QTYwMDI1QzA1MyAvKiBDb2xvclV0aWxpdGllcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRUMxMjBD
MjJCRjJDRDIwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzEyMDkyMkJGMkNDNzAw
NEU5RDM1IC8qIExheWVyQW5jZXN0b3JDbGlwcGluZ1N0YWNrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZGM0I5MjkxRUUzQjZERTAwQjg0MTQ0
IC8qIEpTRE9NUXVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZGM0I5MjUxRUUzQjZERTAwQjg0MTQ0IC8qIEpTRE9NUXVhZC5oICovOyB9OwogCQkw
RkYzQjkyQjFFRTNCNkRFMDBCODQxNDQgLyogSlNET01RdWFkSW5pdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGM0I5MjcxRUUzQjZERTAwQjg0MTQ0
IC8qIEpTRE9NUXVhZEluaXQuaCAqLzsgfTsKQEAgLTI5ODc2LDYgKzI5ODc3LDcgQEAKIAkJCQlD
RTUxNjlFNzIxRjFCODQ3MDBFQTRGNzggLyogQ29sb3JJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUVERTNBNTAwMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM4MkRGNTgxMEE4RDVDOTAwOTI1NjUyIC8qIENvbG9yU3BhY2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRUFGNjZCMjNCRkMzOUUwMDQwMzBEQSAvKiBDb2xvclV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNERDQ1NEUxMjM2Qzk1QzAwOUE3OTg1IC8qIENvbHVtbkluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCTQzRURENjdGMUI0ODVEQkYwMDY0MEU3NSAvKiBDb21iaW5lZEZp
bHRlcnNBbHBoYWJldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0RDkxQUM0QjJERDAwN0I4
NUI1IC8qIENvbWJpbmVkVVJMRmlsdGVycy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDZmNjdiY2M5ZDIzNWU2ZWE2YmEyMTllNDgxMmQ5
ZjIwOGQ1NmI1M2MuLmE5MWEyYWJlNDFlYjZhYzcwZTk5MDgxZjNmZWY1MTA0NzViMGI0YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMjU3LDYgKzEyNTcsOSBA
QCByZ2IKIHJnYmEKIGhzbAogaHNsYQorbGFiCitsY2gKKy8vIGdyYXkKIC8vY29sb3IKIAogLy8g
dHJhbnNmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggMzg3ZTU5ODI5YmM4ZDI2NDcxZmE2ZDFhOGRmZjAz
YjdkMDM3ZjAwYi4uYTc0NDFlNjhjNDU3MjQxMTFhYzVmYTljZDRkM2E2YjM5ZjY4M2RhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkNTU1BhaW50SW1hZ2VWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUG9v
bC5oIgorI2luY2x1ZGUgIkNvbG9yVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGFpci5oIgogI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTdHlsZUNvbG9yLmgi
CkBAIC0yMzcsNiArMjM4LDcgQEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lRm9u
dFdlaWdodE51bWJlcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIGlubGluZSBib29sIHNo
b3VsZEFjY2VwdFVuaXRsZXNzVmFsdWUoZG91YmxlIHZhbHVlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MpCiB7CiAgICAgLy8gRklYTUU6IFByZXNl
bnRhdGlvbmFsIEhUTUwgYXR0cmlidXRlcyBzaG91bGRuJ3QgdXNlIHRoZSBDU1MgcGFyc2VyIGZv
ciBsZW5ndGhzCisgICAgLy8gRklYTUU6IFVuaXRsZXNzIHplcm8gc2hvdWxkIG5vdCBhbHdheXMg
YmUgYWxsb3dlZC4gd2Via2l0Lm9yZy9iLzIwNTczMy4KICAgICByZXR1cm4gdmFsdWUgPT0gMAog
ICAgICAgICB8fCBpc1VuaXRMZXNzVmFsdWVQYXJzaW5nRW5hYmxlZEZvck1vZGUoY3NzUGFyc2Vy
TW9kZSkKICAgICAgICAgfHwgKGNzc1BhcnNlck1vZGUgPT0gSFRNTFF1aXJrc01vZGUgJiYgdW5p
dGxlc3MgPT0gVW5pdGxlc3NRdWlyazo6QWxsb3cpOwpAQCAtNjQ4LDYgKzY1MCwxMDggQEAgc3Rh
dGljIENvbG9yIHBhcnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Q1NTUGFyc2VyTW9kZSBjc3NQYXIKICAgICByZXR1cm4gQ29sb3IobWFrZVJHQkFGcm9tSFNMQShz
dGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVswXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xv
ckFycmF5WzFdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMl0pLCBzdGF0aWNfY2Fz
dDxmbG9hdD4oYWxwaGEpKSk7CiB9CiAKK3N0YXRpYyBib29sIHBhcnNlT3B0aW9uYWxBbHBoYShD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgZmxvYXQmIGFscGhhKQoreworICAgIGFscGhhID0g
MS4wZjsKKyAgICBpZiAoY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShyYW5nZSkpIHsK
KyAgICAgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9IGNvbnN1bWVQZXJjZW50KHJhbmdlLCBWYWx1
ZVJhbmdlQWxsKTsKKyAgICAgICAgaWYgKGFscGhhUGFyYW1ldGVyKQorICAgICAgICAgICAgYWxw
aGEgPSBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSAvIDEwMC4w
LCAwLjAsIDEuMCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYWxwaGFQYXJhbWV0ZXIg
PSBjb25zdW1lTnVtYmVyKHJhbmdlLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICAgICAgICAgIGlmICgh
YWxwaGFQYXJhbWV0ZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgYWxwaGEgPSBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSwg
MC4wLCAxLjApOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitzdGF0
aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQor
eworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlTGFiKTsK
KyAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOwor
CisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdlQWxs
KTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisgICAgCisg
ICAgYXV0byBhVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAg
IGlmICghYVZhbHVlKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKyAgICBhdXRvIGJWYWx1ZSA9
IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFiVmFsdWUpCisg
ICAgICAgIHJldHVybiBDb2xvcigpOworCisgICAgZmxvYXQgYWxwaGE7CisgICAgaWYgKCFwYXJz
ZU9wdGlvbmFsQWxwaGEoYXJncywgYWxwaGEpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKwor
ICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIHJl
dHVybiBDb2xvcihsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgYVZhbHVlLT5mbG9hdFZhbHVlKCks
IGJWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBhbHBoYSwgQ29sb3JTcGFjZTo6TGFiKTsKK30KKworc3Rh
dGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkK
K3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUxjaCk7
CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsK
KworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnQoYXJncywgVmFsdWVSYW5nZUFs
bCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiBDb2xvcigpOworICAgIAor
ICAgIGF1dG8gY2hyb21hVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghY2hyb21hVmFsdWUpCisgICAgICAgIHJldHVybiBDb2xvcigpOworCisgICAg
Ly8gSHVlIGlzIDxudW1iZXI+IG9yIDxhbmdsZT4gKGRpc2FsbG93aW5nIHVuaXRsZXNzIHplcm8p
LgorICAgIGF1dG8gaHVlVmFsdWUgPSBjb25zdW1lQW5nbGUoYXJncywgSFRNTFN0YW5kYXJkTW9k
ZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKKyAgICBmbG9hdCBhbmdsZUluRGVncmVlczsKKyAg
ICBpZiAoIWh1ZVZhbHVlKSB7CisgICAgICAgIGh1ZVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdz
LCBWYWx1ZVJhbmdlQWxsKTsKKyAgICAgICAgaWYgKCFodWVWYWx1ZSkKKyAgICAgICAgICAgIHJl
dHVybiBDb2xvcigpOworICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZhbHVlLT5kb3VibGVW
YWx1ZSgpOworICAgIH0gZWxzZQorICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZhbHVlLT5j
b21wdXRlRGVncmVlcygpOworCisgICAgYW5nbGVJbkRlZ3JlZXMgPSBmbW9kZihhbmdsZUluRGVn
cmVlcywgMzYwLjBmKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjApCisgICAgICAgIGFu
Z2xlSW5EZWdyZWVzICs9IDM2MC4wZjsKKworICAgIGZsb2F0IGFscGhhOworICAgIGlmICghcGFy
c2VPcHRpb25hbEFscGhhKGFyZ3MsIGFscGhhKSkKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisK
KyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisKKyAgICBh
dXRvIGxhYkNvbG9yID0gTENIVG9MYWIoeyBsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgY2hyb21h
VmFsdWUtPmZsb2F0VmFsdWUoKSwgYW5nbGVJbkRlZ3JlZXMsIGFscGhhIH0pOworICAgIHJldHVy
biBDb2xvcihsYWJDb2xvci5jb21wb25lbnRzWzBdLCBsYWJDb2xvci5jb21wb25lbnRzWzFdLCBs
YWJDb2xvci5jb21wb25lbnRzWzJdLCBsYWJDb2xvci5jb21wb25lbnRzWzNdLCBDb2xvclNwYWNl
OjpMYWIpOworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VHcmF5UGFyYW1ldGVycyhDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQo
KSA9PSBDU1NWYWx1ZUdyYXkpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1
bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICAvLyBVbmxpa2UgbGFiL2xjaCwgZ3JheSgpIHRha2Vz
IGEgbnVtYmVyLCBidXQgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lz
c3Vlcy80NjQ4CisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVl
UmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KyAgICAKKyAgICBmbG9hdCBhbHBoYTsKKyAgICBpZiAoIXBhcnNlT3B0aW9uYWxBbHBoYShhcmdz
LCBhbHBoYSkpCisgICAgICAgIHJldHVybiBDb2xvcigpOworCisgICAgaWYgKCFhcmdzLmF0RW5k
KCkpCisgICAgICAgIHJldHVybiBDb2xvcigpOworCisgICAgcmV0dXJuIENvbG9yKGxpZ2h0bmVz
cy0+ZmxvYXRWYWx1ZSgpLCAwLCAwLCBhbHBoYSwgQ29sb3JTcGFjZTo6TGFiKTsKK30KKwogc3Rh
dGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCiB7CiAgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NT
VmFsdWVDb2xvcik7CkBAIC03NDEsNiArODQ1LDE1IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9y
RnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFy
CiAgICAgY2FzZSBDU1NWYWx1ZUhzbGE6CiAgICAgICAgIGNvbG9yID0gcGFyc2VIU0xQYXJhbWV0
ZXJzKGNvbG9yUmFuZ2UsIGNzc1BhcnNlck1vZGUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlTGFiOgorICAgICAgICBjb2xvciA9IHBhcnNlTGFiUGFyYW1ldGVycyhjb2xvclJh
bmdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxjaDoKKyAgICAgICAgY29s
b3IgPSBwYXJzZUxDSFBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTVmFsdWVHcmF5OgorICAgICAgICBjb2xvciA9IHBhcnNlR3JheVBhcmFtZXRlcnMo
Y29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTVmFsdWVDb2xvcjoKICAg
ICAgICAgY29sb3IgPSBwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOwog
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNw
cAppbmRleCA3MzgwMjVlNTM1MzJhMDkwOGViZjZiMGVhNzhhZTgyNzg1M2RhODc4Li4xMTZlMzI1
NTE5M2FiOTFmODdlZjgzYjY5NjIyNWRkZmJhYzIwN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0yNDAsMTIgKzI0MCwxMiBAQCBDb2xvcjo6Q29s
b3IoQ29sb3ImJiBvdGhlcikKICAgICAqdGhpcyA9IFdURk1vdmUob3RoZXIpOwogfQogCi1Db2xv
cjo6Q29sb3IoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlKQorQ29sb3I6OkNvbG9yKGZsb2F0IGMxLCBmbG9hdCBjMiwgZmxvYXQgYzMsIGZs
b2F0IGFscGhhLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgLy8gWmVybyB0aGUgdW5p
b24sIGp1c3QgaW4gY2FzZSBhIDMyLWJpdCBzeXN0ZW0gb25seSBhc3NpZ25zIHRoZQogICAgIC8v
IHRvcCAzMiBiaXRzIHdoZW4gY29weWluZyB0aGUgZXh0ZW5kZWRDb2xvciBwb2ludGVyIGJlbG93
LgogICAgIG1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyA9IDA7Ci0gICAgYXV0byBleHRlbmRlZENv
bG9yUmVmID0gRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKHIsIGcsIGIsIGEsIGNvbG9yU3BhY2UpOwor
ICAgIGF1dG8gZXh0ZW5kZWRDb2xvclJlZiA9IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShjMSwgYzIs
IGMzLCBhbHBoYSwgY29sb3JTcGFjZSk7CiAgICAgbV9jb2xvckRhdGEuZXh0ZW5kZWRDb2xvciA9
ICZleHRlbmRlZENvbG9yUmVmLmxlYWtSZWYoKTsKICAgICBBU1NFUlQoaXNFeHRlbmRlZCgpKTsK
IH0KQEAgLTU1NSw2ICs1NTUsMjcgQEAgdm9pZCBDb2xvcjo6Z2V0SFNWKGRvdWJsZSYgaHVlLCBk
b3VibGUmIHNhdHVyYXRpb24sIGRvdWJsZSYgdmFsdWUpIGNvbnN0CiAgICAgdmFsdWUgPSBtYXg7
CiB9CiAKK3N0ZDo6YXJyYXk8ZmxvYXQsIDQ+IENvbG9yOjpsb3NzeVRvU1JHQkFDb21wb25lbnRz
KCkgY29uc3QKK3sKKyAgICBpZiAoaXNFeHRlbmRlZCgpKSB7CisgICAgICAgIGF1dG8mIGV4dGVu
ZGVkQ29sb3IgPSBhc0V4dGVuZGVkKCk7CisgICAgICAgIHN3aXRjaCAoZXh0ZW5kZWRDb2xvci5j
b2xvclNwYWNlKCkpIHsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpTUkdCOgorICAgICAgICBj
YXNlIENvbG9yU3BhY2U6OkxpbmVhclJHQjoKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNw
bGF5UDM6CisgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IGNvbnZlcnQgaW50byBz
UkdCIGFuZCBzaG91bGQuCisgICAgICAgICAgICByZXR1cm4ge3sgZXh0ZW5kZWRDb2xvci5yZWQo
KSwgZXh0ZW5kZWRDb2xvci5ncmVlbigpLCBleHRlbmRlZENvbG9yLmJsdWUoKSwgZXh0ZW5kZWRD
b2xvci5hbHBoYSgpIH19OyAvLyBEb3VibGUgYnJhY2VzIHJlcXVpcmVkIHRvIGF2b2lkIHdhcm5p
bmcgd2l0aCBvbGRlciBjbGFuZyB2ZXJzaW9ucy4KKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpM
YWI6IHsKKyAgICAgICAgICAgIGF1dG8gcmdiQ2hhbm5lbHMgPSBsYWJUb1NSR0IoZXh0ZW5kZWRD
b2xvci5jaGFubmVscygpKTsKKyAgICAgICAgICAgIHJldHVybiB7eyByZ2JDaGFubmVscy5jb21w
b25lbnRzWzBdLCByZ2JDaGFubmVscy5jb21wb25lbnRzWzFdLCByZ2JDaGFubmVscy5jb21wb25l
bnRzWzJdLCByZ2JDaGFubmVscy5jb21wb25lbnRzWzNdIH19OworICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9CisgICAgZmxvYXQgciwgZywgYiwgYTsKKyAgICBnZXRSR0JBKHIsIGcsIGIsIGEp
OworICAgIHJldHVybiB7eyBhLCBnLCBiLCBhIH19OworfQorCiBDb2xvciBjb2xvckZyb21QcmVt
dWx0aXBsaWVkQVJHQihSR0JBMzIgcGl4ZWxDb2xvcikKIHsKICAgICBpZiAocGl4ZWxDb2xvci5p
c1Zpc2libGUoKSAmJiAhcGl4ZWxDb2xvci5pc09wYXF1ZSgpKQpAQCAtNjA3LDcgKzYyOCw3IEBA
IHZvaWQgQ29sb3I6OnRhZ0FzVmFsaWQoKQogICAgIG1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyB8
PSB2YWxpZFJHQkFDb2xvcjsKIH0KIAotRXh0ZW5kZWRDb2xvciYgQ29sb3I6OmFzRXh0ZW5kZWQo
KSBjb25zdAorY29uc3QgRXh0ZW5kZWRDb2xvciYgQ29sb3I6OmFzRXh0ZW5kZWQoKSBjb25zdAog
ewogICAgIEFTU0VSVChpc0V4dGVuZGVkKCkpOwogICAgIHJldHVybiAqbV9jb2xvckRhdGEuZXh0
ZW5kZWRDb2xvcjsKQEAgLTYzMCw2ICs2NTEsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiAgICAgY2FzZSBDb2xvclNwYWNl
OjpEaXNwbGF5UDM6CiAgICAgICAgIHRzIDw8ICJEaXNwbGF5UDMiOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgdHMgPDwgIkwqYSpiIjsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvci5oCmluZGV4IGI5NDI0Y2M0YzMwNmMxZjVjMzRlM2FkZDFlZWQ3YmU3
MTQ3ZGIzYmYuLjg2ODk0NTM3MmFlZjY4N2U1NGUxMTJmNzQ0NjM3MTBlZjdhOTMwNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaApAQCAtMTY5LDcgKzE2OSw3IEBA
IHB1YmxpYzoKICAgICAvLyBUaGlzIGNyZWF0ZXMgYW4gRXh0ZW5kZWRDb2xvci4KICAgICAvLyBG
SVhNRTogSWYgdGhlIGNvbG9yU3BhY2UgaXMgc1JHQiBhbmQgdGhlIHZhbHVlcyBjYW4gYWxsIGJl
CiAgICAgLy8gY29udmVydGVkIGV4YWN0bHkgdG8gaW50ZWdlcnMsIHdlIHNob3VsZCBtYWtlIGEg
bm9ybWFsIENvbG9yLgotICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yKGZsb2F0IHIsIGZsb2F0IGcs
IGZsb2F0IGIsIGZsb2F0IGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgQ29sb3IoZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIENvbG9yU3BhY2UpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBDb2xvcihDb2xvciYmKTsKQEAgLTIxNCw2ICsyMTQsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBnZXRIU0woZG91YmxlJiBoLCBkb3VibGUmIHMsIGRvdWJsZSYgbCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRIU1YoZG91YmxlJiBoLCBkb3VibGUmIHMs
IGRvdWJsZSYgdikgY29uc3Q7CiAKKyAgICAvLyBUaGlzIHdpbGwgY29udmVydCBub24tc1JHQiBj
b2xvcnNwYWNlIGNvbG9ycyBpbnRvIHNSR0IuCisgICAgc3RkOjphcnJheTxmbG9hdCwgND4gbG9z
c3lUb1NSR0JBQ29tcG9uZW50cygpIGNvbnN0OworCiAgICAgQ29sb3IgbGlnaHQoKSBjb25zdDsK
ICAgICBDb2xvciBkYXJrKCkgY29uc3Q7CiAKQEAgLTI3Miw3ICsyNzUsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICByZXR1cm4gIShtX2NvbG9yRGF0YS5yZ2JhQW5kRmxhZ3MgJiBpbnZhbGlk
UkdCQUNvbG9yKTsKICAgICB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgRXh0ZW5kZWRDb2xvciYgYXNF
eHRlbmRlZCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEV4dGVuZGVkQ29sb3Im
IGFzRXh0ZW5kZWQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yJiBvcGVyYXRv
cj0oY29uc3QgQ29sb3ImKTsKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciYgb3BlcmF0b3I9KENv
bG9yJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5o
CmluZGV4IDZmY2Q3OGZjM2VhM2ZiMDU2NTZlYjY1NzJkYThkM2UzZDEzZjI4NGYuLjAyNjk4NjNj
MGE2NmM2NmEwZWYxYWY4ZDA5YWE1MDYwNGE4Y2ViMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKQEAgLTMwLDcgKzMwLDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdCB7CiAgICAgU1JHQiwK
ICAgICBMaW5lYXJSR0IsCi0gICAgRGlzcGxheVAzCisgICAgRGlzcGxheVAzLAorICAgIExhYgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCmluZGV4IDdlOWY5ODkyZGMzYzE0YWNl
ZWQ4MzgxMGZiNTNhZWViNzgwOThhMWYuLjAxMDM4MzgxMTU3NzY1ODdkYjVkNmVhYmUwYWRkYWVm
OWI2MTc0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvclV0aWxpdGllcy5jcHAKQEAgLTkzLDYgKzkzLDg1IEBAIEZsb2F0Q29tcG9uZW50cyBsaW5l
YXJUb1NSR0JDb21wb25lbnRzKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGluZWFyUkdCKQogICAg
IH07CiB9CiAKK3N0YXRpYyBGbG9hdENvbXBvbmVudHMgY2llWFlaVG9MaW5lYXJTUkdCKGNvbnN0
IEZsb2F0Q29tcG9uZW50cyYgY2llWFlaKQoreworICAgIGNvbnN0IGZsb2F0IHZhbHVlc1tdID0g
eworICAgICAgICAgMy4yNDA0NTQyZiwgLTEuNTM3MTM4NWYsIC0wLjQ5ODUzMTRmLCAwLjBmLCAw
LjBmLAorICAgICAgICAtMC45NjkyNjYwZiwgIDEuODc2MDEwOGYsICAwLjA0MTU1NjBmLCAwLjBm
LCAwLjBmLAorICAgICAgICAgMC4wNTU2NDM0ZiwgLTAuMjA0MDI1OWYsICAxLjA1NzIyNTJmLCAw
LjBmLCAwLjBmLAorICAgICAgICAgMC4wZiwgICAgICAgIDAuMGYsICAgICAgICAwLjBmLCAgICAg
ICAxLjBmLCAwLjBmLAorICAgIH07CisgICAgQ29sb3JNYXRyaXggY2llWFlaVG9MaW5lYXJTUkdC
TWF0cml4KHZhbHVlcyk7CisgICAgCisgICAgRmxvYXRDb21wb25lbnRzIHJlc3VsdCA9IGNpZVhZ
WjsKKyAgICBjaWVYWVpUb0xpbmVhclNSR0JNYXRyaXgudHJhbnNmb3JtQ29sb3JDb21wb25lbnRz
KHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGZsb2F0IGxhYlhZWihm
bG9hdCB0KQoreworICAgIGNvbnN0IGZsb2F0IExBQmUgPSAyMTYuMGYgLyAyNDM4OS4wZjsKKyAg
ICBjb25zdCBmbG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKKworICAgIGZsb2F0IHRDdWJl
ZCA9IHQgKiB0ICogdDsKKyAgICBpZiAodEN1YmVkID4gTEFCZSkKKyAgICAgICAgcmV0dXJuIHRD
dWJlZDsKKyAgICAKKyAgICByZXR1cm4gKDExNi4wZiAqIHQgLSAxNi4wZikgLyBMQUJrOworfQor
CitzdGF0aWMgRmxvYXRDb21wb25lbnRzIGxhYlRvQ0lFWFlaKGNvbnN0IEZsb2F0Q29tcG9uZW50
cyYgbGFiKQoreworICAgIGZsb2F0IEwgPSBsYWIuY29tcG9uZW50c1swXTsKKyAgICBmbG9hdCBh
ID0gbGFiLmNvbXBvbmVudHNbMV07CisgICAgZmxvYXQgYiA9IGxhYi5jb21wb25lbnRzWzJdOwor
CisgICAgZmxvYXQgeSA9IChMICsgMTYuMGYpIC8gMTE2LjBmOworICAgIGZsb2F0IHggPSB5ICsg
YSAvIDUwMC4wZjsKKyAgICBmbG9hdCB6ID0geSAtIGIgLyAyMDAuMGY7CisgICAgCisgICAgY29u
c3QgZmxvYXQgRDY1V2hpdGVWYWx1ZXNbXSA9IHsKKyAgICAgICAgMC45NTA0N2YsCisgICAgICAg
IDEuMGYsCisgICAgICAgIDEuMDg4ODNmCisgICAgfTsKKyAgICB4ID0gRDY1V2hpdGVWYWx1ZXNb
MF0gKiBsYWJYWVooeCk7CisgICAgeSA9IEQ2NVdoaXRlVmFsdWVzWzFdICogbGFiWFlaKHkpOwor
ICAgIHogPSBENjVXaGl0ZVZhbHVlc1syXSAqIGxhYlhZWih6KTsKKworICAgIHJldHVybiB7IHgs
IHksIHosIGxhYi5jb21wb25lbnRzWzNdIH07Cit9CisKKy8vIGxhYkNvbXBvbmVudHMgYXJlIGxp
Z2h0bmVzcywgYSwgYiwgYWxwaGEuCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9y
LTQvI2xhYi10by1yZ2IKK0Zsb2F0Q29tcG9uZW50cyBsYWJUb1NSR0IoY29uc3QgRmxvYXRDb21w
b25lbnRzJiBsYWIpCit7CisgICAgRmxvYXRDb21wb25lbnRzIGNpZVhZWiA9IGxhYlRvQ0lFWFla
KGxhYik7CisgICAgYXV0byBsaW5lYXJSR0IgPSBjaWVYWVpUb0xpbmVhclNSR0IoY2llWFlaKTsK
KyAgICByZXR1cm4gbGluZWFyVG9TUkdCQ29tcG9uZW50cyhsaW5lYXJSR0IpOworfQorCisvLyBs
Y2hDb21wb25lbnRzIGFyZSBsaWdodG5lc3MsIGNocm9tYSwgaHVlIGFuZ2xlIChpbiBkZWdyZWVz
KSwgYWxwaGEuCitGbG9hdENvbXBvbmVudHMgTENIVG9TUkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50
cyYgbGNoQ29tcG9uZW50cykKK3sKKyAgICBGbG9hdENvbXBvbmVudHMgbGFiQ29tcG9uZW50cyA9
IExDSFRvTGFiKGxjaENvbXBvbmVudHMpOworICAgIHJldHVybiBsYWJUb1NSR0IobGFiQ29tcG9u
ZW50cyk7Cit9CisKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGNoLXRv
LWxhYgorRmxvYXRDb21wb25lbnRzIExDSFRvTGFiKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgbGNo
Q29tcG9uZW50cykKK3sKKyAgICBmbG9hdCBjaHJvbWEgPSBsY2hDb21wb25lbnRzLmNvbXBvbmVu
dHNbMV07CisgICAgZmxvYXQgaHVlQW5nbGVSYWRpYW5zID0gZGVnMnJhZChsY2hDb21wb25lbnRz
LmNvbXBvbmVudHNbMl0pOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgbGNoQ29tcG9uZW50cy5j
b21wb25lbnRzWzBdLAorICAgICAgICBjaHJvbWEgKiBjb3MoaHVlQW5nbGVSYWRpYW5zKSwKKyAg
ICAgICAgY2hyb21hICogc2luKGh1ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGxjaENvbXBvbmVu
dHMuY29tcG9uZW50c1szXQorICAgIH07Cit9CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0byBzUkdC
VG9MaW5lYXJDb2xvckNvbXBvbmVudCBidXQgZm9yIHNvbWUgcmVhc29uCiAvLyBodHRwczovL3d3
dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRl
ZgogLy8gZG9lc24ndCB1c2UgdGhlIHN0YW5kYXJkIHNSR0IgLT4gbGluZWFyUkdCIHRocmVzaG9s
ZCBvZiAwLjA0MDQ1LgpAQCAtMjIwLDcgKzI5OSw3IEBAIENvbG9yTWF0cml4OjpDb2xvck1hdHJp
eCgpCiAgICAgbWFrZUlkZW50aXR5KCk7CiB9CiAKLUNvbG9yTWF0cml4OjpDb2xvck1hdHJpeChm
bG9hdCB2YWx1ZXNbMjBdKQorQ29sb3JNYXRyaXg6OkNvbG9yTWF0cml4KGNvbnN0IGZsb2F0IHZh
bHVlc1syMF0pCiB7CiAgICAgbV9tYXRyaXhbMF1bMF0gPSB2YWx1ZXNbMF07CiAgICAgbV9tYXRy
aXhbMF1bMV0gPSB2YWx1ZXNbMV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuaAppbmRleCA3OGVmODI3ZTVjOTc0NTYwZjU0NTE2NmZiZWZj
ZjdmNmI1NmJjZGU3Li5hZmU0ZmU2ZmMxNTg0ZTY5MmZmY2EyOTA2MDQ2MDJkZmMyZWFiMGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGll
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVz
LmgKQEAgLTI1LDEyICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNvbG9y
LmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGFycmF5PgogI2luY2x1ZGUgPG1h
dGguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDb2xvcjsKKwogc3RydWN0IEZs
b2F0Q29tcG9uZW50cyB7CiAgICAgRmxvYXRDb21wb25lbnRzKGZsb2F0IGEgPSAwLCBmbG9hdCBi
ID0gMCwgZmxvYXQgYyA9IDAsIGZsb2F0IGQgPSAwKQogICAgIHsKQEAgLTQwLDYgKzQyLDE0IEBA
IHN0cnVjdCBGbG9hdENvbXBvbmVudHMgewogICAgICAgICBjb21wb25lbnRzWzNdID0gZDsKICAg
ICB9CiAKKyAgICBGbG9hdENvbXBvbmVudHMoY29uc3Qgc3RkOjphcnJheTxmbG9hdCwgND4mIHZh
bHVlcykKKyAgICB7CisgICAgICAgIGNvbXBvbmVudHNbMF0gPSB2YWx1ZXNbMF07CisgICAgICAg
IGNvbXBvbmVudHNbMV0gPSB2YWx1ZXNbMV07CisgICAgICAgIGNvbXBvbmVudHNbMl0gPSB2YWx1
ZXNbMl07CisgICAgICAgIGNvbXBvbmVudHNbM10gPSB2YWx1ZXNbM107CisgICAgfQorCiAgICAg
RmxvYXRDb21wb25lbnRzKGNvbnN0IENvbG9yJik7CiAKICAgICBGbG9hdENvbXBvbmVudHMmIG9w
ZXJhdG9yKz0oY29uc3QgRmxvYXRDb21wb25lbnRzJiByaHMpCkBAIC05MSw3ICsxMDEsNyBAQCBz
dHJ1Y3QgRmxvYXRDb21wb25lbnRzIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAK
LSAgICBmbG9hdCBjb21wb25lbnRzWzRdOworICAgIHN0ZDo6YXJyYXk8ZmxvYXQsIDQ+IGNvbXBv
bmVudHM7CiB9OwogCiBzdHJ1Y3QgQ29sb3JDb21wb25lbnRzIHsKQEAgLTE1OCw2ICsxNjgsMTIg
QEAgRmxvYXRDb21wb25lbnRzIHNSR0JDb2xvclRvTGluZWFyQ29tcG9uZW50cyhjb25zdCBDb2xv
ciYpOwogRmxvYXRDb21wb25lbnRzIHNSR0JUb0xpbmVhckNvbXBvbmVudHMoY29uc3QgRmxvYXRD
b21wb25lbnRzJik7CiBGbG9hdENvbXBvbmVudHMgbGluZWFyVG9TUkdCQ29tcG9uZW50cyhjb25z
dCBGbG9hdENvbXBvbmVudHMmKTsKIAorRmxvYXRDb21wb25lbnRzIGxhYlRvU1JHQihjb25zdCBG
bG9hdENvbXBvbmVudHMmKTsKK0Zsb2F0Q29tcG9uZW50cyBMQ0hUb1NSR0IoY29uc3QgRmxvYXRD
b21wb25lbnRzJik7CisKKy8vIFRoZSBodWUgYW5nbGUgY29tcG9uZW50IGlzIGluIGRlZ3JlZXMu
CitGbG9hdENvbXBvbmVudHMgTENIVG9MYWIoY29uc3QgRmxvYXRDb21wb25lbnRzJik7CisKIEZs
b2F0Q29tcG9uZW50cyBzUkdCVG9IU0woY29uc3QgRmxvYXRDb21wb25lbnRzJik7CiBGbG9hdENv
bXBvbmVudHMgSFNMVG9TUkdCKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogCkBAIC0xNzIsNyAr
MTg4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBDb2xvck1hdHJpeCBzZXBpYU1hdHJpeChmbG9h
dCk7CiAKICAgICBDb2xvck1hdHJpeCgpOwotICAgIENvbG9yTWF0cml4KGZsb2F0WzIwXSk7Cisg
ICAgQ29sb3JNYXRyaXgoY29uc3QgZmxvYXRbMjBdKTsKICAgICAKICAgICB2b2lkIHRyYW5zZm9y
bUNvbG9yQ29tcG9uZW50cyhGbG9hdENvbXBvbmVudHMmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAppbmRleCA1YWQ4
Y2JmZTExNDljN2VjMDAzYmNjMGJiOWU3MzVmOTFmMGY5MGNkLi5iNmNhZTM1YTM3ZDc1OTRkNjc5
M2Y2NzRjNzRlMDYxYWI5OTk3YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVJlZjxFeHRlbmRlZENvbG9yPiBFeHRlbmRlZENvbG9yOjpjcmVhdGUo
ZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSkKK1JlZjxFeHRlbmRlZENvbG9yPiBFeHRlbmRlZENvbG9yOjpjcmVhdGUo
ZmxvYXQgYzEsIGZsb2F0IGMyLCBmbG9hdCBjMywgZmxvYXQgYWxwaGEsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRlZENvbG9yKHJlZCwg
Z3JlZW4sIGJsdWUsIGFscGhhLCBjb2xvclNwYWNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRXh0ZW5kZWRDb2xvcihjMSwgYzIsIGMzLCBhbHBoYSwgY29sb3JTcGFjZSkpOwogfQogCiBT
dHJpbmcgRXh0ZW5kZWRDb2xvcjo6Y3NzVGV4dCgpIGNvbnN0CkBAIC00Niw2ICs0Niw5IEBAIFN0
cmluZyBFeHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKICAgICBjYXNlIENvbG9yU3BhY2U6
OkRpc3BsYXlQMzoKICAgICAgICAgY29sb3JTcGFjZSA9ICJkaXNwbGF5LXAzIjsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIGNvbG9yU3BhY2UgPSAi
bGFiIjsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBXVEY6OmVtcHR5U3RyaW5nKCk7CkBAIC01Myw2ICs1
Niw3IEBAIFN0cmluZyBFeHRlbmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKIAogICAgIGlmIChX
VEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYWxwaGEoKSwgMS4wZikpCiAgICAgICAgIHJldHVybiBt
YWtlU3RyaW5nKCJjb2xvcigiLCBjb2xvclNwYWNlLCAnICcsIHJlZCgpLCAnICcsIGdyZWVuKCks
ICcgJywgYmx1ZSgpLCAnKScpOworCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoImNvbG9yKCIsIGNv
bG9yU3BhY2UsICcgJywgcmVkKCksICcgJywgZ3JlZW4oKSwgJyAnLCBibHVlKCksICIgLyAiLCBh
bHBoYSgpLCAnKScpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9FeHRlbmRlZENvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9FeHRlbmRlZENvbG9yLmgKaW5kZXggMTI3N2Y5NDhmMTIxNTU5NThjODkzMmNlOWM2MTczNTgx
ZTMxNGFmOS4uYWYxMmRjMWFkNWVmZWVmNjY2MDljMzg2NjVmZGIzNDMwNDZkZWFhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuaApAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogCisjaW5jbHVkZSAiQ29s
b3JVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM1LDMxICszNiw0
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4dGVuZGVkQ29sb3IgOiBwdWJsaWMg
UmVmQ291bnRlZDxFeHRlbmRlZENvbG9yPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxFeHRl
bmRlZENvbG9yPiBjcmVhdGUoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxv
YXQgYWxwaGEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCKTsKKyAgICBzdGF0aWMgUmVm
PEV4dGVuZGVkQ29sb3I+IGNyZWF0ZShmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCBhbHBoYSwg
Q29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0IpOwogCi0gICAgZmxvYXQgcmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWQ7IH0KLSAgICBmbG9hdCBncmVlbigpIGNvbnN0IHsgcmV0dXJuIG1fZ3Jl
ZW47IH0KLSAgICBmbG9hdCBibHVlKCkgY29uc3QgeyByZXR1cm4gbV9ibHVlOyB9Ci0gICAgZmxv
YXQgYWxwaGEoKSBjb25zdCB7IHJldHVybiBtX2FscGhhOyB9CisgICAgZmxvYXQgcmVkKCkgY29u
c3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZTo6TGFi
KTsKKyAgICAgICAgcmV0dXJuIG1fY2hhbm5lbHMuY29tcG9uZW50c1swXTsKKyAgICB9CisKKyAg
ICBmbG9hdCBncmVlbigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9jb2xvclNwYWNl
ICE9IENvbG9yU3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBtX2NoYW5uZWxzLmNvbXBvbmVu
dHNbMV07CisgICAgfQorCisgICAgZmxvYXQgYmx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQobV9jb2xvclNwYWNlICE9IENvbG9yU3BhY2U6OkxhYik7CisgICAgICAgIHJldHVybiBt
X2NoYW5uZWxzLmNvbXBvbmVudHNbMl07CisgICAgfQorCisgICAgZmxvYXQgYWxwaGEoKSBjb25z
dCB7IHJldHVybiBtX2NoYW5uZWxzLmNvbXBvbmVudHNbM107IH0KKworICAgIGNvbnN0IEZsb2F0
Q29tcG9uZW50cyYgY2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxzOyB9CiAKICAg
ICBDb2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgRXh0ZW5kZWRDb2xvcihmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UpCi0gICAgICAgIDogbV9yZWQocikKLSAgICAgICAgLCBtX2dy
ZWVuKGcpCi0gICAgICAgICwgbV9ibHVlKGIpCi0gICAgICAgICwgbV9hbHBoYShhKQorICAgIEV4
dGVuZGVkQ29sb3IoZmxvYXQgYzEsIGZsb2F0IGMyLCBmbG9hdCBjMywgZmxvYXQgYWxwaGEsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkKKyAgICAgICAgOiBtX2NoYW5uZWxzKGMxLCBjMiwgYzMsIGFs
cGhhKQogICAgICAgICAsIG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgIHsgfQogCi0gICAg
ZmxvYXQgbV9yZWQgeyAwIH07Ci0gICAgZmxvYXQgbV9ncmVlbiB7IDAgfTsKLSAgICBmbG9hdCBt
X2JsdWUgeyAwIH07Ci0gICAgZmxvYXQgbV9hbHBoYSB7IDAgfTsKLQorICAgIEZsb2F0Q29tcG9u
ZW50cyBtX2NoYW5uZWxzOwogICAgIENvbG9yU3BhY2UgbV9jb2xvclNwYWNlIHsgQ29sb3JTcGFj
ZTo6U1JHQiB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvQ29sb3JDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvckNHLmNwcAppbmRleCA3ODM4ZjM1MzFjMmJlNTA2NTk1MmFlMWNiMzgxODdiYzliNzJl
OTVkLi4wY2ZjNzgwMmQzN2Y4NGYxMTY4YmUxM2UyYjNjMDliOGMzYjBhNjAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcApAQCAtMTA1LDE2
ICsxMDUsMjEgQEAgc3RhdGljIENHQ29sb3JSZWYgbGVha0NHQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yKQogewogICAgIENHRmxvYXQgY29tcG9uZW50c1s0XTsKICAgICBpZiAoY29sb3IuaXNFeHRl
bmRlZCgpKSB7Ci0gICAgICAgIEV4dGVuZGVkQ29sb3ImIGV4dGVuZGVkQ29sb3IgPSBjb2xvci5h
c0V4dGVuZGVkKCk7Ci0gICAgICAgIGNvbXBvbmVudHNbMF0gPSBleHRlbmRlZENvbG9yLnJlZCgp
OwotICAgICAgICBjb21wb25lbnRzWzFdID0gZXh0ZW5kZWRDb2xvci5ncmVlbigpOwotICAgICAg
ICBjb21wb25lbnRzWzJdID0gZXh0ZW5kZWRDb2xvci5ibHVlKCk7Ci0gICAgICAgIGNvbXBvbmVu
dHNbM10gPSBleHRlbmRlZENvbG9yLmFscGhhKCk7CisgICAgICAgIGNvbnN0IGF1dG8mIGV4dGVu
ZGVkQ29sb3IgPSBjb2xvci5hc0V4dGVuZGVkKCk7CisgICAgICAgIGF1dG8gY2hhbm5lbHMgPSBl
eHRlbmRlZENvbG9yLmNoYW5uZWxzKCk7CisgICAgICAgIGNvbXBvbmVudHNbMF0gPSBjaGFubmVs
cy5jb21wb25lbnRzWzBdOworICAgICAgICBjb21wb25lbnRzWzFdID0gY2hhbm5lbHMuY29tcG9u
ZW50c1sxXTsKKyAgICAgICAgY29tcG9uZW50c1syXSA9IGNoYW5uZWxzLmNvbXBvbmVudHNbMl07
CisgICAgICAgIGNvbXBvbmVudHNbM10gPSBjaGFubmVscy5jb21wb25lbnRzWzNdOwogICAgICAg
ICBzd2l0Y2ggKGV4dGVuZGVkQ29sb3IuY29sb3JTcGFjZSgpKSB7CiAgICAgICAgIGNhc2UgQ29s
b3JTcGFjZTo6U1JHQjoKICAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKHNSR0JDb2xv
clNwYWNlUmVmKCksIGNvbXBvbmVudHMpOwogICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3Bs
YXlQMzoKICAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKGRpc3BsYXlQM0NvbG9yU3Bh
Y2VSZWYoKSwgY29tcG9uZW50cyk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAg
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBnaXZlIGluY29ycmVjdCByZXN1bHRzIG9uIHBs
YXRmb3JtcyB0aGF0IGRvbid0IHN1cHBvcnQgQ0dDb2xvclNwYWNlQ3JlYXRlTGFiKCkuIFdlIHNo
b3VsZAorICAgICAgICAgICAgLy8gY29udmVydCB0byBzUkdCLgorICAgICAgICAgICAgcmV0dXJu
IENHQ29sb3JDcmVhdGUobGFiRDUwQ29sb3JTcGFjZVJlZigpLCBjb21wb25lbnRzKTsKICAgICAg
ICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJSR0I6CiAgICAgICAgICAgICAvLyBGSVhNRTogRG8g
d2UgZXZlciBjcmVhdGUgQ0dDb2xvclJlZnMgaW4gdGhlc2Ugc3BhY2VzPyBJdCBtYXkgb25seSBi
ZSBJbWFnZUJ1ZmZlcnMuCiAgICAgICAgICAgICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29s
b3JTcGFjZVJlZigpLCBjb21wb25lbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBkOTA4ODgw
OGFiOGJjYmIxNmE1MzQ4YzA5YjA1ZTZjNmQyYjRkZTM3Li43NDAxMzUzMDJhZDk2ZGQ3YzQ3Zjlk
NDNjN2VlMmRkN2RhYzlkNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xNDAsNiArMTQwLDIx
IEBAIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4g
ZGlzcGxheVAzQ29sb3JTcGFjZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkQ1MENvbG9yU3Bh
Y2VSZWYoKQoreworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZTsKKyAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25j
ZUZsYWcsIFtdIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgY29uc3QgQ0dGbG9hdCBk
NTBXaGl0ZVBvaW50W10gPSB7IDAuOTY0MjIsIDEuMDAwMDAsIDAuODI1MjEgfTsKKyAgICAgICAg
bGFiQ29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZUxhYihkNTBXaGl0ZVBvaW50LCBudWxs
cHRyLCBudWxscHRyKTsKKyNlbHNlCisgICAgICAgIGxhYkNvbG9yU3BhY2UgPSBzUkdCQ29sb3JT
cGFjZVJlZigpOworI2VuZGlmCisgICAgfSk7CisgICAgcmV0dXJuIGxhYkNvbG9yU3BhY2U7Cit9
CisKIHN0YXRpYyBJbnRlcnBvbGF0aW9uUXVhbGl0eSBjb252ZXJ0SW50ZXJwb2xhdGlvblF1YWxp
dHkoQ0dJbnRlcnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRjaCAocXVhbGl0
eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmgKaW5kZXggNWQ1OWQxNWRiZWRmNWUzNTIzOWIzN2FiNTJlYzQ0OWE5
MTJiZDRkOC4uMGMxNzRiYzgzNWE2NTNhNmQ0NjZkMDYyYWE0NWYxMDgwM2VmMGFjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNPUkVf
RVhQT1JUIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBP
UlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVf
RVhQT1JUIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CitXRUJDT1JF
X0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgbGFiRDUwQ29sb3JTcGFjZVJlZigpOyAvLyBMKmEqYiBj
b2xvcnNwYWNlIFdpdGggRDUwIHdoaXRlIHBvaW50LgogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNw
YWNlUmVmIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKIAogQ0dBZmZpbmVUcmFuc2Zvcm0gZ2V0
VXNlclRvQmFzZUNUTShDR0NvbnRleHRSZWYpOwpAQCAtNDcsNiArNDgsOCBAQCBzdGF0aWMgaW5s
aW5lIENHQ29sb3JTcGFjZVJlZiBjYWNoZWRDR0NvbG9yU3BhY2UoQ29sb3JTcGFjZSBjb2xvclNw
YWNlKQogICAgICAgICByZXR1cm4gbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogICAgIGNhc2Ug
Q29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFj
ZVJlZigpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gbGFiRDUw
Q29sb3JTcGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmNwcAppbmRleCAz
MGJiNDhjYzhmMGM0OTU0NDhhYjY1ZjY4MTE3MmNjYzZiY2E1MzVjLi4xNzAzMmQyNDQxOTBkMWZk
MmIwZDFkOTcwZGRmZTEwMmQzYWVmNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uY3BwCkBAIC0y
MzYsNyArMjM2LDcgQEAgYm9vbCBJbnZlcnRMaWdodG5lc3NGaWx0ZXJPcGVyYXRpb246OnRyYW5z
Zm9ybUNvbG9yKEZsb2F0Q29tcG9uZW50cyYgc1JHQkNvbG9yQ28KICAgICBzUkdCQ29sb3JDb21w
b25lbnRzID0gSFNMVG9TUkdCKGhzbENvbXBvbmVudHMpOwogICAgIAogICAgIC8vIEFwcGx5IHRo
ZSBtYXRyaXguIFNlZSByZGFyOi8vcHJvYmxlbS80MTE0NjY1MCBmb3IgaG93IHRoaXMgbWF0cml4
IHdhcyBkZXJpdmVkLgotICAgIGZsb2F0IG1hdHJpeFZhbHVlc1syMF0gPSB7CisgICAgY29uc3Qg
ZmxvYXQgbWF0cml4VmFsdWVzWzIwXSA9IHsKICAgICAgICAtMC43NzAsICAwLjA1OSwgLTAuMDg5
LCAwLCAxLAogICAgICAgICAwLjAzMCwgLTAuNzQxLCAtMC4wODksIDAsIDEsCiAgICAgICAgIDAu
MDMwLCAgMC4wNTksIC0wLjg5MCwgMCwgMSwKQEAgLTI1Miw3ICsyNTIsNyBAQCBib29sIEludmVy
dExpZ2h0bmVzc0ZpbHRlck9wZXJhdGlvbjo6aW52ZXJzZVRyYW5zZm9ybUNvbG9yKEZsb2F0Q29t
cG9uZW50cyYgc1JHQgogewogICAgIEZsb2F0Q29tcG9uZW50cyByZ2JDb21wb25lbnRzID0gc1JH
QkNvbG9yQ29tcG9uZW50czsKICAgICAvLyBBcHBseSB0aGUgbWF0cml4LgotICAgIGZsb2F0IG1h
dHJpeFZhbHVlc1syMF0gPSB7CisgICAgY29uc3QgZmxvYXQgbWF0cml4VmFsdWVzWzIwXSA9IHsK
ICAgICAgICAgLTEuMzAwLCAtMC4wOTcsICAwLjE0NywgMCwgMS4yNSwKICAgICAgICAgLTAuMDQ5
LCAtMS4zNDcsICAwLjE0NiwgMCwgMS4yNSwKICAgICAgICAgLTAuMDQ5LCAtMC4wOTcsIC0xLjEw
NCwgMCwgMS4yNSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9Db2xvckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
Q29sb3JHdGsuY3BwCmluZGV4IDZmYjFlOTQyZDFmYWMyYjZhMTNjOWNhOTBlOTQwNzdlMmYyMTJi
NGEuLmViZjE3NjFkYjg1ODYxYjAxOTFmNjk4Mzc1NTJjYTU4ZjQxNzdhYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcApAQCAtMjEs
NiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCiAKKyNp
bmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzYsNyBAQCBDb2xvcjo6Q29sb3IoY29uc3QgR2RrUkdC
QSYgYykKIAogQ29sb3I6Om9wZXJhdG9yIEdka1JHQkEoKSBjb25zdAogeworCS8vIEZJWE1FOiBI
YW5kbGUgTGFiIGNvbG9yLgogICAgIGlmIChpc0V4dGVuZGVkKCkpCiAgICAgICAgIHJldHVybiB7
IGFzRXh0ZW5kZWQoKS5yZWQoKSwgYXNFeHRlbmRlZCgpLmdyZWVuKCksIGFzRXh0ZW5kZWQoKS5i
bHVlKCksIGFzRXh0ZW5kZWQoKS5hbHBoYSgpIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNwcAppbmRleCA4YzMxYjY3
MjZlYTQ2NzE5Y2M1YWFmNWI4ODA1ZDFlM2VjOTA4MzQwLi4yN2ZkYmNmOWRlZTM3ZmE0MzQxNjZl
YWIwMzAzNjE5Y2ExMWJjMTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vQ29sb3JEaXJlY3QyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0NvbG9yRGlyZWN0MkQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBQTEFURk9STShXSU4pCiAKKyNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogI2luY2x1ZGUg
PGQyZDEuaD4KICNpbmNsdWRlIDxkMmQxXzFoZWxwZXIuaD4KIApAQCAtNDAsMTYgKzQxLDE5IEBA
IENvbG9yOjpDb2xvcihEMkQxX0NPTE9SX0YgY29sb3IpCiAKIENvbG9yOjpvcGVyYXRvciBEMkQx
X0NPTE9SX0YoKSBjb25zdAogewotICAgIGZsb2F0IGNvbG9yQWxwaGEgPSBhbHBoYSgpIC8gMjU1
LjBmOworCWlmIChpc0V4dGVuZGVkKCkpIHsKKyAgICAgICAgYXV0byBhc1JHQkEgPSBsb3NzeVRv
U1JHQkFDb21wb25lbnRzKCk7CisgICAgICAgIHJldHVybiBEMkQxOjpDb2xvckYoYXNSR0JBWzBd
LCBhc1JHQkFbMV0sIGFzUkdCQVsyXSwgYXNSR0JBWzNdKTsKKyAgICB9CiAKKyAgICBmbG9hdCBj
b2xvckFscGhhID0gYWxwaGEoKSAvIDI1NS4wZjsKICAgICByZXR1cm4gRDJEMTo6Q29sb3JGKHJn
YigpLnZhbHVlKCksIGNvbG9yQWxwaGEpOwogfQogCiBDb2xvcjo6b3BlcmF0b3IgRDJEMV9WRUNU
T1JfNEYoKSBjb25zdAogewotICAgIGZsb2F0IHIsIGcsIGIsIGE7Ci0gICAgZ2V0UkdCQShyLCBn
LCBiLCBhKTsKLSAgICByZXR1cm4gRDJEMTo6VmVjdG9yNEYociwgZywgYiwgYSk7CisJYXV0byBh
c1JHQkEgPSBsb3NzeVRvU1JHQkFDb21wb25lbnRzKCk7CisJcmV0dXJuIEQyRDE6OlZlY3RvcjRG
KGFzUkdCQVswXSwgYXNSR0JBWzFdLCBhc1JHQkFbMl0sIGFzUkdCQVszXSk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyMjc3NzRkYTcyZjlhZGI0ZmVhNWJmOTk3YjYwYmUzMjA1M2MzNmMxLi5kMTdkMzgyMTU1
ZjgxZmUyYzU0NTI3MGY2YWE3MzExMTYxZjE5OWNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMDUtMTQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3VwcG9ydCBsYWIoKSwgbGNoKCkgYW5kIGdyYXkoKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUGFyc2luZyB0ZXN0cyBm
b3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKyAgICAgICAgTW9yZSByZW5kZXJpbmcgdGVzdHMgbmVl
ZGVkLgorCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorCiAyMDIwLTA1LTE0ICBKYXNvbiBMYXdyZW5jZSAgPGxhd3JlbmNlLmpAYXBwbGUuY29t
PgogCiAgICAgICAgIFsgTWFjIHdrMSBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3N0cmVhbS1zYWZlLWNyZWF0aW9uLmFueS5odG1sIGlzIGZs
YWt5IGNyYXNoaW5nIHdpdGggYWxlcnRzIC0gV1RGQ3Jhc2hXaXRoSW5mbyAtIFNDOjpKU09iamVj
dDo6Z2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlByb3BlcnR5TmFtZSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA1MWFjNDNkM2VjYmFhNjBmMDNlZDk3ZDYwODJlMWE1NWE2MWQzMzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKK1Rlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2gg
YW5kIGdyYXkgY29sb3JzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworbGFiKCkK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIpIGlz
ICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIC8gMSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAu
NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEw
LzAuNSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvNTAlKSIpIGlzICJsYWIoMjAlIDAgMTAgLyAw
LjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAg
MTAvNTAlKSIpIGlzICJsYWIoNDAwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0xNjAgMTYwKSIpIGlzICJsYWIoNTAlIC0xNjAg
MTYwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0y
MDAgMjAwKSIpIGlzICJsYWIoNTAlIC0yMDAgMjAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEwJSkiKSBpcyAibGFiKDAlIDAgMCAvIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAx
MTAlKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiKSBpcyAibGFiKDAlIDAgMCkiCisKK2xjaCgpCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiKSBp
cyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDAlIDAgMGRlZyAvIDEpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIikgaXMgImxhYigwJSAw
IDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgx
MDAlIDIzMCAwZGVnIC8gMC41KSIpIGlzICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIikg
aXMgImxhYigyMCUgNDYuOTg0NiAxNy4xMDEgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvNTAlKSIpIGlzICJsYWIoMjAlIDQ2
Ljk4NDYgMTcuMTAxIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMTAlIDIwIDIwZGVnIC8gLTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM5IDYuODQw
NCAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUg
MjAgMjBkZWcgLyAxMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIikgaXMg
ImxhYigxMCUgNS43MzQzIDE5LjE2MDMpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgxMCUgMjAgMzgwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0z
NDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4
Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goMTAlIDIwIC03MDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorCitncmF5
KCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDApIikgaXMg
ImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdy
YXkoMTAgLyAxMCUpIikgaXMgImxhYigxMCUgMCAwIC8gMC4xKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEyMCAvIDEwJSkiKSBpcyAibGFiKDEyMCUgMCAw
IC8gMC4xKSIKKworVGVzdCBpbnZhbGlkIHZhbHVlcworUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMCkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIDEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMGRl
ZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMCAwIDAgLyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitGQUlMIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSkiKSBzaG91bGQgYmUg
cmdiYSgwLCAwLCAwLCAwKS4gV2FzIGxhYigwJSAwIDAgLyAwLjUpLgorRkFJTCBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTApIikgc2hvdWxkIGJlIHJnYmEo
MCwgMCwgMCwgMCkuIFdhcyBsYWIoMjAlIDkuODQ4MDggMS43MzY0OCkuCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goMjAlIDEwIDEwZGVnIDEwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAlKSIpIGlzICJyZ2JhKDAs
IDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXko
MTAgMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAgMTApIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2lu
Zy1sYWItY29sb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xv
cnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNGY5NjdhZTg4MDlhZWQxNTgzMzFhNmYxMjgyNmJlMDQ0ZGFj
NmU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWIt
Y29sb3JzLmh0bWwKQEAgLTAsMCArMSw5NyBAQAorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2gg
YW5kIGdyYXkgY29sb3JzLiIpOworCisgICAgZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0
eSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAg
ICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAgIHZhciBj
b21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJv
cGVydHkpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAg
IHJldHVybiBjb21wdXRlZFZhbHVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGlubmVyU3R5bGUo
cHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHks
IHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3Bl
cnR5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVl
LCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0
ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0
ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgICAgICBl
eHBlY3RlZCA9ICIiOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUo
IicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0K
KworICAgIGRlYnVnKCdsYWIoKScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoMCUgMCAwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiLCAibGFi
KDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDIwJSAwIDEwLzAuNSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvNTAlKSIsICJsYWIoMjAlIDAg
MTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0
MDAlIDAgMTAvNTAlKSIsICJsYWIoNDAwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0xNjAgMTYwKSIsICJsYWIoNTAlIC0xNjAg
MTYwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0y
MDAgMjAwKSIsICJsYWIoNTAlIC0yMDAgMjAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEwJSkiLCAibGFiKDAlIDAgMCAvIDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIs
ICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIC8gMzAwJSkiLCAibGFiKDAlIDAgMCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAg
ICBkZWJ1ZygnbGNoKCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDAlIDAgMGRlZykiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIiwg
ImxhYigwJSAwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIsICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8w
LjUpIiwgImxhYigyMCUgNDYuOTg0NiAxNy4xMDEgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvNTAlKSIsICJsYWIoMjAlIDQ2
Ljk4NDYgMTcuMTAxIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMTAlIDIwIDIwZGVnIC8gLTEwJSkiLCAibGFiKDEwJSAxOC43OTM5IDYuODQwNCAv
IDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAg
MjBkZWcgLyAxMTAlKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUg
NS43MzQzIDE5LjE2MDMpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgxMCUgMjAgMzgwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIiwgImxh
YigxMCUgMTguNzkzOSA2Ljg0MDQpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC03MDBkZWcp
IiwgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVi
dWcoJ2dyYXkoKScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5
KDApIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImdyYXkoMTAgLyAxMCUpIiwgImxhYigxMCUgMCAwIC8gMC4xKSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEyMCAvIDEwJSkiLCAibGFiKDEyMCUgMCAw
IC8gMC4xKSIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdUZXN0IGludmFsaWQgdmFs
dWVzJyk7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCki
LCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoMCUgMCUgMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEpIiwgInJnYmEoMCwgMCwgMCwgMCki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDAlIDAgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiLCAicmdiYSgwLCAwLCAw
LCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAg
MGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaCgwIDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwIC8gMC41KSIsICJy
Z2JhKDAsIDAsIDAsIDApIik7IC8vIE5vIHVuaXRsZXNzIHplcm8gYW5nbGUuIEN1cnJlbnRseSBm
YWlsczogd2Via2l0Lm9yZy9iLzIwNTczMworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMjAlIDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7IC8vIE5vIHVuaXRs
ZXNzIGFuZ2xlLiBDdXJyZW50bHkgZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiLCAicmdi
YSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goMjAlIDEwIDEwZGVnIDEwIC8gMC41KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCUpIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAx
MCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCAxMCkiLCAicmdiYSgwLCAw
LCAwLCAwKSIpOworCis8L3NjcmlwdD4KKyAgICAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416728</attachid>
            <date>2020-12-23 15:30:55 -0800</date>
            <delta_ts>2020-12-26 15:08:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20201223153054.patch</filename>
            <type>text/plain</type>
            <size>34857</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTA3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkzIEBACisyMDIwLTEyLTIzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwg
Z3JheSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAg
ICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgIEFkZCAibGFiIiBhbmQgImxj
aCIga2V5d29yZHMuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVs
cGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBh
cnNlT3B0aW9uYWxBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OnBhcnNlTGFiUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OnBhcnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb25QYXJh
bWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFy
c2VDb2xvckZ1bmN0aW9uKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgImxhYigu
Li4pIiwgImxjaCguLi4pIiwgImdyYXkoLi4uKSIKKyAgICAgICAgYW5kICJjb2xvcihsYWIgLi4u
KSIsIGFsbCBvZiB3aGljaCBjcmVhdGUgTGFiPGZsb2F0PiBjb2xvcnMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8
KToKKyAgICAgICAgQWRkIHRleHQgc3RyZWFtIGR1bXBpbmcgZm9yIG5ldyBMKmEqYiBjb2xvciBz
cGFjZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcjo6Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OnNldENvbG9y
KToKKyAgICAgICAgVXNlIHRlbXBsYXRlcyB0byBhdm9pZCBuZWVkaW5nIHRvIGRlZmluZSBhIG5l
dyBjb25zdHJ1Y3RvciAvIHNldENvbG9yIGZ1bmN0aW9uCisgICAgICAgIGZvciBlYWNoIHN1cHBv
cnRlZCBleHRlbmRlZCBjb2xvci4gTm9uLXN1cHBvcnRlZCBjb2xvciB0eXBlcyB3aWxsIGZhaWwg
ZHVlIHRvCisgICAgICAgIGxhY2sgb2YgYSBjb2xvclNwYWNlIHN0YXRpYyBtZW1iZXIuCisgICAg
ICAgIAorICAgICAgICBUaGUgY29uc3RydWN0b3IgdGFraW5nIGEgQ29sb3JDb21wb25lbnRzIHN0
aWxsIG5lZWRzIHRvIGtub3cgYWJvdXQgZWFjaCBjb2xvcgorICAgICAgICBzcGFjZSBzbyB1cGRh
dGUgaXQuIAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvWFlaKToKKyAgICAgICAgKFdlYkNvcmU6OnRvU1JHQkEp
OgorICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yQ29udmVyc2lvbi5oOgorICAgICAgICBBZGQgY29udmVyc2lvbnMgZnJvbSBMYWIgYW5k
IExjaCB0byBzUkdCQSwgYW5kIGNvbnZlcnNpb24gZnJvbSBMY2ggdG8gTGFiLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNlcmlhbGl6YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZv
ckNTUyk6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemF0aW9uRm9ySFRNTCk6CisgICAgICAg
IChXZWJDb3JlOjpzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmg6CisgICAgICAgIEFkZCBzZXJp
YWxpemF0aW9uIGZvciBMYWIgY29sb3JzLiBXZSBjdXJyZW50bHkgYWx3YXlzIHNlcmlhbGl6ZSB1
c2luZyB0aGUgbGFiKCkKKyAgICAgICAgbm90YXRpb24sIHdoaWNoIGFwcGVhcnMgdG8gYmUgY29y
cmVjdCBmb3IgYXQgbGVhc3QgY29sb3JzIGRlY2xhcmVkIHVzaW5nIGxhYigpLAorICAgICAgICBs
Y2goKSBhbmQgZ3JheSgpLiBVbmNsZWFyIGlmIGl0IGlzIGNvcnJlY3QgZm9yIGNvbG9ycyBkZWNs
YXJlZCB3aXRoIGNvbG9yKGxhYiAuLi4pLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JTcGFjZS5oOgorICAgICAgICBBZGQgTGFiLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6TGFiOjpMYWIpOgorICAgICAg
ICAoV2ViQ29yZTo6YXNDb2xvckNvbXBvbmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6YXNMYWIp
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OkxjaDo6TGNoKToKKyAgICAgICAgKFdlYkNvcmU6
OmFzTGNoKToKKyAgICAgICAgQWRkIExhYiBhbmQgTGNoIHR5cGVzLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9y
QnlNb2RpZmluZ0VhY2hOb25BbHBoYUNvbXBvbmVudCk6CisgICAgICAgIEZpeCBjb2xvckJ5TW9k
aWZpbmdFYWNoTm9uQWxwaGFDb21wb25lbnQgdG8gbm90IGV4cGVjdCBjb2xvcnMgdG8gdXNlIHRo
ZSBuYW1lcworICAgICAgICByZWQsIGdyZWVuLCBibHVlIGFzIHRoZSBub24tYWxwaGEgY29tcG9u
ZW50cyBieSB1c2luZyB0aGUgQ29sb3JDb21wb25lbnQgZm9ybQorICAgICAgICBmb3IgcHJvY2Vz
c2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OmNhbGxPblVuZGVybHlpbmdUeXBlIGNvbnN0
KToKKyAgICAgICAgQWRkIExhYi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0Nv
bG9yQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGVha0NHQ29sb3IpOgorICAgICAgICBBZGQg
TGFiLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bGFiRDUwQ29sb3JTcGFjZVJlZik6CisgICAgICAgIEFk
ZCBMYWIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5oOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkQ0dDb2xvclNwYWNlKToKKyAgICAgICAgQWRk
IExhYi4KKwogMjAyMC0xMi0yMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVIFByb2Nlc3NdOiBEb24ndCBjYWxsIGZsdXNoRHJhd2luZ0NvbnRleHQo
KSBpbiB0aGUgbWlkZGxlIG9mIHJlY29yZGluZyBkcmF3aW5nIGNvbW1hbmRzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNpb24gMjcxMDc0KQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEy
NjQsNiArMTI2NCw5IEBAIHJnYgogcmdiYQogaHNsCiBoc2xhCitsYWIKK2xjaAorLy8gZ3JheQog
Ly9jb2xvcgogCiAvLyB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHJldmlzaW9uIDI3MTA3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzkyLDYgKzc5MiwxMDUgQEAgc3RhdGljIENvbG9yIHBh
cnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZQogICAgIHJldHVybiBjb252ZXJ0VG9Db21wb25lbnRC
eXRlcyh0b1NSR0JBKEhTTEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlb
MF0pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0
Pihjb2xvckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSB9KSk7CiB9CiAKK3N0
YXRpYyBPcHRpb25hbDxmbG9hdD4gcGFyc2VPcHRpb25hbEFscGhhKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQoreworICAgIGlmICghY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShy
YW5nZSkpCisgICAgICAgIHJldHVybiAxLjBmOworCisgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9
IGNvbnN1bWVQZXJjZW50KHJhbmdlLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoYWxwaGFQYXJh
bWV0ZXIpCisgICAgICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91
YmxlVmFsdWUoKSAvIDEwMC4wLCAwLjAsIDEuMCk7CisKKyAgICBhbHBoYVBhcmFtZXRlciA9IGNv
bnN1bWVOdW1iZXIocmFuZ2UsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYWxwaGFQYXJhbWV0
ZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIGNsYW1wVG88Zmxv
YXQ+KGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpLCAwLjAsIDEuMCk7Cit9CisKK3N0YXRp
YyBDb2xvciBwYXJzZUxhYlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7
CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVMYWIpOwor
ICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisK
KyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBh
VmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYVZh
bHVlKQorICAgICAgICByZXR1cm4geyB9OworICAgIGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJl
cihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWJWYWx1ZSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAg
aWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgp
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIExhYjxmbG9hdD4geyBsaWdodG5l
c3MtPmZsb2F0VmFsdWUoKSwgYVZhbHVlLT5mbG9hdFZhbHVlKCksIGJWYWx1ZS0+ZmxvYXRWYWx1
ZSgpLCAqYWxwaGEgfTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0
aW9uSWQoKSA9PSBDU1NWYWx1ZUxjaCk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0g
Y29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBl
cmNlbnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAg
IHJldHVybiBDb2xvcigpOworCisgICAgYXV0byBjaHJvbWFWYWx1ZSA9IGNvbnN1bWVOdW1iZXIo
YXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFjaHJvbWFWYWx1ZSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+IChkaXNhbGxvd2lu
ZyB1bml0bGVzcyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3Ms
IEhUTUxTdGFuZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgZmxvYXQgYW5n
bGVJbkRlZ3JlZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBodWVWYWx1ZSA9IGNv
bnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmICghaHVlVmFsdWUp
CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZh
bHVlLT5kb3VibGVWYWx1ZSgpOworICAgIH0gZWxzZQorICAgICAgICBhbmdsZUluRGVncmVlcyA9
IGh1ZVZhbHVlLT5jb21wdXRlRGVncmVlcygpOworCisgICAgYW5nbGVJbkRlZ3JlZXMgPSBmbW9k
ZihhbmdsZUluRGVncmVlcywgMzYwLjBmKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjAp
CisgICAgICAgIGFuZ2xlSW5EZWdyZWVzICs9IDM2MC4wZjsKKworICAgIGF1dG8gYWxwaGEgPSBw
YXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgcmV0dXJuIHRvTGFiKExjaDxmbG9hdD4geyBsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgY2hy
b21hVmFsdWUtPmZsb2F0VmFsdWUoKSwgYW5nbGVJbkRlZ3JlZXMsICphbHBoYSB9KTsKK30KKwor
c3RhdGljIENvbG9yIHBhcnNlR3JheVBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVH
cmF5KTsKKyAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFu
Z2UpOworCisgICAgLy8gVW5saWtlIGxhYigpIGFuZCBsY2goKSwgZ3JheSgpIHRha2VzIGEgbnVt
YmVyLCBidXQgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy80
NjQ4LgorICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdl
QWxsKTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1
dG8gYWxwaGEgPSBwYXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFhbHBoYSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgcmV0dXJuIExhYjxmbG9hdD4geyBsaWdodG5lc3MtPmZsb2F0VmFsdWUo
KSwgMCwgMCwgKmFscGhhIH07Cit9CisKIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25Q
YXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIEFTU0VSVChyYW5n
ZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlQ29sb3IpOwpAQCAtODA1LDYgKzkwNCw5
IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXIKICAgICBjYXNlIENT
U1ZhbHVlRGlzcGxheVAzOgogICAgICAgICBjb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6RGlzcGxh
eVAzOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTGFiOgorICAgICAgICBjb2xv
clNwYWNlID0gQ29sb3JTcGFjZTo6TGFiOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KQEAgLTg4OCw2ICs5OTAsMTUgQEAgc3RhdGljIENv
bG9yIHBhcnNlQ29sb3JGdW5jdGlvbihDU1NQYXJzZQogICAgIGNhc2UgQ1NTVmFsdWVIc2xhOgog
ICAgICAgICBjb2xvciA9IHBhcnNlSFNMUGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJN
b2RlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29s
b3IgPSBwYXJzZUxhYlBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTVmFsdWVMY2g6CisgICAgICAgIGNvbG9yID0gcGFyc2VMQ0hQYXJhbWV0ZXJzKGNv
bG9yUmFuZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlR3JheToKKyAgICAg
ICAgY29sb3IgPSBwYXJzZUdyYXlQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIENTU1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1
bmN0aW9uUGFyYW1ldGVycyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiAyNzEwNzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3Nyw2ICsxNzcsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBDCiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHRzIDw8
ICJEaXNwbGF5UDMiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoK
KyAgICAgICAgdHMgPDwgIkwqYSpiIjsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVy
biB0czsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAko
cmV2aXNpb24gMjcxMDc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsOSArNzcsNyBAQCBwdWJsaWM6CiAgICAgQ29sb3Io
T3B0aW9uYWw8U1JHQkE8dWludDhfdD4+LCBTZW1hbnRpY1RhZyk7CiAKICAgICBDb2xvcihDb2xv
ckNvbXBvbmVudHM8ZmxvYXQ+LCBDb2xvclNwYWNlKTsKLSAgICBDb2xvcihjb25zdCBTUkdCQTxm
bG9hdD4mKTsKLSAgICBDb2xvcihjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsKLSAgICBDb2xv
cihjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7CisgICAgdGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5h
bWU+IHR5cGVuYW1lIENvbG9yVHlwZT4gQ29sb3IoY29uc3QgQ29sb3JUeXBlPGZsb2F0PiYpOwog
CiAgICAgZXhwbGljaXQgQ29sb3IoV1RGOjpIYXNoVGFibGVFbXB0eVZhbHVlVHlwZSk7CiAgICAg
ZXhwbGljaXQgQ29sb3IoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKTsKQEAgLTE4MSw5
ICsxNzksNyBAQCBwcml2YXRlOgogICAgIENvbG9yKFJlZjxFeHRlbmRlZENvbG9yPiYmKTsKIAog
ICAgIHZvaWQgc2V0Q29sb3IoU1JHQkE8dWludDhfdD4pOwotICAgIHZvaWQgc2V0Q29sb3IoY29u
c3QgU1JHQkE8ZmxvYXQ+Jik7Ci0gICAgdm9pZCBzZXRDb2xvcihjb25zdCBMaW5lYXJTUkdCQTxm
bG9hdD4mKTsKLSAgICB2b2lkIHNldENvbG9yKGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKKyAg
ICB0ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFtZT4gdHlwZW5hbWUgQ29sb3JUeXBlPiB2b2lkIHNl
dENvbG9yKGNvbnN0IENvbG9yVHlwZTxmbG9hdD4mKTsKICAgICB2b2lkIHNldEV4dGVuZGVkQ29s
b3IoUmVmPEV4dGVuZGVkQ29sb3I+JiYpOwogCiAgICAgdm9pZCB0YWdBc1NlbWFudGljKCkgeyBt
X2NvbG9yRGF0YS5pbmxpbmVDb2xvckFuZEZsYWdzIHw9IGlzU2VtYW50aWNJbmxpbmVDb2xvckJp
dDsgfQpAQCAtMjg2LDIwICsyODIsMTMgQEAgaW5saW5lIENvbG9yOjpDb2xvcihDb2xvckNvbXBv
bmVudHM8ZmxvYQogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICBzZXRD
b2xvcihhc0Rpc3BsYXlQMyhjb21wb25lbnRzKSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNl
IENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgc2V0Q29sb3IoYXNMYWIoY29tcG9uZW50cykpOwor
ICAgICAgICByZXR1cm47CiAgICAgfQogfQogCi1pbmxpbmUgQ29sb3I6OkNvbG9yKGNvbnN0IFNS
R0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgc2V0Q29sb3IoY29sb3IpOwotfQotCi1pbmxpbmUg
Q29sb3I6OkNvbG9yKGNvbnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgc2V0
Q29sb3IoY29sb3IpOwotfQotCi1pbmxpbmUgQ29sb3I6OkNvbG9yKGNvbnN0IERpc3BsYXlQMzxm
bG9hdD4mIGNvbG9yKQordGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5hbWU+IHR5cGVuYW1lIENvbG9y
VHlwZT4gaW5saW5lIENvbG9yOjpDb2xvcihjb25zdCBDb2xvclR5cGU8ZmxvYXQ+JiBjb2xvcikK
IHsKICAgICBzZXRDb2xvcihjb2xvcik7CiB9CkBAIC00MDIsMTcgKzM5MSw3IEBAIGlubGluZSB2
b2lkIENvbG9yOjpzZXRDb2xvcihTUkdCQTx1aW50OF8KICAgICB0YWdBc1ZhbGlkKCk7CiB9CiAK
LWlubGluZSB2b2lkIENvbG9yOjpzZXRDb2xvcihjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQot
ewotICAgIHNldEV4dGVuZGVkQ29sb3IoRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKGNvbG9yKSk7Ci19
Ci0KLWlubGluZSB2b2lkIENvbG9yOjpzZXRDb2xvcihjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4m
IGNvbG9yKQotewotICAgIHNldEV4dGVuZGVkQ29sb3IoRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKGNv
bG9yKSk7Ci19Ci0KLWlubGluZSB2b2lkIENvbG9yOjpzZXRDb2xvcihjb25zdCBEaXNwbGF5UDM8
ZmxvYXQ+JiBjb2xvcikKK3RlbXBsYXRlPHRlbXBsYXRlPHR5cGVuYW1lPiB0eXBlbmFtZSBDb2xv
clR5cGU+IHZvaWQgQ29sb3I6OnNldENvbG9yKGNvbnN0IENvbG9yVHlwZTxmbG9hdD4mIGNvbG9y
KQogewogICAgIHNldEV4dGVuZGVkQ29sb3IoRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKGNvbG9yKSk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yQ29udmVyc2lvbi5jcHAJKHJldmlzaW9uIDI3MTA3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
NCw2ICsxNDQsNTkgQEAgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBTUkdCQQog
ICAgIHJldHVybiB0b0Rpc3BsYXlQMyh0b0xpbmVhckRpc3BsYXlQMyh0b1hZWih0b0xpbmVhclNS
R0JBKGNvbG9yKSkpKTsKIH0KIAorc3RhdGljIFhZWkE8ZmxvYXQ+IHRvWFlaKGNvbnN0IExhYjxm
bG9hdD4mIGNvbG9yKQoreworICAgIGF1dG8gbGFiWFlaID0gW10oZmxvYXQgdCkgeworICAgICAg
ICBjb25zdGV4cHIgZmxvYXQgTEFCZSA9IDIxNi4wZiAvIDI0Mzg5LjBmOworICAgICAgICBjb25z
dGV4cHIgZmxvYXQgTEFCayA9IDI0Mzg5LjBmIC8gMjcuMGY7CisKKyAgICAgICAgZmxvYXQgdEN1
YmVkID0gdCAqIHQgKiB0OworICAgICAgICBpZiAodEN1YmVkID4gTEFCZSkKKyAgICAgICAgICAg
IHJldHVybiB0Q3ViZWQ7CisKKyAgICAgICAgcmV0dXJuICgxMTYuMGYgKiB0IC0gMTYuMGYpIC8g
TEFCazsKKyAgICB9OworCisgICAgZmxvYXQgeSA9IChjb2xvci5saWdodG5lc3MgKyAxNi4wZikg
LyAxMTYuMGY7CisgICAgZmxvYXQgeCA9IHkgKyBjb2xvci5hIC8gNTAwLjBmOworICAgIGZsb2F0
IHogPSB5IC0gY29sb3IuYiAvIDIwMC4wZjsKKworICAgIGNvbnN0ZXhwciBmbG9hdCBENjVXaGl0
ZVZhbHVlc1tdID0geworICAgICAgICAwLjk1MDQ3ZiwKKyAgICAgICAgMS4wZiwKKyAgICAgICAg
MS4wODg4M2YKKyAgICB9OworICAgIHggPSBENjVXaGl0ZVZhbHVlc1swXSAqIGxhYlhZWih4KTsK
KyAgICB5ID0gRDY1V2hpdGVWYWx1ZXNbMV0gKiBsYWJYWVooeSk7CisgICAgeiA9IEQ2NVdoaXRl
VmFsdWVzWzJdICogbGFiWFlaKHopOworCisgICAgcmV0dXJuIHsgeCwgeSwgeiwgY29sb3IuYWxw
aGEgfTsKK30KKworU1JHQkE8ZmxvYXQ+IHRvU1JHQkEoY29uc3QgTGFiPGZsb2F0PiYgY29sb3Ip
Cit7CisgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsYWItdG8tcmdi
CisgICAgcmV0dXJuIHRvU1JHQkEodG9MaW5lYXJTUkdCQSh0b1hZWihjb2xvcikpKTsKK30KKwor
TGFiPGZsb2F0PiB0b0xhYihjb25zdCBMY2g8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRw
czovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI2xjaC10by1sYWIKKyAgICBmbG9hdCBodWVB
bmdsZVJhZGlhbnMgPSBkZWcycmFkKGNvbG9yLmh1ZSk7CisKKyAgICByZXR1cm4geworICAgICAg
ICBjb2xvci5saWdodG5lc3MsCisgICAgICAgIGNvbG9yLmNocm9tYSAqIGNvcyhodWVBbmdsZVJh
ZGlhbnMpLAorICAgICAgICBjb2xvci5jaHJvbWEgKiBzaW4oaHVlQW5nbGVSYWRpYW5zKSwKKyAg
ICAgICAgY29sb3IuYWxwaGEKKyAgICB9OworfQorCitTUkdCQTxmbG9hdD4gdG9TUkdCQShjb25z
dCBMY2g8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9TUkdCQSh0b0xhYihjb2xvcikp
OworfQorCiBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikKIHsK
ICAgICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9jb2xvcl9zcGFjZS4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5oCShyZXZpc2lvbiAyNzEwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvckNvbnZlcnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsMTEgQEAg
V0VCQ09SRV9FWFBPUlQgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYQogV0VCQ09SRV9FWFBPUlQg
U1JHQkE8ZmxvYXQ+IHRvU1JHQkEoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYpOwogV0VCQ09SRV9F
WFBPUlQgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBTUkdCQTxmbG9hdD4mKTsK
IAorV0VCQ09SRV9FWFBPUlQgU1JHQkE8ZmxvYXQ+IHRvU1JHQkEoY29uc3QgTGFiPGZsb2F0PiYp
OworV0VCQ09SRV9FWFBPUlQgU1JHQkE8ZmxvYXQ+IHRvU1JHQkEoY29uc3QgTGNoPGZsb2F0PiYp
OworCitXRUJDT1JFX0VYUE9SVCBMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IExjaDxmbG9hdD4mKTsK
KwogV0VCQ09SRV9FWFBPUlQgSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFNSR0JBPGZsb2F0PiYp
OwogV0VCQ09SRV9FWFBPUlQgU1JHQkE8ZmxvYXQ+IHRvU1JHQkEoY29uc3QgSFNMQTxmbG9hdD4m
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxp
emF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCShyZXZpc2lvbiAyNzEwNzQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05Niw2ICs5Niw4IEBAIHN0YXRpYyBBU0NJSUxpdGVyYWwgc2VyaWFsaXphdGlvbihD
b2xvclMKICAgICAgICAgcmV0dXJuICJsaW5lYXItc3JnYiJfczsKICAgICBjYXNlIENvbG9yU3Bh
Y2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJuICJkaXNwbGF5LXAzIl9zOworICAgIGNhc2Ug
Q29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gImxhYiJfczsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE2MSw2ICsxNjMsMjcgQEAgU3RyaW5nIHNlcmlhbGl6
YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KAogICAgIHJldHVybiBzZXJpYWxpemF0aW9uKGNvbG9y
KTsKIH0KIAorLy8gTGFiPGZsb2F0PiBvdmVybG9hZHMKKworU3RyaW5nIHNlcmlhbGl6YXRpb25G
b3JDU1MoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cHM6Ly93d3cudzMu
b3JnL1RSL2Nzcy1jb2xvci00LyNzZXJpYWxpemluZy1sYWItbGNoCisKKyAgICBhdXRvIFtjMSwg
YzIsIGMzLCBhbHBoYV0gPSBjb2xvcjsKKyAgICBpZiAoV1RGOjphcmVFc3NlbnRpYWxseUVxdWFs
KGFscGhhLCAxLjBmKSkKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoImxhYigiLCBjMSwgIiUg
IiwgYzIsICcgJywgYzMsICcpJyk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoImxhYigiLCBjMSwg
IiUgIiwgYzIsICcgJywgYzMsICIgLyAiLCBhbHBoYSwgJyknKTsKK30KKworU3RyaW5nIHNlcmlh
bGl6YXRpb25Gb3JIVE1MKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAgIHJldHVybiBz
ZXJpYWxpemF0aW9uRm9yQ1NTKGNvbG9yKTsKK30KKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JS
ZW5kZXJUcmVlQXNUZXh0KGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAgIHJldHVybiBz
ZXJpYWxpemF0aW9uRm9yQ1NTKGNvbG9yKTsKK30KIAogLy8gQ29sb3Igb3ZlcmxvYWRzCiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2Vy
aWFsaXphdGlvbi5oCShyZXZpc2lvbiAyNzEwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2xvcjsKIAogdGVtcGxhdGU8dHlw
ZW5hbWU+IHN0cnVjdCBEaXNwbGF5UDM7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExhYjsK
IHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTGluZWFyU1JHQkE7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZT4gc3RydWN0IFNSR0JBOwogCkBAIC01NSw2ICs1NiwxMCBAQCBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgc2VyaWFsaXphdGlvbkZvckNTCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlv
bkZvckhUTUwoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5n
IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0IERpc3BsYXlQMzxmbG9hdD4m
KTsKIAorV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgTGFi
PGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNv
bnN0IExhYjxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9y
UmVuZGVyVHJlZUFzVGV4dChjb25zdCBMYWI8ZmxvYXQ+Jik7CisKIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IENvbG9yJik7CiBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgQ29sb3ImKTsKIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBDb2xvciYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAko
cmV2aXNpb24gMjcxMDc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIFNSR0IsCiAgICAg
TGluZWFyUkdCLAotICAgIERpc3BsYXlQMworICAgIERpc3BsYXlQMywKKyAgICBMYWIKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvclR5cGVzLmgJKHJldmlzaW9uIDI3MTA3NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI5
LDYgKzIyOSw5MiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyCiAg
ICAgcmV0dXJuICEoYSA9PSBiKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExh
YiA6IENvbG9yV2l0aEFscGhhSGVscGVyPExhYjxUPj4geworICAgIHVzaW5nIENvbXBvbmVudFR5
cGUgPSBUOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjb2xvclNwYWNlID0gQ29sb3JTcGFj
ZTo6TGFiOworCisgICAgY29uc3RleHByIExhYihUIGxpZ2h0bmVzcywgVCBhLCBUIGIsIFQgYWxw
aGEgPSBDb21wb25lbnRUcmFpdHM8VD46Om1heFZhbHVlKQorICAgICAgICA6IGxpZ2h0bmVzcyB7
IGxpZ2h0bmVzcyB9CisgICAgICAgICwgYSB7IGEgfQorICAgICAgICAsIGIgeyBiIH0KKyAgICAg
ICAgLCBhbHBoYSB7IGFscGhhIH0KKyAgICB7CisgICAgfQorCisgICAgY29uc3RleHByIExhYigp
CisgICAgICAgIDogTGFiIHsgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50
VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9u
ZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSB9CisgICAgeworICAgIH0KKworICAgIFQgbGlnaHRuZXNz
OworICAgIFQgYTsKKyAgICBUIGI7CisgICAgVCBhbHBoYTsKK307CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNvbXBvbmVudHM8VD4gYXNDb2xvckNvbXBvbmVudHMoY29u
c3QgTGFiPFQ+JiBjKQoreworICAgIHJldHVybiB7IGMubGlnaHRuZXNzLCBjLmEsIGMuYiwgYy5h
bHBoYSB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgTGFiPFQ+IGFzTGFi
KGNvbnN0IENvbG9yQ29tcG9uZW50czxUPiYgYykKK3sKKyAgICByZXR1cm4geyBjWzBdLCBjWzFd
LCBjWzJdLCBjWzNdIH07Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29s
IG9wZXJhdG9yPT0oY29uc3QgTGFiPFQ+JiBhLCBjb25zdCBMYWI8VD4mIGIpCit7CisgICAgcmV0
dXJuIGFzQ29sb3JDb21wb25lbnRzKGEpID09IGFzQ29sb3JDb21wb25lbnRzKGIpOworfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExhYjxU
PiYgYSwgY29uc3QgTGFiPFQ+JiBiKQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKKwor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExjaCA6IENvbG9yV2l0aEFscGhhSGVscGVyPExj
aDxUPj4geworICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOworCisgICAgY29uc3RleHByIExj
aChUIGxpZ2h0bmVzcywgVCBjaHJvbWEsIFQgaHVlLCBUIGFscGhhID0gQ29tcG9uZW50VHJhaXRz
PFQ+OjptYXhWYWx1ZSkKKyAgICAgICAgOiBsaWdodG5lc3MgeyBsaWdodG5lc3MgfQorICAgICAg
ICAsIGNocm9tYSB7IGNocm9tYSB9CisgICAgICAgICwgaHVlIHsgaHVlIH0KKyAgICAgICAgLCBh
bHBoYSB7IGFscGhhIH0KKyAgICB7CisgICAgfQorCisgICAgY29uc3RleHByIExjaCgpCisgICAg
ICAgIDogTGNoIHsgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRz
PFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJh
aXRzPFQ+OjptaW5WYWx1ZSB9CisgICAgeworICAgIH0KKworICAgIFQgbGlnaHRuZXNzOworICAg
IFQgY2hyb21hOworICAgIFQgaHVlOworICAgIFQgYWxwaGE7Cit9OworCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29sb3JDb21wb25lbnRzKGNv
bnN0IExjaDxUPiYgYykKK3sKKyAgICByZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5jaHJvbWEsIGMu
aHVlLCBjLmFscGhhIH07Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBMY2g8
VD4gYXNMY2goY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+JiBjKQoreworICAgIHJldHVybiB7IGNb
MF0sIGNbMV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3Rl
eHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMY2g8VD4mIGEsIGNvbnN0IExjaDxUPiYgYikKK3sK
KyAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoYSkgPT0gYXNDb2xvckNvbXBvbmVudHMoYik7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oY29u
c3QgTGNoPFQ+JiBhLCBjb25zdCBMY2g8VD4mIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsK
K30KKwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSFNMQSA6IENvbG9yV2l0aEFscGhh
SGVscGVyPEhTTEE8VD4+IHsKICAgICB1c2luZyBDb21wb25lbnRUeXBlID0gVDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAko
cmV2aXNpb24gMjcxMDc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDEyICsxNDcsMTIgQEAgdGVtcGxh
dGU8dGVtcGxhdGU8dHlwZW5hbWU+IHR5cGVuYW1lIENvbAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xvclR5cGUsIHR5cGVuYW1lIEZ1bmN0b3I+IENvbG9yVHlwZSBjb2xvckJ5TW9kaWZpbmdFYWNo
Tm9uQWxwaGFDb21wb25lbnQoY29uc3QgQ29sb3JUeXBlJiBjb2xvciwgRnVuY3RvciYmIGZ1bmN0
b3IpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1hZGUgdG8gd29yayB3aXRoIGNv
bG9ycyB0aGF0IGRvbid0IHVzZSB0aGUgbmFtZXMgcmVkLCBncmVlbiwgYW5kIGJsdWUgZm9yIHRo
ZWlyIGNoYW5uZWxzLgotICAgIGF1dG8gY29weSA9IGNvbG9yOwotICAgIGNvcHkucmVkID0gc3Rk
OjppbnZva2UoZnVuY3RvciwgY29sb3IucmVkKTsKLSAgICBjb3B5LmdyZWVuID0gc3RkOjppbnZv
a2UoZnVuY3RvciwgY29sb3IuZ3JlZW4pOwotICAgIGNvcHkuYmx1ZSA9IHN0ZDo6aW52b2tlKHN0
ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgY29sb3IuYmx1ZSk7Ci0gICAgcmV0dXJuIGNv
cHk7CisgICAgYXV0byBjb21wb25lbnRzID0gYXNDb2xvckNvbXBvbmVudHMoY29sb3IpOworICAg
IGF1dG8gY29weSA9IGNvbXBvbmVudHM7CisgICAgY29weVswXSA9IHN0ZDo6aW52b2tlKGZ1bmN0
b3IsIGNvbXBvbmVudHNbMF0pOworICAgIGNvcHlbMV0gPSBzdGQ6Omludm9rZShmdW5jdG9yLCBj
b21wb25lbnRzWzFdKTsKKyAgICBjb3B5WzJdID0gc3RkOjppbnZva2Uoc3RkOjpmb3J3YXJkPEZ1
bmN0b3I+KGZ1bmN0b3IpLCBjb21wb25lbnRzWzJdKTsKKyAgICByZXR1cm4geyBjb3B5WzBdLCBj
b3B5WzFdLCBjb3B5WzJdLCBjb3B5WzNdIH07CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9y
VHlwZT4gY29uc3RleHByIENvbG9yVHlwZSBjb2xvcldpdGhPdmVycmlkZW5BbHBoYShjb25zdCBD
b2xvclR5cGUmIGNvbG9yLCB1aW50OF90IG92ZXJyaWRlQWxwaGEpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5oCShyZXZpc2lvbiAy
NzEwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3Rvcj4gZGVjbHR5cGUoYXV0bwogICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3RkOjpmb3J3
YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xpbmVhclNSR0JBKG1fY29tcG9uZW50cykpOwogICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uo
c3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0Rpc3BsYXlQMyhtX2NvbXBvbmVudHMp
KTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgcmV0dXJuIHN0ZDo6aW52b2tl
KHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNMYWIobV9jb21wb25lbnRzKSk7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcAkocmV2aXNpb24gMjcxMDc0KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwMCwxOCArMTAwLDEwIEBAIHN0YXRpYyBDR0NvbG9yUmVmIGxlYWtDR0Nv
bG9yKGNvbnN0IENvbG8KICAgICBhdXRvIFtyLCBnLCBiLCBhXSA9IGNvbXBvbmVudHM7CiAgICAg
Q0dGbG9hdCBjZ0Zsb2F0Q29tcG9uZW50c1s0XSB7IHIsIGcsIGIsIGEgfTsKIAotICAgIHN3aXRj
aCAoY29sb3JTcGFjZSkgewotICAgIGNhc2UgQ29sb3JTcGFjZTo6U1JHQjoKLSAgICAgICAgcmV0
dXJuIENHQ29sb3JDcmVhdGUoc1JHQkNvbG9yU3BhY2VSZWYoKSwgY2dGbG9hdENvbXBvbmVudHMp
OwotICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgotICAgICAgICByZXR1cm4gQ0dDb2xv
ckNyZWF0ZShkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCksIGNnRmxvYXRDb21wb25lbnRzKTsKLSAg
ICBjYXNlIENvbG9yU3BhY2U6OkxpbmVhclJHQjoKLSAgICAgICAgLy8gRklYTUU6IERvIHdlIGV2
ZXIgY3JlYXRlIENHQ29sb3JSZWZzIGluIHRoZXNlIHNwYWNlcz8gSXQgbWF5IG9ubHkgYmUgSW1h
Z2VCdWZmZXJzLgotICAgICAgICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFjZVJl
ZigpLCBjZ0Zsb2F0Q29tcG9uZW50cyk7Ci0gICAgfQorICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwg
Z2l2ZSBpbmNvcnJlY3QgcmVzdWx0cyBvbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0IHRo
ZSBjb2xvcgorICAgIC8vIHNwYWNlcyByZXF1ZXN0ZWQuIFdlIHNob3VsZCBjaGVjayBmb3Igc3Vw
cG9ydCBhbmQgY29udmVydCB0byBzUkdCIGlmIG5lZWRlZC4KIAotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKGNh
Y2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgY2dGbG9hdENvbXBvbmVudHMpOwogfQogCiBD
R0NvbG9yUmVmIGNhY2hlZENHQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmNwcAkocmV2aXNpb24gMjcxMDc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgs
NiArMTM4LDI1IEBAIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAg
ICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkQ1
MENvbG9yU3BhY2VSZWYoKQoreworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGFiRDUwQ29s
b3JTcGFjZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpj
YWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgLy8g
RklYTUU6IENHQ29sb3JTcGFjZSBpbmRpY2F0ZXMgdGhhdCB0aGUgRDUwIFdoaXRlIFBvaW50IGlz
IHsgMC45NjQyLCAxLjAsIDAuODI0OSB9CisgICAgICAgIC8vIGFuZCBjYW4gYmUgYWNjZXNzZWQg
dmlhIENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VHZW5lcmljTGFiKS4K
KworICAgICAgICBjb25zdGV4cHIgQ0dGbG9hdCBkNTBXaGl0ZVBvaW50W10gPSB7IDAuOTY0MjIs
IDEuMDAwMDAsIDAuODI1MjEgfTsKKyAgICAgICAgbGFiRDUwQ29sb3JTcGFjZSA9IENHQ29sb3JT
cGFjZUNyZWF0ZUxhYihkNTBXaGl0ZVBvaW50LCBudWxscHRyLCBudWxscHRyKTsKKyNlbHNlCisg
ICAgICAgIGxhYkQ1MENvbG9yU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOworI2VuZGlmCisg
ICAgfSk7CisgICAgcmV0dXJuIGxhYkQ1MENvbG9yU3BhY2U7Cit9CisKKwogc3RhdGljIEludGVy
cG9sYXRpb25RdWFsaXR5IGNvbnZlcnRJbnRlcnBvbGF0aW9uUXVhbGl0eShDR0ludGVycG9sYXRp
b25RdWFsaXR5IHF1YWxpdHkpCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmgJKHJldmlzaW9uIDI3MTA3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1
LDcgQEAgV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIHNSR0JDb2xvcgogV0VCQ09SRV9F
WFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNP
UkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CiBXRUJD
T1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOworV0VC
Q09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxhYkQ1MENvbG9yU3BhY2VSZWYoKTsKIAogQ0dB
ZmZpbmVUcmFuc2Zvcm0gZ2V0VXNlclRvQmFzZUNUTShDR0NvbnRleHRSZWYpOwogCkBAIC00Nyw2
ICs0OCw4IEBAIHN0YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZENHQ28KICAgICAg
ICAgcmV0dXJuIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9yU3BhY2U6
OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKKyAg
ICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgcmV0dXJuIGxhYkQ1MENvbG9yU3BhY2VS
ZWYoKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHNSR0JD
b2xvclNwYWNlUmVmKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzEwMTYpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0xMi0yMyAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwg
bGNoKCksIGdyYXkoKSBhbmQgY29sb3IobGFiIC4uLikgY29sb3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBG
cmFzZXIuCisKKyAgICAgICAgUGFyc2luZyB0ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4K
KyAgICAgICAgTW9yZSByZW5kZXJpbmcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogZmFzdC9j
c3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEyLTIwICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWly
b11bV2ViR0xdIHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL21pc2MvdW5pbml0aWFsaXplZC10ZXN0
Lmh0bWwgaXMgZmFpbGluZyBvbmx5IGZvciBEZWJ1ZyBidWlsZHMKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKK1Rlc3QgdGhlIHBhcnNp
bmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworbGFiKCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiKSBpcyAi
bGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKDIwJSAwIDEwLzAuNSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvNTAlKSIpIGlzICJs
YWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYig0MDAlIDAgMTAvNTAlKSIpIGlzICJsYWIoNDAwJSAwIDEwIC8gMC41KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0xNjAgMTYwKSIpIGlz
ICJsYWIoNTAlIC0xNjAgMTYwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNTAlIC0yMDAgMjAwKSIpIGlzICJsYWIoNTAlIC0yMDAgMjAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEwJSkiKSBpcyAi
bGFiKDAlIDAgMCAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgLyAxMTAlKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiKSBpcyAibGFiKDAlIDAg
MCkiCisKK2xjaCgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDAlIDAgMGRlZykiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDEpIikgaXMgImxhYigwJSAwIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUp
IikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIpIGlzICJsYWIoMTAwJSAyMzAgMCAv
IDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1
MCAyMGRlZy8wLjUpIikgaXMgImxhYigyMCUgNDYuOTg0NiAxNy4xMDEgLyAwLjUpIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvNTAlKSIp
IGlzICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gLTEwJSkiKSBpcyAibGFiKDEw
JSAxOC43OTM5IDYuODQwNCAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44
NDA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIw
IDEuMjhyYWQpIikgaXMgImxhYigxMCUgNS43MzQzIDE5LjE2MDMpIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMzgwZGVnKSIpIGlzICJsYWIoMTAl
IDE4Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAlIDIwIC0zNDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2Ljg0MDQpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIp
IGlzICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC03MDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzOSA2
Ljg0MDQpIgorCitncmF5KCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJncmF5KDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCUpIikgaXMgImxhYigxMCUgMCAwIC8gMC4xKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEyMCAvIDEwJSkiKSBp
cyAibGFiKDEyMCUgMCAwIC8gMC4xKSIKKworVGVzdCBpbnZhbGlkIHZhbHVlcworUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUg
MCUgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKDAlIDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAl
IDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCki
CitGQUlMIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAu
NSkiKSBzaG91bGQgYmUgcmdiYSgwLCAwLCAwLCAwKS4gV2FzIGxhYigwJSAwIDAgLyAwLjUpLgor
RkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTApIikg
c2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMjAlIDkuODQ4MDggMS43MzY0OCku
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRl
ZyAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAl
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5
KDEwIC8gMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw5NyBAQAorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLiIp
OworCisgICAgZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgewor
ICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFBy
b3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0
Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAgIHJldHVybiBjb21wdXRlZFZh
bHVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3Bl
cnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAg
ICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgICAgICBleHBlY3RlZCA9ICIiOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICci
LCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdsYWIo
KScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIs
ICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSki
LCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMjAlIDAgMTAvNTAlKSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIsICJs
YWIoNDAwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNTAlIC0xNjAgMTYwKSIsICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAl
IC0yMDAgMjAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MCUgMCAwIC8gLTEwJSkiLCAibGFiKDAlIDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSki
LCAibGFiKDAlIDAgMCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnbGNoKCknKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiLCAi
bGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDAlIDAgMGRlZyAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAw
ZGVnIC8gMC41KSIsICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIiwgImxhYigyMCUgNDYu
OTg0NiAxNy4xMDEgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgyMCUgNTAgMjBkZWcvNTAlKSIsICJsYWIoMjAlIDQ2Ljk4NDYgMTcuMTAxIC8gMC41
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIw
ZGVnIC8gLTEwJSkiLCAibGFiKDEwJSAxOC43OTM5IDYuODQwNCAvIDApIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIsICJs
YWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUgNS43MzQzIDE5LjE2MDMpIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMzgwZGVn
KSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIiwgImxhYigxMCUgMTguNzkzOSA2Ljg0
MDQpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAg
NzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5MzkgNi44NDA0KSIpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC03MDBkZWcpIiwgImxhYigxMCUgMTguNzkz
OSA2Ljg0MDQpIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ2dyYXkoKScpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDApIiwgImxhYigwJSAwIDAp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCUp
IiwgImxhYigxMCUgMCAwIC8gMC4xKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJncmF5KDEyMCAvIDEwJSkiLCAibGFiKDEyMCUgMCAwIC8gMC4xKSIpOworCisgICAg
ZGVidWcoJycpOworICAgIGRlYnVnKCdUZXN0IGludmFsaWQgdmFsdWVzJyk7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiLCAicmdiYSgwLCAwLCAwLCAw
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMCki
LCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoMCUgMCAwIDEpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIiwgInJnYmEoMCwgMCwgMCwg
MCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMGRl
ZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMCUgMCUgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiLCAicmdiYSgwLCAw
LCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgw
IDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwIC8gMC41KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7
IC8vIE5vIHVuaXRsZXNzIHplcm8gYW5nbGUuIEN1cnJlbnRseSBmYWlsczogd2Via2l0Lm9yZy9i
LzIwNTczMworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEw
IDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7IC8vIE5vIHVuaXRsZXNzIGFuZ2xlLiBDdXJyZW50
bHkgZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEw
IC8gMC41KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAiZ3JheSgxMCUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCAxMCkiLCAicmdiYSgwLCAw
LCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEw
IDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTAgLyAxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworCis8L3Nj
cmlwdD4KKyAgICAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416793</attachid>
            <date>2020-12-26 15:07:47 -0800</date>
            <delta_ts>2021-01-03 11:57:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20201226150747.patch</filename>
            <type>text/plain</type>
            <size>37465</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzEwOTIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTI2ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBj
b2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgyNjQwNzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisgICAgICAgIEFkZCBIQVZFX0xBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJ
Q1Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIENvcmVHcmFwaGljcworICAgICAgICBvbiB0aGUg
c3lzdG1lIGhhcyBwcm9wZXIgc3VwcG9ydCBmb3IgY29udmVyc2lvbnMgdG8vZnJvbSB0aGUgTGFi
IGNvbG9yIHNwYWNlCisgICAgICAgIGFuZCBoYXMgYSByZXNvbHV0aW9uIGZvciByZGFyOi8vcHJv
YmxlbS81ODM2MDQ1NC4KKwogMjAyMC0xMi0yMyAgTW9uc29uIFNoYW8gIDxob2x5bW9uc29uQGdt
YWlsLmNvbT4KIAogICAgICAgICBbR1RLXVtDTWFrZV0gRm9yd2FyZCBtaXNzaW5nIGhlYWRlciBv
biBEYXJ3aW4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCShyZXZpc2lvbiAyNzEwOTApCisrKyBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAkod29ya2luZyBjb3B5KQpAQCAtODEzLDMgKzgx
MywxMiBAQAogICAgIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFY
X0FMTE9XRUQgPj0gMTQwNDAwKQogI2RlZmluZSBIQVZFX0FWQ09OVEVOVEtFWVJFUVVFU1RfUEVO
RElOR19QUk9URUNUSU9OX1NUQVRVUyAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSBcCisgICAgfHwgKChQ
TEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKFdBVENIT1Mp
ICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gNzAwMDApIFwKKyAgICB8fCAo
UExBVEZPUk0oQVBQTEVUVikgJiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAw
MDApCisvLyBQcmlvciB0byB0aGVzZSByZWxlYXNlcywgQ29yZUdyYXBoaWNzIGNvdWxkIG5vdCBj
b3JyZWN0bHkgY29udmVydCBmcm9tIExhYiB0byBvdGhlciBjb2xvciBzcGFjZXMKKy8vIGR1ZSB0
byByZGFyOi8vcHJvYmxlbS81ODM2MDQ1NC4KKyNkZWZpbmUgSEFWRV9MQUJfU1VQUE9SVF9JTl9D
T1JFX0dSQVBISUNTIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjcxMDkyKQor
KysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODEg
QEAKKzIwMjAtMTItMjYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAg
IFN1cHBvcnQgbGFiKCksIGxjaCgpLCBncmF5KCkgYW5kIGNvbG9yKGxhYiAuLi4pIGNvbG9ycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3JpZ2luYWwg
cGF0Y2ggYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BhcnNpbmct
bGFiLWNvbG9ycy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAg
ICAgICAgQWRkICJsYWIiIGFuZCAibGNoIiBrZXl3b3Jkcy4KKworICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VPcHRpb25hbEFscGhhKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VMYWJQYXJhbWV0ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VMQ0hQYXJhbWV0ZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VHcmF5
UGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6
OnBhcnNlQ29sb3JGdW5jdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb24pOgorICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgcGFyc2luZyAibGFiKC4uLikiLCAibGNoKC4uLikiLCAiZ3JheSguLi4pIgorICAg
ICAgICBhbmQgImNvbG9yKGxhYiAuLi4pIiwgYWxsIG9mIHdoaWNoIGNyZWF0ZSBMYWI8ZmxvYXQ+
IGNvbG9ycy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpDb2xvcjo6Q29sb3IpOgorICAgICAgICBBZGQgb3ZlcmxvYWQgb2YgdGhlIENv
bG9yIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYSBMYWI8ZmxvYXQ+IG1hdGNoaW5nIG90aGVyCisg
ICAgICAgIENvbG9yU3BhY2UgdHlwZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckNvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEZyb21ENTBXaGl0
ZVBvaW50VG9ENjVXaGl0ZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRGcm9tRDY1
V2hpdGVQb2ludFRvRDUwV2hpdGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjp0b1hZWkEpOgor
ICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6dG9MQ0hBKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OnRvTGFiKToKKyAgICAgICAgKFdlYkNvcmU6OnRvTENIQSk6CisgICAgICAgIEFkZCBj
b252ZXJzaW9ucyB0by9mcm9tIExhYiB0byBENjUgd2hpdGUgcG9pbnQgWFlaQSAodGhlIHdoaXRl
IHBvaW50IHdlIGV4cGVjdCBYWVpBIHRvIGJlIGluKSwgYW5kIGNvbnZlcnNpb24KKyAgICAgICAg
ZnJvbSBMY2ggdG8vZnJvbSBMYWIuIAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvckNTUyk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXJpYWxpemF0aW9uRm9ySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemF0aW9u
Rm9yUmVuZGVyVHJlZUFzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JT
ZXJpYWxpemF0aW9uLmg6CisgICAgICAgIEFkZCBzZXJpYWxpemF0aW9uIGZvciBMYWIgY29sb3Jz
LiBXZSBjdXJyZW50bHkgYWx3YXlzIHNlcmlhbGl6ZSB1c2luZyB0aGUgbGFiKCkKKyAgICAgICAg
bm90YXRpb24sIHdoaWNoIGFwcGVhcnMgdG8gYmUgY29ycmVjdCBmb3IgYXQgbGVhc3QgY29sb3Jz
IGRlY2xhcmVkIHVzaW5nIGxhYigpLAorICAgICAgICBsY2goKSBhbmQgZ3JheSgpLiBVbmNsZWFy
IGlmIGl0IGlzIGNvcnJlY3QgZm9yIGNvbG9ycyBkZWNsYXJlZCB3aXRoIGNvbG9yKGxhYiAuLi4p
LgorICAgICAgICBPcGVuZWQgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNz
dWVzLzU4MjUgdG8gdHJhY2sgZ2V0dGluZyBhIHJlc29sdXRpb24KKyAgICAgICAgZm9yICJjb2xv
cihsYWIgLi4uKSIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAgICAgICAgQWRkIExhYiBhcyBhIENvbG9yU3BhY2UgYW5k
IHRleHQgc3RyZWFtIGR1bXBpbmcgZm9yIGl0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6TGFiOjpMYWIpOgorICAgICAgICAo
V2ViQ29yZTo6YXNDb2xvckNvbXBvbmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6YXNMYWIpOgor
ICAgICAgICBBZGQgTGFiIGNvbG9yIHR5cGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkxDSEE6OkxD
SEEpOgorICAgICAgICAoV2ViQ29yZTo6YXNMQ0hBKToKKyAgICAgICAgQWRkIExDSEEgY29sb3Ig
dHlwZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpjYWxsV2l0aENvbG9yVHlwZSk6Cisg
ICAgICAgIEFkZCBMYWIgdG8gY2FsbFdpdGhDb2xvclR5cGUgc2luYyBpdCBpcyBub3cgYSB2YWxp
ZCBDb2xvclNwYWNlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFj
ZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYkNvbG9yU3BhY2VSZWYpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oOgorICAgICAgICAoV2ViQ29yZTo6
Y2FjaGVkQ0dDb2xvclNwYWNlKToKKyAgICAgICAgQWRkIGFjY2Vzc29yIGZvciBnZW5lcmljIGxh
YiAod2hpY2ggaXMgdGhlIEQ1MCB3aGl0ZSBwb2ludCBjc3MgZXhwZWN0cykgQ0dDb2xvclNwYWNl
UmVmCisgICAgICAgIGJ1dCBvbmx5IGlmIHdlIGhhdmUgYSBDb3JlR3JhcGhpY3MgdGhhdCBzdXBw
b3J0cyBpdCBwcm9wZXJseSwgd2hpY2ggaXMgbWFjT1MgMTEgZXJhIG9yIG5ld2VyLgorCiAyMDIw
LTEyLTI2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAg
ICBbV2ViSURMXSBSZW1vdmUgW0N1c3RvbVRvU3RyaW5nTmFtZV0gYW5kIExvY2F0aW9uLXNwZWNp
ZmljIGV4dGVuZGVkIGF0dHJpYnV0ZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCShyZXZpc2lvbiAyNzEwOTApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTI2NCw2ICsxMjY0LDkgQEAgcmdiCiBy
Z2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCisvLyBncmF5CiAvL2NvbG9yCiAKIC8vIHRyYW5zZm9y
bQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmNwcAkocmV2aXNpb24gMjcxMDkwKQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03OTIsNiArNzkyLDEwNSBAQCBzdGF0aWMgQ29sb3IgcGFyc2VIU0xQYXJhbWV0ZXJzKENTU1Bh
cnNlCiAgICAgcmV0dXJuIGNvbnZlcnRUb0NvbXBvbmVudEJ5dGVzKHRvU1JHQkEoSFNMQTxmbG9h
dD4geyBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVswXSksIHN0YXRpY19jYXN0PGZsb2F0
Pihjb2xvckFycmF5WzFdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMl0pLCBzdGF0
aWNfY2FzdDxmbG9hdD4oYWxwaGEpIH0pKTsKIH0KIAorc3RhdGljIE9wdGlvbmFsPGZsb2F0PiBw
YXJzZU9wdGlvbmFsQWxwaGEoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgaWYg
KCFjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKHJhbmdlKSkKKyAgICAgICAgcmV0dXJu
IDEuMGY7CisKKyAgICBhdXRvIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZVBlcmNlbnQocmFuZ2Us
IFZhbHVlUmFuZ2VBbGwpOworICAgIGlmIChhbHBoYVBhcmFtZXRlcikKKyAgICAgICAgcmV0dXJu
IGNsYW1wVG88ZmxvYXQ+KGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpIC8gMTAwLjAsIDAu
MCwgMS4wKTsKKworICAgIGFscGhhUGFyYW1ldGVyID0gY29uc3VtZU51bWJlcihyYW5nZSwgVmFs
dWVSYW5nZUFsbCk7CisgICAgaWYgKCFhbHBoYVBhcmFtZXRlcikKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0ZXItPmRv
dWJsZVZhbHVlKCksIDAuMCwgMS4wKTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTGFiUGFyYW1l
dGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVl
aygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUxhYik7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5n
ZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0g
Y29uc3VtZVBlcmNlbnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3Mp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGFWYWx1ZSA9IGNvbnN1bWVOdW1iZXIo
YXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFhVmFsdWUpCisgICAgICAgIHJldHVybiB7
IH07CisgICAgYXV0byBiVmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghYlZhbHVlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBhbHBo
YSA9IHBhcnNlT3B0aW9uYWxBbHBoYShhcmdzKTsKKyAgICBpZiAoIWFscGhhKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICByZXR1cm4gTGFiPGZsb2F0PiB7IGxpZ2h0bmVzcy0+ZmxvYXRWYWx1ZSgpLCBhVmFs
dWUtPmZsb2F0VmFsdWUoKSwgYlZhbHVlLT5mbG9hdFZhbHVlKCksICphbHBoYSB9OworfQorCitz
dGF0aWMgQ29sb3IgcGFyc2VMQ0hQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
KQoreworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlTGNo
KTsKKyAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2Up
OworCisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdl
QWxsKTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAgICAgICAgcmV0dXJuIENvbG9yKCk7CisKKyAg
ICBhdXRvIGNocm9tYVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsK
KyAgICBpZiAoIWNocm9tYVZhbHVlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgLy8gSHVl
IGlzIDxudW1iZXI+IG9yIDxhbmdsZT4gKGRpc2FsbG93aW5nIHVuaXRsZXNzIHplcm8pLgorICAg
IGF1dG8gaHVlVmFsdWUgPSBjb25zdW1lQW5nbGUoYXJncywgSFRNTFN0YW5kYXJkTW9kZSwgVW5p
dGxlc3NRdWlyazo6Rm9yYmlkKTsKKyAgICBmbG9hdCBhbmdsZUluRGVncmVlczsKKyAgICBpZiAo
IWh1ZVZhbHVlKSB7CisgICAgICAgIGh1ZVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1
ZVJhbmdlQWxsKTsKKyAgICAgICAgaWYgKCFodWVWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiB7
IH07CisgICAgICAgIGFuZ2xlSW5EZWdyZWVzID0gaHVlVmFsdWUtPmRvdWJsZVZhbHVlKCk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGFuZ2xlSW5EZWdyZWVzID0gaHVlVmFsdWUtPmNvbXB1dGVEZWdy
ZWVzKCk7CisKKyAgICBhbmdsZUluRGVncmVlcyA9IGZtb2RmKGFuZ2xlSW5EZWdyZWVzLCAzNjAu
MGYpOworICAgIGlmIChhbmdsZUluRGVncmVlcyA8IDAuMCkKKyAgICAgICAgYW5nbGVJbkRlZ3Jl
ZXMgKz0gMzYwLjBmOworCisgICAgYXV0byBhbHBoYSA9IHBhcnNlT3B0aW9uYWxBbHBoYShhcmdz
KTsKKyAgICBpZiAoIWFscGhhKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFhcmdz
LmF0RW5kKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gdG9MYWIoTENIQTxm
bG9hdD4geyBsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgY2hyb21hVmFsdWUtPmZsb2F0VmFsdWUo
KSwgYW5nbGVJbkRlZ3JlZXMsICphbHBoYSB9KTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlR3Jh
eVBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJh
bmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVHcmF5KTsKKyAgICBDU1NQYXJzZXJU
b2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAgLy8gVW5saWtl
IGxhYigpIGFuZCBsY2goKSwgZ3JheSgpIHRha2VzIGEgbnVtYmVyLCBidXQgc2VlIGh0dHBzOi8v
Z2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy80NjQ4LgorICAgIGF1dG8gbGlnaHRu
ZXNzID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWxpZ2h0
bmVzcykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlv
bmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJu
IExhYjxmbG9hdD4geyBsaWdodG5lc3MtPmZsb2F0VmFsdWUoKSwgMCwgMCwgKmFscGhhIH07Cit9
CisKIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXJzKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlKQogewogICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgp
ID09IENTU1ZhbHVlQ29sb3IpOwpAQCAtODA1LDYgKzkwNCw5IEBAIHN0YXRpYyBDb2xvciBwYXJz
ZUNvbG9yRnVuY3Rpb25QYXJhbWV0ZXIKICAgICBjYXNlIENTU1ZhbHVlRGlzcGxheVAzOgogICAg
ICAgICBjb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6RGlzcGxheVAzOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlTGFiOgorICAgICAgICBjb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6
TGFiOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4geyB9Owog
ICAgIH0KQEAgLTg4OCw2ICs5OTAsMTUgQEAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlv
bihDU1NQYXJzZQogICAgIGNhc2UgQ1NTVmFsdWVIc2xhOgogICAgICAgICBjb2xvciA9IHBhcnNl
SFNMUGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJNb2RlKTsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29sb3IgPSBwYXJzZUxhYlBhcmFtZXRl
cnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMY2g6Cisg
ICAgICAgIGNvbG9yID0gcGFyc2VMQ0hQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU1ZhbHVlR3JheToKKyAgICAgICAgY29sb3IgPSBwYXJzZUdyYXlQ
YXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1ZhbHVl
Q29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVycyhjb2xv
clJhbmdlKTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmgJKHJldmlzaW9uIDI3MTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBzUkdCQSwgc3RvcmVkIGlu
IGEgcmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAogLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBM
aW5lYXIgc1JHQkEsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8v
ICAgIC0gNHggZmxvYXQgKDAtMSkgRGlzcGxheVAzLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291
bnRlZCBzdWItb2JqZWN0CisvLyAgICAtIDR4IGZsb2F0ICgwLTEpIExhYiwgc3RvcmVkIGluIGEg
cmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAogLy8KIC8vIEFkZGl0aW9uYWxseSwgdGhlIGlu
bGluZSA4LWJpdCBzUkdCQSBjYW4gaGF2ZSBhbiBvcHRpb25hbCAic2VtYW50aWMiIGJpdCBzZXQg
b24gaXQsCiAvLyB3aGljaCBpbmRpY2F0ZXMgdGhlIGNvbG9yIG9yaWdpbmF0ZWQgZnJvbSBhIENT
UyBzZW1hbnRpYyBjb2xvciBuYW1lLgpAQCAtODAsNiArODEsNyBAQCBwdWJsaWM6CiAgICAgQ29s
b3IoY29uc3QgU1JHQkE8ZmxvYXQ+Jik7CiAgICAgQ29sb3IoY29uc3QgTGluZWFyU1JHQkE8Zmxv
YXQ+Jik7CiAgICAgQ29sb3IoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYpOworICAgIENvbG9yKGNv
bnN0IExhYjxmbG9hdD4mKTsKIAogICAgIGV4cGxpY2l0IENvbG9yKFdURjo6SGFzaFRhYmxlRW1w
dHlWYWx1ZVR5cGUpOwogICAgIGV4cGxpY2l0IENvbG9yKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZh
bHVlVHlwZSk7CkBAIC0yOTAsNiArMjkyLDExIEBAIGlubGluZSBDb2xvcjo6Q29sb3IoY29uc3Qg
RGlzcGxheVAzPGZsb2EKICAgICBzZXRFeHRlbmRlZENvbG9yKEV4dGVuZGVkQ29sb3I6OmNyZWF0
ZShjb2xvcikpOwogfQogCitpbmxpbmUgQ29sb3I6OkNvbG9yKGNvbnN0IExhYjxmbG9hdD4mIGNv
bG9yKQoreworICAgIHNldEV4dGVuZGVkQ29sb3IoRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKGNvbG9y
KSk7Cit9CisKIGlubGluZSBDb2xvcjo6Q29sb3IoUmVmPEV4dGVuZGVkQ29sb3I+JiYgZXh0ZW5k
ZWRDb2xvcikKIHsKICAgICBzZXRFeHRlbmRlZENvbG9yKFdURk1vdmUoZXh0ZW5kZWRDb2xvcikp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ckNvbnZlcnNpb24uY3BwCShyZXZpc2lvbiAyNzEwOTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQs
NiArMTM0LDExOSBAQCBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTGluZWFyRGlzcGxheVAzCiAg
ICAgcmV0dXJuIGFzWFlaQShsaW5lYXJEaXNwbGF5UDNUb1hZWk1hdHJpeC50cmFuc2Zvcm1lZENv
bG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKIH0KIAorc3RhdGljIFhZ
WkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDUwV2hpdGVQb2ludFRvRDY1V2hpdGVQb2ludChjb25zdCBY
WVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5j
b20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisgICAgY29uc3RleHByIENvbG9yTWF0
cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKKyAgICAgICAgIDAuOTU1NTc2NmYsIC0wLjAyMzAz
OTNmLCAwLjA2MzE2MzZmLAorICAgICAgICAtMC4wMjgyODk1ZiwgIDEuMDA5OTQxNmYsIDAuMDIx
MDA3N2YsCisgICAgICAgICAwLjAxMjI5ODJmLCAtMC4wMjA0ODMwZiwgMS4zMjk5MDk4ZgorICAg
IH07CisgICAgcmV0dXJuIGFzWFlaQShENTBUb0Q2NU1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29t
cG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKK30KKworc3RhdGljIFhZWkE8Zmxv
YXQ+IGNvbnZlcnRGcm9tRDY1V2hpdGVQb2ludFRvRDUwV2hpdGVQb2ludChjb25zdCBYWVpBPGZs
b2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5k
ZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisgICAgY29uc3RleHByIENvbG9yTWF0cml4PDMs
IDM+IEQ2NVRvRDUwTWF0cml4IHsKKyAgICAgICAgIDEuMDQ3ODExMmYsIDAuMDIyODg2NmYsIC0w
LjA1MDEyNzBmLAorICAgICAgICAgMC4wMjk1NDI0ZiwgMC45OTA0ODQ0ZiwgLTAuMDE3MDQ5MWYs
CisgICAgICAgIC0wLjAwOTIzNDVmLCAwLjAxNTA0MzZmLCAgMC43NTIxMzE2ZgorICAgIH07Cisg
ICAgcmV0dXJuIGFzWFlaQShENjVUb0Q1ME1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50
cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKK30KKworc3RhdGljIGNvbnN0ZXhwciBmbG9h
dCBMQUJlID0gMjE2LjBmIC8gMjQzODkuMGY7CitzdGF0aWMgY29uc3RleHByIGZsb2F0IExBQmsg
PSAyNDM4OS4wZiAvIDI3LjBmOworc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBENTBXaGl0ZVZhbHVl
c1tdID0geyAwLjk2NDIyZiwgMS4wZiwgMC44MjUyMWYgfTsKKworWFlaQTxmbG9hdD4gdG9YWVpB
KGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAgIGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0
bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKKyAgICBmbG9hdCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1
MDAuMGYpOworICAgIGZsb2F0IGYyID0gZjEgLSAoY29sb3IuYiAvIDIwMC4wZik7CisKKyAgICBh
dXRvIGNvbXB1dGVYQW5kWiA9IFtdKGZsb2F0IHQpIHsKKyAgICAgICAgZmxvYXQgdEN1YmVkID0g
dCAqIHQgKiB0OworICAgICAgICBpZiAodEN1YmVkID4gTEFCZSkKKyAgICAgICAgICAgIHJldHVy
biB0Q3ViZWQ7CisKKyAgICAgICAgcmV0dXJuICgxMTYuMGYgKiB0IC0gMTYuMGYpIC8gTEFCazsK
KyAgICB9OworCisgICAgYXV0byBjb21wdXRlWSA9IFtdKGZsb2F0IHQpIHsKKyAgICAgICAgaWYg
KHQgPiAoTEFCayAqIExBQmUpKSB7CisgICAgICAgICAgICBmbG9hdCB2YWx1ZSA9ICh0ICsgMTYu
MCkgLyAxMTYuMDsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZSAqIHZhbHVlICogdmFsdWU7Cisg
ICAgICAgIH0KKworICAgICAgICByZXR1cm4gdCAvIExBQms7CisgICAgfTsKKworICAgIGZsb2F0
IHggPSBENTBXaGl0ZVZhbHVlc1swXSAqIGNvbXB1dGVYQW5kWihmMCk7CisgICAgZmxvYXQgeSA9
IEQ1MFdoaXRlVmFsdWVzWzFdICogY29tcHV0ZVkoY29sb3IubGlnaHRuZXNzKTsKKyAgICBmbG9h
dCB6ID0gRDUwV2hpdGVWYWx1ZXNbMl0gKiBjb21wdXRlWEFuZFooZjIpOworCisgICAgWFlaQTxm
bG9hdD4gcmVzdWx0IHsgeCwgeSwgeiwgY29sb3IuYWxwaGEgfTsKKworICAgIC8vIFdlIGV4cGVj
dCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1IHdoaXRlIHBvaW50LCB1bmxpa2UgTGFi
LCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUgcG9pbnQsIHNvIGFzIGEgZmluYWwgc3Rl
cCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8gY29udmVydCB0aGUKKyAgICAvLyByZXN1
bHRpbmcgWFlaQSBjb2xvciB0byBhIEQ2NSB3aGl0ZSBwb2ludC4KKyAgICByZXR1cm4gY29udmVy
dEZyb21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBvaW50KHJlc3VsdCk7Cit9CisKK0xhYjxmbG9h
dD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQoreworICAgIC8vIFdlIGV4cGVjdCBY
WVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1IHdoaXRlIHBvaW50LCB1bmxpa2UgTGFiLCB3
aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUgcG9pbnQsIHNvIGFzIGEgZmlyc3Qgc3RlcCwg
dXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8gY29udmVydCB0aGUKKyAgICAvLyBpbmNvbWlu
ZyBYWVpBIGNvbG9yIHRvIEQ1MCB3aGl0ZSBwb2ludC4KKyAgICBhdXRvIGNvbG9yV2l0aEQ1MFdo
aXRlUG9pbnQgPSBjb252ZXJ0RnJvbUQ2NVdoaXRlUG9pbnRUb0Q1MFdoaXRlUG9pbnQoY29sb3Ip
OworCisgICAgZmxvYXQgeCA9IGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQueCAvIEQ1MFdoaXRlVmFs
dWVzWzBdOworICAgIGZsb2F0IHkgPSBjb2xvcldpdGhENTBXaGl0ZVBvaW50LnkgLyBENTBXaGl0
ZVZhbHVlc1sxXTsKKyAgICBmbG9hdCB6ID0gY29sb3JXaXRoRDUwV2hpdGVQb2ludC56IC8gRDUw
V2hpdGVWYWx1ZXNbMl07CisKKyAgICBhdXRvIGZUcmFuc2Zvcm0gPSBbXShmbG9hdCB2YWx1ZSkg
eworICAgICAgICByZXR1cm4gdmFsdWUgPiBMQUJlID8gc3RkOjpjYnJ0KHZhbHVlKSA6IChMQUJr
ICogdmFsdWUgKyAxNi4wZikgLyAxMTYuMGY7CisgICAgfTsKKworICAgIGZsb2F0IGYwID0gZlRy
YW5zZm9ybSh4KTsKKyAgICBmbG9hdCBmMSA9IGZUcmFuc2Zvcm0oeSk7CisgICAgZmxvYXQgZjIg
PSBmVHJhbnNmb3JtKHopOworCisgICAgZmxvYXQgbGlnaHRuZXNzID0gKDExNi4wZiAqIGYxKSAt
IDE2LjBmOworICAgIGZsb2F0IGEgPSA1MDAuMGYgKiAoZjAgLSBmMSk7CisgICAgZmxvYXQgYiA9
IDIwMC4wZiAqIChmMSAtIGYyKTsKKworICAgIHJldHVybiB7IGxpZ2h0bmVzcywgYSwgYiwgY29s
b3JXaXRoRDUwV2hpdGVQb2ludC5hbHBoYSB9OworfQorCitMQ0hBPGZsb2F0PiB0b0xDSEEoY29u
c3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nz
cy1jb2xvci00LyNsYWItdG8tbGNoCisgICAgZmxvYXQgaHVlID0gcmFkMmRlZyhzdGQ6OmF0YW4y
KGNvbG9yLmIsIGNvbG9yLmEpKTsKKworICAgIHJldHVybiB7CisgICAgICAgIGNvbG9yLmxpZ2h0
bmVzcywKKyAgICAgICAgc3RkOjpoeXBvdChjb2xvci5hLCBjb2xvci5iKSwKKyAgICAgICAgaHVl
ID49IDAgPyBodWUgOiBodWUgKyAzNjAsCisgICAgICAgIGNvbG9yLmFscGhhCisgICAgfTsKK30K
KworTGFiPGZsb2F0PiB0b0xhYihjb25zdCBMQ0hBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8g
aHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsY2gtdG8tbGFiCisgICAgZmxvYXQg
aHVlQW5nbGVSYWRpYW5zID0gZGVnMnJhZChjb2xvci5odWUpOworCisgICAgcmV0dXJuIHsKKyAg
ICAgICAgY29sb3IubGlnaHRuZXNzLAorICAgICAgICBjb2xvci5jaHJvbWEgKiBzdGQ6OmNvcyho
dWVBbmdsZVJhZGlhbnMpLAorICAgICAgICBjb2xvci5jaHJvbWEgKiBzdGQ6OnNpbihodWVBbmds
ZVJhZGlhbnMpLAorICAgICAgICBjb2xvci5hbHBoYQorICAgIH07Cit9CisKIEhTTEE8ZmxvYXQ+
IHRvSFNMQShjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQogewogICAgIC8vIGh0dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvSFNMX2NvbG9yX3NwYWNlLgpAQCAtMjYzLDYgKzM3NiwxNiBAQCBE
aXNwbGF5UDM8ZmxvYXQ+IHRvRGlzcGxheVAzKGNvbnN0IFhZWkE8CiAgICAgcmV0dXJuIHRvRGlz
cGxheVAzKHRvTGluZWFyRGlzcGxheVAzKGNvbG9yKSk7CiB9CiAKK1hZWkE8ZmxvYXQ+IHRvWFla
QShjb25zdCBMQ0hBPGZsb2F0PiYgY29sb3IpCit7CisgICAgcmV0dXJuIHRvWFlaQSh0b0xhYihj
b2xvcikpOworfQorCitMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9y
KQoreworICAgIHJldHVybiB0b0xDSEEodG9MYWIoY29sb3IpKTsKK30KKwogWFlaQTxmbG9hdD4g
dG9YWVpBKGNvbnN0IEhTTEE8ZmxvYXQ+JiBjb2xvcikKIHsKICAgICByZXR1cm4gdG9YWVpBKHRv
U1JHQkEoY29sb3IpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yQ29udmVyc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCShyZXZpc2lvbiAyNzEwOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNzEsNiArNzEsMjAgQEAgV0VCQ09SRV9FWFBPUlQgTGluZWFyRGlzcGxheVAzPGZsb2F0PiB0
bwogV0VCQ09SRV9FWFBPUlQgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBMaW5l
YXJEaXNwbGF5UDM8ZmxvYXQ+Jik7CiAKIAorLy8gTGFiCitXRUJDT1JFX0VYUE9SVCBYWVpBPGZs
b2F0PiB0b1hZWkEoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgTGFiPGZsb2F0
PiB0b0xhYihjb25zdCBYWVpBPGZsb2F0PiYpOworLy8gQWRkaXRpb25zCitXRUJDT1JFX0VYUE9S
VCBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgTGFiPGZsb2F0PiYpOworCisKKy8vIExDSEEKK1dF
QkNPUkVfRVhQT1JUIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMQ0hBPGZsb2F0PiYpOworV0VC
Q09SRV9FWFBPUlQgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IFhZWkE8ZmxvYXQ+Jik7CisvLyBB
ZGRpdGlvbnMKK1dFQkNPUkVfRVhQT1JUIExhYjxmbG9hdD4gdG9MYWIoY29uc3QgTENIQTxmbG9h
dD4mKTsKKworCiAvLyBIU0xBCiBXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0PiB0b1hZWkEoY29u
c3QgSFNMQTxmbG9hdD4mKTsKIFdFQkNPUkVfRVhQT1JUIEhTTEE8ZmxvYXQ+IHRvSFNMQShjb25z
dCBYWVpBPGZsb2F0PiYpOwpAQCAtOTEsNiArMTA1LDggQEAgY29uc3RleHByIFNSR0JBPGZsb2F0
PiB0b1NSR0JBKGNvbnN0IFNSRwogY29uc3RleHByIExpbmVhclNSR0JBPGZsb2F0PiB0b0xpbmVh
clNSR0JBKGNvbnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9
CiBjb25zdGV4cHIgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBEaXNwbGF5UDM8
ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBMaW5lYXJEaXNwbGF5
UDM8ZmxvYXQ+IHRvTGluZWFyRGlzcGxheVAzKGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4m
IGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQorY29uc3RleHByIExhYjxmbG9hdD4gdG9MYWIoY29u
c3QgTGFiPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9Citjb25zdGV4cHIgTENIQTxm
bG9hdD4gdG9MQ0hBKGNvbnN0IExDSEE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0K
IGNvbnN0ZXhwciBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgSFNMQTxmbG9hdD4mIGNvbG9yKSB7
IHJldHVybiBjb2xvcjsgfQogY29uc3RleHByIENNWUtBPGZsb2F0PiB0b0NNWUtBKGNvbnN0IENN
WUtBPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgWFlaQTxmbG9h
dD4gdG9YWVpBKGNvbnN0IFhZWkE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KQEAg
LTEwNiwyNyArMTIyLDM3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFNSR0JBPGZsb2F0PiB0b1NS
R0IKICAgICByZXR1cm4gdG9TUkdCQSh0b1hZWkEoY29sb3IpKTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gU1JHQkE8ZmxvYXQ+IHRvTGluZWFyU1JHQkEoY29uc3QgVCYgY29sb3IpCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBMaW5lYXJTUkdCQTxmbG9hdD4gdG9MaW5lYXJTUkdCQShjb25zdCBU
JiBjb2xvcikKIHsKICAgICByZXR1cm4gdG9MaW5lYXJTUkdCQSh0b1hZWkEoY29sb3IpKTsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gU1JHQkE8ZmxvYXQ+IHRvRGlzcGxheVAzKGNvbnN0IFQm
IGNvbG9yKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQ
Myhjb25zdCBUJiBjb2xvcikKIHsKICAgICByZXR1cm4gdG9EaXNwbGF5UDModG9YWVpBKGNvbG9y
KSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IFNSR0JBPGZsb2F0PiB0b0xpbmVhckRpc3Bs
YXlQMyhjb25zdCBUJiBjb2xvcikKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IExpbmVhckRpc3BsYXlQ
MzxmbG9hdD4gdG9MaW5lYXJEaXNwbGF5UDMoY29uc3QgVCYgY29sb3IpCiB7CiAgICAgcmV0dXJu
IHRvTGluZWFyRGlzcGxheVAzKHRvWFlaQShjb2xvcikpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBTUkdCQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFQmIGNvbG9yKQordGVtcGxhdGU8dHlwZW5h
bWUgVD4gTGFiPGZsb2F0PiB0b0xhYihjb25zdCBUJiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9M
YWIodG9YWVpBKGNvbG9yKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IExDSEE8ZmxvYXQ+
IHRvTENIQShjb25zdCBUJiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9MQ0hBKHRvWFlaQShjb2xv
cikpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3Qg
VCYgY29sb3IpCiB7CiAgICAgcmV0dXJuIHRvSFNMQSh0b1hZWkEoY29sb3IpKTsKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgVD4gU1JHQkE8ZmxvYXQ+IHRvQ01ZS0EoY29uc3QgVCYgY29sb3IpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBDTVlLQTxmbG9hdD4gdG9DTVlLQShjb25zdCBUJiBjb2xvcikK
IHsKICAgICByZXR1cm4gdG9DTVlLQSh0b1hZWkEoY29sb3IpKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9u
LmNwcAkocmV2aXNpb24gMjcxMDkwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYsOCBA
QCBzdGF0aWMgQVNDSUlMaXRlcmFsIHNlcmlhbGl6YXRpb24oQ29sb3JTCiAgICAgICAgIHJldHVy
biAibGluZWFyLXNyZ2IiX3M7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAg
ICAgIHJldHVybiAiZGlzcGxheS1wMyJfczsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAg
ICAgICAgcmV0dXJuICJsYWIiX3M7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0xNjEsNiArMTYzLDI3IEBAIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFz
VGV4dCgKICAgICByZXR1cm4gc2VyaWFsaXphdGlvbihjb2xvcik7CiB9CiAKKy8vIExhYjxmbG9h
dD4gb3ZlcmxvYWRzCisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IExhYjxmbG9h
dD4mIGNvbG9yKQoreworICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
c2VyaWFsaXppbmctbGFiLWxjaAorCisgICAgYXV0byBbYzEsIGMyLCBjMywgYWxwaGFdID0gY29s
b3I7CisgICAgaWYgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChhbHBoYSwgMS4wZikpCisgICAg
ICAgIHJldHVybiBtYWtlU3RyaW5nKCJsYWIoIiwgYzEsICIlICIsIGMyLCAnICcsIGMzLCAnKScp
OworICAgIHJldHVybiBtYWtlU3RyaW5nKCJsYWIoIiwgYzEsICIlICIsIGMyLCAnICcsIGMzLCAi
IC8gIiwgYWxwaGEsICcpJyk7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25z
dCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvbkZvckNTUyhj
b2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25z
dCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvbkZvckNTUyhj
b2xvcik7Cit9CiAKIC8vIENvbG9yIG92ZXJsb2FkcwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaAkocmV2aXNp
b24gMjcxMDkwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJp
YWxpemF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgQ29sb3I7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRGlzcGxh
eVAzOwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMYWI7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
c3RydWN0IExpbmVhclNSR0JBOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBTUkdCQTsKIApA
QCAtNTUsNiArNTYsMTAgQEAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JD
UwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IERpc3Bs
YXlQMzxmbG9hdD4mKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVu
ZGVyVHJlZUFzVGV4dChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7CiAKK1dFQkNPUkVfRVhQT1JU
IFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IExhYjxmbG9hdD4mKTsKK1dFQkNPUkVf
RVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBMYWI8ZmxvYXQ+Jik7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29u
c3QgTGFiPGZsb2F0PiYpOworCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZv
ckNTUyhjb25zdCBDb2xvciYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25G
b3JIVE1MKGNvbnN0IENvbG9yJik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlv
bkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgQ29sb3ImKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCShyZXZpc2lvbiAyNzEwOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBDCiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHRz
IDw8ICJEaXNwbGF5UDMiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9yU3BhY2U6Okxh
YjoKKyAgICAgICAgdHMgPDwgIkwqYSpiIjsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJl
dHVybiB0czsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
U3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvclNwYWNlLmgJKHJldmlzaW9uIDI3MTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yU3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90IHsKICAg
ICBTUkdCLAogICAgIExpbmVhclJHQiwKLSAgICBEaXNwbGF5UDMKKyAgICBEaXNwbGF5UDMsCisg
ICAgTGFiCiB9OwogCiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgQ29sb3JTcGFjZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oCShyZXZpc2lvbiAyNzEwOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIzMSw2ICsyMzEsOTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wg
b3BlcgogfQogCiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMYWIgOiBDb2xvcldpdGhB
bHBoYUhlbHBlcjxMYWI8VD4+IHsKKyAgICB1c2luZyBDb21wb25lbnRUeXBlID0gVDsKKyAgICBz
dGF0aWMgY29uc3RleHByIGF1dG8gY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OkxhYjsKKworICAg
IGNvbnN0ZXhwciBMYWIoVCBsaWdodG5lc3MsIFQgYSwgVCBiLCBUIGFscGhhID0gQ29tcG9uZW50
VHJhaXRzPFQ+OjptYXhWYWx1ZSkKKyAgICAgICAgOiBsaWdodG5lc3MgeyBsaWdodG5lc3MgfQor
ICAgICAgICAsIGEgeyBhIH0KKyAgICAgICAgLCBiIHsgYiB9CisgICAgICAgICwgYWxwaGEgeyBh
bHBoYSB9CisgICAgeworICAgIH0KKworICAgIGNvbnN0ZXhwciBMYWIoKQorICAgICAgICA6IExh
YiB7IENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWlu
VmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6
bWluVmFsdWUgfQorICAgIHsKKyAgICB9CisKKyAgICBUIGxpZ2h0bmVzczsKKyAgICBUIGE7Cisg
ICAgVCBiOworICAgIFQgYWxwaGE7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4
cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29sb3JDb21wb25lbnRzKGNvbnN0IExhYjxUPiYgYykK
K3sKKyAgICByZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5hLCBjLmIsIGMuYWxwaGEgfTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIExhYjxUPiBhc0xhYihjb25zdCBDb2xvckNv
bXBvbmVudHM8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgY1swXSwgY1sxXSwgY1syXSwgY1szXSB9
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IExhYjxUPiYgYSwgY29uc3QgTGFiPFQ+JiBiKQoreworICAgIHJldHVybiBhc0NvbG9yQ29t
cG9uZW50cyhhKSA9PSBhc0NvbG9yQ29tcG9uZW50cyhiKTsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBMYWI8VD4mIGEsIGNvbnN0IExh
YjxUPiYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBMQ0hBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8TENIQTxUPj4geworICAg
IHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOworCisgICAgY29uc3RleHByIExDSEEoVCBsaWdodG5l
c3MsIFQgY2hyb21hLCBUIGh1ZSwgVCBhbHBoYSA9IENvbXBvbmVudFRyYWl0czxUPjo6bWF4VmFs
dWUpCisgICAgICAgIDogbGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KKyAgICAgICAgLCBjaHJvbWEg
eyBjaHJvbWEgfQorICAgICAgICAsIGh1ZSB7IGh1ZSB9CisgICAgICAgICwgYWxwaGEgeyBhbHBo
YSB9CisgICAgeworICAgIH0KKworICAgIGNvbnN0ZXhwciBMQ0hBKCkKKyAgICAgICAgOiBMQ0hB
IHsgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5W
YWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+Ojpt
aW5WYWx1ZSB9CisgICAgeworICAgIH0KKworICAgIFQgbGlnaHRuZXNzOworICAgIFQgY2hyb21h
OworICAgIFQgaHVlOworICAgIFQgYWxwaGE7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
b25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29sb3JDb21wb25lbnRzKGNvbnN0IExDSEE8
VD4mIGMpCit7CisgICAgcmV0dXJuIHsgYy5saWdodG5lc3MsIGMuY2hyb21hLCBjLmh1ZSwgYy5h
bHBoYSB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgTENIQTxUPiBhc0xD
SEEoY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+JiBjKQoreworICAgIHJldHVybiB7IGNbMF0sIGNb
MV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBMQ0hBPFQ+JiBhLCBjb25zdCBMQ0hBPFQ+JiBiKQoreworICAg
IHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhhKSA9PSBhc0NvbG9yQ29tcG9uZW50cyhiKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBM
Q0hBPFQ+JiBhLCBjb25zdCBMQ0hBPFQ+JiBiKQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9
CisKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhTTEEgOiBDb2xvcldpdGhBbHBoYUhl
bHBlcjxIU0xBPFQ+PiB7CiAgICAgdXNpbmcgQ29tcG9uZW50VHlwZSA9IFQ7CiAKQEAgLTM2Myw2
ICs0NTAsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiBjb25zdGV4cHIgZGVjCiAgICAg
ICAgIHJldHVybiBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIGFz
TGluZWFyU1JHQkEoY29tcG9uZW50cykpOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAz
OgogICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0
b3IpLCBhc0Rpc3BsYXlQMyhjb21wb25lbnRzKSk7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6
CisgICAgICAgIHJldHVybiBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3Rv
ciksIGFzTGFiKGNvbXBvbmVudHMpKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VD
Ry5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
Q29sb3JTcGFjZUNHLmNwcAkocmV2aXNpb24gMjcxMDkwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIs
NiArODIsMjAgQEAgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKQogICAg
IHJldHVybiBkaXNwbGF5UDNDb2xvclNwYWNlOwogfQogCitDR0NvbG9yU3BhY2VSZWYgbGFiQ29s
b3JTcGFjZVJlZigpCit7CisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsYWJDb2xvclNwYWNl
UmVmOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxf
b25jZShvbmNlRmxhZywgW10geworI2lmIEhBVkUoTEFCX1NVUFBPUlRfSU5fQ09SRV9HUkFQSElD
UykKKyAgICAgICAgbGFiQ29sb3JTcGFjZVJlZiA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1l
KGtDR0NvbG9yU3BhY2VHZW5lcmljTGFiKTsKKyNlbHNlCisgICAgICAgIGxhYkNvbG9yU3BhY2VS
ZWYgPSBzUkdCQ29sb3JTcGFjZVJlZigpOworI2VuZGlmCisgICAgfSk7CisgICAgcmV0dXJuIGxh
YkNvbG9yU3BhY2VSZWY7Cit9CisKIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNw
YWNlUmVmKCkKIHsKICAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9y
U3BhY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNw
YWNlQ0cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvclNwYWNlQ0cuaAkocmV2aXNpb24gMjcxMDkwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYg
KzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNl
UmVmIHNSR0JDb2xvclNwYWNlUmVmKCk7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYg
bGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVm
IGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKK1dFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJl
ZiBsYWJDb2xvclNwYWNlUmVmKCk7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgZXh0
ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigpOwogCiBzdGF0aWMgaW5saW5lIENHQ29sb3JTcGFjZVJl
ZiBjYWNoZWRDR0NvbG9yU3BhY2UoQ29sb3JTcGFjZSBjb2xvclNwYWNlKQpAQCAtNDUsNiArNDYs
OCBAQCBzdGF0aWMgaW5saW5lIENHQ29sb3JTcGFjZVJlZiBjYWNoZWRDR0NvCiAgICAgICAgIHJl
dHVybiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCk7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNw
bGF5UDM6CiAgICAgICAgIHJldHVybiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CisgICAgY2Fz
ZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHJldHVybiBsYWJDb2xvclNwYWNlUmVmKCk7CiAg
ICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzUkdCQ29sb3JTcGFj
ZVJlZigpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjcxMDkwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMTItMjYgIFNhbSBXZWlu
aWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFiKCksIGxjaCgpLCBn
cmF5KCkgYW5kIGNvbG9yKGxhYiAuLi4pIGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgT3JpZ2luYWwgcGF0Y2ggYnkgU2ltb24gRnJhc2VyLgor
CisgICAgICAgIFBhcnNpbmcgdGVzdHMgZm9yIGxhYi9sY2gvZ3JheSBjb2xvcnMuCisKKyAgICAg
ICAgW0ZJWE1FXSBSZW5kZXJpbmcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogZmFzdC9jc3Mv
cGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEyLTI2ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzY3JvbGxpbmcg
aXNzdWVzIHdoZW4gc2Nyb2xsaW5nIG9uIG9ubHkgb25lIGF4aXMgaXMgZW5hYmxlZApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFi
LWNvbG9ycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorVGVz
dCB0aGUgcGFyc2luZyBvZiBsYWIsIGxjaCBhbmQgZ3JheSBjb2xvcnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitsYWIoKQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxKSIpIGlzICJsYWIoMCUgMCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8g
MC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvMC41KSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC81
MCUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDQwMCUgMCAxMC81MCUpIikgaXMgImxhYig0MDAlIDAgMTAgLyAw
LjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTE2
MCAxNjApIikgaXMgImxhYig1MCUgLTE2MCAxNjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTIwMCAyMDApIikgaXMgImxhYig1MCUgLTIwMCAyMDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAt
MTAlKSIpIGlzICJsYWIoMCUgMCAwIC8gMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDExMCUpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAzMDAlKSIpIGlz
ICJsYWIoMCUgMCAwKSIKKworbGNoKCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMCUgMCAwZGVnKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMSkiKSBpcyAibGFiKDAl
IDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAg
MGRlZyAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwMCUgMjMwIDBkZWcgLyAwLjUpIikgaXMgImxhYigx
MDAlIDIzMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMjAlIDUwIDIwZGVnLzAuNSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYg
LyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUg
NTAgMjBkZWcvNTAlKSIpIGlzICJsYWIoMjAlIDQ2Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAv
IC0xMCUpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiAvIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIp
IGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMS4yOHJhZCkiKSBpcyAibGFiKDEwJSA1Ljcz
NDMwMjUgMTkuMTYwMzE2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAlIDIwIDM4MGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBk
ZWcpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCA3NDBkZWcpIikgaXMgImxhYigxMCUg
MTguNzkzODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDEwJSAyMCAtNzAwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQw
MjYpIgorCitncmF5KCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJn
cmF5KDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTAgLyAxMCUpIikgaXMgImxhYigxMCUgMCAwIC8gMC4xKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEyMCAvIDEwJSkiKSBpcyAi
bGFiKDEyMCUgMCAwIC8gMC4xKSIKKworVGVzdCBpbnZhbGlkIHZhbHVlcworUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUg
MCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCAwIDEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDAlIDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAg
MGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitG
QUlMIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSki
KSBzaG91bGQgYmUgcmdiYSgwLCAwLCAwLCAwKS4gV2FzIGxhYigwJSAwIDAgLyAwLjUpLgorRkFJ
TCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTApIikgc2hv
dWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMjAlIDkuODQ4MDc4IDEuNzM2NDgxOCku
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRl
ZyAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAl
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5
KDEwIC8gMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw5NyBAQAorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLiIp
OworCisgICAgZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgewor
ICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFBy
b3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0
Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAgIHJldHVybiBjb21wdXRlZFZh
bHVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3Bl
cnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAg
ICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgICAgICBleHBlY3RlZCA9ICIiOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICci
LCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdsYWIo
KScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIs
ICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSki
LCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMjAlIDAgMTAvNTAlKSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIsICJs
YWIoNDAwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNTAlIC0xNjAgMTYwKSIsICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAl
IC0yMDAgMjAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MCUgMCAwIC8gLTEwJSkiLCAibGFiKDAlIDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSki
LCAibGFiKDAlIDAgMCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnbGNoKCknKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiLCAi
bGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDAlIDAgMGRlZyAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAw
ZGVnIC8gMC41KSIsICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIiwgImxhYigyMCUgNDYu
OTg0NjMgMTcuMTAxMDA2IC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzUwJSkiLCAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEw
MDYgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgx
MCUgMjAgMjBkZWcgLyAtMTAlKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVn
IC8gMTEwJSkiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUg
NS43MzQzMDI1IDE5LjE2MDMxNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDEwJSAyMCAzODBkZWcpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQw
ZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5
Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgxMCUgMjAgLTcwMGRlZykiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOwor
CisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdncmF5KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIsICJsYWIoMTAlIDAg
MCAvIDAuMSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgx
MjAgLyAxMCUpIiwgImxhYigxMjAlIDAgMCAvIDAuMSkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAg
ICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHZhbHVlcycpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCAwIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDApIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAg
MCAxKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAl
IDAlIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDQwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIiwg
InJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDAlIDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVz
cyB6ZXJvIGFuZ2xlLiBDdXJyZW50bHkgZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMCkiLCAicmdiYSgw
LCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJr
aXQub3JnL2IvMjA1NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgyMCUgMTAgMTBkZWcgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiLCAicmdi
YSgwLCAwLCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImdyYXkoMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiLCAicmdiYSgw
LCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5
KDEwIC8gMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworPC9zY3JpcHQ+CisgICAgCis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416915</attachid>
            <date>2021-01-03 11:58:00 -0800</date>
            <delta_ts>2021-01-03 12:09:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210103115759.patch</filename>
            <type>text/plain</type>
            <size>36668</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTAzICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBj
b2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgyNjQwNzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisgICAgICAgIEFkZCBIQVZFX0xBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJ
Q1Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIENvcmVHcmFwaGljcworICAgICAgICBvbiB0aGUg
c3lzdG1lIGhhcyBwcm9wZXIgc3VwcG9ydCBmb3IgY29udmVyc2lvbnMgdG8vZnJvbSB0aGUgTGFi
IGNvbG9yIHNwYWNlCisgICAgICAgIGFuZCBoYXMgYSByZXNvbHV0aW9uIGZvciByZGFyOi8vcHJv
YmxlbS81ODM2MDQ1NC4KKwogMjAyMC0xMi0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIFdURjo6TWFjaFNl
bWFwaG9yZSB0byB3YWl0IHdpdGggYSB0aW1lb3V0IGR1cmF0aW9uCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTgxMywzICs4MTMsMTIgQEAKICAgICB8fCAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0MDQwMCkKICNkZWZp
bmUgSEFWRV9BVkNPTlRFTlRLRVlSRVFVRVNUX1BFTkRJTkdfUFJPVEVDVElPTl9TVEFUVVMgMQog
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkgXAorICAgIHx8ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShN
QUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAw
MCkgXAorICAgIHx8IChQTEFURk9STShXQVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDcwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQorLy8gUHJpb3IgdG8gdGhlc2UgcmVs
ZWFzZXMsIENvcmVHcmFwaGljcyBjb3VsZCBub3QgY29ycmVjdGx5IGNvbnZlcnQgZnJvbSBMYWIg
dG8gb3RoZXIgY29sb3Igc3BhY2VzCisvLyBkdWUgdG8gcmRhcjovL3Byb2JsZW0vNTgzNjA0NTQu
CisjZGVmaW5lIEhBVkVfTEFCX1NVUFBPUlRfSU5fQ09SRV9HUkFQSElDUyAxCisjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTEyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAxLTAzICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3Jh
eSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgIEFkZCAibGFiIiBhbmQgImxjaCIg
a2V5d29yZHMuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVy
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNl
T3B0aW9uYWxBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBl
cnM6OnBhcnNlTGFiUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnM6OnBhcnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VD
b2xvckZ1bmN0aW9uKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgImxhYiguLi4p
IiwgImxjaCguLi4pIiwgImdyYXkoLi4uKSIKKyAgICAgICAgYW5kICJjb2xvcihsYWIgLi4uKSIs
IGFsbCBvZiB3aGljaCBjcmVhdGUgTGFiPGZsb2F0PiBjb2xvcnMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKToK
KyAgICAgICAgQWRkIG92ZXJsb2FkIG9mIHRoZSBDb2xvciBjb25zdHJ1Y3RvciB0aGF0IHRha2Vz
IGEgTGFiPGZsb2F0PiBtYXRjaGluZyBvdGhlcgorICAgICAgICBDb2xvclNwYWNlIHR5cGVzLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRGcm9tRDUwV2hpdGVQb2ludFRvRDY1V2hpdGVQb2ludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RnJvbUQ2NVdoaXRlUG9pbnRUb0Q1MFdoaXRlUG9pbnQp
OgorICAgICAgICAoV2ViQ29yZTo6dG9YWVpBKToKKyAgICAgICAgKFdlYkNvcmU6OnRvTGFiKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvTENIQSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JDb252ZXJzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjp0b0xhYik6CisgICAgICAgIChX
ZWJDb3JlOjp0b0xDSEEpOgorICAgICAgICBBZGQgY29udmVyc2lvbnMgdG8vZnJvbSBMYWIgdG8g
RDY1IHdoaXRlIHBvaW50IFhZWkEgKHRoZSB3aGl0ZSBwb2ludCB3ZSBleHBlY3QgWFlaQSB0byBi
ZSBpbiksIGFuZCBjb252ZXJzaW9uCisgICAgICAgIGZyb20gTGNoIHRvL2Zyb20gTGFiLiAKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzZXJpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6
YXRpb25Gb3JDU1MpOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvckhUTUwpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oOgorICAgICAgICBB
ZGQgc2VyaWFsaXphdGlvbiBmb3IgTGFiIGNvbG9ycy4gV2UgY3VycmVudGx5IGFsd2F5cyBzZXJp
YWxpemUgdXNpbmcgdGhlIGxhYigpCisgICAgICAgIG5vdGF0aW9uLCB3aGljaCBhcHBlYXJzIHRv
IGJlIGNvcnJlY3QgZm9yIGF0IGxlYXN0IGNvbG9ycyBkZWNsYXJlZCB1c2luZyBsYWIoKSwKKyAg
ICAgICAgbGNoKCkgYW5kIGdyYXkoKS4gVW5jbGVhciBpZiBpdCBpcyBjb3JyZWN0IGZvciBjb2xv
cnMgZGVjbGFyZWQgd2l0aCBjb2xvcihsYWIgLi4uKS4KKyAgICAgICAgT3BlbmVkIGh0dHBzOi8v
Z2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy81ODI1IHRvIHRyYWNrIGdldHRpbmcg
YSByZXNvbHV0aW9uCisgICAgICAgIGZvciAiY29sb3IobGFiIC4uLikiLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmg6CisgICAg
ICAgIEFkZCBMYWIgYXMgYSBDb2xvclNwYWNlIGFuZCB0ZXh0IHN0cmVhbSBkdW1waW5nIGZvciBp
dC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxhYjo6TGFiKToKKyAgICAgICAgKFdlYkNvcmU6OmFzQ29sb3JDb21wb25lbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OmFzTGFiKToKKyAgICAgICAgQWRkIExhYiBjb2xvciB0eXBl
LgorCisgICAgICAgIChXZWJDb3JlOjpMQ0hBOjpMQ0hBKToKKyAgICAgICAgKFdlYkNvcmU6OmFz
TENIQSk6CisgICAgICAgIEFkZCBMQ0hBIGNvbG9yIHR5cGUuCisgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6Y2FsbFdpdGhDb2xvclR5cGUpOgorICAgICAgICBBZGQgTGFiIHRvIGNhbGxXaXRo
Q29sb3JUeXBlIHNpbmMgaXQgaXMgbm93IGEgdmFsaWQgQ29sb3JTcGFjZS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpsYWJDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xv
clNwYWNlQ0cuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6CisgICAg
ICAgIEFkZCBhY2Nlc3NvciBmb3IgZ2VuZXJpYyBsYWIgKHdoaWNoIGlzIHRoZSBENTAgd2hpdGUg
cG9pbnQgY3NzIGV4cGVjdHMpIENHQ29sb3JTcGFjZVJlZgorICAgICAgICBidXQgb25seSBpZiB3
ZSBoYXZlIGEgQ29yZUdyYXBoaWNzIHRoYXQgc3VwcG9ydHMgaXQgcHJvcGVybHksIHdoaWNoIGlz
IG1hY09TIDExIGVyYSBvciBuZXdlci4KKwogMjAyMS0wMS0wMyAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFNoYXJlIG1ldGEgcmVmcmVzaCBsb2dpYwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJldmlzaW9uIDI3MTExMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjY0LDYgKzEyNjQsOSBAQCByZ2IKIHJnYmEKIGhzbAogaHNsYQorbGFiCitsY2gKKy8vIGdyYXkK
IC8vY29sb3IKIAogLy8gdHJhbnNmb3JtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZpc2lvbiAyNzEx
MTApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVy
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5Miw2ICs3OTIsMTA1IEBAIHN0YXRpYyBDb2xvciBw
YXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFyc2UKICAgICByZXR1cm4gY29udmVydFRvQ29tcG9uZW50
Qnl0ZXModG9TUkdCQShIU0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvckFycmF5
WzBdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMV0pLCBzdGF0aWNfY2FzdDxmbG9h
dD4oY29sb3JBcnJheVsyXSksIHN0YXRpY19jYXN0PGZsb2F0PihhbHBoYSkgfSkpOwogfQogCitz
dGF0aWMgT3B0aW9uYWw8ZmxvYXQ+IHBhcnNlT3B0aW9uYWxBbHBoYShDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKK3sKKyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2Uo
cmFuZ2UpKQorICAgICAgICByZXR1cm4gMS4wZjsKKworICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIg
PSBjb25zdW1lUGVyY2VudChyYW5nZSwgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKGFscGhhUGFy
YW1ldGVyKQorICAgICAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0ZXItPmRv
dWJsZVZhbHVlKCkgLyAxMDAuMCwgMC4wLCAxLjApOworCisgICAgYWxwaGFQYXJhbWV0ZXIgPSBj
b25zdW1lTnVtYmVyKHJhbmdlLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFscGhhUGFyYW1l
dGVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBjbGFtcFRvPGZs
b2F0PihhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSwgMC4wLCAxLjApOworfQorCitzdGF0
aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQor
eworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlTGFiKTsK
KyAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOwor
CisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdlQWxs
KTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8g
YVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFW
YWx1ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBhdXRvIGJWYWx1ZSA9IGNvbnN1bWVOdW1i
ZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFiVmFsdWUpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAg
IGlmICghYWxwaGEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQo
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgbGlnaHRu
ZXNzLT5mbG9hdFZhbHVlKCksIGFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBiVmFsdWUtPmZsb2F0VmFs
dWUoKSwgKmFscGhhIH07Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUxDSFBhcmFtZXRlcnMoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5j
dGlvbklkKCkgPT0gQ1NTVmFsdWVMY2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9
IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQ
ZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAg
ICByZXR1cm4gQ29sb3IoKTsKKworICAgIGF1dG8gY2hyb21hVmFsdWUgPSBjb25zdW1lTnVtYmVy
KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghY2hyb21hVmFsdWUpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICAvLyBIdWUgaXMgPG51bWJlcj4gb3IgPGFuZ2xlPiAoZGlzYWxsb3dp
bmcgdW5pdGxlc3MgemVybykuCisgICAgYXV0byBodWVWYWx1ZSA9IGNvbnN1bWVBbmdsZShhcmdz
LCBIVE1MU3RhbmRhcmRNb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOworICAgIGZsb2F0IGFu
Z2xlSW5EZWdyZWVzOworICAgIGlmICghaHVlVmFsdWUpIHsKKyAgICAgICAgaHVlVmFsdWUgPSBj
b25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgICAgICBpZiAoIWh1ZVZhbHVl
KQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgYW5nbGVJbkRlZ3JlZXMgPSBodWVW
YWx1ZS0+ZG91YmxlVmFsdWUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5nbGVJbkRlZ3JlZXMg
PSBodWVWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKKworICAgIGFuZ2xlSW5EZWdyZWVzID0gZm1v
ZGYoYW5nbGVJbkRlZ3JlZXMsIDM2MC4wZik7CisgICAgaWYgKGFuZ2xlSW5EZWdyZWVzIDwgMC4w
KQorICAgICAgICBhbmdsZUluRGVncmVlcyArPSAzNjAuMGY7CisKKyAgICBhdXRvIGFscGhhID0g
cGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIHJldHVybiB0b0xhYihMQ0hBPGZsb2F0PiB7IGxpZ2h0bmVzcy0+ZmxvYXRWYWx1ZSgpLCBj
aHJvbWFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBhbmdsZUluRGVncmVlcywgKmFscGhhIH0pOworfQor
CitzdGF0aWMgQ29sb3IgcGFyc2VHcmF5UGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1
ZUdyYXkpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihy
YW5nZSk7CisKKyAgICAvLyBVbmxpa2UgbGFiKCkgYW5kIGxjaCgpLCBncmF5KCkgdGFrZXMgYSBu
dW1iZXIsIGJ1dCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVz
LzQ2NDguCisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFu
Z2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
YXV0byBhbHBoYSA9IHBhcnNlT3B0aW9uYWxBbHBoYShhcmdzKTsKKyAgICBpZiAoIWFscGhhKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICByZXR1cm4gTGFiPGZsb2F0PiB7IGxpZ2h0bmVzcy0+ZmxvYXRWYWx1
ZSgpLCAwLCAwLCAqYWxwaGEgfTsKK30KKwogc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlv
blBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgQVNTRVJUKHJh
bmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVDb2xvcik7CkBAIC04MDUsNiArOTA0
LDkgQEAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvblBhcmFtZXRlcgogICAgIGNhc2Ug
Q1NTVmFsdWVEaXNwbGF5UDM6CiAgICAgICAgIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpEaXNw
bGF5UDM7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNv
bG9yU3BhY2UgPSBDb2xvclNwYWNlOjpMYWI7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtODg4LDYgKzk5MCwxNSBAQCBzdGF0aWMg
Q29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uKENTU1BhcnNlCiAgICAgY2FzZSBDU1NWYWx1ZUhzbGE6
CiAgICAgICAgIGNvbG9yID0gcGFyc2VIU0xQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UsIGNzc1BhcnNl
ck1vZGUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTGFiOgorICAgICAgICBj
b2xvciA9IHBhcnNlTGFiUGFyYW1ldGVycyhjb2xvclJhbmdlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUxjaDoKKyAgICAgICAgY29sb3IgPSBwYXJzZUxDSFBhcmFtZXRlcnMo
Y29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVHcmF5OgorICAg
ICAgICBjb2xvciA9IHBhcnNlR3JheVBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ1NTVmFsdWVDb2xvcjoKICAgICAgICAgY29sb3IgPSBwYXJzZUNvbG9y
RnVuY3Rpb25QYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOwogICAgICAgICBicmVhazsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkocmV2aXNpb24gMjcxMTEwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyAgICAtIDR4IGZsb2F0
ICgwLTEpIHNSR0JBLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291bnRlZCBzdWItb2JqZWN0CiAv
LyAgICAtIDR4IGZsb2F0ICgwLTEpIExpbmVhciBzUkdCQSwgc3RvcmVkIGluIGEgcmVmZXJlbmNl
IGNvdW50ZWQgc3ViLW9iamVjdAogLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBEaXNwbGF5UDMsIHN0
b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKKy8vICAgIC0gNHggZmxvYXQg
KDAtMSkgTGFiLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291bnRlZCBzdWItb2JqZWN0CiAvLwog
Ly8gQWRkaXRpb25hbGx5LCB0aGUgaW5saW5lIDgtYml0IHNSR0JBIGNhbiBoYXZlIGFuIG9wdGlv
bmFsICJzZW1hbnRpYyIgYml0IHNldCBvbiBpdCwKIC8vIHdoaWNoIGluZGljYXRlcyB0aGUgY29s
b3Igb3JpZ2luYXRlZCBmcm9tIGEgQ1NTIHNlbWFudGljIGNvbG9yIG5hbWUuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5j
cHAJKHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yQ29udmVyc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIkNvbG9yQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkNvbG9yTWF0cml4LmgiCi0j
aW5jbHVkZSAiQ29sb3JUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTM0LDYgKzEzNCwxMTkgQEAgWFlaQTxmbG9hdD4gdG9Y
WVpBKGNvbnN0IExpbmVhckRpc3BsYXlQMwogICAgIHJldHVybiBhc1hZWkEobGluZWFyRGlzcGxh
eVAzVG9YWVpNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVu
dHMoY29sb3IpKSk7CiB9CiAKK3N0YXRpYyBYWVpBPGZsb2F0PiBjb252ZXJ0RnJvbUQ1MFdoaXRl
UG9pbnRUb0Q2NVdoaXRlUG9pbnQoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQoreworICAgIC8v
IGh0dHA6Ly93d3cuYnJ1Y2VsaW5kYmxvb20uY29tL2luZGV4Lmh0bWw/RXFuX0Nocm9tQWRhcHQu
aHRtbAorICAgIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBENTBUb0Q2NU1hdHJpeCB7Cisg
ICAgICAgICAwLjk1NTU3NjZmLCAtMC4wMjMwMzkzZiwgMC4wNjMxNjM2ZiwKKyAgICAgICAgLTAu
MDI4Mjg5NWYsICAxLjAwOTk0MTZmLCAwLjAyMTAwNzdmLAorICAgICAgICAgMC4wMTIyOTgyZiwg
LTAuMDIwNDgzMGYsIDEuMzI5OTA5OGYKKyAgICB9OworICAgIHJldHVybiBhc1hZWkEoRDUwVG9E
NjVNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29s
b3IpKSk7Cit9CisKK3N0YXRpYyBYWVpBPGZsb2F0PiBjb252ZXJ0RnJvbUQ2NVdoaXRlUG9pbnRU
b0Q1MFdoaXRlUG9pbnQoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQoreworICAgIC8vIGh0dHA6
Ly93d3cuYnJ1Y2VsaW5kYmxvb20uY29tL2luZGV4Lmh0bWw/RXFuX0Nocm9tQWRhcHQuaHRtbAor
ICAgIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBENjVUb0Q1ME1hdHJpeCB7CisgICAgICAg
ICAxLjA0NzgxMTJmLCAwLjAyMjg4NjZmLCAtMC4wNTAxMjcwZiwKKyAgICAgICAgIDAuMDI5NTQy
NGYsIDAuOTkwNDg0NGYsIC0wLjAxNzA0OTFmLAorICAgICAgICAtMC4wMDkyMzQ1ZiwgMC4wMTUw
NDM2ZiwgIDAuNzUyMTMxNmYKKyAgICB9OworICAgIHJldHVybiBhc1hZWkEoRDY1VG9ENTBNYXRy
aXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7
Cit9CisKK3N0YXRpYyBjb25zdGV4cHIgZmxvYXQgTEFCZSA9IDIxNi4wZiAvIDI0Mzg5LjBmOwor
c3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKK3N0YXRpYyBj
b25zdGV4cHIgZmxvYXQgRDUwV2hpdGVWYWx1ZXNbXSA9IHsgMC45NjQyMmYsIDEuMGYsIDAuODI1
MjFmIH07CisKK1hZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sK
KyAgICBmbG9hdCBmMSA9IChjb2xvci5saWdodG5lc3MgKyAxNi4wZikgLyAxMTYuMGY7CisgICAg
ZmxvYXQgZjAgPSBmMSArIChjb2xvci5hIC8gNTAwLjBmKTsKKyAgICBmbG9hdCBmMiA9IGYxIC0g
KGNvbG9yLmIgLyAyMDAuMGYpOworCisgICAgYXV0byBjb21wdXRlWEFuZFogPSBbXShmbG9hdCB0
KSB7CisgICAgICAgIGZsb2F0IHRDdWJlZCA9IHQgKiB0ICogdDsKKyAgICAgICAgaWYgKHRDdWJl
ZCA+IExBQmUpCisgICAgICAgICAgICByZXR1cm4gdEN1YmVkOworCisgICAgICAgIHJldHVybiAo
MTE2LjBmICogdCAtIDE2LjBmKSAvIExBQms7CisgICAgfTsKKworICAgIGF1dG8gY29tcHV0ZVkg
PSBbXShmbG9hdCB0KSB7CisgICAgICAgIGlmICh0ID4gKExBQmsgKiBMQUJlKSkgeworICAgICAg
ICAgICAgZmxvYXQgdmFsdWUgPSAodCArIDE2LjApIC8gMTE2LjA7CisgICAgICAgICAgICByZXR1
cm4gdmFsdWUgKiB2YWx1ZSAqIHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHQg
LyBMQUJrOworICAgIH07CisKKyAgICBmbG9hdCB4ID0gRDUwV2hpdGVWYWx1ZXNbMF0gKiBjb21w
dXRlWEFuZFooZjApOworICAgIGZsb2F0IHkgPSBENTBXaGl0ZVZhbHVlc1sxXSAqIGNvbXB1dGVZ
KGNvbG9yLmxpZ2h0bmVzcyk7CisgICAgZmxvYXQgeiA9IEQ1MFdoaXRlVmFsdWVzWzJdICogY29t
cHV0ZVhBbmRaKGYyKTsKKworICAgIFhZWkE8ZmxvYXQ+IHJlc3VsdCB7IHgsIHksIHosIGNvbG9y
LmFscGhhIH07CisKKyAgICAvLyBXZSBleHBlY3QgWFlaQSBjb2xvcnMgdG8gYmUgdXNpbmcgdGhl
IEQ2NSB3aGl0ZSBwb2ludCwgdW5saWtlIExhYiwgd2hpY2ggdXNlcyBhCisgICAgLy8gRDUwIHdo
aXRlIHBvaW50LCBzbyBhcyBhIGZpbmFsIHN0ZXAsIHVzZSB0aGUgQnJhZGZvcmQgdHJhbnNmb3Jt
IHRvIGNvbnZlcnQgdGhlCisgICAgLy8gcmVzdWx0aW5nIFhZWkEgY29sb3IgdG8gYSBENjUgd2hp
dGUgcG9pbnQuCisgICAgcmV0dXJuIGNvbnZlcnRGcm9tRDUwV2hpdGVQb2ludFRvRDY1V2hpdGVQ
b2ludChyZXN1bHQpOworfQorCitMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IFhZWkE8ZmxvYXQ+JiBj
b2xvcikKK3sKKyAgICAvLyBXZSBleHBlY3QgWFlaQSBjb2xvcnMgdG8gYmUgdXNpbmcgdGhlIEQ2
NSB3aGl0ZSBwb2ludCwgdW5saWtlIExhYiwgd2hpY2ggdXNlcyBhCisgICAgLy8gRDUwIHdoaXRl
IHBvaW50LCBzbyBhcyBhIGZpcnN0IHN0ZXAsIHVzZSB0aGUgQnJhZGZvcmQgdHJhbnNmb3JtIHRv
IGNvbnZlcnQgdGhlCisgICAgLy8gaW5jb21pbmcgWFlaQSBjb2xvciB0byBENTAgd2hpdGUgcG9p
bnQuCisgICAgYXV0byBjb2xvcldpdGhENTBXaGl0ZVBvaW50ID0gY29udmVydEZyb21ENjVXaGl0
ZVBvaW50VG9ENTBXaGl0ZVBvaW50KGNvbG9yKTsKKworICAgIGZsb2F0IHggPSBjb2xvcldpdGhE
NTBXaGl0ZVBvaW50LnggLyBENTBXaGl0ZVZhbHVlc1swXTsKKyAgICBmbG9hdCB5ID0gY29sb3JX
aXRoRDUwV2hpdGVQb2ludC55IC8gRDUwV2hpdGVWYWx1ZXNbMV07CisgICAgZmxvYXQgeiA9IGNv
bG9yV2l0aEQ1MFdoaXRlUG9pbnQueiAvIEQ1MFdoaXRlVmFsdWVzWzJdOworCisgICAgYXV0byBm
VHJhbnNmb3JtID0gW10oZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlID4gTEFC
ZSA/IHN0ZDo6Y2JydCh2YWx1ZSkgOiAoTEFCayAqIHZhbHVlICsgMTYuMGYpIC8gMTE2LjBmOwor
ICAgIH07CisKKyAgICBmbG9hdCBmMCA9IGZUcmFuc2Zvcm0oeCk7CisgICAgZmxvYXQgZjEgPSBm
VHJhbnNmb3JtKHkpOworICAgIGZsb2F0IGYyID0gZlRyYW5zZm9ybSh6KTsKKworICAgIGZsb2F0
IGxpZ2h0bmVzcyA9ICgxMTYuMGYgKiBmMSkgLSAxNi4wZjsKKyAgICBmbG9hdCBhID0gNTAwLjBm
ICogKGYwIC0gZjEpOworICAgIGZsb2F0IGIgPSAyMDAuMGYgKiAoZjEgLSBmMik7CisKKyAgICBy
ZXR1cm4geyBsaWdodG5lc3MsIGEsIGIsIGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQuYWxwaGEgfTsK
K30KKworTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAg
IC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGFiLXRvLWxjaAorICAgIGZs
b2F0IGh1ZSA9IHJhZDJkZWcoYXRhbjIoY29sb3IuYiwgY29sb3IuYSkpOworCisgICAgcmV0dXJu
IHsKKyAgICAgICAgY29sb3IubGlnaHRuZXNzLAorICAgICAgICBzdGQ6Omh5cG90KGNvbG9yLmEs
IGNvbG9yLmIpLAorICAgICAgICBodWUgPj0gMCA/IGh1ZSA6IGh1ZSArIDM2MCwKKyAgICAgICAg
Y29sb3IuYWxwaGEKKyAgICB9OworfQorCitMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IExDSEE8Zmxv
YXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQv
I2xjaC10by1sYWIKKyAgICBmbG9hdCBodWVBbmdsZVJhZGlhbnMgPSBkZWcycmFkKGNvbG9yLmh1
ZSk7CisKKyAgICByZXR1cm4geworICAgICAgICBjb2xvci5saWdodG5lc3MsCisgICAgICAgIGNv
bG9yLmNocm9tYSAqIHN0ZDo6Y29zKGh1ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGNvbG9yLmNo
cm9tYSAqIHN0ZDo6c2luKGh1ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGNvbG9yLmFscGhhCisg
ICAgfTsKK30KKwogSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3Ip
CiB7CiAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IU0xfY29sb3Jfc3BhY2Uu
CkBAIC0yNjMsNiArMzc2LDE2IEBAIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNwbGF5UDMoY29uc3Qg
WFlaQTwKICAgICByZXR1cm4gdG9EaXNwbGF5UDModG9MaW5lYXJEaXNwbGF5UDMoY29sb3IpKTsK
IH0KIAorWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExDSEE8ZmxvYXQ+JiBjb2xvcikKK3sKKyAg
ICByZXR1cm4gdG9YWVpBKHRvTGFiKGNvbG9yKSk7Cit9CisKK0xDSEE8ZmxvYXQ+IHRvTENIQShj
b25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgcmV0dXJuIHRvTENIQSh0b0xhYihjb2xv
cikpOworfQorCiBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgSFNMQTxmbG9hdD4mIGNvbG9yKQog
ewogICAgIHJldHVybiB0b1hZWkEodG9TUkdCQShjb2xvcikpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHJldmlzaW9u
IDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSwyMCBAQCBXRUJDT1JFX0VYUE9SVCBM
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IHRvCiBXRUJDT1JFX0VYUE9SVCBEaXNwbGF5UDM8ZmxvYXQ+
IHRvRGlzcGxheVAzKGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mKTsKIAogCisvLyBMYWIK
K1dFQkNPUkVfRVhQT1JUIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMYWI8ZmxvYXQ+Jik7CitX
RUJDT1JFX0VYUE9SVCBMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IFhZWkE8ZmxvYXQ+Jik7CisvLyBB
ZGRpdGlvbnMKK1dFQkNPUkVfRVhQT1JUIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBMYWI8Zmxv
YXQ+Jik7CisKKworLy8gTENIQQorV0VCQ09SRV9FWFBPUlQgWFlaQTxmbG9hdD4gdG9YWVpBKGNv
bnN0IExDSEE8ZmxvYXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBMQ0hBPGZsb2F0PiB0b0xDSEEoY29u
c3QgWFlaQTxmbG9hdD4mKTsKKy8vIEFkZGl0aW9ucworV0VCQ09SRV9FWFBPUlQgTGFiPGZsb2F0
PiB0b0xhYihjb25zdCBMQ0hBPGZsb2F0PiYpOworCisKIC8vIEhTTEEKIFdFQkNPUkVfRVhQT1JU
IFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBIU0xBPGZsb2F0PiYpOwogV0VCQ09SRV9FWFBPUlQg
SFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFhZWkE8ZmxvYXQ+Jik7CkBAIC05MSw2ICsxMDUsOCBA
QCBjb25zdGV4cHIgU1JHQkE8ZmxvYXQ+IHRvU1JHQkEoY29uc3QgU1JHCiBjb25zdGV4cHIgTGlu
ZWFyU1JHQkE8ZmxvYXQ+IHRvTGluZWFyU1JHQkEoY29uc3QgTGluZWFyU1JHQkE8ZmxvYXQ+JiBj
b2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBEaXNwbGF5UDM8ZmxvYXQ+IHRvRGlz
cGxheVAzKGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQog
Y29uc3RleHByIExpbmVhckRpc3BsYXlQMzxmbG9hdD4gdG9MaW5lYXJEaXNwbGF5UDMoY29uc3Qg
TGluZWFyRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9Citjb25zdGV4
cHIgTGFiPGZsb2F0PiB0b0xhYihjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29s
b3I7IH0KK2NvbnN0ZXhwciBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgTENIQTxmbG9hdD4mIGNv
bG9yKSB7IHJldHVybiBjb2xvcjsgfQogY29uc3RleHByIEhTTEE8ZmxvYXQ+IHRvSFNMQShjb25z
dCBIU0xBPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgQ01ZS0E8
ZmxvYXQ+IHRvQ01ZS0EoY29uc3QgQ01ZS0E8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7
IH0KIGNvbnN0ZXhwciBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9y
KSB7IHJldHVybiBjb2xvcjsgfQpAQCAtMTIxLDYgKzEzNywxNiBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBMaW5lYXJEaXNwbGF5UDM8ZmxvCiAgICAgcmV0dXJuIHRvTGluZWFyRGlzcGxheVAzKHRv
WFlaQShjb2xvcikpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBMYWI8ZmxvYXQ+IHRvTGFi
KGNvbnN0IFQmIGNvbG9yKQoreworICAgIHJldHVybiB0b0xhYih0b1hZWkEoY29sb3IpKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4gTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IFQmIGNvbG9y
KQoreworICAgIHJldHVybiB0b0xDSEEodG9YWVpBKGNvbG9yKSk7Cit9CisKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IEhTTEE8ZmxvYXQ+IHRvSFNMQShjb25zdCBUJiBjb2xvcikKIHsKICAgICByZXR1
cm4gdG9IU0xBKHRvWFlaQShjb2xvcikpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCShyZXZpc2lvbiAy
NzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6
YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw4IEBAIHN0YXRpYyBBU0NJSUxp
dGVyYWwgc2VyaWFsaXphdGlvbihDb2xvclMKICAgICAgICAgcmV0dXJuICJsaW5lYXItc3JnYiJf
czsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJuICJkaXNw
bGF5LXAzIl9zOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gImxh
YiJfczsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE2MSw2ICsxNjMs
MjcgQEAgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KAogICAgIHJldHVy
biBzZXJpYWxpemF0aW9uKGNvbG9yKTsKIH0KIAorLy8gTGFiPGZsb2F0PiBvdmVybG9hZHMKKwor
U3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7Cisg
ICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNzZXJpYWxpemluZy1sYWIt
bGNoCisKKyAgICBhdXRvIFtjMSwgYzIsIGMzLCBhbHBoYV0gPSBjb2xvcjsKKyAgICBpZiAoV1RG
OjphcmVFc3NlbnRpYWxseUVxdWFsKGFscGhhLCAxLjBmKSkKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoImxhYigiLCBjMSwgIiUgIiwgYzIsICcgJywgYzMsICcpJyk7CisgICAgcmV0dXJuIG1h
a2VTdHJpbmcoImxhYigiLCBjMSwgIiUgIiwgYzIsICcgJywgYzMsICIgLyAiLCBhbHBoYSwgJykn
KTsKK30KKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IExhYjxmbG9hdD4mIGNv
bG9yKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbG9yKTsKK30KKworU3Ry
aW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0IExhYjxmbG9hdD4mIGNv
bG9yKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbG9yKTsKK30KIAogLy8g
Q29sb3Igb3ZlcmxvYWRzCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yU2VyaWFsaXphdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oCShyZXZpc2lvbiAyNzExMTApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBD
b2xvcjsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBEaXNwbGF5UDM7Cit0ZW1wbGF0ZTx0
eXBlbmFtZT4gc3RydWN0IExhYjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTGluZWFyU1JH
QkE7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IFNSR0JBOwogCkBAIC01NSw2ICs1NiwxMCBA
QCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckNTCiBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYpOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNv
bnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKIAorV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6
YXRpb25Gb3JDU1MoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNl
cmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IExhYjxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIFN0
cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBMYWI8ZmxvYXQ+Jik7
CisKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IENvbG9y
Jik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgQ29s
b3ImKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFz
VGV4dChjb25zdCBDb2xvciYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAJKHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw2ICs0Miw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEMKICAg
ICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgdHMgPDwgIkRpc3BsYXlQMyI7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICB0cyA8
PCAiTCphKmIiOworICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAkocmV2
aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JT
cGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIFNSR0IsCiAgICAgTGlu
ZWFyUkdCLAotICAgIERpc3BsYXlQMworICAgIERpc3BsYXlQMywKKyAgICBMYWIKIH07CiAKIFdF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBDb2xvclNwYWNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclR5cGVzLmgJKHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDYgKzI0Nyw5
MyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyCiB9CiAKIAordGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExhYiA6IENvbG9yV2l0aEFscGhhSGVscGVyPExhYjxU
Pj4geworICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOworICAgIHN0YXRpYyBjb25zdGV4cHIg
YXV0byBjb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6TGFiOworCisgICAgY29uc3RleHByIExhYihU
IGxpZ2h0bmVzcywgVCBhLCBUIGIsIFQgYWxwaGEgPSBDb21wb25lbnRUcmFpdHM8VD46Om1heFZh
bHVlKQorICAgICAgICA6IGxpZ2h0bmVzcyB7IGxpZ2h0bmVzcyB9CisgICAgICAgICwgYSB7IGEg
fQorICAgICAgICAsIGIgeyBiIH0KKyAgICAgICAgLCBhbHBoYSB7IGFscGhhIH0KKyAgICB7Cisg
ICAgfQorCisgICAgY29uc3RleHByIExhYigpCisgICAgICAgIDogTGFiIHsgQ29tcG9uZW50VHJh
aXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50
VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSB9CisgICAg
eworICAgIH0KKworICAgIFQgbGlnaHRuZXNzOworICAgIFQgYTsKKyAgICBUIGI7CisgICAgVCBh
bHBoYTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNvbXBvbmVu
dHM8VD4gYXNDb2xvckNvbXBvbmVudHMoY29uc3QgTGFiPFQ+JiBjKQoreworICAgIHJldHVybiB7
IGMubGlnaHRuZXNzLCBjLmEsIGMuYiwgYy5hbHBoYSB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjb25zdGV4cHIgTGFiPFQ+IGFzTGFiKGNvbnN0IENvbG9yQ29tcG9uZW50czxUPiYgYykK
K3sKKyAgICByZXR1cm4geyBjWzBdLCBjWzFdLCBjWzJdLCBjWzNdIH07Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgTGFiPFQ+JiBhLCBj
b25zdCBMYWI8VD4mIGIpCit7CisgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGEpID09IGFz
Q29sb3JDb21wb25lbnRzKGIpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IExhYjxUPiYgYSwgY29uc3QgTGFiPFQ+JiBiKQoreworICAg
IHJldHVybiAhKGEgPT0gYik7Cit9CisKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExD
SEEgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxMQ0hBPFQ+PiB7CisgICAgdXNpbmcgQ29tcG9uZW50
VHlwZSA9IFQ7CisKKyAgICBjb25zdGV4cHIgTENIQShUIGxpZ2h0bmVzcywgVCBjaHJvbWEsIFQg
aHVlLCBUIGFscGhhID0gQ29tcG9uZW50VHJhaXRzPFQ+OjptYXhWYWx1ZSkKKyAgICAgICAgOiBs
aWdodG5lc3MgeyBsaWdodG5lc3MgfQorICAgICAgICAsIGNocm9tYSB7IGNocm9tYSB9CisgICAg
ICAgICwgaHVlIHsgaHVlIH0KKyAgICAgICAgLCBhbHBoYSB7IGFscGhhIH0KKyAgICB7CisgICAg
fQorCisgICAgY29uc3RleHByIExDSEEoKQorICAgICAgICA6IExDSEEgeyBDb21wb25lbnRUcmFp
dHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRU
cmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlIH0KKyAgICB7
CisgICAgfQorCisgICAgVCBsaWdodG5lc3M7CisgICAgVCBjaHJvbWE7CisgICAgVCBodWU7Cisg
ICAgVCBhbHBoYTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNv
bXBvbmVudHM8VD4gYXNDb2xvckNvbXBvbmVudHMoY29uc3QgTENIQTxUPiYgYykKK3sKKyAgICBy
ZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5jaHJvbWEsIGMuaHVlLCBjLmFscGhhIH07Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBMQ0hBPFQ+IGFzTENIQShjb25zdCBDb2xvckNv
bXBvbmVudHM8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgY1swXSwgY1sxXSwgY1syXSwgY1szXSB9
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IExDSEE8VD4mIGEsIGNvbnN0IExDSEE8VD4mIGIpCit7CisgICAgcmV0dXJuIGFzQ29sb3JD
b21wb25lbnRzKGEpID09IGFzQ29sb3JDb21wb25lbnRzKGIpOworfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExDSEE8VD4mIGEsIGNvbnN0
IExDSEE8VD4mIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKworCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgSFNMQSA6IENvbG9yV2l0aEFscGhhSGVscGVyPEhTTEE8VD4+IHsK
ICAgICB1c2luZyBDb21wb25lbnRUeXBlID0gVDsKIApAQCAtMzc5LDYgKzQ2Niw4IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEZ1bmN0b3I+IGMKICAgICAgICAgcmV0dXJuIHN0ZDo6
aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNMaW5lYXJTUkdCQShjb21w
b25lbnRzKSk7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHJldHVy
biBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIGFzRGlzcGxheVAz
KGNvbXBvbmVudHMpKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgcmV0dXJu
IHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNMYWIoY29tcG9u
ZW50cykpOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuY3Bw
CShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvclNwYWNlQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4MiwyMCBAQCBDR0Nv
bG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpCiAgICAgcmV0dXJuIGRpc3BsYXlQ
M0NvbG9yU3BhY2U7CiB9CiAKK0NHQ29sb3JTcGFjZVJlZiBsYWJDb2xvclNwYWNlUmVmKCkKK3sK
KyAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VSZWY7CisgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBb
XSB7CisjaWYgSEFWRShMQUJfU1VQUE9SVF9JTl9DT1JFX0dSQVBISUNTKQorICAgICAgICBsYWJD
b2xvclNwYWNlUmVmID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZUdl
bmVyaWNMYWIpOworI2Vsc2UKKyAgICAgICAgbGFiQ29sb3JTcGFjZVJlZiA9IHNSR0JDb2xvclNw
YWNlUmVmKCk7CisjZW5kaWYKKyAgICB9KTsKKyAgICByZXR1cm4gbGFiQ29sb3JTcGFjZVJlZjsK
K30KKwogQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKQogewogICAg
IHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5o
CShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvclNwYWNlQ0cuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgc1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNw
YWNlUmVmKCk7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JT
cGFjZVJlZigpOworV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VS
ZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNw
YWNlUmVmKCk7CiAKIHN0YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZENHQ29sb3JT
cGFjZShDb2xvclNwYWNlIGNvbG9yU3BhY2UpCkBAIC00NSw2ICs0Niw4IEBAIHN0YXRpYyBpbmxp
bmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZENHQ28KICAgICAgICAgcmV0dXJuIGxpbmVhclJHQkNv
bG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAg
cmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6Okxh
YjoKKyAgICAgICAgcmV0dXJuIGxhYkNvbG9yU3BhY2VSZWYoKTsKICAgICB9CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHNSR0JDb2xvclNwYWNlUmVmKCk7CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzNSBAQAorMjAyMS0wMS0wMyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCksIGdyYXkoKSBhbmQgY29sb3Io
bGFiIC4uLikgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUGFyc2lu
ZyB0ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKworICAgICAgICBbRklYTUVdIFJlbmRl
cmluZyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xv
cnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1j
b2xvcnMuaHRtbDogQWRkZWQuCisKKzIwMjAtMTItMjYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgbGFiKCksIGxjaCgpLCBncmF5KCkgYW5kIGNvbG9y
KGxhYiAuLi4pIGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgT3JpZ2luYWwgcGF0Y2ggYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFBhcnNp
bmcgdGVzdHMgZm9yIGxhYi9sY2gvZ3JheSBjb2xvcnMuCisKKyAgICAgICAgW0ZJWE1FXSBSZW5k
ZXJpbmcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1sYWItY29s
b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy1sYWIt
Y29sb3JzLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEyLTI2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBSZW1vdmUgW0N1c3RvbVRvU3Ry
aW5nTmFtZV0gYW5kIExvY2F0aW9uLXNwZWNpZmljIGV4dGVuZGVkIGF0dHJpYnV0ZXMKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVj
dGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxh
Yi1jb2xvcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKK1Rl
c3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworbGFiKCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCAwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSkiKSBpcyAibGFiKDAlIDAg
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAv
IDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAv
NTAlKSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIpIGlzICJsYWIoNDAwJSAwIDEwIC8g
MC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0x
NjAgMTYwKSIpIGlzICJsYWIoNTAlIC0xNjAgMTYwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIpIGlzICJsYWIoNTAlIC0yMDAgMjAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8g
LTEwJSkiKSBpcyAibGFiKDAlIDAgMCAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiKSBp
cyAibGFiKDAlIDAgMCkiCisKK2xjaCgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDAlIDAgMGRlZykiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDEpIikgaXMgImxhYigw
JSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAw
IDBkZWcgLyAwLjUpIikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIpIGlzICJsYWIo
MTAwJSAyMzAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIikgaXMgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAxMDA2
IC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAl
IDUwIDIwZGVnLzUwJSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcg
LyAtMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSki
KSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIikgaXMgImxhYigxMCUgNS43
MzQzMDI1IDE5LjE2MDMxNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDEwJSAyMCAzODBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQw
ZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIpIGlzICJsYWIoMTAl
IDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaCgxMCUgMjAgLTcwMGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0
MDI2KSIKKworZ3JheSgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
Z3JheSgwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIpIGlzICJsYWIoMTAlIDAgMCAvIDAuMSkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMjAgLyAxMCUpIikgaXMg
ImxhYigxMjAlIDAgMCAvIDAuMSkiCisKK1Rlc3QgaW52YWxpZCB2YWx1ZXMKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCAwIDApIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAl
IDApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMTAlKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcpIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwJSAw
IDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAgMCAwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
RkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDAgLyAwLjUp
Iikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMCUgMCAwIC8gMC41KS4KK0ZB
SUwgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwKSIpIHNo
b3VsZCBiZSByZ2JhKDAsIDAsIDAsIDApLiBXYXMgbGFiKDIwJSA5Ljg0ODA3OCAxLjczNjQ4MTgp
LgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBk
ZWcgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiKSBpcyAicmdiYSgwLCAw
LCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEw
JSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTApIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3Jh
eSgxMCAvIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsOTcgQEAKKzxodG1sPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4i
KTsKKworICAgIGZ1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsK
KyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQ
cm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdl
dENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICByZXR1cm4gY29tcHV0ZWRW
YWx1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiBkaXYuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdGVzdENvbXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAg
eworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUoIicgKyBwcm9w
ZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAg
ICAgaWYgKGV4cGVjdGVkID09PSBudWxsKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSAiIjsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAn
IiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnbGFi
KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCki
LCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDAlIDAgMCAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC8wLjUp
IiwgImxhYigyMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGFiKDIwJSAwIDEwLzUwJSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiLCAi
bGFiKDQwMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDUwJSAtMTYwIDE2MCkiLCAibGFiKDUwJSAtMTYwIDE2MCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiLCAibGFiKDUw
JSAtMjAwIDIwMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KDAlIDAgMCAvIC0xMCUpIiwgImxhYigwJSAwIDAgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMTEwJSkiLCAibGFiKDAlIDAgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDMwMCUp
IiwgImxhYigwJSAwIDApIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ2xjaCgpJyk7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcpIiwg
ImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgwJSAwIDBkZWcgLyAxKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAwJSAyMzAg
MGRlZyAvIDAuNSkiLCAibGFiKDEwMCUgMjMwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvMC41KSIsICJsYWIoMjAlIDQ2
Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy81MCUpIiwgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAx
MDA2IC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
MTAlIDIwIDIwZGVnIC8gLTEwJSkiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2IC8gMCki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRl
ZyAvIDExMCUpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAxLjI4cmFkKSIsICJsYWIoMTAl
IDUuNzM0MzAyNSAxOS4xNjAzMTYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaCgxMCUgMjAgMzgwZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTM0
MGRlZykiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDc0MGRlZykiLCAibGFiKDEwJSAxOC43
OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAlIDIwIC03MDBkZWcpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiKTsK
KworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnZ3JheSgpJyk7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMCkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEwJSkiLCAibGFiKDEwJSAw
IDAgLyAwLjEpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXko
MTIwIC8gMTAlKSIsICJsYWIoMTIwJSAwIDAgLyAwLjEpIik7CisKKyAgICBkZWJ1ZygnJyk7Cisg
ICAgZGVidWcoJ1Rlc3QgaW52YWxpZCB2YWx1ZXMnKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAgMCAwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAwKSIsICJyZ2JhKDAsIDAs
IDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAw
IDAgMSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCAwIDEwJSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwZGVnKSIsICJyZ2JhKDAs
IDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigw
JSAwJSAwZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAgMCAwIC8gMC41KSIs
ICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgwJSAwIDAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsgLy8gTm8gdW5pdGxl
c3MgemVybyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJraXQub3JnL2IvMjA1NzMzCisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTApIiwgInJnYmEo
MCwgMCwgMCwgMCkiKTsgLy8gTm8gdW5pdGxlc3MgYW5nbGUuIEN1cnJlbnRseSBmYWlsczogd2Vi
a2l0Lm9yZy9iLzIwNTczMworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goMjAlIDEwIDEwZGVnIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTAgLyAwLjUpIiwgInJn
YmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJncmF5KDEwJSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTApIiwgInJnYmEo
MCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3Jh
eSgxMCAvIDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisKKzwvc2NyaXB0PgorICAgIAor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416916</attachid>
            <date>2021-01-03 12:09:53 -0800</date>
            <delta_ts>2021-01-05 08:57:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210103120953.patch</filename>
            <type>text/plain</type>
            <size>36211</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTAzICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBj
b2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgyNjQwNzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisgICAgICAgIEFkZCBIQVZFX0xBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJ
Q1Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIENvcmVHcmFwaGljcworICAgICAgICBvbiB0aGUg
c3lzdG1lIGhhcyBwcm9wZXIgc3VwcG9ydCBmb3IgY29udmVyc2lvbnMgdG8vZnJvbSB0aGUgTGFi
IGNvbG9yIHNwYWNlCisgICAgICAgIGFuZCBoYXMgYSByZXNvbHV0aW9uIGZvciByZGFyOi8vcHJv
YmxlbS81ODM2MDQ1NC4KKwogMjAyMC0xMi0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIFdURjo6TWFjaFNl
bWFwaG9yZSB0byB3YWl0IHdpdGggYSB0aW1lb3V0IGR1cmF0aW9uCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTgxMywzICs4MTMsMTIgQEAKICAgICB8fCAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0MDQwMCkKICNkZWZp
bmUgSEFWRV9BVkNPTlRFTlRLRVlSRVFVRVNUX1BFTkRJTkdfUFJPVEVDVElPTl9TVEFUVVMgMQog
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkgXAorICAgIHx8ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShN
QUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAw
MCkgXAorICAgIHx8IChQTEFURk9STShXQVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDcwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQorLy8gUHJpb3IgdG8gdGhlc2UgcmVs
ZWFzZXMsIENvcmVHcmFwaGljcyBjb3VsZCBub3QgY29ycmVjdGx5IGNvbnZlcnQgZnJvbSBMYWIg
dG8gb3RoZXIgY29sb3Igc3BhY2VzCisvLyBkdWUgdG8gcmRhcjovL3Byb2JsZW0vNTgzNjA0NTQu
CisjZGVmaW5lIEhBVkVfTEFCX1NVUFBPUlRfSU5fQ09SRV9HUkFQSElDUyAxCisjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTEyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAxLTAzICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3Jh
eSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgIEFkZCAibGFiIiBhbmQgImxjaCIg
a2V5d29yZHMuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVy
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNl
T3B0aW9uYWxBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBl
cnM6OnBhcnNlTGFiUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnM6OnBhcnNlTENIUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlR3JheVBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUNvbG9yRnVuY3Rpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VD
b2xvckZ1bmN0aW9uKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgImxhYiguLi4p
IiwgImxjaCguLi4pIiwgImdyYXkoLi4uKSIKKyAgICAgICAgYW5kICJjb2xvcihsYWIgLi4uKSIs
IGFsbCBvZiB3aGljaCBjcmVhdGUgTGFiPGZsb2F0PiBjb2xvcnMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKToK
KyAgICAgICAgQWRkIG92ZXJsb2FkIG9mIHRoZSBDb2xvciBjb25zdHJ1Y3RvciB0aGF0IHRha2Vz
IGEgTGFiPGZsb2F0PiBtYXRjaGluZyBvdGhlcgorICAgICAgICBDb2xvclNwYWNlIHR5cGVzLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRGcm9tRDUwV2hpdGVQb2ludFRvRDY1V2hpdGVQb2ludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RnJvbUQ2NVdoaXRlUG9pbnRUb0Q1MFdoaXRlUG9pbnQp
OgorICAgICAgICAoV2ViQ29yZTo6dG9YWVpBKToKKyAgICAgICAgKFdlYkNvcmU6OnRvTGFiKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvTENIQSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JDb252ZXJzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjp0b0xhYik6CisgICAgICAgIChX
ZWJDb3JlOjp0b0xDSEEpOgorICAgICAgICBBZGQgY29udmVyc2lvbnMgdG8vZnJvbSBMYWIgdG8g
RDY1IHdoaXRlIHBvaW50IFhZWkEgKHRoZSB3aGl0ZSBwb2ludCB3ZSBleHBlY3QgWFlaQSB0byBi
ZSBpbiksIGFuZCBjb252ZXJzaW9uCisgICAgICAgIGZyb20gTGNoIHRvL2Zyb20gTGFiLiAKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzZXJpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6
YXRpb25Gb3JDU1MpOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvckhUTUwpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oOgorICAgICAgICBB
ZGQgc2VyaWFsaXphdGlvbiBmb3IgTGFiIGNvbG9ycy4gV2UgY3VycmVudGx5IGFsd2F5cyBzZXJp
YWxpemUgdXNpbmcgdGhlIGxhYigpCisgICAgICAgIG5vdGF0aW9uLCB3aGljaCBhcHBlYXJzIHRv
IGJlIGNvcnJlY3QgZm9yIGF0IGxlYXN0IGNvbG9ycyBkZWNsYXJlZCB1c2luZyBsYWIoKSwKKyAg
ICAgICAgbGNoKCkgYW5kIGdyYXkoKS4gVW5jbGVhciBpZiBpdCBpcyBjb3JyZWN0IGZvciBjb2xv
cnMgZGVjbGFyZWQgd2l0aCBjb2xvcihsYWIgLi4uKS4KKyAgICAgICAgT3BlbmVkIGh0dHBzOi8v
Z2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy81ODI1IHRvIHRyYWNrIGdldHRpbmcg
YSByZXNvbHV0aW9uCisgICAgICAgIGZvciAiY29sb3IobGFiIC4uLikiLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmg6CisgICAg
ICAgIEFkZCBMYWIgYXMgYSBDb2xvclNwYWNlIGFuZCB0ZXh0IHN0cmVhbSBkdW1waW5nIGZvciBp
dC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxhYjo6TGFiKToKKyAgICAgICAgKFdlYkNvcmU6OmFzQ29sb3JDb21wb25lbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OmFzTGFiKToKKyAgICAgICAgQWRkIExhYiBjb2xvciB0eXBl
LgorCisgICAgICAgIChXZWJDb3JlOjpMQ0hBOjpMQ0hBKToKKyAgICAgICAgKFdlYkNvcmU6OmFz
TENIQSk6CisgICAgICAgIEFkZCBMQ0hBIGNvbG9yIHR5cGUuCisgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6Y2FsbFdpdGhDb2xvclR5cGUpOgorICAgICAgICBBZGQgTGFiIHRvIGNhbGxXaXRo
Q29sb3JUeXBlIHNpbmMgaXQgaXMgbm93IGEgdmFsaWQgQ29sb3JTcGFjZS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpsYWJDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xv
clNwYWNlQ0cuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6CisgICAg
ICAgIEFkZCBhY2Nlc3NvciBmb3IgZ2VuZXJpYyBsYWIgKHdoaWNoIGlzIHRoZSBENTAgd2hpdGUg
cG9pbnQgY3NzIGV4cGVjdHMpIENHQ29sb3JTcGFjZVJlZgorICAgICAgICBidXQgb25seSBpZiB3
ZSBoYXZlIGEgQ29yZUdyYXBoaWNzIHRoYXQgc3VwcG9ydHMgaXQgcHJvcGVybHksIHdoaWNoIGlz
IG1hY09TIDExIGVyYSBvciBuZXdlci4KKwogMjAyMS0wMS0wMyAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFNoYXJlIG1ldGEgcmVmcmVzaCBsb2dpYwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJldmlzaW9uIDI3MTExMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjY0LDYgKzEyNjQsOSBAQCByZ2IKIHJnYmEKIGhzbAogaHNsYQorbGFiCitsY2gKKy8vIGdyYXkK
IC8vY29sb3IKIAogLy8gdHJhbnNmb3JtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZpc2lvbiAyNzEx
MTApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVy
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5Miw2ICs3OTIsMTA1IEBAIHN0YXRpYyBDb2xvciBw
YXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFyc2UKICAgICByZXR1cm4gY29udmVydFRvQ29tcG9uZW50
Qnl0ZXModG9TUkdCQShIU0xBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvckFycmF5
WzBdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMV0pLCBzdGF0aWNfY2FzdDxmbG9h
dD4oY29sb3JBcnJheVsyXSksIHN0YXRpY19jYXN0PGZsb2F0PihhbHBoYSkgfSkpOwogfQogCitz
dGF0aWMgT3B0aW9uYWw8ZmxvYXQ+IHBhcnNlT3B0aW9uYWxBbHBoYShDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKK3sKKyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2Uo
cmFuZ2UpKQorICAgICAgICByZXR1cm4gMS4wZjsKKworICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIg
PSBjb25zdW1lUGVyY2VudChyYW5nZSwgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKGFscGhhUGFy
YW1ldGVyKQorICAgICAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4oYWxwaGFQYXJhbWV0ZXItPmRv
dWJsZVZhbHVlKCkgLyAxMDAuMCwgMC4wLCAxLjApOworCisgICAgYWxwaGFQYXJhbWV0ZXIgPSBj
b25zdW1lTnVtYmVyKHJhbmdlLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFscGhhUGFyYW1l
dGVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBjbGFtcFRvPGZs
b2F0PihhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSwgMC4wLCAxLjApOworfQorCitzdGF0
aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQor
eworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlTGFiKTsK
KyAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOwor
CisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lUGVyY2VudChhcmdzLCBWYWx1ZVJhbmdlQWxs
KTsKKyAgICBpZiAoIWxpZ2h0bmVzcykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8g
YVZhbHVlID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWFW
YWx1ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBhdXRvIGJWYWx1ZSA9IGNvbnN1bWVOdW1i
ZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFiVmFsdWUpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAg
IGlmICghYWxwaGEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQo
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgbGlnaHRu
ZXNzLT5mbG9hdFZhbHVlKCksIGFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBiVmFsdWUtPmZsb2F0VmFs
dWUoKSwgKmFscGhhIH07Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUxDSFBhcmFtZXRlcnMoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5j
dGlvbklkKCkgPT0gQ1NTVmFsdWVMY2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9
IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQ
ZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAg
ICByZXR1cm4gQ29sb3IoKTsKKworICAgIGF1dG8gY2hyb21hVmFsdWUgPSBjb25zdW1lTnVtYmVy
KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghY2hyb21hVmFsdWUpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICAvLyBIdWUgaXMgPG51bWJlcj4gb3IgPGFuZ2xlPiAoZGlzYWxsb3dp
bmcgdW5pdGxlc3MgemVybykuCisgICAgYXV0byBodWVWYWx1ZSA9IGNvbnN1bWVBbmdsZShhcmdz
LCBIVE1MU3RhbmRhcmRNb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOworICAgIGZsb2F0IGFu
Z2xlSW5EZWdyZWVzOworICAgIGlmICghaHVlVmFsdWUpIHsKKyAgICAgICAgaHVlVmFsdWUgPSBj
b25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgICAgICBpZiAoIWh1ZVZhbHVl
KQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgYW5nbGVJbkRlZ3JlZXMgPSBodWVW
YWx1ZS0+ZG91YmxlVmFsdWUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYW5nbGVJbkRlZ3JlZXMg
PSBodWVWYWx1ZS0+Y29tcHV0ZURlZ3JlZXMoKTsKKworICAgIGFuZ2xlSW5EZWdyZWVzID0gZm1v
ZGYoYW5nbGVJbkRlZ3JlZXMsIDM2MC4wZik7CisgICAgaWYgKGFuZ2xlSW5EZWdyZWVzIDwgMC4w
KQorICAgICAgICBhbmdsZUluRGVncmVlcyArPSAzNjAuMGY7CisKKyAgICBhdXRvIGFscGhhID0g
cGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIHJldHVybiB0b0xhYihMQ0hBPGZsb2F0PiB7IGxpZ2h0bmVzcy0+ZmxvYXRWYWx1ZSgpLCBj
aHJvbWFWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCBhbmdsZUluRGVncmVlcywgKmFscGhhIH0pOworfQor
CitzdGF0aWMgQ29sb3IgcGFyc2VHcmF5UGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1
ZUdyYXkpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihy
YW5nZSk7CisKKyAgICAvLyBVbmxpa2UgbGFiKCkgYW5kIGxjaCgpLCBncmF5KCkgdGFrZXMgYSBu
dW1iZXIsIGJ1dCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVz
LzQ2NDguCisgICAgYXV0byBsaWdodG5lc3MgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFu
Z2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
YXV0byBhbHBoYSA9IHBhcnNlT3B0aW9uYWxBbHBoYShhcmdzKTsKKyAgICBpZiAoIWFscGhhKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICByZXR1cm4gTGFiPGZsb2F0PiB7IGxpZ2h0bmVzcy0+ZmxvYXRWYWx1
ZSgpLCAwLCAwLCAqYWxwaGEgfTsKK30KKwogc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlv
blBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgQVNTRVJUKHJh
bmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVDb2xvcik7CkBAIC04MDUsNiArOTA0
LDkgQEAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvblBhcmFtZXRlcgogICAgIGNhc2Ug
Q1NTVmFsdWVEaXNwbGF5UDM6CiAgICAgICAgIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpEaXNw
bGF5UDM7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNv
bG9yU3BhY2UgPSBDb2xvclNwYWNlOjpMYWI7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtODg4LDYgKzk5MCwxNSBAQCBzdGF0aWMg
Q29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uKENTU1BhcnNlCiAgICAgY2FzZSBDU1NWYWx1ZUhzbGE6
CiAgICAgICAgIGNvbG9yID0gcGFyc2VIU0xQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UsIGNzc1BhcnNl
ck1vZGUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTGFiOgorICAgICAgICBj
b2xvciA9IHBhcnNlTGFiUGFyYW1ldGVycyhjb2xvclJhbmdlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUxjaDoKKyAgICAgICAgY29sb3IgPSBwYXJzZUxDSFBhcmFtZXRlcnMo
Y29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVHcmF5OgorICAg
ICAgICBjb2xvciA9IHBhcnNlR3JheVBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ1NTVmFsdWVDb2xvcjoKICAgICAgICAgY29sb3IgPSBwYXJzZUNvbG9y
RnVuY3Rpb25QYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOwogICAgICAgICBicmVhazsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkocmV2aXNpb24gMjcxMTEwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyAgICAtIDR4IGZsb2F0
ICgwLTEpIHNSR0JBLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291bnRlZCBzdWItb2JqZWN0CiAv
LyAgICAtIDR4IGZsb2F0ICgwLTEpIExpbmVhciBzUkdCQSwgc3RvcmVkIGluIGEgcmVmZXJlbmNl
IGNvdW50ZWQgc3ViLW9iamVjdAogLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBEaXNwbGF5UDMsIHN0
b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKKy8vICAgIC0gNHggZmxvYXQg
KDAtMSkgTGFiLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291bnRlZCBzdWItb2JqZWN0CiAvLwog
Ly8gQWRkaXRpb25hbGx5LCB0aGUgaW5saW5lIDgtYml0IHNSR0JBIGNhbiBoYXZlIGFuIG9wdGlv
bmFsICJzZW1hbnRpYyIgYml0IHNldCBvbiBpdCwKIC8vIHdoaWNoIGluZGljYXRlcyB0aGUgY29s
b3Igb3JpZ2luYXRlZCBmcm9tIGEgQ1NTIHNlbWFudGljIGNvbG9yIG5hbWUuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5j
cHAJKHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yQ29udmVyc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIkNvbG9yQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkNvbG9yTWF0cml4LmgiCi0j
aW5jbHVkZSAiQ29sb3JUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTM0LDYgKzEzNCwxMTkgQEAgWFlaQTxmbG9hdD4gdG9Y
WVpBKGNvbnN0IExpbmVhckRpc3BsYXlQMwogICAgIHJldHVybiBhc1hZWkEobGluZWFyRGlzcGxh
eVAzVG9YWVpNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVu
dHMoY29sb3IpKSk7CiB9CiAKK3N0YXRpYyBYWVpBPGZsb2F0PiBjb252ZXJ0RnJvbUQ1MFdoaXRl
UG9pbnRUb0Q2NVdoaXRlUG9pbnQoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQoreworICAgIC8v
IGh0dHA6Ly93d3cuYnJ1Y2VsaW5kYmxvb20uY29tL2luZGV4Lmh0bWw/RXFuX0Nocm9tQWRhcHQu
aHRtbAorICAgIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBENTBUb0Q2NU1hdHJpeCB7Cisg
ICAgICAgICAwLjk1NTU3NjZmLCAtMC4wMjMwMzkzZiwgMC4wNjMxNjM2ZiwKKyAgICAgICAgLTAu
MDI4Mjg5NWYsICAxLjAwOTk0MTZmLCAwLjAyMTAwNzdmLAorICAgICAgICAgMC4wMTIyOTgyZiwg
LTAuMDIwNDgzMGYsIDEuMzI5OTA5OGYKKyAgICB9OworICAgIHJldHVybiBhc1hZWkEoRDUwVG9E
NjVNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29s
b3IpKSk7Cit9CisKK3N0YXRpYyBYWVpBPGZsb2F0PiBjb252ZXJ0RnJvbUQ2NVdoaXRlUG9pbnRU
b0Q1MFdoaXRlUG9pbnQoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQoreworICAgIC8vIGh0dHA6
Ly93d3cuYnJ1Y2VsaW5kYmxvb20uY29tL2luZGV4Lmh0bWw/RXFuX0Nocm9tQWRhcHQuaHRtbAor
ICAgIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBENjVUb0Q1ME1hdHJpeCB7CisgICAgICAg
ICAxLjA0NzgxMTJmLCAwLjAyMjg4NjZmLCAtMC4wNTAxMjcwZiwKKyAgICAgICAgIDAuMDI5NTQy
NGYsIDAuOTkwNDg0NGYsIC0wLjAxNzA0OTFmLAorICAgICAgICAtMC4wMDkyMzQ1ZiwgMC4wMTUw
NDM2ZiwgIDAuNzUyMTMxNmYKKyAgICB9OworICAgIHJldHVybiBhc1hZWkEoRDY1VG9ENTBNYXRy
aXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7
Cit9CisKK3N0YXRpYyBjb25zdGV4cHIgZmxvYXQgTEFCZSA9IDIxNi4wZiAvIDI0Mzg5LjBmOwor
c3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKK3N0YXRpYyBj
b25zdGV4cHIgZmxvYXQgRDUwV2hpdGVWYWx1ZXNbXSA9IHsgMC45NjQyMmYsIDEuMGYsIDAuODI1
MjFmIH07CisKK1hZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sK
KyAgICBmbG9hdCBmMSA9IChjb2xvci5saWdodG5lc3MgKyAxNi4wZikgLyAxMTYuMGY7CisgICAg
ZmxvYXQgZjAgPSBmMSArIChjb2xvci5hIC8gNTAwLjBmKTsKKyAgICBmbG9hdCBmMiA9IGYxIC0g
KGNvbG9yLmIgLyAyMDAuMGYpOworCisgICAgYXV0byBjb21wdXRlWEFuZFogPSBbXShmbG9hdCB0
KSB7CisgICAgICAgIGZsb2F0IHRDdWJlZCA9IHQgKiB0ICogdDsKKyAgICAgICAgaWYgKHRDdWJl
ZCA+IExBQmUpCisgICAgICAgICAgICByZXR1cm4gdEN1YmVkOworCisgICAgICAgIHJldHVybiAo
MTE2LjBmICogdCAtIDE2LjBmKSAvIExBQms7CisgICAgfTsKKworICAgIGF1dG8gY29tcHV0ZVkg
PSBbXShmbG9hdCB0KSB7CisgICAgICAgIGlmICh0ID4gKExBQmsgKiBMQUJlKSkgeworICAgICAg
ICAgICAgZmxvYXQgdmFsdWUgPSAodCArIDE2LjApIC8gMTE2LjA7CisgICAgICAgICAgICByZXR1
cm4gdmFsdWUgKiB2YWx1ZSAqIHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHQg
LyBMQUJrOworICAgIH07CisKKyAgICBmbG9hdCB4ID0gRDUwV2hpdGVWYWx1ZXNbMF0gKiBjb21w
dXRlWEFuZFooZjApOworICAgIGZsb2F0IHkgPSBENTBXaGl0ZVZhbHVlc1sxXSAqIGNvbXB1dGVZ
KGNvbG9yLmxpZ2h0bmVzcyk7CisgICAgZmxvYXQgeiA9IEQ1MFdoaXRlVmFsdWVzWzJdICogY29t
cHV0ZVhBbmRaKGYyKTsKKworICAgIFhZWkE8ZmxvYXQ+IHJlc3VsdCB7IHgsIHksIHosIGNvbG9y
LmFscGhhIH07CisKKyAgICAvLyBXZSBleHBlY3QgWFlaQSBjb2xvcnMgdG8gYmUgdXNpbmcgdGhl
IEQ2NSB3aGl0ZSBwb2ludCwgdW5saWtlIExhYiwgd2hpY2ggdXNlcyBhCisgICAgLy8gRDUwIHdo
aXRlIHBvaW50LCBzbyBhcyBhIGZpbmFsIHN0ZXAsIHVzZSB0aGUgQnJhZGZvcmQgdHJhbnNmb3Jt
IHRvIGNvbnZlcnQgdGhlCisgICAgLy8gcmVzdWx0aW5nIFhZWkEgY29sb3IgdG8gYSBENjUgd2hp
dGUgcG9pbnQuCisgICAgcmV0dXJuIGNvbnZlcnRGcm9tRDUwV2hpdGVQb2ludFRvRDY1V2hpdGVQ
b2ludChyZXN1bHQpOworfQorCitMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IFhZWkE8ZmxvYXQ+JiBj
b2xvcikKK3sKKyAgICAvLyBXZSBleHBlY3QgWFlaQSBjb2xvcnMgdG8gYmUgdXNpbmcgdGhlIEQ2
NSB3aGl0ZSBwb2ludCwgdW5saWtlIExhYiwgd2hpY2ggdXNlcyBhCisgICAgLy8gRDUwIHdoaXRl
IHBvaW50LCBzbyBhcyBhIGZpcnN0IHN0ZXAsIHVzZSB0aGUgQnJhZGZvcmQgdHJhbnNmb3JtIHRv
IGNvbnZlcnQgdGhlCisgICAgLy8gaW5jb21pbmcgWFlaQSBjb2xvciB0byBENTAgd2hpdGUgcG9p
bnQuCisgICAgYXV0byBjb2xvcldpdGhENTBXaGl0ZVBvaW50ID0gY29udmVydEZyb21ENjVXaGl0
ZVBvaW50VG9ENTBXaGl0ZVBvaW50KGNvbG9yKTsKKworICAgIGZsb2F0IHggPSBjb2xvcldpdGhE
NTBXaGl0ZVBvaW50LnggLyBENTBXaGl0ZVZhbHVlc1swXTsKKyAgICBmbG9hdCB5ID0gY29sb3JX
aXRoRDUwV2hpdGVQb2ludC55IC8gRDUwV2hpdGVWYWx1ZXNbMV07CisgICAgZmxvYXQgeiA9IGNv
bG9yV2l0aEQ1MFdoaXRlUG9pbnQueiAvIEQ1MFdoaXRlVmFsdWVzWzJdOworCisgICAgYXV0byBm
VHJhbnNmb3JtID0gW10oZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlID4gTEFC
ZSA/IHN0ZDo6Y2JydCh2YWx1ZSkgOiAoTEFCayAqIHZhbHVlICsgMTYuMGYpIC8gMTE2LjBmOwor
ICAgIH07CisKKyAgICBmbG9hdCBmMCA9IGZUcmFuc2Zvcm0oeCk7CisgICAgZmxvYXQgZjEgPSBm
VHJhbnNmb3JtKHkpOworICAgIGZsb2F0IGYyID0gZlRyYW5zZm9ybSh6KTsKKworICAgIGZsb2F0
IGxpZ2h0bmVzcyA9ICgxMTYuMGYgKiBmMSkgLSAxNi4wZjsKKyAgICBmbG9hdCBhID0gNTAwLjBm
ICogKGYwIC0gZjEpOworICAgIGZsb2F0IGIgPSAyMDAuMGYgKiAoZjEgLSBmMik7CisKKyAgICBy
ZXR1cm4geyBsaWdodG5lc3MsIGEsIGIsIGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQuYWxwaGEgfTsK
K30KKworTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAg
IC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGFiLXRvLWxjaAorICAgIGZs
b2F0IGh1ZSA9IHJhZDJkZWcoYXRhbjIoY29sb3IuYiwgY29sb3IuYSkpOworCisgICAgcmV0dXJu
IHsKKyAgICAgICAgY29sb3IubGlnaHRuZXNzLAorICAgICAgICBzdGQ6Omh5cG90KGNvbG9yLmEs
IGNvbG9yLmIpLAorICAgICAgICBodWUgPj0gMCA/IGh1ZSA6IGh1ZSArIDM2MCwKKyAgICAgICAg
Y29sb3IuYWxwaGEKKyAgICB9OworfQorCitMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IExDSEE8Zmxv
YXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQv
I2xjaC10by1sYWIKKyAgICBmbG9hdCBodWVBbmdsZVJhZGlhbnMgPSBkZWcycmFkKGNvbG9yLmh1
ZSk7CisKKyAgICByZXR1cm4geworICAgICAgICBjb2xvci5saWdodG5lc3MsCisgICAgICAgIGNv
bG9yLmNocm9tYSAqIHN0ZDo6Y29zKGh1ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGNvbG9yLmNo
cm9tYSAqIHN0ZDo6c2luKGh1ZUFuZ2xlUmFkaWFucyksCisgICAgICAgIGNvbG9yLmFscGhhCisg
ICAgfTsKK30KKwogSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3Ip
CiB7CiAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IU0xfY29sb3Jfc3BhY2Uu
CkBAIC0yNjMsNiArMzc2LDE2IEBAIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNwbGF5UDMoY29uc3Qg
WFlaQTwKICAgICByZXR1cm4gdG9EaXNwbGF5UDModG9MaW5lYXJEaXNwbGF5UDMoY29sb3IpKTsK
IH0KIAorWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExDSEE8ZmxvYXQ+JiBjb2xvcikKK3sKKyAg
ICByZXR1cm4gdG9YWVpBKHRvTGFiKGNvbG9yKSk7Cit9CisKK0xDSEE8ZmxvYXQ+IHRvTENIQShj
b25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgcmV0dXJuIHRvTENIQSh0b0xhYihjb2xv
cikpOworfQorCiBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgSFNMQTxmbG9hdD4mIGNvbG9yKQog
ewogICAgIHJldHVybiB0b1hZWkEodG9TUkdCQShjb2xvcikpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHJldmlzaW9u
IDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSwyMCBAQCBXRUJDT1JFX0VYUE9SVCBM
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IHRvCiBXRUJDT1JFX0VYUE9SVCBEaXNwbGF5UDM8ZmxvYXQ+
IHRvRGlzcGxheVAzKGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mKTsKIAogCisvLyBMYWIK
K1dFQkNPUkVfRVhQT1JUIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMYWI8ZmxvYXQ+Jik7CitX
RUJDT1JFX0VYUE9SVCBMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IFhZWkE8ZmxvYXQ+Jik7CisvLyBB
ZGRpdGlvbnMKK1dFQkNPUkVfRVhQT1JUIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBMYWI8Zmxv
YXQ+Jik7CisKKworLy8gTENIQQorV0VCQ09SRV9FWFBPUlQgWFlaQTxmbG9hdD4gdG9YWVpBKGNv
bnN0IExDSEE8ZmxvYXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBMQ0hBPGZsb2F0PiB0b0xDSEEoY29u
c3QgWFlaQTxmbG9hdD4mKTsKKy8vIEFkZGl0aW9ucworV0VCQ09SRV9FWFBPUlQgTGFiPGZsb2F0
PiB0b0xhYihjb25zdCBMQ0hBPGZsb2F0PiYpOworCisKIC8vIEhTTEEKIFdFQkNPUkVfRVhQT1JU
IFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBIU0xBPGZsb2F0PiYpOwogV0VCQ09SRV9FWFBPUlQg
SFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFhZWkE8ZmxvYXQ+Jik7CkBAIC05MSw2ICsxMDUsOCBA
QCBjb25zdGV4cHIgU1JHQkE8ZmxvYXQ+IHRvU1JHQkEoY29uc3QgU1JHCiBjb25zdGV4cHIgTGlu
ZWFyU1JHQkE8ZmxvYXQ+IHRvTGluZWFyU1JHQkEoY29uc3QgTGluZWFyU1JHQkE8ZmxvYXQ+JiBj
b2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBEaXNwbGF5UDM8ZmxvYXQ+IHRvRGlz
cGxheVAzKGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQog
Y29uc3RleHByIExpbmVhckRpc3BsYXlQMzxmbG9hdD4gdG9MaW5lYXJEaXNwbGF5UDMoY29uc3Qg
TGluZWFyRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9Citjb25zdGV4
cHIgTGFiPGZsb2F0PiB0b0xhYihjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29s
b3I7IH0KK2NvbnN0ZXhwciBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgTENIQTxmbG9hdD4mIGNv
bG9yKSB7IHJldHVybiBjb2xvcjsgfQogY29uc3RleHByIEhTTEE8ZmxvYXQ+IHRvSFNMQShjb25z
dCBIU0xBPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgQ01ZS0E8
ZmxvYXQ+IHRvQ01ZS0EoY29uc3QgQ01ZS0E8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7
IH0KIGNvbnN0ZXhwciBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9y
KSB7IHJldHVybiBjb2xvcjsgfQpAQCAtMTIxLDYgKzEzNywxNiBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBMaW5lYXJEaXNwbGF5UDM8ZmxvCiAgICAgcmV0dXJuIHRvTGluZWFyRGlzcGxheVAzKHRv
WFlaQShjb2xvcikpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBMYWI8ZmxvYXQ+IHRvTGFi
KGNvbnN0IFQmIGNvbG9yKQoreworICAgIHJldHVybiB0b0xhYih0b1hZWkEoY29sb3IpKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4gTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IFQmIGNvbG9y
KQoreworICAgIHJldHVybiB0b0xDSEEodG9YWVpBKGNvbG9yKSk7Cit9CisKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IEhTTEE8ZmxvYXQ+IHRvSFNMQShjb25zdCBUJiBjb2xvcikKIHsKICAgICByZXR1
cm4gdG9IU0xBKHRvWFlaQShjb2xvcikpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCShyZXZpc2lvbiAy
NzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6
YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw4IEBAIHN0YXRpYyBBU0NJSUxp
dGVyYWwgc2VyaWFsaXphdGlvbihDb2xvclMKICAgICAgICAgcmV0dXJuICJsaW5lYXItc3JnYiJf
czsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJuICJkaXNw
bGF5LXAzIl9zOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gImxh
YiJfczsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE2MSw2ICsxNjMs
MjcgQEAgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KAogICAgIHJldHVy
biBzZXJpYWxpemF0aW9uKGNvbG9yKTsKIH0KIAorLy8gTGFiPGZsb2F0PiBvdmVybG9hZHMKKwor
U3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7Cisg
ICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNzZXJpYWxpemluZy1sYWIt
bGNoCisKKyAgICBhdXRvIFtjMSwgYzIsIGMzLCBhbHBoYV0gPSBjb2xvcjsKKyAgICBpZiAoV1RG
OjphcmVFc3NlbnRpYWxseUVxdWFsKGFscGhhLCAxLjBmKSkKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoImxhYigiLCBjMSwgIiUgIiwgYzIsICcgJywgYzMsICcpJyk7CisgICAgcmV0dXJuIG1h
a2VTdHJpbmcoImxhYigiLCBjMSwgIiUgIiwgYzIsICcgJywgYzMsICIgLyAiLCBhbHBoYSwgJykn
KTsKK30KKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IExhYjxmbG9hdD4mIGNv
bG9yKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbG9yKTsKK30KKworU3Ry
aW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0IExhYjxmbG9hdD4mIGNv
bG9yKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbG9yKTsKK30KIAogLy8g
Q29sb3Igb3ZlcmxvYWRzCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yU2VyaWFsaXphdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oCShyZXZpc2lvbiAyNzExMTApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBD
b2xvcjsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBEaXNwbGF5UDM7Cit0ZW1wbGF0ZTx0
eXBlbmFtZT4gc3RydWN0IExhYjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTGluZWFyU1JH
QkE7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IFNSR0JBOwogCkBAIC01NSw2ICs1NiwxMCBA
QCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckNTCiBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYpOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNv
bnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKIAorV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6
YXRpb25Gb3JDU1MoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNl
cmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IExhYjxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIFN0
cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBMYWI8ZmxvYXQ+Jik7
CisKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IENvbG9y
Jik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgQ29s
b3ImKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFz
VGV4dChjb25zdCBDb2xvciYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAJKHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw2ICs0Miw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEMKICAg
ICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgdHMgPDwgIkRpc3BsYXlQMyI7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICB0cyA8
PCAiTCphKmIiOworICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAkocmV2
aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JT
cGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIFNSR0IsCiAgICAgTGlu
ZWFyUkdCLAotICAgIERpc3BsYXlQMworICAgIERpc3BsYXlQMywKKyAgICBMYWIKIH07CiAKIFdF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBDb2xvclNwYWNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclR5cGVzLmgJKHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDYgKzI0Nyw5
MyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyCiB9CiAKIAordGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExhYiA6IENvbG9yV2l0aEFscGhhSGVscGVyPExhYjxU
Pj4geworICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOworICAgIHN0YXRpYyBjb25zdGV4cHIg
YXV0byBjb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6TGFiOworCisgICAgY29uc3RleHByIExhYihU
IGxpZ2h0bmVzcywgVCBhLCBUIGIsIFQgYWxwaGEgPSBDb21wb25lbnRUcmFpdHM8VD46Om1heFZh
bHVlKQorICAgICAgICA6IGxpZ2h0bmVzcyB7IGxpZ2h0bmVzcyB9CisgICAgICAgICwgYSB7IGEg
fQorICAgICAgICAsIGIgeyBiIH0KKyAgICAgICAgLCBhbHBoYSB7IGFscGhhIH0KKyAgICB7Cisg
ICAgfQorCisgICAgY29uc3RleHByIExhYigpCisgICAgICAgIDogTGFiIHsgQ29tcG9uZW50VHJh
aXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50
VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSB9CisgICAg
eworICAgIH0KKworICAgIFQgbGlnaHRuZXNzOworICAgIFQgYTsKKyAgICBUIGI7CisgICAgVCBh
bHBoYTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNvbXBvbmVu
dHM8VD4gYXNDb2xvckNvbXBvbmVudHMoY29uc3QgTGFiPFQ+JiBjKQoreworICAgIHJldHVybiB7
IGMubGlnaHRuZXNzLCBjLmEsIGMuYiwgYy5hbHBoYSB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjb25zdGV4cHIgTGFiPFQ+IGFzTGFiKGNvbnN0IENvbG9yQ29tcG9uZW50czxUPiYgYykK
K3sKKyAgICByZXR1cm4geyBjWzBdLCBjWzFdLCBjWzJdLCBjWzNdIH07Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgTGFiPFQ+JiBhLCBj
b25zdCBMYWI8VD4mIGIpCit7CisgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGEpID09IGFz
Q29sb3JDb21wb25lbnRzKGIpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IExhYjxUPiYgYSwgY29uc3QgTGFiPFQ+JiBiKQoreworICAg
IHJldHVybiAhKGEgPT0gYik7Cit9CisKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExD
SEEgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxMQ0hBPFQ+PiB7CisgICAgdXNpbmcgQ29tcG9uZW50
VHlwZSA9IFQ7CisKKyAgICBjb25zdGV4cHIgTENIQShUIGxpZ2h0bmVzcywgVCBjaHJvbWEsIFQg
aHVlLCBUIGFscGhhID0gQ29tcG9uZW50VHJhaXRzPFQ+OjptYXhWYWx1ZSkKKyAgICAgICAgOiBs
aWdodG5lc3MgeyBsaWdodG5lc3MgfQorICAgICAgICAsIGNocm9tYSB7IGNocm9tYSB9CisgICAg
ICAgICwgaHVlIHsgaHVlIH0KKyAgICAgICAgLCBhbHBoYSB7IGFscGhhIH0KKyAgICB7CisgICAg
fQorCisgICAgY29uc3RleHByIExDSEEoKQorICAgICAgICA6IExDSEEgeyBDb21wb25lbnRUcmFp
dHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRU
cmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlIH0KKyAgICB7
CisgICAgfQorCisgICAgVCBsaWdodG5lc3M7CisgICAgVCBjaHJvbWE7CisgICAgVCBodWU7Cisg
ICAgVCBhbHBoYTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNv
bXBvbmVudHM8VD4gYXNDb2xvckNvbXBvbmVudHMoY29uc3QgTENIQTxUPiYgYykKK3sKKyAgICBy
ZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5jaHJvbWEsIGMuaHVlLCBjLmFscGhhIH07Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBMQ0hBPFQ+IGFzTENIQShjb25zdCBDb2xvckNv
bXBvbmVudHM8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgY1swXSwgY1sxXSwgY1syXSwgY1szXSB9
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IExDSEE8VD4mIGEsIGNvbnN0IExDSEE8VD4mIGIpCit7CisgICAgcmV0dXJuIGFzQ29sb3JD
b21wb25lbnRzKGEpID09IGFzQ29sb3JDb21wb25lbnRzKGIpOworfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExDSEE8VD4mIGEsIGNvbnN0
IExDSEE8VD4mIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKworCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgSFNMQSA6IENvbG9yV2l0aEFscGhhSGVscGVyPEhTTEE8VD4+IHsK
ICAgICB1c2luZyBDb21wb25lbnRUeXBlID0gVDsKIApAQCAtMzc5LDYgKzQ2Niw4IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEZ1bmN0b3I+IGMKICAgICAgICAgcmV0dXJuIHN0ZDo6
aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNMaW5lYXJTUkdCQShjb21w
b25lbnRzKSk7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHJldHVy
biBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIGFzRGlzcGxheVAz
KGNvbXBvbmVudHMpKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgcmV0dXJu
IHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNMYWIoY29tcG9u
ZW50cykpOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuY3Bw
CShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvclNwYWNlQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4MiwyMCBAQCBDR0Nv
bG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpCiAgICAgcmV0dXJuIGRpc3BsYXlQ
M0NvbG9yU3BhY2U7CiB9CiAKK0NHQ29sb3JTcGFjZVJlZiBsYWJDb2xvclNwYWNlUmVmKCkKK3sK
KyAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VSZWY7CisgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBb
XSB7CisjaWYgSEFWRShMQUJfU1VQUE9SVF9JTl9DT1JFX0dSQVBISUNTKQorICAgICAgICBsYWJD
b2xvclNwYWNlUmVmID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZUdl
bmVyaWNMYWIpOworI2Vsc2UKKyAgICAgICAgbGFiQ29sb3JTcGFjZVJlZiA9IHNSR0JDb2xvclNw
YWNlUmVmKCk7CisjZW5kaWYKKyAgICB9KTsKKyAgICByZXR1cm4gbGFiQ29sb3JTcGFjZVJlZjsK
K30KKwogQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKQogewogICAg
IHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5o
CShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvclNwYWNlQ0cuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgc1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNw
YWNlUmVmKCk7CiBXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JT
cGFjZVJlZigpOworV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VS
ZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNw
YWNlUmVmKCk7CiAKIHN0YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZENHQ29sb3JT
cGFjZShDb2xvclNwYWNlIGNvbG9yU3BhY2UpCkBAIC00NSw2ICs0Niw4IEBAIHN0YXRpYyBpbmxp
bmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZENHQ28KICAgICAgICAgcmV0dXJuIGxpbmVhclJHQkNv
bG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAg
cmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6Okxh
YjoKKyAgICAgICAgcmV0dXJuIGxhYkNvbG9yU3BhY2VSZWYoKTsKICAgICB9CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHNSR0JDb2xvclNwYWNlUmVmKCk7CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wMS0wMyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCksIGdyYXkoKSBhbmQgY29sb3Io
bGFiIC4uLikgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUGFyc2lu
ZyB0ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKworICAgICAgICBbRklYTUVdIFJlbmRl
cmluZyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xv
cnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1j
b2xvcnMuaHRtbDogQWRkZWQuCisKIDIwMjAtMTItMjYgIEFsZXhleSBTaHZheWthICA8c2h2YWlr
YWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExdIFJlbW92ZSBbQ3VzdG9tVG9TdHJp
bmdOYW1lXSBhbmQgTG9jYXRpb24tc3BlY2lmaWMgZXh0ZW5kZWQgYXR0cmlidXRlcwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFi
LWNvbG9ycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorVGVz
dCB0aGUgcGFyc2luZyBvZiBsYWIsIGxjaCBhbmQgZ3JheSBjb2xvcnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitsYWIoKQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxKSIpIGlzICJsYWIoMCUgMCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8g
MC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvMC41KSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC81
MCUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDQwMCUgMCAxMC81MCUpIikgaXMgImxhYig0MDAlIDAgMTAgLyAw
LjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTE2
MCAxNjApIikgaXMgImxhYig1MCUgLTE2MCAxNjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTIwMCAyMDApIikgaXMgImxhYig1MCUgLTIwMCAyMDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAt
MTAlKSIpIGlzICJsYWIoMCUgMCAwIC8gMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDExMCUpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAzMDAlKSIpIGlz
ICJsYWIoMCUgMCAwKSIKKworbGNoKCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMCUgMCAwZGVnKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMSkiKSBpcyAibGFiKDAl
IDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAg
MGRlZyAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwMCUgMjMwIDBkZWcgLyAwLjUpIikgaXMgImxhYigx
MDAlIDIzMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMjAlIDUwIDIwZGVnLzAuNSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYg
LyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUg
NTAgMjBkZWcvNTAlKSIpIGlzICJsYWIoMjAlIDQ2Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAv
IC0xMCUpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiAvIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIp
IGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMS4yOHJhZCkiKSBpcyAibGFiKDEwJSA1Ljcz
NDMwMjUgMTkuMTYwMzE2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAlIDIwIDM4MGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBk
ZWcpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCA3NDBkZWcpIikgaXMgImxhYigxMCUg
MTguNzkzODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDEwJSAyMCAtNzAwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQw
MjYpIgorCitncmF5KCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJn
cmF5KDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTAgLyAxMCUpIikgaXMgImxhYigxMCUgMCAwIC8gMC4xKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEyMCAvIDEwJSkiKSBpcyAi
bGFiKDEyMCUgMCAwIC8gMC4xKSIKKworVGVzdCBpbnZhbGlkIHZhbHVlcworUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUg
MCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCAwIDEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIikgaXMgInJn
YmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGFiKDAlIDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAg
MGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitG
QUlMIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSki
KSBzaG91bGQgYmUgcmdiYSgwLCAwLCAwLCAwKS4gV2FzIGxhYigwJSAwIDAgLyAwLjUpLgorRkFJ
TCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTApIikgc2hv
dWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMjAlIDkuODQ4MDc4IDEuNzM2NDgxOCku
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRl
ZyAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAl
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5
KDEwIC8gMTAgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw5NyBAQAorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLiIp
OworCisgICAgZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgewor
ICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFBy
b3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0
Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAgIHJldHVybiBjb21wdXRlZFZh
bHVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3Bl
cnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAg
ICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgICAgICBleHBlY3RlZCA9ICIiOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICci
LCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdsYWIo
KScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIs
ICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSki
LCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMjAlIDAgMTAvNTAlKSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIsICJs
YWIoNDAwJSAwIDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNTAlIC0xNjAgMTYwKSIsICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAl
IC0yMDAgMjAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MCUgMCAwIC8gLTEwJSkiLCAibGFiKDAlIDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSki
LCAibGFiKDAlIDAgMCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnbGNoKCknKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiLCAi
bGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDAlIDAgMGRlZyAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAw
ZGVnIC8gMC41KSIsICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIiwgImxhYigyMCUgNDYu
OTg0NjMgMTcuMTAxMDA2IC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzUwJSkiLCAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEw
MDYgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgx
MCUgMjAgMjBkZWcgLyAtMTAlKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVn
IC8gMTEwJSkiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUg
NS43MzQzMDI1IDE5LjE2MDMxNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDEwJSAyMCAzODBkZWcpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQw
ZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5
Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgxMCUgMjAgLTcwMGRlZykiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOwor
CisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdncmF5KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIsICJsYWIoMTAlIDAg
MCAvIDAuMSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgx
MjAgLyAxMCUpIiwgImxhYigxMjAlIDAgMCAvIDAuMSkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAg
ICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHZhbHVlcycpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCAwIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDApIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAg
MCAxKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAl
IDAlIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDQwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIiwg
InJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDAlIDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVz
cyB6ZXJvIGFuZ2xlLiBDdXJyZW50bHkgZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMCkiLCAicmdiYSgw
LCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJr
aXQub3JnL2IvMjA1NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgyMCUgMTAgMTBkZWcgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiLCAicmdi
YSgwLCAwLCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImdyYXkoMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiLCAicmdiYSgw
LCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5
KDEwIC8gMTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworPC9zY3JpcHQ+CisgICAgCis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417011</attachid>
            <date>2021-01-05 08:57:49 -0800</date>
            <delta_ts>2021-01-05 11:39:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210105085748.patch</filename>
            <type>text/plain</type>
            <size>37840</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTA1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBj
b2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgyNjQwNzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisgICAgICAgIEFkZCBIQVZFX0xBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJ
Q1Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIENvcmVHcmFwaGljcworICAgICAgICBvbiB0aGUg
c3lzdG1lIGhhcyBwcm9wZXIgc3VwcG9ydCBmb3IgY29udmVyc2lvbnMgdG8vZnJvbSB0aGUgTGFi
IGNvbG9yIHNwYWNlCisgICAgICAgIGFuZCBoYXMgYSByZXNvbHV0aW9uIGZvciByZGFyOi8vcHJv
YmxlbS81ODM2MDQ1NC4KKwogMjAyMC0xMi0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIFdURjo6TWFjaFNl
bWFwaG9yZSB0byB3YWl0IHdpdGggYSB0aW1lb3V0IGR1cmF0aW9uCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTgxMywzICs4MTMsMTIgQEAKICAgICB8fCAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0MDQwMCkKICNkZWZp
bmUgSEFWRV9BVkNPTlRFTlRLRVlSRVFVRVNUX1BFTkRJTkdfUFJPVEVDVElPTl9TVEFUVVMgMQog
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkgXAorICAgIHx8ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShN
QUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAw
MCkgXAorICAgIHx8IChQTEFURk9STShXQVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDcwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQorLy8gUHJpb3IgdG8gdGhlc2UgcmVs
ZWFzZXMsIENvcmVHcmFwaGljcyBjb3VsZCBub3QgY29ycmVjdGx5IGNvbnZlcnQgZnJvbSBMYWIg
dG8gb3RoZXIgY29sb3Igc3BhY2VzCisvLyBkdWUgdG8gcmRhcjovL3Byb2JsZW0vNTgzNjA0NTQu
CisjZGVmaW5lIEhBVkVfTEFCX1NVUFBPUlRfSU5fQ09SRV9HUkFQSElDUyAxCisjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTEyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAxLTA1ICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3Jh
eSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgImxhYiIgYW5kICJsY2giIGtl
eXdvcmRzLgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZU9w
dGlvbmFsQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
OjpwYXJzZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpwYXJzZUxDSFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUdyYXlQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlQ29s
b3JGdW5jdGlvbik6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nICJsYWIoLi4uKSIs
ICJsY2goLi4uKSIsICJncmF5KC4uLikiCisgICAgICAgIGFuZCAiY29sb3IobGFiIC4uLikiLCBh
bGwgb2Ygd2hpY2ggY3JlYXRlIExhYjxmbG9hdD4gY29sb3JzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIEFkZCBvdmVybG9hZCBvZiB0aGUgQ29sb3IgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBh
IExhYjxmbG9hdD4gbWF0Y2hpbmcgb3RoZXIKKyAgICAgICAgQ29sb3JTcGFjZSB0eXBlcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0RnJvbUQ1MFdoaXRlUG9pbnRUb0Q2NVdoaXRlUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydEZyb21ENjVXaGl0ZVBvaW50VG9ENTBXaGl0ZVBvaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnRvWFlaQSk6CisgICAgICAgIChXZWJDb3JlOjp0b0xhYik6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0xDSEEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yQ29udmVyc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9MQ0hBKToKKyAgICAgICAgQWRkIGNvbnZlcnNpb25zIHRvL2Zyb20gTGFiIHRvIEQ2
NSB3aGl0ZSBwb2ludCBYWVpBICh0aGUgd2hpdGUgcG9pbnQgd2UgZXhwZWN0IFhZWkEgdG8gYmUg
aW4pLCBhbmQgY29udmVyc2lvbgorICAgICAgICBmcm9tIExjaCB0by9mcm9tIExhYi4gCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemF0
aW9uRm9yQ1NTKToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb25Gb3JIVE1MKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAgQWRk
IHNlcmlhbGl6YXRpb24gZm9yIExhYiBjb2xvcnMuIFdlIGN1cnJlbnRseSBhbHdheXMgc2VyaWFs
aXplIHVzaW5nIHRoZSBsYWIoKQorICAgICAgICBub3RhdGlvbiwgd2hpY2ggYXBwZWFycyB0byBi
ZSBjb3JyZWN0IGZvciBhdCBsZWFzdCBjb2xvcnMgZGVjbGFyZWQgdXNpbmcgbGFiKCksCisgICAg
ICAgIGxjaCgpIGFuZCBncmF5KCkuIFVuY2xlYXIgaWYgaXQgaXMgY29ycmVjdCBmb3IgY29sb3Jz
IGRlY2xhcmVkIHdpdGggY29sb3IobGFiIC4uLikuCisgICAgICAgIE9wZW5lZCBodHRwczovL2dp
dGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNTgyNSB0byB0cmFjayBnZXR0aW5nIGEg
cmVzb2x1dGlvbgorICAgICAgICBmb3IgImNvbG9yKGxhYiAuLi4pIi4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0
b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oOgorICAgICAg
ICBBZGQgTGFiIGFzIGEgQ29sb3JTcGFjZSBhbmQgdGV4dCBzdHJlYW0gZHVtcGluZyBmb3IgaXQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYWI6OkxhYik6CisgICAgICAgIChXZWJDb3JlOjphc0NvbG9yQ29tcG9uZW50cyk6
CisgICAgICAgIChXZWJDb3JlOjphc0xhYik6CisgICAgICAgIEFkZCBMYWIgY29sb3IgdHlwZS4K
KworICAgICAgICAoV2ViQ29yZTo6TENIQTo6TENIQSk6CisgICAgICAgIChXZWJDb3JlOjphc0xD
SEEpOgorICAgICAgICBBZGQgTENIQSBjb2xvciB0eXBlLgorICAgICAgICAKKyAgICAgICAgKFdl
YkNvcmU6OmNhbGxXaXRoQ29sb3JUeXBlKToKKyAgICAgICAgQWRkIExhYiB0byBjYWxsV2l0aENv
bG9yVHlwZSBzaW5jZSBpdCBpcyBub3cgYSB2YWxpZCBDb2xvclNwYWNlLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxhYkNvbG9yU3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9y
U3BhY2VDRy5oOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkQ0dDb2xvclNwYWNlKToKKyAgICAg
ICAgQWRkIGFjY2Vzc29yIGZvciBnZW5lcmljIGxhYiAod2hpY2ggaXMgdGhlIEQ1MCB3aGl0ZSBw
b2ludCBjc3MgZXhwZWN0cykgQ0dDb2xvclNwYWNlUmVmCisgICAgICAgIGJ1dCBvbmx5IGlmIHdl
IGhhdmUgYSBDb3JlR3JhcGhpY3MgdGhhdCBzdXBwb3J0cyBpdCBwcm9wZXJseSwgd2hpY2ggaXMg
bWFjT1MgMTEgZXJhIG9yIG5ld2VyLgorCiAyMDIxLTAxLTAzICBSb2IgQnVpcyAgPHJidWlzQGln
YWxpYS5jb20+CiAKICAgICAgICAgU2hhcmUgbWV0YSByZWZyZXNoIGxvZ2ljCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNpb24gMjcxMTEwKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEy
NjQsNiArMTI2NCw5IEBAIHJnYgogcmdiYQogaHNsCiBoc2xhCitsYWIKK2xjaAorLy8gZ3JheQog
Ly9jb2xvcgogCiAvLyB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHJldmlzaW9uIDI3MTEx
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzkyLDYgKzc5MiwxMDUgQEAgc3RhdGljIENvbG9yIHBh
cnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZQogICAgIHJldHVybiBjb252ZXJ0VG9Db21wb25lbnRC
eXRlcyh0b1NSR0JBKEhTTEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlb
MF0pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0
Pihjb2xvckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSB9KSk7CiB9CiAKK3N0
YXRpYyBPcHRpb25hbDxmbG9hdD4gcGFyc2VPcHRpb25hbEFscGhhKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQoreworICAgIGlmICghY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShy
YW5nZSkpCisgICAgICAgIHJldHVybiAxLjBmOworCisgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9
IGNvbnN1bWVQZXJjZW50KHJhbmdlLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoYWxwaGFQYXJh
bWV0ZXIpCisgICAgICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91
YmxlVmFsdWUoKSAvIDEwMC4wLCAwLjAsIDEuMCk7CisKKyAgICBhbHBoYVBhcmFtZXRlciA9IGNv
bnN1bWVOdW1iZXIocmFuZ2UsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYWxwaGFQYXJhbWV0
ZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIGNsYW1wVG88Zmxv
YXQ+KGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpLCAwLjAsIDEuMCk7Cit9CisKK3N0YXRp
YyBDb2xvciBwYXJzZUxhYlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7
CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVMYWIpOwor
ICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisK
KyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBh
VmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYVZh
bHVlKQorICAgICAgICByZXR1cm4geyB9OworICAgIGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJl
cihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWJWYWx1ZSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAg
aWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgp
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIExhYjxmbG9hdD4geyBsaWdodG5l
c3MtPmZsb2F0VmFsdWUoKSwgYVZhbHVlLT5mbG9hdFZhbHVlKCksIGJWYWx1ZS0+ZmxvYXRWYWx1
ZSgpLCAqYWxwaGEgfTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0
aW9uSWQoKSA9PSBDU1NWYWx1ZUxjaCk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0g
Y29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBl
cmNlbnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAg
IHJldHVybiBDb2xvcigpOworCisgICAgYXV0byBjaHJvbWFWYWx1ZSA9IGNvbnN1bWVOdW1iZXIo
YXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFjaHJvbWFWYWx1ZSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+IChkaXNhbGxvd2lu
ZyB1bml0bGVzcyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3Ms
IEhUTUxTdGFuZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgZmxvYXQgYW5n
bGVJbkRlZ3JlZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBodWVWYWx1ZSA9IGNv
bnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmICghaHVlVmFsdWUp
CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZh
bHVlLT5kb3VibGVWYWx1ZSgpOworICAgIH0gZWxzZQorICAgICAgICBhbmdsZUluRGVncmVlcyA9
IGh1ZVZhbHVlLT5jb21wdXRlRGVncmVlcygpOworCisgICAgYW5nbGVJbkRlZ3JlZXMgPSBmbW9k
ZihhbmdsZUluRGVncmVlcywgMzYwLjBmKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjAp
CisgICAgICAgIGFuZ2xlSW5EZWdyZWVzICs9IDM2MC4wZjsKKworICAgIGF1dG8gYWxwaGEgPSBw
YXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgcmV0dXJuIHRvTGFiKExDSEE8ZmxvYXQ+IHsgbGlnaHRuZXNzLT5mbG9hdFZhbHVlKCksIGNo
cm9tYVZhbHVlLT5mbG9hdFZhbHVlKCksIGFuZ2xlSW5EZWdyZWVzLCAqYWxwaGEgfSk7Cit9CisK
K3N0YXRpYyBDb2xvciBwYXJzZUdyYXlQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlKQoreworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVl
R3JheSk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJh
bmdlKTsKKworICAgIC8vIFVubGlrZSBsYWIoKSBhbmQgbGNoKCksIGdyYXkoKSB0YWtlcyBhIG51
bWJlciwgYnV0IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMv
NDY0OC4KKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5n
ZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBh
dXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgbGlnaHRuZXNzLT5mbG9hdFZhbHVl
KCksIDAsIDAsICphbHBoYSB9OworfQorCiBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9u
UGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBBU1NFUlQocmFu
Z2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUNvbG9yKTsKQEAgLTgwNSw2ICs5MDQs
OSBAQCBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVyCiAgICAgY2FzZSBD
U1NWYWx1ZURpc3BsYXlQMzoKICAgICAgICAgY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OkRpc3Bs
YXlQMzsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29s
b3JTcGFjZSA9IENvbG9yU3BhY2U6OkxhYjsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC04ODgsNiArOTkwLDE1IEBAIHN0YXRpYyBD
b2xvciBwYXJzZUNvbG9yRnVuY3Rpb24oQ1NTUGFyc2UKICAgICBjYXNlIENTU1ZhbHVlSHNsYToK
ICAgICAgICAgY29sb3IgPSBwYXJzZUhTTFBhcmFtZXRlcnMoY29sb3JSYW5nZSwgY3NzUGFyc2Vy
TW9kZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNv
bG9yID0gcGFyc2VMYWJQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU1ZhbHVlTGNoOgorICAgICAgICBjb2xvciA9IHBhcnNlTENIUGFyYW1ldGVycyhj
b2xvclJhbmdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUdyYXk6CisgICAg
ICAgIGNvbG9yID0gcGFyc2VHcmF5UGFyYW1ldGVycyhjb2xvclJhbmdlKTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbG9yOgogICAgICAgICBjb2xvciA9IHBhcnNlQ29sb3JG
dW5jdGlvblBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCShyZXZpc2lvbiAyNzExMTApCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vICAgIC0gNHggZmxvYXQg
KDAtMSkgc1JHQkEsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8v
ICAgIC0gNHggZmxvYXQgKDAtMSkgTGluZWFyIHNSR0JBLCBzdG9yZWQgaW4gYSByZWZlcmVuY2Ug
Y291bnRlZCBzdWItb2JqZWN0CiAvLyAgICAtIDR4IGZsb2F0ICgwLTEpIERpc3BsYXlQMywgc3Rv
cmVkIGluIGEgcmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAorLy8gICAgLSA0eCBmbG9hdCAo
MC0xKSBMYWIsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8vCiAv
LyBBZGRpdGlvbmFsbHksIHRoZSBpbmxpbmUgOC1iaXQgc1JHQkEgY2FuIGhhdmUgYW4gb3B0aW9u
YWwgInNlbWFudGljIiBiaXQgc2V0IG9uIGl0LAogLy8gd2hpY2ggaW5kaWNhdGVzIHRoZSBjb2xv
ciBvcmlnaW5hdGVkIGZyb20gYSBDU1Mgc2VtYW50aWMgY29sb3IgbmFtZS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNw
cAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAj
aW5jbHVkZSAiQ29sb3JDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ29sb3JNYXRyaXguaCIKLSNp
bmNsdWRlICJDb2xvclR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzQsNiArMTM0LDExOSBAQCBYWVpBPGZsb2F0PiB0b1hZ
WkEoY29uc3QgTGluZWFyRGlzcGxheVAzCiAgICAgcmV0dXJuIGFzWFlaQShsaW5lYXJEaXNwbGF5
UDNUb1hZWk1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50
cyhjb2xvcikpKTsKIH0KIAorc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDUwV2hpdGVQ
b2ludFRvRDY1V2hpdGVQb2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8g
aHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5o
dG1sCisgICAgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKKyAg
ICAgICAgIDAuOTU1NTc2NmYsIC0wLjAyMzAzOTNmLCAwLjA2MzE2MzZmLAorICAgICAgICAtMC4w
MjgyODk1ZiwgIDEuMDA5OTQxNmYsIDAuMDIxMDA3N2YsCisgICAgICAgICAwLjAxMjI5ODJmLCAt
MC4wMjA0ODMwZiwgMS4zMjk5MDk4ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENTBUb0Q2
NU1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xv
cikpKTsKK30KKworc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDY1V2hpdGVQb2ludFRv
RDUwV2hpdGVQb2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDov
L3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisg
ICAgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ2NVRvRDUwTWF0cml4IHsKKyAgICAgICAg
IDEuMDQ3ODExMmYsIDAuMDIyODg2NmYsIC0wLjA1MDEyNzBmLAorICAgICAgICAgMC4wMjk1NDI0
ZiwgMC45OTA0ODQ0ZiwgLTAuMDE3MDQ5MWYsCisgICAgICAgIC0wLjAwOTIzNDVmLCAwLjAxNTA0
MzZmLCAgMC43NTIxMzE2ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENjVUb0Q1ME1hdHJp
eC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsK
K30KKworc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMjQzODkuMGY7Citz
dGF0aWMgY29uc3RleHByIGZsb2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOworc3RhdGljIGNv
bnN0ZXhwciBmbG9hdCBENTBXaGl0ZVZhbHVlc1tdID0geyAwLjk2NDIyZiwgMS4wZiwgMC44MjUy
MWYgfTsKKworWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQorewor
ICAgIGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKKyAgICBm
bG9hdCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOworICAgIGZsb2F0IGYyID0gZjEgLSAo
Y29sb3IuYiAvIDIwMC4wZik7CisKKyAgICBhdXRvIGNvbXB1dGVYQW5kWiA9IFtdKGZsb2F0IHQp
IHsKKyAgICAgICAgZmxvYXQgdEN1YmVkID0gdCAqIHQgKiB0OworICAgICAgICBpZiAodEN1YmVk
ID4gTEFCZSkKKyAgICAgICAgICAgIHJldHVybiB0Q3ViZWQ7CisKKyAgICAgICAgcmV0dXJuICgx
MTYuMGYgKiB0IC0gMTYuMGYpIC8gTEFCazsKKyAgICB9OworCisgICAgYXV0byBjb21wdXRlWSA9
IFtdKGZsb2F0IHQpIHsKKyAgICAgICAgaWYgKHQgPiAoTEFCayAqIExBQmUpKSB7CisgICAgICAg
ICAgICBmbG9hdCB2YWx1ZSA9ICh0ICsgMTYuMCkgLyAxMTYuMDsKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZSAqIHZhbHVlICogdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdCAv
IExBQms7CisgICAgfTsKKworICAgIGZsb2F0IHggPSBENTBXaGl0ZVZhbHVlc1swXSAqIGNvbXB1
dGVYQW5kWihmMCk7CisgICAgZmxvYXQgeSA9IEQ1MFdoaXRlVmFsdWVzWzFdICogY29tcHV0ZVko
Y29sb3IubGlnaHRuZXNzKTsKKyAgICBmbG9hdCB6ID0gRDUwV2hpdGVWYWx1ZXNbMl0gKiBjb21w
dXRlWEFuZFooZjIpOworCisgICAgWFlaQTxmbG9hdD4gcmVzdWx0IHsgeCwgeSwgeiwgY29sb3Iu
YWxwaGEgfTsKKworICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUg
RDY1IHdoaXRlIHBvaW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hp
dGUgcG9pbnQsIHNvIGFzIGEgZmluYWwgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0g
dG8gY29udmVydCB0aGUKKyAgICAvLyByZXN1bHRpbmcgWFlaQSBjb2xvciB0byBhIEQ2NSB3aGl0
ZSBwb2ludC4KKyAgICByZXR1cm4gY29udmVydEZyb21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBv
aW50KHJlc3VsdCk7Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mIGNv
bG9yKQoreworICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1
IHdoaXRlIHBvaW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUg
cG9pbnQsIHNvIGFzIGEgZmlyc3Qgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8g
Y29udmVydCB0aGUKKyAgICAvLyBpbmNvbWluZyBYWVpBIGNvbG9yIHRvIEQ1MCB3aGl0ZSBwb2lu
dC4KKyAgICBhdXRvIGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQgPSBjb252ZXJ0RnJvbUQ2NVdoaXRl
UG9pbnRUb0Q1MFdoaXRlUG9pbnQoY29sb3IpOworCisgICAgZmxvYXQgeCA9IGNvbG9yV2l0aEQ1
MFdoaXRlUG9pbnQueCAvIEQ1MFdoaXRlVmFsdWVzWzBdOworICAgIGZsb2F0IHkgPSBjb2xvcldp
dGhENTBXaGl0ZVBvaW50LnkgLyBENTBXaGl0ZVZhbHVlc1sxXTsKKyAgICBmbG9hdCB6ID0gY29s
b3JXaXRoRDUwV2hpdGVQb2ludC56IC8gRDUwV2hpdGVWYWx1ZXNbMl07CisKKyAgICBhdXRvIGZU
cmFuc2Zvcm0gPSBbXShmbG9hdCB2YWx1ZSkgeworICAgICAgICByZXR1cm4gdmFsdWUgPiBMQUJl
ID8gc3RkOjpjYnJ0KHZhbHVlKSA6IChMQUJrICogdmFsdWUgKyAxNi4wZikgLyAxMTYuMGY7Cisg
ICAgfTsKKworICAgIGZsb2F0IGYwID0gZlRyYW5zZm9ybSh4KTsKKyAgICBmbG9hdCBmMSA9IGZU
cmFuc2Zvcm0oeSk7CisgICAgZmxvYXQgZjIgPSBmVHJhbnNmb3JtKHopOworCisgICAgZmxvYXQg
bGlnaHRuZXNzID0gKDExNi4wZiAqIGYxKSAtIDE2LjBmOworICAgIGZsb2F0IGEgPSA1MDAuMGYg
KiAoZjAgLSBmMSk7CisgICAgZmxvYXQgYiA9IDIwMC4wZiAqIChmMSAtIGYyKTsKKworICAgIHJl
dHVybiB7IGxpZ2h0bmVzcywgYSwgYiwgY29sb3JXaXRoRDUwV2hpdGVQb2ludC5hbHBoYSB9Owor
fQorCitMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAg
Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsYWItdG8tbGNoCisgICAgZmxv
YXQgaHVlID0gcmFkMmRlZyhhdGFuMihjb2xvci5iLCBjb2xvci5hKSk7CisKKyAgICByZXR1cm4g
eworICAgICAgICBjb2xvci5saWdodG5lc3MsCisgICAgICAgIHN0ZDo6aHlwb3QoY29sb3IuYSwg
Y29sb3IuYiksCisgICAgICAgIGh1ZSA+PSAwID8gaHVlIDogaHVlICsgMzYwLAorICAgICAgICBj
b2xvci5hbHBoYQorICAgIH07Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgTENIQTxmbG9h
dD4mIGNvbG9yKQoreworICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGNoLXRvLWxhYgorICAgIGZsb2F0IGh1ZUFuZ2xlUmFkaWFucyA9IGRlZzJyYWQoY29sb3IuaHVl
KTsKKworICAgIHJldHVybiB7CisgICAgICAgIGNvbG9yLmxpZ2h0bmVzcywKKyAgICAgICAgY29s
b3IuY2hyb21hICogc3RkOjpjb3MoaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuY2hy
b21hICogc3RkOjpzaW4oaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuYWxwaGEKKyAg
ICB9OworfQorCiBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikK
IHsKICAgICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9jb2xvcl9zcGFjZS4K
QEAgLTI2Myw2ICszNzYsMTYgQEAgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBY
WVpBPAogICAgIHJldHVybiB0b0Rpc3BsYXlQMyh0b0xpbmVhckRpc3BsYXlQMyhjb2xvcikpOwog
fQogCitYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTENIQTxmbG9hdD4mIGNvbG9yKQoreworICAg
IHJldHVybiB0b1hZWkEodG9MYWIoY29sb3IpKTsKK30KKworTENIQTxmbG9hdD4gdG9MQ0hBKGNv
bnN0IFhZWkE8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9MQ0hBKHRvTGFiKGNvbG9y
KSk7Cit9CisKIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCiB7
CiAgICAgcmV0dXJuIHRvWFlaQSh0b1NSR0JBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkocmV2aXNpb24g
MjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJz
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDIwIEBAIFdFQkNPUkVfRVhQT1JUIExp
bmVhckRpc3BsYXlQMzxmbG9hdD4gdG8KIFdFQkNPUkVfRVhQT1JUIERpc3BsYXlQMzxmbG9hdD4g
dG9EaXNwbGF5UDMoY29uc3QgTGluZWFyRGlzcGxheVAzPGZsb2F0PiYpOwogCiAKKy8vIExhYgor
V0VCQ09SRV9FWFBPUlQgWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mKTsKK1dF
QkNPUkVfRVhQT1JUIExhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mKTsKKy8vIEFk
ZGl0aW9ucworV0VCQ09SRV9FWFBPUlQgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IExhYjxmbG9h
dD4mKTsKKworCisvLyBMQ0hBCitXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0PiB0b1hZWkEoY29u
c3QgTENIQTxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIExDSEE8ZmxvYXQ+IHRvTENIQShjb25z
dCBYWVpBPGZsb2F0PiYpOworLy8gQWRkaXRpb25zCitXRUJDT1JFX0VYUE9SVCBMYWI8ZmxvYXQ+
IHRvTGFiKGNvbnN0IExDSEE8ZmxvYXQ+Jik7CisKKwogLy8gSFNMQQogV0VCQ09SRV9FWFBPUlQg
WFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IEhTTEE8ZmxvYXQ+Jik7CiBXRUJDT1JFX0VYUE9SVCBI
U0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgWFlaQTxmbG9hdD4mKTsKQEAgLTkxLDYgKzEwNSw4IEBA
IGNvbnN0ZXhwciBTUkdCQTxmbG9hdD4gdG9TUkdCQShjb25zdCBTUkcKIGNvbnN0ZXhwciBMaW5l
YXJTUkdCQTxmbG9hdD4gdG9MaW5lYXJTUkdCQShjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNv
bG9yKSB7IHJldHVybiBjb2xvcjsgfQogY29uc3RleHByIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNw
bGF5UDMoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBj
b25zdGV4cHIgTGluZWFyRGlzcGxheVAzPGZsb2F0PiB0b0xpbmVhckRpc3BsYXlQMyhjb25zdCBM
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KK2NvbnN0ZXhw
ciBMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xv
cjsgfQorY29uc3RleHByIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBMQ0hBPGZsb2F0PiYgY29s
b3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0
IEhTTEE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBDTVlLQTxm
bG9hdD4gdG9DTVlLQShjb25zdCBDTVlLQTxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsg
fQogY29uc3RleHByIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBYWVpBPGZsb2F0PiYgY29sb3Ip
IHsgcmV0dXJuIGNvbG9yOyB9CkBAIC0xMjEsNiArMTM3LDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IExpbmVhckRpc3BsYXlQMzxmbG8KICAgICByZXR1cm4gdG9MaW5lYXJEaXNwbGF5UDModG9Y
WVpBKGNvbG9yKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IExhYjxmbG9hdD4gdG9MYWIo
Y29uc3QgVCYgY29sb3IpCit7CisgICAgcmV0dXJuIHRvTGFiKHRvWFlaQShjb2xvcikpOworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgVCYgY29sb3Ip
Cit7CisgICAgcmV0dXJuIHRvTENIQSh0b1hZWkEoY29sb3IpKTsKK30KKwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFQmIGNvbG9yKQogewogICAgIHJldHVy
biB0b0hTTEEodG9YWVpBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAJKHJldmlzaW9uIDI3
MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXph
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDggQEAgc3RhdGljIEFTQ0lJTGl0
ZXJhbCBzZXJpYWxpemF0aW9uKENvbG9yUwogICAgICAgICByZXR1cm4gImxpbmVhci1zcmdiIl9z
OwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gImRpc3Bs
YXktcDMiX3M7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHJldHVybiAibGFi
Il9zOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYxLDYgKzE2Mywy
NyBAQCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoCiAgICAgcmV0dXJu
IHNlcmlhbGl6YXRpb24oY29sb3IpOwogfQogCisvLyBMYWI8ZmxvYXQ+IG92ZXJsb2FkcworCitT
dHJpbmcgc2VyaWFsaXphdGlvbkZvckNTUyhjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAg
ICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI3NlcmlhbGl6aW5nLWxhYi1s
Y2gKKworICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOworICAgIGlmIChXVEY6
OmFyZUVzc2VudGlhbGx5RXF1YWwoYWxwaGEsIDEuMGYpKQorICAgICAgICByZXR1cm4gbWFrZVN0
cmluZygibGFiKCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgJyknKTsKKyAgICByZXR1cm4gbWFr
ZVN0cmluZygibGFiKCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgIiAvICIsIGFscGhhLCAnKScp
OworfQorCitTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYgY29s
b3IpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQorCitTdHJp
bmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgTGFiPGZsb2F0PiYgY29s
b3IpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQogCiAvLyBD
b2xvciBvdmVybG9hZHMKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JTZXJpYWxpemF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmgJKHJldmlzaW9uIDI3MTExMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENv
bG9yOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERpc3BsYXlQMzsKK3RlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgTGFiOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMaW5lYXJTUkdC
QTsKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgU1JHQkE7CiAKQEAgLTU1LDYgKzU2LDEwIEBA
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1MKIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7CiBX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29u
c3QgRGlzcGxheVAzPGZsb2F0PiYpOwogCitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXph
dGlvbkZvckNTUyhjb25zdCBMYWI8ZmxvYXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Vy
aWFsaXphdGlvbkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0IExhYjxmbG9hdD4mKTsK
KwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgQ29sb3Im
KTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBDb2xv
ciYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNU
ZXh0KGNvbnN0IENvbG9yJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNwYWNlLmNwcAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
LDYgKzQyLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQwogICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICB0cyA8PCAiRGlzcGxheVAzIjsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHRzIDw8
ICJMKmEqYiI7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCShyZXZp
c2lvbiAyNzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNw
YWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdCB7CiAgICAgU1JHQiwKICAgICBMaW5l
YXJSR0IsCi0gICAgRGlzcGxheVAzCisgICAgRGlzcGxheVAzLAorICAgIExhYgogfTsKIAogV0VC
Q09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IENvbG9yU3BhY2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yVHlwZXMuaAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsNiArMjQ3LDkz
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXIKIH0KIAogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTGFiIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8TGFiPFQ+
PiB7CisgICAgdXNpbmcgQ29tcG9uZW50VHlwZSA9IFQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBh
dXRvIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpMYWI7CisKKyAgICBjb25zdGV4cHIgTGFiKFQg
bGlnaHRuZXNzLCBUIGEsIFQgYiwgVCBhbHBoYSA9IENvbXBvbmVudFRyYWl0czxUPjo6bWF4VmFs
dWUpCisgICAgICAgIDogbGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KKyAgICAgICAgLCBhIHsgYSB9
CisgICAgICAgICwgYiB7IGIgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAg
ICB9CisKKyAgICBjb25zdGV4cHIgTGFiKCkKKyAgICAgICAgOiBMYWIgeyBDb21wb25lbnRUcmFp
dHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRU
cmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlIH0KKyAgICB7
CisgICAgfQorCisgICAgVCBsaWdodG5lc3M7CisgICAgVCBhOworICAgIFQgYjsKKyAgICBUIGFs
cGhhOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29tcG9uZW50
czxUPiBhc0NvbG9yQ29tcG9uZW50cyhjb25zdCBMYWI8VD4mIGMpCit7CisgICAgcmV0dXJuIHsg
Yy5saWdodG5lc3MsIGMuYSwgYy5iLCBjLmFscGhhIH07Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNvbnN0ZXhwciBMYWI8VD4gYXNMYWIoY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+JiBjKQor
eworICAgIHJldHVybiB7IGNbMF0sIGNbMV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYWI8VD4mIGEsIGNv
bnN0IExhYjxUPiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoYSkgPT0gYXND
b2xvckNvbXBvbmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBi
b29sIG9wZXJhdG9yIT0oY29uc3QgTGFiPFQ+JiBhLCBjb25zdCBMYWI8VD4mIGIpCit7CisgICAg
cmV0dXJuICEoYSA9PSBiKTsKK30KKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTENI
QSA6IENvbG9yV2l0aEFscGhhSGVscGVyPExDSEE8VD4+IHsKKyAgICB1c2luZyBDb21wb25lbnRU
eXBlID0gVDsKKworICAgIGNvbnN0ZXhwciBMQ0hBKFQgbGlnaHRuZXNzLCBUIGNocm9tYSwgVCBo
dWUsIFQgYWxwaGEgPSBDb21wb25lbnRUcmFpdHM8VD46Om1heFZhbHVlKQorICAgICAgICA6IGxp
Z2h0bmVzcyB7IGxpZ2h0bmVzcyB9CisgICAgICAgICwgY2hyb21hIHsgY2hyb21hIH0KKyAgICAg
ICAgLCBodWUgeyBodWUgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAgICB9
CisKKyAgICBjb25zdGV4cHIgTENIQSgpCisgICAgICAgIDogTENIQSB7IENvbXBvbmVudFRyYWl0
czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRy
YWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUgfQorICAgIHsK
KyAgICB9CisKKyAgICBUIGxpZ2h0bmVzczsKKyAgICBUIGNocm9tYTsKKyAgICBUIGh1ZTsKKyAg
ICBUIGFscGhhOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29t
cG9uZW50czxUPiBhc0NvbG9yQ29tcG9uZW50cyhjb25zdCBMQ0hBPFQ+JiBjKQoreworICAgIHJl
dHVybiB7IGMubGlnaHRuZXNzLCBjLmNocm9tYSwgYy5odWUsIGMuYWxwaGEgfTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIExDSEE8VD4gYXNMQ0hBKGNvbnN0IENvbG9yQ29t
cG9uZW50czxUPiYgYykKK3sKKyAgICByZXR1cm4geyBjWzBdLCBjWzFdLCBjWzJdLCBjWzNdIH07
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29u
c3QgTENIQTxUPiYgYSwgY29uc3QgTENIQTxUPiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNv
bXBvbmVudHMoYSkgPT0gYXNDb2xvckNvbXBvbmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oY29uc3QgTENIQTxUPiYgYSwgY29uc3Qg
TENIQTxUPiYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCisKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBIU0xBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8SFNMQTxUPj4gewog
ICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOwogCkBAIC0zNzksNiArNDY2LDggQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRnVuY3Rvcj4gYwogICAgICAgICByZXR1cm4gc3RkOjpp
bnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xpbmVhclNSR0JBKGNvbXBv
bmVudHMpKTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJu
IHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNEaXNwbGF5UDMo
Y29tcG9uZW50cykpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4g
c3RkOjppbnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xhYihjb21wb25l
bnRzKSk7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5jcHAJ
KHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yU3BhY2VDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDIwIEBAIENHQ29s
b3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4gZGlzcGxheVAz
Q29sb3JTcGFjZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VSZWYoKQorewor
ICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJlZjsKKyAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
IHsKKyNpZiBIQVZFKExBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJQ1MpCisgICAgICAgIGxhYkNv
bG9yU3BhY2VSZWYgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlR2Vu
ZXJpY0xhYik7CisjZWxzZQorICAgICAgICBsYWJDb2xvclNwYWNlUmVmID0gc1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKKyNlbmRpZgorICAgIH0pOworICAgIHJldHVybiBsYWJDb2xvclNwYWNlUmVmOwor
fQorCiBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigpCiB7CiAgICAg
c3RhdGljIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgJ
KHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yU3BhY2VDRy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFj
ZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3Bh
Y2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNw
YWNlUmVmKCk7CitXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJl
ZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKIAogc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDb2xvclNw
YWNlKENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTQ1LDYgKzQ2LDggQEAgc3RhdGljIGlubGlu
ZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDbwogICAgICAgICByZXR1cm4gbGluZWFyUkdCQ29s
b3JTcGFjZVJlZigpOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICBy
ZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFi
OgorICAgICAgICByZXR1cm4gbGFiQ29sb3JTcGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI3MTE0NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAxLTA1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBjb2xvcihs
YWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAg
ICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUGFyc2luZyB0
ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6IFVuc2tpcCBsYWIvbGNoIHRlc3RzLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFi
LWNvbG9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmct
bGFiLWNvbG9ycy5odG1sOiBBZGRlZC4KKwogMjAyMS0wMS0wNSAgTWFudWVsIFJlZ28gQ2FzYXNu
b3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbc2VsZWN0b3JzXSA6Zm9jdXMgc2hv
dWxkIG1hdGNoIGluc2lkZSB0aGUgZm9jdXMgZXZlbnQKSW5kZXg6IExheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwko
cmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2lu
ZyBjb3B5KQpAQCAtMjAxNCwyMiArMjAxNCw2IEBAIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1wb3J0
ZWQvdzNjL3dlYi1wbGEKIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL3Q0MjUtaHNsYS1vbnNjcmVlbi1tdWx0aXBsZS1ib3hl
cy1jLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0ODgwMSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDQyNS1oc2xhLW9uc2NyZWVu
LWIueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIAotIyBsYWIvbGNoIG5vdCBzdXBwb3J0
ZWQKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAx
Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDAyLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWwgWyBTa2lwIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1Lmh0bWwgWyBT
a2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA2Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sYWItMDA3Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAyLmh0bWwgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAzLmh0bWwg
WyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
Y2gtMDA0Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb2xvci9sY2gtMDA1Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3Lmh0bWwgWyBTa2lwIF0K
LQogIyBJbml0aWFsIGZhaWx1cmVzIG9uIHRoZSBpbXBvcnQgb2YgY3NzLWNvbG9yCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDMxLWNvbG9yLXRleHQtYS54
aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFy
c2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiBsYWIsIGxj
aCBhbmQgZ3JheSBjb2xvcnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitsYWIo
KQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDApIikg
aXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgLyAxKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8g
MC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAg
MTAvMC41KSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC81MCUpIikgaXMgImxhYigyMCUgMCAxMCAv
IDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwMCUg
MCAxMC81MCUpIikgaXMgImxhYig0MDAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTE2MCAxNjApIikgaXMgImxhYig1MCUgLTE2
MCAxNjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUg
LTIwMCAyMDApIikgaXMgImxhYig1MCUgLTIwMCAyMDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAtMTAlKSIpIGlzICJsYWIoMCUgMCAwIC8g
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAv
IDExMCUpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDAgLyAzMDAlKSIpIGlzICJsYWIoMCUgMCAwKSIKKworbGNoKCkK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnKSIp
IGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMCUgMCAwZGVnIC8gMSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDAuNSkiKSBpcyAibGFiKDAl
IDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDEwMCUgMjMwIDBkZWcgLyAwLjUpIikgaXMgImxhYigxMDAlIDIzMCAwIC8gMC41KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzAuNSki
KSBpcyAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvNTAlKSIpIGlzICJsYWIo
MjAlIDQ2Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0xMCUpIikgaXMgImxhYigxMCUgMTgu
NzkzODUyIDYuODQwNDAyNiAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2
Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgx
MCUgMjAgMS4yOHJhZCkiKSBpcyAibGFiKDEwJSA1LjczNDMwMjUgMTkuMTYwMzE2KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRlZykiKSBp
cyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkz
ODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDEwJSAyMCA3NDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwZGVn
KSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorCitncmF5KCkKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDApIikgaXMgImxhYigwJSAwIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCUp
IikgaXMgImxhYigxMCUgMCAwIC8gMC4xKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEyMCAvIDEwJSkiKSBpcyAibGFiKDEyMCUgMCAwIC8gMC4xKSIKKwor
VGVzdCBpbnZhbGlkIHZhbHVlcworUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigwIDAgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMGRlZykiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAg
LyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitGQUlMIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSkiKSBzaG91bGQgYmUgcmdiYSgwLCAwLCAw
LCAwKS4gV2FzIGxhYigwJSAwIDAgLyAwLjUpLgorRkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTApIikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCku
IFdhcyBsYWIoMjAlIDkuODQ4MDc4IDEuNzM2NDgxOCkuCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEw
IDEwZGVnIDEwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTAgMTAp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiZ3JheSgxMCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAgMTApIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3Jz
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWIt
Y29sb3JzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NyBAQAorPGh0bWw+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhlIHBhcnNp
bmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLiIpOworCisgICAgZnVuY3Rpb24gY29tcHV0
ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZGl2KTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7
CisgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFBy
b3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGRpdik7CisgICAgICAgIHJldHVybiBjb21wdXRlZFZhbHVlOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBkaXYuc3R5bGUuc2V0UHJv
cGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQo
cHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAn
IiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5
LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IG51bGwp
CisgICAgICAgICAgICBleHBlY3RlZCA9ICIiOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhw
ZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdsYWIoKScpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSkiLCAibGFiKDAl
IDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAg
MCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvNTAl
KSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIsICJsYWIoNDAwJSAwIDEwIC8gMC41KSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0xNjAgMTYwKSIs
ICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAlIC0yMDAgMjAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEwJSkiLCAibGFiKDAl
IDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigw
JSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiLCAibGFiKDAlIDAgMCkiKTsKKworICAg
IGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnbGNoKCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDEpIiwgImxhYigw
JSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAw
IDBkZWcgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIsICJsYWIoMTAwJSAy
MzAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDIwJSA1MCAyMGRlZy8wLjUpIiwgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAxMDA2IC8gMC41KSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVn
LzUwJSkiLCAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAtMTAlKSIsICJs
YWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiLCAibGFiKDEwJSAxOC43
OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUgNS43MzQzMDI1IDE5LjE2MDMxNikiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAzODBkZWcp
IiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1
MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgxMCUgMjAgNzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMGRlZykiLCAi
bGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworCisgICAgZGVidWcoJycpOworICAgIGRl
YnVnKCdncmF5KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3Jh
eSgwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJncmF5KDEwIC8gMTAlKSIsICJsYWIoMTAlIDAgMCAvIDAuMSkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMjAgLyAxMCUpIiwgImxhYigxMjAlIDAg
MCAvIDAuMSkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHZh
bHVlcycpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCAwIDAp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDAlIDAlIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIsICJyZ2JhKDAsIDAsIDAsIDAp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMTAl
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcpIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwJSAw
IDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSkiLCAi
cmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyB6ZXJvIGFuZ2xlLiBDdXJyZW50bHkg
ZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDIwJSAxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0
bGVzcyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJraXQub3JnL2IvMjA1NzMzCisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTApIiwgInJn
YmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworCisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAlKSIsICJyZ2JhKDAsIDAs
IDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAg
MTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAgMTApIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKworPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417022</attachid>
            <date>2021-01-05 11:39:05 -0800</date>
            <delta_ts>2021-01-05 12:39:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210105113904.patch</filename>
            <type>text/plain</type>
            <size>69077</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzExMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTA1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBj
b2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgyNjQwNzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisgICAgICAgIEFkZCBIQVZFX0xBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJ
Q1Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIENvcmVHcmFwaGljcworICAgICAgICBvbiB0aGUg
c3lzdG1lIGhhcyBwcm9wZXIgc3VwcG9ydCBmb3IgY29udmVyc2lvbnMgdG8vZnJvbSB0aGUgTGFi
IGNvbG9yIHNwYWNlCisgICAgICAgIGFuZCBoYXMgYSByZXNvbHV0aW9uIGZvciByZGFyOi8vcHJv
YmxlbS81ODM2MDQ1NC4KKwogMjAyMC0xMi0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIFdURjo6TWFjaFNl
bWFwaG9yZSB0byB3YWl0IHdpdGggYSB0aW1lb3V0IGR1cmF0aW9uCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTgxMywzICs4MTMsMTIgQEAKICAgICB8fCAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0MDQwMCkKICNkZWZp
bmUgSEFWRV9BVkNPTlRFTlRLRVlSRVFVRVNUX1BFTkRJTkdfUFJPVEVDVElPTl9TVEFUVVMgMQog
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkgXAorICAgIHx8ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShN
QUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAw
MCkgXAorICAgIHx8IChQTEFURk9STShXQVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDcwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQorLy8gUHJpb3IgdG8gdGhlc2UgcmVs
ZWFzZXMsIENvcmVHcmFwaGljcyBjb3VsZCBub3QgY29ycmVjdGx5IGNvbnZlcnQgZnJvbSBMYWIg
dG8gb3RoZXIgY29sb3Igc3BhY2VzCisvLyBkdWUgdG8gcmRhcjovL3Byb2JsZW0vNTgzNjA0NTQu
CisjZGVmaW5lIEhBVkVfTEFCX1NVUFBPUlRfSU5fQ09SRV9HUkFQSElDUyAxCisjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTEyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAxLTA1ICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3Jh
eSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgImxhYiIgYW5kICJsY2giIGtl
eXdvcmRzLgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZU9w
dGlvbmFsQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
OjpwYXJzZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpwYXJzZUxDSFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUdyYXlQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlQ29s
b3JGdW5jdGlvbik6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nICJsYWIoLi4uKSIs
ICJsY2goLi4uKSIsICJncmF5KC4uLikiCisgICAgICAgIGFuZCAiY29sb3IobGFiIC4uLikiLCBh
bGwgb2Ygd2hpY2ggY3JlYXRlIExhYjxmbG9hdD4gY29sb3JzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIEFkZCBvdmVybG9hZCBvZiB0aGUgQ29sb3IgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBh
IExhYjxmbG9hdD4gbWF0Y2hpbmcgb3RoZXIKKyAgICAgICAgQ29sb3JTcGFjZSB0eXBlcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0RnJvbUQ1MFdoaXRlUG9pbnRUb0Q2NVdoaXRlUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydEZyb21ENjVXaGl0ZVBvaW50VG9ENTBXaGl0ZVBvaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnRvWFlaQSk6CisgICAgICAgIChXZWJDb3JlOjp0b0xhYik6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0xDSEEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yQ29udmVyc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9MQ0hBKToKKyAgICAgICAgQWRkIGNvbnZlcnNpb25zIHRvL2Zyb20gTGFiIHRvIEQ2
NSB3aGl0ZSBwb2ludCBYWVpBICh0aGUgd2hpdGUgcG9pbnQgd2UgZXhwZWN0IFhZWkEgdG8gYmUg
aW4pLCBhbmQgY29udmVyc2lvbgorICAgICAgICBmcm9tIExjaCB0by9mcm9tIExhYi4gCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemF0
aW9uRm9yQ1NTKToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb25Gb3JIVE1MKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAgQWRk
IHNlcmlhbGl6YXRpb24gZm9yIExhYiBjb2xvcnMuIFdlIGN1cnJlbnRseSBhbHdheXMgc2VyaWFs
aXplIHVzaW5nIHRoZSBsYWIoKQorICAgICAgICBub3RhdGlvbiwgd2hpY2ggYXBwZWFycyB0byBi
ZSBjb3JyZWN0IGZvciBhdCBsZWFzdCBjb2xvcnMgZGVjbGFyZWQgdXNpbmcgbGFiKCksCisgICAg
ICAgIGxjaCgpIGFuZCBncmF5KCkuIFVuY2xlYXIgaWYgaXQgaXMgY29ycmVjdCBmb3IgY29sb3Jz
IGRlY2xhcmVkIHdpdGggY29sb3IobGFiIC4uLikuCisgICAgICAgIE9wZW5lZCBodHRwczovL2dp
dGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNTgyNSB0byB0cmFjayBnZXR0aW5nIGEg
cmVzb2x1dGlvbgorICAgICAgICBmb3IgImNvbG9yKGxhYiAuLi4pIi4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0
b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oOgorICAgICAg
ICBBZGQgTGFiIGFzIGEgQ29sb3JTcGFjZSBhbmQgdGV4dCBzdHJlYW0gZHVtcGluZyBmb3IgaXQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYWI6OkxhYik6CisgICAgICAgIChXZWJDb3JlOjphc0NvbG9yQ29tcG9uZW50cyk6
CisgICAgICAgIChXZWJDb3JlOjphc0xhYik6CisgICAgICAgIEFkZCBMYWIgY29sb3IgdHlwZS4K
KworICAgICAgICAoV2ViQ29yZTo6TENIQTo6TENIQSk6CisgICAgICAgIChXZWJDb3JlOjphc0xD
SEEpOgorICAgICAgICBBZGQgTENIQSBjb2xvciB0eXBlLgorICAgICAgICAKKyAgICAgICAgKFdl
YkNvcmU6OmNhbGxXaXRoQ29sb3JUeXBlKToKKyAgICAgICAgQWRkIExhYiB0byBjYWxsV2l0aENv
bG9yVHlwZSBzaW5jZSBpdCBpcyBub3cgYSB2YWxpZCBDb2xvclNwYWNlLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxhYkNvbG9yU3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9y
U3BhY2VDRy5oOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkQ0dDb2xvclNwYWNlKToKKyAgICAg
ICAgQWRkIGFjY2Vzc29yIGZvciBnZW5lcmljIGxhYiAod2hpY2ggaXMgdGhlIEQ1MCB3aGl0ZSBw
b2ludCBjc3MgZXhwZWN0cykgQ0dDb2xvclNwYWNlUmVmCisgICAgICAgIGJ1dCBvbmx5IGlmIHdl
IGhhdmUgYSBDb3JlR3JhcGhpY3MgdGhhdCBzdXBwb3J0cyBpdCBwcm9wZXJseSwgd2hpY2ggaXMg
bWFjT1MgMTEgZXJhIG9yIG5ld2VyLgorCiAyMDIxLTAxLTAzICBSb2IgQnVpcyAgPHJidWlzQGln
YWxpYS5jb20+CiAKICAgICAgICAgU2hhcmUgbWV0YSByZWZyZXNoIGxvZ2ljCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNpb24gMjcxMTEwKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEy
NjQsNiArMTI2NCw5IEBAIHJnYgogcmdiYQogaHNsCiBoc2xhCitsYWIKK2xjaAorLy8gZ3JheQog
Ly9jb2xvcgogCiAvLyB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHJldmlzaW9uIDI3MTEx
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzkyLDYgKzc5MiwxMDUgQEAgc3RhdGljIENvbG9yIHBh
cnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZQogICAgIHJldHVybiBjb252ZXJ0VG9Db21wb25lbnRC
eXRlcyh0b1NSR0JBKEhTTEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlb
MF0pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0
Pihjb2xvckFycmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSB9KSk7CiB9CiAKK3N0
YXRpYyBPcHRpb25hbDxmbG9hdD4gcGFyc2VPcHRpb25hbEFscGhhKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQoreworICAgIGlmICghY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShy
YW5nZSkpCisgICAgICAgIHJldHVybiAxLjBmOworCisgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9
IGNvbnN1bWVQZXJjZW50KHJhbmdlLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoYWxwaGFQYXJh
bWV0ZXIpCisgICAgICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91
YmxlVmFsdWUoKSAvIDEwMC4wLCAwLjAsIDEuMCk7CisKKyAgICBhbHBoYVBhcmFtZXRlciA9IGNv
bnN1bWVOdW1iZXIocmFuZ2UsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYWxwaGFQYXJhbWV0
ZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIGNsYW1wVG88Zmxv
YXQ+KGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpLCAwLjAsIDEuMCk7Cit9CisKK3N0YXRp
YyBDb2xvciBwYXJzZUxhYlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7
CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVMYWIpOwor
ICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisK
KyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwp
OworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBh
VmFsdWUgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYVZh
bHVlKQorICAgICAgICByZXR1cm4geyB9OworICAgIGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJl
cihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWJWYWx1ZSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAg
aWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgp
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIExhYjxmbG9hdD4geyBsaWdodG5l
c3MtPmZsb2F0VmFsdWUoKSwgYVZhbHVlLT5mbG9hdFZhbHVlKCksIGJWYWx1ZS0+ZmxvYXRWYWx1
ZSgpLCAqYWxwaGEgfTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0
aW9uSWQoKSA9PSBDU1NWYWx1ZUxjaCk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0g
Y29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBl
cmNlbnQoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAg
IHJldHVybiBDb2xvcigpOworCisgICAgYXV0byBjaHJvbWFWYWx1ZSA9IGNvbnN1bWVOdW1iZXIo
YXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFjaHJvbWFWYWx1ZSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+IChkaXNhbGxvd2lu
ZyB1bml0bGVzcyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3Ms
IEhUTUxTdGFuZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgZmxvYXQgYW5n
bGVJbkRlZ3JlZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBodWVWYWx1ZSA9IGNv
bnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmICghaHVlVmFsdWUp
CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZh
bHVlLT5kb3VibGVWYWx1ZSgpOworICAgIH0gZWxzZQorICAgICAgICBhbmdsZUluRGVncmVlcyA9
IGh1ZVZhbHVlLT5jb21wdXRlRGVncmVlcygpOworCisgICAgYW5nbGVJbkRlZ3JlZXMgPSBmbW9k
ZihhbmdsZUluRGVncmVlcywgMzYwLjBmKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjAp
CisgICAgICAgIGFuZ2xlSW5EZWdyZWVzICs9IDM2MC4wZjsKKworICAgIGF1dG8gYWxwaGEgPSBw
YXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgcmV0dXJuIHRvTGFiKExDSEE8ZmxvYXQ+IHsgbGlnaHRuZXNzLT5mbG9hdFZhbHVlKCksIGNo
cm9tYVZhbHVlLT5mbG9hdFZhbHVlKCksIGFuZ2xlSW5EZWdyZWVzLCAqYWxwaGEgfSk7Cit9CisK
K3N0YXRpYyBDb2xvciBwYXJzZUdyYXlQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlKQoreworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVl
R3JheSk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJh
bmdlKTsKKworICAgIC8vIFVubGlrZSBsYWIoKSBhbmQgbGNoKCksIGdyYXkoKSB0YWtlcyBhIG51
bWJlciwgYnV0IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMv
NDY0OC4KKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5n
ZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBh
dXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgbGlnaHRuZXNzLT5mbG9hdFZhbHVl
KCksIDAsIDAsICphbHBoYSB9OworfQorCiBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9u
UGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBBU1NFUlQocmFu
Z2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUNvbG9yKTsKQEAgLTgwNSw2ICs5MDQs
OSBAQCBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVyCiAgICAgY2FzZSBD
U1NWYWx1ZURpc3BsYXlQMzoKICAgICAgICAgY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OkRpc3Bs
YXlQMzsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29s
b3JTcGFjZSA9IENvbG9yU3BhY2U6OkxhYjsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC04ODgsNiArOTkwLDE1IEBAIHN0YXRpYyBD
b2xvciBwYXJzZUNvbG9yRnVuY3Rpb24oQ1NTUGFyc2UKICAgICBjYXNlIENTU1ZhbHVlSHNsYToK
ICAgICAgICAgY29sb3IgPSBwYXJzZUhTTFBhcmFtZXRlcnMoY29sb3JSYW5nZSwgY3NzUGFyc2Vy
TW9kZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNv
bG9yID0gcGFyc2VMYWJQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU1ZhbHVlTGNoOgorICAgICAgICBjb2xvciA9IHBhcnNlTENIUGFyYW1ldGVycyhj
b2xvclJhbmdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUdyYXk6CisgICAg
ICAgIGNvbG9yID0gcGFyc2VHcmF5UGFyYW1ldGVycyhjb2xvclJhbmdlKTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbG9yOgogICAgICAgICBjb2xvciA9IHBhcnNlQ29sb3JG
dW5jdGlvblBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCShyZXZpc2lvbiAyNzExMTApCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vICAgIC0gNHggZmxvYXQg
KDAtMSkgc1JHQkEsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8v
ICAgIC0gNHggZmxvYXQgKDAtMSkgTGluZWFyIHNSR0JBLCBzdG9yZWQgaW4gYSByZWZlcmVuY2Ug
Y291bnRlZCBzdWItb2JqZWN0CiAvLyAgICAtIDR4IGZsb2F0ICgwLTEpIERpc3BsYXlQMywgc3Rv
cmVkIGluIGEgcmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAorLy8gICAgLSA0eCBmbG9hdCAo
MC0xKSBMYWIsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8vCiAv
LyBBZGRpdGlvbmFsbHksIHRoZSBpbmxpbmUgOC1iaXQgc1JHQkEgY2FuIGhhdmUgYW4gb3B0aW9u
YWwgInNlbWFudGljIiBiaXQgc2V0IG9uIGl0LAogLy8gd2hpY2ggaW5kaWNhdGVzIHRoZSBjb2xv
ciBvcmlnaW5hdGVkIGZyb20gYSBDU1Mgc2VtYW50aWMgY29sb3IgbmFtZS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNw
cAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAj
aW5jbHVkZSAiQ29sb3JDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ29sb3JNYXRyaXguaCIKLSNp
bmNsdWRlICJDb2xvclR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzQsNiArMTM0LDExOSBAQCBYWVpBPGZsb2F0PiB0b1hZ
WkEoY29uc3QgTGluZWFyRGlzcGxheVAzCiAgICAgcmV0dXJuIGFzWFlaQShsaW5lYXJEaXNwbGF5
UDNUb1hZWk1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50
cyhjb2xvcikpKTsKIH0KIAorc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDUwV2hpdGVQ
b2ludFRvRDY1V2hpdGVQb2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8g
aHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5o
dG1sCisgICAgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKKyAg
ICAgICAgIDAuOTU1NTc2NmYsIC0wLjAyMzAzOTNmLCAwLjA2MzE2MzZmLAorICAgICAgICAtMC4w
MjgyODk1ZiwgIDEuMDA5OTQxNmYsIDAuMDIxMDA3N2YsCisgICAgICAgICAwLjAxMjI5ODJmLCAt
MC4wMjA0ODMwZiwgMS4zMjk5MDk4ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENTBUb0Q2
NU1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xv
cikpKTsKK30KKworc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDY1V2hpdGVQb2ludFRv
RDUwV2hpdGVQb2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDov
L3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisg
ICAgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ2NVRvRDUwTWF0cml4IHsKKyAgICAgICAg
IDEuMDQ3ODExMmYsIDAuMDIyODg2NmYsIC0wLjA1MDEyNzBmLAorICAgICAgICAgMC4wMjk1NDI0
ZiwgMC45OTA0ODQ0ZiwgLTAuMDE3MDQ5MWYsCisgICAgICAgIC0wLjAwOTIzNDVmLCAwLjAxNTA0
MzZmLCAgMC43NTIxMzE2ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENjVUb0Q1ME1hdHJp
eC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsK
K30KKworc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMjQzODkuMGY7Citz
dGF0aWMgY29uc3RleHByIGZsb2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOworc3RhdGljIGNv
bnN0ZXhwciBmbG9hdCBENTBXaGl0ZVZhbHVlc1tdID0geyAwLjk2NDIyZiwgMS4wZiwgMC44MjUy
MWYgfTsKKworWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQorewor
ICAgIGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKKyAgICBm
bG9hdCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOworICAgIGZsb2F0IGYyID0gZjEgLSAo
Y29sb3IuYiAvIDIwMC4wZik7CisKKyAgICBhdXRvIGNvbXB1dGVYQW5kWiA9IFtdKGZsb2F0IHQp
IHsKKyAgICAgICAgZmxvYXQgdEN1YmVkID0gdCAqIHQgKiB0OworICAgICAgICBpZiAodEN1YmVk
ID4gTEFCZSkKKyAgICAgICAgICAgIHJldHVybiB0Q3ViZWQ7CisKKyAgICAgICAgcmV0dXJuICgx
MTYuMGYgKiB0IC0gMTYuMGYpIC8gTEFCazsKKyAgICB9OworCisgICAgYXV0byBjb21wdXRlWSA9
IFtdKGZsb2F0IHQpIHsKKyAgICAgICAgaWYgKHQgPiAoTEFCayAqIExBQmUpKSB7CisgICAgICAg
ICAgICBmbG9hdCB2YWx1ZSA9ICh0ICsgMTYuMCkgLyAxMTYuMDsKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZSAqIHZhbHVlICogdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdCAv
IExBQms7CisgICAgfTsKKworICAgIGZsb2F0IHggPSBENTBXaGl0ZVZhbHVlc1swXSAqIGNvbXB1
dGVYQW5kWihmMCk7CisgICAgZmxvYXQgeSA9IEQ1MFdoaXRlVmFsdWVzWzFdICogY29tcHV0ZVko
Y29sb3IubGlnaHRuZXNzKTsKKyAgICBmbG9hdCB6ID0gRDUwV2hpdGVWYWx1ZXNbMl0gKiBjb21w
dXRlWEFuZFooZjIpOworCisgICAgWFlaQTxmbG9hdD4gcmVzdWx0IHsgeCwgeSwgeiwgY29sb3Iu
YWxwaGEgfTsKKworICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUg
RDY1IHdoaXRlIHBvaW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hp
dGUgcG9pbnQsIHNvIGFzIGEgZmluYWwgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0g
dG8gY29udmVydCB0aGUKKyAgICAvLyByZXN1bHRpbmcgWFlaQSBjb2xvciB0byBhIEQ2NSB3aGl0
ZSBwb2ludC4KKyAgICByZXR1cm4gY29udmVydEZyb21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBv
aW50KHJlc3VsdCk7Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mIGNv
bG9yKQoreworICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1
IHdoaXRlIHBvaW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUg
cG9pbnQsIHNvIGFzIGEgZmlyc3Qgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8g
Y29udmVydCB0aGUKKyAgICAvLyBpbmNvbWluZyBYWVpBIGNvbG9yIHRvIEQ1MCB3aGl0ZSBwb2lu
dC4KKyAgICBhdXRvIGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQgPSBjb252ZXJ0RnJvbUQ2NVdoaXRl
UG9pbnRUb0Q1MFdoaXRlUG9pbnQoY29sb3IpOworCisgICAgZmxvYXQgeCA9IGNvbG9yV2l0aEQ1
MFdoaXRlUG9pbnQueCAvIEQ1MFdoaXRlVmFsdWVzWzBdOworICAgIGZsb2F0IHkgPSBjb2xvcldp
dGhENTBXaGl0ZVBvaW50LnkgLyBENTBXaGl0ZVZhbHVlc1sxXTsKKyAgICBmbG9hdCB6ID0gY29s
b3JXaXRoRDUwV2hpdGVQb2ludC56IC8gRDUwV2hpdGVWYWx1ZXNbMl07CisKKyAgICBhdXRvIGZU
cmFuc2Zvcm0gPSBbXShmbG9hdCB2YWx1ZSkgeworICAgICAgICByZXR1cm4gdmFsdWUgPiBMQUJl
ID8gc3RkOjpjYnJ0KHZhbHVlKSA6IChMQUJrICogdmFsdWUgKyAxNi4wZikgLyAxMTYuMGY7Cisg
ICAgfTsKKworICAgIGZsb2F0IGYwID0gZlRyYW5zZm9ybSh4KTsKKyAgICBmbG9hdCBmMSA9IGZU
cmFuc2Zvcm0oeSk7CisgICAgZmxvYXQgZjIgPSBmVHJhbnNmb3JtKHopOworCisgICAgZmxvYXQg
bGlnaHRuZXNzID0gKDExNi4wZiAqIGYxKSAtIDE2LjBmOworICAgIGZsb2F0IGEgPSA1MDAuMGYg
KiAoZjAgLSBmMSk7CisgICAgZmxvYXQgYiA9IDIwMC4wZiAqIChmMSAtIGYyKTsKKworICAgIHJl
dHVybiB7IGxpZ2h0bmVzcywgYSwgYiwgY29sb3JXaXRoRDUwV2hpdGVQb2ludC5hbHBoYSB9Owor
fQorCitMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAg
Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsYWItdG8tbGNoCisgICAgZmxv
YXQgaHVlID0gcmFkMmRlZyhhdGFuMihjb2xvci5iLCBjb2xvci5hKSk7CisKKyAgICByZXR1cm4g
eworICAgICAgICBjb2xvci5saWdodG5lc3MsCisgICAgICAgIHN0ZDo6aHlwb3QoY29sb3IuYSwg
Y29sb3IuYiksCisgICAgICAgIGh1ZSA+PSAwID8gaHVlIDogaHVlICsgMzYwLAorICAgICAgICBj
b2xvci5hbHBoYQorICAgIH07Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgTENIQTxmbG9h
dD4mIGNvbG9yKQoreworICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8j
bGNoLXRvLWxhYgorICAgIGZsb2F0IGh1ZUFuZ2xlUmFkaWFucyA9IGRlZzJyYWQoY29sb3IuaHVl
KTsKKworICAgIHJldHVybiB7CisgICAgICAgIGNvbG9yLmxpZ2h0bmVzcywKKyAgICAgICAgY29s
b3IuY2hyb21hICogc3RkOjpjb3MoaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuY2hy
b21hICogc3RkOjpzaW4oaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuYWxwaGEKKyAg
ICB9OworfQorCiBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikK
IHsKICAgICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9jb2xvcl9zcGFjZS4K
QEAgLTI2Myw2ICszNzYsMTYgQEAgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBY
WVpBPAogICAgIHJldHVybiB0b0Rpc3BsYXlQMyh0b0xpbmVhckRpc3BsYXlQMyhjb2xvcikpOwog
fQogCitYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTENIQTxmbG9hdD4mIGNvbG9yKQoreworICAg
IHJldHVybiB0b1hZWkEodG9MYWIoY29sb3IpKTsKK30KKworTENIQTxmbG9hdD4gdG9MQ0hBKGNv
bnN0IFhZWkE8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9MQ0hBKHRvTGFiKGNvbG9y
KSk7Cit9CisKIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCiB7
CiAgICAgcmV0dXJuIHRvWFlaQSh0b1NSR0JBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkocmV2aXNpb24g
MjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJz
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDIwIEBAIFdFQkNPUkVfRVhQT1JUIExp
bmVhckRpc3BsYXlQMzxmbG9hdD4gdG8KIFdFQkNPUkVfRVhQT1JUIERpc3BsYXlQMzxmbG9hdD4g
dG9EaXNwbGF5UDMoY29uc3QgTGluZWFyRGlzcGxheVAzPGZsb2F0PiYpOwogCiAKKy8vIExhYgor
V0VCQ09SRV9FWFBPUlQgWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mKTsKK1dF
QkNPUkVfRVhQT1JUIExhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mKTsKKy8vIEFk
ZGl0aW9ucworV0VCQ09SRV9FWFBPUlQgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IExhYjxmbG9h
dD4mKTsKKworCisvLyBMQ0hBCitXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0PiB0b1hZWkEoY29u
c3QgTENIQTxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIExDSEE8ZmxvYXQ+IHRvTENIQShjb25z
dCBYWVpBPGZsb2F0PiYpOworLy8gQWRkaXRpb25zCitXRUJDT1JFX0VYUE9SVCBMYWI8ZmxvYXQ+
IHRvTGFiKGNvbnN0IExDSEE8ZmxvYXQ+Jik7CisKKwogLy8gSFNMQQogV0VCQ09SRV9FWFBPUlQg
WFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IEhTTEE8ZmxvYXQ+Jik7CiBXRUJDT1JFX0VYUE9SVCBI
U0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgWFlaQTxmbG9hdD4mKTsKQEAgLTkxLDYgKzEwNSw4IEBA
IGNvbnN0ZXhwciBTUkdCQTxmbG9hdD4gdG9TUkdCQShjb25zdCBTUkcKIGNvbnN0ZXhwciBMaW5l
YXJTUkdCQTxmbG9hdD4gdG9MaW5lYXJTUkdCQShjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNv
bG9yKSB7IHJldHVybiBjb2xvcjsgfQogY29uc3RleHByIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNw
bGF5UDMoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBj
b25zdGV4cHIgTGluZWFyRGlzcGxheVAzPGZsb2F0PiB0b0xpbmVhckRpc3BsYXlQMyhjb25zdCBM
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KK2NvbnN0ZXhw
ciBMYWI8ZmxvYXQ+IHRvTGFiKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xv
cjsgfQorY29uc3RleHByIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBMQ0hBPGZsb2F0PiYgY29s
b3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0
IEhTTEE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBDTVlLQTxm
bG9hdD4gdG9DTVlLQShjb25zdCBDTVlLQTxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsg
fQogY29uc3RleHByIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBYWVpBPGZsb2F0PiYgY29sb3Ip
IHsgcmV0dXJuIGNvbG9yOyB9CkBAIC0xMjEsNiArMTM3LDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IExpbmVhckRpc3BsYXlQMzxmbG8KICAgICByZXR1cm4gdG9MaW5lYXJEaXNwbGF5UDModG9Y
WVpBKGNvbG9yKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IExhYjxmbG9hdD4gdG9MYWIo
Y29uc3QgVCYgY29sb3IpCit7CisgICAgcmV0dXJuIHRvTGFiKHRvWFlaQShjb2xvcikpOworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgVCYgY29sb3Ip
Cit7CisgICAgcmV0dXJuIHRvTENIQSh0b1hZWkEoY29sb3IpKTsKK30KKwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFQmIGNvbG9yKQogewogICAgIHJldHVy
biB0b0hTTEEodG9YWVpBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAJKHJldmlzaW9uIDI3
MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXph
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDggQEAgc3RhdGljIEFTQ0lJTGl0
ZXJhbCBzZXJpYWxpemF0aW9uKENvbG9yUwogICAgICAgICByZXR1cm4gImxpbmVhci1zcmdiIl9z
OwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gImRpc3Bs
YXktcDMiX3M7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHJldHVybiAibGFi
Il9zOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYxLDYgKzE2Mywy
NyBAQCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoCiAgICAgcmV0dXJu
IHNlcmlhbGl6YXRpb24oY29sb3IpOwogfQogCisvLyBMYWI8ZmxvYXQ+IG92ZXJsb2FkcworCitT
dHJpbmcgc2VyaWFsaXphdGlvbkZvckNTUyhjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAg
ICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI3NlcmlhbGl6aW5nLWxhYi1s
Y2gKKworICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOworICAgIGlmIChXVEY6
OmFyZUVzc2VudGlhbGx5RXF1YWwoYWxwaGEsIDEuMGYpKQorICAgICAgICByZXR1cm4gbWFrZVN0
cmluZygibGFiKCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgJyknKTsKKyAgICByZXR1cm4gbWFr
ZVN0cmluZygibGFiKCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgIiAvICIsIGFscGhhLCAnKScp
OworfQorCitTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYgY29s
b3IpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQorCitTdHJp
bmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgTGFiPGZsb2F0PiYgY29s
b3IpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQogCiAvLyBD
b2xvciBvdmVybG9hZHMKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JTZXJpYWxpemF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmgJKHJldmlzaW9uIDI3MTExMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENv
bG9yOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERpc3BsYXlQMzsKK3RlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgTGFiOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMaW5lYXJTUkdC
QTsKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgU1JHQkE7CiAKQEAgLTU1LDYgKzU2LDEwIEBA
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1MKIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7CiBX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29u
c3QgRGlzcGxheVAzPGZsb2F0PiYpOwogCitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXph
dGlvbkZvckNTUyhjb25zdCBMYWI8ZmxvYXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Vy
aWFsaXphdGlvbkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0IExhYjxmbG9hdD4mKTsK
KwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgQ29sb3Im
KTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBDb2xv
ciYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNU
ZXh0KGNvbnN0IENvbG9yJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNwYWNlLmNwcAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
LDYgKzQyLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQwogICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICB0cyA8PCAiRGlzcGxheVAzIjsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHRzIDw8
ICJMKmEqYiI7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCShyZXZp
c2lvbiAyNzExMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNw
YWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdCB7CiAgICAgU1JHQiwKICAgICBMaW5l
YXJSR0IsCi0gICAgRGlzcGxheVAzCisgICAgRGlzcGxheVAzLAorICAgIExhYgogfTsKIAogV0VC
Q09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IENvbG9yU3BhY2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yVHlwZXMuaAkocmV2aXNpb24gMjcxMTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsNiArMjQ3LDkz
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXIKIH0KIAogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTGFiIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8TGFiPFQ+
PiB7CisgICAgdXNpbmcgQ29tcG9uZW50VHlwZSA9IFQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBh
dXRvIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpMYWI7CisKKyAgICBjb25zdGV4cHIgTGFiKFQg
bGlnaHRuZXNzLCBUIGEsIFQgYiwgVCBhbHBoYSA9IENvbXBvbmVudFRyYWl0czxUPjo6bWF4VmFs
dWUpCisgICAgICAgIDogbGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KKyAgICAgICAgLCBhIHsgYSB9
CisgICAgICAgICwgYiB7IGIgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAg
ICB9CisKKyAgICBjb25zdGV4cHIgTGFiKCkKKyAgICAgICAgOiBMYWIgeyBDb21wb25lbnRUcmFp
dHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRU
cmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlIH0KKyAgICB7
CisgICAgfQorCisgICAgVCBsaWdodG5lc3M7CisgICAgVCBhOworICAgIFQgYjsKKyAgICBUIGFs
cGhhOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29tcG9uZW50
czxUPiBhc0NvbG9yQ29tcG9uZW50cyhjb25zdCBMYWI8VD4mIGMpCit7CisgICAgcmV0dXJuIHsg
Yy5saWdodG5lc3MsIGMuYSwgYy5iLCBjLmFscGhhIH07Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNvbnN0ZXhwciBMYWI8VD4gYXNMYWIoY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+JiBjKQor
eworICAgIHJldHVybiB7IGNbMF0sIGNbMV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYWI8VD4mIGEsIGNv
bnN0IExhYjxUPiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoYSkgPT0gYXND
b2xvckNvbXBvbmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBi
b29sIG9wZXJhdG9yIT0oY29uc3QgTGFiPFQ+JiBhLCBjb25zdCBMYWI8VD4mIGIpCit7CisgICAg
cmV0dXJuICEoYSA9PSBiKTsKK30KKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTENI
QSA6IENvbG9yV2l0aEFscGhhSGVscGVyPExDSEE8VD4+IHsKKyAgICB1c2luZyBDb21wb25lbnRU
eXBlID0gVDsKKworICAgIGNvbnN0ZXhwciBMQ0hBKFQgbGlnaHRuZXNzLCBUIGNocm9tYSwgVCBo
dWUsIFQgYWxwaGEgPSBDb21wb25lbnRUcmFpdHM8VD46Om1heFZhbHVlKQorICAgICAgICA6IGxp
Z2h0bmVzcyB7IGxpZ2h0bmVzcyB9CisgICAgICAgICwgY2hyb21hIHsgY2hyb21hIH0KKyAgICAg
ICAgLCBodWUgeyBodWUgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAgICB9
CisKKyAgICBjb25zdGV4cHIgTENIQSgpCisgICAgICAgIDogTENIQSB7IENvbXBvbmVudFRyYWl0
czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRy
YWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUgfQorICAgIHsK
KyAgICB9CisKKyAgICBUIGxpZ2h0bmVzczsKKyAgICBUIGNocm9tYTsKKyAgICBUIGh1ZTsKKyAg
ICBUIGFscGhhOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29t
cG9uZW50czxUPiBhc0NvbG9yQ29tcG9uZW50cyhjb25zdCBMQ0hBPFQ+JiBjKQoreworICAgIHJl
dHVybiB7IGMubGlnaHRuZXNzLCBjLmNocm9tYSwgYy5odWUsIGMuYWxwaGEgfTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIExDSEE8VD4gYXNMQ0hBKGNvbnN0IENvbG9yQ29t
cG9uZW50czxUPiYgYykKK3sKKyAgICByZXR1cm4geyBjWzBdLCBjWzFdLCBjWzJdLCBjWzNdIH07
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29u
c3QgTENIQTxUPiYgYSwgY29uc3QgTENIQTxUPiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNv
bXBvbmVudHMoYSkgPT0gYXNDb2xvckNvbXBvbmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oY29uc3QgTENIQTxUPiYgYSwgY29uc3Qg
TENIQTxUPiYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCisKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBIU0xBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8SFNMQTxUPj4gewog
ICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOwogCkBAIC0zNzksNiArNDY2LDggQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRnVuY3Rvcj4gYwogICAgICAgICByZXR1cm4gc3RkOjpp
bnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xpbmVhclNSR0JBKGNvbXBv
bmVudHMpKTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJu
IHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNEaXNwbGF5UDMo
Y29tcG9uZW50cykpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4g
c3RkOjppbnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xhYihjb21wb25l
bnRzKSk7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5jcHAJ
KHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yU3BhY2VDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDIwIEBAIENHQ29s
b3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4gZGlzcGxheVAz
Q29sb3JTcGFjZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VSZWYoKQorewor
ICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJlZjsKKyAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
IHsKKyNpZiBIQVZFKExBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJQ1MpCisgICAgICAgIGxhYkNv
bG9yU3BhY2VSZWYgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlR2Vu
ZXJpY0xhYik7CisjZWxzZQorICAgICAgICBsYWJDb2xvclNwYWNlUmVmID0gc1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKKyNlbmRpZgorICAgIH0pOworICAgIHJldHVybiBsYWJDb2xvclNwYWNlUmVmOwor
fQorCiBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigpCiB7CiAgICAg
c3RhdGljIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgJ
KHJldmlzaW9uIDI3MTExMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yU3BhY2VDRy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFj
ZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3Bh
Y2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNw
YWNlUmVmKCk7CitXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJl
ZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKIAogc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDb2xvclNw
YWNlKENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTQ1LDYgKzQ2LDggQEAgc3RhdGljIGlubGlu
ZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDbwogICAgICAgICByZXR1cm4gbGluZWFyUkdCQ29s
b3JTcGFjZVJlZigpOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICBy
ZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFi
OgorICAgICAgICByZXR1cm4gbGFiQ29sb3JTcGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI3MTE0NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAxLTA1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBjb2xvcihs
YWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAg
ICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUGFyc2luZyB0
ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6IFVuc2tpcCBsYWIvbGNoIHRlc3RzLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFi
LWNvbG9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmct
bGFiLWNvbG9ycy5odG1sOiBBZGRlZC4KKwogMjAyMS0wMS0wNSAgTWFudWVsIFJlZ28gQ2FzYXNu
b3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbc2VsZWN0b3JzXSA6Zm9jdXMgc2hv
dWxkIG1hdGNoIGluc2lkZSB0aGUgZm9jdXMgZXZlbnQKSW5kZXg6IExheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwko
cmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2lu
ZyBjb3B5KQpAQCAtMjAxNCwyMiArMjAxNCw2IEBAIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1wb3J0
ZWQvdzNjL3dlYi1wbGEKIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL3Q0MjUtaHNsYS1vbnNjcmVlbi1tdWx0aXBsZS1ib3hl
cy1jLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0ODgwMSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDQyNS1oc2xhLW9uc2NyZWVu
LWIueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIAotIyBsYWIvbGNoIG5vdCBzdXBwb3J0
ZWQKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAx
Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDAyLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWwgWyBTa2lwIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1Lmh0bWwgWyBT
a2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA2Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sYWItMDA3Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAyLmh0bWwgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAzLmh0bWwg
WyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
Y2gtMDA0Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb2xvci9sY2gtMDA1Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3Lmh0bWwgWyBTa2lwIF0K
LQogIyBJbml0aWFsIGZhaWx1cmVzIG9uIHRoZSBpbXBvcnQgb2YgY3NzLWNvbG9yCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDMxLWNvbG9yLXRleHQtYS54
aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFy
c2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiBsYWIsIGxj
aCBhbmQgZ3JheSBjb2xvcnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitsYWIo
KQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDApIikg
aXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgLyAxKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8g
MC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAg
MTAvMC41KSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC81MCUpIikgaXMgImxhYigyMCUgMCAxMCAv
IDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwMCUg
MCAxMC81MCUpIikgaXMgImxhYig0MDAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTE2MCAxNjApIikgaXMgImxhYig1MCUgLTE2
MCAxNjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUg
LTIwMCAyMDApIikgaXMgImxhYig1MCUgLTIwMCAyMDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAtMTAlKSIpIGlzICJsYWIoMCUgMCAwIC8g
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAv
IDExMCUpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDAgLyAzMDAlKSIpIGlzICJsYWIoMCUgMCAwKSIKKworbGNoKCkK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnKSIp
IGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMCUgMCAwZGVnIC8gMSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDAuNSkiKSBpcyAibGFiKDAl
IDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDEwMCUgMjMwIDBkZWcgLyAwLjUpIikgaXMgImxhYigxMDAlIDIzMCAwIC8gMC41KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzAuNSki
KSBpcyAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvNTAlKSIpIGlzICJsYWIo
MjAlIDQ2Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0xMCUpIikgaXMgImxhYigxMCUgMTgu
NzkzODUyIDYuODQwNDAyNiAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2
Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgx
MCUgMjAgMS4yOHJhZCkiKSBpcyAibGFiKDEwJSA1LjczNDMwMjUgMTkuMTYwMzE2KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRlZykiKSBp
cyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkz
ODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDEwJSAyMCA3NDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwZGVn
KSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorCitncmF5KCkKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDApIikgaXMgImxhYigwJSAwIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgLyAxMCUp
IikgaXMgImxhYigxMCUgMCAwIC8gMC4xKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJncmF5KDEyMCAvIDEwJSkiKSBpcyAibGFiKDEyMCUgMCAwIC8gMC4xKSIKKwor
VGVzdCBpbnZhbGlkIHZhbHVlcworUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxhYigwIDAgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMGRlZykiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAg
LyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitGQUlMIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSkiKSBzaG91bGQgYmUgcmdiYSgwLCAwLCAw
LCAwKS4gV2FzIGxhYigwJSAwIDAgLyAwLjUpLgorRkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTApIikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCku
IFdhcyBsYWIoMjAlIDkuODQ4MDc4IDEuNzM2NDgxOCkuCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiKSBpcyAicmdiYSgwLCAwLCAw
LCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEw
IDEwZGVnIDEwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDAp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAgMTAgMTAp
IikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiZ3JheSgxMCAxMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAgMTApIikgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3Jz
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWIt
Y29sb3JzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NyBAQAorPGh0bWw+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhlIHBhcnNp
bmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLiIpOworCisgICAgZnVuY3Rpb24gY29tcHV0
ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZGl2KTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7
CisgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFBy
b3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGRpdik7CisgICAgICAgIHJldHVybiBjb21wdXRlZFZhbHVlOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBkaXYuc3R5bGUuc2V0UHJv
cGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQo
cHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAn
IiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5
LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IG51bGwp
CisgICAgICAgICAgICBleHBlY3RlZCA9ICIiOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhw
ZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdsYWIoKScpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSkiLCAibGFiKDAl
IDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAg
MCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvNTAl
KSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIsICJsYWIoNDAwJSAwIDEwIC8gMC41KSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0xNjAgMTYwKSIs
ICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAlIC0yMDAgMjAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEwJSkiLCAibGFiKDAl
IDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigw
JSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiLCAibGFiKDAlIDAgMCkiKTsKKworICAg
IGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnbGNoKCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDEpIiwgImxhYigw
JSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAw
IDBkZWcgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIsICJsYWIoMTAwJSAy
MzAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDIwJSA1MCAyMGRlZy8wLjUpIiwgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAxMDA2IC8gMC41KSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVn
LzUwJSkiLCAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAtMTAlKSIsICJs
YWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiLCAibGFiKDEwJSAxOC43
OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUgNS43MzQzMDI1IDE5LjE2MDMxNikiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAzODBkZWcp
IiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1
MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgxMCUgMjAgNzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMGRlZykiLCAi
bGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworCisgICAgZGVidWcoJycpOworICAgIGRl
YnVnKCdncmF5KCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3Jh
eSgwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJncmF5KDEwIC8gMTAlKSIsICJsYWIoMTAlIDAgMCAvIDAuMSkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMjAgLyAxMCUpIiwgImxhYigxMjAlIDAg
MCAvIDAuMSkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHZh
bHVlcycpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCAwIDAp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDAlIDAlIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIsICJyZ2JhKDAsIDAsIDAsIDAp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMTAl
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcpIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDQwJSAw
IDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSkiLCAi
cmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0bGVzcyB6ZXJvIGFuZ2xlLiBDdXJyZW50bHkg
ZmFpbHM6IHdlYmtpdC5vcmcvYi8yMDU3MzMKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDIwJSAxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOyAvLyBObyB1bml0
bGVzcyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJraXQub3JnL2IvMjA1NzMzCisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTApIiwgInJn
YmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworCisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAlKSIsICJyZ2JhKDAsIDAs
IDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAg
MTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAiZ3JheSgxMCAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAgMTApIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKworPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGFiLTAwMS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDI3MTA5MikKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOSArMSwxMCBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08dGl0bGU+R3JlZW4gdGV4dCByZWZlcmVuY2U8L3RpdGxlPgorPHRpdGxlPkdyZWVu
IHNxdWFyZSByZWZlcmVuY2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6ICMw
MDgwMDB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MDAwOyB3aWR0aDogMTJl
bTsgaGVpZ2h0OiAxMmVtO30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+
VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGdyZWVuPC9wPgorICAgIDxwPlRlc3QgcGFzc2Vz
IGlmIHlvdSBzZWUgYSBncmVlbiBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxkaXYgY2xh
c3M9InRlc3QiPjwvZGl2PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGFiLTAwMS5odG1sCShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDExICszLDE1IEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNp
ZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJp
cyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFi
LWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJncmVlbnRleHQtcmVmLmh0bWwiPgorPGxp
bmsgcmVsPSJtYXRjaCIgaHJlZj0iZ3JlZW5zcXVhcmUtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0i
YXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhIj4KIDxzdHlsZT4KLSAgICAudGVz
dCB7Y29sb3I6IGxhYig0Ni4yNzclIC00Ny41NjIgNDguNTgzKX0gLyogZ3JlZW4gKHNSR0IgIzAw
ODAwMCkgY29udmVydGVkIHRvIExhYiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjog
cmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsg
YmFja2dyb3VuZC1jb2xvcjogIzAwODAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJn
aW4tYm90dG9tOiAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDQ2LjI3NyUg
LTQ3LjU2MiA0OC41ODMpfSAvKiBncmVlbiAoc1JHQiAjMDA4MDAwKSBjb252ZXJ0ZWQgdG8gTGFi
ICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlm
IHRoaXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEg
Z3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0icmVmIj4gPC9wPgor
ICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDItZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAy
NzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGFiLTAwMi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkg
KzEsMTAgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PkJsYWNrIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5CbGFjayBibG9jayByZWZlcmVu
Y2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6ICMwMDAwMDB9CisgICAgLnRl
c3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVt
O30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYg
dGhpcyB0ZXh0IGlzIGJsYWNrPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBi
bGFjayBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgog
PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMi5odG1s
CShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
LDEyICszLDEzIEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8
L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1h
aWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9
Im1hdGNoIiBocmVmPSJibGFja3RleHQtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJl
Zj0iYmxhY2tibG9jay1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Imxh
YigpIHdpdGggbm8gYWxwaGEiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQot
ICAgIC50ZXN0IHsgY29sb3I6IGxhYigwJSAwIDApfSAvKiBibGFjayAoc1JHQiAjMDAwMDAwKSBj
b252ZXJ0ZWQgdG8gTGFiICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdp
ZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6
IGxhYigwJSAwIDApIH0gLyogYmxhY2sgKHNSR0IgIzAwMDAwMCkgY29udmVydGVkIHRvIExhYiAq
LwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0
aGlzIHRleHQgaXMgYmxhY2s8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIGJs
YWNrIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8
L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGFiLTAwMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDAzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTA5MikKKysrIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2hpdGUgdGV4dCByZWZlcmVuY2U8L3RpdGxl
PgorPHRpdGxlPldoaXRlIGJsb2NrIHJlZmVyZW5jZTwvdGl0bGU+CiA8c3R5bGU+Ci0gICAgLnRl
c3QgeyBjb2xvcjogI0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgcGFkZGluZzogM3B4
fQorICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9CisgICAgLnRlc3QgeyBiYWNr
Z3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30KIDwvc3R5
bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0
IGlzIHdoaXRlPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSB3aGl0ZSBzcXVh
cmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJ
bmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xhYi0wMDMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sCShyZXZpc2lv
biAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDEyICszLDE0
IEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgog
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJp
c0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBo
cmVmPSJ3aGl0ZXRleHQtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0id2hpdGVi
bG9jay1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxhYigpIHdpdGgg
bm8gYWxwaGEiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgYmFja2dyb3VuZC1j
b2xvcjogIzMzMzsgcGFkZGluZzogM3B4O30KLSAgICAudGVzdCB7IGNvbG9yOiBsYWIoMTAwJSAw
IDApO30gLyogd2hpdGUgKHNSR0IgI0ZGRkZGRikgY29udmVydGVkIHRvIExhYiAqLworICAgIGJv
ZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7IGJhY2tn
cm91bmQtY29sb3I6IGxhYigxMDAlIDAgMCk7fSAvKiB3aGl0ZSAoc1JHQiAjRkZGRkZGKSBjb252
ZXJ0ZWQgdG8gTGFiICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRl
c3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyB3aGl0ZTwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBp
ZiB5b3Ugc2VlIGEgd2hpdGUgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0i
dGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0LWV4cGVjdGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xhYi0wMDQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMDkyKQorKysgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFu
ZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzUuNjIlIDMw
LjQ1JSA0Ny41NiUpfSAvKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAu
dGVzdCB7IGJhY2tncm91bmQtY29sb3I6cmdiKDc1LjYyJSAzMC40NSUgNDcuNTYlKTsgd2lkdGg6
IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxhYig1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAq
LwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMg
b2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0ibWF0
Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBj
bGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4K
KyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0
d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0idGVz
dCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDQuaHRtbAkocmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNiwxMiArNiwxMiBAQAogPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGFiLTAwNC1y
ZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxhYigpIHdpdGggbm8gYWxw
aGEsIHBvc2l0aXZlIGEgYXhpcyI+CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogcmVkOyB9
Ci0gICAgLnRlc3QgeyBjb2xvcjogbGFiKDUwJSA1MCAwKX0KLSAgICAubWF0Y2ggeyBjb2xvcjog
cmdiKDc1LjYyJSwgMzAuNDUlLCA0Ny41NiUpfSAvKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRv
IHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07
IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6
IHJnYig3NS42MiUsIDMwLjQ1JSwgNDcuNTYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBt
YXJnaW4tYm90dG9tOiAwfS8qIGxhYig1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAg
IC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDUwJSA1MCAwKX0gCiA8L3N0eWxlPgogPGJv
ZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBh
cmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4g
RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxs
ZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNz
ZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2Yg
ZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBj
bGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1LWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMDkyKQor
KysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xhYi0wMDUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBA
CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcg
TGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTAu
NzklLCA3NS41NSUsIDY2LjQwJSl9IC8qIGxhYig3MCAtNDUgMCkgY29udmVydGVkIHRvIHNSR0Ig
Ki8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwgNjYu
NDAlKSB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30gLyogbGFiKDcwIC00NSAwKSBjb252ZXJ0
ZWQgdG8gc1JHQiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRo
ZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8
cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwv
cD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVy
IHRleHQuIDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFy
ZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8
cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xhYi0wMDUuaHRtbAkocmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNiwxMiArNiwxMiBAQAogPGxpbmsgcmVsPSJtYXRjaCIgaHJl
Zj0ibGFiLTAwNS1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxhYigp
IHdpdGggbm8gYWxwaGEsIG5lZ2F0aXZlIGEgYXhpcyI+CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBj
b2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjogbGFiKDcwJSAtNDUgMCl9Ci0gICAgLm1h
dGNoIHsgY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwgNjYuNDAlKX0gLyogbGFiKDcwIC00NSAw
KSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVk
OyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDEwLjc5JSwgNzUuNTUlLCA2Ni40MCUpOyB3aWR0aDogMTJlbTsg
aGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxhYig3MCAtNDUgMCkgY29udmVydGVk
IHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxhYig3MCUgLTQ1IDAp
fSAKIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVz
IG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9InRl
c3QiPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBj
bGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4K
KyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0
d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0icmVm
Ij4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0w
MDYtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi1leHBlY3RlZC5odG1sCShy
ZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDEwICsyLDkgQEAKIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5DU1MgQ29s
b3IgNDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8c3R5bGU+Ci0gICAgLm1hdGNo
IHsgY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpfSAvKiBsYWIoNzAgMCA3MCkgY29u
dmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYig3Ni42
MiUsIDY2LjM2JSwgNS41OCUpIHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNzAg
MCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0
IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xv
ci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVy
IHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBh
IHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9y
cy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
Ni5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2Lmh0bWwJKHJldmlzaW9uIDI3MTA5MikKKysr
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sYWItMDA2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTIgQEAKIDxsaW5rIHJl
bD0ibWF0Y2giIGhyZWY9ImxhYi0wMDYtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBwb3NpdGl2ZSBiIGF4aXMiPgogPHN0eWxlPgot
ICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxhYig3MCUgMCA3
MCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpfSAvKiBs
YWIoNzAgMCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQt
Y29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAg
LnJlZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpOyB3aWR0
aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxhYig3MCAwIDcwKSBj
b252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDcw
JSAwIDcwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3
byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNs
YXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0g
ICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFu
ZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xh
c3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sYWItMDA3LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDctZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDctZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+
Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAg
IC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxhYig1NSAw
IC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6
IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKX0gd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9
IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4K
LSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0
aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMg
aWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlm
ZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGFiLTAwNy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA3Lmh0bWwJKHJldmlzaW9u
IDI3MTA5MikKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sYWItMDA3Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTIg
QEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDctcmVmLmh0bWwiPgogPG1ldGEgbmFt
ZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBuZWdhdGl2ZSBiIGF4aXMi
PgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6
IGxhYig1NSUgMCAtNjApfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUs
IDkyLjc2JSl9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVz
dCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJn
aW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMi44MSUsIDUzLjEw
JSwgOTIuNzYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfSAv
KiBsYWIoNTUgMCAtNjApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBsYWIoNTUlIDAgLTYwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVz
dCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29s
b3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVy
IHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBh
IHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9y
cy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwv
cD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEtZXhw
ZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDExIEBACiA8IURPQ1RZUEUgaHRt
bD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5HcmVlbiB0ZXh0IHJlZmVyZW5jZTwv
dGl0bGU+Cis8dGl0bGU+R3JlZW4gYmxvY2sgcmVmZXJlbmNlPC90aXRsZT4KIDxzdHlsZT4KKyAg
ICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6ICMwMDgwMDA7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6
IDEyZW07fQogICAgIC50ZXN0IHsgY29sb3I6ICMwMDgwMDB9CiA8L3N0eWxlPgogPGJvZHk+Ci0g
ICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4K
KyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVk
LjwvcD4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Ij48L2Rpdj4KIDwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gt
MDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEuaHRtbAkocmV2aXNpb24gMjcxMDkyKQor
KysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMSArMywxNSBAQAogPHRpdGxl
PkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4K
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xv
ci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZ3JlZW50
ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImdyZWVuYmxvY2stcmVmLmh0
bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5vIGFscGhhIj4K
IDxzdHlsZT4KLSAgICAudGVzdCB7Y29sb3I6IGxjaCg0Ni4yNzclIDY3Ljk0NSAxMzQuNDI3KX0g
LyogZ3JlZW4gKHNSR0IgIzAwODAwMCkgY29udmVydGVkIHRvIExDSCAqLworICAgIC50ZXN0IHsg
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10
b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogIzAwODAwMDsgd2lkdGg6IDEyZW07
IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1j
b2xvcjogbGNoKDQ2LjI3NyUgNjcuOTQ1IDEzNC40MjcpfSAvKiBncmVlbiAoc1JHQiAjMDA4MDAw
KSBjb252ZXJ0ZWQgdG8gTENIICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRl
c3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBh
c3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBj
bGFzcz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi1leHBlY3RlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDkgKzEsMTAgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPkJsYWNrIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5C
bGFjayBibG9jayByZWZlcmVuY2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6
ICMwMDAwMDB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB3aWR0aDog
MTJlbTsgaGVpZ2h0OiAxMmVtO30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVz
dCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGJsYWNrPC9wPgorICAgIDxwPlRlc3QgcGFz
c2VzIGlmIHlvdSBzZWUgYSBibGFjayBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNs
YXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDIuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGNoLTAwMi5odG1sCShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDEyICszLDEzIEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNp
ZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJp
cyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFi
LWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJibGFja3RleHQtcmVmLmh0bWwiPgorPGxp
bmsgcmVsPSJtYXRjaCIgaHJlZj0iYmxhY2tibG9jay1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJh
c3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEiPgogPHN0eWxlPgotICAgIC50ZXN0
IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxjaCgwJSAwIDApfSAvKiBibGFj
ayAoc1JHQiAjMDAwMDAwKSBjb252ZXJ0ZWQgdG8gTENIICovCisgICAgLnRlc3QgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7
IGJhY2tncm91bmQtY29sb3I6IGxjaCgwJSAwIDApIH0gLyogYmxhY2sgKHNSR0IgIzAwMDAwMCkg
Y29udmVydGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0
Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgYmxhY2s8L3A+CisgICAgPHA+VGVzdCBwYXNz
ZXMgaWYgeW91IHNlZSBhIGJsYWNrIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xh
c3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDAzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTA5MikKKysr
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sY2gtMDAzLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSwxMSBAQAog
PCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2hpdGUgdGV4
dCByZWZlcmVuY2U8L3RpdGxlPgorPHRpdGxlPldoaXRlIGJsb2NrIHJlZmVyZW5jZTwvdGl0bGU+
CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogI0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjog
IzMzMzsgcGFkZGluZzogM3B4fQorICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMTJlbTsgaGVp
Z2h0OiAxMmVtO30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBw
YXNzZXMgaWYgdGhpcyB0ZXh0IGlzIHdoaXRlPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgYSB3aGl0ZSBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0
Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNo
LTAwMy5odG1sCShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC02LDkgKzYsMTEgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9IndoaXRldGV4dC1y
ZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxw
aGEiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgYmFja2dyb3VuZC1jb2xvcjog
IzMzMzsgcGFkZGluZzogM3B4O30KLSAgICAudGVzdCB7IGNvbG9yOiBsY2goMTAwJSAwIDApO30g
Lyogd2hpdGUgKHNSR0IgI0ZGRkZGRikgY29udmVydGVkIHRvIExDSCAqLworICAgIGJvZHkgeyBi
YWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQt
Y29sb3I6IGxjaCgxMDAlIDAgMCk7fSAvKiB3aGl0ZSAoc1JHQiAjRkZGRkZGKSBjb252ZXJ0ZWQg
dG8gTGFiICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFz
c2VzIGlmIHRoaXMgdGV4dCBpcyB3aGl0ZTwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ug
c2VlIGEgd2hpdGUgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+
IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQt
ZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8
L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzUuNjIlIDMwLjQ1JSA0
Ny41NiUpfSAvKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7
IGJhY2tncm91bmQtY29sb3I6cmdiKDc1LjYyJSAzMC40NSUgNDcuNTYlKTsgd2lkdGg6IDEyZW07
IGhlaWdodDogMTJlbTt9IC8qIGxjaCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVu
cyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLwogPC9zdHlsZT4KIDxib2R5PgotICAg
IDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBz
YW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0
LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5
b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJl
bnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sY2gtMDA0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQuaHRtbAkocmV2aXNpb24gMjcx
MDkyKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxNSArMywxNSBAQAog
PHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMu
b3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0i
bGFiLTAwNC1yZWYuaHRtbCI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJsY2gtMDA0LXJlZi5o
dG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGNoKCkgd2l0aCBubyBhbHBoYSwg
cG9zaXRpdmUgYSBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAg
ICAudGVzdCB7IGNvbG9yOiBsY2goNTAlIDUwIDApfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2Io
NzUuNjIlLCAzMC40NSUsIDQ3LjU2JSl9IC8qIGxjaCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JH
QiAoaGFwcGVucyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLworICAgIC50ZXN0IHsg
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10
b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc1LjYyJSwgMzAuNDUlLCA0
Ny41NiUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxj
aCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVucyB0byBiZSB0aGUgc2FtZSBhcyBs
YWIoNTAgNTAgMCkqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDUwJSA1MCAw
KX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5l
cyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0
ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAg
Y2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3Qg
dHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJl
ZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gt
MDA1LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUtZXhwZWN0ZWQuaHRtbAko
cmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENv
bG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRj
aCB7IGNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSl9IC8qIGxhYig3MCAtNDUgMCkg
Y29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYigx
MC43OSUsIDc1LjU1JSwgNjYuNDAlKSB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30gLyogbGNo
KDcwIDQ1IDE4MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8
cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2Ft
ZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRl
eHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4g
RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91
IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50
IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGNoLTAwNS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA1Lmh0bWwJKHJldmlzaW9uIDI3MTA5
MikKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sY2gtMDA1Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTUgKzMsMTUgQEAKIDx0
aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExpbGxleSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9y
ZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mt
Y29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNoIj4KLTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9Imxh
Yi0wMDUtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGNoLTAwNS1yZWYuaHRt
bCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEsIG5l
Z2F0aXZlIGEgYXhpcyI+CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogcmVkOyB9Ci0gICAg
LnRlc3QgeyBjb2xvcjogbGNoKDcwJSA0NSAtMTgwKX0KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdi
KDEwLjc5JSwgNzUuNTUlLCA2Ni40MCUpfSAvKiBsY2goNzAgNDUgMTgwKSBjb252ZXJ0ZWQgdG8g
c1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsg
aGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjog
cmdiKDEwLjc5JSwgNzUuNTUlLCA2Ni40MCUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1h
cmdpbi1ib3R0b206IDB9IC8qIGxjaCg3MCA0NSAxODApIGNvbnZlcnRlZCB0byBzUkdCICovCisg
ICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsY2goNzAlIDQ1IC0xODApfSAKIDwvc3R5bGU+
CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0
ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9InRlc3QiPkZpbGxlciB0
ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2gi
PkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAgICA8cD5UZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xl
cyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0icmVmIj4gPC9wPgorICAg
IDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDYtZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyNzEw
OTIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGNoLTAwNi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEwICsy
LDkgQEAKIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lm
eWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8c3R5bGU+Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJn
Yig3Ni42MiUsIDY2LjM2JSwgNS41OCUpfSAvKiBsYWIoNzAgMCA3MCkgY29udmVydGVkIHRvIHNS
R0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwg
NS41OCUpIHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsY2goNzAgNzAgOTApIGNvbnZl
cnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYg
dGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAg
IDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4g
PC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxs
ZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1
YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAg
IDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDYuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGNoLTAwNi5odG1sCShyZXZpc2lvbiAyNzEwOTIpCisrKyBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE1ICszLDE1IEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6
IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlp
bmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJsYWItMDA2LXJlZi5odG1sIj4K
KzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxjaC0wMDYtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0i
YXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5vIGFscGhhLCBwb3NpdGl2ZSBiIGF4aXMiPgog
PHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxj
aCg3MCUgNzAgOTApfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzYuNjIlLCA2Ni4zNiUsIDUu
NTglKX0gLyogbGNoKDcwIDcwIDkwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsg
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10
b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1
LjU4JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0gLyogbGNo
KDcwIDcwIDkwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1j
b2xvcjogbGNoKDcwJSA3MCA5MCl9IAogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFz
c2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwv
cD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIg
dGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5n
bGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9w
PgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8
L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwNy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gt
MDA3LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTA5MikKKysrIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3LWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRm
LTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4K
IDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDEyLjgxJSwgNTMuMTAlLCA5Mi43NiUp
fSAvKiBsYWIoNTUgMCAtNjApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IHdpZHRoOiAxMmVtOyBo
ZWlnaHQ6IDEyZW07fSAvKiBsY2goNTYgNTggMjc1KSBjb252ZXJ0ZWQgdG8gc1JHQiAqLwogPC9z
dHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmls
bGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZp
bGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFzcz0i
bWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAgICA8
cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28gcmVj
dGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwv
cD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDcu
aHRtbAkocmV2aXNpb24gMjcxMDkyKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDcuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMywxNSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQg
TENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVm
PSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsg
cmVsPSJtYXRjaCIgaHJlZj0ibGFiLTAwNy1yZWYuaHRtbCI+Cis8bGluayByZWw9Im1hdGNoIiBo
cmVmPSJsY2gtMDA3LXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGFi
KCkgd2l0aCBubyBhbHBoYSwgbmVnYXRpdmUgYiBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7
IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsY2goNTYlIDU4IDI3NSl9Ci0gICAg
Lm1hdGNoIHsgY29sb3I6IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKX0gLyogbGNoKDU2IDU4
IDI3NSkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6
IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7
IGJhY2tncm91bmQtY29sb3I6IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKTsgd2lkdGg6IDEy
ZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfSAvKiBsY2goNTYgNTggMjc1KSBjb252
ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDU2JSA1
OCAyNzUpfSAKIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdv
IGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xh
c3M9InRlc3QiPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAg
ICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQu
IDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5k
IG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFz
cz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417027</attachid>
            <date>2021-01-05 12:39:14 -0800</date>
            <delta_ts>2021-01-10 11:40:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210105123913.patch</filename>
            <type>text/plain</type>
            <size>69121</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzExNjMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTA1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBj
b2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgyNjQwNzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisgICAgICAgIEFkZCBIQVZFX0xBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJ
Q1Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIENvcmVHcmFwaGljcworICAgICAgICBvbiB0aGUg
c3lzdG1lIGhhcyBwcm9wZXIgc3VwcG9ydCBmb3IgY29udmVyc2lvbnMgdG8vZnJvbSB0aGUgTGFi
IGNvbG9yIHNwYWNlCisgICAgICAgIGFuZCBoYXMgYSByZXNvbHV0aW9uIGZvciByZGFyOi8vcHJv
YmxlbS81ODM2MDQ1NC4KKwogMjAyMC0xMi0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIFdURjo6TWFjaFNl
bWFwaG9yZSB0byB3YWl0IHdpdGggYSB0aW1lb3V0IGR1cmF0aW9uCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAkocmV2aXNpb24gMjcxMTYzKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTgxMywzICs4MTMsMTIgQEAKICAgICB8fCAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0MDQwMCkKICNkZWZp
bmUgSEFWRV9BVkNPTlRFTlRLRVlSRVFVRVNUX1BFTkRJTkdfUFJPVEVDVElPTl9TVEFUVVMgMQog
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkgXAorICAgIHx8ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShN
QUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAw
MCkgXAorICAgIHx8IChQTEFURk9STShXQVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDcwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQorLy8gUHJpb3IgdG8gdGhlc2UgcmVs
ZWFzZXMsIENvcmVHcmFwaGljcyBjb3VsZCBub3QgY29ycmVjdGx5IGNvbnZlcnQgZnJvbSBMYWIg
dG8gb3RoZXIgY29sb3Igc3BhY2VzCisvLyBkdWUgdG8gcmRhcjovL3Byb2JsZW0vNTgzNjA0NTQu
CisjZGVmaW5lIEhBVkVfTEFCX1NVUFBPUlRfSU5fQ09SRV9HUkFQSElDUyAxCisjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTE2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAxLTA1ICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3Jh
eSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgImxhYiIgYW5kICJsY2giIGtl
eXdvcmRzLgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZU9w
dGlvbmFsQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
OjpwYXJzZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpwYXJzZUxDSFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUdyYXlQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlQ29s
b3JGdW5jdGlvbik6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nICJsYWIoLi4uKSIs
ICJsY2goLi4uKSIsICJncmF5KC4uLikiCisgICAgICAgIGFuZCAiY29sb3IobGFiIC4uLikiLCBh
bGwgb2Ygd2hpY2ggY3JlYXRlIExhYjxmbG9hdD4gY29sb3JzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6Cisg
ICAgICAgIEFkZCBvdmVybG9hZCBvZiB0aGUgQ29sb3IgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBh
IExhYjxmbG9hdD4gbWF0Y2hpbmcgb3RoZXIKKyAgICAgICAgQ29sb3JTcGFjZSB0eXBlcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjb252ZXJ0RnJvbUQ1MFdoaXRlUG9pbnRUb0Q2NVdoaXRlUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydEZyb21ENjVXaGl0ZVBvaW50VG9ENTBXaGl0ZVBvaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnRvWFlaQSk6CisgICAgICAgIChXZWJDb3JlOjp0b0xhYik6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0xDSEEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yQ29udmVyc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9MQ0hBKToKKyAgICAgICAgQWRkIGNvbnZlcnNpb25zIHRvL2Zyb20gTGFiIHRvIEQ2
NSB3aGl0ZSBwb2ludCBYWVpBICh0aGUgd2hpdGUgcG9pbnQgd2UgZXhwZWN0IFhZWkEgdG8gYmUg
aW4pLCBhbmQgY29udmVyc2lvbgorICAgICAgICBmcm9tIExjaCB0by9mcm9tIExhYi4gCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemF0
aW9uRm9yQ1NTKToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb25Gb3JIVE1MKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAgQWRk
IHNlcmlhbGl6YXRpb24gZm9yIExhYiBjb2xvcnMuIFdlIGN1cnJlbnRseSBhbHdheXMgc2VyaWFs
aXplIHVzaW5nIHRoZSBsYWIoKQorICAgICAgICBub3RhdGlvbiwgd2hpY2ggYXBwZWFycyB0byBi
ZSBjb3JyZWN0IGZvciBhdCBsZWFzdCBjb2xvcnMgZGVjbGFyZWQgdXNpbmcgbGFiKCksCisgICAg
ICAgIGxjaCgpIGFuZCBncmF5KCkuIFVuY2xlYXIgaWYgaXQgaXMgY29ycmVjdCBmb3IgY29sb3Jz
IGRlY2xhcmVkIHdpdGggY29sb3IobGFiIC4uLikuCisgICAgICAgIE9wZW5lZCBodHRwczovL2dp
dGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNTgyNSB0byB0cmFjayBnZXR0aW5nIGEg
cmVzb2x1dGlvbgorICAgICAgICBmb3IgImNvbG9yKGxhYiAuLi4pIi4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0
b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oOgorICAgICAg
ICBBZGQgTGFiIGFzIGEgQ29sb3JTcGFjZSBhbmQgdGV4dCBzdHJlYW0gZHVtcGluZyBmb3IgaXQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYWI6OkxhYik6CisgICAgICAgIChXZWJDb3JlOjphc0NvbG9yQ29tcG9uZW50cyk6
CisgICAgICAgIChXZWJDb3JlOjphc0xhYik6CisgICAgICAgIEFkZCBMYWIgY29sb3IgdHlwZS4K
KworICAgICAgICAoV2ViQ29yZTo6TENIQTo6TENIQSk6CisgICAgICAgIChXZWJDb3JlOjphc0xD
SEEpOgorICAgICAgICBBZGQgTENIQSBjb2xvciB0eXBlLgorICAgICAgICAKKyAgICAgICAgKFdl
YkNvcmU6OmNhbGxXaXRoQ29sb3JUeXBlKToKKyAgICAgICAgQWRkIExhYiB0byBjYWxsV2l0aENv
bG9yVHlwZSBzaW5jZSBpdCBpcyBub3cgYSB2YWxpZCBDb2xvclNwYWNlLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxhYkNvbG9yU3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9y
U3BhY2VDRy5oOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkQ0dDb2xvclNwYWNlKToKKyAgICAg
ICAgQWRkIGFjY2Vzc29yIGZvciBnZW5lcmljIGxhYiAod2hpY2ggaXMgdGhlIEQ1MCB3aGl0ZSBw
b2ludCBjc3MgZXhwZWN0cykgQ0dDb2xvclNwYWNlUmVmCisgICAgICAgIGJ1dCBvbmx5IGlmIHdl
IGhhdmUgYSBDb3JlR3JhcGhpY3MgdGhhdCBzdXBwb3J0cyBpdCBwcm9wZXJseSwgd2hpY2ggaXMg
bWFjT1MgMTEgZXJhIG9yIG5ld2VyLgorCiAyMDIxLTAxLTA1ICBBbGljaWEgQm95YSBHYXJjw61h
ICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBVc2UgUmVmPD4gaW4g
QXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNpb24gMjcxMTYzKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEyNjQsNiArMTI2
NCw5IEBAIHJnYgogcmdiYQogaHNsCiBoc2xhCitsYWIKK2xjaAorLy8gZ3JheQogLy9jb2xvcgog
CiAvLyB0cmFuc2Zvcm0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHJldmlzaW9uIDI3MTE2MykKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzkyLDYgKzc5MiwxMDUgQEAgc3RhdGljIENvbG9yIHBhcnNlSFNMUGFy
YW1ldGVycyhDU1NQYXJzZQogICAgIHJldHVybiBjb252ZXJ0VG9Db21wb25lbnRCeXRlcyh0b1NS
R0JBKEhTTEE8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMF0pLCBzdGF0
aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVsxXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvckFy
cmF5WzJdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSB9KSk7CiB9CiAKK3N0YXRpYyBPcHRp
b25hbDxmbG9hdD4gcGFyc2VPcHRpb25hbEFscGhhKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
KQoreworICAgIGlmICghY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShyYW5nZSkpCisg
ICAgICAgIHJldHVybiAxLjBmOworCisgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9IGNvbnN1bWVQ
ZXJjZW50KHJhbmdlLCBWYWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoYWxwaGFQYXJhbWV0ZXIpCisg
ICAgICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUo
KSAvIDEwMC4wLCAwLjAsIDEuMCk7CisKKyAgICBhbHBoYVBhcmFtZXRlciA9IGNvbnN1bWVOdW1i
ZXIocmFuZ2UsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYWxwaGFQYXJhbWV0ZXIpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIGNsYW1wVG88ZmxvYXQ+KGFscGhh
UGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpLCAwLjAsIDEuMCk7Cit9CisKK3N0YXRpYyBDb2xvciBw
YXJzZUxhYlBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNT
RVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVMYWIpOworICAgIENTU1Bh
cnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisKKyAgICBhdXRv
IGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlm
ICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBhVmFsdWUgPSBj
b25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghYVZhbHVlKQorICAg
ICAgICByZXR1cm4geyB9OworICAgIGF1dG8gYlZhbHVlID0gY29uc3VtZU51bWJlcihhcmdzLCBW
YWx1ZVJhbmdlQWxsKTsKKyAgICBpZiAoIWJWYWx1ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFhbHBo
YSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIExhYjxmbG9hdD4geyBsaWdodG5lc3MtPmZsb2F0
VmFsdWUoKSwgYVZhbHVlLT5mbG9hdFZhbHVlKCksIGJWYWx1ZS0+ZmxvYXRWYWx1ZSgpLCAqYWxw
aGEgfTsKK30KKworc3RhdGljIENvbG9yIHBhcnNlTENIUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tl
blJhbmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9
PSBDU1NWYWx1ZUxjaCk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1
bmN0aW9uKHJhbmdlKTsKKworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnQoYXJn
cywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiBD
b2xvcigpOworCisgICAgYXV0byBjaHJvbWFWYWx1ZSA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFs
dWVSYW5nZUFsbCk7CisgICAgaWYgKCFjaHJvbWFWYWx1ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIC8vIEh1ZSBpcyA8bnVtYmVyPiBvciA8YW5nbGU+IChkaXNhbGxvd2luZyB1bml0bGVz
cyB6ZXJvKS4KKyAgICBhdXRvIGh1ZVZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIEhUTUxTdGFu
ZGFyZE1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgZmxvYXQgYW5nbGVJbkRlZ3Jl
ZXM7CisgICAgaWYgKCFodWVWYWx1ZSkgeworICAgICAgICBodWVWYWx1ZSA9IGNvbnN1bWVOdW1i
ZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgICAgIGlmICghaHVlVmFsdWUpCisgICAgICAg
ICAgICByZXR1cm4geyB9OworICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZhbHVlLT5kb3Vi
bGVWYWx1ZSgpOworICAgIH0gZWxzZQorICAgICAgICBhbmdsZUluRGVncmVlcyA9IGh1ZVZhbHVl
LT5jb21wdXRlRGVncmVlcygpOworCisgICAgYW5nbGVJbkRlZ3JlZXMgPSBmbW9kZihhbmdsZUlu
RGVncmVlcywgMzYwLjBmKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjApCisgICAgICAg
IGFuZ2xlSW5EZWdyZWVzICs9IDM2MC4wZjsKKworICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlv
bmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJu
IHRvTGFiKExDSEE8ZmxvYXQ+IHsgbGlnaHRuZXNzLT5mbG9hdFZhbHVlKCksIGNocm9tYVZhbHVl
LT5mbG9hdFZhbHVlKCksIGFuZ2xlSW5EZWdyZWVzLCAqYWxwaGEgfSk7Cit9CisKK3N0YXRpYyBD
b2xvciBwYXJzZUdyYXlQYXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorewor
ICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlR3JheSk7Cisg
ICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKKwor
ICAgIC8vIFVubGlrZSBsYWIoKSBhbmQgbGNoKCksIGdyYXkoKSB0YWtlcyBhIG51bWJlciwgYnV0
IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNDY0OC4KKyAg
ICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7Cisg
ICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGFscGhh
ID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgbGlnaHRuZXNzLT5mbG9hdFZhbHVlKCksIDAsIDAs
ICphbHBoYSB9OworfQorCiBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVy
cyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBBU1NFUlQocmFuZ2UucGVlaygp
LmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUNvbG9yKTsKQEAgLTgwNSw2ICs5MDQsOSBAQCBzdGF0
aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVyCiAgICAgY2FzZSBDU1NWYWx1ZURp
c3BsYXlQMzoKICAgICAgICAgY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OkRpc3BsYXlQMzsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29sb3JTcGFjZSA9
IENvbG9yU3BhY2U6OkxhYjsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CkBAIC04ODgsNiArOTkwLDE1IEBAIHN0YXRpYyBDb2xvciBwYXJz
ZUNvbG9yRnVuY3Rpb24oQ1NTUGFyc2UKICAgICBjYXNlIENTU1ZhbHVlSHNsYToKICAgICAgICAg
Y29sb3IgPSBwYXJzZUhTTFBhcmFtZXRlcnMoY29sb3JSYW5nZSwgY3NzUGFyc2VyTW9kZSk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNvbG9yID0gcGFy
c2VMYWJQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U1ZhbHVlTGNoOgorICAgICAgICBjb2xvciA9IHBhcnNlTENIUGFyYW1ldGVycyhjb2xvclJhbmdl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUdyYXk6CisgICAgICAgIGNvbG9y
ID0gcGFyc2VHcmF5UGFyYW1ldGVycyhjb2xvclJhbmdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDU1NWYWx1ZUNvbG9yOgogICAgICAgICBjb2xvciA9IHBhcnNlQ29sb3JGdW5jdGlvblBh
cmFtZXRlcnMoY29sb3JSYW5nZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCShyZXZpc2lvbiAyNzExNjMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2
ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vICAgIC0gNHggZmxvYXQgKDAtMSkgc1JH
QkEsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8vICAgIC0gNHgg
ZmxvYXQgKDAtMSkgTGluZWFyIHNSR0JBLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291bnRlZCBz
dWItb2JqZWN0CiAvLyAgICAtIDR4IGZsb2F0ICgwLTEpIERpc3BsYXlQMywgc3RvcmVkIGluIGEg
cmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAorLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBMYWIs
IHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8vCiAvLyBBZGRpdGlv
bmFsbHksIHRoZSBpbmxpbmUgOC1iaXQgc1JHQkEgY2FuIGhhdmUgYW4gb3B0aW9uYWwgInNlbWFu
dGljIiBiaXQgc2V0IG9uIGl0LAogLy8gd2hpY2ggaW5kaWNhdGVzIHRoZSBjb2xvciBvcmlnaW5h
dGVkIGZyb20gYSBDU1Mgc2VtYW50aWMgY29sb3IgbmFtZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAkocmV2aXNp
b24gMjcxMTYzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252
ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAi
Q29sb3JDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ29sb3JNYXRyaXguaCIKLSNpbmNsdWRlICJD
b2xvclR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0xMzQsNiArMTM0LDExOSBAQCBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3Qg
TGluZWFyRGlzcGxheVAzCiAgICAgcmV0dXJuIGFzWFlaQShsaW5lYXJEaXNwbGF5UDNUb1hZWk1h
dHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikp
KTsKIH0KIAorc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDUwV2hpdGVQb2ludFRvRDY1
V2hpdGVQb2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDovL3d3
dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisgICAg
Y29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKKyAgICAgICAgIDAu
OTU1NTc2NmYsIC0wLjAyMzAzOTNmLCAwLjA2MzE2MzZmLAorICAgICAgICAtMC4wMjgyODk1Ziwg
IDEuMDA5OTQxNmYsIDAuMDIxMDA3N2YsCisgICAgICAgICAwLjAxMjI5ODJmLCAtMC4wMjA0ODMw
ZiwgMS4zMjk5MDk4ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENTBUb0Q2NU1hdHJpeC50
cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKK30K
Kworc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDY1V2hpdGVQb2ludFRvRDUwV2hpdGVQ
b2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDovL3d3dy5icnVj
ZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisgICAgY29uc3Rl
eHByIENvbG9yTWF0cml4PDMsIDM+IEQ2NVRvRDUwTWF0cml4IHsKKyAgICAgICAgIDEuMDQ3ODEx
MmYsIDAuMDIyODg2NmYsIC0wLjA1MDEyNzBmLAorICAgICAgICAgMC4wMjk1NDI0ZiwgMC45OTA0
ODQ0ZiwgLTAuMDE3MDQ5MWYsCisgICAgICAgIC0wLjAwOTIzNDVmLCAwLjAxNTA0MzZmLCAgMC43
NTIxMzE2ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENjVUb0Q1ME1hdHJpeC50cmFuc2Zv
cm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKK30KKworc3Rh
dGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMjQzODkuMGY7CitzdGF0aWMgY29u
c3RleHByIGZsb2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOworc3RhdGljIGNvbnN0ZXhwciBm
bG9hdCBENTBXaGl0ZVZhbHVlc1tdID0geyAwLjk2NDIyZiwgMS4wZiwgMC44MjUyMWYgfTsKKwor
WFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAgIGZsb2F0
IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKKyAgICBmbG9hdCBmMCA9
IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOworICAgIGZsb2F0IGYyID0gZjEgLSAoY29sb3IuYiAv
IDIwMC4wZik7CisKKyAgICBhdXRvIGNvbXB1dGVYQW5kWiA9IFtdKGZsb2F0IHQpIHsKKyAgICAg
ICAgZmxvYXQgdEN1YmVkID0gdCAqIHQgKiB0OworICAgICAgICBpZiAodEN1YmVkID4gTEFCZSkK
KyAgICAgICAgICAgIHJldHVybiB0Q3ViZWQ7CisKKyAgICAgICAgcmV0dXJuICgxMTYuMGYgKiB0
IC0gMTYuMGYpIC8gTEFCazsKKyAgICB9OworCisgICAgYXV0byBjb21wdXRlWSA9IFtdKGZsb2F0
IHQpIHsKKyAgICAgICAgaWYgKHQgPiAoTEFCayAqIExBQmUpKSB7CisgICAgICAgICAgICBmbG9h
dCB2YWx1ZSA9ICh0ICsgMTYuMCkgLyAxMTYuMDsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZSAq
IHZhbHVlICogdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdCAvIExBQms7Cisg
ICAgfTsKKworICAgIGZsb2F0IHggPSBENTBXaGl0ZVZhbHVlc1swXSAqIGNvbXB1dGVYQW5kWihm
MCk7CisgICAgZmxvYXQgeSA9IEQ1MFdoaXRlVmFsdWVzWzFdICogY29tcHV0ZVkoY29sb3IubGln
aHRuZXNzKTsKKyAgICBmbG9hdCB6ID0gRDUwV2hpdGVWYWx1ZXNbMl0gKiBjb21wdXRlWEFuZFoo
ZjIpOworCisgICAgWFlaQTxmbG9hdD4gcmVzdWx0IHsgeCwgeSwgeiwgY29sb3IuYWxwaGEgfTsK
KworICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1IHdoaXRl
IHBvaW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUgcG9pbnQs
IHNvIGFzIGEgZmluYWwgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8gY29udmVy
dCB0aGUKKyAgICAvLyByZXN1bHRpbmcgWFlaQSBjb2xvciB0byBhIEQ2NSB3aGl0ZSBwb2ludC4K
KyAgICByZXR1cm4gY29udmVydEZyb21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBvaW50KHJlc3Vs
dCk7Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQorewor
ICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1IHdoaXRlIHBv
aW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUgcG9pbnQsIHNv
IGFzIGEgZmlyc3Qgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8gY29udmVydCB0
aGUKKyAgICAvLyBpbmNvbWluZyBYWVpBIGNvbG9yIHRvIEQ1MCB3aGl0ZSBwb2ludC4KKyAgICBh
dXRvIGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQgPSBjb252ZXJ0RnJvbUQ2NVdoaXRlUG9pbnRUb0Q1
MFdoaXRlUG9pbnQoY29sb3IpOworCisgICAgZmxvYXQgeCA9IGNvbG9yV2l0aEQ1MFdoaXRlUG9p
bnQueCAvIEQ1MFdoaXRlVmFsdWVzWzBdOworICAgIGZsb2F0IHkgPSBjb2xvcldpdGhENTBXaGl0
ZVBvaW50LnkgLyBENTBXaGl0ZVZhbHVlc1sxXTsKKyAgICBmbG9hdCB6ID0gY29sb3JXaXRoRDUw
V2hpdGVQb2ludC56IC8gRDUwV2hpdGVWYWx1ZXNbMl07CisKKyAgICBhdXRvIGZUcmFuc2Zvcm0g
PSBbXShmbG9hdCB2YWx1ZSkgeworICAgICAgICByZXR1cm4gdmFsdWUgPiBMQUJlID8gc3RkOjpj
YnJ0KHZhbHVlKSA6IChMQUJrICogdmFsdWUgKyAxNi4wZikgLyAxMTYuMGY7CisgICAgfTsKKwor
ICAgIGZsb2F0IGYwID0gZlRyYW5zZm9ybSh4KTsKKyAgICBmbG9hdCBmMSA9IGZUcmFuc2Zvcm0o
eSk7CisgICAgZmxvYXQgZjIgPSBmVHJhbnNmb3JtKHopOworCisgICAgZmxvYXQgbGlnaHRuZXNz
ID0gKDExNi4wZiAqIGYxKSAtIDE2LjBmOworICAgIGZsb2F0IGEgPSA1MDAuMGYgKiAoZjAgLSBm
MSk7CisgICAgZmxvYXQgYiA9IDIwMC4wZiAqIChmMSAtIGYyKTsKKworICAgIHJldHVybiB7IGxp
Z2h0bmVzcywgYSwgYiwgY29sb3JXaXRoRDUwV2hpdGVQb2ludC5hbHBoYSB9OworfQorCitMQ0hB
PGZsb2F0PiB0b0xDSEEoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cHM6
Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsYWItdG8tbGNoCisgICAgZmxvYXQgaHVlID0g
cmFkMmRlZyhhdGFuMihjb2xvci5iLCBjb2xvci5hKSk7CisKKyAgICByZXR1cm4geworICAgICAg
ICBjb2xvci5saWdodG5lc3MsCisgICAgICAgIHN0ZDo6aHlwb3QoY29sb3IuYSwgY29sb3IuYiks
CisgICAgICAgIGh1ZSA+PSAwID8gaHVlIDogaHVlICsgMzYwLAorICAgICAgICBjb2xvci5hbHBo
YQorICAgIH07Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgTENIQTxmbG9hdD4mIGNvbG9y
KQoreworICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGNoLXRvLWxh
YgorICAgIGZsb2F0IGh1ZUFuZ2xlUmFkaWFucyA9IGRlZzJyYWQoY29sb3IuaHVlKTsKKworICAg
IHJldHVybiB7CisgICAgICAgIGNvbG9yLmxpZ2h0bmVzcywKKyAgICAgICAgY29sb3IuY2hyb21h
ICogc3RkOjpjb3MoaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuY2hyb21hICogc3Rk
OjpzaW4oaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuYWxwaGEKKyAgICB9OworfQor
CiBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikKIHsKICAgICAv
LyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9jb2xvcl9zcGFjZS4KQEAgLTI2Myw2
ICszNzYsMTYgQEAgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBYWVpBPAogICAg
IHJldHVybiB0b0Rpc3BsYXlQMyh0b0xpbmVhckRpc3BsYXlQMyhjb2xvcikpOwogfQogCitYWVpB
PGZsb2F0PiB0b1hZWkEoY29uc3QgTENIQTxmbG9hdD4mIGNvbG9yKQoreworICAgIHJldHVybiB0
b1hZWkEodG9MYWIoY29sb3IpKTsKK30KKworTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IFhZWkE8
ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9MQ0hBKHRvTGFiKGNvbG9yKSk7Cit9CisK
IFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCiB7CiAgICAgcmV0
dXJuIHRvWFlaQSh0b1NSR0JBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkocmV2aXNpb24gMjcxMTYzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDIwIEBAIFdFQkNPUkVfRVhQT1JUIExpbmVhckRpc3Bs
YXlQMzxmbG9hdD4gdG8KIFdFQkNPUkVfRVhQT1JUIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNwbGF5
UDMoY29uc3QgTGluZWFyRGlzcGxheVAzPGZsb2F0PiYpOwogCiAKKy8vIExhYgorV0VCQ09SRV9F
WFBPUlQgWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQ
T1JUIExhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mKTsKKy8vIEFkZGl0aW9ucwor
V0VCQ09SRV9FWFBPUlQgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IExhYjxmbG9hdD4mKTsKKwor
CisvLyBMQ0hBCitXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTENIQTxm
bG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBYWVpBPGZs
b2F0PiYpOworLy8gQWRkaXRpb25zCitXRUJDT1JFX0VYUE9SVCBMYWI8ZmxvYXQ+IHRvTGFiKGNv
bnN0IExDSEE8ZmxvYXQ+Jik7CisKKwogLy8gSFNMQQogV0VCQ09SRV9FWFBPUlQgWFlaQTxmbG9h
dD4gdG9YWVpBKGNvbnN0IEhTTEE8ZmxvYXQ+Jik7CiBXRUJDT1JFX0VYUE9SVCBIU0xBPGZsb2F0
PiB0b0hTTEEoY29uc3QgWFlaQTxmbG9hdD4mKTsKQEAgLTkxLDYgKzEwNSw4IEBAIGNvbnN0ZXhw
ciBTUkdCQTxmbG9hdD4gdG9TUkdCQShjb25zdCBTUkcKIGNvbnN0ZXhwciBMaW5lYXJTUkdCQTxm
bG9hdD4gdG9MaW5lYXJTUkdCQShjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNvbG9yKSB7IHJl
dHVybiBjb2xvcjsgfQogY29uc3RleHByIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNwbGF5UDMoY29u
c3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIg
TGluZWFyRGlzcGxheVAzPGZsb2F0PiB0b0xpbmVhckRpc3BsYXlQMyhjb25zdCBMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KK2NvbnN0ZXhwciBMYWI8Zmxv
YXQ+IHRvTGFiKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQorY29u
c3RleHByIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBMQ0hBPGZsb2F0PiYgY29sb3IpIHsgcmV0
dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IEhTTEE8Zmxv
YXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBDTVlLQTxmbG9hdD4gdG9D
TVlLQShjb25zdCBDTVlLQTxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQogY29uc3Rl
eHByIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJu
IGNvbG9yOyB9CkBAIC0xMjEsNiArMTM3LDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IExpbmVh
ckRpc3BsYXlQMzxmbG8KICAgICByZXR1cm4gdG9MaW5lYXJEaXNwbGF5UDModG9YWVpBKGNvbG9y
KSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IExhYjxmbG9hdD4gdG9MYWIoY29uc3QgVCYg
Y29sb3IpCit7CisgICAgcmV0dXJuIHRvTGFiKHRvWFlaQShjb2xvcikpOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgVCYgY29sb3IpCit7CisgICAg
cmV0dXJuIHRvTENIQSh0b1hZWkEoY29sb3IpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
SFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFQmIGNvbG9yKQogewogICAgIHJldHVybiB0b0hTTEEo
dG9YWVpBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvclNlcmlhbGl6YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAJKHJldmlzaW9uIDI3MTE2MykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDggQEAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzZXJp
YWxpemF0aW9uKENvbG9yUwogICAgICAgICByZXR1cm4gImxpbmVhci1zcmdiIl9zOwogICAgIGNh
c2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gImRpc3BsYXktcDMiX3M7
CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHJldHVybiAibGFiIl9zOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYxLDYgKzE2MywyNyBAQCBTdHJp
bmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoCiAgICAgcmV0dXJuIHNlcmlhbGl6
YXRpb24oY29sb3IpOwogfQogCisvLyBMYWI8ZmxvYXQ+IG92ZXJsb2FkcworCitTdHJpbmcgc2Vy
aWFsaXphdGlvbkZvckNTUyhjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRw
czovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI3NlcmlhbGl6aW5nLWxhYi1sY2gKKworICAg
IGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOworICAgIGlmIChXVEY6OmFyZUVzc2Vu
dGlhbGx5RXF1YWwoYWxwaGEsIDEuMGYpKQorICAgICAgICByZXR1cm4gbWFrZVN0cmluZygibGFi
KCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgJyknKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygi
bGFiKCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgIiAvICIsIGFscGhhLCAnKScpOworfQorCitT
dHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7Cisg
ICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQorCitTdHJpbmcgc2VyaWFs
aXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7Cisg
ICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQogCiAvLyBDb2xvciBvdmVy
bG9hZHMKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJp
YWxpemF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTZXJpYWxpemF0aW9uLmgJKHJldmlzaW9uIDI3MTE2MykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERpc3BsYXlQMzsKK3RlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgTGFiOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMaW5lYXJTUkdCQTsKIHRlbXBs
YXRlPHR5cGVuYW1lPiBzdHJ1Y3QgU1JHQkE7CiAKQEAgLTU1LDYgKzU2LDEwIEBAIFdFQkNPUkVf
RVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1MKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBz
ZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7CiBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgRGlzcGxh
eVAzPGZsb2F0PiYpOwogCitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckNT
Uyhjb25zdCBMYWI8ZmxvYXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlv
bkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlh
bGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0IExhYjxmbG9hdD4mKTsKKwogV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgQ29sb3ImKTsKIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBDb2xvciYpOwogV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0
IENvbG9yJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNw
YWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvclNwYWNlLmNwcAkocmV2aXNpb24gMjcxMTYzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDkg
QEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQwogICAgIGNhc2UgQ29s
b3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICB0cyA8PCAiRGlzcGxheVAzIjsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHRzIDw8ICJMKmEqYiI7
CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCShyZXZpc2lvbiAyNzEx
NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogZW51bSBj
bGFzcyBDb2xvclNwYWNlIDogdWludDhfdCB7CiAgICAgU1JHQiwKICAgICBMaW5lYXJSR0IsCi0g
ICAgRGlzcGxheVAzCisgICAgRGlzcGxheVAzLAorICAgIExhYgogfTsKIAogV0VCQ09SRV9FWFBP
UlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIENvbG9yU3Bh
Y2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlw
ZXMuaAkocmV2aXNpb24gMjcxMTYzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsNiArMjQ3LDkzIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXIKIH0KIAogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgTGFiIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8TGFiPFQ+PiB7CisgICAg
dXNpbmcgQ29tcG9uZW50VHlwZSA9IFQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNvbG9y
U3BhY2UgPSBDb2xvclNwYWNlOjpMYWI7CisKKyAgICBjb25zdGV4cHIgTGFiKFQgbGlnaHRuZXNz
LCBUIGEsIFQgYiwgVCBhbHBoYSA9IENvbXBvbmVudFRyYWl0czxUPjo6bWF4VmFsdWUpCisgICAg
ICAgIDogbGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KKyAgICAgICAgLCBhIHsgYSB9CisgICAgICAg
ICwgYiB7IGIgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAgICB9CisKKyAg
ICBjb25zdGV4cHIgTGFiKCkKKyAgICAgICAgOiBMYWIgeyBDb21wb25lbnRUcmFpdHM8VD46Om1p
blZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46
Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlIH0KKyAgICB7CisgICAgfQor
CisgICAgVCBsaWdodG5lc3M7CisgICAgVCBhOworICAgIFQgYjsKKyAgICBUIGFscGhhOworfTsK
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29tcG9uZW50czxUPiBhc0Nv
bG9yQ29tcG9uZW50cyhjb25zdCBMYWI8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgYy5saWdodG5l
c3MsIGMuYSwgYy5iLCBjLmFscGhhIH07Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0
ZXhwciBMYWI8VD4gYXNMYWIoY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+JiBjKQoreworICAgIHJl
dHVybiB7IGNbMF0sIGNbMV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUg
VD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYWI8VD4mIGEsIGNvbnN0IExhYjxU
PiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoYSkgPT0gYXNDb2xvckNvbXBv
bmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJh
dG9yIT0oY29uc3QgTGFiPFQ+JiBhLCBjb25zdCBMYWI8VD4mIGIpCit7CisgICAgcmV0dXJuICEo
YSA9PSBiKTsKK30KKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTENIQSA6IENvbG9y
V2l0aEFscGhhSGVscGVyPExDSEE8VD4+IHsKKyAgICB1c2luZyBDb21wb25lbnRUeXBlID0gVDsK
KworICAgIGNvbnN0ZXhwciBMQ0hBKFQgbGlnaHRuZXNzLCBUIGNocm9tYSwgVCBodWUsIFQgYWxw
aGEgPSBDb21wb25lbnRUcmFpdHM8VD46Om1heFZhbHVlKQorICAgICAgICA6IGxpZ2h0bmVzcyB7
IGxpZ2h0bmVzcyB9CisgICAgICAgICwgY2hyb21hIHsgY2hyb21hIH0KKyAgICAgICAgLCBodWUg
eyBodWUgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAgICB9CisKKyAgICBj
b25zdGV4cHIgTENIQSgpCisgICAgICAgIDogTENIQSB7IENvbXBvbmVudFRyYWl0czxUPjo6bWlu
VmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6
bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUgfQorICAgIHsKKyAgICB9CisK
KyAgICBUIGxpZ2h0bmVzczsKKyAgICBUIGNocm9tYTsKKyAgICBUIGh1ZTsKKyAgICBUIGFscGhh
OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29tcG9uZW50czxU
PiBhc0NvbG9yQ29tcG9uZW50cyhjb25zdCBMQ0hBPFQ+JiBjKQoreworICAgIHJldHVybiB7IGMu
bGlnaHRuZXNzLCBjLmNocm9tYSwgYy5odWUsIGMuYWxwaGEgfTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY29uc3RleHByIExDSEE8VD4gYXNMQ0hBKGNvbnN0IENvbG9yQ29tcG9uZW50czxU
PiYgYykKK3sKKyAgICByZXR1cm4geyBjWzBdLCBjWzFdLCBjWzJdLCBjWzNdIH07Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgTENIQTxU
PiYgYSwgY29uc3QgTENIQTxUPiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMo
YSkgPT0gYXNDb2xvckNvbXBvbmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yIT0oY29uc3QgTENIQTxUPiYgYSwgY29uc3QgTENIQTxUPiYg
YikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBIU0xBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8SFNMQTxUPj4gewogICAgIHVzaW5n
IENvbXBvbmVudFR5cGUgPSBUOwogCkBAIC0zNzksNiArNDY2LDggQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgRnVuY3Rvcj4gYwogICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3Rk
Ojpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xpbmVhclNSR0JBKGNvbXBvbmVudHMpKTsK
ICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJuIHN0ZDo6aW52
b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNEaXNwbGF5UDMoY29tcG9uZW50
cykpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gc3RkOjppbnZv
a2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xhYihjb21wb25lbnRzKSk7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5jcHAJKHJldmlzaW9u
IDI3MTE2MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3Bh
Y2VDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDIwIEBAIENHQ29sb3JTcGFjZVJl
ZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFj
ZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VSZWYoKQoreworICAgIHN0YXRp
YyBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJlZjsKKyAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyNpZiBI
QVZFKExBQl9TVVBQT1JUX0lOX0NPUkVfR1JBUEhJQ1MpCisgICAgICAgIGxhYkNvbG9yU3BhY2VS
ZWYgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlR2VuZXJpY0xhYik7
CisjZWxzZQorICAgICAgICBsYWJDb2xvclNwYWNlUmVmID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsK
KyNlbmRpZgorICAgIH0pOworICAgIHJldHVybiBsYWJDb2xvclNwYWNlUmVmOworfQorCiBDR0Nv
bG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigpCiB7CiAgICAgc3RhdGljIENH
Q29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgJKHJldmlzaW9u
IDI3MTE2MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3Bh
Y2VDRy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwog
V0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsK
IFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7
CitXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJlZigpOwogV0VC
Q09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsK
IAogc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDb2xvclNwYWNlKENvbG9y
U3BhY2UgY29sb3JTcGFjZSkKQEAgLTQ1LDYgKzQ2LDggQEAgc3RhdGljIGlubGluZSBDR0NvbG9y
U3BhY2VSZWYgY2FjaGVkQ0dDbwogICAgICAgICByZXR1cm4gbGluZWFyUkdCQ29sb3JTcGFjZVJl
ZigpOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gZGlz
cGxheVAzQ29sb3JTcGFjZVJlZigpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAg
ICByZXR1cm4gbGFiQ29sb3JTcGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI3MTE2MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDIxLTAxLTA1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBjb2xvcihsYWIgLi4uKSBj
b2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBPcmln
aW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUGFyc2luZyB0ZXN0cyBmb3Ig
bGFiL2xjaC9ncmF5IGNvbG9ycy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFVuc2tp
cCBsYWIvbGNoIHRlc3RzLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9y
cy5odG1sOiBBZGRlZC4KKwogMjAyMS0wMS0wNSAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBw
bGUuY29tPgogCiAgICAgICAgIFsgQmlnIFN1ciBdIGZhc3QvaW1hZ2VzL3dlYnAtYXMtaW1hZ2Uu
aHRtbCBpcyBmYWlsaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI3MTE2MykK
KysrIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTIwMTcs
MjIgKzIwMTcsNiBAQCB3ZWJraXQub3JnL2IvMTQ4ODAxIGltcG9ydGVkL3czYy93ZWItcGxhCiB3
ZWJraXQub3JnL2IvMTQ4ODAxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci90NDI1LWhzbGEtb25zY3JlZW4tbXVsdGlwbGUtYm94ZXMtYy54aHQgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL3Q0MjUtaHNsYS1vbnNjcmVlbi1iLnhodCBbIEltYWdlT25s
eUZhaWx1cmUgUGFzcyBdCiAKLSMgbGFiL2xjaCBub3Qgc3VwcG9ydGVkCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMS5odG1sIFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMi5odG1s
IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGFiLTAwMy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGFiLTAwNC5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5odG1sIFsgU2tpcCBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5o
dG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGNoLTAwMS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sIFsgU2tpcCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC5odG1sIFsgU2tp
cCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAw
NS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGNoLTAwNi5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sIFsgU2tpcCBdCi0KICMgSW5pdGlhbCBmYWls
dXJlcyBvbiB0aGUgaW1wb3J0IG9mIGNzcy1jb2xvcgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL3QzMS1jb2xvci10ZXh0LWEueGh0IFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1s
YWItY29sb3JzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTkgQEAKK1Rlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3Jz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworbGFiKCkKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIpIGlzICJsYWIoMCUgMCAwKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSki
KSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKDAlIDAgMCAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiKSBpcyAibGFi
KDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMjAlIDAgMTAvNTAlKSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIpIGlzICJs
YWIoNDAwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoNTAlIC0xNjAgMTYwKSIpIGlzICJsYWIoNTAlIC0xNjAgMTYwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIpIGlzICJs
YWIoNTAlIC0yMDAgMjAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMCUgMCAwIC8gLTEwJSkiKSBpcyAibGFiKDAlIDAgMCAvIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIpIGlzICJsYWIo
MCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUg
MCAwIC8gMzAwJSkiKSBpcyAibGFiKDAlIDAgMCkiCisKK2xjaCgpCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiKSBpcyAibGFiKDAlIDAgMCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAv
IDEpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8g
MC41KSIpIGlzICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIikgaXMgImxhYigyMCUgNDYu
OTg0NjMgMTcuMTAxMDA2IC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzUwJSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2MyAxNy4x
MDEwMDYgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgxMCUgMjAgMjBkZWcgLyAtMTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYg
LyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIw
IDIwZGVnIC8gMTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIikg
aXMgImxhYigxMCUgNS43MzQzMDI1IDE5LjE2MDMxNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAzODBkZWcpIikgaXMgImxhYigxMCUgMTguNzkz
ODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDEwJSAyMCAtMzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVn
KSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMGRlZykiKSBpcyAibGFiKDEwJSAx
OC43OTM4NTIgNi44NDA0MDI2KSIKKworZ3JheSgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiZ3JheSgwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIC8gMTAlKSIpIGlzICJsYWIoMTAlIDAg
MCAvIDAuMSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgx
MjAgLyAxMCUpIikgaXMgImxhYigxMjAlIDAgMCAvIDAuMSkiCisKK1Rlc3QgaW52YWxpZCB2YWx1
ZXMKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCAwIDApIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDAlIDAlIDApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAw
IDAgMTAlKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcpIikg
aXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDQwJSAwIDBkZWcpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAgMCAwIC8gMC41KSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorRkFJTCBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgwJSAwIDAgLyAwLjUpIikgc2hvdWxkIGJlIHJnYmEoMCwgMCwgMCwgMCkuIFdhcyBsYWIoMCUg
MCAwIC8gMC41KS4KK0ZBSUwgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
MjAlIDEwIDEwKSIpIHNob3VsZCBiZSByZ2JhKDAsIDAsIDAsIDApLiBXYXMgbGFiKDIwJSA5Ljg0
ODA3OCAxLjczNjQ4MTgpLgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgyMCUgMTAgMTBkZWcgMTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCAvIDAuNSki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJncmF5KDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMTAg
MTApIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEwIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOTcgQEAKKzxodG1sPgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIG9mIGxhYiwgbGNoIGFu
ZCBncmF5IGNvbG9ycy4iKTsKKworICAgIGZ1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHks
IHZhbHVlKQorICAgIHsKKyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAg
IGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgICAgICB2YXIgY29t
cHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3Bl
cnR5KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICBy
ZXR1cm4gY29tcHV0ZWRWYWx1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpbm5lclN0eWxlKHBy
b3BlcnR5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2
YWx1ZSk7CisgICAgICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0
eSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwg
ZXhwZWN0ZWQpCisgICAgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVk
U3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVk
KQorICAgIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkID09PSBudWxsKQorICAgICAgICAgICAgZXhw
ZWN0ZWQgPSAiIjsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5lclN0eWxlKCIn
ICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKKyAgICB9CisK
KyAgICBkZWJ1ZygnbGFiKCknKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKDAlIDAgMCkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAwLjUpIiwgImxhYigw
JSAwIDAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxh
YigyMCUgMCAxMC8wLjUpIiwgImxhYigyMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzUwJSkiLCAibGFiKDIwJSAwIDEw
IC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAw
JSAwIDEwLzUwJSkiLCAibGFiKDQwMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMTYwIDE2MCkiLCAibGFiKDUwJSAtMTYwIDE2
MCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMjAw
IDIwMCkiLCAibGFiKDUwJSAtMjAwIDIwMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIC0xMCUpIiwgImxhYigwJSAwIDAgLyAwKSIpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMTEwJSkiLCAi
bGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KDAlIDAgMCAvIDMwMCUpIiwgImxhYigwJSAwIDApIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAg
ZGVidWcoJ2xjaCgpJyk7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgwJSAwIDBkZWcpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAxKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMC41KSIsICJs
YWIoMCUgMCAwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMTAwJSAyMzAgMGRlZyAvIDAuNSkiLCAibGFiKDEwMCUgMjMwIDAgLyAwLjUpIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvMC41
KSIsICJsYWIoMjAlIDQ2Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0
ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy81MCUpIiwgImxhYigyMCUg
NDYuOTg0NjMgMTcuMTAxMDA2IC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gLTEwJSkiLCAibGFiKDEwJSAxOC43OTM4NTIg
Ni44NDA0MDI2IC8gMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDEwJSAyMCAyMGRlZyAvIDExMCUpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAxLjI4
cmFkKSIsICJsYWIoMTAlIDUuNzM0MzAyNSAxOS4xNjAzMTYpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMzgwZGVnKSIsICJsYWIoMTAlIDE4Ljc5
Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgxMCUgMjAgLTM0MGRlZykiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDc0MGRlZyki
LCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC03MDBkZWcpIiwgImxhYigxMCUgMTguNzkzODUy
IDYuODQwNDAyNikiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnZ3JheSgpJyk7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXkoMCkiLCAibGFiKDAlIDAg
MCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEw
JSkiLCAibGFiKDEwJSAwIDAgLyAwLjEpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImdyYXkoMTIwIC8gMTAlKSIsICJsYWIoMTIwJSAwIDAgLyAwLjEpIik7CisKKyAg
ICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1Rlc3QgaW52YWxpZCB2YWx1ZXMnKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAgMCAwKSIsICJyZ2JhKDAsIDAsIDAs
IDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAw
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDAgMSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEwJSkiLCAicmdiYSgwLCAwLCAw
LCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAw
ZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwJSAwZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIsICJyZ2JhKDAs
IDAsIDAsIDApIik7CisKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDAgMCAwIC8gMC41KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCki
KTsgLy8gTm8gdW5pdGxlc3MgemVybyBhbmdsZS4gQ3VycmVudGx5IGZhaWxzOiB3ZWJraXQub3Jn
L2IvMjA1NzMzCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUg
MTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsgLy8gTm8gdW5pdGxlc3MgYW5nbGUuIEN1cnJl
bnRseSBmYWlsczogd2Via2l0Lm9yZy9iLzIwNTczMworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcg
MTAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJncmF5KDEwJSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJncmF5KDEwIDEwIDEwKSIsICJyZ2JhKDAs
IDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImdyYXko
MTAgMTApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAiZ3JheSgxMCAvIDEwIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisKKzwv
c2NyaXB0PgorICAgIAorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEtZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyNzEx
NjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwMS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEs
MTAgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkdy
ZWVuIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5HcmVlbiBzcXVhcmUgcmVmZXJlbmNl
PC90aXRsZT4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiAjMDA4MDAwfQorICAgIC50ZXN0
IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwODAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9
CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRo
aXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3Jl
ZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Ij48L2Rpdj4K
IDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEuaHRt
bAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MywxMSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENI
PC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJt
YWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVs
PSJtYXRjaCIgaHJlZj0iZ3JlZW50ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhy
ZWY9ImdyZWVuc3F1YXJlLXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0i
bGFiKCkgd2l0aCBubyBhbHBoYSI+CiA8c3R5bGU+Ci0gICAgLnRlc3Qge2NvbG9yOiBsYWIoNDYu
Mjc3JSAtNDcuNTYyIDQ4LjU4Myl9IC8qIGdyZWVuIChzUkdCICMwMDgwMDApIGNvbnZlcnRlZCB0
byBMYWIgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07
IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6
ICMwMDgwMDA7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0KKyAg
ICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxhYig0Ni4yNzclIC00Ny41NjIgNDguNTgzKX0g
LyogZ3JlZW4gKHNSR0IgIzAwODAwMCkgY29udmVydGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxi
b2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgZ3Jl
ZW48L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIGdyZWVuIHNxdWFyZSwgYW5k
IG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVz
dCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAyLWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xhYi0wMDItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0w
MDItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDEwIEBACiA8IURPQ1RZ
UEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5CbGFjayB0ZXh0IHJlZmVy
ZW5jZTwvdGl0bGU+Cis8dGl0bGU+QmxhY2sgYmxvY2sgcmVmZXJlbmNlPC90aXRsZT4KIDxzdHls
ZT4KLSAgICAudGVzdCB7IGNvbG9yOiAjMDAwMDAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1j
b2xvcjogIzAwMDAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9CiA8L3N0eWxlPgogPGJv
ZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBibGFj
azwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgYmxhY2sgc3F1YXJlLCBhbmQg
bm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
YWItMDAyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDIuaHRtbAkocmV2aXNpb24gMjcxMTYz
KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xhYi0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMiArMywxMyBAQAogPHRp
dGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3Jn
Ij4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1j
b2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iYmxh
Y2t0ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImJsYWNrYmxvY2stcmVm
Lmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhh
Ij4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9y
OiBsYWIoMCUgMCAwKX0gLyogYmxhY2sgKHNSR0IgIzAwMDAwMCkgY29udmVydGVkIHRvIExhYiAq
LworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0
OiAxMmVtOyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsYWIoMCUgMCAwKSB9IC8q
IGJsYWNrIChzUkdCICMwMDAwMDApIGNvbnZlcnRlZCB0byBMYWIgKi8KIDwvc3R5bGU+CiA8Ym9k
eT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGJsYWNr
PC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFjayBzcXVhcmUsIGFuZCBu
byByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy1leHBlY3RlZC5odG1s
CShyZXZpc2lvbiAyNzExNjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDkgKzEsMTEgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPldoaXRlIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5XaGl0ZSBi
bG9jayByZWZlcmVuY2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6ICNGRkZG
RkY7IGJhY2tncm91bmQtY29sb3I6ICMzMzM7IHBhZGRpbmc6IDNweH0KKyAgICBib2R5IHsgYmFj
a2dyb3VuZC1jb2xvcjogZ3JleTsgfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogI0ZG
RkZGRjsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAg
PHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyB3aGl0ZTwvcD4KKyAg
ICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgd2hpdGUgc3F1YXJlLCBhbmQgbm8gcmVkLjwv
cD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDMuaHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMiArMywxNCBAQAogPHRpdGxlPkNTUyBD
b2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNz
cGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0id2hpdGV0ZXh0LXJl
Zi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9IndoaXRlYmxvY2stcmVmLmh0bWwiPgog
PG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhIj4KIDxzdHls
ZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IGJhY2tncm91bmQtY29sb3I6ICMzMzM7IHBhZGRp
bmc6IDNweDt9Ci0gICAgLnRlc3QgeyBjb2xvcjogbGFiKDEwMCUgMCAwKTt9IC8qIHdoaXRlIChz
UkdCICNGRkZGRkYpIGNvbnZlcnRlZCB0byBMYWIgKi8KKyAgICBib2R5IHsgYmFja2dyb3VuZC1j
b2xvcjogZ3JleTsgfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDog
MTJlbTsgaGVpZ2h0OiAxMmVtOyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsYWIo
MTAwJSAwIDApO30gLyogd2hpdGUgKHNSR0IgI0ZGRkZGRikgY29udmVydGVkIHRvIExhYiAqLwog
PC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlz
IHRleHQgaXMgd2hpdGU8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHdoaXRl
IHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2Jv
ZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGFiLTAwNC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTE2MykKKysrIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0LWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgi
PgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxz
dHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDc1LjYyJSAzMC40NSUgNDcuNTYlKX0gLyog
bGFiKDUwIDUwIDApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5k
LWNvbG9yOnJnYig3NS42MiUgMzAuNDUlIDQ3LjU2JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEy
ZW07fSAvKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9k
eT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFy
ZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4g
RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxs
ZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNz
ZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2Yg
ZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+
CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwNC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWwJKHJldmlz
aW9uIDI3MTE2MykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYs
MTIgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDQtcmVmLmh0bWwiPgogPG1ldGEg
bmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBwb3NpdGl2ZSBhIGF4
aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29s
b3I6IGxhYig1MCUgNTAgMCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYig3NS42MiUsIDMwLjQ1
JSwgNDcuNTYlKX0gLyogbGFiKDUwIDUwIDApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRl
c3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFy
Z2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzUuNjIlLCAzMC40
NSUsIDQ3LjU2JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0v
KiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91
bmQtY29sb3I6IGxhYig1MCUgNTAgMCl9IAogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3Qg
cGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9y
LjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxs
ZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBz
aW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMu
PC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+
CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
YWItMDA1LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTE2MykKKysrIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1LWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRs
ZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDEwLjc5JSwgNzUuNTUlLCA2Ni40
MCUpfSAvKiBsYWIoNzAgLTQ1IDApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBi
YWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSk7IHdpZHRoOiAxMmVt
OyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNzAgLTQ1IDApIGNvbnZlcnRlZCB0byBzUkdCICovCiA8
L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBm
aWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+
RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNz
PSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAg
IDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byBy
ZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4g
PC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
NS5odG1sCShyZXZpc2lvbiAyNzExNjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC02LDEyICs2LDEyIEBACiA8bGluayByZWw9Im1hdGNoIiBocmVmPSJsYWItMDA1LXJlZi5o
dG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSwg
bmVnYXRpdmUgYSBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAg
ICAudGVzdCB7IGNvbG9yOiBsYWIoNzAlIC00NSAwKX0KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdi
KDEwLjc5JSwgNzUuNTUlLCA2Ni40MCUpfSAvKiBsYWIoNzAgLTQ1IDApIGNvbnZlcnRlZCB0byBz
UkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBo
ZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFy
Z2luLWJvdHRvbTogMH0gLyogbGFiKDcwIC00NSAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAg
IC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDcwJSAtNDUgMCl9IAogPC9zdHlsZT4KIDxi
b2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQg
YXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQu
IEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+Rmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFz
c2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9m
IGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAg
Y2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTE2MykK
KysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDA2LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBA
QAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5n
IExhYiBhbmQgTENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDc2
LjYyJSwgNjYuMzYlLCA1LjU4JSl9IC8qIGxhYig3MCAwIDcwKSBjb252ZXJ0ZWQgdG8gc1JHQiAq
LworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1LjU4
JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNzAgMCA3MCkgY29udmVydGVk
IHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUg
dHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAg
Y2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUs
IGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAg
Y2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sYWItMDA2Lmh0bWwJKHJldmlzaW9uIDI3MTE2MykKKysrIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTIgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9
ImxhYi0wMDYtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3
aXRoIG5vIGFscGhhLCBwb3NpdGl2ZSBiIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29s
b3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxhYig3MCUgMCA3MCl9Ci0gICAgLm1hdGNo
IHsgY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpfSAvKiBsYWIoNzAgMCA3MCkgY29u
dmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lk
dGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91
bmQtY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0
OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxhYig3MCAwIDcwKSBjb252ZXJ0ZWQgdG8gc1JH
QiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDcwJSAwIDcwKX0gCiA8L3N0
eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxs
ZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxs
ZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1h
dGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+
VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3Rh
bmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4K
KyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA3LWV4cGVj
dGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MjcxMTYzKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbG9yL2xhYi0wMDctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwx
MCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNw
ZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9y
OiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVk
IHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMi44MSUsIDUz
LjEwJSwgOTIuNzYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxhYig1NSAwIC02
MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBh
c3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48
L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxl
ciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRl
eHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNp
bmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48
L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA3Lmh0bWwJKHJldmlzaW9uIDI3MTE2MykKKysrIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
YWItMDA3Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTIgQEAKIDxsaW5rIHJlbD0i
bWF0Y2giIGhyZWY9ImxhYi0wMDctcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBuZWdhdGl2ZSBiIGF4aXMiPgogPHN0eWxlPgotICAg
IC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxhYig1NSUgMCAtNjAp
fQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxh
Yig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQt
Y29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAg
LnJlZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKTsgd2lk
dGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfSAvKiBsYWIoNTUgMCAtNjAp
IGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsYWIo
NTUlIDAgLTYwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhl
IHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxw
IGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUs
IGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAg
Y2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sY2gtMDAxLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEtZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw5ICsxLDExIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5HcmVlbiB0ZXh0IHJlZmVyZW5jZTwvdGl0bGU+Cis8dGl0bGU+
R3JlZW4gYmxvY2sgcmVmZXJlbmNlPC90aXRsZT4KIDxzdHlsZT4KKyAgICAudGVzdCB7IGJhY2tn
cm91bmQtY29sb3I6ICMwMDgwMDA7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fQogICAgIC50
ZXN0IHsgY29sb3I6ICMwMDgwMDB9CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRl
c3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBh
c3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8ZGl2
IGNsYXNzPSJ0ZXN0Ij48L2Rpdj4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDEuaHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMywxMSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBT
cGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
Q2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5n
LWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZ3JlZW50ZXh0LXJlZi5odG1sIj4K
KzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImdyZWVuYmxvY2stcmVmLmh0bWwiPgogPG1ldGEgbmFt
ZT0iYXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5vIGFscGhhIj4KIDxzdHlsZT4KLSAgICAu
dGVzdCB7Y29sb3I6IGxjaCg0Ni4yNzclIDY3Ljk0NSAxMzQuNDI3KX0gLyogZ3JlZW4gKHNSR0Ig
IzAwODAwMCkgY29udmVydGVkIHRvIExDSCAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xv
cjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVm
IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwODAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBt
YXJnaW4tYm90dG9tOiAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDQ2LjI3
NyUgNjcuOTQ1IDEzNC40MjcpfSAvKiBncmVlbiAoc1JHQiAjMDA4MDAwKSBjb252ZXJ0ZWQgdG8g
TENIICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2Vz
IGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2Vl
IGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0icmVmIj4gPC9w
PgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDItZXhw
ZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi1leHBlY3RlZC5odG1sCShyZXZpc2lv
biAyNzExNjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwMi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDkgKzEsMTAgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPkJsYWNrIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5CbGFjayBibG9jayByZWZl
cmVuY2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6ICMwMDAwMDB9CisgICAg
LnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAx
MmVtO30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMg
aWYgdGhpcyB0ZXh0IGlzIGJsYWNrPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUg
YSBibGFjayBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9w
PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5o
dG1sCShyZXZpc2lvbiAyNzExNjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zLDEyICszLDEzIEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBM
Q0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9
Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2Ry
YWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayBy
ZWw9Im1hdGNoIiBocmVmPSJibGFja3RleHQtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJtYXRjaCIg
aHJlZj0iYmxhY2tibG9jay1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
ImxjaCgpIHdpdGggbm8gYWxwaGEiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsg
fQotICAgIC50ZXN0IHsgY29sb3I6IGxjaCgwJSAwIDApfSAvKiBibGFjayAoc1JHQiAjMDAwMDAw
KSBjb252ZXJ0ZWQgdG8gTENIICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29s
b3I6IGxjaCgwJSAwIDApIH0gLyogYmxhY2sgKHNSR0IgIzAwMDAwMCkgY29udmVydGVkIHRvIExh
YiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBp
ZiB0aGlzIHRleHQgaXMgYmxhY2s8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBh
IGJsYWNrIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+
CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
Y2gtMDAzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTE2MykKKysrIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAzLWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+
CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2hpdGUgdGV4dCByZWZlcmVuY2U8L3Rp
dGxlPgorPHRpdGxlPldoaXRlIGJsb2NrIHJlZmVyZW5jZTwvdGl0bGU+CiA8c3R5bGU+Ci0gICAg
LnRlc3QgeyBjb2xvcjogI0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgcGFkZGluZzog
M3B4fQorICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9CisgICAgLnRlc3QgeyBi
YWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30KIDwv
c3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0
ZXh0IGlzIHdoaXRlPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSB3aGl0ZSBz
cXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5
PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCShyZXZp
c2lvbiAyNzExNjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDkgKzYs
MTEgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9IndoaXRldGV4dC1yZWYuaHRtbCI+CiA8bWV0
YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEiPgogPHN0eWxlPgot
ICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgcGFkZGluZzog
M3B4O30KLSAgICAudGVzdCB7IGNvbG9yOiBsY2goMTAwJSAwIDApO30gLyogd2hpdGUgKHNSR0Ig
I0ZGRkZGRikgY29udmVydGVkIHRvIExDSCAqLworICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9y
OiBncmV5OyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVt
OyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxjaCgxMDAl
IDAgMCk7fSAvKiB3aGl0ZSAoc1JHQiAjRkZGRkZGKSBjb252ZXJ0ZWQgdG8gTGFiICovCiA8L3N0
eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4
dCBpcyB3aGl0ZTwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgd2hpdGUgc3F1
YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4K
SW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sY2gtMDA0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQtZXhw
ZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQtZXhwZWN0ZWQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8
dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxl
PgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzUuNjIlIDMwLjQ1JSA0Ny41NiUpfSAvKiBsYWIo
NTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29s
b3I6cmdiKDc1LjYyJSAzMC40NSUgNDcuNTYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9
IC8qIGxjaCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVucyB0byBiZSB0aGUgc2Ft
ZSBhcyBsYWIoNTAgNTAgMCkqLwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2Vz
IGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4K
LSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRl
eHQuIDwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4g
RmlsbGVyIHRleHQuIDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xl
IHNxdWFyZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4K
KyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQuaHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0w
MDQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxNSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xv
ciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVj
aWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGFiLTAwNC1yZWYuaHRt
bCI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJsY2gtMDA0LXJlZi5odG1sIj4KIDxtZXRhIG5h
bWU9ImFzc2VydCIgY29udGVudD0ibGNoKCkgd2l0aCBubyBhbHBoYSwgcG9zaXRpdmUgYSBheGlz
Ij4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9y
OiBsY2goNTAlIDUwIDApfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzUuNjIlLCAzMC40NSUs
IDQ3LjU2JSl9IC8qIGxjaCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVucyB0byBi
ZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xv
cjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVm
IHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc1LjYyJSwgMzAuNDUlLCA0Ny41NiUpOyB3aWR0aDog
MTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxjaCg1MCA1MCAwKSBjb252
ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVucyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLwor
ICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDUwJSA1MCAwKX0gCiA8L3N0eWxlPgog
PGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4
dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4
dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5G
aWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBw
YXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMg
b2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8
cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA1LWV4cGVjdGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMTYz
KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xjaC0wMDUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5
IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlp
bmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2Io
MTAuNzklLCA3NS41NSUsIDY2LjQwJSl9IC8qIGxhYig3MCAtNDUgMCkgY29udmVydGVkIHRvIHNS
R0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwg
NjYuNDAlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxjaCg3MCA0NSAxODApIGNv
bnZlcnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMg
aWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgot
ICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4
dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBG
aWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUg
c3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgor
ICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1sCShyZXZpc2lvbiAyNzExNjMpCisrKyBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAw
NS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE1ICszLDE1IEBACiA8dGl0bGU+Q1NTIENvbG9y
IDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNp
ZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJsYWItMDA1LXJlZi5odG1s
Ij4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxjaC0wMDUtcmVmLmh0bWwiPgogPG1ldGEgbmFt
ZT0iYXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5vIGFscGhhLCBuZWdhdGl2ZSBhIGF4aXMi
PgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6
IGxjaCg3MCUgNDUgLTE4MCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYigxMC43OSUsIDc1LjU1
JSwgNjYuNDAlKX0gLyogbGNoKDcwIDQ1IDE4MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAu
dGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBt
YXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMC43OSUsIDc1
LjU1JSwgNjYuNDAlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAw
fSAvKiBsY2goNzAgNDUgMTgwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFj
a2dyb3VuZC1jb2xvcjogbGNoKDcwJSA0NSAtMTgwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAg
PHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNh
bWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRl
eHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4g
RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91
IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50
IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVz
dCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2LWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xjaC0wMDYtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0w
MDYtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBM
Q0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzYuNjIlLCA2Ni4z
NiUsIDUuNTglKX0gLyogbGFiKDcwIDAgNzApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRl
c3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYuNjIlLCA2Ni4zNiUsIDUuNTglKTsgd2lkdGg6
IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxjaCg3MCA3MCA5MCkgY29udmVydGVkIHRvIHNSR0Ig
Ki8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVz
IG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1h
dGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAg
Y2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3Qg
dHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRl
c3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
Y2gtMDA2Lmh0bWwJKHJldmlzaW9uIDI3MTE2MykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTMsMTUgKzMsMTUgQEAKIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBM
YWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExpbGxl
eSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNoIj4K
LTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDYtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJt
YXRjaCIgaHJlZj0ibGNoLTAwNi1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRl
bnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEsIHBvc2l0aXZlIGIgYXhpcyI+CiA8c3R5bGU+Ci0gICAg
LnRlc3QgeyBjb2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjogbGNoKDcwJSA3MCA5MCl9
Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpfSAvKiBsY2go
NzAgNzAgOTApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5y
ZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYuNjIlLCA2Ni4zNiUsIDUuNTglKTsgd2lkdGg6
IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfSAvKiBsY2goNzAgNzAgOTApIGNv
bnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsY2goNzAl
IDcwIDkwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3
byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNs
YXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0g
ICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFu
ZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xh
c3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sY2gtMDA3LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDctZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMjcxMTYzKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDctZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+
Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAg
IC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxhYig1NSAw
IC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6
IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9
IC8qIGxjaCg1NiA1OCAyNzUpIGNvbnZlcnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+
Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUg
dGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVy
IHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2Vz
IGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRp
ZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJ
bmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xjaC0wMDcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCShyZXZpc2lv
biAyNzExNjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE1ICszLDE1
IEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgog
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJp
c0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBo
cmVmPSJsYWItMDA3LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxjaC0wMDct
cmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFs
cGhhLCBuZWdhdGl2ZSBiIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsg
fQotICAgIC50ZXN0IHsgY29sb3I6IGxjaCg1NiUgNTggMjc1KX0KLSAgICAubWF0Y2ggeyBjb2xv
cjogcmdiKDEyLjgxJSwgNTMuMTAlLCA5Mi43NiUpfSAvKiBsY2goNTYgNTggMjc1KSBjb252ZXJ0
ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDog
MTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1j
b2xvcjogcmdiKDEyLjgxJSwgNTMuMTAlLCA5Mi43NiUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2
ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxjaCg1NiA1OCAyNzUpIGNvbnZlcnRlZCB0byBzUkdC
ICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsY2goNTYlIDU4IDI3NSl9IAogPC9z
dHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmls
bGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+Rmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJt
YXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxw
PlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0
YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+
CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417352</attachid>
            <date>2021-01-10 11:40:34 -0800</date>
            <delta_ts>2021-01-10 11:56:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210110114033.patch</filename>
            <type>text/plain</type>
            <size>90815</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyMCBAQAorMjAyMS0wMS0xMCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCkg
YW5kIGNvbG9yKGxhYiAuLi4pIGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICBUaGlzIGFkZHMgcGFyc2luZyBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkgYW5kIGNvbG9yKGxh
YiAuLi4pIENTUyBjb2xvcnMgCisgICAgICAgIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNv
bG9yLTQvKSBhbmQgY29sb3IgdHlwZSwgY29udmVyc2lvbiwgYW5kIHNlcmlhbGl6YXRpb24gCisg
ICAgICAgIHN1cHBvcnQgZm9yIExhYiBhbmQgY29sb3IgdHlwZSBhbmQgY29udmVyc2lvbiBzdXBw
b3J0IGZvciBMQ0ggKHdlIHN0b3JlIHRoZXNlIGNvbG9yIAorICAgICAgICBjYW5vbmljYWxseSBh
cyBMYWI8ZmxvYXQ+LCBzbyBzZXJpYWxpemF0aW9uIG9mIExDSCBpcyBuZXZlciBuZWVkZWQsIG11
Y2ggbGlrZSBIU0wpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXMgbm90IGFkZCBzdXBwb3J0
IGZvciB0aGUgaG9zdCBwbGF0Zm9ybSBsYXllciAoZS5nLiBDb3JlR3JhcGhpY3MsIGV0YykKKyAg
ICAgICAgdW5kZXJzdGFuZGluZyBvZiB0aGUgTGFiIGNvbG9yc3BhY2UsIGFuZCBhcyBzdWNoLCB3
aGVuIGNyZWF0aW5nIGhvc3QgY29sb3Igb2JqZWN0cworICAgICAgICAoZm9yIGluc3RhbmNlIHZp
YSB0aGUgY2FjaGVkQ0dDb2xvcigpIGhlbHBlcikgTGFiPGZsb2F0PiBjb2xvcnMgYXJlIGNvbnZl
cnRlZCB0byBzUkdCCisgICAgICAgIGZpcnN0IGFuZCB0aGVuIHRoZSBob3N0IGNvbG9yIGlzIG1h
ZGUuIFRoZSByYW1pZmljYXRpb24gb2YgdGhpcyBpcyBmb3IgcGxhdGZvcm1zIHRoYXQKKyAgICAg
ICAgdXNlIGJhY2tpbmdzdG9yZXMgd2l0aCBncmVhdGVyIHRoYW4gc1JHQiBnYW11dHMsIExhYiBj
b2xvcnMgd2lsbCBiZSBjbGFtcHRlZCB0byBzUkdCLgorICAgICAgICBUaGlzIHNob3VsZCBiZSBy
ZWN0aWZpZWQgaW4gYSBmb2xsb3cgdXAgY2hhbmdlIHRoYXQgYWRkcyBwcm9wZXIgY3JlYXRpb24g
b2YgdGhlc2UgaG9zdAorICAgICAgICBvYmplY3RzIGJ1dCBpcyBiZWluZyBsZWZ0IG9mZiB0aGUg
aW5pdGlhbCBjaGFuZ2UgdG8gbGltaXQgY2hhbmdlcy4KKworICAgICAgICBTb21lIG9mIHRoZSBp
bXBvcnRlZCB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1c2UgcmVjdGFuZ2xlcyByYXRoZXIg
dGhhbiB0ZXh0IHRvCisgICAgICAgIGF2b2lkIGFudGktYWxpYXNpbmcgaXNzdWVzIGFuZCB3aWxs
IGJlIHVwc3RyZWFtZWQgdG8gV1BUIGZvbGxvd2luZyBsYW5kaW5nLgorCisgICAgICAgIFRlc3Rz
OiAKKyAgICAgICAgICAgIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCisgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
MS5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwMi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sCisgICAgICAgICAgICBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1sCisgICAg
ICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFi
LTAwNS5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGFiLTAwNi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5odG1sCisgICAgICAgICAgICBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGNoLTAwMi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC5odG1sCisgICAgICAgICAgICBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1s
CisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGNoLTAwNi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbjoKKyAgICAgICAgQWRkICJsYWIiIGFuZCAibGNoIiBrZXl3b3Jkcy4KKworICAg
ICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmg6CisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZU9wdGlvbmFsQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUxDSFBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUdyYXlQYXJh
bWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFy
c2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OnBhcnNlQ29sb3JGdW5jdGlvbik6CisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBwYXJzaW5nICJsYWIoLi4uKSIsICJsY2goLi4uKSIsICJncmF5KC4uLikiCisgICAgICAg
IGFuZCAiY29sb3IobGFiIC4uLikiLCBhbGwgb2Ygd2hpY2ggY3JlYXRlIExhYjxmbG9hdD4gY29s
b3JzLgorCisgICAgICAgIEFsc28gYWRkcyBleHBsaWNpdCBVbml0bGVzc1plcm9RdWlyayBmbGFn
IHRvIGFuZ2xlIHBhcnNpbmcgdG8KKyAgICAgICAgYWxsb3cgcGFyc2luZyBvZiBuZXdlciBzcGVj
cyB0aGF0IGRvbid0IHdhbnQgdG8gYWxsb3cgdW5pdGxlc3MgemVybworICAgICAgICBmb3IgYW5n
bGVzLiBGb3Igbm93LCBJIGhhdmUgbGVmdCBGSVhNRXMgZm9yIHRoZSBwcm9wZXJ0aWVzIHRoYXQK
KyAgICAgICAgc2hvdWxkIHByb2JhYmx5IGRpc2FibGUgaXQuIFRoaXMgd2FzIG5vdCBzdHJpY3Rs
eSBuZWNlc3NhcnkgZm9yIHRoaXMKKyAgICAgICAgY2hhbmdlIChhcyBsY2ggYWN0YXVsbHkgYWxs
b3dzIHVuaXRsZXNzIGFuZ2xlcyBub3cpLCBidXQgaXQgc2VlbXMKKyAgICAgICAgbGlrZSBhIHNv
bGlkIG1vdmUgZm9yd2FyZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6Q29sb3IpOgorICAgICAgICBBZGQgb3ZlcmxvYWQg
b2YgdGhlIENvbG9yIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYSBMYWI8ZmxvYXQ+IG1hdGNoaW5n
IG90aGVyCisgICAgICAgIENvbG9yU3BhY2UgdHlwZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEZy
b21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZl
cnRGcm9tRDY1V2hpdGVQb2ludFRvRDUwV2hpdGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjp0
b1hZWkEpOgorICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6dG9M
Q0hBKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvTGFiKToKKyAgICAgICAgKFdlYkNvcmU6OnRvTENIQSk6CisgICAg
ICAgIEFkZCBjb252ZXJzaW9ucyB0by9mcm9tIExhYiB0byBENjUgd2hpdGUgcG9pbnQgWFlaQSAo
dGhlIHdoaXRlIHBvaW50IHdlIGV4cGVjdCBYWVpBIHRvIGJlIGluKSwgYW5kIGNvbnZlcnNpb24K
KyAgICAgICAgZnJvbSBMY2ggdG8vZnJvbSBMYWIuIAorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvckNTUyk6CisgICAgICAg
IChXZWJDb3JlOjpzZXJpYWxpemF0aW9uRm9ySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpzZXJp
YWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTZXJpYWxpemF0aW9uLmg6CisgICAgICAgIEFkZCBzZXJpYWxpemF0aW9uIGZvciBM
YWIgY29sb3JzLiBXZSBjdXJyZW50bHkgYWx3YXlzIHNlcmlhbGl6ZSB1c2luZyB0aGUgbGFiKCkK
KyAgICAgICAgbm90YXRpb24sIHdoaWNoIGFwcGVhcnMgdG8gYmUgY29ycmVjdCBmb3IgYXQgbGVh
c3QgY29sb3JzIGRlY2xhcmVkIHVzaW5nIGxhYigpLAorICAgICAgICBsY2goKSBhbmQgZ3JheSgp
LiBVbmNsZWFyIGlmIGl0IGlzIGNvcnJlY3QgZm9yIGNvbG9ycyBkZWNsYXJlZCB3aXRoIGNvbG9y
KGxhYiAuLi4pLgorICAgICAgICBPcGVuZWQgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1k
cmFmdHMvaXNzdWVzLzU4MjUgdG8gdHJhY2sgZ2V0dGluZyBhIHJlc29sdXRpb24KKyAgICAgICAg
Zm9yICJjb2xvcihsYWIgLi4uKSIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAgICAgICAgQWRkIExhYiBhcyBhIENvbG9y
U3BhY2UgYW5kIHRleHQgc3RyZWFtIGR1bXBpbmcgZm9yIGl0LgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6TGFiOjpMYWIpOgor
ICAgICAgICAoV2ViQ29yZTo6YXNDb2xvckNvbXBvbmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
YXNMYWIpOgorICAgICAgICBBZGQgTGFiIGNvbG9yIHR5cGUuCisKKyAgICAgICAgKFdlYkNvcmU6
OkxDSEE6OkxDSEEpOgorICAgICAgICAoV2ViQ29yZTo6YXNMQ0hBKToKKyAgICAgICAgQWRkIExD
SEEgY29sb3IgdHlwZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpjYWxsV2l0aENvbG9y
VHlwZSk6CisgICAgICAgIEFkZCBMYWIgdG8gY2FsbFdpdGhDb2xvclR5cGUgc2luY2UgaXQgaXMg
bm93IGEgdmFsaWQgQ29sb3JTcGFjZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yU3BhY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsYWJDb2xvclNwYWNlUmVmKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6CisgICAgICAgIEZvciBub3csIHJldHVybiB0
aGUgc1JHQiBjb2xvciBzcGFjZSB0byBpbmRpY2F0ZSB0byBjYWxsZXJzIHRoYXQgdGhleSBzaG91
bGQgZG8gYSBjb252ZXJzaW9uLgorCiAyMDIxLTAxLTEwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBNYWtlICJpbmxpbmUgbGV2ZWwgYm94IGFm
ZmVjdHMgbGluZSBib3ggZ2VvbWV0cnkiIGxvZ2ljIG1vcmUgZXhwbGljaXQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTI2
NCw2ICsxMjY0LDggQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCiAvL2NvbG9yCiAK
IC8vIHRyYW5zZm9ybQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODEsNyAr
OTgxLDggQEAgc3RhdGljIFJlZlB0cjxDU1NGb250U3R5bGVSYW5nZVZhbHVlPiBjbwogICAgIGlm
IChrZXl3b3JkLT52YWx1ZUlEKCkgIT0gQ1NTVmFsdWVPYmxpcXVlIHx8IHJhbmdlLmF0RW5kKCkp
CiAgICAgICAgIHJldHVybiBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjcmVhdGUoa2V5d29yZC5y
ZWxlYXNlTm9uTnVsbCgpKTsKIAotICAgIGlmIChhdXRvIGZpcnN0QW5nbGUgPSBjb25zdW1lQW5n
bGUocmFuZ2UsIGNzc1BhcnNlck1vZGUpKSB7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHBy
b2JhYmx5IG5vdCBhbGxvdyB0aGUgdW5pdGxlc3MgemVyby4KKyAgICBpZiAoYXV0byBmaXJzdEFu
Z2xlID0gY29uc3VtZUFuZ2xlKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrOjpG
b3JiaWQsIFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdykpIHsKICAgICAgICAgYXV0byBmaXJzdEFu
Z2xlSW5EZWdyZWVzID0gZmlyc3RBbmdsZS0+ZG91YmxlVmFsdWUoQ1NTVW5pdFR5cGU6OkNTU19E
RUcpOwogICAgICAgICBpZiAoIWlzRm9udFN0eWxlQW5nbGVJblJhbmdlKGZpcnN0QW5nbGVJbkRl
Z3JlZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC05OTAsNyArOTkxLDkgQEAg
c3RhdGljIFJlZlB0cjxDU1NGb250U3R5bGVSYW5nZVZhbHVlPiBjbwogICAgICAgICAgICAgcmVz
dWx0LT5hcHBlbmQoZmlyc3RBbmdsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIHJl
dHVybiBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjcmVhdGUoa2V5d29yZC5yZWxlYXNlTm9uTnVs
bCgpLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8gc2Vjb25kQW5n
bGUgPSBjb25zdW1lQW5nbGUocmFuZ2UsIGNzc1BhcnNlck1vZGUpOworCisgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBub3QgYWxsb3cgdGhlIHVuaXRsZXNzIHplcm8uCisg
ICAgICAgIGF1dG8gc2Vjb25kQW5nbGUgPSBjb25zdW1lQW5nbGUocmFuZ2UsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAg
ICAgICAgaWYgKCFzZWNvbmRBbmdsZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBhdXRvIHNlY29uZEFuZ2xlSW5EZWdyZWVzID0gc2Vjb25kQW5nbGUtPmRvdWJsZVZhbHVl
KENTU1VuaXRUeXBlOjpDU1NfREVHKTsKQEAgLTE5MDAsMTIgKzE5MDMsMTIgQEAgc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVRyYW5zZm9ybQogICAgIGNhc2UgQ1NTVmFsdWVTa2V3WDoK
ICAgICBjYXNlIENTU1ZhbHVlU2tld1k6CiAgICAgY2FzZSBDU1NWYWx1ZVNrZXc6Ci0gICAgICAg
IHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNz
UXVpcms6OkZvcmJpZCk7CisgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3Ms
IGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6
OkFsbG93KTsKICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICBpZiAoZnVuY3Rpb25JZCA9PSBDU1NWYWx1ZVNrZXcgJiYgY29uc3Vt
ZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKSkgewogICAgICAgICAgICAgdHJhbnNmb3Jt
VmFsdWUtPmFwcGVuZCgqcGFyc2VkVmFsdWUpOwotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBj
b25zdW1lQW5nbGUoYXJncywgY3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsK
KyAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAg
ICAgICAgICAgIGlmICghcGFyc2VkVmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgICAgIH0KQEAgLTE5NTYsNyArMTk1OSw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVUcmFuc2Zvcm0KICAgICBjYXNlIENTU1ZhbHVlUm90YXRlM2Q6CiAgICAgICAg
IGlmICghY29uc3VtZU51bWJlcnMoYXJncywgdHJhbnNmb3JtVmFsdWUsIDMpIHx8ICFjb25zdW1l
Q29tbWFJbmNsdWRpbmdXaGl0ZXNwYWNlKGFyZ3MpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3Vt
ZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxl
c3NaZXJvUXVpcms6OkFsbG93KTsKICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBicmVhazsKQEAgLTIxMjIsNyArMjEyNSw3IEBA
IHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVSb3RhdGUoQ1MKIAogICAgICAgICAvLyBU
aGVuLCBhdHRlbXB0IHRvIHBhcnNlIGFuIGFuZ2xlLiBXZSB0cnkgdGhpcyBhcyBhIGZhbGxiYWNr
IHJhdGhlciB0aGFuIHRoZSBmaXJzdCBvcHRpb24gYmVjYXVzZQogICAgICAgICAvLyBhIHVuaXRs
ZXNzIDAgYW5nbGUgd291bGQgYmUgY29uc3VtZWQgYXMgYW4gYW5nbGUuCi0gICAgICAgIHBhcnNl
ZFZhbHVlID0gY29uc3VtZUFuZ2xlKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJr
OjpGb3JiaWQpOworICAgICAgICBwYXJzZWRWYWx1ZSA9IGNvbnN1bWVBbmdsZShyYW5nZSwgY3Nz
UGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkLCBVbml0bGVzc1plcm9RdWlyazo6QWxs
b3cpOwogICAgICAgICBpZiAocGFyc2VkVmFsdWUpIHsKICAgICAgICAgICAgIC8vIElmIHdlIGhh
ZCBhbHJlYWR5IHBhcnNlZCBhbiBhbmdsZSBvciBudW1iZXJzIGJ1dCBub3QgMyBpbiBhIHJvdywg
dGhpcyB2YWx1ZSBpcyBpbnZhbGlkLgogICAgICAgICAgICAgaWYgKGFuZ2xlIHx8IChsaXN0LT5s
ZW5ndGgoKSAmJiBsaXN0LT5sZW5ndGgoKSAhPSAzKSkKQEAgLTIyNDIsNyArMjI0NSw3IEBAIHN0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHbHlwaE9yaWUKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogICAgIAotICAgIHJldHVybiBjb25zdW1lQW5nbGUocmFuZ2UsIG1vZGUs
IFVuaXRsZXNzUXVpcms6OkFsbG93KTsKKyAgICByZXR1cm4gY29uc3VtZUFuZ2xlKHJhbmdlLCBt
b2RlLCBVbml0bGVzc1F1aXJrOjpBbGxvdywgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKIH0K
IAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVBhaW50T3JkZXIoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZpc2lvbiAyNzEzNDkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5NiwxMiArMjk2LDE3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY29uc3VtZUZvbnRXZWkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotaW5saW5lIGJvb2wg
c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZShkb3VibGUgdmFsdWUsIENTU1BhcnNlck1vZGUgY3Nz
UGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKK2lubGluZSBib29sIHNob3VsZEFj
Y2VwdFVuaXRsZXNzVmFsdWUoZG91YmxlIHZhbHVlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1aXJrIHVuaXRsZXNzWmVy
bykKIHsKICAgICAvLyBGSVhNRTogUHJlc2VudGF0aW9uYWwgSFRNTCBhdHRyaWJ1dGVzIHNob3Vs
ZG4ndCB1c2UgdGhlIENTUyBwYXJzZXIgZm9yIGxlbmd0aHMKLSAgICByZXR1cm4gdmFsdWUgPT0g
MAotICAgICAgICB8fCBpc1VuaXRMZXNzVmFsdWVQYXJzaW5nRW5hYmxlZEZvck1vZGUoY3NzUGFy
c2VyTW9kZSkKLSAgICAgICAgfHwgKGNzc1BhcnNlck1vZGUgPT0gSFRNTFF1aXJrc01vZGUgJiYg
dW5pdGxlc3MgPT0gVW5pdGxlc3NRdWlyazo6QWxsb3cpOworCisgICAgaWYgKHZhbHVlID09IDAg
JiYgdW5pdGxlc3NaZXJvID09IFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdykKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBpZiAoaXNVbml0TGVzc1ZhbHVlUGFyc2luZ0VuYWJsZWRGb3JNb2Rl
KGNzc1BhcnNlck1vZGUpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICByZXR1cm4g
Y3NzUGFyc2VyTW9kZSA9PSBIVE1MUXVpcmtzTW9kZSAmJiB1bml0bGVzcyA9PSBVbml0bGVzc1F1
aXJrOjpBbGxvdzsKIH0KIAogT3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3KENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFZh
bHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKQEAgLTMzOSw3ICsz
NDQsNyBAQCBPcHRpb25hbDxMZW5ndGhSYXc+IGNvbnN1bWVMZW5ndGhSYXcoQ1NTCiAgICAgICAg
IHJldHVybiB7IHsgdG9rZW4udW5pdFR5cGUoKSwgcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRl
c3BhY2UoKS5udW1lcmljVmFsdWUoKSB9IH07CiAgICAgfQogICAgIGlmICh0b2tlbi50eXBlKCkg
PT0gTnVtYmVyVG9rZW4pIHsKLSAgICAgICAgaWYgKCFzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVl
KHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcykKKyAgICAgICAg
aWYgKCFzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQ
YXJzZXJNb2RlLCB1bml0bGVzcywgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KQogICAgICAgICAg
ICAgfHwgKHZhbHVlUmFuZ2UgPT0gVmFsdWVSYW5nZU5vbk5lZ2F0aXZlICYmIHRva2VuLm51bWVy
aWNWYWx1ZSgpIDwgMCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAg
ICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCkBAIC00NjQsNyArNDY5LDcg
QEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lTGVuZ3RoTwogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi1PcHRpb25hbDxBbmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3KENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNz
UXVpcmsgdW5pdGxlc3MpCitPcHRpb25hbDxBbmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3KENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRs
ZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1aXJrIHVuaXRsZXNzWmVybykKIHsKICAg
ICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAgICAgaWYgKHRv
a2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tlbikgewpAQCAtNDgwLDcgKzQ4NSw3IEBAIE9wdGlv
bmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXcoQ1NTUGEKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYgc2hvdWxkQWNjZXB0VW5pdGxl
c3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2VyTW9kZSwgdW5pdGxlc3MpKQor
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYgc2hvdWxkQWNjZXB0VW5pdGxl
c3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2VyTW9kZSwgdW5pdGxlc3MsIHVu
aXRsZXNzWmVybykpCiAgICAgICAgIHJldHVybiB7IHsgQ1NTVW5pdFR5cGU6OkNTU19ERUcsIHJh
bmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkgfSB9OwogCiAg
ICAgaWYgKHRva2VuLnR5cGUoKSAhPSBGdW5jdGlvblRva2VuKQpAQCAtNDkwLDcgKzQ5NSw3IEBA
IE9wdGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXcoQ1NTUGEKICAgICByZXR1cm4gY2Fs
Y1BhcnNlci5jb25zdW1lQW5nbGVSYXcoKTsKIH0KIAotUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBjb25zdW1lQW5nbGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUg
Y3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKK1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZUFuZ2xlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJz
ZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVy
b1F1aXJrIHVuaXRsZXNzWmVybykKIHsKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4g
PSByYW5nZS5wZWVrKCk7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7
CkBAIC01MDIsMTMgKzUwNywxMyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVB
bmdsZShDCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChhdXRvIGFu
Z2xlID0gY29uc3VtZUFuZ2xlUmF3KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcykpCisg
ICAgaWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXcocmFuZ2UsIGNzc1BhcnNlck1vZGUs
IHVuaXRsZXNzLCB1bml0bGVzc1plcm8pKQogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpz
aW5nbGV0b24oKS5jcmVhdGVWYWx1ZShhbmdsZS0+dmFsdWUsIGFuZ2xlLT50eXBlKTsKIAogICAg
IHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBj
b25zdW1lQW5nbGVPclBlcmNlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNl
ck1vZGUgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBVbml0bGVzc1F1aXJr
IHVuaXRsZXNzKQorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFuZ2xl
T3JQZXJjZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcywg
VW5pdGxlc3NaZXJvUXVpcmsgdW5pdGxlc3NaZXJvKQogewogICAgIGNvbnN0IENTU1BhcnNlclRv
a2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IERpbWVu
c2lvblRva2VuKSB7CkBAIC01MjIsNyArNTI3LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2Nl
cHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0
bGVzcykpCisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2Nl
cHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0
bGVzcywgdW5pdGxlc3NaZXJvKSkKICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xl
dG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1l
cmljVmFsdWUoKSwgQ1NTVW5pdFR5cGU6OkNTU19ERUcpOwogCiAgICAgaWYgKHRva2VuLnR5cGUo
KSA9PSBQZXJjZW50YWdlVG9rZW4pCkBAIC01NDksNyArNTU0LDcgQEAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBjb25zdW1lVGltZShDUwogewogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0
b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBDU1NVbml0VHlwZSB1bml0ID0gdG9rZW4udW5pdFR5
cGUoKTsKLSAgICBib29sIGFjY2VwdFVuaXRsZXNzID0gdG9rZW4udHlwZSgpID09IE51bWJlclRv
a2VuICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93ICYmIHNob3VsZEFjY2VwdFVu
aXRsZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNz
KTsKKyAgICBib29sIGFjY2VwdFVuaXRsZXNzID0gdG9rZW4udHlwZSgpID09IE51bWJlclRva2Vu
ICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93ICYmIHNob3VsZEFjY2VwdFVuaXRs
ZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNzLCBV
bml0bGVzc1plcm9RdWlyazo6QWxsb3cpOwogICAgIGlmIChhY2NlcHRVbml0bGVzcykKICAgICAg
ICAgdW5pdCA9IENTU1VuaXRUeXBlOjpDU1NfTVM7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBE
aW1lbnNpb25Ub2tlbiB8fCBhY2NlcHRVbml0bGVzcykgewpAQCAtNzQ4LDcgKzc1Myw3IEBAIHN0
YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFyc2UKICAgICBBU1NFUlQocmFuZ2Uu
cGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUhzbCB8fCByYW5nZS5wZWVrKCkuZnVuY3Rp
b25JZCgpID09IENTU1ZhbHVlSHNsYSk7CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0g
Y29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKICAgICBkb3VibGUgYW5nbGVJbkRlZ3JlZXM7Ci0gICAg
aWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXcoYXJncywgY3NzUGFyc2VyTW9kZSwgVW5p
dGxlc3NRdWlyazo6Rm9yYmlkKSkKKyAgICBpZiAoYXV0byBhbmdsZSA9IGNvbnN1bWVBbmdsZVJh
dyhhcmdzLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQsIFVuaXRsZXNzWmVy
b1F1aXJrOjpGb3JiaWQpKQogICAgICAgICBhbmdsZUluRGVncmVlcyA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpjb21wdXRlRGVncmVlcyhhbmdsZS0+dHlwZSwgYW5nbGUtPnZhbHVlKTsKICAgICBlbHNl
IHsKICAgICAgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3KGFyZ3MsIGFuZ2xlSW5EZWdyZWVzKSkK
QEAgLTc5Miw0OSArNzk3LDE1OCBAQCBzdGF0aWMgQ29sb3IgcGFyc2VIU0xQYXJhbWV0ZXJzKENT
U1BhcnNlCiAgICAgcmV0dXJuIGNvbnZlcnRUb0NvbXBvbmVudEJ5dGVzKHRvU1JHQkEoSFNMQTxm
bG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVswXSksIHN0YXRpY19jYXN0PGZs
b2F0Pihjb2xvckFycmF5WzFdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMl0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oYWxwaGEpIH0pKTsKIH0KIAotc3RhdGljIENvbG9yIHBhcnNlQ29s
b3JGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0aWMg
T3B0aW9uYWw8ZmxvYXQ+IHBhcnNlT3B0aW9uYWxBbHBoYShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKIHsKLSAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1
ZUNvbG9yKTsKKyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UocmFuZ2Up
KQorICAgICAgICByZXR1cm4gMS4wZjsKKworICAgIGlmIChhdXRvIGFscGhhUGFyYW1ldGVyID0g
Y29uc3VtZVBlcmNlbnRSYXcocmFuZ2UsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICByZXR1cm4g
Y2xhbXBUbzxmbG9hdD4oKmFscGhhUGFyYW1ldGVyIC8gMTAwLjAsIDAuMCwgMS4wKTsKKworICAg
IGRvdWJsZSBhbHBoYVBhcmFtZXRlcjsKKyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcocmFuZ2Us
IGFscGhhUGFyYW1ldGVyLCBWYWx1ZVJhbmdlQWxsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlciwgMC4wLCAx
LjApOworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2Vu
UmFuZ2UmIHJhbmdlKQoreworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09
IENTU1ZhbHVlTGFiKTsKICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVu
Y3Rpb24ocmFuZ2UpOwogCi0gICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlOwotICAgIHN3aXRjaCAo
YXJncy5wZWVrKCkuaWQoKSkgewotICAgIGNhc2UgQ1NTVmFsdWVTUkdCOgotICAgICAgICBjb2xv
clNwYWNlID0gQ29sb3JTcGFjZTo6U1JHQjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NW
YWx1ZURpc3BsYXlQMzoKLSAgICAgICAgY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OkRpc3BsYXlQ
MzsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNv
bnN1bWVQZXJjZW50UmF3KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNz
KQogICAgICAgICByZXR1cm4geyB9OworCisgICAgZG91YmxlIGFWYWx1ZTsKKyAgICBpZiAoIWNv
bnN1bWVOdW1iZXJSYXcoYXJncywgYVZhbHVlLCBWYWx1ZVJhbmdlQWxsKSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIGRvdWJsZSBiVmFsdWU7CisgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3
KGFyZ3MsIGJWYWx1ZSwgVmFsdWVSYW5nZUFsbCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KCpsaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYVZhbHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGJWYWx1ZSksICphbHBoYSB9OworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VMQ0hQYXJhbWV0
ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1v
ZGUpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVM
Y2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5n
ZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50UmF3KGFyZ3MsIFZhbHVl
UmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KworICAgIGRvdWJsZSBjaHJvbWFWYWx1ZTsKKyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcoYXJn
cywgY2hyb21hVmFsdWUsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgZG91YmxlIGFuZ2xlSW5EZWdyZWVzOworICAgIGlmIChhdXRvIGh1ZVZhbHVlID0gY29uc3Vt
ZUFuZ2xlUmF3KGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5p
dGxlc3NRdWlyazo6Rm9yYmlkKSkKKyAgICAgICAgYW5nbGVJbkRlZ3JlZXMgPSBDU1NQcmltaXRp
dmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXMoaHVlVmFsdWUtPnR5cGUsIGh1ZVZhbHVlLT52YWx1ZSk7
CisgICAgZWxzZSB7CisgICAgICAgIGlmICghY29uc3VtZU51bWJlclJhdyhhcmdzLCBhbmdsZUlu
RGVncmVlcywgVmFsdWVSYW5nZUFsbCkpCisgICAgICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
LSAgICBjb25zdW1lSWRlbnQoYXJncyk7CiAKLSAgICBkb3VibGUgY29sb3JDaGFubmVsc1s0XSA9
IHsgMCwgMCwgMCwgMSB9OworICAgIGFuZ2xlSW5EZWdyZWVzID0gZm1vZChhbmdsZUluRGVncmVl
cywgMzYwLjApOworICAgIGlmIChhbmdsZUluRGVncmVlcyA8IDAuMCkKKyAgICAgICAgYW5nbGVJ
bkRlZ3JlZXMgKz0gMzYwLjA7CisKKyAgICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhh
KGFyZ3MpOworICAgIGlmICghYWxwaGEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAo
IWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiB0b0xhYihM
Q0hBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PigqbGlnaHRuZXNzKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGNocm9tYVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFuZ2xlSW5EZWdyZWVzKSwg
KmFscGhhIH0pOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+CitzdGF0aWMgQ29s
b3IgcGFyc2VDb2xvckZ1bmN0aW9uRm9yU1JHQk9yRGlzcGxheVAzUGFyYW1ldGVycyhDU1NQYXJz
ZXJUb2tlblJhbmdlJiBhcmdzKQoreworICAgIEFTU0VSVChhcmdzLnBlZWsoKS5pZCgpID09IENT
U1ZhbHVlU1JHQiB8fCBhcmdzLnBlZWsoKS5pZCgpID09IENTU1ZhbHVlRGlzcGxheVAzKTsKKyAg
ICBjb25zdW1lSWRlbnRSYXcoYXJncyk7CisKKyAgICBkb3VibGUgY29sb3JDaGFubmVsc1szXSA9
IHsgMCwgMCwgMCB9OwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CiAgICAgICAg
IGRvdWJsZSB2YWx1ZTsKICAgICAgICAgaWYgKGNvbnN1bWVOdW1iZXJSYXcoYXJncywgdmFsdWUp
KQotICAgICAgICAgICAgY29sb3JDaGFubmVsc1tpXSA9IHN0ZDo6bWF4KDAuMCwgc3RkOjptaW4o
MS4wLCB2YWx1ZSkpOworICAgICAgICAgICAgY29sb3JDaGFubmVsc1tpXSA9IHZhbHVlOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgfQogCi0gICAgaWYgKGNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UoYXJncykpIHsK
LSAgICAgICAgYXV0byBhbHBoYVBhcmFtZXRlciA9IGNvbnN1bWVQZXJjZW50KGFyZ3MsIFZhbHVl
UmFuZ2VBbGwpOwotICAgICAgICBpZiAoIWFscGhhUGFyYW1ldGVyKQotICAgICAgICAgICAgYWxw
aGFQYXJhbWV0ZXIgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOwotICAgICAg
ICBpZiAoIWFscGhhUGFyYW1ldGVyKQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBhdXRv
IGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gQ29sb3JUeXBlIHsgY2xhbXBUbzxmbG9hdD4o
Y29sb3JDaGFubmVsc1swXSwgMC4wLCAxLjApLCBjbGFtcFRvPGZsb2F0Pihjb2xvckNoYW5uZWxz
WzFdLCAwLjAsIDEuMCksIGNsYW1wVG88ZmxvYXQ+KGNvbG9yQ2hhbm5lbHNbMl0sIDAuMCwgMS4w
KSwgKmFscGhhIH07Cit9CisKK3N0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25Gb3JMYWJQ
YXJhbWV0ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIGFyZ3MpCit7CisgICAgQVNTRVJUKGFyZ3Mu
cGVlaygpLmlkKCkgPT0gQ1NTVmFsdWVMYWIpOworICAgIGNvbnN1bWVJZGVudFJhdyhhcmdzKTsK
KworICAgIGF1dG8gbGlnaHRuZXNzID0gY29uc3VtZVBlcmNlbnRSYXcoYXJncywgVmFsdWVSYW5n
ZUFsbCk7CisgICAgaWYgKCFsaWdodG5lc3MpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBk
b3VibGUgYVZhbHVlOworICAgIGlmICghY29uc3VtZU51bWJlclJhdyhhcmdzLCBhVmFsdWUsIFZh
bHVlUmFuZ2VBbGwpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgZG91YmxlIGJWYWx1ZTsK
KyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcoYXJncywgYlZhbHVlLCBWYWx1ZVJhbmdlQWxsKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlvbmFsQWxw
aGEoYXJncyk7CisgICAgaWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJl
dHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KCpsaWdodG5lc3MpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oYVZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJWYWx1ZSksICphbHBoYSB9
OworfQogCi0gICAgICAgIGNvbG9yQ2hhbm5lbHNbM10gPSBzdGQ6Om1heCgwLjAsIHN0ZDo6bWlu
KDEuMCwgYWxwaGFQYXJhbWV0ZXItPmlzUGVyY2VudGFnZSgpID8gKGFscGhhUGFyYW1ldGVyLT5k
b3VibGVWYWx1ZSgpIC8gMTAwKSA6IGFscGhhUGFyYW1ldGVyLT5kb3VibGVWYWx1ZSgpKSk7Citz
dGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKK3sKKyAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBD
U1NWYWx1ZUNvbG9yKTsKKyAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVu
Y3Rpb24ocmFuZ2UpOworCisgICAgQ29sb3IgY29sb3I7CisgICAgc3dpdGNoIChhcmdzLnBlZWso
KS5pZCgpKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNSR0I6CisgICAgICAgIGNvbG9yID0gcGFyc2VD
b2xvckZ1bmN0aW9uRm9yU1JHQk9yRGlzcGxheVAzUGFyYW1ldGVyczxTUkdCQTxmbG9hdD4+KGFy
Z3MpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlRGlzcGxheVAzOgorICAgICAg
ICBjb2xvciA9IHBhcnNlQ29sb3JGdW5jdGlvbkZvclNSR0JPckRpc3BsYXlQM1BhcmFtZXRlcnM8
RGlzcGxheVAzPGZsb2F0Pj4oYXJncyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFs
dWVMYWI6CisgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uRm9yTGFiUGFyYW1ldGVy
cyhhcmdzKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKKyAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKwogICAgIC8vIEZJWE1FOiBTdXBwb3J0IHRoZSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBm
YWxsYmFjayBjb2xvciB2YWx1ZXMuCiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBDb2xvciB7IENvbG9yQ29tcG9uZW50cyB7IHN0YXRp
Y19jYXN0PGZsb2F0Pihjb2xvckNoYW5uZWxzWzBdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9y
Q2hhbm5lbHNbMV0pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JDaGFubmVsc1syXSksIHN0YXRp
Y19jYXN0PGZsb2F0Pihjb2xvckNoYW5uZWxzWzNdKSB9LCBjb2xvclNwYWNlIH07CisgICAgcmV0
dXJuIGNvbG9yOwogfQogCiBzdGF0aWMgT3B0aW9uYWw8U1JHQkE8dWludDhfdD4+IHBhcnNlSGV4
Q29sb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGJvb2wgYWNjZXB0UXVpcmt5Q29sb3Jz
KQpAQCAtODg4LDYgKzEwMDIsMTIgQEAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvbihD
U1NQYXJzZQogICAgIGNhc2UgQ1NTVmFsdWVIc2xhOgogICAgICAgICBjb2xvciA9IHBhcnNlSFNM
UGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJNb2RlKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUxhYjoKKyAgICAgICAgY29sb3IgPSBwYXJzZUxhYlBhcmFtZXRlcnMo
Y29sb3JSYW5nZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMY2g6CisgICAg
ICAgIGNvbG9yID0gcGFyc2VMQ0hQYXJhbWV0ZXJzKGNvbG9yUmFuZ2UsIGNzc1BhcnNlck1vZGUp
OworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9y
ID0gcGFyc2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVycyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJl
YWs7CkBAIC0xMjcyLDcgKzEzOTIsNyBAQCBzdGF0aWMgYm9vbCBjb25zdW1lR3JhZGllbnRDb2xv
clN0b3BzKENTCiAgICAgCiAgICAgYXV0byBjb25zdW1lU3RvcFBvc2l0aW9uID0gWyZdIHsKICAg
ICAgICAgcmV0dXJuIGdyYWRpZW50LmdyYWRpZW50VHlwZSgpID09IENTU0NvbmljR3JhZGllbnQK
LSAgICAgICAgICAgID8gY29uc3VtZUFuZ2xlT3JQZXJjZW50KHJhbmdlLCBtb2RlLCBWYWx1ZVJh
bmdlQWxsLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQpCisgICAgICAgICAgICA/IGNvbnN1bWVBbmds
ZU9yUGVyY2VudChyYW5nZSwgbW9kZSwgVmFsdWVSYW5nZUFsbCwgVW5pdGxlc3NRdWlyazo6Rm9y
YmlkLCBVbml0bGVzc1plcm9RdWlyazo6QWxsb3cpCiAgICAgICAgICAgICA6IGNvbnN1bWVMZW5n
dGhPclBlcmNlbnQocmFuZ2UsIG1vZGUsIFZhbHVlUmFuZ2VBbGwpOwogICAgIH07CiAKQEAgLTE0
NDYsNyArMTU2Niw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVMaW5lYXJHcmEK
ICAgICBSZWZQdHI8Q1NTTGluZWFyR3JhZGllbnRWYWx1ZT4gcmVzdWx0ID0gQ1NTTGluZWFyR3Jh
ZGllbnRWYWx1ZTo6Y3JlYXRlKHJlcGVhdGluZywgZ3JhZGllbnRUeXBlKTsKIAogICAgIGJvb2wg
ZXhwZWN0Q29tbWEgPSB0cnVlOwotICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gYW5nbGUg
PSBjb25zdW1lQW5nbGUoYXJncywgY3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlk
KTsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGFuZ2xlID0gY29uc3VtZUFuZ2xlKGFy
Z3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVp
cms6OkFsbG93KTsKICAgICBpZiAoYW5nbGUpCiAgICAgICAgIHJlc3VsdC0+c2V0QW5nbGUoYW5n
bGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgZWxzZSBpZiAoZ3JhZGllbnRUeXBlID09IENTU1By
ZWZpeGVkTGluZWFyR3JhZGllbnQgfHwgY29uc3VtZUlkZW50PENTU1ZhbHVlVG8+KGFyZ3MpKSB7
CkBAIC0xNDgyLDcgKzE2MDIsOCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQ29u
aWNHcmFkCiAgICAgYm9vbCBleHBlY3RDb21tYSA9IGZhbHNlOwogICAgIGlmIChhcmdzLnBlZWso
KS50eXBlKCkgPT0gSWRlbnRUb2tlbikgewogICAgICAgICBpZiAoY29uc3VtZUlkZW50PENTU1Zh
bHVlRnJvbT4oYXJncykpIHsKLSAgICAgICAgICAgIGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGUo
YXJncywgY29udGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOworICAgICAgICAgICAg
Ly8gRklYTUU6IFVubGlrZSBsaW5lYXItZ3JhZGllbnQsIGNvbmljLWdyYWRpZW50cyBhcmUgbm90
IHNwZWNpZmllZCB0byBhbGxvdyB1bml0bGVzcyAwIGFuZ2xlcyAtIGh0dHBzOi8vd3d3LnczLm9y
Zy9UUi9jc3MtaW1hZ2VzLTQvI3ZhbGRlZi1jb25pYy1ncmFkaWVudC1hbmdsZS4KKyAgICAgICAg
ICAgIGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGUoYXJncywgY29udGV4dC5tb2RlLCBVbml0bGVz
c1F1aXJrOjpGb3JiaWQsIFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdyk7CiAgICAgICAgICAgICBp
ZiAoIWFuZ2xlKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAg
cmVzdWx0LT5zZXRBbmdsZShXVEZNb3ZlKGFuZ2xlKSk7CkBAIC0xNzgyLDcgKzE5MDMsNyBAQCBz
dGF0aWMgUmVmUHRyPENTU0Z1bmN0aW9uVmFsdWU+IGNvbnN1bWVGCiAgICAgICAgICAgICByZXR1
cm4gZmlsdGVyVmFsdWU7CiAKICAgICAgICAgaWYgKGZpbHRlclR5cGUgPT0gQ1NTVmFsdWVIdWVS
b3RhdGUpCi0gICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IGNvbnN1bWVBbmdsZShhcmdzLCBjb250
ZXh0Lm1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgICAgICAgICBwYXJzZWRWYWx1
ZSA9IGNvbnN1bWVBbmdsZShhcmdzLCBjb250ZXh0Lm1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJp
ZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAgICAgICAgZWxzZSBpZiAoZmlsdGVyVHlw
ZSA9PSBDU1NWYWx1ZUJsdXIpCiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IGNvbnN1bWVMZW5n
dGgoYXJncywgSFRNTFN0YW5kYXJkTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKICAgICAg
ICAgZWxzZSB7CkBAIC0xOTU3LDcgKzIwNzgsOCBAQCBPcHRpb25hbDxGb250U3R5bGVSYXc+IGNv
bnN1bWVGb250U3R5bGVSCiAgICAgQVNTRVJUKGlkZW50ID09IENTU1ZhbHVlT2JsaXF1ZSk7CiAj
aWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICBpZiAoIXJhbmdlLmF0RW5kKCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXcocmFuZ2UsIGNzc1BhcnNlck1v
ZGUpKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGFuZ2xlIGRvZXMgc3BlY2lmeSB0aGF0IHVu
aXRsZXNzIDAgaXMgYWxsb3dlZCAtIHNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWZv
bnRzLTQvI3ZhbGRlZi1mb250LXN0eWxlLW9ibGlxdWUtYW5nbGUKKyAgICAgICAgaWYgKGF1dG8g
YW5nbGUgPSBjb25zdW1lQW5nbGVSYXcocmFuZ2UsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVp
cms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KSkgewogICAgICAgICAgICAgaWYg
KGlzRm9udFN0eWxlQW5nbGVJblJhbmdlKENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlRGVncmVl
cyhhbmdsZS0+dHlwZSwgYW5nbGUtPnZhbHVlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsg
eyBDU1NWYWx1ZU9ibGlxdWUsIFdURk1vdmUoYW5nbGUpIH0gfTsKICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU1LDYgKzU1LDcgQEAgYm9vbCBjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNw
YWNlKENTUwogQ1NTUGFyc2VyVG9rZW5SYW5nZSBjb25zdW1lRnVuY3Rpb24oQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYpOwogCiBlbnVtIGNsYXNzIFVuaXRsZXNzUXVpcmsgeyBBbGxvdywgRm9yYmlkIH07
CitlbnVtIGNsYXNzIFVuaXRsZXNzWmVyb1F1aXJrIHsgQWxsb3csIEZvcmJpZCB9OwogZW51bSBj
bGFzcyBBbGxvd1hSZXNvbHV0aW9uVW5pdCB7IEFsbG93LCBGb3JiaWQgfTsKIAogc3RydWN0IEFu
Z2xlUmF3IHsKQEAgLTgxLDggKzgyLDggQEAgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2Vu
dFJhdyhDU1NQYQogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lUGVyY2VudChDU1NQ
YXJzZXJUb2tlblJhbmdlJiwgVmFsdWVSYW5nZSk7CiBPcHRpb25hbDxMZW5ndGhPclBlcmNlbnRS
YXc+IGNvbnN1bWVMZW5ndGhPclBlcmNlbnRSYXcoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENTU1Bh
cnNlck1vZGUsIFZhbHVlUmFuZ2UsIFVuaXRsZXNzUXVpcmsgPSBVbml0bGVzc1F1aXJrOjpGb3Ji
aWQpOwogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KENT
U1BhcnNlclRva2VuUmFuZ2UmLCBDU1NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlLCBVbml0bGVzc1F1
aXJrID0gVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKLU9wdGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1l
QW5nbGVSYXcoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENTU1BhcnNlck1vZGUsIFVuaXRsZXNzUXVp
cmsgPSBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOwotUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBj
b25zdW1lQW5nbGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENTU1BhcnNlck1vZGUsIFVuaXRsZXNz
UXVpcmsgPSBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOworT3B0aW9uYWw8QW5nbGVSYXc+IGNvbnN1
bWVBbmdsZVJhdyhDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NR
dWlyayA9IFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcmsgPSBVbml0bGVz
c1plcm9RdWlyazo6Rm9yYmlkKTsKK1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFu
Z2xlKENTU1BhcnNlclRva2VuUmFuZ2UmLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrID0g
VW5pdGxlc3NRdWlyazo6Rm9yYmlkLCBVbml0bGVzc1plcm9RdWlyayA9IFVuaXRsZXNzWmVyb1F1
aXJrOjpGb3JiaWQpOwogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lVGltZShDU1NQ
YXJzZXJUb2tlblJhbmdlJiwgQ1NTUGFyc2VyTW9kZSwgVmFsdWVSYW5nZSwgVW5pdGxlc3NRdWly
ayA9IFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNv
bnN1bWVSZXNvbHV0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmLCBBbGxvd1hSZXNvbHV0aW9uVW5p
dCA9IEFsbG93WFJlc29sdXRpb25Vbml0OjpGb3JiaWQpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYg
KzU4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBzUkdC
QSwgc3RvcmVkIGluIGEgcmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAogLy8gICAgLSA0eCBm
bG9hdCAoMC0xKSBMaW5lYXIgc1JHQkEsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1
Yi1vYmplY3QKIC8vICAgIC0gNHggZmxvYXQgKDAtMSkgRGlzcGxheVAzLCBzdG9yZWQgaW4gYSBy
ZWZlcmVuY2UgY291bnRlZCBzdWItb2JqZWN0CisvLyAgICAtIDR4IGZsb2F0ICgwLTEpIExhYiwg
c3RvcmVkIGluIGEgcmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAogLy8KIC8vIEFkZGl0aW9u
YWxseSwgdGhlIGlubGluZSA4LWJpdCBzUkdCQSBjYW4gaGF2ZSBhbiBvcHRpb25hbCAic2VtYW50
aWMiIGJpdCBzZXQgb24gaXQsCiAvLyB3aGljaCBpbmRpY2F0ZXMgdGhlIGNvbG9yIG9yaWdpbmF0
ZWQgZnJvbSBhIENTUyBzZW1hbnRpYyBjb2xvciBuYW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCShyZXZpc2lv
biAyNzEzNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZl
cnNpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJD
b2xvckNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJDb2xvck1hdHJpeC5oIgotI2luY2x1ZGUgIkNv
bG9yVHlwZXMuaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTEzNCw2ICsxMzQsMTE5IEBAIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBM
aW5lYXJEaXNwbGF5UDMKICAgICByZXR1cm4gYXNYWVpBKGxpbmVhckRpc3BsYXlQM1RvWFlaTWF0
cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkp
OwogfQogCitzdGF0aWMgWFlaQTxmbG9hdD4gY29udmVydEZyb21ENTBXaGl0ZVBvaW50VG9ENjVX
aGl0ZVBvaW50KGNvbnN0IFhZWkE8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRwOi8vd3d3
LmJydWNlbGluZGJsb29tLmNvbS9pbmRleC5odG1sP0Vxbl9DaHJvbUFkYXB0Lmh0bWwKKyAgICBj
b25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4gRDUwVG9ENjVNYXRyaXggeworICAgICAgICAgMC45
NTU1NzY2ZiwgLTAuMDIzMDM5M2YsIDAuMDYzMTYzNmYsCisgICAgICAgIC0wLjAyODI4OTVmLCAg
MS4wMDk5NDE2ZiwgMC4wMjEwMDc3ZiwKKyAgICAgICAgIDAuMDEyMjk4MmYsIC0wLjAyMDQ4MzBm
LCAxLjMyOTkwOThmCisgICAgfTsKKyAgICByZXR1cm4gYXNYWVpBKEQ1MFRvRDY1TWF0cml4LnRy
YW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworfQor
CitzdGF0aWMgWFlaQTxmbG9hdD4gY29udmVydEZyb21ENjVXaGl0ZVBvaW50VG9ENTBXaGl0ZVBv
aW50KGNvbnN0IFhZWkE8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRwOi8vd3d3LmJydWNl
bGluZGJsb29tLmNvbS9pbmRleC5odG1sP0Vxbl9DaHJvbUFkYXB0Lmh0bWwKKyAgICBjb25zdGV4
cHIgQ29sb3JNYXRyaXg8MywgMz4gRDY1VG9ENTBNYXRyaXggeworICAgICAgICAgMS4wNDc4MTEy
ZiwgMC4wMjI4ODY2ZiwgLTAuMDUwMTI3MGYsCisgICAgICAgICAwLjAyOTU0MjRmLCAwLjk5MDQ4
NDRmLCAtMC4wMTcwNDkxZiwKKyAgICAgICAgLTAuMDA5MjM0NWYsIDAuMDE1MDQzNmYsICAwLjc1
MjEzMTZmCisgICAgfTsKKyAgICByZXR1cm4gYXNYWVpBKEQ2NVRvRDUwTWF0cml4LnRyYW5zZm9y
bWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworfQorCitzdGF0
aWMgY29uc3RleHByIGZsb2F0IExBQmUgPSAyMTYuMGYgLyAyNDM4OS4wZjsKK3N0YXRpYyBjb25z
dGV4cHIgZmxvYXQgTEFCayA9IDI0Mzg5LjBmIC8gMjcuMGY7CitzdGF0aWMgY29uc3RleHByIGZs
b2F0IEQ1MFdoaXRlVmFsdWVzW10gPSB7IDAuOTY0MjJmLCAxLjBmLCAwLjgyNTIxZiB9OworCitY
WVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAgZmxvYXQg
ZjEgPSAoY29sb3IubGlnaHRuZXNzICsgMTYuMGYpIC8gMTE2LjBmOworICAgIGZsb2F0IGYwID0g
ZjEgKyAoY29sb3IuYSAvIDUwMC4wZik7CisgICAgZmxvYXQgZjIgPSBmMSAtIChjb2xvci5iIC8g
MjAwLjBmKTsKKworICAgIGF1dG8gY29tcHV0ZVhBbmRaID0gW10oZmxvYXQgdCkgeworICAgICAg
ICBmbG9hdCB0Q3ViZWQgPSB0ICogdCAqIHQ7CisgICAgICAgIGlmICh0Q3ViZWQgPiBMQUJlKQor
ICAgICAgICAgICAgcmV0dXJuIHRDdWJlZDsKKworICAgICAgICByZXR1cm4gKDExNi4wZiAqIHQg
LSAxNi4wZikgLyBMQUJrOworICAgIH07CisKKyAgICBhdXRvIGNvbXB1dGVZID0gW10oZmxvYXQg
dCkgeworICAgICAgICBpZiAodCA+IChMQUJrICogTEFCZSkpIHsKKyAgICAgICAgICAgIGZsb2F0
IHZhbHVlID0gKHQgKyAxNi4wKSAvIDExNi4wOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlICog
dmFsdWUgKiB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0IC8gTEFCazsKKyAg
ICB9OworCisgICAgZmxvYXQgeCA9IEQ1MFdoaXRlVmFsdWVzWzBdICogY29tcHV0ZVhBbmRaKGYw
KTsKKyAgICBmbG9hdCB5ID0gRDUwV2hpdGVWYWx1ZXNbMV0gKiBjb21wdXRlWShjb2xvci5saWdo
dG5lc3MpOworICAgIGZsb2F0IHogPSBENTBXaGl0ZVZhbHVlc1syXSAqIGNvbXB1dGVYQW5kWihm
Mik7CisKKyAgICBYWVpBPGZsb2F0PiByZXN1bHQgeyB4LCB5LCB6LCBjb2xvci5hbHBoYSB9Owor
CisgICAgLy8gV2UgZXhwZWN0IFhZWkEgY29sb3JzIHRvIGJlIHVzaW5nIHRoZSBENjUgd2hpdGUg
cG9pbnQsIHVubGlrZSBMYWIsIHdoaWNoIHVzZXMgYQorICAgIC8vIEQ1MCB3aGl0ZSBwb2ludCwg
c28gYXMgYSBmaW5hbCBzdGVwLCB1c2UgdGhlIEJyYWRmb3JkIHRyYW5zZm9ybSB0byBjb252ZXJ0
IHRoZQorICAgIC8vIHJlc3VsdGluZyBYWVpBIGNvbG9yIHRvIGEgRDY1IHdoaXRlIHBvaW50Lgor
ICAgIHJldHVybiBjb252ZXJ0RnJvbUQ1MFdoaXRlUG9pbnRUb0Q2NVdoaXRlUG9pbnQocmVzdWx0
KTsKK30KKworTGFiPGZsb2F0PiB0b0xhYihjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7Cisg
ICAgLy8gV2UgZXhwZWN0IFhZWkEgY29sb3JzIHRvIGJlIHVzaW5nIHRoZSBENjUgd2hpdGUgcG9p
bnQsIHVubGlrZSBMYWIsIHdoaWNoIHVzZXMgYQorICAgIC8vIEQ1MCB3aGl0ZSBwb2ludCwgc28g
YXMgYSBmaXJzdCBzdGVwLCB1c2UgdGhlIEJyYWRmb3JkIHRyYW5zZm9ybSB0byBjb252ZXJ0IHRo
ZQorICAgIC8vIGluY29taW5nIFhZWkEgY29sb3IgdG8gRDUwIHdoaXRlIHBvaW50LgorICAgIGF1
dG8gY29sb3JXaXRoRDUwV2hpdGVQb2ludCA9IGNvbnZlcnRGcm9tRDY1V2hpdGVQb2ludFRvRDUw
V2hpdGVQb2ludChjb2xvcik7CisKKyAgICBmbG9hdCB4ID0gY29sb3JXaXRoRDUwV2hpdGVQb2lu
dC54IC8gRDUwV2hpdGVWYWx1ZXNbMF07CisgICAgZmxvYXQgeSA9IGNvbG9yV2l0aEQ1MFdoaXRl
UG9pbnQueSAvIEQ1MFdoaXRlVmFsdWVzWzFdOworICAgIGZsb2F0IHogPSBjb2xvcldpdGhENTBX
aGl0ZVBvaW50LnogLyBENTBXaGl0ZVZhbHVlc1syXTsKKworICAgIGF1dG8gZlRyYW5zZm9ybSA9
IFtdKGZsb2F0IHZhbHVlKSB7CisgICAgICAgIHJldHVybiB2YWx1ZSA+IExBQmUgPyBzdGQ6OmNi
cnQodmFsdWUpIDogKExBQmsgKiB2YWx1ZSArIDE2LjBmKSAvIDExNi4wZjsKKyAgICB9OworCisg
ICAgZmxvYXQgZjAgPSBmVHJhbnNmb3JtKHgpOworICAgIGZsb2F0IGYxID0gZlRyYW5zZm9ybSh5
KTsKKyAgICBmbG9hdCBmMiA9IGZUcmFuc2Zvcm0oeik7CisKKyAgICBmbG9hdCBsaWdodG5lc3Mg
PSAoMTE2LjBmICogZjEpIC0gMTYuMGY7CisgICAgZmxvYXQgYSA9IDUwMC4wZiAqIChmMCAtIGYx
KTsKKyAgICBmbG9hdCBiID0gMjAwLjBmICogKGYxIC0gZjIpOworCisgICAgcmV0dXJuIHsgbGln
aHRuZXNzLCBhLCBiLCBjb2xvcldpdGhENTBXaGl0ZVBvaW50LmFscGhhIH07Cit9CisKK0xDSEE8
ZmxvYXQ+IHRvTENIQShjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRwczov
L3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI2xhYi10by1sY2gKKyAgICBmbG9hdCBodWUgPSBy
YWQyZGVnKGF0YW4yKGNvbG9yLmIsIGNvbG9yLmEpKTsKKworICAgIHJldHVybiB7CisgICAgICAg
IGNvbG9yLmxpZ2h0bmVzcywKKyAgICAgICAgc3RkOjpoeXBvdChjb2xvci5hLCBjb2xvci5iKSwK
KyAgICAgICAgaHVlID49IDAgPyBodWUgOiBodWUgKyAzNjAsCisgICAgICAgIGNvbG9yLmFscGhh
CisgICAgfTsKK30KKworTGFiPGZsb2F0PiB0b0xhYihjb25zdCBMQ0hBPGZsb2F0PiYgY29sb3Ip
Cit7CisgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsY2gtdG8tbGFi
CisgICAgZmxvYXQgaHVlQW5nbGVSYWRpYW5zID0gZGVnMnJhZChjb2xvci5odWUpOworCisgICAg
cmV0dXJuIHsKKyAgICAgICAgY29sb3IubGlnaHRuZXNzLAorICAgICAgICBjb2xvci5jaHJvbWEg
KiBzdGQ6OmNvcyhodWVBbmdsZVJhZGlhbnMpLAorICAgICAgICBjb2xvci5jaHJvbWEgKiBzdGQ6
OnNpbihodWVBbmdsZVJhZGlhbnMpLAorICAgICAgICBjb2xvci5hbHBoYQorICAgIH07Cit9CisK
IEhTTEE8ZmxvYXQ+IHRvSFNMQShjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQogewogICAgIC8v
IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSFNMX2NvbG9yX3NwYWNlLgpAQCAtMjYzLDYg
KzM3NiwxNiBAQCBEaXNwbGF5UDM8ZmxvYXQ+IHRvRGlzcGxheVAzKGNvbnN0IFhZWkE8CiAgICAg
cmV0dXJuIHRvRGlzcGxheVAzKHRvTGluZWFyRGlzcGxheVAzKGNvbG9yKSk7CiB9CiAKK1hZWkE8
ZmxvYXQ+IHRvWFlaQShjb25zdCBMQ0hBPGZsb2F0PiYgY29sb3IpCit7CisgICAgcmV0dXJuIHRv
WFlaQSh0b0xhYihjb2xvcikpOworfQorCitMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgWFlaQTxm
bG9hdD4mIGNvbG9yKQoreworICAgIHJldHVybiB0b0xDSEEodG9MYWIoY29sb3IpKTsKK30KKwog
WFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IEhTTEE8ZmxvYXQ+JiBjb2xvcikKIHsKICAgICByZXR1
cm4gdG9YWVpBKHRvU1JHQkEoY29sb3IpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCShyZXZpc2lvbiAyNzEzNDkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtNzEsNiArNzEsMjAgQEAgV0VCQ09SRV9FWFBPUlQgTGluZWFyRGlzcGxh
eVAzPGZsb2F0PiB0bwogV0VCQ09SRV9FWFBPUlQgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQ
Myhjb25zdCBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Jik7CiAKIAorLy8gTGFiCitXRUJDT1JFX0VY
UE9SVCBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBP
UlQgTGFiPGZsb2F0PiB0b0xhYihjb25zdCBYWVpBPGZsb2F0PiYpOworLy8gQWRkaXRpb25zCitX
RUJDT1JFX0VYUE9SVCBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgTGFiPGZsb2F0PiYpOworCisK
Ky8vIExDSEEKK1dFQkNPUkVfRVhQT1JUIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMQ0hBPGZs
b2F0PiYpOworV0VCQ09SRV9FWFBPUlQgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IFhZWkE8Zmxv
YXQ+Jik7CisvLyBBZGRpdGlvbnMKK1dFQkNPUkVfRVhQT1JUIExhYjxmbG9hdD4gdG9MYWIoY29u
c3QgTENIQTxmbG9hdD4mKTsKKworCiAvLyBIU0xBCiBXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0
PiB0b1hZWkEoY29uc3QgSFNMQTxmbG9hdD4mKTsKIFdFQkNPUkVfRVhQT1JUIEhTTEE8ZmxvYXQ+
IHRvSFNMQShjb25zdCBYWVpBPGZsb2F0PiYpOwpAQCAtOTEsNiArMTA1LDggQEAgY29uc3RleHBy
IFNSR0JBPGZsb2F0PiB0b1NSR0JBKGNvbnN0IFNSRwogY29uc3RleHByIExpbmVhclNSR0JBPGZs
b2F0PiB0b0xpbmVhclNSR0JBKGNvbnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpIHsgcmV0
dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25z
dCBEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBM
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IHRvTGluZWFyRGlzcGxheVAzKGNvbnN0IExpbmVhckRpc3Bs
YXlQMzxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQorY29uc3RleHByIExhYjxmbG9h
dD4gdG9MYWIoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9Citjb25z
dGV4cHIgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IExDSEE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1
cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgSFNMQTxmbG9h
dD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQogY29uc3RleHByIENNWUtBPGZsb2F0PiB0b0NN
WUtBKGNvbnN0IENNWUtBPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4
cHIgWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IFhZWkE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4g
Y29sb3I7IH0KQEAgLTEyMSw2ICsxMzcsMTYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gTGluZWFy
RGlzcGxheVAzPGZsbwogICAgIHJldHVybiB0b0xpbmVhckRpc3BsYXlQMyh0b1hZWkEoY29sb3Ip
KTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4gTGFiPGZsb2F0PiB0b0xhYihjb25zdCBUJiBj
b2xvcikKK3sKKyAgICByZXR1cm4gdG9MYWIodG9YWVpBKGNvbG9yKSk7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBUJiBjb2xvcikKK3sKKyAgICBy
ZXR1cm4gdG9MQ0hBKHRvWFlaQShjb2xvcikpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBI
U0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgVCYgY29sb3IpCiB7CiAgICAgcmV0dXJuIHRvSFNMQSh0
b1hZWkEoY29sb3IpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yU2VyaWFsaXphdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAkocmV2aXNpb24gMjcxMzQ5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYsOCBAQCBzdGF0aWMgQVNDSUlMaXRlcmFsIHNlcmlh
bGl6YXRpb24oQ29sb3JTCiAgICAgICAgIHJldHVybiAibGluZWFyLXNyZ2IiX3M7CiAgICAgY2Fz
ZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHJldHVybiAiZGlzcGxheS1wMyJfczsK
KyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgcmV0dXJuICJsYWIiX3M7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNjEsNiArMTYzLDI3IEBAIFN0cmlu
ZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dCgKICAgICByZXR1cm4gc2VyaWFsaXph
dGlvbihjb2xvcik7CiB9CiAKKy8vIExhYjxmbG9hdD4gb3ZlcmxvYWRzCisKK1N0cmluZyBzZXJp
YWxpemF0aW9uRm9yQ1NTKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAgIC8vIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jc2VyaWFsaXppbmctbGFiLWxjaAorCisgICAg
YXV0byBbYzEsIGMyLCBjMywgYWxwaGFdID0gY29sb3I7CisgICAgaWYgKFdURjo6YXJlRXNzZW50
aWFsbHlFcXVhbChhbHBoYSwgMS4wZikpCisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJsYWIo
IiwgYzEsICIlICIsIGMyLCAnICcsIGMzLCAnKScpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJs
YWIoIiwgYzEsICIlICIsIGMyLCAnICcsIGMzLCAiIC8gIiwgYWxwaGEsICcpJyk7Cit9CisKK1N0
cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAg
ICByZXR1cm4gc2VyaWFsaXphdGlvbkZvckNTUyhjb2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxp
emF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAg
ICByZXR1cm4gc2VyaWFsaXphdGlvbkZvckNTUyhjb2xvcik7Cit9CiAKIC8vIENvbG9yIG92ZXJs
b2FkcwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlh
bGl6YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclNlcmlhbGl6YXRpb24uaAkocmV2aXNpb24gMjcxMzQ5KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sb3I7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRGlzcGxheVAzOwordGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMYWI7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExpbmVhclNSR0JBOwogdGVtcGxh
dGU8dHlwZW5hbWU+IHN0cnVjdCBTUkdCQTsKIApAQCAtNTUsNiArNTYsMTAgQEAgV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDUwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNl
cmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBEaXNwbGF5
UDM8ZmxvYXQ+Jik7CiAKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NT
KGNvbnN0IExhYjxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9u
Rm9ySFRNTChjb25zdCBMYWI8ZmxvYXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFs
aXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgTGFiPGZsb2F0PiYpOworCiBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckNTUyhjb25zdCBDb2xvciYpOwogV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IENvbG9yJik7CiBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3Qg
Q29sb3ImKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3Bh
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yU3BhY2UuY3BwCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvclNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOSBA
QCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBDCiAgICAgY2FzZSBDb2xv
clNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAgIHRzIDw8ICJEaXNwbGF5UDMiOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgdHMgPDwgIkwqYSpiIjsK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0czsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgJKHJldmlzaW9uIDI3MTM0
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNs
YXNzIENvbG9yU3BhY2UgOiB1aW50OF90IHsKICAgICBTUkdCLAogICAgIExpbmVhclJHQiwKLSAg
ICBEaXNwbGF5UDMKKyAgICBEaXNwbGF5UDMsCisgICAgTGFiCiB9OwogCiBXRUJDT1JFX0VYUE9S
VCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29sb3JTcGFj
ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBl
cy5oCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0Nyw2ICsyNDcsOTMgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcgogfQogCiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBMYWIgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxMYWI8VD4+IHsKKyAgICB1
c2luZyBDb21wb25lbnRUeXBlID0gVDsKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gY29sb3JT
cGFjZSA9IENvbG9yU3BhY2U6OkxhYjsKKworICAgIGNvbnN0ZXhwciBMYWIoVCBsaWdodG5lc3Ms
IFQgYSwgVCBiLCBUIGFscGhhID0gQ29tcG9uZW50VHJhaXRzPFQ+OjptYXhWYWx1ZSkKKyAgICAg
ICAgOiBsaWdodG5lc3MgeyBsaWdodG5lc3MgfQorICAgICAgICAsIGEgeyBhIH0KKyAgICAgICAg
LCBiIHsgYiB9CisgICAgICAgICwgYWxwaGEgeyBhbHBoYSB9CisgICAgeworICAgIH0KKworICAg
IGNvbnN0ZXhwciBMYWIoKQorICAgICAgICA6IExhYiB7IENvbXBvbmVudFRyYWl0czxUPjo6bWlu
VmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6
bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUgfQorICAgIHsKKyAgICB9CisK
KyAgICBUIGxpZ2h0bmVzczsKKyAgICBUIGE7CisgICAgVCBiOworICAgIFQgYWxwaGE7Cit9Owor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29s
b3JDb21wb25lbnRzKGNvbnN0IExhYjxUPiYgYykKK3sKKyAgICByZXR1cm4geyBjLmxpZ2h0bmVz
cywgYy5hLCBjLmIsIGMuYWxwaGEgfTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3Rl
eHByIExhYjxUPiBhc0xhYihjb25zdCBDb2xvckNvbXBvbmVudHM8VD4mIGMpCit7CisgICAgcmV0
dXJuIHsgY1swXSwgY1sxXSwgY1syXSwgY1szXSB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KGNvbnN0IExhYjxUPiYgYSwgY29uc3QgTGFiPFQ+
JiBiKQoreworICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhhKSA9PSBhc0NvbG9yQ29tcG9u
ZW50cyhiKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBMYWI8VD4mIGEsIGNvbnN0IExhYjxUPiYgYikKK3sKKyAgICByZXR1cm4gIShh
ID09IGIpOworfQorCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMQ0hBIDogQ29sb3JX
aXRoQWxwaGFIZWxwZXI8TENIQTxUPj4geworICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOwor
CisgICAgY29uc3RleHByIExDSEEoVCBsaWdodG5lc3MsIFQgY2hyb21hLCBUIGh1ZSwgVCBhbHBo
YSA9IENvbXBvbmVudFRyYWl0czxUPjo6bWF4VmFsdWUpCisgICAgICAgIDogbGlnaHRuZXNzIHsg
bGlnaHRuZXNzIH0KKyAgICAgICAgLCBjaHJvbWEgeyBjaHJvbWEgfQorICAgICAgICAsIGh1ZSB7
IGh1ZSB9CisgICAgICAgICwgYWxwaGEgeyBhbHBoYSB9CisgICAgeworICAgIH0KKworICAgIGNv
bnN0ZXhwciBMQ0hBKCkKKyAgICAgICAgOiBMQ0hBIHsgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5W
YWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+Ojpt
aW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSB9CisgICAgeworICAgIH0KKwor
ICAgIFQgbGlnaHRuZXNzOworICAgIFQgY2hyb21hOworICAgIFQgaHVlOworICAgIFQgYWxwaGE7
Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+
IGFzQ29sb3JDb21wb25lbnRzKGNvbnN0IExDSEE8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgYy5s
aWdodG5lc3MsIGMuY2hyb21hLCBjLmh1ZSwgYy5hbHBoYSB9OworfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjb25zdGV4cHIgTENIQTxUPiBhc0xDSEEoY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+
JiBjKQoreworICAgIHJldHVybiB7IGNbMF0sIGNbMV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMQ0hBPFQ+
JiBhLCBjb25zdCBMQ0hBPFQ+JiBiKQoreworICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhh
KSA9PSBhc0NvbG9yQ29tcG9uZW50cyhiKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29u
c3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBMQ0hBPFQ+JiBhLCBjb25zdCBMQ0hBPFQ+JiBi
KQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEhTTEEgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxIU0xBPFQ+PiB7CiAgICAgdXNpbmcg
Q29tcG9uZW50VHlwZSA9IFQ7CiAKQEAgLTM3OSw2ICs0NjYsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBGdW5jdG9yPiBjCiAgICAgICAgIHJldHVybiBzdGQ6Omludm9rZShzdGQ6
OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIGFzTGluZWFyU1JHQkEoY29tcG9uZW50cykpOwog
ICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gc3RkOjppbnZv
a2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0Rpc3BsYXlQMyhjb21wb25lbnRz
KSk7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHJldHVybiBzdGQ6Omludm9r
ZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIGFzTGFiKGNvbXBvbmVudHMpKTsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcAkocmV2aXNpb24g
MjcxMzQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFj
ZUNHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsMTIgQEAgQ0dDb2xvclNwYWNlUmVm
IGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKQogICAgIHJldHVybiBkaXNwbGF5UDNDb2xvclNwYWNl
OwogfQogCitDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJlZigpCit7CisgICAgLy8gRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBjb252ZXJzaW9uIHRvIExhYiBvbiBzdXBwb3J0ZWQgcGxhdGZv
cm1zLgorICAgIHJldHVybiBzUkdCQ29sb3JTcGFjZVJlZigpOworfQorCiBDR0NvbG9yU3BhY2VS
ZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigpCiB7CiAgICAgc3RhdGljIENHQ29sb3JTcGFj
ZVJlZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgJKHJldmlzaW9uIDI3MTM0OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNP
UkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9F
WFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVf
RVhQT1JUIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CitXRUJDT1JF
X0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBP
UlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIAogc3RhdGlj
IGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDb2xvclNwYWNlKENvbG9yU3BhY2UgY29s
b3JTcGFjZSkKQEAgLTQ1LDYgKzQ2LDggQEAgc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYg
Y2FjaGVkQ0dDbwogICAgICAgICByZXR1cm4gbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gZGlzcGxheVAzQ29s
b3JTcGFjZVJlZigpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4g
bGFiQ29sb3JTcGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM0OSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDIxLTAxLTEwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBT
dXBwb3J0IGxhYigpLCBsY2goKSwgZ3JheSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBPcmlnaW5hbCBwYXRj
aCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUGFyc2luZyB0ZXN0cyBmb3IgbGFiL2xjaC9n
cmF5IGNvbG9ycy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCBsYWIvbGNo
IHRlc3RzLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sOiBB
ZGRlZC4KKwogMjAyMS0wMS0wOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIHBsYXkuZ29vZ2xlLmNvbTogQXBwIHByZXZpZXcgaW1hZ2VzIGFyZSBjbGlwcGVkCklu
ZGV4OiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTIwMTcsMjIgKzIwMTcsNiBAQCB3ZWJr
aXQub3JnL2IvMTQ4ODAxIGltcG9ydGVkL3czYy93ZWItcGxhCiB3ZWJraXQub3JnL2IvMTQ4ODAx
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci90NDI1LWhzbGEt
b25zY3JlZW4tbXVsdGlwbGUtYm94ZXMtYy54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8xNDg4MDEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL3Q0MjUtaHNsYS1vbnNjcmVlbi1iLnhodCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCiAK
LSMgbGFiL2xjaCBub3Qgc3VwcG9ydGVkCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGFiLTAwMS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMi5odG1sIFsgU2tpcCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sIFsgU2tp
cCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
NC5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGFiLTAwNS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5odG1sIFsgU2tpcCBdCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS5odG1sIFsg
U2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNo
LTAwMi5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGNoLTAwMy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1sIFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5odG1s
IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGNoLTAwNy5odG1sIFsgU2tpcCBdCi0KICMgSW5pdGlhbCBmYWlsdXJlcyBvbiB0aGUgaW1wb3J0
IG9mIGNzcy1jb2xvcgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL3QzMS1jb2xvci10ZXh0LWEueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1j
b2xvcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzEgQEAKK1Rlc3Qg
dGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworbGFiKCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsYWIoMCUgMCAwKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMSkiKSBpcyAibGFiKDAlIDAgMCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAu
NSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvNTAl
KSIpIGlzICJsYWIoMjAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIpIGlzICJsYWIoNDAwJSAwIDEwIC8gMC41
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0xNjAg
MTYwKSIpIGlzICJsYWIoNTAlIC0xNjAgMTYwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIpIGlzICJsYWIoNTAlIC0yMDAgMjAwKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEw
JSkiKSBpcyAibGFiKDAlIDAgMCAvIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiKSBpcyAi
bGFiKDAlIDAgMCkiCisKK2xjaCgpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDAlIDAgMGRlZykiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDEpIikgaXMgImxhYigwJSAw
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBk
ZWcgLyAwLjUpIikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIpIGlzICJsYWIoMTAw
JSAyMzAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDIwJSA1MCAyMGRlZy8wLjUpIikgaXMgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAxMDA2IC8g
MC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUw
IDIwZGVnLzUwJSkiKSBpcyAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAt
MTAlKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiKSBp
cyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIikgaXMgImxhYigxMCUgNS43MzQz
MDI1IDE5LjE2MDMxNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDEwJSAyMCAzODBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVn
KSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4
Ljc5Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgxMCUgMjAgLTcwMGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwIC8g
MC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwIC8gMTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM4
NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
Y2goMTAlIDIwIC03MDApIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCisKK2Nv
bG9yKGxhYiApCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3Io
bGFiIDAlIDAgMCkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCAvIDEpIikgaXMgImxhYigwJSAwIDApIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAg
LyAwLjUpIikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAyMCUgMCAxMC8wLjUpIikgaXMgImxhYigyMCUgMCAx
MCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3Io
bGFiIDIwJSAwIDEwLzUwJSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgNDAwJSAwIDEwLzUwJSkiKSBp
cyAibGFiKDQwMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQt
Y29sb3IiLCAiY29sb3IobGFiIDUwJSAtMTYwIDE2MCkiKSBpcyAibGFiKDUwJSAtMTYwIDE2MCki
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDUwJSAt
MjAwIDIwMCkiKSBpcyAibGFiKDUwJSAtMjAwIDIwMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCAvIC0xMCUpIikgaXMgImxhYigwJSAw
IDAgLyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihs
YWIgMCUgMCAwIC8gMTEwJSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCAvIDMwMCUpIikgaXMgImxhYigw
JSAwIDApIgorCitUZXN0IGludmFsaWQgdmFsdWVzCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tn
cm91bmQtY29sb3IiLCAibGFiKDAgMCAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAwKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxh
YigwJSAwIDAgMSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwZGVn
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxhYigwJSAwJSAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgwIDAgMCAvIDAuNSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIpIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgyMCUgMTAgMTBkZWcgMTAgLyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAgMCAwKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImNvbG9yKGxhYiAwJSAwJSAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgMSkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJj
b2xvcihsYWIgMCUgMCAwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAwZGVnKSIpIGlzICJy
Z2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImNvbG9yKGxhYiAwJSAwJSAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiA0MCUgMCAwZGVnKSIpIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNv
bG9ycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFi
LWNvbG9ycy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNp
bmctbGFiLWNvbG9ycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEwIEBACis8aHRt
bD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0
aGUgcGFyc2luZyBvZiBsYWIsIGxjaCBhbmQgZ3JheSBjb2xvcnMuIik7CisKKyAgICBmdW5jdGlv
biBjb21wdXRlZFN0eWxlKHByb3BlcnR5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChkaXYpOworICAgICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHks
IHZhbHVlKTsKKyAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSBnZXRDb21wdXRlZFN0eWxlKGRp
dikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZGl2KTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gaW5uZXJTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgeworICAgICAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRpdi5zdHls
ZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgICAgICByZXR1cm4gZGl2LnN0eWxl
LmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RD
b21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2
YWx1ZSArICciKScsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0SW5uZXIo
cHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIGlmIChleHBlY3RlZCA9
PT0gbnVsbCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gIiI7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAn
IiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZGVidWcoJ2xhYigpJyk7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDApIiwgImxhYigwJSAwIDApIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxKSIs
ICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvMC41KSIsICJsYWIoMjAlIDAgMTAg
LyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUg
MCAxMC81MCUpIiwgImxhYigyMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKDQwMCUgMCAxMC81MCUpIiwgImxhYig0MDAlIDAgMTAgLyAw
LjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTE2
MCAxNjApIiwgImxhYig1MCUgLTE2MCAxNjApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYig1MCUgLTIwMCAyMDApIiwgImxhYig1MCUgLTIwMCAyMDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAtMTAlKSIs
ICJsYWIoMCUgMCAwIC8gMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKDAlIDAgMCAvIDExMCUpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAzMDAlKSIsICJsYWIoMCUgMCAwKSIp
OworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdsY2goKScpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnKSIsICJsYWIoMCUgMCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMSki
LCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
bGNoKDAlIDAgMGRlZyAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwMCUgMjMwIDBkZWcgLyAwLjUpIiwgImxh
YigxMDAlIDIzMCAwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMjAlIDUwIDIwZGVnLzAuNSkiLCAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYg
LyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUg
NTAgMjBkZWcvNTAlKSIsICJsYWIoMjAlIDQ2Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0x
MCUpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiAvIDApIik7CisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIsICJsYWIo
MTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgxMCUgMjAgMS4yOHJhZCkiLCAibGFiKDEwJSA1LjczNDMwMjUgMTkuMTYw
MzE2KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIw
IDM4MGRlZykiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIiwgImxhYigxMCUg
MTguNzkzODUyIDYuODQwNDAyNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDEwJSAyMCA3NDBkZWcpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAw
ZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgLy8gaHVlICh0aGUg
dGhpcmQgYXJndW1lbnQpIGNhbiBiZSBlaXRoZXIgYW4gYW5nbGUgb3IgbnVtYmVyLCB3aXRoIG51
bWJlciBpbnRlcnByZXRlZCBhcyBkZWdyZWVzLgorICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsY2goMCUgMCAwIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41KSIpOyAKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMCAvIDExMCUp
IiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2
Ljg0MDQwMjYpIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ2NvbG9yKGxhYiApJyk7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAp
IiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImNvbG9yKGxhYiAwJSAwIDAgLyAxKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRl
ZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAwIC8gMC41KSIsICJsYWIoMCUg
MCAwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xv
cihsYWIgMjAlIDAgMTAvMC41KSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAyMCUgMCAxMC81MCUpIiwgImxh
YigyMCUgMCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAiY29sb3IobGFiIDQwMCUgMCAxMC81MCUpIiwgImxhYig0MDAlIDAgMTAgLyAwLjUpIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiA1MCUgLTE2MCAx
NjApIiwgImxhYig1MCUgLTE2MCAxNjApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImNvbG9yKGxhYiA1MCUgLTIwMCAyMDApIiwgImxhYig1MCUgLTIwMCAyMDApIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAg
LyAtMTAlKSIsICJsYWIoMCUgMCAwIC8gMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91
bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCAvIDExMCUpIiwgImxhYigwJSAwIDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAz
MDAlKSIsICJsYWIoMCUgMCAwKSIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdUZXN0
IGludmFsaWQgdmFsdWVzJyk7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwIDAgMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEpIiwgInJnYmEo
MCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KDAlIDAgMCAxMCUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiLCAi
cmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoNDAlIDAgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwIDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAw
LCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEw
IDEwZGVnIDEwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTAgLyAwLjUpIiwgInJnYmEoMCwgMCwg
MCwgMCkiKTsKKworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihs
YWIgMCAwIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAlIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCAx
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDBkZWcpIiwg
InJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAiY29sb3IobGFiIDAlIDAlIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDQwJSAwIDBkZWcpIiwgInJn
YmEoMCwgMCwgMCwgMCkiKTsKKworPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM0OSkKKysrIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSw0MiBAQAorMjAyMS0wMS0xMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCksIGdyYXkoKSBhbmQgY29sb3IobGFiIC4uLikgY29s
b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGUgdGVzdHMgdG8gdXNlIHJlY3RhbmdsZXMgcmF0aGVyIHRoYW4gdGV4dCB0byBtYWtlIGFudGkt
YWxpYXNpbmcgZGlmZmVyZW5jZXMKKyAgICAgICAgbm90IGNhdXNlIGZhaWx1cmVzLiBUaGVzZSBj
aGFuZ2VzIHdpbGwgYmUgdXBzdHJlYW1lZCB0byB0aGUgV2ViUGxhdGZvcm1UZXN0cy4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEtZXhwZWN0ZWQu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAx
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
Mi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xhYi0wMDIuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDAzLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS1leHBlY3RlZC5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2LWV4cGVjdGVkLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDct
ZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sYWItMDA3Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGNoLTAwMS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbG9yL2xjaC0wMDEuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDAyLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDMtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAzLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC1leHBlY3RlZC5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA1LWV4
cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGNoLTAwNS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDYtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb2xvci9sY2gtMDA2Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGNoLTAwNy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDcuaHRtbDoKKwogMjAyMS0wMS0wOCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjI2NzQwMik6IFsgbWFjT1MgaU9TIFJlbGVhc2UgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3VzZXItdGltaW5nL21lYXN1cmUtbDMuYW55Lndvcmtlci5odG1sIGlzIGEgZmxh
a3kgZmFpbHVyZQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGFiLTAwMS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMS1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsMTAgQEAKIDwhRE9DVFlQRSBodG1s
PgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkdyZWVuIHRleHQgcmVmZXJlbmNlPC90
aXRsZT4KKzx0aXRsZT5HcmVlbiBzcXVhcmUgcmVmZXJlbmNlPC90aXRsZT4KIDxzdHlsZT4KLSAg
ICAudGVzdCB7IGNvbG9yOiAjMDA4MDAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjog
IzAwODAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9CiA8L3N0eWxlPgogPGJvZHk+Ci0g
ICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4K
KyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVk
LjwvcD4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Ij48L2Rpdj4KIDwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQor
KysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xhYi0wMDEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMSArMywxNSBAQAogPHRpdGxl
PkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4K
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xv
ci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZ3JlZW50
ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImdyZWVuc3F1YXJlLXJlZi5o
dG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSI+
CiA8c3R5bGU+Ci0gICAgLnRlc3Qge2NvbG9yOiBsYWIoNDYuMjc3JSAtNDcuNTYyIDQ4LjU4Myl9
IC8qIGdyZWVuIChzUkdCICMwMDgwMDApIGNvbnZlcnRlZCB0byBMYWIgKi8KKyAgICAudGVzdCB7
IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4t
dG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6ICMwMDgwMDA7IHdpZHRoOiAxMmVt
OyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQt
Y29sb3I6IGxhYig0Ni4yNzclIC00Ny41NjIgNDguNTgzKX0gLyogZ3JlZW4gKHNSR0IgIzAwODAw
MCkgY29udmVydGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0
ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgZ3JlZW48L3A+CisgICAgPHA+VGVzdCBw
YXNzZXMgaWYgeW91IHNlZSBhIGdyZWVuIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAg
Y2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDAyLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDItZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDItZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw5ICsxLDEwIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5CbGFjayB0ZXh0IHJlZmVyZW5jZTwvdGl0bGU+Cis8dGl0bGU+
QmxhY2sgYmxvY2sgcmVmZXJlbmNlPC90aXRsZT4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9y
OiAjMDAwMDAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgd2lkdGg6
IDEyZW07IGhlaWdodDogMTJlbTt9CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRl
c3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBibGFjazwvcD4KKyAgICA8cD5UZXN0IHBh
c3NlcyBpZiB5b3Ugc2VlIGEgYmxhY2sgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBj
bGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xhYi0wMDIuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMywxMiArMywxMyBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVj
aWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hy
aXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxh
Yi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iYmxhY2t0ZXh0LXJlZi5odG1sIj4KKzxs
aW5rIHJlbD0ibWF0Y2giIGhyZWY9ImJsYWNrYmxvY2stcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0i
YXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhIj4KIDxzdHlsZT4KLSAgICAudGVz
dCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsYWIoMCUgMCAwKX0gLyogYmxh
Y2sgKHNSR0IgIzAwMDAwMCkgY29udmVydGVkIHRvIExhYiAqLworICAgIC50ZXN0IHsgYmFja2dy
b3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtOyB9CisgICAgLnRlc3Qg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBsYWIoMCUgMCAwKSB9IC8qIGJsYWNrIChzUkdCICMwMDAwMDAp
IGNvbnZlcnRlZCB0byBMYWIgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVz
dCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGJsYWNrPC9wPgorICAgIDxwPlRlc3QgcGFz
c2VzIGlmIHlvdSBzZWUgYSBibGFjayBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNs
YXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDMtZXhwZWN0ZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGFiLTAwMy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisr
KyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGFiLTAwMy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsMTEgQEAK
IDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldoaXRlIHRl
eHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5XaGl0ZSBibG9jayByZWZlcmVuY2U8L3RpdGxl
PgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6ICNGRkZGRkY7IGJhY2tncm91bmQtY29sb3I6
ICMzMzM7IHBhZGRpbmc6IDNweH0KKyAgICBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsg
fQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDEyZW07IGhl
aWdodDogMTJlbTt9CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3Qg
cGFzc2VzIGlmIHRoaXMgdGV4dCBpcyB3aGl0ZTwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5
b3Ugc2VlIGEgd2hpdGUgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVz
dCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDMuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMywxMiArMywxNCBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExh
YiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5
IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgot
PGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0id2hpdGV0ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0i
bWF0Y2giIGhyZWY9IndoaXRlYmxvY2stcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9y
OiByZWQ7IGJhY2tncm91bmQtY29sb3I6ICMzMzM7IHBhZGRpbmc6IDNweDt9Ci0gICAgLnRlc3Qg
eyBjb2xvcjogbGFiKDEwMCUgMCAwKTt9IC8qIHdoaXRlIChzUkdCICNGRkZGRkYpIGNvbnZlcnRl
ZCB0byBMYWIgKi8KKyAgICBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfQorICAgIC50
ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtOyB9
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsYWIoMTAwJSAwIDApO30gLyogd2hpdGUg
KHNSR0IgI0ZGRkZGRikgY29udmVydGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAg
IDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgd2hpdGU8L3A+Cisg
ICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHdoaXRlIHNxdWFyZSwgYW5kIG5vIHJlZC48
L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0LWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0
OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBj
b2xvcjogcmdiKDc1LjYyJSAzMC40NSUgNDcuNTYlKX0gLyogbGFiKDUwIDUwIDApIGNvbnZlcnRl
ZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYig3NS42MiUgMzAu
NDUlIDQ3LjU2JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNTAgNTAgMCkg
Y29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3Nl
cyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+
Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQu
IEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmds
ZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+
CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTIgQEAKIDxsaW5rIHJlbD0ibWF0
Y2giIGhyZWY9ImxhYi0wMDQtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50
PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBwb3NpdGl2ZSBhIGF4aXMiPgogPHN0eWxlPgotICAgIC50
ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxhYig1MCUgNTAgMCl9Ci0g
ICAgLm1hdGNoIHsgY29sb3I6IHJnYig3NS42MiUsIDMwLjQ1JSwgNDcuNTYlKX0gLyogbGFiKDUw
IDUwIDApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYg
eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzUuNjIlLCAzMC40NSUsIDQ3LjU2JSk7IHdpZHRoOiAx
MmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0vKiBsYWIoNTAgNTAgMCkgY29udmVy
dGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxhYig1MCUgNTAg
MCl9IAogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGlu
ZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0i
dGVzdCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxw
IGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9w
PgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90
IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJy
ZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFi
LTAwNS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1LWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBD
b2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0
Y2ggeyBjb2xvcjogcmdiKDEwLjc5JSwgNzUuNTUlLCA2Ni40MCUpfSAvKiBsYWIoNzAgLTQ1IDAp
IGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io
MTAuNzklLCA3NS41NSUsIDY2LjQwJSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBs
YWIoNzAgLTQ1IDApIGNvbnZlcnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAg
PHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNh
bWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQu
IEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVu
dCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xhYi0wMDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS5odG1sCShyZXZpc2lvbiAyNzEz
NDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwNS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDEyICs2LDEyIEBACiA8
bGluayByZWw9Im1hdGNoIiBocmVmPSJsYWItMDA1LXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFz
c2VydCIgY29udGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSwgbmVnYXRpdmUgYSBheGlzIj4KIDxz
dHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsYWIo
NzAlIC00NSAwKX0KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDEwLjc5JSwgNzUuNTUlLCA2Ni40
MCUpfSAvKiBsYWIoNzAgLTQ1IDApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBi
YWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRv
cDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2
LjQwJSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0gLyogbGFi
KDcwIC00NSAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1j
b2xvcjogbGFiKDcwJSAtNDUgMCl9IAogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFz
c2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwv
cD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIg
dGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5n
bGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9w
PgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8
L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGFiLTAwNi1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA2LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2LWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRm
LTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4K
IDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1LjU4JSl9
IC8qIGxhYig3MCAwIDcwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1LjU4JSk7IHdpZHRoOiAxMmVtOyBoZWln
aHQ6IDEyZW07fSAvKiBsYWIoNzAgMCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+
CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0
ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNo
Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVz
dCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3Rhbmds
ZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8
L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2Lmh0bWwJ
KHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYs
MTIgKzYsMTIgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDYtcmVmLmh0bWwiPgog
PG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBwb3NpdGl2
ZSBiIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0
IHsgY29sb3I6IGxhYig3MCUgMCA3MCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYig3Ni42MiUs
IDY2LjM2JSwgNS41OCUpfSAvKiBsYWIoNzAgMCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAg
ICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVt
OyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYig3Ni42MiUs
IDY2LjM2JSwgNS41OCUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206
IDB9IC8qIGxhYig3MCAwIDcwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFj
a2dyb3VuZC1jb2xvcjogbGFiKDcwJSAwIDcwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+
VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUg
Y29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQu
IEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNl
ZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNv
bG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+
IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA3LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xhYi0wMDctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDct
ZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8
L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUs
IDkyLjc2JSl9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVz
dCB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKTsgd2lkdGg6
IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0Ig
Ki8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVz
IG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1h
dGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAg
Y2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3Qg
dHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRl
c3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
YWItMDA3Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA3Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTYsMTIgKzYsMTIgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDct
cmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFs
cGhhLCBuZWdhdGl2ZSBiIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsg
fQotICAgIC50ZXN0IHsgY29sb3I6IGxhYig1NSUgMCAtNjApfQotICAgIC5tYXRjaCB7IGNvbG9y
OiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVk
IHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEy
ZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29s
b3I6IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVt
OyBtYXJnaW4tYm90dG9tOiAwfSAvKiBsYWIoNTUgMCAtNjApIGNvbnZlcnRlZCB0byBzUkdCICov
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsYWIoNTUlIDAgLTYwKX0gCiA8L3N0eWxl
PgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIg
dGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNo
Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVz
dCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3Rhbmds
ZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAg
ICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLWV4cGVjdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcx
MzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsx
LDExIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5H
cmVlbiB0ZXh0IHJlZmVyZW5jZTwvdGl0bGU+Cis8dGl0bGU+R3JlZW4gYmxvY2sgcmVmZXJlbmNl
PC90aXRsZT4KIDxzdHlsZT4KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6ICMwMDgwMDA7
IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fQogICAgIC50ZXN0IHsgY29sb3I6ICMwMDgwMDB9
CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRo
aXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3Jl
ZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Ij48L2Rpdj4K
IDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEuaHRt
bAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MywxMSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENI
PC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJt
YWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVs
PSJtYXRjaCIgaHJlZj0iZ3JlZW50ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhy
ZWY9ImdyZWVuYmxvY2stcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJs
Y2goKSB3aXRoIG5vIGFscGhhIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7Y29sb3I6IGxjaCg0Ni4y
NzclIDY3Ljk0NSAxMzQuNDI3KX0gLyogZ3JlZW4gKHNSR0IgIzAwODAwMCkgY29udmVydGVkIHRv
IExDSCAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsg
aGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjog
IzAwODAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfQorICAg
IC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDQ2LjI3NyUgNjcuOTQ1IDEzNC40MjcpfSAv
KiBncmVlbiAoc1JHQiAjMDA4MDAwKSBjb252ZXJ0ZWQgdG8gTENIICovCiA8L3N0eWxlPgogPGJv
ZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVl
bjwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQg
bm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0
Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGNoLTAwMi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAw
Mi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsMTAgQEAKIDwhRE9DVFlQ
RSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkJsYWNrIHRleHQgcmVmZXJl
bmNlPC90aXRsZT4KKzx0aXRsZT5CbGFjayBibG9jayByZWZlcmVuY2U8L3RpdGxlPgogPHN0eWxl
PgotICAgIC50ZXN0IHsgY29sb3I6ICMwMDAwMDB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNv
bG9yOiAjMDAwMDAwOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30KIDwvc3R5bGU+CiA8Ym9k
eT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGJsYWNr
PC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFjayBzcXVhcmUsIGFuZCBu
byByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xj
aC0wMDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5odG1sCShyZXZpc2lvbiAyNzEzNDkp
CisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGNoLTAwMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDEyICszLDEzIEBACiA8dGl0
bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5vcmci
PgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNv
bG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJibGFj
a3RleHQtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iYmxhY2tibG9jay1yZWYu
aHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEi
PgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6
IGxjaCgwJSAwIDApfSAvKiBibGFjayAoc1JHQiAjMDAwMDAwKSBjb252ZXJ0ZWQgdG8gTENIICov
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6
IDEyZW07IH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxjaCgwJSAwIDApIH0gLyog
YmxhY2sgKHNSR0IgIzAwMDAwMCkgY29udmVydGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxib2R5
PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgYmxhY2s8
L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIGJsYWNrIHNxdWFyZSwgYW5kIG5v
IHJlZC48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNo
LTAwMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAzLWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAzLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsOSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08dGl0bGU+V2hpdGUgdGV4dCByZWZlcmVuY2U8L3RpdGxlPgorPHRpdGxlPldoaXRlIGJs
b2NrIHJlZmVyZW5jZTwvdGl0bGU+CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogI0ZGRkZG
RjsgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgcGFkZGluZzogM3B4fQorICAgIGJvZHkgeyBiYWNr
Z3JvdW5kLWNvbG9yOiBncmV5OyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZG
RkZGOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8
cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIHdoaXRlPC9wPgorICAg
IDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSB3aGl0ZSBzcXVhcmUsIGFuZCBubyByZWQuPC9w
PgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNo
LTAwMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDkgKzYsMTEgQEAKIDxsaW5rIHJlbD0ibWF0
Y2giIGhyZWY9IndoaXRldGV4dC1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRl
bnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJl
ZDsgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgcGFkZGluZzogM3B4O30KLSAgICAudGVzdCB7IGNv
bG9yOiBsY2goMTAwJSAwIDApO30gLyogd2hpdGUgKHNSR0IgI0ZGRkZGRikgY29udmVydGVkIHRv
IExDSCAqLworICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9CisgICAgLnRlc3Qg
eyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAg
ICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxjaCgxMDAlIDAgMCk7fSAvKiB3aGl0ZSAoc1JH
QiAjRkZGRkZGKSBjb252ZXJ0ZWQgdG8gTGFiICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAg
Y2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyB3aGl0ZTwvcD4KKyAgICA8
cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgd2hpdGUgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4K
KyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0LWV4cGVj
dGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbG9yL2xjaC0wMDQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwx
MCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNw
ZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9y
OiByZ2IoNzUuNjIlIDMwLjQ1JSA0Ny41NiUpfSAvKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRv
IHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6cmdiKDc1LjYyJSAzMC40NSUg
NDcuNTYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxjaCg1MCA1MCAwKSBjb252
ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVucyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLwog
PC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2Yg
ZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2gi
PkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFz
cz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAg
ICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28g
cmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+
IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0w
MDQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMywxNSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBh
bmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBo
cmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxp
bmsgcmVsPSJtYXRjaCIgaHJlZj0ibGFiLTAwNC1yZWYuaHRtbCI+Cis8bGluayByZWw9Im1hdGNo
IiBocmVmPSJsY2gtMDA0LXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0i
bGNoKCkgd2l0aCBubyBhbHBoYSwgcG9zaXRpdmUgYSBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVz
dCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsY2goNTAlIDUwIDApfQotICAg
IC5tYXRjaCB7IGNvbG9yOiByZ2IoNzUuNjIlLCAzMC40NSUsIDQ3LjU2JSl9IC8qIGxjaCg1MCA1
MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVucyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAg
NTAgMCkqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsg
aGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjog
cmdiKDc1LjYyJSwgMzAuNDUlLCA0Ny41NiUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1h
cmdpbi1ib3R0b206IDB9IC8qIGxjaCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVu
cyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLworICAgIC50ZXN0IHsgYmFja2dyb3Vu
ZC1jb2xvcjogbGNoKDUwJSA1MCAwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBw
YXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3Iu
PC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxl
ciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRl
eHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNp
bmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48
L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4K
IDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA1LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xj
aC0wMDUtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUtZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxl
PgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQw
JSl9IC8qIGxhYig3MCAtNDUgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJh
Y2tncm91bmQtY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwgNjYuNDAlKTsgd2lkdGg6IDEyZW07
IGhlaWdodDogMTJlbTt9IC8qIGxjaCg3MCA0NSAxODApIGNvbnZlcnRlZCB0byBzUkdCICovCiA8
L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBm
aWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+
RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNz
PSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAg
IDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byBy
ZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4g
PC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAw
NS5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0zLDE1ICszLDE1IEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFu
ZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhy
ZWY9Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGlu
ayByZWw9Im1hdGNoIiBocmVmPSJsYWItMDA1LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2gi
IGhyZWY9ImxjaC0wMDUtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJs
Y2goKSB3aXRoIG5vIGFscGhhLCBuZWdhdGl2ZSBhIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0
IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxjaCg3MCUgNDUgLTE4MCl9Ci0g
ICAgLm1hdGNoIHsgY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwgNjYuNDAlKX0gLyogbGNoKDcw
IDQ1IDE4MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29s
b3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJl
ZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwgNjYuNDAlKTsgd2lkdGg6
IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfSAvKiBsY2goNzAgNDUgMTgwKSBj
b252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDcw
JSA0NSAtMTgwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhl
IHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxw
IGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUs
IGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAg
Y2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sY2gtMDA2LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDYtZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDYtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0
bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgot
ICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzYuNjIlLCA2Ni4zNiUsIDUuNTglKX0gLyogbGFiKDcw
IDAgNzApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoNzYuNjIlLCA2Ni4zNiUsIDUuNTglKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9
IC8qIGxjaCg3MCA3MCA5MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4K
LSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0
aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMg
aWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlm
ZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGNoLTAwNi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2Lmh0bWwJKHJldmlzaW9u
IDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDA2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTUgKzMsMTUg
QEAKIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExpbGxleSIgaHJlZj0ibWFpbHRvOmNocmlz
QHczLm9yZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3MtY29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNoIj4KLTxsaW5rIHJlbD0ibWF0Y2giIGhy
ZWY9ImxhYi0wMDYtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGNoLTAwNi1y
ZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxw
aGEsIHBvc2l0aXZlIGIgYXhpcyI+CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogcmVkOyB9
Ci0gICAgLnRlc3QgeyBjb2xvcjogbGNoKDcwJSA3MCA5MCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6
IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpfSAvKiBsY2goNzAgNzAgOTApIGNvbnZlcnRlZCB0
byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVt
OyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoNzYuNjIlLCA2Ni4zNiUsIDUuNTglKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBt
YXJnaW4tYm90dG9tOiAwfSAvKiBsY2goNzAgNzAgOTApIGNvbnZlcnRlZCB0byBzUkdCICovCisg
ICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsY2goNzAlIDcwIDkwKX0gCiA8L3N0eWxlPgog
PGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4
dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4
dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5G
aWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBw
YXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMg
b2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8
cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3LWV4cGVjdGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5
KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xjaC0wMDctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5
IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlp
bmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2Io
MTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNS
R0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNy4zOCUgNTEuOTIlIDkx
LjI1JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsY2goNTUlIDU4IDI3NSkgY29u
dmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBp
ZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0g
ICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBz
cXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+Cisg
ICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDA3Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTUgKzMsMTUgQEAKIDx0aXRsZT5DU1MgQ29sb3Ig
NDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkNocmlzIExpbGxleSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lm
eWluZy1sYWItbGNoIj4KLTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDctcmVmLmh0bWwi
PgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGNoLTAwNy1yZWYuaHRtbCI+CiA8bWV0YSBuYW1l
PSJhc3NlcnQiIGNvbnRlbnQ9ImxhYigpIHdpdGggbm8gYWxwaGEsIG5lZ2F0aXZlIGIgYXhpcyI+
CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjog
bGNoKDU2JSA1OCAyNzUpfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUs
IDkyLjc2JSl9IC8qIGxjaCg1NiA1OCAyNzUpIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRl
c3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFy
Z2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjcuMzglIDUxLjky
JSA5MS4yNSUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8q
IGxjaCg1NSUgNTggMjc1KSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dy
b3VuZC1jb2xvcjogbGNoKDU1JSA1OCAyNzUpfSAKIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5U
ZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBj
b2xvci48L3A+Ci0gICAgPHAgY2xhc3M9InRlc3QiPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4g
RmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxs
ZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2Vl
IGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29s
b3JzLjwvcD4KKyAgICA8cCBjbGFzcz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4g
PC9wPgogPC9ib2R5Pgo=
</data>
<flag name="commit-queue"
          id="435044"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417353</attachid>
            <date>2021-01-10 11:51:40 -0800</date>
            <delta_ts>2021-01-10 15:50:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210110115139.patch</filename>
            <type>text/plain</type>
            <size>90819</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyMCBAQAorMjAyMS0wMS0xMCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCkg
YW5kIGNvbG9yKGxhYiAuLi4pIGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICBUaGlzIGFkZHMgcGFyc2luZyBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkgYW5kIGNvbG9yKGxh
YiAuLi4pIENTUyBjb2xvcnMgCisgICAgICAgIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNv
bG9yLTQvKSBhbmQgY29sb3IgdHlwZSwgY29udmVyc2lvbiwgYW5kIHNlcmlhbGl6YXRpb24gCisg
ICAgICAgIHN1cHBvcnQgZm9yIExhYiBhbmQgY29sb3IgdHlwZSBhbmQgY29udmVyc2lvbiBzdXBw
b3J0IGZvciBMQ0ggKHdlIHN0b3JlIHRoZXNlIGNvbG9yIAorICAgICAgICBjYW5vbmljYWxseSBh
cyBMYWI8ZmxvYXQ+LCBzbyBzZXJpYWxpemF0aW9uIG9mIExDSCBpcyBuZXZlciBuZWVkZWQsIG11
Y2ggbGlrZSBIU0wpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXMgbm90IGFkZCBzdXBwb3J0
IGZvciB0aGUgaG9zdCBwbGF0Zm9ybSBsYXllciAoZS5nLiBDb3JlR3JhcGhpY3MsIGV0YykKKyAg
ICAgICAgdW5kZXJzdGFuZGluZyBvZiB0aGUgTGFiIGNvbG9yc3BhY2UsIGFuZCBhcyBzdWNoLCB3
aGVuIGNyZWF0aW5nIGhvc3QgY29sb3Igb2JqZWN0cworICAgICAgICAoZm9yIGluc3RhbmNlIHZp
YSB0aGUgY2FjaGVkQ0dDb2xvcigpIGhlbHBlcikgTGFiPGZsb2F0PiBjb2xvcnMgYXJlIGNvbnZl
cnRlZCB0byBzUkdCCisgICAgICAgIGZpcnN0IGFuZCB0aGVuIHRoZSBob3N0IGNvbG9yIGlzIG1h
ZGUuIFRoZSByYW1pZmljYXRpb24gb2YgdGhpcyBpcyBmb3IgcGxhdGZvcm1zIHRoYXQKKyAgICAg
ICAgdXNlIGJhY2tpbmdzdG9yZXMgd2l0aCBncmVhdGVyIHRoYW4gc1JHQiBnYW11dHMsIExhYiBj
b2xvcnMgd2lsbCBiZSBjbGFtcHRlZCB0byBzUkdCLgorICAgICAgICBUaGlzIHNob3VsZCBiZSBy
ZWN0aWZpZWQgaW4gYSBmb2xsb3cgdXAgY2hhbmdlIHRoYXQgYWRkcyBwcm9wZXIgY3JlYXRpb24g
b2YgdGhlc2UgaG9zdAorICAgICAgICBvYmplY3RzIGJ1dCBpcyBiZWluZyBsZWZ0IG9mZiB0aGUg
aW5pdGlhbCBjaGFuZ2UgdG8gbGltaXQgY2hhbmdlcy4KKworICAgICAgICBTb21lIG9mIHRoZSBp
bXBvcnRlZCB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1c2UgcmVjdGFuZ2xlcyByYXRoZXIg
dGhhbiB0ZXh0IHRvCisgICAgICAgIGF2b2lkIGFudGktYWxpYXNpbmcgaXNzdWVzIGFuZCB3aWxs
IGJlIHVwc3RyZWFtZWQgdG8gV1BUIGZvbGxvd2luZyBsYW5kaW5nLgorCisgICAgICAgIFRlc3Rz
OiAKKyAgICAgICAgICAgIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCisgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
MS5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwMi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sCisgICAgICAgICAgICBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1sCisgICAg
ICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFi
LTAwNS5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGFiLTAwNi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5odG1sCisgICAgICAgICAgICBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGNoLTAwMi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC5odG1sCisgICAgICAgICAgICBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1s
CisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGNoLTAwNi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbjoKKyAgICAgICAgQWRkICJsYWIiIGFuZCAibGNoIiBrZXl3b3Jkcy4KKworICAg
ICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmg6CisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZU9wdGlvbmFsQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUxDSFBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUdyYXlQYXJh
bWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFy
c2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OnBhcnNlQ29sb3JGdW5jdGlvbik6CisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBwYXJzaW5nICJsYWIoLi4uKSIsICJsY2goLi4uKSIsICJncmF5KC4uLikiCisgICAgICAg
IGFuZCAiY29sb3IobGFiIC4uLikiLCBhbGwgb2Ygd2hpY2ggY3JlYXRlIExhYjxmbG9hdD4gY29s
b3JzLgorCisgICAgICAgIEFsc28gYWRkcyBleHBsaWNpdCBVbml0bGVzc1plcm9RdWlyayBmbGFn
IHRvIGFuZ2xlIHBhcnNpbmcgdG8KKyAgICAgICAgYWxsb3cgcGFyc2luZyBvZiBuZXdlciBzcGVj
cyB0aGF0IGRvbid0IHdhbnQgdG8gYWxsb3cgdW5pdGxlc3MgemVybworICAgICAgICBmb3IgYW5n
bGVzLiBGb3Igbm93LCBJIGhhdmUgbGVmdCBGSVhNRXMgZm9yIHRoZSBwcm9wZXJ0aWVzIHRoYXQK
KyAgICAgICAgc2hvdWxkIHByb2JhYmx5IGRpc2FibGUgaXQuIFRoaXMgd2FzIG5vdCBzdHJpY3Rs
eSBuZWNlc3NhcnkgZm9yIHRoaXMKKyAgICAgICAgY2hhbmdlIChhcyBsY2ggYWN0YXVsbHkgYWxs
b3dzIHVuaXRsZXNzIGFuZ2xlcyBub3cpLCBidXQgaXQgc2VlbXMKKyAgICAgICAgbGlrZSBhIHNv
bGlkIG1vdmUgZm9yd2FyZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6Q29sb3IpOgorICAgICAgICBBZGQgb3ZlcmxvYWQg
b2YgdGhlIENvbG9yIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYSBMYWI8ZmxvYXQ+IG1hdGNoaW5n
IG90aGVyCisgICAgICAgIENvbG9yU3BhY2UgdHlwZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEZy
b21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZl
cnRGcm9tRDY1V2hpdGVQb2ludFRvRDUwV2hpdGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjp0
b1hZWkEpOgorICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6dG9M
Q0hBKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvTGFiKToKKyAgICAgICAgKFdlYkNvcmU6OnRvTENIQSk6CisgICAg
ICAgIEFkZCBjb252ZXJzaW9ucyB0by9mcm9tIExhYiB0byBENjUgd2hpdGUgcG9pbnQgWFlaQSAo
dGhlIHdoaXRlIHBvaW50IHdlIGV4cGVjdCBYWVpBIHRvIGJlIGluKSwgYW5kIGNvbnZlcnNpb24K
KyAgICAgICAgZnJvbSBMY2ggdG8vZnJvbSBMYWIuIAorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvckNTUyk6CisgICAgICAg
IChXZWJDb3JlOjpzZXJpYWxpemF0aW9uRm9ySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpzZXJp
YWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTZXJpYWxpemF0aW9uLmg6CisgICAgICAgIEFkZCBzZXJpYWxpemF0aW9uIGZvciBM
YWIgY29sb3JzLiBXZSBjdXJyZW50bHkgYWx3YXlzIHNlcmlhbGl6ZSB1c2luZyB0aGUgbGFiKCkK
KyAgICAgICAgbm90YXRpb24sIHdoaWNoIGFwcGVhcnMgdG8gYmUgY29ycmVjdCBmb3IgYXQgbGVh
c3QgY29sb3JzIGRlY2xhcmVkIHVzaW5nIGxhYigpLAorICAgICAgICBsY2goKSBhbmQgZ3JheSgp
LiBVbmNsZWFyIGlmIGl0IGlzIGNvcnJlY3QgZm9yIGNvbG9ycyBkZWNsYXJlZCB3aXRoIGNvbG9y
KGxhYiAuLi4pLgorICAgICAgICBPcGVuZWQgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1k
cmFmdHMvaXNzdWVzLzU4MjUgdG8gdHJhY2sgZ2V0dGluZyBhIHJlc29sdXRpb24KKyAgICAgICAg
Zm9yICJjb2xvcihsYWIgLi4uKSIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAgICAgICAgQWRkIExhYiBhcyBhIENvbG9y
U3BhY2UgYW5kIHRleHQgc3RyZWFtIGR1bXBpbmcgZm9yIGl0LgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6TGFiOjpMYWIpOgor
ICAgICAgICAoV2ViQ29yZTo6YXNDb2xvckNvbXBvbmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
YXNMYWIpOgorICAgICAgICBBZGQgTGFiIGNvbG9yIHR5cGUuCisKKyAgICAgICAgKFdlYkNvcmU6
OkxDSEE6OkxDSEEpOgorICAgICAgICAoV2ViQ29yZTo6YXNMQ0hBKToKKyAgICAgICAgQWRkIExD
SEEgY29sb3IgdHlwZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpjYWxsV2l0aENvbG9y
VHlwZSk6CisgICAgICAgIEFkZCBMYWIgdG8gY2FsbFdpdGhDb2xvclR5cGUgc2luY2UgaXQgaXMg
bm93IGEgdmFsaWQgQ29sb3JTcGFjZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yU3BhY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsYWJDb2xvclNwYWNlUmVmKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6CisgICAgICAgIEZvciBub3csIHJldHVybiB0
aGUgc1JHQiBjb2xvciBzcGFjZSB0byBpbmRpY2F0ZSB0byBjYWxsZXJzIHRoYXQgdGhleSBzaG91
bGQgZG8gYSBjb252ZXJzaW9uLgorCiAyMDIxLTAxLTEwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBNYWtlICJpbmxpbmUgbGV2ZWwgYm94IGFm
ZmVjdHMgbGluZSBib3ggZ2VvbWV0cnkiIGxvZ2ljIG1vcmUgZXhwbGljaXQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTI2
NCw2ICsxMjY0LDggQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCiAvL2NvbG9yCiAK
IC8vIHRyYW5zZm9ybQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODEsNyAr
OTgxLDggQEAgc3RhdGljIFJlZlB0cjxDU1NGb250U3R5bGVSYW5nZVZhbHVlPiBjbwogICAgIGlm
IChrZXl3b3JkLT52YWx1ZUlEKCkgIT0gQ1NTVmFsdWVPYmxpcXVlIHx8IHJhbmdlLmF0RW5kKCkp
CiAgICAgICAgIHJldHVybiBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjcmVhdGUoa2V5d29yZC5y
ZWxlYXNlTm9uTnVsbCgpKTsKIAotICAgIGlmIChhdXRvIGZpcnN0QW5nbGUgPSBjb25zdW1lQW5n
bGUocmFuZ2UsIGNzc1BhcnNlck1vZGUpKSB7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHBy
b2JhYmx5IG5vdCBhbGxvdyB0aGUgdW5pdGxlc3MgemVyby4KKyAgICBpZiAoYXV0byBmaXJzdEFu
Z2xlID0gY29uc3VtZUFuZ2xlKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrOjpG
b3JiaWQsIFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdykpIHsKICAgICAgICAgYXV0byBmaXJzdEFu
Z2xlSW5EZWdyZWVzID0gZmlyc3RBbmdsZS0+ZG91YmxlVmFsdWUoQ1NTVW5pdFR5cGU6OkNTU19E
RUcpOwogICAgICAgICBpZiAoIWlzRm9udFN0eWxlQW5nbGVJblJhbmdlKGZpcnN0QW5nbGVJbkRl
Z3JlZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC05OTAsNyArOTkxLDkgQEAg
c3RhdGljIFJlZlB0cjxDU1NGb250U3R5bGVSYW5nZVZhbHVlPiBjbwogICAgICAgICAgICAgcmVz
dWx0LT5hcHBlbmQoZmlyc3RBbmdsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIHJl
dHVybiBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjcmVhdGUoa2V5d29yZC5yZWxlYXNlTm9uTnVs
bCgpLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8gc2Vjb25kQW5n
bGUgPSBjb25zdW1lQW5nbGUocmFuZ2UsIGNzc1BhcnNlck1vZGUpOworCisgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBub3QgYWxsb3cgdGhlIHVuaXRsZXNzIHplcm8uCisg
ICAgICAgIGF1dG8gc2Vjb25kQW5nbGUgPSBjb25zdW1lQW5nbGUocmFuZ2UsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAg
ICAgICAgaWYgKCFzZWNvbmRBbmdsZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBhdXRvIHNlY29uZEFuZ2xlSW5EZWdyZWVzID0gc2Vjb25kQW5nbGUtPmRvdWJsZVZhbHVl
KENTU1VuaXRUeXBlOjpDU1NfREVHKTsKQEAgLTE5MDAsMTIgKzE5MDMsMTIgQEAgc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVRyYW5zZm9ybQogICAgIGNhc2UgQ1NTVmFsdWVTa2V3WDoK
ICAgICBjYXNlIENTU1ZhbHVlU2tld1k6CiAgICAgY2FzZSBDU1NWYWx1ZVNrZXc6Ci0gICAgICAg
IHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNz
UXVpcms6OkZvcmJpZCk7CisgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3Ms
IGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6
OkFsbG93KTsKICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICBpZiAoZnVuY3Rpb25JZCA9PSBDU1NWYWx1ZVNrZXcgJiYgY29uc3Vt
ZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKSkgewogICAgICAgICAgICAgdHJhbnNmb3Jt
VmFsdWUtPmFwcGVuZCgqcGFyc2VkVmFsdWUpOwotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBj
b25zdW1lQW5nbGUoYXJncywgY3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsK
KyAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAg
ICAgICAgICAgIGlmICghcGFyc2VkVmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgICAgIH0KQEAgLTE5NTYsNyArMTk1OSw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVUcmFuc2Zvcm0KICAgICBjYXNlIENTU1ZhbHVlUm90YXRlM2Q6CiAgICAgICAg
IGlmICghY29uc3VtZU51bWJlcnMoYXJncywgdHJhbnNmb3JtVmFsdWUsIDMpIHx8ICFjb25zdW1l
Q29tbWFJbmNsdWRpbmdXaGl0ZXNwYWNlKGFyZ3MpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3Vt
ZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxl
c3NaZXJvUXVpcms6OkFsbG93KTsKICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBicmVhazsKQEAgLTIxMjIsNyArMjEyNSw3IEBA
IHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVSb3RhdGUoQ1MKIAogICAgICAgICAvLyBU
aGVuLCBhdHRlbXB0IHRvIHBhcnNlIGFuIGFuZ2xlLiBXZSB0cnkgdGhpcyBhcyBhIGZhbGxiYWNr
IHJhdGhlciB0aGFuIHRoZSBmaXJzdCBvcHRpb24gYmVjYXVzZQogICAgICAgICAvLyBhIHVuaXRs
ZXNzIDAgYW5nbGUgd291bGQgYmUgY29uc3VtZWQgYXMgYW4gYW5nbGUuCi0gICAgICAgIHBhcnNl
ZFZhbHVlID0gY29uc3VtZUFuZ2xlKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJr
OjpGb3JiaWQpOworICAgICAgICBwYXJzZWRWYWx1ZSA9IGNvbnN1bWVBbmdsZShyYW5nZSwgY3Nz
UGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkLCBVbml0bGVzc1plcm9RdWlyazo6QWxs
b3cpOwogICAgICAgICBpZiAocGFyc2VkVmFsdWUpIHsKICAgICAgICAgICAgIC8vIElmIHdlIGhh
ZCBhbHJlYWR5IHBhcnNlZCBhbiBhbmdsZSBvciBudW1iZXJzIGJ1dCBub3QgMyBpbiBhIHJvdywg
dGhpcyB2YWx1ZSBpcyBpbnZhbGlkLgogICAgICAgICAgICAgaWYgKGFuZ2xlIHx8IChsaXN0LT5s
ZW5ndGgoKSAmJiBsaXN0LT5sZW5ndGgoKSAhPSAzKSkKQEAgLTIyNDIsNyArMjI0NSw3IEBAIHN0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHbHlwaE9yaWUKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogICAgIAotICAgIHJldHVybiBjb25zdW1lQW5nbGUocmFuZ2UsIG1vZGUs
IFVuaXRsZXNzUXVpcms6OkFsbG93KTsKKyAgICByZXR1cm4gY29uc3VtZUFuZ2xlKHJhbmdlLCBt
b2RlLCBVbml0bGVzc1F1aXJrOjpBbGxvdywgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKIH0K
IAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVBhaW50T3JkZXIoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZpc2lvbiAyNzEzNDkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5NiwxMiArMjk2LDE3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY29uc3VtZUZvbnRXZWkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotaW5saW5lIGJvb2wg
c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZShkb3VibGUgdmFsdWUsIENTU1BhcnNlck1vZGUgY3Nz
UGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKK2lubGluZSBib29sIHNob3VsZEFj
Y2VwdFVuaXRsZXNzVmFsdWUoZG91YmxlIHZhbHVlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1aXJrIHVuaXRsZXNzWmVy
bykKIHsKICAgICAvLyBGSVhNRTogUHJlc2VudGF0aW9uYWwgSFRNTCBhdHRyaWJ1dGVzIHNob3Vs
ZG4ndCB1c2UgdGhlIENTUyBwYXJzZXIgZm9yIGxlbmd0aHMKLSAgICByZXR1cm4gdmFsdWUgPT0g
MAotICAgICAgICB8fCBpc1VuaXRMZXNzVmFsdWVQYXJzaW5nRW5hYmxlZEZvck1vZGUoY3NzUGFy
c2VyTW9kZSkKLSAgICAgICAgfHwgKGNzc1BhcnNlck1vZGUgPT0gSFRNTFF1aXJrc01vZGUgJiYg
dW5pdGxlc3MgPT0gVW5pdGxlc3NRdWlyazo6QWxsb3cpOworCisgICAgaWYgKHZhbHVlID09IDAg
JiYgdW5pdGxlc3NaZXJvID09IFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdykKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBpZiAoaXNVbml0TGVzc1ZhbHVlUGFyc2luZ0VuYWJsZWRGb3JNb2Rl
KGNzc1BhcnNlck1vZGUpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICByZXR1cm4g
Y3NzUGFyc2VyTW9kZSA9PSBIVE1MUXVpcmtzTW9kZSAmJiB1bml0bGVzcyA9PSBVbml0bGVzc1F1
aXJrOjpBbGxvdzsKIH0KIAogT3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3KENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFZh
bHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKQEAgLTMzOSw3ICsz
NDQsNyBAQCBPcHRpb25hbDxMZW5ndGhSYXc+IGNvbnN1bWVMZW5ndGhSYXcoQ1NTCiAgICAgICAg
IHJldHVybiB7IHsgdG9rZW4udW5pdFR5cGUoKSwgcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRl
c3BhY2UoKS5udW1lcmljVmFsdWUoKSB9IH07CiAgICAgfQogICAgIGlmICh0b2tlbi50eXBlKCkg
PT0gTnVtYmVyVG9rZW4pIHsKLSAgICAgICAgaWYgKCFzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVl
KHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcykKKyAgICAgICAg
aWYgKCFzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQ
YXJzZXJNb2RlLCB1bml0bGVzcywgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KQogICAgICAgICAg
ICAgfHwgKHZhbHVlUmFuZ2UgPT0gVmFsdWVSYW5nZU5vbk5lZ2F0aXZlICYmIHRva2VuLm51bWVy
aWNWYWx1ZSgpIDwgMCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAg
ICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCkBAIC00NjQsNyArNDY5LDcg
QEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lTGVuZ3RoTwogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi1PcHRpb25hbDxBbmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3KENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNz
UXVpcmsgdW5pdGxlc3MpCitPcHRpb25hbDxBbmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3KENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRs
ZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1aXJrIHVuaXRsZXNzWmVybykKIHsKICAg
ICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAgICAgaWYgKHRv
a2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tlbikgewpAQCAtNDgwLDcgKzQ4NSw3IEBAIE9wdGlv
bmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXcoQ1NTUGEKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYgc2hvdWxkQWNjZXB0VW5pdGxl
c3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2VyTW9kZSwgdW5pdGxlc3MpKQor
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYgc2hvdWxkQWNjZXB0VW5pdGxl
c3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2VyTW9kZSwgdW5pdGxlc3MsIHVu
aXRsZXNzWmVybykpCiAgICAgICAgIHJldHVybiB7IHsgQ1NTVW5pdFR5cGU6OkNTU19ERUcsIHJh
bmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkgfSB9OwogCiAg
ICAgaWYgKHRva2VuLnR5cGUoKSAhPSBGdW5jdGlvblRva2VuKQpAQCAtNDkwLDcgKzQ5NSw3IEBA
IE9wdGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXcoQ1NTUGEKICAgICByZXR1cm4gY2Fs
Y1BhcnNlci5jb25zdW1lQW5nbGVSYXcoKTsKIH0KIAotUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBjb25zdW1lQW5nbGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUg
Y3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKK1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZUFuZ2xlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJz
ZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVy
b1F1aXJrIHVuaXRsZXNzWmVybykKIHsKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4g
PSByYW5nZS5wZWVrKCk7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7
CkBAIC01MDIsMTMgKzUwNywxMyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVB
bmdsZShDCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChhdXRvIGFu
Z2xlID0gY29uc3VtZUFuZ2xlUmF3KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcykpCisg
ICAgaWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXcocmFuZ2UsIGNzc1BhcnNlck1vZGUs
IHVuaXRsZXNzLCB1bml0bGVzc1plcm8pKQogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpz
aW5nbGV0b24oKS5jcmVhdGVWYWx1ZShhbmdsZS0+dmFsdWUsIGFuZ2xlLT50eXBlKTsKIAogICAg
IHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBj
b25zdW1lQW5nbGVPclBlcmNlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNl
ck1vZGUgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBVbml0bGVzc1F1aXJr
IHVuaXRsZXNzKQorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFuZ2xl
T3JQZXJjZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcywg
VW5pdGxlc3NaZXJvUXVpcmsgdW5pdGxlc3NaZXJvKQogewogICAgIGNvbnN0IENTU1BhcnNlclRv
a2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IERpbWVu
c2lvblRva2VuKSB7CkBAIC01MjIsNyArNTI3LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2Nl
cHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0
bGVzcykpCisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2Nl
cHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0
bGVzcywgdW5pdGxlc3NaZXJvKSkKICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xl
dG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1l
cmljVmFsdWUoKSwgQ1NTVW5pdFR5cGU6OkNTU19ERUcpOwogCiAgICAgaWYgKHRva2VuLnR5cGUo
KSA9PSBQZXJjZW50YWdlVG9rZW4pCkBAIC01NDksNyArNTU0LDcgQEAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBjb25zdW1lVGltZShDUwogewogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0
b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBDU1NVbml0VHlwZSB1bml0ID0gdG9rZW4udW5pdFR5
cGUoKTsKLSAgICBib29sIGFjY2VwdFVuaXRsZXNzID0gdG9rZW4udHlwZSgpID09IE51bWJlclRv
a2VuICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93ICYmIHNob3VsZEFjY2VwdFVu
aXRsZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNz
KTsKKyAgICBib29sIGFjY2VwdFVuaXRsZXNzID0gdG9rZW4udHlwZSgpID09IE51bWJlclRva2Vu
ICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93ICYmIHNob3VsZEFjY2VwdFVuaXRs
ZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNzLCBV
bml0bGVzc1plcm9RdWlyazo6QWxsb3cpOwogICAgIGlmIChhY2NlcHRVbml0bGVzcykKICAgICAg
ICAgdW5pdCA9IENTU1VuaXRUeXBlOjpDU1NfTVM7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBE
aW1lbnNpb25Ub2tlbiB8fCBhY2NlcHRVbml0bGVzcykgewpAQCAtNzQ4LDcgKzc1Myw3IEBAIHN0
YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFyc2UKICAgICBBU1NFUlQocmFuZ2Uu
cGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUhzbCB8fCByYW5nZS5wZWVrKCkuZnVuY3Rp
b25JZCgpID09IENTU1ZhbHVlSHNsYSk7CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0g
Y29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKICAgICBkb3VibGUgYW5nbGVJbkRlZ3JlZXM7Ci0gICAg
aWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXcoYXJncywgY3NzUGFyc2VyTW9kZSwgVW5p
dGxlc3NRdWlyazo6Rm9yYmlkKSkKKyAgICBpZiAoYXV0byBhbmdsZSA9IGNvbnN1bWVBbmdsZVJh
dyhhcmdzLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQsIFVuaXRsZXNzWmVy
b1F1aXJrOjpGb3JiaWQpKQogICAgICAgICBhbmdsZUluRGVncmVlcyA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpjb21wdXRlRGVncmVlcyhhbmdsZS0+dHlwZSwgYW5nbGUtPnZhbHVlKTsKICAgICBlbHNl
IHsKICAgICAgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3KGFyZ3MsIGFuZ2xlSW5EZWdyZWVzKSkK
QEAgLTc5Miw0OSArNzk3LDE1OCBAQCBzdGF0aWMgQ29sb3IgcGFyc2VIU0xQYXJhbWV0ZXJzKENT
U1BhcnNlCiAgICAgcmV0dXJuIGNvbnZlcnRUb0NvbXBvbmVudEJ5dGVzKHRvU1JHQkEoSFNMQTxm
bG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVswXSksIHN0YXRpY19jYXN0PGZs
b2F0Pihjb2xvckFycmF5WzFdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMl0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oYWxwaGEpIH0pKTsKIH0KIAotc3RhdGljIENvbG9yIHBhcnNlQ29s
b3JGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0aWMg
T3B0aW9uYWw8ZmxvYXQ+IHBhcnNlT3B0aW9uYWxBbHBoYShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKIHsKLSAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1
ZUNvbG9yKTsKKyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UocmFuZ2Up
KQorICAgICAgICByZXR1cm4gMS4wZjsKKworICAgIGlmIChhdXRvIGFscGhhUGFyYW1ldGVyID0g
Y29uc3VtZVBlcmNlbnRSYXcocmFuZ2UsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICByZXR1cm4g
Y2xhbXBUbzxmbG9hdD4oKmFscGhhUGFyYW1ldGVyIC8gMTAwLjAsIDAuMCwgMS4wKTsKKworICAg
IGRvdWJsZSBhbHBoYVBhcmFtZXRlcjsKKyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcocmFuZ2Us
IGFscGhhUGFyYW1ldGVyLCBWYWx1ZVJhbmdlQWxsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlciwgMC4wLCAx
LjApOworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2Vu
UmFuZ2UmIHJhbmdlKQoreworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09
IENTU1ZhbHVlTGFiKTsKICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVu
Y3Rpb24ocmFuZ2UpOwogCi0gICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlOwotICAgIHN3aXRjaCAo
YXJncy5wZWVrKCkuaWQoKSkgewotICAgIGNhc2UgQ1NTVmFsdWVTUkdCOgotICAgICAgICBjb2xv
clNwYWNlID0gQ29sb3JTcGFjZTo6U1JHQjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NW
YWx1ZURpc3BsYXlQMzoKLSAgICAgICAgY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OkRpc3BsYXlQ
MzsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNv
bnN1bWVQZXJjZW50UmF3KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNz
KQogICAgICAgICByZXR1cm4geyB9OworCisgICAgZG91YmxlIGFWYWx1ZTsKKyAgICBpZiAoIWNv
bnN1bWVOdW1iZXJSYXcoYXJncywgYVZhbHVlLCBWYWx1ZVJhbmdlQWxsKSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIGRvdWJsZSBiVmFsdWU7CisgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3
KGFyZ3MsIGJWYWx1ZSwgVmFsdWVSYW5nZUFsbCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KCpsaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYVZhbHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGJWYWx1ZSksICphbHBoYSB9OworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VMQ0hQYXJhbWV0
ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1v
ZGUpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVM
Y2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5n
ZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50UmF3KGFyZ3MsIFZhbHVl
UmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KworICAgIGRvdWJsZSBjaHJvbWFWYWx1ZTsKKyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcoYXJn
cywgY2hyb21hVmFsdWUsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgZG91YmxlIGFuZ2xlSW5EZWdyZWVzOworICAgIGlmIChhdXRvIGh1ZVZhbHVlID0gY29uc3Vt
ZUFuZ2xlUmF3KGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5p
dGxlc3NaZXJvUXVpcms6OkZvcmJpZCkpCisgICAgICAgIGFuZ2xlSW5EZWdyZWVzID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKGh1ZVZhbHVlLT50eXBlLCBodWVWYWx1ZS0+dmFs
dWUpOworICAgIGVsc2UgeworICAgICAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcoYXJncywgYW5n
bGVJbkRlZ3JlZXMsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9Ci0gICAgY29uc3VtZUlkZW50KGFyZ3MpOwogCi0gICAgZG91YmxlIGNvbG9yQ2hhbm5lbHNb
NF0gPSB7IDAsIDAsIDAsIDEgfTsKKyAgICBhbmdsZUluRGVncmVlcyA9IGZtb2QoYW5nbGVJbkRl
Z3JlZXMsIDM2MC4wKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjApCisgICAgICAgIGFu
Z2xlSW5EZWdyZWVzICs9IDM2MC4wOworCisgICAgYXV0byBhbHBoYSA9IHBhcnNlT3B0aW9uYWxB
bHBoYShhcmdzKTsKKyAgICBpZiAoIWFscGhhKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gdG9M
YWIoTENIQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4oKmxpZ2h0bmVzcyksIHN0YXRpY19j
YXN0PGZsb2F0PihjaHJvbWFWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihhbmdsZUluRGVncmVl
cyksICphbHBoYSB9KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPgorc3RhdGlj
IENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvbkZvclNSR0JPckRpc3BsYXlQM1BhcmFtZXRlcnMoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgYXJncykKK3sKKyAgICBBU1NFUlQoYXJncy5wZWVrKCkuaWQoKSA9
PSBDU1NWYWx1ZVNSR0IgfHwgYXJncy5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1ZURpc3BsYXlQMyk7
CisgICAgY29uc3VtZUlkZW50UmF3KGFyZ3MpOworCisgICAgZG91YmxlIGNvbG9yQ2hhbm5lbHNb
M10gPSB7IDAsIDAsIDAgfTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgewogICAg
ICAgICBkb3VibGUgdmFsdWU7CiAgICAgICAgIGlmIChjb25zdW1lTnVtYmVyUmF3KGFyZ3MsIHZh
bHVlKSkKLSAgICAgICAgICAgIGNvbG9yQ2hhbm5lbHNbaV0gPSBzdGQ6Om1heCgwLjAsIHN0ZDo6
bWluKDEuMCwgdmFsdWUpKTsKKyAgICAgICAgICAgIGNvbG9yQ2hhbm5lbHNbaV0gPSB2YWx1ZTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIAotICAgIGlmIChjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKGFyZ3Mp
KSB7Ci0gICAgICAgIGF1dG8gYWxwaGFQYXJhbWV0ZXIgPSBjb25zdW1lUGVyY2VudChhcmdzLCBW
YWx1ZVJhbmdlQWxsKTsKLSAgICAgICAgaWYgKCFhbHBoYVBhcmFtZXRlcikKLSAgICAgICAgICAg
IGFscGhhUGFyYW1ldGVyID0gY29uc3VtZU51bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKLSAg
ICAgICAgaWYgKCFhbHBoYVBhcmFtZXRlcikKLSAgICAgICAgICAgIHJldHVybiB7IH07CisgICAg
YXV0byBhbHBoYSA9IHBhcnNlT3B0aW9uYWxBbHBoYShhcmdzKTsKKyAgICBpZiAoIWFscGhhKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIENvbG9yVHlwZSB7IGNsYW1wVG88Zmxv
YXQ+KGNvbG9yQ2hhbm5lbHNbMF0sIDAuMCwgMS4wKSwgY2xhbXBUbzxmbG9hdD4oY29sb3JDaGFu
bmVsc1sxXSwgMC4wLCAxLjApLCBjbGFtcFRvPGZsb2F0Pihjb2xvckNoYW5uZWxzWzJdLCAwLjAs
IDEuMCksICphbHBoYSB9OworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VDb2xvckZ1bmN0aW9uRm9y
TGFiUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiBhcmdzKQoreworICAgIEFTU0VSVChh
cmdzLnBlZWsoKS5pZCgpID09IENTU1ZhbHVlTGFiKTsKKyAgICBjb25zdW1lSWRlbnRSYXcoYXJn
cyk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50UmF3KGFyZ3MsIFZhbHVl
UmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgZG91YmxlIGFWYWx1ZTsKKyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcoYXJncywgYVZhbHVl
LCBWYWx1ZVJhbmdlQWxsKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGRvdWJsZSBiVmFs
dWU7CisgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3KGFyZ3MsIGJWYWx1ZSwgVmFsdWVSYW5nZUFs
bCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25h
bEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICByZXR1cm4gTGFiPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PigqbGlnaHRuZXNzKSwgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGFWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihiVmFsdWUpLCAqYWxw
aGEgfTsKK30KIAotICAgICAgICBjb2xvckNoYW5uZWxzWzNdID0gc3RkOjptYXgoMC4wLCBzdGQ6
Om1pbigxLjAsIGFscGhhUGFyYW1ldGVyLT5pc1BlcmNlbnRhZ2UoKSA/IChhbHBoYVBhcmFtZXRl
ci0+ZG91YmxlVmFsdWUoKSAvIDEwMCkgOiBhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSkp
Oworc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkg
PT0gQ1NTVmFsdWVDb2xvcik7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3Vt
ZUZ1bmN0aW9uKHJhbmdlKTsKKworICAgIENvbG9yIGNvbG9yOworICAgIHN3aXRjaCAoYXJncy5w
ZWVrKCkuaWQoKSkgeworICAgIGNhc2UgQ1NTVmFsdWVTUkdCOgorICAgICAgICBjb2xvciA9IHBh
cnNlQ29sb3JGdW5jdGlvbkZvclNSR0JPckRpc3BsYXlQM1BhcmFtZXRlcnM8U1JHQkE8ZmxvYXQ+
PihhcmdzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZURpc3BsYXlQMzoKKyAg
ICAgICAgY29sb3IgPSBwYXJzZUNvbG9yRnVuY3Rpb25Gb3JTUkdCT3JEaXNwbGF5UDNQYXJhbWV0
ZXJzPERpc3BsYXlQMzxmbG9hdD4+KGFyZ3MpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U1ZhbHVlTGFiOgorICAgICAgICBjb2xvciA9IHBhcnNlQ29sb3JGdW5jdGlvbkZvckxhYlBhcmFt
ZXRlcnMoYXJncyk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogCisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biB7IH07CisKICAgICAvLyBGSVhNRTogU3VwcG9ydCB0aGUgY29tbWEtc2VwYXJhdGVkIGxpc3Qg
b2YgZmFsbGJhY2sgY29sb3IgdmFsdWVzLgogCiAgICAgaWYgKCFhcmdzLmF0RW5kKCkpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gQ29sb3IgeyBDb2xvckNvbXBvbmVudHMgeyBz
dGF0aWNfY2FzdDxmbG9hdD4oY29sb3JDaGFubmVsc1swXSksIHN0YXRpY19jYXN0PGZsb2F0Pihj
b2xvckNoYW5uZWxzWzFdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQ2hhbm5lbHNbMl0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oY29sb3JDaGFubmVsc1szXSkgfSwgY29sb3JTcGFjZSB9OworICAg
IHJldHVybiBjb2xvcjsKIH0KIAogc3RhdGljIE9wdGlvbmFsPFNSR0JBPHVpbnQ4X3Q+PiBwYXJz
ZUhleENvbG9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBib29sIGFjY2VwdFF1aXJreUNv
bG9ycykKQEAgLTg4OCw2ICsxMDAyLDEyIEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rp
b24oQ1NTUGFyc2UKICAgICBjYXNlIENTU1ZhbHVlSHNsYToKICAgICAgICAgY29sb3IgPSBwYXJz
ZUhTTFBhcmFtZXRlcnMoY29sb3JSYW5nZSwgY3NzUGFyc2VyTW9kZSk7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNvbG9yID0gcGFyc2VMYWJQYXJhbWV0
ZXJzKGNvbG9yUmFuZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTGNoOgor
ICAgICAgICBjb2xvciA9IHBhcnNlTENIUGFyYW1ldGVycyhjb2xvclJhbmdlLCBjc3NQYXJzZXJN
b2RlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbG9yOgogICAgICAgICBj
b2xvciA9IHBhcnNlQ29sb3JGdW5jdGlvblBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CiAgICAgICAg
IGJyZWFrOwpAQCAtMTI3Miw3ICsxMzkyLDcgQEAgc3RhdGljIGJvb2wgY29uc3VtZUdyYWRpZW50
Q29sb3JTdG9wcyhDUwogICAgIAogICAgIGF1dG8gY29uc3VtZVN0b3BQb3NpdGlvbiA9IFsmXSB7
CiAgICAgICAgIHJldHVybiBncmFkaWVudC5ncmFkaWVudFR5cGUoKSA9PSBDU1NDb25pY0dyYWRp
ZW50Ci0gICAgICAgICAgICA/IGNvbnN1bWVBbmdsZU9yUGVyY2VudChyYW5nZSwgbW9kZSwgVmFs
dWVSYW5nZUFsbCwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKQorICAgICAgICAgICAgPyBjb25zdW1l
QW5nbGVPclBlcmNlbnQocmFuZ2UsIG1vZGUsIFZhbHVlUmFuZ2VBbGwsIFVuaXRsZXNzUXVpcms6
OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KQogICAgICAgICAgICAgOiBjb25zdW1l
TGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBtb2RlLCBWYWx1ZVJhbmdlQWxsKTsKICAgICB9OwogCkBA
IC0xNDQ2LDcgKzE1NjYsNyBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lTGluZWFy
R3JhCiAgICAgUmVmUHRyPENTU0xpbmVhckdyYWRpZW50VmFsdWU+IHJlc3VsdCA9IENTU0xpbmVh
ckdyYWRpZW50VmFsdWU6OmNyZWF0ZShyZXBlYXRpbmcsIGdyYWRpZW50VHlwZSk7CiAKICAgICBi
b29sIGV4cGVjdENvbW1hID0gdHJ1ZTsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGFu
Z2xlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZv
cmJpZCk7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBhbmdsZSA9IGNvbnN1bWVBbmds
ZShhcmdzLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQsIFVuaXRsZXNzWmVy
b1F1aXJrOjpBbGxvdyk7CiAgICAgaWYgKGFuZ2xlKQogICAgICAgICByZXN1bHQtPnNldEFuZ2xl
KGFuZ2xlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIGVsc2UgaWYgKGdyYWRpZW50VHlwZSA9PSBD
U1NQcmVmaXhlZExpbmVhckdyYWRpZW50IHx8IGNvbnN1bWVJZGVudDxDU1NWYWx1ZVRvPihhcmdz
KSkgewpAQCAtMTQ4Miw3ICsxNjAyLDggQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3Vt
ZUNvbmljR3JhZAogICAgIGJvb2wgZXhwZWN0Q29tbWEgPSBmYWxzZTsKICAgICBpZiAoYXJncy5w
ZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4pIHsKICAgICAgICAgaWYgKGNvbnN1bWVJZGVudDxD
U1NWYWx1ZUZyb20+KGFyZ3MpKSB7Ci0gICAgICAgICAgICBhdXRvIGFuZ2xlID0gY29uc3VtZUFu
Z2xlKGFyZ3MsIGNvbnRleHQubW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBVbmxpa2UgbGluZWFyLWdyYWRpZW50LCBjb25pYy1ncmFkaWVudHMgYXJl
IG5vdCBzcGVjaWZpZWQgdG8gYWxsb3cgdW5pdGxlc3MgMCBhbmdsZXMgLSBodHRwczovL3d3dy53
My5vcmcvVFIvY3NzLWltYWdlcy00LyN2YWxkZWYtY29uaWMtZ3JhZGllbnQtYW5nbGUuCisgICAg
ICAgICAgICBhdXRvIGFuZ2xlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNvbnRleHQubW9kZSwgVW5p
dGxlc3NRdWlyazo6Rm9yYmlkLCBVbml0bGVzc1plcm9RdWlyazo6QWxsb3cpOwogICAgICAgICAg
ICAgaWYgKCFhbmdsZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
ICAgIHJlc3VsdC0+c2V0QW5nbGUoV1RGTW92ZShhbmdsZSkpOwpAQCAtMTc4Miw3ICsxOTAzLDcg
QEAgc3RhdGljIFJlZlB0cjxDU1NGdW5jdGlvblZhbHVlPiBjb25zdW1lRgogICAgICAgICAgICAg
cmV0dXJuIGZpbHRlclZhbHVlOwogCiAgICAgICAgIGlmIChmaWx0ZXJUeXBlID09IENTU1ZhbHVl
SHVlUm90YXRlKQotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBjb25zdW1lQW5nbGUoYXJncywg
Y29udGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOworICAgICAgICAgICAgcGFyc2Vk
VmFsdWUgPSBjb25zdW1lQW5nbGUoYXJncywgY29udGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpG
b3JiaWQsIFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdyk7CiAgICAgICAgIGVsc2UgaWYgKGZpbHRl
clR5cGUgPT0gQ1NTVmFsdWVCbHVyKQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBjb25zdW1l
TGVuZ3RoKGFyZ3MsIEhUTUxTdGFuZGFyZE1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CiAg
ICAgICAgIGVsc2UgewpAQCAtMTk1Nyw3ICsyMDc4LDggQEAgT3B0aW9uYWw8Rm9udFN0eWxlUmF3
PiBjb25zdW1lRm9udFN0eWxlUgogICAgIEFTU0VSVChpZGVudCA9PSBDU1NWYWx1ZU9ibGlxdWUp
OwogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgaWYgKCFyYW5nZS5hdEVuZCgpKSB7
Ci0gICAgICAgIGlmIChhdXRvIGFuZ2xlID0gY29uc3VtZUFuZ2xlUmF3KHJhbmdlLCBjc3NQYXJz
ZXJNb2RlKSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBhbmdsZSBkb2VzIHNwZWNpZnkgdGhh
dCB1bml0bGVzcyAwIGlzIGFsbG93ZWQgLSBzZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy1mb250cy00LyN2YWxkZWYtZm9udC1zdHlsZS1vYmxpcXVlLWFuZ2xlCisgICAgICAgIGlmIChh
dXRvIGFuZ2xlID0gY29uc3VtZUFuZ2xlUmF3KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVz
c1F1aXJrOjpGb3JiaWQsIFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdykpIHsKICAgICAgICAgICAg
IGlmIChpc0ZvbnRTdHlsZUFuZ2xlSW5SYW5nZShDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZURl
Z3JlZXMoYW5nbGUtPnR5cGUsIGFuZ2xlLT52YWx1ZSkpKQogICAgICAgICAgICAgICAgIHJldHVy
biB7IHsgQ1NTVmFsdWVPYmxpcXVlLCBXVEZNb3ZlKGFuZ2xlKSB9IH07CiAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oCShyZXZpc2lvbiAyNzEzNDkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIGJvb2wgY29uc3VtZVNsYXNoSW5jbHVkaW5nV2hp
dGVzcGFjZShDU1MKIENTU1BhcnNlclRva2VuUmFuZ2UgY29uc3VtZUZ1bmN0aW9uKENTU1BhcnNl
clRva2VuUmFuZ2UmKTsKIAogZW51bSBjbGFzcyBVbml0bGVzc1F1aXJrIHsgQWxsb3csIEZvcmJp
ZCB9OworZW51bSBjbGFzcyBVbml0bGVzc1plcm9RdWlyayB7IEFsbG93LCBGb3JiaWQgfTsKIGVu
dW0gY2xhc3MgQWxsb3dYUmVzb2x1dGlvblVuaXQgeyBBbGxvdywgRm9yYmlkIH07CiAKIHN0cnVj
dCBBbmdsZVJhdyB7CkBAIC04MSw4ICs4Miw4IEBAIE9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZVBl
cmNlbnRSYXcoQ1NTUGEKIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZVBlcmNlbnQo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYsIFZhbHVlUmFuZ2UpOwogT3B0aW9uYWw8TGVuZ3RoT3JQZXJj
ZW50UmF3PiBjb25zdW1lTGVuZ3RoT3JQZXJjZW50UmF3KENTU1BhcnNlclRva2VuUmFuZ2UmLCBD
U1NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlLCBVbml0bGVzc1F1aXJrID0gVW5pdGxlc3NRdWlyazo6
Rm9yYmlkKTsKIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUxlbmd0aE9yUGVyY2Vu
dChDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ1NTUGFyc2VyTW9kZSwgVmFsdWVSYW5nZSwgVW5pdGxl
c3NRdWlyayA9IFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7Ci1PcHRpb25hbDxBbmdsZVJhdz4gY29u
c3VtZUFuZ2xlUmF3KENTU1BhcnNlclRva2VuUmFuZ2UmLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVz
c1F1aXJrID0gVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKLVJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY29uc3VtZUFuZ2xlKENTU1BhcnNlclRva2VuUmFuZ2UmLCBDU1NQYXJzZXJNb2RlLCBVbml0
bGVzc1F1aXJrID0gVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKK09wdGlvbmFsPEFuZ2xlUmF3PiBj
b25zdW1lQW5nbGVSYXcoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENTU1BhcnNlck1vZGUsIFVuaXRs
ZXNzUXVpcmsgPSBVbml0bGVzc1F1aXJrOjpGb3JiaWQsIFVuaXRsZXNzWmVyb1F1aXJrID0gVW5p
dGxlc3NaZXJvUXVpcms6OkZvcmJpZCk7CitSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1
bWVBbmdsZShDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWly
ayA9IFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcmsgPSBVbml0bGVzc1pl
cm9RdWlyazo6Rm9yYmlkKTsKIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZVRpbWUo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYsIENTU1BhcnNlck1vZGUsIFZhbHVlUmFuZ2UsIFVuaXRsZXNz
UXVpcmsgPSBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOwogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBjb25zdW1lUmVzb2x1dGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiwgQWxsb3dYUmVzb2x1dGlv
blVuaXQgPSBBbGxvd1hSZXNvbHV0aW9uVW5pdDo6Rm9yYmlkKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01
OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vICAgIC0gNHggZmxvYXQgKDAtMSkg
c1JHQkEsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8vICAgIC0g
NHggZmxvYXQgKDAtMSkgTGluZWFyIHNSR0JBLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291bnRl
ZCBzdWItb2JqZWN0CiAvLyAgICAtIDR4IGZsb2F0ICgwLTEpIERpc3BsYXlQMywgc3RvcmVkIGlu
IGEgcmVmZXJlbmNlIGNvdW50ZWQgc3ViLW9iamVjdAorLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBM
YWIsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8vCiAvLyBBZGRp
dGlvbmFsbHksIHRoZSBpbmxpbmUgOC1iaXQgc1JHQkEgY2FuIGhhdmUgYW4gb3B0aW9uYWwgInNl
bWFudGljIiBiaXQgc2V0IG9uIGl0LAogLy8gd2hpY2ggaW5kaWNhdGVzIHRoZSBjb2xvciBvcmln
aW5hdGVkIGZyb20gYSBDU1Mgc2VtYW50aWMgY29sb3IgbmFtZS4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAkocmV2
aXNpb24gMjcxMzQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JD
b252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiQ29sb3JDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ29sb3JNYXRyaXguaCIKLSNpbmNsdWRl
ICJDb2xvclR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0xMzQsNiArMTM0LDExOSBAQCBYWVpBPGZsb2F0PiB0b1hZWkEoY29u
c3QgTGluZWFyRGlzcGxheVAzCiAgICAgcmV0dXJuIGFzWFlaQShsaW5lYXJEaXNwbGF5UDNUb1hZ
Wk1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xv
cikpKTsKIH0KIAorc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDUwV2hpdGVQb2ludFRv
RDY1V2hpdGVQb2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDov
L3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisg
ICAgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKKyAgICAgICAg
IDAuOTU1NTc2NmYsIC0wLjAyMzAzOTNmLCAwLjA2MzE2MzZmLAorICAgICAgICAtMC4wMjgyODk1
ZiwgIDEuMDA5OTQxNmYsIDAuMDIxMDA3N2YsCisgICAgICAgICAwLjAxMjI5ODJmLCAtMC4wMjA0
ODMwZiwgMS4zMjk5MDk4ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENTBUb0Q2NU1hdHJp
eC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsK
K30KKworc3RhdGljIFhZWkE8ZmxvYXQ+IGNvbnZlcnRGcm9tRDY1V2hpdGVQb2ludFRvRDUwV2hp
dGVQb2ludChjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cDovL3d3dy5i
cnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCisgICAgY29u
c3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ2NVRvRDUwTWF0cml4IHsKKyAgICAgICAgIDEuMDQ3
ODExMmYsIDAuMDIyODg2NmYsIC0wLjA1MDEyNzBmLAorICAgICAgICAgMC4wMjk1NDI0ZiwgMC45
OTA0ODQ0ZiwgLTAuMDE3MDQ5MWYsCisgICAgICAgIC0wLjAwOTIzNDVmLCAwLjAxNTA0MzZmLCAg
MC43NTIxMzE2ZgorICAgIH07CisgICAgcmV0dXJuIGFzWFlaQShENjVUb0Q1ME1hdHJpeC50cmFu
c2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKK30KKwor
c3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMjQzODkuMGY7CitzdGF0aWMg
Y29uc3RleHByIGZsb2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOworc3RhdGljIGNvbnN0ZXhw
ciBmbG9hdCBENTBXaGl0ZVZhbHVlc1tdID0geyAwLjk2NDIyZiwgMS4wZiwgMC44MjUyMWYgfTsK
KworWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAgIGZs
b2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKKyAgICBmbG9hdCBm
MCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOworICAgIGZsb2F0IGYyID0gZjEgLSAoY29sb3Iu
YiAvIDIwMC4wZik7CisKKyAgICBhdXRvIGNvbXB1dGVYQW5kWiA9IFtdKGZsb2F0IHQpIHsKKyAg
ICAgICAgZmxvYXQgdEN1YmVkID0gdCAqIHQgKiB0OworICAgICAgICBpZiAodEN1YmVkID4gTEFC
ZSkKKyAgICAgICAgICAgIHJldHVybiB0Q3ViZWQ7CisKKyAgICAgICAgcmV0dXJuICgxMTYuMGYg
KiB0IC0gMTYuMGYpIC8gTEFCazsKKyAgICB9OworCisgICAgYXV0byBjb21wdXRlWSA9IFtdKGZs
b2F0IHQpIHsKKyAgICAgICAgaWYgKHQgPiAoTEFCayAqIExBQmUpKSB7CisgICAgICAgICAgICBm
bG9hdCB2YWx1ZSA9ICh0ICsgMTYuMCkgLyAxMTYuMDsKKyAgICAgICAgICAgIHJldHVybiB2YWx1
ZSAqIHZhbHVlICogdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdCAvIExBQms7
CisgICAgfTsKKworICAgIGZsb2F0IHggPSBENTBXaGl0ZVZhbHVlc1swXSAqIGNvbXB1dGVYQW5k
WihmMCk7CisgICAgZmxvYXQgeSA9IEQ1MFdoaXRlVmFsdWVzWzFdICogY29tcHV0ZVkoY29sb3Iu
bGlnaHRuZXNzKTsKKyAgICBmbG9hdCB6ID0gRDUwV2hpdGVWYWx1ZXNbMl0gKiBjb21wdXRlWEFu
ZFooZjIpOworCisgICAgWFlaQTxmbG9hdD4gcmVzdWx0IHsgeCwgeSwgeiwgY29sb3IuYWxwaGEg
fTsKKworICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1IHdo
aXRlIHBvaW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUgcG9p
bnQsIHNvIGFzIGEgZmluYWwgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8gY29u
dmVydCB0aGUKKyAgICAvLyByZXN1bHRpbmcgWFlaQSBjb2xvciB0byBhIEQ2NSB3aGl0ZSBwb2lu
dC4KKyAgICByZXR1cm4gY29udmVydEZyb21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBvaW50KHJl
c3VsdCk7Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQor
eworICAgIC8vIFdlIGV4cGVjdCBYWVpBIGNvbG9ycyB0byBiZSB1c2luZyB0aGUgRDY1IHdoaXRl
IHBvaW50LCB1bmxpa2UgTGFiLCB3aGljaCB1c2VzIGEKKyAgICAvLyBENTAgd2hpdGUgcG9pbnQs
IHNvIGFzIGEgZmlyc3Qgc3RlcCwgdXNlIHRoZSBCcmFkZm9yZCB0cmFuc2Zvcm0gdG8gY29udmVy
dCB0aGUKKyAgICAvLyBpbmNvbWluZyBYWVpBIGNvbG9yIHRvIEQ1MCB3aGl0ZSBwb2ludC4KKyAg
ICBhdXRvIGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQgPSBjb252ZXJ0RnJvbUQ2NVdoaXRlUG9pbnRU
b0Q1MFdoaXRlUG9pbnQoY29sb3IpOworCisgICAgZmxvYXQgeCA9IGNvbG9yV2l0aEQ1MFdoaXRl
UG9pbnQueCAvIEQ1MFdoaXRlVmFsdWVzWzBdOworICAgIGZsb2F0IHkgPSBjb2xvcldpdGhENTBX
aGl0ZVBvaW50LnkgLyBENTBXaGl0ZVZhbHVlc1sxXTsKKyAgICBmbG9hdCB6ID0gY29sb3JXaXRo
RDUwV2hpdGVQb2ludC56IC8gRDUwV2hpdGVWYWx1ZXNbMl07CisKKyAgICBhdXRvIGZUcmFuc2Zv
cm0gPSBbXShmbG9hdCB2YWx1ZSkgeworICAgICAgICByZXR1cm4gdmFsdWUgPiBMQUJlID8gc3Rk
OjpjYnJ0KHZhbHVlKSA6IChMQUJrICogdmFsdWUgKyAxNi4wZikgLyAxMTYuMGY7CisgICAgfTsK
KworICAgIGZsb2F0IGYwID0gZlRyYW5zZm9ybSh4KTsKKyAgICBmbG9hdCBmMSA9IGZUcmFuc2Zv
cm0oeSk7CisgICAgZmxvYXQgZjIgPSBmVHJhbnNmb3JtKHopOworCisgICAgZmxvYXQgbGlnaHRu
ZXNzID0gKDExNi4wZiAqIGYxKSAtIDE2LjBmOworICAgIGZsb2F0IGEgPSA1MDAuMGYgKiAoZjAg
LSBmMSk7CisgICAgZmxvYXQgYiA9IDIwMC4wZiAqIChmMSAtIGYyKTsKKworICAgIHJldHVybiB7
IGxpZ2h0bmVzcywgYSwgYiwgY29sb3JXaXRoRDUwV2hpdGVQb2ludC5hbHBoYSB9OworfQorCitM
Q0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0
cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsYWItdG8tbGNoCisgICAgZmxvYXQgaHVl
ID0gcmFkMmRlZyhhdGFuMihjb2xvci5iLCBjb2xvci5hKSk7CisKKyAgICByZXR1cm4geworICAg
ICAgICBjb2xvci5saWdodG5lc3MsCisgICAgICAgIHN0ZDo6aHlwb3QoY29sb3IuYSwgY29sb3Iu
YiksCisgICAgICAgIGh1ZSA+PSAwID8gaHVlIDogaHVlICsgMzYwLAorICAgICAgICBjb2xvci5h
bHBoYQorICAgIH07Cit9CisKK0xhYjxmbG9hdD4gdG9MYWIoY29uc3QgTENIQTxmbG9hdD4mIGNv
bG9yKQoreworICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY29sb3ItNC8jbGNoLXRv
LWxhYgorICAgIGZsb2F0IGh1ZUFuZ2xlUmFkaWFucyA9IGRlZzJyYWQoY29sb3IuaHVlKTsKKwor
ICAgIHJldHVybiB7CisgICAgICAgIGNvbG9yLmxpZ2h0bmVzcywKKyAgICAgICAgY29sb3IuY2hy
b21hICogc3RkOjpjb3MoaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuY2hyb21hICog
c3RkOjpzaW4oaHVlQW5nbGVSYWRpYW5zKSwKKyAgICAgICAgY29sb3IuYWxwaGEKKyAgICB9Owor
fQorCiBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikKIHsKICAg
ICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9jb2xvcl9zcGFjZS4KQEAgLTI2
Myw2ICszNzYsMTYgQEAgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBYWVpBPAog
ICAgIHJldHVybiB0b0Rpc3BsYXlQMyh0b0xpbmVhckRpc3BsYXlQMyhjb2xvcikpOwogfQogCitY
WVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTENIQTxmbG9hdD4mIGNvbG9yKQoreworICAgIHJldHVy
biB0b1hZWkEodG9MYWIoY29sb3IpKTsKK30KKworTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IFhZ
WkE8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9MQ0hBKHRvTGFiKGNvbG9yKSk7Cit9
CisKIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCiB7CiAgICAg
cmV0dXJuIHRvWFlaQSh0b1NSR0JBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkocmV2aXNpb24gMjcxMzQ5
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDIwIEBAIFdFQkNPUkVfRVhQT1JUIExpbmVhckRp
c3BsYXlQMzxmbG9hdD4gdG8KIFdFQkNPUkVfRVhQT1JUIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNw
bGF5UDMoY29uc3QgTGluZWFyRGlzcGxheVAzPGZsb2F0PiYpOwogCiAKKy8vIExhYgorV0VCQ09S
RV9FWFBPUlQgWFlaQTxmbG9hdD4gdG9YWVpBKGNvbnN0IExhYjxmbG9hdD4mKTsKK1dFQkNPUkVf
RVhQT1JUIExhYjxmbG9hdD4gdG9MYWIoY29uc3QgWFlaQTxmbG9hdD4mKTsKKy8vIEFkZGl0aW9u
cworV0VCQ09SRV9FWFBPUlQgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IExhYjxmbG9hdD4mKTsK
KworCisvLyBMQ0hBCitXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgTENI
QTxmbG9hdD4mKTsKK1dFQkNPUkVfRVhQT1JUIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBYWVpB
PGZsb2F0PiYpOworLy8gQWRkaXRpb25zCitXRUJDT1JFX0VYUE9SVCBMYWI8ZmxvYXQ+IHRvTGFi
KGNvbnN0IExDSEE8ZmxvYXQ+Jik7CisKKwogLy8gSFNMQQogV0VCQ09SRV9FWFBPUlQgWFlaQTxm
bG9hdD4gdG9YWVpBKGNvbnN0IEhTTEE8ZmxvYXQ+Jik7CiBXRUJDT1JFX0VYUE9SVCBIU0xBPGZs
b2F0PiB0b0hTTEEoY29uc3QgWFlaQTxmbG9hdD4mKTsKQEAgLTkxLDYgKzEwNSw4IEBAIGNvbnN0
ZXhwciBTUkdCQTxmbG9hdD4gdG9TUkdCQShjb25zdCBTUkcKIGNvbnN0ZXhwciBMaW5lYXJTUkdC
QTxmbG9hdD4gdG9MaW5lYXJTUkdCQShjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNvbG9yKSB7
IHJldHVybiBjb2xvcjsgfQogY29uc3RleHByIERpc3BsYXlQMzxmbG9hdD4gdG9EaXNwbGF5UDMo
Y29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4
cHIgTGluZWFyRGlzcGxheVAzPGZsb2F0PiB0b0xpbmVhckRpc3BsYXlQMyhjb25zdCBMaW5lYXJE
aXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KK2NvbnN0ZXhwciBMYWI8
ZmxvYXQ+IHRvTGFiKGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQor
Y29uc3RleHByIExDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBMQ0hBPGZsb2F0PiYgY29sb3IpIHsg
cmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IEhTTEE8
ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBDTVlLQTxmbG9hdD4g
dG9DTVlLQShjb25zdCBDTVlLQTxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBjb2xvcjsgfQogY29u
c3RleHByIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpIHsgcmV0
dXJuIGNvbG9yOyB9CkBAIC0xMjEsNiArMTM3LDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IExp
bmVhckRpc3BsYXlQMzxmbG8KICAgICByZXR1cm4gdG9MaW5lYXJEaXNwbGF5UDModG9YWVpBKGNv
bG9yKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IExhYjxmbG9hdD4gdG9MYWIoY29uc3Qg
VCYgY29sb3IpCit7CisgICAgcmV0dXJuIHRvTGFiKHRvWFlaQShjb2xvcikpOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgVCYgY29sb3IpCit7Cisg
ICAgcmV0dXJuIHRvTENIQSh0b1hZWkEoY29sb3IpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gSFNMQTxmbG9hdD4gdG9IU0xBKGNvbnN0IFQmIGNvbG9yKQogewogICAgIHJldHVybiB0b0hT
TEEodG9YWVpBKGNvbG9yKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAJKHJldmlzaW9uIDI3MTM0OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDggQEAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBz
ZXJpYWxpemF0aW9uKENvbG9yUwogICAgICAgICByZXR1cm4gImxpbmVhci1zcmdiIl9zOwogICAg
IGNhc2UgQ29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gImRpc3BsYXktcDMi
X3M7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHJldHVybiAibGFiIl9zOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYxLDYgKzE2MywyNyBAQCBT
dHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoCiAgICAgcmV0dXJuIHNlcmlh
bGl6YXRpb24oY29sb3IpOwogfQogCisvLyBMYWI8ZmxvYXQ+IG92ZXJsb2FkcworCitTdHJpbmcg
c2VyaWFsaXphdGlvbkZvckNTUyhjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBo
dHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvbG9yLTQvI3NlcmlhbGl6aW5nLWxhYi1sY2gKKwor
ICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOworICAgIGlmIChXVEY6OmFyZUVz
c2VudGlhbGx5RXF1YWwoYWxwaGEsIDEuMGYpKQorICAgICAgICByZXR1cm4gbWFrZVN0cmluZygi
bGFiKCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgJyknKTsKKyAgICByZXR1cm4gbWFrZVN0cmlu
ZygibGFiKCIsIGMxLCAiJSAiLCBjMiwgJyAnLCBjMywgIiAvICIsIGFscGhhLCAnKScpOworfQor
CitTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7
CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQorCitTdHJpbmcgc2Vy
aWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgTGFiPGZsb2F0PiYgY29sb3IpCit7
CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29sb3IpOworfQogCiAvLyBDb2xvciBv
dmVybG9hZHMKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JT
ZXJpYWxpemF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmgJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwog
CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERpc3BsYXlQMzsKK3RlbXBsYXRlPHR5cGVuYW1l
PiBzdHJ1Y3QgTGFiOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMaW5lYXJTUkdCQTsKIHRl
bXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgU1JHQkE7CiAKQEAgLTU1LDYgKzU2LDEwIEBAIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1MKIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7CiBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgRGlz
cGxheVAzPGZsb2F0PiYpOwogCitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZv
ckNTUyhjb25zdCBMYWI8ZmxvYXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXph
dGlvbkZvckhUTUwoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNl
cmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnN0IExhYjxmbG9hdD4mKTsKKwogV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgQ29sb3ImKTsKIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBDb2xvciYpOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNv
bnN0IENvbG9yJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclNwYWNlLmNwcAkocmV2aXNpb24gMjcxMzQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQy
LDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQwogICAgIGNhc2Ug
Q29sb3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICB0cyA8PCAiRGlzcGxheVAzIjsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgIHRzIDw8ICJMKmEq
YiI7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCShyZXZpc2lvbiAy
NzEzNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogZW51
bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdCB7CiAgICAgU1JHQiwKICAgICBMaW5lYXJSR0Is
Ci0gICAgRGlzcGxheVAzCisgICAgRGlzcGxheVAzLAorICAgIExhYgogfTsKIAogV0VCQ09SRV9F
WFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIENvbG9y
U3BhY2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBl
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
VHlwZXMuaAkocmV2aXNpb24gMjcxMzQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsNiArMjQ3LDkzIEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXIKIH0KIAogCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgTGFiIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8TGFiPFQ+PiB7Cisg
ICAgdXNpbmcgQ29tcG9uZW50VHlwZSA9IFQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNv
bG9yU3BhY2UgPSBDb2xvclNwYWNlOjpMYWI7CisKKyAgICBjb25zdGV4cHIgTGFiKFQgbGlnaHRu
ZXNzLCBUIGEsIFQgYiwgVCBhbHBoYSA9IENvbXBvbmVudFRyYWl0czxUPjo6bWF4VmFsdWUpCisg
ICAgICAgIDogbGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KKyAgICAgICAgLCBhIHsgYSB9CisgICAg
ICAgICwgYiB7IGIgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAgICB9CisK
KyAgICBjb25zdGV4cHIgTGFiKCkKKyAgICAgICAgOiBMYWIgeyBDb21wb25lbnRUcmFpdHM8VD46
Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8
VD46Om1pblZhbHVlLCBDb21wb25lbnRUcmFpdHM8VD46Om1pblZhbHVlIH0KKyAgICB7CisgICAg
fQorCisgICAgVCBsaWdodG5lc3M7CisgICAgVCBhOworICAgIFQgYjsKKyAgICBUIGFscGhhOwor
fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29tcG9uZW50czxUPiBh
c0NvbG9yQ29tcG9uZW50cyhjb25zdCBMYWI8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgYy5saWdo
dG5lc3MsIGMuYSwgYy5iLCBjLmFscGhhIH07Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNv
bnN0ZXhwciBMYWI8VD4gYXNMYWIoY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+JiBjKQoreworICAg
IHJldHVybiB7IGNbMF0sIGNbMV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYWI8VD4mIGEsIGNvbnN0IExh
YjxUPiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoYSkgPT0gYXNDb2xvckNv
bXBvbmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9w
ZXJhdG9yIT0oY29uc3QgTGFiPFQ+JiBhLCBjb25zdCBMYWI8VD4mIGIpCit7CisgICAgcmV0dXJu
ICEoYSA9PSBiKTsKK30KKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTENIQSA6IENv
bG9yV2l0aEFscGhhSGVscGVyPExDSEE8VD4+IHsKKyAgICB1c2luZyBDb21wb25lbnRUeXBlID0g
VDsKKworICAgIGNvbnN0ZXhwciBMQ0hBKFQgbGlnaHRuZXNzLCBUIGNocm9tYSwgVCBodWUsIFQg
YWxwaGEgPSBDb21wb25lbnRUcmFpdHM8VD46Om1heFZhbHVlKQorICAgICAgICA6IGxpZ2h0bmVz
cyB7IGxpZ2h0bmVzcyB9CisgICAgICAgICwgY2hyb21hIHsgY2hyb21hIH0KKyAgICAgICAgLCBo
dWUgeyBodWUgfQorICAgICAgICAsIGFscGhhIHsgYWxwaGEgfQorICAgIHsKKyAgICB9CisKKyAg
ICBjb25zdGV4cHIgTENIQSgpCisgICAgICAgIDogTENIQSB7IENvbXBvbmVudFRyYWl0czxUPjo6
bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxU
Pjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUgfQorICAgIHsKKyAgICB9
CisKKyAgICBUIGxpZ2h0bmVzczsKKyAgICBUIGNocm9tYTsKKyAgICBUIGh1ZTsKKyAgICBUIGFs
cGhhOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29tcG9uZW50
czxUPiBhc0NvbG9yQ29tcG9uZW50cyhjb25zdCBMQ0hBPFQ+JiBjKQoreworICAgIHJldHVybiB7
IGMubGlnaHRuZXNzLCBjLmNocm9tYSwgYy5odWUsIGMuYWxwaGEgfTsKK30KKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4gY29uc3RleHByIExDSEE8VD4gYXNMQ0hBKGNvbnN0IENvbG9yQ29tcG9uZW50
czxUPiYgYykKK3sKKyAgICByZXR1cm4geyBjWzBdLCBjWzFdLCBjWzJdLCBjWzNdIH07Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgTENI
QTxUPiYgYSwgY29uc3QgTENIQTxUPiYgYikKK3sKKyAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVu
dHMoYSkgPT0gYXNDb2xvckNvbXBvbmVudHMoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oY29uc3QgTENIQTxUPiYgYSwgY29uc3QgTENIQTxU
PiYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCisKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBIU0xBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8SFNMQTxUPj4gewogICAgIHVz
aW5nIENvbXBvbmVudFR5cGUgPSBUOwogCkBAIC0zNzksNiArNDY2LDggQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgRnVuY3Rvcj4gYwogICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uo
c3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xpbmVhclNSR0JBKGNvbXBvbmVudHMp
KTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJuIHN0ZDo6
aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgYXNEaXNwbGF5UDMoY29tcG9u
ZW50cykpOworICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gc3RkOjpp
bnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBhc0xhYihjb21wb25lbnRzKSk7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5jcHAJKHJldmlz
aW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9y
U3BhY2VDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDEyIEBAIENHQ29sb3JTcGFj
ZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JT
cGFjZTsKIH0KIAorQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VSZWYoKQoreworICAgIC8v
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY29udmVyc2lvbiB0byBMYWIgb24gc3VwcG9ydGVkIHBs
YXRmb3Jtcy4KKyAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKK30KKwogQ0dDb2xvclNw
YWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKQogewogICAgIHN0YXRpYyBDR0NvbG9y
U3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCShyZXZpc2lvbiAyNzEz
NDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cu
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBX
RUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgc1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNP
UkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCk7CiBXRUJD
T1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpOworV0VC
Q09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxhYkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVf
RVhQT1JUIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKCk7CiAKIHN0
YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZENHQ29sb3JTcGFjZShDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCkBAIC00NSw2ICs0Niw4IEBAIHN0YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNl
UmVmIGNhY2hlZENHQ28KICAgICAgICAgcmV0dXJuIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsK
ICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgcmV0dXJuIGRpc3BsYXlQ
M0NvbG9yU3BhY2VSZWYoKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKKyAgICAgICAgcmV0
dXJuIGxhYkNvbG9yU3BhY2VSZWYoKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIHNSR0JDb2xvclNwYWNlUmVmKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzEz
NDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
OCBAQAorMjAyMS0wMS0xMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgU3VwcG9ydCBsYWIoKSwgbGNoKCksIGdyYXkoKSBhbmQgY29sb3IobGFiIC4uLikgY29sb3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUK
KworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgT3JpZ2luYWwg
cGF0Y2ggYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFBhcnNpbmcgdGVzdHMgZm9yIGxhYi9s
Y2gvZ3JheSBjb2xvcnMuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOiBVbnNraXAgbGFi
L2xjaCB0ZXN0cy4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMuaHRt
bDogQWRkZWQuCisKIDIwMjEtMDEtMDkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBwbGF5Lmdvb2dsZS5jb206IEFwcCBwcmV2aWV3IGltYWdlcyBhcmUgY2xpcHBl
ZApJbmRleDogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yMDE3LDIyICsyMDE3LDYgQEAg
d2Via2l0Lm9yZy9iLzE0ODgwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYQogd2Via2l0Lm9yZy9iLzE0
ODgwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvdDQyNS1o
c2xhLW9uc2NyZWVuLW11bHRpcGxlLWJveGVzLWMueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMTQ4ODAxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci90NDI1LWhzbGEtb25zY3JlZW4tYi54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3Mg
XQogCi0jIGxhYi9sY2ggbm90IHN1cHBvcnRlZAotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDIuaHRtbCBbIFNraXAgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDMuaHRtbCBb
IFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDQuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xhYi0wMDUuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDYuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDcuaHRtbCBbIFNraXAgXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEuaHRt
bCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDIuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbG9yL2xjaC0wMDMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDYu
aHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDcuaHRtbCBbIFNraXAgXQotCiAjIEluaXRpYWwgZmFpbHVyZXMgb24gdGhlIGlt
cG9ydCBvZiBjc3MtY29sb3IKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci90MzEtY29sb3ItdGV4dC1hLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBl
Y3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1s
YWItY29sb3JzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcxIEBACitU
ZXN0IHRoZSBwYXJzaW5nIG9mIGxhYiwgbGNoIGFuZCBncmF5IGNvbG9ycy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK2xhYigpCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAibGFiKDAlIDAgMCkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVk
U3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDEpIikgaXMgImxhYigwJSAw
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAg
LyAwLjUpIikgaXMgImxhYigwJSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC8wLjUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAu
NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEw
LzUwJSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoNDAwJSAwIDEwLzUwJSkiKSBpcyAibGFiKDQwMCUgMCAxMCAv
IDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAt
MTYwIDE2MCkiKSBpcyAibGFiKDUwJSAtMTYwIDE2MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGFiKDUwJSAtMjAwIDIwMCkiKSBpcyAibGFiKDUwJSAtMjAwIDIw
MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAv
IC0xMCUpIikgaXMgImxhYigwJSAwIDAgLyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMTEwJSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDMwMCUpIikg
aXMgImxhYigwJSAwIDApIgorCitsY2goKQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgwJSAwIDBkZWcpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAxKSIpIGlzICJsYWIo
MCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUg
MCAwZGVnIC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAwJSAyMzAgMGRlZyAvIDAuNSkiKSBpcyAibGFi
KDEwMCUgMjMwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgyMCUgNTAgMjBkZWcvMC41KSIpIGlzICJsYWIoMjAlIDQ2Ljk4NDYzIDE3LjEwMTAw
NiAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIw
JSA1MCAyMGRlZy81MCUpIikgaXMgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAxMDA2IC8gMC41KSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVn
IC8gLTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2IC8gMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIDExMCUp
IikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAxLjI4cmFkKSIpIGlzICJsYWIoMTAlIDUu
NzM0MzAyNSAxOS4xNjAzMTYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgxMCUgMjAgMzgwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYp
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTM0
MGRlZykiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDc0MGRlZykiKSBpcyAibGFiKDEw
JSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMTAlIDIwIC03MDBkZWcpIikgaXMgImxhYigxMCUgMTguNzkzODUyIDYuODQw
NDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAg
MCAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAvIDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMCAvIDExMCUpIikgaXMgImxhYigxMCUgMTgu
NzkzODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDEwJSAyMCAtNzAwKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgor
Citjb2xvcihsYWIgKQorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNv
bG9yKGxhYiAwJSAwIDApIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAxKSIpIGlzICJsYWIoMCUgMCAw
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUg
MCAwIC8gMC41KSIpIGlzICJsYWIoMCUgMCAwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMjAlIDAgMTAvMC41KSIpIGlzICJsYWIoMjAl
IDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNv
bG9yKGxhYiAyMCUgMCAxMC81MCUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDQwMCUgMCAxMC81MCUp
IikgaXMgImxhYig0MDAlIDAgMTAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImNvbG9yKGxhYiA1MCUgLTE2MCAxNjApIikgaXMgImxhYig1MCUgLTE2MCAx
NjApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiA1
MCUgLTIwMCAyMDApIikgaXMgImxhYig1MCUgLTIwMCAyMDApIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAtMTAlKSIpIGlzICJsYWIo
MCUgMCAwIC8gMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29s
b3IobGFiIDAlIDAgMCAvIDExMCUpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAzMDAlKSIpIGlzICJs
YWIoMCUgMCAwKSIKKworVGVzdCBpbnZhbGlkIHZhbHVlcworUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMCkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMCUgMCAwIDEpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIikgaXMgInJnYmEoMCwgMCwg
MCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAg
MGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMCAwIDAgLyAwLjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSAxMCAxMGRlZyAxMCkiKSBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMjAlIDEwIDEwZGVnIDEwIC8gMC41KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwIDAgMCkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJjb2xvcihsYWIgMCUgMCUgMCkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAwIDEpIikgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAiY29sb3IobGFiIDAlIDAgMCAxMCUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNv
bXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMGRlZykiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJjb2xvcihsYWIgMCUgMCUgMGRlZykiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgNDAlIDAgMGRlZyki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxh
Yi1jb2xvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5n
LWxhYi1jb2xvcnMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLWxhYi1jb2xvcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExMCBAQAor
PGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBsY2ggYW5kIGdyYXkgY29sb3JzLiIpOworCisgICAgZnVu
Y3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3Bl
cnR5LCB2YWx1ZSk7CisgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHls
ZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAgIHJldHVybiBjb21wdXRlZFZhbHVlOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBkaXYu
c3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGRpdi5z
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0
ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICIn
ICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdElu
bmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0
ZWQgPT09IG51bGwpCisgICAgICAgICAgICBleHBlY3RlZCA9ICIiOworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVl
ICsgJyIpJywgZXhwZWN0ZWQpOworICAgIH0KKworICAgIGRlYnVnKCdsYWIoKScpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIsICJsYWIoMCUgMCAw
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8g
MSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3Ii
LCAibGFiKDAlIDAgMCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAwIDEwLzAuNSkiLCAibGFiKDIwJSAw
IDEwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MjAlIDAgMTAvNTAlKSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAlIDAgMTAvNTAlKSIsICJsYWIoNDAwJSAwIDEw
IC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAl
IC0xNjAgMTYwKSIsICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAlIC0yMDAgMjAwKSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEw
JSkiLCAibGFiKDAlIDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiLCAibGFiKDAlIDAg
MCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnbGNoKCknKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZykiLCAibGFiKDAlIDAgMCki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAv
IDEpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIiwgImxhYigwJSAwIDAgLyAwLjUpIik7CisgICAgdGVz
dENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMDAlIDIzMCAwZGVnIC8gMC41KSIs
ICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUpIiwgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAx
MDA2IC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
MjAlIDUwIDIwZGVnLzUwJSkiLCAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIik7
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcg
LyAtMTAlKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIpOworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiLCAi
bGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDEuMjhyYWQpIiwgImxhYigxMCUgNS43MzQzMDI1IDE5
LjE2MDMxNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEw
JSAyMCAzODBkZWcpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiKTsKKyAgICB0ZXN0
Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVnKSIsICJsYWIo
MTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImxjaCgxMCUgMjAgNzQwZGVnKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQw
MjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAg
LTcwMGRlZykiLCAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIC8vIGh1ZSAo
dGhlIHRoaXJkIGFyZ3VtZW50KSBjYW4gYmUgZWl0aGVyIGFuIGFuZ2xlIG9yIG51bWJlciwgd2l0
aCBudW1iZXIgaW50ZXJwcmV0ZWQgYXMgZGVncmVlcy4KKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDAlIDAgMCAvIDAuNSkiLCAibGFiKDAlIDAgMCAvIDAuNSkiKTsg
CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjAgLyAx
MTAlKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMCkiLCAibGFiKDEwJSAxOC43OTM4
NTIgNi44NDA0MDI2KSIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdjb2xvcihsYWIg
KScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUg
MCAwKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJjb2xvcihsYWIgMCUgMCAwIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAgICB0ZXN0Q29t
cHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCAvIDAuNSkiLCAibGFi
KDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAi
Y29sb3IobGFiIDIwJSAwIDEwLzAuNSkiLCAibGFiKDIwJSAwIDEwIC8gMC41KSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMjAlIDAgMTAvNTAlKSIs
ICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImNvbG9yKGxhYiA0MDAlIDAgMTAvNTAlKSIsICJsYWIoNDAwJSAwIDEwIC8gMC41KSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgNTAlIC0x
NjAgMTYwKSIsICJsYWIoNTAlIC0xNjAgMTYwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJjb2xvcihsYWIgNTAlIC0yMDAgMjAwKSIsICJsYWIoNTAlIC0yMDAgMjAw
KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUg
MCAwIC8gLTEwJSkiLCAibGFiKDAlIDAgMCAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAxMTAlKSIsICJsYWIoMCUgMCAwKSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAw
IC8gMzAwJSkiLCAibGFiKDAlIDAgMCkiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1Zygn
VGVzdCBpbnZhbGlkIHZhbHVlcycpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsYWIoMCAwIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxKSIsICJy
Z2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVk
KCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAlIDBkZWcp
IiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGFiKDQwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCAwIDAgLyAwLjUpIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIw
JSAxMCAxMGRlZyAxMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgi
YmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwIC8gMC41KSIsICJyZ2JhKDAs
IDAsIDAsIDApIik7CisKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29s
b3IobGFiIDAgMCAwKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwJSAwKSIsICJyZ2JhKDAsIDAsIDAsIDAp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAw
IDAgMSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3Vu
ZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAwIDEwJSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAwZGVn
KSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImNvbG9yKGxhYiAwJSAwJSAwZGVnKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAg
dGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiA0MCUgMCAwZGVnKSIs
ICJyZ2JhKDAsIDAsIDAsIDApIik7CisKKzwvc2NyaXB0PgorICAgIAorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzEzNDkpCisr
KyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMjEtMDEtMTAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgor
CisgICAgICAgIFN1cHBvcnQgbGFiKCksIGxjaCgpLCBncmF5KCkgYW5kIGNvbG9yKGxhYiAuLi4p
IGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIHRlc3RzIHRvIHVzZSByZWN0YW5nbGVzIHJhdGhlciB0aGFuIHRleHQgdG8gbWFrZSBh
bnRpLWFsaWFzaW5nIGRpZmZlcmVuY2VzCisgICAgICAgIG5vdCBjYXVzZSBmYWlsdXJlcy4gVGhl
c2UgY2hhbmdlcyB3aWxsIGJlIHVwc3RyZWFtZWQgdG8gdGhlIFdlYlBsYXRmb3JtVGVzdHMuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLWV4cGVj
dGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFi
LTAwMS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDItZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sYWItMDAyLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwMy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUtZXhwZWN0ZWQuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA1Lmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi1leHBlY3Rl
ZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0w
MDYuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA3LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGFiLTAwNy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xjaC0wMDEtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDIuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAzLWV4cGVjdGVkLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQtZXhwZWN0ZWQu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAw
NS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDUuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sY2gtMDA2LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDctZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3Lmh0bWw6CisKIDIwMjEtMDEtMDggIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIyNjc0MDIpOiBbIG1hY09TIGlPUyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy91c2VyLXRpbWluZy9tZWFzdXJlLWwzLmFueS53b3JrZXIuaHRtbCBpcyBh
IGZsYWt5IGZhaWx1cmUKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xhYi0wMDEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEt
ZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDEwIEBACiA8IURPQ1RZUEUg
aHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5HcmVlbiB0ZXh0IHJlZmVyZW5j
ZTwvdGl0bGU+Cis8dGl0bGU+R3JlZW4gc3F1YXJlIHJlZmVyZW5jZTwvdGl0bGU+CiA8c3R5bGU+
Ci0gICAgLnRlc3QgeyBjb2xvcjogIzAwODAwMH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29s
b3I6ICMwMDgwMDA7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fQogPC9zdHlsZT4KIDxib2R5
PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgZ3JlZW48
L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIGdyZWVuIHNxdWFyZSwgYW5kIG5v
IHJlZC48L3A+CisgICAgPGRpdiBjbGFzcz0idGVzdCI+PC9kaXY+CiA8L2JvZHk+CkluZGV4OiBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGFiLTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLmh0bWwJKHJldmlzaW9uIDI3MTM0
OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sYWItMDAxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTEgKzMsMTUgQEAKIDx0
aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExpbGxleSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9y
ZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mt
Y29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNoIj4KLTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9Imdy
ZWVudGV4dC1yZWYuaHRtbCI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJncmVlbnNxdWFyZS1y
ZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxhYigpIHdpdGggbm8gYWxw
aGEiPgogPHN0eWxlPgotICAgIC50ZXN0IHtjb2xvcjogbGFiKDQ2LjI3NyUgLTQ3LjU2MiA0OC41
ODMpfSAvKiBncmVlbiAoc1JHQiAjMDA4MDAwKSBjb252ZXJ0ZWQgdG8gTGFiICovCisgICAgLnRl
c3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFy
Z2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MDAwOyB3aWR0aDog
MTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9CisgICAgLnRlc3QgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBsYWIoNDYuMjc3JSAtNDcuNTYyIDQ4LjU4Myl9IC8qIGdyZWVuIChzUkdCICMw
MDgwMDApIGNvbnZlcnRlZCB0byBMYWIgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFz
cz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGdyZWVuPC9wPgorICAgIDxwPlRl
c3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBncmVlbiBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAg
IDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+
CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwMi1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAyLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAyLWV4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSwxMCBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+QmxhY2sgdGV4dCByZWZlcmVuY2U8L3RpdGxlPgorPHRp
dGxlPkJsYWNrIGJsb2NrIHJlZmVyZW5jZTwvdGl0bGU+CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBj
b2xvcjogIzAwMDAwMH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IHdp
ZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fQogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNz
PSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgYmxhY2s8L3A+CisgICAgPHA+VGVz
dCBwYXNzZXMgaWYgeW91IHNlZSBhIGJsYWNrIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAg
PHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb2xvci9sYWItMDAyLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAyLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTIgKzMsMTMgQEAKIDx0aXRsZT5DU1MgQ29sb3IgNDog
U3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkNocmlzIExpbGxleSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lmeWlu
Zy1sYWItbGNoIj4KLTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImJsYWNrdGV4dC1yZWYuaHRtbCI+
Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJibGFja2Jsb2NrLXJlZi5odG1sIj4KIDxtZXRhIG5h
bWU9ImFzc2VydCIgY29udGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSI+CiA8c3R5bGU+Ci0gICAg
LnRlc3QgeyBjb2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjogbGFiKDAlIDAgMCl9IC8q
IGJsYWNrIChzUkdCICMwMDAwMDApIGNvbnZlcnRlZCB0byBMYWIgKi8KKyAgICAudGVzdCB7IGJh
Y2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTsgfQorICAgIC50
ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDAlIDAgMCkgfSAvKiBibGFjayAoc1JHQiAjMDAw
MDAwKSBjb252ZXJ0ZWQgdG8gTGFiICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9
InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBibGFjazwvcD4KKyAgICA8cD5UZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlIGEgYmxhY2sgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8
cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLWV4cGVjdGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5
KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2xhYi0wMDMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDEx
IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XaGl0
ZSB0ZXh0IHJlZmVyZW5jZTwvdGl0bGU+Cis8dGl0bGU+V2hpdGUgYmxvY2sgcmVmZXJlbmNlPC90
aXRsZT4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiAjRkZGRkZGOyBiYWNrZ3JvdW5kLWNv
bG9yOiAjMzMzOyBwYWRkaW5nOiAzcHh9CisgICAgYm9keSB7IGJhY2tncm91bmQtY29sb3I6IGdy
ZXk7IH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IHdpZHRoOiAxMmVt
OyBoZWlnaHQ6IDEyZW07fQogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5U
ZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgd2hpdGU8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMg
aWYgeW91IHNlZSBhIHdoaXRlIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9
InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sYWItMDAzLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTMsMTIgKzMsMTQgQEAKIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWlu
ZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExp
bGxleSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNo
Ij4KLTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9IndoaXRldGV4dC1yZWYuaHRtbCI+Cis8bGluayBy
ZWw9Im1hdGNoIiBocmVmPSJ3aGl0ZWJsb2NrLXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2Vy
dCIgY29udGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSI+CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBj
b2xvcjogcmVkOyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOyBwYWRkaW5nOiAzcHg7fQotICAgIC50
ZXN0IHsgY29sb3I6IGxhYigxMDAlIDAgMCk7fSAvKiB3aGl0ZSAoc1JHQiAjRkZGRkZGKSBjb252
ZXJ0ZWQgdG8gTGFiICovCisgICAgYm9keSB7IGJhY2tncm91bmQtY29sb3I6IGdyZXk7IH0KKyAg
ICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJl
bTsgfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDEwMCUgMCAwKTt9IC8qIHdo
aXRlIChzUkdCICNGRkZGRkYpIGNvbnZlcnRlZCB0byBMYWIgKi8KIDwvc3R5bGU+CiA8Ym9keT4K
LSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIHdoaXRlPC9w
PgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSB3aGl0ZSBzcXVhcmUsIGFuZCBubyBy
ZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0w
MDQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC1leHBlY3RlZC5odG1sCShy
ZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDEwICsyLDkgQEAKIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5DU1MgQ29s
b3IgNDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8c3R5bGU+Ci0gICAgLm1hdGNo
IHsgY29sb3I6IHJnYig3NS42MiUgMzAuNDUlIDQ3LjU2JSl9IC8qIGxhYig1MCA1MCAwKSBjb252
ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoNzUuNjIl
IDMwLjQ1JSA0Ny41NiUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30gLyogbGFiKDUwIDUw
IDApIGNvbnZlcnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBw
YXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3Iu
PC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxs
ZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBz
aW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMu
PC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGFiLTAwNC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDEyICs2LDEyIEBACiA8bGluayByZWw9
Im1hdGNoIiBocmVmPSJsYWItMDA0LXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29u
dGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSwgcG9zaXRpdmUgYSBheGlzIj4KIDxzdHlsZT4KLSAg
ICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsYWIoNTAlIDUwIDAp
fQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzUuNjIlLCAzMC40NSUsIDQ3LjU2JSl9IC8qIGxh
Yig1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1j
b2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAu
cmVmIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc1LjYyJSwgMzAuNDUlLCA0Ny41NiUpOyB3aWR0
aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9LyogbGFiKDUwIDUwIDApIGNv
bnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsYWIoNTAl
IDUwIDApfSAKIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdv
IGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xh
c3M9InRlc3QiPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAg
ICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQu
IDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5k
IG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFz
cz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xhYi0wMDUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS1leHBlY3RlZC5o
dG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS1leHBlY3RlZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDEwICsyLDkgQEAKIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDx0aXRsZT5D
U1MgQ29sb3IgNDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8c3R5bGU+Ci0gICAg
Lm1hdGNoIHsgY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwgNjYuNDAlKX0gLyogbGFiKDcwIC00
NSAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjog
cmdiKDEwLjc5JSwgNzUuNTUlLCA2Ni40MCUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30g
LyogbGFiKDcwIC00NSAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLwogPC9zdHlsZT4KIDxib2R5Pgot
ICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRo
ZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxs
ZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0
ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBp
ZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZm
ZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDA1Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUuaHRtbAkocmV2aXNpb24g
MjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbG9yL2xhYi0wMDUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiwxMiArNiwxMiBA
QAogPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGFiLTAwNS1yZWYuaHRtbCI+CiA8bWV0YSBuYW1l
PSJhc3NlcnQiIGNvbnRlbnQ9ImxhYigpIHdpdGggbm8gYWxwaGEsIG5lZ2F0aXZlIGEgYXhpcyI+
CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjog
bGFiKDcwJSAtNDUgMCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYigxMC43OSUsIDc1LjU1JSwg
NjYuNDAlKX0gLyogbGFiKDcwIC00NSAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0
IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdp
bi10b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwLjc5JSwgNzUuNTUl
LCA2Ni40MCUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8q
IGxhYig3MCAtNDUgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91
bmQtY29sb3I6IGxhYig3MCUgLTQ1IDApfSAKIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0
IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xv
ci48L3A+Ci0gICAgPHAgY2xhc3M9InRlc3QiPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmls
bGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEg
c2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3Jz
LjwvcD4KKyAgICA8cCBjbGFzcz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9w
PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDYtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGFiLTAwNi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEwICsyLDkgQEAKIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0
bGU+CiA8c3R5bGU+Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41
OCUpfSAvKiBsYWIoNzAgMCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJh
Y2tncm91bmQtY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpOyB3aWR0aDogMTJlbTsg
aGVpZ2h0OiAxMmVtO30gLyogbGFiKDcwIDAgNzApIGNvbnZlcnRlZCB0byBzUkdCICovCiA8L3N0
eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxs
ZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+Rmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJt
YXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxw
PlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0
YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9w
PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5o
dG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDEyICs2LDEyIEBACiA8bGluayByZWw9Im1hdGNoIiBocmVmPSJsYWItMDA2LXJlZi5odG1s
Ij4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSwgcG9z
aXRpdmUgYiBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAgICAu
dGVzdCB7IGNvbG9yOiBsYWIoNzAlIDAgNzApfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzYu
NjIlLCA2Ni4zNiUsIDUuNTglKX0gLyogbGFiKDcwIDAgNzApIGNvbnZlcnRlZCB0byBzUkdCICov
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6
IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYu
NjIlLCA2Ni4zNiUsIDUuNTglKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90
dG9tOiAwfSAvKiBsYWIoNzAgMCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7
IGJhY2tncm91bmQtY29sb3I6IGxhYig3MCUgMCA3MCl9IAogPC9zdHlsZT4KIDxib2R5PgotICAg
IDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBz
YW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQu
IEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVu
dCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRl
c3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sYWItMDA3LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA3LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQg
TENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDEyLjgxJSwgNTMu
MTAlLCA5Mi43NiUpfSAvKiBsYWIoNTUgMCAtNjApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAg
LnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSk7IHdp
ZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNTUgMCAtNjApIGNvbnZlcnRlZCB0byBz
UkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBs
aW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNz
PSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAg
IDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4g
PC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQg
bm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNz
PSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDcuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGFiLTAwNy5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC02LDEyICs2LDEyIEBACiA8bGluayByZWw9Im1hdGNoIiBocmVmPSJsYWIt
MDA3LXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGFiKCkgd2l0aCBu
byBhbHBoYSwgbmVnYXRpdmUgYiBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiBy
ZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsYWIoNTUlIDAgLTYwKX0KLSAgICAubWF0Y2ggeyBj
b2xvcjogcmdiKDEyLjgxJSwgNTMuMTAlLCA5Mi43NiUpfSAvKiBsYWIoNTUgMCAtNjApIGNvbnZl
cnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRo
OiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6
IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0gLyogbGFiKDU1IDAgLTYwKSBjb252ZXJ0ZWQgdG8gc1JH
QiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDU1JSAwIC02MCl9IAogPC9z
dHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmls
bGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+Rmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJt
YXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxw
PlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0
YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+
CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9u
IDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDAxLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
OSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+R3JlZW4gdGV4dCByZWZlcmVuY2U8L3RpdGxlPgorPHRpdGxlPkdyZWVuIGJsb2NrIHJlZmVy
ZW5jZTwvdGl0bGU+CiA8c3R5bGU+CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4
MDAwOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30KICAgICAudGVzdCB7IGNvbG9yOiAjMDA4
MDAwfQogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBp
ZiB0aGlzIHRleHQgaXMgZ3JlZW48L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBh
IGdyZWVuIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPGRpdiBjbGFzcz0idGVzdCI+PC9k
aXY+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAx
Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsMTEgKzMsMTUgQEAKIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBMYWIgYW5k
IExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExpbGxleSIgaHJl
Zj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNoIj4KLTxsaW5r
IHJlbD0ibWF0Y2giIGhyZWY9ImdyZWVudGV4dC1yZWYuaHRtbCI+Cis8bGluayByZWw9Im1hdGNo
IiBocmVmPSJncmVlbmJsb2NrLXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0ibGNoKCkgd2l0aCBubyBhbHBoYSI+CiA8c3R5bGU+Ci0gICAgLnRlc3Qge2NvbG9yOiBsY2go
NDYuMjc3JSA2Ny45NDUgMTM0LjQyNyl9IC8qIGdyZWVuIChzUkdCICMwMDgwMDApIGNvbnZlcnRl
ZCB0byBMQ0ggKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEy
ZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29s
b3I6ICMwMDgwMDA7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0K
KyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxjaCg0Ni4yNzclIDY3Ljk0NSAxMzQuNDI3
KX0gLyogZ3JlZW4gKHNSR0IgIzAwODAwMCkgY29udmVydGVkIHRvIExDSCAqLwogPC9zdHlsZT4K
IDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMg
Z3JlZW48L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIGdyZWVuIHNxdWFyZSwg
YW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0i
dGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAyLWV4cGVjdGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xj
aC0wMDItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDEwIEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5CbGFjayB0ZXh0IHJl
ZmVyZW5jZTwvdGl0bGU+Cis8dGl0bGU+QmxhY2sgYmxvY2sgcmVmZXJlbmNlPC90aXRsZT4KIDxz
dHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiAjMDAwMDAwfQorICAgIC50ZXN0IHsgYmFja2dyb3Vu
ZC1jb2xvcjogIzAwMDAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9CiA8L3N0eWxlPgog
PGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBi
bGFjazwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgYmxhY2sgc3F1YXJlLCBh
bmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sY2gtMDAyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDIuaHRtbAkocmV2aXNpb24gMjcx
MzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMiArMywxMyBAQAog
PHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMu
b3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0i
YmxhY2t0ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImJsYWNrYmxvY2st
cmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5vIGFs
cGhhIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNv
bG9yOiBsY2goMCUgMCAwKX0gLyogYmxhY2sgKHNSR0IgIzAwMDAwMCkgY29udmVydGVkIHRvIExD
SCAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVp
Z2h0OiAxMmVtOyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsY2goMCUgMCAwKSB9
IC8qIGJsYWNrIChzUkdCICMwMDAwMDApIGNvbnZlcnRlZCB0byBMYWIgKi8KIDwvc3R5bGU+CiA8
Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGJs
YWNrPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFjayBzcXVhcmUsIGFu
ZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy1leHBlY3RlZC5o
dG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy1leHBlY3RlZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDkgKzEsMTEgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHRpdGxlPldoaXRlIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5XaGl0
ZSBibG9jayByZWZlcmVuY2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6ICNG
RkZGRkY7IGJhY2tncm91bmQtY29sb3I6ICMzMzM7IHBhZGRpbmc6IDNweH0KKyAgICBib2R5IHsg
YmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjog
I0ZGRkZGRjsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9CiA8L3N0eWxlPgogPGJvZHk+Ci0g
ICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyB3aGl0ZTwvcD4K
KyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgd2hpdGUgc3F1YXJlLCBhbmQgbm8gcmVk
LjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDMuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw5ICs2LDExIEBACiA8bGluayByZWw9
Im1hdGNoIiBocmVmPSJ3aGl0ZXRleHQtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJsY2goKSB3aXRoIG5vIGFscGhhIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9y
OiByZWQ7IGJhY2tncm91bmQtY29sb3I6ICMzMzM7IHBhZGRpbmc6IDNweDt9Ci0gICAgLnRlc3Qg
eyBjb2xvcjogbGNoKDEwMCUgMCAwKTt9IC8qIHdoaXRlIChzUkdCICNGRkZGRkYpIGNvbnZlcnRl
ZCB0byBMQ0ggKi8KKyAgICBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfQorICAgIC50
ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtOyB9
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsY2goMTAwJSAwIDApO30gLyogd2hpdGUg
KHNSR0IgI0ZGRkZGRikgY29udmVydGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAg
IDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgd2hpdGU8L3A+Cisg
ICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHdoaXRlIHNxdWFyZSwgYW5kIG5vIHJlZC48
L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0LWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0
OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBj
b2xvcjogcmdiKDc1LjYyJSAzMC40NSUgNDcuNTYlKX0gLyogbGFiKDUwIDUwIDApIGNvbnZlcnRl
ZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYig3NS42MiUgMzAu
NDUlIDQ3LjU2JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsY2goNTAgNTAgMCkg
Y29udmVydGVkIHRvIHNSR0IgKGhhcHBlbnMgdG8gYmUgdGhlIHNhbWUgYXMgbGFiKDUwIDUwIDAp
Ki8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVz
IG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1h
dGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAg
Y2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3Qg
dHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRl
c3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9s
Y2gtMDA0Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTMsMTUgKzMsMTUgQEAKIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBM
YWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExpbGxl
eSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNoIj4K
LTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDQtcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJt
YXRjaCIgaHJlZj0ibGNoLTAwNC1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRl
bnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEsIHBvc2l0aXZlIGEgYXhpcyI+CiA8c3R5bGU+Ci0gICAg
LnRlc3QgeyBjb2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjogbGNoKDUwJSA1MCAwKX0K
LSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDc1LjYyJSwgMzAuNDUlLCA0Ny41NiUpfSAvKiBsY2go
NTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKGhhcHBlbnMgdG8gYmUgdGhlIHNhbWUgYXMgbGFi
KDUwIDUwIDApKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEy
ZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29s
b3I6IHJnYig3NS42MiUsIDMwLjQ1JSwgNDcuNTYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVt
OyBtYXJnaW4tYm90dG9tOiAwfSAvKiBsY2goNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKGhh
cHBlbnMgdG8gYmUgdGhlIHNhbWUgYXMgbGFiKDUwIDUwIDApKi8KKyAgICAudGVzdCB7IGJhY2tn
cm91bmQtY29sb3I6IGxjaCg1MCUgNTAgMCl9IAogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRl
c3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNv
bG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBG
aWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxl
ciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUg
YSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xv
cnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8
L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sY2gtMDA1LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA1LWV4
cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90
aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDEwLjc5JSwgNzUuNTUlLCA2
Ni40MCUpfSAvKiBsYWIoNzAgLTQ1IDApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3Qg
eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSk7IHdpZHRoOiAx
MmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsY2goNzAgNDUgMTgwKSBjb252ZXJ0ZWQgdG8gc1JHQiAq
LwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMg
b2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0ibWF0
Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBj
bGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4K
KyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0
d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0idGVz
dCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA1Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xj
aC0wMDUuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMywxNSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExh
YiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5
IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgot
PGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGFiLTAwNS1yZWYuaHRtbCI+Cis8bGluayByZWw9Im1h
dGNoIiBocmVmPSJsY2gtMDA1LXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0ibGNoKCkgd2l0aCBubyBhbHBoYSwgbmVnYXRpdmUgYSBheGlzIj4KIDxzdHlsZT4KLSAgICAu
dGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsY2goNzAlIDQ1IC0xODAp
fQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSl9IC8qIGxj
aCg3MCA0NSAxODApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAg
IC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSk7IHdp
ZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0gLyogbGNoKDcwIDQ1IDE4
MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxj
aCg3MCUgNDUgLTE4MCl9IAogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlm
IHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAg
ICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4g
PC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxs
ZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1
YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAg
IDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+
CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGNoLTAwNi1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2LWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2LWV4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgog
PHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxzdHls
ZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1LjU4JSl9IC8qIGxh
Yig3MCAwIDcwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1j
b2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1LjU4JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEy
ZW07fSAvKiBsY2goNzAgNzAgOTApIGNvbnZlcnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJv
ZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBh
cmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQu
IEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+Rmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFz
c2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9m
IGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5
PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5odG1sCShyZXZp
c2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE1ICsz
LDE1IEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxl
PgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpj
aHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNo
IiBocmVmPSJsYWItMDA2LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxjaC0w
MDYtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5v
IGFscGhhLCBwb3NpdGl2ZSBiIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJl
ZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxjaCg3MCUgNzAgOTApfQotICAgIC5tYXRjaCB7IGNv
bG9yOiByZ2IoNzYuNjIlLCA2Ni4zNiUsIDUuNTglKX0gLyogbGNoKDcwIDcwIDkwKSBjb252ZXJ0
ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDog
MTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1j
b2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1LjU4JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZl
bTsgbWFyZ2luLWJvdHRvbTogMH0gLyogbGNoKDcwIDcwIDkwKSBjb252ZXJ0ZWQgdG8gc1JHQiAq
LworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDcwJSA3MCA5MCl9IAogPC9zdHls
ZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVy
IHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVy
IHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRj
aCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRl
c3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5n
bGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+Cisg
ICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3
MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb2xvci9sY2gtMDA3LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAg
KzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVj
aWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjog
cmdiKDEyLjgxJSwgNTMuMTAlLCA5Mi43NiUpfSAvKiBsYWIoNTUgMCAtNjApIGNvbnZlcnRlZCB0
byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjcuMzglIDUxLjky
JSA5MS4yNSUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtO30gLyogbGNoKDU1JSA1OCAyNzUp
IGNvbnZlcnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNz
ZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9w
PgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIg
dGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5n
bGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9w
PgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDcuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNo
LTAwNy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE1ICszLDE1IEBACiA8dGl0bGU+Q1NTIENv
bG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3Nw
ZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJsYWItMDA3LXJlZi5o
dG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxjaC0wMDctcmVmLmh0bWwiPgogPG1ldGEg
bmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBuZWdhdGl2ZSBiIGF4
aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29s
b3I6IGxjaCg1NiUgNTggMjc1KX0KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDEyLjgxJSwgNTMu
MTAlLCA5Mi43NiUpfSAvKiBsY2goNTYgNTggMjc1KSBjb252ZXJ0ZWQgdG8gc1JHQiAqLworICAg
IC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07
IG1hcmdpbi10b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI3LjM4JSA1
MS45MiUgOTEuMjUlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAw
fSAvKiBsY2goNTUlIDU4IDI3NSkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJh
Y2tncm91bmQtY29sb3I6IGxjaCg1NSUgNTggMjc1KX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAg
PHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNh
bWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRl
eHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4g
RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91
IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50
IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVz
dCI+IDwvcD4KIDwvYm9keT4K
</data>
<flag name="commit-queue"
          id="435050"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417357</attachid>
            <date>2021-01-10 15:24:02 -0800</date>
            <delta_ts>2021-01-11 08:57:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205675-20210110152401.patch</filename>
            <type>text/plain</type>
            <size>90794</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyMCBAQAorMjAyMS0wMS0xMCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwgbGNoKCkg
YW5kIGNvbG9yKGxhYiAuLi4pIGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICBUaGlzIGFkZHMgcGFyc2luZyBzdXBwb3J0IGZvciBsYWIoKSwgbGNoKCkgYW5kIGNvbG9yKGxh
YiAuLi4pIENTUyBjb2xvcnMgCisgICAgICAgIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNv
bG9yLTQvKSBhbmQgY29sb3IgdHlwZSwgY29udmVyc2lvbiwgYW5kIHNlcmlhbGl6YXRpb24gCisg
ICAgICAgIHN1cHBvcnQgZm9yIExhYiBhbmQgY29sb3IgdHlwZSBhbmQgY29udmVyc2lvbiBzdXBw
b3J0IGZvciBMQ0ggKHdlIHN0b3JlIHRoZXNlIGNvbG9yIAorICAgICAgICBjYW5vbmljYWxseSBh
cyBMYWI8ZmxvYXQ+LCBzbyBzZXJpYWxpemF0aW9uIG9mIExDSCBpcyBuZXZlciBuZWVkZWQsIG11
Y2ggbGlrZSBIU0wpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXMgbm90IGFkZCBzdXBwb3J0
IGZvciB0aGUgaG9zdCBwbGF0Zm9ybSBsYXllciAoZS5nLiBDb3JlR3JhcGhpY3MsIGV0YykKKyAg
ICAgICAgdW5kZXJzdGFuZGluZyBvZiB0aGUgTGFiIGNvbG9yc3BhY2UsIGFuZCBhcyBzdWNoLCB3
aGVuIGNyZWF0aW5nIGhvc3QgY29sb3Igb2JqZWN0cworICAgICAgICAoZm9yIGluc3RhbmNlIHZp
YSB0aGUgY2FjaGVkQ0dDb2xvcigpIGhlbHBlcikgTGFiPGZsb2F0PiBjb2xvcnMgYXJlIGNvbnZl
cnRlZCB0byBzUkdCCisgICAgICAgIGZpcnN0IGFuZCB0aGVuIHRoZSBob3N0IGNvbG9yIGlzIG1h
ZGUuIFRoZSByYW1pZmljYXRpb24gb2YgdGhpcyBpcyBmb3IgcGxhdGZvcm1zIHRoYXQKKyAgICAg
ICAgdXNlIGJhY2tpbmdzdG9yZXMgd2l0aCBncmVhdGVyIHRoYW4gc1JHQiBnYW11dHMsIExhYiBj
b2xvcnMgd2lsbCBiZSBjbGFtcHRlZCB0byBzUkdCLgorICAgICAgICBUaGlzIHNob3VsZCBiZSBy
ZWN0aWZpZWQgaW4gYSBmb2xsb3cgdXAgY2hhbmdlIHRoYXQgYWRkcyBwcm9wZXIgY3JlYXRpb24g
b2YgdGhlc2UgaG9zdAorICAgICAgICBvYmplY3RzIGJ1dCBpcyBiZWluZyBsZWZ0IG9mZiB0aGUg
aW5pdGlhbCBjaGFuZ2UgdG8gbGltaXQgY2hhbmdlcy4KKworICAgICAgICBTb21lIG9mIHRoZSBp
bXBvcnRlZCB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1c2UgcmVjdGFuZ2xlcyByYXRoZXIg
dGhhbiB0ZXh0IHRvCisgICAgICAgIGF2b2lkIGFudGktYWxpYXNpbmcgaXNzdWVzIGFuZCB3aWxs
IGJlIHVwc3RyZWFtZWQgdG8gV1BUIGZvbGxvd2luZyBsYW5kaW5nLgorCisgICAgICAgIFRlc3Rz
OiAKKyAgICAgICAgICAgIGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCisgICAgICAg
ICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
MS5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwMi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sCisgICAgICAgICAgICBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1sCisgICAg
ICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFi
LTAwNS5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGFiLTAwNi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNy5odG1sCisgICAgICAgICAgICBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGNoLTAwMi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNC5odG1sCisgICAgICAgICAgICBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1s
CisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGNoLTAwNi5odG1sCisgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbjoKKyAgICAgICAgQWRkICJsYWIiIGFuZCAibGNoIiBrZXl3b3Jkcy4KKworICAg
ICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmg6CisgICAgICAgICogY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzOjpwYXJzZU9wdGlvbmFsQWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUxhYlBhcmFtZXRlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUxDSFBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUdyYXlQYXJh
bWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFy
c2VDb2xvckZ1bmN0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OnBhcnNlQ29sb3JGdW5jdGlvbik6CisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBwYXJzaW5nICJsYWIoLi4uKSIsICJsY2goLi4uKSIsICJncmF5KC4uLikiCisgICAgICAg
IGFuZCAiY29sb3IobGFiIC4uLikiLCBhbGwgb2Ygd2hpY2ggY3JlYXRlIExhYjxmbG9hdD4gY29s
b3JzLgorCisgICAgICAgIEFsc28gYWRkcyBleHBsaWNpdCBVbml0bGVzc1plcm9RdWlyayBmbGFn
IHRvIGFuZ2xlIHBhcnNpbmcgdG8KKyAgICAgICAgYWxsb3cgcGFyc2luZyBvZiBuZXdlciBzcGVj
cyB0aGF0IGRvbid0IHdhbnQgdG8gYWxsb3cgdW5pdGxlc3MgemVybworICAgICAgICBmb3IgYW5n
bGVzLiBGb3Igbm93LCBJIGhhdmUgbGVmdCBGSVhNRXMgZm9yIHRoZSBwcm9wZXJ0aWVzIHRoYXQK
KyAgICAgICAgc2hvdWxkIHByb2JhYmx5IGRpc2FibGUgaXQuIFRoaXMgd2FzIG5vdCBzdHJpY3Rs
eSBuZWNlc3NhcnkgZm9yIHRoaXMKKyAgICAgICAgY2hhbmdlIChhcyBsY2ggYWN0YXVsbHkgYWxs
b3dzIHVuaXRsZXNzIGFuZ2xlcyBub3cpLCBidXQgaXQgc2VlbXMKKyAgICAgICAgbGlrZSBhIHNv
bGlkIG1vdmUgZm9yd2FyZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6Q29sb3IpOgorICAgICAgICBBZGQgb3ZlcmxvYWQg
b2YgdGhlIENvbG9yIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYSBMYWI8ZmxvYXQ+IG1hdGNoaW5n
IG90aGVyCisgICAgICAgIENvbG9yU3BhY2UgdHlwZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEZy
b21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZl
cnRGcm9tRDY1V2hpdGVQb2ludFRvRDUwV2hpdGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjp0
b1hZWkEpOgorICAgICAgICAoV2ViQ29yZTo6dG9MYWIpOgorICAgICAgICAoV2ViQ29yZTo6dG9M
Q0hBKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvTGFiKToKKyAgICAgICAgKFdlYkNvcmU6OnRvTENIQSk6CisgICAg
ICAgIEFkZCBjb252ZXJzaW9ucyB0by9mcm9tIExhYiB0byBENjUgd2hpdGUgcG9pbnQgWFlaQSAo
dGhlIHdoaXRlIHBvaW50IHdlIGV4cGVjdCBYWVpBIHRvIGJlIGluKSwgYW5kIGNvbnZlcnNpb24K
KyAgICAgICAgZnJvbSBMY2ggdG8vZnJvbSBMYWIuIAorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbkZvckNTUyk6CisgICAgICAg
IChXZWJDb3JlOjpzZXJpYWxpemF0aW9uRm9ySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpzZXJp
YWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTZXJpYWxpemF0aW9uLmg6CisgICAgICAgIEFkZCBzZXJpYWxpemF0aW9uIGZvciBM
YWIgY29sb3JzLiBXZSBjdXJyZW50bHkgYWx3YXlzIHNlcmlhbGl6ZSB1c2luZyB0aGUgbGFiKCkK
KyAgICAgICAgbm90YXRpb24sIHdoaWNoIGFwcGVhcnMgdG8gYmUgY29ycmVjdCBmb3IgYXQgbGVh
c3QgY29sb3JzIGRlY2xhcmVkIHVzaW5nIGxhYigpLAorICAgICAgICBsY2goKSBhbmQgZ3JheSgp
LiBVbmNsZWFyIGlmIGl0IGlzIGNvcnJlY3QgZm9yIGNvbG9ycyBkZWNsYXJlZCB3aXRoIGNvbG9y
KGxhYiAuLi4pLgorICAgICAgICBPcGVuZWQgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1k
cmFmdHMvaXNzdWVzLzU4MjUgdG8gdHJhY2sgZ2V0dGluZyBhIHJlc29sdXRpb24KKyAgICAgICAg
Zm9yICJjb2xvcihsYWIgLi4uKSIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
clNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAgICAgICAgQWRkIExhYiBhcyBhIENvbG9y
U3BhY2UgYW5kIHRleHQgc3RyZWFtIGR1bXBpbmcgZm9yIGl0LgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6TGFiOjpMYWIpOgor
ICAgICAgICAoV2ViQ29yZTo6YXNDb2xvckNvbXBvbmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
YXNMYWIpOgorICAgICAgICBBZGQgTGFiIGNvbG9yIHR5cGUuCisKKyAgICAgICAgKFdlYkNvcmU6
OkxDSEE6OkxDSEEpOgorICAgICAgICAoV2ViQ29yZTo6YXNMQ0hBKToKKyAgICAgICAgQWRkIExD
SEEgY29sb3IgdHlwZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpjYWxsV2l0aENvbG9y
VHlwZSk6CisgICAgICAgIEFkZCBMYWIgdG8gY2FsbFdpdGhDb2xvclR5cGUgc2luY2UgaXQgaXMg
bm93IGEgdmFsaWQgQ29sb3JTcGFjZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yU3BhY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsYWJDb2xvclNwYWNlUmVmKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6CisgICAgICAgIEZvciBub3csIHJldHVybiB0
aGUgc1JHQiBjb2xvciBzcGFjZSB0byBpbmRpY2F0ZSB0byBjYWxsZXJzIHRoYXQgdGhleSBzaG91
bGQgZG8gYSBjb252ZXJzaW9uLgorCiAyMDIxLTAxLTEwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBNYWtlICJpbmxpbmUgbGV2ZWwgYm94IGFm
ZmVjdHMgbGluZSBib3ggZ2VvbWV0cnkiIGxvZ2ljIG1vcmUgZXhwbGljaXQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTI2
NCw2ICsxMjY0LDggQEAgcmdiCiByZ2JhCiBoc2wKIGhzbGEKK2xhYgorbGNoCiAvL2NvbG9yCiAK
IC8vIHRyYW5zZm9ybQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODEsNyAr
OTgxLDggQEAgc3RhdGljIFJlZlB0cjxDU1NGb250U3R5bGVSYW5nZVZhbHVlPiBjbwogICAgIGlm
IChrZXl3b3JkLT52YWx1ZUlEKCkgIT0gQ1NTVmFsdWVPYmxpcXVlIHx8IHJhbmdlLmF0RW5kKCkp
CiAgICAgICAgIHJldHVybiBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjcmVhdGUoa2V5d29yZC5y
ZWxlYXNlTm9uTnVsbCgpKTsKIAotICAgIGlmIChhdXRvIGZpcnN0QW5nbGUgPSBjb25zdW1lQW5n
bGUocmFuZ2UsIGNzc1BhcnNlck1vZGUpKSB7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHBy
b2JhYmx5IG5vdCBhbGxvdyB0aGUgdW5pdGxlc3MgemVyby4KKyAgICBpZiAoYXV0byBmaXJzdEFu
Z2xlID0gY29uc3VtZUFuZ2xlKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrOjpG
b3JiaWQsIFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdykpIHsKICAgICAgICAgYXV0byBmaXJzdEFu
Z2xlSW5EZWdyZWVzID0gZmlyc3RBbmdsZS0+ZG91YmxlVmFsdWUoQ1NTVW5pdFR5cGU6OkNTU19E
RUcpOwogICAgICAgICBpZiAoIWlzRm9udFN0eWxlQW5nbGVJblJhbmdlKGZpcnN0QW5nbGVJbkRl
Z3JlZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC05OTAsNyArOTkxLDkgQEAg
c3RhdGljIFJlZlB0cjxDU1NGb250U3R5bGVSYW5nZVZhbHVlPiBjbwogICAgICAgICAgICAgcmVz
dWx0LT5hcHBlbmQoZmlyc3RBbmdsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIHJl
dHVybiBDU1NGb250U3R5bGVSYW5nZVZhbHVlOjpjcmVhdGUoa2V5d29yZC5yZWxlYXNlTm9uTnVs
bCgpLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8gc2Vjb25kQW5n
bGUgPSBjb25zdW1lQW5nbGUocmFuZ2UsIGNzc1BhcnNlck1vZGUpOworCisgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBub3QgYWxsb3cgdGhlIHVuaXRsZXNzIHplcm8uCisg
ICAgICAgIGF1dG8gc2Vjb25kQW5nbGUgPSBjb25zdW1lQW5nbGUocmFuZ2UsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAg
ICAgICAgaWYgKCFzZWNvbmRBbmdsZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBhdXRvIHNlY29uZEFuZ2xlSW5EZWdyZWVzID0gc2Vjb25kQW5nbGUtPmRvdWJsZVZhbHVl
KENTU1VuaXRUeXBlOjpDU1NfREVHKTsKQEAgLTE5MDAsMTIgKzE5MDMsMTIgQEAgc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVRyYW5zZm9ybQogICAgIGNhc2UgQ1NTVmFsdWVTa2V3WDoK
ICAgICBjYXNlIENTU1ZhbHVlU2tld1k6CiAgICAgY2FzZSBDU1NWYWx1ZVNrZXc6Ci0gICAgICAg
IHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNz
UXVpcms6OkZvcmJpZCk7CisgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3Ms
IGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6
OkFsbG93KTsKICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICBpZiAoZnVuY3Rpb25JZCA9PSBDU1NWYWx1ZVNrZXcgJiYgY29uc3Vt
ZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKSkgewogICAgICAgICAgICAgdHJhbnNmb3Jt
VmFsdWUtPmFwcGVuZCgqcGFyc2VkVmFsdWUpOwotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBj
b25zdW1lQW5nbGUoYXJncywgY3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsK
KyAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAg
ICAgICAgICAgIGlmICghcGFyc2VkVmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgICAgIH0KQEAgLTE5NTYsNyArMTk1OSw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVUcmFuc2Zvcm0KICAgICBjYXNlIENTU1ZhbHVlUm90YXRlM2Q6CiAgICAgICAg
IGlmICghY29uc3VtZU51bWJlcnMoYXJncywgdHJhbnNmb3JtVmFsdWUsIDMpIHx8ICFjb25zdW1l
Q29tbWFJbmNsdWRpbmdXaGl0ZXNwYWNlKGFyZ3MpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCk7CisgICAgICAgIHBhcnNlZFZhbHVlID0gY29uc3Vt
ZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxl
c3NaZXJvUXVpcms6OkFsbG93KTsKICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBicmVhazsKQEAgLTIxMjIsNyArMjEyNSw3IEBA
IHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVSb3RhdGUoQ1MKIAogICAgICAgICAvLyBU
aGVuLCBhdHRlbXB0IHRvIHBhcnNlIGFuIGFuZ2xlLiBXZSB0cnkgdGhpcyBhcyBhIGZhbGxiYWNr
IHJhdGhlciB0aGFuIHRoZSBmaXJzdCBvcHRpb24gYmVjYXVzZQogICAgICAgICAvLyBhIHVuaXRs
ZXNzIDAgYW5nbGUgd291bGQgYmUgY29uc3VtZWQgYXMgYW4gYW5nbGUuCi0gICAgICAgIHBhcnNl
ZFZhbHVlID0gY29uc3VtZUFuZ2xlKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJr
OjpGb3JiaWQpOworICAgICAgICBwYXJzZWRWYWx1ZSA9IGNvbnN1bWVBbmdsZShyYW5nZSwgY3Nz
UGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkLCBVbml0bGVzc1plcm9RdWlyazo6QWxs
b3cpOwogICAgICAgICBpZiAocGFyc2VkVmFsdWUpIHsKICAgICAgICAgICAgIC8vIElmIHdlIGhh
ZCBhbHJlYWR5IHBhcnNlZCBhbiBhbmdsZSBvciBudW1iZXJzIGJ1dCBub3QgMyBpbiBhIHJvdywg
dGhpcyB2YWx1ZSBpcyBpbnZhbGlkLgogICAgICAgICAgICAgaWYgKGFuZ2xlIHx8IChsaXN0LT5s
ZW5ndGgoKSAmJiBsaXN0LT5sZW5ndGgoKSAhPSAzKSkKQEAgLTIyNDIsNyArMjI0NSw3IEBAIHN0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHbHlwaE9yaWUKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogICAgIAotICAgIHJldHVybiBjb25zdW1lQW5nbGUocmFuZ2UsIG1vZGUs
IFVuaXRsZXNzUXVpcms6OkFsbG93KTsKKyAgICByZXR1cm4gY29uc3VtZUFuZ2xlKHJhbmdlLCBt
b2RlLCBVbml0bGVzc1F1aXJrOjpBbGxvdywgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKIH0K
IAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVBhaW50T3JkZXIoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCShyZXZpc2lvbiAyNzEzNDkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5NiwxMiArMjk2LDE3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY29uc3VtZUZvbnRXZWkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotaW5saW5lIGJvb2wg
c2hvdWxkQWNjZXB0VW5pdGxlc3NWYWx1ZShkb3VibGUgdmFsdWUsIENTU1BhcnNlck1vZGUgY3Nz
UGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKK2lubGluZSBib29sIHNob3VsZEFj
Y2VwdFVuaXRsZXNzVmFsdWUoZG91YmxlIHZhbHVlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1aXJrIHVuaXRsZXNzWmVy
bykKIHsKICAgICAvLyBGSVhNRTogUHJlc2VudGF0aW9uYWwgSFRNTCBhdHRyaWJ1dGVzIHNob3Vs
ZG4ndCB1c2UgdGhlIENTUyBwYXJzZXIgZm9yIGxlbmd0aHMKLSAgICByZXR1cm4gdmFsdWUgPT0g
MAotICAgICAgICB8fCBpc1VuaXRMZXNzVmFsdWVQYXJzaW5nRW5hYmxlZEZvck1vZGUoY3NzUGFy
c2VyTW9kZSkKLSAgICAgICAgfHwgKGNzc1BhcnNlck1vZGUgPT0gSFRNTFF1aXJrc01vZGUgJiYg
dW5pdGxlc3MgPT0gVW5pdGxlc3NRdWlyazo6QWxsb3cpOworCisgICAgaWYgKHZhbHVlID09IDAg
JiYgdW5pdGxlc3NaZXJvID09IFVuaXRsZXNzWmVyb1F1aXJrOjpBbGxvdykKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBpZiAoaXNVbml0TGVzc1ZhbHVlUGFyc2luZ0VuYWJsZWRGb3JNb2Rl
KGNzc1BhcnNlck1vZGUpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICByZXR1cm4g
Y3NzUGFyc2VyTW9kZSA9PSBIVE1MUXVpcmtzTW9kZSAmJiB1bml0bGVzcyA9PSBVbml0bGVzc1F1
aXJrOjpBbGxvdzsKIH0KIAogT3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3KENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFZh
bHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKQEAgLTMzOSw3ICsz
NDQsNyBAQCBPcHRpb25hbDxMZW5ndGhSYXc+IGNvbnN1bWVMZW5ndGhSYXcoQ1NTCiAgICAgICAg
IHJldHVybiB7IHsgdG9rZW4udW5pdFR5cGUoKSwgcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRl
c3BhY2UoKS5udW1lcmljVmFsdWUoKSB9IH07CiAgICAgfQogICAgIGlmICh0b2tlbi50eXBlKCkg
PT0gTnVtYmVyVG9rZW4pIHsKLSAgICAgICAgaWYgKCFzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVl
KHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcykKKyAgICAgICAg
aWYgKCFzaG91bGRBY2NlcHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQ
YXJzZXJNb2RlLCB1bml0bGVzcywgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KQogICAgICAgICAg
ICAgfHwgKHZhbHVlUmFuZ2UgPT0gVmFsdWVSYW5nZU5vbk5lZ2F0aXZlICYmIHRva2VuLm51bWVy
aWNWYWx1ZSgpIDwgMCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAg
ICBpZiAoc3RkOjppc2luZih0b2tlbi5udW1lcmljVmFsdWUoKSkpCkBAIC00NjQsNyArNDY5LDcg
QEAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lTGVuZ3RoTwogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi1PcHRpb25hbDxBbmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3KENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNz
UXVpcmsgdW5pdGxlc3MpCitPcHRpb25hbDxBbmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3KENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRs
ZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVyb1F1aXJrIHVuaXRsZXNzWmVybykKIHsKICAg
ICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CiAgICAgaWYgKHRv
a2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tlbikgewpAQCAtNDgwLDcgKzQ4NSw3IEBAIE9wdGlv
bmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXcoQ1NTUGEKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYgc2hvdWxkQWNjZXB0VW5pdGxl
c3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2VyTW9kZSwgdW5pdGxlc3MpKQor
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4gJiYgc2hvdWxkQWNjZXB0VW5pdGxl
c3NWYWx1ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgY3NzUGFyc2VyTW9kZSwgdW5pdGxlc3MsIHVu
aXRsZXNzWmVybykpCiAgICAgICAgIHJldHVybiB7IHsgQ1NTVW5pdFR5cGU6OkNTU19ERUcsIHJh
bmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkubnVtZXJpY1ZhbHVlKCkgfSB9OwogCiAg
ICAgaWYgKHRva2VuLnR5cGUoKSAhPSBGdW5jdGlvblRva2VuKQpAQCAtNDkwLDcgKzQ5NSw3IEBA
IE9wdGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXcoQ1NTUGEKICAgICByZXR1cm4gY2Fs
Y1BhcnNlci5jb25zdW1lQW5nbGVSYXcoKTsKIH0KIAotUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBjb25zdW1lQW5nbGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUg
Y3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcykKK1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZUFuZ2xlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJz
ZXJNb2RlIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcmsgdW5pdGxlc3MsIFVuaXRsZXNzWmVy
b1F1aXJrIHVuaXRsZXNzWmVybykKIHsKICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4g
PSByYW5nZS5wZWVrKCk7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7
CkBAIC01MDIsMTMgKzUwNywxMyBAQCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVB
bmdsZShDCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChhdXRvIGFu
Z2xlID0gY29uc3VtZUFuZ2xlUmF3KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCB1bml0bGVzcykpCisg
ICAgaWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXcocmFuZ2UsIGNzc1BhcnNlck1vZGUs
IHVuaXRsZXNzLCB1bml0bGVzc1plcm8pKQogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpz
aW5nbGV0b24oKS5jcmVhdGVWYWx1ZShhbmdsZS0+dmFsdWUsIGFuZ2xlLT50eXBlKTsKIAogICAg
IHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBj
b25zdW1lQW5nbGVPclBlcmNlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNl
ck1vZGUgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBVbml0bGVzc1F1aXJr
IHVuaXRsZXNzKQorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFuZ2xl
T3JQZXJjZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayB1bml0bGVzcywg
VW5pdGxlc3NaZXJvUXVpcmsgdW5pdGxlc3NaZXJvKQogewogICAgIGNvbnN0IENTU1BhcnNlclRv
a2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IERpbWVu
c2lvblRva2VuKSB7CkBAIC01MjIsNyArNTI3LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2Nl
cHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0
bGVzcykpCisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiAmJiBzaG91bGRBY2Nl
cHRVbml0bGVzc1ZhbHVlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBjc3NQYXJzZXJNb2RlLCB1bml0
bGVzcywgdW5pdGxlc3NaZXJvKSkKICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xl
dG9uKCkuY3JlYXRlVmFsdWUocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5udW1l
cmljVmFsdWUoKSwgQ1NTVW5pdFR5cGU6OkNTU19ERUcpOwogCiAgICAgaWYgKHRva2VuLnR5cGUo
KSA9PSBQZXJjZW50YWdlVG9rZW4pCkBAIC01NDksNyArNTU0LDcgQEAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBjb25zdW1lVGltZShDUwogewogICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0
b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICBDU1NVbml0VHlwZSB1bml0ID0gdG9rZW4udW5pdFR5
cGUoKTsKLSAgICBib29sIGFjY2VwdFVuaXRsZXNzID0gdG9rZW4udHlwZSgpID09IE51bWJlclRv
a2VuICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93ICYmIHNob3VsZEFjY2VwdFVu
aXRsZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNz
KTsKKyAgICBib29sIGFjY2VwdFVuaXRsZXNzID0gdG9rZW4udHlwZSgpID09IE51bWJlclRva2Vu
ICYmIHVuaXRsZXNzID09IFVuaXRsZXNzUXVpcms6OkFsbG93ICYmIHNob3VsZEFjY2VwdFVuaXRs
ZXNzVmFsdWUodG9rZW4ubnVtZXJpY1ZhbHVlKCksIGNzc1BhcnNlck1vZGUsIHVuaXRsZXNzLCBV
bml0bGVzc1plcm9RdWlyazo6QWxsb3cpOwogICAgIGlmIChhY2NlcHRVbml0bGVzcykKICAgICAg
ICAgdW5pdCA9IENTU1VuaXRUeXBlOjpDU1NfTVM7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBE
aW1lbnNpb25Ub2tlbiB8fCBhY2NlcHRVbml0bGVzcykgewpAQCAtNzQ4LDcgKzc1Myw3IEBAIHN0
YXRpYyBDb2xvciBwYXJzZUhTTFBhcmFtZXRlcnMoQ1NTUGFyc2UKICAgICBBU1NFUlQocmFuZ2Uu
cGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUhzbCB8fCByYW5nZS5wZWVrKCkuZnVuY3Rp
b25JZCgpID09IENTU1ZhbHVlSHNsYSk7CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0g
Y29uc3VtZUZ1bmN0aW9uKHJhbmdlKTsKICAgICBkb3VibGUgYW5nbGVJbkRlZ3JlZXM7Ci0gICAg
aWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVSYXcoYXJncywgY3NzUGFyc2VyTW9kZSwgVW5p
dGxlc3NRdWlyazo6Rm9yYmlkKSkKKyAgICBpZiAoYXV0byBhbmdsZSA9IGNvbnN1bWVBbmdsZVJh
dyhhcmdzLCBjc3NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQsIFVuaXRsZXNzWmVy
b1F1aXJrOjpGb3JiaWQpKQogICAgICAgICBhbmdsZUluRGVncmVlcyA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpjb21wdXRlRGVncmVlcyhhbmdsZS0+dHlwZSwgYW5nbGUtPnZhbHVlKTsKICAgICBlbHNl
IHsKICAgICAgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3KGFyZ3MsIGFuZ2xlSW5EZWdyZWVzKSkK
QEAgLTc5Miw0OSArNzk3LDE1OCBAQCBzdGF0aWMgQ29sb3IgcGFyc2VIU0xQYXJhbWV0ZXJzKENT
U1BhcnNlCiAgICAgcmV0dXJuIGNvbnZlcnRUb0NvbXBvbmVudEJ5dGVzKHRvU1JHQkEoSFNMQTxm
bG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3JBcnJheVswXSksIHN0YXRpY19jYXN0PGZs
b2F0Pihjb2xvckFycmF5WzFdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQXJyYXlbMl0pLCBz
dGF0aWNfY2FzdDxmbG9hdD4oYWxwaGEpIH0pKTsKIH0KIAotc3RhdGljIENvbG9yIHBhcnNlQ29s
b3JGdW5jdGlvblBhcmFtZXRlcnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGF0aWMg
T3B0aW9uYWw8ZmxvYXQ+IHBhcnNlT3B0aW9uYWxBbHBoYShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKIHsKLSAgICBBU1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1
ZUNvbG9yKTsKKyAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UocmFuZ2Up
KQorICAgICAgICByZXR1cm4gMS4wZjsKKworICAgIGlmIChhdXRvIGFscGhhUGFyYW1ldGVyID0g
Y29uc3VtZVBlcmNlbnRSYXcocmFuZ2UsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICByZXR1cm4g
Y2xhbXBUbzxmbG9hdD4oKmFscGhhUGFyYW1ldGVyIC8gMTAwLjAsIDAuMCwgMS4wKTsKKworICAg
IGRvdWJsZSBhbHBoYVBhcmFtZXRlcjsKKyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcocmFuZ2Us
IGFscGhhUGFyYW1ldGVyLCBWYWx1ZVJhbmdlQWxsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihhbHBoYVBhcmFtZXRlciwgMC4wLCAx
LjApOworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRva2Vu
UmFuZ2UmIHJhbmdlKQoreworICAgIEFTU0VSVChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09
IENTU1ZhbHVlTGFiKTsKICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVu
Y3Rpb24ocmFuZ2UpOwogCi0gICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlOwotICAgIHN3aXRjaCAo
YXJncy5wZWVrKCkuaWQoKSkgewotICAgIGNhc2UgQ1NTVmFsdWVTUkdCOgotICAgICAgICBjb2xv
clNwYWNlID0gQ29sb3JTcGFjZTo6U1JHQjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NW
YWx1ZURpc3BsYXlQMzoKLSAgICAgICAgY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OkRpc3BsYXlQ
MzsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNv
bnN1bWVQZXJjZW50UmF3KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNz
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgZG91YmxlIGFWYWx1ZTsKKyAgICBpZiAoIWNv
bnN1bWVOdW1iZXJSYXcoYXJncywgYVZhbHVlLCBWYWx1ZVJhbmdlQWxsKSkKICAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIGRvdWJsZSBiVmFsdWU7CisgICAgaWYgKCFjb25zdW1lTnVtYmVyUmF3
KGFyZ3MsIGJWYWx1ZSwgVmFsdWVSYW5nZUFsbCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25hbEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KCpsaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYVZhbHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGJWYWx1ZSksICphbHBoYSB9OworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VMQ0hQYXJhbWV0
ZXJzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1v
ZGUpCit7CisgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVM
Y2gpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5n
ZSk7CisKKyAgICBhdXRvIGxpZ2h0bmVzcyA9IGNvbnN1bWVQZXJjZW50UmF3KGFyZ3MsIFZhbHVl
UmFuZ2VBbGwpOworICAgIGlmICghbGlnaHRuZXNzKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsK
KworICAgIGRvdWJsZSBjaHJvbWFWYWx1ZTsKKyAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcoYXJn
cywgY2hyb21hVmFsdWUsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgZG91YmxlIGFuZ2xlSW5EZWdyZWVzOworICAgIGlmIChhdXRvIGh1ZVZhbHVlID0gY29uc3Vt
ZUFuZ2xlUmF3KGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5p
dGxlc3NaZXJvUXVpcms6OkZvcmJpZCkpCisgICAgICAgIGFuZ2xlSW5EZWdyZWVzID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNvbXB1dGVEZWdyZWVzKGh1ZVZhbHVlLT50eXBlLCBodWVWYWx1ZS0+dmFs
dWUpOworICAgIGVsc2UgeworICAgICAgICBpZiAoIWNvbnN1bWVOdW1iZXJSYXcoYXJncywgYW5n
bGVJbkRlZ3JlZXMsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9Ci0gICAgY29uc3VtZUlkZW50KGFyZ3MpOwogCi0gICAgZG91YmxlIGNvbG9yQ2hhbm5lbHNb
NF0gPSB7IDAsIDAsIDAsIDEgfTsKKyAgICBhbmdsZUluRGVncmVlcyA9IGZtb2QoYW5nbGVJbkRl
Z3JlZXMsIDM2MC4wKTsKKyAgICBpZiAoYW5nbGVJbkRlZ3JlZXMgPCAwLjApCisgICAgICAgIGFu
Z2xlSW5EZWdyZWVzICs9IDM2MC4wOworCisgICAgYXV0byBhbHBoYSA9IHBhcnNlT3B0aW9uYWxB
bHBoYShhcmdzKTsKKyAgICBpZiAoIWFscGhhKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aWYgKCFhcmdzLmF0RW5kKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gdG9M
YWIoTENIQTxmbG9hdD4geyBzdGF0aWNfY2FzdDxmbG9hdD4oKmxpZ2h0bmVzcyksIHN0YXRpY19j
YXN0PGZsb2F0PihjaHJvbWFWYWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0PihhbmdsZUluRGVncmVl
cyksICphbHBoYSB9KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPgorc3RhdGlj
IENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvbkZvclNSR0JPckRpc3BsYXlQM1BhcmFtZXRlcnMoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgYXJncykKK3sKKyAgICBBU1NFUlQoYXJncy5wZWVrKCkuaWQoKSA9
PSBDU1NWYWx1ZVNSR0IgfHwgYXJncy5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1ZURpc3BsYXlQMyk7
CisgICAgY29uc3VtZUlkZW50UmF3KGFyZ3MpOworCisgICAgZG91YmxlIGNvbG9yQ2hhbm5lbHNb
M10gPSB7IDAsIDAsIDAgfTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgewogICAg
ICAgICBkb3VibGUgdmFsdWU7CiAgICAgICAgIGlmIChjb25zdW1lTnVtYmVyUmF3KGFyZ3MsIHZh
bHVlKSkKLSAgICAgICAgICAgIGNvbG9yQ2hhbm5lbHNbaV0gPSBzdGQ6Om1heCgwLjAsIHN0ZDo6
bWluKDEuMCwgdmFsdWUpKTsKKyAgICAgICAgICAgIGNvbG9yQ2hhbm5lbHNbaV0gPSB2YWx1ZTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYgKGNvbnN1
bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2UoYXJncykpIHsKLSAgICAgICAgYXV0byBhbHBoYVBh
cmFtZXRlciA9IGNvbnN1bWVQZXJjZW50KGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOwotICAgICAgICBp
ZiAoIWFscGhhUGFyYW1ldGVyKQotICAgICAgICAgICAgYWxwaGFQYXJhbWV0ZXIgPSBjb25zdW1l
TnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOwotICAgICAgICBpZiAoIWFscGhhUGFyYW1ldGVy
KQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBhdXRvIGFscGhhID0gcGFyc2VPcHRpb25h
bEFscGhhKGFyZ3MpOworICAgIGlmICghYWxwaGEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICByZXR1cm4gQ29sb3JUeXBlIHsgY2xhbXBUbzxmbG9hdD4oY29sb3JDaGFubmVsc1swXSwgMC4w
LCAxLjApLCBjbGFtcFRvPGZsb2F0Pihjb2xvckNoYW5uZWxzWzFdLCAwLjAsIDEuMCksIGNsYW1w
VG88ZmxvYXQ+KGNvbG9yQ2hhbm5lbHNbMl0sIDAuMCwgMS4wKSwgKmFscGhhIH07Cit9CisKK3N0
YXRpYyBDb2xvciBwYXJzZUNvbG9yRnVuY3Rpb25Gb3JMYWJQYXJhbWV0ZXJzKENTU1BhcnNlclRv
a2VuUmFuZ2UmIGFyZ3MpCit7CisgICAgQVNTRVJUKGFyZ3MucGVlaygpLmlkKCkgPT0gQ1NTVmFs
dWVMYWIpOworICAgIGNvbnN1bWVJZGVudFJhdyhhcmdzKTsKKworICAgIGF1dG8gbGlnaHRuZXNz
ID0gY29uc3VtZVBlcmNlbnRSYXcoYXJncywgVmFsdWVSYW5nZUFsbCk7CisgICAgaWYgKCFsaWdo
dG5lc3MpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBkb3VibGUgYVZhbHVlOworICAgIGlm
ICghY29uc3VtZU51bWJlclJhdyhhcmdzLCBhVmFsdWUsIFZhbHVlUmFuZ2VBbGwpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgZG91YmxlIGJWYWx1ZTsKKyAgICBpZiAoIWNvbnN1bWVOdW1i
ZXJSYXcoYXJncywgYlZhbHVlLCBWYWx1ZVJhbmdlQWxsKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIGF1dG8gYWxwaGEgPSBwYXJzZU9wdGlvbmFsQWxwaGEoYXJncyk7CisgICAgaWYgKCFh
bHBoYSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgICAgICBjb2xvckNoYW5uZWxzWzNdID0g
c3RkOjptYXgoMC4wLCBzdGQ6Om1pbigxLjAsIGFscGhhUGFyYW1ldGVyLT5pc1BlcmNlbnRhZ2Uo
KSA/IChhbHBoYVBhcmFtZXRlci0+ZG91YmxlVmFsdWUoKSAvIDEwMCkgOiBhbHBoYVBhcmFtZXRl
ci0+ZG91YmxlVmFsdWUoKSkpOworICAgIHJldHVybiBMYWI8ZmxvYXQ+IHsgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KCpsaWdodG5lc3MpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYVZhbHVlKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGJWYWx1ZSksICphbHBoYSB9OworfQorCitzdGF0aWMgQ29sb3IgcGFyc2VDb2xv
ckZ1bmN0aW9uUGFyYW1ldGVycyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBB
U1NFUlQocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZUNvbG9yKTsKKyAgICBD
U1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpOworCisgICAg
Q29sb3IgY29sb3I7CisgICAgc3dpdGNoIChhcmdzLnBlZWsoKS5pZCgpKSB7CisgICAgY2FzZSBD
U1NWYWx1ZVNSR0I6CisgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9uRm9yU1JHQk9y
RGlzcGxheVAzUGFyYW1ldGVyczxTUkdCQTxmbG9hdD4+KGFyZ3MpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlRGlzcGxheVAzOgorICAgICAgICBjb2xvciA9IHBhcnNlQ29sb3JG
dW5jdGlvbkZvclNSR0JPckRpc3BsYXlQM1BhcmFtZXRlcnM8RGlzcGxheVAzPGZsb2F0Pj4oYXJn
cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYWI6CisgICAgICAgIGNvbG9y
ID0gcGFyc2VDb2xvckZ1bmN0aW9uRm9yTGFiUGFyYW1ldGVycyhhcmdzKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKKyAgICBpZiAo
IWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwogICAgIC8vIEZJWE1FOiBT
dXBwb3J0IHRoZSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBmYWxsYmFjayBjb2xvciB2YWx1ZXMu
CiAKICAgICBpZiAoIWFyZ3MuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJl
dHVybiBDb2xvciB7IENvbG9yQ29tcG9uZW50cyB7IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvckNo
YW5uZWxzWzBdKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yQ2hhbm5lbHNbMV0pLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oY29sb3JDaGFubmVsc1syXSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvckNo
YW5uZWxzWzNdKSB9LCBjb2xvclNwYWNlIH07CisgICAgcmV0dXJuIGNvbG9yOwogfQogCiBzdGF0
aWMgT3B0aW9uYWw8U1JHQkE8dWludDhfdD4+IHBhcnNlSGV4Q29sb3IoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIGJvb2wgYWNjZXB0UXVpcmt5Q29sb3JzKQpAQCAtODg4LDYgKzEwMDIsMTIg
QEAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3JGdW5jdGlvbihDU1NQYXJzZQogICAgIGNhc2UgQ1NT
VmFsdWVIc2xhOgogICAgICAgICBjb2xvciA9IHBhcnNlSFNMUGFyYW1ldGVycyhjb2xvclJhbmdl
LCBjc3NQYXJzZXJNb2RlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxhYjoK
KyAgICAgICAgY29sb3IgPSBwYXJzZUxhYlBhcmFtZXRlcnMoY29sb3JSYW5nZSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMY2g6CisgICAgICAgIGNvbG9yID0gcGFyc2VMQ0hQ
YXJhbWV0ZXJzKGNvbG9yUmFuZ2UsIGNzc1BhcnNlck1vZGUpOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIENTU1ZhbHVlQ29sb3I6CiAgICAgICAgIGNvbG9yID0gcGFyc2VDb2xvckZ1bmN0aW9u
UGFyYW1ldGVycyhjb2xvclJhbmdlKTsKICAgICAgICAgYnJlYWs7CkBAIC0xMjcyLDcgKzEzOTIs
NyBAQCBzdGF0aWMgYm9vbCBjb25zdW1lR3JhZGllbnRDb2xvclN0b3BzKENTCiAgICAgCiAgICAg
YXV0byBjb25zdW1lU3RvcFBvc2l0aW9uID0gWyZdIHsKICAgICAgICAgcmV0dXJuIGdyYWRpZW50
LmdyYWRpZW50VHlwZSgpID09IENTU0NvbmljR3JhZGllbnQKLSAgICAgICAgICAgID8gY29uc3Vt
ZUFuZ2xlT3JQZXJjZW50KHJhbmdlLCBtb2RlLCBWYWx1ZVJhbmdlQWxsLCBVbml0bGVzc1F1aXJr
OjpGb3JiaWQpCisgICAgICAgICAgICA/IGNvbnN1bWVBbmdsZU9yUGVyY2VudChyYW5nZSwgbW9k
ZSwgVmFsdWVSYW5nZUFsbCwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkLCBVbml0bGVzc1plcm9RdWly
azo6QWxsb3cpCiAgICAgICAgICAgICA6IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2UsIG1v
ZGUsIFZhbHVlUmFuZ2VBbGwpOwogICAgIH07CiAKQEAgLTE0NDYsNyArMTU2Niw3IEBAIHN0YXRp
YyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVMaW5lYXJHcmEKICAgICBSZWZQdHI8Q1NTTGluZWFy
R3JhZGllbnRWYWx1ZT4gcmVzdWx0ID0gQ1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6Y3JlYXRlKHJl
cGVhdGluZywgZ3JhZGllbnRUeXBlKTsKIAogICAgIGJvb2wgZXhwZWN0Q29tbWEgPSB0cnVlOwot
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gYW5nbGUgPSBjb25zdW1lQW5nbGUoYXJncywg
Y3NzUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkKTsKKyAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGFuZ2xlID0gY29uc3VtZUFuZ2xlKGFyZ3MsIGNzc1BhcnNlck1vZGUsIFVu
aXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6OkFsbG93KTsKICAgICBpZiAo
YW5nbGUpCiAgICAgICAgIHJlc3VsdC0+c2V0QW5nbGUoYW5nbGUucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgZWxzZSBpZiAoZ3JhZGllbnRUeXBlID09IENTU1ByZWZpeGVkTGluZWFyR3JhZGllbnQg
fHwgY29uc3VtZUlkZW50PENTU1ZhbHVlVG8+KGFyZ3MpKSB7CkBAIC0xNDgyLDcgKzE2MDIsOCBA
QCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQ29uaWNHcmFkCiAgICAgYm9vbCBleHBl
Y3RDb21tYSA9IGZhbHNlOwogICAgIGlmIChhcmdzLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tl
bikgewogICAgICAgICBpZiAoY29uc3VtZUlkZW50PENTU1ZhbHVlRnJvbT4oYXJncykpIHsKLSAg
ICAgICAgICAgIGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGUoYXJncywgY29udGV4dC5tb2RlLCBV
bml0bGVzc1F1aXJrOjpGb3JiaWQpOworICAgICAgICAgICAgLy8gRklYTUU6IFVubGlrZSBsaW5l
YXItZ3JhZGllbnQsIGNvbmljLWdyYWRpZW50cyBhcmUgbm90IHNwZWNpZmllZCB0byBhbGxvdyB1
bml0bGVzcyAwIGFuZ2xlcyAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtaW1hZ2VzLTQvI3Zh
bGRlZi1jb25pYy1ncmFkaWVudC1hbmdsZS4KKyAgICAgICAgICAgIGF1dG8gYW5nbGUgPSBjb25z
dW1lQW5nbGUoYXJncywgY29udGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQsIFVuaXRs
ZXNzWmVyb1F1aXJrOjpBbGxvdyk7CiAgICAgICAgICAgICBpZiAoIWFuZ2xlKQogICAgICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgcmVzdWx0LT5zZXRBbmdsZShXVEZN
b3ZlKGFuZ2xlKSk7CkBAIC0xNzgyLDcgKzE5MDMsNyBAQCBzdGF0aWMgUmVmUHRyPENTU0Z1bmN0
aW9uVmFsdWU+IGNvbnN1bWVGCiAgICAgICAgICAgICByZXR1cm4gZmlsdGVyVmFsdWU7CiAKICAg
ICAgICAgaWYgKGZpbHRlclR5cGUgPT0gQ1NTVmFsdWVIdWVSb3RhdGUpCi0gICAgICAgICAgICBw
YXJzZWRWYWx1ZSA9IGNvbnN1bWVBbmdsZShhcmdzLCBjb250ZXh0Lm1vZGUsIFVuaXRsZXNzUXVp
cms6OkZvcmJpZCk7CisgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IGNvbnN1bWVBbmdsZShhcmdz
LCBjb250ZXh0Lm1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcms6
OkFsbG93KTsKICAgICAgICAgZWxzZSBpZiAoZmlsdGVyVHlwZSA9PSBDU1NWYWx1ZUJsdXIpCiAg
ICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IGNvbnN1bWVMZW5ndGgoYXJncywgSFRNTFN0YW5kYXJk
TW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKICAgICAgICAgZWxzZSB7CkBAIC0xOTU3LDcg
KzIwNzgsOCBAQCBPcHRpb25hbDxGb250U3R5bGVSYXc+IGNvbnN1bWVGb250U3R5bGVSCiAgICAg
QVNTRVJUKGlkZW50ID09IENTU1ZhbHVlT2JsaXF1ZSk7CiAjaWYgRU5BQkxFKFZBUklBVElPTl9G
T05UUykKICAgICBpZiAoIXJhbmdlLmF0RW5kKCkpIHsKLSAgICAgICAgaWYgKGF1dG8gYW5nbGUg
PSBjb25zdW1lQW5nbGVSYXcocmFuZ2UsIGNzc1BhcnNlck1vZGUpKSB7CisgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGFuZ2xlIGRvZXMgc3BlY2lmeSB0aGF0IHVuaXRsZXNzIDAgaXMgYWxsb3dlZCAt
IHNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWZvbnRzLTQvI3ZhbGRlZi1mb250LXN0
eWxlLW9ibGlxdWUtYW5nbGUKKyAgICAgICAgaWYgKGF1dG8gYW5nbGUgPSBjb25zdW1lQW5nbGVS
YXcocmFuZ2UsIGNzc1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcms6OkZvcmJpZCwgVW5pdGxlc3Na
ZXJvUXVpcms6OkFsbG93KSkgewogICAgICAgICAgICAgaWYgKGlzRm9udFN0eWxlQW5nbGVJblJh
bmdlKENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlRGVncmVlcyhhbmdsZS0+dHlwZSwgYW5nbGUt
PnZhbHVlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyBDU1NWYWx1ZU9ibGlxdWUsIFdU
Rk1vdmUoYW5nbGUpIH0gfTsKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzLmgJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcg
QEAgYm9vbCBjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKENTUwogQ1NTUGFyc2VyVG9r
ZW5SYW5nZSBjb25zdW1lRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCiBlbnVtIGNs
YXNzIFVuaXRsZXNzUXVpcmsgeyBBbGxvdywgRm9yYmlkIH07CitlbnVtIGNsYXNzIFVuaXRsZXNz
WmVyb1F1aXJrIHsgQWxsb3csIEZvcmJpZCB9OwogZW51bSBjbGFzcyBBbGxvd1hSZXNvbHV0aW9u
VW5pdCB7IEFsbG93LCBGb3JiaWQgfTsKIAogc3RydWN0IEFuZ2xlUmF3IHsKQEAgLTgxLDggKzgy
LDggQEAgT3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudFJhdyhDU1NQYQogUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lUGVyY2VudChDU1NQYXJzZXJUb2tlblJhbmdlJiwgVmFs
dWVSYW5nZSk7CiBPcHRpb25hbDxMZW5ndGhPclBlcmNlbnRSYXc+IGNvbnN1bWVMZW5ndGhPclBl
cmNlbnRSYXcoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENTU1BhcnNlck1vZGUsIFZhbHVlUmFuZ2Us
IFVuaXRsZXNzUXVpcmsgPSBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOwogUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KENTU1BhcnNlclRva2VuUmFuZ2UmLCBD
U1NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlLCBVbml0bGVzc1F1aXJrID0gVW5pdGxlc3NRdWlyazo6
Rm9yYmlkKTsKLU9wdGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXcoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYsIENTU1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcmsgPSBVbml0bGVzc1F1aXJrOjpG
b3JiaWQpOwotUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQW5nbGUoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYsIENTU1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcmsgPSBVbml0bGVzc1F1aXJr
OjpGb3JiaWQpOworT3B0aW9uYWw8QW5nbGVSYXc+IGNvbnN1bWVBbmdsZVJhdyhDU1NQYXJzZXJU
b2tlblJhbmdlJiwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyayA9IFVuaXRsZXNzUXVpcms6
OkZvcmJpZCwgVW5pdGxlc3NaZXJvUXVpcmsgPSBVbml0bGVzc1plcm9RdWlyazo6Rm9yYmlkKTsK
K1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUFuZ2xlKENTU1BhcnNlclRva2VuUmFu
Z2UmLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrID0gVW5pdGxlc3NRdWlyazo6Rm9yYmlk
LCBVbml0bGVzc1plcm9RdWlyayA9IFVuaXRsZXNzWmVyb1F1aXJrOjpGb3JiaWQpOwogUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lVGltZShDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ1NT
UGFyc2VyTW9kZSwgVmFsdWVSYW5nZSwgVW5pdGxlc3NRdWlyayA9IFVuaXRsZXNzUXVpcms6OkZv
cmJpZCk7CiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVSZXNvbHV0aW9uKENTU1Bh
cnNlclRva2VuUmFuZ2UmLCBBbGxvd1hSZXNvbHV0aW9uVW5pdCA9IEFsbG93WFJlc29sdXRpb25V
bml0OjpGb3JiaWQpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmgJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBzUkdCQSwgc3RvcmVkIGluIGEgcmVmZXJl
bmNlIGNvdW50ZWQgc3ViLW9iamVjdAogLy8gICAgLSA0eCBmbG9hdCAoMC0xKSBMaW5lYXIgc1JH
QkEsIHN0b3JlZCBpbiBhIHJlZmVyZW5jZSBjb3VudGVkIHN1Yi1vYmplY3QKIC8vICAgIC0gNHgg
ZmxvYXQgKDAtMSkgRGlzcGxheVAzLCBzdG9yZWQgaW4gYSByZWZlcmVuY2UgY291bnRlZCBzdWIt
b2JqZWN0CisvLyAgICAtIDR4IGZsb2F0ICgwLTEpIExhYiwgc3RvcmVkIGluIGEgcmVmZXJlbmNl
IGNvdW50ZWQgc3ViLW9iamVjdAogLy8KIC8vIEFkZGl0aW9uYWxseSwgdGhlIGlubGluZSA4LWJp
dCBzUkdCQSBjYW4gaGF2ZSBhbiBvcHRpb25hbCAic2VtYW50aWMiIGJpdCBzZXQgb24gaXQsCiAv
LyB3aGljaCBpbmRpY2F0ZXMgdGhlIGNvbG9yIG9yaWdpbmF0ZWQgZnJvbSBhIENTUyBzZW1hbnRp
YyBjb2xvciBuYW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJDb2xvckNvbXBvbmVudHMuaCIKICNp
bmNsdWRlICJDb2xvck1hdHJpeC5oIgotI2luY2x1ZGUgIkNvbG9yVHlwZXMuaCIKKyNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEzNCw2ICsx
MzQsMTE5IEBAIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMaW5lYXJEaXNwbGF5UDMKICAgICBy
ZXR1cm4gYXNYWVpBKGxpbmVhckRpc3BsYXlQM1RvWFlaTWF0cml4LnRyYW5zZm9ybWVkQ29sb3JD
b21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOwogfQogCitzdGF0aWMgWFlaQTxm
bG9hdD4gY29udmVydEZyb21ENTBXaGl0ZVBvaW50VG9ENjVXaGl0ZVBvaW50KGNvbnN0IFhZWkE8
ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRwOi8vd3d3LmJydWNlbGluZGJsb29tLmNvbS9p
bmRleC5odG1sP0Vxbl9DaHJvbUFkYXB0Lmh0bWwKKyAgICBjb25zdGV4cHIgQ29sb3JNYXRyaXg8
MywgMz4gRDUwVG9ENjVNYXRyaXggeworICAgICAgICAgMC45NTU1NzY2ZiwgLTAuMDIzMDM5M2Ys
IDAuMDYzMTYzNmYsCisgICAgICAgIC0wLjAyODI4OTVmLCAgMS4wMDk5NDE2ZiwgMC4wMjEwMDc3
ZiwKKyAgICAgICAgIDAuMDEyMjk4MmYsIC0wLjAyMDQ4MzBmLCAxLjMyOTkwOThmCisgICAgfTsK
KyAgICByZXR1cm4gYXNYWVpBKEQ1MFRvRDY1TWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25l
bnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworfQorCitzdGF0aWMgWFlaQTxmbG9hdD4g
Y29udmVydEZyb21ENjVXaGl0ZVBvaW50VG9ENTBXaGl0ZVBvaW50KGNvbnN0IFhZWkE8ZmxvYXQ+
JiBjb2xvcikKK3sKKyAgICAvLyBodHRwOi8vd3d3LmJydWNlbGluZGJsb29tLmNvbS9pbmRleC5o
dG1sP0Vxbl9DaHJvbUFkYXB0Lmh0bWwKKyAgICBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4g
RDY1VG9ENTBNYXRyaXggeworICAgICAgICAgMS4wNDc4MTEyZiwgMC4wMjI4ODY2ZiwgLTAuMDUw
MTI3MGYsCisgICAgICAgICAwLjAyOTU0MjRmLCAwLjk5MDQ4NDRmLCAtMC4wMTcwNDkxZiwKKyAg
ICAgICAgLTAuMDA5MjM0NWYsIDAuMDE1MDQzNmYsICAwLjc1MjEzMTZmCisgICAgfTsKKyAgICBy
ZXR1cm4gYXNYWVpBKEQ2NVRvRDUwTWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFz
Q29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworfQorCitzdGF0aWMgY29uc3RleHByIGZsb2F0IExB
QmUgPSAyMTYuMGYgLyAyNDM4OS4wZjsKK3N0YXRpYyBjb25zdGV4cHIgZmxvYXQgTEFCayA9IDI0
Mzg5LjBmIC8gMjcuMGY7CitzdGF0aWMgY29uc3RleHByIGZsb2F0IEQ1MFdoaXRlVmFsdWVzW10g
PSB7IDAuOTY0MjJmLCAxLjBmLCAwLjgyNTIxZiB9OworCitYWVpBPGZsb2F0PiB0b1hZWkEoY29u
c3QgTGFiPGZsb2F0PiYgY29sb3IpCit7CisgICAgZmxvYXQgZjEgPSAoY29sb3IubGlnaHRuZXNz
ICsgMTYuMGYpIC8gMTE2LjBmOworICAgIGZsb2F0IGYwID0gZjEgKyAoY29sb3IuYSAvIDUwMC4w
Zik7CisgICAgZmxvYXQgZjIgPSBmMSAtIChjb2xvci5iIC8gMjAwLjBmKTsKKworICAgIGF1dG8g
Y29tcHV0ZVhBbmRaID0gW10oZmxvYXQgdCkgeworICAgICAgICBmbG9hdCB0Q3ViZWQgPSB0ICog
dCAqIHQ7CisgICAgICAgIGlmICh0Q3ViZWQgPiBMQUJlKQorICAgICAgICAgICAgcmV0dXJuIHRD
dWJlZDsKKworICAgICAgICByZXR1cm4gKDExNi4wZiAqIHQgLSAxNi4wZikgLyBMQUJrOworICAg
IH07CisKKyAgICBhdXRvIGNvbXB1dGVZID0gW10oZmxvYXQgdCkgeworICAgICAgICBpZiAodCA+
IChMQUJrICogTEFCZSkpIHsKKyAgICAgICAgICAgIGZsb2F0IHZhbHVlID0gKHQgKyAxNi4wKSAv
IDExNi4wOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlICogdmFsdWUgKiB2YWx1ZTsKKyAgICAg
ICAgfQorCisgICAgICAgIHJldHVybiB0IC8gTEFCazsKKyAgICB9OworCisgICAgZmxvYXQgeCA9
IEQ1MFdoaXRlVmFsdWVzWzBdICogY29tcHV0ZVhBbmRaKGYwKTsKKyAgICBmbG9hdCB5ID0gRDUw
V2hpdGVWYWx1ZXNbMV0gKiBjb21wdXRlWShjb2xvci5saWdodG5lc3MpOworICAgIGZsb2F0IHog
PSBENTBXaGl0ZVZhbHVlc1syXSAqIGNvbXB1dGVYQW5kWihmMik7CisKKyAgICBYWVpBPGZsb2F0
PiByZXN1bHQgeyB4LCB5LCB6LCBjb2xvci5hbHBoYSB9OworCisgICAgLy8gV2UgZXhwZWN0IFhZ
WkEgY29sb3JzIHRvIGJlIHVzaW5nIHRoZSBENjUgd2hpdGUgcG9pbnQsIHVubGlrZSBMYWIsIHdo
aWNoIHVzZXMgYQorICAgIC8vIEQ1MCB3aGl0ZSBwb2ludCwgc28gYXMgYSBmaW5hbCBzdGVwLCB1
c2UgdGhlIEJyYWRmb3JkIHRyYW5zZm9ybSB0byBjb252ZXJ0IHRoZQorICAgIC8vIHJlc3VsdGlu
ZyBYWVpBIGNvbG9yIHRvIGEgRDY1IHdoaXRlIHBvaW50LgorICAgIHJldHVybiBjb252ZXJ0RnJv
bUQ1MFdoaXRlUG9pbnRUb0Q2NVdoaXRlUG9pbnQocmVzdWx0KTsKK30KKworTGFiPGZsb2F0PiB0
b0xhYihjb25zdCBYWVpBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gV2UgZXhwZWN0IFhZWkEg
Y29sb3JzIHRvIGJlIHVzaW5nIHRoZSBENjUgd2hpdGUgcG9pbnQsIHVubGlrZSBMYWIsIHdoaWNo
IHVzZXMgYQorICAgIC8vIEQ1MCB3aGl0ZSBwb2ludCwgc28gYXMgYSBmaXJzdCBzdGVwLCB1c2Ug
dGhlIEJyYWRmb3JkIHRyYW5zZm9ybSB0byBjb252ZXJ0IHRoZQorICAgIC8vIGluY29taW5nIFhZ
WkEgY29sb3IgdG8gRDUwIHdoaXRlIHBvaW50LgorICAgIGF1dG8gY29sb3JXaXRoRDUwV2hpdGVQ
b2ludCA9IGNvbnZlcnRGcm9tRDY1V2hpdGVQb2ludFRvRDUwV2hpdGVQb2ludChjb2xvcik7CisK
KyAgICBmbG9hdCB4ID0gY29sb3JXaXRoRDUwV2hpdGVQb2ludC54IC8gRDUwV2hpdGVWYWx1ZXNb
MF07CisgICAgZmxvYXQgeSA9IGNvbG9yV2l0aEQ1MFdoaXRlUG9pbnQueSAvIEQ1MFdoaXRlVmFs
dWVzWzFdOworICAgIGZsb2F0IHogPSBjb2xvcldpdGhENTBXaGl0ZVBvaW50LnogLyBENTBXaGl0
ZVZhbHVlc1syXTsKKworICAgIGF1dG8gZlRyYW5zZm9ybSA9IFtdKGZsb2F0IHZhbHVlKSB7Cisg
ICAgICAgIHJldHVybiB2YWx1ZSA+IExBQmUgPyBzdGQ6OmNicnQodmFsdWUpIDogKExBQmsgKiB2
YWx1ZSArIDE2LjBmKSAvIDExNi4wZjsKKyAgICB9OworCisgICAgZmxvYXQgZjAgPSBmVHJhbnNm
b3JtKHgpOworICAgIGZsb2F0IGYxID0gZlRyYW5zZm9ybSh5KTsKKyAgICBmbG9hdCBmMiA9IGZU
cmFuc2Zvcm0oeik7CisKKyAgICBmbG9hdCBsaWdodG5lc3MgPSAoMTE2LjBmICogZjEpIC0gMTYu
MGY7CisgICAgZmxvYXQgYSA9IDUwMC4wZiAqIChmMCAtIGYxKTsKKyAgICBmbG9hdCBiID0gMjAw
LjBmICogKGYxIC0gZjIpOworCisgICAgcmV0dXJuIHsgbGlnaHRuZXNzLCBhLCBiLCBjb2xvcldp
dGhENTBXaGl0ZVBvaW50LmFscGhhIH07Cit9CisKK0xDSEE8ZmxvYXQ+IHRvTENIQShjb25zdCBM
YWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNv
bG9yLTQvI2xhYi10by1sY2gKKyAgICBmbG9hdCBodWUgPSByYWQyZGVnKGF0YW4yKGNvbG9yLmIs
IGNvbG9yLmEpKTsKKworICAgIHJldHVybiB7CisgICAgICAgIGNvbG9yLmxpZ2h0bmVzcywKKyAg
ICAgICAgc3RkOjpoeXBvdChjb2xvci5hLCBjb2xvci5iKSwKKyAgICAgICAgaHVlID49IDAgPyBo
dWUgOiBodWUgKyAzNjAsCisgICAgICAgIGNvbG9yLmFscGhhCisgICAgfTsKK30KKworTGFiPGZs
b2F0PiB0b0xhYihjb25zdCBMQ0hBPGZsb2F0PiYgY29sb3IpCit7CisgICAgLy8gaHR0cHM6Ly93
d3cudzMub3JnL1RSL2Nzcy1jb2xvci00LyNsY2gtdG8tbGFiCisgICAgZmxvYXQgaHVlQW5nbGVS
YWRpYW5zID0gZGVnMnJhZChjb2xvci5odWUpOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgY29s
b3IubGlnaHRuZXNzLAorICAgICAgICBjb2xvci5jaHJvbWEgKiBzdGQ6OmNvcyhodWVBbmdsZVJh
ZGlhbnMpLAorICAgICAgICBjb2xvci5jaHJvbWEgKiBzdGQ6OnNpbihodWVBbmdsZVJhZGlhbnMp
LAorICAgICAgICBjb2xvci5hbHBoYQorICAgIH07Cit9CisKIEhTTEE8ZmxvYXQ+IHRvSFNMQShj
b25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQogewogICAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEu
b3JnL3dpa2kvSFNMX2NvbG9yX3NwYWNlLgpAQCAtMjYzLDYgKzM3NiwxNiBAQCBEaXNwbGF5UDM8
ZmxvYXQ+IHRvRGlzcGxheVAzKGNvbnN0IFhZWkE8CiAgICAgcmV0dXJuIHRvRGlzcGxheVAzKHRv
TGluZWFyRGlzcGxheVAzKGNvbG9yKSk7CiB9CiAKK1hZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBM
Q0hBPGZsb2F0PiYgY29sb3IpCit7CisgICAgcmV0dXJuIHRvWFlaQSh0b0xhYihjb2xvcikpOwor
fQorCitMQ0hBPGZsb2F0PiB0b0xDSEEoY29uc3QgWFlaQTxmbG9hdD4mIGNvbG9yKQoreworICAg
IHJldHVybiB0b0xDSEEodG9MYWIoY29sb3IpKTsKK30KKwogWFlaQTxmbG9hdD4gdG9YWVpBKGNv
bnN0IEhTTEE8ZmxvYXQ+JiBjb2xvcikKIHsKICAgICByZXR1cm4gdG9YWVpBKHRvU1JHQkEoY29s
b3IpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yQ29udmVyc2lvbi5oCShyZXZpc2lvbiAyNzEzNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiAr
NzEsMjAgQEAgV0VCQ09SRV9FWFBPUlQgTGluZWFyRGlzcGxheVAzPGZsb2F0PiB0bwogV0VCQ09S
RV9FWFBPUlQgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBMaW5lYXJEaXNwbGF5
UDM8ZmxvYXQ+Jik7CiAKIAorLy8gTGFiCitXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0PiB0b1hZ
WkEoY29uc3QgTGFiPGZsb2F0PiYpOworV0VCQ09SRV9FWFBPUlQgTGFiPGZsb2F0PiB0b0xhYihj
b25zdCBYWVpBPGZsb2F0PiYpOworLy8gQWRkaXRpb25zCitXRUJDT1JFX0VYUE9SVCBMQ0hBPGZs
b2F0PiB0b0xDSEEoY29uc3QgTGFiPGZsb2F0PiYpOworCisKKy8vIExDSEEKK1dFQkNPUkVfRVhQ
T1JUIFhZWkE8ZmxvYXQ+IHRvWFlaQShjb25zdCBMQ0hBPGZsb2F0PiYpOworV0VCQ09SRV9FWFBP
UlQgTENIQTxmbG9hdD4gdG9MQ0hBKGNvbnN0IFhZWkE8ZmxvYXQ+Jik7CisvLyBBZGRpdGlvbnMK
K1dFQkNPUkVfRVhQT1JUIExhYjxmbG9hdD4gdG9MYWIoY29uc3QgTENIQTxmbG9hdD4mKTsKKwor
CiAvLyBIU0xBCiBXRUJDT1JFX0VYUE9SVCBYWVpBPGZsb2F0PiB0b1hZWkEoY29uc3QgSFNMQTxm
bG9hdD4mKTsKIFdFQkNPUkVfRVhQT1JUIEhTTEE8ZmxvYXQ+IHRvSFNMQShjb25zdCBYWVpBPGZs
b2F0PiYpOwpAQCAtOTEsNiArMTA1LDggQEAgY29uc3RleHByIFNSR0JBPGZsb2F0PiB0b1NSR0JB
KGNvbnN0IFNSRwogY29uc3RleHByIExpbmVhclNSR0JBPGZsb2F0PiB0b0xpbmVhclNSR0JBKGNv
bnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4
cHIgRGlzcGxheVAzPGZsb2F0PiB0b0Rpc3BsYXlQMyhjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+JiBj
b2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhwciBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+
IHRvTGluZWFyRGlzcGxheVAzKGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKSB7
IHJldHVybiBjb2xvcjsgfQorY29uc3RleHByIExhYjxmbG9hdD4gdG9MYWIoY29uc3QgTGFiPGZs
b2F0PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9Citjb25zdGV4cHIgTENIQTxmbG9hdD4gdG9M
Q0hBKGNvbnN0IExDSEE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KIGNvbnN0ZXhw
ciBIU0xBPGZsb2F0PiB0b0hTTEEoY29uc3QgSFNMQTxmbG9hdD4mIGNvbG9yKSB7IHJldHVybiBj
b2xvcjsgfQogY29uc3RleHByIENNWUtBPGZsb2F0PiB0b0NNWUtBKGNvbnN0IENNWUtBPGZsb2F0
PiYgY29sb3IpIHsgcmV0dXJuIGNvbG9yOyB9CiBjb25zdGV4cHIgWFlaQTxmbG9hdD4gdG9YWVpB
KGNvbnN0IFhZWkE8ZmxvYXQ+JiBjb2xvcikgeyByZXR1cm4gY29sb3I7IH0KQEAgLTEyMSw2ICsx
MzcsMTYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gTGluZWFyRGlzcGxheVAzPGZsbwogICAgIHJl
dHVybiB0b0xpbmVhckRpc3BsYXlQMyh0b1hZWkEoY29sb3IpKTsKIH0KIAordGVtcGxhdGU8dHlw
ZW5hbWUgVD4gTGFiPGZsb2F0PiB0b0xhYihjb25zdCBUJiBjb2xvcikKK3sKKyAgICByZXR1cm4g
dG9MYWIodG9YWVpBKGNvbG9yKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IExDSEE8Zmxv
YXQ+IHRvTENIQShjb25zdCBUJiBjb2xvcikKK3sKKyAgICByZXR1cm4gdG9MQ0hBKHRvWFlaQShj
b2xvcikpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBIU0xBPGZsb2F0PiB0b0hTTEEoY29u
c3QgVCYgY29sb3IpCiB7CiAgICAgcmV0dXJuIHRvSFNMQSh0b1hZWkEoY29sb3IpKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJp
YWxpemF0aW9uLmNwcAkocmV2aXNpb24gMjcxMzQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYs
NiArOTYsOCBAQCBzdGF0aWMgQVNDSUlMaXRlcmFsIHNlcmlhbGl6YXRpb24oQ29sb3JTCiAgICAg
ICAgIHJldHVybiAibGluZWFyLXNyZ2IiX3M7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5
UDM6CiAgICAgICAgIHJldHVybiAiZGlzcGxheS1wMyJfczsKKyAgICBjYXNlIENvbG9yU3BhY2U6
OkxhYjoKKyAgICAgICAgcmV0dXJuICJsYWIiX3M7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC0xNjEsNiArMTYzLDI3IEBAIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVu
ZGVyVHJlZUFzVGV4dCgKICAgICByZXR1cm4gc2VyaWFsaXphdGlvbihjb2xvcik7CiB9CiAKKy8v
IExhYjxmbG9hdD4gb3ZlcmxvYWRzCisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0
IExhYjxmbG9hdD4mIGNvbG9yKQoreworICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mt
Y29sb3ItNC8jc2VyaWFsaXppbmctbGFiLWxjaAorCisgICAgYXV0byBbYzEsIGMyLCBjMywgYWxw
aGFdID0gY29sb3I7CisgICAgaWYgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChhbHBoYSwgMS4w
ZikpCisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJsYWIoIiwgYzEsICIlICIsIGMyLCAnICcs
IGMzLCAnKScpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJsYWIoIiwgYzEsICIlICIsIGMyLCAn
ICcsIGMzLCAiIC8gIiwgYWxwaGEsICcpJyk7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9y
SFRNTChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlv
bkZvckNTUyhjb2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFz
VGV4dChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlv
bkZvckNTUyhjb2xvcik7Cit9CiAKIC8vIENvbG9yIG92ZXJsb2FkcwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24u
aAkocmV2aXNpb24gMjcxMzQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JTZXJpYWxpemF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sb3I7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1
Y3QgRGlzcGxheVAzOwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMYWI7CiB0ZW1wbGF0ZTx0
eXBlbmFtZT4gc3RydWN0IExpbmVhclNSR0JBOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBT
UkdCQTsKIApAQCAtNTUsNiArNTYsMTAgQEAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6
YXRpb25Gb3JDUwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNv
bnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0
aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7CiAKK1dFQkNP
UkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IExhYjxmbG9hdD4mKTsK
K1dFQkNPUkVfRVhQT1JUIFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBMYWI8Zmxv
YXQ+Jik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVB
c1RleHQoY29uc3QgTGFiPGZsb2F0PiYpOworCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2VyaWFs
aXphdGlvbkZvckNTUyhjb25zdCBDb2xvciYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNlcmlh
bGl6YXRpb25Gb3JIVE1MKGNvbnN0IENvbG9yJik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Vy
aWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgQ29sb3ImKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCShyZXZpc2lv
biAyNzEzNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBDCiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAg
ICAgICAgIHRzIDw8ICJEaXNwbGF5UDMiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9y
U3BhY2U6OkxhYjoKKyAgICAgICAgdHMgPDwgIkwqYSpiIjsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIHJldHVybiB0czsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvclNwYWNlLmgJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyAr
MzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50
OF90IHsKICAgICBTUkdCLAogICAgIExpbmVhclJHQiwKLSAgICBEaXNwbGF5UDMKKyAgICBEaXNw
bGF5UDMsCisgICAgTGFiCiB9OwogCiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29sb3JTcGFjZSk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oCShyZXZpc2lvbiAyNzEzNDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI0Nyw2ICsyNDcsOTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3Rl
eHByIGJvb2wgb3BlcgogfQogCiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMYWIgOiBD
b2xvcldpdGhBbHBoYUhlbHBlcjxMYWI8VD4+IHsKKyAgICB1c2luZyBDb21wb25lbnRUeXBlID0g
VDsKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gY29sb3JTcGFjZSA9IENvbG9yU3BhY2U6Okxh
YjsKKworICAgIGNvbnN0ZXhwciBMYWIoVCBsaWdodG5lc3MsIFQgYSwgVCBiLCBUIGFscGhhID0g
Q29tcG9uZW50VHJhaXRzPFQ+OjptYXhWYWx1ZSkKKyAgICAgICAgOiBsaWdodG5lc3MgeyBsaWdo
dG5lc3MgfQorICAgICAgICAsIGEgeyBhIH0KKyAgICAgICAgLCBiIHsgYiB9CisgICAgICAgICwg
YWxwaGEgeyBhbHBoYSB9CisgICAgeworICAgIH0KKworICAgIGNvbnN0ZXhwciBMYWIoKQorICAg
ICAgICA6IExhYiB7IENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0
czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRyYWl0czxUPjo6bWluVmFsdWUsIENvbXBvbmVudFRy
YWl0czxUPjo6bWluVmFsdWUgfQorICAgIHsKKyAgICB9CisKKyAgICBUIGxpZ2h0bmVzczsKKyAg
ICBUIGE7CisgICAgVCBiOworICAgIFQgYWxwaGE7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29sb3JDb21wb25lbnRzKGNvbnN0IExh
YjxUPiYgYykKK3sKKyAgICByZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5hLCBjLmIsIGMuYWxwaGEg
fTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIExhYjxUPiBhc0xhYihjb25z
dCBDb2xvckNvbXBvbmVudHM8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgY1swXSwgY1sxXSwgY1sy
XSwgY1szXSB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IExhYjxUPiYgYSwgY29uc3QgTGFiPFQ+JiBiKQoreworICAgIHJldHVybiBh
c0NvbG9yQ29tcG9uZW50cyhhKSA9PSBhc0NvbG9yQ29tcG9uZW50cyhiKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShjb25zdCBMYWI8VD4mIGEs
IGNvbnN0IExhYjxUPiYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMQ0hBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8TENIQTxU
Pj4geworICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOworCisgICAgY29uc3RleHByIExDSEEo
VCBsaWdodG5lc3MsIFQgY2hyb21hLCBUIGh1ZSwgVCBhbHBoYSA9IENvbXBvbmVudFRyYWl0czxU
Pjo6bWF4VmFsdWUpCisgICAgICAgIDogbGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KKyAgICAgICAg
LCBjaHJvbWEgeyBjaHJvbWEgfQorICAgICAgICAsIGh1ZSB7IGh1ZSB9CisgICAgICAgICwgYWxw
aGEgeyBhbHBoYSB9CisgICAgeworICAgIH0KKworICAgIGNvbnN0ZXhwciBMQ0hBKCkKKyAgICAg
ICAgOiBMQ0hBIHsgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRz
PFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJhaXRzPFQ+OjptaW5WYWx1ZSwgQ29tcG9uZW50VHJh
aXRzPFQ+OjptaW5WYWx1ZSB9CisgICAgeworICAgIH0KKworICAgIFQgbGlnaHRuZXNzOworICAg
IFQgY2hyb21hOworICAgIFQgaHVlOworICAgIFQgYWxwaGE7Cit9OworCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29sb3JDb21wb25lbnRzKGNv
bnN0IExDSEE8VD4mIGMpCit7CisgICAgcmV0dXJuIHsgYy5saWdodG5lc3MsIGMuY2hyb21hLCBj
Lmh1ZSwgYy5hbHBoYSB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgTENI
QTxUPiBhc0xDSEEoY29uc3QgQ29sb3JDb21wb25lbnRzPFQ+JiBjKQoreworICAgIHJldHVybiB7
IGNbMF0sIGNbMV0sIGNbMl0sIGNbM10gfTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29u
c3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMQ0hBPFQ+JiBhLCBjb25zdCBMQ0hBPFQ+JiBi
KQoreworICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhhKSA9PSBhc0NvbG9yQ29tcG9uZW50
cyhiKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBMQ0hBPFQ+JiBhLCBjb25zdCBMQ0hBPFQ+JiBiKQoreworICAgIHJldHVybiAhKGEg
PT0gYik7Cit9CisKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhTTEEgOiBDb2xvcldp
dGhBbHBoYUhlbHBlcjxIU0xBPFQ+PiB7CiAgICAgdXNpbmcgQ29tcG9uZW50VHlwZSA9IFQ7CiAK
QEAgLTM3OSw2ICs0NjYsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBGdW5jdG9y
PiBjCiAgICAgICAgIHJldHVybiBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVu
Y3RvciksIGFzTGluZWFyU1JHQkEoY29tcG9uZW50cykpOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6
RGlzcGxheVAzOgogICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0
b3I+KGZ1bmN0b3IpLCBhc0Rpc3BsYXlQMyhjb21wb25lbnRzKSk7CisgICAgY2FzZSBDb2xvclNw
YWNlOjpMYWI6CisgICAgICAgIHJldHVybiBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rv
cj4oZnVuY3RvciksIGFzTGFiKGNvbXBvbmVudHMpKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Nv
bG9yU3BhY2VDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcAkocmV2aXNpb24gMjcxMzQ5KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODIsNiArODIsMTIgQEAgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VS
ZWYoKQogICAgIHJldHVybiBkaXNwbGF5UDNDb2xvclNwYWNlOwogfQogCitDR0NvbG9yU3BhY2VS
ZWYgbGFiQ29sb3JTcGFjZVJlZigpCit7CisgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBj
b252ZXJzaW9uIHRvIExhYiBvbiBzdXBwb3J0ZWQgcGxhdGZvcm1zLgorICAgIHJldHVybiBzUkdC
Q29sb3JTcGFjZVJlZigpOworfQorCiBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JT
cGFjZVJlZigpCiB7CiAgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xv
clNwYWNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JT
cGFjZUNHLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvQ29sb3JTcGFjZUNHLmgJKHJldmlzaW9uIDI3MTM0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFj
ZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVm
IGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJl
ZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CitXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VS
ZWYgbGFiQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4
dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIAogc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VS
ZWYgY2FjaGVkQ0dDb2xvclNwYWNlKENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTQ1LDYgKzQ2
LDggQEAgc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDbwogICAgICAgICBy
ZXR1cm4gbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6RGlz
cGxheVAzOgogICAgICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpOworICAgIGNh
c2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICByZXR1cm4gbGFiQ29sb3JTcGFjZVJlZigpOwog
ICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAxLTEwICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxhYigpLCBsY2goKSwg
Z3JheSgpIGFuZCBjb2xvcihsYWIgLi4uKSBjb2xvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEZyYXNlci4KKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBTaW1vbiBGcmFzZXIuCisK
KyAgICAgICAgUGFyc2luZyB0ZXN0cyBmb3IgbGFiL2xjaC9ncmF5IGNvbG9ycy4KKworICAgICAg
ICAqIFRlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCBsYWIvbGNoIHRlc3RzLgorICAgICAgICAqIGZh
c3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sOiBBZGRlZC4KKwogMjAyMS0wMS0wOSAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIHBsYXkuZ29vZ2xlLmNv
bTogQXBwIHByZXZpZXcgaW1hZ2VzIGFyZSBjbGlwcGVkCkluZGV4OiBMYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJ
KHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtp
bmcgY29weSkKQEAgLTIwMTcsMjIgKzIwMTcsNiBAQCB3ZWJraXQub3JnL2IvMTQ4ODAxIGltcG9y
dGVkL3czYy93ZWItcGxhCiB3ZWJraXQub3JnL2IvMTQ4ODAxIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci90NDI1LWhzbGEtb25zY3JlZW4tbXVsdGlwbGUtYm94
ZXMtYy54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDg4MDEgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL3Q0MjUtaHNsYS1vbnNjcmVl
bi1iLnhodCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCiAKLSMgbGFiL2xjaCBub3Qgc3VwcG9y
dGVkCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
MS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGFiLTAwMi5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1sIFsgU2tpcCBdCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS5odG1sIFsg
U2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFi
LTAwNi5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwNy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5odG1sIFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1s
IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
bGNoLTAwNC5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3IvbGNoLTAwNS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sIFsgU2tpcCBd
Ci0KICMgSW5pdGlhbCBmYWlsdXJlcyBvbiB0aGUgaW1wb3J0IG9mIGNzcy1jb2xvcgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL3QzMS1jb2xvci10ZXh0LWEu
eGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3Bh
cnNpbmctbGFiLWNvbG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcGFyc2luZy1sYWItY29sb3JzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWxhYi1jb2xvcnMtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzEgQEAKK1Rlc3QgdGhlIHBhcnNpbmcgb2YgbGFiLCBs
Y2ggYW5kIGdyYXkgY29sb3JzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworbGFi
KCkKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwKSIp
IGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMCUgMCAwIC8gMSkiKSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDAuNSkiKSBpcyAibGFiKDAlIDAgMCAv
IDAuNSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDIwJSAw
IDEwLzAuNSkiKSBpcyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMjAlIDAgMTAvNTAlKSIpIGlzICJsYWIoMjAlIDAgMTAg
LyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig0MDAl
IDAgMTAvNTAlKSIpIGlzICJsYWIoNDAwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAlIC0xNjAgMTYwKSIpIGlzICJsYWIoNTAlIC0x
NjAgMTYwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNTAl
IC0yMDAgMjAwKSIpIGlzICJsYWIoNTAlIC0yMDAgMjAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
YmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gLTEwJSkiKSBpcyAibGFiKDAlIDAgMCAv
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAg
LyAxMTAlKSIpIGlzICJsYWIoMCUgMCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMzAwJSkiKSBpcyAibGFiKDAlIDAgMCkiCisKK2xjaCgp
CitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyki
KSBpcyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3Ii
LCAibGNoKDAlIDAgMGRlZyAvIDEpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwJSAwIDBkZWcgLyAwLjUpIikgaXMgImxhYigw
JSAwIDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxj
aCgxMDAlIDIzMCAwZGVnIC8gMC41KSIpIGlzICJsYWIoMTAwJSAyMzAgMCAvIDAuNSkiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDIwJSA1MCAyMGRlZy8wLjUp
IikgaXMgImxhYigyMCUgNDYuOTg0NjMgMTcuMTAxMDA2IC8gMC41KSIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVnLzUwJSkiKSBpcyAibGFi
KDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgMjBkZWcgLyAtMTAlKSIpIGlzICJsYWIoMTAlIDE4
Ljc5Mzg1MiA2Ljg0MDQwMjYgLyAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJsY2goMTAlIDIwIDIwZGVnIC8gMTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIg
Ni44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2go
MTAlIDIwIDEuMjhyYWQpIikgaXMgImxhYigxMCUgNS43MzQzMDI1IDE5LjE2MDMxNikiCitQQVNT
IGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAzODBkZWcpIikg
aXMgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJh
Y2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtMzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5
Mzg1MiA2Ljg0MDQwMjYpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxjaCgxMCUgMjAgNzQwZGVnKSIpIGlzICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAgLTcwMGRl
ZykiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwIC8gMC41KSIpIGlzICJsYWIoMCUgMCAw
IC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAl
IDIwIDIwIC8gMTEwJSkiKSBpcyAibGFiKDEwJSAxOC43OTM4NTIgNi44NDA0MDI2KSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIC03MDApIikgaXMg
ImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiCisKK2NvbG9yKGxhYiApCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCkiKSBpcyAibGFi
KDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3Io
bGFiIDAlIDAgMCAvIDEpIikgaXMgImxhYigwJSAwIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAwLjUpIikgaXMgImxhYigwJSAw
IDAgLyAwLjUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9y
KGxhYiAyMCUgMCAxMC8wLjUpIikgaXMgImxhYigyMCUgMCAxMCAvIDAuNSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDIwJSAwIDEwLzUwJSkiKSBp
cyAibGFiKDIwJSAwIDEwIC8gMC41KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJjb2xvcihsYWIgNDAwJSAwIDEwLzUwJSkiKSBpcyAibGFiKDQwMCUgMCAxMCAvIDAu
NSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDUw
JSAtMTYwIDE2MCkiKSBpcyAibGFiKDUwJSAtMTYwIDE2MCkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
ImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDUwJSAtMjAwIDIwMCkiKSBpcyAibGFiKDUw
JSAtMjAwIDIwMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAiY29s
b3IobGFiIDAlIDAgMCAvIC0xMCUpIikgaXMgImxhYigwJSAwIDAgLyAwKSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAwIC8gMTEwJSkiKSBp
cyAibGFiKDAlIDAgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAi
Y29sb3IobGFiIDAlIDAgMCAvIDMwMCUpIikgaXMgImxhYigwJSAwIDApIgorCitUZXN0IGludmFs
aWQgdmFsdWVzCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAg
MCAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYigwJSAwJSAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgMSkiKSBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJs
YWIoMCUgMCAwIDEwJSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwJSAw
ZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImxhYig0MCUgMCAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgwIDAgMCAvIDAuNSkiKSBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgMTAgMTBkZWcgMTAgLyAw
LjUpIikgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoImJhY2tncm91
bmQtY29sb3IiLCAiY29sb3IobGFiIDAgMCAwKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwJSAwKSIp
IGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgMSkiKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCUgMCAwIDEwJSki
KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiYmFja2dyb3VuZC1j
b2xvciIsICJjb2xvcihsYWIgMCUgMCAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFT
UyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwJSAwZGVn
KSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBjb21wdXRlZFN0eWxlKCJiYWNrZ3JvdW5k
LWNvbG9yIiwgImNvbG9yKGxhYiA0MCUgMCAwZGVnKSIpIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctbGFiLWNvbG9ycy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEwIEBACis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGUgcGFyc2luZyBvZiBsYWIsIGxj
aCBhbmQgZ3JheSBjb2xvcnMuIik7CisKKyAgICBmdW5jdGlvbiBjb21wdXRlZFN0eWxlKHByb3Bl
cnR5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAg
ICAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICAgICAgdmFy
IGNvbXB1dGVkVmFsdWUgPSBnZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShw
cm9wZXJ0eSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICAg
ICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5uZXJTdHls
ZShwcm9wZXJ0eSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0
eSwgdmFsdWUpOworICAgICAgICByZXR1cm4gZGl2LnN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJv
cGVydHkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFs
dWUsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21w
dXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVk
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBleHBl
Y3RlZCkKKyAgICB7CisgICAgICAgIGlmIChleHBlY3RlZCA9PT0gbnVsbCkKKyAgICAgICAgICAg
IGV4cGVjdGVkID0gIiI7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5uZXJTdHls
ZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7CisgICAg
fQorCisgICAgZGVidWcoJ2xhYigpJyk7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImxhYigwJSAwIDApIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAxKSIsICJsYWIoMCUgMCAwKSIpOworICAg
IHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIC8gMC41KSIsICJs
YWIoMCUgMCAwIC8gMC41KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsYWIoMjAlIDAgMTAvMC41KSIsICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigyMCUgMCAxMC81MCUpIiwgImxhYigyMCUg
MCAxMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KDQwMCUgMCAxMC81MCUpIiwgImxhYig0MDAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1
dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUgLTE2MCAxNjApIiwgImxhYig1MCUgLTE2
MCAxNjApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYig1MCUg
LTIwMCAyMDApIiwgImxhYig1MCUgLTIwMCAyMDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImxhYigwJSAwIDAgLyAtMTAlKSIsICJsYWIoMCUgMCAwIC8gMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAvIDExMCUp
IiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwg
ImxhYigwJSAwIDAgLyAzMDAlKSIsICJsYWIoMCUgMCAwKSIpOworCisgICAgZGVidWcoJycpOwor
ICAgIGRlYnVnKCdsY2goKScpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJsY2goMCUgMCAwZGVnKSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAwZGVnIC8gMSkiLCAibGFiKDAlIDAgMCkiKTsKKyAg
ICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDAlIDAgMGRlZyAvIDAuNSki
LCAibGFiKDAlIDAgMCAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29s
b3IiLCAibGNoKDEwMCUgMjMwIDBkZWcgLyAwLjUpIiwgImxhYigxMDAlIDIzMCAwIC8gMC41KSIp
OworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDUwIDIwZGVn
LzAuNSkiLCAibGFiKDIwJSA0Ni45ODQ2MyAxNy4xMDEwMDYgLyAwLjUpIik7CisgICAgdGVzdENv
bXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgyMCUgNTAgMjBkZWcvNTAlKSIsICJsYWIo
MjAlIDQ2Ljk4NDYzIDE3LjEwMTAwNiAvIDAuNSkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMGRlZyAvIC0xMCUpIiwgImxhYigxMCUgMTguNzkz
ODUyIDYuODQwNDAyNiAvIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgxMCUgMjAgMjBkZWcgLyAxMTAlKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQw
MjYpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgxMCUgMjAg
MS4yOHJhZCkiLCAibGFiKDEwJSA1LjczNDMwMjUgMTkuMTYwMzE2KSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMTAlIDIwIDM4MGRlZykiLCAibGFiKDEwJSAx
OC43OTM4NTIgNi44NDA0MDI2KSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xv
ciIsICJsY2goMTAlIDIwIC0zNDBkZWcpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNiki
KTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCA3NDBk
ZWcpIiwgImxhYigxMCUgMTguNzkzODUyIDYuODQwNDAyNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQo
ImJhY2tncm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAtNzAwZGVnKSIsICJsYWIoMTAlIDE4Ljc5
Mzg1MiA2Ljg0MDQwMjYpIik7CisgICAgLy8gaHVlICh0aGUgdGhpcmQgYXJndW1lbnQpIGNhbiBi
ZSBlaXRoZXIgYW4gYW5nbGUgb3IgbnVtYmVyLCB3aXRoIG51bWJlciBpbnRlcnByZXRlZCBhcyBk
ZWdyZWVzLgorICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMCUgMCAw
IC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41KSIpOyAKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tn
cm91bmQtY29sb3IiLCAibGNoKDEwJSAyMCAyMCAvIDExMCUpIiwgImxhYigxMCUgMTguNzkzODUy
IDYuODQwNDAyNikiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGNo
KDEwJSAyMCAtNzAwKSIsICJsYWIoMTAlIDE4Ljc5Mzg1MiA2Ljg0MDQwMjYpIik7CisKKyAgICBk
ZWJ1ZygnJyk7CisgICAgZGVidWcoJ2NvbG9yKGxhYiApJyk7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDApIiwgImxhYigwJSAwIDApIik7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAx
KSIsICJsYWIoMCUgMCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIs
ICJjb2xvcihsYWIgMCUgMCAwIC8gMC41KSIsICJsYWIoMCUgMCAwIC8gMC41KSIpOworICAgIHRl
c3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMjAlIDAgMTAvMC41KSIs
ICJsYWIoMjAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNv
bG9yIiwgImNvbG9yKGxhYiAyMCUgMCAxMC81MCUpIiwgImxhYigyMCUgMCAxMCAvIDAuNSkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDQwMCUgMCAx
MC81MCUpIiwgImxhYig0MDAlIDAgMTAgLyAwLjUpIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiA1MCUgLTE2MCAxNjApIiwgImxhYig1MCUgLTE2MCAx
NjApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiA1
MCUgLTIwMCAyMDApIiwgImxhYig1MCUgLTIwMCAyMDApIik7CisgICAgdGVzdENvbXB1dGVkKCJi
YWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAtMTAlKSIsICJsYWIoMCUgMCAw
IC8gMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFi
IDAlIDAgMCAvIDExMCUpIiwgImxhYigwJSAwIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNr
Z3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDAgLyAzMDAlKSIsICJsYWIoMCUgMCAwKSIp
OworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdUZXN0IGludmFsaWQgdmFsdWVzJyk7Cisg
ICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxhYigwIDAgMCkiLCAicmdiYSgw
LCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIo
MCUgMCUgMCkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFja2dy
b3VuZC1jb2xvciIsICJsYWIoMCUgMCAwIDEpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0
ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFiKDAlIDAgMCAxMCUpIiwgInJnYmEo
MCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAibGFi
KDAlIDAgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21wdXRlZCgiYmFj
a2dyb3VuZC1jb2xvciIsICJsYWIoMCUgMCUgMGRlZykiLCAicmdiYSgwLCAwLCAwLCAwKSIpOwor
ICAgIHRlc3RDb21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsYWIoNDAlIDAgMGRlZykiLCAi
cmdiYSgwLCAwLCAwLCAwKSIpOworCisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9y
IiwgImxjaCgwIDAgMCAvIDAuNSkiLCAicmdiYSgwLCAwLCAwLCAwKSIpOworICAgIHRlc3RDb21w
dXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJsY2goMjAlIDEwIDEwZGVnIDEwKSIsICJyZ2JhKDAs
IDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImxjaCgy
MCUgMTAgMTBkZWcgMTAgLyAwLjUpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKworICAgIHRlc3RD
b21wdXRlZCgiYmFja2dyb3VuZC1jb2xvciIsICJjb2xvcihsYWIgMCAwIDApIiwgInJnYmEoMCwg
MCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3Io
bGFiIDAlIDAlIDApIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJh
Y2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAgMCAxKSIsICJyZ2JhKDAsIDAsIDAsIDAp
Iik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3JvdW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAw
IDAgMTAlKSIsICJyZ2JhKDAsIDAsIDAsIDApIik7CisgICAgdGVzdENvbXB1dGVkKCJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImNvbG9yKGxhYiAwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsK
KyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQtY29sb3IiLCAiY29sb3IobGFiIDAlIDAlIDBk
ZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKyAgICB0ZXN0Q29tcHV0ZWQoImJhY2tncm91bmQt
Y29sb3IiLCAiY29sb3IobGFiIDQwJSAwIDBkZWcpIiwgInJnYmEoMCwgMCwgMCwgMCkiKTsKKwor
PC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MiBAQAorMjAyMS0wMS0xMCAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBsYWIoKSwg
bGNoKCksIGdyYXkoKSBhbmQgY29sb3IobGFiIC4uLikgY29sb3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdHMgdG8gdXNlIHJlY3Rh
bmdsZXMgcmF0aGVyIHRoYW4gdGV4dCB0byBtYWtlIGFudGktYWxpYXNpbmcgZGlmZmVyZW5jZXMK
KyAgICAgICAgbm90IGNhdXNlIGZhaWx1cmVzLiBUaGVzZSBjaGFuZ2VzIHdpbGwgYmUgdXBzdHJl
YW1lZCB0byB0aGUgV2ViUGxhdGZvcm1UZXN0cy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMi1leHBlY3RlZC5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDIuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAzLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
My5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0w
MDQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDA0Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGFiLTAwNS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNi5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDctZXhwZWN0ZWQuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA3Lmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMS1leHBlY3RlZC5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAy
LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29s
b3IvbGNoLTAwMi5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDMtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDAzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29sb3IvbGNoLTAwNC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA1LWV4cGVjdGVkLmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDYtZXhwZWN0ZWQuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2Lmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy1l
eHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDcuaHRtbDoKKwogMjAyMS0wMS0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI2NzQwMik6IFsgbWFjT1Mg
aU9TIFJlbGVhc2UgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VzZXItdGltaW5n
L21lYXN1cmUtbDMuYW55Lndvcmtlci5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpJbmRleDogTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xh
Yi0wMDEtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMS1leHBlY3RlZC5odG1s
CShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDkgKzEsMTAgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPkdyZWVuIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5HcmVlbiBz
cXVhcmUgcmVmZXJlbmNlPC90aXRsZT4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiAjMDA4
MDAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwODAwMDsgd2lkdGg6IDEyZW07
IGhlaWdodDogMTJlbTt9CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRl
c3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBp
ZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8ZGl2IGNsYXNz
PSJ0ZXN0Ij48L2Rpdj4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAxLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xhYi0wMDEuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDEuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMywxMSArMywxNSBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5
aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMg
TGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1s
Y2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZ3JlZW50ZXh0LXJlZi5odG1sIj4KKzxsaW5r
IHJlbD0ibWF0Y2giIGhyZWY9ImdyZWVuc3F1YXJlLXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFz
c2VydCIgY29udGVudD0ibGFiKCkgd2l0aCBubyBhbHBoYSI+CiA8c3R5bGU+Ci0gICAgLnRlc3Qg
e2NvbG9yOiBsYWIoNDYuMjc3JSAtNDcuNTYyIDQ4LjU4Myl9IC8qIGdyZWVuIChzUkdCICMwMDgw
MDApIGNvbnZlcnRlZCB0byBMYWIgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJl
ZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJh
Y2tncm91bmQtY29sb3I6ICMwMDgwMDA7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2lu
LWJvdHRvbTogMH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxhYig0Ni4yNzclIC00
Ny41NjIgNDguNTgzKX0gLyogZ3JlZW4gKHNSR0IgIzAwODAwMCkgY29udmVydGVkIHRvIExhYiAq
LwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0IHBhc3NlcyBpZiB0
aGlzIHRleHQgaXMgZ3JlZW48L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIGdy
ZWVuIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAg
ICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDAyLWV4cGVjdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcx
MzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xhYi0wMDItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsx
LDEwIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5C
bGFjayB0ZXh0IHJlZmVyZW5jZTwvdGl0bGU+Cis8dGl0bGU+QmxhY2sgYmxvY2sgcmVmZXJlbmNl
PC90aXRsZT4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiAjMDAwMDAwfQorICAgIC50ZXN0
IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9
CiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRo
aXMgdGV4dCBpcyBibGFjazwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgYmxh
Y2sgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwv
Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sYWItMDAyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDIuaHRtbAko
cmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywx
MiArMywxMyBAQAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90
aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWls
dG86Y2hyaXNAdzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJt
YXRjaCIgaHJlZj0iYmxhY2t0ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9
ImJsYWNrYmxvY2stcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIo
KSB3aXRoIG5vIGFscGhhIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAg
ICAudGVzdCB7IGNvbG9yOiBsYWIoMCUgMCAwKX0gLyogYmxhY2sgKHNSR0IgIzAwMDAwMCkgY29u
dmVydGVkIHRvIExhYiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0
aDogMTJlbTsgaGVpZ2h0OiAxMmVtOyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBs
YWIoMCUgMCAwKSB9IC8qIGJsYWNrIChzUkdCICMwMDAwMDApIGNvbnZlcnRlZCB0byBMYWIgKi8K
IDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBwYXNzZXMgaWYgdGhp
cyB0ZXh0IGlzIGJsYWNrPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBibGFj
ayBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9i
b2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbG9yL2xhYi0wMDMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
My1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwMy1leHBlY3RlZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsMTEgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldoaXRlIHRleHQgcmVmZXJlbmNlPC90aXRsZT4K
Kzx0aXRsZT5XaGl0ZSBibG9jayByZWZlcmVuY2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0
IHsgY29sb3I6ICNGRkZGRkY7IGJhY2tncm91bmQtY29sb3I6ICMzMzM7IHBhZGRpbmc6IDNweH0K
KyAgICBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfQorICAgIC50ZXN0IHsgYmFja2dy
b3VuZC1jb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9CiA8L3N0eWxl
PgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBp
cyB3aGl0ZTwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgd2hpdGUgc3F1YXJl
LCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b2xvci9sYWItMDAzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDMuaHRtbAkocmV2aXNpb24g
MjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbG9yL2xhYi0wMDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMiArMywxNCBA
QAogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNA
dzMub3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJl
Zj0id2hpdGV0ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9IndoaXRlYmxv
Y2stcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5v
IGFscGhhIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IGJhY2tncm91bmQtY29s
b3I6ICMzMzM7IHBhZGRpbmc6IDNweDt9Ci0gICAgLnRlc3QgeyBjb2xvcjogbGFiKDEwMCUgMCAw
KTt9IC8qIHdoaXRlIChzUkdCICNGRkZGRkYpIGNvbnZlcnRlZCB0byBMYWIgKi8KKyAgICBib2R5
IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xv
cjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiAxMmVtOyB9CisgICAgLnRlc3QgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBsYWIoMTAwJSAwIDApO30gLyogd2hpdGUgKHNSR0IgI0ZGRkZGRikgY29udmVy
dGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5UZXN0
IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgd2hpdGU8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYg
eW91IHNlZSBhIHdoaXRlIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xhc3M9InRl
c3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb2xvci9sYWItMDA0LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAogPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQg
TENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDc1LjYyJSAzMC40
NSUgNDcuNTYlKX0gLyogbGFiKDUwIDUwIDApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRl
c3QgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYig3NS42MiUgMzAuNDUlIDQ3LjU2JSk7IHdpZHRoOiAx
MmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8K
IDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9m
IGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNo
Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xh
c3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Cisg
ICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdv
IHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3Qi
PiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWIt
MDA0Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA0Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTYsMTIgKzYsMTIgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDQtcmVm
Lmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhh
LCBwb3NpdGl2ZSBhIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQot
ICAgIC50ZXN0IHsgY29sb3I6IGxhYig1MCUgNTAgMCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJn
Yig3NS42MiUsIDMwLjQ1JSwgNDcuNTYlKX0gLyogbGFiKDUwIDUwIDApIGNvbnZlcnRlZCB0byBz
UkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBo
ZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoNzUuNjIlLCAzMC40NSUsIDQ3LjU2JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFy
Z2luLWJvdHRvbTogMH0vKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAu
dGVzdCB7IGJhY2tncm91bmQtY29sb3I6IGxhYig1MCUgNTAgMCl9IAogPC9zdHlsZT4KIDxib2R5
PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJl
IHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVzdCI+RmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVy
IHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2Vz
IGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRp
ZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYiPiA8L3A+CisgICAgPHAgY2xh
c3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sYWItMDA1LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysr
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sYWItMDA1LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsOSBAQAog
PG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExh
YiBhbmQgTENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2ggeyBjb2xvcjogcmdiKDEwLjc5
JSwgNzUuNTUlLCA2Ni40MCUpfSAvKiBsYWIoNzAgLTQ1IDApIGNvbnZlcnRlZCB0byBzUkdCICov
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQw
JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNzAgLTQ1IDApIGNvbnZlcnRl
ZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhl
IHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxw
IGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9w
PgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIg
dGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJl
LCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxw
IGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGFiLTAwNS5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAwNS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC02LDEyICs2LDEyIEBACiA8bGluayByZWw9Im1hdGNoIiBocmVm
PSJsYWItMDA1LXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGFiKCkg
d2l0aCBubyBhbHBoYSwgbmVnYXRpdmUgYSBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNv
bG9yOiByZWQ7IH0KLSAgICAudGVzdCB7IGNvbG9yOiBsYWIoNzAlIC00NSAwKX0KLSAgICAubWF0
Y2ggeyBjb2xvcjogcmdiKDEwLjc5JSwgNzUuNTUlLCA2Ni40MCUpfSAvKiBsYWIoNzAgLTQ1IDAp
IGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYgeyBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSk7IHdpZHRoOiAxMmVtOyBo
ZWlnaHQ6IDZlbTsgbWFyZ2luLWJvdHRvbTogMH0gLyogbGFiKDcwIC00NSAwKSBjb252ZXJ0ZWQg
dG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDcwJSAtNDUgMCl9
IAogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMg
b2YgZmlsbGVyIHRleHQgYXJlIHRoZSBzYW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0idGVz
dCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNs
YXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgor
ICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3
byByZWN0YW5nbGVzIG9mIGRpZmZlcmVudCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJyZWYi
PiA8L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
Ni1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2LWV4cGVjdGVkLmh0bWwJKHJl
dmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIsMTAgKzIsOSBAQAogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBDb2xv
ciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxzdHlsZT4KLSAgICAubWF0Y2gg
eyBjb2xvcjogcmdiKDc2LjYyJSwgNjYuMzYlLCA1LjU4JSl9IC8qIGxhYig3MCAwIDcwKSBjb252
ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc2LjYy
JSwgNjYuMzYlLCA1LjU4JSk7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07fSAvKiBsYWIoNzAg
MCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0
IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xv
ci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVy
IHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBh
IHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9y
cy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGFiLTAw
Ni5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA2Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysr
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sYWItMDA2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTIgQEAKIDxsaW5rIHJl
bD0ibWF0Y2giIGhyZWY9ImxhYi0wMDYtcmVmLmh0bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBwb3NpdGl2ZSBiIGF4aXMiPgogPHN0eWxlPgot
ICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxhYig3MCUgMCA3
MCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpfSAvKiBs
YWIoNzAgMCA3MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQt
Y29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAg
LnJlZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwgNS41OCUpOyB3aWR0
aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxhYig3MCAwIDcwKSBj
b252ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGFiKDcw
JSAwIDcwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3
byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNs
YXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0g
ICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFu
ZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xh
c3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sYWItMDA3LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDctZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xhYi0wMDctZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+
Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAg
IC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxhYig1NSAw
IC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6
IHJnYigxMi44MSUsIDUzLjEwJSwgOTIuNzYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9
IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4K
LSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0
aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmls
bGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMg
aWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlm
ZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGFiLTAwNy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sYWItMDA3Lmh0bWwJKHJldmlzaW9u
IDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sYWItMDA3Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTIg
QEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDctcmVmLmh0bWwiPgogPG1ldGEgbmFt
ZT0iYXNzZXJ0IiBjb250ZW50PSJsYWIoKSB3aXRoIG5vIGFscGhhLCBuZWdhdGl2ZSBiIGF4aXMi
PgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6
IGxhYig1NSUgMCAtNjApfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUs
IDkyLjc2JSl9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVz
dCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJn
aW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMi44MSUsIDUzLjEw
JSwgOTIuNzYlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfSAv
KiBsYWIoNTUgMCAtNjApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBsYWIoNTUlIDAgLTYwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVz
dCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29s
b3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVy
IHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBh
IHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9y
cy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwv
cD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDAxLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEtZXhw
ZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDExIEBACiA8IURPQ1RZUEUgaHRt
bD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5HcmVlbiB0ZXh0IHJlZmVyZW5jZTwv
dGl0bGU+Cis8dGl0bGU+R3JlZW4gYmxvY2sgcmVmZXJlbmNlPC90aXRsZT4KIDxzdHlsZT4KKyAg
ICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6ICMwMDgwMDA7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6
IDEyZW07fQogICAgIC50ZXN0IHsgY29sb3I6ICMwMDgwMDB9CiA8L3N0eWxlPgogPGJvZHk+Ci0g
ICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4K
KyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVk
LjwvcD4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Ij48L2Rpdj4KIDwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gt
MDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDEuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQor
KysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMSArMywxNSBAQAogPHRpdGxl
PkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMub3JnIj4K
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xv
ci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZ3JlZW50
ZXh0LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImdyZWVuYmxvY2stcmVmLmh0
bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5vIGFscGhhIj4K
IDxzdHlsZT4KLSAgICAudGVzdCB7Y29sb3I6IGxjaCg0Ni4yNzclIDY3Ljk0NSAxMzQuNDI3KX0g
LyogZ3JlZW4gKHNSR0IgIzAwODAwMCkgY29udmVydGVkIHRvIExDSCAqLworICAgIC50ZXN0IHsg
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10
b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogIzAwODAwMDsgd2lkdGg6IDEyZW07
IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfQorICAgIC50ZXN0IHsgYmFja2dyb3VuZC1j
b2xvcjogbGNoKDQ2LjI3NyUgNjcuOTQ1IDEzNC40MjcpfSAvKiBncmVlbiAoc1JHQiAjMDA4MDAw
KSBjb252ZXJ0ZWQgdG8gTENIICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRl
c3QiPlRlc3QgcGFzc2VzIGlmIHRoaXMgdGV4dCBpcyBncmVlbjwvcD4KKyAgICA8cD5UZXN0IHBh
c3NlcyBpZiB5b3Ugc2VlIGEgZ3JlZW4gc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBj
bGFzcz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi1leHBlY3RlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDkgKzEsMTAgQEAKIDwhRE9DVFlQRSBodG1sPgogPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPkJsYWNrIHRleHQgcmVmZXJlbmNlPC90aXRsZT4KKzx0aXRsZT5C
bGFjayBibG9jayByZWZlcmVuY2U8L3RpdGxlPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6
ICMwMDAwMDB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB3aWR0aDog
MTJlbTsgaGVpZ2h0OiAxMmVtO30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVz
dCI+VGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIGJsYWNrPC9wPgorICAgIDxwPlRlc3QgcGFz
c2VzIGlmIHlvdSBzZWUgYSBibGFjayBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNs
YXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDIuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29sb3IvbGNoLTAwMi5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDEyICszLDEzIEBACiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNp
ZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJDaHJp
cyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5vcmciPgogPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLTQvI3NwZWNpZnlpbmctbGFi
LWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJibGFja3RleHQtcmVmLmh0bWwiPgorPGxp
bmsgcmVsPSJtYXRjaCIgaHJlZj0iYmxhY2tibG9jay1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJh
c3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEiPgogPHN0eWxlPgotICAgIC50ZXN0
IHsgY29sb3I6IHJlZDsgfQotICAgIC50ZXN0IHsgY29sb3I6IGxjaCgwJSAwIDApfSAvKiBibGFj
ayAoc1JHQiAjMDAwMDAwKSBjb252ZXJ0ZWQgdG8gTENIICovCisgICAgLnRlc3QgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7
IGJhY2tncm91bmQtY29sb3I6IGxjaCgwJSAwIDApIH0gLyogYmxhY2sgKHNSR0IgIzAwMDAwMCkg
Y29udmVydGVkIHRvIExhYiAqLwogPC9zdHlsZT4KIDxib2R5PgotICAgIDxwIGNsYXNzPSJ0ZXN0
Ij5UZXN0IHBhc3NlcyBpZiB0aGlzIHRleHQgaXMgYmxhY2s8L3A+CisgICAgPHA+VGVzdCBwYXNz
ZXMgaWYgeW91IHNlZSBhIGJsYWNrIHNxdWFyZSwgYW5kIG5vIHJlZC48L3A+CisgICAgPHAgY2xh
c3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDAzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysr
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sY2gtMDAzLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSwxMSBAQAog
PCFET0NUWVBFIGh0bWw+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2hpdGUgdGV4
dCByZWZlcmVuY2U8L3RpdGxlPgorPHRpdGxlPldoaXRlIGJsb2NrIHJlZmVyZW5jZTwvdGl0bGU+
CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogI0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjog
IzMzMzsgcGFkZGluZzogM3B4fQorICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9
CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMTJlbTsgaGVp
Z2h0OiAxMmVtO30KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cCBjbGFzcz0idGVzdCI+VGVzdCBw
YXNzZXMgaWYgdGhpcyB0ZXh0IGlzIHdoaXRlPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgYSB3aGl0ZSBzcXVhcmUsIGFuZCBubyByZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0
Ij4gPC9wPgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNo
LTAwMy5odG1sCShyZXZpc2lvbiAyNzEzNDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwMy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC02LDkgKzYsMTEgQEAKIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9IndoaXRldGV4dC1y
ZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxw
aGEiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgYmFja2dyb3VuZC1jb2xvcjog
IzMzMzsgcGFkZGluZzogM3B4O30KLSAgICAudGVzdCB7IGNvbG9yOiBsY2goMTAwJSAwIDApO30g
Lyogd2hpdGUgKHNSR0IgI0ZGRkZGRikgY29udmVydGVkIHRvIExDSCAqLworICAgIGJvZHkgeyBi
YWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9CisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDEyZW07IH0KKyAgICAudGVzdCB7IGJhY2tncm91bmQt
Y29sb3I6IGxjaCgxMDAlIDAgMCk7fSAvKiB3aGl0ZSAoc1JHQiAjRkZGRkZGKSBjb252ZXJ0ZWQg
dG8gTGFiICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHAgY2xhc3M9InRlc3QiPlRlc3QgcGFz
c2VzIGlmIHRoaXMgdGV4dCBpcyB3aGl0ZTwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ug
c2VlIGEgd2hpdGUgc3F1YXJlLCBhbmQgbm8gcmVkLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+
IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bG9yL2xjaC0wMDQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQt
ZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8
L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoNzUuNjIlIDMwLjQ1JSA0
Ny41NiUpfSAvKiBsYWIoNTAgNTAgMCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7
IGJhY2tncm91bmQtY29sb3I6cmdiKDc1LjYyJSAzMC40NSUgNDcuNTYlKTsgd2lkdGg6IDEyZW07
IGhlaWdodDogMTJlbTt9IC8qIGxjaCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVu
cyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLwogPC9zdHlsZT4KIDxib2R5PgotICAg
IDxwPlRlc3QgcGFzc2VzIGlmIHRoZSB0d28gbGluZXMgb2YgZmlsbGVyIHRleHQgYXJlIHRoZSBz
YW1lIGNvbG9yLjwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAgICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0
LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5
b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5kIG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJl
bnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xv
ci9sY2gtMDA0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDQuaHRtbAkocmV2aXNpb24gMjcx
MzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxNSArMywxNSBAQAog
PHRpdGxlPkNTUyBDb2xvciA0OiBTcGVjaWZ5aW5nIExhYiBhbmQgTENIPC90aXRsZT4KIDxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iQ2hyaXMgTGlsbGV5IiBocmVmPSJtYWlsdG86Y2hyaXNAdzMu
b3JnIj4KIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy1jb2xvci00LyNzcGVjaWZ5aW5nLWxhYi1sY2giPgotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0i
bGFiLTAwNC1yZWYuaHRtbCI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJsY2gtMDA0LXJlZi5o
dG1sIj4KIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0ibGNoKCkgd2l0aCBubyBhbHBoYSwg
cG9zaXRpdmUgYSBheGlzIj4KIDxzdHlsZT4KLSAgICAudGVzdCB7IGNvbG9yOiByZWQ7IH0KLSAg
ICAudGVzdCB7IGNvbG9yOiBsY2goNTAlIDUwIDApfQotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2Io
NzUuNjIlLCAzMC40NSUsIDQ3LjU2JSl9IC8qIGxjaCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JH
QiAoaGFwcGVucyB0byBiZSB0aGUgc2FtZSBhcyBsYWIoNTAgNTAgMCkqLworICAgIC50ZXN0IHsg
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi10
b3A6MH0KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc1LjYyJSwgMzAuNDUlLCA0
Ny41NiUpOyB3aWR0aDogMTJlbTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxj
aCg1MCA1MCAwKSBjb252ZXJ0ZWQgdG8gc1JHQiAoaGFwcGVucyB0byBiZSB0aGUgc2FtZSBhcyBs
YWIoNTAgNTAgMCkqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDUwJSA1MCAw
KX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5l
cyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0
ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAg
Y2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+
CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3Qg
dHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJl
ZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gt
MDA1LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUtZXhwZWN0ZWQuaHRtbAko
cmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENv
bG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRj
aCB7IGNvbG9yOiByZ2IoMTAuNzklLCA3NS41NSUsIDY2LjQwJSl9IC8qIGxhYig3MCAtNDUgMCkg
Y29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJnYigx
MC43OSUsIDc1LjU1JSwgNjYuNDAlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxj
aCg3MCA0NSAxODApIGNvbnZlcnRlZCB0byBzUkdCICovCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAg
PHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNh
bWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQuIEZpbGxlciB0
ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgotICAgIDxwIGNsYXNzPSJtYXRjaCI+RmlsbGVyIHRleHQu
IEZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gPC9wPgorICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgYSBzaW5nbGUgc3F1YXJlLCBhbmQgbm90IHR3byByZWN0YW5nbGVzIG9mIGRpZmZlcmVu
dCBjb2xvcnMuPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L2xjaC0wMDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNS5odG1sCShyZXZpc2lvbiAyNzEz
NDkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29sb3IvbGNoLTAwNS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE1ICszLDE1IEBACiA8
dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJDaHJpcyBMaWxsZXkiIGhyZWY9Im1haWx0bzpjaHJpc0B3My5v
cmciPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LWNvbG9yLTQvI3NwZWNpZnlpbmctbGFiLWxjaCI+Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJs
YWItMDA1LXJlZi5odG1sIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxjaC0wMDUtcmVmLmh0
bWwiPgogPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJsY2goKSB3aXRoIG5vIGFscGhhLCBu
ZWdhdGl2ZSBhIGF4aXMiPgogPHN0eWxlPgotICAgIC50ZXN0IHsgY29sb3I6IHJlZDsgfQotICAg
IC50ZXN0IHsgY29sb3I6IGxjaCg3MCUgNDUgLTE4MCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJn
YigxMC43OSUsIDc1LjU1JSwgNjYuNDAlKX0gLyogbGNoKDcwIDQ1IDE4MCkgY29udmVydGVkIHRv
IHNSR0IgKi8KKyAgICAudGVzdCB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEyZW07
IGhlaWdodDogNmVtOyBtYXJnaW4tdG9wOjB9CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6
IHJnYigxMC43OSUsIDc1LjU1JSwgNjYuNDAlKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBt
YXJnaW4tYm90dG9tOiAwfSAvKiBsY2goNzAgNDUgMTgwKSBjb252ZXJ0ZWQgdG8gc1JHQiAqLwor
ICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDcwJSA0NSAtMTgwKX0gCiA8L3N0eWxl
PgogPGJvZHk+Ci0gICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIg
dGV4dCBhcmUgdGhlIHNhbWUgY29sb3IuPC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIg
dGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNo
Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVz
dCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3Rhbmds
ZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAg
ICA8cCBjbGFzcz0idGVzdCI+IDwvcD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2LWV4cGVjdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDYtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcx
MzQ5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbG9yL2xjaC0wMDYtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCAr
Miw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNp
ZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxlPgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiBy
Z2IoNzYuNjIlLCA2Ni4zNiUsIDUuNTglKX0gLyogbGFiKDcwIDAgNzApIGNvbnZlcnRlZCB0byBz
UkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYuNjIlLCA2Ni4zNiUs
IDUuNTglKTsgd2lkdGg6IDEyZW07IGhlaWdodDogMTJlbTt9IC8qIGxjaCg3MCA3MCA5MCkgY29u
dmVydGVkIHRvIHNSR0IgKi8KIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBp
ZiB0aGUgdHdvIGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0g
ICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0
LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZp
bGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBz
cXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+Cisg
ICAgPHAgY2xhc3M9InRlc3QiPiA8L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb2xvci9sY2gtMDA2Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA2
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTUgKzMsMTUgQEAKIDx0aXRsZT5DU1MgQ29sb3Ig
NDogU3BlY2lmeWluZyBMYWIgYW5kIExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkNocmlzIExpbGxleSIgaHJlZj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lm
eWluZy1sYWItbGNoIj4KLTxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDYtcmVmLmh0bWwi
PgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0ibGNoLTAwNi1yZWYuaHRtbCI+CiA8bWV0YSBuYW1l
PSJhc3NlcnQiIGNvbnRlbnQ9ImxjaCgpIHdpdGggbm8gYWxwaGEsIHBvc2l0aXZlIGIgYXhpcyI+
CiA8c3R5bGU+Ci0gICAgLnRlc3QgeyBjb2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjog
bGNoKDcwJSA3MCA5MCl9Ci0gICAgLm1hdGNoIHsgY29sb3I6IHJnYig3Ni42MiUsIDY2LjM2JSwg
NS41OCUpfSAvKiBsY2goNzAgNzAgOTApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3Qg
eyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2lu
LXRvcDowfQorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYuNjIlLCA2Ni4zNiUs
IDUuNTglKTsgd2lkdGg6IDEyZW07IGhlaWdodDogNmVtOyBtYXJnaW4tYm90dG9tOiAwfSAvKiBs
Y2goNzAgNzAgOTApIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5k
LWNvbG9yOiBsY2goNzAlIDcwIDkwKX0gCiA8L3N0eWxlPgogPGJvZHk+Ci0gICAgPHA+VGVzdCBw
YXNzZXMgaWYgdGhlIHR3byBsaW5lcyBvZiBmaWxsZXIgdGV4dCBhcmUgdGhlIHNhbWUgY29sb3Iu
PC9wPgotICAgIDxwIGNsYXNzPSJ0ZXN0Ij5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxl
ciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRl
eHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNp
bmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJlY3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48
L3A+CisgICAgPHAgY2xhc3M9InJlZiI+IDwvcD4KKyAgICA8cCBjbGFzcz0idGVzdCI+IDwvcD4K
IDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xj
aC0wMDctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMjcxMzQ5KQorKysgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2xjaC0wMDctZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiw5IEBACiA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CiA8dGl0bGU+Q1NTIENvbG9yIDQ6IFNwZWNpZnlpbmcgTGFiIGFuZCBMQ0g8L3RpdGxl
PgogPHN0eWxlPgotICAgIC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2
JSl9IC8qIGxhYig1NSAwIC02MCkgY29udmVydGVkIHRvIHNSR0IgKi8KKyAgICAudGVzdCB7IGJh
Y2tncm91bmQtY29sb3I6IHJnYigyNy4zOCUgNTEuOTIlIDkxLjI1JSk7IHdpZHRoOiAxMmVtOyBo
ZWlnaHQ6IDEyZW07fSAvKiBsY2goNTUlIDU4IDI3NSkgY29udmVydGVkIHRvIHNSR0IgKi8KIDwv
c3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdvIGxpbmVzIG9mIGZp
bGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xhc3M9Im1hdGNoIj5G
aWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+Ci0gICAgPHAgY2xhc3M9
Im1hdGNoIj5GaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIEZpbGxlciB0ZXh0LiA8L3A+CisgICAg
PHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSBzcXVhcmUsIGFuZCBub3QgdHdvIHJl
Y3RhbmdsZXMgb2YgZGlmZmVyZW50IGNvbG9ycy48L3A+CisgICAgPHAgY2xhc3M9InRlc3QiPiA8
L3A+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29sb3IvbGNoLTAwNy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3
Lmh0bWwJKHJldmlzaW9uIDI3MTM0OSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9sY2gtMDA3Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsMTUgKzMsMTUgQEAKIDx0aXRsZT5DU1MgQ29sb3IgNDogU3BlY2lmeWluZyBMYWIgYW5k
IExDSDwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkNocmlzIExpbGxleSIgaHJl
Zj0ibWFpbHRvOmNocmlzQHczLm9yZyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3ItNC8jc3BlY2lmeWluZy1sYWItbGNoIj4KLTxsaW5r
IHJlbD0ibWF0Y2giIGhyZWY9ImxhYi0wMDctcmVmLmh0bWwiPgorPGxpbmsgcmVsPSJtYXRjaCIg
aHJlZj0ibGNoLTAwNy1yZWYuaHRtbCI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Imxh
YigpIHdpdGggbm8gYWxwaGEsIG5lZ2F0aXZlIGIgYXhpcyI+CiA8c3R5bGU+Ci0gICAgLnRlc3Qg
eyBjb2xvcjogcmVkOyB9Ci0gICAgLnRlc3QgeyBjb2xvcjogbGNoKDU2JSA1OCAyNzUpfQotICAg
IC5tYXRjaCB7IGNvbG9yOiByZ2IoMTIuODElLCA1My4xMCUsIDkyLjc2JSl9IC8qIGxjaCg1NiA1
OCAyNzUpIGNvbnZlcnRlZCB0byBzUkdCICovCisgICAgLnRlc3QgeyBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7IHdpZHRoOiAxMmVtOyBoZWlnaHQ6IDZlbTsgbWFyZ2luLXRvcDowfQorICAgIC5yZWYg
eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjcuMzglIDUxLjkyJSA5MS4yNSUpOyB3aWR0aDogMTJl
bTsgaGVpZ2h0OiA2ZW07IG1hcmdpbi1ib3R0b206IDB9IC8qIGxjaCg1NSUgNTggMjc1KSBjb252
ZXJ0ZWQgdG8gc1JHQiAqLworICAgIC50ZXN0IHsgYmFja2dyb3VuZC1jb2xvcjogbGNoKDU1JSA1
OCAyNzUpfSAKIDwvc3R5bGU+CiA8Ym9keT4KLSAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGUgdHdv
IGxpbmVzIG9mIGZpbGxlciB0ZXh0IGFyZSB0aGUgc2FtZSBjb2xvci48L3A+Ci0gICAgPHAgY2xh
c3M9InRlc3QiPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQuIDwvcD4KLSAg
ICA8cCBjbGFzcz0ibWF0Y2giPkZpbGxlciB0ZXh0LiBGaWxsZXIgdGV4dC4gRmlsbGVyIHRleHQu
IDwvcD4KKyAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIHNxdWFyZSwgYW5k
IG5vdCB0d28gcmVjdGFuZ2xlcyBvZiBkaWZmZXJlbnQgY29sb3JzLjwvcD4KKyAgICA8cCBjbGFz
cz0icmVmIj4gPC9wPgorICAgIDxwIGNsYXNzPSJ0ZXN0Ij4gPC9wPgogPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>