<?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>68472</bug_id>
          
          <creation_ts>2011-09-20 14:09:39 -0700</creation_ts>
          <short_desc>Move/copy/merge SVG filter rendering code to generic rendering</short_desc>
          <delta_ts>2011-11-10 14:22:10 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>68471</dependson>
          <blocked>72058</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>macpherson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>470322</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-20 14:09:39 -0700</bug_when>
    <thetext>This will allow filter operations to render HTML elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470323</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-09-20 14:10:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/10155660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471087</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-09-21 13:06:11 -0700</bug_when>
    <thetext>At the moment SVGRenderSupport::prepareToRenderSVGContent and SVGRenderSupport::finishRenderSVGContent are the places that call into the generic filter stuff. This bug is about moving that out to RenderLayer or wherever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487118</commentid>
    <comment_count>3</comment_count>
      <attachid>111693</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-10-19 16:29:59 -0700</bug_when>
    <thetext>Created attachment 111693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487138</commentid>
    <comment_count>4</comment_count>
      <attachid>111693</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-19 16:53:30 -0700</bug_when>
    <thetext>Comment on attachment 111693
Patch

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

I think there are two big chunks missing here, and I&apos;m curious about how you plan to implement them:
1. incremental repaints: you need to map a rect through the filter chain. Filters need the ability to say how they affect a given rect. This rect mapping should be used in the repaint code path.
2. How filters expand the visual overflow of an element (also repaint-related).

&gt; Source/WebCore/rendering/RenderFilter.h:44
&gt; +class RenderFilter : public Filter {

I&apos;m not sure that RenderFilter is the best name for this, since it doesn&apos;t inherit from RenderObject. Maybe RendererFilter? EffectsFilter?

&gt; Source/WebCore/rendering/RenderFilter.h:52
&gt; +    virtual void setSourceImageRect(const FloatRect&amp; sourceImageRect) { m_sourceDrawingRegion = sourceImageRect; }
&gt; +    virtual FloatRect sourceImageRect() const { return m_sourceDrawingRegion; }

Should these all be LayoutRects?

&gt; Source/WebCore/rendering/RenderFilter.h:57
&gt; +    virtual bool effectBoundingBoxMode() const { return false; }

This method has a terrible name. What kind of mode is this?

&gt; Source/WebCore/rendering/RenderLayer.cpp:2696
&gt; +        m_filter-&gt;setSavedContext(p);

Why does the filter have to know what the original destination context is?

&gt; Source/WebCore/rendering/RenderLayer.cpp:2709
&gt; +        p-&gt;save();
&gt; +        p-&gt;concatCTM(transform.toAffineTransform());

I don&apos;t really like the save here, and the restore in some other code block a long way below.

Can you do what we do for transforms, and call back into paintLayer?

Does this filter before or after CSS shadows are applied? Which should it be?

&gt; Source/WebCore/rendering/RenderLayer.cpp:2875
&gt; +        p-&gt;drawImageBuffer(m_filter-&gt;effect()-&gt;asImageBuffer(), renderer()-&gt;style()-&gt;colorSpace(), layerBounds, CompositeSourceOver);

Doesn&apos;t the color space need to be passed through the filter chain somehow?

&gt; Source/WebCore/rendering/RenderLayer.cpp:4385
&gt; +void RenderLayer::createFilter()
&gt; +{
&gt; +    ASSERT(!m_filter);
&gt; +    m_filter = RenderFilter::create();
&gt; +}
&gt; +
&gt; +void RenderLayer::removeFilter()
&gt; +{
&gt; +    m_filter = 0;
&gt; +}
&gt; +

It&apos;s not clear to me that RenderLayer is the right thing to own the filter. Maybe the RenderObject should own it?

&gt; Source/WebCore/rendering/RenderLayer.cpp:4398
&gt; +    // For the moment all filter effects are hardcoded to hue-rotate(180deg).
&gt; +    // See https://bugs.webkit.org/show_bug.cgi?id=68474 and
&gt; +    // https://bugs.webkit.org/show_bug.cgi?id=68475
&gt; +
&gt; +    RefPtr&lt;SourceGraphic&gt; sourceGraphic = SourceGraphic::create(m_filter.get());
&gt; +    m_filter-&gt;setSourceGraphic(sourceGraphic);
&gt; +    Vector&lt;float&gt; inputParameters;
&gt; +    inputParameters.append(180);
&gt; +    RefPtr&lt;FEColorMatrix&gt; matrix = FEColorMatrix::create(m_filter.get(), FECOLORMATRIX_TYPE_HUEROTATE, inputParameters);
&gt; +    matrix-&gt;inputEffects().append(sourceGraphic);
&gt; +    m_filter-&gt;setEffect(matrix);

I don&apos;t think it&apos;s appropriate to check in a hard-coded filter effect.

&gt; Source/WebCore/rendering/RenderObject.h:926
&gt; +    bool m_hasFilter                 : 1;

See comment higher up:
    // 32 bits have been used here. THERE ARE NO FREE BITS AVAILABLE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487148</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-10-19 17:02:31 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=111693&amp;action=review

Just a few nits. Overall looks good...

&gt; Source/WebCore/rendering/RenderFilter.h:57
&gt; +    virtual bool effectBoundingBoxMode() const { return false; }

I&apos;m not sure what this mode does. Maybe a comment?

&gt; Source/WebCore/rendering/RenderFilter.h:69
&gt; +    RenderFilter();

Don&apos;t at least some compilers require an explicit virtual dtor if you have virtual methods?

&gt; Source/WebCore/rendering/RenderInline.cpp:127
&gt; +    setHasReflection(false);

What&apos;s the diff here?

&gt; Source/WebCore/rendering/RenderLayer.cpp:4232
&gt; +    if (!hasFilter() &amp;&amp; m_filter)

I&apos;ve always disliked testing a variable directly and then using a function to change it. Maybe just get rid of the &quot;&amp;&amp; m_filter&quot; and do and early exit from removeFilter() if it&apos;s null?&quot;

&gt; Source/WebCore/rendering/RenderLayer.cpp:4235
&gt; +        if (!m_filter)

Same here

&gt; Source/WebCore/rendering/RenderLayer.cpp:4388
&gt; +    // For the moment all filter effects are hardcoded to hue-rotate(180deg).

This should be a FIXME

&gt; Source/WebCore/rendering/RenderLayer.cpp:4396
&gt; +    RefPtr&lt;FEColorMatrix&gt; matrix = FEColorMatrix::create(m_filter.get(), FECOLORMATRIX_TYPE_HUEROTATE, inputParameters);

Does the HueRotate filter expect its angle in degrees? It doesn&apos;t allow units?

&gt; Source/WebCore/rendering/RenderLayer.cpp:4411
&gt; +            m_filter-&gt;setSourceImage(ImageBuffer::create(layoutSize));

It seems odd to set these 4 values here, when all you&apos;re doing is updating the value of sourceImageRect. It would be better if you just set sourceImageRect and let it set the other 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487159</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-10-19 17:14:20 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 111693 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111693&amp;action=review
&gt; 
&gt; I think there are two big chunks missing here, and I&apos;m curious about how you plan to implement them:
&gt; 1. incremental repaints: you need to map a rect through the filter chain. Filters need the ability to say how they affect a given rect. This rect mapping should be used in the repaint code path.

Yep. We can do that, but obviously not with the patch I submitted. We&apos;ll have to get the Filters to tell us what the output region is so we can expand the overflow.

&gt; 2. How filters expand the visual overflow of an element (also repaint-related).

Each filter effect will need to tell us what the output region is for a given input. I think that&apos;s easy for the shorthand filters as only blur expands the region and we know by how much. For generic SVG, we&apos;ll have a trickier time, and some filters have infinite output (e.g. flood and turbulence). 

&gt; &gt; Source/WebCore/rendering/RenderFilter.h:44
&gt; &gt; +class RenderFilter : public Filter {
&gt; 
&gt; I&apos;m not sure that RenderFilter is the best name for this, since it doesn&apos;t inherit from RenderObject. Maybe RendererFilter? EffectsFilter?

Good point.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFilter.h:52
&gt; &gt; +    virtual void setSourceImageRect(const FloatRect&amp; sourceImageRect) { m_sourceDrawingRegion = sourceImageRect; }
&gt; &gt; +    virtual FloatRect sourceImageRect() const { return m_sourceDrawingRegion; }
&gt; 
&gt; Should these all be LayoutRects?

Sure.
 
&gt; &gt; Source/WebCore/rendering/RenderFilter.h:57
&gt; &gt; +    virtual bool effectBoundingBoxMode() const { return false; }
&gt; 
&gt; This method has a terrible name. What kind of mode is this?

TBH, I haven&apos;t even looked. I&apos;ll follow the virtual function and see what it actually does. Maybe it is something we can use.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:2696
&gt; &gt; +        m_filter-&gt;setSavedContext(p);
&gt; 
&gt; Why does the filter have to know what the original destination context is?

It doesn&apos;t. It should just be a local variable in the paint.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:2709
&gt; &gt; +        p-&gt;save();
&gt; &gt; +        p-&gt;concatCTM(transform.toAffineTransform());
&gt; 
&gt; I don&apos;t really like the save here, and the restore in some other code block a long way below.
&gt; 
&gt; Can you do what we do for transforms, and call back into paintLayer?

OK.

&gt; 
&gt; Does this filter before or after CSS shadows are applied? Which should it be?

It filters after shadows.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:2875
&gt; &gt; +        p-&gt;drawImageBuffer(m_filter-&gt;effect()-&gt;asImageBuffer(), renderer()-&gt;style()-&gt;colorSpace(), layerBounds, CompositeSourceOver);
&gt; 
&gt; Doesn&apos;t the color space need to be passed through the filter chain somehow?

Yes, but not in this hardcoded patch. 

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:4385
&gt; &gt; +void RenderLayer::createFilter()
&gt; &gt; +{
&gt; &gt; +    ASSERT(!m_filter);
&gt; &gt; +    m_filter = RenderFilter::create();
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void RenderLayer::removeFilter()
&gt; &gt; +{
&gt; &gt; +    m_filter = 0;
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; It&apos;s not clear to me that RenderLayer is the right thing to own the filter. Maybe the RenderObject should own it?

OK.

&gt; 
&gt; I don&apos;t think it&apos;s appropriate to check in a hard-coded filter effect.

I just didn&apos;t want to have this patch include the code for building a filter graph. Maybe it could start with only supporting hue-rotate? (or invert, that&apos;s an easy enough one)

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderObject.h:926
&gt; &gt; +    bool m_hasFilter                 : 1;
&gt; 
&gt; See comment higher up:
&gt;     // 32 bits have been used here. THERE ARE NO FREE BITS AVAILABLE.

Yikes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487169</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-10-19 17:31:58 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111693&amp;action=review
&gt; 
&gt; Just a few nits. Overall looks good...
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFilter.h:57
&gt; &gt; +    virtual bool effectBoundingBoxMode() const { return false; }
&gt; 
&gt; I&apos;m not sure what this mode does. Maybe a comment?

I don&apos;t know what it does either :)

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFilter.h:69
&gt; &gt; +    RenderFilter();
&gt; 
&gt; Don&apos;t at least some compilers require an explicit virtual dtor if you have virtual methods?


&gt; 
&gt; &gt; Source/WebCore/rendering/RenderInline.cpp:127
&gt; &gt; +    setHasReflection(false);
&gt; 
&gt; What&apos;s the diff here?

Spaces at the end of the line that the stylebot was complaining about.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:4232
&gt; &gt; +    if (!hasFilter() &amp;&amp; m_filter)
&gt; 
&gt; I&apos;ve always disliked testing a variable directly and then using a function to change it. Maybe just get rid of the &quot;&amp;&amp; m_filter&quot; and do and early exit from removeFilter() if it&apos;s null?&quot;

OK.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:4235
&gt; &gt; +        if (!m_filter)
&gt; 
&gt; Same here
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:4388
&gt; &gt; +    // For the moment all filter effects are hardcoded to hue-rotate(180deg).
&gt; 
&gt; This should be a FIXME

OK.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:4396
&gt; &gt; +    RefPtr&lt;FEColorMatrix&gt; matrix = FEColorMatrix::create(m_filter.get(), FECOLORMATRIX_TYPE_HUEROTATE, inputParameters);
&gt; 
&gt; Does the HueRotate filter expect its angle in degrees? It doesn&apos;t allow units?

Correct.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:4411
&gt; &gt; +            m_filter-&gt;setSourceImage(ImageBuffer::create(layoutSize));
&gt; 
&gt; It seems odd to set these 4 values here, when all you&apos;re doing is updating the value of sourceImageRect. It would be better if you just set sourceImageRect and let it set the other 3.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498532</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-08 17:02:01 -0800</bug_when>
    <thetext>(In reply to comment #6)

&gt; &gt; I think there are two big chunks missing here, and I&apos;m curious about how you plan to implement them:
&gt; &gt; 1. incremental repaints: you need to map a rect through the filter chain. Filters need the ability to say how they affect a given rect. This rect mapping should be used in the repaint code path.
&gt; 
&gt; Yep. We can do that, but obviously not with the patch I submitted. We&apos;ll have to get the Filters to tell us what the output region is so we can expand the overflow.

I don&apos;t want to do that in this patch. 

&gt; &gt; 2. How filters expand the visual overflow of an element (also repaint-related).
&gt; 
&gt; Each filter effect will need to tell us what the output region is for a given input. I think that&apos;s easy for the shorthand filters as only blur expands the region and we know by how much. For generic SVG, we&apos;ll have a trickier time, and some filters have infinite output (e.g. flood and turbulence). 

Ditto. At the moment we don&apos;t change the element dimensions.

&gt; &gt; &gt; +class RenderFilter : public Filter {
&gt; &gt; 
&gt; &gt; I&apos;m not sure that RenderFilter is the best name for this, since it doesn&apos;t inherit from RenderObject. Maybe RendererFilter? EffectsFilter?

FilterEffectsRenderer. I bet we&apos;ll come up with a better name soon.

&gt; &gt; &gt; +    virtual void setSourceImageRect(const FloatRect&amp; sourceImageRect) { m_sourceDrawingRegion = sourceImageRect; }
&gt; &gt; &gt; +    virtual FloatRect sourceImageRect() const { return m_sourceDrawingRegion; }
&gt; &gt; 
&gt; &gt; Should these all be LayoutRects?
&gt; 
&gt; Sure.

They can&apos;t. These are the virtual methods from FilterEffect.


&gt; &gt; Does this filter before or after CSS shadows are applied? Which should it be?
&gt; 
&gt; It filters after shadows.

Right now filtering comes after everything (including outline, shadows, reflections, masking). We&apos;ll coordinate on www-style as to where it really should happen.


&gt; &gt; I don&apos;t think it&apos;s appropriate to check in a hard-coded filter effect.
&gt; 
&gt; I just didn&apos;t want to have this patch include the code for building a filter graph. Maybe it could start with only supporting hue-rotate? (or invert, that&apos;s an easy enough one)

No longer hardcoded, but it still only supports hue-rotate.

&gt; &gt; &gt; Source/WebCore/rendering/RenderObject.h:926
&gt; &gt; &gt; +    bool m_hasFilter                 : 1;
&gt; &gt; 
&gt; &gt; See comment higher up:
&gt; &gt;     // 32 bits have been used here. THERE ARE NO FREE BITS AVAILABLE.
&gt; 
&gt; Yikes.

Moved this to a method on RenderStyle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498535</commentid>
    <comment_count>9</comment_count>
      <attachid>114179</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-08 17:04:24 -0800</bug_when>
    <thetext>Created attachment 114179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499206</commentid>
    <comment_count>10</comment_count>
      <attachid>114331</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-09 11:46:16 -0800</bug_when>
    <thetext>Created attachment 114331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499450</commentid>
    <comment_count>11</comment_count>
      <attachid>114331</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-09 16:18:50 -0800</bug_when>
    <thetext>Comment on attachment 114331
Patch

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

&gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:33261
&gt; +					ExcludedFromBuild=&quot;true&quot;

I don&apos;t think you want this here.

&gt; Source/WebCore/rendering/FilterEffectRenderer.h:69
&gt; +    virtual void setSourceGraphic(PassRefPtr&lt;SourceGraphic&gt; sourceGraphic) { m_sourceGraphic = sourceGraphic; }
&gt; +    virtual RefPtr&lt;SourceGraphic&gt; sourceGraphic() const { return m_sourceGraphic; }

I don&apos;t get why the input isn&apos;t an ImageBuffer, but that&apos;s just me.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2691
&gt; +        GraphicsContext* sourceGraphicsContext = m_filter-&gt;sourceImage()-&gt;context();

This all seems rather weird. I filed bug 71962.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2693
&gt; +        FloatRect paintRect = FloatRect(0, 0, size().width(), size().height());

FloatRect paintRect(FloatPoint(), size()).
Should this be in LayoutRects?

&gt; Source/WebCore/rendering/RenderLayer.cpp:2706
&gt; +        LayoutRect filterBounds = LayoutRect(layerOrigin.x(), layerOrigin.y(), size().width(), size().height());

filterBounds(layerOrigin(), size())?

&gt; Source/WebCore/rendering/RenderLayer.cpp:2709
&gt; +        p-&gt;drawImageBuffer(m_filter-&gt;effect()-&gt;asImageBuffer(), renderer()-&gt;style()-&gt;colorSpace(), filterBounds, CompositeSourceOver);

Should we clear the filter here? Does that throw away buffers?

&gt; Source/WebCore/rendering/RenderLayer.cpp:4244
&gt; +    if (hasFilter())
&gt; +        updateFilterEffect();

You could have updateFilterEffect() just do the hasFilter() test.

&gt; Source/WebCore/rendering/RenderLayer.cpp:4393
&gt; +    // For the moment we only support a single hue-rotate() filter.
&gt; +    // See https://bugs.webkit.org/show_bug.cgi?id=68474 and
&gt; +    // https://bugs.webkit.org/show_bug.cgi?id=68475
&gt; +
&gt; +    RefPtr&lt;FilterEffect&gt; effect;
&gt; +    FilterOperations filterOperations = renderer()-&gt;style()-&gt;filter();

It would be nice to be able to optimize this to do nothing if the filter style hasn&apos;t changed.

&gt; Source/WebCore/rendering/RenderLayer.cpp:4416
&gt; +void RenderLayer::updateFilterBackingStore()
&gt; +{

Seems pretty bogus to have to do this every time. Maybe covered by bug 71962.

&gt; LayoutTests/css3/filters/add-filter-rendering-expected.txt:9
&gt; +      text run at (0,0) width 572: &quot;This paragraph will have a filter applied. Once applied, it should have a green background.&quot;

Try to avoid text in pixel results. You could put the text in an HTML comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500220</commentid>
    <comment_count>12</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-10 13:36:45 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 114331 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114331&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:33261
&gt; &gt; +					ExcludedFromBuild=&quot;true&quot;
&gt; 
&gt; I don&apos;t think you want this here.

I added the file to the AllInOne when committing, so left this in.


&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:2693
&gt; &gt; +        FloatRect paintRect = FloatRect(0, 0, size().width(), size().height());
&gt; 
&gt; FloatRect paintRect(FloatPoint(), size()).
&gt; Should this be in LayoutRects?

The filter code expects FloatRects.

&gt; You could have updateFilterEffect() just do the hasFilter() test.

Done

&gt; It would be nice to be able to optimize this to do nothing if the filter style hasn&apos;t changed.

Yeah.

&gt; Try to avoid text in pixel results. You could put the text in an HTML comment.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500222</commentid>
    <comment_count>13</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-10 13:37:01 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/99893</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500248</commentid>
    <comment_count>14</comment_count>
      <attachid>114331</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 13:59:53 -0800</bug_when>
    <thetext>Comment on attachment 114331
Patch

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

Nice start Dean! Just a quick note regarding the Filter class:

&gt; Source/WebCore/rendering/FilterEffectRenderer.h:63
&gt; +    virtual bool effectBoundingBoxMode() const { return false; }

I removed this today from Filter.h, you can remove this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500272</commentid>
    <comment_count>15</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-10 14:16:17 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 114331 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114331&amp;action=review
&gt; 
&gt; Nice start Dean! Just a quick note regarding the Filter class:

Small steps, but we&apos;ll get there.

&gt; &gt; Source/WebCore/rendering/FilterEffectRenderer.h:63
&gt; &gt; +    virtual bool effectBoundingBoxMode() const { return false; }
&gt; 
&gt; I removed this today from Filter.h, you can remove this function.

Excellent. I&apos;ll do that.

Dean</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111693</attachid>
            <date>2011-10-19 16:29:59 -0700</date>
            <delta_ts>2011-11-08 17:04:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68472-20111019163005.patch</filename>
            <type>text/plain</type>
            <size>66167</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NzkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZDEwODI5ZThmMzBlNzRm
ODliNWRiYjBiN2NlOTQ4NjI0Y2Q2ZDVkLi4xZjA2MzUxMzE0N2ZkY2Q5YzU0MjRiNDUxN2Y2MGIx
YjdkZTJkNjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTEtMTAtMTkgIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUvY29weS9tZXJnZSBTVkcg
ZmlsdGVyIHJlbmRlcmluZyBjb2RlIHRvIGdlbmVyaWMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBhbiBleHRyZW1lbHkg
c2ltcGxlIHZlcnNpb24gb2YgdGhlIGZpbHRlcgorICAgICAgICBjaGFpbi4gVGhlIGZpbHRlciBl
ZmZlY3QgaXMgaGFyZGNvZGVkIGF0IHRoZSBtb21lbnQuIFRoZQorICAgICAgICBjaGFuZ2UgaW4g
dGhpcyBwYXRjaCB3YXMgdG8gaW5zZXJ0IGEgbmV3IHN0ZXAgaW4gUmVuZGVyTGF5ZXIncworICAg
ICAgICBwYWludGluZyB0byBjYXB0dXJlIHRoZSBjb250ZW50IHRvIGFuIG9mZnNjcmVlbiBJbWFn
ZUJ1ZmZlciwKKyAgICAgICAgYXBwbHkgYSBwcmVzZW50IGZpbHRlciBvcGVyYXRpb24gb24gdGhh
dCBidWZmZXIsIGFuZCB0aGVuCisgICAgICAgIGRyYXcgdGhlIHJlc3VsdCBpbiBwbGFjZSBvZiB0
aGUgb3JpZ2luYWwgZWxlbWVudC4gVGhlIGZ1bGwKKyAgICAgICAgaW1wbGVtZW50YXRpb24gd2ls
bCBuZWVkIHNvbWV0aGluZyBsaWtlIHRoZSBTVkdGaWx0ZXJCdWlsZGVyCisgICAgICAgIGJ1dCB0
aGlzIGlzIGEgZ29vZCBwcm90b3R5cGUgb2YgZWZmZWN0cyBvbiBIVE1MIGNvbnRlbnQuCisgICAg
ICAgIAorICAgICAgICBBZGRlZCBhIFJlbmRlckZpbHRlciBjbGFzcyB0aGF0IGlzIHRoZSByb290
IG9mIHRoZSBmaWx0ZXIKKyAgICAgICAgdHJlZS4gQXQgdGhlIG1vbWVudCBpdCBob2xkcyB0aGUg
b2Zmc2NyZWVuIGNvbnRleHQgYW5kCisgICAgICAgIHRoZSBleGlzdGluZyBwYWludCBjb250ZXh0
LgorICAgICAgICAKKyAgICAgICAgT3RoZXIgdGhhbiByZW5kZXJpbmcsIHRoZSByZXN0IG9mIHRo
aXMgcGF0Y2ggYWRkcyB0ZXN0cworICAgICAgICB0byBtYWtlIHN1cmUgYW55IGVsZW1lbnQgd2l0
aCBhIGZpbHRlciBzdHlsZSB3aWxsIGJlY29tZQorICAgICAgICBhIFJlbmRlckxheWVyLiBJbiBv
cmRlciB0byBhdm9pZCBhIGxvdCBvZiBkdXBsaWNhdGVkIGNvZGUKKyAgICAgICAgYXJvdW5kIHRo
ZSBtb3JlIGNvbXBsZXggbG9naWMgdGVzdHMsIFJlbmRlclN0eWxlOjpoYXNGaWx0ZXIKKyAgICAg
ICAgaXMgYXZhaWxhYmxlIG91dHNpZGUgRU5BQkxFKENTU19GSUxURVJTLCBidXQgcmV0dXJucyBm
YWxzZQorICAgICAgICBpbiB0aG9zZSBzaXR1YXRpb25zLgorCisgICAgICAgIFRlc3RzOiBjc3Mz
L2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmcuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9m
aWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMv
ZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy5odG1sCisKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YWRqdXN0UmVuZGVy
U3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94Ojp1cGRhdGVCb3hNb2RlbEluZm9Gcm9tU3R5bGUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnJlcXVpcmVzTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWx0
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbHRlcjo6UmVuZGVyRmls
dGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsdGVyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRmlsdGVyOjpzZXRTb3VyY2VJbWFnZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RmlsdGVyOjpzb3VyY2VJbWFnZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsdGVy
OjpzZXRGaWx0ZXJSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsdGVyOjpmaWx0
ZXJSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsdGVyOjplZmZlY3RCb3VuZGlu
Z0JveE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsdGVyOjpzZXRFZmZlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsdGVyOjplZmZlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmlsdGVyOjpzZXRTb3VyY2VHcmFwaGljKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZpbHRlcjo6c291cmNlR3JhcGhpYyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWx0
ZXI6OnNldFNhdmVkQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWx0ZXI6OnNh
dmVkQ29udGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnVwZGF0ZUJveE1vZGVsSW5mb0Zyb21TdHlsZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNyZWF0ZUZp
bHRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVtb3ZlRmlsdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVGaWx0ZXJFZmZlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUZpbHRlckJhY2tpbmdTdG9yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6aGFzRmlsdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVuZGVyT2JqZWN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6Omhhc0ZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldEhhc0Zp
bHRlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6cmVxdWlyZXNMYXllcik6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpoYXNGaWx0ZXIpOgorCiAyMDExLTEwLTE5ICBE
YW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERvbid0IGFsd2F5
cyBzZWxlY3QgaW1hZ2VzIGR1cmluZyBhbiBpbWFnZSBkcmFnLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI5NzY4YWYzNjFmZTNi
NmRjZjQ1MDQwNzYzY2U3NWIxZjI5ZmJkOTEuLjMxOWE4ZGMxMDZmOWQ0NmZhNzliMTg3N2QxYzJi
YzVmMmFkZTBlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTc2Myw2ICs3NjMsOCBAQAogCQkzMTI4OEU3MzBFMzAwNUQ2MDAz
NjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxMjg4RTc0MEUzMDA1RDYwMDM2MTlBRSAvKiBX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmNwcCAqLzsgfTsKIAkJMzEyODhFNzUwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktp
dENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxMjg4RTcxMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlLmggKi87IH07CisJCTMxMzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBSZW5kZXJGaWx0ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzMTNG
NjMxNDQzQjM1RTAwNkUyQTkwIC8qIFJlbmRlckZpbHRlci5jcHAgKi87IH07CisJCTMxMzEzRjY2
MTQ0M0IzNUYwMDZFMkE5MCAvKiBSZW5kZXJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzEzRjY0MTQ0M0IzNUUwMDZFMkE5MCAvKiBSZW5k
ZXJGaWx0ZXIuaCAqLzsgfTsKIAkJMzE2MTFFNUEwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2MTFFNTgwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuY3BwICovOyB9OwogCQkzMTYxMUU1QjBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2MTFFNTkwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCAqLzsgfTsKIAkJMzE2MTFFNjEwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCAqLzsgfTsKQEAgLTc4NTMsNiArNzg1NSw4IEBACiAJCTMxMjg4RTZGMEUzMDA1
RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFt
ZXNSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENT
U0tleWZyYW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTI4OEU3
MTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMzEzRjYzMTQ0M0IzNUUwMDZFMkE5MCAvKiBSZW5kZXJG
aWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRmls
dGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzMTNGNjQxNDQzQjM1RTAw
NkUyQTkwIC8qIFJlbmRlckZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2MTFFNTQw
RTFDNEQ0QTAwRjZBNTc5IC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxNjExRTU4MEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTYxMUU1OTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDc4Miw2ICsyMDc4Niw4IEBA
CiAJCQkJQThFQTczQjAwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmggKi8sCiAJ
CQkJMDY2Qzc3MkUwQUI2MDNGRDAwMjM4Q0M0IC8qIFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCAqLywKIAkJCQkwNjZDNzcyRjBBQjYwM0ZEMDAyMzhDQzQgLyogUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuaCAqLywKKwkJCQkzMTMxM0Y2MzE0NDNCMzVFMDA2RTJBOTAgLyogUmVuZGVyRmlsdGVy
LmNwcCAqLywKKwkJCQkzMTMxM0Y2NDE0NDNCMzVFMDA2RTJBOTAgLyogUmVuZGVyRmlsdGVyLmgg
Ki8sCiAJCQkJNTNDODI5OEIxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmNw
cCAqLywKIAkJCQk1M0M4Mjk4QzEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3gu
aCAqLywKIAkJCQk1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5j
cHAgKi8sCkBAIC0yNDYxNiw2ICsyNDYyMiw3IEBACiAJCQkJNzFDQ0I0OUQxNDQ4MjRBQzAwQzY3
NkQ2IC8qIEltYWdlQnlTaXplQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NTM4NjAzMTQ0
ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRDdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUE2MUQw
MDE0NEQ1OTVCMDBGMzczNTAgLyogQ1NTUmVnaW9uU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkzMTMxM0Y2NjE0NDNCMzVGMDA2RTJBOTAgLyogUmVuZGVyRmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTI3NDY5LDYgKzI3NDc2LDcgQEAKIAkJCQk3MUNDQjQ5QzE0NDgyNEFDMDBDNjc2
RDYgLyogSW1hZ2VCeVNpemVDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzUzODYwMjE0
NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkQ3Vlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QUE2
MUNGRjE0NEQ1OTVCMDBGMzczNTAgLyogQ1NTUmVnaW9uU3R5bGVSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMxMzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBSZW5kZXJGaWx0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXgg
YWIyMWE4YzJhMGNlYThmNTIzMmE0YjNjYWU1NTRjNGRjNzU1YTM0OS4uNDRjOTllMjkzM2I1YmM3
OTcyZDczZGZlZmM0MzJjMGExNTJjMjVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcApAQCAtMTYyMyw3ICsxNjIzLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjph
ZGp1c3RSZW5kZXJTdHlsZShSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiBwYXJlbnQK
ICAgICAvLyBjYXNlcyB3aGVyZSBvYmplY3RzIHRoYXQgc2hvdWxkIGJlIGJsZW5kZWQgYXMgYSBz
aW5nbGUgdW5pdCBlbmQgdXAgd2l0aCBhIG5vbi10cmFuc3BhcmVudAogICAgIC8vIG9iamVjdCB3
ZWRnZWQgaW4gYmV0d2VlbiB0aGVtLiAgQXV0byB6LWluZGV4IGFsc28gYmVjb21lcyAwIGZvciBv
YmplY3RzIHRoYXQgc3BlY2lmeSB0cmFuc2Zvcm1zL21hc2tzL3JlZmxlY3Rpb25zLgogICAgIGlm
IChzdHlsZS0+aGFzQXV0b1pJbmRleCgpICYmICgoZSAmJiBlLT5kb2N1bWVudCgpLT5kb2N1bWVu
dEVsZW1lbnQoKSA9PSBlKSB8fCBzdHlsZS0+b3BhY2l0eSgpIDwgMS4wZgotICAgICAgICB8fCBz
dHlsZS0+aGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgfHwgc3R5bGUtPmhhc01hc2soKSB8
fCBzdHlsZS0+Ym94UmVmbGVjdCgpKSkKKyAgICAgICAgfHwgc3R5bGUtPmhhc1RyYW5zZm9ybVJl
bGF0ZWRQcm9wZXJ0eSgpIHx8IHN0eWxlLT5oYXNNYXNrKCkgfHwgc3R5bGUtPmJveFJlZmxlY3Qo
KSB8fCBzdHlsZS0+aGFzRmlsdGVyKCkpKQogICAgICAgICBzdHlsZS0+c2V0WkluZGV4KDApOwog
CiAgICAgLy8gVGV4dGFyZWEgY29uc2lkZXJzIG92ZXJmbG93IHZpc2libGUgYXMgYXV0by4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYzZlNjJiNTJjNmMwMzQ1ODUz
NjlmMWE5MDY0Y2YxZTVmMTIxNjVkNi4uMDNjNjk5MWY0OGM0M2JlZDU3MjAyNTAwMmNmZDczNzg5
MTQ5YWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ0MSw2
ICs0NDEsOSBAQCB2b2lkIFJlbmRlckJveDo6dXBkYXRlQm94TW9kZWxJbmZvRnJvbVN0eWxlKCkK
IAogICAgIHNldEhhc1RyYW5zZm9ybShzdHlsZSgpLT5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVy
dHkoKSk7CiAgICAgc2V0SGFzUmVmbGVjdGlvbihzdHlsZSgpLT5ib3hSZWZsZWN0KCkpOworI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBzZXRIYXNGaWx0ZXIoc3R5bGUoKS0+aGFzRmlsdGVy
KCkpOworI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyQm94OjpsYXlvdXQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggNTE2ZjFi
ZTE3OTRkMjkwMDE3OWY1OGJkZTA5ZTJkNGY2NjY3NDc1ZS4uYjVkMmNhYTc0ZjkwMTg4MjI2MjAw
YTY3MjU4NGQ5NjdlYWVkZTk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0zNjQsNiArMzY0LDkgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWwKICAgICB9IGVsc2UgaWYgKGxheWVyKCkgJiYgbGF5ZXIoKS0+cGFyZW50KCkp
IHsKICAgICAgICAgc2V0SGFzVHJhbnNmb3JtKGZhbHNlKTsgLy8gRWl0aGVyIGEgdHJhbnNmb3Jt
IHdhc24ndCBzcGVjaWZpZWQgb3IgdGhlIG9iamVjdCBkb2Vzbid0IHN1cHBvcnQgdHJhbnNmb3Jt
cywgc28ganVzdCBudWxsIG91dCB0aGUgYml0LgogICAgICAgICBzZXRIYXNSZWZsZWN0aW9uKGZh
bHNlKTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgICAgIHNldEhhc0ZpbHRlcihmYWxz
ZSk7CisjZW5kaWYKICAgICAgICAgbV9sYXllci0+cmVtb3ZlT25seVRoaXNMYXllcigpOyAvLyBj
YWxscyBkZXN0cm95TGF5ZXIoKSB3aGljaCBjbGVhcnMgbV9sYXllcgogICAgICAgICBpZiAoc193
YXNGbG9hdGluZyAmJiBpc0Zsb2F0aW5nKCkpCiAgICAgICAgICAgICBzZXRDaGlsZE5lZWRzTGF5
b3V0KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuaAppbmRleCBlNmFiNzBhZThiODc2NTI4MDhkNTg0YTAyOTk0NjhjMDg2OWFhNzQxLi5m
ZDQxNDZiMzNmYTFjZWUwYzhjYmYyNjdlMjg2NWNjZjM1OTZkNTMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtNjYsNyArNjYsNyBA
QCBwdWJsaWM6CiAKICAgICBib29sIGhhc1NlbGZQYWludGluZ0xheWVyKCkgY29uc3Q7CiAgICAg
UmVuZGVyTGF5ZXIqIGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcjsgfQotICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1cm4gaXNSb290KCkgfHwgaXNQb3Np
dGlvbmVkKCkgfHwgaXNSZWxQb3NpdGlvbmVkKCkgfHwgaXNUcmFuc3BhcmVudCgpIHx8IGhhc092
ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhhc01hc2soKSB8fCBoYXNSZWZsZWN0
aW9uKCkgfHwgc3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpOyB9CisgICAgdmlydHVhbCBib29s
IHJlcXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0aW9uZWQo
KSB8fCBpc1JlbFBvc2l0aW9uZWQoKSB8fCBpc1RyYW5zcGFyZW50KCkgfHwgaGFzT3ZlcmZsb3dD
bGlwKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzTWFzaygpIHx8IGhhc1JlZmxlY3Rpb24oKSB8
fCBoYXNGaWx0ZXIoKSB8fCBzdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCk7IH0KIAogICAgIC8v
IFRoaXMgd2lsbCB3b3JrIG9uIGlubGluZXMgdG8gcmV0dXJuIHRoZSBib3VuZGluZyBib3ggb2Yg
YWxsIG9mIHRoZSBsaW5lcycgYm9yZGVyIGJveGVzLgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBi
b3JkZXJCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlmODliNjZkZDZhMmQ0NDljNTRiNDQyOWM1ZDJj
NmZmOGJhYWVhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWx0ZXIuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW5kZXJGaWx0ZXIuaCIKKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJGaWx0ZXI6OlJlbmRlckZpbHRlcigpCit7CisgICAg
c2V0RmlsdGVyUmVzb2x1dGlvbihGbG9hdFNpemUoMSwgMSkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QzNGY3YzEzZTViMGVmZWE3YjNh
YTZhNjllNzUyNWMxZWRiNDAwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWx0ZXIuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbmRlckZp
bHRlcl9oCisjZGVmaW5lIFJlbmRlckZpbHRlcl9oCisKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CisKKyNpbmNsdWRlICJGaWx0ZXIuaCIKKyNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKKyNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJTb3VyY2VHcmFwaGljLmgiCisKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlckZpbHRl
ciA6IHB1YmxpYyBGaWx0ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRl
ckZpbHRlcj4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVu
ZGVyRmlsdGVyKCkpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRTb3VyY2VJbWFnZVJl
Y3QoY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QpIHsgbV9zb3VyY2VEcmF3aW5nUmVn
aW9uID0gc291cmNlSW1hZ2VSZWN0OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1h
Z2VSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEcmF3aW5nUmVnaW9uOyB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0RmlsdGVyUmVnaW9uKGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9u
KSB7IG1fZmlsdGVyUmVnaW9uID0gZmlsdGVyUmVnaW9uOyB9CisgICAgdmlydHVhbCBGbG9hdFJl
Y3QgZmlsdGVyUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJSZWdpb247IH0KKworICAg
IHZpcnR1YWwgYm9vbCBlZmZlY3RCb3VuZGluZ0JveE1vZGUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldEVmZmVjdChQYXNzUmVmUHRyPEZpbHRlckVmZmVj
dD4gZWZmZWN0KSB7IG1fZWZmZWN0ID0gZWZmZWN0OyB9CisgICAgdmlydHVhbCBSZWZQdHI8Rmls
dGVyRWZmZWN0PiBlZmZlY3QoKSBjb25zdCB7IHJldHVybiBtX2VmZmVjdDsgfQorCisgICAgdmly
dHVhbCB2b2lkIHNldFNvdXJjZUdyYXBoaWMoUGFzc1JlZlB0cjxTb3VyY2VHcmFwaGljPiBzb3Vy
Y2VHcmFwaGljKSB7IG1fc291cmNlR3JhcGhpYyA9IHNvdXJjZUdyYXBoaWM7IH0KKyAgICB2aXJ0
dWFsIFJlZlB0cjxTb3VyY2VHcmFwaGljPiBzb3VyY2VHcmFwaGljKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2VHcmFwaGljOyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIHNldFNhdmVkQ29udGV4
dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIHsgbV9zYXZlZENvbnRleHQgPSBjb250ZXh0OyB9
CisgICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHQqIHNhdmVkQ29udGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2F2ZWRDb250ZXh0OyB9CisKK3ByaXZhdGU6CisgICAgUmVuZGVyRmlsdGVyKCk7CisK
KyAgICBGbG9hdFJlY3QgbV9zb3VyY2VEcmF3aW5nUmVnaW9uOworICAgIEZsb2F0UmVjdCBtX2Zp
bHRlclJlZ2lvbjsKKyAgICAKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBtX2VmZmVjdDsKKyAg
ICBSZWZQdHI8U291cmNlR3JhcGhpYz4gbV9zb3VyY2VHcmFwaGljOworICAgIEdyYXBoaWNzQ29u
dGV4dCogbV9zYXZlZENvbnRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisKKyNlbmRpZiAvLyBSZW5kZXJGaWx0ZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAppbmRleCAzZjA5NjMzYjAw
OGQ5NTZmYTFmN2UyMTgyZTMwYzRkZDIwNWFjM2EzLi5jOTMxMjJmOTgxNTcxMjEzNGY0YzdmZjUw
ZjZhYmQ0YWNmNDMyYzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcApAQCAtMTI0LDcgKzEyNCwxMCBAQCB2b2lkIFJlbmRlcklubGluZTo6dXBkYXRlQm94TW9k
ZWxJbmZvRnJvbVN0eWxlKCkKIAogICAgIC8vIEZJWE1FOiBTdXBwb3J0IHRyYW5zZm9ybXMgYW5k
IHJlZmxlY3Rpb25zIG9uIGlubGluZSBmbG93cyBzb21lZGF5LgogICAgIHNldEhhc1RyYW5zZm9y
bShmYWxzZSk7Ci0gICAgc2V0SGFzUmVmbGVjdGlvbihmYWxzZSk7ICAgIAorICAgIHNldEhhc1Jl
ZmxlY3Rpb24oZmFsc2UpOworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBzZXRIYXNGaWx0
ZXIoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYTBkNDg1Y2U2ZWFmNTQy
YWI5MjIwN2UzZGE4ZjBmYzczYzcyZjYyOC4uZDBkODVkYWI1NTIwNjU0MDk5NGE1MGZkZDQ2OGJh
ZWEwN2E3MWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBA
IC01Miw2ICs1Miw5IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudEhh
bmRsZXIuaCIKICNpbmNsdWRlICJFdmVudFF1ZXVlLmgiCisjaWYgRU5BQkxFKENTU19GSUxURVJT
KQorI2luY2x1ZGUgIkZFQ29sb3JNYXRyaXguaCIKKyNlbmRpZgogI2luY2x1ZGUgIkZsb2F0UG9p
bnQzRC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgpAQCAtNzEsNiArNzQsOSBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgorI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKKyNpbmNsdWRlICJSZW5kZXJGaWx0ZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUg
IlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRlICJS
ZW5kZXJSZXBsaWNhLmgiCkBAIC04Miw2ICs4OCw3IEBACiAjaW5jbHVkZSAiU2NhbGVUcmFuc2Zv
cm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJTY3JvbGxi
YXJUaGVtZS5oIgorI2luY2x1ZGUgIlNvdXJjZUdyYXBoaWMuaCIKICNpbmNsdWRlICJUZXh0U3Ry
ZWFtLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKQEAgLTI2NzYsNiArMjY4MywzMyBAQCB2b2lkIFJl
bmRlckxheWVyOjpwYWludExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29u
dGV4dCogcCwKICAgICBpZiAoIXJlbmRlcmVyKCktPm9wYWNpdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIGJvb2wgcGFpbnRpbmdGaWx0ZXIgPSBm
YWxzZTsKKyAgICBpZiAoIXAtPnBhaW50aW5nRGlzYWJsZWQoKSAmJiBoYXNGaWx0ZXIoKSAmJiAh
c2l6ZSgpLmlzWmVybygpKSB7CisgICAgICAgIHBhaW50aW5nRmlsdGVyID0gdHJ1ZTsKKworICAg
ICAgICAvLyBVcGRhdGUgdGhlIGZpbHRlcidzIGltYWdlIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAg
dXBkYXRlRmlsdGVyQmFja2luZ1N0b3JlKCk7CisgICAgICAgIAorICAgICAgICAvLyBTYXZlIHRo
ZSBjdXJyZW50IEdyYXBoaWNzQ29udGV4dCBhbmQgdXNlIGEgY29udGV4dCBwb2ludGluZworICAg
ICAgICAvLyBpbnRvIHRoZSBmaWx0ZXIgc291cmNlIGNvbnRleHQgZnJvbSBoZXJlIG9uLgorICAg
ICAgICBtX2ZpbHRlci0+c2V0U2F2ZWRDb250ZXh0KHApOworICAgICAgICBwID0gbV9maWx0ZXIt
PnNvdXJjZUltYWdlKCktPmNvbnRleHQoKTsKKworICAgICAgICBGbG9hdFJlY3QgcGFpbnRSZWN0
ID0gRmxvYXRSZWN0KDAsIDAsIHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpOworICAg
ICAgICBwLT5jbGVhclJlY3QocGFpbnRSZWN0KTsKKworICAgICAgICAvLyBUcmFuc2xhdGUgdGhl
IGZpbHRlciBzb3VyY2UgY29udGV4dCBzbyB0aGF0IHBhaW50IG9mZnNldHMKKyAgICAgICAgLy8g
YXJlIGFpbWVkIGF0IHRoZSBjb3JyZWN0IHBsYWNlLgorICAgICAgICBMYXlvdXRQb2ludCBkZWx0
YTsKKyAgICAgICAgY29udmVydFRvTGF5ZXJDb29yZHMocm9vdExheWVyLCBkZWx0YSk7CisgICAg
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICAgICAgdHJhbnNmb3JtLnRy
YW5zbGF0ZVJpZ2h0KC1kZWx0YS54KCksIC1kZWx0YS55KCkpOworICAgICAgICBwLT5zYXZlKCk7
CisgICAgICAgIHAtPmNvbmNhdENUTSh0cmFuc2Zvcm0udG9BZmZpbmVUcmFuc2Zvcm0oKSk7Cisg
ICAgfQorI2VuZGlmCisKICAgICBpZiAocGFpbnRzV2l0aFRyYW5zcGFyZW5jeShwYWludEJlaGF2
aW9yKSkKICAgICAgICAgcGFpbnRGbGFncyB8PSBQYWludExheWVySGF2ZVRyYW5zcGFyZW5jeTsK
IApAQCAtMjgyNSw2ICsyODU5LDIyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoUmVu
ZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBwLAogICAgIAogICAgIC8vIE5v
dyB3YWxrIHRoZSBzb3J0ZWQgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHBvc2l0aXZlIHotaW5kaWNl
cy4KICAgICBwYWludExpc3QobV9wb3NaT3JkZXJMaXN0LCByb290TGF5ZXIsIHAsIHBhaW50RGly
dHlSZWN0LCBwYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIHJlZ2lvbiwgb3ZlcmxhcFRlc3RS
ZXF1ZXN0cywgbG9jYWxQYWludEZsYWdzKTsKKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAg
ICBpZiAocGFpbnRpbmdGaWx0ZXIpIHsKKyAgICAgICAgLy8gSW52YWxpZGF0ZSB0aGUgaGFyZGNv
ZGVkIGZpbHRlciBub3cgc28gdGhhdCBpdCBleGVjdXRlcyBhZ2Fpbi4KKyAgICAgICAgbV9maWx0
ZXItPnNvdXJjZUdyYXBoaWMoKS0+Y2xlYXJSZXN1bHQoKTsKKyAgICAgICAgbV9maWx0ZXItPmVm
ZmVjdCgpLT5jbGVhclJlc3VsdCgpOworICAgICAgICBtX2ZpbHRlci0+ZWZmZWN0KCktPmFwcGx5
KCk7CisKKyAgICAgICAgLy8gUG9wIHRoZSBDVE0gdHJhbnNmb3JtIGZyb20gdGhlIEdyYXBoaWNz
Q29udGV4dCwgYW5kIHRoZW4gcmVzdG9yZSB0byB0aGUgb3JpZ2luYWwgY29udGV4dC4KKyAgICAg
ICAgcC0+cmVzdG9yZSgpOworICAgICAgICBwID0gbV9maWx0ZXItPnNhdmVkQ29udGV4dCgpOwor
ICAgICAgICAKKyAgICAgICAgLy8gR2V0IHRoZSBmaWx0ZXJlZCBvdXRwdXQgYW5kIGRyYXcgaXQg
aW4gcGxhY2UuCisgICAgICAgIHAtPmRyYXdJbWFnZUJ1ZmZlcihtX2ZpbHRlci0+ZWZmZWN0KCkt
PmFzSW1hZ2VCdWZmZXIoKSwgcmVuZGVyZXIoKS0+c3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBsYXll
ckJvdW5kcywgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgfQorI2VuZGlmCiAgICAgICAgIAog
ICAgIGlmIChyZW5kZXJlcigpLT5oYXNNYXNrKCkgJiYgc2hvdWxkUGFpbnQgJiYgIXNlbGVjdGlv
bk9ubHkgJiYgIWRhbWFnZVJlY3QuaXNFbXB0eSgpICYmICFwYWludGluZ092ZXJsYXlTY3JvbGxi
YXJzKSB7CiAgICAgICAgIGNsaXBUb1JlY3Qocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwg
ZGFtYWdlUmVjdCwgRG9Ob3RJbmNsdWRlU2VsZkZvckJvcmRlclJhZGl1cyk7IC8vIE1hc2sgcGFp
bnRpbmcgd2lsbCBoYW5kbGUgY2xpcHBpbmcgdG8gc2VsZi4KQEAgLTQxMzAsNiArNDE4MCw5IEBA
IGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkoKSBjb25zdAogICAgICAg
ICAgICAgJiYgIXJlbmRlcmVyKCktPmlzUG9zaXRpb25lZCgpCiAgICAgICAgICAgICAmJiAhcmVu
ZGVyZXIoKS0+aXNSZWxQb3NpdGlvbmVkKCkKICAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5o
YXNUcmFuc2Zvcm0oKQorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICAgICAgICAgICYmICFy
ZW5kZXJlcigpLT5oYXNGaWx0ZXIoKQorI2VuZGlmCiAgICAgICAgICAgICAmJiAhaXNUcmFuc3Bh
cmVudCgpOwogfQogCkBAIC00MTc1LDYgKzQyMjgsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5
bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUKICAgICAgICAgdXBkYXRlUmVmbGVjdGlvblN0eWxlKCk7CiAgICAgfQogICAgIAorI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKKyAgICBpZiAoIWhhc0ZpbHRlcigpICYmIG1fZmlsdGVyKQorICAg
ICAgICByZW1vdmVGaWx0ZXIoKTsKKyAgICBlbHNlIGlmIChoYXNGaWx0ZXIoKSkgeworICAgICAg
ICBpZiAoIW1fZmlsdGVyKQorICAgICAgICAgICAgY3JlYXRlRmlsdGVyKCk7CisgICAgICAgIHVw
ZGF0ZUZpbHRlckVmZmVjdCgpOworICAgIH0KKyNlbmRpZgorICAgIAogICAgIGlmIChzY3JvbGxz
T3ZlcmZsb3coKSkgewogICAgICAgICBpZiAoIW1fc2Nyb2xsYWJsZUFyZWFQYWdlKSB7CiAgICAg
ICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcmVuZGVyZXIoKS0+ZnJhbWUoKSkgewpAQCAtNDMw
OCw2ICs0MzcxLDUwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVJlZmxlY3Rpb25TdHlsZSgp
CiAgICAgbV9yZWZsZWN0aW9uLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwogfQogCisj
aWYgRU5BQkxFKENTU19GSUxURVJTKQordm9pZCBSZW5kZXJMYXllcjo6Y3JlYXRlRmlsdGVyKCkK
K3sKKyAgICBBU1NFUlQoIW1fZmlsdGVyKTsKKyAgICBtX2ZpbHRlciA9IFJlbmRlckZpbHRlcjo6
Y3JlYXRlKCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlbW92ZUZpbHRlcigpCit7CisgICAg
bV9maWx0ZXIgPSAwOworfQorCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVGaWx0ZXJFZmZlY3Qo
KQoreworICAgIC8vIEZvciB0aGUgbW9tZW50IGFsbCBmaWx0ZXIgZWZmZWN0cyBhcmUgaGFyZGNv
ZGVkIHRvIGh1ZS1yb3RhdGUoMTgwZGVnKS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDc0IGFuZAorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3NQorCisgICAgUmVmUHRyPFNvdXJjZUdyYXBoaWM+
IHNvdXJjZUdyYXBoaWMgPSBTb3VyY2VHcmFwaGljOjpjcmVhdGUobV9maWx0ZXIuZ2V0KCkpOwor
ICAgIG1fZmlsdGVyLT5zZXRTb3VyY2VHcmFwaGljKHNvdXJjZUdyYXBoaWMpOworICAgIFZlY3Rv
cjxmbG9hdD4gaW5wdXRQYXJhbWV0ZXJzOworICAgIGlucHV0UGFyYW1ldGVycy5hcHBlbmQoMTgw
KTsKKyAgICBSZWZQdHI8RkVDb2xvck1hdHJpeD4gbWF0cml4ID0gRkVDb2xvck1hdHJpeDo6Y3Jl
YXRlKG1fZmlsdGVyLmdldCgpLCBGRUNPTE9STUFUUklYX1RZUEVfSFVFUk9UQVRFLCBpbnB1dFBh
cmFtZXRlcnMpOworICAgIG1hdHJpeC0+aW5wdXRFZmZlY3RzKCkuYXBwZW5kKHNvdXJjZUdyYXBo
aWMpOworICAgIG1fZmlsdGVyLT5zZXRFZmZlY3QobWF0cml4KTsKK30KKwordm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlRmlsdGVyQmFja2luZ1N0b3JlKCkKK3sKKyAgICBMYXlvdXRTaXplIGxheW91
dFNpemUgPSBzaXplKCk7CisgICAgaWYgKCFsYXlvdXRTaXplLmlzWmVybygpKSB7CisgICAgICAg
IEZsb2F0UmVjdCBzaXplID0gRmxvYXRSZWN0KDAsIDAsIGxheW91dFNpemUud2lkdGgoKSwgbGF5
b3V0U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIEZsb2F0UmVjdCBjdXJyZW50U291cmNlU2l6ZSA9
IG1fZmlsdGVyLT5zb3VyY2VJbWFnZVJlY3QoKTsKKyAgICAgICAgaWYgKHNpemUgIT0gY3VycmVu
dFNvdXJjZVNpemUpIHsKKyAgICAgICAgICAgIG1fZmlsdGVyLT5lZmZlY3QoKS0+c2V0TWF4RWZm
ZWN0UmVjdChzaXplKTsKKyAgICAgICAgICAgIG1fZmlsdGVyLT5zZXRGaWx0ZXJSZWdpb24oc2l6
ZSk7CisgICAgICAgICAgICBtX2ZpbHRlci0+c2V0U291cmNlSW1hZ2VSZWN0KHNpemUpOworICAg
ICAgICAgICAgbV9maWx0ZXItPnNldFNvdXJjZUltYWdlKEltYWdlQnVmZmVyOjpjcmVhdGUobGF5
b3V0U2l6ZSkpOworICAgICAgICB9CisgICAgfQorfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAppbmRleCAzODFmYTFhNTNhNDllZGVlZGQ1OGY1MzdhODM1MmM2MzQ5NmE3ZTdmLi43
YjFmMDZhNWE1NDg0MmRhNGRiMjE2YTQwYmJjYmZkNjdjNjMzYzBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBI
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGU7CitjbGFzcyBSZW5kZXJGaWx0ZXI7CiBjbGFzcyBSZW5k
ZXJNYXJxdWVlOwogY2xhc3MgUmVuZGVyUmVwbGljYTsKIGNsYXNzIFJlbmRlclNjcm9sbGJhclBh
cnQ7CkBAIC00OTIsNyArNDkzLDExIEBAIHB1YmxpYzoKICAgICBib29sIHByZXNlcnZlczNEKCkg
Y29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dHJhbnNmb3JtU3R5bGUzRCgpID09
IFRyYW5zZm9ybVN0eWxlM0RQcmVzZXJ2ZTNEOyB9CiAgICAgYm9vbCBoYXMzRFRyYW5zZm9ybSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtICYmICFtX3RyYW5zZm9ybS0+aXNBZmZpbmUoKTsg
fQogCi0gICAgIC8vIE92ZXJsb2FkZWQgbmV3IG9wZXJhdG9yLiAgRGVyaXZlZCBjbGFzc2VzIG11
c3Qgb3ZlcnJpZGUgb3BlcmF0b3IgbmV3CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIGJv
b2wgaGFzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS0+aGFzRmlsdGVyKCk7IH0K
KyNlbmRpZgorCisgICAgLy8gT3ZlcmxvYWRlZCBuZXcgb3BlcmF0b3IuIERlcml2ZWQgY2xhc3Nl
cyBtdXN0IG92ZXJyaWRlIG9wZXJhdG9yIG5ldwogICAgIC8vIGluIG9yZGVyIHRvIGFsbG9jYXRl
IG91dCBvZiB0aGUgUmVuZGVyQXJlbmEuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwg
UmVuZGVyQXJlbmEqKSB0aHJvdygpOwogCkBAIC02NDksNyArNjU0LDE1IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB1cGRhdGVSZWZsZWN0aW9uU3R5bGUoKTsKICAgICBib29sIHBhaW50aW5nSW5zaWRl
UmVmbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uOyB9
CiAgICAgdm9pZCBzZXRQYWludGluZ0luc2lkZVJlZmxlY3Rpb24oYm9vbCBiKSB7IG1fcGFpbnRp
bmdJbnNpZGVSZWZsZWN0aW9uID0gYjsgfQorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAg
IHZvaWQgY3JlYXRlRmlsdGVyKCk7CisgICAgdm9pZCByZW1vdmVGaWx0ZXIoKTsKICAgICAKKyAg
ICB2b2lkIHVwZGF0ZUZpbHRlckVmZmVjdCgpOworICAgIHZvaWQgdXBkYXRlRmlsdGVyQmFja2lu
Z1N0b3JlKCk7CisjZW5kaWYKKwogICAgIHZvaWQgcGFyZW50Q2xpcFJlY3RzKGNvbnN0IFJlbmRl
ckxheWVyKiByb290TGF5ZXIsIFJlbmRlclJlZ2lvbiosIENsaXBSZWN0cyYsIGJvb2wgdGVtcG9y
YXJ5Q2xpcFJlY3RzID0gZmFsc2UsIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5ID0gSWdu
b3JlT3ZlcmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogICAgIENsaXBSZWN0IGJhY2tncm91bmRD
bGlwUmVjdChjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJSZWdpb24qLCBib29s
IHRlbXBvcmFyeUNsaXBSZWN0cywgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25v
cmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CiAKQEAgLTc5NSw3ICs4MDgsMTEgQEAgcHJv
dGVjdGVkOgogICAgIAogICAgIC8vIE1heSB1bHRpbWF0ZWx5IGJlIGV4dGVuZGVkIHRvIG1hbnkg
cmVwbGljYXMgKHdpdGggdGhlaXIgb3duIHBhaW50IG9yZGVyKS4KICAgICBSZW5kZXJSZXBsaWNh
KiBtX3JlZmxlY3Rpb247Ci0gICAgCisgIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBS
ZWZQdHI8UmVuZGVyRmlsdGVyPiBtX2ZpbHRlcjsKKyNlbmRpZgorICAgICAgICAKICAgICAvLyBS
ZW5kZXJlcnMgdG8gaG9sZCBvdXIgY3VzdG9tIHNjcm9sbCBjb3JuZXIgYW5kIHJlc2l6ZXIuCiAg
ICAgUmVuZGVyU2Nyb2xsYmFyUGFydCogbV9zY3JvbGxDb3JuZXI7CiAgICAgUmVuZGVyU2Nyb2xs
YmFyUGFydCogbV9yZXNpemVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAppbmRleCBhYWFhMTE2YTNiMjVkZDNkYTY4N2M0NGJiZjUwNTE2YTJlYmMyMTI0Li40MTRm
ZDUxNjkwNzZlODY0NGVkNWM5YTA2ZDA4MzRhYTc4Y2MzYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjA3LDYgKzIwNyw5IEBAIFJlbmRlck9iamVj
dDo6UmVuZGVyT2JqZWN0KE5vZGUqIG5vZGUpCiAgICAgLCBtX2hhc092ZXJmbG93Q2xpcChmYWxz
ZSkKICAgICAsIG1faGFzVHJhbnNmb3JtKGZhbHNlKQogICAgICwgbV9oYXNSZWZsZWN0aW9uKGZh
bHNlKQorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICAsIG1faGFzRmlsdGVyKGZhbHNlKQor
I2VuZGlmCiAgICAgLCBtX2hhc0NvdW50ZXJOb2RlTWFwKGZhbHNlKQogICAgICwgbV9ldmVySGFk
TGF5b3V0KGZhbHNlKQogICAgICwgbV9jaGlsZHJlbklubGluZShmYWxzZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwNWEyMzczMWQ0ODBhNDlkMmIyM2MzYTIz
MmM5ODY1MzY2YjIwMDY2Li5hYjg0OTZkNzU2YmRjZDFlN2E0OGI4NmVjMTFhNTkxYThlNjZiYjZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC00OTksNiArNDk5
LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzVHJhbnNmb3JtOyB9CiAgICAgYm9vbCBoYXNNYXNrKCkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KSAmJiBzdHlsZSgpLT5oYXNNYXNrKCk7IH0KIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAg
ICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIG1faGFzRmlsdGVyOyB9CisjZWxzZQor
ICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAg
ICAgaW5saW5lIGJvb2wgcHJlc2VydmVzTmV3bGluZSgpIGNvbnN0OwogCiAjaWYgIUhBVkUoUEFU
SF9CQVNFRF9CT1JERVJfUkFESVVTX0RSQVdJTkcpCkBAIC01NzIsNiArNTc4LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEhhc1RyYW5zZm9ybShib29sIGIgPSB0cnVlKSB7IG1faGFzVHJhbnNm
b3JtID0gYjsgfQogICAgIHZvaWQgc2V0SGFzUmVmbGVjdGlvbihib29sIGIgPSB0cnVlKSB7IG1f
aGFzUmVmbGVjdGlvbiA9IGI7IH0KIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2b2lk
IHNldEhhc0ZpbHRlcihib29sIGIgPSB0cnVlKSB7IG1faGFzRmlsdGVyID0gYjsgfQorI2VuZGlm
CisKICAgICB2b2lkIHNjaGVkdWxlUmVsYXlvdXQoKTsKIAogICAgIHZvaWQgdXBkYXRlRmlsbElt
YWdlcyhjb25zdCBGaWxsTGF5ZXIqLCBjb25zdCBGaWxsTGF5ZXIqKTsKQEAgLTkxMSw3ICs5MjEs
MTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzT3ZlcmZsb3dDbGlwICAgICAgICAgICA6IDE7
IC8vIFNldCBpbiB0aGUgY2FzZSBvZiBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4KICAgICBi
b29sIG1faGFzVHJhbnNmb3JtICAgICAgICAgICAgICA6IDE7CiAgICAgYm9vbCBtX2hhc1JlZmxl
Y3Rpb24gICAgICAgICAgICAgOiAxOwotICAgIAorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQor
ICAgIGJvb2wgbV9oYXNGaWx0ZXIgICAgICAgICAgICAgICAgIDogMTsKKyNlbmRpZgorCiBwdWJs
aWM6CiAgICAgYm9vbCBtX2hhc0NvdW50ZXJOb2RlTWFwICAgICAgICAgOiAxOwogICAgIGJvb2wg
bV9ldmVySGFkTGF5b3V0ICAgICAgICAgICAgIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmgKaW5kZXggNDBkZjkyMjdlYmZkZDliNDM2ODM5ZjRjOGNiMTQyY2Ex
ZTNkYzU5Yi4uY2VmYWJkMDhhZTBkMTk2Y2MxOTg2N2ZmYzRhNDI3NDJlZmIzNjc4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKQEAgLTU3LDcgKzU3LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIs
IGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CiAK
ICAgICAvLyBUaGUgb25seSB0aW1lIHJvd3MgZ2V0IGEgbGF5ZXIgaXMgd2hlbiB0aGV5IGhhdmUg
dHJhbnNwYXJlbmN5LgotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyBy
ZXR1cm4gaXNUcmFuc3BhcmVudCgpIHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9y
bSgpIHx8IGhhc01hc2soKTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29u
c3QgeyByZXR1cm4gaXNUcmFuc3BhcmVudCgpIHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1Ry
YW5zZm9ybSgpIHx8IGhhc01hc2soKSB8fCBoYXNGaWx0ZXIoKTsgfQogCiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDIyNDk4Y2E3ZWE1
Yzc2N2I0OTk5M2ZlOTY3NGYzMTVhNDk2NTgzNTYuLmZjMDdhYmIzMjVlNjFhNTkwMWVjN2JjYmY5
YmU2ZjhlNDdiMmUzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcApAQCAtMzg3LDYgKzM4NywxMyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVy
U3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENv
bgogI2VuZGlmCiAgICAgICAgIH0KIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICAgICAg
aWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci5nZXQoKSAhPSBvdGhlci0+cmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpCisgICAgICAgICAgICAmJiAqcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpICE9ICpvdGhlci0+cmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fZmlsdGVyLmdldCgpKSB7CisgICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNl
TGF5b3V0OworICAgICAgICB9CisjZW5kaWYKKwogI2lmICFVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+
cmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAgICAgIGlmIChyYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm1TdHlsZTNEICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV90cmFuc2Zvcm1TdHlsZTNECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCmluZGV4IDM2NDRmZGYxNjRkNDgzMTgxOGEzZDcwMzA0ODQ4NjExMmJh
NGYwMTYuLjJjZGNjMTJkNWU1YmRmODFiOGI2NjNlMDJiYzkzODE2NzAxYWI3NzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC04NTMsNiArODUz
LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBjb25zdCBGaWx0ZXJP
cGVyYXRpb25zJiBmaWx0ZXIoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9maWx0ZXItPm1fb3BlcmF0aW9uczsgfQogICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyBy
ZXR1cm4gIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci0+bV9vcGVyYXRpb25zLm9wZXJh
dGlvbnMoKS5pc0VtcHR5KCk7IH0KKyNlbHNlCisgICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgICAgIAogLy8gYXR0cmlidXRlIHNldHRlciBt
ZXRob2RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNzhmZGE2NGU2MWIwNDJjMjU0ZjFjYzM0YmFjMzc3MzU0OGIzODdjZC4u
ZTZiNjZjY2YzNzQxNTQ5OWQ3ZjcxNDFhZjE0NzI1Y2M5YmZiZmM5NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDExLTEwLTE5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAg
ICAgICBNb3ZlL2NvcHkvbWVyZ2UgU1ZHIGZpbHRlciByZW5kZXJpbmcgY29kZSB0byBnZW5lcmlj
IHJlbmRlcmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njg0NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaHJlZSBuZXcgdGVzdHMgdGhhdCBleGVyY2lzZSB0aGUgKHNpbXBsZSkgZmlsdGVyCisgICAg
ICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXIt
cmVuZGVyaW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2Fk
ZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9m
aWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMv
ZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJp
bmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvc2ltcGxlLWZp
bHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRl
cnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmcuaHRtbDogQWRkZWQuCisKIDIwMTEtMTAtMTkgIERh
bmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRG9uJ3QgYWx3YXlz
IHNlbGVjdCBpbWFnZXMgZHVyaW5nIGFuIGltYWdlIGRyYWcuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYjVlZmJmNDg0MTAwMDEzZWJlNDA0ZTIxYWE4YjBmMjdjZWVkN2IwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxODEwOQp6Y21lSHZgQ3BQKmBAaHdjJX4oMH0qZkxFbiV7WXlm
c2ltcHErVX1JOG04SDJzWDFMXm5pSElBSklnP1lTUjQkfmIKenZga3JVQ0B1JkhSQSFjbFcrc1JU
UjA9TF4yPzdCRXBYUW44Y3xPbmdVLSo5Zj5BdnN0SWB7UUAtUkhjfGArOHMzCnpiPyRUUk00O2Q1
WitgZzMjS2RJdihPKGFwR0JIYFUqfkRiJipfQTg0dntZdFhOJlJ4IW1WV3FiZFEzYmhDSl9Rbgp6
SGFZTD9kU1J6cSU8akV6ZHQ2KzBNeFFfTHgtLUB9WDRsU0w9UnJHbnk2LSZ5eT9eYGpGSUtEKjRq
dyNsXngobkcKekMoXipOMn12TG1sZ3VUKnBYTWhIcElCPWMxNjRQRkREO1Q/P3JXZDtUUFlXVSgr
Xmc0QiEtZTA7aj9hcEFBaUw+CnpOeyswMmBMaEprWXwxVktkLVRCT09ubyRfdEp3TUFvWkc4a3U4
c2NPQFcpVGJSWD9AWFYwSClDMXVyQTIkJFg3Owp6dWlleG47SThJVWAwIWRNXlI7SiFnTDxBWHlx
SHxlbW9FV1c5PCpQRzQ9Qjk0e0A1Pm1gXjw7JlMrWjhlOHRhIXkKej1+NkppLVZpZlZTKz9yQ1Bu
TWdockxIZjJgVmUrRUFAV19pI2UzIzhTQGthMD1aeGMhdiRiRCtaNDxXIzlGekNxCnpNdi1sSz5+
N2I2bTB2JE0/SyRBIy0/P3drb3JMI18pdVJKPlliV2h+ZDItdmEoNXdGTkRKUXsmIX13TElQZDFR
egp6SWs1UzA9P3RjRT5mNTVeJThofFR4en45JWQqUGAhZ2VEYDtlMVlGbl9JRm1Ob15famU7RUZp
Rl9fXnUzVW5vPTMKel5uXlBTUCRmRVMrZHNCZ3tAaXVgYmR5VWBnM3hUKXdNeVp6V2Q2a01YNiRh
LVprSTV7Z3ljbG9TRTV9I058cGJTCnpjQGwtaXhtOTkxO3AkVm5qZnZjNnBzMUI7KjlCUihLWik5
YGkkPi1uWmhNNHFJRnBQPXclc3BhQ3ctVXdkZi1hMgp6PCVPOzlaeWlfX1ReYU1EPyheflc4LUZf
WD1pN3d6KF4+ZEVPd1grKTxxfUszJS02cypvcStZcTJ6O21OeXs/QTQKemc7bV9PPylNKFRnVkI/
Y19QaU1xLWxCMzc1KnEjUkxDT2JycTUhaWd4ISFFJE55QndQJWRZQFhVKGw3NEVVMjZDCnpXLXhq
SVlCdU94RCYzT3RrRiU+dDRXOXM/dzxtb1FeIXRZQVh4aDcxMUg4dVg9JDl8O0BUc299WDFvK3tk
MyplPQp6PXQzdiR5N0l1dz89PzRmOVNwQ2d7djEkc2VYbzQlZ3FodDYqY0ZsUlcyNih5dzEoVXRe
KzhLcSszMSpOVGx7PjMKekBeSjJ0cFF0V1dBMFBxek18M1RSSSgkTCZVe3w8XkpiYTZFemFfZ0Ej
aiNVKTd1USpBI0o1bWU1RnNuPSt3UjkpCnpKbDJ7WFdVXzJhYXYpbDx5aFFmaFopVWxGRyZ4KkQp
dD9XJjhEIyRyeE1DRm16M00zTFNHSHJiQ3JZeGNCYlhUXwp6T2FNYW1Eej5OMll8P2omOU5ve1gw
Qm4zWjFhYUpPKjlBS0hiI3BGWWhpRHpnIztiO0tgSWFYcXJxTWUmbnBFZiQKelFxTV91aklkcnBI
bUBKUzQlVXJ1cnpWa1JuR1k2TEpoQTxUYFRRUXgqfkRiQyQ8YWdtUGlIUVhhMShBfFU8akt9CnpH
JEB9TD9PKHBiPTV9cnFnKndRe1plPlRsJTFnUyFidSsjRz0tMlBRaVhVM0w/VHh6eExqQFBFJFFv
THxwUzxuJQp6PyQ7XipfPDdVaEc+PG5iQC1HS1Jsc2lQPSpVKWMrVVZBdSUtNXhQXlohRiRnKzFu
cmd2cmVSYyg7VTAhWFkzU3gKelExKVgxUTJ5aTh7YkEoXiVhen01LWdudCMkPG5YQitAdm5+PlFV
NVg9LUs2ZUttT2V3elZ3P3ZSX0ZieiRDc3UmCnp2dFJDQmpAKV9Dey1eKUV3e1BFKW1ldjFsPWg7
X2xaPC14UktLeiVfZkEha0J4I1BkQkleTWF3SDB7fnIjeXxlYwp6QFckP3kpUCk/SGhqPlN6LVQm
SVl5d0NyPTZHOWhjZE10REtoMFEzN3VtNUI2K2RJZWR3bUVGSkU1PmcxUWAxPVAKentBOyMkZVlk
O3x2XjlxQSU7ITU+QSs5clN6Ui1gUyojcj1PXmdKMWJzQHx6KFhhLW1tPkp1LTdffntUe0heTFFz
Cnp6Tk16YEVPLShyKCpRISR7VWpYYzVFSDQqOX5RaWxjM1RpJWpiPnBpM29AKj5fTF5JNSh5e0k0
RnNRZT4kWEwkYQp6TEl2RFk+TlhuKlF8T3h8O0BtMEdmYTBoeFBvN0lLJTA5alo3KXhYPHtzLUF7
c29efGNSNWVScSV+QFpZNEtNZSoKenlicWk9VnwtJHJqb21GRE1rK1NacTV5e2E0U2hgeDxVWish
alBoUXB7OCNxcCZ0YCY4OW8/WWVnSEdrTzIzWk0rCnpodH4rRUlldlhHZ1RsUzlMRFNtelAqa3B0
b1ArQFJDKV5PfmhpUXlCb0c0M2MmTjFpYiNgZDIwPiFXd2AzQ1h+JAp6MSQlUn0xbDR1Mk5pISFw
cms7flJxeUVVe2ltS2ArRmY+QW88djhSfE9IUig4VVcocUphQCtQQk5lZXUpIyRAb1EKenZaaWo7
UkxvdXE5eVhCcWxnTyljVnFleElHTTZTRVo9KkMyV3RFcUpeWTBASGBtWHdCSDs1WXIoKXs1S1ch
fHsxCnpHY15XR1R3bUw4RSZjV2d7VE1OUnlpaHhlb3FNM0Y1aHI7QDUyX2BkPSN4fDBnNTxhPFBo
ZWNSJX5jdH1oeEV8dgp6R29OfSE9dXtKMC1iQjM2KkNmWGJPMUpWMkdYQjtMUkBqaGArKiRtIzI8
aCpVWjw+P200I2MpTkYyJHpqQSt1I0AKelEkV3U+Kl4mekhvRmhifHVPWW8rN2RTUj9LZ1dGYGpI
bzVHM2tIRFhUSWQzITdGSFZMJEc1TVNoNlMoUjBvPDdpCnohV3VxUzNucDlDclpyT3FHY1YyJTht
JXY4Rys5Pip7Yyh9dU88aj1XRUN+a19VTVRWNVFKVHpkO2N9e2pGRCo+QQp6U1AwbE9MYFV1bjNg
ejkpcDg3WnYhOHJwYGVQbHk5eTM+M1NkeyVHWFJ9OyRMWlZ3SzNVSDlEcCQycHRQMEN7TjwKekhn
fHR5MUtQaFM+Zns9K2h2TkVaR28yUlVGTlBVSj9zUHJQentieE9rSG9+JGdiTWRrUT19UkxsNUxX
ZTx7JXswCno3SGxuMmFXViVzbkJtTnMoTkx8XyZhK2p6emo0KHNAQlhBOFFSQjhANDYyQE93N1U5
fnNIayRVUVFobUZaOXNOYgp6YDE+eWQ8a2lTTHxNaj1pS2tpSzUmO1o0ZlF5T3lUSjlFUzRYM2h2
YyhsLXpTRUI4eyRPQUVENVgpaGFRS20rJVEKekhofC1CVmZ1SyVrfH1TZkpwWW9AcXJEU1A3M09E
eVhsMUorMGchdnZiancmS0lCRyhsTWJOYSgjMH1RIUdTejlsCno4MU9WeTJLZStkM0tpI1YzYlYy
ZCVYWTl+TD51SDtwcW1GPGB+M3s+cFVJXnZ5KTdFXjk5Ylpndjs8Vk9ZcHJXeAp6Z0FGPVRIQl5K
fUl8QU41VHBNNi1yPig5UE8pKm0zUHt0dSEoQ2FabFRwM0UzKUdEJmFWaHRLanBRQEtvP3ZDWFQK
ekwwX0F9PTFWNUlrRCZ0QDJSSTM9Mz5PfH0/dDxNMkM3ez9MdThQQ1hSSUlMK2piMHk9Vjdfandy
RUFCVFVXZF5zCnotb1FOej5KUHMpI1RCX2h2UCkjfEtIYXFPRTRoP1gqb35gI2U3a3cpeH1edCFP
VHMhLVp9VVZJSn44Mjg4T2pSOQp6YWFgMkw5dlp3IW9TN0N1QSM0fXFAd0Vwa1Y2Vkg8K04zRCRP
S2xAYVc9OEg/TXBPTEdibXImUVFNMld8SWNAKVoKejN4MHlnNl9gRW5sfF9EIzdKPHYkdCZ4cld3
RGUxUnAmIXEoK1l6Q09NMW8hKDE/bmxYYnlfQXZXV258fUU0Yk0kCnpDRDZUfGVPQVV2OXpJan5R
OWkmVigzIW0qckYrZSQyK309UjxnYFl2O1YtLTxRQUBsQmAzOzF1dEN6WjJIQ3JMVgp6ZmdKXkVP
R2cqc3oqZShSMlMrLUYrYyNTK0o1PXNvQlc4SCREcUwlISl8S2R8SHV8d3trZnlSc0tuM2NLdm8r
NikKekBnR0RlXmNIKGBzU1k4P0RfMDAqbDwqRjMwJWMqRXJYNkREKnBMe1dYbV81PlIzTTZAaUYo
fVc1VHlLYzFAU15HCnpRM2t3bWZmSV9nMHZiKEc8KD4kb0c7S3l7ZUB0T3I2aU91IUVrfDJ1UmdY
RE9sWXUwJSlWYUFXdF5weU1AcXg3Sgp6b35oekcrN0p1bEslZH04Z0g8OFNUPE1zM2EheGZtTWA4
blgkTmBLNjJVPmNaVHFFJjNFblNkJTN0cl4oWDIqJk0KejBTO3U2SDJkQTlYKjZ1cVpJXmh5XylI
c0Iwd3c9MklWUnBAY248VXA2Kl5WMCN2R0UzI1QyRCN3fHE4TWpWR2dNCnpXSD9hZEh1cj9nTzJA
d1FLK0xTUjQraiNPa1BqTlBeUnhKelYyWj4/OCh6X3hpM20lZGQ1LUBPQSk7VFlGcT8leAp6cEF2
Tz0kUyk+OWEmaVAxcl92Y25FdDxtTkpEPys1KzlLNXg/ajdZVyk3an4hcE1URFY0Uil8SEptNUBy
KEFIST8KekFnZ3JHbG4oV1ZTLXEtKDRlODZIPTstNldMK0IyYHVLTHx7RmhHRFhoejNnJlh7aitg
SXdCTyo4X2VrfEc9N1E8CnpMb29XJWJXVko+X2pUc24+IWk0UnhlX0R1Z1pkNmZ6SjkmWGJjYzIh
V2wmY1pvMkJuaSZ5NSNYKHFUNCVSaUUjQQp6c1kzQCNxa15SSVR5eT56VWAxcng+XztZQm84QE09
aDdeI3xIMVdPfE1sVjZDR1ElISRgX2VSNHAmZnsrej9UPD4KenU0X3RvcytUYj83MEU0JVk7QkU2
cDI5WCYxOyVZVitnbSk5UTZfTTIrS00mOGUyMm92OSlXM1p2PnU3ZjgpK1prCnomKjlAX0hPeDYt
MXNZQSRvZSRJNWlle0c7V0JScnYmUldIdz8yXl91YiM7bzdQLUlxP1VJOWB7TGVYVFQhciU7Zgp6
KS1VZjUjYWYwMSFiNE9hZThZanxrP28hQlJifW8/aiF0anxvMCV8Tjh7YHkkTU4tNX5nUmRNVERT
dExsQ2RRbTAKejEyP0VzVjg9RnJEVy0yaHF2JiUwbDNLP1h7OSZiJUFoNlNMVD5uLUdkY2VzZGlx
fFl8eXM1K0BWa05eSUFPYCgoCnohO1l8MUxJeCV4bUtwVzJzZmtRKzAxfj8qeUZQeW0oWm1sQlFa
PilOeEk1O0VEUjA9SGtkP0Y3TE88cE5STlRuKQp6KXkwTkI1KWN9OD0qKHB7Xm8lKXl8N2AxJmY0
RT5gez5kOyVrTSM7ayhYdWkwV2t4TG9pdHo3SzgoOGlVNTEpQVEKej88Jik9MWgpUGg3ajcldE1I
MldFJH1vcno8QGVVRzsyKlQ3JTFpTmJyaE5xMkpPRzBAJHhvdG08UHB0Y3ZGbDxeCnpAUy1ee251
aUMmUGtPKWdvYGBOQDxhQ0MtbGYkP3srX05jMHhzfjhXbz19T0pxcFYxYXBEJWt6ZyExS3Bme05D
fQp6VFRkdC0tISRDe3k8Tl4hPVpwRDdubUdIQ1VxdUFwUDZlU1UzTDZXUHdKUUlaNGFpQmdPI3wq
ZWZKYyg+N0EpTSQKenJpPzsxR3BGUWc2c2wkVUpGdzNhOT1CRCgzbmJIZm58MUZIZ2I4Njh5VENB
fHJlQkJGaFpFMmBxI2duPzdJekQ3Cno4VEJVJHZxbUpnPFN7RTsmXzh3O2ozfVE4eUI/WkZZQHNP
Z3QmUFdISnc8NW5uX1M7SVU0P0xhJl4pWkNmIU0wJAp6O1p9fERkTGY+KHlSUDZSUGFHUVVXfjVy
UXg7KDlgNnMkTSt3Z0hxamxrNlJ9e0E3SE5SU3BuWTh5VmBLMEl9aEMKemVQQ0pzYT8hYiNud0lV
ejtia1dNKCZ+QF80REoyOytkSjhMK25oR3JVKHxHX2JGVncrM3t+TTVOQ0o+P0l7JWk/CnpgKTdy
dGNkS3NYXkBKVldLJSlDQSNObSokWUZpZTFTVkB6MWNsOVdyV3gmXyN1U1dRdURGP0pTPn1WWF4m
N1glNQp6JURaKnU9ITBQRSRBV1g9IzE5Nm8qZEx6Q3Y1WHo0MzkmSUwlNi1mSHM3OyFeP08kSEh5
bmNPWW5MQlBmZnB3fVMKenpVVGc1NVRxcXtjUWBgfnVVd3VOSSEyc2J6dkQ2TGFVay05YTN0PUE5
alBtdGpad041QVl5SDZZeEpecUNGNk14CnphQ30mTXhgR0szd0ZYN0ZyJnd7U2xoa3hAKmB2cTEz
c013SmJHeH05VDVpND1HdCFYcnpWZyY7JW4mPyttKFUwZQp6VnN2TyNfMkdQNE9MWEVCe1g8MGFH
WW9Yb1h4Tzh7bmxzMXJzYnclWClZXkI8aVgrQzI5Vz9fQWxAYCZwcmpjU2MKenlMMUllKVZ7aDYl
SytuWXspSD0hQz58LUhyc1UmZ18yJUVKeTFNR3VLT0omXiNFZzM5TlF8RD5zZ3wxTiFlIUkxCnpi
Y0VQSkE5NS1iQE1xVFY0PWstVE08SmUtZ21nZ0lES04lOXJMJj0qKmh2Z317NGprIW17Nklsb2FR
fWY8VWs/VQp6NGxEUWZRO2NFKns/cU4+bSZMc3lRaVp5cEkrIXwlIXk7M3ZKNVU3TDhnaF5YPUU+
OCltRXdeaUwtPG9DdSoyO0EKekBUVitaJlk4ckJFTH1VZDV6OXlkWSFRdTlHQTE0SWwtWDhsVjgt
OEEhbUxBe1I9WmZ9cXZpJVM8PitgKnQ0Wjg3CnpXVUsxbWBJanpteTsmVjhGYX1faWBAKG9ZcXdi
QCheMzNifkhUZndlUil2bFhka0Y7MU5HPTsxenlgZ1dPeDU0TAp6MzFPP1F2WDVzKGhgUiEqY0to
Qmh0WCMhaXA3Xm9leUE/VXpLIW5UPW0mNzUwMTI3cX1QPT9QJHE2YD5ldEBreFkKeipKRWo8YWs7
PSNCcUpEWHUjbWNtS1M4MSs4SmRkI01BVFd9RGVCQT1jcEhRTUVXKFktKVNpN2FWMyY+b1J6Wlg7
CnpPVVhnXzhgbjxAJUtnSnFSentocT9eVmo/aGQlNl9xcko3KzBxSSRjaT40cihZYXsjeUUzI2hN
cnhpfk9CZEp0YAp6ezdzRlA0bXpCcldAdU1AKUlPelRyUDNCaXgxISF3PlIpbVMwdWAja1VrdlIq
KUV+PGtiaUc7QSo7Qm1DXk5ITnsKemkoeSViNlVBd0NDKzxrTi1yJWsoVGRzVlQoMyU1KWJqb2ty
KTV7MV5WTTZBOF59WCghJUd+SiVaXlRaPTB4allYCno7bSNlTGZ7cnw/dmRDN31vUDIoQ3JuKzkt
XiN2QyswSWNBbSYoYHk/NVZFQ3JlfXk7QjUofmd1VGxJZVVOWk5EOwp6dk0yNVJ1UUNXTGJTSzdj
TVAoQFE8KGxEdnEoYTdFPmAzVSoqa2JCaXFQcEUxI0dBYlo+S0xTSHJNSXFsT2xQK1oKemRhOUhi
dilvQTkwSn1KZktPeypQZjFZO2xtSWRlVmlgQl9Gd2FQPk8hQ3FxcHBpdEQ+O2UoIyRncWpsPGpr
I1Z4Cno3I05Yd24tZUM+V3RiamFNSCkwYm1jfl9AKGt3Smx5VyVtMzg2IyFTWEc3eyEkeiVUVU08
YUY8VitCMUEkYlZSfgp6QmR9SEUkSkRuWVEhd0ZPJlZgJlhvUjlIaFNuQiF4biYtJlJHYis/ZVlU
JnlJJDJ1clcrKURXQ2R6KV45U0FNJUUKelhsZExKJiQ3YXctUjxFUz9BNF9qYHVnJUlxbCEmM3Mo
SkRXcXBHJj0jJlR1RnJ5bVA4TFRRSEJQfUR7IXAtSzN1CnomKXZPNDYkajRQbVpka3ZwKCF8LVJw
KVF9cjtQN3s7M098aVMjTnw2SH41Jm0lWFJSKjg7LVFmVl51Z25FZy1lUgp6dXMtNVVNWjxKbzFh
MiRYaX08a0psZjVPO3NlVWolenpOTE08NTQhPWZTYCFJTiM2eCRZbncjfmlKbnpqWWVje2AKej8q
QDdBIyVOdHhzPlojJGJ5ZT0qeTBBIyFpYlN1MVh3aysmPWQwTWIkeTstV1Q5eDZfTC1JQThVIz9k
M2g9JT1hCnopWDJ4dyYrKkNpajdeNmBgNlNoY3slKSEmQz51JTE5Q183SEVjRn4hdG54RTJVZnx8
IXNYdD1mclNifnlIUnQ8Zwp6LXhzclkkdUVMPlE0I3ojQnh+K2VheHdCQmwkQHgrVFVoMDJEMElI
UmdjUmZydCtWdlc/V31zTmh8aUVEdHViP3EKeipvfVY/dFleOFZUe1NvNkc7IURrPXNtZXFuO3cx
dEEhTypQdX03eFdPblNfSC0kWCFJQHxzcCprKGNJO095eFo3CnojcypBe3hIbVdpb0Q0SUwqITlJ
QkNqNz5IUXtkSClrNSt0NG1ObzJEelM0fVlDJG0yNlMrY2FtVnZsMCY+cSRyNwp6OEdsen5iRihK
QDJ1blglQihPODsyaXZUX1B2JG0qQkkleD1MKk9RLVpUdVhYJFFOOX1Ie2I/WWpmMTtVPj01VnUK
emMkUlFDZEowXmdDMExmJkg+Vyl9ZHg3Z1ctQVlyJj0rfT5FSE8mR2p1K3Q/K29pTzF8NzRscGB4
LVd1VShUeXYmCnptbDUjfFJQYCgjK1JjOykhZCh6RitCMFYhQ309V3dmKyE2Z3pqUWI7Qnh2RWFF
ZU5DXntoKjREKX1QM2VVfWpVIQp6SHZaJStBQ0MyJTc2dkB6N1IpdSY+WVBoRmViT0x6ZShlQj1E
JnFmaz5ZZ3NFYGd+fHEpRHQ0TmpaWXVTQkZeUlYKemIxTyZKNXI4SyV5anY1Syg2aitNVyR1TmpA
ZDMqP0kkZDgtWkt3Sy1fPCt+JEh+e2FOSmpYND0he2QzcVpeVUBfCnp6bV5ycHBncFFnMG4qSG81
Oyh6fHQkUWJnYCFWaWl4c2wrUjtDYSsyMURHWFRTMnJgVSEqK15QLVJ7eXhEfnxocgp6WENgQTA4
dDNPeyVza2c+SG5Wd2ZLakYxWDheXlIwTzcmQ05aUjhwKnB1PE5WdUlwe1lTLUFhc1QyNnh0eHBZ
e1MKek4jMUwtY3whbSpFe24xM2cpbnR+QUFJZmJNNis/IUFWPXNvdCYoJjwoTyZhPnM2byFCJH1f
bklVQnIwIXNZWHJDCnpXPjQlRyYqUHljTm93Q2p5V2R9ckVnelBwZSYpSWltVWQqZ2xjS1hrTVBO
VTVrdk5xS3FqTWY9Pj5FOVN4ZXFMVAp6RUBlKEdJVGFQOEBYMyN7K0lZM3ZOV31SQCNqQGhBZysk
V3UlMDluZGk9TWBLaT5OUEFDNCE5XnpGT2ZySFJCVlIKeihjUTsldnx3TmFhczNyeEEoNnFwQGM3
cVB3QUw4eXhxSjRod09PcklDM1paVj9IKDdKYmI+NFRwJWk9dilZPyM/CnpFSkJCbFhaNV9JOG13
PmBrdDRhY1BaaUNMK1c3RmMtfWg1bEl0Jl8+ITRFWjxyVD81Kmd8bXptZFpxSDlMY01SUwp6QWJP
NGVgV0BRfWN1blROaVJ6YXpibkN1JlQ7N1ZZRkhZN2ZoX3wwfXNJX1lVVXR5fCh2XnAmYz8mcGR0
MiZJeCsKemw8a19ycih9WXA0dCZUcjFuZzt4JWlqJmU4V2dKcXVXRFFmMVpJVndrKkx7X2YrT0hn
MFNxdEFzKGw+YEdIa1lVCnpzSS1VVSs4JDFDTXR4JVN6NEs2bmhmMWdIJG8lOzNSYiZXJUZQPVA3
ZzhZMG9Le2ItWGA9WSY7YS1ZK009PjRwVAp6aElLNjQqU3VhLTd0bjJDRShRZUNaYHdeK1F7OT56
Qz5zeU4xTz8xYHtUK3pfdmkjeGE/QEM8Pnh9TkhvTGVDU3YKenc7RDkqbHl3aXRQKFdAXjRAZlFL
SGdabFkzYnZ3e1N2RWVZdWBKMyFhKygqMUokbjVKWkRUM2VPUUdLP2pyJkRRCnpLTDV0ZWQlQTc/
Jn1HZ15mPyN3bUkxV0xQdkQ/VHstfDtUb3JKR1pBOTkmWFY3Yl9YUl9hMEd9Tkopei0/NWBFJgp6
Pn5oYkEhdDNBY19EeD02O2FZSiQ4VGEqdys5Jm9Lc3AzZGUxQGVwMXlPPyhtYEwjWH5XZHRRd0dn
P2FyXjt7UmgKekllak9gUipDWjt5YVBRTSl8UGZzLX1ka3BfaWx6NHJCUiVsbG1rRGEpOGxnYCpY
MDFjO0lrWjdOam1+PktDX21HCnpscFNKZ14kZnUpdkokVnt1ZWhSMzU8ZFZNX2dBPllxPT5wP0Jm
d1l8IWwyY0QqN1BfMUQ2dUMkXnI1SFdzWV9JRQp6Yy1AVnIrakhEeGI7eTtISm0qRnEzbTRlVEk4
JGM+KEROUTtfaTYhUVlJWSpNIXpSaFdrTFBuWEBTU05lJk55SyYKeiRYe2pgMHNhWWlSPFh2ejJ2
UjtjczdedURjNzBZNEdFdjhKaUFoQEtPTUh0SSF4NkkoPzR0VTxWKHM/c0xfVCZACnomZFVAbHNx
QklaaFgoSys4OG5ffTRfU0VDZil9PjNaaXQ7dkc2R28+ak4wPnpEcD40PjRwO3tqUWw5ayQqeyZW
WQp6WmdgSDhjISUmZXhEYXdybjFRQ3w0bDhCRTxEeUtQZiN6SmdEQ2IwX15DK0YjbEhgPjV2V3BF
JGkyfns8bygkOzQKejRDUzNyLTtEX2g3fDs8QEtORiFXbm9kTkROdTxXfkY2Nm9TSzY2WjFqeUhw
Pzl1YWxUY3stS0ckZ0omY3M9VDdHCnpNfWEyQCZraW9Mc3VhUCtQamViQTMtfl4jbm1Ub30rUmQz
SzJhYEJWdTt6ezEmTDFGUmRVSUVQJEY8bFdeRT1lQgp6azhzU1RMd21hJGpoVnVYaz0oQWloM3g3
YTt5e0NxMUxhVFk1I0BwIT4lZyVZM3MtZUA1RiRfZSN3em9KP2RXM2QKemswd1AyQSRzP0JMM1pU
TV8wTHFNbztSWGV2O25PKnB2cDRAaG9HYjs/Ni10Zzx4bWQ/JVJBLWYreGNYQ3pLfkVfCnpGT0Jm
YlAhVUFTbX11KlpEWlZ6UGJmJHk3LTVRb0RobzU9aGteXnRwUUlFVncpSiNAdzMzWF8rdV5fY30k
PX1jZwp6TVdHJCNXWkdGNnkjYWd4K2I1WnI1WDBNMkZoUDF2TnUjPXtRUGJ9bGxmaUszNjhKKjRY
aDFUTCQyZnVZKWkraFkKejd1KXkldG84Szt6VWYkIXFDJkR2aEgoTkFKQyRGKGQ4dkshbjtveS1U
eksma3t9aXhARGhpYzAqfVU0N2hJRUdXCnpaczZ4V1lAaVNMaUFzKk5jTWQka3srM2E8VU40ayt4
UVptPnpvNFRhMj87KmNAb3pHaTFMTF4/VUQkKiluIWI8cwp6d1o3XjV3ZzdYRjxXV2lkdnVWRkBf
bG1Jc15Ifnt7VyEqQHRGUnJkNUQ3Knl9N3ohT0JzYFlSfjt5YGNvITROKkgKejN5QXgmJj88KDcr
TUctTFhBfVh4S0JSbjBzRk1SbUJ4NS1ZUWJKLSEpWF9WbEFUeiVPUkMrTj1QJGdVeXVPNE4kCnpn
ND9efWlFT19ZT1ZgISQxb3pkLTxIeWc5MHVSdXApNGYtUFBvan5zUH02RUomRzJsISNZM097ISh5
ME1CZW1lMwp6JlVUQ0VoNlMhc1VYKnJKLT4odGNNZy1CMl8kbDM/JTI0MGZ7dlgmI0JEPzU7OSp7
cEVOSnNFeDMhNCZXSWBOMz4Kej9AWFpeemEtWXtXYzdQT2Q+PHg2Z3V6KnJPYnBjJUoqMHV0MVZ3
Zl5RKXdAQ2FLKnslM19uU1NJayVWTk9aeWg2CnppJjc2ailwUzw+Pn1SckhnYmw9TmByeWgrUCpJ
JEJ3V3ctWlo2e2hiSWlUSmdATil6WHMtJH0rVlpQN0UjekNSUgp6cTtvM2F4Pnc9VDcqVGVlJnhz
MSYrYForRHZ8PH5Oa1hSPSMjU3hfeExfb1JZezs7a0srU3ktXmJoJHM9Mi1rTWYKem5CPT1MJn14
ZHwqT3tsSHE0cTFNV3h9SkZRMHZfR0BwJV96JEBRMClyZz8kQWo/UV95Y1A7ZEVJQWxfeSNiMUUw
CnppQVNKSitaajZvaypSZjFVcncmQypyITh6T25xNj5rVGBNPnJOViV4bU9ELUFgIUQ9azgpYlIt
Pmh2dW5gI0pHKQp6TkgqZHJlYyN7YCF0NEVfbnVlcFR7b0EtSSghc3pYSTYhXmclNUw5WCtFZF95
M2FqI01zZDFMZWQhRHZkKW1yIWcKenR4ez88OClmJi1vUWtjXng9S0B8TiNzS2ROeithKnZ1Z2xU
ZH5INmZqfjc3aERea0xAUlRtXkVnWDdrfWl4Wmh6CnpXam8qJDM7QjNoNFktUkJEQE9eUHh4S3lR
c3dhRSslXzUoekskbShjc3pyaU1ARGsweSptRGJBeThaS3FAWEJ5UQp6YjYwb0F3ZGgpUGMkX1k3
U3UyWUooMis5R0Q0fjJ9bistISM4NTl0e25gOTF5PGkwSj9lZ25ZQ2hqeEo5RTJxUHcKej4obTJy
OFJobXpkX0JtYj9Na24pOGc0O2cpZUhEVndSMl9ZcHdfQX50Z1hoaSZSQ3F3bXNMSVJ3WlRgZkNl
OVpHCnpURCRSdU9aOElJK0JEQ0xPbyRgUmVnJFlfZFV6fUVuemZlT1I0R19CWjwmZV9xZCFDKnVM
SzNvYmctPF9VVWxyQAp6PkFJdm45KVh2aVBBPk4kRXBfSmdEPVB7dXB0WHVfQn5EUXpKSj1mVz5N
RXwkMzYoMV9aS1M7I191MiMlemkrfFUKek5vUkxYNTQzPXIlPGZSWUU5YFErelBnJWgoSCZeYWpL
WkxobUMtZmJmaXgzVkQpZFZ0eHxYd2RhXi1RMj8wUXVfCnomd1gxN2IkOChBZVJtNjxgVnFgUlAm
K0F6SHN2KTNmdTdgeGdxJUkwVUpab3lSc0B9emcmSDlHdXZYNihKUTZycAp6dkYkN3g7RURJdVVx
RU53WVlsUiVyQU9fX2ApOFdSRGVgVTUlZ1U9K1lkck5PX3Vod0JuZGQhT2hgUXQ+aHAoa3kKemtl
X0BVVlY4JWhlY0J3PWUwQlh6KVlRb0I+O0Z+RkkrUW09eG9ZdSVlKkU5bndTQVpPUmJGMHQraWgz
WXxDWEA2CnpHVFhaT1MrXzs/ZjhKWnteM1MxSTlHQWJVb1FxKWl6V0BmR21kOTI5LVYzbGU+O0l8
bEZIKm9GNyM2ez5DPU0yIwp6O1FzfER4WDUqalQoYCh8aShJJEpiXmpjSk1MSnhoISRtcT1xe0Jy
elQlXk9yalBjNkZUK3BIKlNRRz97Zj8hYikKekVEQ319TDlpJFk3NnJqU2YyPmBrISRtcT1xe0lL
OD0jVmI+PkQtcVNHKjx0MEYyTGdja0FFRWt1byhVUUFDQ1Q+CmM4Y2gpaD16SnhmK1dPQEA4azNg
azB9bk1GSUN0ZkwwM1kpZCt5RFJvCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYTU1OTYyODA2OTVjNGRmNTgzNjAyMDlhNzA0NjVjYzFjNjRk
YTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0
ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xh
eWVyIGF0ICg4LDgpIHNpemUgNzg0eDE4CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgNzg0eDE4IFtiZ2NvbG9yPSNBNjcyQTNdCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNTcyeDE4CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NzI6ICJUaGlz
IHBhcmFncmFwaCB3aWxsIGhhdmUgYSBmaWx0ZXIgYXBwbGllZC4gT25jZSBhcHBsaWVkLCBpdCBz
aG91bGQgaGF2ZSBhIGdyZWVuIGJhY2tncm91bmQuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjY0MjljNWVh
NmU0ZjA2OTAxMzQ3MzdiNTFhZTE4ZmE5NzA5ZjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLmh0bWwKQEAgLTAsMCArMSwy
MiBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJkaXYiKTsKKyAgICBlbC5jbGFzc05hbWUgPSAiZmlsdGVyZWQiOworICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAg
IH0sIDApOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisuZmlsdGVyZWQgeworICAt
d2Via2l0LWZpbHRlcjogaHVlLXJvdGF0ZSgxODBkZWcpOworICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMTY2LCAxMTQsIDE2Myk7Cit9Cis8L3N0eWxlPgorPGRpdj4KKyAgVGhpcyBwYXJhZ3JhcGgg
d2lsbCBoYXZlIGEgZmlsdGVyIGFwcGxpZWQuIE9uY2UgYXBwbGllZCwgaXQgc2hvdWxkIGhhdmUg
YSBncmVlbiBiYWNrZ3JvdW5kLgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvcmVtb3ZlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41MDRmNzRjMGRjNTBjYjUxYjczMDBhN2QyNGM3YTNlNDM4ZjljMzgzCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAxNzA3Ngp6Y21lSHZZaDJRMnxHKHZ5OVZ9fHFUNmN6UldwMVcyR1lA
IXgqNVIocjE4dWFAUW1EfFpKZGx6YWFfVnE1d19JQTkKejsxU2w9PFl0KkJyYnI0XyZJblExbDAq
WitRZT1YTmZgRVgpcFBsYWV8S1J1Ul92SDckTXxAdmp1OFlfOGBkcHZ1Cnp7cjxlKSpYUEFJaHZF
O2NUPmcqY1pmPFRYS1J2a2IzcFkzU0VwQmQkNlA3TTx5e1hFKGFeQ2d2KFNgajk3ZkAkWAp6UVIk
ZjZPdCh8SmNBV3xqM0VwYCtebUs0PT0qT1hfY1kobnVAWDFzWkRrTDEwYXdgMFdZUmZJeHVLPl5Q
LUZ4V00Kenk/ZUpEJTBadCNvMDAwfmM1JV9RITsxOSZMK2MhYFFmblcpRXthSDd2a1k/UFIjcG85
IXJxJEpeck1nWmo7VFhnCno/O290TCVTQF96d29PWlg7NHhIJGpfQSZ4QHFrITdKY3E4TGFpdUd0
dHZma2F8TWRzNHJWcEJfKXd8Kys7cUdqNgp6eVRVUkJfRW43YHpPIVQ+PnQ2PX50b3NyVT53WUBf
XlZtOXRlaTZjSj9+ZUkxYVliTGZgYFB2Ynk4LT03dGdoTHgKejNpdkdKIVczRkAmdytZYlJxblpG
K0dgODxjRjR+a3lpV1k/WT9Bb0crTDN7OGJoU1l0UHkxcHEzR315P2Q4ZFY9CnpRSX10VGR0KXA0
XnNiUUlSbSt9d2JubDZYWTE8dU1hZHlQOGEhYDFBLUkodW9Ncm1NQylWPSoqZlJyaXduVnpPOwp6
Wl9ISWFeMTs3dlBnTEptdC1nXzJ3SzR1entCXmxFbX5qNXZha3JPR3B2ZDwpcFMwRFVQWTUwVEEl
d1c2WihHQmYKej9IdHdBZ3xpamYpR0E4aU5BTEp9WlI8Rjd4Rkk7Pj9EemB6Wj5xLW93WD1zeEFK
QkduP2d+eWNqQXs+K3pvaU40CnpIa3hBb0lzMXFzaz1gb3Y3ITg1WUtOPXdJYzV1d2JvYTsoIz45
cG57QFcjdjg8RTBUdHF8Jmp6eH4qTTU9WUl9JAp6S2UqPmd1fio4NkJlKFc9b34lT3N7TEBfUXlC
azBGP0N5KVI3WTx7WTtSQkgkbVhXbnkyUUtvRnRKKUNuOGpteUUKek9kfmV4dSNjcDtXQnMqbSko
P1o5WWc7WilKWXVlYCtDPDdkYFFyfit1ZnkyTj5QP3lWUnhKSjhhYjRNVDVSdXZnCnp5WWpndEgr
MXxhb0hDIWdMYlVWdGx1ekN9MzcoSllyeEEwMDhPdmVVSGF3K3Rpa31QUl90eXc2VyYxPCFRUT57
aAp6Q1ZnSlN6Ujt3IWJ6VjJfZEc/Oz1YMypZYXdjS3JTSFBeeFZTQkY7a0YzRz41OEduLW1sNlgr
dGR5YCpWKi1QJlMKej00PnJ+eTF9Pn58TmI7TG08dkkmJnxqYVZPUyUwaW5qZUNXWTE7ZDVKXkg/
PjtDNn1CKkEhaispN3AqOUNUPGgpCnoka0g3VHplazw+dG9aYFcmRHwkNm8/PntyT3Q8RD1FQVVA
ODFia0MrQDZeJG91cFBfTW03V05TPWNrUGFoWE5sJgp6bVQyOHU7UkRJelhPUzROIVNEUlVDVlE3
QUZ6bX1FaD5lZWIjUlA4bkU7eDU9KiNrVm5VJGI4NzlZdGtieCltdSEKei1IKjtaYEtTblQ8ZXYw
RztCbnhoY0VHKXRHfF44bGhnRDt3NiZIVilVJjdlQmVCa0xGPFc0dVlFcERJZ2B7ZU0mCnpNY1FG
JGY1NVV0O1BnaUROQntvJXlHeGg4LVRtPl5ITlR2UitQQyRoLSFKYz5QTCtjWGA9cVh5Uzc/JXlk
bntwSgp6bD1xYUVVIVBlbXskaj1jJikxMUJ6OXMocCh6aT5PcElQMCNfU0FGUjxXTzlKeCZDR1Bl
S2Mqbih2dGYhUVZ9dCQKekhxUHBfUSFSMmRYYFB2dkxCeyNOd1JIOEMtSXZASkVwfFAkeGk2LWpf
bUZvVHxMPzBVeUdOPW5FJkJRTC0kUHR1CnpBOCVnIUBnLVQlSXJQNTJybiVtXmg2TWZaaGRmNVgq
MnJ2WDlQSXVaP0M8T09kdHBneT1MWWsmUEtCcCshKWxNXgp6ZT1QT1N1a3ZGQDIzQm4kMSskP0sl
al9UKDgjO3RfezVtSzhzUUV3QHBNZV5RemNfRkNqKkliMll7ZnolTzYoNEMKelMxd3JESldTKSoh
Jn5saUJ2Z1llUjR8Wi1CZW5POSpfeVJpcnhYU2ZaXlpyUmd8OTYoeTVyNkRNbC1XKEZ+eVhFCnol
a3ErfENrfipeVjclSFp4PCRjP1JHaHRZVkJqQXRQMVBLJFl4WVViUGpLRVQlVCk5YHFxTzw4XipD
LT9vKCh7IQp6TWpQaUN0WFJTO3FzXzchY1Myb1YyTWpZLUYmWm5aelZKZGFqcTFfdCRPamhhS2M1
PiEzbjg/ZnhWdWYwbzg5eEQKemomNH04M3VRKmU1dTlRPmR9RFl7RUhfUEVOWjxNMEpkYVQqJV8k
YTlicDw1aCZfSUZ4byh6I1ReZVJoLVc7eFJoCnprNHNfK1N9YFMpaEZfLTt3YWsmPzMyKCRLPGpC
cC1OKioxOF5eQHFtTSR0NnVRJSFDPFg/QDVoIW4lTj82TVU8egp6JkZgZmFRVjZVNGZvYChwc29I
LSF1Risma0xTfFNWK1oxfmRRTzE9JmhTUTY/VWtuJUE8dzJxXk1QKTVAYmN1YkYKej4ydm9qNzgh
Iz92PWFrJlQ2VVVXRmVFVC0wNVN8bE9oSTJlRm9kQ24qPSpNMTRAS0RvaUZpZTA4PmdDSlhRU0py
Cnpta2o3fEpFQik5YFJFZDJqdjUtTEIpeihBd3V1P2EzakJiSyRRTyZeMHQ2OFh7b3Q/X1RQendk
Q2skWChiMD1GPQp6NVUhQmZHQXZoUThDSHk2bVNsUWdhOGxFWEtXWFVuWmhRUU8oPno3MD48T19N
anlCcH11PGJ+P0psTlFHazJsO0EKekpLYDZlTlpXKkUtQWhXI2B1e2Q5SENjX2M8dDQ4KiNJJUsj
OClfb243M0F3fntsaHR7PExLWFNAJEBjUz1XcztMCnplWERfYHErM3FxWEpGQH1aWWRzVFFjNXp0
MmljdmhEVFRJVT5LOGFwcXZNRn5XR2I2RFRCVCpMRyVBJVcqP2VxMwp6WVc9TiNuZ0YrYS07XkFt
K0dFOHZCMEVLUyh4ZEU3JGRYa1ktSXZrQUE8X0tBcjtmQHpASVBzeEVENHFnKXRJNVQKekteaj9L
WU9VXjJ2RFY+ckVEYnY7WlkzS1Z0ZUVPbDgmUFZMbiEoMlRKb15Fdy1LI3dARnE8RFY/KyYtQFdD
SjFOCnpRXy0qKnRDfSU/K0RMKlcyNXhCazQ1a20lVWA5KGR5YH07QHp2O1kxejhOfG85TSlrQndI
UTExR2x3PWs1S0Zzbgp6JXNaWXg+ZEAtKHlfM0NxYntoKWBJOGNUdT5FX3Q9dmc5QDRjRi0wWTtl
KF5BV05EMjl7M3B8bzc+Ykk1cntZZWsKemIoUyQ3a1BqNGk0Q2x3REBAV3ttQGk1VT1NcH1ZQERi
QjslcUhZNDdYS2RZMmxDam5JQm9TcjQhdG1Fc15neTJ8CnotfDhgU1d+KD5DTmdvXlUhQ19UQilO
djhvcCVwNylIeTxNYnhudiliXzB9Q3QzMCtUTDEqMld4K25VV2MzSGd4Zgp6NCUzZndIeHNHU3pg
fGJRKigyOUthbiElcjN2YTlgRnBLWEhxRWJwaCtvY2t4RmU+ay11ISRpK1R5KHlse2RxYmYKemE9
bmNkUUJMS1lfMCFuZjhTfSNpPndEcTFhWXh3Q00tejAtd1o+QWU1fjw2PEpBTTw3KV5TdEwpdXY2
IUE5KGRwCnpQXnVnN3JXPk5MU21qeyZTUVJSaGtrdmM5aTV6M2tuTlFfSXlkbl4qWUVmVm9HMCVA
QHp8cEItPDlmSXRDKiEhbAp6QVB+aGdYVz0qKnN1d2lBYX0qQXFmfkttRSpISXptSzBNblVMPXJC
P05KRFkzYGRib0pocUlpNEFDIWp+dCZGN08KeklmIVZZSTt9MjtOU0Z+SGpaNVY+LUszN1NTeDNh
YUZlT1d0PSopeVNSYCVFa24hfn4oYjFYcThoRV45aSNCJU9mCnpoM3k7MHFfZEZqSU9DX28yPSgm
Qms4Rm1RMmFYV3NNeEcpSFk3cEdiazU1JVZiSll3dTZrNHZ5RUxNJlFuZmI5PQp6RSQ/YjBha3tm
KW9TR3IoLXoleH4zZXpZOUZ1dUhtTmxZTzMrX14tUEBISjwyQ3k4P3R2cU4kZlI5VD1BIShoVzwK
eiN5QSUhLVNhQktTJkVaOChXYVdBKEAreWNZUnJLP3FZeXA5XjgpeSQ7QFkqVW5zbHJeP15FdDww
Qj5LekdFTXAkCnpJZE1EfU18O35hK3V9cFpnemhxZTtVSD9rR3gzK1ApWD5Kcnl0dF5gJHl5WXE5
Rl9lK0FgcjZKYSkjWCE2SWN3WQp6dW9pMm8zMCsyLTwjRiNmNiMkaCNEYWBuY2YmYmIkJGBEYXx1
QU9WZ2s0SF42RnB8NnN1dCZ+d2UlQDEtLTZIKzMKejREWHRQZnkxcTMwMGFKJD1jU3cmRGwxTzh0
JXJZbWd7e2VgVngrcjJUZFBYcldefG5MXlgpOz1zWEtFZ08hMjktCnpJSz1WZCReYTF2VDJlYHsp
WmJrM1lmJjgrPmp5NTtqQH17NnkrfGI0dC1NfTRyVTJ1dC0kM3leWXE/U2w/WlIwUAp6eDM9SURg
NjUjSWBZdnRJZ0ZYKWFIPiMjZFYjQnM/Qjc8c2gkZDdZJTs7Pmw0dXNCb3tiKWsjZHd9SWw3NTI5
SmsKemE4YWNkNFl4MX0mcUh7PiU1eFlCPTZ3e1QoQnh+O0wlP0RCe2lEN3ZjeHYoSXdZRWZjJlVm
dDYtMD5IKjIzamYmCno1Sj8laitXUCNrJHlmRD5Jc3I3ISpoSnBUO1JvUitqbz41UjcxbW1ZN3BT
cVNLcklIdUR6NjVxMkJCM3dsJEtjcwp6M2EkdClQYWwtUDJwWHw+eXhxKzMyaTA2eEFtYWo1YHhf
MTxMTThYJEhhKHxWWHNGfCFeVyNrdykoTW00QnRwMDYKeng8YXlWP15RLUJYUkpVVyoyTlFFaUNN
N2prKEY+a0RLTGY5JGBkb30yPyFlUGtKUCFMJXt8UnQ2Xk9fdGpFYjg/CnpKdCk7UVZ7fDh0SzlS
fE5vQCgpY1BoZ0F0UUd6ZHZ5SE9UWGdDWXprdFQodUR2NEVwQUg0MU98IyZkR2lIOTl3KAp6cT9D
aHNRLWpJbUtYaE94dDFnfnttZWpIfG5KU1lHcmokOVhqRmpGUzJIJj9ZLVBHXzZ5X2tjXlh2cHpM
Tkg7cE0KelpBLV5jQkxqZ1hiZntVenolUyNWe1c9TVBRZ3s3WElRenJYe1FXdT8mfGFiV0Fpbj92
U1ZtJEFRe3ZgMllPcFpgCnp6VldvKWl2TVctM0xgQihtRVMkJEYzQjNraHw+Qio5Y2ZFMGNSMCU3
dzRtRyFKNjI1JWdES3lYYERoPyN7alVDNgp6TWhfZzhHYldxKT40S25VckE0Vj9wUWNwI0JkLVMl
WCFZSSNTOUNyVTVhNkFgPHdZbVNgTFYrIT9aRG9XJU5oVzUKempLPkR6WT9obGhmRVAhfiMrIV5t
KmMwV09mQ1UxWGZPeSllZkJ6PEV4I2E9emchLTRKcnJnPz5LeFdiI1I+eGUwCnpEM0ExbFFiUGl4
blBYbS00UkIyb3VlSUZCNjhJI3Q1P2lHYVc9RzhGWnFGP2lybFNTIWY7N34qI3Rud3FtNFo5Kwp6
YDZ1PCteJVRvSDxuKF9RLSQpN3I7X05DfnA5bjxqM0VBI2BrVVdOITkmUjslJityI3lTSnI/LW5Q
WS1jNTR5WkkKenZpV1k5V3duc1cwJTdmdV5xclNkKiFoMFprQDw8LSp6dHR1UikxYkxSbiZxV2Em
Rzk9Q1VyczUpVVowezxZcVh8CnpIWnlZMT1fR21nTVlDc1I7a209bXlqMyh6KClnZS1zS3ZqZWRY
dlRgN2AwZClpfnJibXZTRkwjTX1MaUlPNGd8Ywp6bXF7OFphOXVNWmpIUVVtPD56MGp2R0Ujd2FI
XmpmbjFJQXAwbGJFOWE1aT9ueWdATTxoZiNlNS19cTA3O0slSjIKejg4fG1pN0hOdGZOLWAhUz5C
Xit9JHkqOF4tJWxSYygzb197az1KNjBWbnh5MXtlNTNKRHwqbGV4IUxOJEBRMXxWCnpgYUdAUlYw
PiRtQ2teNy1hI0REQyooM3EoVTNyVz1gOHA/dmp+V19+VE5BQE43YlRFb3FUTWIybHF9dDBRJH5J
ZQp6VXdjMGhjJF5HQkV5Iz00al49cmp3ViswKjVoQWMhRHAkTkxmIVhDXjE2PlhePUVFJnw3bDxW
ZUFjPWFRej9PdjUKenw3PyNnJHcrSVkydXgtb3UlfGhoI0o1cWdafUBOK2hyNVMzOStMdFQ8biRW
IXF5ZTFmRkZHPylgRE4xTUdeMWxJCno5UHczMmVZTFYxO0Z5fnVuT2x1QjxxZTlxVTc4MyUtZkAr
al56PllKOG5WKyk4YypZeykpYE0zbmR4Q0g0KX49WQp6KF97PilTczc/SHl6Uyg7U2hKdjQlPUF4
bW8maTJMWmp+X2I2T0oxVVJqbCV1QGpBbUZtcTwqZGluaVFfZkNRdUMKeiZtTiUjcWxMc2twMUtl
YTRLN2dAXiY/fF9gazd2QCVyKlVxcmVYJWllc1RJYG44VzwqdEZqTD5aY3VueD5rNmpqCno0OSQh
K0Fwcj54ZiYmMkBNSDNITDtwO2ttS21tbmtaY3JTSlBIVk5tSUhFbEpNV2xaNzMwKWg+b3tfR0xE
OT1jegp6Ql5AUFdHUDhoNSNtUV5VQ1hCOGxTLSEwXiFTPFV0S00rdClNNFpkblFPdD8xX1NpMFVy
TzMtYkhyRCpNZSQ5Q14KejhCSnZnKElfT2U5SDIoaWRPUiEpQU1lTDhzbCY5fDk8Kj1wJit+ZTVK
S2FSKTcmfWlQPF9QZU9TPktseEB2TDNnCnpETS1xWVJHejJ3JHROT0chSUhfKyp1dEN8OF5uPytT
SCZ4Zno2XysmcVN2JEwkOTw3UCNJRD4oTzcqWlBoR3tuJQp6JU1KVldNKj4qPUFRSkhRbFg9JXV1
bS0lKkFmNTk8QHcxeWJaTD54eHBpNzElPDQtPXtGej08fmxZTns4KUA1KUYKelhzdTwjVH1kMVY/
YExjQmJWYjtLQUJhJlJpelBhNnpVWWA5MVd3ZTBMSkctYSFxdj9CezQ9I2k2cGttQjZZRSpvCnps
Y3BhVihPUTAhVTRmZ0lYPVZ5R3NlbHhYV09BNTBncXIhSzZfKHVEbT9LUDU1KFhPQ3Z5cVNHKzNq
WVRITSszPwp6TX5MZVVFeWhtT3ZJSUNOSSV9LUc5ez9qcl4mPl9hckFucW9xMVVRamgwTDY4RDNX
VH5xQCE9PypJQEk+ZkljYmwKenltfCo2NW1LJnIlMUtxJURCWVhDaEBWVkBhcWB2bEkmT2l3Mkpq
blAxNUlsKz8xektmcGI8dU5vcncmV08xWEtwCnoxZT1VdVEmbEJib3dhZFFUI14wfU1SLUYmd0li
bmMqQUJxdGtRUnNKMlIxSXxqfVVnSEJzaGl7JURwfn5xSENzMQp6Y0peOTxSKiZtUmAzJDZCXl5p
TzBPSi1sSDBjPm5MNkViI1ZSbiM9eUZuRk1EcjwqKGpsd35xJUUoJDFTYjNMI1oKenc2N0k4Ml8q
cHFBPDdXQTxfUjdvcCFZb2olak1BQWEtVUEwYDNfZjYpTmotM0hIT3s5bGhkaEUtKHJ+fXZkJn4w
CnplTGtMYmFxY3YtUSRFPG1fU012PVdJYH4kVC0xWUVuTnZlO21RNk9iNWxTJHdeYVE2aD1waDxP
bEopbzg5TDhuWQp6c1lmeys/KUlyYSE+T1d0dWg+fkdud2w0QTNmU1ZZQmk9WlRLYnZyYHErNHFt
PyVjWVZ2VH0+WFAyaDJjbjRXaXIKelByMkhlNz02cGVOYWJWTHY9eFl+JlJqbzFGZGd4K2FaQ25n
JkpVPylAX1YpUSZUa24+SE8qciZVcGl6dmtnRStxCnpld0NSbyVLWndpPkM3N3RwQFIoNE9ZQGVW
eW5uTVY7RmBiTDxXU1R8aDczdGVaRG5lMD5RSGRaYDI1Kz1pMH4+Pgp6VHUpQkpydnU1STVHbmde
bjIyV2RoTCk0K2BrKCtzelRFXkBzUmxye24qOz04YzBnQnNOQjIkJW9Ldz5gezlyNmgKekpkPW4r
OF4rJTIzRjcpfEBaZlEjIXdnZmRjO1hGSFVnVCQmcnM2V2pubVRLJlBaJGI4P04pJmdrJllqKmw+
djE0Cnple2EqZE9FZD9AKH08QllyTU1OQ3E8UTg8bDsrbUA5UkZRMEQoMno9QH1kZG1uMlpuY2Ft
TGh7M1c4dlkyTl5odwp6KzZaMWtNKHhea1l6b0FDUj1QdXpRZ059elJWRDwpYTZPfDRldihAKjBs
PD8lJU1Jel4ofFE/I0pVPTh3KXlYVD8KenJ9MXF7V0Q2UE5RfVNjVWdvWlhJeXNYcldIK2grJSZE
Y1BtNGl4Vj9RcG5ybilGRndJU1ZPVDd8R3Z7TW9WS2RBCnp2Vkd9N28waT9nNzJhaU9kXkVzenBz
dXp7PHdjPXxOUXNpZUB+eGQtZn1uPilyeDlFcll6aFo7bypXWTczeW41RQp6UnF4NzA8M2d+bW5i
Pz1FaW5uR0A8ek0yQTVfUmtqbTdHbWgwUmpaPDNZOSNsQ0NQPFEhNXBkMHw5TDNwI2BCcUoKekNk
MGVCQ25PXj1Gb2VDSEMjVXYtZDhkanc5TCphaG5rV3lzJSleYGdhWE4+WmhCYVA9Yil0ektTJEBi
WVhxMGdvCnp5ZlZpLXZmTzlHYjdYWjdUMD9ifTApcndMO2tANn5Kd1FfYjtyTFNncnYkd2k3T1Uo
RShiUkQtc08xYztldXJVcQp6O0JTPkM/PjItcGhkQlBQb14zUyUyYT8rM1ZjUClYVkV3UnxuYl45
SERMN3EhP0Y4Q3hRKDVxeiZyZEs/Pn0mPnAKekk8NEtKd34hZ2crRDlva3RQP2NedEJsUz52P0tK
NWBgRHwhYl95PDtSPjFrentjdjRYZ2UydCVDdjttdEJncklsCnpHOGxWeFd4MUBGOyVnfklnaDFL
RU4kekNsdGtySkcmYV87JD0mYkt1OUc1dyMjZEB3S3IoQ2B7QH5jKUx5YFZCbAp6cHIyeWpMT2xD
dUxvMUJkUT5jeEEkKVRGTm9rSnlGRURhdCt3YjZvJUY+dmhnYVhReHBoJT1rdVFXT2dLREQ+fDkK
elp9WXR+Yk5qSSlrOD5LM2F1QmFTaCEofF8oYEA2OD1ESGwmYzhzdFZ6bWQ9KldASldaNHVCdWxS
T2Q9SF9jSX5XCnp0cGdnT2w0RHJKb0oyRn1gSGRBbCpfRHBGJmNjRXFmWn5DZHg9KmdiKVFgelRB
cnM5Rj0hckJ7bigpNT1NMUdBVAp6cSNRTkRXIVVJVT0pQD03LXRQSjhJJTs/ZTArS3k3KX0oM3gk
XkBsR090MTEtbUJFcT5GUUh2bXQqeSg2aSlvTz0KemBsSl5SWC1oTFpRcSZTVUY8c3B5QSNLO1dE
Jl5OPT05cmEyNUphJHhSajx8OzBwZ1ZqSnpWOyMtXi1wTDVjPyRkCnp1NmU4XjRQOD1lbVNWUDJY
Ql5pVXYtKWRyT1U3fD4oczUqRDNrVD5Oazd9KilFYChzOTclRUFBKm92UVFpeG07Rwp6e2RoLTs4
TC1OcE4zXkp4U3QxKWFVZVB6eG4ocl57X2VSUGlTU0NIXjFRbHU7QX4+VTFOcjFyVUd6ZjZTZEx6
a0sKemhAfmxXYnYydFBjI3B4ekRLai1Qdz9QP3Z1Nl49JVN+ZExHZD8oMyFSVmB9KlpsITZHZyk/
MztZfSk3IVVKQDZPCnpiZ29vQit9bVduZ1NFP1pLZVhqRU9TKl50cjhGKGFuKzA1KWRGN09TJj54
clhhP3RTQTlWPXIzXlN9b1VgJEllfAp6cXg5a2NDemtyV1RjP0RSQjhfKCQrRU5+K0QzMj5rc20y
TUtqRWF2ejEtfkJWQ1g1eUIzdyNEJWdOIW9IR2Y7dmkKelpFY3gtRnFCbjcraTVHcEs2eTJzUF5a
bksqYVI5XlZaZH0pKD5qM2QxdClNTXFqK3l0cHc0I0ZTQk17WlZVTk56CnpkbX1UZUxBO31aSGB5
Wn4/XjE4MTw/IykjeV9URkFybkBLcmtqWkheUTtaR3o7SXhhVF9tT15DLU9ScEw0cnp4Ugp6I2tx
azgzbi0/JjB+RklLJmFqTC1CdGYkJWNTNkI1Q2dEYEJ2cUZMKCpPYWwzakwjI3liJU42QC1mI0xq
UTx7QTEKek13aTVJSW5eI18qIzJQU25wYXVXUFM7R3VYcUl1VCN6M3EhQ0lBfDlxN21wWW1mMTVX
cypZeHZ8SktlQjNFe2pxCno4RT9LJUJ9OTRTb2NDJmlySz9wUEZhK2tNT1IoXj9hKldpKUpCcyUw
UShCY0EraXZDXzRkSThQbH0pVV5pfFR9Xgp6eSFjR2tzM1VXWSVaXmxEaXNhVUo/Z1N6PWN+UTt5
JUlEfiUhc01OSXkqMz50enVxZDEkWChQSVE4KndISkI1dEsKei1zU2d2NSlHKnNIMjVMTVh2R2Fs
R30+V0VZTzgldXdxTClBTHpkN0FYailBVTNBWmclPVV2ZEpBSmxVTl84MWM0Cno1c2l7WGEpblpJ
TS1qaFNJKSgwQVlxPXFwR21XcTAzWT9hcShudFI1Y25FJXMoPm0xWjtzb31yZylgfWpvbFBFUQp6
dnVhSiRNfSgyYmJgJTFhbT1obiFkdV9kbDRERjAhJClLaVMtN1VxcGlwZjhYMDxhRigrXkZGNGhT
aHdxJHt3TDwKejB3UjxKOXJDTyEtTnlQNy1YUUgqe05eRyRxTFY9VUJUfjd+ajJhTzVoJTBsZUV2
cF8tUWd2KmpxWHZpNVJrZzhiCnpJRitgXiUtdlgpVktAVEJOeHlhM2hBNVJkRkxGdzt7eFhWZ09r
UmVXanRoUzZ1ISF8NGZYQzVDYHZETUZtRXpLewp6az4jWCFNZClPR147YTk+d1lCPlV2cm0tcXI9
am1YejZ3fXorMCZjaWAzZ3w8JWJ3TCsmY2hjQVpQam51Y1l3R3IKejZeb3tOOyQ/NWJRZ2V6diQ7
P3tRaDlnflIqJW9kek5ZYnYmWXhCd1RpQ3JwV2QjPXE8TWhZZEpAVm0rKno+alc+Cno4YyZzd0JX
bnAqQnlgeXlwN0xlRStnWnh8TzlGLWN3UHBFc2ZRVEVfMyRMfVZ0dUokYi1pM0dteSFGM01fSUMk
UQp6U1RyeGJmQnlZRGV8eW9aeEJUTEYhdEpjS00pcUhXZGltUilUZHV7ZXReQ3RQY2E3WUFANnd7
WEV0czZPfEMjbVMKenh7b2lkM3luK3B1ZFJLNUBzZ1ZaTFZuelRPIVYmI0okQ3pJYU0hSXIqWjh+
M3tjIW52eU5eWnNoVypGIXpQeDlWCnpgQHhnX2A/bWpRZyRzLU1eT3w1R0dKbURTTGVCaG8jMT5B
fFUpTl5+SVApaGdGQ2clcmd0ZnA7ZjA2UzRKPVUmcwp6RWRJJk8mM3BDbHkjTmQ0IzZxRjxTQjFH
eSticTtKM3JiPD4+SURYMFZESlVxP1kyTSUzdntxUjJNY3VZdz0xfEgKej0+RT9OeCY7eHBBbVNF
OCtgXkBYJVlqXzVWSGElSjF2KiV1ZzlTUVJwbzBaRVNtPXZiPW90QU8yXlpRfDdUUS05Cm9UQW1p
diFRY0lDfEktelo2WDFEZmFtamxgZX1lMDhEQk0yWEFIVDAqJnh0R2w0PDd8ZWBUemdgCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMv
cmVtb3ZlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YThiNDZlMjFkOGY1MTQwNWE3YzE5NGQyODQwZmFjYTA5MDZiNDVmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4IFtiZ2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDY5MHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDY5MDogIlRoaXMgcGFyYWdyYXBoIHN0YXJ0cyB3aXRoIGEgZmlsdGVyLCB3
aGljaCB3aWxsIGJlIHJlbW92ZWQuIE9uY2UgcmVtb3ZlZCwgaXQgc2hvdWxkIGhhdmUgYSBncmVl
biBiYWNrZ3JvdW5kLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZW1v
dmUtZmlsdGVyLXJlbmRlcmluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92
ZS1maWx0ZXItcmVuZGVyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg1MmEzY2U2MzI1NTY5MDY4NTcy
Mjk2MGEwOGEyMGE5ZmQ2YjlkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBmdW5jdGlvbiAoKSB7CisgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIpOworICAgICAgICBlbC5jbGFz
c05hbWUgPSAiIjsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAgfSwgMCk7
Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiB7CisgIGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOworfQorLmZpbHRlcmVkIHsKKyAgLXdlYmtpdC1maWx0ZXI6IGh1ZS1yb3RhdGUo
MTgwZGVnKTsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDE2NiwgMTY2KTsKK30KKzwvc3R5
bGU+Cis8ZGl2IHN0eWxlPSJmaWx0ZXJlZCI+CisgIFRoaXMgcGFyYWdyYXBoIHN0YXJ0cyB3aXRo
IGEgZmlsdGVyLCB3aGljaCB3aWxsIGJlIHJlbW92ZWQuIE9uY2UgcmVtb3ZlZCwgaXQgc2hvdWxk
IGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YmQ0NWJhZTY2NzE2NzkxMGNjOWEzOWZlODE5YjMzNzhmMjJhMzAyCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNzExMAp6Y21lSFBgQ0YxeytxVHRkYiRWQGJPaDs+KXZj
XyN2bFQ1fFJYPzQlYVQqPSVyTWEqM2hzZDM2RkVobHFINXY/ckUKejF1LWBnMVMoVFkxYWJvdjE8
akNATytgVFYmdH5SKHp4T1pyal5qTkpmOHNjOXA2N1pWPykkdlk+cFU7Nj1lZ3RRCnplcm42Y29n
MX5adzY+ZiV7cCZkYHR1PyF9dntxbUdYOHJPPU56IWt6JU8zfDRQRnpYfHhmJkp7NmB1JiFJKFJW
bgp6JH1pIUV0e2dyYllIZWpfMlJJeUo2PUd7K1YtcHJ+Q14tMUE/Y3RWUztEK1RXTXY+MFdvQGJu
JGNYYEdeIVh1LUAKenc2cyFJLTgjPlQ4dH5rJTl0fWVfT2xCWDYqdFArOV4rOE9pY1k8P2lZbV5V
YD5eRXpSKj9rJk8yQFdYZmBpWTs+CnpwZ29jZUludFJ0dU1MIUdaeXcybks9WmJBWjRYfG1ge1BH
ZiQmWEVDMnBjeU8/PUB7dzk3YHMhR3ZSeT1kTXZ4ewp6SD9aQU9YWnI8amtJdUtzY2J+Vmo3Rkdv
ckktNHI1eEBGKHFhZHpMU3FkRWhQc2xxMUZSLT4teTFPYkZxc30zMHwKekRjSFBpJlR0bll8SW9X
MUN3KDdCMWBIPFhQU0VaTWtwfmFHQ0EtRjdzIz8zaklOfnJRPG1QMH55Ki04REhpd1J1CnpZPFIy
UGRIamdXdER9Yj5NTld2ZTN7ITR5fDdeMGFJP3AyOHE0dlolT0xwanEjPzZ2QjxNXy00UHtXSi04
M2M7Kwp6P0xCYWJ6SSRLI1U4Yj1lRUgtQ2FZdl8jPT16SUxKU0lGMil3bz9ee0dMRG1mc143S2Am
ay1hPEtIYFUhNiF7K2IKeipJdlYpK09NM2l3fm1nUy1uOGFVJEBCbiEoS0R+MSs9Z2dsP0pKdCVk
bHN6YTlfJG9MVHV2QHhAcFEoNmh1VHd6CnpmSz4tKkBTfCRIUjIrQWdvdGlodFo4b3wkd0NKQ0E8
UlhMZG5Pd1EyPDZXfHMpMCklQWY0Z3JPeF97IXFAeSk+ewp6QUA2RklUekJhSWM9bE87V1d4RT4j
PXx1R3tTT1FJaE5uX0tmVlJGMCs5Q0ZEZD9sR3NsI1RERC0qNWwhUnd0JW4KeipvKXRDYXxZWH1U
VmVvRDQxUWhfR1lNIzhCTWlXYG80KVo8LSh8bCU5VGU4JUB0WVN0KFJUVno/Oz5VNUNhUDd3CnpV
fmtnREVeV3J2JT5eeX05S0Yld21mcVZVO14yRDw2U2ErVzxHTEJKdyM9S3sjb09FTytScUpyTVo3
Q00tdTFvZwp6Jng2aT5OV3hFVXJGWlFYTW07eH50V1ctcEpOK3JabENFOGI+a1hXZ3d8I0BNaH0o
MWp0KUJRcWB0Q1ZgSDMxMDEKeks+aTQ+Vmh7I0d4ZktXZnhWVjdfKnJ6WWtAXmN2YDYzNj5CeTg0
WVQyYEA3KWVxLUFGSDAwWFpyVVZiSUhHOUdDCnpNV1NeTmgxLTdMbD5TRyhgSkxSX0Q/V2RFbX5N
bT1ad0BOamQ8SzFiI0c9N0ltJXBhZm4tKH03MzV2SDl7VHdARQp6cHo3ZFMwNH1UIyh0cTYtWj12
X3RJYFEqe2hWJnBhP3NwN2hoY2U4SzJsazgqbHB7RDhuKz8ySiVTZj5CSChHXyQKenNVMGUoKShu
a3ZLRXBTcVI0Q1YxQDdZTHVgdmhkQXJMe316JSYqN0pyPng/U3J7PEpPUTtwfSFRJl52TktsdCVQ
Cno7SW0pUDZ6PXR9TGhaOU08USQpUjlDO2FJPVZAfnlkbCE4Qm1Pb2RrcyNIfVAlK2I1Yno4JUw5
K2FwVkFIfmRUUQp6akpOVXBVaklDRXVmaTlaUGsrNjtVQn5PJHsmUFBTYVRkTV5rP2dwdmpeZ0Jg
QXtXUSZXel9GITZoVXUwUlZaXjEKelpzcGpFRDctQ3QtMEgqSWJ7KU47d1FCWCtaQCU0aWJZam85
a0hwJnNKJTlWKGZ2P35FdXhpITJgflA+JGpufTk0Cno/WWZhM0k9SnlhJmZJbGxTbz4+JGU8Q2Z0
VSVVM3QrI0o4JWV+MH5SYm5VbF98QlB4fWRfIXlEZnRUczh8R3hOKgp6KlFMUjBLfXI7OFhWUH4/
eThuKX4+KihWPmI1JXJqN1YyTD90MExMZ2NtSCMqVShkNVhASnEkMig4Yj1YY0IhOFMKelV5SlhS
ZVEkMkUpeU95e3dRSk11VnNWTTlTZFBhS2dJTUxqdl9gYGU/b3FxPVB0aHwtaypyVXxvfStab1la
bnY4CnpWfXpxbkRCfHBWd3deX3l1Sip+d3hRRl5VZnRVJE5MI0Y4Zz4hZSZmZmhrcjdZNnclWiRx
QmAkODN8a3Zqbn5vYQp6M082bmpsdDNZWFhiPXhpNU49cmg8KEg/fGc9LVhQKkJDc2FvST95XkV7
U3xkWU5VZDYoPz9wcyQ+MDw+aWxPTWoKejJqaEZmN3o1fTZKcT4rUlNZSiZpYD9KRU5obyNLMkVL
MUdoNmQoWmcwXkEzNCZ9Y3d3aERzYksmNWZDYnJuVlhyCno2I2RMNjtwNitmQGZsSnVual89MGhX
K21VO05hek1lOGVrQXVGfnRkdi00elkjPyVte1I3Vkk1QVZ9PzUyY1R1Qwp6UmIjM3RyK3wxTk1s
dkpsPSQwNm5RPFgpSzB2SlAqanwwTV9BRm1xQCVZJFRaJTN+fW5tRm9CfllCc0s/WlVtNzMKejlS
fEhLNFZVNWJpbTdtT3N1Q25fPUJtPXJYc0VlOU1WT1dwQSlBSXx3M3IxRVVldlg3RUFedmY8My1Y
IXcyRVV7CnpXSSpadElTUUNXJF5sQyYjeSZRezx8X2lTe2d4NTZnZnBBVmJyTl5kQikxOUxwPXpa
YWB2WTckNUpxfDBoVE9zKgp6UUohS2AremZndWh7fDYlaWV6e0xyV0JaM1F3Uk4yLXh3OytxZ35O
YWs1I2I4V3x+bSs0KyljNGs5eTs0SDIlUk0KelpaYj1maElDMyFZaT9LU1NyJUM7dDNkbk53Kyh0
dzw/Uil7QVJ2KDwzcWpfWUxPe01UQEM0X1BgNChfZFFMTEpHCnpEe2MtWT9IU2RrMSolNl9VRGhm
WmEyJUYwQX56dHBOJFU9cmw2blhWOXZfbWomVmBlNFBZbHlUO0JETUtUK2VPZQp6d2tsX3ZBOD1l
ZVljWVBkak1LbkdPWFhPNC1sUClnIU14Q19Wbjxtc1hSI2kybVpwUmUmND1ndW1QdHQ0IV9sQzIK
el9iX25iU0VRJHt5PjBZYyVlKnpoQX1oQ3lrd2dkLU88PzF1UCRZV31oZj0/cmVmdGZmKUViaUgr
WW1pRGdsSjJkCnpwRG9gYUtTTjVTbWc5YzthdUVoK3JsfF4jenlLSEYhJnY8RU5tIzMwWnlrbWZp
ZV9POGYhcl5zZnBpeDNvKHRlYAp6dDdkcShaNn5sfjtMfWp7U3omMWV4b3BeXjFQbTE2U1oybG9K
RjZzfHpFYiM2eXBAWml2ZDV6IWdgKjZ7dnFFP3oKenJxblUmcUNScVBPSU4qM3ZSWCtnXzchejJE
P3tsNnEpO2oxZlNLQGF0PmoxYEF2Tz4xa3B5IyZOTjx+S0teQzd3Cno4Z1pqKTloQC0mMmF0X1k5
ZVdsPWRybjQ8KjlueiNDKThrQDs/SVBgP1JOQzl5WV48KGNpK281ek9VSD16fGJCIQp6TXFLbnc8
aClBXnI8PWA+Zj9eSXBMQm9OWG1ZPjx4QVZxKzAhb2J0R014JElNTVRGfmw7dis0cCU5eDVyZihl
USUKekYhQVRYVnRLU3xyWkpneGJEXzx9Tm9YLV9jejF5IVAwSF5DU1h5I1VjQChMckxTZU1AQSN2
X2ZXWkIqcmNXdmZqCnomLSgmSkx6JXF+clV+UClrUEV5fWh6MTEjaHM3QnE7eFM2JjwoVz91ciY2
P28+YTJ7MVIpP2FKPnhFKGpfej85TQp6aTI5K2hYeCUxRztlKlVRVlUpTGFWS1oyRVNZckdvVXNa
U1Yma1JLR0Q1NH5Ad31kMXxqQENROWU+eUA1WkFXbGgKenohaCFqJTBhYH5tej9LRkJtfD16YVM0
LSpgTGdTJldBUV8hLURwPCZfJmd1ZV5NPFpkKmYmK2RVWWVYQF9nTW5ICnpQSUAzTUFRPlQwSkZO
N3lLMSVWe2dnQlN0bT1NWi1Fa2p7Tko8Ym8tcW1teks4Yn48JGMmUU1oMH0jU3lGcF9DRwp6YFQ3
IUMtQzVYfSgpcEFVOUM9RCZSSEtPREpQM31UJi1ZT0EhbHtVRmxGOTJDO2JXflY4fCMhN0hJc3JN
Sn5uaHIKemN4RCFXWkUjcU8mbiphN2taVmlQPWArdmNzMnFXJTBrRypNNHxZOHttNTt7YzQ8KTBg
YnVAMSlWMlZmWExOTTNCCnpXPWUmfGA/bzZKV1FQZ3Z3eV81XnlsTSlKSmVkc0tQdF4jVCpiaEt5
P1BLWX1sNzhDP1d+V1pnMDJEdjFtPktnaQp6M3dqd2xwfC1rOylOVVA4eXBCbERVcXtqXzNJa1ow
QlolXkpVI3NMWmMhKDtScEZDR2ZzaUBIRkRSaEVZXldlZGQKelpxN0BQST5FUDkoQipDbGhTfGRL
dkh+OXg/XllBKGlLQjVMQkY1aj5SPCkkXio9RVI0MWdCMnM1YDFYVWUqUTdBCnoma19udWtsPFF+
QF4jP0RBWGNebUJZTm0tR0BZLWg9a20jUV8zNFhOWVk8RmE3fkJgOERPbmhTdDh8ZWx1d3R8cAp6
aTU1K2g0Xih0aEAtd3J4Q0pgV0lzbjk3ZGRkUyh1bUlmYSkrN0I0TnBiNiVRZWpvMnwwVGt8bXtC
UXVgcGdIVFMKem5NMVBZTDlvVyZLcjJsOVZ6KkB1eFFnJmJYMEgqKzhiOTQ8QmwmZkJJNG82VllN
RT8tYUQqbX1oPGgwOSpRUVdYCnp6dTJfcl85Py1FYyllY3o2eEgtZWRtO3tIN1MjVTJWZSFAfVFh
ND12cHBsfnU/Y3YkUV9xOzkwQ1l7RnNxV1E9Wgp6R3xnciExN2Y/QmA8TSVXdFRoVGY9cXFkbUZW
PEpzNFRlbHJidTtQbkFON0V+TW9aY3sxeCEwQkdra3l9RmJfTCUKekFqO2BGSDEjUVAqRUo/JVBI
RjdtVzMqSjlUVTRjSE42WkBmPFVeRGdiT04pTk5yZ2A0ejRUZXZnPC1UWmdWaH10CnojXns2VTc3
UWt2VzRTY3w4anFNKG9ye2BYR3ZWZngydjEkZyZkdSt1QWFqa3FRQDRiK0ZBVVJ6YUxsPWIoT3NE
bQp6I0JAUGhtND1KeURZP2Z6Vng3TD0xTjZTbmB7NGpwRFhwQDxNUiNsYGh7VWQydmRFRHpTVlAt
WWNFNVdwUHgrViUKenVOK1czN1BwWEorMnVnUSZRWVdYNUI0REVgcG5vfXt5ekVOOEMqPHcrdWZq
X1hvKkw7T1R9R080PjkyaV5LSSVICnpYO0V1cGVFX2s+YTN1S3w0LVNVLVVTZEl7R1MqVFNhJk5S
Xmxzbn16cWV6cnkrdU04ZUo0aF5uN2tZfSU1IyRXYAp6YzxQMXRPWFhDaDFWQWQkaFZhTUFHbjZK
cWBfYW5zQXtQO2BvSF82VzxGcEBmWjloMGVoJWlZbjg5NDhAVl5GI3wKemgock1CQlc4SG5jKVl5
cURgU1VXeXhnX3NlYVRLPjREKGZHRlIxbCM5a1VzMElPM0dfIWNBbjljTEx5SG4yeyp4CnpaSHMk
bWJiRyk3SChGfHxldmZCZ1FHdFkhZUc5amM1a2k2RFUzWDg5e2wkVTtAclkweHNKVVltN3k4VClG
MUAtJQp6eVF2NH1MNXBDYFg1T0UrITVHIVlyRTcqd3p+KlNgODB1QnozRSMkO0dybyVYTUUyeSlw
Tz5MK0owfmFlbE9mRSYKelgkdkUwVmNMa2Yzbl8xfVNpZFY8dWppQFVPITYwRy0wOyZqQDF1R0J3
SG9eYGFgMjlhO3V1RVBrWkdJVDFScWIzCno/K2tJOEc1cHt+QntaZV9SSlQ9VXluY2dBMVAlTHlR
X0ZxTXN7VGFrdj5ObGM8QkEqekJQfm0mZ0tKT2I8TUF5aAp6UlYqeCkpKClTVmhGYW5geWZTKjRH
eXA1Mk5NbG0mdlRfKz5YN3E1NUhYb29KPG03cHVjalRQJkJucylxXm1MeFEKej9KP2Z4dDVNaSpP
fnxtdHFfUWcmYjNLSzZhZ35nfSpXR3VsdDRkKDtvSmxyaCU4b14jdntALT1wenJsbG9PRExjCno1
dVl6fFlRdkYwQUFUdXY3U15kUEd+RD9MalheY0ZJciVsbWRISCQ/cilYb3pGMjFvTEBobUBRYGt4
LT44QjZhUgp6a3o0QCEzUUg9fUs1fGw8VFlDVHVHa1RGXnFKIWooKFFWeDxZVHRiRilfbmZaeExF
bnpyPHRmU2ZESFo4K0BPMEIKelhaZmgrISlldnItS1lgaT9HZXt4NUtyKFNee1hzPmx6UV8/KUAz
KlI9WGRqT0xefntBYlJUZWFJOUdmcT5na3dMCnotYj1yMjA/M2NoYlNMKjkoUE8/d0A9cTF3ZEdm
STA4fkttfUUzdlFVVVB4QkBBeG9rcURyPnZMVCQ0YDBibkZlSgp6ZkFaa21efkpqOyNSelRwTypg
bWBJcHdvIS1xNSZvSThUUSs0Ni1lNyR1Y3ppbk8jfSRBdWdHZmxyKH4palF3ZXMKem85NHFudmMl
Vjd8MT9CJUdSZHwrcGtxUmE8djdnd2lCO2N7WFdyWHFrQERtZEhGbUNPeVlZK3hLM24zITRCQTBe
CnpPKXNycTVHYjN1UDdmfiRmNilYTkMwe1RkfEdJK3d3RCshfUMhNkNEdGVZLVg+cUw0NSk9Z2FS
SzYpQjlsI1ZOJgp6dj0kSXFoRF9CbGxkRkk/QTxFYGklRkJqP2JrPUZraEZrT0g5QEVeTGU0JCZE
Ukx6WTdqeT5pbHg3eVdSe1F4JVkKenYxaFJePSMyWWNVXjF7NmhlYzZ0ViZTTjVNUXhoP3hoa29n
b1hNJmxeSnp4MCNUdXl9UzlsQ29KJEg5T0cpKjsrCnpTRn5SbGdGVDtAWmF3N1dwRTErV3NoYyhY
Jj5BcjRnSXp4c1ZLalFaIU9SYUhIaGY5NWJtQEArT1g4MWl6ZmhRQwp6YWlDbSphZEsyd2tVJit9
dG9BNV52ZE4zbVBMakV1XkgtcnlLWCRuYnc1cXNncj9JLXpxJGtyIWFpXzVzeEpmTiQKekRkWCRf
UiY1XmRPVDFaOHAwa15EPDdhfmQkdW5laHc3TEU0OGlKZUNiJiV1WWx+MWJ1blk4e1NSano2PGxs
Xz9+CnoyYmY9YkM3YSsmP1dxcDdYbHlmYnczUUNVRjxZY1Q4N0xNODcxcWNFR2hXZmVaZXRtfEs1
cjItUSUqeFJ3ckJXVgp6bHhqR1okZG4xLWIlZEh6KzR2V2szV0pVQE1tPnhqeS12RXs0LW1ndXFw
Un4waHBgekZXZzRmdEN3MkxwY1lxVWUKemEmcSRmOV9uVWduWVY/RjN9Mnc9KUYqYkBWaEw/VmNw
YiNOcVgjcFAkeX5ULTdxM2o8enw2PV5OXiYqJFdTfFFuCnpKP1JwWDxXbTw+bkZpYD5Fbz4hV3F1
aXpHcUhDYnw2M2tWZV5xT2FSMVEhP15EO3pkYHBMdU9PbTM4fnZ0WXs1WQp6R2NRR0JkKE9Ne1kh
KldDbzNLV1RFMDhVJHVUSlhxO0pVWX5QbThvU0EpS3paJSROdSpvbiNQbzJJdExhSnZqdCYKeily
aSpoUWFXcDVJbjxwKjtfbWljN0xFWnl2Zjg1TVdIdFNTKCoxZlhqXkRycUZ4cGtzeFNyeVdzLUN2
QT0jUlBUCnooY0c0cHhNNHtlV0RHQjFsSXEyWikpclM5NHMxWmo1PTxkWnR6MmBJdXwtM0t6dkpm
RzRMPXNTbGpyQmloLXtQaQp6bEcocDAya0hpbjB0SytGMllENlUtQTtTITZ1MFQ9MVB6KVc4WnFX
aU5WUm0wemdCazckTyh5RUpqTDZBTXlBLU4Kek9NZEVqPzx4ZnI+JDQ+OSE5Tkl2bm01KkFVe3ds
dC1rWHVyZ3w9MkZTfHhVJjhSXlNoYSlSTUVZUWUzeTh5QV5hCnpzXih1JHxJKihJRVVLQGVAJi1I
bmJCOCtveUZKTHo+QEZRaClHfWpiWV5QUEpYSVEyUjVZcyEhdV87Nyg0VDwpKQp6RXVNcjQ/eypH
QyFxWSYhQHFnVDErRz5eWWh0MHptTVh3dnxrUGQjdnpHQXh7PnxvRElRRTxJMCRePTVqTSRicSEK
emQ/ckVRM2NGUiY3NzA3b0I3XlF5MWRSPX1KKEVSQzd5Pi1YdGZxWHk+V2pfNzxoIU9nQDxDPjso
MEBGMllVKUZXCnppOU51c1MpfVMkN0JGRkd5IVhrSXJARGEwVFdPSUBQJUppVE9HaURDP2MlZ3cj
QktVTE4pWUhAO3NjIVooKVRIPwp6VD1vUUFuS1dqQVpFc3poeVJAMXcyamh8VWM2TUp5Z1d9SHtP
KHh4MjRfczNseTxlKF5RcGktd3kpc2x0YEViTlYKekdoZVUhTTNDe3NBaXhSRy0zLXVrbHROa0R3
Zih4PDkpJipZUG80Y3JAU1cqRj96aytONCZUP3J3QUYtcmdOdmx+CnpjcFMjd2ghezA3Tl9SU0VT
ejg0bDU/VndwR0E+Q3dOcjtDMD5KJXMpY3U3QjJmXzdTQkF4TCpKYnJuZ1JvKzVSOAp6YyZKJUUo
KFlnfDE1OGk5YzVlOT1sV1Z8NFV4Zz5eYnI5PSM7elNGcTIkMDtJQUA5NH1CNmllOSUlOyFJYlRN
TWcKenZ8RWl8NUhTXyhWUTRxJCE8dWY9YEBUQ0pBRiMtTTB9QSU+QjEkc35WcjU8QyZ6Z1dTRGxx
cihAWDNDe0tyfE03Cno1K0MpKjYpOWwyaVYwN189SFF+bFljJGFCMHVPeUJmOG9HTXNzflNSb1Fx
OVlFOG1TUC1oajFfMExoQmNRRih4TAp6aiptblQ9YitTclhfWVArZFpXWitUfGdSWDcjMSY1NDV1
NGopKHRoUDZMdkNgLVBHak88UD5zc04kKSFYZWVCSFUKeiNeUFNXVlYqUiQ5UlR7PF57PjZILW4t
fXxXMG9oQDlIUmFLVWZ3cjdGWGgpVUNiT1hTR0g9YzQoWiZ8aT4/IXA5CnpBSihAPndRKGNATT19
YEVORyUqUHB5aGp1LX1EKjQyYjh5WEE7YHpFbEVKR1pWaWNlS0U9JTBIWF9fe0wpR0xaMAp6RXst
PXxybzUjamRKSmg+T1ZjR3hgMylqeDh5clB3MCtNSkJILUgmZXBOVm9tejJQZko0fll4c2khWVNs
QHFaTjsKejN+UzsrKihnWUt0KWAqdVg5TV9SUykmNG4+JHhNJUUkRVlMM0hjREJ1WjV1X0p5bG9N
azdjJVVTcWxeTHhUXnxuCnpjOGYrNHIrVSF+PXhJZ0FuRVB7SWoqdHpRa1QhVldoYC1LdmpDb1d3
U2N2Mj5qYjJIRCEoRiVyKD5SWjFYdnp0UAp6KXxraUNXTDNJI0tfNX07PlpMUD1PITJXMUlSSVRh
VXxlUlFNK3IxQGZkcmw3ej82NkdpbjBOTkJoZWBNVVI0NmoKemxKZDUoUEVDRl5hTFN7QUtYbT1H
TnwpVypFdihhdERKPFpGOzEhfUs+OHdFP0tzajhBclBsNG9tOXRVe2t9Oz5eCnpHbHRVYE4oMk1M
X2N0Qz9HaXoyfE4kMlpiKF8pR0ZjVk1xJWY2ek55STJscHB7IVUkfm8hQTApMFIkZilhbHFGYQp6
aiRNQi09SVBXZ2NgSigjJVlhcURyYW1xYitjSClVLXk9Xig2YWp5STtfRHJzQ0tWQD5CeXZVa3JA
MT9FVSowUmkKei1pK042VFJ1VVhuZEZ3WE08PGlJQSQoPEUtYj8/JUk7WGZ3MkwqQEtIayo4bjxw
VEFDMTBWc29jRzIzYEc8a0pHCnpNYiZJKCtmSihfbiRJMyVNUTFseCtpRmx9LUhXUGA/Q0U/SUQ7
MzNxd2dNd1BJfGhHfmA/T04mYjBmO1leMiEqQAp6S24pSUpMOVd0bTVkI1UrKTcleXdvaDstbjBx
cjlDbCNMQzdrU1hEfHM4JmFlWSVXez0hQWxpQjd7Rys+WV8rXmMKeipDJnp7NVRsYSp6c1V8dFR1
LUV6I3xXfTReOEliPWYzNlVGNHZ8NlgzX0k5Rmc2ez1RemJwQEUrekVaY2w9NCRyCnpuTGJEJE5R
JSM3NGB4TzVuOU5xbTU1ZHZUUVBnU2ElVCF+c1QyRTJ7RDlAOzk3ZnNoTUVLd2MzY0YrTSYwUCYr
aQp6TE9tVTBgfH5rdkF6PElAb1NzSEpsUEROI3RtdiYzYzNldU9sZiFFRWs8Jl57JH00ZH5XUjBl
KmQ4Rj16YTB8QU8KeilpTGpASVF1bnVkK1VCTERmJFJgYjskI2FQPTExXyZNYFUlaDtAVmBVYkRJ
aDxtO1RLPjBXXm5mQWc0dUxKbjhQCnp3TjxPaEg+V0g3RVh5MnlycEAlQm9gVyNlXmlaeXlzRWF3
ckdfPzk5Vns/aSQ1bGh2PHMlYmxxI0d2OHgoJk9WQAp6VXk0UVMtVlghZmYjUmVoYXFqcXFhdWpG
KWY1KClmR3MrQzVXcHYmU3BGanx6aWhvT1Bga2xhZGJoRzZpPFlfOT0Kekx1IWE5TSN8PHdWWEA3
eCMydyNzTDBGMiFrQUo1cGo1fF4yUFkpVkwlI0FJazVyRiRrMTJ4fUFOVUt3K1pfaEpACnp7YlF8
ayFHZmduQER2SGRKcmUmKEM2N0F+K2p7d1d4cHM/Tnh0P1hJUCs4X1NvbT9rNjh7cn1oM15QZWdg
an5AKgp6akhTUWhAbT4tTz44ZEc7PkM9YmYjQ19nWEJURVRGKEB7eExFMjtrSylqVT5kZU80WD8p
YzlCXkpSZW1xRjI2TzkKeiRsQHVvTGoxM0ooNFVRYiZKalRJUVNEb2FTQF54XzkkI2x3Y1FzdGpn
JiZAR0UwNVBUYntYUWw8O3A4dVBIRWR2CnptMlEkajhCU1lOenR4emBAOXRSTUlHMntiUGYhSzIj
PVcrSjg2V3sjPXJSSyYqT1ZWPWVnQDFRUDE8PnAyPEMkcwp6Tko8IXRaZ29QcUpWQkh6PiZHaFgo
YHxlciEpYzBieEhVMU8oKFZxTGVKXn5ONGEqTGEyWGpZajYpOS1eV0pSMG8KentCbjUySnBUe31l
YzBgS20oUTRfQTMhIWVsSWIyb15hKGshUGg/TVhjPUhRXm1Wd3UpdkhyczgycD0xKDJRN1YzCnpy
ZipjeEx1VWc+JWtXa0FDeW5lWFlBd2dDYC0yQUxuKVpQKWQ+QGdZWVlDdEhnK1J4Pi1tVW5Ra2Y4
JjBTXkNTTAp6P1gmej1AOH57VW0lTWxBJWxvVlApb2BSTnQtUGN8LSZYVE0jNGN2WlZtTjR4RSVq
cz5GYlB7JW59dXl3TyZ5TDYKekdAY3lRdUhQK00qUCtZYEVFe25icUU9Z0hmY3BJU1N5UlhOSVRe
K2BvP1NLck83T1JUKnNxUHM4eUN2ZWwoPCR4CnpfaFVRcj5oOWZXWHlfOzFuMDsrYDRne2k3Yngy
UnIrQX5CNEUmKjg5TmphSykrbURJdCslJGdSYjBsaUAqVnRQaAp6OTdWaSNXJUBKXiQlMyZ0QTlN
enE+azdVcVNDN2xYeUR2R2ZjYHg9YUc1P1JNX01kSk97YSNaZXFjcUZec0FxM20Keno1NFg7KnBr
MCRAbjY/P1pRak9qY0FlMmlnYTVDTnpILVJReSE7eTxEX35kdyF3TUt5Nztffn17UG9aQ2U7cG1o
CnpkT0YpYFgmR0M2P0ZDckx7M34ranBBTCV1SXZsVEhjTGxwRSpqQDIkRGBzYHNrRjJvd2lZWiQk
V2g8c14jZ3pTYgp6bno5dSF5Q1A7KyNPI1dnVEBrWUBWKW1iPlAqemc7Ti1GPk48NHI0SVNPTFFk
NypASXhSdGh+VUVoO08wSVY9NTIKbURAfEh8dEt8UjN5MF54LVc9UGp7THNPWGJAezIwOCZZVz1u
d2ZefCEtfkk8T1FOVkJqCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYmEwOGI2NzVjOTU4NWFkNGU1ZWZiOTI4YjhiZjVlNTZmNTI3
ZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1m
aWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQK
K2xheWVyIGF0ICg4LDgpIHNpemUgNzg0eDE4CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDAp
IHNpemUgNzg0eDE4IFtiZ2NvbG9yPSNBNjcyQTNdCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNDQ0eDE4CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NDQ6ICJU
aGlzIHBhcmFncmFwaCBoYXMgYSBmaWx0ZXIgYXBwbGllZC4gSXQgc2hvdWxkIGhhdmUgYSBncmVl
biBiYWNrZ3JvdW5kLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zaW1w
bGUtZmlsdGVyLXJlbmRlcmluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBs
ZS1maWx0ZXItcmVuZGVyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBjOTgwN2RkNzlmOTc4NTRmMWYx
NzJkOGViYTQ1NzMzMzdlNDY3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy5odG1sCkBAIC0wLDAgKzEsOSBAQAorPHN0
eWxlPgorLmZpbHRlcmVkIHsKKyAgLXdlYmtpdC1maWx0ZXI6IGh1ZS1yb3RhdGUoMTgwZGVnKTsK
KyAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2NiwgMTE0LCAxNjMpOworfQorPC9zdHlsZT4KKzxk
aXYgY2xhc3M9ImZpbHRlcmVkIj4KKyAgVGhpcyBwYXJhZ3JhcGggaGFzIGEgZmlsdGVyIGFwcGxp
ZWQuIEl0IHNob3VsZCBoYXZlIGEgZ3JlZW4gYmFja2dyb3VuZC4KKzwvZGl2Pgo=
</data>
<flag name="review"
          id="109585"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114179</attachid>
            <date>2011-11-08 17:04:24 -0800</date>
            <delta_ts>2011-11-09 11:46:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>filters.patch</filename>
            <type>text/plain</type>
            <size>36065</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZTIxMWEyLi5iZjcwNmU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMTEt
MDggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUvY29weS9t
ZXJnZSBTVkcgZmlsdGVyIHJlbmRlcmluZyBjb2RlIHRvIGdlbmVyaWMgcmVuZGVyaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRocmVlIG5ldyB0ZXN0
cyB0aGF0IGV4ZXJjaXNlIHRoZSAoc2ltcGxlKSBmaWx0ZXIKKyAgICAgICAgaW1wbGVtZW50YXRp
b24uCisKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJp
bmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvYWRkLWZpbHRl
ci1yZW5kZXJpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL3JlbW92ZS1m
aWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0
ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9zaW1wbGUtZmlsdGVy
LXJlbmRlcmluZy5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0wNyAgQWxleGFuZGVyIFBhdmxvdiAg
PGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbm5vdCBl
ZGl0IGVsZW1lbnRzIGNvbW1lbnRlZCB3aXRoIDwhLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9hZGQtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNWVmYmYKQmluYXJ5IGZpbGVzIC9kZXYv
bnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmct
ZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJz
L2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9hZGQtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZWE1NTk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9hZGQtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSA3ODR4NTg0CitsYXllciBhdCAoOCw4KSBzaXplIDc4NHgxOAorICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgxOCBbYmdjb2xvcj0jQTY3MkEzXQorICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU3MngxOAorICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNTcyOiAiVGhpcyBwYXJhZ3JhcGggd2lsbCBoYXZlIGEgZmlsdGVyIGFwcGxp
ZWQuIE9uY2UgYXBwbGllZCwgaXQgc2hvdWxkIGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLiIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9hZGQtZmlsdGVyLXJlbmRlcmluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI2NDI5YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9hZGQtZmlsdGVyLXJlbmRlcmluZy5odG1s
CkBAIC0wLDAgKzEsMjIgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKword2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiZGl2Iik7CisgICAgZWwuY2xhc3NOYW1lID0gImZpbHRlcmVk
IjsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICB9LCAwKTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorLmZp
bHRlcmVkIHsKKyAgLXdlYmtpdC1maWx0ZXI6IGh1ZS1yb3RhdGUoMTgwZGVnKTsKKyAgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDE2NiwgMTE0LCAxNjMpOworfQorPC9zdHlsZT4KKzxkaXY+CisgIFRo
aXMgcGFyYWdyYXBoIHdpbGwgaGF2ZSBhIGZpbHRlciBhcHBsaWVkLiBPbmNlIGFwcGxpZWQsIGl0
IHNob3VsZCBoYXZlIGEgZ3JlZW4gYmFja2dyb3VuZC4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA0Zjc0YwpCaW5h
cnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZW1vdmUt
ZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvcmVtb3ZlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YThiNDZlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVy
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4IFtiZ2NvbG9yPSMwMDgwMDBdCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDY5MHgxOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDY5MDogIlRoaXMgcGFyYWdyYXBoIHN0YXJ0cyB3aXRoIGEg
ZmlsdGVyLCB3aGljaCB3aWxsIGJlIHJlbW92ZWQuIE9uY2UgcmVtb3ZlZCwgaXQgc2hvdWxkIGhh
dmUgYSBncmVlbiBiYWNrZ3JvdW5kLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzg1MmEzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBmdW5jdGlvbiAoKSB7CisgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIpOworICAgICAgICBlbC5jbGFz
c05hbWUgPSAiIjsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAgfSwgMCk7
Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiB7CisgIGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOworfQorLmZpbHRlcmVkIHsKKyAgLXdlYmtpdC1maWx0ZXI6IGh1ZS1yb3RhdGUo
MTgwZGVnKTsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDE2NiwgMTY2KTsKK30KKzwvc3R5
bGU+Cis8ZGl2IHN0eWxlPSJmaWx0ZXJlZCI+CisgIFRoaXMgcGFyYWdyYXBoIHN0YXJ0cyB3aXRo
IGEgZmlsdGVyLCB3aGljaCB3aWxsIGJlIHJlbW92ZWQuIE9uY2UgcmVtb3ZlZCwgaXQgc2hvdWxk
IGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmQ0NWJhCkJpbmFyeSBmaWxl
cyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXIt
cmVuZGVyaW5nLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYTA4YjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorbGF5ZXIgYXQgKDgsOCkgc2l6
ZSA3ODR4MTgKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTggW2JnY29s
b3I9I0E2NzJBM10KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NDR4MTgK
KyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ0NDogIlRoaXMgcGFyYWdyYXBoIGhhcyBh
IGZpbHRlciBhcHBsaWVkLiBJdCBzaG91bGQgaGF2ZSBhIGdyZWVuIGJhY2tncm91bmQuIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGM5ODA3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVy
aW5nLmh0bWwKQEAgLTAsMCArMSw5IEBACis8c3R5bGU+CisuZmlsdGVyZWQgeworICAtd2Via2l0
LWZpbHRlcjogaHVlLXJvdGF0ZSgxODBkZWcpOworICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY2
LCAxMTQsIDE2Myk7Cit9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz0iZmlsdGVyZWQiPgorICBUaGlz
IHBhcmFncmFwaCBoYXMgYSBmaWx0ZXIgYXBwbGllZC4gSXQgc2hvdWxkIGhhdmUgYSBncmVlbiBi
YWNrZ3JvdW5kLgorPC9kaXY+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFlNGJlYTkuLjA5NmM0
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA5LDYgKzEyMDksNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL0JpZGlSdW4uY3BwCiAgICAgcmVuZGVyaW5nL0NvdW50
ZXJOb2RlLmNwcAogICAgIHJlbmRlcmluZy9FbGxpcHNpc0JveC5jcHAKKyAgICByZW5kZXJpbmcv
RmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQu
Y3BwCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAKICAgICByZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYzJjNmIyLi4yNzcyODFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTEtMTEtMDggIERlYW4gSmFja3NvbiAgPGRp
bm9AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUvY29weS9tZXJnZSBTVkcgZmlsdGVyIHJlbmRl
cmluZyBjb2RlIHRvIGdlbmVyaWMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBhbiBleHRyZW1lbHkgc2ltcGxlIHZlcnNp
b24gb2YgdGhlIGZpbHRlcgorICAgICAgICBjaGFpbi4gT25seSBhIHNpbmdsZSBodWUtcm90YXRl
IGZpbHRlciBpcyBzdXBwb3J0ZWQKKyAgICAgICAgYXQgdGhlIG1vbWVudC4gVGhlIGNoYW5nZSBp
biB0aGlzIGNvbW1pdCB3YXMgdG8gaW5zZXJ0IGEgbmV3CisgICAgICAgIHN0ZXAgaW4gUmVuZGVy
TGF5ZXIncyBwYWludGluZyB0byBjYXB0dXJlIHRoZSBjb250ZW50IHRvIGFuCisgICAgICAgIG9m
ZnNjcmVlbiBJbWFnZUJ1ZmZlciwgYXBwbHkgYSBmaWx0ZXIgb3BlcmF0aW9uIG9uIHRoYXQgYnVm
ZmVyLAorICAgICAgICBhbmQgdGhlbiBkcmF3IHRoZSByZXN1bHQgaW4gcGxhY2Ugb2YgdGhlIG9y
aWdpbmFsIGVsZW1lbnQuIFRoZSBmdWxsCisgICAgICAgIGltcGxlbWVudGF0aW9uIHdpbGwgbmVl
ZCBzb21ldGhpbmcgbGlrZSB0aGUgU1ZHRmlsdGVyQnVpbGRlcgorICAgICAgICBidXQgdGhpcyBp
cyBhIGdvb2QgcHJvdG90eXBlIG9mIGVmZmVjdHMgb24gSFRNTCBjb250ZW50LgorICAgICAgICBJ
dCdzIGFuIG9wZW4gcXVlc3Rpb24gYXQgdGhlIG1vbWVudCBhcyB0byB3aGVuIHRoZSBmaWx0ZXIK
KyAgICAgICAgZWZmZWN0IHNob3VsZCBhcHBseTogYWZ0ZXIgbWFza2luZywgYWZ0ZXIgb3ZlcmZs
b3csIGFmdGVyIG91dGxpbmUsCisgICAgICAgIGV0Yy4gQ3VycmVudGx5IHRoZSBmaWx0ZXIgYXBw
bGllcyBhdCB0aGUgZW5kIG9mIHRoZSBwYWludExheWVyIGNvZGUuCisgICAgICAgIFRoaXMgd2ls
bCBsaWtlbHkgY2hhbmdlLgorICAgICAgICAKKyAgICAgICAgQWRkZWQgYSBGaWx0ZXJFZmZlY3RS
ZW5kZXJlciBjbGFzcyB0aGF0IGlzIHRoZSByb290IG9mIHRoZSBmaWx0ZXIKKyAgICAgICAgdHJl
ZS4gQXQgdGhlIG1vbWVudCBpdCBob2xkcyB0aGUgb2Zmc2NyZWVuIGNvbnRleHQgYW5kCisgICAg
ICAgIHRoZSBleGlzdGluZyBwYWludCBjb250ZXh0LgorICAgICAgICAKKyAgICAgICAgT3RoZXIg
dGhhbiByZW5kZXJpbmcsIHRoZSByZXN0IG9mIHRoaXMgcGF0Y2ggYWRkcyB0ZXN0cworICAgICAg
ICB0byBtYWtlIHN1cmUgYW55IGVsZW1lbnQgd2l0aCBhIGZpbHRlciBzdHlsZSB3aWxsIGJlY29t
ZQorICAgICAgICBhIFJlbmRlckxheWVyLiBJbiBvcmRlciB0byBhdm9pZCBhIGxvdCBvZiBkdXBs
aWNhdGVkIGNvZGUKKyAgICAgICAgYXJvdW5kIHRoZSBtb3JlIGNvbXBsZXggbG9naWMgdGVzdHMs
IFJlbmRlclN0eWxlOjpoYXNGaWx0ZXIKKyAgICAgICAgaXMgYXZhaWxhYmxlIG91dHNpZGUgRU5B
QkxFKENTU19GSUxURVJTKSwgYnV0IHJldHVybnMgZmFsc2UKKyAgICAgICAgaW4gdGhvc2Ugc2l0
dWF0aW9ucy4KKworICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVy
aW5nLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRl
cmluZy5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5k
ZXJpbmcuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFkanVzdFJlbmRlclN0eWxlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6fkZpbHRlckVmZmVjdFJlbmRl
cmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjpzZXRTb3VyY2VJbWFnZVJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OnNvdXJjZUltYWdlUmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6c2V0RmlsdGVyUmVnaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjpmaWx0ZXJSZWdpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OmVmZmVjdEJvdW5kaW5n
Qm94TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6c2V0RWZm
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjplZmZlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OnNldFNvdXJjZUdyYXBoaWMp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OnNvdXJjZUdyYXBoaWMp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlcXVpcmVzTGF5ZXIpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cGFpbnRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2hvdWxkQmVO
b3JtYWxGbG93T25seSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c3R5bGVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1vdmVGaWx0ZXJFZmZlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUZpbHRlckVmZmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlRmlsdGVyQmFja2luZ1N0b3JlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpoYXNGaWx0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aGFzRmlsdGVyKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRh
YmxlUm93OjpyZXF1aXJlc0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5o
ZXJpdGVkRmxhZ3M6Omhhc0ZpbHRlcik6CisKIDIwMTEtMTEtMDcgIEFsZXhhbmRlciBQYXZsb3Yg
IDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW5ub3Qg
ZWRpdCBlbGVtZW50cyBjb21tZW50ZWQgd2l0aCA8IS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCBhOWMyYmI1Li40NDQxMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTMwMTQsNiArMzAxNCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FbGxpcHNpc0JveC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNpc0Jv
eC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvR2FwUmVjdHMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYmEwY2UyNi4uNWUxNzgx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDUzMyw2ICs0NTMzLDggQEAKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvQ291bnRlck5vZGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0VsbGlwc2lz
Qm94LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0VsbGlwc2lzQm94LmgnLAorICAgICAg
ICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAnLAorICAgICAgICAgICAg
J3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvRml4ZWRUYWJsZUxheW91dC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaXhlZFRh
YmxlTGF5b3V0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3Jt
U3RhdGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggNWJmMWRhYS4uZTdiNjA3NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMzMjM4LDYgKzMzMjM4LDYyIEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xGaWx0ZXJF
ZmZlY3RSZW5kZXJlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJp
bmdcRml4ZWRUYWJsZUxheW91dC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGMyZmEwYmQuLmNkOTUzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc4MSw2ICs3ODEsOCBAQAogCQkzMTI4OEU3MzBF
MzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5QUUg
LyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxMjg4RTc0MEUzMDA1RDYwMDM2
MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmNwcCAqLzsgfTsKIAkJMzEyODhFNzUwRTMwMDVENjAwMzYxOUFF
IC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTcxMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmggKi87IH07CisJCTMxMzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0
ZXJFZmZlY3RSZW5kZXJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTMxM0Y2MzE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVy
ZXIuY3BwICovOyB9OworCQkzMTMxM0Y2NjE0NDNCMzVGMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0
UmVuZGVyZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxMzEzRjY0MTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oICovOyB9
OwogCQkzMTYxMUU1QTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYx
MUU1ODBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgKi87
IH07CiAJCTMxNjExRTVCMEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYx
MUU1OTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovOyB9
OwogCQkzMTYxMUU2MTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjEx
RTVFMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovOyB9
OwpAQCAtNzg3NSw2ICs3ODc3LDggQEAKIAkJMzEyODhFNkYwRTMwMDVENjAwMzYxOUFFIC8qIFdl
YktpdENTU0tleWZyYW1lUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEy
ODhFNzAwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4RTcxMEUzMDA1RDYwMDM2MTlB
RSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdENTU0tleWZyYW1lc1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzEzMTNGNjMxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbHRlckVmZmVjdFJlbmRl
cmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzMTNGNjQxNDQzQjM1RTAw
NkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbHRlckVmZmVjdFJlbmRlcmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxNjExRTU0MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTYxMUU1ODBFMUM0REUwMDBGNkE1Nzkg
LyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzE2MTFFNTkwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3
MjYsNiArMjA3MzAsOCBAQAogCQkJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVy
Tm9kZS5oICovLAogCQkJCUE4Q0ZGNkNBMEExNTYxQ0QwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5j
cHAgKi8sCiAJCQkJQThDRkY2QkQwQTE1NjExODAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmggKi8s
CisJCQkJMzEzMTNGNjMxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNw
cCAqLywKKwkJCQkzMTMxM0Y2NDE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVy
ZXIuaCAqLywKIAkJCQlBOENGRjA0ODBBMTU0RjA5MDAwQTQyMzQgLyogRml4ZWRUYWJsZUxheW91
dC5jcHAgKi8sCiAJCQkJQThDRkYwNEEwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFibGVMYXlv
dXQuaCAqLywKIAkJCQk5MzVDNDc3NDA5QUM0RDhEMDBBNkFBQjQgLyogR2FwUmVjdHMuaCAqLywK
QEAgLTI0NjA1LDYgKzI0NjExLDcgQEAKIAkJCQkyRDhGRUJERDE0M0UzRUY3MDA3MjUwMkIgLyog
Q1NTQ3Jvc3NmYWRlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNjkzNzlDMTQ2MDlDNkMw
MEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0FFOUY5MTAxNDY0
NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTMxMzEzRjY2MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yNzQ2MSw2ICsyNzQ2OCw3IEBACiAJCQkJQ0RFQTc2MzAxNDYwOEE1MzAw
OEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREVBNzYz
NDE0NjBCNTZGMDA4QjMxRjEgLyogUGxhdGZvcm1DbG9ja1BPU0lYLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkzMTMxM0Y2NTE0NDNCMzVGMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
aW5kZXggMzRmMDYzYi4uMmU4NTFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcApAQCAtMTU2NSw3ICsxNTY1LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphZGp1
c3RSZW5kZXJTdHlsZShSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiBwYXJlbnQKICAg
ICAvLyBjYXNlcyB3aGVyZSBvYmplY3RzIHRoYXQgc2hvdWxkIGJlIGJsZW5kZWQgYXMgYSBzaW5n
bGUgdW5pdCBlbmQgdXAgd2l0aCBhIG5vbi10cmFuc3BhcmVudAogICAgIC8vIG9iamVjdCB3ZWRn
ZWQgaW4gYmV0d2VlbiB0aGVtLiAgQXV0byB6LWluZGV4IGFsc28gYmVjb21lcyAwIGZvciBvYmpl
Y3RzIHRoYXQgc3BlY2lmeSB0cmFuc2Zvcm1zL21hc2tzL3JlZmxlY3Rpb25zLgogICAgIGlmIChz
dHlsZS0+aGFzQXV0b1pJbmRleCgpICYmICgoZSAmJiBlLT5kb2N1bWVudCgpLT5kb2N1bWVudEVs
ZW1lbnQoKSA9PSBlKSB8fCBzdHlsZS0+b3BhY2l0eSgpIDwgMS4wZgotICAgICAgICB8fCBzdHls
ZS0+aGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgfHwgc3R5bGUtPmhhc01hc2soKSB8fCBz
dHlsZS0+Ym94UmVmbGVjdCgpKSkKKyAgICAgICAgfHwgc3R5bGUtPmhhc1RyYW5zZm9ybVJlbGF0
ZWRQcm9wZXJ0eSgpIHx8IHN0eWxlLT5oYXNNYXNrKCkgfHwgc3R5bGUtPmJveFJlZmxlY3QoKSB8
fCBzdHlsZS0+aGFzRmlsdGVyKCkpKQogICAgICAgICBzdHlsZS0+c2V0WkluZGV4KDApOwogCiAg
ICAgLy8gVGV4dGFyZWEgY29uc2lkZXJzIG92ZXJmbG93IHZpc2libGUgYXMgYXV0by4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MWI1NDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGaWx0ZXJFZmZlY3RS
ZW5kZXJlci5oIgorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0ZpbHRlckVmZmVjdFJlbmRlcmVyOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcigpCit7Cisg
ICAgc2V0RmlsdGVyUmVzb2x1dGlvbihGbG9hdFNpemUoMSwgMSkpOworfQorCitGaWx0ZXJFZmZl
Y3RSZW5kZXJlcjo6fkZpbHRlckVmZmVjdFJlbmRlcmVyKCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jYjFiYjkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmgKQEAgLTAsMCArMSw4NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBGaWx0ZXJFZmZlY3RSZW5kZXJlcl9oCisjZGVmaW5lIEZpbHRlckVmZmVjdFJlbmRl
cmVyX2gKKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKworI2luY2x1ZGUgIkZpbHRlci5oIgor
I2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1
ZGUgIlNvdXJjZUdyYXBoaWMuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmlsdGVyRWZmZWN0UmVuZGVyZXIgOiBwdWJsaWMgRmls
dGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3RSZW5kZXJl
cj4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsdGVyRWZm
ZWN0UmVuZGVyZXIoKSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFNvdXJjZUltYWdl
UmVjdChjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCkKKyAgICB7IAorICAgICAgICBt
X3NvdXJjZURyYXdpbmdSZWdpb24gPSBzb3VyY2VJbWFnZVJlY3Q7CisgICAgICAgIGlmIChtX2Vm
ZmVjdCkKKyAgICAgICAgICAgIGVmZmVjdCgpLT5zZXRNYXhFZmZlY3RSZWN0KHNvdXJjZUltYWdl
UmVjdCk7CisgICAgICAgIHNldEZpbHRlclJlZ2lvbihzb3VyY2VJbWFnZVJlY3QpOworICAgIH0K
KyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZURyYXdpbmdSZWdpb247IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWx0ZXJSZWdp
b24oY29uc3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24pIHsgbV9maWx0ZXJSZWdpb24gPSBmaWx0
ZXJSZWdpb247IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb24oKSBjb25zdCB7
IHJldHVybiBtX2ZpbHRlclJlZ2lvbjsgfQorCisgICAgLy8gQXQgdGhlIG1vbWVudCB3ZSBkb24n
dCBhZGp1c3QgdGhlIGJvdW5kcyBvZiBvdXIgY2FsbGVyLiBXZQorICAgIC8vIHdpbGwgZG8gdGhp
cyBvbmNlIHRoZSBmdWxsIGZpbHRlciBjaGFpbiBpcyBidWlsdCAoZm9yIGVmZmVjdHMgc3VjaCBh
cyBibHVyKS4KKyAgICB2aXJ0dWFsIGJvb2wgZWZmZWN0Qm91bmRpbmdCb3hNb2RlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRFZmZlY3QoUGFzc1JlZlB0
cjxGaWx0ZXJFZmZlY3Q+IGVmZmVjdCkgeyBtX2VmZmVjdCA9IGVmZmVjdDsgfQorICAgIHZpcnR1
YWwgUmVmUHRyPEZpbHRlckVmZmVjdD4gZWZmZWN0KCkgY29uc3QgeyByZXR1cm4gbV9lZmZlY3Q7
IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRTb3VyY2VHcmFwaGljKFBhc3NSZWZQdHI8U291cmNl
R3JhcGhpYz4gc291cmNlR3JhcGhpYykgeyBtX3NvdXJjZUdyYXBoaWMgPSBzb3VyY2VHcmFwaGlj
OyB9CisgICAgdmlydHVhbCBSZWZQdHI8U291cmNlR3JhcGhpYz4gc291cmNlR3JhcGhpYygpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlR3JhcGhpYzsgfQorICAgIAorcHJpdmF0ZToKKyAgICBGaWx0
ZXJFZmZlY3RSZW5kZXJlcigpOworICAgIHZpcnR1YWwgfkZpbHRlckVmZmVjdFJlbmRlcmVyKCk7
CisKKyAgICBGbG9hdFJlY3QgbV9zb3VyY2VEcmF3aW5nUmVnaW9uOworICAgIEZsb2F0UmVjdCBt
X2ZpbHRlclJlZ2lvbjsKKyAgICAKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBtX2VmZmVjdDsK
KyAgICBSZWZQdHI8U291cmNlR3JhcGhpYz4gbV9zb3VyY2VHcmFwaGljOworICAgIEdyYXBoaWNz
Q29udGV4dCogbV9zYXZlZENvbnRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisKKyNlbmRpZiAvLyBGaWx0ZXJFZmZlY3RS
ZW5kZXJlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCmluZGV4IDAxYTU4YTkuLmFmMTk5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaGFzU2VsZlBhaW50aW5nTGF5ZXIoKSBjb25zdDsKICAgICBSZW5kZXJMYXll
ciogbGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVyOyB9Ci0gICAgdmlydHVhbCBib29sIHJl
cXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0aW9uZWQoKSB8
fCBpc1JlbFBvc2l0aW9uZWQoKSB8fCBpc1RyYW5zcGFyZW50KCkgfHwgaGFzT3ZlcmZsb3dDbGlw
KCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzTWFzaygpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBz
dHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNM
YXllcigpIGNvbnN0IHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlzUG9zaXRpb25lZCgpIHx8IGlzUmVs
UG9zaXRpb25lZCgpIHx8IGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBo
YXNUcmFuc2Zvcm0oKSB8fCBoYXNNYXNrKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IGhhc0ZpbHRl
cigpIHx8IHN0eWxlKCktPnNwZWNpZmllc0NvbHVtbnMoKTsgfQogCiAgICAgLy8gVGhpcyB3aWxs
IHdvcmsgb24gaW5saW5lcyB0byByZXR1cm4gdGhlIGJvdW5kaW5nIGJveCBvZiBhbGwgb2YgdGhl
IGxpbmVzJyBib3JkZXIgYm94ZXMuCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvcmRlckJvdW5k
aW5nQm94KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKaW5kZXggOTBlNGFlMC4uMTU1NGQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC01Miw2ICs1MiwxMSBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgi
CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorI2luY2x1ZGUgIkZFQ29sb3JNYXRyaXguaCIKKyNp
bmNsdWRlICJGRU1lcmdlLmgiCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtODIsNiArODcsNyBAQAogI2luY2x1ZGUg
IlNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKKyNpbmNsdWRlICJTb3VyY2VHcmFwaGljLmgiCiAjaW5j
bHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAj
aW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCkBAIC0yNjc2LDYgKzI2ODIs
MzUgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5kZXJMYXllciogcm9vdExheWVy
LCBHcmFwaGljc0NvbnRleHQqIHAsCiAgICAgaWYgKCFyZW5kZXJlcigpLT5vcGFjaXR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBpZiAoIXAtPnBh
aW50aW5nRGlzYWJsZWQoKSAmJiBoYXNGaWx0ZXIoKSAmJiAhc2l6ZSgpLmlzWmVybygpICYmICEo
cGFpbnRGbGFncyAmIFBhaW50TGF5ZXJQYWludGluZ0ZpbHRlcikpIHsKKyAgICAgICAgLy8gVXBk
YXRlIHRoZSBmaWx0ZXIncyBpbWFnZSBpZiBuZWNlc3NhcnkuCisgICAgICAgIHVwZGF0ZUZpbHRl
ckJhY2tpbmdTdG9yZSgpOworICAgICAgICAKKyAgICAgICAgLy8gUGFpbnQgaW50byB0aGUgY29u
dGV4dCB0aGF0IHJlcHJlc2VudHMgdGhlIFNvdXJjZUdyYXBoaWMgb2YgdGhlIGZpbHRlci4KKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0KiBzb3VyY2VHcmFwaGljc0NvbnRleHQgPSBtX2ZpbHRlci0+
c291cmNlSW1hZ2UoKS0+Y29udGV4dCgpOworCisgICAgICAgIEZsb2F0UmVjdCBwYWludFJlY3Qg
PSBGbG9hdFJlY3QoMCwgMCwgc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSk7CisgICAg
ICAgIHNvdXJjZUdyYXBoaWNzQ29udGV4dC0+Y2xlYXJSZWN0KHBhaW50UmVjdCk7CisKKyAgICAg
ICAgLy8gTm93IGRvIHRoZSByZWd1bGFyIHBhaW50IGludG8gdGhlIFNvdXJjZUdyYXBoaWMuCisg
ICAgICAgIHBhaW50TGF5ZXIodGhpcywgc291cmNlR3JhcGhpY3NDb250ZXh0LCBwYWludERpcnR5
UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVx
dWVzdHMsIHBhaW50RmxhZ3MgfCBQYWludExheWVyUGFpbnRpbmdGaWx0ZXIpOworICAgICAgICAg
ICAgCisgICAgICAgIC8vIEludmFsaWRhdGUgdGhlIGZpbHRlciBzbyB0aGF0IGl0IGV4ZWN1dGVz
IGFnYWluLgorICAgICAgICBtX2ZpbHRlci0+c291cmNlR3JhcGhpYygpLT5jbGVhclJlc3VsdCgp
OworICAgICAgICBtX2ZpbHRlci0+ZWZmZWN0KCktPmNsZWFyUmVzdWx0KCk7CisgICAgICAgIG1f
ZmlsdGVyLT5lZmZlY3QoKS0+YXBwbHkoKTsKKyAgICAgICAgCisgICAgICAgIExheW91dFBvaW50
IGxheWVyT3JpZ2luOworICAgICAgICBjb252ZXJ0VG9MYXllckNvb3Jkcyhyb290TGF5ZXIsIGxh
eWVyT3JpZ2luKTsKKyAgICAgICAgTGF5b3V0UmVjdCBmaWx0ZXJCb3VuZHMgPSBMYXlvdXRSZWN0
KGxheWVyT3JpZ2luLngoKSwgbGF5ZXJPcmlnaW4ueSgpLCBzaXplKCkud2lkdGgoKSwgc2l6ZSgp
LmhlaWdodCgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdldCB0aGUgZmlsdGVyZWQgb3V0cHV0
IGFuZCBkcmF3IGl0IGluIHBsYWNlLgorICAgICAgICBwLT5kcmF3SW1hZ2VCdWZmZXIobV9maWx0
ZXItPmVmZmVjdCgpLT5hc0ltYWdlQnVmZmVyKCksIHJlbmRlcmVyKCktPnN0eWxlKCktPmNvbG9y
U3BhY2UoKSwgZmlsdGVyQm91bmRzLCBDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKHBhaW50c1dpdGhUcmFuc3BhcmVuY3kocGFp
bnRCZWhhdmlvcikpCiAgICAgICAgIHBhaW50RmxhZ3MgfD0gUGFpbnRMYXllckhhdmVUcmFuc3Bh
cmVuY3k7CiAKQEAgLTQxNTYsNiArNDE5MSw5IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZEJl
Tm9ybWFsRmxvd09ubHkoKSBjb25zdAogICAgICAgICAgICAgJiYgIXJlbmRlcmVyKCktPmlzUG9z
aXRpb25lZCgpCiAgICAgICAgICAgICAmJiAhcmVuZGVyZXIoKS0+aXNSZWxQb3NpdGlvbmVkKCkK
ICAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5oYXNUcmFuc2Zvcm0oKQorI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKKyAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5oYXNGaWx0ZXIoKQorI2Vu
ZGlmCiAgICAgICAgICAgICAmJiAhaXNUcmFuc3BhcmVudCgpOwogfQogCkBAIC00MjAxLDYgKzQy
MzksMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogICAgICAgICB1cGRhdGVSZWZsZWN0aW9uU3R5
bGUoKTsKICAgICB9CiAgICAgCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIGlmIChoYXNG
aWx0ZXIoKSkKKyAgICAgICAgdXBkYXRlRmlsdGVyRWZmZWN0KCk7CisgICAgZWxzZQorICAgICAg
ICByZW1vdmVGaWx0ZXJFZmZlY3QoKTsKKyNlbmRpZgorICAgIAogICAgIGlmIChzY3JvbGxzT3Zl
cmZsb3coKSkgewogICAgICAgICBpZiAoIW1fc2Nyb2xsYWJsZUFyZWFQYWdlKSB7CiAgICAgICAg
ICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcmVuZGVyZXIoKS0+ZnJhbWUoKSkgewpAQCAtNDMyOSw2
ICs0Mzc0LDU5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVJlZmxlY3Rpb25TdHlsZSgpCiAg
ICAgbV9yZWZsZWN0aW9uLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwogfQogCisjaWYg
RU5BQkxFKENTU19GSUxURVJTKQordm9pZCBSZW5kZXJMYXllcjo6cmVtb3ZlRmlsdGVyRWZmZWN0
KCkKK3sKKyAgICBtX2ZpbHRlciA9IDA7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUZp
bHRlckVmZmVjdCgpCit7CisgICAgaWYgKCFtX2ZpbHRlcikKKyAgICAgICAgbV9maWx0ZXIgPSBG
aWx0ZXJFZmZlY3RSZW5kZXJlcjo6Y3JlYXRlKCk7CisKKyAgICAvLyBGb3IgdGhlIG1vbWVudCB3
ZSBvbmx5IHN1cHBvcnQgYSBzaW5nbGUgaHVlLXJvdGF0ZSgpIGZpbHRlci4KKyAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDc0IGFuZAorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3NQorCisgICAgUmVm
UHRyPEZpbHRlckVmZmVjdD4gZWZmZWN0OworICAgIEZpbHRlck9wZXJhdGlvbnMgZmlsdGVyT3Bl
cmF0aW9ucyA9IHJlbmRlcmVyKCktPnN0eWxlKCktPmZpbHRlcigpOworICAgIGlmIChmaWx0ZXJP
cGVyYXRpb25zLnNpemUoKSA9PSAxKSB7CisgICAgICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbiog
b3BlcmF0aW9uID0gZmlsdGVyT3BlcmF0aW9ucy5hdCgwKTsKKyAgICAgICAgaWYgKG9wZXJhdGlv
bi0+Z2V0T3BlcmF0aW9uVHlwZSgpID09IEZpbHRlck9wZXJhdGlvbjo6SFVFX1JPVEFURSkgewor
ICAgICAgICAgICAgY29uc3QgQmFzaWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbiogY29sb3JN
YXRyaXhPcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY0NvbG9yTWF0cml4RmlsdGVy
T3BlcmF0aW9uKj4ob3BlcmF0aW9uKTsKKyAgICAgICAgICAgIFZlY3RvcjxmbG9hdD4gaW5wdXRQ
YXJhbWV0ZXJzOworICAgICAgICAgICAgaW5wdXRQYXJhbWV0ZXJzLmFwcGVuZChjb2xvck1hdHJp
eE9wZXJhdGlvbi0+YW1vdW50KCkpOworICAgICAgICAgICAgZWZmZWN0ID0gRkVDb2xvck1hdHJp
eDo6Y3JlYXRlKG1fZmlsdGVyLmdldCgpLCBGRUNPTE9STUFUUklYX1RZUEVfSFVFUk9UQVRFLCBp
bnB1dFBhcmFtZXRlcnMpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSWYgd2UgZGlkbid0
IG1ha2UgYSByZWFsIGZpbHRlciwgY3JlYXRlIGEgbnVsbC1vcCAoRkVNZXJnZSB3aXRoIG9uZSBp
bnB1dCkuCisgICAgaWYgKCFlZmZlY3QpCisgICAgICAgIGVmZmVjdCA9IEZFTWVyZ2U6OmNyZWF0
ZShtX2ZpbHRlci5nZXQoKSk7CisgICAgCisgICAgUmVmUHRyPFNvdXJjZUdyYXBoaWM+IHNvdXJj
ZUdyYXBoaWMgPSBTb3VyY2VHcmFwaGljOjpjcmVhdGUobV9maWx0ZXIuZ2V0KCkpOworICAgIG1f
ZmlsdGVyLT5zZXRTb3VyY2VHcmFwaGljKHNvdXJjZUdyYXBoaWMpOworCisgICAgZWZmZWN0LT5p
bnB1dEVmZmVjdHMoKS5hcHBlbmQoc291cmNlR3JhcGhpYyk7CisgICAgbV9maWx0ZXItPnNldEVm
ZmVjdChlZmZlY3QpOworfQorCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVGaWx0ZXJCYWNraW5n
U3RvcmUoKQoreworICAgIExheW91dFNpemUgbGF5b3V0U2l6ZSA9IHNpemUoKTsKKyAgICBpZiAo
IWxheW91dFNpemUuaXNaZXJvKCkpIHsKKyAgICAgICAgRmxvYXRSZWN0IHNpemUgPSBGbG9hdFJl
Y3QoMCwgMCwgbGF5b3V0U2l6ZS53aWR0aCgpLCBsYXlvdXRTaXplLmhlaWdodCgpKTsKKyAgICAg
ICAgRmxvYXRSZWN0IGN1cnJlbnRTb3VyY2VTaXplID0gbV9maWx0ZXItPnNvdXJjZUltYWdlUmVj
dCgpOworICAgICAgICBpZiAoc2l6ZSAhPSBjdXJyZW50U291cmNlU2l6ZSkgeworICAgICAgICAg
ICAgbV9maWx0ZXItPnNldFNvdXJjZUltYWdlUmVjdChzaXplKTsKKyAgICAgICAgICAgIG1fZmls
dGVyLT5zZXRTb3VyY2VJbWFnZShJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxheW91dFNpemUpKTsKKyAg
ICAgICAgfQorICAgIH0KK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXgg
OTFlYzhjNy4uODY2OGMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
QEAgLTUyLDYgKzUyLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5BQkxFKENT
U19GSUxURVJTKQorY2xhc3MgRmlsdGVyRWZmZWN0UmVuZGVyZXI7CisjZW5kaWYKIGNsYXNzIEhp
dFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEhpdFRlc3RpbmdUcmFu
c2Zvcm1TdGF0ZTsKQEAgLTQyMSw2ICs0MjQsOSBAQCBwdWJsaWM6CiAgICAgICAgIFBhaW50TGF5
ZXJUZW1wb3JhcnlDbGlwUmVjdHMgPSAxIDw8IDIsCiAgICAgICAgIFBhaW50TGF5ZXJQYWludGlu
Z1JlZmxlY3Rpb24gPSAxIDw8IDMsCiAgICAgICAgIFBhaW50TGF5ZXJQYWludGluZ092ZXJsYXlT
Y3JvbGxiYXJzID0gMSA8PCA0CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgICAgICAsIFBh
aW50TGF5ZXJQYWludGluZ0ZpbHRlciA9IDEgPDwgNQorI2VuZGlmCiAgICAgfTsKICAgICAKICAg
ICB0eXBlZGVmIHVuc2lnbmVkIFBhaW50TGF5ZXJGbGFnczsKQEAgLTQ5NCw3ICs1MDAsMTEgQEAg
cHVibGljOgogICAgIGJvb2wgcHJlc2VydmVzM0QoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigp
LT5zdHlsZSgpLT50cmFuc2Zvcm1TdHlsZTNEKCkgPT0gVHJhbnNmb3JtU3R5bGUzRFByZXNlcnZl
M0Q7IH0KICAgICBib29sIGhhczNEVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zv
cm0gJiYgIW1fdHJhbnNmb3JtLT5pc0FmZmluZSgpOyB9CiAKLSAgICAgLy8gT3ZlcmxvYWRlZCBu
ZXcgb3BlcmF0b3IuICBEZXJpdmVkIGNsYXNzZXMgbXVzdCBvdmVycmlkZSBvcGVyYXRvciBuZXcK
KyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJl
dHVybiByZW5kZXJlcigpLT5oYXNGaWx0ZXIoKTsgfQorI2VuZGlmCisKKyAgICAvLyBPdmVybG9h
ZGVkIG5ldyBvcGVyYXRvci4gRGVyaXZlZCBjbGFzc2VzIG11c3Qgb3ZlcnJpZGUgb3BlcmF0b3Ig
bmV3CiAgICAgLy8gaW4gb3JkZXIgdG8gYWxsb2NhdGUgb3V0IG9mIHRoZSBSZW5kZXJBcmVuYS4K
ICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90LCBSZW5kZXJBcmVuYSopIHRocm93KCk7CiAK
QEAgLTY1MSw3ICs2NjEsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVJlZmxlY3Rpb25T
dHlsZSgpOwogICAgIGJvb2wgcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb247IH0KICAgICB2b2lkIHNldFBhaW50aW5nSW5z
aWRlUmVmbGVjdGlvbihib29sIGIpIHsgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24gPSBiOyB9
Ci0gICAgCisKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdm9pZCByZW1vdmVGaWx0ZXJF
ZmZlY3QoKTsKKyAgICB2b2lkIHVwZGF0ZUZpbHRlckVmZmVjdCgpOworICAgIHZvaWQgdXBkYXRl
RmlsdGVyQmFja2luZ1N0b3JlKCk7CisjZW5kaWYKKwogICAgIHZvaWQgcGFyZW50Q2xpcFJlY3Rz
KGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlclJlZ2lvbiosIENsaXBSZWN0cyYs
IGJvb2wgdGVtcG9yYXJ5Q2xpcFJlY3RzID0gZmFsc2UsIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVs
ZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogICAgIENsaXBSZWN0
IGJhY2tncm91bmRDbGlwUmVjdChjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJS
ZWdpb24qLCBib29sIHRlbXBvcmFyeUNsaXBSZWN0cywgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxl
dmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CiAKQEAgLTc5Nyw3ICs4
MTMsMTEgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIC8vIE1heSB1bHRpbWF0ZWx5IGJlIGV4dGVu
ZGVkIHRvIG1hbnkgcmVwbGljYXMgKHdpdGggdGhlaXIgb3duIHBhaW50IG9yZGVyKS4KICAgICBS
ZW5kZXJSZXBsaWNhKiBtX3JlZmxlY3Rpb247Ci0gICAgCisgIAorI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0UmVuZGVyZXI+IG1fZmlsdGVyOworI2VuZGlm
CisgICAgICAgIAogICAgIC8vIFJlbmRlcmVycyB0byBob2xkIG91ciBjdXN0b20gc2Nyb2xsIGNv
cm5lciBhbmQgcmVzaXplci4KICAgICBSZW5kZXJTY3JvbGxiYXJQYXJ0KiBtX3Njcm9sbENvcm5l
cjsKICAgICBSZW5kZXJTY3JvbGxiYXJQYXJ0KiBtX3Jlc2l6ZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggOWIzNTIwNy4uMWI4NTAzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTA0LDYgKzUwNCwxMiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2hhc1RyYW5zZm9ybTsg
fQogICAgIGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkgJiYgc3R5bGUoKS0+
aGFzTWFzaygpOyB9CiAKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgYm9vbCBoYXNGaWx0
ZXIoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpICYmIHN0eWxlKCktPmhhc0ZpbHRlcigpOyB9Cisj
ZWxzZQorICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRp
ZgorCiAgICAgaW5saW5lIGJvb2wgcHJlc2VydmVzTmV3bGluZSgpIGNvbnN0OwogCiAjaWYgIUhB
VkUoUEFUSF9CQVNFRF9CT1JERVJfUkFESVVTX0RSQVdJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVJvdy5oCmluZGV4IGY4ZjAzMGMuLjczZjkwM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jiwg
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25z
dCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pOwogCiAgICAg
Ly8gVGhlIG9ubHkgdGltZSByb3dzIGdldCBhIGxheWVyIGlzIHdoZW4gdGhleSBoYXZlIHRyYW5z
cGFyZW5jeS4KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJu
IGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zvcm0oKSB8
fCBoYXNNYXNrKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsg
cmV0dXJuIGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zv
cm0oKSB8fCBoYXNNYXNrKCkgfHwgaGFzRmlsdGVyKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBw
YWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA1OTg5YTExLi45Njk4YzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
QEAgLTQxOCw2ICs0MTgsMTMgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNv
bnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICNlbmRpZgogICAg
ICAgICB9CiAKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgICAgIGlmIChyYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9maWx0ZXIuZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX2ZpbHRlci5nZXQoKQorICAgICAgICAgICAgJiYgKnJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X2ZpbHRlci5nZXQoKSAhPSAqb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci5n
ZXQoKSkgeworICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKyAgICAg
ICAgfQorI2VuZGlmCisKICNpZiAhVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAg
ICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0
ZWREYXRhLmdldCgpKSB7CiAgICAgICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
dHJhbnNmb3JtU3R5bGUzRCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNm
b3JtU3R5bGUzRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAppbmRleCBiMTM1MDZkLi40MTQyOTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtODYzLDYgKzg2Myw4IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVyKCkgY29u
c3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLT5tX29wZXJhdGlvbnM7
IH0KICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuICFyYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9maWx0ZXItPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuaXNFbXB0eSgpOyB9Cisj
ZWxzZQorICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRp
ZgogICAgICAgICAKIC8vIGF0dHJpYnV0ZSBzZXR0ZXIgbWV0aG9kcwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114331</attachid>
            <date>2011-11-09 11:46:16 -0800</date>
            <delta_ts>2011-11-10 13:59:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68472-20111110064610.patch</filename>
            <type>text/plain</type>
            <size>66296</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjY5NmMwZjliMTk3MjQ5
NzU3ZmRjYmQ4NjA0NGFmOGQ2ZjBhMjA1Li5kOGVmNGU3YWNlZDIzOTdmNmVhZGFkYzI5OWQ2Yzk1
ZDVlZGQxMTYyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTEtMTEtMDggIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUvY29weS9tZXJnZSBTVkcg
ZmlsdGVyIHJlbmRlcmluZyBjb2RlIHRvIGdlbmVyaWMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBhbiBleHRyZW1lbHkg
c2ltcGxlIHZlcnNpb24gb2YgdGhlIGZpbHRlcgorICAgICAgICBjaGFpbi4gT25seSBhIHNpbmds
ZSBodWUtcm90YXRlIGZpbHRlciBpcyBzdXBwb3J0ZWQKKyAgICAgICAgYXQgdGhlIG1vbWVudC4g
VGhlIGNoYW5nZSBpbiB0aGlzIGNvbW1pdCB3YXMgdG8gaW5zZXJ0IGEgbmV3CisgICAgICAgIHN0
ZXAgaW4gUmVuZGVyTGF5ZXIncyBwYWludGluZyB0byBjYXB0dXJlIHRoZSBjb250ZW50IHRvIGFu
CisgICAgICAgIG9mZnNjcmVlbiBJbWFnZUJ1ZmZlciwgYXBwbHkgYSBmaWx0ZXIgb3BlcmF0aW9u
IG9uIHRoYXQgYnVmZmVyLAorICAgICAgICBhbmQgdGhlbiBkcmF3IHRoZSByZXN1bHQgaW4gcGxh
Y2Ugb2YgdGhlIG9yaWdpbmFsIGVsZW1lbnQuIFRoZSBmdWxsCisgICAgICAgIGltcGxlbWVudGF0
aW9uIHdpbGwgbmVlZCBzb21ldGhpbmcgbGlrZSB0aGUgU1ZHRmlsdGVyQnVpbGRlcgorICAgICAg
ICBidXQgdGhpcyBpcyBhIGdvb2QgcHJvdG90eXBlIG9mIGVmZmVjdHMgb24gSFRNTCBjb250ZW50
LgorICAgICAgICBJdCdzIGFuIG9wZW4gcXVlc3Rpb24gYXQgdGhlIG1vbWVudCBhcyB0byB3aGVu
IHRoZSBmaWx0ZXIKKyAgICAgICAgZWZmZWN0IHNob3VsZCBhcHBseTogYWZ0ZXIgbWFza2luZywg
YWZ0ZXIgb3ZlcmZsb3csIGFmdGVyIG91dGxpbmUsCisgICAgICAgIGV0Yy4gQ3VycmVudGx5IHRo
ZSBmaWx0ZXIgYXBwbGllcyBhdCB0aGUgZW5kIG9mIHRoZSBwYWludExheWVyIGNvZGUuCisgICAg
ICAgIFRoaXMgd2lsbCBsaWtlbHkgY2hhbmdlLgorICAgICAgICAKKyAgICAgICAgQWRkZWQgYSBG
aWx0ZXJFZmZlY3RSZW5kZXJlciBjbGFzcyB0aGF0IGlzIHRoZSByb290IG9mIHRoZSBmaWx0ZXIK
KyAgICAgICAgdHJlZS4gQXQgdGhlIG1vbWVudCBpdCBob2xkcyB0aGUgb2Zmc2NyZWVuIGNvbnRl
eHQgYW5kCisgICAgICAgIHRoZSBleGlzdGluZyBwYWludCBjb250ZXh0LgorICAgICAgICAKKyAg
ICAgICAgT3RoZXIgdGhhbiByZW5kZXJpbmcsIHRoZSByZXN0IG9mIHRoaXMgcGF0Y2ggYWRkcyB0
ZXN0cworICAgICAgICB0byBtYWtlIHN1cmUgYW55IGVsZW1lbnQgd2l0aCBhIGZpbHRlciBzdHls
ZSB3aWxsIGJlY29tZQorICAgICAgICBhIFJlbmRlckxheWVyLiBJbiBvcmRlciB0byBhdm9pZCBh
IGxvdCBvZiBkdXBsaWNhdGVkIGNvZGUKKyAgICAgICAgYXJvdW5kIHRoZSBtb3JlIGNvbXBsZXgg
bG9naWMgdGVzdHMsIFJlbmRlclN0eWxlOjpoYXNGaWx0ZXIKKyAgICAgICAgaXMgYXZhaWxhYmxl
IG91dHNpZGUgRU5BQkxFKENTU19GSUxURVJTKSwgYnV0IHJldHVybnMgZmFsc2UKKyAgICAgICAg
aW4gdGhvc2Ugc2l0dWF0aW9ucy4KKworICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2FkZC1m
aWx0ZXItcmVuZGVyaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9yZW1vdmUt
ZmlsdGVyLXJlbmRlcmluZy5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZpbHRlcnMvc2ltcGxl
LWZpbHRlci1yZW5kZXJpbmcuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFkanVzdFJlbmRlclN0
eWxlKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjpGaWx0ZXJFZmZlY3RS
ZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6fkZpbHRl
ckVmZmVjdFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVy
ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjpzZXRTb3VyY2VJ
bWFnZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OnNvdXJj
ZUltYWdlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6c2V0
RmlsdGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjpm
aWx0ZXJSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OmVm
ZmVjdEJvdW5kaW5nQm94TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5k
ZXJlcjo6c2V0RWZmZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVy
OjplZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OnNldFNv
dXJjZUdyYXBoaWMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OnNv
dXJjZUdyYXBoaWMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlcXVpcmVzTGF5ZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6cGFpbnRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2hvdWxkQmVOb3JtYWxGbG93T25seSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c3R5bGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1vdmVG
aWx0ZXJFZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUZpbHRl
ckVmZmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlRmlsdGVyQmFj
a2luZ1N0b3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpoYXNGaWx0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aGFzRmlsdGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlUm93OjpyZXF1aXJlc0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRp
ZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6Omhhc0ZpbHRlcik6CisKIDIwMTEtMTEtMDkgIENocmlz
IEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogY3Jhc2ggd2hl
biBhY2Nlc3Npbmcgc2VsZWN0ZWRUYWIgaW4gYSB0YWIgbGlzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA5ZWYxYzNhNTUzNDFlMjI2ZTMyMTk3ZDViNzNhZGRlNTA3NjAwYzdhLi5jY2JlMWEwNmUz
ZmM0MTYzMjI0OWZmMzgxM2ZmZmYwZjhmZGY1ZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MTIxNSw2ICsxMjE1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9CaWRp
UnVuLmNwcAogICAgIHJlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAKICAgICByZW5kZXJpbmcvRWxs
aXBzaXNCb3guY3BwCisgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAogICAg
IHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAogICAgIHJlbmRlcmluZy9IaXRUZXN0aW5n
VHJhbnNmb3JtU3RhdGUuY3BwCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA2Y2JiMDZkODY5MjRlZTU3OTRmNmNjYzFmNjk3
Y2JjYWIwNDQ2NTdmLi4wZjcwZmI5ZGYwOTE0M2MxZTZkYTExOGZkYTZjMmNjNTk2YjcyMDVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMwMjEsNiArMzAyMSw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNpc0JveC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNpc0JveC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVk
VGFibGVMYXlvdXQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxh
eW91dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR2FwUmVjdHMuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNDgyNmM1YTU4ODRkZGQ5MWE5ZDZiZDQ5YWRjMTEyZTg0NThhNTE1Mi4uNDI5
ZjFjZDM5MzRkYzBkMDg5MjI5YWY1MmYyNWRhYmNkOGM2YjQ2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNDU0Myw2ICs0NTQzLDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvQ291bnRlck5vZGUu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0VsbGlwc2lzQm94LmNwcCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL0VsbGlwc2lzQm94LmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0
ZXJFZmZlY3RSZW5kZXJlci5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJFZmZl
Y3RSZW5kZXJlci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5j
cHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmgnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYWRkZmEyNGVhMjg4
N2MxZTI2OGM5YTIzZjBmMzUwMmJkNDU1OTdlNS4uYzhkNzhmYThiMzM1ZjdiMDk1MGVmYWFjYWVm
N2NkNDBmNTgyNzU3NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTMzMjU0LDYgKzMzMjU0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xGaWx0ZXJFZmZlY3RSZW5kZXJl
ci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcRml4ZWRUYWJs
ZUxheW91dC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZjYmY4MWM0
N2I4N2UyYWIxYzk5OTg5N2RmNWQxY2Q0MGUxZDQ0MDkuLjNiN2ZlNTBmOGU1ODA4MGZmNGM1MTg0
MmFmN2ViYjA0YjM1ZmQ0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc4Myw2ICs3ODMsOCBAQAogCQkzMTI4OEU3MzBFMzAw
NUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5QUUgLyog
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxMjg4RTc0MEUzMDA1RDYwMDM2MTlB
RSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcCAqLzsgfTsKIAkJMzEyODhFNzUwRTMwMDVENjAwMzYxOUFFIC8q
IFdlYktpdENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxMjg4RTcxMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmggKi87IH07CisJCTMxMzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0ZXJF
ZmZlY3RSZW5kZXJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTMxM0Y2MzE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIu
Y3BwICovOyB9OworCQkzMTMxM0Y2NjE0NDNCMzVGMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVu
ZGVyZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
MzEzRjY0MTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oICovOyB9Owog
CQkzMTYxMUU1QTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1
ODBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgKi87IH07
CiAJCTMxNjExRTVCMEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1
OTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovOyB9Owog
CQkzMTYxMUU2MTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTVF
MEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwpA
QCAtNzg4NSw2ICs3ODg3LDggQEAKIAkJMzEyODhFNkYwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktp
dENTU0tleWZyYW1lUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJL
aXRDU1NLZXlmcmFtZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEyODhF
NzAwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4RTcxMEUzMDA1RDYwMDM2MTlBRSAv
KiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdENTU0tleWZyYW1lc1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzEzMTNGNjMxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbHRlckVmZmVjdFJlbmRlcmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzMTNGNjQxNDQzQjM1RTAwNkUy
QTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZpbHRlckVmZmVjdFJlbmRlcmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxNjExRTU0MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTYxMUU1ODBFMUM0REUwMDBGNkE1NzkgLyog
SlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzE2MTFFNTkwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3NTYs
NiArMjA3NjAsOCBAQAogCQkJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9k
ZS5oICovLAogCQkJCUE4Q0ZGNkNBMEExNTYxQ0QwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5jcHAg
Ki8sCiAJCQkJQThDRkY2QkQwQTE1NjExODAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmggKi8sCisJ
CQkJMzEzMTNGNjMxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAq
LywKKwkJCQkzMTMxM0Y2NDE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIu
aCAqLywKIAkJCQlBOENGRjA0ODBBMTU0RjA5MDAwQTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5j
cHAgKi8sCiAJCQkJQThDRkYwNEEwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFibGVMYXlvdXQu
aCAqLywKIAkJCQk5MzVDNDc3NDA5QUM0RDhEMDBBNkFBQjQgLyogR2FwUmVjdHMuaCAqLywKQEAg
LTI0NjQ0LDYgKzI0NjUwLDcgQEAKIAkJCQk5NzZGMzZFQjE0Njg2MjI1MDA1RTkzQjQgLyogU2Vj
dXJpdHlDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTM0NDk2RTE0Njk0MUIzMDA3MjAz
MTIgLyogU1ZHTGVuZ3RoQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0RDJEQTUxNDZB
NTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTMx
M0Y2NjE0NDNCMzVGMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjc1MDQsNiArMjc1MTEsNyBAQAogCQkJCTk3NkYzNkVBMTQ2ODYyMjUwMDVFOTNC
NCAvKiBTZWN1cml0eUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzEzNDQ5NkQxNDY5
NDFCMzAwNzIwMzEyIC8qIFNWR0xlbmd0aENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTc0RDJEQTQxNDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMxMzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAppbmRleCA2MjZhMmExMTk2YmZlY2Y1NDA2ZTBiYmNlOTM3MzMxOWQ3OTIxNzAzLi4wY2RmNzBk
MWU4MGRhMWRmYjM0YzJiM2JkYzRiY2YwMDlmM2UyNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xNTc1LDcgKzE1NzUsNyBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUq
IHBhcmVudAogICAgIC8vIGNhc2VzIHdoZXJlIG9iamVjdHMgdGhhdCBzaG91bGQgYmUgYmxlbmRl
ZCBhcyBhIHNpbmdsZSB1bml0IGVuZCB1cCB3aXRoIGEgbm9uLXRyYW5zcGFyZW50CiAgICAgLy8g
b2JqZWN0IHdlZGdlZCBpbiBiZXR3ZWVuIHRoZW0uICBBdXRvIHotaW5kZXggYWxzbyBiZWNvbWVz
IDAgZm9yIG9iamVjdHMgdGhhdCBzcGVjaWZ5IHRyYW5zZm9ybXMvbWFza3MvcmVmbGVjdGlvbnMu
CiAgICAgaWYgKHN0eWxlLT5oYXNBdXRvWkluZGV4KCkgJiYgKChlICYmIGUtPmRvY3VtZW50KCkt
PmRvY3VtZW50RWxlbWVudCgpID09IGUpIHx8IHN0eWxlLT5vcGFjaXR5KCkgPCAxLjBmCi0gICAg
ICAgIHx8IHN0eWxlLT5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSB8fCBzdHlsZS0+aGFz
TWFzaygpIHx8IHN0eWxlLT5ib3hSZWZsZWN0KCkpKQorICAgICAgICB8fCBzdHlsZS0+aGFzVHJh
bnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgfHwgc3R5bGUtPmhhc01hc2soKSB8fCBzdHlsZS0+Ym94
UmVmbGVjdCgpIHx8IHN0eWxlLT5oYXNGaWx0ZXIoKSkpCiAgICAgICAgIHN0eWxlLT5zZXRaSW5k
ZXgoMCk7CiAKICAgICAvLyBUZXh0YXJlYSBjb25zaWRlcnMgb3ZlcmZsb3cgdmlzaWJsZSBhcyBh
dXRvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJl
bmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTcxYjU0N2RiNGQ3YWE1ZjJmNDc5YzVhMmY0NjA3MDNlMzJhNTQ3
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZl
Y3RSZW5kZXJlci5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkZpbHRlckVmZmVjdFJlbmRlcmVyLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRmlsdGVyRWZmZWN0UmVuZGVyZXI6OkZpbHRlckVm
ZmVjdFJlbmRlcmVyKCkKK3sKKyAgICBzZXRGaWx0ZXJSZXNvbHV0aW9uKEZsb2F0U2l6ZSgxLCAx
KSk7Cit9CisKK0ZpbHRlckVmZmVjdFJlbmRlcmVyOjp+RmlsdGVyRWZmZWN0UmVuZGVyZXIoKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0
UmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNiMWJiOTE4ZTBhOGJlNzE3ZmU2OWNhZTc5NGYyNWVhNWU1ZTE5ZTkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0
UmVuZGVyZXIuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZpbHRlckVmZmVjdFJlbmRlcmVy
X2gKKyNkZWZpbmUgRmlsdGVyRWZmZWN0UmVuZGVyZXJfaAorCisjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQorCisjaW5jbHVkZSAiRmlsdGVyLmgiCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCisj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiU291cmNlR3JhcGhpYy5oIgorCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWx0
ZXJFZmZlY3RSZW5kZXJlciA6IHB1YmxpYyBGaWx0ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZpbHRlckVmZmVjdFJlbmRlcmVyPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBGaWx0ZXJFZmZlY3RSZW5kZXJlcigpKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U291cmNlSW1hZ2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
SW1hZ2VSZWN0KQorICAgIHsgCisgICAgICAgIG1fc291cmNlRHJhd2luZ1JlZ2lvbiA9IHNvdXJj
ZUltYWdlUmVjdDsKKyAgICAgICAgaWYgKG1fZWZmZWN0KQorICAgICAgICAgICAgZWZmZWN0KCkt
PnNldE1heEVmZmVjdFJlY3Qoc291cmNlSW1hZ2VSZWN0KTsKKyAgICAgICAgc2V0RmlsdGVyUmVn
aW9uKHNvdXJjZUltYWdlUmVjdCk7CisgICAgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHNvdXJj
ZUltYWdlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlRHJhd2luZ1JlZ2lvbjsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHNldEZpbHRlclJlZ2lvbihjb25zdCBGbG9hdFJlY3QmIGZpbHRlclJl
Z2lvbikgeyBtX2ZpbHRlclJlZ2lvbiA9IGZpbHRlclJlZ2lvbjsgfQorICAgIHZpcnR1YWwgRmxv
YXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyUmVnaW9uOyB9CisK
KyAgICAvLyBBdCB0aGUgbW9tZW50IHdlIGRvbid0IGFkanVzdCB0aGUgYm91bmRzIG9mIG91ciBj
YWxsZXIuIFdlCisgICAgLy8gd2lsbCBkbyB0aGlzIG9uY2UgdGhlIGZ1bGwgZmlsdGVyIGNoYWlu
IGlzIGJ1aWx0IChmb3IgZWZmZWN0cyBzdWNoIGFzIGJsdXIpLgorICAgIHZpcnR1YWwgYm9vbCBl
ZmZlY3RCb3VuZGluZ0JveE1vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmly
dHVhbCB2b2lkIHNldEVmZmVjdChQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gZWZmZWN0KSB7IG1f
ZWZmZWN0ID0gZWZmZWN0OyB9CisgICAgdmlydHVhbCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBlZmZl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2VmZmVjdDsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFNv
dXJjZUdyYXBoaWMoUGFzc1JlZlB0cjxTb3VyY2VHcmFwaGljPiBzb3VyY2VHcmFwaGljKSB7IG1f
c291cmNlR3JhcGhpYyA9IHNvdXJjZUdyYXBoaWM7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxTb3Vy
Y2VHcmFwaGljPiBzb3VyY2VHcmFwaGljKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VHcmFwaGlj
OyB9CisgICAgCitwcml2YXRlOgorICAgIEZpbHRlckVmZmVjdFJlbmRlcmVyKCk7CisgICAgdmly
dHVhbCB+RmlsdGVyRWZmZWN0UmVuZGVyZXIoKTsKKworICAgIEZsb2F0UmVjdCBtX3NvdXJjZURy
YXdpbmdSZWdpb247CisgICAgRmxvYXRSZWN0IG1fZmlsdGVyUmVnaW9uOworICAgIAorICAgIFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IG1fZWZmZWN0OworICAgIFJlZlB0cjxTb3VyY2VHcmFwaGljPiBt
X3NvdXJjZUdyYXBoaWM7CisgICAgR3JhcGhpY3NDb250ZXh0KiBtX3NhdmVkQ29udGV4dDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVS
UykKKworI2VuZGlmIC8vIEZpbHRlckVmZmVjdFJlbmRlcmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggMDFhNThhOTY0ZWEzNjY2
MDZmMzRkZWU1MjVkZjI2MTIxMDk4YjVkNS4uYWYxOTllZjgxOWEwNWNlZmE0NDZkNGI2YzE3ZjIw
ZmQ1M2UzOTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNTZWxm
UGFpbnRpbmdMYXllcigpIGNvbnN0OwogICAgIFJlbmRlckxheWVyKiBsYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fbGF5ZXI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0
IHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlzUG9zaXRpb25lZCgpIHx8IGlzUmVsUG9zaXRpb25lZCgp
IHx8IGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zvcm0o
KSB8fCBoYXNNYXNrKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0eWxlKCktPnNwZWNpZmllc0Nv
bHVtbnMoKTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1
cm4gaXNSb290KCkgfHwgaXNQb3NpdGlvbmVkKCkgfHwgaXNSZWxQb3NpdGlvbmVkKCkgfHwgaXNU
cmFuc3BhcmVudCgpIHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhh
c01hc2soKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgaGFzRmlsdGVyKCkgfHwgc3R5bGUoKS0+c3Bl
Y2lmaWVzQ29sdW1ucygpOyB9CiAKICAgICAvLyBUaGlzIHdpbGwgd29yayBvbiBpbmxpbmVzIHRv
IHJldHVybiB0aGUgYm91bmRpbmcgYm94IG9mIGFsbCBvZiB0aGUgbGluZXMnIGJvcmRlciBib3hl
cy4KICAgICB2aXJ0dWFsIExheW91dFJlY3QgYm9yZGVyQm91bmRpbmdCb3goKSBjb25zdCA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBjYTNkZjhkMGI2
NWU2OTZkODQyOTk3YTNkMjJjOGUzZGYyZTliNmVjLi40YTIzZDQ1MzUzNTkzZTA0NTY0YzEyMDgy
OTQ4ZDJiZTY4OWE2NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKQEAgLTUyLDYgKzUyLDExIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCisjaW5jbHVkZSAiRkVDb2xvck1hdHJpeC5oIgorI2luY2x1ZGUgIkZF
TWVyZ2UuaCIKKyNpbmNsdWRlICJGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgorI2VuZGlmCiAjaW5j
bHVkZSAiRmxvYXRQb2ludDNELmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
Rm9jdXNDb250cm9sbGVyLmgiCkBAIC04Miw2ICs4Nyw3IEBACiAjaW5jbHVkZSAiU2NhbGVUcmFu
c2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJTY3Jv
bGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlNvdXJjZUdyYXBoaWMuaCIKICNpbmNsdWRlICJUZXh0
U3RyZWFtLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJU
cmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKQEAgLTI2NzYsNiArMjY4MiwzNSBAQCB2b2lk
IFJlbmRlckxheWVyOjpwYWludExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNz
Q29udGV4dCogcCwKICAgICBpZiAoIXJlbmRlcmVyKCktPm9wYWNpdHkoKSkKICAgICAgICAgcmV0
dXJuOwogCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIGlmICghcC0+cGFpbnRpbmdEaXNh
YmxlZCgpICYmIGhhc0ZpbHRlcigpICYmICFzaXplKCkuaXNaZXJvKCkgJiYgIShwYWludEZsYWdz
ICYgUGFpbnRMYXllclBhaW50aW5nRmlsdGVyKSkgeworICAgICAgICAvLyBVcGRhdGUgdGhlIGZp
bHRlcidzIGltYWdlIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgdXBkYXRlRmlsdGVyQmFja2luZ1N0
b3JlKCk7CisgICAgICAgIAorICAgICAgICAvLyBQYWludCBpbnRvIHRoZSBjb250ZXh0IHRoYXQg
cmVwcmVzZW50cyB0aGUgU291cmNlR3JhcGhpYyBvZiB0aGUgZmlsdGVyLgorICAgICAgICBHcmFw
aGljc0NvbnRleHQqIHNvdXJjZUdyYXBoaWNzQ29udGV4dCA9IG1fZmlsdGVyLT5zb3VyY2VJbWFn
ZSgpLT5jb250ZXh0KCk7CisKKyAgICAgICAgRmxvYXRSZWN0IHBhaW50UmVjdCA9IEZsb2F0UmVj
dCgwLCAwLCBzaXplKCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpKTsKKyAgICAgICAgc291cmNl
R3JhcGhpY3NDb250ZXh0LT5jbGVhclJlY3QocGFpbnRSZWN0KTsKKworICAgICAgICAvLyBOb3cg
ZG8gdGhlIHJlZ3VsYXIgcGFpbnQgaW50byB0aGUgU291cmNlR3JhcGhpYy4KKyAgICAgICAgcGFp
bnRMYXllcih0aGlzLCBzb3VyY2VHcmFwaGljc0NvbnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWlu
dEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIHJlZ2lvbiwgb3ZlcmxhcFRlc3RSZXF1ZXN0cywgcGFp
bnRGbGFncyB8IFBhaW50TGF5ZXJQYWludGluZ0ZpbHRlcik7CisgICAgICAgICAgICAKKyAgICAg
ICAgLy8gSW52YWxpZGF0ZSB0aGUgZmlsdGVyIHNvIHRoYXQgaXQgZXhlY3V0ZXMgYWdhaW4uCisg
ICAgICAgIG1fZmlsdGVyLT5zb3VyY2VHcmFwaGljKCktPmNsZWFyUmVzdWx0KCk7CisgICAgICAg
IG1fZmlsdGVyLT5lZmZlY3QoKS0+Y2xlYXJSZXN1bHQoKTsKKyAgICAgICAgbV9maWx0ZXItPmVm
ZmVjdCgpLT5hcHBseSgpOworICAgICAgICAKKyAgICAgICAgTGF5b3V0UG9pbnQgbGF5ZXJPcmln
aW47CisgICAgICAgIGNvbnZlcnRUb0xheWVyQ29vcmRzKHJvb3RMYXllciwgbGF5ZXJPcmlnaW4p
OworICAgICAgICBMYXlvdXRSZWN0IGZpbHRlckJvdW5kcyA9IExheW91dFJlY3QobGF5ZXJPcmln
aW4ueCgpLCBsYXllck9yaWdpbi55KCksIHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkp
OworICAgICAgICAKKyAgICAgICAgLy8gR2V0IHRoZSBmaWx0ZXJlZCBvdXRwdXQgYW5kIGRyYXcg
aXQgaW4gcGxhY2UuCisgICAgICAgIHAtPmRyYXdJbWFnZUJ1ZmZlcihtX2ZpbHRlci0+ZWZmZWN0
KCktPmFzSW1hZ2VCdWZmZXIoKSwgcmVuZGVyZXIoKS0+c3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBm
aWx0ZXJCb3VuZHMsIENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQorI2VuZGlmCisKICAgICBpZiAocGFpbnRzV2l0aFRyYW5zcGFyZW5jeShwYWludEJlaGF2aW9y
KSkKICAgICAgICAgcGFpbnRGbGFncyB8PSBQYWludExheWVySGF2ZVRyYW5zcGFyZW5jeTsKIApA
QCAtNDE1Niw2ICs0MTkxLDkgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxkQmVOb3JtYWxGbG93
T25seSgpIGNvbnN0CiAgICAgICAgICAgICAmJiAhcmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkK
ICAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5pc1JlbFBvc2l0aW9uZWQoKQogICAgICAgICAg
ICAgJiYgIXJlbmRlcmVyKCktPmhhc1RyYW5zZm9ybSgpCisjaWYgRU5BQkxFKENTU19GSUxURVJT
KQorICAgICAgICAgICAgJiYgIXJlbmRlcmVyKCktPmhhc0ZpbHRlcigpCisjZW5kaWYKICAgICAg
ICAgICAgICYmICFpc1RyYW5zcGFyZW50KCk7CiB9CiAKQEAgLTQyMDEsNiArNDIzOSwxMyBAQCB2
b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpCiAgICAgICAgIHVwZGF0ZVJlZmxlY3Rpb25TdHlsZSgpOwogICAg
IH0KICAgICAKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgaWYgKGhhc0ZpbHRlcigpKQor
ICAgICAgICB1cGRhdGVGaWx0ZXJFZmZlY3QoKTsKKyAgICBlbHNlCisgICAgICAgIHJlbW92ZUZp
bHRlckVmZmVjdCgpOworI2VuZGlmCisgICAgCiAgICAgaWYgKHNjcm9sbHNPdmVyZmxvdygpKSB7
CiAgICAgICAgIGlmICghbV9zY3JvbGxhYmxlQXJlYVBhZ2UpIHsKICAgICAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSByZW5kZXJlcigpLT5mcmFtZSgpKSB7CkBAIC00MzI5LDYgKzQzNzQsNTkg
QEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUmVmbGVjdGlvblN0eWxlKCkKICAgICBtX3JlZmxl
Y3Rpb24tPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCit2b2lkIFJlbmRlckxheWVyOjpyZW1vdmVGaWx0ZXJFZmZlY3QoKQoreworICAg
IG1fZmlsdGVyID0gMDsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRmlsdGVyRWZmZWN0
KCkKK3sKKyAgICBpZiAoIW1fZmlsdGVyKQorICAgICAgICBtX2ZpbHRlciA9IEZpbHRlckVmZmVj
dFJlbmRlcmVyOjpjcmVhdGUoKTsKKworICAgIC8vIEZvciB0aGUgbW9tZW50IHdlIG9ubHkgc3Vw
cG9ydCBhIHNpbmdsZSBodWUtcm90YXRlKCkgZmlsdGVyLgorICAgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NzQgYW5kCisgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDc1CisKKyAgICBSZWZQdHI8RmlsdGVy
RWZmZWN0PiBlZmZlY3Q7CisgICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXJPcGVyYXRpb25zID0g
cmVuZGVyZXIoKS0+c3R5bGUoKS0+ZmlsdGVyKCk7CisgICAgaWYgKGZpbHRlck9wZXJhdGlvbnMu
c2l6ZSgpID09IDEpIHsKKyAgICAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24g
PSBmaWx0ZXJPcGVyYXRpb25zLmF0KDApOworICAgICAgICBpZiAob3BlcmF0aW9uLT5nZXRPcGVy
YXRpb25UeXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpIVUVfUk9UQVRFKSB7CisgICAgICAgICAg
ICBjb25zdCBCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uKiBjb2xvck1hdHJpeE9wZXJh
dGlvbiA9IHN0YXRpY19jYXN0PGNvbnN0IEJhc2ljQ29sb3JNYXRyaXhGaWx0ZXJPcGVyYXRpb24q
PihvcGVyYXRpb24pOworICAgICAgICAgICAgVmVjdG9yPGZsb2F0PiBpbnB1dFBhcmFtZXRlcnM7
CisgICAgICAgICAgICBpbnB1dFBhcmFtZXRlcnMuYXBwZW5kKGNvbG9yTWF0cml4T3BlcmF0aW9u
LT5hbW91bnQoKSk7CisgICAgICAgICAgICBlZmZlY3QgPSBGRUNvbG9yTWF0cml4OjpjcmVhdGUo
bV9maWx0ZXIuZ2V0KCksIEZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEUsIGlucHV0UGFyYW1l
dGVycyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJZiB3ZSBkaWRuJ3QgbWFrZSBhIHJl
YWwgZmlsdGVyLCBjcmVhdGUgYSBudWxsLW9wIChGRU1lcmdlIHdpdGggb25lIGlucHV0KS4KKyAg
ICBpZiAoIWVmZmVjdCkKKyAgICAgICAgZWZmZWN0ID0gRkVNZXJnZTo6Y3JlYXRlKG1fZmlsdGVy
LmdldCgpKTsKKyAgICAKKyAgICBSZWZQdHI8U291cmNlR3JhcGhpYz4gc291cmNlR3JhcGhpYyA9
IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShtX2ZpbHRlci5nZXQoKSk7CisgICAgbV9maWx0ZXItPnNl
dFNvdXJjZUdyYXBoaWMoc291cmNlR3JhcGhpYyk7CisKKyAgICBlZmZlY3QtPmlucHV0RWZmZWN0
cygpLmFwcGVuZChzb3VyY2VHcmFwaGljKTsKKyAgICBtX2ZpbHRlci0+c2V0RWZmZWN0KGVmZmVj
dCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUZpbHRlckJhY2tpbmdTdG9yZSgpCit7
CisgICAgTGF5b3V0U2l6ZSBsYXlvdXRTaXplID0gc2l6ZSgpOworICAgIGlmICghbGF5b3V0U2l6
ZS5pc1plcm8oKSkgeworICAgICAgICBGbG9hdFJlY3Qgc2l6ZSA9IEZsb2F0UmVjdCgwLCAwLCBs
YXlvdXRTaXplLndpZHRoKCksIGxheW91dFNpemUuaGVpZ2h0KCkpOworICAgICAgICBGbG9hdFJl
Y3QgY3VycmVudFNvdXJjZVNpemUgPSBtX2ZpbHRlci0+c291cmNlSW1hZ2VSZWN0KCk7CisgICAg
ICAgIGlmIChzaXplICE9IGN1cnJlbnRTb3VyY2VTaXplKSB7CisgICAgICAgICAgICBtX2ZpbHRl
ci0+c2V0U291cmNlSW1hZ2VSZWN0KHNpemUpOworICAgICAgICAgICAgbV9maWx0ZXItPnNldFNv
dXJjZUltYWdlKEltYWdlQnVmZmVyOjpjcmVhdGUobGF5b3V0U2l6ZSkpOworICAgICAgICB9Cisg
ICAgfQorfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5E
RUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAzNTVjYmUyNGFh
Y2FlNWYzYjE1NWRkM2NmZGRhM2Q5Y2IzY2QwNzQ5Li40MGVkNjk4M2I3MjQ3YTFlMzhjMzM1YjNh
N2QzNWQyODVkODdlNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApA
QCAtNTIsNiArNTIsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCitjbGFzcyBGaWx0ZXJFZmZlY3RSZW5kZXJlcjsKKyNlbmRpZgogY2xhc3MgSGl0
VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSGl0VGVzdGluZ1RyYW5z
Zm9ybVN0YXRlOwpAQCAtNDIxLDYgKzQyNCw5IEBAIHB1YmxpYzoKICAgICAgICAgUGFpbnRMYXll
clRlbXBvcmFyeUNsaXBSZWN0cyA9IDEgPDwgMiwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5n
UmVmbGVjdGlvbiA9IDEgPDwgMywKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nT3ZlcmxheVNj
cm9sbGJhcnMgPSAxIDw8IDQKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgICAgICwgUGFp
bnRMYXllclBhaW50aW5nRmlsdGVyID0gMSA8PCA1CisjZW5kaWYKICAgICB9OwogICAgIAogICAg
IHR5cGVkZWYgdW5zaWduZWQgUGFpbnRMYXllckZsYWdzOwpAQCAtNDk0LDcgKzUwMCwxMSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBwcmVzZXJ2ZXMzRCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkt
PnN0eWxlKCktPnRyYW5zZm9ybVN0eWxlM0QoKSA9PSBUcmFuc2Zvcm1TdHlsZTNEUHJlc2VydmUz
RDsgfQogICAgIGJvb2wgaGFzM0RUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9y
bSAmJiAhbV90cmFuc2Zvcm0tPmlzQWZmaW5lKCk7IH0KIAotICAgICAvLyBPdmVybG9hZGVkIG5l
dyBvcGVyYXRvci4gIERlcml2ZWQgY2xhc3NlcyBtdXN0IG92ZXJyaWRlIG9wZXJhdG9yIG5ldwor
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0
dXJuIHJlbmRlcmVyKCktPmhhc0ZpbHRlcigpOyB9CisjZW5kaWYKKworICAgIC8vIE92ZXJsb2Fk
ZWQgbmV3IG9wZXJhdG9yLiBEZXJpdmVkIGNsYXNzZXMgbXVzdCBvdmVycmlkZSBvcGVyYXRvciBu
ZXcKICAgICAvLyBpbiBvcmRlciB0byBhbGxvY2F0ZSBvdXQgb2YgdGhlIFJlbmRlckFyZW5hLgog
ICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIFJlbmRlckFyZW5hKikgdGhyb3coKTsKIApA
QCAtNjUxLDcgKzY2MSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUmVmbGVjdGlvblN0
eWxlKCk7CiAgICAgYm9vbCBwYWludGluZ0luc2lkZVJlZmxlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbjsgfQogICAgIHZvaWQgc2V0UGFpbnRpbmdJbnNp
ZGVSZWZsZWN0aW9uKGJvb2wgYikgeyBtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbiA9IGI7IH0K
LSAgICAKKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2b2lkIHJlbW92ZUZpbHRlckVm
ZmVjdCgpOworICAgIHZvaWQgdXBkYXRlRmlsdGVyRWZmZWN0KCk7CisgICAgdm9pZCB1cGRhdGVG
aWx0ZXJCYWNraW5nU3RvcmUoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBwYXJlbnRDbGlwUmVjdHMo
Y29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyUmVnaW9uKiwgQ2xpcFJlY3RzJiwg
Ym9vbCB0ZW1wb3JhcnlDbGlwUmVjdHMgPSBmYWxzZSwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxl
dmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CiAgICAgQ2xpcFJlY3Qg
YmFja2dyb3VuZENsaXBSZWN0KGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlclJl
Z2lvbiosIGJvb2wgdGVtcG9yYXJ5Q2xpcFJlY3RzLCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2
YW5jeSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKSBjb25zdDsKIApAQCAtNzk3LDcgKzgx
MywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgLy8gTWF5IHVsdGltYXRlbHkgYmUgZXh0ZW5k
ZWQgdG8gbWFueSByZXBsaWNhcyAod2l0aCB0aGVpciBvd24gcGFpbnQgb3JkZXIpLgogICAgIFJl
bmRlclJlcGxpY2EqIG1fcmVmbGVjdGlvbjsKLSAgICAKKyAgCisjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQorICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3RSZW5kZXJlcj4gbV9maWx0ZXI7CisjZW5kaWYK
KyAgICAgICAgCiAgICAgLy8gUmVuZGVyZXJzIHRvIGhvbGQgb3VyIGN1c3RvbSBzY3JvbGwgY29y
bmVyIGFuZCByZXNpemVyLgogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIG1fc2Nyb2xsQ29ybmVy
OwogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIG1fcmVzaXplcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA1OGYwMzQxMmZmMmUzZjVhNjI5ZTNlOTI2YmJjZjJh
MTFmNzg0NTM3Li4yMzMyYTljYTJmNTM1NmNjYmU5Y2JiYmI0YWRmNTM4YWJhYThiZTVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC01MDQsNiArNTA0LDEyIEBA
IHB1YmxpYzoKICAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVHJh
bnNmb3JtOyB9CiAgICAgYm9vbCBoYXNNYXNrKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKSAmJiBz
dHlsZSgpLT5oYXNNYXNrKCk7IH0KIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBib29s
IGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkgJiYgc3R5bGUoKS0+aGFzRmlsdGVy
KCk7IH0KKyNlbHNlCisgICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorI2VuZGlmCisKICAgICBpbmxpbmUgYm9vbCBwcmVzZXJ2ZXNOZXdsaW5lKCkgY29uc3Q7CiAK
ICNpZiAhSEFWRShQQVRIX0JBU0VEX0JPUkRFUl9SQURJVVNfRFJBV0lORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKaW5kZXggZjhmMDMwY2JmNWYxNTM2ZTZlNGFj
NTQxYzRjNzQ3ODNhYzhkZTcwYi4uNzNmOTAzZWVmYTQ5MjZjNDMzYWI3N2NiMzNkNzNhMjRiZDhk
NWViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKQEAgLTU3
LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3Qg
SGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50
SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVz
dEFjdGlvbik7CiAKICAgICAvLyBUaGUgb25seSB0aW1lIHJvd3MgZ2V0IGEgbGF5ZXIgaXMgd2hl
biB0aGV5IGhhdmUgdHJhbnNwYXJlbmN5LgotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVy
KCkgY29uc3QgeyByZXR1cm4gaXNUcmFuc3BhcmVudCgpIHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8
IGhhc1RyYW5zZm9ybSgpIHx8IGhhc01hc2soKTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJl
c0xheWVyKCkgY29uc3QgeyByZXR1cm4gaXNUcmFuc3BhcmVudCgpIHx8IGhhc092ZXJmbG93Q2xp
cCgpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhhc01hc2soKSB8fCBoYXNGaWx0ZXIoKTsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4
IDU5ODlhMTE5OWVkZDMyYmM1ZGZhMDA2NGE3NGExYzdiNTA2MzVlMTYuLjk2OThjMThiYjkyMzIz
ODYyNTQ4MGJlNGU0YTYyYjI4OTgwZmZlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDE4LDYgKzQxOCwxMyBAQCBTdHlsZURpZmZl
cmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25l
ZCYgY2hhbmdlZENvbgogI2VuZGlmCiAgICAgICAgIH0KIAorI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKKyAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci5nZXQoKSAhPSBv
dGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpCisgICAgICAgICAgICAm
JiAqcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpICE9ICpvdGhlci0+cmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpKSB7CisgICAgICAgICAgICByZXR1cm4gU3R5
bGVEaWZmZXJlbmNlTGF5b3V0OworICAgICAgICB9CisjZW5kaWYKKwogI2lmICFVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQo
KSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAgICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm1TdHlsZTNEICE9IG90aGVyLT5yYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm1TdHlsZTNECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGIxMzUwNmQ5NDA0N2VjNjI1NTE1MGQy
YTBlZjliZDliZjg4YTQxYmEuLjQxNDI5NWM2OWU1YTA4NDNmZjIxMWFlYzIwNmYxZmMxYTc4Mzkz
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC04NjMsNiArODYzLDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBj
b25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXIoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9maWx0ZXItPm1fb3BlcmF0aW9uczsgfQogICAgIGJvb2wgaGFzRmlsdGVy
KCkgY29uc3QgeyByZXR1cm4gIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci0+bV9vcGVy
YXRpb25zLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCk7IH0KKyNlbHNlCisgICAgYm9vbCBoYXNGaWx0
ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgICAgIAogLy8gYXR0cmli
dXRlIHNldHRlciBtZXRob2RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGE1YTJmZGIxOGI4N2JmZmQzYTZiYzM3Zjk3MTJm
ZWMyYTFmZDU1ZS4uYjcyY2IyMzVmYWEyNzI3ODk5ODVhYjM4OWUzODEwYmY5ZDliMmJkMiAxMDA3
NTUKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTExLTA4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KKworICAgICAgICBNb3ZlL2NvcHkvbWVyZ2UgU1ZHIGZpbHRlciByZW5kZXJpbmcgY29k
ZSB0byBnZW5lcmljIHJlbmRlcmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg0NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaHJlZSBuZXcgdGVzdHMgdGhhdCBleGVyY2lzZSB0aGUgKHNpbXBsZSkg
ZmlsdGVyCisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogY3NzMy9maWx0ZXJz
L2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogY3Nz
My9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVy
LXJlbmRlcmluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvc2ltcGxlLWZp
bHRlci1yZW5kZXJpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRl
cnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmcuaHRtbDogQWRkZWQuCisKIDIw
MTEtMTEtMDkgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAg
IEFYOiBjcmFzaCB3aGVuIGFjY2Vzc2luZyBzZWxlY3RlZFRhYiBpbiBhIHRhYiBsaXN0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmctZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5n
LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjVlZmJmNDg0MTAwMDEzZWJlNDA0ZTIxYWE4YjBm
MjdjZWVkN2IwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxODEwOQp6Y21lSHZgQ3BQKmBAaHdj
JX4oMH0qZkxFbiV7WXlmc2ltcHErVX1JOG04SDJzWDFMXm5pSElBSklnP1lTUjQkfmIKenZga3JV
Q0B1JkhSQSFjbFcrc1JUUjA9TF4yPzdCRXBYUW44Y3xPbmdVLSo5Zj5BdnN0SWB7UUAtUkhjfGAr
OHMzCnpiPyRUUk00O2Q1WitgZzMjS2RJdihPKGFwR0JIYFUqfkRiJipfQTg0dntZdFhOJlJ4IW1W
V3FiZFEzYmhDSl9Rbgp6SGFZTD9kU1J6cSU8akV6ZHQ2KzBNeFFfTHgtLUB9WDRsU0w9UnJHbnk2
LSZ5eT9eYGpGSUtEKjRqdyNsXngobkcKekMoXipOMn12TG1sZ3VUKnBYTWhIcElCPWMxNjRQRkRE
O1Q/P3JXZDtUUFlXVSgrXmc0QiEtZTA7aj9hcEFBaUw+CnpOeyswMmBMaEprWXwxVktkLVRCT09u
byRfdEp3TUFvWkc4a3U4c2NPQFcpVGJSWD9AWFYwSClDMXVyQTIkJFg3Owp6dWlleG47SThJVWAw
IWRNXlI7SiFnTDxBWHlxSHxlbW9FV1c5PCpQRzQ9Qjk0e0A1Pm1gXjw7JlMrWjhlOHRhIXkKej1+
NkppLVZpZlZTKz9yQ1BuTWdockxIZjJgVmUrRUFAV19pI2UzIzhTQGthMD1aeGMhdiRiRCtaNDxX
IzlGekNxCnpNdi1sSz5+N2I2bTB2JE0/SyRBIy0/P3drb3JMI18pdVJKPlliV2h+ZDItdmEoNXdG
TkRKUXsmIX13TElQZDFRegp6SWs1UzA9P3RjRT5mNTVeJThofFR4en45JWQqUGAhZ2VEYDtlMVlG
bl9JRm1Ob15famU7RUZpRl9fXnUzVW5vPTMKel5uXlBTUCRmRVMrZHNCZ3tAaXVgYmR5VWBnM3hU
KXdNeVp6V2Q2a01YNiRhLVprSTV7Z3ljbG9TRTV9I058cGJTCnpjQGwtaXhtOTkxO3AkVm5qZnZj
NnBzMUI7KjlCUihLWik5YGkkPi1uWmhNNHFJRnBQPXclc3BhQ3ctVXdkZi1hMgp6PCVPOzlaeWlf
X1ReYU1EPyheflc4LUZfWD1pN3d6KF4+ZEVPd1grKTxxfUszJS02cypvcStZcTJ6O21OeXs/QTQK
emc7bV9PPylNKFRnVkI/Y19QaU1xLWxCMzc1KnEjUkxDT2JycTUhaWd4ISFFJE55QndQJWRZQFhV
KGw3NEVVMjZDCnpXLXhqSVlCdU94RCYzT3RrRiU+dDRXOXM/dzxtb1FeIXRZQVh4aDcxMUg4dVg9
JDl8O0BUc299WDFvK3tkMyplPQp6PXQzdiR5N0l1dz89PzRmOVNwQ2d7djEkc2VYbzQlZ3FodDYq
Y0ZsUlcyNih5dzEoVXReKzhLcSszMSpOVGx7PjMKekBeSjJ0cFF0V1dBMFBxek18M1RSSSgkTCZV
e3w8XkpiYTZFemFfZ0EjaiNVKTd1USpBI0o1bWU1RnNuPSt3UjkpCnpKbDJ7WFdVXzJhYXYpbDx5
aFFmaFopVWxGRyZ4KkQpdD9XJjhEIyRyeE1DRm16M00zTFNHSHJiQ3JZeGNCYlhUXwp6T2FNYW1E
ej5OMll8P2omOU5ve1gwQm4zWjFhYUpPKjlBS0hiI3BGWWhpRHpnIztiO0tgSWFYcXJxTWUmbnBF
ZiQKelFxTV91aklkcnBIbUBKUzQlVXJ1cnpWa1JuR1k2TEpoQTxUYFRRUXgqfkRiQyQ8YWdtUGlI
UVhhMShBfFU8akt9CnpHJEB9TD9PKHBiPTV9cnFnKndRe1plPlRsJTFnUyFidSsjRz0tMlBRaVhV
M0w/VHh6eExqQFBFJFFvTHxwUzxuJQp6PyQ7XipfPDdVaEc+PG5iQC1HS1Jsc2lQPSpVKWMrVVZB
dSUtNXhQXlohRiRnKzFucmd2cmVSYyg7VTAhWFkzU3gKelExKVgxUTJ5aTh7YkEoXiVhen01LWdu
dCMkPG5YQitAdm5+PlFVNVg9LUs2ZUttT2V3elZ3P3ZSX0ZieiRDc3UmCnp2dFJDQmpAKV9Dey1e
KUV3e1BFKW1ldjFsPWg7X2xaPC14UktLeiVfZkEha0J4I1BkQkleTWF3SDB7fnIjeXxlYwp6QFck
P3kpUCk/SGhqPlN6LVQmSVl5d0NyPTZHOWhjZE10REtoMFEzN3VtNUI2K2RJZWR3bUVGSkU1Pmcx
UWAxPVAKentBOyMkZVlkO3x2XjlxQSU7ITU+QSs5clN6Ui1gUyojcj1PXmdKMWJzQHx6KFhhLW1t
Pkp1LTdffntUe0heTFFzCnp6Tk16YEVPLShyKCpRISR7VWpYYzVFSDQqOX5RaWxjM1RpJWpiPnBp
M29AKj5fTF5JNSh5e0k0RnNRZT4kWEwkYQp6TEl2RFk+TlhuKlF8T3h8O0BtMEdmYTBoeFBvN0lL
JTA5alo3KXhYPHtzLUF7c29efGNSNWVScSV+QFpZNEtNZSoKenlicWk9VnwtJHJqb21GRE1rK1Na
cTV5e2E0U2hgeDxVWishalBoUXB7OCNxcCZ0YCY4OW8/WWVnSEdrTzIzWk0rCnpodH4rRUlldlhH
Z1RsUzlMRFNtelAqa3B0b1ArQFJDKV5PfmhpUXlCb0c0M2MmTjFpYiNgZDIwPiFXd2AzQ1h+JAp6
MSQlUn0xbDR1Mk5pISFwcms7flJxeUVVe2ltS2ArRmY+QW88djhSfE9IUig4VVcocUphQCtQQk5l
ZXUpIyRAb1EKenZaaWo7UkxvdXE5eVhCcWxnTyljVnFleElHTTZTRVo9KkMyV3RFcUpeWTBASGBt
WHdCSDs1WXIoKXs1S1chfHsxCnpHY15XR1R3bUw4RSZjV2d7VE1OUnlpaHhlb3FNM0Y1aHI7QDUy
X2BkPSN4fDBnNTxhPFBoZWNSJX5jdH1oeEV8dgp6R29OfSE9dXtKMC1iQjM2KkNmWGJPMUpWMkdY
QjtMUkBqaGArKiRtIzI8aCpVWjw+P200I2MpTkYyJHpqQSt1I0AKelEkV3U+Kl4mekhvRmhifHVP
WW8rN2RTUj9LZ1dGYGpIbzVHM2tIRFhUSWQzITdGSFZMJEc1TVNoNlMoUjBvPDdpCnohV3VxUzNu
cDlDclpyT3FHY1YyJThtJXY4Rys5Pip7Yyh9dU88aj1XRUN+a19VTVRWNVFKVHpkO2N9e2pGRCo+
QQp6U1AwbE9MYFV1bjNgejkpcDg3WnYhOHJwYGVQbHk5eTM+M1NkeyVHWFJ9OyRMWlZ3SzNVSDlE
cCQycHRQMEN7TjwKekhnfHR5MUtQaFM+Zns9K2h2TkVaR28yUlVGTlBVSj9zUHJQentieE9rSG9+
JGdiTWRrUT19UkxsNUxXZTx7JXswCno3SGxuMmFXViVzbkJtTnMoTkx8XyZhK2p6emo0KHNAQlhB
OFFSQjhANDYyQE93N1U5fnNIayRVUVFobUZaOXNOYgp6YDE+eWQ8a2lTTHxNaj1pS2tpSzUmO1o0
ZlF5T3lUSjlFUzRYM2h2YyhsLXpTRUI4eyRPQUVENVgpaGFRS20rJVEKekhofC1CVmZ1SyVrfH1T
ZkpwWW9AcXJEU1A3M09EeVhsMUorMGchdnZiancmS0lCRyhsTWJOYSgjMH1RIUdTejlsCno4MU9W
eTJLZStkM0tpI1YzYlYyZCVYWTl+TD51SDtwcW1GPGB+M3s+cFVJXnZ5KTdFXjk5Ylpndjs8Vk9Z
cHJXeAp6Z0FGPVRIQl5KfUl8QU41VHBNNi1yPig5UE8pKm0zUHt0dSEoQ2FabFRwM0UzKUdEJmFW
aHRLanBRQEtvP3ZDWFQKekwwX0F9PTFWNUlrRCZ0QDJSSTM9Mz5PfH0/dDxNMkM3ez9MdThQQ1hS
SUlMK2piMHk9VjdfandyRUFCVFVXZF5zCnotb1FOej5KUHMpI1RCX2h2UCkjfEtIYXFPRTRoP1gq
b35gI2U3a3cpeH1edCFPVHMhLVp9VVZJSn44Mjg4T2pSOQp6YWFgMkw5dlp3IW9TN0N1QSM0fXFA
d0Vwa1Y2Vkg8K04zRCRPS2xAYVc9OEg/TXBPTEdibXImUVFNMld8SWNAKVoKejN4MHlnNl9gRW5s
fF9EIzdKPHYkdCZ4cld3RGUxUnAmIXEoK1l6Q09NMW8hKDE/bmxYYnlfQXZXV258fUU0Yk0kCnpD
RDZUfGVPQVV2OXpJan5ROWkmVigzIW0qckYrZSQyK309UjxnYFl2O1YtLTxRQUBsQmAzOzF1dEN6
WjJIQ3JMVgp6ZmdKXkVPR2cqc3oqZShSMlMrLUYrYyNTK0o1PXNvQlc4SCREcUwlISl8S2R8SHV8
d3trZnlSc0tuM2NLdm8rNikKekBnR0RlXmNIKGBzU1k4P0RfMDAqbDwqRjMwJWMqRXJYNkREKnBM
e1dYbV81PlIzTTZAaUYofVc1VHlLYzFAU15HCnpRM2t3bWZmSV9nMHZiKEc8KD4kb0c7S3l7ZUB0
T3I2aU91IUVrfDJ1UmdYRE9sWXUwJSlWYUFXdF5weU1AcXg3Sgp6b35oekcrN0p1bEslZH04Z0g8
OFNUPE1zM2EheGZtTWA4blgkTmBLNjJVPmNaVHFFJjNFblNkJTN0cl4oWDIqJk0KejBTO3U2SDJk
QTlYKjZ1cVpJXmh5XylIc0Iwd3c9MklWUnBAY248VXA2Kl5WMCN2R0UzI1QyRCN3fHE4TWpWR2dN
CnpXSD9hZEh1cj9nTzJAd1FLK0xTUjQraiNPa1BqTlBeUnhKelYyWj4/OCh6X3hpM20lZGQ1LUBP
QSk7VFlGcT8leAp6cEF2Tz0kUyk+OWEmaVAxcl92Y25FdDxtTkpEPys1KzlLNXg/ajdZVyk3an4h
cE1URFY0Uil8SEptNUByKEFIST8KekFnZ3JHbG4oV1ZTLXEtKDRlODZIPTstNldMK0IyYHVLTHx7
RmhHRFhoejNnJlh7aitgSXdCTyo4X2VrfEc9N1E8CnpMb29XJWJXVko+X2pUc24+IWk0UnhlX0R1
Z1pkNmZ6SjkmWGJjYzIhV2wmY1pvMkJuaSZ5NSNYKHFUNCVSaUUjQQp6c1kzQCNxa15SSVR5eT56
VWAxcng+XztZQm84QE09aDdeI3xIMVdPfE1sVjZDR1ElISRgX2VSNHAmZnsrej9UPD4KenU0X3Rv
cytUYj83MEU0JVk7QkU2cDI5WCYxOyVZVitnbSk5UTZfTTIrS00mOGUyMm92OSlXM1p2PnU3Zjgp
K1prCnomKjlAX0hPeDYtMXNZQSRvZSRJNWlle0c7V0JScnYmUldIdz8yXl91YiM7bzdQLUlxP1VJ
OWB7TGVYVFQhciU7Zgp6KS1VZjUjYWYwMSFiNE9hZThZanxrP28hQlJifW8/aiF0anxvMCV8Tjh7
YHkkTU4tNX5nUmRNVERTdExsQ2RRbTAKejEyP0VzVjg9RnJEVy0yaHF2JiUwbDNLP1h7OSZiJUFo
NlNMVD5uLUdkY2VzZGlxfFl8eXM1K0BWa05eSUFPYCgoCnohO1l8MUxJeCV4bUtwVzJzZmtRKzAx
fj8qeUZQeW0oWm1sQlFaPilOeEk1O0VEUjA9SGtkP0Y3TE88cE5STlRuKQp6KXkwTkI1KWN9OD0q
KHB7Xm8lKXl8N2AxJmY0RT5gez5kOyVrTSM7ayhYdWkwV2t4TG9pdHo3SzgoOGlVNTEpQVEKej88
Jik9MWgpUGg3ajcldE1IMldFJH1vcno8QGVVRzsyKlQ3JTFpTmJyaE5xMkpPRzBAJHhvdG08UHB0
Y3ZGbDxeCnpAUy1ee251aUMmUGtPKWdvYGBOQDxhQ0MtbGYkP3srX05jMHhzfjhXbz19T0pxcFYx
YXBEJWt6ZyExS3Bme05DfQp6VFRkdC0tISRDe3k8Tl4hPVpwRDdubUdIQ1VxdUFwUDZlU1UzTDZX
UHdKUUlaNGFpQmdPI3wqZWZKYyg+N0EpTSQKenJpPzsxR3BGUWc2c2wkVUpGdzNhOT1CRCgzbmJI
Zm58MUZIZ2I4Njh5VENBfHJlQkJGaFpFMmBxI2duPzdJekQ3Cno4VEJVJHZxbUpnPFN7RTsmXzh3
O2ozfVE4eUI/WkZZQHNPZ3QmUFdISnc8NW5uX1M7SVU0P0xhJl4pWkNmIU0wJAp6O1p9fERkTGY+
KHlSUDZSUGFHUVVXfjVyUXg7KDlgNnMkTSt3Z0hxamxrNlJ9e0E3SE5SU3BuWTh5VmBLMEl9aEMK
emVQQ0pzYT8hYiNud0lVejtia1dNKCZ+QF80REoyOytkSjhMK25oR3JVKHxHX2JGVncrM3t+TTVO
Q0o+P0l7JWk/CnpgKTdydGNkS3NYXkBKVldLJSlDQSNObSokWUZpZTFTVkB6MWNsOVdyV3gmXyN1
U1dRdURGP0pTPn1WWF4mN1glNQp6JURaKnU9ITBQRSRBV1g9IzE5Nm8qZEx6Q3Y1WHo0MzkmSUwl
Ni1mSHM3OyFeP08kSEh5bmNPWW5MQlBmZnB3fVMKenpVVGc1NVRxcXtjUWBgfnVVd3VOSSEyc2J6
dkQ2TGFVay05YTN0PUE5alBtdGpad041QVl5SDZZeEpecUNGNk14CnphQ30mTXhgR0szd0ZYN0Zy
Jnd7U2xoa3hAKmB2cTEzc013SmJHeH05VDVpND1HdCFYcnpWZyY7JW4mPyttKFUwZQp6VnN2TyNf
MkdQNE9MWEVCe1g8MGFHWW9Yb1h4Tzh7bmxzMXJzYnclWClZXkI8aVgrQzI5Vz9fQWxAYCZwcmpj
U2MKenlMMUllKVZ7aDYlSytuWXspSD0hQz58LUhyc1UmZ18yJUVKeTFNR3VLT0omXiNFZzM5TlF8
RD5zZ3wxTiFlIUkxCnpiY0VQSkE5NS1iQE1xVFY0PWstVE08SmUtZ21nZ0lES04lOXJMJj0qKmh2
Z317NGprIW17Nklsb2FRfWY8VWs/VQp6NGxEUWZRO2NFKns/cU4+bSZMc3lRaVp5cEkrIXwlIXk7
M3ZKNVU3TDhnaF5YPUU+OCltRXdeaUwtPG9DdSoyO0EKekBUVitaJlk4ckJFTH1VZDV6OXlkWSFR
dTlHQTE0SWwtWDhsVjgtOEEhbUxBe1I9WmZ9cXZpJVM8PitgKnQ0Wjg3CnpXVUsxbWBJanpteTsm
VjhGYX1faWBAKG9ZcXdiQCheMzNifkhUZndlUil2bFhka0Y7MU5HPTsxenlgZ1dPeDU0TAp6MzFP
P1F2WDVzKGhgUiEqY0toQmh0WCMhaXA3Xm9leUE/VXpLIW5UPW0mNzUwMTI3cX1QPT9QJHE2YD5l
dEBreFkKeipKRWo8YWs7PSNCcUpEWHUjbWNtS1M4MSs4SmRkI01BVFd9RGVCQT1jcEhRTUVXKFkt
KVNpN2FWMyY+b1J6Wlg7CnpPVVhnXzhgbjxAJUtnSnFSentocT9eVmo/aGQlNl9xcko3KzBxSSRj
aT40cihZYXsjeUUzI2hNcnhpfk9CZEp0YAp6ezdzRlA0bXpCcldAdU1AKUlPelRyUDNCaXgxISF3
PlIpbVMwdWAja1VrdlIqKUV+PGtiaUc7QSo7Qm1DXk5ITnsKemkoeSViNlVBd0NDKzxrTi1yJWso
VGRzVlQoMyU1KWJqb2tyKTV7MV5WTTZBOF59WCghJUd+SiVaXlRaPTB4allYCno7bSNlTGZ7cnw/
dmRDN31vUDIoQ3JuKzktXiN2QyswSWNBbSYoYHk/NVZFQ3JlfXk7QjUofmd1VGxJZVVOWk5EOwp6
dk0yNVJ1UUNXTGJTSzdjTVAoQFE8KGxEdnEoYTdFPmAzVSoqa2JCaXFQcEUxI0dBYlo+S0xTSHJN
SXFsT2xQK1oKemRhOUhidilvQTkwSn1KZktPeypQZjFZO2xtSWRlVmlgQl9Gd2FQPk8hQ3FxcHBp
dEQ+O2UoIyRncWpsPGprI1Z4Cno3I05Yd24tZUM+V3RiamFNSCkwYm1jfl9AKGt3Smx5VyVtMzg2
IyFTWEc3eyEkeiVUVU08YUY8VitCMUEkYlZSfgp6QmR9SEUkSkRuWVEhd0ZPJlZgJlhvUjlIaFNu
QiF4biYtJlJHYis/ZVlUJnlJJDJ1clcrKURXQ2R6KV45U0FNJUUKelhsZExKJiQ3YXctUjxFUz9B
NF9qYHVnJUlxbCEmM3MoSkRXcXBHJj0jJlR1RnJ5bVA4TFRRSEJQfUR7IXAtSzN1CnomKXZPNDYk
ajRQbVpka3ZwKCF8LVJwKVF9cjtQN3s7M098aVMjTnw2SH41Jm0lWFJSKjg7LVFmVl51Z25FZy1l
Ugp6dXMtNVVNWjxKbzFhMiRYaX08a0psZjVPO3NlVWolenpOTE08NTQhPWZTYCFJTiM2eCRZbncj
fmlKbnpqWWVje2AKej8qQDdBIyVOdHhzPlojJGJ5ZT0qeTBBIyFpYlN1MVh3aysmPWQwTWIkeTst
V1Q5eDZfTC1JQThVIz9kM2g9JT1hCnopWDJ4dyYrKkNpajdeNmBgNlNoY3slKSEmQz51JTE5Q183
SEVjRn4hdG54RTJVZnx8IXNYdD1mclNifnlIUnQ8Zwp6LXhzclkkdUVMPlE0I3ojQnh+K2VheHdC
QmwkQHgrVFVoMDJEMElIUmdjUmZydCtWdlc/V31zTmh8aUVEdHViP3EKeipvfVY/dFleOFZUe1Nv
Nkc7IURrPXNtZXFuO3cxdEEhTypQdX03eFdPblNfSC0kWCFJQHxzcCprKGNJO095eFo3CnojcypB
e3hIbVdpb0Q0SUwqITlJQkNqNz5IUXtkSClrNSt0NG1ObzJEelM0fVlDJG0yNlMrY2FtVnZsMCY+
cSRyNwp6OEdsen5iRihKQDJ1blglQihPODsyaXZUX1B2JG0qQkkleD1MKk9RLVpUdVhYJFFOOX1I
e2I/WWpmMTtVPj01VnUKemMkUlFDZEowXmdDMExmJkg+Vyl9ZHg3Z1ctQVlyJj0rfT5FSE8mR2p1
K3Q/K29pTzF8NzRscGB4LVd1VShUeXYmCnptbDUjfFJQYCgjK1JjOykhZCh6RitCMFYhQ309V3dm
KyE2Z3pqUWI7Qnh2RWFFZU5DXntoKjREKX1QM2VVfWpVIQp6SHZaJStBQ0MyJTc2dkB6N1IpdSY+
WVBoRmViT0x6ZShlQj1EJnFmaz5ZZ3NFYGd+fHEpRHQ0TmpaWXVTQkZeUlYKemIxTyZKNXI4SyV5
anY1Syg2aitNVyR1TmpAZDMqP0kkZDgtWkt3Sy1fPCt+JEh+e2FOSmpYND0he2QzcVpeVUBfCnp6
bV5ycHBncFFnMG4qSG81Oyh6fHQkUWJnYCFWaWl4c2wrUjtDYSsyMURHWFRTMnJgVSEqK15QLVJ7
eXhEfnxocgp6WENgQTA4dDNPeyVza2c+SG5Wd2ZLakYxWDheXlIwTzcmQ05aUjhwKnB1PE5WdUlw
e1lTLUFhc1QyNnh0eHBZe1MKek4jMUwtY3whbSpFe24xM2cpbnR+QUFJZmJNNis/IUFWPXNvdCYo
JjwoTyZhPnM2byFCJH1fbklVQnIwIXNZWHJDCnpXPjQlRyYqUHljTm93Q2p5V2R9ckVnelBwZSYp
SWltVWQqZ2xjS1hrTVBOVTVrdk5xS3FqTWY9Pj5FOVN4ZXFMVAp6RUBlKEdJVGFQOEBYMyN7K0lZ
M3ZOV31SQCNqQGhBZyskV3UlMDluZGk9TWBLaT5OUEFDNCE5XnpGT2ZySFJCVlIKeihjUTsldnx3
TmFhczNyeEEoNnFwQGM3cVB3QUw4eXhxSjRod09PcklDM1paVj9IKDdKYmI+NFRwJWk9dilZPyM/
CnpFSkJCbFhaNV9JOG13PmBrdDRhY1BaaUNMK1c3RmMtfWg1bEl0Jl8+ITRFWjxyVD81Kmd8bXpt
ZFpxSDlMY01SUwp6QWJPNGVgV0BRfWN1blROaVJ6YXpibkN1JlQ7N1ZZRkhZN2ZoX3wwfXNJX1lV
VXR5fCh2XnAmYz8mcGR0MiZJeCsKemw8a19ycih9WXA0dCZUcjFuZzt4JWlqJmU4V2dKcXVXRFFm
MVpJVndrKkx7X2YrT0hnMFNxdEFzKGw+YEdIa1lVCnpzSS1VVSs4JDFDTXR4JVN6NEs2bmhmMWdI
JG8lOzNSYiZXJUZQPVA3ZzhZMG9Le2ItWGA9WSY7YS1ZK009PjRwVAp6aElLNjQqU3VhLTd0bjJD
RShRZUNaYHdeK1F7OT56Qz5zeU4xTz8xYHtUK3pfdmkjeGE/QEM8Pnh9TkhvTGVDU3YKenc7RDkq
bHl3aXRQKFdAXjRAZlFLSGdabFkzYnZ3e1N2RWVZdWBKMyFhKygqMUokbjVKWkRUM2VPUUdLP2py
JkRRCnpLTDV0ZWQlQTc/Jn1HZ15mPyN3bUkxV0xQdkQ/VHstfDtUb3JKR1pBOTkmWFY3Yl9YUl9h
MEd9Tkopei0/NWBFJgp6Pn5oYkEhdDNBY19EeD02O2FZSiQ4VGEqdys5Jm9Lc3AzZGUxQGVwMXlP
PyhtYEwjWH5XZHRRd0dnP2FyXjt7UmgKekllak9gUipDWjt5YVBRTSl8UGZzLX1ka3BfaWx6NHJC
UiVsbG1rRGEpOGxnYCpYMDFjO0lrWjdOam1+PktDX21HCnpscFNKZ14kZnUpdkokVnt1ZWhSMzU8
ZFZNX2dBPllxPT5wP0Jmd1l8IWwyY0QqN1BfMUQ2dUMkXnI1SFdzWV9JRQp6Yy1AVnIrakhEeGI7
eTtISm0qRnEzbTRlVEk4JGM+KEROUTtfaTYhUVlJWSpNIXpSaFdrTFBuWEBTU05lJk55SyYKeiRY
e2pgMHNhWWlSPFh2ejJ2UjtjczdedURjNzBZNEdFdjhKaUFoQEtPTUh0SSF4NkkoPzR0VTxWKHM/
c0xfVCZACnomZFVAbHNxQklaaFgoSys4OG5ffTRfU0VDZil9PjNaaXQ7dkc2R28+ak4wPnpEcD40
PjRwO3tqUWw5ayQqeyZWWQp6WmdgSDhjISUmZXhEYXdybjFRQ3w0bDhCRTxEeUtQZiN6SmdEQ2Iw
X15DK0YjbEhgPjV2V3BFJGkyfns8bygkOzQKejRDUzNyLTtEX2g3fDs8QEtORiFXbm9kTkROdTxX
fkY2Nm9TSzY2WjFqeUhwPzl1YWxUY3stS0ckZ0omY3M9VDdHCnpNfWEyQCZraW9Mc3VhUCtQamVi
QTMtfl4jbm1Ub30rUmQzSzJhYEJWdTt6ezEmTDFGUmRVSUVQJEY8bFdeRT1lQgp6azhzU1RMd21h
JGpoVnVYaz0oQWloM3g3YTt5e0NxMUxhVFk1I0BwIT4lZyVZM3MtZUA1RiRfZSN3em9KP2RXM2QK
emswd1AyQSRzP0JMM1pUTV8wTHFNbztSWGV2O25PKnB2cDRAaG9HYjs/Ni10Zzx4bWQ/JVJBLWYr
eGNYQ3pLfkVfCnpGT0JmYlAhVUFTbX11KlpEWlZ6UGJmJHk3LTVRb0RobzU9aGteXnRwUUlFVncp
SiNAdzMzWF8rdV5fY30kPX1jZwp6TVdHJCNXWkdGNnkjYWd4K2I1WnI1WDBNMkZoUDF2TnUjPXtR
UGJ9bGxmaUszNjhKKjRYaDFUTCQyZnVZKWkraFkKejd1KXkldG84Szt6VWYkIXFDJkR2aEgoTkFK
QyRGKGQ4dkshbjtveS1Ueksma3t9aXhARGhpYzAqfVU0N2hJRUdXCnpaczZ4V1lAaVNMaUFzKk5j
TWQka3srM2E8VU40ayt4UVptPnpvNFRhMj87KmNAb3pHaTFMTF4/VUQkKiluIWI8cwp6d1o3XjV3
ZzdYRjxXV2lkdnVWRkBfbG1Jc15Ifnt7VyEqQHRGUnJkNUQ3Knl9N3ohT0JzYFlSfjt5YGNvITRO
KkgKejN5QXgmJj88KDcrTUctTFhBfVh4S0JSbjBzRk1SbUJ4NS1ZUWJKLSEpWF9WbEFUeiVPUkMr
Tj1QJGdVeXVPNE4kCnpnND9efWlFT19ZT1ZgISQxb3pkLTxIeWc5MHVSdXApNGYtUFBvan5zUH02
RUomRzJsISNZM097ISh5ME1CZW1lMwp6JlVUQ0VoNlMhc1VYKnJKLT4odGNNZy1CMl8kbDM/JTI0
MGZ7dlgmI0JEPzU7OSp7cEVOSnNFeDMhNCZXSWBOMz4Kej9AWFpeemEtWXtXYzdQT2Q+PHg2Z3V6
KnJPYnBjJUoqMHV0MVZ3Zl5RKXdAQ2FLKnslM19uU1NJayVWTk9aeWg2CnppJjc2ailwUzw+Pn1S
ckhnYmw9TmByeWgrUCpJJEJ3V3ctWlo2e2hiSWlUSmdATil6WHMtJH0rVlpQN0UjekNSUgp6cTtv
M2F4Pnc9VDcqVGVlJnhzMSYrYForRHZ8PH5Oa1hSPSMjU3hfeExfb1JZezs7a0srU3ktXmJoJHM9
Mi1rTWYKem5CPT1MJn14ZHwqT3tsSHE0cTFNV3h9SkZRMHZfR0BwJV96JEBRMClyZz8kQWo/UV95
Y1A7ZEVJQWxfeSNiMUUwCnppQVNKSitaajZvaypSZjFVcncmQypyITh6T25xNj5rVGBNPnJOViV4
bU9ELUFgIUQ9azgpYlItPmh2dW5gI0pHKQp6TkgqZHJlYyN7YCF0NEVfbnVlcFR7b0EtSSghc3pY
STYhXmclNUw5WCtFZF95M2FqI01zZDFMZWQhRHZkKW1yIWcKenR4ez88OClmJi1vUWtjXng9S0B8
TiNzS2ROeithKnZ1Z2xUZH5INmZqfjc3aERea0xAUlRtXkVnWDdrfWl4Wmh6CnpXam8qJDM7QjNo
NFktUkJEQE9eUHh4S3lRc3dhRSslXzUoekskbShjc3pyaU1ARGsweSptRGJBeThaS3FAWEJ5UQp6
YjYwb0F3ZGgpUGMkX1k3U3UyWUooMis5R0Q0fjJ9bistISM4NTl0e25gOTF5PGkwSj9lZ25ZQ2hq
eEo5RTJxUHcKej4obTJyOFJobXpkX0JtYj9Na24pOGc0O2cpZUhEVndSMl9ZcHdfQX50Z1hoaSZS
Q3F3bXNMSVJ3WlRgZkNlOVpHCnpURCRSdU9aOElJK0JEQ0xPbyRgUmVnJFlfZFV6fUVuemZlT1I0
R19CWjwmZV9xZCFDKnVMSzNvYmctPF9VVWxyQAp6PkFJdm45KVh2aVBBPk4kRXBfSmdEPVB7dXB0
WHVfQn5EUXpKSj1mVz5NRXwkMzYoMV9aS1M7I191MiMlemkrfFUKek5vUkxYNTQzPXIlPGZSWUU5
YFErelBnJWgoSCZeYWpLWkxobUMtZmJmaXgzVkQpZFZ0eHxYd2RhXi1RMj8wUXVfCnomd1gxN2Ik
OChBZVJtNjxgVnFgUlAmK0F6SHN2KTNmdTdgeGdxJUkwVUpab3lSc0B9emcmSDlHdXZYNihKUTZy
cAp6dkYkN3g7RURJdVVxRU53WVlsUiVyQU9fX2ApOFdSRGVgVTUlZ1U9K1lkck5PX3Vod0JuZGQh
T2hgUXQ+aHAoa3kKemtlX0BVVlY4JWhlY0J3PWUwQlh6KVlRb0I+O0Z+RkkrUW09eG9ZdSVlKkU5
bndTQVpPUmJGMHQraWgzWXxDWEA2CnpHVFhaT1MrXzs/ZjhKWnteM1MxSTlHQWJVb1FxKWl6V0Bm
R21kOTI5LVYzbGU+O0l8bEZIKm9GNyM2ez5DPU0yIwp6O1FzfER4WDUqalQoYCh8aShJJEpiXmpj
Sk1MSnhoISRtcT1xe0JyelQlXk9yalBjNkZUK3BIKlNRRz97Zj8hYikKekVEQ319TDlpJFk3NnJq
U2YyPmBrISRtcT1xe0lLOD0jVmI+PkQtcVNHKjx0MEYyTGdja0FFRWt1byhVUUFDQ1Q+CmM4Y2gp
aD16SnhmK1dPQEA4azNgazB9bk1GSUN0ZkwwM1kpZCt5RFJvCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5k
ZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXIt
cmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTU1OTYyODA2OTVjNGRmNTgzNjAy
MDlhNzA0NjVjYzFjNjRkYTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1ODQKK2xheWVyIGF0ICg4LDgpIHNpemUgNzg0eDE4CisgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4IFtiZ2NvbG9yPSNBNjcyQTNdCisgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTcyeDE4CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA1NzI6ICJUaGlzIHBhcmFncmFwaCB3aWxsIGhhdmUgYSBmaWx0ZXIgYXBwbGllZC4gT25j
ZSBhcHBsaWVkLCBpdCBzaG91bGQgaGF2ZSBhIGdyZWVuIGJhY2tncm91bmQuIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvYWRkLWZpbHRlci1yZW5kZXJpbmcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mMjY0MjljNWVhNmU0ZjA2OTAxMzQ3MzdiNTFhZTE4ZmE5NzA5ZjUzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLmh0
bWwKQEAgLTAsMCArMSwyMiBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWwgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKTsKKyAgICBlbC5jbGFzc05hbWUgPSAiZmlsdGVy
ZWQiOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0sIDApOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8c3R5bGU+Cisu
ZmlsdGVyZWQgeworICAtd2Via2l0LWZpbHRlcjogaHVlLXJvdGF0ZSgxODBkZWcpOworICBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMTY2LCAxMTQsIDE2Myk7Cit9Cis8L3N0eWxlPgorPGRpdj4KKyAg
VGhpcyBwYXJhZ3JhcGggd2lsbCBoYXZlIGEgZmlsdGVyIGFwcGxpZWQuIE9uY2UgYXBwbGllZCwg
aXQgc2hvdWxkIGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLgorPC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVtb3ZlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDRmNzRjMGRjNTBjYjUxYjczMDBhN2QyNGM3YTNlNDM4
ZjljMzgzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNzA3Ngp6Y21lSHZZaDJRMnxHKHZ5OVZ9
fHFUNmN6UldwMVcyR1lAIXgqNVIocjE4dWFAUW1EfFpKZGx6YWFfVnE1d19JQTkKejsxU2w9PFl0
KkJyYnI0XyZJblExbDAqWitRZT1YTmZgRVgpcFBsYWV8S1J1Ul92SDckTXxAdmp1OFlfOGBkcHZ1
Cnp7cjxlKSpYUEFJaHZFO2NUPmcqY1pmPFRYS1J2a2IzcFkzU0VwQmQkNlA3TTx5e1hFKGFeQ2d2
KFNgajk3ZkAkWAp6UVIkZjZPdCh8SmNBV3xqM0VwYCtebUs0PT0qT1hfY1kobnVAWDFzWkRrTDEw
YXdgMFdZUmZJeHVLPl5QLUZ4V00Kenk/ZUpEJTBadCNvMDAwfmM1JV9RITsxOSZMK2MhYFFmblcp
RXthSDd2a1k/UFIjcG85IXJxJEpeck1nWmo7VFhnCno/O290TCVTQF96d29PWlg7NHhIJGpfQSZ4
QHFrITdKY3E4TGFpdUd0dHZma2F8TWRzNHJWcEJfKXd8Kys7cUdqNgp6eVRVUkJfRW43YHpPIVQ+
PnQ2PX50b3NyVT53WUBfXlZtOXRlaTZjSj9+ZUkxYVliTGZgYFB2Ynk4LT03dGdoTHgKejNpdkdK
IVczRkAmdytZYlJxblpGK0dgODxjRjR+a3lpV1k/WT9Bb0crTDN7OGJoU1l0UHkxcHEzR315P2Q4
ZFY9CnpRSX10VGR0KXA0XnNiUUlSbSt9d2JubDZYWTE8dU1hZHlQOGEhYDFBLUkodW9Ncm1NQylW
PSoqZlJyaXduVnpPOwp6Wl9ISWFeMTs3dlBnTEptdC1nXzJ3SzR1entCXmxFbX5qNXZha3JPR3B2
ZDwpcFMwRFVQWTUwVEEld1c2WihHQmYKej9IdHdBZ3xpamYpR0E4aU5BTEp9WlI8Rjd4Rkk7Pj9E
emB6Wj5xLW93WD1zeEFKQkduP2d+eWNqQXs+K3pvaU40CnpIa3hBb0lzMXFzaz1gb3Y3ITg1WUtO
PXdJYzV1d2JvYTsoIz45cG57QFcjdjg8RTBUdHF8Jmp6eH4qTTU9WUl9JAp6S2UqPmd1fio4NkJl
KFc9b34lT3N7TEBfUXlCazBGP0N5KVI3WTx7WTtSQkgkbVhXbnkyUUtvRnRKKUNuOGpteUUKek9k
fmV4dSNjcDtXQnMqbSkoP1o5WWc7WilKWXVlYCtDPDdkYFFyfit1ZnkyTj5QP3lWUnhKSjhhYjRN
VDVSdXZnCnp5WWpndEgrMXxhb0hDIWdMYlVWdGx1ekN9MzcoSllyeEEwMDhPdmVVSGF3K3Rpa31Q
Ul90eXc2VyYxPCFRUT57aAp6Q1ZnSlN6Ujt3IWJ6VjJfZEc/Oz1YMypZYXdjS3JTSFBeeFZTQkY7
a0YzRz41OEduLW1sNlgrdGR5YCpWKi1QJlMKej00PnJ+eTF9Pn58TmI7TG08dkkmJnxqYVZPUyUw
aW5qZUNXWTE7ZDVKXkg/PjtDNn1CKkEhaispN3AqOUNUPGgpCnoka0g3VHplazw+dG9aYFcmRHwk
Nm8/PntyT3Q8RD1FQVVAODFia0MrQDZeJG91cFBfTW03V05TPWNrUGFoWE5sJgp6bVQyOHU7UkRJ
elhPUzROIVNEUlVDVlE3QUZ6bX1FaD5lZWIjUlA4bkU7eDU9KiNrVm5VJGI4NzlZdGtieCltdSEK
ei1IKjtaYEtTblQ8ZXYwRztCbnhoY0VHKXRHfF44bGhnRDt3NiZIVilVJjdlQmVCa0xGPFc0dVlF
cERJZ2B7ZU0mCnpNY1FGJGY1NVV0O1BnaUROQntvJXlHeGg4LVRtPl5ITlR2UitQQyRoLSFKYz5Q
TCtjWGA9cVh5Uzc/JXlkbntwSgp6bD1xYUVVIVBlbXskaj1jJikxMUJ6OXMocCh6aT5PcElQMCNf
U0FGUjxXTzlKeCZDR1BlS2Mqbih2dGYhUVZ9dCQKekhxUHBfUSFSMmRYYFB2dkxCeyNOd1JIOEMt
SXZASkVwfFAkeGk2LWpfbUZvVHxMPzBVeUdOPW5FJkJRTC0kUHR1CnpBOCVnIUBnLVQlSXJQNTJy
biVtXmg2TWZaaGRmNVgqMnJ2WDlQSXVaP0M8T09kdHBneT1MWWsmUEtCcCshKWxNXgp6ZT1QT1N1
a3ZGQDIzQm4kMSskP0slal9UKDgjO3RfezVtSzhzUUV3QHBNZV5RemNfRkNqKkliMll7ZnolTzYo
NEMKelMxd3JESldTKSohJn5saUJ2Z1llUjR8Wi1CZW5POSpfeVJpcnhYU2ZaXlpyUmd8OTYoeTVy
NkRNbC1XKEZ+eVhFCnola3ErfENrfipeVjclSFp4PCRjP1JHaHRZVkJqQXRQMVBLJFl4WVViUGpL
RVQlVCk5YHFxTzw4XipDLT9vKCh7IQp6TWpQaUN0WFJTO3FzXzchY1Myb1YyTWpZLUYmWm5aelZK
ZGFqcTFfdCRPamhhS2M1PiEzbjg/ZnhWdWYwbzg5eEQKemomNH04M3VRKmU1dTlRPmR9RFl7RUhf
UEVOWjxNMEpkYVQqJV8kYTlicDw1aCZfSUZ4byh6I1ReZVJoLVc7eFJoCnprNHNfK1N9YFMpaEZf
LTt3YWsmPzMyKCRLPGpCcC1OKioxOF5eQHFtTSR0NnVRJSFDPFg/QDVoIW4lTj82TVU8egp6JkZg
ZmFRVjZVNGZvYChwc29ILSF1Risma0xTfFNWK1oxfmRRTzE9JmhTUTY/VWtuJUE8dzJxXk1QKTVA
YmN1YkYKej4ydm9qNzghIz92PWFrJlQ2VVVXRmVFVC0wNVN8bE9oSTJlRm9kQ24qPSpNMTRAS0Rv
aUZpZTA4PmdDSlhRU0pyCnpta2o3fEpFQik5YFJFZDJqdjUtTEIpeihBd3V1P2EzakJiSyRRTyZe
MHQ2OFh7b3Q/X1RQendkQ2skWChiMD1GPQp6NVUhQmZHQXZoUThDSHk2bVNsUWdhOGxFWEtXWFVu
WmhRUU8oPno3MD48T19NanlCcH11PGJ+P0psTlFHazJsO0EKekpLYDZlTlpXKkUtQWhXI2B1e2Q5
SENjX2M8dDQ4KiNJJUsjOClfb243M0F3fntsaHR7PExLWFNAJEBjUz1XcztMCnplWERfYHErM3Fx
WEpGQH1aWWRzVFFjNXp0MmljdmhEVFRJVT5LOGFwcXZNRn5XR2I2RFRCVCpMRyVBJVcqP2VxMwp6
WVc9TiNuZ0YrYS07XkFtK0dFOHZCMEVLUyh4ZEU3JGRYa1ktSXZrQUE8X0tBcjtmQHpASVBzeEVE
NHFnKXRJNVQKekteaj9LWU9VXjJ2RFY+ckVEYnY7WlkzS1Z0ZUVPbDgmUFZMbiEoMlRKb15Fdy1L
I3dARnE8RFY/KyYtQFdDSjFOCnpRXy0qKnRDfSU/K0RMKlcyNXhCazQ1a20lVWA5KGR5YH07QHp2
O1kxejhOfG85TSlrQndIUTExR2x3PWs1S0Zzbgp6JXNaWXg+ZEAtKHlfM0NxYntoKWBJOGNUdT5F
X3Q9dmc5QDRjRi0wWTtlKF5BV05EMjl7M3B8bzc+Ykk1cntZZWsKemIoUyQ3a1BqNGk0Q2x3REBA
V3ttQGk1VT1NcH1ZQERiQjslcUhZNDdYS2RZMmxDam5JQm9TcjQhdG1Fc15neTJ8CnotfDhgU1d+
KD5DTmdvXlUhQ19UQilOdjhvcCVwNylIeTxNYnhudiliXzB9Q3QzMCtUTDEqMld4K25VV2MzSGd4
Zgp6NCUzZndIeHNHU3pgfGJRKigyOUthbiElcjN2YTlgRnBLWEhxRWJwaCtvY2t4RmU+ay11ISRp
K1R5KHlse2RxYmYKemE9bmNkUUJMS1lfMCFuZjhTfSNpPndEcTFhWXh3Q00tejAtd1o+QWU1fjw2
PEpBTTw3KV5TdEwpdXY2IUE5KGRwCnpQXnVnN3JXPk5MU21qeyZTUVJSaGtrdmM5aTV6M2tuTlFf
SXlkbl4qWUVmVm9HMCVAQHp8cEItPDlmSXRDKiEhbAp6QVB+aGdYVz0qKnN1d2lBYX0qQXFmfktt
RSpISXptSzBNblVMPXJCP05KRFkzYGRib0pocUlpNEFDIWp+dCZGN08KeklmIVZZSTt9MjtOU0Z+
SGpaNVY+LUszN1NTeDNhYUZlT1d0PSopeVNSYCVFa24hfn4oYjFYcThoRV45aSNCJU9mCnpoM3k7
MHFfZEZqSU9DX28yPSgmQms4Rm1RMmFYV3NNeEcpSFk3cEdiazU1JVZiSll3dTZrNHZ5RUxNJlFu
ZmI5PQp6RSQ/YjBha3tmKW9TR3IoLXoleH4zZXpZOUZ1dUhtTmxZTzMrX14tUEBISjwyQ3k4P3R2
cU4kZlI5VD1BIShoVzwKeiN5QSUhLVNhQktTJkVaOChXYVdBKEAreWNZUnJLP3FZeXA5XjgpeSQ7
QFkqVW5zbHJeP15FdDwwQj5LekdFTXAkCnpJZE1EfU18O35hK3V9cFpnemhxZTtVSD9rR3gzK1Ap
WD5Kcnl0dF5gJHl5WXE5Rl9lK0FgcjZKYSkjWCE2SWN3WQp6dW9pMm8zMCsyLTwjRiNmNiMkaCNE
YWBuY2YmYmIkJGBEYXx1QU9WZ2s0SF42RnB8NnN1dCZ+d2UlQDEtLTZIKzMKejREWHRQZnkxcTMw
MGFKJD1jU3cmRGwxTzh0JXJZbWd7e2VgVngrcjJUZFBYcldefG5MXlgpOz1zWEtFZ08hMjktCnpJ
Sz1WZCReYTF2VDJlYHspWmJrM1lmJjgrPmp5NTtqQH17NnkrfGI0dC1NfTRyVTJ1dC0kM3leWXE/
U2w/WlIwUAp6eDM9SURgNjUjSWBZdnRJZ0ZYKWFIPiMjZFYjQnM/Qjc8c2gkZDdZJTs7Pmw0dXNC
b3tiKWsjZHd9SWw3NTI5SmsKemE4YWNkNFl4MX0mcUh7PiU1eFlCPTZ3e1QoQnh+O0wlP0RCe2lE
N3ZjeHYoSXdZRWZjJlVmdDYtMD5IKjIzamYmCno1Sj8laitXUCNrJHlmRD5Jc3I3ISpoSnBUO1Jv
Uitqbz41UjcxbW1ZN3BTcVNLcklIdUR6NjVxMkJCM3dsJEtjcwp6M2EkdClQYWwtUDJwWHw+eXhx
KzMyaTA2eEFtYWo1YHhfMTxMTThYJEhhKHxWWHNGfCFeVyNrdykoTW00QnRwMDYKeng8YXlWP15R
LUJYUkpVVyoyTlFFaUNNN2prKEY+a0RLTGY5JGBkb30yPyFlUGtKUCFMJXt8UnQ2Xk9fdGpFYjg/
CnpKdCk7UVZ7fDh0SzlSfE5vQCgpY1BoZ0F0UUd6ZHZ5SE9UWGdDWXprdFQodUR2NEVwQUg0MU98
IyZkR2lIOTl3KAp6cT9DaHNRLWpJbUtYaE94dDFnfnttZWpIfG5KU1lHcmokOVhqRmpGUzJIJj9Z
LVBHXzZ5X2tjXlh2cHpMTkg7cE0KelpBLV5jQkxqZ1hiZntVenolUyNWe1c9TVBRZ3s3WElRenJY
e1FXdT8mfGFiV0Fpbj92U1ZtJEFRe3ZgMllPcFpgCnp6VldvKWl2TVctM0xgQihtRVMkJEYzQjNr
aHw+Qio5Y2ZFMGNSMCU3dzRtRyFKNjI1JWdES3lYYERoPyN7alVDNgp6TWhfZzhHYldxKT40S25V
ckE0Vj9wUWNwI0JkLVMlWCFZSSNTOUNyVTVhNkFgPHdZbVNgTFYrIT9aRG9XJU5oVzUKempLPkR6
WT9obGhmRVAhfiMrIV5tKmMwV09mQ1UxWGZPeSllZkJ6PEV4I2E9emchLTRKcnJnPz5LeFdiI1I+
eGUwCnpEM0ExbFFiUGl4blBYbS00UkIyb3VlSUZCNjhJI3Q1P2lHYVc9RzhGWnFGP2lybFNTIWY7
N34qI3Rud3FtNFo5Kwp6YDZ1PCteJVRvSDxuKF9RLSQpN3I7X05DfnA5bjxqM0VBI2BrVVdOITkm
UjslJityI3lTSnI/LW5QWS1jNTR5WkkKenZpV1k5V3duc1cwJTdmdV5xclNkKiFoMFprQDw8LSp6
dHR1UikxYkxSbiZxV2EmRzk9Q1VyczUpVVowezxZcVh8CnpIWnlZMT1fR21nTVlDc1I7a209bXlq
Myh6KClnZS1zS3ZqZWRYdlRgN2AwZClpfnJibXZTRkwjTX1MaUlPNGd8Ywp6bXF7OFphOXVNWmpI
UVVtPD56MGp2R0Ujd2FIXmpmbjFJQXAwbGJFOWE1aT9ueWdATTxoZiNlNS19cTA3O0slSjIKejg4
fG1pN0hOdGZOLWAhUz5CXit9JHkqOF4tJWxSYygzb197az1KNjBWbnh5MXtlNTNKRHwqbGV4IUxO
JEBRMXxWCnpgYUdAUlYwPiRtQ2teNy1hI0REQyooM3EoVTNyVz1gOHA/dmp+V19+VE5BQE43YlRF
b3FUTWIybHF9dDBRJH5JZQp6VXdjMGhjJF5HQkV5Iz00al49cmp3ViswKjVoQWMhRHAkTkxmIVhD
XjE2PlhePUVFJnw3bDxWZUFjPWFRej9PdjUKenw3PyNnJHcrSVkydXgtb3UlfGhoI0o1cWdafUBO
K2hyNVMzOStMdFQ8biRWIXF5ZTFmRkZHPylgRE4xTUdeMWxJCno5UHczMmVZTFYxO0Z5fnVuT2x1
QjxxZTlxVTc4MyUtZkAral56PllKOG5WKyk4YypZeykpYE0zbmR4Q0g0KX49WQp6KF97PilTczc/
SHl6Uyg7U2hKdjQlPUF4bW8maTJMWmp+X2I2T0oxVVJqbCV1QGpBbUZtcTwqZGluaVFfZkNRdUMK
eiZtTiUjcWxMc2twMUtlYTRLN2dAXiY/fF9gazd2QCVyKlVxcmVYJWllc1RJYG44VzwqdEZqTD5a
Y3VueD5rNmpqCno0OSQhK0Fwcj54ZiYmMkBNSDNITDtwO2ttS21tbmtaY3JTSlBIVk5tSUhFbEpN
V2xaNzMwKWg+b3tfR0xEOT1jegp6Ql5AUFdHUDhoNSNtUV5VQ1hCOGxTLSEwXiFTPFV0S00rdClN
NFpkblFPdD8xX1NpMFVyTzMtYkhyRCpNZSQ5Q14KejhCSnZnKElfT2U5SDIoaWRPUiEpQU1lTDhz
bCY5fDk8Kj1wJit+ZTVKS2FSKTcmfWlQPF9QZU9TPktseEB2TDNnCnpETS1xWVJHejJ3JHROT0ch
SUhfKyp1dEN8OF5uPytTSCZ4Zno2XysmcVN2JEwkOTw3UCNJRD4oTzcqWlBoR3tuJQp6JU1KVldN
Kj4qPUFRSkhRbFg9JXV1bS0lKkFmNTk8QHcxeWJaTD54eHBpNzElPDQtPXtGej08fmxZTns4KUA1
KUYKelhzdTwjVH1kMVY/YExjQmJWYjtLQUJhJlJpelBhNnpVWWA5MVd3ZTBMSkctYSFxdj9CezQ9
I2k2cGttQjZZRSpvCnpsY3BhVihPUTAhVTRmZ0lYPVZ5R3NlbHhYV09BNTBncXIhSzZfKHVEbT9L
UDU1KFhPQ3Z5cVNHKzNqWVRITSszPwp6TX5MZVVFeWhtT3ZJSUNOSSV9LUc5ez9qcl4mPl9hckFu
cW9xMVVRamgwTDY4RDNXVH5xQCE9PypJQEk+ZkljYmwKenltfCo2NW1LJnIlMUtxJURCWVhDaEBW
VkBhcWB2bEkmT2l3MkpqblAxNUlsKz8xektmcGI8dU5vcncmV08xWEtwCnoxZT1VdVEmbEJib3dh
ZFFUI14wfU1SLUYmd0libmMqQUJxdGtRUnNKMlIxSXxqfVVnSEJzaGl7JURwfn5xSENzMQp6Y0pe
OTxSKiZtUmAzJDZCXl5pTzBPSi1sSDBjPm5MNkViI1ZSbiM9eUZuRk1EcjwqKGpsd35xJUUoJDFT
YjNMI1oKenc2N0k4Ml8qcHFBPDdXQTxfUjdvcCFZb2olak1BQWEtVUEwYDNfZjYpTmotM0hIT3s5
bGhkaEUtKHJ+fXZkJn4wCnplTGtMYmFxY3YtUSRFPG1fU012PVdJYH4kVC0xWUVuTnZlO21RNk9i
NWxTJHdeYVE2aD1waDxPbEopbzg5TDhuWQp6c1lmeys/KUlyYSE+T1d0dWg+fkdud2w0QTNmU1ZZ
Qmk9WlRLYnZyYHErNHFtPyVjWVZ2VH0+WFAyaDJjbjRXaXIKelByMkhlNz02cGVOYWJWTHY9eFl+
JlJqbzFGZGd4K2FaQ25nJkpVPylAX1YpUSZUa24+SE8qciZVcGl6dmtnRStxCnpld0NSbyVLWndp
PkM3N3RwQFIoNE9ZQGVWeW5uTVY7RmBiTDxXU1R8aDczdGVaRG5lMD5RSGRaYDI1Kz1pMH4+Pgp6
VHUpQkpydnU1STVHbmdebjIyV2RoTCk0K2BrKCtzelRFXkBzUmxye24qOz04YzBnQnNOQjIkJW9L
dz5gezlyNmgKekpkPW4rOF4rJTIzRjcpfEBaZlEjIXdnZmRjO1hGSFVnVCQmcnM2V2pubVRLJlBa
JGI4P04pJmdrJllqKmw+djE0Cnple2EqZE9FZD9AKH08QllyTU1OQ3E8UTg8bDsrbUA5UkZRMEQo
Mno9QH1kZG1uMlpuY2FtTGh7M1c4dlkyTl5odwp6KzZaMWtNKHhea1l6b0FDUj1QdXpRZ059elJW
RDwpYTZPfDRldihAKjBsPD8lJU1Jel4ofFE/I0pVPTh3KXlYVD8KenJ9MXF7V0Q2UE5RfVNjVWdv
WlhJeXNYcldIK2grJSZEY1BtNGl4Vj9RcG5ybilGRndJU1ZPVDd8R3Z7TW9WS2RBCnp2Vkd9N28w
aT9nNzJhaU9kXkVzenBzdXp7PHdjPXxOUXNpZUB+eGQtZn1uPilyeDlFcll6aFo7bypXWTczeW41
RQp6UnF4NzA8M2d+bW5iPz1FaW5uR0A8ek0yQTVfUmtqbTdHbWgwUmpaPDNZOSNsQ0NQPFEhNXBk
MHw5TDNwI2BCcUoKekNkMGVCQ25PXj1Gb2VDSEMjVXYtZDhkanc5TCphaG5rV3lzJSleYGdhWE4+
WmhCYVA9Yil0ektTJEBiWVhxMGdvCnp5ZlZpLXZmTzlHYjdYWjdUMD9ifTApcndMO2tANn5Kd1Ff
YjtyTFNncnYkd2k3T1UoRShiUkQtc08xYztldXJVcQp6O0JTPkM/PjItcGhkQlBQb14zUyUyYT8r
M1ZjUClYVkV3UnxuYl45SERMN3EhP0Y4Q3hRKDVxeiZyZEs/Pn0mPnAKekk8NEtKd34hZ2crRDlv
a3RQP2NedEJsUz52P0tKNWBgRHwhYl95PDtSPjFrentjdjRYZ2UydCVDdjttdEJncklsCnpHOGxW
eFd4MUBGOyVnfklnaDFLRU4kekNsdGtySkcmYV87JD0mYkt1OUc1dyMjZEB3S3IoQ2B7QH5jKUx5
YFZCbAp6cHIyeWpMT2xDdUxvMUJkUT5jeEEkKVRGTm9rSnlGRURhdCt3YjZvJUY+dmhnYVhReHBo
JT1rdVFXT2dLREQ+fDkKelp9WXR+Yk5qSSlrOD5LM2F1QmFTaCEofF8oYEA2OD1ESGwmYzhzdFZ6
bWQ9KldASldaNHVCdWxST2Q9SF9jSX5XCnp0cGdnT2w0RHJKb0oyRn1gSGRBbCpfRHBGJmNjRXFm
Wn5DZHg9KmdiKVFgelRBcnM5Rj0hckJ7bigpNT1NMUdBVAp6cSNRTkRXIVVJVT0pQD03LXRQSjhJ
JTs/ZTArS3k3KX0oM3gkXkBsR090MTEtbUJFcT5GUUh2bXQqeSg2aSlvTz0KemBsSl5SWC1oTFpR
cSZTVUY8c3B5QSNLO1dEJl5OPT05cmEyNUphJHhSajx8OzBwZ1ZqSnpWOyMtXi1wTDVjPyRkCnp1
NmU4XjRQOD1lbVNWUDJYQl5pVXYtKWRyT1U3fD4oczUqRDNrVD5Oazd9KilFYChzOTclRUFBKm92
UVFpeG07Rwp6e2RoLTs4TC1OcE4zXkp4U3QxKWFVZVB6eG4ocl57X2VSUGlTU0NIXjFRbHU7QX4+
VTFOcjFyVUd6ZjZTZEx6a0sKemhAfmxXYnYydFBjI3B4ekRLai1Qdz9QP3Z1Nl49JVN+ZExHZD8o
MyFSVmB9KlpsITZHZyk/MztZfSk3IVVKQDZPCnpiZ29vQit9bVduZ1NFP1pLZVhqRU9TKl50cjhG
KGFuKzA1KWRGN09TJj54clhhP3RTQTlWPXIzXlN9b1VgJEllfAp6cXg5a2NDemtyV1RjP0RSQjhf
KCQrRU5+K0QzMj5rc20yTUtqRWF2ejEtfkJWQ1g1eUIzdyNEJWdOIW9IR2Y7dmkKelpFY3gtRnFC
bjcraTVHcEs2eTJzUF5abksqYVI5XlZaZH0pKD5qM2QxdClNTXFqK3l0cHc0I0ZTQk17WlZVTk56
CnpkbX1UZUxBO31aSGB5Wn4/XjE4MTw/IykjeV9URkFybkBLcmtqWkheUTtaR3o7SXhhVF9tT15D
LU9ScEw0cnp4Ugp6I2txazgzbi0/JjB+RklLJmFqTC1CdGYkJWNTNkI1Q2dEYEJ2cUZMKCpPYWwz
akwjI3liJU42QC1mI0xqUTx7QTEKek13aTVJSW5eI18qIzJQU25wYXVXUFM7R3VYcUl1VCN6M3Eh
Q0lBfDlxN21wWW1mMTVXcypZeHZ8SktlQjNFe2pxCno4RT9LJUJ9OTRTb2NDJmlySz9wUEZhK2tN
T1IoXj9hKldpKUpCcyUwUShCY0EraXZDXzRkSThQbH0pVV5pfFR9Xgp6eSFjR2tzM1VXWSVaXmxE
aXNhVUo/Z1N6PWN+UTt5JUlEfiUhc01OSXkqMz50enVxZDEkWChQSVE4KndISkI1dEsKei1zU2d2
NSlHKnNIMjVMTVh2R2FsR30+V0VZTzgldXdxTClBTHpkN0FYailBVTNBWmclPVV2ZEpBSmxVTl84
MWM0Cno1c2l7WGEpblpJTS1qaFNJKSgwQVlxPXFwR21XcTAzWT9hcShudFI1Y25FJXMoPm0xWjtz
b31yZylgfWpvbFBFUQp6dnVhSiRNfSgyYmJgJTFhbT1obiFkdV9kbDRERjAhJClLaVMtN1VxcGlw
ZjhYMDxhRigrXkZGNGhTaHdxJHt3TDwKejB3UjxKOXJDTyEtTnlQNy1YUUgqe05eRyRxTFY9VUJU
fjd+ajJhTzVoJTBsZUV2cF8tUWd2KmpxWHZpNVJrZzhiCnpJRitgXiUtdlgpVktAVEJOeHlhM2hB
NVJkRkxGdzt7eFhWZ09rUmVXanRoUzZ1ISF8NGZYQzVDYHZETUZtRXpLewp6az4jWCFNZClPR147
YTk+d1lCPlV2cm0tcXI9am1YejZ3fXorMCZjaWAzZ3w8JWJ3TCsmY2hjQVpQam51Y1l3R3IKejZe
b3tOOyQ/NWJRZ2V6diQ7P3tRaDlnflIqJW9kek5ZYnYmWXhCd1RpQ3JwV2QjPXE8TWhZZEpAVm0r
Kno+alc+Cno4YyZzd0JXbnAqQnlgeXlwN0xlRStnWnh8TzlGLWN3UHBFc2ZRVEVfMyRMfVZ0dUok
Yi1pM0dteSFGM01fSUMkUQp6U1RyeGJmQnlZRGV8eW9aeEJUTEYhdEpjS00pcUhXZGltUilUZHV7
ZXReQ3RQY2E3WUFANnd7WEV0czZPfEMjbVMKenh7b2lkM3luK3B1ZFJLNUBzZ1ZaTFZuelRPIVYm
I0okQ3pJYU0hSXIqWjh+M3tjIW52eU5eWnNoVypGIXpQeDlWCnpgQHhnX2A/bWpRZyRzLU1eT3w1
R0dKbURTTGVCaG8jMT5BfFUpTl5+SVApaGdGQ2clcmd0ZnA7ZjA2UzRKPVUmcwp6RWRJJk8mM3BD
bHkjTmQ0IzZxRjxTQjFHeSticTtKM3JiPD4+SURYMFZESlVxP1kyTSUzdntxUjJNY3VZdz0xfEgK
ej0+RT9OeCY7eHBBbVNFOCtgXkBYJVlqXzVWSGElSjF2KiV1ZzlTUVJwbzBaRVNtPXZiPW90QU8y
XlpRfDdUUS05Cm9UQW1pdiFRY0lDfEktelo2WDFEZmFtamxgZX1lMDhEQk0yWEFIVDAqJnh0R2w0
PDd8ZWBUemdgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvcmVtb3ZlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YThiNDZlMjFkOGY1MTQwNWE3YzE5NGQyODQwZmFjYTA5MDZiNDVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXIt
cmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4IFtiZ2NvbG9yPSMwMDgwMDBd
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDY5MHgxOAorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDY5MDogIlRoaXMgcGFyYWdyYXBoIHN0YXJ0cyB3
aXRoIGEgZmlsdGVyLCB3aGljaCB3aWxsIGJlIHJlbW92ZWQuIE9uY2UgcmVtb3ZlZCwgaXQgc2hv
dWxkIGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg1MmEz
Y2U2MzI1NTY5MDY4NTcyMjk2MGEwOGEyMGE5ZmQ2YjlkOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CisgICAgc2V0VGltZW91dChmdW5jdGlv
biAoKSB7CisgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIpOwor
ICAgICAgICBlbC5jbGFzc05hbWUgPSAiIjsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwg
MCk7CisgICAgfSwgMCk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiB7Cisg
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorLmZpbHRlcmVkIHsKKyAgLXdlYmtpdC1maWx0
ZXI6IGh1ZS1yb3RhdGUoMTgwZGVnKTsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDE2Niwg
MTY2KTsKK30KKzwvc3R5bGU+Cis8ZGl2IHN0eWxlPSJmaWx0ZXJlZCI+CisgIFRoaXMgcGFyYWdy
YXBoIHN0YXJ0cyB3aXRoIGEgZmlsdGVyLCB3aGljaCB3aWxsIGJlIHJlbW92ZWQuIE9uY2UgcmVt
b3ZlZCwgaXQgc2hvdWxkIGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLgorPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJpbmctZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVy
aW5nLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmQ0NWJhZTY2NzE2NzkxMGNjOWEzOWZlODE5
YjMzNzhmMjJhMzAyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNzExMAp6Y21lSFBgQ0Yxeytx
VHRkYiRWQGJPaDs+KXZjXyN2bFQ1fFJYPzQlYVQqPSVyTWEqM2hzZDM2RkVobHFINXY/ckUKejF1
LWBnMVMoVFkxYWJvdjE8akNATytgVFYmdH5SKHp4T1pyal5qTkpmOHNjOXA2N1pWPykkdlk+cFU7
Nj1lZ3RRCnplcm42Y29nMX5adzY+ZiV7cCZkYHR1PyF9dntxbUdYOHJPPU56IWt6JU8zfDRQRnpY
fHhmJkp7NmB1JiFJKFJWbgp6JH1pIUV0e2dyYllIZWpfMlJJeUo2PUd7K1YtcHJ+Q14tMUE/Y3RW
UztEK1RXTXY+MFdvQGJuJGNYYEdeIVh1LUAKenc2cyFJLTgjPlQ4dH5rJTl0fWVfT2xCWDYqdFAr
OV4rOE9pY1k8P2lZbV5VYD5eRXpSKj9rJk8yQFdYZmBpWTs+CnpwZ29jZUludFJ0dU1MIUdaeXcy
bks9WmJBWjRYfG1ge1BHZiQmWEVDMnBjeU8/PUB7dzk3YHMhR3ZSeT1kTXZ4ewp6SD9aQU9YWnI8
amtJdUtzY2J+Vmo3RkdvckktNHI1eEBGKHFhZHpMU3FkRWhQc2xxMUZSLT4teTFPYkZxc30zMHwK
ekRjSFBpJlR0bll8SW9XMUN3KDdCMWBIPFhQU0VaTWtwfmFHQ0EtRjdzIz8zaklOfnJRPG1QMH55
Ki04REhpd1J1CnpZPFIyUGRIamdXdER9Yj5NTld2ZTN7ITR5fDdeMGFJP3AyOHE0dlolT0xwanEj
PzZ2QjxNXy00UHtXSi04M2M7Kwp6P0xCYWJ6SSRLI1U4Yj1lRUgtQ2FZdl8jPT16SUxKU0lGMil3
bz9ee0dMRG1mc143S2Amay1hPEtIYFUhNiF7K2IKeipJdlYpK09NM2l3fm1nUy1uOGFVJEBCbiEo
S0R+MSs9Z2dsP0pKdCVkbHN6YTlfJG9MVHV2QHhAcFEoNmh1VHd6CnpmSz4tKkBTfCRIUjIrQWdv
dGlodFo4b3wkd0NKQ0E8UlhMZG5Pd1EyPDZXfHMpMCklQWY0Z3JPeF97IXFAeSk+ewp6QUA2RklU
ekJhSWM9bE87V1d4RT4jPXx1R3tTT1FJaE5uX0tmVlJGMCs5Q0ZEZD9sR3NsI1RERC0qNWwhUnd0
JW4KeipvKXRDYXxZWH1UVmVvRDQxUWhfR1lNIzhCTWlXYG80KVo8LSh8bCU5VGU4JUB0WVN0KFJU
Vno/Oz5VNUNhUDd3CnpVfmtnREVeV3J2JT5eeX05S0Yld21mcVZVO14yRDw2U2ErVzxHTEJKdyM9
S3sjb09FTytScUpyTVo3Q00tdTFvZwp6Jng2aT5OV3hFVXJGWlFYTW07eH50V1ctcEpOK3JabENF
OGI+a1hXZ3d8I0BNaH0oMWp0KUJRcWB0Q1ZgSDMxMDEKeks+aTQ+Vmh7I0d4ZktXZnhWVjdfKnJ6
WWtAXmN2YDYzNj5CeTg0WVQyYEA3KWVxLUFGSDAwWFpyVVZiSUhHOUdDCnpNV1NeTmgxLTdMbD5T
RyhgSkxSX0Q/V2RFbX5NbT1ad0BOamQ8SzFiI0c9N0ltJXBhZm4tKH03MzV2SDl7VHdARQp6cHo3
ZFMwNH1UIyh0cTYtWj12X3RJYFEqe2hWJnBhP3NwN2hoY2U4SzJsazgqbHB7RDhuKz8ySiVTZj5C
SChHXyQKenNVMGUoKShua3ZLRXBTcVI0Q1YxQDdZTHVgdmhkQXJMe316JSYqN0pyPng/U3J7PEpP
UTtwfSFRJl52TktsdCVQCno7SW0pUDZ6PXR9TGhaOU08USQpUjlDO2FJPVZAfnlkbCE4Qm1Pb2Rr
cyNIfVAlK2I1Yno4JUw5K2FwVkFIfmRUUQp6akpOVXBVaklDRXVmaTlaUGsrNjtVQn5PJHsmUFBT
YVRkTV5rP2dwdmpeZ0JgQXtXUSZXel9GITZoVXUwUlZaXjEKelpzcGpFRDctQ3QtMEgqSWJ7KU47
d1FCWCtaQCU0aWJZam85a0hwJnNKJTlWKGZ2P35FdXhpITJgflA+JGpufTk0Cno/WWZhM0k9Snlh
JmZJbGxTbz4+JGU8Q2Z0VSVVM3QrI0o4JWV+MH5SYm5VbF98QlB4fWRfIXlEZnRUczh8R3hOKgp6
KlFMUjBLfXI7OFhWUH4/eThuKX4+KihWPmI1JXJqN1YyTD90MExMZ2NtSCMqVShkNVhASnEkMig4
Yj1YY0IhOFMKelV5SlhSZVEkMkUpeU95e3dRSk11VnNWTTlTZFBhS2dJTUxqdl9gYGU/b3FxPVB0
aHwtaypyVXxvfStab1labnY4CnpWfXpxbkRCfHBWd3deX3l1Sip+d3hRRl5VZnRVJE5MI0Y4Zz4h
ZSZmZmhrcjdZNnclWiRxQmAkODN8a3Zqbn5vYQp6M082bmpsdDNZWFhiPXhpNU49cmg8KEg/fGc9
LVhQKkJDc2FvST95XkV7U3xkWU5VZDYoPz9wcyQ+MDw+aWxPTWoKejJqaEZmN3o1fTZKcT4rUlNZ
SiZpYD9KRU5obyNLMkVLMUdoNmQoWmcwXkEzNCZ9Y3d3aERzYksmNWZDYnJuVlhyCno2I2RMNjtw
NitmQGZsSnVual89MGhXK21VO05hek1lOGVrQXVGfnRkdi00elkjPyVte1I3Vkk1QVZ9PzUyY1R1
Qwp6UmIjM3RyK3wxTk1sdkpsPSQwNm5RPFgpSzB2SlAqanwwTV9BRm1xQCVZJFRaJTN+fW5tRm9C
fllCc0s/WlVtNzMKejlSfEhLNFZVNWJpbTdtT3N1Q25fPUJtPXJYc0VlOU1WT1dwQSlBSXx3M3Ix
RVVldlg3RUFedmY8My1YIXcyRVV7CnpXSSpadElTUUNXJF5sQyYjeSZRezx8X2lTe2d4NTZnZnBB
VmJyTl5kQikxOUxwPXpaYWB2WTckNUpxfDBoVE9zKgp6UUohS2AremZndWh7fDYlaWV6e0xyV0Ja
M1F3Uk4yLXh3OytxZ35OYWs1I2I4V3x+bSs0KyljNGs5eTs0SDIlUk0KelpaYj1maElDMyFZaT9L
U1NyJUM7dDNkbk53Kyh0dzw/Uil7QVJ2KDwzcWpfWUxPe01UQEM0X1BgNChfZFFMTEpHCnpEe2Mt
WT9IU2RrMSolNl9VRGhmWmEyJUYwQX56dHBOJFU9cmw2blhWOXZfbWomVmBlNFBZbHlUO0JETUtU
K2VPZQp6d2tsX3ZBOD1lZVljWVBkak1LbkdPWFhPNC1sUClnIU14Q19Wbjxtc1hSI2kybVpwUmUm
ND1ndW1QdHQ0IV9sQzIKel9iX25iU0VRJHt5PjBZYyVlKnpoQX1oQ3lrd2dkLU88PzF1UCRZV31o
Zj0/cmVmdGZmKUViaUgrWW1pRGdsSjJkCnpwRG9gYUtTTjVTbWc5YzthdUVoK3JsfF4jenlLSEYh
JnY8RU5tIzMwWnlrbWZpZV9POGYhcl5zZnBpeDNvKHRlYAp6dDdkcShaNn5sfjtMfWp7U3omMWV4
b3BeXjFQbTE2U1oybG9KRjZzfHpFYiM2eXBAWml2ZDV6IWdgKjZ7dnFFP3oKenJxblUmcUNScVBP
SU4qM3ZSWCtnXzchejJEP3tsNnEpO2oxZlNLQGF0PmoxYEF2Tz4xa3B5IyZOTjx+S0teQzd3Cno4
Z1pqKTloQC0mMmF0X1k5ZVdsPWRybjQ8KjlueiNDKThrQDs/SVBgP1JOQzl5WV48KGNpK281ek9V
SD16fGJCIQp6TXFLbnc8aClBXnI8PWA+Zj9eSXBMQm9OWG1ZPjx4QVZxKzAhb2J0R014JElNTVRG
fmw7dis0cCU5eDVyZihlUSUKekYhQVRYVnRLU3xyWkpneGJEXzx9Tm9YLV9jejF5IVAwSF5DU1h5
I1VjQChMckxTZU1AQSN2X2ZXWkIqcmNXdmZqCnomLSgmSkx6JXF+clV+UClrUEV5fWh6MTEjaHM3
QnE7eFM2JjwoVz91ciY2P28+YTJ7MVIpP2FKPnhFKGpfej85TQp6aTI5K2hYeCUxRztlKlVRVlUp
TGFWS1oyRVNZckdvVXNaU1Yma1JLR0Q1NH5Ad31kMXxqQENROWU+eUA1WkFXbGgKenohaCFqJTBh
YH5tej9LRkJtfD16YVM0LSpgTGdTJldBUV8hLURwPCZfJmd1ZV5NPFpkKmYmK2RVWWVYQF9nTW5I
CnpQSUAzTUFRPlQwSkZON3lLMSVWe2dnQlN0bT1NWi1Fa2p7Tko8Ym8tcW1teks4Yn48JGMmUU1o
MH0jU3lGcF9DRwp6YFQ3IUMtQzVYfSgpcEFVOUM9RCZSSEtPREpQM31UJi1ZT0EhbHtVRmxGOTJD
O2JXflY4fCMhN0hJc3JNSn5uaHIKemN4RCFXWkUjcU8mbiphN2taVmlQPWArdmNzMnFXJTBrRypN
NHxZOHttNTt7YzQ8KTBgYnVAMSlWMlZmWExOTTNCCnpXPWUmfGA/bzZKV1FQZ3Z3eV81XnlsTSlK
SmVkc0tQdF4jVCpiaEt5P1BLWX1sNzhDP1d+V1pnMDJEdjFtPktnaQp6M3dqd2xwfC1rOylOVVA4
eXBCbERVcXtqXzNJa1owQlolXkpVI3NMWmMhKDtScEZDR2ZzaUBIRkRSaEVZXldlZGQKelpxN0BQ
ST5FUDkoQipDbGhTfGRLdkh+OXg/XllBKGlLQjVMQkY1aj5SPCkkXio9RVI0MWdCMnM1YDFYVWUq
UTdBCnoma19udWtsPFF+QF4jP0RBWGNebUJZTm0tR0BZLWg9a20jUV8zNFhOWVk8RmE3fkJgOERP
bmhTdDh8ZWx1d3R8cAp6aTU1K2g0Xih0aEAtd3J4Q0pgV0lzbjk3ZGRkUyh1bUlmYSkrN0I0TnBi
NiVRZWpvMnwwVGt8bXtCUXVgcGdIVFMKem5NMVBZTDlvVyZLcjJsOVZ6KkB1eFFnJmJYMEgqKzhi
OTQ8QmwmZkJJNG82VllNRT8tYUQqbX1oPGgwOSpRUVdYCnp6dTJfcl85Py1FYyllY3o2eEgtZWRt
O3tIN1MjVTJWZSFAfVFhND12cHBsfnU/Y3YkUV9xOzkwQ1l7RnNxV1E9Wgp6R3xnciExN2Y/QmA8
TSVXdFRoVGY9cXFkbUZWPEpzNFRlbHJidTtQbkFON0V+TW9aY3sxeCEwQkdra3l9RmJfTCUKekFq
O2BGSDEjUVAqRUo/JVBIRjdtVzMqSjlUVTRjSE42WkBmPFVeRGdiT04pTk5yZ2A0ejRUZXZnPC1U
WmdWaH10CnojXns2VTc3UWt2VzRTY3w4anFNKG9ye2BYR3ZWZngydjEkZyZkdSt1QWFqa3FRQDRi
K0ZBVVJ6YUxsPWIoT3NEbQp6I0JAUGhtND1KeURZP2Z6Vng3TD0xTjZTbmB7NGpwRFhwQDxNUiNs
YGh7VWQydmRFRHpTVlAtWWNFNVdwUHgrViUKenVOK1czN1BwWEorMnVnUSZRWVdYNUI0REVgcG5v
fXt5ekVOOEMqPHcrdWZqX1hvKkw7T1R9R080PjkyaV5LSSVICnpYO0V1cGVFX2s+YTN1S3w0LVNV
LVVTZEl7R1MqVFNhJk5SXmxzbn16cWV6cnkrdU04ZUo0aF5uN2tZfSU1IyRXYAp6YzxQMXRPWFhD
aDFWQWQkaFZhTUFHbjZKcWBfYW5zQXtQO2BvSF82VzxGcEBmWjloMGVoJWlZbjg5NDhAVl5GI3wK
emgock1CQlc4SG5jKVl5cURgU1VXeXhnX3NlYVRLPjREKGZHRlIxbCM5a1VzMElPM0dfIWNBbjlj
TEx5SG4yeyp4CnpaSHMkbWJiRyk3SChGfHxldmZCZ1FHdFkhZUc5amM1a2k2RFUzWDg5e2wkVTtA
clkweHNKVVltN3k4VClGMUAtJQp6eVF2NH1MNXBDYFg1T0UrITVHIVlyRTcqd3p+KlNgODB1Qnoz
RSMkO0dybyVYTUUyeSlwTz5MK0owfmFlbE9mRSYKelgkdkUwVmNMa2Yzbl8xfVNpZFY8dWppQFVP
ITYwRy0wOyZqQDF1R0J3SG9eYGFgMjlhO3V1RVBrWkdJVDFScWIzCno/K2tJOEc1cHt+QntaZV9S
SlQ9VXluY2dBMVAlTHlRX0ZxTXN7VGFrdj5ObGM8QkEqekJQfm0mZ0tKT2I8TUF5aAp6UlYqeCkp
KClTVmhGYW5geWZTKjRHeXA1Mk5NbG0mdlRfKz5YN3E1NUhYb29KPG03cHVjalRQJkJucylxXm1M
eFEKej9KP2Z4dDVNaSpPfnxtdHFfUWcmYjNLSzZhZ35nfSpXR3VsdDRkKDtvSmxyaCU4b14jdntA
LT1wenJsbG9PRExjCno1dVl6fFlRdkYwQUFUdXY3U15kUEd+RD9MalheY0ZJciVsbWRISCQ/cilY
b3pGMjFvTEBobUBRYGt4LT44QjZhUgp6a3o0QCEzUUg9fUs1fGw8VFlDVHVHa1RGXnFKIWooKFFW
eDxZVHRiRilfbmZaeExFbnpyPHRmU2ZESFo4K0BPMEIKelhaZmgrISlldnItS1lgaT9HZXt4NUty
KFNee1hzPmx6UV8/KUAzKlI9WGRqT0xefntBYlJUZWFJOUdmcT5na3dMCnotYj1yMjA/M2NoYlNM
KjkoUE8/d0A9cTF3ZEdmSTA4fkttfUUzdlFVVVB4QkBBeG9rcURyPnZMVCQ0YDBibkZlSgp6ZkFa
a21efkpqOyNSelRwTypgbWBJcHdvIS1xNSZvSThUUSs0Ni1lNyR1Y3ppbk8jfSRBdWdHZmxyKH4p
alF3ZXMKem85NHFudmMlVjd8MT9CJUdSZHwrcGtxUmE8djdnd2lCO2N7WFdyWHFrQERtZEhGbUNP
eVlZK3hLM24zITRCQTBeCnpPKXNycTVHYjN1UDdmfiRmNilYTkMwe1RkfEdJK3d3RCshfUMhNkNE
dGVZLVg+cUw0NSk9Z2FSSzYpQjlsI1ZOJgp6dj0kSXFoRF9CbGxkRkk/QTxFYGklRkJqP2JrPUZr
aEZrT0g5QEVeTGU0JCZEUkx6WTdqeT5pbHg3eVdSe1F4JVkKenYxaFJePSMyWWNVXjF7NmhlYzZ0
ViZTTjVNUXhoP3hoa29nb1hNJmxeSnp4MCNUdXl9UzlsQ29KJEg5T0cpKjsrCnpTRn5SbGdGVDtA
WmF3N1dwRTErV3NoYyhYJj5BcjRnSXp4c1ZLalFaIU9SYUhIaGY5NWJtQEArT1g4MWl6ZmhRQwp6
YWlDbSphZEsyd2tVJit9dG9BNV52ZE4zbVBMakV1XkgtcnlLWCRuYnc1cXNncj9JLXpxJGtyIWFp
XzVzeEpmTiQKekRkWCRfUiY1XmRPVDFaOHAwa15EPDdhfmQkdW5laHc3TEU0OGlKZUNiJiV1WWx+
MWJ1blk4e1NSano2PGxsXz9+CnoyYmY9YkM3YSsmP1dxcDdYbHlmYnczUUNVRjxZY1Q4N0xNODcx
cWNFR2hXZmVaZXRtfEs1cjItUSUqeFJ3ckJXVgp6bHhqR1okZG4xLWIlZEh6KzR2V2szV0pVQE1t
PnhqeS12RXs0LW1ndXFwUn4waHBgekZXZzRmdEN3MkxwY1lxVWUKemEmcSRmOV9uVWduWVY/RjN9
Mnc9KUYqYkBWaEw/VmNwYiNOcVgjcFAkeX5ULTdxM2o8enw2PV5OXiYqJFdTfFFuCnpKP1JwWDxX
bTw+bkZpYD5Fbz4hV3F1aXpHcUhDYnw2M2tWZV5xT2FSMVEhP15EO3pkYHBMdU9PbTM4fnZ0WXs1
WQp6R2NRR0JkKE9Ne1khKldDbzNLV1RFMDhVJHVUSlhxO0pVWX5QbThvU0EpS3paJSROdSpvbiNQ
bzJJdExhSnZqdCYKeilyaSpoUWFXcDVJbjxwKjtfbWljN0xFWnl2Zjg1TVdIdFNTKCoxZlhqXkRy
cUZ4cGtzeFNyeVdzLUN2QT0jUlBUCnooY0c0cHhNNHtlV0RHQjFsSXEyWikpclM5NHMxWmo1PTxk
WnR6MmBJdXwtM0t6dkpmRzRMPXNTbGpyQmloLXtQaQp6bEcocDAya0hpbjB0SytGMllENlUtQTtT
ITZ1MFQ9MVB6KVc4WnFXaU5WUm0wemdCazckTyh5RUpqTDZBTXlBLU4Kek9NZEVqPzx4ZnI+JDQ+
OSE5Tkl2bm01KkFVe3dsdC1rWHVyZ3w9MkZTfHhVJjhSXlNoYSlSTUVZUWUzeTh5QV5hCnpzXih1
JHxJKihJRVVLQGVAJi1IbmJCOCtveUZKTHo+QEZRaClHfWpiWV5QUEpYSVEyUjVZcyEhdV87Nyg0
VDwpKQp6RXVNcjQ/eypHQyFxWSYhQHFnVDErRz5eWWh0MHptTVh3dnxrUGQjdnpHQXh7PnxvRElR
RTxJMCRePTVqTSRicSEKemQ/ckVRM2NGUiY3NzA3b0I3XlF5MWRSPX1KKEVSQzd5Pi1YdGZxWHk+
V2pfNzxoIU9nQDxDPjsoMEBGMllVKUZXCnppOU51c1MpfVMkN0JGRkd5IVhrSXJARGEwVFdPSUBQ
JUppVE9HaURDP2MlZ3cjQktVTE4pWUhAO3NjIVooKVRIPwp6VD1vUUFuS1dqQVpFc3poeVJAMXcy
amh8VWM2TUp5Z1d9SHtPKHh4MjRfczNseTxlKF5RcGktd3kpc2x0YEViTlYKekdoZVUhTTNDe3NB
aXhSRy0zLXVrbHROa0R3Zih4PDkpJipZUG80Y3JAU1cqRj96aytONCZUP3J3QUYtcmdOdmx+Cnpj
cFMjd2ghezA3Tl9SU0VTejg0bDU/VndwR0E+Q3dOcjtDMD5KJXMpY3U3QjJmXzdTQkF4TCpKYnJu
Z1JvKzVSOAp6YyZKJUUoKFlnfDE1OGk5YzVlOT1sV1Z8NFV4Zz5eYnI5PSM7elNGcTIkMDtJQUA5
NH1CNmllOSUlOyFJYlRNTWcKenZ8RWl8NUhTXyhWUTRxJCE8dWY9YEBUQ0pBRiMtTTB9QSU+QjEk
c35WcjU8QyZ6Z1dTRGxxcihAWDNDe0tyfE03Cno1K0MpKjYpOWwyaVYwN189SFF+bFljJGFCMHVP
eUJmOG9HTXNzflNSb1FxOVlFOG1TUC1oajFfMExoQmNRRih4TAp6aiptblQ9YitTclhfWVArZFpX
WitUfGdSWDcjMSY1NDV1NGopKHRoUDZMdkNgLVBHak88UD5zc04kKSFYZWVCSFUKeiNeUFNXVlYq
UiQ5UlR7PF57PjZILW4tfXxXMG9oQDlIUmFLVWZ3cjdGWGgpVUNiT1hTR0g9YzQoWiZ8aT4/IXA5
CnpBSihAPndRKGNATT19YEVORyUqUHB5aGp1LX1EKjQyYjh5WEE7YHpFbEVKR1pWaWNlS0U9JTBI
WF9fe0wpR0xaMAp6RXstPXxybzUjamRKSmg+T1ZjR3hgMylqeDh5clB3MCtNSkJILUgmZXBOVm9t
ejJQZko0fll4c2khWVNsQHFaTjsKejN+UzsrKihnWUt0KWAqdVg5TV9SUykmNG4+JHhNJUUkRVlM
M0hjREJ1WjV1X0p5bG9NazdjJVVTcWxeTHhUXnxuCnpjOGYrNHIrVSF+PXhJZ0FuRVB7SWoqdHpR
a1QhVldoYC1LdmpDb1d3U2N2Mj5qYjJIRCEoRiVyKD5SWjFYdnp0UAp6KXxraUNXTDNJI0tfNX07
PlpMUD1PITJXMUlSSVRhVXxlUlFNK3IxQGZkcmw3ej82NkdpbjBOTkJoZWBNVVI0NmoKemxKZDUo
UEVDRl5hTFN7QUtYbT1HTnwpVypFdihhdERKPFpGOzEhfUs+OHdFP0tzajhBclBsNG9tOXRVe2t9
Oz5eCnpHbHRVYE4oMk1MX2N0Qz9HaXoyfE4kMlpiKF8pR0ZjVk1xJWY2ek55STJscHB7IVUkfm8h
QTApMFIkZilhbHFGYQp6aiRNQi09SVBXZ2NgSigjJVlhcURyYW1xYitjSClVLXk9Xig2YWp5STtf
RHJzQ0tWQD5CeXZVa3JAMT9FVSowUmkKei1pK042VFJ1VVhuZEZ3WE08PGlJQSQoPEUtYj8/JUk7
WGZ3MkwqQEtIayo4bjxwVEFDMTBWc29jRzIzYEc8a0pHCnpNYiZJKCtmSihfbiRJMyVNUTFseCtp
Rmx9LUhXUGA/Q0U/SUQ7MzNxd2dNd1BJfGhHfmA/T04mYjBmO1leMiEqQAp6S24pSUpMOVd0bTVk
I1UrKTcleXdvaDstbjBxcjlDbCNMQzdrU1hEfHM4JmFlWSVXez0hQWxpQjd7Rys+WV8rXmMKeipD
Jnp7NVRsYSp6c1V8dFR1LUV6I3xXfTReOEliPWYzNlVGNHZ8NlgzX0k5Rmc2ez1RemJwQEUrekVa
Y2w9NCRyCnpuTGJEJE5RJSM3NGB4TzVuOU5xbTU1ZHZUUVBnU2ElVCF+c1QyRTJ7RDlAOzk3ZnNo
TUVLd2MzY0YrTSYwUCYraQp6TE9tVTBgfH5rdkF6PElAb1NzSEpsUEROI3RtdiYzYzNldU9sZiFF
RWs8Jl57JH00ZH5XUjBlKmQ4Rj16YTB8QU8KeilpTGpASVF1bnVkK1VCTERmJFJgYjskI2FQPTEx
XyZNYFUlaDtAVmBVYkRJaDxtO1RLPjBXXm5mQWc0dUxKbjhQCnp3TjxPaEg+V0g3RVh5MnlycEAl
Qm9gVyNlXmlaeXlzRWF3ckdfPzk5Vns/aSQ1bGh2PHMlYmxxI0d2OHgoJk9WQAp6VXk0UVMtVlgh
ZmYjUmVoYXFqcXFhdWpGKWY1KClmR3MrQzVXcHYmU3BGanx6aWhvT1Bga2xhZGJoRzZpPFlfOT0K
ekx1IWE5TSN8PHdWWEA3eCMydyNzTDBGMiFrQUo1cGo1fF4yUFkpVkwlI0FJazVyRiRrMTJ4fUFO
VUt3K1pfaEpACnp7YlF8ayFHZmduQER2SGRKcmUmKEM2N0F+K2p7d1d4cHM/Tnh0P1hJUCs4X1Nv
bT9rNjh7cn1oM15QZWdgan5AKgp6akhTUWhAbT4tTz44ZEc7PkM9YmYjQ19nWEJURVRGKEB7eExF
MjtrSylqVT5kZU80WD8pYzlCXkpSZW1xRjI2TzkKeiRsQHVvTGoxM0ooNFVRYiZKalRJUVNEb2FT
QF54XzkkI2x3Y1FzdGpnJiZAR0UwNVBUYntYUWw8O3A4dVBIRWR2CnptMlEkajhCU1lOenR4emBA
OXRSTUlHMntiUGYhSzIjPVcrSjg2V3sjPXJSSyYqT1ZWPWVnQDFRUDE8PnAyPEMkcwp6Tko8IXRa
Z29QcUpWQkh6PiZHaFgoYHxlciEpYzBieEhVMU8oKFZxTGVKXn5ONGEqTGEyWGpZajYpOS1eV0pS
MG8KentCbjUySnBUe31lYzBgS20oUTRfQTMhIWVsSWIyb15hKGshUGg/TVhjPUhRXm1Wd3Updkhy
czgycD0xKDJRN1YzCnpyZipjeEx1VWc+JWtXa0FDeW5lWFlBd2dDYC0yQUxuKVpQKWQ+QGdZWVlD
dEhnK1J4Pi1tVW5Ra2Y4JjBTXkNTTAp6P1gmej1AOH57VW0lTWxBJWxvVlApb2BSTnQtUGN8LSZY
VE0jNGN2WlZtTjR4RSVqcz5GYlB7JW59dXl3TyZ5TDYKekdAY3lRdUhQK00qUCtZYEVFe25icUU9
Z0hmY3BJU1N5UlhOSVReK2BvP1NLck83T1JUKnNxUHM4eUN2ZWwoPCR4CnpfaFVRcj5oOWZXWHlf
OzFuMDsrYDRne2k3YngyUnIrQX5CNEUmKjg5TmphSykrbURJdCslJGdSYjBsaUAqVnRQaAp6OTdW
aSNXJUBKXiQlMyZ0QTlNenE+azdVcVNDN2xYeUR2R2ZjYHg9YUc1P1JNX01kSk97YSNaZXFjcUZe
c0FxM20Keno1NFg7KnBrMCRAbjY/P1pRak9qY0FlMmlnYTVDTnpILVJReSE7eTxEX35kdyF3TUt5
Nztffn17UG9aQ2U7cG1oCnpkT0YpYFgmR0M2P0ZDckx7M34ranBBTCV1SXZsVEhjTGxwRSpqQDIk
RGBzYHNrRjJvd2lZWiQkV2g8c14jZ3pTYgp6bno5dSF5Q1A7KyNPI1dnVEBrWUBWKW1iPlAqemc7
Ti1GPk48NHI0SVNPTFFkNypASXhSdGh+VUVoO08wSVY9NTIKbURAfEh8dEt8UjN5MF54LVc9UGp7
THNPWGJAezIwOCZZVz1ud2ZefCEtfkk8T1FOVkJqCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvc2ltcGxlLWZpbHRlci1yZW5kZXJp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXIt
cmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmEwOGI2NzVjOTU4NWFkNGU1ZWZi
OTI4YjhiZjVlNTZmNTI3ZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICg4LDgpIHNpemUgNzg0eDE4CisgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4IFtiZ2NvbG9yPSNBNjcyQTNdCisgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDQ0eDE4CisgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0NDQ6ICJUaGlzIHBhcmFncmFwaCBoYXMgYSBmaWx0ZXIgYXBwbGllZC4gSXQgc2hv
dWxkIGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBjOTgw
N2RkNzlmOTc4NTRmMWYxNzJkOGViYTQ1NzMzMzdlNDY3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy5odG1sCkBAIC0w
LDAgKzEsOSBAQAorPHN0eWxlPgorLmZpbHRlcmVkIHsKKyAgLXdlYmtpdC1maWx0ZXI6IGh1ZS1y
b3RhdGUoMTgwZGVnKTsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2NiwgMTE0LCAxNjMpOwor
fQorPC9zdHlsZT4KKzxkaXYgY2xhc3M9ImZpbHRlcmVkIj4KKyAgVGhpcyBwYXJhZ3JhcGggaGFz
IGEgZmlsdGVyIGFwcGxpZWQuIEl0IHNob3VsZCBoYXZlIGEgZ3JlZW4gYmFja2dyb3VuZC4KKzwv
ZGl2Pgo=
</data>
<flag name="review"
          id="112942"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>