<?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>56627</bug_id>
          
          <creation_ts>2011-03-17 22:55:34 -0700</creation_ts>
          <short_desc>implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values</short_desc>
          <delta_ts>2012-01-24 22:12:48 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.grantgalitz.org/gameboy/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>58495</dependson>
    
    <dependson>61173</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="Mike Lawther">mikelawther</assigned_to>
          <cc>adamk</cc>
    
    <cc>cmsdew</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>eyereight</cc>
    
    <cc>grantgalitz</cc>
    
    <cc>macpherson</cc>
    
    <cc>mikelawther</cc>
    
    <cc>ojan</cc>
    
    <cc>peter</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>369511</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-17 22:55:34 -0700</bug_when>
    <thetext>http://dev.w3.org/csswg/css3-images/#image-rendering defines the image-rendering property and a new value &apos;optimize-contrast&apos; to use for image like data where a nearest-neighbor style scaling is desirable.  This is similar to the -moz-crisp-edges value that firefox exposes (https://developer.mozilla.org/en/css/image-rendering).  Implementing this would be a big performance and quality improvements for pages like the GameBoy emulator in the URL field - that page scales the &lt;canvas&gt; element in CSS. Currently we waste a lot of CPU doing a bilinear filter for the upscale and as a result the pixels look blurry.

There was a bit of controversy in the working group about the name for the optimize-contrast value, so I think we should vendor-prefix the optimize-contrast value for now.  The image-rendering property already exists for SVG content and so we don&apos;t need to prefix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369512</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-17 22:56:39 -0700</bug_when>
    <thetext>FYI I think the actual rendering changes here are trivial but I&apos;m hoping someone else can take a look at the css parsing/property list stuff since SVGCSSPropertyNames.in scares me.  I also suspect there are some other bugs on file about this (40881 looks related) but couldn&apos;t find them all through searches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369525</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-17 23:33:40 -0700</bug_when>
    <thetext>I think you just need to # comment out the line in SVGCSSPropertyNames.in, add it to CSSPropertyNames.in and then add the appropriate case statement to CSSParser::parseValue (look at http://codesearch.google.com/codesearch?q=textRendering+file%3AWebKit.*cpp%24&amp;exact_package=chromium&amp;hl=en&amp;vert=chromium for an example of all the places that need updating for the new property name).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369527</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-17 23:37:39 -0700</bug_when>
    <thetext>James, what are the rendering changes needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369531</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-17 23:58:20 -0700</bug_when>
    <thetext>When the value is set, we want to specify the proper resampling mode in the various platform-specific Image files so that a nearest neighbor scale is done instead of bilinear or better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383845</commentid>
    <comment_count>5</comment_count>
      <attachid>89165</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-04-11 23:56:30 -0700</bug_when>
    <thetext>Created attachment 89165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383847</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-11 23:59:47 -0700</bug_when>
    <thetext>Attachment 89165 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/css3...&quot; exit_code: 1

Source/WebCore/rendering/style/RenderStyle.cpp:553:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383850</commentid>
    <comment_count>7</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-04-12 00:03:47 -0700</bug_when>
    <thetext>Here is a first cut at this patch. Would like some feedback on the rendering side of things: 
 - I&apos;m a bit hesitant to rely on the &apos;lowQualityScaling&apos; param to drawImage - it does what I want, but it doesn&apos;t feel like what I mean. I can replace this bool with the InterpolationQuality enum, using &apos;InterpolationDefault&apos; to mean &apos;don&apos;t change the currently set interpolation&apos;, the same as useLowQualityScale=false does now (I&apos;d do this as a separate pre-cleanup patch if so).
 - Have I hooked into the right place with the ImageQualityController::shouldPaintAtLowQuality function?

btw - the style failing is because most of RenderStyle.cpp has the boolean operator on the right, so I left it like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384492</commentid>
    <comment_count>8</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-04-12 16:30:59 -0700</bug_when>
    <thetext>Updated my CSS file: https://github.com/grantgalitz/GameBoy-Online/commit/e14b2c590a627f12bdff971321c84b4a7ddb680d</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384511</commentid>
    <comment_count>9</comment_count>
      <attachid>89165</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-04-12 16:54:53 -0700</bug_when>
    <thetext>Comment on attachment 89165
Patch

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

License header is wrong (sent you an email with directions for what the right header for Googlers is), but otherwise I think this looks good.

As for useLowQualityScale, I think a better option would be to have an enum with the default value being &quot;auto&quot; to indicate that the paint() implementation is supposed to figure out the scaling algorithm to use and all non-default values will explicitly specify a scale (either nearestneighbor/bilinear/awesome or some other axis).

&gt; LayoutTests/css3/images/optimize-contrast-canvas.html:23
&gt; +&lt;script&gt; 
&gt; +	var canvas;

layoutTestController.dumpAsText(true); please - that way it&apos;ll generate a .png but no render tree.  That should help make the expectations more cross-platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384624</commentid>
    <comment_count>10</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-04-12 19:18:27 -0700</bug_when>
    <thetext>Scaling with bilinear in chrome in fullscreen is slow with approx. maximum fps at around 20. When implementing a nearest-neighbor scaling algorithm purely in JavaScript, I can get the same fps rate, so something is seriously wrong here with this picture. This gives more reason to optimize-contrast thankfully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385367</commentid>
    <comment_count>11</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-04-13 17:00:45 -0700</bug_when>
    <thetext>@jamesr - thanks for the header and dumpAsText(true) comments - I&apos;ve addressed those.

I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=58495 to track the useLowQualityScale-&gt;enum change, as it&apos;s orthogonal to this one (smaller patches and all :) ). Once that goes in, I&apos;ll reupload this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385368</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-04-13 17:02:18 -0700</bug_when>
    <thetext>Sounds like a plan!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395007</commentid>
    <comment_count>13</comment_count>
      <attachid>91614</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-04-28 18:44:41 -0700</bug_when>
    <thetext>Created attachment 91614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395012</commentid>
    <comment_count>14</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-04-28 18:51:12 -0700</bug_when>
    <thetext>I&apos;ve addressed James&apos; comments from above in this patch.

Although https://bugs.webkit.org/show_bug.cgi?id=58495 (changing useLowQuality bool -&gt; enum) hasn&apos;t been closed yet, this one is still landable as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395016</commentid>
    <comment_count>15</comment_count>
      <attachid>91614</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-04-28 18:56:34 -0700</bug_when>
    <thetext>Comment on attachment 91614
Patch

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

What platform did you generate the image results on? Did you check Mac with CG?

&gt; Source/WebCore/rendering/style/RenderStyle.h:214
&gt;          // 45 bits

No longer 45, right?

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:429
&gt; +enum EImageRendering { IR_AUTO, IR_OPTIMIZESPEED, IR_OPTIMIZEQUALITY, IR_OPTIMIZECONTRAST };

UGLIEST enum values ever. Can you prettify them? No need for all caps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395129</commentid>
    <comment_count>16</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-04-28 23:06:00 -0700</bug_when>
    <thetext>Hey Simon - thanks for the review!

(In reply to comment #15)
&gt; What platform did you generate the image results on? Did you check Mac with CG?

Yes - the results were generated on Snow Leopard using Safari.

&gt; &gt; Source/WebCore/rendering/style/RenderStyle.h:214
&gt; &gt;          // 45 bits
&gt; 
&gt; No longer 45, right?

Yes - nice catch!

&gt; &gt; Source/WebCore/rendering/style/RenderStyleConstants.h:429
&gt; &gt; +enum EImageRendering { IR_AUTO, IR_OPTIMIZESPEED, IR_OPTIMIZEQUALITY, IR_OPTIMIZECONTRAST };
&gt; 
&gt; UGLIEST enum values ever. Can you prettify them? No need for all caps.

(It was originally like that from the SVG code). I&apos;ve CamelCased them, but I found an existing typo that I&apos;m cleaning up first in https://bugs.webkit.org/show_bug.cgi?id=59779.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401691</commentid>
    <comment_count>17</comment_count>
      <attachid>93059</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-10 18:37:00 -0700</bug_when>
    <thetext>Created attachment 93059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402504</commentid>
    <comment_count>18</comment_count>
      <attachid>93059</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-11 18:04:34 -0700</bug_when>
    <thetext>Comment on attachment 93059
Patch

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

r=me but please moves the bits to StyleRareInheritedData

&gt; Source/WebCore/rendering/style/RenderStyle.h:212
&gt; +        unsigned m_imageRendering : 2; // EImageRendering */

I think this should move to StyleRareInheritedData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405493</commentid>
    <comment_count>19</comment_count>
      <attachid>93865</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-17 21:03:38 -0700</bug_when>
    <thetext>Created attachment 93865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405497</commentid>
    <comment_count>20</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-17 21:11:17 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 93059 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93059&amp;action=review
&gt; 
&gt; r=me but please moves the bits to StyleRareInheritedData

Thanks for the review. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405500</commentid>
    <comment_count>21</comment_count>
      <attachid>93865</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-17 21:28:51 -0700</bug_when>
    <thetext>Comment on attachment 93865
Patch

r+ based on Simon&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405534</commentid>
    <comment_count>22</comment_count>
      <attachid>93874</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-17 23:47:59 -0700</bug_when>
    <thetext>Created attachment 93874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405535</commentid>
    <comment_count>23</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-17 23:50:36 -0700</bug_when>
    <thetext>Previous patch failed to land because of a failing SVG CSS test. A simple rebaseline was all that was needed. &quot;run-webkit-tests LayoutTests/css* LayoutTests/fast/css* LayoutTests/svg/css/&quot; now all passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405536</commentid>
    <comment_count>24</comment_count>
      <attachid>93874</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 23:58:29 -0700</bug_when>
    <thetext>Comment on attachment 93874
Patch

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

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:102
&gt; +    CSSPropertyImageRendering,

I don&apos;t understand the move here?

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:2952
&gt; +    case ImageRenderingAuto:

Thank you for fixing the bad enum naming.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:4653
&gt; +    case CSSPropertyImageRendering:
&gt; +        if (!primitiveValue)
&gt; +            return;
&gt; +        m_style-&gt;setImageRendering(*primitiveValue);
&gt; +        return;

We should ask Luke if this is the modern way.

&gt; Source/WebCore/css/CSSValueKeywords.in:809
&gt; +optimizeQuality

Are we intentionally adding this unprefixed?

&gt; Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp:-107
&gt; -        case CSSPropertyImageRendering:
&gt; -            return CSSPrimitiveValue::create(svgStyle-&gt;imageRendering());

So we&apos;re moving this from being SVG-only to core css?

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:265
&gt; +void HTMLCanvasElement::paint(GraphicsContext* context, const IntRect&amp; r, bool useLowQualityScale)

Much better to use enums instead of bools.

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:142
&gt; +    if (object-&gt;style()-&gt;imageRendering() == WebCore::ImageRenderingOptimizeContrast)

This shouldn&apos;t need WebCore::

&gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:61
&gt; +    bool useLowQualityScale = style()-&gt;imageRendering() == WebCore::ImageRenderingOptimizeContrast;

Or here. Again, an enum would be better than a bool.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:564
&gt; +        || rareInheritedData-&gt;m_imageRendering != other-&gt;rareInheritedData-&gt;m_imageRendering)

Thank you for following modern style.

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:429
&gt; +enum EImageRendering { ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingOptimizeContrast };

We don&apos;t really have any style documentation for enum naming yet.  Which is horrible.  Thank you for picking something reasonable.  I&apos;m not sure we need the leading &quot;E&quot; (I haven&apos;t seen that added in any recent enums), but if you like it that way or you feel it fits better with the files in question, that&apos;s fine.

Ah, now I see you&apos;re just moving this.

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:89
&gt; +    unsigned m_imageRendering : 2; // EImageRendering */

Unfortunately we have to do this for Visual Studio. :)  Bitfields and enums don&apos;t get along with MSVC.   (enums are signed in MSVC).

&gt; Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:-324
&gt; -    writeIfNotDefault(ts, &quot;image rendering&quot;, svgStyle-&gt;imageRendering(), SVGRenderStyle::initialImageRendering());

Won&apos;t this affect a bunch of W3C svg results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405684</commentid>
    <comment_count>25</comment_count>
      <attachid>93907</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-18 06:51:47 -0700</bug_when>
    <thetext>Created attachment 93907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405685</commentid>
    <comment_count>26</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-18 06:53:18 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; &gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:102
&gt; &gt; +    CSSPropertyImageRendering,
&gt; 
&gt; I don&apos;t understand the move here?

It was moved out of an ifdef&apos;d ENABLE_SVG section.

&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:4653
&gt; &gt; +    case CSSPropertyImageRendering:
&gt; &gt; +        if (!primitiveValue)
&gt; &gt; +            return;
&gt; &gt; +        m_style-&gt;setImageRendering(*primitiveValue);
&gt; &gt; +        return;
&gt; 
&gt; We should ask Luke if this is the modern way.

OK

&gt; &gt; Source/WebCore/css/CSSValueKeywords.in:809
&gt; &gt; +optimizeQuality
&gt; 
&gt; Are we intentionally adding this unprefixed?

Yes, so as not to break any existing SVG out there.

&gt; &gt; Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp:-107
&gt; &gt; -        case CSSPropertyImageRendering:
&gt; &gt; -            return CSSPrimitiveValue::create(svgStyle-&gt;imageRendering());
&gt; 
&gt; So we&apos;re moving this from being SVG-only to core css?

Yep.

&gt; &gt; Source/WebCore/html/HTMLCanvasElement.cpp:265
&gt; &gt; +void HTMLCanvasElement::paint(GraphicsContext* context, const IntRect&amp; r, bool useLowQualityScale)
&gt; 
&gt; Much better to use enums instead of bools.

Agreed. https://bugs.webkit.org/show_bug.cgi?id=58495 has already been filed to track this.

&gt; &gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:142
&gt; &gt; +    if (object-&gt;style()-&gt;imageRendering() == WebCore::ImageRenderingOptimizeContrast)
&gt; 
&gt; This shouldn&apos;t need WebCore::

Thanks - fixed.

&gt; &gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:61
&gt; &gt; +    bool useLowQualityScale = style()-&gt;imageRendering() == WebCore::ImageRenderingOptimizeContrast;
&gt; 
&gt; Or here. Again, an enum would be better than a bool.

Fixed (the WebCore:: removing, not the bool :) ).

&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:564
&gt; &gt; +        || rareInheritedData-&gt;m_imageRendering != other-&gt;rareInheritedData-&gt;m_imageRendering)
&gt; 
&gt; Thank you for following modern style.

Modern style is with the m_ prefix right?

&gt; &gt; Source/WebCore/rendering/style/RenderStyleConstants.h:429
&gt; &gt; +enum EImageRendering { ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingOptimizeContrast };
&gt; 
&gt; We don&apos;t really have any style documentation for enum naming yet.  Which is horrible.  Thank you for picking something reasonable.  I&apos;m not sure we need the leading &quot;E&quot; (I haven&apos;t seen that added in any recent enums), but if you like it that way or you feel it fits better with the files in question, that&apos;s fine.
&gt; 
&gt; Ah, now I see you&apos;re just moving this.

Yes, I kept the old &apos;E&apos; prefix. Half of the enums in that file have the &apos;E&apos; prefix, half don&apos;t :(

&gt; &gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:89
&gt; &gt; +    unsigned m_imageRendering : 2; // EImageRendering */
&gt; 
&gt; Unfortunately we have to do this for Visual Studio. :)  Bitfields and enums don&apos;t get along with MSVC.   (enums are signed in MSVC).

You mean &quot;we have to have the &apos;&apos;unsigned&apos;&quot;? 

&gt; &gt; Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:-324
&gt; &gt; -    writeIfNotDefault(ts, &quot;image rendering&quot;, svgStyle-&gt;imageRendering(), SVGRenderStyle::initialImageRendering());
&gt; 
&gt; Won&apos;t this affect a bunch of W3C svg results?

Good point - I&apos;ve changed it to pull the value out of RenderStyle instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406820</commentid>
    <comment_count>27</comment_count>
      <attachid>93907</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 19:01:18 -0700</bug_when>
    <thetext>Comment on attachment 93907
Patch

Clearing flags on attachment: 93907

Committed r86920: &lt;http://trac.webkit.org/changeset/86920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406821</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 19:01:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408401</commentid>
    <comment_count>29</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-23 15:39:26 -0700</bug_when>
    <thetext>Reopening due to rollout in https://bugs.webkit.org/show_bug.cgi?id=61173 (broke Chromium valgrind builder with enable_svg=0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408404</commentid>
    <comment_count>30</comment_count>
      <attachid>94506</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-23 15:41:41 -0700</bug_when>
    <thetext>Created attachment 94506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408408</commentid>
    <comment_count>31</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-05-23 15:46:57 -0700</bug_when>
    <thetext>Why was scaling still slow when the last patch was applied and nearest-neighbor was seen being applied as the rendering algorithm? It felt only marginally better than the normal scaling algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408409</commentid>
    <comment_count>32</comment_count>
      <attachid>94506</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-23 15:47:19 -0700</bug_when>
    <thetext>Comment on attachment 94506
Patch

Assuming your&apos;e just fixing the no-svg build, OK.  Chromium should have a no-svg builder on build.webkit.org if they expect the no-SVG build to work.  We&apos;ve strongly considered disabling that option entirely (making SVG always on).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408443</commentid>
    <comment_count>33</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-23 16:09:51 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Why was scaling still slow when the last patch was applied and nearest-neighbor was seen being applied as the rendering algorithm? It felt only marginally better than the normal scaling algorithm.

Did you measure it exactly, or can you construct a test page where we can measure the scale time exactly?  I would expect this to speed up the scaling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408476</commentid>
    <comment_count>34</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2011-05-23 16:56:31 -0700</bug_when>
    <thetext>What browser/platform are you testing on, and are you testing image rendering, or canvas rendering?
I&apos;d also expect it to be faster, but there might be something gnarly happening on the canvas path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408583</commentid>
    <comment_count>35</comment_count>
      <attachid>94506</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-23 19:25:55 -0700</bug_when>
    <thetext>Comment on attachment 94506
Patch

Clearing flags on attachment: 94506

Committed r87121: &lt;http://trac.webkit.org/changeset/87121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408584</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-23 19:26:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408619</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-23 21:08:51 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 94506:

http/tests/misc/favicon-loads-with-icon-loading-override.html bug 58412 (author: alice.liu@apple.com)
http/tests/misc/uncacheable-script-repeated.html bug 51009 (author: koivisto@iki.fi)
http/tests/media/media-can-load-when-hidden.html bug 61341 (author: hausmann@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408901</commentid>
    <comment_count>38</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-05-24 09:04:42 -0700</bug_when>
    <thetext>The tests added in this patch seem to fail on the Chromium canary Windows and Linux bots:

http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Win/builds/4776/steps/webkit_tests/logs/stdio
http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux/builds/8068/steps/webkit_tests/logs/stdio

Please take a look and consider rolling out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408914</commentid>
    <comment_count>39</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-05-24 09:21:14 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; The tests added in this patch seem to fail on the Chromium canary Windows and Linux bots:
&gt; 
&gt; http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Win/builds/4776/steps/webkit_tests/logs/stdio
&gt; http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux/builds/8068/steps/webkit_tests/logs/stdio
&gt; 
&gt; Please take a look and consider rolling out.

This is tracked in https://bugs.webkit.org/show_bug.cgi?id=61169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409358</commentid>
    <comment_count>40</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-05-24 19:14:47 -0700</bug_when>
    <thetext>Jamesr: Something is holding up the entire JS thread when scaling is done. I&apos;m not even seeing full CPU usage when it slows down, it just seems like webkit is delaying the system timers by doing something weird. For a 160x144 canvas being scaled via nearest-neighbor, it shouldn&apos;t slow down to 10 fps when it&apos;s scaled up to 400x300 by the fast nearest-neighbor algorithm. Something seriously &quot;gnarly&quot; is going on for sure.
WebKit Nightly for Mac OS X (On Snow Leopard 10.6.7)
Version 5.0.5 (6533.21.1, r87175)

URL listed for this bug still is slow on scaling up the canvas (I can see nearest-neighbor is being applied too now). There definitely seems to be something hanging up the timing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409364</commentid>
    <comment_count>41</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-05-24 19:21:02 -0700</bug_when>
    <thetext>Test URL with a public domain that prestarts - http://www.grantgalitz.org/CrazyZone/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409383</commentid>
    <comment_count>42</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-05-24 19:43:21 -0700</bug_when>
    <thetext>Ok, made a testcase that putImageData&apos;s white noise to a canvas: http://www.grantgalitz.org/canvastestcase.html

Definitely eating up 2/3rds of one core on my mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409385</commentid>
    <comment_count>43</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-05-24 19:44:57 -0700</bug_when>
    <thetext>http://www.grantgalitz.org/canvastestcase.html definitely is not keeping up for sure and is way below the target fps of 1000/16.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409423</commentid>
    <comment_count>44</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-24 20:57:19 -0700</bug_when>
    <thetext>http://www.grantgalitz.org/canvastestcase.html uses less CPU with this change than without it. I don&apos;t see anything untoward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409424</commentid>
    <comment_count>45</comment_count>
    <who name="Grant Galitz">grantgalitz</who>
    <bug_when>2011-05-24 20:59:30 -0700</bug_when>
    <thetext>Load still seems a little high for a nn algorithm. Also my emulator slows down to half speed when you fullscreen the canvas. When it&apos;s 1:1 it&apos;s fullspeed. meh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476890</commentid>
    <comment_count>46</comment_count>
    <who name="Chris Dew">cmsdew</who>
    <bug_when>2011-10-03 04:27:06 -0700</bug_when>
    <thetext>How do I tell when &quot;image-rendering: -webkit-optimize-contrast;&quot; will land in Chrome and Safari.  

Has it landed in either yet? (It doesn&apos;t seem to work in either.)

Thanks,

Chris.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542006</commentid>
    <comment_count>47</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-24 22:12:48 -0800</bug_when>
    <thetext>*** Bug 40881 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89165</attachid>
            <date>2011-04-11 23:56:30 -0700</date>
            <delta_ts>2011-04-28 18:44:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56627-20110412165626.patch</filename>
            <type>text/plain</type>
            <size>42331</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMzMTgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NmY3YmQxOWQxN2VkODI3MjYwYzdm
ZTUwOWJhZmI1NGExNTJkZDEyLi5lMzBlZTU5ZmMyMzM5MDE5MWMzZWZkOWYyMjY2YzhjY2I2OTM5
YzhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMTEgIE1pa2UgTGF3dGhlciAgPG1p
a2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250
cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3
CisKKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA0LTA4ICBKaWFuIExpICA8
amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXhlZCBhIHR5cG8g
aW4gY2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbiBsaXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLWV4cGVj
dGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExOWU5OTQ5ZjQ0YzI4OGQyZmE0OTM5ZjQ0YThmNjk5
OTRlMWQ2YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRp
bWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorZGFh
MDgwOTAxYTE3ZDM4YzMwNWRmNDcyODI5NDg5ZTYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1j
YW52YXMtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29u
dHJhc3QtY2FudmFzLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2FiMWNjZGM0NGEzZDNmN2Mw
NWZhNGIxYWVmNzk3ZTZjZDkyZTM4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTI0NAp6Y21l
QVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VG
eGVPX1oKemkzUyExbUlqODJoVU97ODdSa20ycllVSkE9MCtBcW1MP1hLc2I8e1F3PWU9dGMkZXd5
OU5fOGZ0UG9JP3BPJUBFCnolRF87OypjeCZeVGk4K0xwSVAzQDNyWllPKj9nTlNDTWJERXVGaTEx
VilqPXNEVnlpRXs1SURLRGFNfUheMn1icAp6UWBAPzw8SEA2b1RLOFB2RUBjMVRBWG9Kdk1jPUQ2
JTJuZ3VZS14zWTs8X0t0PUp7K31gcyU+QnkzaEJfLWBEMXMKei1EbHR9eEA3WFRmI25KQkB0e1M1
bks/QzFTJHtlaGBXQTZJbnk3fX1lJmVVWT1HYXtQdi08Z3NEKm5ka3UqMjJBCnolUXV5O29wb3Yz
RWNUWWE0aURVQy1QR0ZmVWM4VmlRaSFSOz1LZXk+PDBUeVRBSyY9JnJyKi05dmZ8KVllcj8rJAp6
a3hEZlZybj18cWVSbCsoUmxWJWM+fHJ0R1loalN4b2FeMEZ1RkpBIz1BfDd3QStYbmYhbXswRy1t
T2tySUxHZkIKei0tTnckenRzNnt6R3J0eEBlc0c8VDY/ITB6NE5+SVQoeTZjXztBVXlCVzw9YTV+
ZzIlQiMzVThUS1U4RGtWdzNNCnp1bGt+cCFrYz0kQTdgeGw4fWBZb3NiR1N8c2clVHE7d1RVUT5w
cG91Y0Qxd0NzJENhZXxFTjRIQExeQFlhUWVMfgp6Y2krMy1WcD95JkMoOSRuR21GPEZLKXt0SGFt
SSFLaGMrODJMejdLS19SNmMtcSRnSiFtOHhYekU9aDlQPXZaeGIKeiQ5OCsqbERqdGxHP1dVYklC
KF5jXnZDZ14qN31xRlBiK18oakBmVns/RTkzcHZ1RXg0XnVZUykpMHNQXjxnUTtuCnpAd25KR3U0
ZHwkdmRRN0ApN0RnMD9WMHNQJUtsQ0diaS0jJnJ1fDJYSH5qdm44JGIyVGJqPT0tcW1NJkJ6dyZN
PQp6aldSVTlLUj43NStWK3YmZEErVUlpcjAyX259Xk13cDhodz48TStFJmRuUHsle3BsYX5fMlp4
UHZxekYyWCZTMVAKemJ2Oys/b1BKZEE8RD90anRHT1F+PFIwZ2tKR0Qqb1F0cmZHRHB3TntYNl5a
XkE4UXw3dkRkQWg9V0V+OyR1cE5pCnpJPXxOKyhuPkx6eU9TXmZTTzR3ZmY1ZX1CP3xNRjhnR29R
PCFISm8+YSlTJXMzb0p9c25wZUR6TnFxbXMrN0h8RQp6dktRQWB7OSVjKFN1TTZVJGFLRUs5IThu
Nl9BMHAtbmxtbT5ufDlWUnM5azZOPFh0YU1CP1gtY3hhfU1pYlkxbSYKenM8K3RZblcwSDklV2xs
UEVTbzJAKDktR3FrPnleZ2xZZyFNRDdmTThoTT1FNio5Nl9IXk9MJlBJUT5gdGZqeGcrCno0Xih0
X0dCN0FHYylCPS1SNH41MVpKMms2TEJ6I1RydHJWXjxSd29VYnN7KDFiOztiPHNKcEQlTnY4a3kr
eFAhfQp6ek9TaEtebmFOLXw5dHlyTik4UFNqNyUmWDB0eVpkMlVaPzl8OGpNbDNiSyRtRTZXTFNM
dGpDbEcqbiVJb2BTPTwKeitDNSR7SzJSU3ZNRnNadntfZ2w9NW9pQ0B7S2F+O2NfOHkpMjYhR1lT
RDN6SSZyRzwqNDJ9TFFFR057Zj83VSVXCnpmUUc2dkc4VDI3cDNSQlNgTlBHYnA9UXpaJUBFZ3Vi
O2socHUpcF9qJERnLXt5JHwyPkxGaV5ePG9kejNMQDV2SQp6R216UmVDWi1nKD49e1V3YSZiKVAr
SlIqTDN7SCotbDR9IUBea153S1hneU1jeVdBbGBPfkR+O09CPDQmNiU3bjQKeko3eXlwSTx0WGM9
MHp6YUpxd3RhTWpiTDVCQk48IUd9cGsocl9wamB2fTdIdlllczl8KGV9dF8zdklOaTI8dnxeCnpH
PiRmJk40cGNGOWp3dFY9ViZKIXNrMWFYRUhPR3pHZGdyTkkpKmtuaEJpOGVoRXkkI2p5I1chI2dF
UVRqTHo0TAp6JlJ+dHM9Xjx1Qk1gdC1sXm1NQk18QXxscjI5NjVRVDdaVnBAaWMrYU0kJXtfWHwk
MHYrRElDMEIja3piTWpKYCsKZ14oUW8xbGxGbW9oYnJHWG5gUUNaen4jRlBwMDBpXz56b3ByMElF
SXRpfnMtdAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDVmNzZlNGU1ODUxMzI4NzEyNjI1NjE4YjA5ODcwZGM4OTllNTFhMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0
LWNhbnZhcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDgKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCitsYXllciBhdCAoMCww
KSBzaXplIDEweDEwCisgIFJlbmRlckhUTUxDYW52YXMge0NBTlZBU30gYXQgKDAsMCkgc2l6ZSAx
MHgxMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJh
c3QtY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGQzMjE0NDBiMzhiYmEyNDFlNWQ4MTZlNjYyM2Yy
MDVhNGI4YjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0
aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0
bWw+IAorPHN0eWxlPiAKKwljYW52YXMgeworCQlkaXNwbGF5OiBibG9jazsKKwkJcG9zaXRpb246
IGZpeGVkOworCQlsZWZ0OiAwcHg7CisJCXRvcDogMHB4OworCQlyaWdodDogMHB4OworCQlib3R0
b206IDBweDsKKwkJYm9yZGVyOiBub25lOworCQl3aWR0aDogMTBweDsKKwkJaGVpZ2h0OiAxMHB4
OworCQltYXJnaW46IDBweDsKKwkJcGFkZGluZzogMHB4OworCQlpbWFnZS1yZW5kZXJpbmc6IC13
ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CisJfQorPC9zdHlsZT4gCis8Ym9keT4gCisgICAgPCEt
LSBUaGUgcmVzdWx0aW5nIGltYWdlIHNob3VsZCBiZSAxMHgxMCwgY29uc2lzdGluZyBvZiA0IDV4
NSBibG9ja3Mgb2Ygc29saWQgY29sb3IsIHdpdGggbm8gYmx1cnJpbmcgb2YgZWRnZXMgLS0+CisJ
PGNhbnZhcyB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4gCis8L2JvZHk+IAorPHNjcmlw
dD4gCisJdmFyIGNhbnZhczsKKwl2YXIgaW1hZ2VIYW5kbGU7CisJY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdLmdldENvbnRleHQoIjJkIik7CisJY2Fu
dmFzLndpZHRoID0gMjsKKwljYW52YXMuaGVpZ2h0ID0gMjsKKwlpbWFnZUhhbmRsZSA9IGNhbnZh
cy5jcmVhdGVJbWFnZURhdGEoMiwgMik7CisKKwl2YXIgaW5kZXggPSAwOworCXZhciBsZW5ndGgg
PSBpbWFnZUhhbmRsZS5kYXRhLmxlbmd0aDsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgr
K10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VI
YW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9
IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFu
ZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9
IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFu
ZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAw
OworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUu
ZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAw
OworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRh
dGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisK
KwljYW52YXMucHV0SW1hZ2VEYXRhKGltYWdlSGFuZGxlLCAwLCAwKTsKKzwvc2NyaXB0PiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdl
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29u
dHJhc3QtaW1hZ2UtZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE5ZTk5NDlmNDRjMjg4
ZDJmYTQ5MzlmNDRhOGY2OTk5NGUxZDZhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLmNoZWNrc3VtCkBA
IC0wLDAgKzEgQEAKK2RhYTA4MDkwMWExN2QzOGMzMDVkZjQ3MjgyOTQ4OWU2ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0
aW1pemUtY29udHJhc3QtaW1hZ2UtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFn
ZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3YWIx
Y2NkYzQ0YTNkM2Y3YzA1ZmE0YjFhZWY3OTdlNmNkOTJlMzgKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDExMjQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpu
a0I5Z0NDTTQ3JD1TdUZ4ZU9fWgp6aTNTITFtSWo4MmhVT3s4N1JrbTJyWVVKQT0wK0FxbUw/WEtz
Yjx7UXc9ZT10YyRld3k5Tl84ZnRQb0k/cE8lQEUKeiVEXzs7KmN4Jl5UaTgrTHBJUDNAM3JaWU8q
P2dOU0NNYkRFdUZpMTFWKWo9c0RWeWlFezVJREtEYU19SF4yfWJwCnpRYEA/PDxIQDZvVEs4UHZF
QGMxVEFYb0p2TWM9RDYlMm5ndVlLXjNZOzxfS3Q9SnsrfWBzJT5CeTNoQl8tYEQxcwp6LURsdH14
QDdYVGYjbkpCQHR7UzVuSz9DMVMke2VoYFdBNklueTd9fWUmZVVZPUdhe1B2LTxnc0QqbmRrdSoy
MkEKeiVRdXk7b3BvdjNFY1RZYTRpRFVDLVBHRmZVYzhWaVFpIVI7PUtleT48MFR5VEFLJj0mcnIq
LTl2ZnwpWWVyPyskCnpreERmVnJuPXxxZVJsKyhSbFYlYz58cnRHWWhqU3hvYV4wRnVGSkEjPUF8
N3dBK1huZiFtezBHLW1Pa3JJTEdmQgp6LS1OdyR6dHM2e3pHcnR4QGVzRzxUNj8hMHo0Tn5JVCh5
NmNfO0FVeUJXPD1hNX5nMiVCIzNVOFRLVThEa1Z3M00KenVsa35wIWtjPSRBN2B4bDh9YFlvc2JH
U3xzZyVUcTt3VFVRPnBwb3VjRDF3Q3MkQ2FlfEVONEhATF5AWWFRZUx+CnpjaSszLVZwP3kmQyg5
JG5HbUY8Rkspe3RIYW1JIUtoYys4Mkx6N0tLX1I2Yy1xJGdKIW04eFh6RT1oOVA9dlp4Ygp6JDk4
KypsRGp0bEc/V1ViSUIoXmNedkNnXio3fXFGUGIrXyhqQGZWez9FOTNwdnVFeDRedVlTKSkwc1Be
PGdRO24KekB3bkpHdTRkfCR2ZFE3QCk3RGcwP1Ywc1AlS2xDR2JpLSMmcnV8MlhIfmp2bjgkYjJU
Ymo9PS1xbU0mQnp3Jk09CnpqV1JVOUtSPjc1K1YrdiZkQStVSWlyMDJfbn1eTXdwOGh3PjxNK0Um
ZG5QeyV7cGxhfl8yWnhQdnF6RjJYJlMxUAp6YnY7Kz9vUEpkQTxEP3RqdEdPUX48UjBna0pHRCpv
UXRyZkdEcHdOe1g2XlpeQThRfDd2RGRBaD1XRX47JHVwTmkKekk9fE4rKG4+THp5T1NeZlNPNHdm
ZjVlfUI/fE1GOGdHb1E8IUhKbz5hKVMlczNvSn1zbnBlRHpOcXFtcys3SHxFCnp2S1FBYHs5JWMo
U3VNNlUkYUtFSzkhOG42X0EwcC1ubG1tPm58OVZSczlrNk48WHRhTUI/WC1jeGF9TWliWTFtJgp6
czwrdFluVzBIOSVXbGxQRVNvMkAoOS1HcWs+eV5nbFlnIU1EN2ZNOGhNPUU2Kjk2X0heT0wmUElR
PmB0Zmp4ZysKejReKHRfR0I3QUdjKUI9LVI0fjUxWkoyazZMQnojVHJ0clZePFJ3b1Vic3soMWI7
O2I8c0pwRCVOdjhreSt4UCF9Cnp6T1NoS15uYU4tfDl0eXJOKThQU2o3JSZYMHR5WmQyVVo/OXw4
ak1sM2JLJG1FNldMU0x0akNsRypuJUlvYFM9PAp6K0M1JHtLMlJTdk1Gc1p2e19nbD01b2lDQHtL
YX47Y184eSkyNiFHWVNEM3pJJnJHPCo0Mn1MUUVHTntmPzdVJVcKemZRRzZ2RzhUMjdwM1JCU2BO
UEdicD1RelolQEVndWI7ayhwdSlwX2okRGcte3kkfDI+TEZpXl48b2R6M0xANXZJCnpHbXpSZUNa
LWcoPj17VXdhJmIpUCtKUipMM3tIKi1sNH0hQF5rXndLWGd5TWN5V0FsYE9+RH47T0I8NCY2JTdu
NAp6Sjd5eXBJPHRYYz0wenphSnF3dGFNamJMNUJCTjwhR31wayhyX3BqYHZ9N0h2WWVzOXwoZX10
XzN2SU5pMjx2fF4Kekc+JGYmTjRwY0Y5and0Vj1WJkohc2sxYVhFSE9HekdkZ3JOSSkqa25oQmk4
ZWhFeSQjankjVyEjZ0VRVGpMejRMCnomUn50cz1ePHVCTWB0LWxebU1CTXxBfGxyMjk2NVFUN1pW
cEBpYythTSQle19YfCQwditESUMwQiNremJNakpgKwpnXihRbzFsbEZtb2hickdYbmBRQ1p6fiNG
UHAwMGlfPnpvcHIwSUVJdGl+cy10CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q1ZDcxNjVmNzg2MGY3MDNjYTM2ZjUwZDY1N2FhOWNk
NTFjNmIyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA4MDB4OAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKK2xh
eWVyIGF0ICgwLDApIHNpemUgMTB4MTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDAsMCkgc2l6
ZSAxMHgxMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29u
dHJhc3QtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI3OGVjMWYwMjE4MTYwOGEwNWFjNjM2ZTM5Y2Vj
ZGExNDBkYmU2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWltYWdlLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0
bWw+IAorPHN0eWxlPiAKKwlpbWcgeworCQlkaXNwbGF5OiBibG9jazsKKwkJcG9zaXRpb246IGZp
eGVkOworCQlsZWZ0OiAwcHg7CisJCXRvcDogMHB4OworCQlyaWdodDogMHB4OworCQlib3R0b206
IDBweDsKKwkJYm9yZGVyOiBub25lOworCQl3aWR0aDogMTBweDsKKwkJaGVpZ2h0OiAxMHB4Owor
CQltYXJnaW46IDBweDsKKwkJcGFkZGluZzogMHB4OworCQlpbWFnZS1yZW5kZXJpbmc6IC13ZWJr
aXQtb3B0aW1pemUtY29udHJhc3Q7CisJfQorPC9zdHlsZT4gCis8Ym9keT4gCisgICAgPCEtLSBU
aGUgcmVzdWx0aW5nIGltYWdlIHNob3VsZCBiZSAxMHgxMCwgY29uc2lzdGluZyBvZiA0IDV4NSBi
bG9ja3Mgb2Ygc29saWQgY29sb3IsIHdpdGggbm8gYmx1cnJpbmcgb2YgZWRnZXMgLS0+CisJPGlt
YWdlIHN0eWxlPSIiIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T
VWhFVWdBQUFBSUFBQUFDQ0FZQUFBQnl0ZzBrQUFBQUZFbEVRVlFJSFdQNHo4RHdId3lCTkpETjhC
OEFRTkVHK3Q1SWsya0FBQUFBU1VWT1JLNUNZSUk9Ij48L2ltZz4gCis8L2JvZHk+IApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDVhOTIyMDk2MDY2NTNjNThiYTkwM2Q2YzE4MmQxNGQxZjhmZjkzYjcuLjFkNmE0NzNm
ODI4MDg3YmNhOTZiMTBhYjBlZWI5MWJiNmJlNTU3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
NSBAQAorMjAxMS0wNC0xMSAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGltcGxl
bWVudCBpbWFnZS1yZW5kZXJpbmc6IG9wdGltaXplLWNvbnRyYXN0ICh3aXRoIGEgdmVuZG9yIHBy
ZWZpeCkgYXMgZGVmaW5lZCBpbiBDU1MzIGltYWdlIHZhbHVlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY2MjcKKworICAgICAgICBUZXN0czogY3Nz
My9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLmh0bWwKKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmluZyk6CisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1NWR0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFNWR1Byb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAq
IGNzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9TVkdDU1NTdHlsZVNl
bGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZH
UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAg
ICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmg6IEFkZGVk
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVhbGl0
eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbWFnZVJlbmRlcmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0SW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxJbWFnZVJlbmRlcmluZyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
bmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5
bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFnczo6
b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6c2V0Qml0RGVm
YXVsdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6d3JpdGVTdHlsZSk6CisKIDIwMTEtMDQtMDggIE1pc2hhIFR5dXR5dW5payAg
PG1pY2hhZWwudHl1dHl1bmlrQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBMYXN6
bG8gR29tYm9zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGRjZGQxOTcyNTA2ODdjMzJjYTg2MTFmM2Y3NGRhZDZiNTg0NTMwZmEu
LjdjOWRkNjRjOGMxYjEwZDg4Zjg0N2U2MGVmNGY4NDYxNmRhMDE4YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzUsNyAr
MTAzNSw4IEBACiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRn
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3
MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0
OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBG
NzkyRDYgLyogUmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9h
ZEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk0OTNFNUUwOTEyRDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTNFNUUwODEyRDY0
MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDkyOTFFNEIxMzQxNzJDODAwRTc1M0RF
IC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5n
TW9kZS5oICovOyB9OworCQk0OTNFNUUwOTEyRDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxh
eWVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTNFNUUwODEyRDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggKi87
IH07CiAJCTQ5NDg0RkMxMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCMzEwMkNG
MjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwICovOyB9OwogCQk0OTQ4NEZDMjEwMkNG
MjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNH
cmFkaWVudC5oICovOyB9OwogCQk0OTQ4NEZDNDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0
dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTQ4NEZCNjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgKi87IH07CkBAIC03
NTQwLDYgKzc1NDEsNyBAQAogCQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJL
aXRCcmlkZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQU5HTEVX
ZWJLaXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTA3MDdFNTEy
MTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkSW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1h
Z2VSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdl
UmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTNFNUUwODEy
RDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRmb3JtQ0FMYXllckNsaWVudC5oOyBwYXRoID0gY2EvUGxh
dGZvcm1DQUxheWVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0
RkIzMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYW52YXNHcmFkaWVudC5jcHA7IHBhdGggPSBjYW52YXMv
Q2FudmFzR3JhZGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZC
NDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gQ2FudmFzR3JhZGllbnQuaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNHcmFk
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4MDgsNiArMTc4MTAsNyBA
QAogCQkJCUIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5oICovLAogCQkJCUIyQTEw
QjkxMEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlci5oICovLAogCQkJCUJDN0Y0NEE3MEI5
RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmggKi8sCisJCQkJNDkyOTFFNEExMzQxNzJD
ODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovLAogCQkJCUIyNzUzNTQzMEIwNTM4
MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICovLAogCQkJCUIyNzUzNTQ0MEIwNTM4MTQwMDJD
RTY0RiAvKiBJbnRQb2ludC5oICovLAogCQkJCUU0NjJBNEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJ
bnRQb2ludEhhc2guaCAqLywKQEAgLTIyODkxLDYgKzIyODk0LDcgQEAKIAkJCQlCMUU1NDVFMDEz
NDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjFFNTQ1RTIxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlh
RXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFFNTQ1RTQxMzQ2MkIwQjAwOTJB
NTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggOWNiOWZkN2YzZmQ2ZmM4MjY2MmE4NmZiZGUzZDMxNzQ5
NTRhZGZmNy4uNzc2ODE4MGI3MDI3NjJjMjdhOTdlNzYwNmNjNmU0OTI2ZGY5MDBjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTk5LDYgKzk5LDcgQEAgc3RhdGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNbXSA9
IHsKICAgICBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LAogICAgIENTU1Byb3BlcnR5Rm9udFdlaWdo
dCwKICAgICBDU1NQcm9wZXJ0eUhlaWdodCwKKyAgICBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5n
LAogICAgIENTU1Byb3BlcnR5TGVmdCwKICAgICBDU1NQcm9wZXJ0eUxldHRlclNwYWNpbmcsCiAg
ICAgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0LApAQCAtMjYzLDcgKzI2NCw2IEBAIHN0YXRpYyBjb25z
dCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlGaWxsLAogICAg
IENTU1Byb3BlcnR5RmlsbE9wYWNpdHksCiAgICAgQ1NTUHJvcGVydHlGaWxsUnVsZSwKLSAgICBD
U1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nLAogICAgIENTU1Byb3BlcnR5TWFya2VyRW5kLAogICAg
IENTU1Byb3BlcnR5TWFya2VyTWlkLAogICAgIENTU1Byb3BlcnR5TWFya2VyU3RhcnQsCkBAIC0x
MTU2LDYgKzExNTYsOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAgICAgICAgaWYg
KHN0eWxlLT5ib3JkZXJGaXQoKSA9PSBCb3JkZXJGaXRCb3JkZXIpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1
ZUJvcmRlcik7CiAgICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTGluZXMpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
SW1hZ2VSZW5kZXJpbmc6CisgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZShzdHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlM
ZWZ0OgogICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoc3R5bGUuZ2V0
KCksIENTU1Byb3BlcnR5TGVmdCwgcHJpbWl0aXZlVmFsdWVDYWNoZSk7CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlMZXR0ZXJTcGFjaW5nOgpAQCAtMTc4Miw3ICsxNzg0LDYgQEAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1Zh
bHVlKGludCBwcm9wZXIKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlGaWxsT3BhY2l0eToKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGxS
dWxlOgotICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmc6CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlNYXJrZXI6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJFbmQ6
CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJNaWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IDFkOGI2YjBkYzE4ZjM4ZTI5NTI1NDM1NDdiNzE3YjcyNmI0OTlkMjQuLmE0ZWM5
NjExMjJjNDUyZDBjY2I4MTJmNTJjNTMyZGMyZmMwMjk2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCkBAIC0xNzE2LDcgKzE3MTYsMTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
aW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICAoaWQgPj0gQ1NTVmFsdWVW
aXNpYmxlcGFpbnRlZCAmJiBpZCA8PSBDU1NWYWx1ZVN0cm9rZSkpCiAgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwotCisgICAgY2FzZSBDU1NQcm9wZXJ0
eUltYWdlUmVuZGVyaW5nOiAvLyBhdXRvIHwgb3B0aW1pemVDb250cmFzdAorICAgICAgICBpZiAo
aWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlV2Via2l0T3B0aW1pemVDb250cmFz
dCkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgLy8gRW5kIG9mIENTUzMgcHJvcGVydGllcwogCiAgICAgLy8gQXBwbGUgc3BlY2lmaWMgcHJv
cGVydGllcy4gIFRoZXNlIHdpbGwgbmV2ZXIgYmUgc3RhbmRhcmRpemVkIGFuZCBhcmUgcHVyZWx5
IHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBw
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApp
bmRleCBiMWY5YWVjMTIxYWZhM2NlNDdkMDM4NTM3YTU2OTYxYTQwODc1MTRhLi4wODVlYTdiNGYz
NTM3MWFkZjlhZmZlOTcxMjYxMTE2NjEzZTUzNTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTI3OTcsNiArMjc5Nyw5IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFSW1hZ2VS
ZW5kZXJpbmcgZSkKICAgICAgICAgY2FzZSBJUl9PUFRJTUlaRVFVQUxJVFk6CiAgICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7CiAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBJUl9PUFRJTUlaRUNPTlRSQVNUOgorICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0T3B0aW1pemVDb250cmFzdDsKKyAgICAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIApAQCAtMjgwOSw2ICsyODEyLDggQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiAg
ICAgICAgICAgICByZXR1cm4gSVJfT1BUSU1JWkVTUEVFRDsKICAgICAgICAgY2FzZSBDU1NWYWx1
ZU9wdGltaXplcXVhbGl0eToKICAgICAgICAgICAgIHJldHVybiBJUl9PUFRJTUlaRVFVQUxJVFk7
CisgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRPcHRpbWl6ZUNvbnRyYXN0OgorICAgICAgICAg
ICAgcmV0dXJuIElSX09QVElNSVpFQ09OVFJBU1Q7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBJUl9BVVRPOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCBhNjJkMmYzMWNmY2UzMGJl
MzI3YWEwNDFhZjY2MjVmYTZhNWJiNzVlLi41MGQ2ZTcxZWZkZmYzY2QzMDE3MzdlYWFmOWY5MTFh
MzQ0NDBmZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtODQs
NiArODQsNyBAQCBlbXB0eS1jZWxscwogZmxvYXQKIGZvbnQtc3RyZXRjaAogaGVpZ2h0CitpbWFn
ZS1yZW5kZXJpbmcKIGxlZnQKIGxldHRlci1zcGFjaW5nCiBsaXN0LXN0eWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggYTQxNWY0ZTU5NDMwZDEwNzQ2YjEyNTM4
OTllMGQ1Y2IxZjA5NDBhZS4uM2I5Mjk5ODY1MDc5MDQzZDg1NWYwYmUwNDU0NTIwYWQxZjJhMWMx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNTI2Nyw2ICs1
MjY3LDExIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENT
U1ZhbHVlICp2YWx1ZSkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwob3V0bGlu
ZU9mZnNldCwgT3V0bGluZU9mZnNldCkKICAgICAgICAgbV9zdHlsZS0+c2V0T3V0bGluZU9mZnNl
dChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50
U3R5bGUsIHpvb21GYWN0b3IpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlJbWFnZVJlbmRlcmluZzoKKyAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgbV9zdHlsZS0+c2V0SW1hZ2VSZW5kZXJpbmcoKnByaW1pdGl2
ZVZhbHVlKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVy
aW5nOiB7CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxl
LT5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDZkYWMwNmZjY2JjOTJiYjk4M2EzNDc0NzA1
ZDhhNDM5NjhjMDFmNWMuLmQ2NzBhNjJmNGYyMGRkNWE3YTJkMmFjMDY2OWExYTdlMDY1YzkyZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDMsNCArODAzLDgg
QEAgZ2x5cGhzCiBpbmxpbmUtYm94CiByZXBsYWNlZAogCi0KKyMgaW1hZ2UtcmVuZGVyaW5nCisj
YXV0bworI29wdGltaXplU3BlZWQKK29wdGltaXplUXVhbGl0eQorLXdlYmtpdC1vcHRpbWl6ZS1j
b250cmFzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAppbmRleCA1ZGZlMDNlMDMwMTNhZDVlMWU3ZjFkZWIxZGJiZDkzYjIy
NGVjNjc3Li4wYzJhYWZmOTk2Nzg1NmMwNDk1MWQyZWVmNWEzMTMyZDczNzk5YTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcApAQCAtMTAzLDggKzEwMyw2IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvCiAgICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+ZmlsbFJ1bGUo
KSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvclJlbmRlcmluZzoKICAgICAgICAgICAg
IHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5jb2xvclJlbmRlcmlu
ZygpKTsKLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgotICAgICAgICAg
ICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5bGUtPmltYWdlUmVuZGVy
aW5nKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+c2hhcGVSZW5k
ZXJpbmcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VMaW5lY2FwOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA3YzE1N2E4YzczNzg3OGRh
OGRhNmM0ZTBlN2RkZGUwMDg3NDBmNDY0Li4zOGFkM2I2YTAxMGYwMGQ0ODg2ZTZmZTRmZWM0OWY4
YzcxNTgzM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlO
YW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgpA
QCAtMjMsNyArMjMsNyBAQCBmaWxsCiBmaWxsLW9wYWNpdHkKIGZpbGwtcnVsZQogI2ZvbnQtc2l6
ZS1hZGp1c3QKLWltYWdlLXJlbmRlcmluZworI2ltYWdlLXJlbmRlcmluZwogbWFya2VyCiBtYXJr
ZXItZW5kCiBtYXJrZXItbWlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKaW5kZXggNDdlM2ZjMzk3YzIxMDhlZmNjZmJmMGJkZjM5ZGNjMTU1OTUwNzY5NC4uMjM3
MDZiMmUxMTU5ZmU5NDM5M2QzMWMyNmVlYjI5OTdiYjM2NjFlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjE0LDEzICsyMTQsNiBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSogdmFsdWUp
CiAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEpvaW5TdHlsZSgqcHJpbWl0aXZlVmFsdWUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUltYWdlUmVuZGVyaW5nOgotICAgICAgICB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9B
TkRfSU5JVElBTChpbWFnZVJlbmRlcmluZywgSW1hZ2VSZW5kZXJpbmcpCi0gICAgICAgICAgICBp
ZiAocHJpbWl0aXZlVmFsdWUpCi0gICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEltYWdlUmVu
ZGVyaW5nKCpwcmltaXRpdmVWYWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAgIHsKICAgICAg
ICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHNoYXBlUmVuZGVyaW5nLCBTaGFwZVJl
bmRlcmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdv
cmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXgg
YTJjOWY4Mzc3M2E0ZDY3NDI0MTIxNjBmNjE5OWRiOTA3OTY3YzVjNC4uNDE3YThkNWU2MjdjZjA2
YTUzODMyMDMyZjQ4MWY5YmE1ZTM4ZjhiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1Zh
bHVlS2V5d29yZHMuaW4KQEAgLTE5Nyw3ICsxOTcsNyBAQCBsaW5lYXJSR0IKICMgQ1NTX1BST1Bf
Q09MT1JfUkVOREVSSU5HCiAjYXV0bwogI29wdGltaXplU3BlZWQKLW9wdGltaXplUXVhbGl0eQor
I29wdGltaXplUXVhbGl0eQogCiAjIyBDU1NfUFJPUF9GSUxMCiAjY3VycmVudENvbG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDc3OTEyMmE4MDIxYmY5
ZmVmYjRkMGVjMDQyMWU4ZDY5N2Q2ODUwYjEuLmZlMjg5MmQzMWQxNzIyNDAzNDI3OGU1MzdkZGU2
NDE4MWUzOTI0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CkBAIC0yNjAsNyArMjYwLDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogICAg
ICAgICAoKml0KS0+Y2FudmFzUmVzaXplZCh0aGlzKTsKIH0KIAotdm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQor
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiByLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICAvLyBDbGVh
ciB0aGUgZGlydHkgcmVjdAogICAgIG1fZGlydHlSZWN0ID0gRmxvYXRSZWN0KCk7CkBAIC0yNzgs
MTEgKzI3OCwxMSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIpCiAgICAgICAgIEltYWdlQnVmZmVyKiBpbWFn
ZUJ1ZmZlciA9IGJ1ZmZlcigpOwogICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKICAgICAgICAg
ICAgIGlmIChtX3ByZXNlbnRlZEltYWdlKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJ
bWFnZShtX3ByZXNlbnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByKTsKKyAg
ICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwg
Q29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93UXVhbGl0
eVNjYWxlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGltYWdlQnVmZmVyLT5kcmF3c1VzaW5nQ29w
eSgpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShjb3BpZWRJbWFnZSgpLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCByKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1h
Z2UoY29waWVkSW1hZ2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNl
T3ZlciwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIENvbG9yU3BhY2VEZXZp
Y2VSR0IsIHIpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFn
ZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IGY4Y2M4OTQ5NzhhOGYxNDk3N2I0YTlhMDBiNmQwZTI2
MzlkYWE4MjEuLjcxM2RhN2U1NWRhZTljNTZiOWJhNjQ4NDRkNGE5OWI3MGFjZjlkYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVi
bGljOgogICAgIC8vIFVzZWQgZm9yIHJlbmRlcmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBG
bG9hdFJlY3QmKTsKIAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYpOworICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYs
IGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0
KiBkcmF3aW5nQ29udGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVJlbmRlcmluZ01vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlUmVuZGVyaW5nTW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3OGZiMzNm
ODFkMThlZjQwMmM0M2Y3NmVkZDJlZjU4YjI1MGU4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVJlbmRlcmluZ01vZGUuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgSW1hZ2VSZW5kZXJpbmdNb2RlX2gKKyNkZWZpbmUgSW1hZ2VSZW5kZXJpbmdN
b2RlX2gKKyAgICAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBJbWFnZVJlbmRlcmluZ01v
ZGUgeyBBdXRvSW1hZ2VSZW5kZXJpbmcsIE9wdGltaXplQ29udHJhc3QgfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorICAgIAorI2VuZGlmIC8vIEltYWdlUmVuZGVyaW5nTW9kZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRl
eCBjMDMwOWJkMWE1OWU1NmMwOGQzNmVlMWJjYzNjZTFjOTk0MzZiMDRjLi4yOGQ5MGZkMTJiY2U3
Y2MzOGQ0OTZhYzM0ZTBjNDA5YzYzMmZiYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTEzOCw2ICsxMzgsOSBAQCBib29s
IEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OnNob3VsZFBhaW50QXRMb3dRdWFsaXR5KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgUgogICAgIGlmICghaW1hZ2UgfHwgIWltYWdlLT5pc0JpdG1hcElt
YWdlKCkgfHwgY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICBpZiAob2JqZWN0LT5zdHlsZSgpLT5pbWFnZVJlbmRlcmluZygpID09IFdlYkNv
cmU6OklSX09QVElNSVpFQ09OVFJBU1QpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAogICAg
IC8vIE1ha2Ugc3VyZSB0byB1c2UgdGhlIHVuem9vbWVkIGltYWdlIHNpemUsIHNpbmNlIGlmIGEg
ZnVsbCBwYWdlIHpvb20gaXMgaW4gZWZmZWN0LCB0aGUgaW1hZ2UKICAgICAvLyBpcyBhY3R1YWxs
eSBiZWluZyBzY2FsZWQuCiAgICAgSW50U2l6ZSBpbWFnZVNpemUoaW1hZ2UtPndpZHRoKCksIGlt
YWdlLT5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySFRNTENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENh
bnZhcy5jcHAKaW5kZXggZGUyYTJjMTU2ZjFkODNjMjg5MmU5MjJhZmRmNzYwZWUwNjA2N2UxZi4u
Mzg3MDRiMzYyNGI5ZWEzYWYwMzM2ZDQ4NmEyY2UyNjAyOGI4Yjc3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcApAQCAtNTgsNyArNTgsOCBAQCB2
b2lkIFJlbmRlckhUTUxDYW52YXM6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8s
IGludCB0eCwgaW50IHR5KQogewogICAgIEludFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7
CiAgICAgcmVjdC5tb3ZlKHR4LCB0eSk7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1l
bnQqPihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwgcmVjdCk7CisgICAgYm9vbCB1
c2VMb3dRdWFsaXR5U2NhbGUgPSBzdHlsZSgpLT5pbWFnZVJlbmRlcmluZygpID09IFdlYkNvcmU6
OklSX09QVElNSVpFQ09OVFJBU1Q7CisgICAgc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQq
Pihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwgcmVjdCwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKIH0KIAogdm9pZCBSZW5kZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4
OTg0ODVmYjE3NGFhYmE1MDM4M2YzZTRiZTQ3NDMyNDAxMTYxNmIyLi41MmY2YjIyYWJkNzlhNTcx
YzU1NTVmZDBmZmZhY2I1NDliOGEyYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTU1MCw2ICs1NTAsNyBAQCBTdHlsZURpZmZlcmVu
Y2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYg
Y2hhbmdlZENvbgogICAgICAgICBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMgIT0g
b3RoZXItPmluaGVyaXRlZF9mbGFncy5fdGV4dF9kZWNvcmF0aW9ucyB8fAogICAgICAgICBpbmhl
cml0ZWRfZmxhZ3MuX2ZvcmNlX2JhY2tncm91bmRzX3RvX3doaXRlICE9IG90aGVyLT5pbmhlcml0
ZWRfZmxhZ3MuX2ZvcmNlX2JhY2tncm91bmRzX3RvX3doaXRlIHx8CiAgICAgICAgIGluaGVyaXRl
ZF9mbGFncy5faW5zaWRlTGluayAhPSBvdGhlci0+aW5oZXJpdGVkX2ZsYWdzLl9pbnNpZGVMaW5r
IHx8CisgICAgICAgIGluaGVyaXRlZF9mbGFncy5tX2ltYWdlUmVuZGVyaW5nICE9IG90aGVyLT5p
bmhlcml0ZWRfZmxhZ3MubV9pbWFnZVJlbmRlcmluZyB8fAogICAgICAgICBzdXJyb3VuZC0+Ym9y
ZGVyICE9IG90aGVyLT5zdXJyb3VuZC0+Ym9yZGVyIHx8CiAgICAgICAgICptX2JhY2tncm91bmQu
Z2V0KCkgIT0gKm90aGVyLT5tX2JhY2tncm91bmQuZ2V0KCkgfHwKICAgICAgICAgdmlzdWFsLT50
ZXh0RGVjb3JhdGlvbiAhPSBvdGhlci0+dmlzdWFsLT50ZXh0RGVjb3JhdGlvbiB8fApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA3NTkxYWQ1ZWRh
NDE0YmUxZjAxNzkzNWY1ZjkzZTFkYzcxNjgxNjJlLi4xNzY2ZWE3ZGM4MWNiNTJjY2U1MjU4Y2Ix
NDNjZWNkNGZkOTk0ZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaApAQCAtMTYxLDI0ICsxNjEsMjUgQEAgcHJvdGVjdGVkOgogICAgIHN0cnVjdCBJ
bmhlcml0ZWRGbGFncyB7CiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbmhlcml0ZWRG
bGFncyYgb3RoZXIpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAoX2VtcHR5
X2NlbGxzID09IG90aGVyLl9lbXB0eV9jZWxscykgJiYKLSAgICAgICAgICAgICAgICAgICAoX2Nh
cHRpb25fc2lkZSA9PSBvdGhlci5fY2FwdGlvbl9zaWRlKSAmJgotICAgICAgICAgICAgICAgICAg
IChfbGlzdF9zdHlsZV90eXBlID09IG90aGVyLl9saXN0X3N0eWxlX3R5cGUpICYmCi0gICAgICAg
ICAgICAgICAgICAgKF9saXN0X3N0eWxlX3Bvc2l0aW9uID09IG90aGVyLl9saXN0X3N0eWxlX3Bv
c2l0aW9uKSAmJgotICAgICAgICAgICAgICAgICAgIChfdmlzaWJpbGl0eSA9PSBvdGhlci5fdmlz
aWJpbGl0eSkgJiYKLSAgICAgICAgICAgICAgICAgICAoX3RleHRfYWxpZ24gPT0gb3RoZXIuX3Rl
eHRfYWxpZ24pICYmCi0gICAgICAgICAgICAgICAgICAgKF90ZXh0X3RyYW5zZm9ybSA9PSBvdGhl
ci5fdGV4dF90cmFuc2Zvcm0pICYmCi0gICAgICAgICAgICAgICAgICAgKF90ZXh0X2RlY29yYXRp
b25zID09IG90aGVyLl90ZXh0X2RlY29yYXRpb25zKSAmJgotICAgICAgICAgICAgICAgICAgIChf
Y3Vyc29yX3N0eWxlID09IG90aGVyLl9jdXJzb3Jfc3R5bGUpICYmCi0gICAgICAgICAgICAgICAg
ICAgKF9kaXJlY3Rpb24gPT0gb3RoZXIuX2RpcmVjdGlvbikgJiYKLSAgICAgICAgICAgICAgICAg
ICAoX2JvcmRlcl9jb2xsYXBzZSA9PSBvdGhlci5fYm9yZGVyX2NvbGxhcHNlKSAmJgotICAgICAg
ICAgICAgICAgICAgIChfd2hpdGVfc3BhY2UgPT0gb3RoZXIuX3doaXRlX3NwYWNlKSAmJgotICAg
ICAgICAgICAgICAgICAgIChfYm94X2RpcmVjdGlvbiA9PSBvdGhlci5fYm94X2RpcmVjdGlvbikg
JiYKLSAgICAgICAgICAgICAgICAgICAoX3Zpc3VhbGx5T3JkZXJlZCA9PSBvdGhlci5fdmlzdWFs
bHlPcmRlcmVkKSAmJgotICAgICAgICAgICAgICAgICAgIChfZm9yY2VfYmFja2dyb3VuZHNfdG9f
d2hpdGUgPT0gb3RoZXIuX2ZvcmNlX2JhY2tncm91bmRzX3RvX3doaXRlKSAmJgotICAgICAgICAg
ICAgICAgICAgIChfcG9pbnRlckV2ZW50cyA9PSBvdGhlci5fcG9pbnRlckV2ZW50cykgJiYKLSAg
ICAgICAgICAgICAgICAgICAoX2luc2lkZUxpbmsgPT0gb3RoZXIuX2luc2lkZUxpbmspICYmCi0g
ICAgICAgICAgICAgICAgICAgKG1fd3JpdGluZ01vZGUgPT0gb3RoZXIubV93cml0aW5nTW9kZSk7
CisgICAgICAgICAgICByZXR1cm4gKF9lbXB0eV9jZWxscyA9PSBvdGhlci5fZW1wdHlfY2VsbHMp
IAorICAgICAgICAgICAgICAgICYmIChfY2FwdGlvbl9zaWRlID09IG90aGVyLl9jYXB0aW9uX3Np
ZGUpCisgICAgICAgICAgICAgICAgJiYgKF9saXN0X3N0eWxlX3R5cGUgPT0gb3RoZXIuX2xpc3Rf
c3R5bGVfdHlwZSkKKyAgICAgICAgICAgICAgICAmJiAoX2xpc3Rfc3R5bGVfcG9zaXRpb24gPT0g
b3RoZXIuX2xpc3Rfc3R5bGVfcG9zaXRpb24pCisgICAgICAgICAgICAgICAgJiYgKF92aXNpYmls
aXR5ID09IG90aGVyLl92aXNpYmlsaXR5KQorICAgICAgICAgICAgICAgICYmIChfdGV4dF9hbGln
biA9PSBvdGhlci5fdGV4dF9hbGlnbikKKyAgICAgICAgICAgICAgICAmJiAoX3RleHRfdHJhbnNm
b3JtID09IG90aGVyLl90ZXh0X3RyYW5zZm9ybSkKKyAgICAgICAgICAgICAgICAmJiAoX3RleHRf
ZGVjb3JhdGlvbnMgPT0gb3RoZXIuX3RleHRfZGVjb3JhdGlvbnMpCisgICAgICAgICAgICAgICAg
JiYgKF9jdXJzb3Jfc3R5bGUgPT0gb3RoZXIuX2N1cnNvcl9zdHlsZSkKKyAgICAgICAgICAgICAg
ICAmJiAoX2RpcmVjdGlvbiA9PSBvdGhlci5fZGlyZWN0aW9uKQorICAgICAgICAgICAgICAgICYm
IChfYm9yZGVyX2NvbGxhcHNlID09IG90aGVyLl9ib3JkZXJfY29sbGFwc2UpCisgICAgICAgICAg
ICAgICAgJiYgKF93aGl0ZV9zcGFjZSA9PSBvdGhlci5fd2hpdGVfc3BhY2UpCisgICAgICAgICAg
ICAgICAgJiYgKF9ib3hfZGlyZWN0aW9uID09IG90aGVyLl9ib3hfZGlyZWN0aW9uKQorICAgICAg
ICAgICAgICAgICYmIChfdmlzdWFsbHlPcmRlcmVkID09IG90aGVyLl92aXN1YWxseU9yZGVyZWQp
CisgICAgICAgICAgICAgICAgJiYgKF9mb3JjZV9iYWNrZ3JvdW5kc190b193aGl0ZSA9PSBvdGhl
ci5fZm9yY2VfYmFja2dyb3VuZHNfdG9fd2hpdGUpCisgICAgICAgICAgICAgICAgJiYgKF9wb2lu
dGVyRXZlbnRzID09IG90aGVyLl9wb2ludGVyRXZlbnRzKQorICAgICAgICAgICAgICAgICYmIChf
aW5zaWRlTGluayA9PSBvdGhlci5faW5zaWRlTGluaykKKyAgICAgICAgICAgICAgICAmJiAobV93
cml0aW5nTW9kZSA9PSBvdGhlci5tX3dyaXRpbmdNb2RlKQorICAgICAgICAgICAgICAgICYmICht
X2ltYWdlUmVuZGVyaW5nID09IG90aGVyLm1faW1hZ2VSZW5kZXJpbmcpOwogICAgICAgICB9CiAK
ICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEluaGVyaXRlZEZsYWdzJiBvdGhlcikgY29u
c3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KQEAgLTIwNyw2ICsyMDgsOSBAQCBwcm90
ZWN0ZWQ6CiAKICAgICAgICAgLy8gQ1NTIFRleHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0
aWNhbCB3cml0aW5nIHN1cHBvcnQKICAgICAgICAgdW5zaWduZWQgbV93cml0aW5nTW9kZSA6IDI7
IC8vIFdyaXRpbmdNb2RlCisgICAgICAgIC8vIENTUyBJbWFnZSBWYWx1ZXMgTGV2ZWwgMworICAg
ICAgICB1bnNpZ25lZCBtX2ltYWdlUmVuZGVyaW5nIDogMjsgLy8gRUltYWdlUmVuZGVyaW5nICov
CisKICAgICAgICAgLy8gNDUgYml0cwogICAgIH0gaW5oZXJpdGVkX2ZsYWdzOwogCkBAIC03ODQs
NiArNzg4LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdNb2RlKCkgPT0gTGVmdFRvUmlnaHRXcml0aW5nTW9kZSB8
fCB3cml0aW5nTW9kZSgpID09IEJvdHRvbVRvVG9wV3JpdGluZ01vZGU7IH0KICAgICBib29sIGlz
RmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gd3JpdGluZ01vZGUoKSA9
PSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlIHx8IHdyaXRpbmdNb2RlKCkgPT0gQm90dG9tVG9Ub3BX
cml0aW5nTW9kZTsgfQogCisgICAgRUltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVyaW5nKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdlUmVuZGVyaW5nPihpbmhlcml0ZWRfZmxhZ3Mu
bV9pbWFnZVJlbmRlcmluZyk7IH0KKworICAgIAogICAgIEVTcGVhayBzcGVhaygpIHsgcmV0dXJu
IHN0YXRpY19jYXN0PEVTcGVhaz4ocmFyZUluaGVyaXRlZERhdGEtPnNwZWFrKTsgfQogICAgICAg
ICAKIC8vIGF0dHJpYnV0ZSBzZXR0ZXIgbWV0aG9kcwpAQCAtOTMzLDYgKzk0MCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldExpbmVIZWlnaHQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihpbmhlcml0ZWQs
IGxpbmVfaGVpZ2h0LCB2KSB9CiAgICAgdm9pZCBzZXRab29tKGZsb2F0IGYpIHsgU0VUX1ZBUih2
aXN1YWwsIG1fem9vbSwgZik7IHNldEVmZmVjdGl2ZVpvb20oZWZmZWN0aXZlWm9vbSgpICogem9v
bSgpKTsgfQogICAgIHZvaWQgc2V0RWZmZWN0aXZlWm9vbShmbG9hdCBmKSB7IFNFVF9WQVIocmFy
ZUluaGVyaXRlZERhdGEsIG1fZWZmZWN0aXZlWm9vbSwgZikgfQorICAgIHZvaWQgc2V0SW1hZ2VS
ZW5kZXJpbmcoRUltYWdlUmVuZGVyaW5nIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLm1faW1hZ2VSZW5k
ZXJpbmcgPSB2OyB9CiAKICAgICB2b2lkIHNldFdoaXRlU3BhY2UoRVdoaXRlU3BhY2UgdikgeyBp
bmhlcml0ZWRfZmxhZ3MuX3doaXRlX3NwYWNlID0gdjsgfQogCkBAIC0xMzEyLDYgKzEzMjAsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhbFRleHRFbXBo
YXNpc0N1c3RvbU1hcmsoKSB7IHJldHVybiBudWxsQXRvbTsgfQogICAgIHN0YXRpYyBUZXh0RW1w
aGFzaXNQb3NpdGlvbiBpbml0aWFsVGV4dEVtcGhhc2lzUG9zaXRpb24oKSB7IHJldHVybiBUZXh0
RW1waGFzaXNQb3NpdGlvbk92ZXI7IH0KICAgICBzdGF0aWMgTGluZUJveENvbnRhaW4gaW5pdGlh
bExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGluZUJveENvbnRhaW5CbG9jayB8IExpbmVCb3hD
b250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5SZXBsYWNlZDsgfQorICAgIHN0YXRpYyBFSW1h
Z2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyByZXR1cm4gSVJfQVVUTzsgfQog
CiAgICAgLy8gS2VlcCB0aGVzZSBhdCB0aGUgZW5kLgogICAgIHN0YXRpYyBMaW5lQ2xhbXBWYWx1
ZSBpbml0aWFsTGluZUNsYW1wKCkgeyByZXR1cm4gTGluZUNsYW1wVmFsdWUoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aAppbmRleCA1YWQ0MmNlNGRlNGQ2ZmFhMzcxNzNkNjJmMmNiYzJhNGMyZmIzNDc4Li4wY2Y1Yjg2
NzI3Y2UzNDYzNjMyZjk0YjdjMTMwYWFmZjAzNGFjZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNDI0LDYg
KzQyNCw4IEBAIGVudW0gVGV4dEVtcGhhc2lzTWFyayB7IFRleHRFbXBoYXNpc01hcmtOb25lLCBU
ZXh0RW1waGFzaXNNYXJrQXV0bywgVGV4dEVtcGhhc2lzCiAKIGVudW0gVGV4dEVtcGhhc2lzUG9z
aXRpb24geyBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIsIFRleHRFbXBoYXNpc1Bvc2l0aW9uVW5k
ZXIgfTsKIAorZW51bSBFSW1hZ2VSZW5kZXJpbmcgeyBJUl9BVVRPLCBJUl9PUFRJTUlaRVNQRUVE
LCBJUl9PUFRJTUlaRVFVQUxJVFksIElSX09QVElNSVpFQ09OVFJBU1QgfTsKKyAgICAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCmlu
ZGV4IDFlZTFmMzYzYTMyNjQzMWQyZWM0ZDMwODVkMjM1NjQzYzM3ZWQ2ZmIuLjU2YWRkNGU5MWJh
MzE2OTcxNzEzNWZlY2JmMzM0YjkyYWVmOWNiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcApAQCAtMjAyLDcgKzIwMiw2IEBAIFN0
eWxlRGlmZmVyZW5jZSBTVkdSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBTVkdSZW5kZXJTdHlsZSog
b3RoZXIpIGNvbnN0CiAKICAgICAvLyBDaGFuZ2VzIG9mIHRoZXNlIGZsYWdzIG9ubHkgY2F1c2Ug
cmVwYWludHMuCiAgICAgaWYgKHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVuZGVyaW5nICE9
IG90aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xvclJlbmRlcmluZwotICAgICAgICB8fCBz
dmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRlcmluZyAhPSBvdGhlci0+c3ZnX2luaGVyaXRl
ZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcKICAgICAgICAgfHwgc3ZnX2luaGVyaXRlZF9mbGFncy5f
c2hhcGVSZW5kZXJpbmcgIT0gb3RoZXItPnN2Z19pbmhlcml0ZWRfZmxhZ3MuX3NoYXBlUmVuZGVy
aW5nCiAgICAgICAgIHx8IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NsaXBSdWxlICE9IG90aGVyLT5z
dmdfaW5oZXJpdGVkX2ZsYWdzLl9jbGlwUnVsZQogICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2Zs
YWdzLl9maWxsUnVsZSAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKaW5kZXgg
ODhhNDhkZjVhMzZmODJiMmQyYmEwZDEzMTg1YzI0OWJjMWE1NzRiYy4uMGZlNGE4MGNkZmNkNTIx
ZjQ3MzdkMzdmYzJmMWM1YjVjMzMyZTlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKQEAgLTYzLDcgKzYzLDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyBFQ29sb3JJbnRlcnBvbGF0aW9uIGluaXRpYWxDb2xvckludGVycG9sYXRpb25GaWx0
ZXJzKCkgeyByZXR1cm4gQ0lfTElORUFSUkdCOyB9CiAgICAgc3RhdGljIEVDb2xvclJlbmRlcmlu
ZyBpbml0aWFsQ29sb3JSZW5kZXJpbmcoKSB7IHJldHVybiBDUl9BVVRPOyB9CiAgICAgc3RhdGlj
IFdpbmRSdWxlIGluaXRpYWxGaWxsUnVsZSgpIHsgcmV0dXJuIFJVTEVfTk9OWkVSTzsgfQotICAg
IHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyByZXR1cm4g
SVJfQVVUTzsgfQogICAgIHN0YXRpYyBMaW5lSm9pbiBpbml0aWFsSm9pblN0eWxlKCkgeyByZXR1
cm4gTWl0ZXJKb2luOyB9CiAgICAgc3RhdGljIEVTaGFwZVJlbmRlcmluZyBpbml0aWFsU2hhcGVS
ZW5kZXJpbmcoKSB7IHJldHVybiBTUl9BVVRPOyB9CiAgICAgc3RhdGljIEVUZXh0QW5jaG9yIGlu
aXRpYWxUZXh0QW5jaG9yKCkgeyByZXR1cm4gVEFfU1RBUlQ7IH0KQEAgLTE0MCw3ICsxMzksNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb2xvckludGVycG9sYXRpb25GaWx0ZXJzKEVDb2xvcklu
dGVycG9sYXRpb24gdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9ySW50ZXJwb2xhdGlv
bkZpbHRlcnMgPSB2YWw7IH0KICAgICB2b2lkIHNldENvbG9yUmVuZGVyaW5nKEVDb2xvclJlbmRl
cmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmcgPSB2YWw7IH0K
ICAgICB2b2lkIHNldEZpbGxSdWxlKFdpbmRSdWxlIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdz
Ll9maWxsUnVsZSA9IHZhbDsgfQotICAgIHZvaWQgc2V0SW1hZ2VSZW5kZXJpbmcoRUltYWdlUmVu
ZGVyaW5nIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRlcmluZyA9IHZhbDsg
fQogICAgIHZvaWQgc2V0Sm9pblN0eWxlKExpbmVKb2luIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2Zs
YWdzLl9qb2luU3R5bGUgPSB2YWw7IH0KICAgICB2b2lkIHNldFNoYXBlUmVuZGVyaW5nKEVTaGFw
ZVJlbmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmcgPSB2
YWw7IH0KICAgICB2b2lkIHNldFRleHRBbmNob3IoRVRleHRBbmNob3IgdmFsKSB7IHN2Z19pbmhl
cml0ZWRfZmxhZ3MuX3RleHRBbmNob3IgPSB2YWw7IH0KQEAgLTI5Nyw3ICsyOTUsNiBAQCBwdWJs
aWM6CiAgICAgRUNvbG9ySW50ZXJwb2xhdGlvbiBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzKCkg
Y29uc3QgeyByZXR1cm4gKEVDb2xvckludGVycG9sYXRpb24pIHN2Z19pbmhlcml0ZWRfZmxhZ3Mu
X2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM7IH0KICAgICBFQ29sb3JSZW5kZXJpbmcgY29sb3JS
ZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiAoRUNvbG9yUmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVk
X2ZsYWdzLl9jb2xvclJlbmRlcmluZzsgfQogICAgIFdpbmRSdWxlIGZpbGxSdWxlKCkgY29uc3Qg
eyByZXR1cm4gKFdpbmRSdWxlKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9maWxsUnVsZTsgfQotICAg
IEVJbWFnZVJlbmRlcmluZyBpbWFnZVJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIChFSW1hZ2VS
ZW5kZXJpbmcpIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ltYWdlUmVuZGVyaW5nOyB9CiAgICAgTGlu
ZUpvaW4gam9pblN0eWxlKCkgY29uc3QgeyByZXR1cm4gKExpbmVKb2luKSBzdmdfaW5oZXJpdGVk
X2ZsYWdzLl9qb2luU3R5bGU7IH0KICAgICBFU2hhcGVSZW5kZXJpbmcgc2hhcGVSZW5kZXJpbmco
KSBjb25zdCB7IHJldHVybiAoRVNoYXBlUmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9z
aGFwZVJlbmRlcmluZzsgfQogICAgIEVUZXh0QW5jaG9yIHRleHRBbmNob3IoKSBjb25zdCB7IHJl
dHVybiAoRVRleHRBbmNob3IpIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3RleHRBbmNob3I7IH0KQEAg
LTM0Niw3ICszNDMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBJbmhlcml0ZWRGbGFncyYgb3RoZXIpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIHJl
dHVybiAoX2NvbG9yUmVuZGVyaW5nID09IG90aGVyLl9jb2xvclJlbmRlcmluZykKLSAgICAgICAg
ICAgICAgICAmJiAoX2ltYWdlUmVuZGVyaW5nID09IG90aGVyLl9pbWFnZVJlbmRlcmluZykKICAg
ICAgICAgICAgICAgICAmJiAoX3NoYXBlUmVuZGVyaW5nID09IG90aGVyLl9zaGFwZVJlbmRlcmlu
ZykKICAgICAgICAgICAgICAgICAmJiAoX2NsaXBSdWxlID09IG90aGVyLl9jbGlwUnVsZSkKICAg
ICAgICAgICAgICAgICAmJiAoX2ZpbGxSdWxlID09IG90aGVyLl9maWxsUnVsZSkKQEAgLTM2Niw3
ICszNjIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIH0KIAogICAgICAgICB1bnNpZ25lZCBfY29s
b3JSZW5kZXJpbmcgOiAyOyAvLyBFQ29sb3JSZW5kZXJpbmcKLSAgICAgICAgdW5zaWduZWQgX2lt
YWdlUmVuZGVyaW5nIDogMjsgLy8gRUltYWdlUmVuZGVyaW5nIAogICAgICAgICB1bnNpZ25lZCBf
c2hhcGVSZW5kZXJpbmcgOiAyOyAvLyBFU2hhcGVSZW5kZXJpbmcgCiAgICAgICAgIHVuc2lnbmVk
IF9jbGlwUnVsZSA6IDE7IC8vIFdpbmRSdWxlCiAgICAgICAgIHVuc2lnbmVkIF9maWxsUnVsZSA6
IDE7IC8vIFdpbmRSdWxlCkBAIC00MjIsNyArNDE3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgc3Zn
X2luaGVyaXRlZF9mbGFncy5fY2xpcFJ1bGUgPSBpbml0aWFsQ2xpcFJ1bGUoKTsKICAgICAgICAg
c3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmcgPSBpbml0aWFsQ29sb3JSZW5kZXJp
bmcoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUgPSBpbml0aWFsRmls
bFJ1bGUoKTsKLSAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcgPSBp
bml0aWFsSW1hZ2VSZW5kZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hh
cGVSZW5kZXJpbmcgPSBpbml0aWFsU2hhcGVSZW5kZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVy
aXRlZF9mbGFncy5fdGV4dEFuY2hvciA9IGluaXRpYWxUZXh0QW5jaG9yKCk7CiAgICAgICAgIHN2
Z19pbmhlcml0ZWRfZmxhZ3MuX2NhcFN0eWxlID0gaW5pdGlhbENhcFN0eWxlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKaW5k
ZXggMDAzNThhMGQ1N2I5YmE2ZTU5NjdiNTI2Zjg1ZWRhOWVmNWEzMWM0MC4uMmMzM2M2ZGM5YmRk
ODg4Y2ViYTJjMWE4NGY4Zjc1OWEyYTJhMDk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaApAQCAtNTQsMTEgKzU0LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRUNvbG9yUmVuZGVyaW5nIHsKICAgICAgICAg
Q1JfQVVUTywgQ1JfT1BUSU1JWkVTUEVFRCwgQ1JfT1BUSU1JWkVRVUFMSVRZCiAgICAgfTsKLSAg
ICAKLSAgICBlbnVtIEVJbWFnZVJlbmRlcmluZyB7Ci0gICAgICAgIElSX0FVVE8sIElSX09QVElN
SVpFU1BFRUQsIElSX09QVElNSVpFUVVBTElUWQotICAgIH07Ci0KICAgICBlbnVtIEVTaGFwZVJl
bmRlcmluZyB7CiAgICAgICAgIFNSX0FVVE8sIFNSX09QVElNSVpFU1BFRUQsIFNSX0NSSVNQRURH
RVMsIFNSX0dFT01FVFJJQ1BSRUNJU0lPTgogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBhMDk5Zjg3MzNj
Yjc0MTUzNDNkODM5YTZjYTNkNDBjZWU3YThhZDA4Li5iNGIyYjE2ZGNiYzA4YmUzMDM1ZDczNzFh
MGNkN2RiZDFkZmFjMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTMyMSw3ICszMjEsNiBAQCBzdGF0aWMgdm9p
ZCB3cml0ZVN0eWxlKFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkK
IAogICAgIGlmICghb2JqZWN0LmxvY2FsVHJhbnNmb3JtKCkuaXNJZGVudGl0eSgpKQogICAgICAg
ICB3cml0ZU5hbWVWYWx1ZVBhaXIodHMsICJ0cmFuc2Zvcm0iLCBvYmplY3QubG9jYWxUcmFuc2Zv
cm0oKSk7Ci0gICAgd3JpdGVJZk5vdERlZmF1bHQodHMsICJpbWFnZSByZW5kZXJpbmciLCBzdmdT
dHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlbmRl
cmluZygpKTsKICAgICB3cml0ZUlmTm90RGVmYXVsdCh0cywgIm9wYWNpdHkiLCBzdHlsZS0+b3Bh
Y2l0eSgpLCBSZW5kZXJTdHlsZTo6aW5pdGlhbE9wYWNpdHkoKSk7CiAgICAgaWYgKG9iamVjdC5p
c1NWR1BhdGgoKSkgewogICAgICAgICBjb25zdCBSZW5kZXJTVkdQYXRoJiBwYXRoID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHUGF0aCY+KG9iamVjdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91614</attachid>
            <date>2011-04-28 18:44:41 -0700</date>
            <delta_ts>2011-05-10 18:36:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56627-20110429114438.patch</filename>
            <type>text/plain</type>
            <size>39083</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ5MzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZjA0YzNhMzkzMDg2MzQzMTRkM2E5
ZTdmYjUwOTA5MGZiYTg0NGRlLi44YzA5ZDI4NzA5ZTIwMzFlZjA3MzZkYTM0ZTcxMjIwNjVkMzUx
M2I0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMTEgIE1pa2UgTGF3dGhlciAgPG1p
a2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250
cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3
CisKKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA0LTI2ICBTdGVwaGVuIFdo
aXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7IGNo
cm9taXVtIHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQucG5n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY1OTFkZWNkODI4ZTRiMjM5N2FiYjk4MjM3NjliMmQ2MjcwYTdkMjIKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMjQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsr
dllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVNJRAp6WDJ2RWFtS0o2ZjI4a3g3TWth
fklESGV0bnJXUGl0Q0trcXQ3S1d1UDh8cnsyeXZ1WlU0KUFuI1J0UEF7UHNffG4KelduaWRhWXo7
WXxFJGtAciZuJDF7MXRwSENZYCNxdTZPPXE3UzcqM2hHNWFmK2wrQU5uZXcqdXI2bDJlOGQxa05R
CnpzY2xgX0AjTjcodCRWSS03cWI2dmtnTktUcVZMcmo8KklSU3dNTm9IYW92dyteTCh9fmVSYmVt
LVJGRGU/YCFrUgp6P2xiVGZUezhMRiExOUZtYytldWolJHlwaHRVbnpMZVR6NjlPO2tmfnp3dUxI
YjhJZ0RTXmZNKjZATyFOKnh+Qm0KejwodGFhJmJxWDE3SkpLSWhYP01uWmZiM0tGSjh6TURhNiFh
YkFPQGNAZSs+dms4Z1o+KHtKZmxTI2ZZSHpxYWo+CnpOVG5KRlF7OGoqekJfYD9zJE88el9PT2Bw
d0ped1QmaF9wbypKYXI9XlV7dTs1WkxRS1ZjRzY4P15ZKSpvYTZWNgp6Wl5HV1dVK1ZsZS0/S1pV
YyEqbmF0LWFmaC1nI2VwdUcmOUplN05NPGt2M1p5M0RZaz41PTZJNHReOHFuTkYtanMKelNBOWBQ
O1l+Zj5rMkJXJjRnMktQUjR+RWZSN3pxKWFnPk11YilVUSt5Vl9aNil2Z1AjZV5lZThfXmA1SElR
YHowCnp5WUYzWkZ8OVk/bGpWYChuWkBmN0FtR1o5SUFjU0FMenw3MXB+PEVxZCojKF4odnohPU4+
I0ZVbW42QXRiZ1ZZSgp6VzRrP1kkejdYJjhjS3l6b1ZSakpgczRVZFl5Qzw4cjxGZlgkODVMfV9J
PTlRKnxUPGlkU0hGQD5DQnh7YUBRfVAKemN3Rm9vUzJPaVcrMm5CZFg9XkkwX1JNLUNXJmI5OHk1
WH1YKUJZcEg4LTlQKGpofWpFeEBNMmEoWmB7bVV3T0JiCnpNajR2bHBQeTUyWlRtPj95eCFKcCNj
TW1lJkJKQy1QeWRfY0AlIURYSihIaD57YDhPZ2B0ZVd0KigxcjFHITUwdAp6eH1HYWBQQ3UmbWFu
Y1IlKSFkSH5hKnVQJm8hWHsoRFI8JjhtOCVIfXYtVyh8a0Z9NGsqeX5vJF5FR2dhPGU1dCQKem8h
eyNaWHtESVYtTn4yI3ROLUAjS2pLZm1jUmlvNCFLOXpfO0thO2J4eHQwKzFzMHwqJWAwQlZCKTxQ
Kj9UMmw3CnoqXkJFZXs7KSpZdFFLMXZXSUE3QTUySCszZHpJVl4lXjg9Y08qP0JEKVVHcHNAfilT
c2w3aHx6KzskRU14fl9VWAp6KW12PXklK1JFbFdqQUpDbWQlcXtYekJGKiRhMWdMJC1tWnI2eHtI
NEwodEVrWWwzZHBgQUo9Q29jPTVTekBFUloKejJQKFFkODVrNThKWTVfXkRqNDcxR3xaRnI2a3Y3
eSpaUXRMSFM2ajIra1lMPkk1eEUlNVlmKD4hKHg5d0tLfXB6Cnp8M0NsUj9OOTJpS21KM3RgX0NX
JFEqMTA4MHR5WmQ0Mig/VEVkTz9ZQExSNn09MEhSYjFVZlh4TUF7JDtKIW9yUwp6KnR6aTRUKH5Z
NDRqRVJLNkJDYSpHYS1jWEk1O0xxdWUjPzZHSWk3LVAjQkRjKFAlbSVtXzs2KGZCeVJTazdvSnIK
ekEzcHlxLTJkc0xfJj9SPjdWbi1aIVpNTFYrPHx6OVB4RkJfOVh6WU9YSkkqRW9qbjxyZztfWUJ1
KEVqazZKfGk8Cno7UmthWTclSjBxZzx5cy1IMTI2Jkk5Ym9jZlk3cj9TVX08WjhlYioyclV+SyMz
UDFmQjtKS0hmdjdDd04kPXQxOwp6YUM9IWtGKV53OT1WWEFDOTNiSGplaHYrTEhrKTxBSDk1cE5H
KDUzcVdJKlYtJEhfNkZ7Rjw1fFQrPDB8anRQSSUKejhJWHp6WWV2UlQ9V2VNV0pYcCFkSU8jdE4x
R0k8Jm5wTDUkO0JZVDt3aExVN2cxKjlOcG98Nno2TH40K1VycWdmCno+OVg9bT5tIzQmUDJNZ0hQ
bnJeM0tlJGZfK3xOTHlMe21uX3B4cnhhSXBJbD4yVXpjb3N1JkZxWG80NmBBRVVXcAp6dn4rO0FE
bkBnfFhsQHdJNFdxZE0rI01LZ0RVRyVxTV9iYWN6UXQmNjd8amkleG5WUm5mUVE+ZytzVUt0PGs1
RVcKelhnaGhkb3leRUlTezlDJGdgO0k1Kj0xcStsaj8yOzI5NjVRU155U34oTyQtQUZKcldxRzF8
KSo/UFpMWGdgK2RxCmhxeDFCJW9+TGl6VSRLakNvIVRxeVh+NTtYNDQkcmpGNioyVW5nQ0hKMGIy
azcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
aW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52
YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWQx
ZjRmZWE4YmM4ZTZlYzFmNjRmODJhNDU3NmMxZjQxNTRjMmE4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKQEAg
LTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+IAorPHN0eWxlPiAKKwljYW52YXMgeworCQlk
aXNwbGF5OiBibG9jazsKKwkJcG9zaXRpb246IGZpeGVkOworCQlsZWZ0OiAwcHg7CisJCXRvcDog
MHB4OworCQlyaWdodDogMHB4OworCQlib3R0b206IDBweDsKKwkJYm9yZGVyOiBub25lOworCQl3
aWR0aDogMTAwcHg7CisJCWhlaWdodDogMTAwcHg7CisJCW1hcmdpbjogMHB4OworCQlwYWRkaW5n
OiAwcHg7CisJCWltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKKwl9
Cis8L3N0eWxlPiAKKzxib2R5PiAKKyAgICA8IS0tIFRoZSByZXN1bHRpbmcgaW1hZ2Ugc2hvdWxk
IGJlIDEwMHgxMDAsIGNvbnNpc3Rpbmcgb2YgNCA1MHg1MCBibG9ja3Mgb2Ygc29saWQgY29sb3Is
IHdpdGggbm8gYmx1cnJpbmcgb2YgZWRnZXMgLS0+CisJPGNhbnZhcyB3aWR0aD0iMiIgaGVpZ2h0
PSIyIj48L2NhbnZhcz4gCis8L2JvZHk+IAorPHNjcmlwdD4gCisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCh0cnVlKTsKKyAgICAgICAgCisJdmFyIGNhbnZhczsKKwl2YXIgaW1hZ2VIYW5kbGU7CisJY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdLmdldENvbnRl
eHQoIjJkIik7CisJY2FudmFzLndpZHRoID0gMjsKKwljYW52YXMuaGVpZ2h0ID0gMjsKKwlpbWFn
ZUhhbmRsZSA9IGNhbnZhcy5jcmVhdGVJbWFnZURhdGEoMiwgMik7CisKKwl2YXIgaW5kZXggPSAw
OworCXZhciBsZW5ndGggPSBpbWFnZUhhbmRsZS5kYXRhLmxlbmd0aDsKKworICAgIGltYWdlSGFu
ZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9
IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUu
ZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAw
OworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUu
ZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsK
KworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRh
dGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7Cisg
ICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRh
dGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAg
IGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5k
ZXgrK10gPSAyNTU7CisKKwljYW52YXMucHV0SW1hZ2VEYXRhKGltYWdlSGFuZGxlLCAwLCAwKTsK
Kzwvc2NyaXB0PiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXpl
LWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTkxZGVjZDgy
OGU0YjIzOTdhYmI5ODIzNzY5YjJkNjI3MGE3ZDIyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAx
MTI0NAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdD
Q000NyQ9U3VGeGVTSUQKelgydkVhbUtKNmYyOGt4N01rYX5JREhldG5yV1BpdENLa3F0N0tXdVA4
fHJ7Mnl2dVpVNClBbiNSdFBBe1BzX3xuCnpXbmlkYVl6O1l8RSRrQHImbiQxezF0cEhDWWAjcXU2
Tz1xN1M3KjNoRzVhZitsK0FObmV3KnVyNmwyZThkMWtOUQp6c2NsYF9AI043KHQkVkktN3FiNnZr
Z05LVHFWTHJqPCpJUlN3TU5vSGFvdncrXkwofX5lUmJlbS1SRkRlP2Aha1IKej9sYlRmVHs4TEYh
MTlGbWMrZXVqJSR5cGh0VW56TGVUejY5TztrZn56d3VMSGI4SWdEU15mTSo2QE8hTip4fkJtCno8
KHRhYSZicVgxN0pKS0loWD9NblpmYjNLRko4ek1EYTYhYWJBT0BjQGUrPnZrOGdaPih7SmZsUyNm
WUh6cWFqPgp6TlRuSkZRezhqKnpCX2A/cyRPPHpfT09gcHdKXndUJmhfcG8qSmFyPV5Ve3U7NVpM
UUtWY0c2OD9eWSkqb2E2VjYKelpeR1dXVStWbGUtP0taVWMhKm5hdC1hZmgtZyNlcHVHJjlKZTdO
TTxrdjNaeTNEWWs+NT02STR0Xjhxbk5GLWpzCnpTQTlgUDtZfmY+azJCVyY0ZzJLUFI0fkVmUjd6
cSlhZz5NdWIpVVEreVZfWjYpdmdQI2VeZWU4X15gNUhJUWB6MAp6eVlGM1pGfDlZP2xqVmAoblpA
ZjdBbUdaOUlBY1NBTHp8NzFwfjxFcWQqIyheKHZ6IT1OPiNGVW1uNkF0YmdWWUoKelc0az9ZJHo3
WCY4Y0t5em9WUmpKYHM0VWRZeUM8OHI8RmZYJDg1TH1fST05USp8VDxpZFNIRkA+Q0J4e2FAUX1Q
Cnpjd0Zvb1MyT2lXKzJuQmRYPV5JMF9STS1DVyZiOTh5NVh9WClCWXBIOC05UChqaH1qRXhATTJh
KFpge21Vd09CYgp6TWo0dmxwUHk1MlpUbT4/eXghSnAjY01tZSZCSkMtUHlkX2NAJSFEWEooSGg+
e2A4T2dgdGVXdCooMXIxRyE1MHQKenh9R2FgUEN1Jm1hbmNSJSkhZEh+YSp1UCZvIVh7KERSPCY4
bTglSH12LVcofGtGfTRrKnl+byReRUdnYTxlNXQkCnpvIXsjWlh7RElWLU5+MiN0Ti1AI0tqS2Zt
Y1JpbzQhSzl6XztLYTtieHh0MCsxczB8KiVgMEJWQik8UCo/VDJsNwp6Kl5CRWV7OykqWXRRSzF2
V0lBN0E1MkgrM2R6SVZeJV44PWNPKj9CRClVR3BzQH4pU3NsN2h8eis7JEVNeH5fVVgKeiltdj15
JStSRWxXakFKQ21kJXF7WHpCRiokYTFnTCQtbVpyNnh7SDRMKHRFa1lsM2RwYEFKPUNvYz01U3pA
RVJaCnoyUChRZDg1azU4Slk1X15EajQ3MUd8WkZyNmt2N3kqWlF0TEhTNmoyK2tZTD5JNXhFJTVZ
Zig+ISh4OXdLS31wegp6fDNDbFI/TjkyaUttSjN0YF9DVyRRKjEwODB0eVpkNDIoP1RFZE8/WUBM
UjZ9PTBIUmIxVWZYeE1BeyQ7SiFvclMKeip0emk0VCh+WTQ0akVSSzZCQ2EqR2EtY1hJNTtMcXVl
Iz82R0lpNy1QI0JEYyhQJW0lbV87NihmQnlSU2s3b0pyCnpBM3B5cS0yZHNMXyY/Uj43Vm4tWiFa
TUxWKzx8ejlQeEZCXzlYellPWEpJKkVvam48cmc7X1lCdShFams2SnxpPAp6O1JrYVk3JUowcWc8
eXMtSDEyNiZJOWJvY2ZZN3I/U1V9PFo4ZWIqMnJVfksjM1AxZkI7SktIZnY3Q3dOJD10MTsKemFD
PSFrRiledzk9VlhBQzkzYkhqZWh2K0xIayk8QUg5NXBORyg1M3FXSSpWLSRIXzZGe0Y8NXxUKzww
fGp0UEklCno4SVh6ellldlJUPVdlTVdKWHAhZElPI3ROMUdJPCZucEw1JDtCWVQ7d2hMVTdnMSo5
TnBvfDZ6Nkx+NCtVcnFnZgp6PjlYPW0+bSM0JlAyTWdIUG5yXjNLZSRmXyt8Tkx5THttbl9weHJ4
YUlwSWw+MlV6Y29zdSZGcVhvNDZgQUVVV3AKenZ+KztBRG5AZ3xYbEB3STRXcWRNKyNNS2dEVUcl
cU1fYmFjelF0JjY3fGppJXhuVlJuZlFRPmcrc1VLdDxrNUVXCnpYZ2hoZG95XkVJU3s5QyRnYDtJ
NSo9MXErbGo/MjsyOTY1UVNeeVN+KE8kLUFGSnJXcUcxfCkqP1BaTFhnYCtkcQpocXgxQiVvfkxp
elUkS2pDbyFUcXlYfjU7WDQ0JHJqRjYqMlVuZ0NISjBiMms3CgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1j
b250cmFzdC1pbWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3
YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
IEBACisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMmZjZmE3YTYxMzk1MTkzYTJiZmE5MjNjMmRiYjE4
YjFmZTg3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRp
bWl6ZS1jb250cmFzdC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1s
PiAKKzxzdHlsZT4gCisJaW1nIHsKKwkJZGlzcGxheTogYmxvY2s7CisJCXBvc2l0aW9uOiBmaXhl
ZDsKKwkJbGVmdDogMHB4OworCQl0b3A6IDBweDsKKwkJcmlnaHQ6IDBweDsKKwkJYm90dG9tOiAw
cHg7CisJCWJvcmRlcjogbm9uZTsKKwkJd2lkdGg6IDEwMHB4OworCQloZWlnaHQ6IDEwMHB4Owor
CQltYXJnaW46IDBweDsKKwkJcGFkZGluZzogMHB4OworCQlpbWFnZS1yZW5kZXJpbmc6IC13ZWJr
aXQtb3B0aW1pemUtY29udHJhc3Q7CisJfQorPC9zdHlsZT4gCis8Ym9keT4gCisgICAgPCEtLSBU
aGUgcmVzdWx0aW5nIGltYWdlIHNob3VsZCBiZSAxMDB4MTAwLCBjb25zaXN0aW5nIG9mIDQgNTB4
NTAgYmxvY2tzIG9mIHNvbGlkIGNvbG9yLCB3aXRoIG5vIGJsdXJyaW5nIG9mIGVkZ2VzIC0tPgor
CTxpbWFnZSBzdHlsZT0iIiBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FB
QUFOU1VoRVVnQUFBQUlBQUFBQ0NBWUFBQUJ5dGcwa0FBQUFGRWxFUVZRSUhXUDR6OER3SHd5Qk5K
RE44QjhBUU5FRyt0NUlrMmtBQUFBQVNVVk9SSzVDWUlJPSI+PC9pbWc+IAorPC9ib2R5PiAKKzxz
Y3JpcHQ+IAorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAzYzgzZmFhYjE1M2ZiODg3ODlmNWM0NzhmNDFjNjE3ZDJjMTNkZmZjLi5lNmUzMmNmNDQz
NDY2MGUwNzcxMjA1N2ViYjE4ZjFjMGI1OTU4MTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUg
QEAKKzIwMTEtMDQtMTEgIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpbXBsZW1l
bnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250cmFzdCAod2l0aCBhIHZlbmRvciBwcmVm
aXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3CisKKyAgICAgICAgVGVzdHM6IGNzczMv
aW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sCisgICAgICAgICAgICAgICBjc3Mz
L2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS5odG1sCisKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAg
KiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAqIGNz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgor
ICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9TVkdDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRTVkdQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBj
c3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAgKiBjc3MvU1ZHQ1NTU3R5bGVTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1By
b3BlcnR5KToKKyAgICAgICAgKiBjc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAg
KiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpwYWludCk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUmVuZGVyaW5nTW9kZS5oOiBBZGRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6c2hvdWxkUGFpbnRBdExvd1F1YWxpdHkp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldEltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbml0aWFsSW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5k
ZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6SW5oZXJpdGVkRmxhZ3M6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OnNldEJpdERlZmF1
bHRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OndyaXRlU3R5bGUpOgorCiAyMDExLTA0LTI1ICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MzZkNjUxOWU4ZTY0NGZhMTZhNDdjOWVjYTE3ZmVjMDI2Yjc5OWFlMS4uNDA3M2QzNWQxZDQwMjU3
ZjAyYjA1MzIxZmVjNzQ4MjlkYmM0OGQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA2MSw2ICsxMDYxLDcgQEAKIAkJNDkw
NzA3RTYxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U0MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi87IH07CiAJCTQ5MDcwN0U3MTIxOUMwNDMw
MEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2Vi
S2l0QnJpZGdlLmggKi87IH07CiAJCTQ5Mjg2Mzk5MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJj
ZUxvYWRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VMb2FkSW5mby5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ5MjkxRTRCMTM0MTcy
QzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MjkxRTRBMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFn
ZVJlbmRlcmluZ01vZGUuaCAqLzsgfTsKIAkJNDkzRTVFMDkxMkQ2NDIwNTAwMDIwMDgxIC8qIFBs
YXRmb3JtQ0FMYXllckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDkzRTVFMDgxMkQ2NDIwNTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNs
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ5NDg0RkMxMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCMzEwMkNGMjNDMDAx
ODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwICovOyB9OwogCQk0OTQ4NEZDMjEwMkNGMjNDMDAx
ODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVu
dC5oICovOyB9OwpAQCAtNzYxOSw2ICs3NjIwLDcgQEAKIAkJNDkwNzA3RTQxMjE5QzA0MzAwRDkw
RTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNv
dXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNl
TG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkyOTFFNEExMzQxNzJD
ODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbWFnZVJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDkzRTVFMDgxMkQ2NDIwNTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQu
aDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0OTQ4NEZCMzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FudmFzR3JhZGllbnQuY3Bw
OyBwYXRoID0gY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDk0ODRGQjQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc0dyYWRpZW50Lmg7IHBhdGggPSBj
YW52YXMvQ2FudmFzR3JhZGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3
OTY3LDYgKzE3OTY5LDcgQEAKIAkJCQlCMkExMEI5MTBCMzgxOEJEMDAwOTlBQTQgLyogSW1hZ2VC
dWZmZXIuaCAqLywKIAkJCQkyMkJEOUY3RDEzNTM2MjVDMDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJE
YXRhLmggKi8sCiAJCQkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIu
aCAqLywKKwkJCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2Rl
LmggKi8sCiAJCQkJQjI3NTM1NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8s
CiAJCQkJQjI3NTM1NDQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggKi8sCiAJCQkJRTQ2
MkE0QTAxMTNFNzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFzaC5oICovLApAQCAtMjMwODEsNiAr
MjMwODQsNyBAQAogCQkJCTQzNThFODg2MTM2MEEzM0IwMEU0NzQ4QyAvKiBTVkdGRURyb3BTaGFk
b3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzgxMEMxQzEzNjVBNDk2MDBFRDZFMzMg
LyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzODEwQzFFMTM2
NUE0RDQwMEVENkUzMyAvKiBXb3JrZXJDb250ZXh0SW5zcGVjdG9yUHJveHkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA5Y2I5ZmQ3ZjNmZDZmYzgyNjYyYTg2ZmJkZTNkMzE3
NDk1NGFkZmY3Li43NzY4MTgwYjcwMjc2MmMyN2E5N2U3NjA2Y2M2ZTQ5MjZkZjkwMGNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cApAQCAtOTksNiArOTksNyBAQCBzdGF0aWMgY29uc3QgaW50IGNvbXB1dGVkUHJvcGVydGllc1td
ID0gewogICAgIENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsCiAgICAgQ1NTUHJvcGVydHlGb250V2Vp
Z2h0LAogICAgIENTU1Byb3BlcnR5SGVpZ2h0LAorICAgIENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJp
bmcsCiAgICAgQ1NTUHJvcGVydHlMZWZ0LAogICAgIENTU1Byb3BlcnR5TGV0dGVyU3BhY2luZywK
ICAgICBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsCkBAIC0yNjMsNyArMjY0LDYgQEAgc3RhdGljIGNv
bnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eUZpbGwsCiAg
ICAgQ1NTUHJvcGVydHlGaWxsT3BhY2l0eSwKICAgICBDU1NQcm9wZXJ0eUZpbGxSdWxlLAotICAg
IENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmcsCiAgICAgQ1NTUHJvcGVydHlNYXJrZXJFbmQsCiAg
ICAgQ1NTUHJvcGVydHlNYXJrZXJNaWQsCiAgICAgQ1NTUHJvcGVydHlNYXJrZXJTdGFydCwKQEAg
LTExNTYsNiArMTE1Niw4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAgICAgICAgICAgICBp
ZiAoc3R5bGUtPmJvcmRlckZpdCgpID09IEJvcmRlckZpdEJvcmRlcikKICAgICAgICAgICAgICAg
ICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlQm9yZGVyKTsKICAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVMaW5lcyk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlJbWFnZVJlbmRlcmluZzoKKyAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKHN0eWxlLT5pbWFnZVJlbmRlcmluZygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUxlZnQ6CiAgICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShzdHlsZS5n
ZXQoKSwgQ1NTUHJvcGVydHlMZWZ0LCBwcmltaXRpdmVWYWx1ZUNhY2hlKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUxldHRlclNwYWNpbmc6CkBAIC0xNzgyLDcgKzE3ODQsNiBAQCBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NT
VmFsdWUoaW50IHByb3BlcgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5RmlsbDoKICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZpbGxPcGFjaXR5OgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rmls
bFJ1bGU6Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlJbWFnZVJlbmRlcmluZzoKICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU1hcmtlcjoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmtlckVu
ZDoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmtlck1pZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKaW5kZXggYWU2YjYxYjYwYzE5OGNhMDRjOTQxYWRhYjdhOWE1NWQyMmQyMzNiNi4uOWU4
OGY0NmJkYmM5MTliNGJjNGE0Y2QzNWI0NDFmNzgwOGVhOWRiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKQEAgLTE3MTYsNyArMTcxNiwxMCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1
ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIChpZCA+PSBDU1NWYWx1
ZVZpc2libGVwYWludGVkICYmIGlkIDw9IENTU1ZhbHVlU3Ryb2tlKSkKICAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7Ci0KKyAgICBjYXNlIENTU1Byb3Bl
cnR5SW1hZ2VSZW5kZXJpbmc6IC8vIGF1dG8gfCBvcHRpbWl6ZUNvbnRyYXN0CisgICAgICAgIGlm
IChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVXZWJraXRPcHRpbWl6ZUNvbnRy
YXN0KQorICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBicmVhazsK
ICAgICAvLyBFbmQgb2YgQ1NTMyBwcm9wZXJ0aWVzCiAKICAgICAvLyBBcHBsZSBzcGVjaWZpYyBw
cm9wZXJ0aWVzLiAgVGhlc2Ugd2lsbCBuZXZlciBiZSBzdGFuZGFyZGl6ZWQgYW5kIGFyZSBwdXJl
bHkgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CmluZGV4IDM0ZmY5MjYzMzk3ZTlmOWRlOWU3MzUzODcyMjhkNmUwOGZiYTcxMDMuLjQ3NWVkYjNm
OTdmZWRkMjVmNjExNmUxNTcwOWJiNTE1MDlhYzBlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMjg4OSw2ICsyODg5LDkgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVJbWFn
ZVJlbmRlcmluZyBlKQogICAgICAgICBjYXNlIElSX09QVElNSVpFUVVBTElUWToKICAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIElSX09QVElNSVpFQ09OVFJBU1Q6CisgICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRPcHRpbWl6ZUNvbnRyYXN0OworICAgICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCkBAIC0yOTAxLDYgKzI5MDQsOCBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUltYWdlUmVuZGVyaW5nKCkgY29uc3QK
ICAgICAgICAgICAgIHJldHVybiBJUl9PUFRJTUlaRVNQRUVEOwogICAgICAgICBjYXNlIENTU1Zh
bHVlT3B0aW1pemVxdWFsaXR5OgogICAgICAgICAgICAgcmV0dXJuIElSX09QVElNSVpFUVVBTElU
WTsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE9wdGltaXplQ29udHJhc3Q6CisgICAgICAg
ICAgICByZXR1cm4gSVJfT1BUSU1JWkVDT05UUkFTVDsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIElSX0FVVE87
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IGE2MmQyZjMxY2ZjZTMw
YmUzMjdhYTA0MWFmNjYyNWZhNmE1YmI3NWUuLjUwZDZlNzFlZmRmZjNjZDMwMTczN2VhYWY5Zjkx
MWEzNDQ0MGZlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC04
NCw2ICs4NCw3IEBAIGVtcHR5LWNlbGxzCiBmbG9hdAogZm9udC1zdHJldGNoCiBoZWlnaHQKK2lt
YWdlLXJlbmRlcmluZwogbGVmdAogbGV0dGVyLXNwYWNpbmcKIGxpc3Qtc3R5bGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBmZjM5YWIyMWNkNjExMGU4Y2ZhNmJk
YWUxZWM5MGY5MTQ5OTg2YWE2Li5kZDk4MjEwZDYwMDMzNmI0MDgxMWMzM2RiZjUwYzg2ZWNlOTZk
ZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC01MTI0LDYg
KzUxMjQsMTEgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChvdXRs
aW5lT2Zmc2V0LCBPdXRsaW5lT2Zmc2V0KQogICAgICAgICBtX3N0eWxlLT5zZXRPdXRsaW5lT2Zm
c2V0KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxlKCksIG1fcm9vdEVsZW1l
bnRTdHlsZSwgem9vbUZhY3RvcikpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eUltYWdlUmVuZGVyaW5nOgorICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBtX3N0eWxlLT5zZXRJbWFnZVJlbmRlcmluZygqcHJpbWl0
aXZlVmFsdWUpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRSZW5k
ZXJpbmc6IHsKICAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IG1fc3R5
bGUtPmZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICBpZiAoaXNJbmhlcml0KSAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNmRhYzA2ZmNjYmM5MmJiOTgzYTM0NzQ3
MDVkOGE0Mzk2OGMwMWY1Yy4uZDY3MGE2MmY0ZjIwZGQ1YTdhMmQyYWMwNjY5YTFhN2UwNjVjOTJl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTgwMyw0ICs4MDMs
OCBAQCBnbHlwaHMKIGlubGluZS1ib3gKIHJlcGxhY2VkCiAKLQorIyBpbWFnZS1yZW5kZXJpbmcK
KyNhdXRvCisjb3B0aW1pemVTcGVlZAorb3B0aW1pemVRdWFsaXR5Cistd2Via2l0LW9wdGltaXpl
LWNvbnRyYXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDVkZmUwM2UwMzAxM2FkNWUxZTdmMWRlYjFkYmJkOTNi
MjI0ZWM2NzcuLjBjMmFhZmY5OTY3ODU2YzA0OTUxZDJlZWY1YTMxMzJkNzM3OTlhMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC0xMDMsOCArMTAzLDYgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRTVkdQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm8KICAgICAg
ICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5maWxsUnVs
ZSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yUmVuZGVyaW5nOgogICAgICAgICAg
ICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5bGUtPmNvbG9yUmVuZGVy
aW5nKCkpOwotICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmc6Ci0gICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+aW1hZ2VSZW5k
ZXJpbmcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFwZVJlbmRlcmluZzoKICAgICAg
ICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5zaGFwZVJl
bmRlcmluZygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVjYXA6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDdjMTU3YThjNzM3ODc4
ZGE4ZGE2YzRlMGU3ZGRkZTAwODc0MGY0NjQuLjM4YWQzYjZhMDEwZjAwZDQ4ODZlNmZlNGZlYzQ5
ZjhjNzE1ODMzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQcm9wZXJ0
eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmlu
CkBAIC0yMyw3ICsyMyw3IEBAIGZpbGwKIGZpbGwtb3BhY2l0eQogZmlsbC1ydWxlCiAjZm9udC1z
aXplLWFkanVzdAotaW1hZ2UtcmVuZGVyaW5nCisjaW1hZ2UtcmVuZGVyaW5nCiBtYXJrZXIKIG1h
cmtlci1lbmQKIG1hcmtlci1taWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdD
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVj
dG9yLmNwcAppbmRleCA0N2UzZmMzOTdjMjEwOGVmY2NmYmYwYmRmMzlkY2MxNTU5NTA3Njk0Li4y
MzcwNmIyZTExNTlmZTk0MzkzZDMxYzI2ZWViMjk5N2JiMzY2MWVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0yMTQsMTMgKzIxNCw2IEBAIHZvaWQg
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlKiB2YWx1
ZSkKICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Sm9pblN0eWxlKCpwcmltaXRpdmVWYWx1
ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5SW1hZ2VSZW5kZXJpbmc6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklU
X0FORF9JTklUSUFMKGltYWdlUmVuZGVyaW5nLCBJbWFnZVJlbmRlcmluZykKLSAgICAgICAgICAg
IGlmIChwcmltaXRpdmVWYWx1ZSkKLSAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0SW1hZ2VS
ZW5kZXJpbmcoKnByaW1pdGl2ZVZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFwZVJlbmRlcmluZzoKICAgICAgICAgewogICAg
ICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc2hhcGVSZW5kZXJpbmcsIFNoYXBl
UmVuZGVyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVlS2V5
d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRl
eCBhMmM5ZjgzNzczYTRkNjc0MjQxMjE2MGY2MTk5ZGI5MDc5NjdjNWM0Li40MTdhOGQ1ZTYyN2Nm
MDZhNTM4MzIwMzJmNDgxZjliYTVlMzhmOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NT
VmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTk3LDcgKzE5Nyw3IEBAIGxpbmVhclJHQgogIyBDU1NfUFJP
UF9DT0xPUl9SRU5ERVJJTkcKICNhdXRvCiAjb3B0aW1pemVTcGVlZAotb3B0aW1pemVRdWFsaXR5
Cisjb3B0aW1pemVRdWFsaXR5CiAKICMjIENTU19QUk9QX0ZJTEwKICNjdXJyZW50Q29sb3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggNzc0NTI2YjFlOTYx
YmIyNTQ2ZjA2NTFhNGU3YzA4NWIyOTJlOGExYS4uMTFlZDIyNjM5NDQyNTIzZDBhMDRjODkzNzM3
MzAwZDBiMzIwYmQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAg
ICAgICAgICgqaXQpLT5jYW52YXNSZXNpemVkKHRoaXMpOwogfQogCi12b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIp
Cit2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIHIsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIC8vIENs
ZWFyIHRoZSBkaXJ0eSByZWN0CiAgICAgbV9kaXJ0eVJlY3QgPSBGbG9hdFJlY3QoKTsKQEAgLTI4
MCwxMSArMjgwLDExIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcikKICAgICAgICAgSW1hZ2VCdWZmZXIqIGlt
YWdlQnVmZmVyID0gYnVmZmVyKCk7CiAgICAgICAgIGlmIChpbWFnZUJ1ZmZlcikgewogICAgICAg
ICAgICAgaWYgKG1fcHJlc2VudGVkSW1hZ2UpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJh
d0ltYWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHIpOwor
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNlbnRlZEltYWdlLmdldCgp
LCBDb2xvclNwYWNlRGV2aWNlUkdCLCByLCBDb21wb3NpdGVTb3VyY2VPdmVyLCB1c2VMb3dRdWFs
aXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZSBpZiAoaW1hZ2VCdWZmZXItPmRyYXdzVXNpbmdD
b3B5KCkpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGNvcGllZEltYWdlKCks
IENvbG9yU3BhY2VEZXZpY2VSR0IsIHIpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJ
bWFnZShjb3BpZWRJbWFnZSgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByLCBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURl
dmljZVJHQiwgcik7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGlt
YWdlQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByLCBDb21wb3NpdGVTb3VyY2VPdmVyLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggMjA3YzM4NDI1ZjYwMGJhY2YyMDUwOTliZWU4OTA0
NjllODk1NzZmMS4uNzIwZjEzN2I3NDFhZGMzNDkwY2JlMjM5NWY3NTkxODlkMzQxMWQ0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtOTcsNyArOTcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gVXNlZCBmb3IgcmVuZGVyaW5nCiAgICAgdm9pZCBkaWREcmF3KGNvbnN0
IEZsb2F0UmVjdCYpOwogCi0gICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJ
bnRSZWN0Jik7CisgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0
JiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAKICAgICBHcmFwaGljc0NvbnRl
eHQqIGRyYXdpbmdDb250ZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUmVuZGVyaW5nTW9kZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U0NjJm
YmE1OGUwMjM2NTVhZDg1NTE3YTQ5YzJkZTYzYTIyNDVkMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUmVuZGVyaW5nTW9kZS5oCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbWFnZVJlbmRlcmluZ01vZGVfaAorI2RlZmluZSBJ
bWFnZVJlbmRlcmluZ01vZGVfaAorICAgIAorbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIElt
YWdlUmVuZGVyaW5nTW9kZSB7IEF1dG9JbWFnZVJlbmRlcmluZywgT3B0aW1pemVDb250cmFzdCB9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisgICAgCisjZW5kaWYgLy8gSW1hZ2VSZW5kZXJp
bmdNb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCmluZGV4IGU4Njg3ZGRkNWZhZTE3Mzg2ZWI3ODJhNzM4NWJjNWY5ZTU5NTg0NzYu
LjQ1MjFmOTI0MDk1ZTBiYzk0ZmYwMzBlYzgxZDE3Y2ZjYWYyZjFlNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTM4LDYg
KzEzOCw5IEBAIGJvb2wgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6c2hvdWxkUGFpbnRBdExvd1F1
YWxpdHkoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBSCiAgICAgaWYgKCFpbWFnZSB8fCAhaW1h
Z2UtPmlzQml0bWFwSW1hZ2UoKSB8fCBjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChvYmplY3QtPnN0eWxlKCktPmltYWdlUmVuZGVy
aW5nKCkgPT0gV2ViQ29yZTo6SVJfT1BUSU1JWkVDT05UUkFTVCkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRvIHVzZSB0aGUgdW56b29tZWQgaW1hZ2Ugc2l6
ZSwgc2luY2UgaWYgYSBmdWxsIHBhZ2Ugem9vbSBpcyBpbiBlZmZlY3QsIHRoZSBpbWFnZQogICAg
IC8vIGlzIGFjdHVhbGx5IGJlaW5nIHNjYWxlZC4KICAgICBJbnRTaXplIGltYWdlU2l6ZShpbWFn
ZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJIVE1MQ2FudmFzLmNwcAppbmRleCBkZTJhMmMxNTZmMWQ4M2MyODkyZTkyMmFmZGY3
NjBlZTA2MDY3ZTFmLi4zODcwNGIzNjI0YjllYTNhZjAzMzZkNDg2YTJjZTI2MDI4YjhiNzc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCkBAIC01
OCw3ICs1OCw4IEBAIHZvaWQgUmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZChQYWludElu
Zm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiB7CiAgICAgSW50UmVjdCByZWN0ID0gY29u
dGVudEJveFJlY3QoKTsKICAgICByZWN0Lm1vdmUodHgsIHR5KTsKLSAgICBzdGF0aWNfY2FzdDxI
VE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCByZWN0
KTsKKyAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IHN0eWxlKCktPmltYWdlUmVuZGVyaW5n
KCkgPT0gV2ViQ29yZTo6SVJfT1BUSU1JWkVDT05UUkFTVDsKKyAgICBzdGF0aWNfY2FzdDxIVE1M
Q2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCB1
c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIFJlbmRlckhUTUxDYW52YXM6OmNhbnZhc1Np
emVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCmluZGV4IDZlNGM3ODhmMGVlMmRjM2M1ZDA1MTM0Mjk3NTcwNjA4MWM3MDRiNDguLjc5
ZWQ3MGRhMDVkN2VmOTIxZGIyZTFjYmIzMWE1NWVlN2Q5OWQ3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNTUwLDYgKzU1MCw3IEBA
IFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3Ro
ZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAgIHx8IGluaGVyaXRlZF9mbGFncy5fdGV4
dF9kZWNvcmF0aW9ucyAhPSBvdGhlci0+aW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25z
CiAgICAgICAgIHx8IGluaGVyaXRlZF9mbGFncy5fZm9yY2VfYmFja2dyb3VuZHNfdG9fd2hpdGUg
IT0gb3RoZXItPmluaGVyaXRlZF9mbGFncy5fZm9yY2VfYmFja2dyb3VuZHNfdG9fd2hpdGUKICAg
ICAgICAgfHwgaW5oZXJpdGVkX2ZsYWdzLl9pbnNpZGVMaW5rICE9IG90aGVyLT5pbmhlcml0ZWRf
ZmxhZ3MuX2luc2lkZUxpbmsKKyAgICAgICAgfHwgaW5oZXJpdGVkX2ZsYWdzLm1faW1hZ2VSZW5k
ZXJpbmcgIT0gb3RoZXItPmluaGVyaXRlZF9mbGFncy5tX2ltYWdlUmVuZGVyaW5nCiAgICAgICAg
IHx8IHN1cnJvdW5kLT5ib3JkZXIgIT0gb3RoZXItPnN1cnJvdW5kLT5ib3JkZXIKICAgICAgICAg
fHwgKm1fYmFja2dyb3VuZC5nZXQoKSAhPSAqb3RoZXItPm1fYmFja2dyb3VuZC5nZXQoKQogICAg
ICAgICB8fCB2aXN1YWwtPnRleHREZWNvcmF0aW9uICE9IG90aGVyLT52aXN1YWwtPnRleHREZWNv
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmlu
ZGV4IDMyZTQxYmNmOTU5MWVkMDExY2Y0OGQ1MzczNjk3YTlhYzA3MjUyZWEuLjBjN2I3ZTgxODYx
NWYyYTM0NGM3ZmY2OGEyMGRhN2JiNWFhN2VkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xNzgsNyArMTc4LDggQEAgcHJvdGVjdGVkOgog
ICAgICAgICAgICAgICAgICYmIChfZm9yY2VfYmFja2dyb3VuZHNfdG9fd2hpdGUgPT0gb3RoZXIu
X2ZvcmNlX2JhY2tncm91bmRzX3RvX3doaXRlKQogICAgICAgICAgICAgICAgICYmIChfcG9pbnRl
ckV2ZW50cyA9PSBvdGhlci5fcG9pbnRlckV2ZW50cykKICAgICAgICAgICAgICAgICAmJiAoX2lu
c2lkZUxpbmsgPT0gb3RoZXIuX2luc2lkZUxpbmspCi0gICAgICAgICAgICAgICAgJiYgKG1fd3Jp
dGluZ01vZGUgPT0gb3RoZXIubV93cml0aW5nTW9kZSk7CisgICAgICAgICAgICAgICAgJiYgKG1f
d3JpdGluZ01vZGUgPT0gb3RoZXIubV93cml0aW5nTW9kZSkKKyAgICAgICAgICAgICAgICAmJiAo
bV9pbWFnZVJlbmRlcmluZyA9PSBvdGhlci5tX2ltYWdlUmVuZGVyaW5nKTsKICAgICAgICAgfQog
CiAgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJbmhlcml0ZWRGbGFncyYgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CkBAIC0yMDcsNiArMjA4LDkgQEAgcHJv
dGVjdGVkOgogCiAgICAgICAgIC8vIENTUyBUZXh0IExheW91dCBNb2R1bGUgTGV2ZWwgMzogVmVy
dGljYWwgd3JpdGluZyBzdXBwb3J0CiAgICAgICAgIHVuc2lnbmVkIG1fd3JpdGluZ01vZGUgOiAy
OyAvLyBXcml0aW5nTW9kZQorICAgICAgICAvLyBDU1MgSW1hZ2UgVmFsdWVzIExldmVsIDMKKyAg
ICAgICAgdW5zaWduZWQgbV9pbWFnZVJlbmRlcmluZyA6IDI7IC8vIEVJbWFnZVJlbmRlcmluZyAq
LworCiAgICAgICAgIC8vIDQ1IGJpdHMKICAgICB9IGluaGVyaXRlZF9mbGFnczsKIApAQCAtNzgz
LDYgKzc4Nyw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUo
KSBjb25zdCB7IHJldHVybiB3cml0aW5nTW9kZSgpID09IExlZnRUb1JpZ2h0V3JpdGluZ01vZGUg
fHwgd3JpdGluZ01vZGUoKSA9PSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOyB9CiAgICAgYm9vbCBp
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdNb2RlKCkg
PT0gUmlnaHRUb0xlZnRXcml0aW5nTW9kZSB8fCB3cml0aW5nTW9kZSgpID09IEJvdHRvbVRvVG9w
V3JpdGluZ01vZGU7IH0KIAorICAgIEVJbWFnZVJlbmRlcmluZyBpbWFnZVJlbmRlcmluZygpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVJbWFnZVJlbmRlcmluZz4oaW5oZXJpdGVkX2ZsYWdz
Lm1faW1hZ2VSZW5kZXJpbmcpOyB9CisKKyAgICAKICAgICBFU3BlYWsgc3BlYWsoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxFU3BlYWs+KHJhcmVJbmhlcml0ZWREYXRhLT5zcGVhayk7IH0KICAgICAg
ICAgCiAvLyBhdHRyaWJ1dGUgc2V0dGVyIG1ldGhvZHMKQEAgLTkzNCw2ICs5NDEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRMaW5lSGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoaW5oZXJpdGVk
LCBsaW5lX2hlaWdodCwgdikgfQogICAgIHZvaWQgc2V0Wm9vbShmbG9hdCBmKSB7IFNFVF9WQVIo
dmlzdWFsLCBtX3pvb20sIGYpOyBzZXRFZmZlY3RpdmVab29tKGVmZmVjdGl2ZVpvb20oKSAqIHpv
b20oKSk7IH0KICAgICB2b2lkIHNldEVmZmVjdGl2ZVpvb20oZmxvYXQgZikgeyBTRVRfVkFSKHJh
cmVJbmhlcml0ZWREYXRhLCBtX2VmZmVjdGl2ZVpvb20sIGYpIH0KKyAgICB2b2lkIHNldEltYWdl
UmVuZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2KSB7IGluaGVyaXRlZF9mbGFncy5tX2ltYWdlUmVu
ZGVyaW5nID0gdjsgfQogCiAgICAgdm9pZCBzZXRXaGl0ZVNwYWNlKEVXaGl0ZVNwYWNlIHYpIHsg
aW5oZXJpdGVkX2ZsYWdzLl93aGl0ZV9zcGFjZSA9IHY7IH0KIApAQCAtMTMxMyw2ICsxMzIxLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxUZXh0RW1w
aGFzaXNDdXN0b21NYXJrKCkgeyByZXR1cm4gbnVsbEF0b207IH0KICAgICBzdGF0aWMgVGV4dEVt
cGhhc2lzUG9zaXRpb24gaW5pdGlhbFRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgeyByZXR1cm4gVGV4
dEVtcGhhc2lzUG9zaXRpb25PdmVyOyB9CiAgICAgc3RhdGljIExpbmVCb3hDb250YWluIGluaXRp
YWxMaW5lQm94Q29udGFpbigpIHsgcmV0dXJuIExpbmVCb3hDb250YWluQmxvY2sgfCBMaW5lQm94
Q29udGFpbklubGluZSB8IExpbmVCb3hDb250YWluUmVwbGFjZWQ7IH0KKyAgICBzdGF0aWMgRUlt
YWdlUmVuZGVyaW5nIGluaXRpYWxJbWFnZVJlbmRlcmluZygpIHsgcmV0dXJuIElSX0FVVE87IH0K
IAogICAgIC8vIEtlZXAgdGhlc2UgYXQgdGhlIGVuZC4KICAgICBzdGF0aWMgTGluZUNsYW1wVmFs
dWUgaW5pdGlhbExpbmVDbGFtcCgpIHsgcmV0dXJuIExpbmVDbGFtcFZhbHVlKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmgKaW5kZXggMjc3MzY3ZjkxZGFjMTFiNTJkODc4ZjNlMTY5NjlmZGRhYTRmODE3My4uMGM3NWYz
OTRlN2M0NGVmNzZkYTliNDM4NjFhNmQzYWU4ZjUyNjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTQyNiw2
ICs0MjYsOCBAQCBlbnVtIFRleHRFbXBoYXNpc01hcmsgeyBUZXh0RW1waGFzaXNNYXJrTm9uZSwg
VGV4dEVtcGhhc2lzTWFya0F1dG8sIFRleHRFbXBoYXNpcwogCiBlbnVtIFRleHRFbXBoYXNpc1Bv
c2l0aW9uIHsgVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyLCBUZXh0RW1waGFzaXNQb3NpdGlvblVu
ZGVyIH07CiAKK2VudW0gRUltYWdlUmVuZGVyaW5nIHsgSVJfQVVUTywgSVJfT1BUSU1JWkVTUEVF
RCwgSVJfT1BUSU1JWkVRVUFMSVRZLCBJUl9PUFRJTUlaRUNPTlRSQVNUIH07CisgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZW5kZXJTdHlsZUNvbnN0YW50c19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcApp
bmRleCAxZWUxZjM2M2EzMjY0MzFkMmVjNGQzMDg1ZDIzNTY0M2MzN2VkNmZiLi41NmFkZDRlOTFi
YTMxNjk3MTcxMzVmZWNiZjMzNGI5MmFlZjljYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAKQEAgLTIwMiw3ICsyMDIsNiBAQCBT
dHlsZURpZmZlcmVuY2UgU1ZHUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgU1ZHUmVuZGVyU3R5bGUq
IG90aGVyKSBjb25zdAogCiAgICAgLy8gQ2hhbmdlcyBvZiB0aGVzZSBmbGFncyBvbmx5IGNhdXNl
IHJlcGFpbnRzLgogICAgIGlmIChzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xvclJlbmRlcmluZyAh
PSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmcKLSAgICAgICAgfHwg
c3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcgIT0gb3RoZXItPnN2Z19pbmhlcml0
ZWRfZmxhZ3MuX2ltYWdlUmVuZGVyaW5nCiAgICAgICAgIHx8IHN2Z19pbmhlcml0ZWRfZmxhZ3Mu
X3NoYXBlUmVuZGVyaW5nICE9IG90aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdzLl9zaGFwZVJlbmRl
cmluZwogICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jbGlwUnVsZSAhPSBvdGhlci0+
c3ZnX2luaGVyaXRlZF9mbGFncy5fY2xpcFJ1bGUKICAgICAgICAgfHwgc3ZnX2luaGVyaXRlZF9m
bGFncy5fZmlsbFJ1bGUgIT0gb3RoZXItPnN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ZpbGxSdWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCmluZGV4
IDg4YTQ4ZGY1YTM2ZjgyYjJkMmJhMGQxMzE4NWMyNDliYzFhNTc0YmMuLjBmZTRhODBjZGZjZDUy
MWY0NzM3ZDM3ZmMyZjFjNWI1YzMzMmU5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCkBAIC02Myw3ICs2Myw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgRUNvbG9ySW50ZXJwb2xhdGlvbiBpbml0aWFsQ29sb3JJbnRlcnBvbGF0aW9uRmls
dGVycygpIHsgcmV0dXJuIENJX0xJTkVBUlJHQjsgfQogICAgIHN0YXRpYyBFQ29sb3JSZW5kZXJp
bmcgaW5pdGlhbENvbG9yUmVuZGVyaW5nKCkgeyByZXR1cm4gQ1JfQVVUTzsgfQogICAgIHN0YXRp
YyBXaW5kUnVsZSBpbml0aWFsRmlsbFJ1bGUoKSB7IHJldHVybiBSVUxFX05PTlpFUk87IH0KLSAg
ICBzdGF0aWMgRUltYWdlUmVuZGVyaW5nIGluaXRpYWxJbWFnZVJlbmRlcmluZygpIHsgcmV0dXJu
IElSX0FVVE87IH0KICAgICBzdGF0aWMgTGluZUpvaW4gaW5pdGlhbEpvaW5TdHlsZSgpIHsgcmV0
dXJuIE1pdGVySm9pbjsgfQogICAgIHN0YXRpYyBFU2hhcGVSZW5kZXJpbmcgaW5pdGlhbFNoYXBl
UmVuZGVyaW5nKCkgeyByZXR1cm4gU1JfQVVUTzsgfQogICAgIHN0YXRpYyBFVGV4dEFuY2hvciBp
bml0aWFsVGV4dEFuY2hvcigpIHsgcmV0dXJuIFRBX1NUQVJUOyB9CkBAIC0xNDAsNyArMTM5LDYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycyhFQ29sb3JJ
bnRlcnBvbGF0aW9uIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xvckludGVycG9sYXRp
b25GaWx0ZXJzID0gdmFsOyB9CiAgICAgdm9pZCBzZXRDb2xvclJlbmRlcmluZyhFQ29sb3JSZW5k
ZXJpbmcgdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVuZGVyaW5nID0gdmFsOyB9
CiAgICAgdm9pZCBzZXRGaWxsUnVsZShXaW5kUnVsZSB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFn
cy5fZmlsbFJ1bGUgPSB2YWw7IH0KLSAgICB2b2lkIHNldEltYWdlUmVuZGVyaW5nKEVJbWFnZVJl
bmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcgPSB2YWw7
IH0KICAgICB2b2lkIHNldEpvaW5TdHlsZShMaW5lSm9pbiB2YWwpIHsgc3ZnX2luaGVyaXRlZF9m
bGFncy5fam9pblN0eWxlID0gdmFsOyB9CiAgICAgdm9pZCBzZXRTaGFwZVJlbmRlcmluZyhFU2hh
cGVSZW5kZXJpbmcgdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3NoYXBlUmVuZGVyaW5nID0g
dmFsOyB9CiAgICAgdm9pZCBzZXRUZXh0QW5jaG9yKEVUZXh0QW5jaG9yIHZhbCkgeyBzdmdfaW5o
ZXJpdGVkX2ZsYWdzLl90ZXh0QW5jaG9yID0gdmFsOyB9CkBAIC0yOTcsNyArMjk1LDYgQEAgcHVi
bGljOgogICAgIEVDb2xvckludGVycG9sYXRpb24gY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycygp
IGNvbnN0IHsgcmV0dXJuIChFQ29sb3JJbnRlcnBvbGF0aW9uKSBzdmdfaW5oZXJpdGVkX2ZsYWdz
Ll9jb2xvckludGVycG9sYXRpb25GaWx0ZXJzOyB9CiAgICAgRUNvbG9yUmVuZGVyaW5nIGNvbG9y
UmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gKEVDb2xvclJlbmRlcmluZykgc3ZnX2luaGVyaXRl
ZF9mbGFncy5fY29sb3JSZW5kZXJpbmc7IH0KICAgICBXaW5kUnVsZSBmaWxsUnVsZSgpIGNvbnN0
IHsgcmV0dXJuIChXaW5kUnVsZSkgc3ZnX2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGU7IH0KLSAg
ICBFSW1hZ2VSZW5kZXJpbmcgaW1hZ2VSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiAoRUltYWdl
UmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRlcmluZzsgfQogICAgIExp
bmVKb2luIGpvaW5TdHlsZSgpIGNvbnN0IHsgcmV0dXJuIChMaW5lSm9pbikgc3ZnX2luaGVyaXRl
ZF9mbGFncy5fam9pblN0eWxlOyB9CiAgICAgRVNoYXBlUmVuZGVyaW5nIHNoYXBlUmVuZGVyaW5n
KCkgY29uc3QgeyByZXR1cm4gKEVTaGFwZVJlbmRlcmluZykgc3ZnX2luaGVyaXRlZF9mbGFncy5f
c2hhcGVSZW5kZXJpbmc7IH0KICAgICBFVGV4dEFuY2hvciB0ZXh0QW5jaG9yKCkgY29uc3QgeyBy
ZXR1cm4gKEVUZXh0QW5jaG9yKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl90ZXh0QW5jaG9yOyB9CkBA
IC0zNDYsNyArMzQzLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgSW5oZXJpdGVkRmxhZ3MmIG90aGVyKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gKF9jb2xvclJlbmRlcmluZyA9PSBvdGhlci5fY29sb3JSZW5kZXJpbmcpCi0gICAgICAg
ICAgICAgICAgJiYgKF9pbWFnZVJlbmRlcmluZyA9PSBvdGhlci5faW1hZ2VSZW5kZXJpbmcpCiAg
ICAgICAgICAgICAgICAgJiYgKF9zaGFwZVJlbmRlcmluZyA9PSBvdGhlci5fc2hhcGVSZW5kZXJp
bmcpCiAgICAgICAgICAgICAgICAgJiYgKF9jbGlwUnVsZSA9PSBvdGhlci5fY2xpcFJ1bGUpCiAg
ICAgICAgICAgICAgICAgJiYgKF9maWxsUnVsZSA9PSBvdGhlci5fZmlsbFJ1bGUpCkBAIC0zNjYs
NyArMzYyLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICB9CiAKICAgICAgICAgdW5zaWduZWQgX2Nv
bG9yUmVuZGVyaW5nIDogMjsgLy8gRUNvbG9yUmVuZGVyaW5nCi0gICAgICAgIHVuc2lnbmVkIF9p
bWFnZVJlbmRlcmluZyA6IDI7IC8vIEVJbWFnZVJlbmRlcmluZyAKICAgICAgICAgdW5zaWduZWQg
X3NoYXBlUmVuZGVyaW5nIDogMjsgLy8gRVNoYXBlUmVuZGVyaW5nIAogICAgICAgICB1bnNpZ25l
ZCBfY2xpcFJ1bGUgOiAxOyAvLyBXaW5kUnVsZQogICAgICAgICB1bnNpZ25lZCBfZmlsbFJ1bGUg
OiAxOyAvLyBXaW5kUnVsZQpAQCAtNDIyLDcgKzQxNyw2IEBAIHByaXZhdGU6CiAgICAgICAgIHN2
Z19pbmhlcml0ZWRfZmxhZ3MuX2NsaXBSdWxlID0gaW5pdGlhbENsaXBSdWxlKCk7CiAgICAgICAg
IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVuZGVyaW5nID0gaW5pdGlhbENvbG9yUmVuZGVy
aW5nKCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ZpbGxSdWxlID0gaW5pdGlhbEZp
bGxSdWxlKCk7Ci0gICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ltYWdlUmVuZGVyaW5nID0g
aW5pdGlhbEltYWdlUmVuZGVyaW5nKCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3No
YXBlUmVuZGVyaW5nID0gaW5pdGlhbFNoYXBlUmVuZGVyaW5nKCk7CiAgICAgICAgIHN2Z19pbmhl
cml0ZWRfZmxhZ3MuX3RleHRBbmNob3IgPSBpbml0aWFsVGV4dEFuY2hvcigpOwogICAgICAgICBz
dmdfaW5oZXJpdGVkX2ZsYWdzLl9jYXBTdHlsZSA9IGluaXRpYWxDYXBTdHlsZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCmlu
ZGV4IDAwMzU4YTBkNTdiOWJhNmU1OTY3YjUyNmY4NWVkYTllZjVhMzFjNDAuLjJjMzNjNmRjOWJk
ZDg4OGNlYmEyYzFhODRmOGY3NTlhMmEyYTA5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKQEAgLTU0LDExICs1NCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBlbnVtIEVDb2xvclJlbmRlcmluZyB7CiAgICAgICAg
IENSX0FVVE8sIENSX09QVElNSVpFU1BFRUQsIENSX09QVElNSVpFUVVBTElUWQogICAgIH07Ci0g
ICAgCi0gICAgZW51bSBFSW1hZ2VSZW5kZXJpbmcgewotICAgICAgICBJUl9BVVRPLCBJUl9PUFRJ
TUlaRVNQRUVELCBJUl9PUFRJTUlaRVFVQUxJVFkKLSAgICB9OwotCiAgICAgZW51bSBFU2hhcGVS
ZW5kZXJpbmcgewogICAgICAgICBTUl9BVVRPLCBTUl9PUFRJTUlaRVNQRUVELCBTUl9DUklTUEVE
R0VTLCBTUl9HRU9NRVRSSUNQUkVDSVNJT04KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggN2QzZjkwOTI3
MjgzZjI5MDRmNzc5ZmYwMGNjN2I2ZTNhYWU5Y2MyNC4uNzhiMmIwOGIwYmRlY2FjNzJhYzFlYjA2
NzNkODIzYzE3OWUyMmMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0zMjEsNyArMzIxLDYgQEAgc3RhdGljIHZv
aWQgd3JpdGVTdHlsZShUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3Qp
CiAKICAgICBpZiAoIW9iamVjdC5sb2NhbFRyYW5zZm9ybSgpLmlzSWRlbnRpdHkoKSkKICAgICAg
ICAgd3JpdGVOYW1lVmFsdWVQYWlyKHRzLCAidHJhbnNmb3JtIiwgb2JqZWN0LmxvY2FsVHJhbnNm
b3JtKCkpOwotICAgIHdyaXRlSWZOb3REZWZhdWx0KHRzLCAiaW1hZ2UgcmVuZGVyaW5nIiwgc3Zn
U3R5bGUtPmltYWdlUmVuZGVyaW5nKCksIFNWR1JlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZW5k
ZXJpbmcoKSk7CiAgICAgd3JpdGVJZk5vdERlZmF1bHQodHMsICJvcGFjaXR5Iiwgc3R5bGUtPm9w
YWNpdHkoKSwgUmVuZGVyU3R5bGU6OmluaXRpYWxPcGFjaXR5KCkpOwogICAgIGlmIChvYmplY3Qu
aXNTVkdQYXRoKCkpIHsKICAgICAgICAgY29uc3QgUmVuZGVyU1ZHUGF0aCYgcGF0aCA9IHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlclNWR1BhdGgmPihvYmplY3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93059</attachid>
            <date>2011-05-10 18:37:00 -0700</date>
            <delta_ts>2011-05-17 21:03:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56627-20110511113657.patch</filename>
            <type>text/plain</type>
            <size>40292</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYxNjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYTQzNTYzOWJmMjE1MWNjYTk4MmJj
YjYzNDZhZmZjNDczMWYxZTkxLi44Yzk1YzI5NzUzZjUzODBlYjJmZjhlYTkzMGZjZmFkM2Y4MmEy
M2NkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMTEgIE1pa2UgTGF3dGhlciAgPG1p
a2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250
cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3
CisKKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA1LTEwICBBYmhpc2hlayBB
cnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29u
dHJhc3QtY2FudmFzLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU5MWRlY2Q4Mjhl
NGIyMzk3YWJiOTgyMzc2OWIyZDYyNzBhN2QyMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEy
NDQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NN
NDckPVN1RnhlU0lECnpYMnZFYW1LSjZmMjhreDdNa2F+SURIZXRucldQaXRDS2txdDdLV3VQOHxy
ezJ5dnVaVTQpQW4jUnRQQXtQc198bgp6V25pZGFZejtZfEUka0ByJm4kMXsxdHBIQ1lgI3F1Nk89
cTdTNyozaEc1YWYrbCtBTm5ldyp1cjZsMmU4ZDFrTlEKenNjbGBfQCNONyh0JFZJLTdxYjZ2a2dO
S1RxVkxyajwqSVJTd01Ob0hhb3Z3K15MKH1+ZVJiZW0tUkZEZT9gIWtSCno/bGJUZlR7OExGITE5
Rm1jK2V1aiUkeXBodFVuekxlVHo2OU87a2Z+end1TEhiOElnRFNeZk0qNkBPIU4qeH5CbQp6PCh0
YWEmYnFYMTdKSktJaFg/TW5aZmIzS0ZKOHpNRGE2IWFiQU9AY0BlKz52azhnWj4oe0pmbFMjZllI
enFhaj4Kek5UbkpGUXs4aip6Ql9gP3MkTzx6X09PYHB3Sl53VCZoX3BvKkphcj1eVXt1OzVaTFFL
VmNHNjg/XlkpKm9hNlY2CnpaXkdXV1UrVmxlLT9LWlVjISpuYXQtYWZoLWcjZXB1RyY5SmU3Tk08
a3YzWnkzRFlrPjU9Nkk0dF44cW5ORi1qcwp6U0E5YFA7WX5mPmsyQlcmNGcyS1BSNH5FZlI3enEp
YWc+TXViKVVRK3lWX1o2KXZnUCNlXmVlOF9eYDVISVFgejAKenlZRjNaRnw5WT9salZgKG5aQGY3
QW1HWjlJQWNTQUx6fDcxcH48RXFkKiMoXih2eiE9Tj4jRlVtbjZBdGJnVllKCnpXNGs/WSR6N1gm
OGNLeXpvVlJqSmBzNFVkWXlDPDhyPEZmWCQ4NUx9X0k9OVEqfFQ8aWRTSEZAPkNCeHthQFF9UAp6
Y3dGb29TMk9pVysybkJkWD1eSTBfUk0tQ1cmYjk4eTVYfVgpQllwSDgtOVAoamh9akV4QE0yYSha
YHttVXdPQmIKek1qNHZscFB5NTJaVG0+P3l4IUpwI2NNbWUmQkpDLVB5ZF9jQCUhRFhKKEhoPntg
OE9nYHRlV3QqKDFyMUchNTB0Cnp4fUdhYFBDdSZtYW5jUiUpIWRIfmEqdVAmbyFYeyhEUjwmOG04
JUh9di1XKHxrRn00ayp5fm8kXkVHZ2E8ZTV0JAp6byF7I1pYe0RJVi1OfjIjdE4tQCNLaktmbWNS
aW80IUs5el87S2E7Ynh4dDArMXMwfColYDBCVkIpPFAqP1QybDcKeipeQkVlezspKll0UUsxdldJ
QTdBNTJIKzNkeklWXiVeOD1jTyo/QkQpVUdwc0B+KVNzbDdofHorOyRFTXh+X1VYCnopbXY9eSUr
UkVsV2pBSkNtZCVxe1h6QkYqJGExZ0wkLW1acjZ4e0g0TCh0RWtZbDNkcGBBSj1Db2M9NVN6QEVS
Wgp6MlAoUWQ4NWs1OEpZNV9eRGo0NzFHfFpGcjZrdjd5KlpRdExIUzZqMitrWUw+STV4RSU1WWYo
PiEoeDl3S0t9cHoKenwzQ2xSP045MmlLbUozdGBfQ1ckUSoxMDgwdHlaZDQyKD9URWRPP1lATFI2
fT0wSFJiMVVmWHhNQXskO0ohb3JTCnoqdHppNFQoflk0NGpFUks2QkNhKkdhLWNYSTU7THF1ZSM/
NkdJaTctUCNCRGMoUCVtJW1fOzYoZkJ5UlNrN29Kcgp6QTNweXEtMmRzTF8mP1I+N1ZuLVohWk1M
Vis8fHo5UHhGQl85WHpZT1hKSSpFb2puPHJnO19ZQnUoRWprNkp8aTwKejtSa2FZNyVKMHFnPHlz
LUgxMjYmSTlib2NmWTdyP1NVfTxaOGViKjJyVX5LIzNQMWZCO0pLSGZ2N0N3TiQ9dDE7CnphQz0h
a0YpXnc5PVZYQUM5M2JIamVoditMSGspPEFIOTVwTkcoNTNxV0kqVi0kSF82RntGPDV8VCs8MHxq
dFBJJQp6OElYenpZZXZSVD1XZU1XSlhwIWRJTyN0TjFHSTwmbnBMNSQ7QllUO3doTFU3ZzEqOU5w
b3w2ejZMfjQrVXJxZ2YKej45WD1tPm0jNCZQMk1nSFBucl4zS2UkZl8rfE5MeUx7bW5fcHhyeGFJ
cElsPjJVemNvc3UmRnFYbzQ2YEFFVVdwCnp2fis7QURuQGd8WGxAd0k0V3FkTSsjTUtnRFVHJXFN
X2JhY3pRdCY2N3xqaSV4blZSbmZRUT5nK3NVS3Q8azVFVwp6WGdoaGRveV5FSVN7OUMkZ2A7STUq
PTFxK2xqPzI7Mjk2NVFTXnlTfihPJC1BRkpyV3FHMXwpKj9QWkxYZ2ArZHEKaHF4MUIlb35MaXpV
JEtqQ28hVHF5WH41O1g0NCRyakY2KjJVbmdDSEowYjJrNwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3Qt
Y2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNv
bnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3
YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSBAQAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250
cmFzdC1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZDFmNGZlYThiYzhlNmVjMWY2NGY4MmE0NTc2
YzFmNDE1NGMyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9v
cHRpbWl6ZS1jb250cmFzdC1jYW52YXMuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUg
aHRtbD4gCis8c3R5bGU+IAorCWNhbnZhcyB7CisJCWRpc3BsYXk6IGJsb2NrOworCQlwb3NpdGlv
bjogZml4ZWQ7CisJCWxlZnQ6IDBweDsKKwkJdG9wOiAwcHg7CisJCXJpZ2h0OiAwcHg7CisJCWJv
dHRvbTogMHB4OworCQlib3JkZXI6IG5vbmU7CisJCXdpZHRoOiAxMDBweDsKKwkJaGVpZ2h0OiAx
MDBweDsKKwkJbWFyZ2luOiAwcHg7CisJCXBhZGRpbmc6IDBweDsKKwkJaW1hZ2UtcmVuZGVyaW5n
OiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OworCX0KKzwvc3R5bGU+IAorPGJvZHk+IAorICAg
IDwhLS0gVGhlIHJlc3VsdGluZyBpbWFnZSBzaG91bGQgYmUgMTAweDEwMCwgY29uc2lzdGluZyBv
ZiA0IDUweDUwIGJsb2NrcyBvZiBzb2xpZCBjb2xvciwgd2l0aCBubyBibHVycmluZyBvZiBlZGdl
cyAtLT4KKwk8Y2FudmFzIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjwvY2FudmFzPiAKKzwvYm9keT4g
Cis8c2NyaXB0PiAKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICAKKwl2YXIg
Y2FudmFzOworCXZhciBpbWFnZUhhbmRsZTsKKwljYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiY2FudmFzIilbMF0uZ2V0Q29udGV4dCgiMmQiKTsKKwljYW52YXMud2lkdGgg
PSAyOworCWNhbnZhcy5oZWlnaHQgPSAyOworCWltYWdlSGFuZGxlID0gY2FudmFzLmNyZWF0ZUlt
YWdlRGF0YSgyLCAyKTsKKworCXZhciBpbmRleCA9IDA7CisJdmFyIGxlbmd0aCA9IGltYWdlSGFu
ZGxlLmRhdGEubGVuZ3RoOworCisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsK
KyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMDsKKyAgICBpbWFnZUhhbmRsZS5kYXRh
W2luZGV4KytdID0gMDsKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMjU1OworCisg
ICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtp
bmRleCsrXSA9IDI1NTsKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMDsKKyAgICBp
bWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMjU1OworCisgICAgaW1hZ2VIYW5kbGUuZGF0YVtp
bmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1h
Z2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4
KytdID0gMjU1OworCisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1h
Z2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsr
XSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworCWNhbnZhcy5w
dXRJbWFnZURhdGEoaW1hZ2VIYW5kbGUsIDAsIDApOworPC9zY3JpcHQ+IApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1OTFkZWNkODI4ZTRiMjM5N2FiYjk4MjM3NjliMmQ2Mjcw
YTdkMjIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMjQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVNJRAp6WDJ2RWFtS0o2
ZjI4a3g3TWthfklESGV0bnJXUGl0Q0trcXQ3S1d1UDh8cnsyeXZ1WlU0KUFuI1J0UEF7UHNffG4K
elduaWRhWXo7WXxFJGtAciZuJDF7MXRwSENZYCNxdTZPPXE3UzcqM2hHNWFmK2wrQU5uZXcqdXI2
bDJlOGQxa05RCnpzY2xgX0AjTjcodCRWSS03cWI2dmtnTktUcVZMcmo8KklSU3dNTm9IYW92dyte
TCh9fmVSYmVtLVJGRGU/YCFrUgp6P2xiVGZUezhMRiExOUZtYytldWolJHlwaHRVbnpMZVR6NjlP
O2tmfnp3dUxIYjhJZ0RTXmZNKjZATyFOKnh+Qm0KejwodGFhJmJxWDE3SkpLSWhYP01uWmZiM0tG
Sjh6TURhNiFhYkFPQGNAZSs+dms4Z1o+KHtKZmxTI2ZZSHpxYWo+CnpOVG5KRlF7OGoqekJfYD9z
JE88el9PT2Bwd0ped1QmaF9wbypKYXI9XlV7dTs1WkxRS1ZjRzY4P15ZKSpvYTZWNgp6Wl5HV1dV
K1ZsZS0/S1pVYyEqbmF0LWFmaC1nI2VwdUcmOUplN05NPGt2M1p5M0RZaz41PTZJNHReOHFuTkYt
anMKelNBOWBQO1l+Zj5rMkJXJjRnMktQUjR+RWZSN3pxKWFnPk11YilVUSt5Vl9aNil2Z1AjZV5l
ZThfXmA1SElRYHowCnp5WUYzWkZ8OVk/bGpWYChuWkBmN0FtR1o5SUFjU0FMenw3MXB+PEVxZCoj
KF4odnohPU4+I0ZVbW42QXRiZ1ZZSgp6VzRrP1kkejdYJjhjS3l6b1ZSakpgczRVZFl5Qzw4cjxG
ZlgkODVMfV9JPTlRKnxUPGlkU0hGQD5DQnh7YUBRfVAKemN3Rm9vUzJPaVcrMm5CZFg9XkkwX1JN
LUNXJmI5OHk1WH1YKUJZcEg4LTlQKGpofWpFeEBNMmEoWmB7bVV3T0JiCnpNajR2bHBQeTUyWlRt
Pj95eCFKcCNjTW1lJkJKQy1QeWRfY0AlIURYSihIaD57YDhPZ2B0ZVd0KigxcjFHITUwdAp6eH1H
YWBQQ3UmbWFuY1IlKSFkSH5hKnVQJm8hWHsoRFI8JjhtOCVIfXYtVyh8a0Z9NGsqeX5vJF5FR2dh
PGU1dCQKem8heyNaWHtESVYtTn4yI3ROLUAjS2pLZm1jUmlvNCFLOXpfO0thO2J4eHQwKzFzMHwq
JWAwQlZCKTxQKj9UMmw3CnoqXkJFZXs7KSpZdFFLMXZXSUE3QTUySCszZHpJVl4lXjg9Y08qP0JE
KVVHcHNAfilTc2w3aHx6KzskRU14fl9VWAp6KW12PXklK1JFbFdqQUpDbWQlcXtYekJGKiRhMWdM
JC1tWnI2eHtINEwodEVrWWwzZHBgQUo9Q29jPTVTekBFUloKejJQKFFkODVrNThKWTVfXkRqNDcx
R3xaRnI2a3Y3eSpaUXRMSFM2ajIra1lMPkk1eEUlNVlmKD4hKHg5d0tLfXB6Cnp8M0NsUj9OOTJp
S21KM3RgX0NXJFEqMTA4MHR5WmQ0Mig/VEVkTz9ZQExSNn09MEhSYjFVZlh4TUF7JDtKIW9yUwp6
KnR6aTRUKH5ZNDRqRVJLNkJDYSpHYS1jWEk1O0xxdWUjPzZHSWk3LVAjQkRjKFAlbSVtXzs2KGZC
eVJTazdvSnIKekEzcHlxLTJkc0xfJj9SPjdWbi1aIVpNTFYrPHx6OVB4RkJfOVh6WU9YSkkqRW9q
bjxyZztfWUJ1KEVqazZKfGk8Cno7UmthWTclSjBxZzx5cy1IMTI2Jkk5Ym9jZlk3cj9TVX08Wjhl
YioyclV+SyMzUDFmQjtKS0hmdjdDd04kPXQxOwp6YUM9IWtGKV53OT1WWEFDOTNiSGplaHYrTEhr
KTxBSDk1cE5HKDUzcVdJKlYtJEhfNkZ7Rjw1fFQrPDB8anRQSSUKejhJWHp6WWV2UlQ9V2VNV0pY
cCFkSU8jdE4xR0k8Jm5wTDUkO0JZVDt3aExVN2cxKjlOcG98Nno2TH40K1VycWdmCno+OVg9bT5t
IzQmUDJNZ0hQbnJeM0tlJGZfK3xOTHlMe21uX3B4cnhhSXBJbD4yVXpjb3N1JkZxWG80NmBBRVVX
cAp6dn4rO0FEbkBnfFhsQHdJNFdxZE0rI01LZ0RVRyVxTV9iYWN6UXQmNjd8amkleG5WUm5mUVE+
ZytzVUt0PGs1RVcKelhnaGhkb3leRUlTezlDJGdgO0k1Kj0xcStsaj8yOzI5NjVRU155U34oTyQt
QUZKcldxRzF8KSo/UFpMWGdgK2RxCmhxeDFCJW9+TGl6VSRLakNvIVRxeVh+NTtYNDQkcmpGNioy
VW5nQ0hKMGIyazcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4YmRjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJh
c3QtaW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UuaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDMyZmNmYTdhNjEzOTUxOTNhMmJmYTkyM2MyZGJiMThiMWZlODdkZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLmh0bWwK
QEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+IAorPHN0eWxlPiAKKwlpbWcgeworCQlk
aXNwbGF5OiBibG9jazsKKwkJcG9zaXRpb246IGZpeGVkOworCQlsZWZ0OiAwcHg7CisJCXRvcDog
MHB4OworCQlyaWdodDogMHB4OworCQlib3R0b206IDBweDsKKwkJYm9yZGVyOiBub25lOworCQl3
aWR0aDogMTAwcHg7CisJCWhlaWdodDogMTAwcHg7CisJCW1hcmdpbjogMHB4OworCQlwYWRkaW5n
OiAwcHg7CisJCWltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKKwl9
Cis8L3N0eWxlPiAKKzxib2R5PiAKKyAgICA8IS0tIFRoZSByZXN1bHRpbmcgaW1hZ2Ugc2hvdWxk
IGJlIDEwMHgxMDAsIGNvbnNpc3Rpbmcgb2YgNCA1MHg1MCBibG9ja3Mgb2Ygc29saWQgY29sb3Is
IHdpdGggbm8gYmx1cnJpbmcgb2YgZWRnZXMgLS0+CisJPGltYWdlIHN0eWxlPSIiIHNyYz0iZGF0
YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBSUFBQUFDQ0FZQUFB
Qnl0ZzBrQUFBQUZFbEVRVlFJSFdQNHo4RHdId3lCTkpETjhCOEFRTkVHK3Q1SWsya0FBQUFBU1VW
T1JLNUNZSUk9Ij48L2ltZz4gCis8L2JvZHk+IAorPHNjcmlwdD4gCisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCh0cnVlKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE3ZDdlMDI3ZTZmNDA3NTM4ZDA3
Y2VjOGNmNDg5MDllNjY3YTBmNDkuLjRjOTQ2NThhNTI1YWJjZTk0YzBhZTVhYWEyMzViZTUxNGU0
YThkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMS0wNS0xMSAgTWlrZSBMYXd0
aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGltcGxlbWVudCBpbWFnZS1yZW5kZXJpbmc6IG9wdGlt
aXplLWNvbnRyYXN0ICh3aXRoIGEgdmVuZG9yIHByZWZpeCkgYXMgZGVmaW5lZCBpbiBDU1MzIGlt
YWdlIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTY2MjcKKworICAgICAgICBUZXN0czogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3Qt
Y2FudmFzLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0
LWltYWdlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NW
YWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVJbWFnZVJlbmRlcmluZyk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46Cisg
ICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW46CisgICAgICAgICogY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFNW
R1Byb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmlu
OgorICAgICAgICAqIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9T
VkdDU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVF1YWxpdHlDb250
cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVhbGl0eSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckhUTUxDYW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6
cGFpbnRSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZs
YWdzOjppbWFnZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6
c2V0SW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6Omlu
aXRpYWxJbWFnZVJlbmRlcmluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFnczo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdSZW5kZXJTdHlsZTo6c2V0Qml0RGVmYXVsdHMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVTdHlsZSk6CisK
IDIwMTEtMDUtMDYgIEJyZXR0IFdpbHNvbiAgPGJyZXR0d0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNGU0MjMxMzdjZmM0NmFiNWM4MDRjMzBj
NzlkOTRhZTdhZDljYjFkLi4xMDJhYWJhOTkzZjkwMGZjYmM4ZTVmOGVjM2Q3OGRjM2I4Y2U0OTFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC05OTUsNiArOTk1LDcgQEAKIAkJNDkwNzA3RTYxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5j
cHAgKi87IH07CiAJCTQ5MDcwN0U3MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3
RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi87IH07CiAJCTQ5Mjg2
Mzk5MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYg
LyogUmVzb3VyY2VMb2FkSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmlu
Z01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
MjkxRTRBMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLzsgfTsKIAkJ
NDkzRTVFMDkxMkQ2NDIwNTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkzRTVFMDgxMkQ2NDIw
NTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ5NDg0RkMxMTAyQ0YyM0MwMDE4N0REMyAv
KiBDYW52YXNHcmFkaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTQ4NEZCMzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3Bw
ICovOyB9OwogCQk0OTQ4NEZDMjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAy
Q0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oICovOyB9OwpAQCAtNzQ3NCw2ICs3NDc1
LDcgQEAKIAkJNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkw
RTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5n
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJlbmRlcmluZ01v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkzRTVFMDgxMkQ2NDIwNTAwMDIw
MDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXll
ckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZCMzEwMkNGMjND
MDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ2FudmFzR3JhZGllbnQuY3BwOyBwYXRoID0gY2FudmFzL0NhbnZhc0dyYWRp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQjQxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENhbnZhc0dyYWRpZW50Lmg7IHBhdGggPSBjYW52YXMvQ2FudmFzR3JhZGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Njc0LDYgKzE3Njc2LDcgQEAKIAkJCQlCMkEx
MEI5MTBCMzgxOEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIuaCAqLywKIAkJCQkyMkJEOUY3RDEz
NTM2MjVDMDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhLmggKi8sCiAJCQkJQkM3RjQ0QTcwQjlF
MzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLywKKwkJCQk0OTI5MUU0QTEzNDE3MkM4
MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQjI3NTM1NDMwQjA1Mzgx
NDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8sCiAJCQkJQjI3NTM1NDQwQjA1MzgxNDAwMkNF
NjRGIC8qIEludFBvaW50LmggKi8sCiAJCQkJRTQ2MkE0QTAxMTNFNzFCRTAwNEE0MjIwIC8qIElu
dFBvaW50SGFzaC5oICovLApAQCAtMjExNTEsNiArMjExNTQsNyBAQAogCQkJCUY1NUIzREMyMTI1
MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5
NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDkyOTFFNEIxMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291
cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1h
Z2VTb3VyY2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4
IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMDg2MjZkZGZk
ODVhZDliZWNmNmY0YjQ2MTUyMTYyMmRlOThhM2VmNS4uMTNkNjM0MDE4ZTE1YTI1NDUzZjBjZDkz
Yzg0NTQwNzcxMTFkNzM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTk5LDYgKzk5LDcgQEAgc3RhdGljIGNvbnN0IGlu
dCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LAog
ICAgIENTU1Byb3BlcnR5Rm9udFdlaWdodCwKICAgICBDU1NQcm9wZXJ0eUhlaWdodCwKKyAgICBD
U1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nLAogICAgIENTU1Byb3BlcnR5TGVmdCwKICAgICBDU1NQ
cm9wZXJ0eUxldHRlclNwYWNpbmcsCiAgICAgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0LApAQCAtMjYz
LDcgKzI2NCw2IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlGaWxsLAogICAgIENTU1Byb3BlcnR5RmlsbE9wYWNpdHksCiAgICAgQ1NT
UHJvcGVydHlGaWxsUnVsZSwKLSAgICBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nLAogICAgIENT
U1Byb3BlcnR5TWFya2VyRW5kLAogICAgIENTU1Byb3BlcnR5TWFya2VyTWlkLAogICAgIENTU1By
b3BlcnR5TWFya2VyU3RhcnQsCkBAIC0xMTU2LDYgKzExNTYsOCBAQCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50
IHByb3BlcgogICAgICAgICAgICAgaWYgKHN0eWxlLT5ib3JkZXJGaXQoKSA9PSBCb3JkZXJGaXRC
b3JkZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUJvcmRlcik7CiAgICAgICAgICAgICByZXR1cm4gcHJp
bWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTGluZXMpOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmc6CisgICAgICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSk7CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMZWZ0OgogICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0
aW9uT2Zmc2V0VmFsdWUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5TGVmdCwgcHJpbWl0aXZlVmFs
dWVDYWNoZSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMZXR0ZXJTcGFjaW5nOgpAQCAtMTc4
Miw3ICsxNzg0LDYgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUZpbGw6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsT3BhY2l0eToKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGxSdWxlOgotICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW1h
Z2VSZW5kZXJpbmc6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXI6CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlNYXJrZXJFbmQ6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJN
aWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDE5NzExZDJhNzQ1ZGE2Y2I4Njk1YjVi
MzNiNmYzYmFmMWU4MGVkMGYuLjJiNzQ2Mjc3ZjhjNzIyNjFlZGFhNWQ4NTE5MGU4MGE5NTg0YjJl
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xNzE2LDcgKzE3MTYsMTAgQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
ICAgICAgICAoaWQgPj0gQ1NTVmFsdWVWaXNpYmxlcGFpbnRlZCAmJiBpZCA8PSBDU1NWYWx1ZVN0
cm9rZSkpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwotCisgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOiAvLyBhdXRvIHwgb3B0aW1p
emVDb250cmFzdAorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1Zh
bHVlV2Via2l0T3B0aW1pemVDb250cmFzdCkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgYnJlYWs7CiAgICAgLy8gRW5kIG9mIENTUzMgcHJvcGVydGllcwogCiAg
ICAgLy8gQXBwbGUgc3BlY2lmaWMgcHJvcGVydGllcy4gIFRoZXNlIHdpbGwgbmV2ZXIgYmUgc3Rh
bmRhcmRpemVkIGFuZCBhcmUgcHVyZWx5IHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBkZDZmZWUwMDY3YmI0ZmQ5NWFiZTU3OWMwMWMy
ODY4OTFhNzM5ZDJhLi5iNmQwZjc5OTZmMDU0YTA1ZDRlMTI5OWIzNGNkZGU1NTFjMTAzZjBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAg
LTI5NDksMzAgKzI5NDksMzUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVJbWFnZVJlbmRlcmluZyBlKQogICAgICwgbV9oYXNDYWNoZWRD
U1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIElSX0FVVE86
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgSVJfT1BUSU1JWkVTUEVFRDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBJUl9PUFRJTUlaRVFVQUxJVFk6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNl
IEltYWdlUmVuZGVyaW5nQXV0bzoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZ09wdGltaXplU3BlZWQ6
CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxpdHk6CisgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3Q6CisgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdE9wdGltaXplQ29udHJhc3Q7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50
KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIElSX0FV
VE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOgotICAgICAgICAgICAgcmV0
dXJuIElSX09QVElNSVpFU1BFRUQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXF1YWxp
dHk6Ci0gICAgICAgICAgICByZXR1cm4gSVJfT1BUSU1JWkVRVUFMSVRZOwotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1
cm4gSVJfQVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIEltYWdl
UmVuZGVyaW5nQXV0bzsKKyAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVzcGVlZDoKKyAgICAgICAg
cmV0dXJuIEltYWdlUmVuZGVyaW5nT3B0aW1pemVTcGVlZDsKKyAgICBjYXNlIENTU1ZhbHVlT3B0
aW1pemVxdWFsaXR5OgorICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxp
dHk7CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE9wdGltaXplQ29udHJhc3Q6CisgICAgICAgIHJl
dHVybiBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3Q7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmluZ0F1
dG87CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4
IGVhNTRjMTI3M2Y3MjUyY2RkNjA3NzBlMWIyZjUwYTAxZDYxNTI0MDkuLjlmYTYyZTEzZjIxMzVj
N2FjZWNhN2JlYmMyMTMxMzMyOWEyMmIxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCkBAIC05Myw2ICs5Myw3IEBAIGVtcHR5LWNlbGxzCiBmbG9hdAogZm9udC1zdHJl
dGNoCiBoZWlnaHQKK2ltYWdlLXJlbmRlcmluZwogbGVmdAogbGV0dGVyLXNwYWNpbmcKIGxpc3Qt
c3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBmYWJhZWNm
NWU0MGNhMTQ2ZjljNGE3MzNkMDRlNzhmNzc1MjNmZjcxLi5hZTc1MDU1ZDAyZjVjNTg5MTljYmU1
MDgwMGQ3NTRiNzBiZjhiODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCkBAIC00NjY0LDYgKzQ2NjQsMTEgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICBIQU5ETEVfSU5IRVJJVF9B
TkRfSU5JVElBTChvdXRsaW5lT2Zmc2V0LCBPdXRsaW5lT2Zmc2V0KQogICAgICAgICBtX3N0eWxl
LT5zZXRPdXRsaW5lT2Zmc2V0KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxl
KCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvcikpOwogICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgorICAgICAgICBpZiAoIXByaW1pdGl2
ZVZhbHVlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3N0eWxlLT5zZXRJbWFnZVJl
bmRlcmluZygqcHJpbWl0aXZlVmFsdWUpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVRleHRSZW5kZXJpbmc6IHsKICAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNj
cmlwdGlvbiA9IG1fc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICBpZiAoaXNJbmhl
cml0KSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNmRhYzA2ZmNj
YmM5MmJiOTgzYTM0NzQ3MDVkOGE0Mzk2OGMwMWY1Yy4uZDY3MGE2MmY0ZjIwZGQ1YTdhMmQyYWMw
NjY5YTFhN2UwNjVjOTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
QEAgLTgwMyw0ICs4MDMsOCBAQCBnbHlwaHMKIGlubGluZS1ib3gKIHJlcGxhY2VkCiAKLQorIyBp
bWFnZS1yZW5kZXJpbmcKKyNhdXRvCisjb3B0aW1pemVTcGVlZAorb3B0aW1pemVRdWFsaXR5Cist
d2Via2l0LW9wdGltaXplLWNvbnRyYXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
VkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDVkZmUwM2UwMzAxM2FkNWUx
ZTdmMWRlYjFkYmJkOTNiMjI0ZWM2NzcuLjBjMmFhZmY5OTY3ODU2YzA0OTUxZDJlZWY1YTMxMzJk
NzM3OTlhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xMDMsOCArMTAzLDYgQEAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRTVkdQcm9wZXJ0eUNTU1ZhbHVl
KGludCBwcm8KICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2
Z1N0eWxlLT5maWxsUnVsZSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yUmVuZGVy
aW5nOgogICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5
bGUtPmNvbG9yUmVuZGVyaW5nKCkpOwotICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW1hZ2VSZW5k
ZXJpbmc6Ci0gICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdT
dHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFwZVJl
bmRlcmluZzoKICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2
Z1N0eWxlLT5zaGFwZVJlbmRlcmluZygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9r
ZUxpbmVjYXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlO
YW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4
IDdjMTU3YThjNzM3ODc4ZGE4ZGE2YzRlMGU3ZGRkZTAwODc0MGY0NjQuLjM4YWQzYjZhMDEwZjAw
ZDQ4ODZlNmZlNGZlYzQ5ZjhjNzE1ODMzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQ
cm9wZXJ0eU5hbWVzLmluCkBAIC0yMyw3ICsyMyw3IEBAIGZpbGwKIGZpbGwtb3BhY2l0eQogZmls
bC1ydWxlCiAjZm9udC1zaXplLWFkanVzdAotaW1hZ2UtcmVuZGVyaW5nCisjaW1hZ2UtcmVuZGVy
aW5nCiBtYXJrZXIKIG1hcmtlci1lbmQKIG1hcmtlci1taWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
VkdDU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA2YjA5NDI2ZWMwZDc3MGY0Y2U0NTBkNzE2ZjY1
N2E3YTk1YzhkZmVlLi44Y2I2YjdlOGIxNjlmMGI1NTNjNzQwMzY2YjMzMWVjNzBlYjI1OWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0yMTQsMTMg
KzIxNCw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eShpbnQgaWQs
IENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Sm9pblN0eWxl
KCpwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmc6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGltYWdlUmVuZGVyaW5nLCBJbWFnZVJlbmRlcmlu
ZykKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkKLSAgICAgICAgICAgICAgICBzdmdz
dHlsZS0+c2V0SW1hZ2VSZW5kZXJpbmcoKnByaW1pdGl2ZVZhbHVlKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFwZVJlbmRlcmluZzoK
ICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc2hhcGVS
ZW5kZXJpbmcsIFNoYXBlUmVuZGVyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgppbmRleCBhMmM5ZjgzNzczYTRkNjc0MjQxMjE2MGY2MTk5ZGI5MDc5NjdjNWM0
Li40MTdhOGQ1ZTYyN2NmMDZhNTM4MzIwMzJmNDgxZjliYTVlMzhmOGI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTk3LDcgKzE5Nyw3IEBAIGxpbmVh
clJHQgogIyBDU1NfUFJPUF9DT0xPUl9SRU5ERVJJTkcKICNhdXRvCiAjb3B0aW1pemVTcGVlZAot
b3B0aW1pemVRdWFsaXR5Cisjb3B0aW1pemVRdWFsaXR5CiAKICMjIENTU19QUk9QX0ZJTEwKICNj
dXJyZW50Q29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5k
ZXggZDQxNjU2MjM3MmFjOTRmMDU0MDVjOGI2OTAwNWViOTY1MzZmNzY2Yy4uNWYzZDYzMzAxMDY3
NTBiYTZkNmNkYjhhNmMzNGEzOGY4ZThhZjkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVt
ZW50OjpyZXNldCgpCiAgICAgICAgICgqaXQpLT5jYW52YXNSZXNpemVkKHRoaXMpOwogfQogCi12
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmIHIpCit2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxl
KQogewogICAgIC8vIENsZWFyIHRoZSBkaXJ0eSByZWN0CiAgICAgbV9kaXJ0eVJlY3QgPSBGbG9h
dFJlY3QoKTsKQEAgLTI4MCwxMSArMjgwLDExIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBh
aW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcikKICAgICAgICAg
SW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyID0gYnVmZmVyKCk7CiAgICAgICAgIGlmIChpbWFnZUJ1
ZmZlcikgewogICAgICAgICAgICAgaWYgKG1fcHJlc2VudGVkSW1hZ2UpCi0gICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIHIpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNl
bnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByLCBDb21wb3NpdGVTb3VyY2VP
dmVyLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZSBpZiAoaW1hZ2VCdWZm
ZXItPmRyYXdzVXNpbmdDb3B5KCkpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdl
KGNvcGllZEltYWdlKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHIpOworICAgICAgICAgICAgICAg
IGNvbnRleHQtPmRyYXdJbWFnZShjb3BpZWRJbWFnZSgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBy
LCBDb21wb3NpdGVTb3VyY2VPdmVyLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZl
ciwgQ29sb3JTcGFjZURldmljZVJHQiwgcik7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJh
d0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByLCBDb21wb3Np
dGVTb3VyY2VPdmVyLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICB9CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggOTdkNTVjYzQ5ODE2MjZj
NTUyYjEwODVjZTljMzhkNDlhNzY2MjY3OS4uOWRiOTY3MzkxMzY5YmQ1MjAwM2U2NDUwNzRhOGY2
NzY3OWM2NmYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAt
OTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgLy8gVXNlZCBmb3IgcmVuZGVyaW5nCiAgICAgdm9p
ZCBkaWREcmF3KGNvbnN0IEZsb2F0UmVjdCYpOwogCi0gICAgdm9pZCBwYWludChHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAKICAg
ICBHcmFwaGljc0NvbnRleHQqIGRyYXdpbmdDb250ZXh0KCkgY29uc3Q7CiAgICAgR3JhcGhpY3ND
b250ZXh0KiBleGlzdGluZ0RyYXdpbmdDb250ZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVJlbmRlcmluZ01vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUmVuZGVyaW5nTW9kZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNlNDYyZmJhNThlMDIzNjU1YWQ4NTUxN2E0OWMyZGU2M2EyMjQ1ZDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVJlbmRlcmluZ01v
ZGUuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW1hZ2VSZW5kZXJpbmdNb2RlX2gK
KyNkZWZpbmUgSW1hZ2VSZW5kZXJpbmdNb2RlX2gKKyAgICAKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBJbWFnZVJlbmRlcmluZ01vZGUgeyBBdXRvSW1hZ2VSZW5kZXJpbmcsIE9wdGltaXpl
Q29udHJhc3QgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorICAgIAorI2VuZGlmIC8vIElt
YWdlUmVuZGVyaW5nTW9kZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCBlODY4N2RkZDVmYWUxNzM4NmViNzgyYTczODViYzVm
OWU1OTU4NDc2Li4yODhiYjgzMWIyZGUyYjBiMWFmYjhhZTk5OWI4OTI4OTkyZDdlNzhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAK
QEAgLTEzOCw2ICsxMzgsOSBAQCBib29sIEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OnNob3VsZFBh
aW50QXRMb3dRdWFsaXR5KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUgogICAgIGlmICghaW1h
Z2UgfHwgIWltYWdlLT5pc0JpdG1hcEltYWdlKCkgfHwgY29udGV4dC0+cGFpbnRpbmdEaXNhYmxl
ZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAob2JqZWN0LT5zdHlsZSgpLT5p
bWFnZVJlbmRlcmluZygpID09IFdlYkNvcmU6OkltYWdlUmVuZGVyaW5nT3B0aW1pemVDb250cmFz
dCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRvIHVzZSB0
aGUgdW56b29tZWQgaW1hZ2Ugc2l6ZSwgc2luY2UgaWYgYSBmdWxsIHBhZ2Ugem9vbSBpcyBpbiBl
ZmZlY3QsIHRoZSBpbWFnZQogICAgIC8vIGlzIGFjdHVhbGx5IGJlaW5nIHNjYWxlZC4KICAgICBJ
bnRTaXplIGltYWdlU2l6ZShpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcAppbmRleCBkZTJhMmMx
NTZmMWQ4M2MyODkyZTkyMmFmZGY3NjBlZTA2MDY3ZTFmLi44MWNlMzgyMGIwNmEyYTBlZmRmYWRh
ZjY1Mzk3MDg5MGRkN2Q2YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySFRNTENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckhUTUxDYW52YXMuY3BwCkBAIC01OCw3ICs1OCw4IEBAIHZvaWQgUmVuZGVySFRNTENhbnZhczo6
cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiB7CiAg
ICAgSW50UmVjdCByZWN0ID0gY29udGVudEJveFJlY3QoKTsKICAgICByZWN0Lm1vdmUodHgsIHR5
KTsKLSAgICBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnBhaW50KHBh
aW50SW5mby5jb250ZXh0LCByZWN0KTsKKyAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IHN0
eWxlKCktPmltYWdlUmVuZGVyaW5nKCkgPT0gV2ViQ29yZTo6SW1hZ2VSZW5kZXJpbmdPcHRpbWl6
ZUNvbnRyYXN0OworICAgIHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4obm9kZSgpKS0+
cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAK
IHZvaWQgUmVuZGVySFRNTENhbnZhczo6Y2FudmFzU2l6ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggN2Q4NjYzYTk4Nzhl
YzU3MjZjNzY2NTk2ZDg5ZTdhZDcxOGI2YzM4YS4uZTc5ZDc4OGNkMDZlMmMxNDU4ODRlYjBmZDZl
MmI1NjFjNWIwZmY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC01NTAsNiArNTUwLDcgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0
eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24K
ICAgICAgICAgfHwgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zICE9IG90aGVyLT5p
bmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMKICAgICAgICAgfHwgaW5oZXJpdGVkX2Zs
YWdzLl9mb3JjZV9iYWNrZ3JvdW5kc190b193aGl0ZSAhPSBvdGhlci0+aW5oZXJpdGVkX2ZsYWdz
Ll9mb3JjZV9iYWNrZ3JvdW5kc190b193aGl0ZQogICAgICAgICB8fCBpbmhlcml0ZWRfZmxhZ3Mu
X2luc2lkZUxpbmsgIT0gb3RoZXItPmluaGVyaXRlZF9mbGFncy5faW5zaWRlTGluaworICAgICAg
ICB8fCBpbmhlcml0ZWRfZmxhZ3MubV9pbWFnZVJlbmRlcmluZyAhPSBvdGhlci0+aW5oZXJpdGVk
X2ZsYWdzLm1faW1hZ2VSZW5kZXJpbmcKICAgICAgICAgfHwgc3Vycm91bmQtPmJvcmRlciAhPSBv
dGhlci0+c3Vycm91bmQtPmJvcmRlcgogICAgICAgICB8fCAqbV9iYWNrZ3JvdW5kLmdldCgpICE9
ICpvdGhlci0+bV9iYWNrZ3JvdW5kLmdldCgpCiAgICAgICAgIHx8IHZpc3VhbC0+dGV4dERlY29y
YXRpb24gIT0gb3RoZXItPnZpc3VhbC0+dGV4dERlY29yYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMjNmNTUzNWYxMjg1NWYyYmIwMTVm
YjI5NmM2MDkwMjI5Y2Q2ZGFhNi4uZWMxYTJiZjBlN2NiMjRjYzdjNWMxNzg3YmFhZGU1NmJjMGEz
NDg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
QEAgLTE3OCw3ICsxNzgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICAgICAgJiYgKF9mb3Jj
ZV9iYWNrZ3JvdW5kc190b193aGl0ZSA9PSBvdGhlci5fZm9yY2VfYmFja2dyb3VuZHNfdG9fd2hp
dGUpCiAgICAgICAgICAgICAgICAgJiYgKF9wb2ludGVyRXZlbnRzID09IG90aGVyLl9wb2ludGVy
RXZlbnRzKQogICAgICAgICAgICAgICAgICYmIChfaW5zaWRlTGluayA9PSBvdGhlci5faW5zaWRl
TGluaykKLSAgICAgICAgICAgICAgICAmJiAobV93cml0aW5nTW9kZSA9PSBvdGhlci5tX3dyaXRp
bmdNb2RlKTsKKyAgICAgICAgICAgICAgICAmJiAobV93cml0aW5nTW9kZSA9PSBvdGhlci5tX3dy
aXRpbmdNb2RlKQorICAgICAgICAgICAgICAgICYmIChtX2ltYWdlUmVuZGVyaW5nID09IG90aGVy
Lm1faW1hZ2VSZW5kZXJpbmcpOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IEluaGVyaXRlZEZsYWdzJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7IH0KQEAgLTIwNyw3ICsyMDgsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIC8vIENT
UyBUZXh0IExheW91dCBNb2R1bGUgTGV2ZWwgMzogVmVydGljYWwgd3JpdGluZyBzdXBwb3J0CiAg
ICAgICAgIHVuc2lnbmVkIG1fd3JpdGluZ01vZGUgOiAyOyAvLyBXcml0aW5nTW9kZQotICAgICAg
ICAvLyA0NSBiaXRzCisgICAgICAgIC8vIENTUyBJbWFnZSBWYWx1ZXMgTGV2ZWwgMworICAgICAg
ICB1bnNpZ25lZCBtX2ltYWdlUmVuZGVyaW5nIDogMjsgLy8gRUltYWdlUmVuZGVyaW5nICovCisK
KyAgICAgICAgLy8gNDcgYml0cwogICAgIH0gaW5oZXJpdGVkX2ZsYWdzOwogCiAvLyBkb24ndCBp
bmhlcml0CkBAIC03ODMsNiArNzg3LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNGbGlwcGVkTGlu
ZXNXcml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdNb2RlKCkgPT0gTGVmdFRvUmln
aHRXcml0aW5nTW9kZSB8fCB3cml0aW5nTW9kZSgpID09IEJvdHRvbVRvVG9wV3JpdGluZ01vZGU7
IH0KICAgICBib29sIGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
d3JpdGluZ01vZGUoKSA9PSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlIHx8IHdyaXRpbmdNb2RlKCkg
PT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZTsgfQogCisgICAgRUltYWdlUmVuZGVyaW5nIGltYWdl
UmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdlUmVuZGVyaW5nPihp
bmhlcml0ZWRfZmxhZ3MubV9pbWFnZVJlbmRlcmluZyk7IH0KKworICAgIAogICAgIEVTcGVhayBz
cGVhaygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEVTcGVhaz4ocmFyZUluaGVyaXRlZERhdGEtPnNw
ZWFrKTsgfQogICAgICAgICAKIC8vIGF0dHJpYnV0ZSBzZXR0ZXIgbWV0aG9kcwpAQCAtOTM0LDYg
Kzk0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExpbmVIZWlnaHQoTGVuZ3RoIHYpIHsgU0VU
X1ZBUihpbmhlcml0ZWQsIGxpbmVfaGVpZ2h0LCB2KSB9CiAgICAgdm9pZCBzZXRab29tKGZsb2F0
IGYpIHsgU0VUX1ZBUih2aXN1YWwsIG1fem9vbSwgZik7IHNldEVmZmVjdGl2ZVpvb20oZWZmZWN0
aXZlWm9vbSgpICogem9vbSgpKTsgfQogICAgIHZvaWQgc2V0RWZmZWN0aXZlWm9vbShmbG9hdCBm
KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1fZWZmZWN0aXZlWm9vbSwgZikgfQorICAg
IHZvaWQgc2V0SW1hZ2VSZW5kZXJpbmcoRUltYWdlUmVuZGVyaW5nIHYpIHsgaW5oZXJpdGVkX2Zs
YWdzLm1faW1hZ2VSZW5kZXJpbmcgPSB2OyB9CiAKICAgICB2b2lkIHNldFdoaXRlU3BhY2UoRVdo
aXRlU3BhY2UgdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3doaXRlX3NwYWNlID0gdjsgfQogCkBAIC0x
MzE3LDYgKzEzMjUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
aW5pdGlhbFRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKSB7IHJldHVybiBudWxsQXRvbTsgfQogICAg
IHN0YXRpYyBUZXh0RW1waGFzaXNQb3NpdGlvbiBpbml0aWFsVGV4dEVtcGhhc2lzUG9zaXRpb24o
KSB7IHJldHVybiBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXI7IH0KICAgICBzdGF0aWMgTGluZUJv
eENvbnRhaW4gaW5pdGlhbExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGluZUJveENvbnRhaW5C
bG9jayB8IExpbmVCb3hDb250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5SZXBsYWNlZDsgfQor
ICAgIHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyByZXR1
cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOyB9CiAKICAgICAvLyBLZWVwIHRoZXNlIGF0IHRoZSBlbmQu
CiAgICAgc3RhdGljIExpbmVDbGFtcFZhbHVlIGluaXRpYWxMaW5lQ2xhbXAoKSB7IHJldHVybiBM
aW5lQ2xhbXBWYWx1ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGM1NGVjY2ZhODI2ZGE5YmQ3NTM4ODRi
YjJjYWNlMDIyOTliZTg0MGIuLjQxZDhmNjUwYTZhODg0NTJhOGM5ZGE2NzliYmVkYmY3ZTE3YmU1
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCkBAIC00MjYsNiArNDI2LDggQEAgZW51bSBUZXh0RW1waGFzaXNNYXJr
IHsgVGV4dEVtcGhhc2lzTWFya05vbmUsIFRleHRFbXBoYXNpc01hcmtBdXRvLCBUZXh0RW1waGFz
aXMKIAogZW51bSBUZXh0RW1waGFzaXNQb3NpdGlvbiB7IFRleHRFbXBoYXNpc1Bvc2l0aW9uT3Zl
ciwgVGV4dEVtcGhhc2lzUG9zaXRpb25VbmRlciB9OwogCitlbnVtIEVJbWFnZVJlbmRlcmluZyB7
IEltYWdlUmVuZGVyaW5nQXV0bywgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkLCBJbWFnZVJl
bmRlcmluZ09wdGltaXplUXVhbGl0eSwgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0IH07
CisgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZW5kZXJTdHlsZUNv
bnN0YW50c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZH
UmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRl
clN0eWxlLmNwcAppbmRleCAxZWUxZjM2M2EzMjY0MzFkMmVjNGQzMDg1ZDIzNTY0M2MzN2VkNmZi
Li41NmFkZDRlOTFiYTMxNjk3MTcxMzVmZWNiZjMzNGI5MmFlZjljYjg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAKQEAgLTIwMiw3
ICsyMDIsNiBAQCBTdHlsZURpZmZlcmVuY2UgU1ZHUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgU1ZH
UmVuZGVyU3R5bGUqIG90aGVyKSBjb25zdAogCiAgICAgLy8gQ2hhbmdlcyBvZiB0aGVzZSBmbGFn
cyBvbmx5IGNhdXNlIHJlcGFpbnRzLgogICAgIGlmIChzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xv
clJlbmRlcmluZyAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmcK
LSAgICAgICAgfHwgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcgIT0gb3RoZXIt
PnN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ltYWdlUmVuZGVyaW5nCiAgICAgICAgIHx8IHN2Z19pbmhl
cml0ZWRfZmxhZ3MuX3NoYXBlUmVuZGVyaW5nICE9IG90aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdz
Ll9zaGFwZVJlbmRlcmluZwogICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jbGlwUnVs
ZSAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5fY2xpcFJ1bGUKICAgICAgICAgfHwgc3Zn
X2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUgIT0gb3RoZXItPnN2Z19pbmhlcml0ZWRfZmxhZ3Mu
X2ZpbGxSdWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZH
UmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJT
dHlsZS5oCmluZGV4IDg4YTQ4ZGY1YTM2ZjgyYjJkMmJhMGQxMzE4NWMyNDliYzFhNTc0YmMuLjBm
ZTRhODBjZGZjZDUyMWY0NzM3ZDM3ZmMyZjFjNWI1YzMzMmU5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCkBAIC02Myw3ICs2Myw2IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgRUNvbG9ySW50ZXJwb2xhdGlvbiBpbml0aWFsQ29sb3JJbnRl
cnBvbGF0aW9uRmlsdGVycygpIHsgcmV0dXJuIENJX0xJTkVBUlJHQjsgfQogICAgIHN0YXRpYyBF
Q29sb3JSZW5kZXJpbmcgaW5pdGlhbENvbG9yUmVuZGVyaW5nKCkgeyByZXR1cm4gQ1JfQVVUTzsg
fQogICAgIHN0YXRpYyBXaW5kUnVsZSBpbml0aWFsRmlsbFJ1bGUoKSB7IHJldHVybiBSVUxFX05P
TlpFUk87IH0KLSAgICBzdGF0aWMgRUltYWdlUmVuZGVyaW5nIGluaXRpYWxJbWFnZVJlbmRlcmlu
ZygpIHsgcmV0dXJuIElSX0FVVE87IH0KICAgICBzdGF0aWMgTGluZUpvaW4gaW5pdGlhbEpvaW5T
dHlsZSgpIHsgcmV0dXJuIE1pdGVySm9pbjsgfQogICAgIHN0YXRpYyBFU2hhcGVSZW5kZXJpbmcg
aW5pdGlhbFNoYXBlUmVuZGVyaW5nKCkgeyByZXR1cm4gU1JfQVVUTzsgfQogICAgIHN0YXRpYyBF
VGV4dEFuY2hvciBpbml0aWFsVGV4dEFuY2hvcigpIHsgcmV0dXJuIFRBX1NUQVJUOyB9CkBAIC0x
NDAsNyArMTM5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29sb3JJbnRlcnBvbGF0aW9uRmls
dGVycyhFQ29sb3JJbnRlcnBvbGF0aW9uIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xv
ckludGVycG9sYXRpb25GaWx0ZXJzID0gdmFsOyB9CiAgICAgdm9pZCBzZXRDb2xvclJlbmRlcmlu
ZyhFQ29sb3JSZW5kZXJpbmcgdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVuZGVy
aW5nID0gdmFsOyB9CiAgICAgdm9pZCBzZXRGaWxsUnVsZShXaW5kUnVsZSB2YWwpIHsgc3ZnX2lu
aGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUgPSB2YWw7IH0KLSAgICB2b2lkIHNldEltYWdlUmVuZGVy
aW5nKEVJbWFnZVJlbmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5k
ZXJpbmcgPSB2YWw7IH0KICAgICB2b2lkIHNldEpvaW5TdHlsZShMaW5lSm9pbiB2YWwpIHsgc3Zn
X2luaGVyaXRlZF9mbGFncy5fam9pblN0eWxlID0gdmFsOyB9CiAgICAgdm9pZCBzZXRTaGFwZVJl
bmRlcmluZyhFU2hhcGVSZW5kZXJpbmcgdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3NoYXBl
UmVuZGVyaW5nID0gdmFsOyB9CiAgICAgdm9pZCBzZXRUZXh0QW5jaG9yKEVUZXh0QW5jaG9yIHZh
bCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl90ZXh0QW5jaG9yID0gdmFsOyB9CkBAIC0yOTcsNyAr
Mjk1LDYgQEAgcHVibGljOgogICAgIEVDb2xvckludGVycG9sYXRpb24gY29sb3JJbnRlcnBvbGF0
aW9uRmlsdGVycygpIGNvbnN0IHsgcmV0dXJuIChFQ29sb3JJbnRlcnBvbGF0aW9uKSBzdmdfaW5o
ZXJpdGVkX2ZsYWdzLl9jb2xvckludGVycG9sYXRpb25GaWx0ZXJzOyB9CiAgICAgRUNvbG9yUmVu
ZGVyaW5nIGNvbG9yUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gKEVDb2xvclJlbmRlcmluZykg
c3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmc7IH0KICAgICBXaW5kUnVsZSBmaWxs
UnVsZSgpIGNvbnN0IHsgcmV0dXJuIChXaW5kUnVsZSkgc3ZnX2luaGVyaXRlZF9mbGFncy5fZmls
bFJ1bGU7IH0KLSAgICBFSW1hZ2VSZW5kZXJpbmcgaW1hZ2VSZW5kZXJpbmcoKSBjb25zdCB7IHJl
dHVybiAoRUltYWdlUmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRlcmlu
ZzsgfQogICAgIExpbmVKb2luIGpvaW5TdHlsZSgpIGNvbnN0IHsgcmV0dXJuIChMaW5lSm9pbikg
c3ZnX2luaGVyaXRlZF9mbGFncy5fam9pblN0eWxlOyB9CiAgICAgRVNoYXBlUmVuZGVyaW5nIHNo
YXBlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gKEVTaGFwZVJlbmRlcmluZykgc3ZnX2luaGVy
aXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmc7IH0KICAgICBFVGV4dEFuY2hvciB0ZXh0QW5jaG9y
KCkgY29uc3QgeyByZXR1cm4gKEVUZXh0QW5jaG9yKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl90ZXh0
QW5jaG9yOyB9CkBAIC0zNDYsNyArMzQzLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgSW5oZXJpdGVkRmxhZ3MmIG90aGVyKSBjb25zdAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gKF9jb2xvclJlbmRlcmluZyA9PSBvdGhlci5fY29sb3JSZW5kZXJp
bmcpCi0gICAgICAgICAgICAgICAgJiYgKF9pbWFnZVJlbmRlcmluZyA9PSBvdGhlci5faW1hZ2VS
ZW5kZXJpbmcpCiAgICAgICAgICAgICAgICAgJiYgKF9zaGFwZVJlbmRlcmluZyA9PSBvdGhlci5f
c2hhcGVSZW5kZXJpbmcpCiAgICAgICAgICAgICAgICAgJiYgKF9jbGlwUnVsZSA9PSBvdGhlci5f
Y2xpcFJ1bGUpCiAgICAgICAgICAgICAgICAgJiYgKF9maWxsUnVsZSA9PSBvdGhlci5fZmlsbFJ1
bGUpCkBAIC0zNjYsNyArMzYyLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICB9CiAKICAgICAgICAg
dW5zaWduZWQgX2NvbG9yUmVuZGVyaW5nIDogMjsgLy8gRUNvbG9yUmVuZGVyaW5nCi0gICAgICAg
IHVuc2lnbmVkIF9pbWFnZVJlbmRlcmluZyA6IDI7IC8vIEVJbWFnZVJlbmRlcmluZyAKICAgICAg
ICAgdW5zaWduZWQgX3NoYXBlUmVuZGVyaW5nIDogMjsgLy8gRVNoYXBlUmVuZGVyaW5nIAogICAg
ICAgICB1bnNpZ25lZCBfY2xpcFJ1bGUgOiAxOyAvLyBXaW5kUnVsZQogICAgICAgICB1bnNpZ25l
ZCBfZmlsbFJ1bGUgOiAxOyAvLyBXaW5kUnVsZQpAQCAtNDIyLDcgKzQxNyw2IEBAIHByaXZhdGU6
CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NsaXBSdWxlID0gaW5pdGlhbENsaXBSdWxl
KCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVuZGVyaW5nID0gaW5pdGlh
bENvbG9yUmVuZGVyaW5nKCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ZpbGxSdWxl
ID0gaW5pdGlhbEZpbGxSdWxlKCk7Ci0gICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ltYWdl
UmVuZGVyaW5nID0gaW5pdGlhbEltYWdlUmVuZGVyaW5nKCk7CiAgICAgICAgIHN2Z19pbmhlcml0
ZWRfZmxhZ3MuX3NoYXBlUmVuZGVyaW5nID0gaW5pdGlhbFNoYXBlUmVuZGVyaW5nKCk7CiAgICAg
ICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3RleHRBbmNob3IgPSBpbml0aWFsVGV4dEFuY2hvcigp
OwogICAgICAgICBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jYXBTdHlsZSA9IGluaXRpYWxDYXBTdHls
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRl
clN0eWxlRGVmcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0
eWxlRGVmcy5oCmluZGV4IDAwMzU4YTBkNTdiOWJhNmU1OTY3YjUyNmY4NWVkYTllZjVhMzFjNDAu
LjJjMzNjNmRjOWJkZDg4OGNlYmEyYzFhODRmOGY3NTlhMmEyYTA5N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKQEAgLTU0
LDExICs1NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBlbnVtIEVDb2xvclJlbmRlcmlu
ZyB7CiAgICAgICAgIENSX0FVVE8sIENSX09QVElNSVpFU1BFRUQsIENSX09QVElNSVpFUVVBTElU
WQogICAgIH07Ci0gICAgCi0gICAgZW51bSBFSW1hZ2VSZW5kZXJpbmcgewotICAgICAgICBJUl9B
VVRPLCBJUl9PUFRJTUlaRVNQRUVELCBJUl9PUFRJTUlaRVFVQUxJVFkKLSAgICB9OwotCiAgICAg
ZW51bSBFU2hhcGVSZW5kZXJpbmcgewogICAgICAgICBTUl9BVVRPLCBTUl9PUFRJTUlaRVNQRUVE
LCBTUl9DUklTUEVER0VTLCBTUl9HRU9NRVRSSUNQUkVDSVNJT04KICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5k
ZXggN2QzZjkwOTI3MjgzZjI5MDRmNzc5ZmYwMGNjN2I2ZTNhYWU5Y2MyNC4uNzhiMmIwOGIwYmRl
Y2FjNzJhYzFlYjA2NzNkODIzYzE3OWUyMmMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0zMjEsNyArMzIxLDYg
QEAgc3RhdGljIHZvaWQgd3JpdGVTdHlsZShUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvYmplY3QpCiAKICAgICBpZiAoIW9iamVjdC5sb2NhbFRyYW5zZm9ybSgpLmlzSWRlbnRp
dHkoKSkKICAgICAgICAgd3JpdGVOYW1lVmFsdWVQYWlyKHRzLCAidHJhbnNmb3JtIiwgb2JqZWN0
LmxvY2FsVHJhbnNmb3JtKCkpOwotICAgIHdyaXRlSWZOb3REZWZhdWx0KHRzLCAiaW1hZ2UgcmVu
ZGVyaW5nIiwgc3ZnU3R5bGUtPmltYWdlUmVuZGVyaW5nKCksIFNWR1JlbmRlclN0eWxlOjppbml0
aWFsSW1hZ2VSZW5kZXJpbmcoKSk7CiAgICAgd3JpdGVJZk5vdERlZmF1bHQodHMsICJvcGFjaXR5
Iiwgc3R5bGUtPm9wYWNpdHkoKSwgUmVuZGVyU3R5bGU6OmluaXRpYWxPcGFjaXR5KCkpOwogICAg
IGlmIChvYmplY3QuaXNTVkdQYXRoKCkpIHsKICAgICAgICAgY29uc3QgUmVuZGVyU1ZHUGF0aCYg
cGF0aCA9IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR1BhdGgmPihvYmplY3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93865</attachid>
            <date>2011-05-17 21:03:38 -0700</date>
            <delta_ts>2011-05-17 23:47:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56627-20110518140335.patch</filename>
            <type>text/plain</type>
            <size>45597</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY0OTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNTVkOGQzYjc3ZmE1NjI5MzFlYjkw
MjcyMDIyMWU5YzhlZWFlZWU2Li5iNGY1MjIzMzE1MzIyMGJlODJhMDdlY2UwMDBiZmFkYzYxMTFm
MjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMTEgIE1pa2UgTGF3dGhlciAgPG1p
a2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250
cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3
CisKKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA1LTE0ICBBbmRyZXcgV2ls
c29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21p
dW0gZXhwZWN0YXRpb25zIGNoYW5nZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1h
Z2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9j
c3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY1OTFkZWNkODI4ZTRiMjM5N2FiYjk4MjM3NjliMmQ2MjcwYTdkMjIKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDExMjQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFC
JVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVNJRAp6WDJ2RWFtS0o2ZjI4a3g3TWthfklESGV0bnJX
UGl0Q0trcXQ3S1d1UDh8cnsyeXZ1WlU0KUFuI1J0UEF7UHNffG4KelduaWRhWXo7WXxFJGtAciZu
JDF7MXRwSENZYCNxdTZPPXE3UzcqM2hHNWFmK2wrQU5uZXcqdXI2bDJlOGQxa05RCnpzY2xgX0Aj
TjcodCRWSS03cWI2dmtnTktUcVZMcmo8KklSU3dNTm9IYW92dyteTCh9fmVSYmVtLVJGRGU/YCFr
Ugp6P2xiVGZUezhMRiExOUZtYytldWolJHlwaHRVbnpMZVR6NjlPO2tmfnp3dUxIYjhJZ0RTXmZN
KjZATyFOKnh+Qm0KejwodGFhJmJxWDE3SkpLSWhYP01uWmZiM0tGSjh6TURhNiFhYkFPQGNAZSs+
dms4Z1o+KHtKZmxTI2ZZSHpxYWo+CnpOVG5KRlF7OGoqekJfYD9zJE88el9PT2Bwd0ped1QmaF9w
bypKYXI9XlV7dTs1WkxRS1ZjRzY4P15ZKSpvYTZWNgp6Wl5HV1dVK1ZsZS0/S1pVYyEqbmF0LWFm
aC1nI2VwdUcmOUplN05NPGt2M1p5M0RZaz41PTZJNHReOHFuTkYtanMKelNBOWBQO1l+Zj5rMkJX
JjRnMktQUjR+RWZSN3pxKWFnPk11YilVUSt5Vl9aNil2Z1AjZV5lZThfXmA1SElRYHowCnp5WUYz
WkZ8OVk/bGpWYChuWkBmN0FtR1o5SUFjU0FMenw3MXB+PEVxZCojKF4odnohPU4+I0ZVbW42QXRi
Z1ZZSgp6VzRrP1kkejdYJjhjS3l6b1ZSakpgczRVZFl5Qzw4cjxGZlgkODVMfV9JPTlRKnxUPGlk
U0hGQD5DQnh7YUBRfVAKemN3Rm9vUzJPaVcrMm5CZFg9XkkwX1JNLUNXJmI5OHk1WH1YKUJZcEg4
LTlQKGpofWpFeEBNMmEoWmB7bVV3T0JiCnpNajR2bHBQeTUyWlRtPj95eCFKcCNjTW1lJkJKQy1Q
eWRfY0AlIURYSihIaD57YDhPZ2B0ZVd0KigxcjFHITUwdAp6eH1HYWBQQ3UmbWFuY1IlKSFkSH5h
KnVQJm8hWHsoRFI8JjhtOCVIfXYtVyh8a0Z9NGsqeX5vJF5FR2dhPGU1dCQKem8heyNaWHtESVYt
Tn4yI3ROLUAjS2pLZm1jUmlvNCFLOXpfO0thO2J4eHQwKzFzMHwqJWAwQlZCKTxQKj9UMmw3Cnoq
XkJFZXs7KSpZdFFLMXZXSUE3QTUySCszZHpJVl4lXjg9Y08qP0JEKVVHcHNAfilTc2w3aHx6Kzsk
RU14fl9VWAp6KW12PXklK1JFbFdqQUpDbWQlcXtYekJGKiRhMWdMJC1tWnI2eHtINEwodEVrWWwz
ZHBgQUo9Q29jPTVTekBFUloKejJQKFFkODVrNThKWTVfXkRqNDcxR3xaRnI2a3Y3eSpaUXRMSFM2
ajIra1lMPkk1eEUlNVlmKD4hKHg5d0tLfXB6Cnp8M0NsUj9OOTJpS21KM3RgX0NXJFEqMTA4MHR5
WmQ0Mig/VEVkTz9ZQExSNn09MEhSYjFVZlh4TUF7JDtKIW9yUwp6KnR6aTRUKH5ZNDRqRVJLNkJD
YSpHYS1jWEk1O0xxdWUjPzZHSWk3LVAjQkRjKFAlbSVtXzs2KGZCeVJTazdvSnIKekEzcHlxLTJk
c0xfJj9SPjdWbi1aIVpNTFYrPHx6OVB4RkJfOVh6WU9YSkkqRW9qbjxyZztfWUJ1KEVqazZKfGk8
Cno7UmthWTclSjBxZzx5cy1IMTI2Jkk5Ym9jZlk3cj9TVX08WjhlYioyclV+SyMzUDFmQjtKS0hm
djdDd04kPXQxOwp6YUM9IWtGKV53OT1WWEFDOTNiSGplaHYrTEhrKTxBSDk1cE5HKDUzcVdJKlYt
JEhfNkZ7Rjw1fFQrPDB8anRQSSUKejhJWHp6WWV2UlQ9V2VNV0pYcCFkSU8jdE4xR0k8Jm5wTDUk
O0JZVDt3aExVN2cxKjlOcG98Nno2TH40K1VycWdmCno+OVg9bT5tIzQmUDJNZ0hQbnJeM0tlJGZf
K3xOTHlMe21uX3B4cnhhSXBJbD4yVXpjb3N1JkZxWG80NmBBRVVXcAp6dn4rO0FEbkBnfFhsQHdJ
NFdxZE0rI01LZ0RVRyVxTV9iYWN6UXQmNjd8amkleG5WUm5mUVE+ZytzVUt0PGs1RVcKelhnaGhk
b3leRUlTezlDJGdgO0k1Kj0xcStsaj8yOzI5NjVRU155U34oTyQtQUZKcldxRzF8KSo/UFpMWGdg
K2RxCmhxeDFCJW9+TGl6VSRLakNvIVRxeVh+NTtYNDQkcmpGNioyVW5nQ0hKMGIyazcKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhi
MTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFn
ZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdl
cy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWQxZjRmZWE4YmM4
ZTZlYzFmNjRmODJhNDU3NmMxZjQxNTRjMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKQEAgLTAsMCArMSw1
NyBAQAorPCFET0NUWVBFIGh0bWw+IAorPHN0eWxlPiAKKwljYW52YXMgeworCQlkaXNwbGF5OiBi
bG9jazsKKwkJcG9zaXRpb246IGZpeGVkOworCQlsZWZ0OiAwcHg7CisJCXRvcDogMHB4OworCQly
aWdodDogMHB4OworCQlib3R0b206IDBweDsKKwkJYm9yZGVyOiBub25lOworCQl3aWR0aDogMTAw
cHg7CisJCWhlaWdodDogMTAwcHg7CisJCW1hcmdpbjogMHB4OworCQlwYWRkaW5nOiAwcHg7CisJ
CWltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKKwl9Cis8L3N0eWxl
PiAKKzxib2R5PiAKKyAgICA8IS0tIFRoZSByZXN1bHRpbmcgaW1hZ2Ugc2hvdWxkIGJlIDEwMHgx
MDAsIGNvbnNpc3Rpbmcgb2YgNCA1MHg1MCBibG9ja3Mgb2Ygc29saWQgY29sb3IsIHdpdGggbm8g
Ymx1cnJpbmcgb2YgZWRnZXMgLS0+CisJPGNhbnZhcyB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2Nh
bnZhcz4gCis8L2JvZHk+IAorPHNjcmlwdD4gCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsK
KyAgICAgICAgCisJdmFyIGNhbnZhczsKKwl2YXIgaW1hZ2VIYW5kbGU7CisJY2FudmFzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdLmdldENvbnRleHQoIjJkIik7
CisJY2FudmFzLndpZHRoID0gMjsKKwljYW52YXMuaGVpZ2h0ID0gMjsKKwlpbWFnZUhhbmRsZSA9
IGNhbnZhcy5jcmVhdGVJbWFnZURhdGEoMiwgMik7CisKKwl2YXIgaW5kZXggPSAwOworCXZhciBs
ZW5ndGggPSBpbWFnZUhhbmRsZS5kYXRhLmxlbmd0aDsKKworICAgIGltYWdlSGFuZGxlLmRhdGFb
aW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAg
aW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRl
eCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGlt
YWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRl
eCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGlt
YWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgr
K10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VI
YW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgr
K10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFu
ZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAy
NTU7CisKKwljYW52YXMucHV0SW1hZ2VEYXRhKGltYWdlSGFuZGxlLCAwLCAwKTsKKzwvc2NyaXB0
PiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0
LWltYWdlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNv
bnRyYXN0LWltYWdlLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTkxZGVjZDgyOGU0YjIzOTdh
YmI5ODIzNzY5YjJkNjI3MGE3ZDIyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTI0NAp6Y21l
QVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VG
eGVTSUQKelgydkVhbUtKNmYyOGt4N01rYX5JREhldG5yV1BpdENLa3F0N0tXdVA4fHJ7Mnl2dVpV
NClBbiNSdFBBe1BzX3xuCnpXbmlkYVl6O1l8RSRrQHImbiQxezF0cEhDWWAjcXU2Tz1xN1M3KjNo
RzVhZitsK0FObmV3KnVyNmwyZThkMWtOUQp6c2NsYF9AI043KHQkVkktN3FiNnZrZ05LVHFWTHJq
PCpJUlN3TU5vSGFvdncrXkwofX5lUmJlbS1SRkRlP2Aha1IKej9sYlRmVHs4TEYhMTlGbWMrZXVq
JSR5cGh0VW56TGVUejY5TztrZn56d3VMSGI4SWdEU15mTSo2QE8hTip4fkJtCno8KHRhYSZicVgx
N0pKS0loWD9NblpmYjNLRko4ek1EYTYhYWJBT0BjQGUrPnZrOGdaPih7SmZsUyNmWUh6cWFqPgp6
TlRuSkZRezhqKnpCX2A/cyRPPHpfT09gcHdKXndUJmhfcG8qSmFyPV5Ve3U7NVpMUUtWY0c2OD9e
WSkqb2E2VjYKelpeR1dXVStWbGUtP0taVWMhKm5hdC1hZmgtZyNlcHVHJjlKZTdOTTxrdjNaeTNE
WWs+NT02STR0Xjhxbk5GLWpzCnpTQTlgUDtZfmY+azJCVyY0ZzJLUFI0fkVmUjd6cSlhZz5NdWIp
VVEreVZfWjYpdmdQI2VeZWU4X15gNUhJUWB6MAp6eVlGM1pGfDlZP2xqVmAoblpAZjdBbUdaOUlB
Y1NBTHp8NzFwfjxFcWQqIyheKHZ6IT1OPiNGVW1uNkF0YmdWWUoKelc0az9ZJHo3WCY4Y0t5em9W
UmpKYHM0VWRZeUM8OHI8RmZYJDg1TH1fST05USp8VDxpZFNIRkA+Q0J4e2FAUX1QCnpjd0Zvb1My
T2lXKzJuQmRYPV5JMF9STS1DVyZiOTh5NVh9WClCWXBIOC05UChqaH1qRXhATTJhKFpge21Vd09C
Ygp6TWo0dmxwUHk1MlpUbT4/eXghSnAjY01tZSZCSkMtUHlkX2NAJSFEWEooSGg+e2A4T2dgdGVX
dCooMXIxRyE1MHQKenh9R2FgUEN1Jm1hbmNSJSkhZEh+YSp1UCZvIVh7KERSPCY4bTglSH12LVco
fGtGfTRrKnl+byReRUdnYTxlNXQkCnpvIXsjWlh7RElWLU5+MiN0Ti1AI0tqS2ZtY1JpbzQhSzl6
XztLYTtieHh0MCsxczB8KiVgMEJWQik8UCo/VDJsNwp6Kl5CRWV7OykqWXRRSzF2V0lBN0E1Mkgr
M2R6SVZeJV44PWNPKj9CRClVR3BzQH4pU3NsN2h8eis7JEVNeH5fVVgKeiltdj15JStSRWxXakFK
Q21kJXF7WHpCRiokYTFnTCQtbVpyNnh7SDRMKHRFa1lsM2RwYEFKPUNvYz01U3pARVJaCnoyUChR
ZDg1azU4Slk1X15EajQ3MUd8WkZyNmt2N3kqWlF0TEhTNmoyK2tZTD5JNXhFJTVZZig+ISh4OXdL
S31wegp6fDNDbFI/TjkyaUttSjN0YF9DVyRRKjEwODB0eVpkNDIoP1RFZE8/WUBMUjZ9PTBIUmIx
VWZYeE1BeyQ7SiFvclMKeip0emk0VCh+WTQ0akVSSzZCQ2EqR2EtY1hJNTtMcXVlIz82R0lpNy1Q
I0JEYyhQJW0lbV87NihmQnlSU2s3b0pyCnpBM3B5cS0yZHNMXyY/Uj43Vm4tWiFaTUxWKzx8ejlQ
eEZCXzlYellPWEpJKkVvam48cmc7X1lCdShFams2SnxpPAp6O1JrYVk3JUowcWc8eXMtSDEyNiZJ
OWJvY2ZZN3I/U1V9PFo4ZWIqMnJVfksjM1AxZkI7SktIZnY3Q3dOJD10MTsKemFDPSFrRiledzk9
VlhBQzkzYkhqZWh2K0xIayk8QUg5NXBORyg1M3FXSSpWLSRIXzZGe0Y8NXxUKzwwfGp0UEklCno4
SVh6ellldlJUPVdlTVdKWHAhZElPI3ROMUdJPCZucEw1JDtCWVQ7d2hMVTdnMSo5TnBvfDZ6Nkx+
NCtVcnFnZgp6PjlYPW0+bSM0JlAyTWdIUG5yXjNLZSRmXyt8Tkx5THttbl9weHJ4YUlwSWw+MlV6
Y29zdSZGcVhvNDZgQUVVV3AKenZ+KztBRG5AZ3xYbEB3STRXcWRNKyNNS2dEVUclcU1fYmFjelF0
JjY3fGppJXhuVlJuZlFRPmcrc1VLdDxrNUVXCnpYZ2hoZG95XkVJU3s5QyRnYDtJNSo9MXErbGo/
MjsyOTY1UVNeeVN+KE8kLUFGSnJXcUcxfCkqP1BaTFhnYCtkcQpocXgxQiVvfkxpelUkS2pDbyFU
cXlYfjU7WDQ0JHJqRjYqMlVuZ0NISjBiMms3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1p
bWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIw
YWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2Vz
L29wdGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAzMmZjZmE3YTYxMzk1MTkzYTJiZmE5MjNjMmRiYjE4YjFmZTg3ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250
cmFzdC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPiAKKzxzdHls
ZT4gCisJaW1nIHsKKwkJZGlzcGxheTogYmxvY2s7CisJCXBvc2l0aW9uOiBmaXhlZDsKKwkJbGVm
dDogMHB4OworCQl0b3A6IDBweDsKKwkJcmlnaHQ6IDBweDsKKwkJYm90dG9tOiAwcHg7CisJCWJv
cmRlcjogbm9uZTsKKwkJd2lkdGg6IDEwMHB4OworCQloZWlnaHQ6IDEwMHB4OworCQltYXJnaW46
IDBweDsKKwkJcGFkZGluZzogMHB4OworCQlpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1p
emUtY29udHJhc3Q7CisJfQorPC9zdHlsZT4gCis8Ym9keT4gCisgICAgPCEtLSBUaGUgcmVzdWx0
aW5nIGltYWdlIHNob3VsZCBiZSAxMDB4MTAwLCBjb25zaXN0aW5nIG9mIDQgNTB4NTAgYmxvY2tz
IG9mIHNvbGlkIGNvbG9yLCB3aXRoIG5vIGJsdXJyaW5nIG9mIGVkZ2VzIC0tPgorCTxpbWFnZSBz
dHlsZT0iIiBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBQUlBQUFBQ0NBWUFBQUJ5dGcwa0FBQUFGRWxFUVZRSUhXUDR6OER3SHd5Qk5KRE44QjhBUU5F
Ryt0NUlrMmtBQUFBQVNVVk9SSzVDWUlJPSI+PC9pbWc+IAorPC9ib2R5PiAKKzxzY3JpcHQ+IAor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQKaW5kZXggNjdiN2UwZTEzNWI5Yzc0MjE1Mzc5YThiM2JhMmQ3N2NiNmYz
NTliMy4uYTc3MDU0YzJlODhkMTc5NTUwZTkyMmU1NmEzOTQ0NGI1OTRkY2UxZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTQzLDYgKzQzLDcgQEAgZm9udC1zdHlsZTog
bm9ybWFsOwogZm9udC12YXJpYW50OiBub3JtYWw7CiBmb250LXdlaWdodDogbm9ybWFsOwogaGVp
Z2h0OiA1NzZweDsKK2ltYWdlLXJlbmRlcmluZzogYXV0bzsKIGxlZnQ6IGF1dG87CiBsZXR0ZXIt
c3BhY2luZzogbm9ybWFsOwogbGluZS1oZWlnaHQ6IG5vcm1hbDsKQEAgLTIwMCw3ICsyMDEsNiBA
QCBjb2xvci1yZW5kZXJpbmc6IGF1dG87CiBmaWxsOiAjMDAwMDAwOwogZmlsbC1vcGFjaXR5OiAx
OwogZmlsbC1ydWxlOiBub256ZXJvOwotaW1hZ2UtcmVuZGVyaW5nOiBhdXRvOwogbWFya2VyLWVu
ZDogbm9uZTsKIG1hcmtlci1taWQ6IG5vbmU7CiBtYXJrZXItc3RhcnQ6IG5vbmU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxl
LXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4
dAppbmRleCA0YTM0ZGIyYzZlMDBmMjU5MzY0ZmU0ZDM0ZmQ2ZjlhMzFhNzcxZTA1Li5jYjc0YzI5
Nzk2ZTRlY2Q5NjYxMmM0NGZjNTNkMmUxNTRkMDQ3OWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVy
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTQyLDYg
KzQyLDcgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlz
cGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZvbnQtdmFyaWFudDogbm9ybWFsCiAgICAgZm9u
dC13ZWlnaHQ6IG5vcm1hbAogICAgIGhlaWdodDogMTAwcHgKKyAgICBpbWFnZS1yZW5kZXJpbmc6
IGF1dG8KICAgICBsZWZ0OiBhdXRvCiAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbAogICAgIGxp
bmUtaGVpZ2h0OiBub3JtYWwKQEAgLTE5MCw3ICsxOTEsNiBAQCBDb21wdXRlZCBzdHlsZSBvZiBh
biBlbGVtZW50IHdob3NlIHBhcmVudCdzICdkaXNwbGF5JyB2YWx1ZSBpcyAnbm9uZSc6CiAgICAg
ZmlsbDogIzAwMDAwMAogICAgIGZpbGwtb3BhY2l0eTogMQogICAgIGZpbGwtcnVsZTogbm9uemVy
bwotICAgIGltYWdlLXJlbmRlcmluZzogYXV0bwogICAgIG1hcmtlci1lbmQ6IG5vbmUKICAgICBt
YXJrZXItbWlkOiBub25lCiAgICAgbWFya2VyLXN0YXJ0OiBub25lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVu
ZGVyZXItZXhwZWN0ZWQudHh0CmluZGV4IDg0M2UwOWI5YzZjOWFlYWVlNGU4MzE1NjA1YTc4NDVm
NDFmYTU0ZmYuLjU1Mzk2ODNkMDI5NGJmYzVjMDlkYTQ4MjIyYWQ4MzdiYjQxMjUxODIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0
eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CkBAIC00Miw2ICs0Miw3IEBAIENvbXB1
dGVkIHN0eWxlIG9mIGFuIGVsZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlz
ICdub25lJzoKICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbAogICAgIGZvbnQtd2VpZ2h0OiBub3Jt
YWwKICAgICBoZWlnaHQ6IDEwMHB4CisgICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbGVm
dDogYXV0bwogICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwKICAgICBsaW5lLWhlaWdodDogbm9y
bWFsCkBAIC0xOTksNyArMjAwLDYgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9z
ZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZpbGw6ICMwMDAwMDAK
ICAgICBmaWxsLW9wYWNpdHk6IDEKICAgICBmaWxsLXJ1bGU6IG5vbnplcm8KLSAgICBpbWFnZS1y
ZW5kZXJpbmc6IGF1dG8KICAgICBtYXJrZXItZW5kOiBub25lCiAgICAgbWFya2VyLW1pZDogbm9u
ZQogICAgIG1hcmtlci1zdGFydDogbm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJl
bmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2dl
dENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50
eHQKaW5kZXggODQzZTA5YjljNmM5YWVhZWU0ZTgzMTU2MDVhNzg0NWY0MWZhNTRmZi4uNTUzOTY4
M2QwMjk0YmZjNWMwOWRhNDgyMjJhZDgzN2JiNDEyNTE4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVy
ZXItZXhwZWN0ZWQudHh0CkBAIC00Miw2ICs0Miw3IEBAIENvbXB1dGVkIHN0eWxlIG9mIGFuIGVs
ZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdub25lJzoKICAgICBmb250
LXZhcmlhbnQ6IG5vcm1hbAogICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwKICAgICBoZWlnaHQ6IDEw
MHB4CisgICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbGVmdDogYXV0bwogICAgIGxldHRl
ci1zcGFjaW5nOiBub3JtYWwKICAgICBsaW5lLWhlaWdodDogbm9ybWFsCkBAIC0xOTksNyArMjAw
LDYgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxh
eScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZpbGw6ICMwMDAwMDAKICAgICBmaWxsLW9wYWNpdHk6
IDEKICAgICBmaWxsLXJ1bGU6IG5vbnplcm8KLSAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG8KICAg
ICBtYXJrZXItZW5kOiBub25lCiAgICAgbWFya2VyLW1pZDogbm9uZQogICAgIG1hcmtlci1zdGFy
dDogbm9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZmMDllZmI4NWNkMmE0NTVhMTFjM2VmNTU1Nzg1Mzg2ODY0
NDY1YTYuLjBhOGRlM2VmYTVmZDc1ZGI4NzMyZWI2NzgyYTAyNzFlMGViODcwMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMS0wNS0xMSAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3Ro
ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGltcGxlbWVudCBpbWFnZS1yZW5kZXJpbmc6IG9wdGltaXplLWNvbnRyYXN0ICh3
aXRoIGEgdmVuZG9yIHByZWZpeCkgYXMgZGVmaW5lZCBpbiBDU1MzIGltYWdlIHZhbHVlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY2MjcKKworICAg
ICAgICBUZXN0czogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLmh0bWwKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmlu
Zyk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6
YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAg
ICAgICogY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFNWR1Byb3BlcnR5Q1NTVmFs
dWUpOgorICAgICAgICAqIGNzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNz
cy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9TVkdDU1NWYWx1ZUtleXdv
cmRzLmluOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKiBodG1sL0hUTUxD
YW52YXNFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJp
bmdNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQ
YWludEF0TG93UXVhbGl0eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbWFnZVJlbmRl
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0SW1hZ2VSZW5kZXJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxJbWFnZVJlbmRl
cmluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU1ZHUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpJ
bmhlcml0ZWRGbGFnczo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJT
dHlsZTo6c2V0Qml0RGVmYXVsdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5k
ZXJTdHlsZURlZnMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1Rl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVTdHlsZSk6CisKIDIwMTEtMDUtMTQgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMDRhYThlMzc1NjUwNDM4ODE3MDBhYTk1M2I4YzMzMGI2NmNhOTMwNi4u
NjQ3ODYyOWJmMzNiZThkZDgzMDI0NTM3MmFmMzQ3OWZmODE2NThhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTk1LDYgKzk5
NSw3IEBACiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdF
NDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3
MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1
MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzky
RDYgLyogUmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZElu
Zm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0
OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI5MUU0QTEzNDE3MkM4MDBF
NzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi87IH07CiAJCTQ5M0U1RTA5MTJENjQyMDUw
MDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0
Zm9ybUNBTGF5ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRG
QjMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNwcCAqLzsgfTsKIAkJNDk0ODRG
QzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNDEwMkNGMjNDMDAxODdERDMgLyog
Q2FudmFzR3JhZGllbnQuaCAqLzsgfTsKQEAgLTc0ODAsNiArNzQ4MSw3IEBACiAJCTQ5MDcwN0U0
MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJy
aWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTI4NjM5ODEyNTNCOEZDMDBG
NzkyRDYgLyogUmVzb3VyY2VMb2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZXNvdXJjZUxvYWRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5
MjkxRTRBMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNB
TGF5ZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1D
QUxheWVyQ2xpZW50Lmg7IHBhdGggPSBjYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQjMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZh
c0dyYWRpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhbnZh
c0dyYWRpZW50LmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNHcmFkaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNH
cmFkaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNHcmFkaWVu
dC5oOyBwYXRoID0gY2FudmFzL0NhbnZhc0dyYWRpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzY5Myw2ICsxNzY5NSw3IEBACiAJCQkJQjJBMTBCOTEwQjM4MThCRDAwMDk5
QUE0IC8qIEltYWdlQnVmZmVyLmggKi8sCiAJCQkJMjJCRDlGN0QxMzUzNjI1QzAwOUJEMTAyIC8q
IEltYWdlQnVmZmVyRGF0YS5oICovLAogCQkJCUJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJ
bWFnZU9ic2VydmVyLmggKi8sCisJCQkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdl
UmVuZGVyaW5nTW9kZS5oICovLAogCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFn
ZVNvdXJjZS5oICovLAogCQkJCUIyNzUzNTQ0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5o
ICovLAogCQkJCUU0NjJBNEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhhc2guaCAqLywK
QEAgLTIxMTcyLDYgKzIxMTc1LDcgQEAKIAkJCQlGNTVCM0RDMjEyNTFGMTJEMDAzRUYyNjkgLyog
SW1hZ2VJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4
MkM4MyAvKiBJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RjQ0QTgwQjlFMzI0
RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjkxRTRC
MTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyNzUzNTcxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291cmNlQ0cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxNkZFMTE4MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1h
dGlvbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDA4NjI2ZGRmZDg1YWQ5YmVjZjZmNGI0NjE1
MjE2MjJkZTk4YTNlZjUuLjEzZDYzNDAxOGUxNWEyNTQ1M2YwY2Q5M2M4NDU0MDc3MTExZDczNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC05OSw2ICs5OSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0
aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlGb250VmFyaWFudCwKICAgICBDU1NQcm9wZXJ0eUZv
bnRXZWlnaHQsCiAgICAgQ1NTUHJvcGVydHlIZWlnaHQsCisgICAgQ1NTUHJvcGVydHlJbWFnZVJl
bmRlcmluZywKICAgICBDU1NQcm9wZXJ0eUxlZnQsCiAgICAgQ1NTUHJvcGVydHlMZXR0ZXJTcGFj
aW5nLAogICAgIENTU1Byb3BlcnR5TGluZUhlaWdodCwKQEAgLTI2Myw3ICsyNjQsNiBAQCBzdGF0
aWMgY29uc3QgaW50IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5Rmls
bCwKICAgICBDU1NQcm9wZXJ0eUZpbGxPcGFjaXR5LAogICAgIENTU1Byb3BlcnR5RmlsbFJ1bGUs
Ci0gICAgQ1NTUHJvcGVydHlJbWFnZVJlbmRlcmluZywKICAgICBDU1NQcm9wZXJ0eU1hcmtlckVu
ZCwKICAgICBDU1NQcm9wZXJ0eU1hcmtlck1pZCwKICAgICBDU1NQcm9wZXJ0eU1hcmtlclN0YXJ0
LApAQCAtMTE1Niw2ICsxMTU2LDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAg
ICAgIGlmIChzdHlsZS0+Ym9yZGVyRml0KCkgPT0gQm9yZGVyRml0Qm9yZGVyKQogICAgICAgICAg
ICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVCb3JkZXIpOwogICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUt
PmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUxpbmVzKTsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUltYWdlUmVuZGVyaW5nOgorICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGUoc3R5bGUtPmltYWdlUmVuZGVyaW5nKCkpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5TGVmdDoKICAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0
eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUxlZnQsIHByaW1pdGl2ZVZhbHVlQ2FjaGUpOwogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5TGV0dGVyU3BhY2luZzoKQEAgLTE3ODIsNyArMTc4NCw2IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVy
dHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5RmlsbE9wYWNpdHk6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlGaWxsUnVsZToKLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFy
a2VyRW5kOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyTWlkOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAppbmRleCAxOTcxMWQyYTc0NWRhNmNiODY5NWI1YjMzYjZmM2JhZjFlODBlZDBm
Li4yYjc0NjI3N2Y4YzcyMjYxZWRhYTVkODUxOTBlODBhOTU4NGIyZTI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcApAQCAtMTcxNiw3ICsxNzE2LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgKGlkID49IENT
U1ZhbHVlVmlzaWJsZXBhaW50ZWQgJiYgaWQgPD0gQ1NTVmFsdWVTdHJva2UpKQogICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKLQorICAgIGNhc2UgQ1NT
UHJvcGVydHlJbWFnZVJlbmRlcmluZzogLy8gYXV0byB8IG9wdGltaXplQ29udHJhc3QKKyAgICAg
ICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZVdlYmtpdE9wdGltaXpl
Q29udHJhc3QpCisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGJy
ZWFrOwogICAgIC8vIEVuZCBvZiBDU1MzIHByb3BlcnRpZXMKIAogICAgIC8vIEFwcGxlIHNwZWNp
ZmljIHByb3BlcnRpZXMuICBUaGVzZSB3aWxsIG5ldmVyIGJlIHN0YW5kYXJkaXplZCBhbmQgYXJl
IHB1cmVseSB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgKaW5kZXggZGQ2ZmVlMDA2N2JiNGZkOTVhYmU1NzljMDFjMjg2ODkxYTczOWQyYS4uYjZk
MGY3OTk2ZjA1NGEwNWQ0ZTEyOTliMzRjZGRlNTUxYzEwM2YwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0yOTQ5LDMwICsyOTQ5LDM1
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShFSW1hZ2VSZW5kZXJpbmcgZSkKICAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBJUl9BVVRPOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIElSX09QVElNSVpFU1BFRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVPcHRpbWl6ZXNwZWVkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSVJfT1BU
SU1JWkVRVUFMSVRZOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1p
emVxdWFsaXR5OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZ0F1
dG86CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkOgorICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEltYWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VS
ZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVXZWJraXRPcHRpbWl6ZUNvbnRyYXN0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJp
bmcoKSBjb25zdAogewogICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNl
IENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBJUl9BVVRPOwotICAgICAgICBjYXNl
IENTU1ZhbHVlT3B0aW1pemVzcGVlZDoKLSAgICAgICAgICAgIHJldHVybiBJUl9PUFRJTUlaRVNQ
RUVEOwotICAgICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5OgotICAgICAgICAgICAg
cmV0dXJuIElSX09QVElNSVpFUVVBTElUWTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIElSX0FVVE87CisgICAg
Y2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmluZ0F1dG87Cisg
ICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ6CisgICAgICAgIHJldHVybiBJbWFnZVJlbmRl
cmluZ09wdGltaXplU3BlZWQ7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToKKyAg
ICAgICAgcmV0dXJuIEltYWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5OworICAgIGNhc2UgQ1NT
VmFsdWVXZWJraXRPcHRpbWl6ZUNvbnRyYXN0OgorICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJp
bmdPcHRpbWl6ZUNvbnRyYXN0OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCBlYTU0YzEyNzNmNzI1MmNk
ZDYwNzcwZTFiMmY1MGEwMWQ2MTUyNDA5Li45ZmE2MmUxM2YyMTM1YzdhY2VjYTdiZWJjMjEzMTMz
MjlhMjJiMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtOTMs
NiArOTMsNyBAQCBlbXB0eS1jZWxscwogZmxvYXQKIGZvbnQtc3RyZXRjaAogaGVpZ2h0CitpbWFn
ZS1yZW5kZXJpbmcKIGxlZnQKIGxldHRlci1zcGFjaW5nCiBsaXN0LXN0eWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggZGQ2ZjE0MTViYmUxN2RmNjMzOTk3M2Q3
OWZjYjlkZGE3NzIwZjlmOC4uMDUwYjNmMWJmYjJmYjA5NWI2NWU5YzhlM2VjNjZiMGQyYmUxNmE1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDY0Niw2ICs0
NjQ2LDExIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENT
U1ZhbHVlICp2YWx1ZSkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwob3V0bGlu
ZU9mZnNldCwgT3V0bGluZU9mZnNldCkKICAgICAgICAgbV9zdHlsZS0+c2V0T3V0bGluZU9mZnNl
dChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50
U3R5bGUsIHpvb21GYWN0b3IpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlJbWFnZVJlbmRlcmluZzoKKyAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgbV9zdHlsZS0+c2V0SW1hZ2VSZW5kZXJpbmcoKnByaW1pdGl2
ZVZhbHVlKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVy
aW5nOiB7CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxl
LT5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDZkYWMwNmZjY2JjOTJiYjk4M2EzNDc0NzA1
ZDhhNDM5NjhjMDFmNWMuLmQ2NzBhNjJmNGYyMGRkNWE3YTJkMmFjMDY2OWExYTdlMDY1YzkyZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDMsNCArODAzLDgg
QEAgZ2x5cGhzCiBpbmxpbmUtYm94CiByZXBsYWNlZAogCi0KKyMgaW1hZ2UtcmVuZGVyaW5nCisj
YXV0bworI29wdGltaXplU3BlZWQKK29wdGltaXplUXVhbGl0eQorLXdlYmtpdC1vcHRpbWl6ZS1j
b250cmFzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAppbmRleCA1ZGZlMDNlMDMwMTNhZDVlMWU3ZjFkZWIxZGJiZDkzYjIy
NGVjNjc3Li4wYzJhYWZmOTk2Nzg1NmMwNDk1MWQyZWVmNWEzMTMyZDczNzk5YTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcApAQCAtMTAzLDggKzEwMyw2IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvCiAgICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+ZmlsbFJ1bGUo
KSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvclJlbmRlcmluZzoKICAgICAgICAgICAg
IHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5jb2xvclJlbmRlcmlu
ZygpKTsKLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgotICAgICAgICAg
ICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5bGUtPmltYWdlUmVuZGVy
aW5nKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+c2hhcGVSZW5k
ZXJpbmcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VMaW5lY2FwOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA3YzE1N2E4YzczNzg3OGRh
OGRhNmM0ZTBlN2RkZGUwMDg3NDBmNDY0Li4zOGFkM2I2YTAxMGYwMGQ0ODg2ZTZmZTRmZWM0OWY4
YzcxNTgzM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlO
YW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgpA
QCAtMjMsNyArMjMsNyBAQCBmaWxsCiBmaWxsLW9wYWNpdHkKIGZpbGwtcnVsZQogI2ZvbnQtc2l6
ZS1hZGp1c3QKLWltYWdlLXJlbmRlcmluZworI2ltYWdlLXJlbmRlcmluZwogbWFya2VyCiBtYXJr
ZXItZW5kCiBtYXJrZXItbWlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKaW5kZXggNmIwOTQyNmVjMGQ3NzBmNGNlNDUwZDcxNmY2NTdhN2E5NWM4ZGZlZS4uOGNi
NmI3ZThiMTY5ZjBiNTUzYzc0MDM2NmIzMzFlYzcwZWIyNTlmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjE0LDEzICsyMTQsNiBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSogdmFsdWUp
CiAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEpvaW5TdHlsZSgqcHJpbWl0aXZlVmFsdWUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUltYWdlUmVuZGVyaW5nOgotICAgICAgICB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9B
TkRfSU5JVElBTChpbWFnZVJlbmRlcmluZywgSW1hZ2VSZW5kZXJpbmcpCi0gICAgICAgICAgICBp
ZiAocHJpbWl0aXZlVmFsdWUpCi0gICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEltYWdlUmVu
ZGVyaW5nKCpwcmltaXRpdmVWYWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAgIHsKICAgICAg
ICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHNoYXBlUmVuZGVyaW5nLCBTaGFwZVJl
bmRlcmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdv
cmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXgg
YTJjOWY4Mzc3M2E0ZDY3NDI0MTIxNjBmNjE5OWRiOTA3OTY3YzVjNC4uNDE3YThkNWU2MjdjZjA2
YTUzODMyMDMyZjQ4MWY5YmE1ZTM4ZjhiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1Zh
bHVlS2V5d29yZHMuaW4KQEAgLTE5Nyw3ICsxOTcsNyBAQCBsaW5lYXJSR0IKICMgQ1NTX1BST1Bf
Q09MT1JfUkVOREVSSU5HCiAjYXV0bwogI29wdGltaXplU3BlZWQKLW9wdGltaXplUXVhbGl0eQor
I29wdGltaXplUXVhbGl0eQogCiAjIyBDU1NfUFJPUF9GSUxMCiAjY3VycmVudENvbG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGQ0MTY1NjIzNzJhYzk0
ZjA1NDA1YzhiNjkwMDVlYjk2NTM2Zjc2NmMuLjVmM2Q2MzMwMTA2NzUwYmE2ZDZjZGI4YTZjMzRh
MzhmOGU4YWY5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogICAg
ICAgICAoKml0KS0+Y2FudmFzUmVzaXplZCh0aGlzKTsKIH0KIAotdm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQor
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiByLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICAvLyBDbGVh
ciB0aGUgZGlydHkgcmVjdAogICAgIG1fZGlydHlSZWN0ID0gRmxvYXRSZWN0KCk7CkBAIC0yODAs
MTEgKzI4MCwxMSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIpCiAgICAgICAgIEltYWdlQnVmZmVyKiBpbWFn
ZUJ1ZmZlciA9IGJ1ZmZlcigpOwogICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKICAgICAgICAg
ICAgIGlmIChtX3ByZXNlbnRlZEltYWdlKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJ
bWFnZShtX3ByZXNlbnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByKTsKKyAg
ICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwg
Q29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93UXVhbGl0
eVNjYWxlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGltYWdlQnVmZmVyLT5kcmF3c1VzaW5nQ29w
eSgpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShjb3BpZWRJbWFnZSgpLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCByKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1h
Z2UoY29waWVkSW1hZ2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNl
T3ZlciwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIENvbG9yU3BhY2VEZXZp
Y2VSR0IsIHIpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFn
ZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDk3ZDU1Y2M0OTgxNjI2YzU1MmIxMDg1Y2U5YzM4ZDQ5
YTc2NjI2NzkuLjlkYjk2NzM5MTM2OWJkNTIwMDNlNjQ1MDc0YThmNjc2NzljNjZmMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVi
bGljOgogICAgIC8vIFVzZWQgZm9yIHJlbmRlcmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBG
bG9hdFJlY3QmKTsKIAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYpOworICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYs
IGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0
KiBkcmF3aW5nQ29udGV4dCgpIGNvbnN0OwogICAgIEdyYXBoaWNzQ29udGV4dCogZXhpc3RpbmdE
cmF3aW5nQ29udGV4dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVJlbmRlcmluZ01vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTQ2MmZiYTU4ZTAy
MzY1NWFkODU1MTdhNDljMmRlNjNhMjI0NWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmgKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEltYWdlUmVuZGVyaW5nTW9kZV9oCisjZGVmaW5lIEltYWdlUmVu
ZGVyaW5nTW9kZV9oCisgICAgCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gSW1hZ2VSZW5k
ZXJpbmdNb2RlIHsgQXV0b0ltYWdlUmVuZGVyaW5nLCBPcHRpbWl6ZUNvbnRyYXN0IH07CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKyAgICAKKyNlbmRpZiAvLyBJbWFnZVJlbmRlcmluZ01vZGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKaW5kZXggYzAzYmEzYmNkZTBlZjEwMGE1OWE1YzYzNGVkMjY1YTA4MTU5ODEzYi4uYzk3ODIw
NTZlYjMyNDkyOGU5MWQ2Yjk4MTkwZDViOWU0MjE3NTJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0xMzksNiArMTM5LDkg
QEAgYm9vbCBJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVhbGl0eShH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFIKICAgICBpZiAoIWltYWdlIHx8ICFpbWFnZS0+aXNC
aXRtYXBJbWFnZSgpIHx8IGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgaWYgKG9iamVjdC0+c3R5bGUoKS0+aW1hZ2VSZW5kZXJpbmcoKSA9
PSBXZWJDb3JlOjpJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3QpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0byB1c2UgdGhlIHVuem9vbWVkIGltYWdl
IHNpemUsIHNpbmNlIGlmIGEgZnVsbCBwYWdlIHpvb20gaXMgaW4gZWZmZWN0LCB0aGUgaW1hZ2UK
ICAgICAvLyBpcyBhY3R1YWxseSBiZWluZyBzY2FsZWQuCiAgICAgSW50U2l6ZSBpbWFnZVNpemUo
aW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKaW5kZXggZGUyYTJjMTU2ZjFkODNjMjg5MmU5MjJh
ZmRmNzYwZWUwNjA2N2UxZi4uODFjZTM4MjBiMDZhMmEwZWZkZmFkYWY2NTM5NzA4OTBkZDdkNmMx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcApA
QCAtNTgsNyArNTgsOCBAQCB2b2lkIFJlbmRlckhUTUxDYW52YXM6OnBhaW50UmVwbGFjZWQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQogewogICAgIEludFJlY3QgcmVjdCA9
IGNvbnRlbnRCb3hSZWN0KCk7CiAgICAgcmVjdC5tb3ZlKHR4LCB0eSk7Ci0gICAgc3RhdGljX2Nh
c3Q8SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwg
cmVjdCk7CisgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBzdHlsZSgpLT5pbWFnZVJlbmRl
cmluZygpID09IFdlYkNvcmU6OkltYWdlUmVuZGVyaW5nT3B0aW1pemVDb250cmFzdDsKKyAgICBz
dGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnBhaW50KHBhaW50SW5mby5j
b250ZXh0LCByZWN0LCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIFJlbmRlckhUTUxD
YW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDdkODY2M2E5ODc4ZWM1NzI2Yzc2NjU5NmQ4OWU3
YWQ3MThiNmMzOGEuLjRlYThiMjkxY2IwN2VhZDQwZjJmODZkNjE3MTcyMGJmNDUwNzFlYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAt
NTYwLDcgKzU2MCw4IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBS
ZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAgIHx8IHJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0RmlsbENvbG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+
dGV4dEZpbGxDb2xvcgogICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNv
bG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yCiAgICAgICAg
IHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNDb2xvciAhPSBvdGhlci0+cmFyZUlu
aGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0NvbG9yCi0gICAgICAgIHx8IHJhcmVJbmhlcml0ZWRE
YXRhLT50ZXh0RW1waGFzaXNGaWxsICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVt
cGhhc2lzRmlsbCkKKyAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0Zp
bGwgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNGaWxsCisgICAgICAg
IHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVuZGVyaW5nICE9IG90aGVyLT5yYXJlSW5o
ZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRlcmluZykKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVy
ZW5jZVJlcGFpbnQ7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDIzZjU1MzVmMTI4
NTVmMmJiMDE1ZmIyOTZjNjA5MDIyOWNkNmRhYTYuLjc0M2Y5ZmU1OTVlNDI4OTQ1OGViYmYwMTM4
NTViNzM3YmEzODY1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC03ODMsNiArNzgzLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNGbGlwcGVk
TGluZXNXcml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdNb2RlKCkgPT0gTGVmdFRv
UmlnaHRXcml0aW5nTW9kZSB8fCB3cml0aW5nTW9kZSgpID09IEJvdHRvbVRvVG9wV3JpdGluZ01v
ZGU7IH0KICAgICBib29sIGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1
cm4gd3JpdGluZ01vZGUoKSA9PSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlIHx8IHdyaXRpbmdNb2Rl
KCkgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZTsgfQogCisgICAgRUltYWdlUmVuZGVyaW5nIGlt
YWdlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdlUmVuZGVyaW5n
PihyYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRlcmluZyk7IH0KKyAgICAKICAgICBFU3Bl
YWsgc3BlYWsoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxFU3BlYWs+KHJhcmVJbmhlcml0ZWREYXRh
LT5zcGVhayk7IH0KICAgICAgICAgCiAvLyBhdHRyaWJ1dGUgc2V0dGVyIG1ldGhvZHMKQEAgLTkz
NCw2ICs5MzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMaW5lSGVpZ2h0KExlbmd0aCB2KSB7
IFNFVF9WQVIoaW5oZXJpdGVkLCBsaW5lX2hlaWdodCwgdikgfQogICAgIHZvaWQgc2V0Wm9vbShm
bG9hdCBmKSB7IFNFVF9WQVIodmlzdWFsLCBtX3pvb20sIGYpOyBzZXRFZmZlY3RpdmVab29tKGVm
ZmVjdGl2ZVpvb20oKSAqIHpvb20oKSk7IH0KICAgICB2b2lkIHNldEVmZmVjdGl2ZVpvb20oZmxv
YXQgZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2VmZmVjdGl2ZVpvb20sIGYpIH0K
KyAgICB2b2lkIHNldEltYWdlUmVuZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2KSB7IFNFVF9WQVIo
cmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZW5kZXJpbmcsIHYpIH0KIAogICAgIHZvaWQgc2V0
V2hpdGVTcGFjZShFV2hpdGVTcGFjZSB2KSB7IGluaGVyaXRlZF9mbGFncy5fd2hpdGVfc3BhY2Ug
PSB2OyB9CiAKQEAgLTEzMTcsNiArMTMyMCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBpbml0aWFsVGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpIHsgcmV0dXJuIG51
bGxBdG9tOyB9CiAgICAgc3RhdGljIFRleHRFbXBoYXNpc1Bvc2l0aW9uIGluaXRpYWxUZXh0RW1w
aGFzaXNQb3NpdGlvbigpIHsgcmV0dXJuIFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcjsgfQogICAg
IHN0YXRpYyBMaW5lQm94Q29udGFpbiBpbml0aWFsTGluZUJveENvbnRhaW4oKSB7IHJldHVybiBM
aW5lQm94Q29udGFpbkJsb2NrIHwgTGluZUJveENvbnRhaW5JbmxpbmUgfCBMaW5lQm94Q29udGFp
blJlcGxhY2VkOyB9CisgICAgc3RhdGljIEVJbWFnZVJlbmRlcmluZyBpbml0aWFsSW1hZ2VSZW5k
ZXJpbmcoKSB7IHJldHVybiBJbWFnZVJlbmRlcmluZ0F1dG87IH0KIAogICAgIC8vIEtlZXAgdGhl
c2UgYXQgdGhlIGVuZC4KICAgICBzdGF0aWMgTGluZUNsYW1wVmFsdWUgaW5pdGlhbExpbmVDbGFt
cCgpIHsgcmV0dXJuIExpbmVDbGFtcFZhbHVlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggYzU0ZWNjZmE4
MjZkYTliZDc1Mzg4NGJiMmNhY2UwMjI5OWJlODQwYi4uNDFkOGY2NTBhNmE4ODQ1MmE4YzlkYTY3
OWJiZWRiZjdlMTdiZTUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTQyNiw2ICs0MjYsOCBAQCBlbnVtIFRl
eHRFbXBoYXNpc01hcmsgeyBUZXh0RW1waGFzaXNNYXJrTm9uZSwgVGV4dEVtcGhhc2lzTWFya0F1
dG8sIFRleHRFbXBoYXNpcwogCiBlbnVtIFRleHRFbXBoYXNpc1Bvc2l0aW9uIHsgVGV4dEVtcGhh
c2lzUG9zaXRpb25PdmVyLCBUZXh0RW1waGFzaXNQb3NpdGlvblVuZGVyIH07CiAKK2VudW0gRUlt
YWdlUmVuZGVyaW5nIHsgSW1hZ2VSZW5kZXJpbmdBdXRvLCBJbWFnZVJlbmRlcmluZ09wdGltaXpl
U3BlZWQsIEltYWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5LCBJbWFnZVJlbmRlcmluZ09wdGlt
aXplQ29udHJhc3QgfTsKKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCmluZGV4IGIyYmU0OGU4MWYzOTFjN2Q0ZWE3NmQwNWZm
OTBhYjhhZTkwNDg4YTkuLjYwNDlmNzRkY2U1NGNiNDZkYzRhZWYyNDgzY2NjM2RiMzFiNWQzNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxl
LmNwcApAQCAtMjAzLDcgKzIwMyw2IEBAIFN0eWxlRGlmZmVyZW5jZSBTVkdSZW5kZXJTdHlsZTo6
ZGlmZihjb25zdCBTVkdSZW5kZXJTdHlsZSogb3RoZXIpIGNvbnN0CiAKICAgICAvLyBDaGFuZ2Vz
IG9mIHRoZXNlIGZsYWdzIG9ubHkgY2F1c2UgcmVwYWludHMuCiAgICAgaWYgKHN2Z19pbmhlcml0
ZWRfZmxhZ3MuX2NvbG9yUmVuZGVyaW5nICE9IG90aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdzLl9j
b2xvclJlbmRlcmluZwotICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRl
cmluZyAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcKICAgICAg
ICAgfHwgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmcgIT0gb3RoZXItPnN2Z19p
bmhlcml0ZWRfZmxhZ3MuX3NoYXBlUmVuZGVyaW5nCiAgICAgICAgIHx8IHN2Z19pbmhlcml0ZWRf
ZmxhZ3MuX2NsaXBSdWxlICE9IG90aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdzLl9jbGlwUnVsZQog
ICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9maWxsUnVsZSAhPSBvdGhlci0+c3ZnX2lu
aGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1NWR1JlbmRlclN0eWxlLmgKaW5kZXggODhhNDhkZjVhMzZmODJiMmQyYmEwZDEzMTg1YzI0
OWJjMWE1NzRiYy4uMGZlNGE4MGNkZmNkNTIxZjQ3MzdkMzdmYzJmMWM1YjVjMzMyZTlkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKQEAg
LTYzLDcgKzYzLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBFQ29sb3JJbnRlcnBvbGF0aW9uIGlu
aXRpYWxDb2xvckludGVycG9sYXRpb25GaWx0ZXJzKCkgeyByZXR1cm4gQ0lfTElORUFSUkdCOyB9
CiAgICAgc3RhdGljIEVDb2xvclJlbmRlcmluZyBpbml0aWFsQ29sb3JSZW5kZXJpbmcoKSB7IHJl
dHVybiBDUl9BVVRPOyB9CiAgICAgc3RhdGljIFdpbmRSdWxlIGluaXRpYWxGaWxsUnVsZSgpIHsg
cmV0dXJuIFJVTEVfTk9OWkVSTzsgfQotICAgIHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlh
bEltYWdlUmVuZGVyaW5nKCkgeyByZXR1cm4gSVJfQVVUTzsgfQogICAgIHN0YXRpYyBMaW5lSm9p
biBpbml0aWFsSm9pblN0eWxlKCkgeyByZXR1cm4gTWl0ZXJKb2luOyB9CiAgICAgc3RhdGljIEVT
aGFwZVJlbmRlcmluZyBpbml0aWFsU2hhcGVSZW5kZXJpbmcoKSB7IHJldHVybiBTUl9BVVRPOyB9
CiAgICAgc3RhdGljIEVUZXh0QW5jaG9yIGluaXRpYWxUZXh0QW5jaG9yKCkgeyByZXR1cm4gVEFf
U1RBUlQ7IH0KQEAgLTE0MCw3ICsxMzksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb2xvcklu
dGVycG9sYXRpb25GaWx0ZXJzKEVDb2xvckludGVycG9sYXRpb24gdmFsKSB7IHN2Z19pbmhlcml0
ZWRfZmxhZ3MuX2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMgPSB2YWw7IH0KICAgICB2b2lkIHNl
dENvbG9yUmVuZGVyaW5nKEVDb2xvclJlbmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFn
cy5fY29sb3JSZW5kZXJpbmcgPSB2YWw7IH0KICAgICB2b2lkIHNldEZpbGxSdWxlKFdpbmRSdWxl
IHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9maWxsUnVsZSA9IHZhbDsgfQotICAgIHZvaWQg
c2V0SW1hZ2VSZW5kZXJpbmcoRUltYWdlUmVuZGVyaW5nIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2Zs
YWdzLl9pbWFnZVJlbmRlcmluZyA9IHZhbDsgfQogICAgIHZvaWQgc2V0Sm9pblN0eWxlKExpbmVK
b2luIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9qb2luU3R5bGUgPSB2YWw7IH0KICAgICB2
b2lkIHNldFNoYXBlUmVuZGVyaW5nKEVTaGFwZVJlbmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRl
ZF9mbGFncy5fc2hhcGVSZW5kZXJpbmcgPSB2YWw7IH0KICAgICB2b2lkIHNldFRleHRBbmNob3Io
RVRleHRBbmNob3IgdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3RleHRBbmNob3IgPSB2YWw7
IH0KQEAgLTI5Nyw3ICsyOTUsNiBAQCBwdWJsaWM6CiAgICAgRUNvbG9ySW50ZXJwb2xhdGlvbiBj
b2xvckludGVycG9sYXRpb25GaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gKEVDb2xvckludGVycG9s
YXRpb24pIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM7IH0K
ICAgICBFQ29sb3JSZW5kZXJpbmcgY29sb3JSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiAoRUNv
bG9yUmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xvclJlbmRlcmluZzsgfQogICAg
IFdpbmRSdWxlIGZpbGxSdWxlKCkgY29uc3QgeyByZXR1cm4gKFdpbmRSdWxlKSBzdmdfaW5oZXJp
dGVkX2ZsYWdzLl9maWxsUnVsZTsgfQotICAgIEVJbWFnZVJlbmRlcmluZyBpbWFnZVJlbmRlcmlu
ZygpIGNvbnN0IHsgcmV0dXJuIChFSW1hZ2VSZW5kZXJpbmcpIHN2Z19pbmhlcml0ZWRfZmxhZ3Mu
X2ltYWdlUmVuZGVyaW5nOyB9CiAgICAgTGluZUpvaW4gam9pblN0eWxlKCkgY29uc3QgeyByZXR1
cm4gKExpbmVKb2luKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9qb2luU3R5bGU7IH0KICAgICBFU2hh
cGVSZW5kZXJpbmcgc2hhcGVSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiAoRVNoYXBlUmVuZGVy
aW5nKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9zaGFwZVJlbmRlcmluZzsgfQogICAgIEVUZXh0QW5j
aG9yIHRleHRBbmNob3IoKSBjb25zdCB7IHJldHVybiAoRVRleHRBbmNob3IpIHN2Z19pbmhlcml0
ZWRfZmxhZ3MuX3RleHRBbmNob3I7IH0KQEAgLTM0Niw3ICszNDMsNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbmhlcml0ZWRGbGFncyYgb3RoZXIpIGNvbnN0
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiAoX2NvbG9yUmVuZGVyaW5nID09IG90aGVy
Ll9jb2xvclJlbmRlcmluZykKLSAgICAgICAgICAgICAgICAmJiAoX2ltYWdlUmVuZGVyaW5nID09
IG90aGVyLl9pbWFnZVJlbmRlcmluZykKICAgICAgICAgICAgICAgICAmJiAoX3NoYXBlUmVuZGVy
aW5nID09IG90aGVyLl9zaGFwZVJlbmRlcmluZykKICAgICAgICAgICAgICAgICAmJiAoX2NsaXBS
dWxlID09IG90aGVyLl9jbGlwUnVsZSkKICAgICAgICAgICAgICAgICAmJiAoX2ZpbGxSdWxlID09
IG90aGVyLl9maWxsUnVsZSkKQEAgLTM2Niw3ICszNjIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IH0KIAogICAgICAgICB1bnNpZ25lZCBfY29sb3JSZW5kZXJpbmcgOiAyOyAvLyBFQ29sb3JSZW5k
ZXJpbmcKLSAgICAgICAgdW5zaWduZWQgX2ltYWdlUmVuZGVyaW5nIDogMjsgLy8gRUltYWdlUmVu
ZGVyaW5nIAogICAgICAgICB1bnNpZ25lZCBfc2hhcGVSZW5kZXJpbmcgOiAyOyAvLyBFU2hhcGVS
ZW5kZXJpbmcgCiAgICAgICAgIHVuc2lnbmVkIF9jbGlwUnVsZSA6IDE7IC8vIFdpbmRSdWxlCiAg
ICAgICAgIHVuc2lnbmVkIF9maWxsUnVsZSA6IDE7IC8vIFdpbmRSdWxlCkBAIC00MjIsNyArNDE3
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fY2xpcFJ1bGUgPSBp
bml0aWFsQ2xpcFJ1bGUoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5k
ZXJpbmcgPSBpbml0aWFsQ29sb3JSZW5kZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9m
bGFncy5fZmlsbFJ1bGUgPSBpbml0aWFsRmlsbFJ1bGUoKTsKLSAgICAgICAgc3ZnX2luaGVyaXRl
ZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcgPSBpbml0aWFsSW1hZ2VSZW5kZXJpbmcoKTsKICAgICAg
ICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmcgPSBpbml0aWFsU2hhcGVSZW5k
ZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fdGV4dEFuY2hvciA9IGluaXRp
YWxUZXh0QW5jaG9yKCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NhcFN0eWxlID0g
aW5pdGlhbENhcFN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKaW5kZXggMDAzNThhMGQ1N2I5YmE2ZTU5NjdiNTI2Zjg1
ZWRhOWVmNWEzMWM0MC4uMmMzM2M2ZGM5YmRkODg4Y2ViYTJjMWE4NGY4Zjc1OWEyYTJhMDk3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxl
RGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHls
ZURlZnMuaApAQCAtNTQsMTEgKzU0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0g
RUNvbG9yUmVuZGVyaW5nIHsKICAgICAgICAgQ1JfQVVUTywgQ1JfT1BUSU1JWkVTUEVFRCwgQ1Jf
T1BUSU1JWkVRVUFMSVRZCiAgICAgfTsKLSAgICAKLSAgICBlbnVtIEVJbWFnZVJlbmRlcmluZyB7
Ci0gICAgICAgIElSX0FVVE8sIElSX09QVElNSVpFU1BFRUQsIElSX09QVElNSVpFUVVBTElUWQot
ICAgIH07Ci0KICAgICBlbnVtIEVTaGFwZVJlbmRlcmluZyB7CiAgICAgICAgIFNSX0FVVE8sIFNS
X09QVElNSVpFU1BFRUQsIFNSX0NSSVNQRURHRVMsIFNSX0dFT01FVFJJQ1BSRUNJU0lPTgogICAg
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggYzM4NDYxMTY2YmZiYzJiMTU0ZjNhNjkyNmE1M2Vi
NzdhNTZhNTBjZi4uMTE2MDZiMThhNzY5NjA4N2ZiYWJlM2Q2ODc5ZDM0NmE3MjEzYjEwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmNwcApAQCAtNTIsNiArNTIsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRh
OjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICAgICAsIHRleHRFbXBoYXNpc01hcmsoVGV4dEVt
cGhhc2lzTWFya05vbmUpCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQ
b3NpdGlvbk92ZXIpCiAgICAgLCBtX2xpbmVCb3hDb250YWluKFJlbmRlclN0eWxlOjppbml0aWFs
TGluZUJveENvbnRhaW4oKSkKKyAgICAsIG1faW1hZ2VSZW5kZXJpbmcoUmVuZGVyU3R5bGU6Omlu
aXRpYWxJbWFnZVJlbmRlcmluZygpKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkK
ICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcigtMSkKIHsKQEAgLTg2LDYgKzg3LDcgQEAgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRleHRFbXBoYXNp
c01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0aW9u
KQogICAgICwgbV9saW5lQm94Q29udGFpbihvLm1fbGluZUJveENvbnRhaW4pCisgICAgLCBtX2lt
YWdlUmVuZGVyaW5nKG8ubV9pbWFnZVJlbmRlcmluZykKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5n
KG8uaHlwaGVuYXRpb25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlw
aGVuYXRpb25MaW1pdEJlZm9yZSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcihvLmh5cGhl
bmF0aW9uTGltaXRBZnRlcikKQEAgLTE0MSw3ICsxNDMsOCBAQCBib29sIFN0eWxlUmFyZUluaGVy
aXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29u
c3QKICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJpbmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwog
ICAgICAgICAmJiBsb2NhbGUgPT0gby5sb2NhbGUKICAgICAgICAgJiYgdGV4dEVtcGhhc2lzQ3Vz
dG9tTWFyayA9PSBvLnRleHRFbXBoYXNpc0N1c3RvbU1hcmsKLSAgICAgICAgJiYgKnF1b3RlcyA9
PSAqby5xdW90ZXM7CisgICAgICAgICYmICpxdW90ZXMgPT0gKm8ucXVvdGVzCisgICAgICAgICYm
IG1faW1hZ2VSZW5kZXJpbmcgPT0gby5tX2ltYWdlUmVuZGVyaW5nOwogfQogCiBib29sIFN0eWxl
UmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUlu
aGVyaXRlZERhdGEmIG8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBkYTQxMGYxYWM2ODI3MzQx
ZmQzODc4ZWYyYmJmOTVmODliZmQwMjI2Li42YzQxMTg0ODYwNjA4YjBhODM0Yjk1YTQ1ZDM4NDJi
MjQyODRkYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTg1LDYgKzg1LDkgQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIHRleHRFbXBoYXNpc01hcmsgOiAzOyAvLyBUZXh0RW1waGFzaXNNYXJrCiAgICAg
dW5zaWduZWQgdGV4dEVtcGhhc2lzUG9zaXRpb24gOiAxOyAvLyBUZXh0RW1waGFzaXNQb3NpdGlv
bgogICAgIHVuc2lnbmVkIG1fbGluZUJveENvbnRhaW46IDc7IC8vIExpbmVCb3hDb250YWluCisg
ICAgLy8gQ1NTIEltYWdlIFZhbHVlcyBMZXZlbCAzCisgICAgdW5zaWduZWQgbV9pbWFnZVJlbmRl
cmluZyA6IDI7IC8vIEVJbWFnZVJlbmRlcmluZyAqLworCiAKICAgICBBdG9taWNTdHJpbmcgaHlw
aGVuYXRpb25TdHJpbmc7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25MaW1pdEJlZm9yZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3Bw
CmluZGV4IDdkM2Y5MDkyNzI4M2YyOTA0Zjc3OWZmMDBjYzdiNmUzYWFlOWNjMjQuLjc4YjJiMDhi
MGJkZWNhYzcyYWMxZWIwNjczZDgyM2MxNzllMjJjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtMzIxLDcgKzMy
MSw2IEBAIHN0YXRpYyB2b2lkIHdyaXRlU3R5bGUoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRl
ck9iamVjdCYgb2JqZWN0KQogCiAgICAgaWYgKCFvYmplY3QubG9jYWxUcmFuc2Zvcm0oKS5pc0lk
ZW50aXR5KCkpCiAgICAgICAgIHdyaXRlTmFtZVZhbHVlUGFpcih0cywgInRyYW5zZm9ybSIsIG9i
amVjdC5sb2NhbFRyYW5zZm9ybSgpKTsKLSAgICB3cml0ZUlmTm90RGVmYXVsdCh0cywgImltYWdl
IHJlbmRlcmluZyIsIHN2Z1N0eWxlLT5pbWFnZVJlbmRlcmluZygpLCBTVkdSZW5kZXJTdHlsZTo6
aW5pdGlhbEltYWdlUmVuZGVyaW5nKCkpOwogICAgIHdyaXRlSWZOb3REZWZhdWx0KHRzLCAib3Bh
Y2l0eSIsIHN0eWxlLT5vcGFjaXR5KCksIFJlbmRlclN0eWxlOjppbml0aWFsT3BhY2l0eSgpKTsK
ICAgICBpZiAob2JqZWN0LmlzU1ZHUGF0aCgpKSB7CiAgICAgICAgIGNvbnN0IFJlbmRlclNWR1Bh
dGgmIHBhdGggPSBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTVkdQYXRoJj4ob2JqZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93874</attachid>
            <date>2011-05-17 23:47:59 -0700</date>
            <delta_ts>2011-05-18 06:51:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56627-20110518164756.patch</filename>
            <type>text/plain</type>
            <size>48150</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY0OTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNTVkOGQzYjc3ZmE1NjI5MzFlYjkw
MjcyMDIyMWU5YzhlZWFlZWU2Li5iNGY1MjIzMzE1MzIyMGJlODJhMDdlY2UwMDBiZmFkYzYxMTFm
MjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMTEgIE1pa2UgTGF3dGhlciAgPG1p
a2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250
cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3
CisKKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA1LTE0ICBBbmRyZXcgV2ls
c29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21p
dW0gZXhwZWN0YXRpb25zIGNoYW5nZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1h
Z2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9j
c3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY1OTFkZWNkODI4ZTRiMjM5N2FiYjk4MjM3NjliMmQ2MjcwYTdkMjIKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDExMjQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFC
JVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVNJRAp6WDJ2RWFtS0o2ZjI4a3g3TWthfklESGV0bnJX
UGl0Q0trcXQ3S1d1UDh8cnsyeXZ1WlU0KUFuI1J0UEF7UHNffG4KelduaWRhWXo7WXxFJGtAciZu
JDF7MXRwSENZYCNxdTZPPXE3UzcqM2hHNWFmK2wrQU5uZXcqdXI2bDJlOGQxa05RCnpzY2xgX0Aj
TjcodCRWSS03cWI2dmtnTktUcVZMcmo8KklSU3dNTm9IYW92dyteTCh9fmVSYmVtLVJGRGU/YCFr
Ugp6P2xiVGZUezhMRiExOUZtYytldWolJHlwaHRVbnpMZVR6NjlPO2tmfnp3dUxIYjhJZ0RTXmZN
KjZATyFOKnh+Qm0KejwodGFhJmJxWDE3SkpLSWhYP01uWmZiM0tGSjh6TURhNiFhYkFPQGNAZSs+
dms4Z1o+KHtKZmxTI2ZZSHpxYWo+CnpOVG5KRlF7OGoqekJfYD9zJE88el9PT2Bwd0ped1QmaF9w
bypKYXI9XlV7dTs1WkxRS1ZjRzY4P15ZKSpvYTZWNgp6Wl5HV1dVK1ZsZS0/S1pVYyEqbmF0LWFm
aC1nI2VwdUcmOUplN05NPGt2M1p5M0RZaz41PTZJNHReOHFuTkYtanMKelNBOWBQO1l+Zj5rMkJX
JjRnMktQUjR+RWZSN3pxKWFnPk11YilVUSt5Vl9aNil2Z1AjZV5lZThfXmA1SElRYHowCnp5WUYz
WkZ8OVk/bGpWYChuWkBmN0FtR1o5SUFjU0FMenw3MXB+PEVxZCojKF4odnohPU4+I0ZVbW42QXRi
Z1ZZSgp6VzRrP1kkejdYJjhjS3l6b1ZSakpgczRVZFl5Qzw4cjxGZlgkODVMfV9JPTlRKnxUPGlk
U0hGQD5DQnh7YUBRfVAKemN3Rm9vUzJPaVcrMm5CZFg9XkkwX1JNLUNXJmI5OHk1WH1YKUJZcEg4
LTlQKGpofWpFeEBNMmEoWmB7bVV3T0JiCnpNajR2bHBQeTUyWlRtPj95eCFKcCNjTW1lJkJKQy1Q
eWRfY0AlIURYSihIaD57YDhPZ2B0ZVd0KigxcjFHITUwdAp6eH1HYWBQQ3UmbWFuY1IlKSFkSH5h
KnVQJm8hWHsoRFI8JjhtOCVIfXYtVyh8a0Z9NGsqeX5vJF5FR2dhPGU1dCQKem8heyNaWHtESVYt
Tn4yI3ROLUAjS2pLZm1jUmlvNCFLOXpfO0thO2J4eHQwKzFzMHwqJWAwQlZCKTxQKj9UMmw3Cnoq
XkJFZXs7KSpZdFFLMXZXSUE3QTUySCszZHpJVl4lXjg9Y08qP0JEKVVHcHNAfilTc2w3aHx6Kzsk
RU14fl9VWAp6KW12PXklK1JFbFdqQUpDbWQlcXtYekJGKiRhMWdMJC1tWnI2eHtINEwodEVrWWwz
ZHBgQUo9Q29jPTVTekBFUloKejJQKFFkODVrNThKWTVfXkRqNDcxR3xaRnI2a3Y3eSpaUXRMSFM2
ajIra1lMPkk1eEUlNVlmKD4hKHg5d0tLfXB6Cnp8M0NsUj9OOTJpS21KM3RgX0NXJFEqMTA4MHR5
WmQ0Mig/VEVkTz9ZQExSNn09MEhSYjFVZlh4TUF7JDtKIW9yUwp6KnR6aTRUKH5ZNDRqRVJLNkJD
YSpHYS1jWEk1O0xxdWUjPzZHSWk3LVAjQkRjKFAlbSVtXzs2KGZCeVJTazdvSnIKekEzcHlxLTJk
c0xfJj9SPjdWbi1aIVpNTFYrPHx6OVB4RkJfOVh6WU9YSkkqRW9qbjxyZztfWUJ1KEVqazZKfGk8
Cno7UmthWTclSjBxZzx5cy1IMTI2Jkk5Ym9jZlk3cj9TVX08WjhlYioyclV+SyMzUDFmQjtKS0hm
djdDd04kPXQxOwp6YUM9IWtGKV53OT1WWEFDOTNiSGplaHYrTEhrKTxBSDk1cE5HKDUzcVdJKlYt
JEhfNkZ7Rjw1fFQrPDB8anRQSSUKejhJWHp6WWV2UlQ9V2VNV0pYcCFkSU8jdE4xR0k8Jm5wTDUk
O0JZVDt3aExVN2cxKjlOcG98Nno2TH40K1VycWdmCno+OVg9bT5tIzQmUDJNZ0hQbnJeM0tlJGZf
K3xOTHlMe21uX3B4cnhhSXBJbD4yVXpjb3N1JkZxWG80NmBBRVVXcAp6dn4rO0FEbkBnfFhsQHdJ
NFdxZE0rI01LZ0RVRyVxTV9iYWN6UXQmNjd8amkleG5WUm5mUVE+ZytzVUt0PGs1RVcKelhnaGhk
b3leRUlTezlDJGdgO0k1Kj0xcStsaj8yOzI5NjVRU155U34oTyQtQUZKcldxRzF8KSo/UFpMWGdg
K2RxCmhxeDFCJW9+TGl6VSRLakNvIVRxeVh+NTtYNDQkcmpGNioyVW5nQ0hKMGIyazcKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhi
MTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFn
ZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdl
cy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWQxZjRmZWE4YmM4
ZTZlYzFmNjRmODJhNDU3NmMxZjQxNTRjMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKQEAgLTAsMCArMSw1
NyBAQAorPCFET0NUWVBFIGh0bWw+IAorPHN0eWxlPiAKKwljYW52YXMgeworCQlkaXNwbGF5OiBi
bG9jazsKKwkJcG9zaXRpb246IGZpeGVkOworCQlsZWZ0OiAwcHg7CisJCXRvcDogMHB4OworCQly
aWdodDogMHB4OworCQlib3R0b206IDBweDsKKwkJYm9yZGVyOiBub25lOworCQl3aWR0aDogMTAw
cHg7CisJCWhlaWdodDogMTAwcHg7CisJCW1hcmdpbjogMHB4OworCQlwYWRkaW5nOiAwcHg7CisJ
CWltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKKwl9Cis8L3N0eWxl
PiAKKzxib2R5PiAKKyAgICA8IS0tIFRoZSByZXN1bHRpbmcgaW1hZ2Ugc2hvdWxkIGJlIDEwMHgx
MDAsIGNvbnNpc3Rpbmcgb2YgNCA1MHg1MCBibG9ja3Mgb2Ygc29saWQgY29sb3IsIHdpdGggbm8g
Ymx1cnJpbmcgb2YgZWRnZXMgLS0+CisJPGNhbnZhcyB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2Nh
bnZhcz4gCis8L2JvZHk+IAorPHNjcmlwdD4gCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsK
KyAgICAgICAgCisJdmFyIGNhbnZhczsKKwl2YXIgaW1hZ2VIYW5kbGU7CisJY2FudmFzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdLmdldENvbnRleHQoIjJkIik7
CisJY2FudmFzLndpZHRoID0gMjsKKwljYW52YXMuaGVpZ2h0ID0gMjsKKwlpbWFnZUhhbmRsZSA9
IGNhbnZhcy5jcmVhdGVJbWFnZURhdGEoMiwgMik7CisKKwl2YXIgaW5kZXggPSAwOworCXZhciBs
ZW5ndGggPSBpbWFnZUhhbmRsZS5kYXRhLmxlbmd0aDsKKworICAgIGltYWdlSGFuZGxlLmRhdGFb
aW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAg
aW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRl
eCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGlt
YWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRl
eCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGlt
YWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgr
K10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VI
YW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgr
K10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFu
ZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAy
NTU7CisKKwljYW52YXMucHV0SW1hZ2VEYXRhKGltYWdlSGFuZGxlLCAwLCAwKTsKKzwvc2NyaXB0
PiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0
LWltYWdlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNv
bnRyYXN0LWltYWdlLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTkxZGVjZDgyOGU0YjIzOTdh
YmI5ODIzNzY5YjJkNjI3MGE3ZDIyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTI0NAp6Y21l
QVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VG
eGVTSUQKelgydkVhbUtKNmYyOGt4N01rYX5JREhldG5yV1BpdENLa3F0N0tXdVA4fHJ7Mnl2dVpV
NClBbiNSdFBBe1BzX3xuCnpXbmlkYVl6O1l8RSRrQHImbiQxezF0cEhDWWAjcXU2Tz1xN1M3KjNo
RzVhZitsK0FObmV3KnVyNmwyZThkMWtOUQp6c2NsYF9AI043KHQkVkktN3FiNnZrZ05LVHFWTHJq
PCpJUlN3TU5vSGFvdncrXkwofX5lUmJlbS1SRkRlP2Aha1IKej9sYlRmVHs4TEYhMTlGbWMrZXVq
JSR5cGh0VW56TGVUejY5TztrZn56d3VMSGI4SWdEU15mTSo2QE8hTip4fkJtCno8KHRhYSZicVgx
N0pKS0loWD9NblpmYjNLRko4ek1EYTYhYWJBT0BjQGUrPnZrOGdaPih7SmZsUyNmWUh6cWFqPgp6
TlRuSkZRezhqKnpCX2A/cyRPPHpfT09gcHdKXndUJmhfcG8qSmFyPV5Ve3U7NVpMUUtWY0c2OD9e
WSkqb2E2VjYKelpeR1dXVStWbGUtP0taVWMhKm5hdC1hZmgtZyNlcHVHJjlKZTdOTTxrdjNaeTNE
WWs+NT02STR0Xjhxbk5GLWpzCnpTQTlgUDtZfmY+azJCVyY0ZzJLUFI0fkVmUjd6cSlhZz5NdWIp
VVEreVZfWjYpdmdQI2VeZWU4X15gNUhJUWB6MAp6eVlGM1pGfDlZP2xqVmAoblpAZjdBbUdaOUlB
Y1NBTHp8NzFwfjxFcWQqIyheKHZ6IT1OPiNGVW1uNkF0YmdWWUoKelc0az9ZJHo3WCY4Y0t5em9W
UmpKYHM0VWRZeUM8OHI8RmZYJDg1TH1fST05USp8VDxpZFNIRkA+Q0J4e2FAUX1QCnpjd0Zvb1My
T2lXKzJuQmRYPV5JMF9STS1DVyZiOTh5NVh9WClCWXBIOC05UChqaH1qRXhATTJhKFpge21Vd09C
Ygp6TWo0dmxwUHk1MlpUbT4/eXghSnAjY01tZSZCSkMtUHlkX2NAJSFEWEooSGg+e2A4T2dgdGVX
dCooMXIxRyE1MHQKenh9R2FgUEN1Jm1hbmNSJSkhZEh+YSp1UCZvIVh7KERSPCY4bTglSH12LVco
fGtGfTRrKnl+byReRUdnYTxlNXQkCnpvIXsjWlh7RElWLU5+MiN0Ti1AI0tqS2ZtY1JpbzQhSzl6
XztLYTtieHh0MCsxczB8KiVgMEJWQik8UCo/VDJsNwp6Kl5CRWV7OykqWXRRSzF2V0lBN0E1Mkgr
M2R6SVZeJV44PWNPKj9CRClVR3BzQH4pU3NsN2h8eis7JEVNeH5fVVgKeiltdj15JStSRWxXakFK
Q21kJXF7WHpCRiokYTFnTCQtbVpyNnh7SDRMKHRFa1lsM2RwYEFKPUNvYz01U3pARVJaCnoyUChR
ZDg1azU4Slk1X15EajQ3MUd8WkZyNmt2N3kqWlF0TEhTNmoyK2tZTD5JNXhFJTVZZig+ISh4OXdL
S31wegp6fDNDbFI/TjkyaUttSjN0YF9DVyRRKjEwODB0eVpkNDIoP1RFZE8/WUBMUjZ9PTBIUmIx
VWZYeE1BeyQ7SiFvclMKeip0emk0VCh+WTQ0akVSSzZCQ2EqR2EtY1hJNTtMcXVlIz82R0lpNy1Q
I0JEYyhQJW0lbV87NihmQnlSU2s3b0pyCnpBM3B5cS0yZHNMXyY/Uj43Vm4tWiFaTUxWKzx8ejlQ
eEZCXzlYellPWEpJKkVvam48cmc7X1lCdShFams2SnxpPAp6O1JrYVk3JUowcWc8eXMtSDEyNiZJ
OWJvY2ZZN3I/U1V9PFo4ZWIqMnJVfksjM1AxZkI7SktIZnY3Q3dOJD10MTsKemFDPSFrRiledzk9
VlhBQzkzYkhqZWh2K0xIayk8QUg5NXBORyg1M3FXSSpWLSRIXzZGe0Y8NXxUKzwwfGp0UEklCno4
SVh6ellldlJUPVdlTVdKWHAhZElPI3ROMUdJPCZucEw1JDtCWVQ7d2hMVTdnMSo5TnBvfDZ6Nkx+
NCtVcnFnZgp6PjlYPW0+bSM0JlAyTWdIUG5yXjNLZSRmXyt8Tkx5THttbl9weHJ4YUlwSWw+MlV6
Y29zdSZGcVhvNDZgQUVVV3AKenZ+KztBRG5AZ3xYbEB3STRXcWRNKyNNS2dEVUclcU1fYmFjelF0
JjY3fGppJXhuVlJuZlFRPmcrc1VLdDxrNUVXCnpYZ2hoZG95XkVJU3s5QyRnYDtJNSo9MXErbGo/
MjsyOTY1UVNeeVN+KE8kLUFGSnJXcUcxfCkqP1BaTFhnYCtkcQpocXgxQiVvfkxpelUkS2pDbyFU
cXlYfjU7WDQ0JHJqRjYqMlVuZ0NISjBiMms3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1p
bWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIw
YWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2Vz
L29wdGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAzMmZjZmE3YTYxMzk1MTkzYTJiZmE5MjNjMmRiYjE4YjFmZTg3ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250
cmFzdC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPiAKKzxzdHls
ZT4gCisJaW1nIHsKKwkJZGlzcGxheTogYmxvY2s7CisJCXBvc2l0aW9uOiBmaXhlZDsKKwkJbGVm
dDogMHB4OworCQl0b3A6IDBweDsKKwkJcmlnaHQ6IDBweDsKKwkJYm90dG9tOiAwcHg7CisJCWJv
cmRlcjogbm9uZTsKKwkJd2lkdGg6IDEwMHB4OworCQloZWlnaHQ6IDEwMHB4OworCQltYXJnaW46
IDBweDsKKwkJcGFkZGluZzogMHB4OworCQlpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1p
emUtY29udHJhc3Q7CisJfQorPC9zdHlsZT4gCis8Ym9keT4gCisgICAgPCEtLSBUaGUgcmVzdWx0
aW5nIGltYWdlIHNob3VsZCBiZSAxMDB4MTAwLCBjb25zaXN0aW5nIG9mIDQgNTB4NTAgYmxvY2tz
IG9mIHNvbGlkIGNvbG9yLCB3aXRoIG5vIGJsdXJyaW5nIG9mIGVkZ2VzIC0tPgorCTxpbWFnZSBz
dHlsZT0iIiBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBQUlBQUFBQ0NBWUFBQUJ5dGcwa0FBQUFGRWxFUVZRSUhXUDR6OER3SHd5Qk5KRE44QjhBUU5F
Ryt0NUlrMmtBQUFBQVNVVk9SSzVDWUlJPSI+PC9pbWc+IAorPC9ib2R5PiAKKzxzY3JpcHQ+IAor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQKaW5kZXggNjdiN2UwZTEzNWI5Yzc0MjE1Mzc5YThiM2JhMmQ3N2NiNmYz
NTliMy4uYTc3MDU0YzJlODhkMTc5NTUwZTkyMmU1NmEzOTQ0NGI1OTRkY2UxZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTQzLDYgKzQzLDcgQEAgZm9udC1zdHlsZTog
bm9ybWFsOwogZm9udC12YXJpYW50OiBub3JtYWw7CiBmb250LXdlaWdodDogbm9ybWFsOwogaGVp
Z2h0OiA1NzZweDsKK2ltYWdlLXJlbmRlcmluZzogYXV0bzsKIGxlZnQ6IGF1dG87CiBsZXR0ZXIt
c3BhY2luZzogbm9ybWFsOwogbGluZS1oZWlnaHQ6IG5vcm1hbDsKQEAgLTIwMCw3ICsyMDEsNiBA
QCBjb2xvci1yZW5kZXJpbmc6IGF1dG87CiBmaWxsOiAjMDAwMDAwOwogZmlsbC1vcGFjaXR5OiAx
OwogZmlsbC1ydWxlOiBub256ZXJvOwotaW1hZ2UtcmVuZGVyaW5nOiBhdXRvOwogbWFya2VyLWVu
ZDogbm9uZTsKIG1hcmtlci1taWQ6IG5vbmU7CiBtYXJrZXItc3RhcnQ6IG5vbmU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxl
LXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4
dAppbmRleCA0YTM0ZGIyYzZlMDBmMjU5MzY0ZmU0ZDM0ZmQ2ZjlhMzFhNzcxZTA1Li5jYjc0YzI5
Nzk2ZTRlY2Q5NjYxMmM0NGZjNTNkMmUxNTRkMDQ3OWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVy
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTQyLDYg
KzQyLDcgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlz
cGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZvbnQtdmFyaWFudDogbm9ybWFsCiAgICAgZm9u
dC13ZWlnaHQ6IG5vcm1hbAogICAgIGhlaWdodDogMTAwcHgKKyAgICBpbWFnZS1yZW5kZXJpbmc6
IGF1dG8KICAgICBsZWZ0OiBhdXRvCiAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbAogICAgIGxp
bmUtaGVpZ2h0OiBub3JtYWwKQEAgLTE5MCw3ICsxOTEsNiBAQCBDb21wdXRlZCBzdHlsZSBvZiBh
biBlbGVtZW50IHdob3NlIHBhcmVudCdzICdkaXNwbGF5JyB2YWx1ZSBpcyAnbm9uZSc6CiAgICAg
ZmlsbDogIzAwMDAwMAogICAgIGZpbGwtb3BhY2l0eTogMQogICAgIGZpbGwtcnVsZTogbm9uemVy
bwotICAgIGltYWdlLXJlbmRlcmluZzogYXV0bwogICAgIG1hcmtlci1lbmQ6IG5vbmUKICAgICBt
YXJrZXItbWlkOiBub25lCiAgICAgbWFya2VyLXN0YXJ0OiBub25lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVu
ZGVyZXItZXhwZWN0ZWQudHh0CmluZGV4IDg0M2UwOWI5YzZjOWFlYWVlNGU4MzE1NjA1YTc4NDVm
NDFmYTU0ZmYuLjU1Mzk2ODNkMDI5NGJmYzVjMDlkYTQ4MjIyYWQ4MzdiYjQxMjUxODIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0
eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CkBAIC00Miw2ICs0Miw3IEBAIENvbXB1
dGVkIHN0eWxlIG9mIGFuIGVsZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlz
ICdub25lJzoKICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbAogICAgIGZvbnQtd2VpZ2h0OiBub3Jt
YWwKICAgICBoZWlnaHQ6IDEwMHB4CisgICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbGVm
dDogYXV0bwogICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwKICAgICBsaW5lLWhlaWdodDogbm9y
bWFsCkBAIC0xOTksNyArMjAwLDYgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9z
ZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZpbGw6ICMwMDAwMDAK
ICAgICBmaWxsLW9wYWNpdHk6IDEKICAgICBmaWxsLXJ1bGU6IG5vbnplcm8KLSAgICBpbWFnZS1y
ZW5kZXJpbmc6IGF1dG8KICAgICBtYXJrZXItZW5kOiBub25lCiAgICAgbWFya2VyLW1pZDogbm9u
ZQogICAgIG1hcmtlci1zdGFydDogbm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJl
bmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2dl
dENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50
eHQKaW5kZXggODQzZTA5YjljNmM5YWVhZWU0ZTgzMTU2MDVhNzg0NWY0MWZhNTRmZi4uNTUzOTY4
M2QwMjk0YmZjNWMwOWRhNDgyMjJhZDgzN2JiNDEyNTE4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVy
ZXItZXhwZWN0ZWQudHh0CkBAIC00Miw2ICs0Miw3IEBAIENvbXB1dGVkIHN0eWxlIG9mIGFuIGVs
ZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdub25lJzoKICAgICBmb250
LXZhcmlhbnQ6IG5vcm1hbAogICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwKICAgICBoZWlnaHQ6IDEw
MHB4CisgICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbGVmdDogYXV0bwogICAgIGxldHRl
ci1zcGFjaW5nOiBub3JtYWwKICAgICBsaW5lLWhlaWdodDogbm9ybWFsCkBAIC0xOTksNyArMjAw
LDYgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxh
eScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZpbGw6ICMwMDAwMDAKICAgICBmaWxsLW9wYWNpdHk6
IDEKICAgICBmaWxsLXJ1bGU6IG5vbnplcm8KLSAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG8KICAg
ICBtYXJrZXItZW5kOiBub25lCiAgICAgbWFya2VyLW1pZDogbm9uZQogICAgIG1hcmtlci1zdGFy
dDogbm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxl
LWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHls
ZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggNmY2NmNmMGEyY2RlZDBlZjkzODcyZjllYWJiMjFl
ZjlkOTFkN2Q0ZS4uN2QwZjUyMTFjZjgxMjMwNzcyMjkyZWU4OWZhYjE2NzE3NmE2ZjhhMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMt
ZXhwZWN0ZWQudHh0CkBAIC04NCw2ICs4NCw4IEBAIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUoZm9udC13ZWlnaHQpIDogbm9ybWFsCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KGZvbnQtd2VpZ2h0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiByZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKGhlaWdodCkgOiAwcHgKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoaGVpZ2h0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKGltYWdlLXJlbmRlcmluZykgOiBhdXRvCityZWN0OiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKGltYWdlLXJlbmRlcmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsZWZ0KSA6IGF1dG8KIHJlY3Q6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobGVmdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsZXR0ZXItc3BhY2luZykgOiBub3JtYWwK
QEAgLTM5OCw4ICs0MDAsNiBAQCByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZpbGwtb3Bh
Y2l0eSkgOiAxCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZpbGwtb3BhY2l0eSkg
OiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShmaWxsLXJ1bGUpIDogbm9uemVybwogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShm
aWxsLXJ1bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KLXJlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IGF1dG8KLXJlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1lbmQpIDogbm9uZQogcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJrZXItZW5kKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1taWQpIDogbm9u
ZQpAQCAtNTMwLDYgKzUzMCw4IEBAIGc6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZm9udC13ZWln
aHQpIDogbm9ybWFsCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZvbnQtd2VpZ2h0KSA6
IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGhl
aWdodCkgOiAwcHgKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoaGVpZ2h0KSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGltYWdlLXJl
bmRlcmluZykgOiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGltYWdlLXJlbmRl
cmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZShsZWZ0KSA6IGF1dG8KIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobGVmdCkgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsZXR0
ZXItc3BhY2luZykgOiBub3JtYWwKQEAgLTg0NCw4ICs4NDYsNiBAQCBnOiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKGZpbGwtb3BhY2l0eSkgOiAxCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KGZpbGwtb3BhY2l0eSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZShmaWxsLXJ1bGUpIDogbm9uemVybwogZzogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZShmaWxsLXJ1bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KLWc6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IGF1dG8KLWc6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFs
dWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1lbmQpIDogbm9uZQogZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJrZXItZW5kKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1taWQpIDogbm9uZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDZmMDllZmI4NWNkMmE0NTVhMTFjM2VmNTU1Nzg1Mzg2ODY0NDY1YTYuLjBhOGRl
M2VmYTVmZDc1ZGI4NzMyZWI2NzgyYTAyNzFlMGViODcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1NSBAQAorMjAxMS0wNS0xMSAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGlt
cGxlbWVudCBpbWFnZS1yZW5kZXJpbmc6IG9wdGltaXplLWNvbnRyYXN0ICh3aXRoIGEgdmVuZG9y
IHByZWZpeCkgYXMgZGVmaW5lZCBpbiBDU1MzIGltYWdlIHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY2MjcKKworICAgICAgICBUZXN0czog
Y3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKKyAgICAgICAgICAgICAg
IGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Bh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAg
ICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmluZyk6CisgICAgICAg
ICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0
eSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1NW
R0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFNWR1Byb3BlcnR5Q1NTVmFsdWUpOgorICAgICAg
ICAqIGNzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9TVkdDU1NTdHls
ZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
U1ZHUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVh
bGl0eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbWFnZVJlbmRlcmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0SW1hZ2VSZW5kZXJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxJbWFnZVJlbmRlcmluZyk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFn
czo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6c2V0Qml0
RGVmYXVsdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d3JpdGVTdHlsZSk6CisKIDIwMTEtMDUtMTQgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMDRhYThlMzc1NjUwNDM4ODE3MDBhYTk1M2I4YzMzMGI2NmNhOTMwNi4uNjQ3ODYyOWJmMzNi
ZThkZDgzMDI0NTM3MmFmMzQ3OWZmODE2NThhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTk1LDYgKzk5NSw3IEBACiAJCTQ5
MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBE
OTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQz
MDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdl
YktpdEJyaWRnZS5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3Vy
Y2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0OTI5MUU0QjEzNDE3
MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1h
Z2VSZW5kZXJpbmdNb2RlLmggKi87IH07CiAJCTQ5M0U1RTA5MTJENjQyMDUwMDAyMDA4MSAvKiBQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjMxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNwcCAqLzsgfTsKIAkJNDk0ODRGQzIxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGll
bnQuaCAqLzsgfTsKQEAgLTc0ODAsNiArNzQ4MSw3IEBACiAJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVz
b3VyY2VMb2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJj
ZUxvYWRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MjkxRTRBMTM0MTcy
QzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW1hZ2VSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1DQUxheWVyQ2xpZW50
Lmg7IHBhdGggPSBjYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDk0ODRGQjMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhbnZhc0dyYWRpZW50LmNw
cDsgcGF0aCA9IGNhbnZhcy9DYW52YXNHcmFkaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNHcmFkaWVudC5oOyBwYXRoID0g
Y2FudmFzL0NhbnZhc0dyYWRpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzY5Myw2ICsxNzY5NSw3IEBACiAJCQkJQjJBMTBCOTEwQjM4MThCRDAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyLmggKi8sCiAJCQkJMjJCRDlGN0QxMzUzNjI1QzAwOUJEMTAyIC8qIEltYWdlQnVmZmVy
RGF0YS5oICovLAogCQkJCUJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVy
LmggKi8sCisJCQkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9k
ZS5oICovLAogCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICov
LAogCQkJCUIyNzUzNTQ0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oICovLAogCQkJCUU0
NjJBNEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhhc2guaCAqLywKQEAgLTIxMTcyLDYg
KzIxMTc1LDcgQEAKIAkJCQlGNTVCM0RDMjEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFn
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RjQ0QTgwQjlFMzI0RTAwQTlEMDgxIC8q
IEltYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3
NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTcx
MEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEIz
NDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291cmNlQ0cuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNkZFMTE4MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCmluZGV4IDA4NjI2ZGRmZDg1YWQ5YmVjZjZmNGI0NjE1MjE2MjJkZTk4YTNl
ZjUuLjEzZDYzNDAxOGUxNWEyNTQ1M2YwY2Q5M2M4NDU0MDc3MTExZDczNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC05
OSw2ICs5OSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlGb250VmFyaWFudCwKICAgICBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsCiAg
ICAgQ1NTUHJvcGVydHlIZWlnaHQsCisgICAgQ1NTUHJvcGVydHlJbWFnZVJlbmRlcmluZywKICAg
ICBDU1NQcm9wZXJ0eUxlZnQsCiAgICAgQ1NTUHJvcGVydHlMZXR0ZXJTcGFjaW5nLAogICAgIENT
U1Byb3BlcnR5TGluZUhlaWdodCwKQEAgLTI2Myw3ICsyNjQsNiBAQCBzdGF0aWMgY29uc3QgaW50
IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5RmlsbCwKICAgICBDU1NQ
cm9wZXJ0eUZpbGxPcGFjaXR5LAogICAgIENTU1Byb3BlcnR5RmlsbFJ1bGUsCi0gICAgQ1NTUHJv
cGVydHlJbWFnZVJlbmRlcmluZywKICAgICBDU1NQcm9wZXJ0eU1hcmtlckVuZCwKICAgICBDU1NQ
cm9wZXJ0eU1hcmtlck1pZCwKICAgICBDU1NQcm9wZXJ0eU1hcmtlclN0YXJ0LApAQCAtMTE1Niw2
ICsxMTU2LDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgICAgIGlmIChzdHls
ZS0+Ym9yZGVyRml0KCkgPT0gQm9yZGVyRml0Qm9yZGVyKQogICAgICAgICAgICAgICAgIHJldHVy
biBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVCb3Jk
ZXIpOwogICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZUxpbmVzKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdl
UmVuZGVyaW5nOgorICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
c3R5bGUtPmltYWdlUmVuZGVyaW5nKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGVmdDoK
ICAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBD
U1NQcm9wZXJ0eUxlZnQsIHByaW1pdGl2ZVZhbHVlQ2FjaGUpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5TGV0dGVyU3BhY2luZzoKQEAgLTE3ODIsNyArMTc4NCw2IEBAIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShp
bnQgcHJvcGVyCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5RmlsbE9wYWNpdHk6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsUnVsZToK
LSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5TWFya2VyOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyRW5kOgogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyTWlkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApp
bmRleCAxOTcxMWQyYTc0NWRhNmNiODY5NWI1YjMzYjZmM2JhZjFlODBlZDBmLi4yYjc0NjI3N2Y4
YzcyMjYxZWRhYTVkODUxOTBlODBhOTU4NGIyZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cApAQCAtMTcxNiw3ICsxNzE2LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgKGlkID49IENTU1ZhbHVlVmlzaWJs
ZXBhaW50ZWQgJiYgaWQgPD0gQ1NTVmFsdWVTdHJva2UpKQogICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKLQorICAgIGNhc2UgQ1NTUHJvcGVydHlJbWFn
ZVJlbmRlcmluZzogLy8gYXV0byB8IG9wdGltaXplQ29udHJhc3QKKyAgICAgICAgaWYgKGlkID09
IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZVdlYmtpdE9wdGltaXplQ29udHJhc3QpCisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIC8v
IEVuZCBvZiBDU1MzIHByb3BlcnRpZXMKIAogICAgIC8vIEFwcGxlIHNwZWNpZmljIHByb3BlcnRp
ZXMuICBUaGVzZSB3aWxsIG5ldmVyIGJlIHN0YW5kYXJkaXplZCBhbmQgYXJlIHB1cmVseSB0bwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXgg
ZGQ2ZmVlMDA2N2JiNGZkOTVhYmU1NzljMDFjMjg2ODkxYTczOWQyYS4uYjZkMGY3OTk2ZjA1NGEw
NWQ0ZTEyOTliMzRjZGRlNTUxYzEwM2YwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0yOTQ5LDMwICsyOTQ5LDM1IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFSW1hZ2VSZW5k
ZXJpbmcgZSkKICAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2gg
KGUpIHsKLSAgICAgICAgY2FzZSBJUl9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElSX09QVElN
SVpFU1BFRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNw
ZWVkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSVJfT1BUSU1JWkVRVUFMSVRZ
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5Owot
ICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZ0F1dG86CisgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVPcHRpbWl6ZXNwZWVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlUmVuZGVy
aW5nT3B0aW1pemVRdWFsaXR5OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRp
bWl6ZXF1YWxpdHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRp
bWl6ZUNvbnRyYXN0OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRPcHRp
bWl6ZUNvbnRyYXN0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJpbmcoKSBjb25zdAog
ewogICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0
bzoKLSAgICAgICAgICAgIHJldHVybiBJUl9BVVRPOwotICAgICAgICBjYXNlIENTU1ZhbHVlT3B0
aW1pemVzcGVlZDoKLSAgICAgICAgICAgIHJldHVybiBJUl9PUFRJTUlaRVNQRUVEOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5OgotICAgICAgICAgICAgcmV0dXJuIElSX09Q
VElNSVpFUVVBTElUWTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIElSX0FVVE87CisgICAgY2FzZSBDU1NWYWx1
ZUF1dG86CisgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmluZ0F1dG87CisgICAgY2FzZSBDU1NW
YWx1ZU9wdGltaXplc3BlZWQ6CisgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmluZ09wdGltaXpl
U3BlZWQ7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToKKyAgICAgICAgcmV0dXJu
IEltYWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5OworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRP
cHRpbWl6ZUNvbnRyYXN0OgorICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNv
bnRyYXN0OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCBlYTU0YzEyNzNmNzI1MmNkZDYwNzcwZTFiMmY1
MGEwMWQ2MTUyNDA5Li45ZmE2MmUxM2YyMTM1YzdhY2VjYTdiZWJjMjEzMTMzMjlhMjJiMTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtOTMsNiArOTMsNyBAQCBl
bXB0eS1jZWxscwogZmxvYXQKIGZvbnQtc3RyZXRjaAogaGVpZ2h0CitpbWFnZS1yZW5kZXJpbmcK
IGxlZnQKIGxldHRlci1zcGFjaW5nCiBsaXN0LXN0eWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKaW5kZXggZGQ2ZjE0MTViYmUxN2RmNjMzOTk3M2Q3OWZjYjlkZGE3NzIw
ZjlmOC4uMDUwYjNmMWJmYjJmYjA5NWI2NWU5YzhlM2VjNjZiMGQyYmUxNmE1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDY0Niw2ICs0NjQ2LDExIEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1
ZSkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwob3V0bGluZU9mZnNldCwgT3V0
bGluZU9mZnNldCkKICAgICAgICAgbV9zdHlsZS0+c2V0T3V0bGluZU9mZnNldChwcmltaXRpdmVW
YWx1ZS0+Y29tcHV0ZUxlbmd0aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21G
YWN0b3IpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQ1NTUHJvcGVydHlJbWFnZVJlbmRl
cmluZzoKKyAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgbV9zdHlsZS0+c2V0SW1hZ2VSZW5kZXJpbmcoKnByaW1pdGl2ZVZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVyaW5nOiB7CiAgICAg
ICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3Jp
cHRpb24oKTsKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCmluZGV4IDZkYWMwNmZjY2JjOTJiYjk4M2EzNDc0NzA1ZDhhNDM5NjhjMDFm
NWMuLmQ2NzBhNjJmNGYyMGRkNWE3YTJkMmFjMDY2OWExYTdlMDY1YzkyZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDMsNCArODAzLDggQEAgZ2x5cGhzCiBp
bmxpbmUtYm94CiByZXBsYWNlZAogCi0KKyMgaW1hZ2UtcmVuZGVyaW5nCisjYXV0bworI29wdGlt
aXplU3BlZWQKK29wdGltaXplUXVhbGl0eQorLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAppbmRleCA1ZGZlMDNlMDMwMTNhZDVlMWU3ZjFkZWIxZGJiZDkzYjIyNGVjNjc3Li4wYzJh
YWZmOTk2Nzg1NmMwNDk1MWQyZWVmNWEzMTMyZDczNzk5YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTAz
LDggKzEwMyw2IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvCiAgICAgICAgICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+ZmlsbFJ1bGUoKSk7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlDb2xvclJlbmRlcmluZzoKICAgICAgICAgICAgIHJldHVybiBDU1NQ
cmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5jb2xvclJlbmRlcmluZygpKTsKLSAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgotICAgICAgICAgICAgcmV0dXJuIENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5bGUtPmltYWdlUmVuZGVyaW5nKCkpOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAgICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+c2hhcGVSZW5kZXJpbmcoKSk7CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VMaW5lY2FwOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA3YzE1N2E4YzczNzg3OGRhOGRhNmM0ZTBlN2Rk
ZGUwMDg3NDBmNDY0Li4zOGFkM2I2YTAxMGYwMGQ0ODg2ZTZmZTRmZWM0OWY4YzcxNTgzM2Q1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjMsNyArMjMs
NyBAQCBmaWxsCiBmaWxsLW9wYWNpdHkKIGZpbGwtcnVsZQogI2ZvbnQtc2l6ZS1hZGp1c3QKLWlt
YWdlLXJlbmRlcmluZworI2ltYWdlLXJlbmRlcmluZwogbWFya2VyCiBtYXJrZXItZW5kCiBtYXJr
ZXItbWlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXgg
NmIwOTQyNmVjMGQ3NzBmNGNlNDUwZDcxNmY2NTdhN2E5NWM4ZGZlZS4uOGNiNmI3ZThiMTY5ZjBi
NTUzYzc0MDM2NmIzMzFlYzcwZWIyNTlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtMjE0LDEzICsyMTQsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAg
ICAgICAgc3Znc3R5bGUtPnNldEpvaW5TdHlsZSgqcHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVy
aW5nOgotICAgICAgICB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChp
bWFnZVJlbmRlcmluZywgSW1hZ2VSZW5kZXJpbmcpCi0gICAgICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUpCi0gICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEltYWdlUmVuZGVyaW5nKCpwcmlt
aXRpdmVWYWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0FORF9JTklUSUFMKHNoYXBlUmVuZGVyaW5nLCBTaGFwZVJlbmRlcmluZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggYTJjOWY4Mzc3M2E0
ZDY3NDI0MTIxNjBmNjE5OWRiOTA3OTY3YzVjNC4uNDE3YThkNWU2MjdjZjA2YTUzODMyMDMyZjQ4
MWY5YmE1ZTM4ZjhiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVl
S2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMu
aW4KQEAgLTE5Nyw3ICsxOTcsNyBAQCBsaW5lYXJSR0IKICMgQ1NTX1BST1BfQ09MT1JfUkVOREVS
SU5HCiAjYXV0bwogI29wdGltaXplU3BlZWQKLW9wdGltaXplUXVhbGl0eQorI29wdGltaXplUXVh
bGl0eQogCiAjIyBDU1NfUFJPUF9GSUxMCiAjY3VycmVudENvbG9yCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGQ0MTY1NjIzNzJhYzk0ZjA1NDA1YzhiNjkw
MDVlYjk2NTM2Zjc2NmMuLjVmM2Q2MzMwMTA2NzUwYmE2ZDZjZGI4YTZjMzRhMzhmOGU4YWY5MTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0yNjIsNyAr
MjYyLDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogICAgICAgICAoKml0KS0+
Y2FudmFzUmVzaXplZCh0aGlzKTsKIH0KIAotdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQordm9pZCBIVE1MQ2Fu
dmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICAvLyBDbGVhciB0aGUgZGlydHkg
cmVjdAogICAgIG1fZGlydHlSZWN0ID0gRmxvYXRSZWN0KCk7CkBAIC0yODAsMTEgKzI4MCwxMSBA
QCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIHIpCiAgICAgICAgIEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlciA9IGJ1
ZmZlcigpOwogICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIGlmIChtX3By
ZXNlbnRlZEltYWdlKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNl
bnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByKTsKKyAgICAgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURl
dmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAg
ICAgICAgICAgIGVsc2UgaWYgKGltYWdlQnVmZmVyLT5kcmF3c1VzaW5nQ29weSgpKQotICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShjb3BpZWRJbWFnZSgpLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCByKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UoY29waWVkSW1h
Z2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93
UXVhbGl0eVNjYWxlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHIpOwor
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29s
b3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5oCmluZGV4IDk3ZDU1Y2M0OTgxNjI2YzU1MmIxMDg1Y2U5YzM4ZDQ5YTc2NjI2NzkuLjlk
Yjk2NzM5MTM2OWJkNTIwMDNlNjQ1MDc0YThmNjc2NzljNjZmMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIC8v
IFVzZWQgZm9yIHJlbmRlcmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmKTsK
IAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOworICAg
IHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0KiBkcmF3aW5nQ29u
dGV4dCgpIGNvbnN0OwogICAgIEdyYXBoaWNzQ29udGV4dCogZXhpc3RpbmdEcmF3aW5nQ29udGV4
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VSZW5kZXJpbmdNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVJlbmRlcmluZ01vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTQ2MmZiYTU4ZTAyMzY1NWFkODU1MTdh
NDljMmRlNjNhMjI0NWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEltYWdlUmVuZGVyaW5nTW9kZV9oCisjZGVmaW5lIEltYWdlUmVuZGVyaW5nTW9kZV9o
CisgICAgCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gSW1hZ2VSZW5kZXJpbmdNb2RlIHsg
QXV0b0ltYWdlUmVuZGVyaW5nLCBPcHRpbWl6ZUNvbnRyYXN0IH07CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKyAgICAKKyNlbmRpZiAvLyBJbWFnZVJlbmRlcmluZ01vZGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggYzAz
YmEzYmNkZTBlZjEwMGE1OWE1YzYzNGVkMjY1YTA4MTU5ODEzYi4uYzk3ODIwNTZlYjMyNDkyOGU5
MWQ2Yjk4MTkwZDViOWU0MjE3NTJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0xMzksNiArMTM5LDkgQEAgYm9vbCBJbWFn
ZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIFIKICAgICBpZiAoIWltYWdlIHx8ICFpbWFnZS0+aXNCaXRtYXBJbWFnZSgp
IHx8IGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgaWYgKG9iamVjdC0+c3R5bGUoKS0+aW1hZ2VSZW5kZXJpbmcoKSA9PSBXZWJDb3JlOjpJ
bWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3QpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IAogICAgIC8vIE1ha2Ugc3VyZSB0byB1c2UgdGhlIHVuem9vbWVkIGltYWdlIHNpemUsIHNpbmNl
IGlmIGEgZnVsbCBwYWdlIHpvb20gaXMgaW4gZWZmZWN0LCB0aGUgaW1hZ2UKICAgICAvLyBpcyBh
Y3R1YWxseSBiZWluZyBzY2FsZWQuCiAgICAgSW50U2l6ZSBpbWFnZVNpemUoaW1hZ2UtPndpZHRo
KCksIGltYWdlLT5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySFRNTENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SFRNTENhbnZhcy5jcHAKaW5kZXggZGUyYTJjMTU2ZjFkODNjMjg5MmU5MjJhZmRmNzYwZWUwNjA2
N2UxZi4uODFjZTM4MjBiMDZhMmEwZWZkZmFkYWY2NTM5NzA4OTBkZDdkNmMxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcApAQCAtNTgsNyArNTgs
OCBAQCB2b2lkIFJlbmRlckhUTUxDYW52YXM6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGludCB0eCwgaW50IHR5KQogewogICAgIEludFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hS
ZWN0KCk7CiAgICAgcmVjdC5tb3ZlKHR4LCB0eSk7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTENhbnZh
c0VsZW1lbnQqPihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwgcmVjdCk7CisgICAg
Ym9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBzdHlsZSgpLT5pbWFnZVJlbmRlcmluZygpID09IFdl
YkNvcmU6OkltYWdlUmVuZGVyaW5nT3B0aW1pemVDb250cmFzdDsKKyAgICBzdGF0aWNfY2FzdDxI
VE1MQ2FudmFzRWxlbWVudCo+KG5vZGUoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCByZWN0
LCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIFJlbmRlckhUTUxDYW52YXM6OmNhbnZh
c1NpemVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCmluZGV4IDdkODY2M2E5ODc4ZWM1NzI2Yzc2NjU5NmQ4OWU3YWQ3MThiNmMzOGEu
LjRlYThiMjkxY2IwN2VhZDQwZjJmODZkNjE3MTcyMGJmNDUwNzFlYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNTYwLDcgKzU2MCw4
IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSog
b3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRh
LT50ZXh0RmlsbENvbG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEZpbGxDb2xv
cgogICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yICE9IG90aGVy
LT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yCiAgICAgICAgIHx8IHJhcmVJbmhl
cml0ZWREYXRhLT50ZXh0RW1waGFzaXNDb2xvciAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
PnRleHRFbXBoYXNpc0NvbG9yCi0gICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1w
aGFzaXNGaWxsICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzRmlsbCkK
KyAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0ZpbGwgIT0gb3RoZXIt
PnJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNGaWxsCisgICAgICAgIHx8IHJhcmVJbmhl
cml0ZWREYXRhLT5tX2ltYWdlUmVuZGVyaW5nICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+
bV9pbWFnZVJlbmRlcmluZykKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQ7
CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDIzZjU1MzVmMTI4NTVmMmJiMDE1ZmIy
OTZjNjA5MDIyOWNkNmRhYTYuLjc0M2Y5ZmU1OTVlNDI4OTQ1OGViYmYwMTM4NTViNzM3YmEzODY1
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC03ODMsNiArNzgzLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNGbGlwcGVkTGluZXNXcml0aW5n
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdNb2RlKCkgPT0gTGVmdFRvUmlnaHRXcml0aW5n
TW9kZSB8fCB3cml0aW5nTW9kZSgpID09IEJvdHRvbVRvVG9wV3JpdGluZ01vZGU7IH0KICAgICBi
b29sIGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gd3JpdGluZ01v
ZGUoKSA9PSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlIHx8IHdyaXRpbmdNb2RlKCkgPT0gQm90dG9t
VG9Ub3BXcml0aW5nTW9kZTsgfQogCisgICAgRUltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVyaW5n
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdlUmVuZGVyaW5nPihyYXJlSW5oZXJp
dGVkRGF0YS0+bV9pbWFnZVJlbmRlcmluZyk7IH0KKyAgICAKICAgICBFU3BlYWsgc3BlYWsoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxFU3BlYWs+KHJhcmVJbmhlcml0ZWREYXRhLT5zcGVhayk7IH0K
ICAgICAgICAgCiAvLyBhdHRyaWJ1dGUgc2V0dGVyIG1ldGhvZHMKQEAgLTkzNCw2ICs5MzYsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMaW5lSGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoaW5o
ZXJpdGVkLCBsaW5lX2hlaWdodCwgdikgfQogICAgIHZvaWQgc2V0Wm9vbShmbG9hdCBmKSB7IFNF
VF9WQVIodmlzdWFsLCBtX3pvb20sIGYpOyBzZXRFZmZlY3RpdmVab29tKGVmZmVjdGl2ZVpvb20o
KSAqIHpvb20oKSk7IH0KICAgICB2b2lkIHNldEVmZmVjdGl2ZVpvb20oZmxvYXQgZikgeyBTRVRf
VkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2VmZmVjdGl2ZVpvb20sIGYpIH0KKyAgICB2b2lkIHNl
dEltYWdlUmVuZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRl
ZERhdGEsIG1faW1hZ2VSZW5kZXJpbmcsIHYpIH0KIAogICAgIHZvaWQgc2V0V2hpdGVTcGFjZShF
V2hpdGVTcGFjZSB2KSB7IGluaGVyaXRlZF9mbGFncy5fd2hpdGVfc3BhY2UgPSB2OyB9CiAKQEAg
LTEzMTcsNiArMTMyMCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiBpbml0aWFsVGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpIHsgcmV0dXJuIG51bGxBdG9tOyB9CiAg
ICAgc3RhdGljIFRleHRFbXBoYXNpc1Bvc2l0aW9uIGluaXRpYWxUZXh0RW1waGFzaXNQb3NpdGlv
bigpIHsgcmV0dXJuIFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcjsgfQogICAgIHN0YXRpYyBMaW5l
Qm94Q29udGFpbiBpbml0aWFsTGluZUJveENvbnRhaW4oKSB7IHJldHVybiBMaW5lQm94Q29udGFp
bkJsb2NrIHwgTGluZUJveENvbnRhaW5JbmxpbmUgfCBMaW5lQm94Q29udGFpblJlcGxhY2VkOyB9
CisgICAgc3RhdGljIEVJbWFnZVJlbmRlcmluZyBpbml0aWFsSW1hZ2VSZW5kZXJpbmcoKSB7IHJl
dHVybiBJbWFnZVJlbmRlcmluZ0F1dG87IH0KIAogICAgIC8vIEtlZXAgdGhlc2UgYXQgdGhlIGVu
ZC4KICAgICBzdGF0aWMgTGluZUNsYW1wVmFsdWUgaW5pdGlhbExpbmVDbGFtcCgpIHsgcmV0dXJu
IExpbmVDbGFtcFZhbHVlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggYzU0ZWNjZmE4MjZkYTliZDc1Mzg4
NGJiMmNhY2UwMjI5OWJlODQwYi4uNDFkOGY2NTBhNmE4ODQ1MmE4YzlkYTY3OWJiZWRiZjdlMTdi
ZTUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmgKQEAgLTQyNiw2ICs0MjYsOCBAQCBlbnVtIFRleHRFbXBoYXNpc01h
cmsgeyBUZXh0RW1waGFzaXNNYXJrTm9uZSwgVGV4dEVtcGhhc2lzTWFya0F1dG8sIFRleHRFbXBo
YXNpcwogCiBlbnVtIFRleHRFbXBoYXNpc1Bvc2l0aW9uIHsgVGV4dEVtcGhhc2lzUG9zaXRpb25P
dmVyLCBUZXh0RW1waGFzaXNQb3NpdGlvblVuZGVyIH07CiAKK2VudW0gRUltYWdlUmVuZGVyaW5n
IHsgSW1hZ2VSZW5kZXJpbmdBdXRvLCBJbWFnZVJlbmRlcmluZ09wdGltaXplU3BlZWQsIEltYWdl
UmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5LCBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3Qg
fTsKKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxl
Q29uc3RhbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
VkdSZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVu
ZGVyU3R5bGUuY3BwCmluZGV4IGIyYmU0OGU4MWYzOTFjN2Q0ZWE3NmQwNWZmOTBhYjhhZTkwNDg4
YTkuLjYwNDlmNzRkY2U1NGNiNDZkYzRhZWYyNDgzY2NjM2RiMzFiNWQzNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcApAQCAtMjAz
LDcgKzIwMyw2IEBAIFN0eWxlRGlmZmVyZW5jZSBTVkdSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBT
VkdSZW5kZXJTdHlsZSogb3RoZXIpIGNvbnN0CiAKICAgICAvLyBDaGFuZ2VzIG9mIHRoZXNlIGZs
YWdzIG9ubHkgY2F1c2UgcmVwYWludHMuCiAgICAgaWYgKHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2Nv
bG9yUmVuZGVyaW5nICE9IG90aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xvclJlbmRlcmlu
ZwotICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRlcmluZyAhPSBvdGhl
ci0+c3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcKICAgICAgICAgfHwgc3ZnX2lu
aGVyaXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmcgIT0gb3RoZXItPnN2Z19pbmhlcml0ZWRfZmxh
Z3MuX3NoYXBlUmVuZGVyaW5nCiAgICAgICAgIHx8IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NsaXBS
dWxlICE9IG90aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdzLl9jbGlwUnVsZQogICAgICAgICB8fCBz
dmdfaW5oZXJpdGVkX2ZsYWdzLl9maWxsUnVsZSAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFn
cy5fZmlsbFJ1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
VkdSZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRl
clN0eWxlLmgKaW5kZXggODhhNDhkZjVhMzZmODJiMmQyYmEwZDEzMTg1YzI0OWJjMWE1NzRiYy4u
MGZlNGE4MGNkZmNkNTIxZjQ3MzdkMzdmYzJmMWM1YjVjMzMyZTlkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKQEAgLTYzLDcgKzYzLDYg
QEAgcHVibGljOgogICAgIHN0YXRpYyBFQ29sb3JJbnRlcnBvbGF0aW9uIGluaXRpYWxDb2xvcklu
dGVycG9sYXRpb25GaWx0ZXJzKCkgeyByZXR1cm4gQ0lfTElORUFSUkdCOyB9CiAgICAgc3RhdGlj
IEVDb2xvclJlbmRlcmluZyBpbml0aWFsQ29sb3JSZW5kZXJpbmcoKSB7IHJldHVybiBDUl9BVVRP
OyB9CiAgICAgc3RhdGljIFdpbmRSdWxlIGluaXRpYWxGaWxsUnVsZSgpIHsgcmV0dXJuIFJVTEVf
Tk9OWkVSTzsgfQotICAgIHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVy
aW5nKCkgeyByZXR1cm4gSVJfQVVUTzsgfQogICAgIHN0YXRpYyBMaW5lSm9pbiBpbml0aWFsSm9p
blN0eWxlKCkgeyByZXR1cm4gTWl0ZXJKb2luOyB9CiAgICAgc3RhdGljIEVTaGFwZVJlbmRlcmlu
ZyBpbml0aWFsU2hhcGVSZW5kZXJpbmcoKSB7IHJldHVybiBTUl9BVVRPOyB9CiAgICAgc3RhdGlj
IEVUZXh0QW5jaG9yIGluaXRpYWxUZXh0QW5jaG9yKCkgeyByZXR1cm4gVEFfU1RBUlQ7IH0KQEAg
LTE0MCw3ICsxMzksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb2xvckludGVycG9sYXRpb25G
aWx0ZXJzKEVDb2xvckludGVycG9sYXRpb24gdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2Nv
bG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMgPSB2YWw7IH0KICAgICB2b2lkIHNldENvbG9yUmVuZGVy
aW5nKEVDb2xvclJlbmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5k
ZXJpbmcgPSB2YWw7IH0KICAgICB2b2lkIHNldEZpbGxSdWxlKFdpbmRSdWxlIHZhbCkgeyBzdmdf
aW5oZXJpdGVkX2ZsYWdzLl9maWxsUnVsZSA9IHZhbDsgfQotICAgIHZvaWQgc2V0SW1hZ2VSZW5k
ZXJpbmcoRUltYWdlUmVuZGVyaW5nIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJl
bmRlcmluZyA9IHZhbDsgfQogICAgIHZvaWQgc2V0Sm9pblN0eWxlKExpbmVKb2luIHZhbCkgeyBz
dmdfaW5oZXJpdGVkX2ZsYWdzLl9qb2luU3R5bGUgPSB2YWw7IH0KICAgICB2b2lkIHNldFNoYXBl
UmVuZGVyaW5nKEVTaGFwZVJlbmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hh
cGVSZW5kZXJpbmcgPSB2YWw7IH0KICAgICB2b2lkIHNldFRleHRBbmNob3IoRVRleHRBbmNob3Ig
dmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3RleHRBbmNob3IgPSB2YWw7IH0KQEAgLTI5Nyw3
ICsyOTUsNiBAQCBwdWJsaWM6CiAgICAgRUNvbG9ySW50ZXJwb2xhdGlvbiBjb2xvckludGVycG9s
YXRpb25GaWx0ZXJzKCkgY29uc3QgeyByZXR1cm4gKEVDb2xvckludGVycG9sYXRpb24pIHN2Z19p
bmhlcml0ZWRfZmxhZ3MuX2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM7IH0KICAgICBFQ29sb3JS
ZW5kZXJpbmcgY29sb3JSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiAoRUNvbG9yUmVuZGVyaW5n
KSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xvclJlbmRlcmluZzsgfQogICAgIFdpbmRSdWxlIGZp
bGxSdWxlKCkgY29uc3QgeyByZXR1cm4gKFdpbmRSdWxlKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9m
aWxsUnVsZTsgfQotICAgIEVJbWFnZVJlbmRlcmluZyBpbWFnZVJlbmRlcmluZygpIGNvbnN0IHsg
cmV0dXJuIChFSW1hZ2VSZW5kZXJpbmcpIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ltYWdlUmVuZGVy
aW5nOyB9CiAgICAgTGluZUpvaW4gam9pblN0eWxlKCkgY29uc3QgeyByZXR1cm4gKExpbmVKb2lu
KSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9qb2luU3R5bGU7IH0KICAgICBFU2hhcGVSZW5kZXJpbmcg
c2hhcGVSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiAoRVNoYXBlUmVuZGVyaW5nKSBzdmdfaW5o
ZXJpdGVkX2ZsYWdzLl9zaGFwZVJlbmRlcmluZzsgfQogICAgIEVUZXh0QW5jaG9yIHRleHRBbmNo
b3IoKSBjb25zdCB7IHJldHVybiAoRVRleHRBbmNob3IpIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3Rl
eHRBbmNob3I7IH0KQEAgLTM0Niw3ICszNDMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBJbmhlcml0ZWRGbGFncyYgb3RoZXIpIGNvbnN0CiAgICAgICAgIHsK
ICAgICAgICAgICAgIHJldHVybiAoX2NvbG9yUmVuZGVyaW5nID09IG90aGVyLl9jb2xvclJlbmRl
cmluZykKLSAgICAgICAgICAgICAgICAmJiAoX2ltYWdlUmVuZGVyaW5nID09IG90aGVyLl9pbWFn
ZVJlbmRlcmluZykKICAgICAgICAgICAgICAgICAmJiAoX3NoYXBlUmVuZGVyaW5nID09IG90aGVy
Ll9zaGFwZVJlbmRlcmluZykKICAgICAgICAgICAgICAgICAmJiAoX2NsaXBSdWxlID09IG90aGVy
Ll9jbGlwUnVsZSkKICAgICAgICAgICAgICAgICAmJiAoX2ZpbGxSdWxlID09IG90aGVyLl9maWxs
UnVsZSkKQEAgLTM2Niw3ICszNjIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIH0KIAogICAgICAg
ICB1bnNpZ25lZCBfY29sb3JSZW5kZXJpbmcgOiAyOyAvLyBFQ29sb3JSZW5kZXJpbmcKLSAgICAg
ICAgdW5zaWduZWQgX2ltYWdlUmVuZGVyaW5nIDogMjsgLy8gRUltYWdlUmVuZGVyaW5nIAogICAg
ICAgICB1bnNpZ25lZCBfc2hhcGVSZW5kZXJpbmcgOiAyOyAvLyBFU2hhcGVSZW5kZXJpbmcgCiAg
ICAgICAgIHVuc2lnbmVkIF9jbGlwUnVsZSA6IDE7IC8vIFdpbmRSdWxlCiAgICAgICAgIHVuc2ln
bmVkIF9maWxsUnVsZSA6IDE7IC8vIFdpbmRSdWxlCkBAIC00MjIsNyArNDE3LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fY2xpcFJ1bGUgPSBpbml0aWFsQ2xpcFJ1
bGUoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmcgPSBpbml0
aWFsQ29sb3JSZW5kZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1
bGUgPSBpbml0aWFsRmlsbFJ1bGUoKTsKLSAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1h
Z2VSZW5kZXJpbmcgPSBpbml0aWFsSW1hZ2VSZW5kZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVy
aXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmcgPSBpbml0aWFsU2hhcGVSZW5kZXJpbmcoKTsKICAg
ICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fdGV4dEFuY2hvciA9IGluaXRpYWxUZXh0QW5jaG9y
KCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NhcFN0eWxlID0gaW5pdGlhbENhcFN0
eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVu
ZGVyU3R5bGVEZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVy
U3R5bGVEZWZzLmgKaW5kZXggMDAzNThhMGQ1N2I5YmE2ZTU5NjdiNTI2Zjg1ZWRhOWVmNWEzMWM0
MC4uMmMzM2M2ZGM5YmRkODg4Y2ViYTJjMWE4NGY4Zjc1OWEyYTJhMDk3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaApAQCAt
NTQsMTEgKzU0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRUNvbG9yUmVuZGVy
aW5nIHsKICAgICAgICAgQ1JfQVVUTywgQ1JfT1BUSU1JWkVTUEVFRCwgQ1JfT1BUSU1JWkVRVUFM
SVRZCiAgICAgfTsKLSAgICAKLSAgICBlbnVtIEVJbWFnZVJlbmRlcmluZyB7Ci0gICAgICAgIElS
X0FVVE8sIElSX09QVElNSVpFU1BFRUQsIElSX09QVElNSVpFUVVBTElUWQotICAgIH07Ci0KICAg
ICBlbnVtIEVTaGFwZVJlbmRlcmluZyB7CiAgICAgICAgIFNSX0FVVE8sIFNSX09QVElNSVpFU1BF
RUQsIFNSX0NSSVNQRURHRVMsIFNSX0dFT01FVFJJQ1BSRUNJU0lPTgogICAgIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKaW5kZXggYzM4NDYxMTY2YmZiYzJiMTU0ZjNhNjkyNmE1M2ViNzdhNTZhNTBjZi4u
MTE2MDZiMThhNzY5NjA4N2ZiYWJlM2Q2ODc5ZDM0NmE3MjEzYjEwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcApAQCAtNTIsNiArNTIsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhKCkKICAgICAsIHRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFya05v
bmUpCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIp
CiAgICAgLCBtX2xpbmVCb3hDb250YWluKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUJveENvbnRh
aW4oKSkKKyAgICAsIG1faW1hZ2VSZW5kZXJpbmcoUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJl
bmRlcmluZygpKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhl
bmF0aW9uTGltaXRBZnRlcigtMSkKIHsKQEAgLTg2LDYgKzg3LDcgQEAgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRleHRFbXBoYXNpc01hcmspCiAgICAg
LCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0aW9uKQogICAgICwgbV9s
aW5lQm94Q29udGFpbihvLm1fbGluZUJveENvbnRhaW4pCisgICAgLCBtX2ltYWdlUmVuZGVyaW5n
KG8ubV9pbWFnZVJlbmRlcmluZykKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5nKG8uaHlwaGVuYXRp
b25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlwaGVuYXRpb25MaW1p
dEJlZm9yZSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcihvLmh5cGhlbmF0aW9uTGltaXRB
ZnRlcikKQEAgLTE0MSw3ICsxNDMsOCBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAg
JiYgaHlwaGVuYXRpb25TdHJpbmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwogICAgICAgICAmJiBs
b2NhbGUgPT0gby5sb2NhbGUKICAgICAgICAgJiYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBv
LnRleHRFbXBoYXNpc0N1c3RvbU1hcmsKLSAgICAgICAgJiYgKnF1b3RlcyA9PSAqby5xdW90ZXM7
CisgICAgICAgICYmICpxdW90ZXMgPT0gKm8ucXVvdGVzCisgICAgICAgICYmIG1faW1hZ2VSZW5k
ZXJpbmcgPT0gby5tX2ltYWdlUmVuZGVyaW5nOwogfQogCiBib29sIFN0eWxlUmFyZUluaGVyaXRl
ZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEm
IG8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBkYTQxMGYxYWM2ODI3MzQxZmQzODc4ZWYyYmJm
OTVmODliZmQwMjI2Li42YzQxMTg0ODYwNjA4YjBhODM0Yjk1YTQ1ZDM4NDJiMjQyODRkYzUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmgKQEAgLTg1LDYgKzg1LDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHRl
eHRFbXBoYXNpc01hcmsgOiAzOyAvLyBUZXh0RW1waGFzaXNNYXJrCiAgICAgdW5zaWduZWQgdGV4
dEVtcGhhc2lzUG9zaXRpb24gOiAxOyAvLyBUZXh0RW1waGFzaXNQb3NpdGlvbgogICAgIHVuc2ln
bmVkIG1fbGluZUJveENvbnRhaW46IDc7IC8vIExpbmVCb3hDb250YWluCisgICAgLy8gQ1NTIElt
YWdlIFZhbHVlcyBMZXZlbCAzCisgICAgdW5zaWduZWQgbV9pbWFnZVJlbmRlcmluZyA6IDI7IC8v
IEVJbWFnZVJlbmRlcmluZyAqLworCiAKICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJp
bmc7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25MaW1pdEJlZm9yZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDdkM2Y5
MDkyNzI4M2YyOTA0Zjc3OWZmMDBjYzdiNmUzYWFlOWNjMjQuLjc4YjJiMDhiMGJkZWNhYzcyYWMx
ZWIwNjczZDgyM2MxNzllMjJjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtMzIxLDcgKzMyMSw2IEBAIHN0YXRp
YyB2b2lkIHdyaXRlU3R5bGUoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgb2Jq
ZWN0KQogCiAgICAgaWYgKCFvYmplY3QubG9jYWxUcmFuc2Zvcm0oKS5pc0lkZW50aXR5KCkpCiAg
ICAgICAgIHdyaXRlTmFtZVZhbHVlUGFpcih0cywgInRyYW5zZm9ybSIsIG9iamVjdC5sb2NhbFRy
YW5zZm9ybSgpKTsKLSAgICB3cml0ZUlmTm90RGVmYXVsdCh0cywgImltYWdlIHJlbmRlcmluZyIs
IHN2Z1N0eWxlLT5pbWFnZVJlbmRlcmluZygpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdl
UmVuZGVyaW5nKCkpOwogICAgIHdyaXRlSWZOb3REZWZhdWx0KHRzLCAib3BhY2l0eSIsIHN0eWxl
LT5vcGFjaXR5KCksIFJlbmRlclN0eWxlOjppbml0aWFsT3BhY2l0eSgpKTsKICAgICBpZiAob2Jq
ZWN0LmlzU1ZHUGF0aCgpKSB7CiAgICAgICAgIGNvbnN0IFJlbmRlclNWR1BhdGgmIHBhdGggPSBz
dGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTVkdQYXRoJj4ob2JqZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93907</attachid>
            <date>2011-05-18 06:51:47 -0700</date>
            <delta_ts>2011-05-23 15:41:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56627-20110518235144.patch</filename>
            <type>text/plain</type>
            <size>48239</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY0OTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNTVkOGQzYjc3ZmE1NjI5MzFlYjkw
MjcyMDIyMWU5YzhlZWFlZWU2Li5iNGY1MjIzMzE1MzIyMGJlODJhMDdlY2UwMDBiZmFkYzYxMTFm
MjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMTEgIE1pa2UgTGF3dGhlciAgPG1p
a2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250
cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3
CisKKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA1LTE0ICBBbmRyZXcgV2ls
c29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21p
dW0gZXhwZWN0YXRpb25zIGNoYW5nZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1h
Z2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9j
c3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY1OTFkZWNkODI4ZTRiMjM5N2FiYjk4MjM3NjliMmQ2MjcwYTdkMjIKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDExMjQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFC
JVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVNJRAp6WDJ2RWFtS0o2ZjI4a3g3TWthfklESGV0bnJX
UGl0Q0trcXQ3S1d1UDh8cnsyeXZ1WlU0KUFuI1J0UEF7UHNffG4KelduaWRhWXo7WXxFJGtAciZu
JDF7MXRwSENZYCNxdTZPPXE3UzcqM2hHNWFmK2wrQU5uZXcqdXI2bDJlOGQxa05RCnpzY2xgX0Aj
TjcodCRWSS03cWI2dmtnTktUcVZMcmo8KklSU3dNTm9IYW92dyteTCh9fmVSYmVtLVJGRGU/YCFr
Ugp6P2xiVGZUezhMRiExOUZtYytldWolJHlwaHRVbnpMZVR6NjlPO2tmfnp3dUxIYjhJZ0RTXmZN
KjZATyFOKnh+Qm0KejwodGFhJmJxWDE3SkpLSWhYP01uWmZiM0tGSjh6TURhNiFhYkFPQGNAZSs+
dms4Z1o+KHtKZmxTI2ZZSHpxYWo+CnpOVG5KRlF7OGoqekJfYD9zJE88el9PT2Bwd0ped1QmaF9w
bypKYXI9XlV7dTs1WkxRS1ZjRzY4P15ZKSpvYTZWNgp6Wl5HV1dVK1ZsZS0/S1pVYyEqbmF0LWFm
aC1nI2VwdUcmOUplN05NPGt2M1p5M0RZaz41PTZJNHReOHFuTkYtanMKelNBOWBQO1l+Zj5rMkJX
JjRnMktQUjR+RWZSN3pxKWFnPk11YilVUSt5Vl9aNil2Z1AjZV5lZThfXmA1SElRYHowCnp5WUYz
WkZ8OVk/bGpWYChuWkBmN0FtR1o5SUFjU0FMenw3MXB+PEVxZCojKF4odnohPU4+I0ZVbW42QXRi
Z1ZZSgp6VzRrP1kkejdYJjhjS3l6b1ZSakpgczRVZFl5Qzw4cjxGZlgkODVMfV9JPTlRKnxUPGlk
U0hGQD5DQnh7YUBRfVAKemN3Rm9vUzJPaVcrMm5CZFg9XkkwX1JNLUNXJmI5OHk1WH1YKUJZcEg4
LTlQKGpofWpFeEBNMmEoWmB7bVV3T0JiCnpNajR2bHBQeTUyWlRtPj95eCFKcCNjTW1lJkJKQy1Q
eWRfY0AlIURYSihIaD57YDhPZ2B0ZVd0KigxcjFHITUwdAp6eH1HYWBQQ3UmbWFuY1IlKSFkSH5h
KnVQJm8hWHsoRFI8JjhtOCVIfXYtVyh8a0Z9NGsqeX5vJF5FR2dhPGU1dCQKem8heyNaWHtESVYt
Tn4yI3ROLUAjS2pLZm1jUmlvNCFLOXpfO0thO2J4eHQwKzFzMHwqJWAwQlZCKTxQKj9UMmw3Cnoq
XkJFZXs7KSpZdFFLMXZXSUE3QTUySCszZHpJVl4lXjg9Y08qP0JEKVVHcHNAfilTc2w3aHx6Kzsk
RU14fl9VWAp6KW12PXklK1JFbFdqQUpDbWQlcXtYekJGKiRhMWdMJC1tWnI2eHtINEwodEVrWWwz
ZHBgQUo9Q29jPTVTekBFUloKejJQKFFkODVrNThKWTVfXkRqNDcxR3xaRnI2a3Y3eSpaUXRMSFM2
ajIra1lMPkk1eEUlNVlmKD4hKHg5d0tLfXB6Cnp8M0NsUj9OOTJpS21KM3RgX0NXJFEqMTA4MHR5
WmQ0Mig/VEVkTz9ZQExSNn09MEhSYjFVZlh4TUF7JDtKIW9yUwp6KnR6aTRUKH5ZNDRqRVJLNkJD
YSpHYS1jWEk1O0xxdWUjPzZHSWk3LVAjQkRjKFAlbSVtXzs2KGZCeVJTazdvSnIKekEzcHlxLTJk
c0xfJj9SPjdWbi1aIVpNTFYrPHx6OVB4RkJfOVh6WU9YSkkqRW9qbjxyZztfWUJ1KEVqazZKfGk8
Cno7UmthWTclSjBxZzx5cy1IMTI2Jkk5Ym9jZlk3cj9TVX08WjhlYioyclV+SyMzUDFmQjtKS0hm
djdDd04kPXQxOwp6YUM9IWtGKV53OT1WWEFDOTNiSGplaHYrTEhrKTxBSDk1cE5HKDUzcVdJKlYt
JEhfNkZ7Rjw1fFQrPDB8anRQSSUKejhJWHp6WWV2UlQ9V2VNV0pYcCFkSU8jdE4xR0k8Jm5wTDUk
O0JZVDt3aExVN2cxKjlOcG98Nno2TH40K1VycWdmCno+OVg9bT5tIzQmUDJNZ0hQbnJeM0tlJGZf
K3xOTHlMe21uX3B4cnhhSXBJbD4yVXpjb3N1JkZxWG80NmBBRVVXcAp6dn4rO0FEbkBnfFhsQHdJ
NFdxZE0rI01LZ0RVRyVxTV9iYWN6UXQmNjd8amkleG5WUm5mUVE+ZytzVUt0PGs1RVcKelhnaGhk
b3leRUlTezlDJGdgO0k1Kj0xcStsaj8yOzI5NjVRU155U34oTyQtQUZKcldxRzF8KSo/UFpMWGdg
K2RxCmhxeDFCJW9+TGl6VSRLakNvIVRxeVh+NTtYNDQkcmpGNioyVW5nQ0hKMGIyazcKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2lt
YWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhi
MTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFn
ZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdl
cy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWQxZjRmZWE4YmM4
ZTZlYzFmNjRmODJhNDU3NmMxZjQxNTRjMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKQEAgLTAsMCArMSw1
NyBAQAorPCFET0NUWVBFIGh0bWw+IAorPHN0eWxlPiAKKwljYW52YXMgeworCQlkaXNwbGF5OiBi
bG9jazsKKwkJcG9zaXRpb246IGZpeGVkOworCQlsZWZ0OiAwcHg7CisJCXRvcDogMHB4OworCQly
aWdodDogMHB4OworCQlib3R0b206IDBweDsKKwkJYm9yZGVyOiBub25lOworCQl3aWR0aDogMTAw
cHg7CisJCWhlaWdodDogMTAwcHg7CisJCW1hcmdpbjogMHB4OworCQlwYWRkaW5nOiAwcHg7CisJ
CWltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKKwl9Cis8L3N0eWxl
PiAKKzxib2R5PiAKKyAgICA8IS0tIFRoZSByZXN1bHRpbmcgaW1hZ2Ugc2hvdWxkIGJlIDEwMHgx
MDAsIGNvbnNpc3Rpbmcgb2YgNCA1MHg1MCBibG9ja3Mgb2Ygc29saWQgY29sb3IsIHdpdGggbm8g
Ymx1cnJpbmcgb2YgZWRnZXMgLS0+CisJPGNhbnZhcyB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2Nh
bnZhcz4gCis8L2JvZHk+IAorPHNjcmlwdD4gCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsK
KyAgICAgICAgCisJdmFyIGNhbnZhczsKKwl2YXIgaW1hZ2VIYW5kbGU7CisJY2FudmFzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdLmdldENvbnRleHQoIjJkIik7
CisJY2FudmFzLndpZHRoID0gMjsKKwljYW52YXMuaGVpZ2h0ID0gMjsKKwlpbWFnZUhhbmRsZSA9
IGNhbnZhcy5jcmVhdGVJbWFnZURhdGEoMiwgMik7CisKKwl2YXIgaW5kZXggPSAwOworCXZhciBs
ZW5ndGggPSBpbWFnZUhhbmRsZS5kYXRhLmxlbmd0aDsKKworICAgIGltYWdlSGFuZGxlLmRhdGFb
aW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAg
aW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRl
eCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGlt
YWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRl
eCsrXSA9IDA7CisgICAgaW1hZ2VIYW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGlt
YWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgr
K10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisgICAgaW1hZ2VI
YW5kbGUuZGF0YVtpbmRleCsrXSA9IDI1NTsKKworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgr
K10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFu
ZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAy
NTU7CisKKwljYW52YXMucHV0SW1hZ2VEYXRhKGltYWdlSGFuZGxlLCAwLCAwKTsKKzwvc2NyaXB0
PiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0
LWltYWdlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNv
bnRyYXN0LWltYWdlLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTkxZGVjZDgyOGU0YjIzOTdh
YmI5ODIzNzY5YjJkNjI3MGE3ZDIyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTI0NAp6Y21l
QVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VG
eGVTSUQKelgydkVhbUtKNmYyOGt4N01rYX5JREhldG5yV1BpdENLa3F0N0tXdVA4fHJ7Mnl2dVpV
NClBbiNSdFBBe1BzX3xuCnpXbmlkYVl6O1l8RSRrQHImbiQxezF0cEhDWWAjcXU2Tz1xN1M3KjNo
RzVhZitsK0FObmV3KnVyNmwyZThkMWtOUQp6c2NsYF9AI043KHQkVkktN3FiNnZrZ05LVHFWTHJq
PCpJUlN3TU5vSGFvdncrXkwofX5lUmJlbS1SRkRlP2Aha1IKej9sYlRmVHs4TEYhMTlGbWMrZXVq
JSR5cGh0VW56TGVUejY5TztrZn56d3VMSGI4SWdEU15mTSo2QE8hTip4fkJtCno8KHRhYSZicVgx
N0pKS0loWD9NblpmYjNLRko4ek1EYTYhYWJBT0BjQGUrPnZrOGdaPih7SmZsUyNmWUh6cWFqPgp6
TlRuSkZRezhqKnpCX2A/cyRPPHpfT09gcHdKXndUJmhfcG8qSmFyPV5Ve3U7NVpMUUtWY0c2OD9e
WSkqb2E2VjYKelpeR1dXVStWbGUtP0taVWMhKm5hdC1hZmgtZyNlcHVHJjlKZTdOTTxrdjNaeTNE
WWs+NT02STR0Xjhxbk5GLWpzCnpTQTlgUDtZfmY+azJCVyY0ZzJLUFI0fkVmUjd6cSlhZz5NdWIp
VVEreVZfWjYpdmdQI2VeZWU4X15gNUhJUWB6MAp6eVlGM1pGfDlZP2xqVmAoblpAZjdBbUdaOUlB
Y1NBTHp8NzFwfjxFcWQqIyheKHZ6IT1OPiNGVW1uNkF0YmdWWUoKelc0az9ZJHo3WCY4Y0t5em9W
UmpKYHM0VWRZeUM8OHI8RmZYJDg1TH1fST05USp8VDxpZFNIRkA+Q0J4e2FAUX1QCnpjd0Zvb1My
T2lXKzJuQmRYPV5JMF9STS1DVyZiOTh5NVh9WClCWXBIOC05UChqaH1qRXhATTJhKFpge21Vd09C
Ygp6TWo0dmxwUHk1MlpUbT4/eXghSnAjY01tZSZCSkMtUHlkX2NAJSFEWEooSGg+e2A4T2dgdGVX
dCooMXIxRyE1MHQKenh9R2FgUEN1Jm1hbmNSJSkhZEh+YSp1UCZvIVh7KERSPCY4bTglSH12LVco
fGtGfTRrKnl+byReRUdnYTxlNXQkCnpvIXsjWlh7RElWLU5+MiN0Ti1AI0tqS2ZtY1JpbzQhSzl6
XztLYTtieHh0MCsxczB8KiVgMEJWQik8UCo/VDJsNwp6Kl5CRWV7OykqWXRRSzF2V0lBN0E1Mkgr
M2R6SVZeJV44PWNPKj9CRClVR3BzQH4pU3NsN2h8eis7JEVNeH5fVVgKeiltdj15JStSRWxXakFK
Q21kJXF7WHpCRiokYTFnTCQtbVpyNnh7SDRMKHRFa1lsM2RwYEFKPUNvYz01U3pARVJaCnoyUChR
ZDg1azU4Slk1X15EajQ3MUd8WkZyNmt2N3kqWlF0TEhTNmoyK2tZTD5JNXhFJTVZZig+ISh4OXdL
S31wegp6fDNDbFI/TjkyaUttSjN0YF9DVyRRKjEwODB0eVpkNDIoP1RFZE8/WUBMUjZ9PTBIUmIx
VWZYeE1BeyQ7SiFvclMKeip0emk0VCh+WTQ0akVSSzZCQ2EqR2EtY1hJNTtMcXVlIz82R0lpNy1Q
I0JEYyhQJW0lbV87NihmQnlSU2s3b0pyCnpBM3B5cS0yZHNMXyY/Uj43Vm4tWiFaTUxWKzx8ejlQ
eEZCXzlYellPWEpJKkVvam48cmc7X1lCdShFams2SnxpPAp6O1JrYVk3JUowcWc8eXMtSDEyNiZJ
OWJvY2ZZN3I/U1V9PFo4ZWIqMnJVfksjM1AxZkI7SktIZnY3Q3dOJD10MTsKemFDPSFrRiledzk9
VlhBQzkzYkhqZWh2K0xIayk8QUg5NXBORyg1M3FXSSpWLSRIXzZGe0Y8NXxUKzwwfGp0UEklCno4
SVh6ellldlJUPVdlTVdKWHAhZElPI3ROMUdJPCZucEw1JDtCWVQ7d2hMVTdnMSo5TnBvfDZ6Nkx+
NCtVcnFnZgp6PjlYPW0+bSM0JlAyTWdIUG5yXjNLZSRmXyt8Tkx5THttbl9weHJ4YUlwSWw+MlV6
Y29zdSZGcVhvNDZgQUVVV3AKenZ+KztBRG5AZ3xYbEB3STRXcWRNKyNNS2dEVUclcU1fYmFjelF0
JjY3fGppJXhuVlJuZlFRPmcrc1VLdDxrNUVXCnpYZ2hoZG95XkVJU3s5QyRnYDtJNSo9MXErbGo/
MjsyOTY1UVNeeVN+KE8kLUFGSnJXcUcxfCkqP1BaTFhnYCtkcQpocXgxQiVvfkxpelUkS2pDbyFU
cXlYfjU7WDQ0JHJqRjYqMlVuZ0NISjBiMms3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1p
bWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIw
YWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2Vz
L29wdGltaXplLWNvbnRyYXN0LWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAzMmZjZmE3YTYxMzk1MTkzYTJiZmE5MjNjMmRiYjE4YjFmZTg3ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250
cmFzdC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPiAKKzxzdHls
ZT4gCisJaW1nIHsKKwkJZGlzcGxheTogYmxvY2s7CisJCXBvc2l0aW9uOiBmaXhlZDsKKwkJbGVm
dDogMHB4OworCQl0b3A6IDBweDsKKwkJcmlnaHQ6IDBweDsKKwkJYm90dG9tOiAwcHg7CisJCWJv
cmRlcjogbm9uZTsKKwkJd2lkdGg6IDEwMHB4OworCQloZWlnaHQ6IDEwMHB4OworCQltYXJnaW46
IDBweDsKKwkJcGFkZGluZzogMHB4OworCQlpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1p
emUtY29udHJhc3Q7CisJfQorPC9zdHlsZT4gCis8Ym9keT4gCisgICAgPCEtLSBUaGUgcmVzdWx0
aW5nIGltYWdlIHNob3VsZCBiZSAxMDB4MTAwLCBjb25zaXN0aW5nIG9mIDQgNTB4NTAgYmxvY2tz
IG9mIHNvbGlkIGNvbG9yLCB3aXRoIG5vIGJsdXJyaW5nIG9mIGVkZ2VzIC0tPgorCTxpbWFnZSBz
dHlsZT0iIiBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBQUlBQUFBQ0NBWUFBQUJ5dGcwa0FBQUFGRWxFUVZRSUhXUDR6OER3SHd5Qk5KRE44QjhBUU5F
Ryt0NUlrMmtBQUFBQVNVVk9SSzVDWUlJPSI+PC9pbWc+IAorPC9ib2R5PiAKKzxzY3JpcHQ+IAor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQKaW5kZXggNjdiN2UwZTEzNWI5Yzc0MjE1Mzc5YThiM2JhMmQ3N2NiNmYz
NTliMy4uYTc3MDU0YzJlODhkMTc5NTUwZTkyMmU1NmEzOTQ0NGI1OTRkY2UxZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTQzLDYgKzQzLDcgQEAgZm9udC1zdHlsZTog
bm9ybWFsOwogZm9udC12YXJpYW50OiBub3JtYWw7CiBmb250LXdlaWdodDogbm9ybWFsOwogaGVp
Z2h0OiA1NzZweDsKK2ltYWdlLXJlbmRlcmluZzogYXV0bzsKIGxlZnQ6IGF1dG87CiBsZXR0ZXIt
c3BhY2luZzogbm9ybWFsOwogbGluZS1oZWlnaHQ6IG5vcm1hbDsKQEAgLTIwMCw3ICsyMDEsNiBA
QCBjb2xvci1yZW5kZXJpbmc6IGF1dG87CiBmaWxsOiAjMDAwMDAwOwogZmlsbC1vcGFjaXR5OiAx
OwogZmlsbC1ydWxlOiBub256ZXJvOwotaW1hZ2UtcmVuZGVyaW5nOiBhdXRvOwogbWFya2VyLWVu
ZDogbm9uZTsKIG1hcmtlci1taWQ6IG5vbmU7CiBtYXJrZXItc3RhcnQ6IG5vbmU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxl
LXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4
dAppbmRleCA0YTM0ZGIyYzZlMDBmMjU5MzY0ZmU0ZDM0ZmQ2ZjlhMzFhNzcxZTA1Li5jYjc0YzI5
Nzk2ZTRlY2Q5NjYxMmM0NGZjNTNkMmUxNTRkMDQ3OWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVy
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTQyLDYg
KzQyLDcgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlz
cGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZvbnQtdmFyaWFudDogbm9ybWFsCiAgICAgZm9u
dC13ZWlnaHQ6IG5vcm1hbAogICAgIGhlaWdodDogMTAwcHgKKyAgICBpbWFnZS1yZW5kZXJpbmc6
IGF1dG8KICAgICBsZWZ0OiBhdXRvCiAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbAogICAgIGxp
bmUtaGVpZ2h0OiBub3JtYWwKQEAgLTE5MCw3ICsxOTEsNiBAQCBDb21wdXRlZCBzdHlsZSBvZiBh
biBlbGVtZW50IHdob3NlIHBhcmVudCdzICdkaXNwbGF5JyB2YWx1ZSBpcyAnbm9uZSc6CiAgICAg
ZmlsbDogIzAwMDAwMAogICAgIGZpbGwtb3BhY2l0eTogMQogICAgIGZpbGwtcnVsZTogbm9uemVy
bwotICAgIGltYWdlLXJlbmRlcmluZzogYXV0bwogICAgIG1hcmtlci1lbmQ6IG5vbmUKICAgICBt
YXJrZXItbWlkOiBub25lCiAgICAgbWFya2VyLXN0YXJ0OiBub25lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVu
ZGVyZXItZXhwZWN0ZWQudHh0CmluZGV4IDg0M2UwOWI5YzZjOWFlYWVlNGU4MzE1NjA1YTc4NDVm
NDFmYTU0ZmYuLjU1Mzk2ODNkMDI5NGJmYzVjMDlkYTQ4MjIyYWQ4MzdiYjQxMjUxODIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0
eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CkBAIC00Miw2ICs0Miw3IEBAIENvbXB1
dGVkIHN0eWxlIG9mIGFuIGVsZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlz
ICdub25lJzoKICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbAogICAgIGZvbnQtd2VpZ2h0OiBub3Jt
YWwKICAgICBoZWlnaHQ6IDEwMHB4CisgICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbGVm
dDogYXV0bwogICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwKICAgICBsaW5lLWhlaWdodDogbm9y
bWFsCkBAIC0xOTksNyArMjAwLDYgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9z
ZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZpbGw6ICMwMDAwMDAK
ICAgICBmaWxsLW9wYWNpdHk6IDEKICAgICBmaWxsLXJ1bGU6IG5vbnplcm8KLSAgICBpbWFnZS1y
ZW5kZXJpbmc6IGF1dG8KICAgICBtYXJrZXItZW5kOiBub25lCiAgICAgbWFya2VyLW1pZDogbm9u
ZQogICAgIG1hcmtlci1zdGFydDogbm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJl
bmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2dl
dENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50
eHQKaW5kZXggODQzZTA5YjljNmM5YWVhZWU0ZTgzMTU2MDVhNzg0NWY0MWZhNTRmZi4uNTUzOTY4
M2QwMjk0YmZjNWMwOWRhNDgyMjJhZDgzN2JiNDEyNTE4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVy
ZXItZXhwZWN0ZWQudHh0CkBAIC00Miw2ICs0Miw3IEBAIENvbXB1dGVkIHN0eWxlIG9mIGFuIGVs
ZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdub25lJzoKICAgICBmb250
LXZhcmlhbnQ6IG5vcm1hbAogICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwKICAgICBoZWlnaHQ6IDEw
MHB4CisgICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbGVmdDogYXV0bwogICAgIGxldHRl
ci1zcGFjaW5nOiBub3JtYWwKICAgICBsaW5lLWhlaWdodDogbm9ybWFsCkBAIC0xOTksNyArMjAw
LDYgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxh
eScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZpbGw6ICMwMDAwMDAKICAgICBmaWxsLW9wYWNpdHk6
IDEKICAgICBmaWxsLXJ1bGU6IG5vbnplcm8KLSAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG8KICAg
ICBtYXJrZXItZW5kOiBub25lCiAgICAgbWFya2VyLW1pZDogbm9uZQogICAgIG1hcmtlci1zdGFy
dDogbm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxl
LWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHls
ZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggNmY2NmNmMGEyY2RlZDBlZjkzODcyZjllYWJiMjFl
ZjlkOTFkN2Q0ZS4uN2QwZjUyMTFjZjgxMjMwNzcyMjkyZWU4OWZhYjE2NzE3NmE2ZjhhMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMt
ZXhwZWN0ZWQudHh0CkBAIC04NCw2ICs4NCw4IEBAIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUoZm9udC13ZWlnaHQpIDogbm9ybWFsCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KGZvbnQtd2VpZ2h0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiByZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKGhlaWdodCkgOiAwcHgKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoaGVpZ2h0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKGltYWdlLXJlbmRlcmluZykgOiBhdXRvCityZWN0OiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKGltYWdlLXJlbmRlcmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZh
bHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsZWZ0KSA6IGF1dG8KIHJlY3Q6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobGVmdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
XQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsZXR0ZXItc3BhY2luZykgOiBub3JtYWwK
QEAgLTM5OCw4ICs0MDAsNiBAQCByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZpbGwtb3Bh
Y2l0eSkgOiAxCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZpbGwtb3BhY2l0eSkg
OiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShmaWxsLXJ1bGUpIDogbm9uemVybwogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShm
aWxsLXJ1bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KLXJlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IGF1dG8KLXJlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1lbmQpIDogbm9uZQogcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJrZXItZW5kKSA6IFtvYmplY3QgQ1NTUHJpbWl0
aXZlVmFsdWVdCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1taWQpIDogbm9u
ZQpAQCAtNTMwLDYgKzUzMCw4IEBAIGc6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZm9udC13ZWln
aHQpIDogbm9ybWFsCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZvbnQtd2VpZ2h0KSA6
IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGhl
aWdodCkgOiAwcHgKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoaGVpZ2h0KSA6IFtvYmpl
Y3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGltYWdlLXJl
bmRlcmluZykgOiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGltYWdlLXJlbmRl
cmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZShsZWZ0KSA6IGF1dG8KIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobGVmdCkgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsZXR0
ZXItc3BhY2luZykgOiBub3JtYWwKQEAgLTg0NCw4ICs4NDYsNiBAQCBnOiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKGZpbGwtb3BhY2l0eSkgOiAxCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KGZpbGwtb3BhY2l0eSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZShmaWxsLXJ1bGUpIDogbm9uemVybwogZzogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZShmaWxsLXJ1bGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KLWc6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IGF1dG8KLWc6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUoaW1hZ2UtcmVuZGVyaW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFs
dWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1lbmQpIDogbm9uZQogZzogc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJrZXItZW5kKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG1hcmtlci1taWQpIDogbm9uZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDZmMDllZmI4NWNkMmE0NTVhMTFjM2VmNTU1Nzg1Mzg2ODY0NDY1YTYuLjBhOGRl
M2VmYTVmZDc1ZGI4NzMyZWI2NzgyYTAyNzFlMGViODcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1NSBAQAorMjAxMS0wNS0xMSAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGlt
cGxlbWVudCBpbWFnZS1yZW5kZXJpbmc6IG9wdGltaXplLWNvbnRyYXN0ICh3aXRoIGEgdmVuZG9y
IHByZWZpeCkgYXMgZGVmaW5lZCBpbiBDU1MzIGltYWdlIHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY2MjcKKworICAgICAgICBUZXN0czog
Y3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwKKyAgICAgICAgICAgICAg
IGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWltYWdlLmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Bh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAg
ICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmluZyk6CisgICAgICAg
ICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0
eSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1NW
R0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFNWR1Byb3BlcnR5Q1NTVmFsdWUpOgorICAgICAg
ICAqIGNzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9TVkdDU1NTdHls
ZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
U1ZHUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluOgorICAg
ICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVh
bGl0eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbWFnZVJlbmRlcmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0SW1hZ2VSZW5kZXJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxJbWFnZVJlbmRlcmluZyk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFn
czo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6c2V0Qml0
RGVmYXVsdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d3JpdGVTdHlsZSk6CisKIDIwMTEtMDUtMTQgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMDRhYThlMzc1NjUwNDM4ODE3MDBhYTk1M2I4YzMzMGI2NmNhOTMwNi4uNjQ3ODYyOWJmMzNi
ZThkZDgzMDI0NTM3MmFmMzQ3OWZmODE2NThhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTk1LDYgKzk5NSw3IEBACiAJCTQ5
MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBE
OTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQz
MDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdl
YktpdEJyaWRnZS5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3Vy
Y2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0OTI5MUU0QjEzNDE3
MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1h
Z2VSZW5kZXJpbmdNb2RlLmggKi87IH07CiAJCTQ5M0U1RTA5MTJENjQyMDUwMDAyMDA4MSAvKiBQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjMxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNwcCAqLzsgfTsKIAkJNDk0ODRGQzIxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGll
bnQuaCAqLzsgfTsKQEAgLTc0ODAsNiArNzQ4MSw3IEBACiAJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVz
b3VyY2VMb2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJj
ZUxvYWRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MjkxRTRBMTM0MTcy
QzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW1hZ2VSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1DQUxheWVyQ2xpZW50
Lmg7IHBhdGggPSBjYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDk0ODRGQjMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhbnZhc0dyYWRpZW50LmNw
cDsgcGF0aCA9IGNhbnZhcy9DYW52YXNHcmFkaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNHcmFkaWVudC5oOyBwYXRoID0g
Y2FudmFzL0NhbnZhc0dyYWRpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzY5Myw2ICsxNzY5NSw3IEBACiAJCQkJQjJBMTBCOTEwQjM4MThCRDAwMDk5QUE0IC8qIEltYWdl
QnVmZmVyLmggKi8sCiAJCQkJMjJCRDlGN0QxMzUzNjI1QzAwOUJEMTAyIC8qIEltYWdlQnVmZmVy
RGF0YS5oICovLAogCQkJCUJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVy
LmggKi8sCisJCQkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9k
ZS5oICovLAogCQkJCUIyNzUzNTQzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oICov
LAogCQkJCUIyNzUzNTQ0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oICovLAogCQkJCUU0
NjJBNEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhhc2guaCAqLywKQEAgLTIxMTcyLDYg
KzIxMTc1LDcgQEAKIAkJCQlGNTVCM0RDMjEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFn
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RjQ0QTgwQjlFMzI0RTAwQTlEMDgxIC8q
IEltYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3
NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTcx
MEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEIz
NDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291cmNlQ0cuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNkZFMTE4MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCmluZGV4IDA4NjI2ZGRmZDg1YWQ5YmVjZjZmNGI0NjE1MjE2MjJkZTk4YTNl
ZjUuLjEzZDYzNDAxOGUxNWEyNTQ1M2YwY2Q5M2M4NDU0MDc3MTExZDczNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC05
OSw2ICs5OSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlGb250VmFyaWFudCwKICAgICBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsCiAg
ICAgQ1NTUHJvcGVydHlIZWlnaHQsCisgICAgQ1NTUHJvcGVydHlJbWFnZVJlbmRlcmluZywKICAg
ICBDU1NQcm9wZXJ0eUxlZnQsCiAgICAgQ1NTUHJvcGVydHlMZXR0ZXJTcGFjaW5nLAogICAgIENT
U1Byb3BlcnR5TGluZUhlaWdodCwKQEAgLTI2Myw3ICsyNjQsNiBAQCBzdGF0aWMgY29uc3QgaW50
IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5RmlsbCwKICAgICBDU1NQ
cm9wZXJ0eUZpbGxPcGFjaXR5LAogICAgIENTU1Byb3BlcnR5RmlsbFJ1bGUsCi0gICAgQ1NTUHJv
cGVydHlJbWFnZVJlbmRlcmluZywKICAgICBDU1NQcm9wZXJ0eU1hcmtlckVuZCwKICAgICBDU1NQ
cm9wZXJ0eU1hcmtlck1pZCwKICAgICBDU1NQcm9wZXJ0eU1hcmtlclN0YXJ0LApAQCAtMTE1Niw2
ICsxMTU2LDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgICAgIGlmIChzdHls
ZS0+Ym9yZGVyRml0KCkgPT0gQm9yZGVyRml0Qm9yZGVyKQogICAgICAgICAgICAgICAgIHJldHVy
biBwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVCb3Jk
ZXIpOwogICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZUxpbmVzKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdl
UmVuZGVyaW5nOgorICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
c3R5bGUtPmltYWdlUmVuZGVyaW5nKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGVmdDoK
ICAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBD
U1NQcm9wZXJ0eUxlZnQsIHByaW1pdGl2ZVZhbHVlQ2FjaGUpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5TGV0dGVyU3BhY2luZzoKQEAgLTE3ODIsNyArMTc4NCw2IEBAIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShp
bnQgcHJvcGVyCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5RmlsbE9wYWNpdHk6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsUnVsZToK
LSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5TWFya2VyOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyRW5kOgogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyTWlkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApp
bmRleCAxOTcxMWQyYTc0NWRhNmNiODY5NWI1YjMzYjZmM2JhZjFlODBlZDBmLi4yYjc0NjI3N2Y4
YzcyMjYxZWRhYTVkODUxOTBlODBhOTU4NGIyZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cApAQCAtMTcxNiw3ICsxNzE2LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgKGlkID49IENTU1ZhbHVlVmlzaWJs
ZXBhaW50ZWQgJiYgaWQgPD0gQ1NTVmFsdWVTdHJva2UpKQogICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKLQorICAgIGNhc2UgQ1NTUHJvcGVydHlJbWFn
ZVJlbmRlcmluZzogLy8gYXV0byB8IG9wdGltaXplQ29udHJhc3QKKyAgICAgICAgaWYgKGlkID09
IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZVdlYmtpdE9wdGltaXplQ29udHJhc3QpCisg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIC8v
IEVuZCBvZiBDU1MzIHByb3BlcnRpZXMKIAogICAgIC8vIEFwcGxlIHNwZWNpZmljIHByb3BlcnRp
ZXMuICBUaGVzZSB3aWxsIG5ldmVyIGJlIHN0YW5kYXJkaXplZCBhbmQgYXJlIHB1cmVseSB0bwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXgg
ZGQ2ZmVlMDA2N2JiNGZkOTVhYmU1NzljMDFjMjg2ODkxYTczOWQyYS4uYjZkMGY3OTk2ZjA1NGEw
NWQ0ZTEyOTliMzRjZGRlNTUxYzEwM2YwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0yOTQ5LDMwICsyOTQ5LDM1IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFSW1hZ2VSZW5k
ZXJpbmcgZSkKICAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2gg
KGUpIHsKLSAgICAgICAgY2FzZSBJUl9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElSX09QVElN
SVpFU1BFRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNw
ZWVkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSVJfT1BUSU1JWkVRVUFMSVRZ
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5Owot
ICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZ0F1dG86CisgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVPcHRpbWl6ZXNwZWVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlUmVuZGVy
aW5nT3B0aW1pemVRdWFsaXR5OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRp
bWl6ZXF1YWxpdHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRp
bWl6ZUNvbnRyYXN0OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRPcHRp
bWl6ZUNvbnRyYXN0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJpbmcoKSBjb25zdAog
ewogICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0
bzoKLSAgICAgICAgICAgIHJldHVybiBJUl9BVVRPOwotICAgICAgICBjYXNlIENTU1ZhbHVlT3B0
aW1pemVzcGVlZDoKLSAgICAgICAgICAgIHJldHVybiBJUl9PUFRJTUlaRVNQRUVEOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5OgotICAgICAgICAgICAgcmV0dXJuIElSX09Q
VElNSVpFUVVBTElUWTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIElSX0FVVE87CisgICAgY2FzZSBDU1NWYWx1
ZUF1dG86CisgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmluZ0F1dG87CisgICAgY2FzZSBDU1NW
YWx1ZU9wdGltaXplc3BlZWQ6CisgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmluZ09wdGltaXpl
U3BlZWQ7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToKKyAgICAgICAgcmV0dXJu
IEltYWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5OworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRP
cHRpbWl6ZUNvbnRyYXN0OgorICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNv
bnRyYXN0OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCBlYTU0YzEyNzNmNzI1MmNkZDYwNzcwZTFiMmY1
MGEwMWQ2MTUyNDA5Li45ZmE2MmUxM2YyMTM1YzdhY2VjYTdiZWJjMjEzMTMzMjlhMjJiMTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtOTMsNiArOTMsNyBAQCBl
bXB0eS1jZWxscwogZmxvYXQKIGZvbnQtc3RyZXRjaAogaGVpZ2h0CitpbWFnZS1yZW5kZXJpbmcK
IGxlZnQKIGxldHRlci1zcGFjaW5nCiBsaXN0LXN0eWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKaW5kZXggZGQ2ZjE0MTViYmUxN2RmNjMzOTk3M2Q3OWZjYjlkZGE3NzIw
ZjlmOC4uMDUwYjNmMWJmYjJmYjA5NWI2NWU5YzhlM2VjNjZiMGQyYmUxNmE1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDY0Niw2ICs0NjQ2LDExIEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1
ZSkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwob3V0bGluZU9mZnNldCwgT3V0
bGluZU9mZnNldCkKICAgICAgICAgbV9zdHlsZS0+c2V0T3V0bGluZU9mZnNldChwcmltaXRpdmVW
YWx1ZS0+Y29tcHV0ZUxlbmd0aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21G
YWN0b3IpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQ1NTUHJvcGVydHlJbWFnZVJlbmRl
cmluZzoKKyAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgbV9zdHlsZS0+c2V0SW1hZ2VSZW5kZXJpbmcoKnByaW1pdGl2ZVZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVyaW5nOiB7CiAgICAg
ICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBtX3N0eWxlLT5mb250RGVzY3Jp
cHRpb24oKTsKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCmluZGV4IDZkYWMwNmZjY2JjOTJiYjk4M2EzNDc0NzA1ZDhhNDM5NjhjMDFm
NWMuLmQ2NzBhNjJmNGYyMGRkNWE3YTJkMmFjMDY2OWExYTdlMDY1YzkyZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDMsNCArODAzLDggQEAgZ2x5cGhzCiBp
bmxpbmUtYm94CiByZXBsYWNlZAogCi0KKyMgaW1hZ2UtcmVuZGVyaW5nCisjYXV0bworI29wdGlt
aXplU3BlZWQKK29wdGltaXplUXVhbGl0eQorLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAppbmRleCA1ZGZlMDNlMDMwMTNhZDVlMWU3ZjFkZWIxZGJiZDkzYjIyNGVjNjc3Li4wYzJh
YWZmOTk2Nzg1NmMwNDk1MWQyZWVmNWEzMTMyZDczNzk5YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTAz
LDggKzEwMyw2IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvCiAgICAgICAgICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+ZmlsbFJ1bGUoKSk7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlDb2xvclJlbmRlcmluZzoKICAgICAgICAgICAgIHJldHVybiBDU1NQ
cmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5jb2xvclJlbmRlcmluZygpKTsKLSAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOgotICAgICAgICAgICAgcmV0dXJuIENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5bGUtPmltYWdlUmVuZGVyaW5nKCkpOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAgICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+c2hhcGVSZW5kZXJpbmcoKSk7CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VMaW5lY2FwOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA3YzE1N2E4YzczNzg3OGRhOGRhNmM0ZTBlN2Rk
ZGUwMDg3NDBmNDY0Li4zOGFkM2I2YTAxMGYwMGQ0ODg2ZTZmZTRmZWM0OWY4YzcxNTgzM2Q1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjMsNyArMjMs
NyBAQCBmaWxsCiBmaWxsLW9wYWNpdHkKIGZpbGwtcnVsZQogI2ZvbnQtc2l6ZS1hZGp1c3QKLWlt
YWdlLXJlbmRlcmluZworI2ltYWdlLXJlbmRlcmluZwogbWFya2VyCiBtYXJrZXItZW5kCiBtYXJr
ZXItbWlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXgg
NmIwOTQyNmVjMGQ3NzBmNGNlNDUwZDcxNmY2NTdhN2E5NWM4ZGZlZS4uOGNiNmI3ZThiMTY5ZjBi
NTUzYzc0MDM2NmIzMzFlYzcwZWIyNTlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtMjE0LDEzICsyMTQsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAg
ICAgICAgc3Znc3R5bGUtPnNldEpvaW5TdHlsZSgqcHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVy
aW5nOgotICAgICAgICB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChp
bWFnZVJlbmRlcmluZywgSW1hZ2VSZW5kZXJpbmcpCi0gICAgICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUpCi0gICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEltYWdlUmVuZGVyaW5nKCpwcmlt
aXRpdmVWYWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5U2hhcGVSZW5kZXJpbmc6CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0FORF9JTklUSUFMKHNoYXBlUmVuZGVyaW5nLCBTaGFwZVJlbmRlcmluZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggYTJjOWY4Mzc3M2E0
ZDY3NDI0MTIxNjBmNjE5OWRiOTA3OTY3YzVjNC4uNDE3YThkNWU2MjdjZjA2YTUzODMyMDMyZjQ4
MWY5YmE1ZTM4ZjhiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVl
S2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMu
aW4KQEAgLTE5Nyw3ICsxOTcsNyBAQCBsaW5lYXJSR0IKICMgQ1NTX1BST1BfQ09MT1JfUkVOREVS
SU5HCiAjYXV0bwogI29wdGltaXplU3BlZWQKLW9wdGltaXplUXVhbGl0eQorI29wdGltaXplUXVh
bGl0eQogCiAjIyBDU1NfUFJPUF9GSUxMCiAjY3VycmVudENvbG9yCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGQ0MTY1NjIzNzJhYzk0ZjA1NDA1YzhiNjkw
MDVlYjk2NTM2Zjc2NmMuLjVmM2Q2MzMwMTA2NzUwYmE2ZDZjZGI4YTZjMzRhMzhmOGU4YWY5MTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0yNjIsNyAr
MjYyLDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogICAgICAgICAoKml0KS0+
Y2FudmFzUmVzaXplZCh0aGlzKTsKIH0KIAotdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQordm9pZCBIVE1MQ2Fu
dmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICAvLyBDbGVhciB0aGUgZGlydHkg
cmVjdAogICAgIG1fZGlydHlSZWN0ID0gRmxvYXRSZWN0KCk7CkBAIC0yODAsMTEgKzI4MCwxMSBA
QCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIHIpCiAgICAgICAgIEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlciA9IGJ1
ZmZlcigpOwogICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIGlmIChtX3By
ZXNlbnRlZEltYWdlKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNl
bnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByKTsKKyAgICAgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURl
dmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAg
ICAgICAgICAgIGVsc2UgaWYgKGltYWdlQnVmZmVyLT5kcmF3c1VzaW5nQ29weSgpKQotICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShjb3BpZWRJbWFnZSgpLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCByKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UoY29waWVkSW1h
Z2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93
UXVhbGl0eVNjYWxlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHIpOwor
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29s
b3JTcGFjZURldmljZVJHQiwgciwgQ29tcG9zaXRlU291cmNlT3ZlciwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5oCmluZGV4IDk3ZDU1Y2M0OTgxNjI2YzU1MmIxMDg1Y2U5YzM4ZDQ5YTc2NjI2NzkuLjlk
Yjk2NzM5MTM2OWJkNTIwMDNlNjQ1MDc0YThmNjc2NzljNjZmMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIC8v
IFVzZWQgZm9yIHJlbmRlcmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmKTsK
IAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOworICAg
IHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0KiBkcmF3aW5nQ29u
dGV4dCgpIGNvbnN0OwogICAgIEdyYXBoaWNzQ29udGV4dCogZXhpc3RpbmdEcmF3aW5nQ29udGV4
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VSZW5kZXJpbmdNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVJlbmRlcmluZ01vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTQ2MmZiYTU4ZTAyMzY1NWFkODU1MTdh
NDljMmRlNjNhMjI0NWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEltYWdlUmVuZGVyaW5nTW9kZV9oCisjZGVmaW5lIEltYWdlUmVuZGVyaW5nTW9kZV9o
CisgICAgCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gSW1hZ2VSZW5kZXJpbmdNb2RlIHsg
QXV0b0ltYWdlUmVuZGVyaW5nLCBPcHRpbWl6ZUNvbnRyYXN0IH07CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKyAgICAKKyNlbmRpZiAvLyBJbWFnZVJlbmRlcmluZ01vZGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggYzAz
YmEzYmNkZTBlZjEwMGE1OWE1YzYzNGVkMjY1YTA4MTU5ODEzYi4uYjI1MjE3ZTk2YWI2ZTgwNTFk
ZjhmZGRhY2IwYzc5MDBmZGE4NWU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0xMzksNiArMTM5LDkgQEAgYm9vbCBJbWFn
ZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIFIKICAgICBpZiAoIWltYWdlIHx8ICFpbWFnZS0+aXNCaXRtYXBJbWFnZSgp
IHx8IGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgaWYgKG9iamVjdC0+c3R5bGUoKS0+aW1hZ2VSZW5kZXJpbmcoKSA9PSBJbWFnZVJlbmRl
cmluZ09wdGltaXplQ29udHJhc3QpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAogICAgIC8v
IE1ha2Ugc3VyZSB0byB1c2UgdGhlIHVuem9vbWVkIGltYWdlIHNpemUsIHNpbmNlIGlmIGEgZnVs
bCBwYWdlIHpvb20gaXMgaW4gZWZmZWN0LCB0aGUgaW1hZ2UKICAgICAvLyBpcyBhY3R1YWxseSBi
ZWluZyBzY2FsZWQuCiAgICAgSW50U2l6ZSBpbWFnZVNpemUoaW1hZ2UtPndpZHRoKCksIGltYWdl
LT5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SFRNTENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZh
cy5jcHAKaW5kZXggZGUyYTJjMTU2ZjFkODNjMjg5MmU5MjJhZmRmNzYwZWUwNjA2N2UxZi4uODIx
YzViMDA0NjNkNWMwMTUwYzk4YTNkN2VhNzkwYzcwNzEyMWQxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcApAQCAtNTgsNyArNTgsOCBAQCB2b2lk
IFJlbmRlckhUTUxDYW52YXM6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGlu
dCB0eCwgaW50IHR5KQogewogICAgIEludFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7CiAg
ICAgcmVjdC5tb3ZlKHR4LCB0eSk7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQq
Pihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwgcmVjdCk7CisgICAgYm9vbCB1c2VM
b3dRdWFsaXR5U2NhbGUgPSBzdHlsZSgpLT5pbWFnZVJlbmRlcmluZygpID09IEltYWdlUmVuZGVy
aW5nT3B0aW1pemVDb250cmFzdDsKKyAgICBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+
KG5vZGUoKSktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCB1c2VMb3dRdWFsaXR5U2Nh
bGUpOwogfQogCiB2b2lkIFJlbmRlckhUTUxDYW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDdk
ODY2M2E5ODc4ZWM1NzI2Yzc2NjU5NmQ4OWU3YWQ3MThiNmMzOGEuLjRlYThiMjkxY2IwN2VhZDQw
ZjJmODZkNjE3MTcyMGJmNDUwNzFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNTYwLDcgKzU2MCw4IEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBj
aGFuZ2VkQ29uCiAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RmlsbENvbG9yICE9
IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEZpbGxDb2xvcgogICAgICAgICB8fCByYXJl
SW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0
YS0+dGV4dFN0cm9rZUNvbG9yCiAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1w
aGFzaXNDb2xvciAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0NvbG9y
Ci0gICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNGaWxsICE9IG90aGVy
LT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzRmlsbCkKKyAgICAgICAgfHwgcmFyZUlu
aGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0ZpbGwgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRh
LT50ZXh0RW1waGFzaXNGaWxsCisgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdl
UmVuZGVyaW5nICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRlcmluZykK
ICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQ7CiAKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IDIzZjU1MzVmMTI4NTVmMmJiMDE1ZmIyOTZjNjA5MDIyOWNkNmRhYTYu
Ljc0M2Y5ZmU1OTVlNDI4OTQ1OGViYmYwMTM4NTViNzM3YmEzODY1NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03ODMsNiArNzgzLDggQEAg
cHVibGljOgogICAgIGJvb2wgaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0
dXJuIHdyaXRpbmdNb2RlKCkgPT0gTGVmdFRvUmlnaHRXcml0aW5nTW9kZSB8fCB3cml0aW5nTW9k
ZSgpID09IEJvdHRvbVRvVG9wV3JpdGluZ01vZGU7IH0KICAgICBib29sIGlzRmxpcHBlZEJsb2Nr
c1dyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gd3JpdGluZ01vZGUoKSA9PSBSaWdodFRvTGVm
dFdyaXRpbmdNb2RlIHx8IHdyaXRpbmdNb2RlKCkgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZTsg
fQogCisgICAgRUltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8RUltYWdlUmVuZGVyaW5nPihyYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJl
bmRlcmluZyk7IH0KKyAgICAKICAgICBFU3BlYWsgc3BlYWsoKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDxFU3BlYWs+KHJhcmVJbmhlcml0ZWREYXRhLT5zcGVhayk7IH0KICAgICAgICAgCiAvLyBhdHRy
aWJ1dGUgc2V0dGVyIG1ldGhvZHMKQEAgLTkzNCw2ICs5MzYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRMaW5lSGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoaW5oZXJpdGVkLCBsaW5lX2hlaWdo
dCwgdikgfQogICAgIHZvaWQgc2V0Wm9vbShmbG9hdCBmKSB7IFNFVF9WQVIodmlzdWFsLCBtX3pv
b20sIGYpOyBzZXRFZmZlY3RpdmVab29tKGVmZmVjdGl2ZVpvb20oKSAqIHpvb20oKSk7IH0KICAg
ICB2b2lkIHNldEVmZmVjdGl2ZVpvb20oZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWRE
YXRhLCBtX2VmZmVjdGl2ZVpvb20sIGYpIH0KKyAgICB2b2lkIHNldEltYWdlUmVuZGVyaW5nKEVJ
bWFnZVJlbmRlcmluZyB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZW5k
ZXJpbmcsIHYpIH0KIAogICAgIHZvaWQgc2V0V2hpdGVTcGFjZShFV2hpdGVTcGFjZSB2KSB7IGlu
aGVyaXRlZF9mbGFncy5fd2hpdGVfc3BhY2UgPSB2OyB9CiAKQEAgLTEzMTcsNiArMTMyMCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWFsVGV4dEVtcGhh
c2lzQ3VzdG9tTWFyaygpIHsgcmV0dXJuIG51bGxBdG9tOyB9CiAgICAgc3RhdGljIFRleHRFbXBo
YXNpc1Bvc2l0aW9uIGluaXRpYWxUZXh0RW1waGFzaXNQb3NpdGlvbigpIHsgcmV0dXJuIFRleHRF
bXBoYXNpc1Bvc2l0aW9uT3ZlcjsgfQogICAgIHN0YXRpYyBMaW5lQm94Q29udGFpbiBpbml0aWFs
TGluZUJveENvbnRhaW4oKSB7IHJldHVybiBMaW5lQm94Q29udGFpbkJsb2NrIHwgTGluZUJveENv
bnRhaW5JbmxpbmUgfCBMaW5lQm94Q29udGFpblJlcGxhY2VkOyB9CisgICAgc3RhdGljIEVJbWFn
ZVJlbmRlcmluZyBpbml0aWFsSW1hZ2VSZW5kZXJpbmcoKSB7IHJldHVybiBJbWFnZVJlbmRlcmlu
Z0F1dG87IH0KIAogICAgIC8vIEtlZXAgdGhlc2UgYXQgdGhlIGVuZC4KICAgICBzdGF0aWMgTGlu
ZUNsYW1wVmFsdWUgaW5pdGlhbExpbmVDbGFtcCgpIHsgcmV0dXJuIExpbmVDbGFtcFZhbHVlKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgKaW5kZXggYzU0ZWNjZmE4MjZkYTliZDc1Mzg4NGJiMmNhY2UwMjI5OWJlODQw
Yi4uNDFkOGY2NTBhNmE4ODQ1MmE4YzlkYTY3OWJiZWRiZjdlMTdiZTUwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgK
QEAgLTQyNiw2ICs0MjYsOCBAQCBlbnVtIFRleHRFbXBoYXNpc01hcmsgeyBUZXh0RW1waGFzaXNN
YXJrTm9uZSwgVGV4dEVtcGhhc2lzTWFya0F1dG8sIFRleHRFbXBoYXNpcwogCiBlbnVtIFRleHRF
bXBoYXNpc1Bvc2l0aW9uIHsgVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyLCBUZXh0RW1waGFzaXNQ
b3NpdGlvblVuZGVyIH07CiAKK2VudW0gRUltYWdlUmVuZGVyaW5nIHsgSW1hZ2VSZW5kZXJpbmdB
dXRvLCBJbWFnZVJlbmRlcmluZ09wdGltaXplU3BlZWQsIEltYWdlUmVuZGVyaW5nT3B0aW1pemVR
dWFsaXR5LCBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3QgfTsKKyAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCmluZGV4
IGIyYmU0OGU4MWYzOTFjN2Q0ZWE3NmQwNWZmOTBhYjhhZTkwNDg4YTkuLjYwNDlmNzRkY2U1NGNi
NDZkYzRhZWYyNDgzY2NjM2RiMzFiNWQzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcApAQCAtMjAzLDcgKzIwMyw2IEBAIFN0eWxl
RGlmZmVyZW5jZSBTVkdSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBTVkdSZW5kZXJTdHlsZSogb3Ro
ZXIpIGNvbnN0CiAKICAgICAvLyBDaGFuZ2VzIG9mIHRoZXNlIGZsYWdzIG9ubHkgY2F1c2UgcmVw
YWludHMuCiAgICAgaWYgKHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVuZGVyaW5nICE9IG90
aGVyLT5zdmdfaW5oZXJpdGVkX2ZsYWdzLl9jb2xvclJlbmRlcmluZwotICAgICAgICB8fCBzdmdf
aW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRlcmluZyAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9m
bGFncy5faW1hZ2VSZW5kZXJpbmcKICAgICAgICAgfHwgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hh
cGVSZW5kZXJpbmcgIT0gb3RoZXItPnN2Z19pbmhlcml0ZWRfZmxhZ3MuX3NoYXBlUmVuZGVyaW5n
CiAgICAgICAgIHx8IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NsaXBSdWxlICE9IG90aGVyLT5zdmdf
aW5oZXJpdGVkX2ZsYWdzLl9jbGlwUnVsZQogICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2ZsYWdz
Ll9maWxsUnVsZSAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKaW5kZXggODhh
NDhkZjVhMzZmODJiMmQyYmEwZDEzMTg1YzI0OWJjMWE1NzRiYy4uMGZlNGE4MGNkZmNkNTIxZjQ3
MzdkMzdmYzJmMWM1YjVjMzMyZTlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKQEAgLTYzLDcgKzYzLDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBFQ29sb3JJbnRlcnBvbGF0aW9uIGluaXRpYWxDb2xvckludGVycG9sYXRpb25GaWx0ZXJz
KCkgeyByZXR1cm4gQ0lfTElORUFSUkdCOyB9CiAgICAgc3RhdGljIEVDb2xvclJlbmRlcmluZyBp
bml0aWFsQ29sb3JSZW5kZXJpbmcoKSB7IHJldHVybiBDUl9BVVRPOyB9CiAgICAgc3RhdGljIFdp
bmRSdWxlIGluaXRpYWxGaWxsUnVsZSgpIHsgcmV0dXJuIFJVTEVfTk9OWkVSTzsgfQotICAgIHN0
YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyByZXR1cm4gSVJf
QVVUTzsgfQogICAgIHN0YXRpYyBMaW5lSm9pbiBpbml0aWFsSm9pblN0eWxlKCkgeyByZXR1cm4g
TWl0ZXJKb2luOyB9CiAgICAgc3RhdGljIEVTaGFwZVJlbmRlcmluZyBpbml0aWFsU2hhcGVSZW5k
ZXJpbmcoKSB7IHJldHVybiBTUl9BVVRPOyB9CiAgICAgc3RhdGljIEVUZXh0QW5jaG9yIGluaXRp
YWxUZXh0QW5jaG9yKCkgeyByZXR1cm4gVEFfU1RBUlQ7IH0KQEAgLTE0MCw3ICsxMzksNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRDb2xvckludGVycG9sYXRpb25GaWx0ZXJzKEVDb2xvckludGVy
cG9sYXRpb24gdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9ySW50ZXJwb2xhdGlvbkZp
bHRlcnMgPSB2YWw7IH0KICAgICB2b2lkIHNldENvbG9yUmVuZGVyaW5nKEVDb2xvclJlbmRlcmlu
ZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmcgPSB2YWw7IH0KICAg
ICB2b2lkIHNldEZpbGxSdWxlKFdpbmRSdWxlIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9m
aWxsUnVsZSA9IHZhbDsgfQotICAgIHZvaWQgc2V0SW1hZ2VSZW5kZXJpbmcoRUltYWdlUmVuZGVy
aW5nIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRlcmluZyA9IHZhbDsgfQog
ICAgIHZvaWQgc2V0Sm9pblN0eWxlKExpbmVKb2luIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdz
Ll9qb2luU3R5bGUgPSB2YWw7IH0KICAgICB2b2lkIHNldFNoYXBlUmVuZGVyaW5nKEVTaGFwZVJl
bmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmcgPSB2YWw7
IH0KICAgICB2b2lkIHNldFRleHRBbmNob3IoRVRleHRBbmNob3IgdmFsKSB7IHN2Z19pbmhlcml0
ZWRfZmxhZ3MuX3RleHRBbmNob3IgPSB2YWw7IH0KQEAgLTI5Nyw3ICsyOTUsNiBAQCBwdWJsaWM6
CiAgICAgRUNvbG9ySW50ZXJwb2xhdGlvbiBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzKCkgY29u
c3QgeyByZXR1cm4gKEVDb2xvckludGVycG9sYXRpb24pIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2Nv
bG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM7IH0KICAgICBFQ29sb3JSZW5kZXJpbmcgY29sb3JSZW5k
ZXJpbmcoKSBjb25zdCB7IHJldHVybiAoRUNvbG9yUmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVkX2Zs
YWdzLl9jb2xvclJlbmRlcmluZzsgfQogICAgIFdpbmRSdWxlIGZpbGxSdWxlKCkgY29uc3QgeyBy
ZXR1cm4gKFdpbmRSdWxlKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9maWxsUnVsZTsgfQotICAgIEVJ
bWFnZVJlbmRlcmluZyBpbWFnZVJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIChFSW1hZ2VSZW5k
ZXJpbmcpIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ltYWdlUmVuZGVyaW5nOyB9CiAgICAgTGluZUpv
aW4gam9pblN0eWxlKCkgY29uc3QgeyByZXR1cm4gKExpbmVKb2luKSBzdmdfaW5oZXJpdGVkX2Zs
YWdzLl9qb2luU3R5bGU7IH0KICAgICBFU2hhcGVSZW5kZXJpbmcgc2hhcGVSZW5kZXJpbmcoKSBj
b25zdCB7IHJldHVybiAoRVNoYXBlUmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9zaGFw
ZVJlbmRlcmluZzsgfQogICAgIEVUZXh0QW5jaG9yIHRleHRBbmNob3IoKSBjb25zdCB7IHJldHVy
biAoRVRleHRBbmNob3IpIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3RleHRBbmNob3I7IH0KQEAgLTM0
Niw3ICszNDMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJ
bmhlcml0ZWRGbGFncyYgb3RoZXIpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVy
biAoX2NvbG9yUmVuZGVyaW5nID09IG90aGVyLl9jb2xvclJlbmRlcmluZykKLSAgICAgICAgICAg
ICAgICAmJiAoX2ltYWdlUmVuZGVyaW5nID09IG90aGVyLl9pbWFnZVJlbmRlcmluZykKICAgICAg
ICAgICAgICAgICAmJiAoX3NoYXBlUmVuZGVyaW5nID09IG90aGVyLl9zaGFwZVJlbmRlcmluZykK
ICAgICAgICAgICAgICAgICAmJiAoX2NsaXBSdWxlID09IG90aGVyLl9jbGlwUnVsZSkKICAgICAg
ICAgICAgICAgICAmJiAoX2ZpbGxSdWxlID09IG90aGVyLl9maWxsUnVsZSkKQEAgLTM2Niw3ICsz
NjIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIH0KIAogICAgICAgICB1bnNpZ25lZCBfY29sb3JS
ZW5kZXJpbmcgOiAyOyAvLyBFQ29sb3JSZW5kZXJpbmcKLSAgICAgICAgdW5zaWduZWQgX2ltYWdl
UmVuZGVyaW5nIDogMjsgLy8gRUltYWdlUmVuZGVyaW5nIAogICAgICAgICB1bnNpZ25lZCBfc2hh
cGVSZW5kZXJpbmcgOiAyOyAvLyBFU2hhcGVSZW5kZXJpbmcgCiAgICAgICAgIHVuc2lnbmVkIF9j
bGlwUnVsZSA6IDE7IC8vIFdpbmRSdWxlCiAgICAgICAgIHVuc2lnbmVkIF9maWxsUnVsZSA6IDE7
IC8vIFdpbmRSdWxlCkBAIC00MjIsNyArNDE3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgc3ZnX2lu
aGVyaXRlZF9mbGFncy5fY2xpcFJ1bGUgPSBpbml0aWFsQ2xpcFJ1bGUoKTsKICAgICAgICAgc3Zn
X2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmcgPSBpbml0aWFsQ29sb3JSZW5kZXJpbmco
KTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUgPSBpbml0aWFsRmlsbFJ1
bGUoKTsKLSAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcgPSBpbml0
aWFsSW1hZ2VSZW5kZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVyaXRlZF9mbGFncy5fc2hhcGVS
ZW5kZXJpbmcgPSBpbml0aWFsU2hhcGVSZW5kZXJpbmcoKTsKICAgICAgICAgc3ZnX2luaGVyaXRl
ZF9mbGFncy5fdGV4dEFuY2hvciA9IGluaXRpYWxUZXh0QW5jaG9yKCk7CiAgICAgICAgIHN2Z19p
bmhlcml0ZWRfZmxhZ3MuX2NhcFN0eWxlID0gaW5pdGlhbENhcFN0eWxlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKaW5kZXgg
MDAzNThhMGQ1N2I5YmE2ZTU5NjdiNTI2Zjg1ZWRhOWVmNWEzMWM0MC4uMmMzM2M2ZGM5YmRkODg4
Y2ViYTJjMWE4NGY4Zjc1OWEyYTJhMDk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaApAQCAtNTQsMTEgKzU0LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRUNvbG9yUmVuZGVyaW5nIHsKICAgICAgICAgQ1Jf
QVVUTywgQ1JfT1BUSU1JWkVTUEVFRCwgQ1JfT1BUSU1JWkVRVUFMSVRZCiAgICAgfTsKLSAgICAK
LSAgICBlbnVtIEVJbWFnZVJlbmRlcmluZyB7Ci0gICAgICAgIElSX0FVVE8sIElSX09QVElNSVpF
U1BFRUQsIElSX09QVElNSVpFUVVBTElUWQotICAgIH07Ci0KICAgICBlbnVtIEVTaGFwZVJlbmRl
cmluZyB7CiAgICAgICAgIFNSX0FVVE8sIFNSX09QVElNSVpFU1BFRUQsIFNSX0NSSVNQRURHRVMs
IFNSX0dFT01FVFJJQ1BSRUNJU0lPTgogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggYzM4
NDYxMTY2YmZiYzJiMTU0ZjNhNjkyNmE1M2ViNzdhNTZhNTBjZi4uMTE2MDZiMThhNzY5NjA4N2Zi
YWJlM2Q2ODc5ZDM0NmE3MjEzYjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtNTIsNiArNTIs
NyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICAg
ICAsIHRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFya05vbmUpCiAgICAgLCB0ZXh0RW1w
aGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCiAgICAgLCBtX2xpbmVCb3hD
b250YWluKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUJveENvbnRhaW4oKSkKKyAgICAsIG1faW1h
Z2VSZW5kZXJpbmcoUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlbmRlcmluZygpKQogICAgICwg
aHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcigt
MSkKIHsKQEAgLTg2LDYgKzg3LDcgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJl
SW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4
dEVtcGhhc2lzTWFyayhvLnRleHRFbXBoYXNpc01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3Np
dGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0aW9uKQogICAgICwgbV9saW5lQm94Q29udGFpbihvLm1f
bGluZUJveENvbnRhaW4pCisgICAgLCBtX2ltYWdlUmVuZGVyaW5nKG8ubV9pbWFnZVJlbmRlcmlu
ZykKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5nKG8uaHlwaGVuYXRpb25TdHJpbmcpCiAgICAgLCBo
eXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlwaGVuYXRpb25MaW1pdEJlZm9yZSkKICAgICAsIGh5
cGhlbmF0aW9uTGltaXRBZnRlcihvLmh5cGhlbmF0aW9uTGltaXRBZnRlcikKQEAgLTE0MSw3ICsx
NDMsOCBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJp
bmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwogICAgICAgICAmJiBsb2NhbGUgPT0gby5sb2NhbGUK
ICAgICAgICAgJiYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBvLnRleHRFbXBoYXNpc0N1c3Rv
bU1hcmsKLSAgICAgICAgJiYgKnF1b3RlcyA9PSAqby5xdW90ZXM7CisgICAgICAgICYmICpxdW90
ZXMgPT0gKm8ucXVvdGVzCisgICAgICAgICYmIG1faW1hZ2VSZW5kZXJpbmcgPT0gby5tX2ltYWdl
UmVuZGVyaW5nOwogfQogCiBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFF
cXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuaAppbmRleCBkYTQxMGYxYWM2ODI3MzQxZmQzODc4ZWYyYmJmOTVmODliZmQwMjI2Li5iOTkw
ZWY4NmVlNDM2MzYyZjY3MzU4NGE4YTI5YWQ3NGQ1NGY1MzJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAg
LTg1LDYgKzg1LDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHRleHRFbXBoYXNpc01hcmsgOiAz
OyAvLyBUZXh0RW1waGFzaXNNYXJrCiAgICAgdW5zaWduZWQgdGV4dEVtcGhhc2lzUG9zaXRpb24g
OiAxOyAvLyBUZXh0RW1waGFzaXNQb3NpdGlvbgogICAgIHVuc2lnbmVkIG1fbGluZUJveENvbnRh
aW46IDc7IC8vIExpbmVCb3hDb250YWluCisgICAgLy8gQ1NTIEltYWdlIFZhbHVlcyBMZXZlbCAz
CisgICAgdW5zaWduZWQgbV9pbWFnZVJlbmRlcmluZyA6IDI7IC8vIEVJbWFnZVJlbmRlcmluZwor
CiAKICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7CiAgICAgc2hvcnQgaHlwaGVu
YXRpb25MaW1pdEJlZm9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDdkM2Y5MDkyNzI4M2YyOTA0Zjc3OWZmMDBj
YzdiNmUzYWFlOWNjMjQuLmIxZDFlMzg2YmNmNzRkNzEyNzUxY2Q3ZjJjOTRhYmU3NWM2Yzk2MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFz
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVl
QXNUZXh0LmNwcApAQCAtMzIxLDcgKzMyMSw3IEBAIHN0YXRpYyB2b2lkIHdyaXRlU3R5bGUoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQogCiAgICAgaWYgKCFvYmpl
Y3QubG9jYWxUcmFuc2Zvcm0oKS5pc0lkZW50aXR5KCkpCiAgICAgICAgIHdyaXRlTmFtZVZhbHVl
UGFpcih0cywgInRyYW5zZm9ybSIsIG9iamVjdC5sb2NhbFRyYW5zZm9ybSgpKTsKLSAgICB3cml0
ZUlmTm90RGVmYXVsdCh0cywgImltYWdlIHJlbmRlcmluZyIsIHN2Z1N0eWxlLT5pbWFnZVJlbmRl
cmluZygpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVuZGVyaW5nKCkpOworICAgIHdy
aXRlSWZOb3REZWZhdWx0KHRzLCAiaW1hZ2UgcmVuZGVyaW5nIiwgc3R5bGUtPmltYWdlUmVuZGVy
aW5nKCksIFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZW5kZXJpbmcoKSk7CiAgICAgd3JpdGVJ
Zk5vdERlZmF1bHQodHMsICJvcGFjaXR5Iiwgc3R5bGUtPm9wYWNpdHkoKSwgUmVuZGVyU3R5bGU6
OmluaXRpYWxPcGFjaXR5KCkpOwogICAgIGlmIChvYmplY3QuaXNTVkdQYXRoKCkpIHsKICAgICAg
ICAgY29uc3QgUmVuZGVyU1ZHUGF0aCYgcGF0aCA9IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNW
R1BhdGgmPihvYmplY3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94506</attachid>
            <date>2011-05-23 15:41:41 -0700</date>
            <delta_ts>2011-05-23 19:25:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56627-20110524084137.patch</filename>
            <type>text/plain</type>
            <size>48942</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmODMwYjkwZDczNTI3ZGNhYTg4NTQy
NDYxMzlkZjMwYWZjNjM3NjYzLi5kZDJkMmRmNjlmYjAzN2U1ZjcyYWFjMzc5ZjIzMjZjMDUzMjkw
YTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMTEgIE1pa2UgTGF3dGhlciAgPG1p
a2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250
cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFnZSB2YWx1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjI3
CisKKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRy
YXN0LWNhbnZhcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29w
dGltaXplLWNvbnRyYXN0LWNhbnZhcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNz
czMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFz
dC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvaW1hZ2VzL29wdGlt
aXplLWNvbnRyYXN0LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA1LTIxICBKdXN0aW4gU2No
dWggIDxqc2NodWhAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2Fu
dmFzLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTkxZGVjZDgyOGU0YjIzOTdhYmI5ODIzNzY5
YjJkNjI3MGE3ZDIyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTI0NAp6Y21lQVNATj8ob2xI
eWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVTSUQKelgy
dkVhbUtKNmYyOGt4N01rYX5JREhldG5yV1BpdENLa3F0N0tXdVA4fHJ7Mnl2dVpVNClBbiNSdFBB
e1BzX3xuCnpXbmlkYVl6O1l8RSRrQHImbiQxezF0cEhDWWAjcXU2Tz1xN1M3KjNoRzVhZitsK0FO
bmV3KnVyNmwyZThkMWtOUQp6c2NsYF9AI043KHQkVkktN3FiNnZrZ05LVHFWTHJqPCpJUlN3TU5v
SGFvdncrXkwofX5lUmJlbS1SRkRlP2Aha1IKej9sYlRmVHs4TEYhMTlGbWMrZXVqJSR5cGh0VW56
TGVUejY5TztrZn56d3VMSGI4SWdEU15mTSo2QE8hTip4fkJtCno8KHRhYSZicVgxN0pKS0loWD9N
blpmYjNLRko4ek1EYTYhYWJBT0BjQGUrPnZrOGdaPih7SmZsUyNmWUh6cWFqPgp6TlRuSkZRezhq
KnpCX2A/cyRPPHpfT09gcHdKXndUJmhfcG8qSmFyPV5Ve3U7NVpMUUtWY0c2OD9eWSkqb2E2VjYK
elpeR1dXVStWbGUtP0taVWMhKm5hdC1hZmgtZyNlcHVHJjlKZTdOTTxrdjNaeTNEWWs+NT02STR0
Xjhxbk5GLWpzCnpTQTlgUDtZfmY+azJCVyY0ZzJLUFI0fkVmUjd6cSlhZz5NdWIpVVEreVZfWjYp
dmdQI2VeZWU4X15gNUhJUWB6MAp6eVlGM1pGfDlZP2xqVmAoblpAZjdBbUdaOUlBY1NBTHp8NzFw
fjxFcWQqIyheKHZ6IT1OPiNGVW1uNkF0YmdWWUoKelc0az9ZJHo3WCY4Y0t5em9WUmpKYHM0VWRZ
eUM8OHI8RmZYJDg1TH1fST05USp8VDxpZFNIRkA+Q0J4e2FAUX1QCnpjd0Zvb1MyT2lXKzJuQmRY
PV5JMF9STS1DVyZiOTh5NVh9WClCWXBIOC05UChqaH1qRXhATTJhKFpge21Vd09CYgp6TWo0dmxw
UHk1MlpUbT4/eXghSnAjY01tZSZCSkMtUHlkX2NAJSFEWEooSGg+e2A4T2dgdGVXdCooMXIxRyE1
MHQKenh9R2FgUEN1Jm1hbmNSJSkhZEh+YSp1UCZvIVh7KERSPCY4bTglSH12LVcofGtGfTRrKnl+
byReRUdnYTxlNXQkCnpvIXsjWlh7RElWLU5+MiN0Ti1AI0tqS2ZtY1JpbzQhSzl6XztLYTtieHh0
MCsxczB8KiVgMEJWQik8UCo/VDJsNwp6Kl5CRWV7OykqWXRRSzF2V0lBN0E1MkgrM2R6SVZeJV44
PWNPKj9CRClVR3BzQH4pU3NsN2h8eis7JEVNeH5fVVgKeiltdj15JStSRWxXakFKQ21kJXF7WHpC
RiokYTFnTCQtbVpyNnh7SDRMKHRFa1lsM2RwYEFKPUNvYz01U3pARVJaCnoyUChRZDg1azU4Slk1
X15EajQ3MUd8WkZyNmt2N3kqWlF0TEhTNmoyK2tZTD5JNXhFJTVZZig+ISh4OXdLS31wegp6fDND
bFI/TjkyaUttSjN0YF9DVyRRKjEwODB0eVpkNDIoP1RFZE8/WUBMUjZ9PTBIUmIxVWZYeE1BeyQ7
SiFvclMKeip0emk0VCh+WTQ0akVSSzZCQ2EqR2EtY1hJNTtMcXVlIz82R0lpNy1QI0JEYyhQJW0l
bV87NihmQnlSU2s3b0pyCnpBM3B5cS0yZHNMXyY/Uj43Vm4tWiFaTUxWKzx8ejlQeEZCXzlYellP
WEpJKkVvam48cmc7X1lCdShFams2SnxpPAp6O1JrYVk3JUowcWc8eXMtSDEyNiZJOWJvY2ZZN3I/
U1V9PFo4ZWIqMnJVfksjM1AxZkI7SktIZnY3Q3dOJD10MTsKemFDPSFrRiledzk9VlhBQzkzYkhq
ZWh2K0xIayk8QUg5NXBORyg1M3FXSSpWLSRIXzZGe0Y8NXxUKzwwfGp0UEklCno4SVh6ellldlJU
PVdlTVdKWHAhZElPI3ROMUdJPCZucEw1JDtCWVQ7d2hMVTdnMSo5TnBvfDZ6Nkx+NCtVcnFnZgp6
PjlYPW0+bSM0JlAyTWdIUG5yXjNLZSRmXyt8Tkx5THttbl9weHJ4YUlwSWw+MlV6Y29zdSZGcVhv
NDZgQUVVV3AKenZ+KztBRG5AZ3xYbEB3STRXcWRNKyNNS2dEVUclcU1fYmFjelF0JjY3fGppJXhu
VlJuZlFRPmcrc1VLdDxrNUVXCnpYZ2hoZG95XkVJU3s5QyRnYDtJNSo9MXErbGo/MjsyOTY1UVNe
eVN+KE8kLUFGSnJXcUcxfCkqP1BaTFhnYCtkcQpocXgxQiVvfkxpelUkS2pDbyFUcXlYfjU7WDQ0
JHJqRjYqMlVuZ0NISjBiMms3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1jYW52YXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRl
ZDA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1p
emUtY29udHJhc3QtY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNhbnZhcy5odG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtY2FudmFzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjlkMWY0ZmVhOGJjOGU2ZWMxZjY0ZjgyYTQ1NzZjMWY0MTU0YzJhOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0
LWNhbnZhcy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPiAKKzxzdHlsZT4g
CisJY2FudmFzIHsKKwkJZGlzcGxheTogYmxvY2s7CisJCXBvc2l0aW9uOiBmaXhlZDsKKwkJbGVm
dDogMHB4OworCQl0b3A6IDBweDsKKwkJcmlnaHQ6IDBweDsKKwkJYm90dG9tOiAwcHg7CisJCWJv
cmRlcjogbm9uZTsKKwkJd2lkdGg6IDEwMHB4OworCQloZWlnaHQ6IDEwMHB4OworCQltYXJnaW46
IDBweDsKKwkJcGFkZGluZzogMHB4OworCQlpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1p
emUtY29udHJhc3Q7CisJfQorPC9zdHlsZT4gCis8Ym9keT4gCisgICAgPCEtLSBUaGUgcmVzdWx0
aW5nIGltYWdlIHNob3VsZCBiZSAxMDB4MTAwLCBjb25zaXN0aW5nIG9mIDQgNTB4NTAgYmxvY2tz
IG9mIHNvbGlkIGNvbG9yLCB3aXRoIG5vIGJsdXJyaW5nIG9mIGVkZ2VzIC0tPgorCTxjYW52YXMg
d2lkdGg9IjIiIGhlaWdodD0iMiI+PC9jYW52YXM+IAorPC9ib2R5PiAKKzxzY3JpcHQ+IAorICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIAorCXZhciBjYW52YXM7CisJdmFyIGlt
YWdlSGFuZGxlOworCWNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjYW52
YXMiKVswXS5nZXRDb250ZXh0KCIyZCIpOworCWNhbnZhcy53aWR0aCA9IDI7CisJY2FudmFzLmhl
aWdodCA9IDI7CisJaW1hZ2VIYW5kbGUgPSBjYW52YXMuY3JlYXRlSW1hZ2VEYXRhKDIsIDIpOwor
CisJdmFyIGluZGV4ID0gMDsKKwl2YXIgbGVuZ3RoID0gaW1hZ2VIYW5kbGUuZGF0YS5sZW5ndGg7
CisKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMjU1OworICAgIGltYWdlSGFuZGxl
LmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOwor
ICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisKKyAgICBpbWFnZUhhbmRsZS5k
YXRhW2luZGV4KytdID0gMDsKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMjU1Owor
ICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAwOworICAgIGltYWdlSGFuZGxlLmRhdGFb
aW5kZXgrK10gPSAyNTU7CisKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMDsKKyAg
ICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMDsKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2lu
ZGV4KytdID0gMjU1OworICAgIGltYWdlSGFuZGxlLmRhdGFbaW5kZXgrK10gPSAyNTU7CisKKyAg
ICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMDsKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2lu
ZGV4KytdID0gMDsKKyAgICBpbWFnZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMDsKKyAgICBpbWFn
ZUhhbmRsZS5kYXRhW2luZGV4KytdID0gMjU1OworCisJY2FudmFzLnB1dEltYWdlRGF0YShpbWFn
ZUhhbmRsZSwgMCwgMCk7Cis8L3NjcmlwdD4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjU5MWRlY2Q4MjhlNGIyMzk3YWJiOTgyMzc2OWIyZDYyNzBhN2QyMgpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMTEyNDQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5p
MUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1RnhlU0lECnpYMnZFYW1LSjZmMjhreDdNa2F+SURIZXRu
cldQaXRDS2txdDdLV3VQOHxyezJ5dnVaVTQpQW4jUnRQQXtQc198bgp6V25pZGFZejtZfEUka0By
Jm4kMXsxdHBIQ1lgI3F1Nk89cTdTNyozaEc1YWYrbCtBTm5ldyp1cjZsMmU4ZDFrTlEKenNjbGBf
QCNONyh0JFZJLTdxYjZ2a2dOS1RxVkxyajwqSVJTd01Ob0hhb3Z3K15MKH1+ZVJiZW0tUkZEZT9g
IWtSCno/bGJUZlR7OExGITE5Rm1jK2V1aiUkeXBodFVuekxlVHo2OU87a2Z+end1TEhiOElnRFNe
Zk0qNkBPIU4qeH5CbQp6PCh0YWEmYnFYMTdKSktJaFg/TW5aZmIzS0ZKOHpNRGE2IWFiQU9AY0Bl
Kz52azhnWj4oe0pmbFMjZllIenFhaj4Kek5UbkpGUXs4aip6Ql9gP3MkTzx6X09PYHB3Sl53VCZo
X3BvKkphcj1eVXt1OzVaTFFLVmNHNjg/XlkpKm9hNlY2CnpaXkdXV1UrVmxlLT9LWlVjISpuYXQt
YWZoLWcjZXB1RyY5SmU3Tk08a3YzWnkzRFlrPjU9Nkk0dF44cW5ORi1qcwp6U0E5YFA7WX5mPmsy
QlcmNGcyS1BSNH5FZlI3enEpYWc+TXViKVVRK3lWX1o2KXZnUCNlXmVlOF9eYDVISVFgejAKenlZ
RjNaRnw5WT9salZgKG5aQGY3QW1HWjlJQWNTQUx6fDcxcH48RXFkKiMoXih2eiE9Tj4jRlVtbjZB
dGJnVllKCnpXNGs/WSR6N1gmOGNLeXpvVlJqSmBzNFVkWXlDPDhyPEZmWCQ4NUx9X0k9OVEqfFQ8
aWRTSEZAPkNCeHthQFF9UAp6Y3dGb29TMk9pVysybkJkWD1eSTBfUk0tQ1cmYjk4eTVYfVgpQllw
SDgtOVAoamh9akV4QE0yYShaYHttVXdPQmIKek1qNHZscFB5NTJaVG0+P3l4IUpwI2NNbWUmQkpD
LVB5ZF9jQCUhRFhKKEhoPntgOE9nYHRlV3QqKDFyMUchNTB0Cnp4fUdhYFBDdSZtYW5jUiUpIWRI
fmEqdVAmbyFYeyhEUjwmOG04JUh9di1XKHxrRn00ayp5fm8kXkVHZ2E8ZTV0JAp6byF7I1pYe0RJ
Vi1OfjIjdE4tQCNLaktmbWNSaW80IUs5el87S2E7Ynh4dDArMXMwfColYDBCVkIpPFAqP1QybDcK
eipeQkVlezspKll0UUsxdldJQTdBNTJIKzNkeklWXiVeOD1jTyo/QkQpVUdwc0B+KVNzbDdofHor
OyRFTXh+X1VYCnopbXY9eSUrUkVsV2pBSkNtZCVxe1h6QkYqJGExZ0wkLW1acjZ4e0g0TCh0RWtZ
bDNkcGBBSj1Db2M9NVN6QEVSWgp6MlAoUWQ4NWs1OEpZNV9eRGo0NzFHfFpGcjZrdjd5KlpRdExI
UzZqMitrWUw+STV4RSU1WWYoPiEoeDl3S0t9cHoKenwzQ2xSP045MmlLbUozdGBfQ1ckUSoxMDgw
dHlaZDQyKD9URWRPP1lATFI2fT0wSFJiMVVmWHhNQXskO0ohb3JTCnoqdHppNFQoflk0NGpFUks2
QkNhKkdhLWNYSTU7THF1ZSM/NkdJaTctUCNCRGMoUCVtJW1fOzYoZkJ5UlNrN29Kcgp6QTNweXEt
MmRzTF8mP1I+N1ZuLVohWk1MVis8fHo5UHhGQl85WHpZT1hKSSpFb2puPHJnO19ZQnUoRWprNkp8
aTwKejtSa2FZNyVKMHFnPHlzLUgxMjYmSTlib2NmWTdyP1NVfTxaOGViKjJyVX5LIzNQMWZCO0pL
SGZ2N0N3TiQ9dDE7CnphQz0ha0YpXnc5PVZYQUM5M2JIamVoditMSGspPEFIOTVwTkcoNTNxV0kq
Vi0kSF82RntGPDV8VCs8MHxqdFBJJQp6OElYenpZZXZSVD1XZU1XSlhwIWRJTyN0TjFHSTwmbnBM
NSQ7QllUO3doTFU3ZzEqOU5wb3w2ejZMfjQrVXJxZ2YKej45WD1tPm0jNCZQMk1nSFBucl4zS2Uk
Zl8rfE5MeUx7bW5fcHhyeGFJcElsPjJVemNvc3UmRnFYbzQ2YEFFVVdwCnp2fis7QURuQGd8WGxA
d0k0V3FkTSsjTUtnRFVHJXFNX2JhY3pRdCY2N3xqaSV4blZSbmZRUT5nK3NVS3Q8azVFVwp6WGdo
aGRveV5FSVN7OUMkZ2A7STUqPTFxK2xqPzI7Mjk2NVFTXnlTfihPJC1BRkpyV3FHMXwpKj9QWkxY
Z2ArZHEKaHF4MUIlb35MaXpVJEtqQ28hVHF5WH41O1g0NCRyakY2KjJVbmdDSEowYjJrNwoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
b3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9p
bWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhi
MTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ltYWdl
cy9vcHRpbWl6ZS1jb250cmFzdC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9pbWFnZXMv
b3B0aW1pemUtY29udHJhc3QtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzJmY2ZhN2E2MTM5NTE5
M2EyYmZhOTIzYzJkYmIxOGIxZmU4N2RlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9pbWFnZXMvb3B0aW1pemUtY29udHJhc3QtaW1hZ2UuaHRtbApAQCAtMCwwICsxLDI1IEBA
Cis8IURPQ1RZUEUgaHRtbD4gCis8c3R5bGU+IAorCWltZyB7CisJCWRpc3BsYXk6IGJsb2NrOwor
CQlwb3NpdGlvbjogZml4ZWQ7CisJCWxlZnQ6IDBweDsKKwkJdG9wOiAwcHg7CisJCXJpZ2h0OiAw
cHg7CisJCWJvdHRvbTogMHB4OworCQlib3JkZXI6IG5vbmU7CisJCXdpZHRoOiAxMDBweDsKKwkJ
aGVpZ2h0OiAxMDBweDsKKwkJbWFyZ2luOiAwcHg7CisJCXBhZGRpbmc6IDBweDsKKwkJaW1hZ2Ut
cmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OworCX0KKzwvc3R5bGU+IAorPGJv
ZHk+IAorICAgIDwhLS0gVGhlIHJlc3VsdGluZyBpbWFnZSBzaG91bGQgYmUgMTAweDEwMCwgY29u
c2lzdGluZyBvZiA0IDUweDUwIGJsb2NrcyBvZiBzb2xpZCBjb2xvciwgd2l0aCBubyBibHVycmlu
ZyBvZiBlZGdlcyAtLT4KKwk8aW1hZ2Ugc3R5bGU9IiIgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNl
NjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFJQUFBQUNDQVlBQUFCeXRnMGtBQUFBRkVsRVFW
UUlIV1A0ejhEd0h3eUJOSkROOEI4QVFORUcrdDVJazJrQUFBQUFTVVZPUks1Q1lJST0iPjwvaW1n
PiAKKzwvYm9keT4gCis8c2NyaXB0PiAKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENv
bXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IDY3YjdlMGUxMzVi
OWM3NDIxNTM3OWE4YjNiYTJkNzdjYjZmMzU5YjMuLmE3NzA1NGMyZTg4ZDE3OTU1MGU5MjJlNTZh
Mzk0NDRiNTk0ZGNlMWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC00
Myw2ICs0Myw3IEBAIGZvbnQtc3R5bGU6IG5vcm1hbDsKIGZvbnQtdmFyaWFudDogbm9ybWFsOwog
Zm9udC13ZWlnaHQ6IG5vcm1hbDsKIGhlaWdodDogNTc2cHg7CitpbWFnZS1yZW5kZXJpbmc6IGF1
dG87CiBsZWZ0OiBhdXRvOwogbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKIGxpbmUtaGVpZ2h0OiBu
b3JtYWw7CkBAIC0yMDAsNyArMjAxLDYgQEAgY29sb3ItcmVuZGVyaW5nOiBhdXRvOwogZmlsbDog
IzAwMDAwMDsKIGZpbGwtb3BhY2l0eTogMTsKIGZpbGwtcnVsZTogbm9uemVybzsKLWltYWdlLXJl
bmRlcmluZzogYXV0bzsKIG1hcmtlci1lbmQ6IG5vbmU7CiBtYXJrZXItbWlkOiBub25lOwogbWFy
a2VyLXN0YXJ0OiBub25lOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0
aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKaW5kZXggNGEzNGRiMmM2ZTAwZjI1OTM2NGZlNGQz
NGZkNmY5YTMxYTc3MWUwNS4uY2I3NGMyOTc5NmU0ZWNkOTY2MTJjNDRmYzUzZDJlMTU0ZDA0Nzll
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVy
ZXItZXhwZWN0ZWQudHh0CkBAIC00Miw2ICs0Miw3IEBAIENvbXB1dGVkIHN0eWxlIG9mIGFuIGVs
ZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdub25lJzoKICAgICBmb250
LXZhcmlhbnQ6IG5vcm1hbAogICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwKICAgICBoZWlnaHQ6IDEw
MHB4CisgICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbGVmdDogYXV0bwogICAgIGxldHRl
ci1zcGFjaW5nOiBub3JtYWwKICAgICBsaW5lLWhlaWdodDogbm9ybWFsCkBAIC0xOTAsNyArMTkx
LDYgQEAgQ29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxh
eScgdmFsdWUgaXMgJ25vbmUnOgogICAgIGZpbGw6ICMwMDAwMDAKICAgICBmaWxsLW9wYWNpdHk6
IDEKICAgICBmaWxsLXJ1bGU6IG5vbnplcm8KLSAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG8KICAg
ICBtYXJrZXItZW5kOiBub25lCiAgICAgbWFya2VyLW1pZDogbm9uZQogICAgIG1hcmtlci1zdGFy
dDogbm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dl
dENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAppbmRleCA4NDNlMDli
OWM2YzlhZWFlZTRlODMxNTYwNWE3ODQ1ZjQxZmE1NGZmLi41NTM5NjgzZDAyOTRiZmM1YzA5ZGE0
ODIyMmFkODM3YmI0MTI1MTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4
dApAQCAtNDIsNiArNDIsNyBAQCBDb21wdXRlZCBzdHlsZSBvZiBhbiBlbGVtZW50IHdob3NlIHBh
cmVudCdzICdkaXNwbGF5JyB2YWx1ZSBpcyAnbm9uZSc6CiAgICAgZm9udC12YXJpYW50OiBub3Jt
YWwKICAgICBmb250LXdlaWdodDogbm9ybWFsCiAgICAgaGVpZ2h0OiAxMDBweAorICAgIGltYWdl
LXJlbmRlcmluZzogYXV0bwogICAgIGxlZnQ6IGF1dG8KICAgICBsZXR0ZXItc3BhY2luZzogbm9y
bWFsCiAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbApAQCAtMTk5LDcgKzIwMCw2IEBAIENvbXB1dGVk
IHN0eWxlIG9mIGFuIGVsZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdu
b25lJzoKICAgICBmaWxsOiAjMDAwMDAwCiAgICAgZmlsbC1vcGFjaXR5OiAxCiAgICAgZmlsbC1y
dWxlOiBub256ZXJvCi0gICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbWFya2VyLWVuZDog
bm9uZQogICAgIG1hcmtlci1taWQ6IG5vbmUKICAgICBtYXJrZXItc3RhcnQ6IG5vbmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdp
dGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CmluZGV4IDg0M2UwOWI5YzZjOWFlYWVlNGU4MzE1
NjA1YTc4NDVmNDFmYTU0ZmYuLjU1Mzk2ODNkMDI5NGJmYzVjMDlkYTQ4MjIyYWQ4MzdiYjQxMjUx
ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApAQCAtNDIsNiArNDIsNyBA
QCBDb21wdXRlZCBzdHlsZSBvZiBhbiBlbGVtZW50IHdob3NlIHBhcmVudCdzICdkaXNwbGF5JyB2
YWx1ZSBpcyAnbm9uZSc6CiAgICAgZm9udC12YXJpYW50OiBub3JtYWwKICAgICBmb250LXdlaWdo
dDogbm9ybWFsCiAgICAgaGVpZ2h0OiAxMDBweAorICAgIGltYWdlLXJlbmRlcmluZzogYXV0bwog
ICAgIGxlZnQ6IGF1dG8KICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsCiAgICAgbGluZS1oZWln
aHQ6IG5vcm1hbApAQCAtMTk5LDcgKzIwMCw2IEBAIENvbXB1dGVkIHN0eWxlIG9mIGFuIGVsZW1l
bnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdub25lJzoKICAgICBmaWxsOiAj
MDAwMDAwCiAgICAgZmlsbC1vcGFjaXR5OiAxCiAgICAgZmlsbC1ydWxlOiBub256ZXJvCi0gICAg
aW1hZ2UtcmVuZGVyaW5nOiBhdXRvCiAgICAgbWFya2VyLWVuZDogbm9uZQogICAgIG1hcmtlci1t
aWQ6IG5vbmUKICAgICBtYXJrZXItc3RhcnQ6IG5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDZmNjZj
ZjBhMmNkZWQwZWY5Mzg3MmY5ZWFiYjIxZWY5ZDkxZDdkNGUuLjdkMGY1MjExY2Y4MTIzMDc3MjI5
MmVlODlmYWIxNjcxNzZhNmY4YTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nz
cy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtODQsNiArODQsOCBAQCBy
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGZvbnQtd2VpZ2h0KSA6IG5vcm1hbAogcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmb250LXdlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShoZWlnaHQpIDogMHB4CiBy
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGhlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShpbWFnZS1yZW5kZXJpbmcp
IDogYXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShpbWFnZS1yZW5kZXJpbmcp
IDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUobGVmdCkgOiBhdXRvCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGxlZnQpIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
bGV0dGVyLXNwYWNpbmcpIDogbm9ybWFsCkBAIC0zOTgsOCArNDAwLDYgQEAgcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZShmaWxsLW9wYWNpdHkpIDogMQogcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShmaWxsLW9wYWNpdHkpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KIHJl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZmlsbC1ydWxlKSA6IG5vbnplcm8KIHJlY3Q6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZmlsbC1ydWxlKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCi1yZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGltYWdlLXJlbmRlcmluZykgOiBh
dXRvCi1yZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGltYWdlLXJlbmRlcmluZykgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSht
YXJrZXItZW5kKSA6IG5vbmUKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobWFya2Vy
LWVuZCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZShtYXJrZXItbWlkKSA6IG5vbmUKQEAgLTUzMCw2ICs1MzAsOCBAQCBnOiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKGZvbnQtd2VpZ2h0KSA6IG5vcm1hbAogZzogc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShmb250LXdlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShoZWlnaHQpIDogMHB4CiBnOiBzdHlsZS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKGhlaWdodCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZShpbWFnZS1yZW5kZXJpbmcpIDogYXV0bworZzogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZShpbWFnZS1yZW5kZXJpbmcpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1
ZV0KIGc6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobGVmdCkgOiBhdXRvCiBnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKGxlZnQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KIGc6IHN0
eWxlLmdldFByb3BlcnR5VmFsdWUobGV0dGVyLXNwYWNpbmcpIDogbm9ybWFsCkBAIC04NDQsOCAr
ODQ2LDYgQEAgZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmaWxsLW9wYWNpdHkpIDogMQogZzog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShmaWxsLW9wYWNpdHkpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KIGc6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZmlsbC1ydWxlKSA6IG5vbnpl
cm8KIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoZmlsbC1ydWxlKSA6IFtvYmplY3QgQ1NT
UHJpbWl0aXZlVmFsdWVdCi1nOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGltYWdlLXJlbmRlcmlu
ZykgOiBhdXRvCi1nOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGltYWdlLXJlbmRlcmluZykg
OiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSht
YXJrZXItZW5kKSA6IG5vbmUKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUobWFya2VyLWVu
ZCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZShtYXJrZXItbWlkKSA6IG5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNWViNmI5OTQyMWIwNTg3ZjY4MDcz
ZWMzNzllYmIyNTU5NzcyNGE2Li42ZDY3MDdjOTJmNWJhMmZiZTRkZjVkZjY4NGYxMzk4MTgzODQz
NTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDUtMTEgIE1pa2UgTGF3dGhl
ciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBpbXBsZW1lbnQgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6
ZS1jb250cmFzdCAod2l0aCBhIHZlbmRvciBwcmVmaXgpIGFzIGRlZmluZWQgaW4gQ1NTMyBpbWFn
ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU2NjI3CisKKyAgICAgICAgVGVzdHM6IGNzczMvaW1hZ2VzL29wdGltaXplLWNvbnRyYXN0LWNh
bnZhcy5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250cmFzdC1p
bWFnZS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBw
aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBF
SW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAg
ICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdv
cmRzLmluOgorICAgICAgICAqIGNzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRTVkdQ
cm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbjoK
KyAgICAgICAgKiBjc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KToKKyAgICAgICAgKiBjc3MvU1ZH
Q1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6CisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlUmVuZGVyaW5nTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VRdWFsaXR5Q29udHJv
bGxlcjo6c2hvdWxkUGFpbnRBdExvd1F1YWxpdHkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJIVE1MQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OnBh
aW50UmVwbGFjZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFn
czo6aW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNl
dEltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbml0
aWFsSW1hZ2VSZW5kZXJpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdS
ZW5kZXJTdHlsZTo6SW5oZXJpdGVkRmxhZ3M6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUmVuZGVyU3R5bGU6OnNldEJpdERlZmF1bHRzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlU3R5bGUpOgorCiAy
MDExLTA1LTIxICBKZXJlbXkgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0Mjc4ZjNiOGY2NmJlZjkyMjk1Y2FkNDhm
ZWE3ZjJjMDhmMTc0NWIxLi5jNzFlMTY1YmZmZmM5NmFmZGRkYWE5NDQwNWVkOTAyY2RhMWQ1MGJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC05OTUsNiArOTk1LDcgQEAKIAkJNDkwNzA3RTYxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5j
cHAgKi87IH07CiAJCTQ5MDcwN0U3MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3
RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi87IH07CiAJCTQ5Mjg2
Mzk5MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYg
LyogUmVzb3VyY2VMb2FkSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmlu
Z01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
MjkxRTRBMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLzsgfTsKIAkJ
NDkzRTVFMDkxMkQ2NDIwNTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkzRTVFMDgxMkQ2NDIw
NTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ5NDg0RkMxMTAyQ0YyM0MwMDE4N0REMyAv
KiBDYW52YXNHcmFkaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTQ4NEZCMzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3Bw
ICovOyB9OwogCQk0OTQ4NEZDMjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAy
Q0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oICovOyB9OwpAQCAtNzQ5NSw2ICs3NDk2
LDcgQEAKIAkJNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkw
RTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5n
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJlbmRlcmluZ01v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkzRTVFMDgxMkQ2NDIwNTAwMDIw
MDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXll
ckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZCMzEwMkNGMjND
MDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ2FudmFzR3JhZGllbnQuY3BwOyBwYXRoID0gY2FudmFzL0NhbnZhc0dyYWRp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQjQxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENhbnZhc0dyYWRpZW50Lmg7IHBhdGggPSBjYW52YXMvQ2FudmFzR3JhZGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NzI0LDYgKzE3NzI2LDcgQEAKIAkJCQlCMkEx
MEI5MTBCMzgxOEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIuaCAqLywKIAkJCQkyMkJEOUY3RDEz
NTM2MjVDMDA5QkQxMDIgLyogSW1hZ2VCdWZmZXJEYXRhLmggKi8sCiAJCQkJQkM3RjQ0QTcwQjlF
MzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLywKKwkJCQk0OTI5MUU0QTEzNDE3MkM4
MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQjI3NTM1NDMwQjA1Mzgx
NDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8sCiAJCQkJQjI3NTM1NDQwQjA1MzgxNDAwMkNF
NjRGIC8qIEludFBvaW50LmggKi8sCiAJCQkJRTQ2MkE0QTAxMTNFNzFCRTAwNEE0MjIwIC8qIElu
dFBvaW50SGFzaC5oICovLApAQCAtMjEyMjcsNiArMjEyMzAsNyBAQAogCQkJCUY1NUIzREMyMTI1
MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5
NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDkyOTFFNEIxMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291
cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1h
Z2VTb3VyY2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4
IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMDg2MjZkZGZk
ODVhZDliZWNmNmY0YjQ2MTUyMTYyMmRlOThhM2VmNS4uMTNkNjM0MDE4ZTE1YTI1NDUzZjBjZDkz
Yzg0NTQwNzcxMTFkNzM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTk5LDYgKzk5LDcgQEAgc3RhdGljIGNvbnN0IGlu
dCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LAog
ICAgIENTU1Byb3BlcnR5Rm9udFdlaWdodCwKICAgICBDU1NQcm9wZXJ0eUhlaWdodCwKKyAgICBD
U1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nLAogICAgIENTU1Byb3BlcnR5TGVmdCwKICAgICBDU1NQ
cm9wZXJ0eUxldHRlclNwYWNpbmcsCiAgICAgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0LApAQCAtMjYz
LDcgKzI2NCw2IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlGaWxsLAogICAgIENTU1Byb3BlcnR5RmlsbE9wYWNpdHksCiAgICAgQ1NT
UHJvcGVydHlGaWxsUnVsZSwKLSAgICBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nLAogICAgIENT
U1Byb3BlcnR5TWFya2VyRW5kLAogICAgIENTU1Byb3BlcnR5TWFya2VyTWlkLAogICAgIENTU1By
b3BlcnR5TWFya2VyU3RhcnQsCkBAIC0xMTU2LDYgKzExNTYsOCBAQCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50
IHByb3BlcgogICAgICAgICAgICAgaWYgKHN0eWxlLT5ib3JkZXJGaXQoKSA9PSBCb3JkZXJGaXRC
b3JkZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUJvcmRlcik7CiAgICAgICAgICAgICByZXR1cm4gcHJp
bWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTGluZXMpOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmc6CisgICAgICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSk7CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMZWZ0OgogICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0
aW9uT2Zmc2V0VmFsdWUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5TGVmdCwgcHJpbWl0aXZlVmFs
dWVDYWNoZSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMZXR0ZXJTcGFjaW5nOgpAQCAtMTc4
Miw3ICsxNzg0LDYgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUZpbGw6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsT3BhY2l0eToKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGxSdWxlOgotICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW1h
Z2VSZW5kZXJpbmc6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXI6CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlNYXJrZXJFbmQ6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJN
aWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDEwODM3YWRmMzI1NGY2NTA2YTk0Yzdi
YzMzNTRlYzIwM2ZlYzgwMDEuLjNmMDgwNjJiNDEzYTUyNDQ5MzlhNThlNzcxZjg2YmQ2ZTg2MWU2
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xNzE2LDcgKzE3MTYsMTAgQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
ICAgICAgICAoaWQgPj0gQ1NTVmFsdWVWaXNpYmxlcGFpbnRlZCAmJiBpZCA8PSBDU1NWYWx1ZVN0
cm9rZSkpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwotCisgICAgY2FzZSBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5nOiAvLyBhdXRvIHwgb3B0aW1p
emVDb250cmFzdAorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1Zh
bHVlV2Via2l0T3B0aW1pemVDb250cmFzdCkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgYnJlYWs7CiAgICAgLy8gRW5kIG9mIENTUzMgcHJvcGVydGllcwogCiAg
ICAgLy8gQXBwbGUgc3BlY2lmaWMgcHJvcGVydGllcy4gIFRoZXNlIHdpbGwgbmV2ZXIgYmUgc3Rh
bmRhcmRpemVkIGFuZCBhcmUgcHVyZWx5IHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBkZDZmZWUwMDY3YmI0ZmQ5NWFiZTU3OWMwMWMy
ODY4OTFhNzM5ZDJhLi5lMzAyMmU2ZmQwNjIxZjdkMzU2Y2U3ZDQ1ZDYwMTgxZmZlOGZmYTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAg
LTI4MDEsNiArMjgwMSw0MyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJvcmRlckNvbGxhcHNlKCkgY29uc3QKICAgICB9CiB9CiAKK3RlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFSW1hZ2VSZW5kZXJp
bmcgZSkKKyAgICA6IG1fdHlwZShDU1NfSURFTlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQo
ZmFsc2UpCit7CisgICAgc3dpdGNoIChlKSB7CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZ0F1dG86
CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkOgorICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElt
YWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVPcHRpbWl6ZXF1YWxpdHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VSZW5k
ZXJpbmdPcHRpbWl6ZUNvbnRyYXN0OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVX
ZWJraXRPcHRpbWl6ZUNvbnRyYXN0OworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJpbmco
KSBjb25zdAoreworICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgorICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOworICAgIGNhc2UgQ1NT
VmFsdWVPcHRpbWl6ZXNwZWVkOgorICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6
ZVNwZWVkOworICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk6CisgICAgICAgIHJldHVy
biBJbWFnZVJlbmRlcmluZ09wdGltaXplUXVhbGl0eTsKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0
T3B0aW1pemVDb250cmFzdDoKKyAgICAgICAgcmV0dXJuIEltYWdlUmVuZGVyaW5nT3B0aW1pemVD
b250cmFzdDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsKKyAgICB9Cit9CisgICAgCiAjaWYgRU5B
QkxFKFNWRykKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKEVDb2xvckludGVycG9sYXRpb24gZSkKQEAgLTI5NDQsMzggKzI5ODEsNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRURvbWluYW50QmFz
ZWxpbmUoKSBjb25zdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVJbWFnZVJlbmRlcmluZyBlKQotICAgIDogbV90eXBl
KENTU19JREVOVCkKLSAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKLXsKLSAgICBzd2l0
Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBJUl9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElSX09Q
VElNSVpFU1BFRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6
ZXNwZWVkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSVJfT1BUSU1JWkVRVUFM
SVRZOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUltYWdlUmVuZGVyaW5nKCkgY29uc3QKLXsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAg
ICAgICAgICByZXR1cm4gSVJfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplc3Bl
ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gSVJfT1BUSU1JWkVTUEVFRDsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZU9wdGltaXplcXVhbGl0eToKLSAgICAgICAgICAgIHJldHVybiBJUl9PUFRJTUlaRVFV
QUxJVFk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgICAgIHJldHVybiBJUl9BVVRPOwotICAgIH0KLX0KLQogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVTaGFwZVJlbmRlcmlu
ZyBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKICAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChm
YWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggZWE1NGMxMjcz
ZjcyNTJjZGQ2MDc3MGUxYjJmNTBhMDFkNjE1MjQwOS4uOWZhNjJlMTNmMjEzNWM3YWNlY2E3YmVi
YzIxMzEzMzI5YTIyYjEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
QEAgLTkzLDYgKzkzLDcgQEAgZW1wdHktY2VsbHMKIGZsb2F0CiBmb250LXN0cmV0Y2gKIGhlaWdo
dAoraW1hZ2UtcmVuZGVyaW5nCiBsZWZ0CiBsZXR0ZXItc3BhY2luZwogbGlzdC1zdHlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDBiZmRlZTU2Y2Q1NTEyNmI5
NWM5MzA2ZWY5ZjEwNmIxZGY1NDgwZWYuLjczMzA4Zjg5NmVkNWZmYWM3ZTBmNjg4YzI4OTFkMmFi
OGI2ZmJlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTQ2
OTYsNiArNDY5NiwxMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50
IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KG91dGxpbmVPZmZzZXQsIE91dGxpbmVPZmZzZXQpCiAgICAgICAgIG1fc3R5bGUtPnNldE91dGxp
bmVPZmZzZXQocHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGhJbnQoc3R5bGUoKSwgbV9yb290
RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENT
U1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmc6CisgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3R5bGUtPnNldEltYWdlUmVuZGVyaW5nKCpw
cmltaXRpdmVWYWx1ZSk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4
dFJlbmRlcmluZzogewogICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0g
bV9zdHlsZS0+Zm9udERlc2NyaXB0aW9uKCk7CiAgICAgICAgIGlmIChpc0luaGVyaXQpIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA2ZGFjMDZmY2NiYzkyYmI5ODNh
MzQ3NDcwNWQ4YTQzOTY4YzAxZjVjLi5kNjcwYTYyZjRmMjBkZDVhN2EyZDJhYzA2NjlhMWE3ZTA2
NWM5MmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtODAzLDQg
KzgwMyw4IEBAIGdseXBocwogaW5saW5lLWJveAogcmVwbGFjZWQKIAotCisjIGltYWdlLXJlbmRl
cmluZworI2F1dG8KKyNvcHRpbWl6ZVNwZWVkCitvcHRpbWl6ZVF1YWxpdHkKKy13ZWJraXQtb3B0
aW1pemUtY29udHJhc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNWRmZTAzZTAzMDEzYWQ1ZTFlN2YxZGViMWRi
YmQ5M2IyMjRlYzY3Ny4uMGMyYWFmZjk5Njc4NTZjMDQ5NTFkMmVlZjVhMzEzMmQ3Mzc5OWExNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTEwMyw4ICsxMDMsNiBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFNWR1Byb3BlcnR5Q1NTVmFsdWUoaW50IHBybwog
ICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5bGUtPmZp
bGxSdWxlKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3JSZW5kZXJpbmc6CiAgICAg
ICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+Y29sb3JS
ZW5kZXJpbmcoKSk7Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlJbWFnZVJlbmRlcmluZzoKLSAg
ICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5pbWFn
ZVJlbmRlcmluZygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNoYXBlUmVuZGVyaW5nOgog
ICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5bGUtPnNo
YXBlUmVuZGVyaW5nKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlTGluZWNhcDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggN2MxNTdhOGM3
Mzc4NzhkYThkYTZjNGUwZTdkZGRlMDA4NzQwZjQ2NC4uMzhhZDNiNmEwMTBmMDBkNDg4NmU2ZmU0
ZmVjNDlmOGM3MTU4MzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1By
b3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1Byb3BlcnR5TmFt
ZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAgZmlsbAogZmlsbC1vcGFjaXR5CiBmaWxsLXJ1bGUKICNm
b250LXNpemUtYWRqdXN0Ci1pbWFnZS1yZW5kZXJpbmcKKyNpbWFnZS1yZW5kZXJpbmcKIG1hcmtl
cgogbWFya2VyLWVuZAogbWFya2VyLW1pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxl
U2VsZWN0b3IuY3BwCmluZGV4IDZiMDk0MjZlYzBkNzcwZjRjZTQ1MGQ3MTZmNjU3YTdhOTVjOGRm
ZWUuLjhjYjZiN2U4YjE2OWYwYjU1M2M3NDAzNjZiMzMxZWM3MGViMjU5ZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTIxNCwxMyArMjE0LDYgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUq
IHZhbHVlKQogICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRKb2luU3R5bGUoKnByaW1pdGl2
ZVZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlJbWFnZVJlbmRlcmluZzoKLSAgICAgICAgewotICAgICAgICAgICAgSEFORExFX0lO
SEVSSVRfQU5EX0lOSVRJQUwoaW1hZ2VSZW5kZXJpbmcsIEltYWdlUmVuZGVyaW5nKQotICAgICAg
ICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRJ
bWFnZVJlbmRlcmluZygqcHJpbWl0aXZlVmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNoYXBlUmVuZGVyaW5nOgogICAgICAgICB7
CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzaGFwZVJlbmRlcmluZywg
U2hhcGVSZW5kZXJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTVmFs
dWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmlu
CmluZGV4IGEyYzlmODM3NzNhNGQ2NzQyNDEyMTYwZjYxOTlkYjkwNzk2N2M1YzQuLjQxN2E4ZDVl
NjI3Y2YwNmE1MzgzMjAzMmY0ODFmOWJhNWUzOGY4YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
VkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xOTcsNyArMTk3LDcgQEAgbGluZWFyUkdCCiAjIENT
U19QUk9QX0NPTE9SX1JFTkRFUklORwogI2F1dG8KICNvcHRpbWl6ZVNwZWVkCi1vcHRpbWl6ZVF1
YWxpdHkKKyNvcHRpbWl6ZVF1YWxpdHkKIAogIyMgQ1NTX1BST1BfRklMTAogI2N1cnJlbnRDb2xv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBkNDE2NTYy
MzcyYWM5NGYwNTQwNWM4YjY5MDA1ZWI5NjUzNmY3NjZjLi41ZjNkNjMzMDEwNjc1MGJhNmQ2Y2Ri
OGE2YzM0YTM4ZjhlOGFmOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0
KCkKICAgICAgICAgKCppdCktPmNhbnZhc1Jlc2l6ZWQodGhpcyk7CiB9CiAKLXZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVj
dCYgcikKK3ZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgSW50UmVjdCYgciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAg
Ly8gQ2xlYXIgdGhlIGRpcnR5IHJlY3QKICAgICBtX2RpcnR5UmVjdCA9IEZsb2F0UmVjdCgpOwpA
QCAtMjgwLDExICsyODAsMTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQogICAgICAgICBJbWFnZUJ1ZmZl
ciogaW1hZ2VCdWZmZXIgPSBidWZmZXIoKTsKICAgICAgICAgaWYgKGltYWdlQnVmZmVyKSB7CiAg
ICAgICAgICAgICBpZiAobV9wcmVzZW50ZWRJbWFnZSkKLSAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwg
cik7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1hZ2Uu
Z2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHIsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHVzZUxv
d1F1YWxpdHlTY2FsZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChpbWFnZUJ1ZmZlci0+ZHJhd3NV
c2luZ0NvcHkoKSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UoY29waWVkSW1h
Z2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgcik7CisgICAgICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0ltYWdlKGNvcGllZEltYWdlKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHIsIENvbXBvc2l0
ZVNvdXJjZU92ZXIsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBDb2xvclNw
YWNlRGV2aWNlUkdCLCByKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2VCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHIsIENvbXBvc2l0ZVNvdXJjZU92
ZXIsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA5N2Q1NWNjNDk4MTYyNmM1NTJiMTA4NWNl
OWMzOGQ0OWE3NjYyNjc5Li45ZGI5NjczOTEzNjliZDUyMDAzZTY0NTA3NGE4ZjY3Njc5YzY2ZjI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC05Nyw3ICs5Nyw3
IEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIGZvciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXco
Y29uc3QgRmxvYXRSZWN0Jik7CiAKLSAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFJlY3QmKTsKKyAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IElu
dFJlY3QmLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKIAogICAgIEdyYXBoaWNz
Q29udGV4dCogZHJhd2luZ0NvbnRleHQoKSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHQqIGV4
aXN0aW5nRHJhd2luZ0NvbnRleHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUmVuZGVyaW5nTW9kZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZW5kZXJpbmdNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U0NjJm
YmE1OGUwMjM2NTVhZDg1NTE3YTQ5YzJkZTYzYTIyNDVkMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUmVuZGVyaW5nTW9kZS5oCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbWFnZVJlbmRlcmluZ01vZGVfaAorI2RlZmluZSBJ
bWFnZVJlbmRlcmluZ01vZGVfaAorICAgIAorbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIElt
YWdlUmVuZGVyaW5nTW9kZSB7IEF1dG9JbWFnZVJlbmRlcmluZywgT3B0aW1pemVDb250cmFzdCB9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisgICAgCisjZW5kaWYgLy8gSW1hZ2VSZW5kZXJp
bmdNb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCmluZGV4IGMwM2JhM2JjZGUwZWYxMDBhNTlhNWM2MzRlZDI2NWEwODE1OTgxM2Iu
LmIyNTIxN2U5NmFiNmU4MDUxZGY4ZmRkYWNiMGM3OTAwZmRhODVlNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTM5LDYg
KzEzOSw5IEBAIGJvb2wgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6c2hvdWxkUGFpbnRBdExvd1F1
YWxpdHkoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBSCiAgICAgaWYgKCFpbWFnZSB8fCAhaW1h
Z2UtPmlzQml0bWFwSW1hZ2UoKSB8fCBjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChvYmplY3QtPnN0eWxlKCktPmltYWdlUmVuZGVy
aW5nKCkgPT0gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0KQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAKICAgICAvLyBNYWtlIHN1cmUgdG8gdXNlIHRoZSB1bnpvb21lZCBpbWFnZSBz
aXplLCBzaW5jZSBpZiBhIGZ1bGwgcGFnZSB6b29tIGlzIGluIGVmZmVjdCwgdGhlIGltYWdlCiAg
ICAgLy8gaXMgYWN0dWFsbHkgYmVpbmcgc2NhbGVkLgogICAgIEludFNpemUgaW1hZ2VTaXplKGlt
YWdlLT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCmluZGV4IGRlMmEyYzE1NmYxZDgzYzI4OTJlOTIyYWZk
Zjc2MGVlMDYwNjdlMWYuLjgyMWM1YjAwNDYzZDVjMDE1MGM5OGEzZDdlYTc5MGM3MDcxMjFkMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKQEAg
LTU4LDcgKzU4LDggQEAgdm9pZCBSZW5kZXJIVE1MQ2FudmFzOjpwYWludFJlcGxhY2VkKFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKIHsKICAgICBJbnRSZWN0IHJlY3QgPSBj
b250ZW50Qm94UmVjdCgpOwogICAgIHJlY3QubW92ZSh0eCwgdHkpOwotICAgIHN0YXRpY19jYXN0
PEhUTUxDYW52YXNFbGVtZW50Kj4obm9kZSgpKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIHJl
Y3QpOworICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gc3R5bGUoKS0+aW1hZ2VSZW5kZXJp
bmcoKSA9PSBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3Q7CisgICAgc3RhdGljX2Nhc3Q8
SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKCkpLT5wYWludChwYWludEluZm8uY29udGV4dCwgcmVj
dCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBSZW5kZXJIVE1MQ2FudmFzOjpjYW52
YXNTaXplQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAppbmRleCA3ZDg2NjNhOTg3OGVjNTcyNmM3NjY1OTZkODllN2FkNzE4YjZjMzhh
Li40ZWE4YjI5MWNiMDdlYWQ0MGYyZjg2ZDYxNzE3MjBiZjQ1MDcxZWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTU2MCw3ICs1NjAs
OCBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUq
IG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0
YS0+dGV4dEZpbGxDb2xvciAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPnRleHRGaWxsQ29s
b3IKICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPnRleHRTdHJva2VDb2xvciAhPSBvdGhl
ci0+cmFyZUluaGVyaXRlZERhdGEtPnRleHRTdHJva2VDb2xvcgogICAgICAgICB8fCByYXJlSW5o
ZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzQ29sb3IgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRh
LT50ZXh0RW1waGFzaXNDb2xvcgotICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVt
cGhhc2lzRmlsbCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0ZpbGwp
CisgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNGaWxsICE9IG90aGVy
LT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzRmlsbAorICAgICAgICB8fCByYXJlSW5o
ZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRlcmluZyAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
Pm1faW1hZ2VSZW5kZXJpbmcpCiAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZXBhaW50
OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAyM2Y1NTM1ZjEyODU1ZjJiYjAxNWZi
Mjk2YzYwOTAyMjljZDZkYWE2Li43NDNmOWZlNTk1ZTQyODk0NThlYmJmMDEzODU1YjczN2JhMzg2
NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApA
QCAtNzgzLDYgKzc4Myw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmxpcHBlZExpbmVzV3JpdGlu
Z01vZGUoKSBjb25zdCB7IHJldHVybiB3cml0aW5nTW9kZSgpID09IExlZnRUb1JpZ2h0V3JpdGlu
Z01vZGUgfHwgd3JpdGluZ01vZGUoKSA9PSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOyB9CiAgICAg
Ym9vbCBpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdN
b2RlKCkgPT0gUmlnaHRUb0xlZnRXcml0aW5nTW9kZSB8fCB3cml0aW5nTW9kZSgpID09IEJvdHRv
bVRvVG9wV3JpdGluZ01vZGU7IH0KIAorICAgIEVJbWFnZVJlbmRlcmluZyBpbWFnZVJlbmRlcmlu
ZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVJbWFnZVJlbmRlcmluZz4ocmFyZUluaGVy
aXRlZERhdGEtPm1faW1hZ2VSZW5kZXJpbmcpOyB9CisgICAgCiAgICAgRVNwZWFrIHNwZWFrKCkg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RVNwZWFrPihyYXJlSW5oZXJpdGVkRGF0YS0+c3BlYWspOyB9
CiAgICAgICAgIAogLy8gYXR0cmlidXRlIHNldHRlciBtZXRob2RzCkBAIC05MzQsNiArOTM2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TGluZUhlaWdodChMZW5ndGggdikgeyBTRVRfVkFSKGlu
aGVyaXRlZCwgbGluZV9oZWlnaHQsIHYpIH0KICAgICB2b2lkIHNldFpvb20oZmxvYXQgZikgeyBT
RVRfVkFSKHZpc3VhbCwgbV96b29tLCBmKTsgc2V0RWZmZWN0aXZlWm9vbShlZmZlY3RpdmVab29t
KCkgKiB6b29tKCkpOyB9CiAgICAgdm9pZCBzZXRFZmZlY3RpdmVab29tKGZsb2F0IGYpIHsgU0VU
X1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV9lZmZlY3RpdmVab29tLCBmKSB9CisgICAgdm9pZCBz
ZXRJbWFnZVJlbmRlcmluZyhFSW1hZ2VSZW5kZXJpbmcgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0
ZWREYXRhLCBtX2ltYWdlUmVuZGVyaW5nLCB2KSB9CiAKICAgICB2b2lkIHNldFdoaXRlU3BhY2Uo
RVdoaXRlU3BhY2UgdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3doaXRlX3NwYWNlID0gdjsgfQogCkBA
IC0xMzE3LDYgKzEzMjAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgaW5pdGlhbFRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKSB7IHJldHVybiBudWxsQXRvbTsgfQog
ICAgIHN0YXRpYyBUZXh0RW1waGFzaXNQb3NpdGlvbiBpbml0aWFsVGV4dEVtcGhhc2lzUG9zaXRp
b24oKSB7IHJldHVybiBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXI7IH0KICAgICBzdGF0aWMgTGlu
ZUJveENvbnRhaW4gaW5pdGlhbExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGluZUJveENvbnRh
aW5CbG9jayB8IExpbmVCb3hDb250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5SZXBsYWNlZDsg
fQorICAgIHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyBy
ZXR1cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOyB9CiAKICAgICAvLyBLZWVwIHRoZXNlIGF0IHRoZSBl
bmQuCiAgICAgc3RhdGljIExpbmVDbGFtcFZhbHVlIGluaXRpYWxMaW5lQ2xhbXAoKSB7IHJldHVy
biBMaW5lQ2xhbXBWYWx1ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGM1NGVjY2ZhODI2ZGE5YmQ3NTM4
ODRiYjJjYWNlMDIyOTliZTg0MGIuLjQxZDhmNjUwYTZhODg0NTJhOGM5ZGE2NzliYmVkYmY3ZTE3
YmU1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oCkBAIC00MjYsNiArNDI2LDggQEAgZW51bSBUZXh0RW1waGFzaXNN
YXJrIHsgVGV4dEVtcGhhc2lzTWFya05vbmUsIFRleHRFbXBoYXNpc01hcmtBdXRvLCBUZXh0RW1w
aGFzaXMKIAogZW51bSBUZXh0RW1waGFzaXNQb3NpdGlvbiB7IFRleHRFbXBoYXNpc1Bvc2l0aW9u
T3ZlciwgVGV4dEVtcGhhc2lzUG9zaXRpb25VbmRlciB9OwogCitlbnVtIEVJbWFnZVJlbmRlcmlu
ZyB7IEltYWdlUmVuZGVyaW5nQXV0bywgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkLCBJbWFn
ZVJlbmRlcmluZ09wdGltaXplUXVhbGl0eSwgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0
IH07CisgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZW5kZXJTdHls
ZUNvbnN0YW50c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1Jl
bmRlclN0eWxlLmNwcAppbmRleCBiMmJlNDhlODFmMzkxYzdkNGVhNzZkMDVmZjkwYWI4YWU5MDQ4
OGE5Li42MDQ5Zjc0ZGNlNTRjYjQ2ZGM0YWVmMjQ4M2NjYzNkYjMxYjVkMzQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAKQEAgLTIw
Myw3ICsyMDMsNiBAQCBTdHlsZURpZmZlcmVuY2UgU1ZHUmVuZGVyU3R5bGU6OmRpZmYoY29uc3Qg
U1ZHUmVuZGVyU3R5bGUqIG90aGVyKSBjb25zdAogCiAgICAgLy8gQ2hhbmdlcyBvZiB0aGVzZSBm
bGFncyBvbmx5IGNhdXNlIHJlcGFpbnRzLgogICAgIGlmIChzdmdfaW5oZXJpdGVkX2ZsYWdzLl9j
b2xvclJlbmRlcmluZyAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJp
bmcKLSAgICAgICAgfHwgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VSZW5kZXJpbmcgIT0gb3Ro
ZXItPnN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ltYWdlUmVuZGVyaW5nCiAgICAgICAgIHx8IHN2Z19p
bmhlcml0ZWRfZmxhZ3MuX3NoYXBlUmVuZGVyaW5nICE9IG90aGVyLT5zdmdfaW5oZXJpdGVkX2Zs
YWdzLl9zaGFwZVJlbmRlcmluZwogICAgICAgICB8fCBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jbGlw
UnVsZSAhPSBvdGhlci0+c3ZnX2luaGVyaXRlZF9mbGFncy5fY2xpcFJ1bGUKICAgICAgICAgfHwg
c3ZnX2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUgIT0gb3RoZXItPnN2Z19pbmhlcml0ZWRfZmxh
Z3MuX2ZpbGxSdWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5k
ZXJTdHlsZS5oCmluZGV4IDg4YTQ4ZGY1YTM2ZjgyYjJkMmJhMGQxMzE4NWMyNDliYzFhNTc0YmMu
LjBmZTRhODBjZGZjZDUyMWY0NzM3ZDM3ZmMyZjFjNWI1YzMzMmU5ZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCkBAIC02Myw3ICs2Myw2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRUNvbG9ySW50ZXJwb2xhdGlvbiBpbml0aWFsQ29sb3JJ
bnRlcnBvbGF0aW9uRmlsdGVycygpIHsgcmV0dXJuIENJX0xJTkVBUlJHQjsgfQogICAgIHN0YXRp
YyBFQ29sb3JSZW5kZXJpbmcgaW5pdGlhbENvbG9yUmVuZGVyaW5nKCkgeyByZXR1cm4gQ1JfQVVU
TzsgfQogICAgIHN0YXRpYyBXaW5kUnVsZSBpbml0aWFsRmlsbFJ1bGUoKSB7IHJldHVybiBSVUxF
X05PTlpFUk87IH0KLSAgICBzdGF0aWMgRUltYWdlUmVuZGVyaW5nIGluaXRpYWxJbWFnZVJlbmRl
cmluZygpIHsgcmV0dXJuIElSX0FVVE87IH0KICAgICBzdGF0aWMgTGluZUpvaW4gaW5pdGlhbEpv
aW5TdHlsZSgpIHsgcmV0dXJuIE1pdGVySm9pbjsgfQogICAgIHN0YXRpYyBFU2hhcGVSZW5kZXJp
bmcgaW5pdGlhbFNoYXBlUmVuZGVyaW5nKCkgeyByZXR1cm4gU1JfQVVUTzsgfQogICAgIHN0YXRp
YyBFVGV4dEFuY2hvciBpbml0aWFsVGV4dEFuY2hvcigpIHsgcmV0dXJuIFRBX1NUQVJUOyB9CkBA
IC0xNDAsNyArMTM5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29sb3JJbnRlcnBvbGF0aW9u
RmlsdGVycyhFQ29sb3JJbnRlcnBvbGF0aW9uIHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9j
b2xvckludGVycG9sYXRpb25GaWx0ZXJzID0gdmFsOyB9CiAgICAgdm9pZCBzZXRDb2xvclJlbmRl
cmluZyhFQ29sb3JSZW5kZXJpbmcgdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVu
ZGVyaW5nID0gdmFsOyB9CiAgICAgdm9pZCBzZXRGaWxsUnVsZShXaW5kUnVsZSB2YWwpIHsgc3Zn
X2luaGVyaXRlZF9mbGFncy5fZmlsbFJ1bGUgPSB2YWw7IH0KLSAgICB2b2lkIHNldEltYWdlUmVu
ZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2YWwpIHsgc3ZnX2luaGVyaXRlZF9mbGFncy5faW1hZ2VS
ZW5kZXJpbmcgPSB2YWw7IH0KICAgICB2b2lkIHNldEpvaW5TdHlsZShMaW5lSm9pbiB2YWwpIHsg
c3ZnX2luaGVyaXRlZF9mbGFncy5fam9pblN0eWxlID0gdmFsOyB9CiAgICAgdm9pZCBzZXRTaGFw
ZVJlbmRlcmluZyhFU2hhcGVSZW5kZXJpbmcgdmFsKSB7IHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3No
YXBlUmVuZGVyaW5nID0gdmFsOyB9CiAgICAgdm9pZCBzZXRUZXh0QW5jaG9yKEVUZXh0QW5jaG9y
IHZhbCkgeyBzdmdfaW5oZXJpdGVkX2ZsYWdzLl90ZXh0QW5jaG9yID0gdmFsOyB9CkBAIC0yOTcs
NyArMjk1LDYgQEAgcHVibGljOgogICAgIEVDb2xvckludGVycG9sYXRpb24gY29sb3JJbnRlcnBv
bGF0aW9uRmlsdGVycygpIGNvbnN0IHsgcmV0dXJuIChFQ29sb3JJbnRlcnBvbGF0aW9uKSBzdmdf
aW5oZXJpdGVkX2ZsYWdzLl9jb2xvckludGVycG9sYXRpb25GaWx0ZXJzOyB9CiAgICAgRUNvbG9y
UmVuZGVyaW5nIGNvbG9yUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gKEVDb2xvclJlbmRlcmlu
Zykgc3ZnX2luaGVyaXRlZF9mbGFncy5fY29sb3JSZW5kZXJpbmc7IH0KICAgICBXaW5kUnVsZSBm
aWxsUnVsZSgpIGNvbnN0IHsgcmV0dXJuIChXaW5kUnVsZSkgc3ZnX2luaGVyaXRlZF9mbGFncy5f
ZmlsbFJ1bGU7IH0KLSAgICBFSW1hZ2VSZW5kZXJpbmcgaW1hZ2VSZW5kZXJpbmcoKSBjb25zdCB7
IHJldHVybiAoRUltYWdlUmVuZGVyaW5nKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9pbWFnZVJlbmRl
cmluZzsgfQogICAgIExpbmVKb2luIGpvaW5TdHlsZSgpIGNvbnN0IHsgcmV0dXJuIChMaW5lSm9p
bikgc3ZnX2luaGVyaXRlZF9mbGFncy5fam9pblN0eWxlOyB9CiAgICAgRVNoYXBlUmVuZGVyaW5n
IHNoYXBlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gKEVTaGFwZVJlbmRlcmluZykgc3ZnX2lu
aGVyaXRlZF9mbGFncy5fc2hhcGVSZW5kZXJpbmc7IH0KICAgICBFVGV4dEFuY2hvciB0ZXh0QW5j
aG9yKCkgY29uc3QgeyByZXR1cm4gKEVUZXh0QW5jaG9yKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl90
ZXh0QW5jaG9yOyB9CkBAIC0zNDYsNyArMzQzLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgSW5oZXJpdGVkRmxhZ3MmIG90aGVyKSBjb25zdAogICAgICAgICB7
CiAgICAgICAgICAgICByZXR1cm4gKF9jb2xvclJlbmRlcmluZyA9PSBvdGhlci5fY29sb3JSZW5k
ZXJpbmcpCi0gICAgICAgICAgICAgICAgJiYgKF9pbWFnZVJlbmRlcmluZyA9PSBvdGhlci5faW1h
Z2VSZW5kZXJpbmcpCiAgICAgICAgICAgICAgICAgJiYgKF9zaGFwZVJlbmRlcmluZyA9PSBvdGhl
ci5fc2hhcGVSZW5kZXJpbmcpCiAgICAgICAgICAgICAgICAgJiYgKF9jbGlwUnVsZSA9PSBvdGhl
ci5fY2xpcFJ1bGUpCiAgICAgICAgICAgICAgICAgJiYgKF9maWxsUnVsZSA9PSBvdGhlci5fZmls
bFJ1bGUpCkBAIC0zNjYsNyArMzYyLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICB9CiAKICAgICAg
ICAgdW5zaWduZWQgX2NvbG9yUmVuZGVyaW5nIDogMjsgLy8gRUNvbG9yUmVuZGVyaW5nCi0gICAg
ICAgIHVuc2lnbmVkIF9pbWFnZVJlbmRlcmluZyA6IDI7IC8vIEVJbWFnZVJlbmRlcmluZyAKICAg
ICAgICAgdW5zaWduZWQgX3NoYXBlUmVuZGVyaW5nIDogMjsgLy8gRVNoYXBlUmVuZGVyaW5nIAog
ICAgICAgICB1bnNpZ25lZCBfY2xpcFJ1bGUgOiAxOyAvLyBXaW5kUnVsZQogICAgICAgICB1bnNp
Z25lZCBfZmlsbFJ1bGUgOiAxOyAvLyBXaW5kUnVsZQpAQCAtNDIyLDcgKzQxNyw2IEBAIHByaXZh
dGU6CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NsaXBSdWxlID0gaW5pdGlhbENsaXBS
dWxlKCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2NvbG9yUmVuZGVyaW5nID0gaW5p
dGlhbENvbG9yUmVuZGVyaW5nKCk7CiAgICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2ZpbGxS
dWxlID0gaW5pdGlhbEZpbGxSdWxlKCk7Ci0gICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2lt
YWdlUmVuZGVyaW5nID0gaW5pdGlhbEltYWdlUmVuZGVyaW5nKCk7CiAgICAgICAgIHN2Z19pbmhl
cml0ZWRfZmxhZ3MuX3NoYXBlUmVuZGVyaW5nID0gaW5pdGlhbFNoYXBlUmVuZGVyaW5nKCk7CiAg
ICAgICAgIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX3RleHRBbmNob3IgPSBpbml0aWFsVGV4dEFuY2hv
cigpOwogICAgICAgICBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9jYXBTdHlsZSA9IGluaXRpYWxDYXBT
dHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1Jl
bmRlclN0eWxlRGVmcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRl
clN0eWxlRGVmcy5oCmluZGV4IDAwMzU4YTBkNTdiOWJhNmU1OTY3YjUyNmY4NWVkYTllZjVhMzFj
NDAuLjJjMzNjNmRjOWJkZDg4OGNlYmEyYzFhODRmOGY3NTlhMmEyYTA5N2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKQEAg
LTU0LDExICs1NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBlbnVtIEVDb2xvclJlbmRl
cmluZyB7CiAgICAgICAgIENSX0FVVE8sIENSX09QVElNSVpFU1BFRUQsIENSX09QVElNSVpFUVVB
TElUWQogICAgIH07Ci0gICAgCi0gICAgZW51bSBFSW1hZ2VSZW5kZXJpbmcgewotICAgICAgICBJ
Ul9BVVRPLCBJUl9PUFRJTUlaRVNQRUVELCBJUl9PUFRJTUlaRVFVQUxJVFkKLSAgICB9OwotCiAg
ICAgZW51bSBFU2hhcGVSZW5kZXJpbmcgewogICAgICAgICBTUl9BVVRPLCBTUl9PUFRJTUlaRVNQ
RUVELCBTUl9DUklTUEVER0VTLCBTUl9HRU9NRVRSSUNQUkVDSVNJT04KICAgICB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuY3BwCmluZGV4IGMzODQ2MTE2NmJmYmMyYjE1NGYzYTY5MjZhNTNlYjc3YTU2YTUwY2Yu
LjExNjA2YjE4YTc2OTYwODdmYmFiZTNkNjg3OWQzNDZhNzIxM2IxMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAKQEAgLTUyLDYgKzUyLDcgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJl
SW5oZXJpdGVkRGF0YSgpCiAgICAgLCB0ZXh0RW1waGFzaXNNYXJrKFRleHRFbXBoYXNpc01hcmtO
b25lKQogICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVy
KQogICAgICwgbV9saW5lQm94Q29udGFpbihSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVCb3hDb250
YWluKCkpCisgICAgLCBtX2ltYWdlUmVuZGVyaW5nKFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VS
ZW5kZXJpbmcoKSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRCZWZvcmUoLTEpCiAgICAgLCBoeXBo
ZW5hdGlvbkxpbWl0QWZ0ZXIoLTEpCiB7CkBAIC04Niw2ICs4Nyw3IEBAIFN0eWxlUmFyZUluaGVy
aXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSYgbykKICAgICAsIHRleHRFbXBoYXNpc01hcmsoby50ZXh0RW1waGFzaXNNYXJrKQogICAg
ICwgdGV4dEVtcGhhc2lzUG9zaXRpb24oby50ZXh0RW1waGFzaXNQb3NpdGlvbikKICAgICAsIG1f
bGluZUJveENvbnRhaW4oby5tX2xpbmVCb3hDb250YWluKQorICAgICwgbV9pbWFnZVJlbmRlcmlu
ZyhvLm1faW1hZ2VSZW5kZXJpbmcpCiAgICAgLCBoeXBoZW5hdGlvblN0cmluZyhvLmh5cGhlbmF0
aW9uU3RyaW5nKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5cGhlbmF0aW9uTGlt
aXRCZWZvcmUpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoby5oeXBoZW5hdGlvbkxpbWl0
QWZ0ZXIpCkBAIC0xNDEsNyArMTQzLDggQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpv
cGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAg
ICYmIGh5cGhlbmF0aW9uU3RyaW5nID09IG8uaHlwaGVuYXRpb25TdHJpbmcKICAgICAgICAgJiYg
bG9jYWxlID09IG8ubG9jYWxlCiAgICAgICAgICYmIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsgPT0g
by50ZXh0RW1waGFzaXNDdXN0b21NYXJrCi0gICAgICAgICYmICpxdW90ZXMgPT0gKm8ucXVvdGVz
OworICAgICAgICAmJiAqcXVvdGVzID09ICpvLnF1b3RlcworICAgICAgICAmJiBtX2ltYWdlUmVu
ZGVyaW5nID09IG8ubV9pbWFnZVJlbmRlcmluZzsKIH0KIAogYm9vbCBTdHlsZVJhcmVJbmhlcml0
ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRh
JiBvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggZGE0MTBmMWFjNjgyNzM0MWZkMzg3OGVmMmJi
Zjk1Zjg5YmZkMDIyNi4uYjk5MGVmODZlZTQzNjM2MmY2NzM1ODRhOGEyOWFkNzRkNTRmNTMyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5oCkBAIC04NSw2ICs4NSw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0
ZXh0RW1waGFzaXNNYXJrIDogMzsgLy8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVkIHRl
eHRFbXBoYXNpc1Bvc2l0aW9uIDogMTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1bnNp
Z25lZCBtX2xpbmVCb3hDb250YWluOiA3OyAvLyBMaW5lQm94Q29udGFpbgorICAgIC8vIENTUyBJ
bWFnZSBWYWx1ZXMgTGV2ZWwgMworICAgIHVuc2lnbmVkIG1faW1hZ2VSZW5kZXJpbmcgOiAyOyAv
LyBFSW1hZ2VSZW5kZXJpbmcKKwogCiAgICAgQXRvbWljU3RyaW5nIGh5cGhlbmF0aW9uU3RyaW5n
OwogICAgIHNob3J0IGh5cGhlbmF0aW9uTGltaXRCZWZvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBkOWU4NGU1
OTBiNTA0YjAyMTNlYTY3NWY4N2Y1NTM3NjJlZDJjNDM0Li43NmI5YzllMjJhNWYzNTZiZDdhYWY5
OWQwZWI1ZjMyYmQxYTUzYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMg
dm9pZCB3cml0ZVN0eWxlKFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG9iamVj
dCkKIAogICAgIGlmICghb2JqZWN0LmxvY2FsVHJhbnNmb3JtKCkuaXNJZGVudGl0eSgpKQogICAg
ICAgICB3cml0ZU5hbWVWYWx1ZVBhaXIodHMsICJ0cmFuc2Zvcm0iLCBvYmplY3QubG9jYWxUcmFu
c2Zvcm0oKSk7Ci0gICAgd3JpdGVJZk5vdERlZmF1bHQodHMsICJpbWFnZSByZW5kZXJpbmciLCBz
dmdTdHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJl
bmRlcmluZygpKTsKKyAgICB3cml0ZUlmTm90RGVmYXVsdCh0cywgImltYWdlIHJlbmRlcmluZyIs
IHN0eWxlLT5pbWFnZVJlbmRlcmluZygpLCBSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVuZGVy
aW5nKCkpOwogICAgIHdyaXRlSWZOb3REZWZhdWx0KHRzLCAib3BhY2l0eSIsIHN0eWxlLT5vcGFj
aXR5KCksIFJlbmRlclN0eWxlOjppbml0aWFsT3BhY2l0eSgpKTsKICAgICBpZiAob2JqZWN0Lmlz
U1ZHUGF0aCgpKSB7CiAgICAgICAgIGNvbnN0IFJlbmRlclNWR1BhdGgmIHBhdGggPSBzdGF0aWNf
Y2FzdDxjb25zdCBSZW5kZXJTVkdQYXRoJj4ob2JqZWN0KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>