<?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>61388</bug_id>
          
          <creation_ts>2011-05-24 13:21:16 -0700</creation_ts>
          <short_desc>[chromium] edge aliasing on 3D transformed elements</short_desc>
          <delta_ts>2011-07-08 16:19:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Reveman">reveman</reporter>
          <assigned_to name="David Reveman">reveman</assigned_to>
          <cc>bsalomon</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>scheib</cc>
    
    <cc>senorblanco</cc>
    
    <cc>vangelis</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>409148</commentid>
    <comment_count>0</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-05-24 13:21:16 -0700</bug_when>
    <thetext>Chromium doesn&apos;t anti-alias edges of composited layers. See: http://code.google.com/p/chromium/issues/detail?id=51839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409154</commentid>
    <comment_count>1</comment_count>
      <attachid>94677</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-05-24 13:23:45 -0700</bug_when>
    <thetext>Created attachment 94677
Layer anti-aliasing

Patch implements anti-aliasing by adding transparent borders around layers and adjusting vertices to make sure we process all necessary fragments.

This approach handles tiled layers properly and produces smooth edges that match bi-linear filter output.

Known issues:
- Creates textures that are 1 or 2 pixels larger than the tile size.
- Makes the assumption that textures are initialized to transparent black.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409992</commentid>
    <comment_count>2</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-05-25 16:05:11 -0700</bug_when>
    <thetext>My first impression is that I feel like this is a lot of code and complexity to work around the fact that TilingData only has inter-tile border texels and not outer ones.  The TilingData abstraction already handles texture coordinate offsets, border texels, and returning tile rects with and without those borders.

Let me propose two changes which result in the equivalent edge filtering, but that might be simpler:

1) Add outer border texels to TilingData when any border texels are requested.

2) Modify the dimensions of the quad being drawn when calling drawTexturedQuad in LayerTilerChromium to include the outer border texels, rather than doing all of the math and program binding in GeometryBinding just to stretch the quad to span an additional texel.

Re: known issues.

I am less comfortable with textures being created larger than the tile size.  This circumvents a lot of the recycling mechanisms where we put unused tiles on a list to be reused under the assumption that we can just reuse the same texture resource without doing another texImage2D and clear.  It&apos;s certainly possible this is a needless performance optimization, but if the assumption is broken that tile size == texture size, then ideally we should measure if that has any impact and if it doesn&apos;t then we should remove the recycling code as well.

Textures are already initialized to transparent black (often repeatedly). See texImage2DResourceSafe called by TextureManager::requestTexture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410051</commentid>
    <comment_count>3</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-05-25 17:25:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; My first impression is that I feel like this is a lot of code and complexity to work around the fact that TilingData only has inter-tile border texels and not outer ones.  The TilingData abstraction already handles texture coordinate offsets, border texels, and returning tile rects with and without those borders.
&gt; 
&gt; Let me propose two changes which result in the equivalent edge filtering, but that might be simpler:
&gt; 
&gt; 1) Add outer border texels to TilingData when any border texels are requested.

This was my initial approach and I agree that it&apos;s the ideal place for this outer border code live. I spent some time implementing this but decided to hold off as it required a large amount of changes. LayerTilerChromium and ContentLayerPainter make a lot of assumptions about the tile sizes which break when we add an outer border (e.g. ContentLayerChromium uses the layer size as tile size).

I&apos;m happy to move the changes into the TilingData class if we agree that this border texel approach is the proper way to implement smooth layer edges. FYI, the patch will grow significantly from this.


&gt; 
&gt; 2) Modify the dimensions of the quad being drawn when calling drawTexturedQuad in LayerTilerChromium to include the outer border texels, rather than doing all of the math and program binding in GeometryBinding just to stretch the quad to span an additional texel.

We&apos;re not just stretching it to include the additional texels. We&apos;re projecting vertices and making adjustments to ensure that we rasterize all necessary fragments. This is critical for any kind of minification and these adjustments results in us no longer drawing an axis-aligned quad. I guess it should be possible to translate these adjustments into a matrix transformation but I&apos;m not convinced that&apos;s more appropriate than doing the math in GeometryBinding.


&gt; 
&gt; Re: known issues.
&gt; 
&gt; I am less comfortable with textures being created larger than the tile size.  This circumvents a lot of the recycling mechanisms where we put unused tiles on a list to be reused under the assumption that we can just reuse the same texture resource without doing another texImage2D and clear.  It&apos;s certainly possible this is a needless performance optimization, but if the assumption is broken that tile size == texture size, then ideally we should measure if that has any impact and if it doesn&apos;t then we should remove the recycling code as well.
&gt; 

I agree. This will be taken care of by moving the outer border adjustments into TilingData class.


&gt; Textures are already initialized to transparent black (often repeatedly). See texImage2DResourceSafe called by TextureManager::requestTexture.

I noticed this. Just wasn&apos;t sure that it was OK to rely on it to always be the case..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410128</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-25 19:24:56 -0700</bug_when>
    <thetext>Attachment 94677 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/platform/graphics/chromium/...&quot; exit_code: 1

Source/WebCore/platform/graphics/chromium/GeometryBinding.h:52:  The parameter name &quot;matrix&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/chromium/GeometryBinding.h:53:  The parameter name &quot;rect&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/chromium/GeometryBinding.h:54:  The parameter name &quot;filter&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/chromium/GeometryBinding.h:74:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/platform/graphics/chromium/GeometryBinding.h:75:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/platform/graphics/chromium/GeometryBinding.h:76:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:137:  prev_edge is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:202:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:204:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:420:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:422:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 11 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410163</commentid>
    <comment_count>5</comment_count>
      <attachid>94911</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-05-25 20:57:13 -0700</bug_when>
    <thetext>Created attachment 94911
Layer anti-aliasing

Updated to pass the webkit style check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411488</commentid>
    <comment_count>6</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-05-27 09:24:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt;
&gt; &gt; 1) Add outer border texels to TilingData when any border texels are requested.
&gt; 
&gt; This was my initial approach and I agree that it&apos;s the ideal place for this outer border code live. I spent some time implementing this but decided to hold off as it required a large amount of changes. LayerTilerChromium and ContentLayerPainter make a lot of assumptions about the tile sizes which break when we add an outer border (e.g. ContentLayerChromium uses the layer size as tile size).

That path with those assumptions is there just so that we can use the same codepath for painting, uploading, and drawing layers whether for tiled and &quot;single tile&quot; layers.

You&apos;re quite right that there&apos;s this unfortunate assumption where setting tile size = layer size implies &quot;use a single tile&quot;.   That seems backwards.  If anything, those layers should be explicit that they want to use a single tile and then let the tiler figure out what that means in terms of layer size and texture size and whether we should include an additional border.

The other problem is that touching TilingData will require fixing up most of the TilingDataTest unit tests which assume that there&apos;s no outer border.

&gt; I&apos;m happy to move the changes into the TilingData class if we agree that this border texel approach is the proper way to implement smooth layer edges. FYI, the patch will grow significantly from this.

I think that&apos;s the right thing to do.  The patch might grow, but I think ultimately it&apos;ll make the code in both TilingData and LayerTilerChromium more simple.  It&apos;d be nice to not make the LayerTilerChromium calculations for copying one subrectangle to another out of a paint rect any less clear than it already is.

I talked to Vince offline about it and given that LayerTilerChromium is the only client of TilingData at this point, we both don&apos;t see any issue with such a change to TilingData.

&gt; &gt; 2) Modify the dimensions of the quad being drawn when calling drawTexturedQuad in LayerTilerChromium to include the outer border texels, rather than doing all of the math and program binding in GeometryBinding just to stretch the quad to span an additional texel.
&gt; 
&gt; We&apos;re not just stretching it to include the additional texels. We&apos;re projecting vertices and making adjustments to ensure that we rasterize all necessary fragments.

Oh! Sorry for my misunderstanding.  What you&apos;re doing makes complete sense.

My only remaining concern related to the GeometryBinding is that we create and destroy two buffer objects for every tile we draw on screen.  Does that have no performance costs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411847</commentid>
    <comment_count>7</comment_count>
      <attachid>95262</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-05-28 08:37:18 -0700</bug_when>
    <thetext>Created attachment 95262
Layer anti-aliasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411848</commentid>
    <comment_count>8</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-05-28 08:51:44 -0700</bug_when>
    <thetext>Latest patch moves the outer border handling into TilingData class and updates the unit tests.

&gt; My only remaining concern related to the GeometryBinding is that we create and destroy two buffer objects for every tile we draw on screen.  Does that have no performance costs?

I don&apos;t think it has a significant performance cost. Creating and destroying buffers should be more efficiently handled by graphics drivers than reusing a buffer and just changing it&apos;s contents. We could use the shared geometry buffer for inner tiles that doesn&apos;t need smooth borders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412962</commentid>
    <comment_count>9</comment_count>
      <attachid>95500</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-05-31 16:04:27 -0700</bug_when>
    <thetext>Created attachment 95500
Layer anti-aliasing

Fix a problem in LayerTilerChromium::growLayerToContain where max texture size was not being set correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412996</commentid>
    <comment_count>10</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-05-31 16:56:40 -0700</bug_when>
    <thetext>Thanks for that.  I think that change simplifies the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413067</commentid>
    <comment_count>11</comment_count>
      <attachid>95500</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-31 18:46:05 -0700</bug_when>
    <thetext>Comment on attachment 95500
Layer anti-aliasing

Please flip the review flag to &quot;?&quot; when you want this to be reviewed.

I expect this patch will change a good number of compositor pixel test results, could you post updated baselines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413327</commentid>
    <comment_count>12</comment_count>
      <attachid>95500</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-06-01 06:36:33 -0700</bug_when>
    <thetext>Comment on attachment 95500
Layer anti-aliasing

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

&gt; WebCore/platform/graphics/chromium/GeometryBinding.h:75
&gt; +        Edge(float x, float y, float z) : fX(x), fY(y), fZ(z) { }

In WebKit coding style, data members should be prefixed with m_.  (&apos;f&apos; is Skia style.).

(Actually, in WebKit I&apos;d probably scrap this class, use a FloatPoint3D, and write a helper function for intersection instead.  But that&apos;s up to you.)

&gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:68
&gt; +    return (v1.x() * v2.y() - v1.y() * v2.x()) &lt; 0;

Just a warning that the original version of this code gives incorrect results if the three input points are collinear.  Not sure if that can occur with a compositor quad.  Perhaps when rotating 90deg around X, for example.

&gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:141
&gt; +        pt[i] = prevEdge.intersect(edge);

Also here:  there may be problems if three consecutive vertices are collinear (intersection will fail).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414079</commentid>
    <comment_count>13</comment_count>
      <attachid>95760</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-02 06:46:57 -0700</bug_when>
    <thetext>Created attachment 95760
Layer anti-aliasing

Fix a problem with outer borders not being kept transparent and mask layer textures not having the assumed size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414086</commentid>
    <comment_count>14</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-02 06:55:30 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; In WebKit coding style, data members should be prefixed with m_.  (&apos;f&apos; is Skia style.).
&gt; 
&gt; (Actually, in WebKit I&apos;d probably scrap this class, use a FloatPoint3D, and write a helper function for intersection instead.  But that&apos;s up to you.)

Latest patch uses FloatPoint3D.

&gt; 
&gt; &gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:68
&gt; &gt; +    return (v1.x() * v2.y() - v1.y() * v2.x()) &lt; 0;
&gt; 
&gt; Just a warning that the original version of this code gives incorrect results if the three input points are collinear.  Not sure if that can occur with a compositor quad.  Perhaps when rotating 90deg around X, for example.

I&apos;ve noticed this and made sure to check that this code path is not exercised for such transforms as 90deg rotation around X. The visible layer rectangle (ContentLayerChromium::draw) should be empty in these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414558</commentid>
    <comment_count>15</comment_count>
      <attachid>95835</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-02 17:12:22 -0700</bug_when>
    <thetext>Created attachment 95835
test_expectations.txt changes for rebaseline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414571</commentid>
    <comment_count>16</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-02 17:28:14 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 95500 [details])
&gt; Please flip the review flag to &quot;?&quot; when you want this to be reviewed.

I think the patch is now ready to be reviewed.

&gt; 
&gt; I expect this patch will change a good number of compositor pixel test results, could you post updated baselines?

I haven&apos;t managed to get the webkit rebaseline tool to create a proper patch yet but I&apos;ve attached the test_expectations.txt change with all the tests that need to be rebased for now.

Test case worth pointing out is compositing/transitions/scale-transition-no-start.html which is now failing by design. This layer anti-aliasing method will not produce the output that this test is asking for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415135</commentid>
    <comment_count>17</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-03 13:34:33 -0700</bug_when>
    <thetext>The rebaseline tool must be run after the patch has landed and the bots produce their results (so that it can check for diffs and harvest them).  You&apos;ll need to mark the tests that you know will fail as FAIL IMAGE etc when the patch is submitted and once it&apos;s landed, you&apos;ll locally mark test_expectations as REBASELINE run the tool and that will create an additional patch for the new baselines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415236</commentid>
    <comment_count>18</comment_count>
      <attachid>95975</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-03 15:17:47 -0700</bug_when>
    <thetext>Created attachment 95975
Layer anti-aliasing

Add missing ChangeLog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415264</commentid>
    <comment_count>19</comment_count>
      <attachid>95980</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-03 16:05:57 -0700</bug_when>
    <thetext>Created attachment 95980
LayoutTest changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419112</commentid>
    <comment_count>20</comment_count>
      <attachid>95975</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-10 18:43:30 -0700</bug_when>
    <thetext>Comment on attachment 95975
Layer anti-aliasing

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

Would you mind updating this patch to apply to ToT?  I think Vince, Vangelis, or Enne should review it - the actual graphics stuff here is well beyond me.

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

you need to get rid of the OOPS! here - replace it with a list of tests that cover this change

&gt; WebCore/ChangeLog:16
&gt; +        Change maxUntiledSize to 510 to ensure that tiles are not greater
&gt; +        than 512 with outer boarders.

typo: boarders-&gt;borders

&gt; WebCore/ChangeLog:18
&gt; +        (WebCore::ContentLayerChromium::updateLayerSize): To avoid tiling,
&gt; +        pass empty tile size to tiler.

this comment doesn&apos;t make a lot of sense to me

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:189
&gt; -    const IntSize tileSize(min(defaultTileSize, layerSize.width()), min(defaultTileSize, layerSize.height()));
&gt; +    const IntSize tileSize(defaultTileSize, defaultTileSize);

this change seems bad - all tiles are 256x256 regardless of the layer size?

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.h:88
&gt; +    bool m_borderTexels;

why does ContentLayerChromium need an m_borderTexels? is this a bad merge?

&gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:92
&gt; +    int x1 = rect.x();
&gt; +    int y1 = rect.y();
&gt; +    int x2 = rect.maxX();
&gt; +    int y2 = rect.maxY();

should this be an IntRect?

&gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:104
&gt; +    FloatPoint pt[4];

we have a FloatQuad data type, would that be better here?

&gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:111
&gt; +    for (int i = 0; i &lt; 4; i++)
&gt; +        pt[i] = matrix.mapPoint(pt[i]);

i believe we can map FloatQuads directly without having to do it point at a time

&gt; WebCore/platform/graphics/chromium/GeometryBinding.h:51
&gt; +    explicit GeometryBinding(GraphicsContext3D*,

nit: no need for &apos;explicit&apos; on constructors that take more than one parameter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419311</commentid>
    <comment_count>21</comment_count>
      <attachid>96883</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-12 11:29:46 -0700</bug_when>
    <thetext>Created attachment 96883
Layer anti-aliasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419312</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-12 11:33:27 -0700</bug_when>
    <thetext>Attachment 96883 did not pass style-queue:

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

Source/WebCore/platform/graphics/chromium/GeometryBinding.h:52:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/platform/graphics/chromium/GeometryBinding.h:53:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/platform/graphics/chromium/GeometryBinding.h:54:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 3 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419318</commentid>
    <comment_count>23</comment_count>
      <attachid>95975</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-12 12:19:30 -0700</bug_when>
    <thetext>Comment on attachment 95975
Layer anti-aliasing

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

&gt;&gt; WebCore/ChangeLog:12

&gt; 
&gt; you need to get rid of the OOPS! here - replace it with a list of tests that cover this change

Added new platform/chromium/compositing/tiny-layer-rotated.html test and the existing platform/chromium/compositing/huge-layer-rotated.html test, they cover the change pretty well. Also included the TilingData unit test.

&gt;&gt; WebCore/ChangeLog:16
&gt;&gt; +        than 512 with outer boarders.
&gt; 
&gt; typo: boarders-&gt;borders

Fixed.

&gt;&gt; WebCore/ChangeLog:18
&gt;&gt; +        pass empty tile size to tiler.
&gt; 
&gt; this comment doesn&apos;t make a lot of sense to me

This hopefully makes a bit more sense in my latest patch.

&gt;&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:189
&gt;&gt; +    const IntSize tileSize(defaultTileSize, defaultTileSize);
&gt; 
&gt; this change seems bad - all tiles are 256x256 regardless of the layer size?

LayerTilerChromium is not using this as the texture size anymore. It&apos;s used as the max texture size for the TilingData class. The problem with using the layerSize as tileSize here is that with outer borders this is not enough space for the layer to fit in one tile. LayerTilerChromium will now figure out what the smallest possible texture size is including any optional outer borders.

&gt;&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.h:88
&gt;&gt; +    bool m_borderTexels;
&gt; 
&gt; why does ContentLayerChromium need an m_borderTexels? is this a bad merge?

No, this is correct. The mask layer rendering in RenderSurfaceChromium doesn&apos;t support outer borders yet so we have to avoid using border texels when content layer is used as a mask.

&gt;&gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:92
&gt;&gt; +    int y2 = rect.maxY();
&gt; 
&gt; should this be an IntRect?

I found the border texel adjustment code slightly more readable this way. E.g. &quot;x--&quot; vs &quot;rect.shiftXEdgeTo(rect.x() - 1)&quot;. I don&apos;t really have a strong opinion here though so I&apos;m happy to change it to an IntRect if you prefer that.

&gt;&gt; WebCore/platform/graphics/chromium/GeometryBinding.cpp:104
&gt;&gt; +    FloatPoint pt[4];
&gt; 
&gt; we have a FloatQuad data type, would that be better here?

The edge calculation code requires indexed access to the points, which FloatQuad doesn&apos;t provide.

&gt;&gt; WebCore/platform/graphics/chromium/GeometryBinding.h:51
&gt;&gt; +    explicit GeometryBinding(GraphicsContext3D*,
&gt; 
&gt; nit: no need for &apos;explicit&apos; on constructors that take more than one parameter

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419321</commentid>
    <comment_count>24</comment_count>
      <attachid>96886</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-12 12:22:11 -0700</bug_when>
    <thetext>Created attachment 96886
Layer anti-aliasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420845</commentid>
    <comment_count>25</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-06-14 16:39:36 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Created an attachment (id=96886) [details]
&gt; Layer anti-aliasing

Unofficially, this looks good to me.

Can I hope that edge anti-aliasing for render surfaces is coming afterwards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421419</commentid>
    <comment_count>26</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-15 10:19:11 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; Created an attachment (id=96886) [details] [details]
&gt; &gt; Layer anti-aliasing
&gt; 
&gt; Unofficially, this looks good to me.

Thanks for having a look at the patch.

If you run the compositing layout tests without my changes to test_expectations.txt you&apos;ll see minor differences in almost all compositing test. That&apos;s to expect for any transformed layers. However, we might want to avoid this for layers that are not transformed in a way that require bilinear filtering. Simply using nearest filter in these cases should take care of it but I&apos;m thinking such a change is better left for a subsequent patch.

&gt; 
&gt; Can I hope that edge anti-aliasing for render surfaces is coming afterwards?

Yes, I&apos;d happily add that once this patch has landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421687</commentid>
    <comment_count>27</comment_count>
      <attachid>96886</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-15 18:28:10 -0700</bug_when>
    <thetext>Comment on attachment 96886
Layer anti-aliasing

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

I worry that we&apos;re burdening the compositor with a lot of extra cpu-side operations, buffer creates/deletes and uploads.  Is there maybe a simpler way to achieve the same effect given that we&apos;re restricted to rendering quads and not general polygons?

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:418
&gt; +

It concerns me a lot that for every quad draw with borderTexels we end up creating two new vbo&apos;s and upload vertex and index data to them. Is it not possible to always include the extra vertices and triangles in the compositor&apos;s sharedGeometry and make the necessary adjustments to their positions in the vertex shader?

&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:113
&gt; +    Edge edges[4];

This code could use some comments explaining what it does.  I&apos;m not sure I understand the method used here.

&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:129
&gt; +    // We don&apos;t care about Z component.

Again, I&apos;m concerned that we&apos;re adding lots of cpu-based math that will be executed for every layer we render (possibly multiple times due to tiling).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422153</commentid>
    <comment_count>28</comment_count>
      <attachid>96886</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-16 13:15:22 -0700</bug_when>
    <thetext>Comment on attachment 96886
Layer anti-aliasing

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:418
&gt;&gt; +
&gt; 
&gt; It concerns me a lot that for every quad draw with borderTexels we end up creating two new vbo&apos;s and upload vertex and index data to them. Is it not possible to always include the extra vertices and triangles in the compositor&apos;s sharedGeometry and make the necessary adjustments to their positions in the vertex shader?

There are no extra vertices. Only adjustments to vertices/texcoords. The indices are the same so we could possibly reuse the shared geometry there. I mentioned earlier that it might be possible to translate these adjustments into a transformation matrix and use a uniform instead. It would be a bit backwards and there wouldn&apos;t really be much less data to transfer. But we would avoid creating the VBOs. I&apos;d prefer to have some data showing that use of VBOs here actually has a significant performance impact before I make any changes though.

&gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:113
&gt;&gt; +    Edge edges[4];
&gt; 
&gt; This code could use some comments explaining what it does.  I&apos;m not sure I understand the method used here.

Sure, the pixel offset part could use some explaining.

&gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:129
&gt;&gt; +    // We don&apos;t care about Z component.
&gt; 
&gt; Again, I&apos;m concerned that we&apos;re adding lots of cpu-based math that will be executed for every layer we render (possibly multiple times due to tiling).

Some of it can&apos;t be avoided of course. We could possibly reuse some of the computed edges between tiles. And we can easily move the inverse transformation matrix creation to LayerTilerChromium.cpp and only do it once per layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422163</commentid>
    <comment_count>29</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-16 13:28:00 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 96886 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96886&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:418
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; It concerns me a lot that for every quad draw with borderTexels we end up creating two new vbo&apos;s and upload vertex and index data to them. Is it not possible to always include the extra vertices and triangles in the compositor&apos;s sharedGeometry and make the necessary adjustments to their positions in the vertex shader?
&gt; 
&gt; There are no extra vertices. Only adjustments to vertices/texcoords. The indices are the same so we could possibly reuse the shared geometry there. I mentioned earlier that it might be possible to translate these adjustments into a transformation matrix and use a uniform instead. It would be a bit backwards and there wouldn&apos;t really be much less data to transfer. But we would avoid creating the VBOs. I&apos;d prefer to have some data showing that use of VBOs here actually has a significant performance impact before I make any changes though.

I imagine that creating and destroying fbo&apos;s here is equivalent (and probably to some extent translates to) to making new and delete calls. Added on top is additional overhead due to command buffer transfers, ANGLE mirroring of data structures, etc.  This is our inner loop so I think it&apos;s fair to assume that there will be a hit. Maybe you can create a single shared VBO and re-use it? A solution using uniforms may be even better.  Senorblanco mentioned that his original implementation of AA drawing for the old canvas path was doing that.  Stephen, can you provide a pointer to the CL? 


&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:113
&gt; &gt;&gt; +    Edge edges[4];
&gt; &gt; 
&gt; &gt; This code could use some comments explaining what it does.  I&apos;m not sure I understand the method used here.
&gt; 
&gt; Sure, the pixel offset part could use some explaining.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:129
&gt; &gt;&gt; +    // We don&apos;t care about Z component.
&gt; &gt; 
&gt; &gt; Again, I&apos;m concerned that we&apos;re adding lots of cpu-based math that will be executed for every layer we render (possibly multiple times due to tiling).
&gt; 
&gt; Some of it can&apos;t be avoided of course. We could possibly reuse some of the computed edges between tiles. And we can easily move the inverse transformation matrix creation to LayerTilerChromium.cpp and only do it once per layer.

Would it be possible to do the edge calculation once per quad instead of doing it per tile?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422183</commentid>
    <comment_count>30</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-06-16 13:45:49 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; &gt; (From update of attachment 96886 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96886&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:418
&gt; &gt; &gt;&gt; +
&gt; &gt; &gt; 
&gt; &gt; &gt; It concerns me a lot that for every quad draw with borderTexels we end up creating two new vbo&apos;s and upload vertex and index data to them. Is it not possible to always include the extra vertices and triangles in the compositor&apos;s sharedGeometry and make the necessary adjustments to their positions in the vertex shader?
&gt; &gt; 
&gt; &gt; There are no extra vertices. Only adjustments to vertices/texcoords. The indices are the same so we could possibly reuse the shared geometry there. I mentioned earlier that it might be possible to translate these adjustments into a transformation matrix and use a uniform instead. It would be a bit backwards and there wouldn&apos;t really be much less data to transfer. But we would avoid creating the VBOs. I&apos;d prefer to have some data showing that use of VBOs here actually has a significant performance impact before I make any changes though.
&gt; 
&gt; I imagine that creating and destroying fbo&apos;s here is equivalent (and probably to some extent translates to) to making new and delete calls. Added on top is additional overhead due to command buffer transfers, ANGLE mirroring of data structures, etc.  This is our inner loop so I think it&apos;s fair to assume that there will be a hit. Maybe you can create a single shared VBO and re-use it? A solution using uniforms may be even better.  Senorblanco mentioned that his original implementation of AA drawing for the old canvas path was doing that.  Stephen, can you provide a pointer to the CL? 

Here was the original WebKit CL:  https://bugs.webkit.org/attachment.cgi?id=90585&amp;action=diff

It actually doesn&apos;t add any data uploads at all.  The trick it uses is to compute all the inflated edges in the vert shader, then blend them using the vertex position components to select the right pair of edges.  This requires the vertices to be in canonical form (0, 0), (0, 1), (1, 0), (1, 1).  It also requires you to upload the inverse transpose of the viewing matrix (and only the inverse transpose) as a uniform -- once it gets the screen-space edges, it just uses their intersection to find the verts.  No need to transform the resulting verts anymore, so no need for the viewing matrix.  I don&apos;t know if you can use this trick, and obviously it&apos;s only a win on machines with an actual vertex shader unit (Intel GMA950 need not apply).

My gut feeling is that the extra CPU overhead in David&apos;s current implementation isn&apos;t going to be huge.  Benchmarking would tell you, of course.  The cost of creating/destroying vert buffers will probably be bad, though.  If possible, making a persistent VBO of a fixed size would probably be a win.

&gt; &gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:113
&gt; &gt; &gt;&gt; +    Edge edges[4];
&gt; &gt; &gt; 
&gt; &gt; &gt; This code could use some comments explaining what it does.  I&apos;m not sure I understand the method used here.
&gt; &gt; 
&gt; &gt; Sure, the pixel offset part could use some explaining.
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:129
&gt; &gt; &gt;&gt; +    // We don&apos;t care about Z component.
&gt; &gt; &gt; 
&gt; &gt; &gt; Again, I&apos;m concerned that we&apos;re adding lots of cpu-based math that will be executed for every layer we render (possibly multiple times due to tiling).
&gt; &gt; 
&gt; &gt; Some of it can&apos;t be avoided of course. We could possibly reuse some of the computed edges between tiles. And we can easily move the inverse transformation matrix creation to LayerTilerChromium.cpp and only do it once per layer.
&gt; 
&gt; Would it be possible to do the edge calculation once per quad instead of doing it per tile?
&gt; 
&gt; Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422423</commentid>
    <comment_count>31</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-16 22:50:25 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; &gt; (In reply to comment #28)
&gt; &gt; &gt; (From update of attachment 96886 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96886&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:418
&gt; &gt; &gt; &gt;&gt; +
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; It concerns me a lot that for every quad draw with borderTexels we end up creating two new vbo&apos;s and upload vertex and index data to them. Is it not possible to always include the extra vertices and triangles in the compositor&apos;s sharedGeometry and make the necessary adjustments to their positions in the vertex shader?
&gt; &gt; &gt; 
&gt; &gt; &gt; There are no extra vertices. Only adjustments to vertices/texcoords. The indices are the same so we could possibly reuse the shared geometry there. I mentioned earlier that it might be possible to translate these adjustments into a transformation matrix and use a uniform instead. It would be a bit backwards and there wouldn&apos;t really be much less data to transfer. But we would avoid creating the VBOs. I&apos;d prefer to have some data showing that use of VBOs here actually has a significant performance impact before I make any changes though.
&gt; &gt; 
&gt; &gt; I imagine that creating and destroying fbo&apos;s here is equivalent (and probably to some extent translates to) to making new and delete calls. Added on top is additional overhead due to command buffer transfers, ANGLE mirroring of data structures, etc.  This is our inner loop so I think it&apos;s fair to assume that there will be a hit. Maybe you can create a single shared VBO and re-use it? A solution using uniforms may be even better.  Senorblanco mentioned that his original implementation of AA drawing for the old canvas path was doing that.  Stephen, can you provide a pointer to the CL? 
&gt; 
&gt; Here was the original WebKit CL:  https://bugs.webkit.org/attachment.cgi?id=90585&amp;action=diff
&gt; 
&gt; It actually doesn&apos;t add any data uploads at all.  The trick it uses is to compute all the inflated edges in the vert shader, then blend them using the vertex position components to select the right pair of edges.  This requires the vertices to be in canonical form (0, 0), (0, 1), (1, 0), (1, 1).  It also requires you to upload the inverse transpose of the viewing matrix (and only the inverse transpose) as a uniform -- once it gets the screen-space edges, it just uses their intersection to find the verts.  No need to transform the resulting verts anymore, so no need for the viewing matrix.  I don&apos;t know if you can use this trick, and obviously it&apos;s only a win on machines with an actual vertex shader unit (Intel GMA950 need not apply).

Thanks, I see what you&apos;re doing there. I guess it should be possible to do something similar in the tiled layer case. A few differences are; not all edges are offset for tiled layers so we need to use additional uniforms or different shaders for each possible combination of edges. We also need to adjust texture coordinates and perspective interpolation need to be correct so computing x,y components is not enough. It might turn out to be quite a bit slower on machines without a vertex shader unit as we compute all edges for each vertex.

&gt; 
&gt; My gut feeling is that the extra CPU overhead in David&apos;s current implementation isn&apos;t going to be huge.  Benchmarking would tell you, of course.  The cost of creating/destroying vert buffers will probably be bad, though.  If possible, making a persistent VBO of a fixed size would probably be a win.

OK, I assume this is related to the ANGLE mirroring as I would normally expect the more async nature of creating/destroying VBO&apos;s to be more efficient than modifying one.

&gt; 
&gt; &gt; &gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:113
&gt; &gt; &gt; &gt;&gt; +    Edge edges[4];
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This code could use some comments explaining what it does.  I&apos;m not sure I understand the method used here.
&gt; &gt; &gt; 
&gt; &gt; &gt; Sure, the pixel offset part could use some explaining.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp:129
&gt; &gt; &gt; &gt;&gt; +    // We don&apos;t care about Z component.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Again, I&apos;m concerned that we&apos;re adding lots of cpu-based math that will be executed for every layer we render (possibly multiple times due to tiling).
&gt; &gt; &gt; 
&gt; &gt; &gt; Some of it can&apos;t be avoided of course. We could possibly reuse some of the computed edges between tiles. And we can easily move the inverse transformation matrix creation to LayerTilerChromium.cpp and only do it once per layer.
&gt; &gt; 
&gt; &gt; Would it be possible to do the edge calculation once per quad instead of doing it per tile?

I&apos;ll update the patch to minimize the number of edge calculations and use uniforms for offsets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424265</commentid>
    <comment_count>32</comment_count>
      <attachid>97931</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-20 22:28:54 -0700</bug_when>
    <thetext>Created attachment 97931
Layer anti-aliasing

Uses a shader uniform instead of geometry bindings for AA adjusted vertices. Reduces the amount of per-tile CPU operations significantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424266</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-20 22:31:25 -0700</bug_when>
    <thetext>Attachment 97931 did not pass style-queue:

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

LayoutTests/platform/chromium/test_expectations.txt:930:  Path does not exist. svg/custom/svg-fonts-fallback.xhtml  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:932:  Path does not exist. svg/custom/svg-fonts-segmented.xhtml  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:933:  Path does not exist. svg/custom/svg-fonts-word-spacing.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:937:  Path does not exist. svg/text/text-overflow-ellipsis-svgfont.html  [test/expectations] [2]
Total errors found: 4 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424464</commentid>
    <comment_count>34</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-21 08:28:52 -0700</bug_when>
    <thetext>James, please have a look at this latest patch as it changes the fix you landed for: https://bugs.webkit.org/show_bug.cgi?id=62243

Unused parts of tiles are cleared instead of only drawing portions of tiles in contentRect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424894</commentid>
    <comment_count>35</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-21 17:24:20 -0700</bug_when>
    <thetext>It&apos;s also worth pointing out that this new patch doesn&apos;t special case layers without borders like the root layer. It&apos;s always using the edge intersection technique to generate tile vertices. I&apos;d like to keep it this way for the sake of having fewer alternative code paths if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425568</commentid>
    <comment_count>36</comment_count>
      <attachid>98238</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-22 14:05:33 -0700</bug_when>
    <thetext>Created attachment 98238
Layer anti-aliasing

Reduces amount of per-tile CPU operations some more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425599</commentid>
    <comment_count>37</comment_count>
      <attachid>98238</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-06-22 14:32:30 -0700</bug_when>
    <thetext>Comment on attachment 98238
Layer anti-aliasing

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

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:405
&gt; +      TransformationMatrix(matrix.m11(), matrix.m12(), 0.0, matrix.m14(),
&gt; +                           matrix.m21(), matrix.m22(), 0.0, matrix.m24(),
&gt; +                           matrix.m31(), matrix.m32(), 1.0, matrix.m34(),
&gt; +                           matrix.m41(), matrix.m42(), 0.0,

nit: WebKit style slightly prefers 0 / 1 for these constants

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:418
&gt; +    float sign = isCCW(boundsQuad) ? -1.0f : 1.0f;

nit: in WebKit we use -1 / 1 for integral constants unless type promotion requires otherwise

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:538
&gt; +void LayerTilerChromium::drawTexturedQuad(GraphicsContext3D* context, const FloatQuad &amp;quad, const TransformationMatrix&amp; projectionMatrix, const TransformationMatrix&amp; drawMatrix,

nit: the &amp; goes with the type as in &quot;const FloatQuad&amp; quad&quot;

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:571
&gt; +    float scaleX = 1.0f / width;
&gt; +    float scaleY = 1.0f / height;
&gt; +    float point[8];
&gt; +    point[0] = quad.p1().x() * scaleX;
&gt; +    point[1] = quad.p1().y() * scaleY;
&gt; +    point[2] = quad.p2().x() * scaleX;
&gt; +    point[3] = quad.p2().y() * scaleY;
&gt; +    point[4] = quad.p3().x() * scaleX;
&gt; +    point[5] = quad.p3().y() * scaleY;
&gt; +    point[6] = quad.p4().x() * scaleX;
&gt; +    point[7] = quad.p4().y() * scaleY;

would this be simpler if the quad was scaled instead of scaling the individual points?

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.h:103
&gt; +    void drawTexturedQuad(GraphicsContext3D*, const FloatQuad &amp;, const TransformationMatrix&amp; projectionMatrix, const TransformationMatrix&amp; drawMatrix,

nit: &quot;const FloatQuad&amp;&quot;

&gt; LayoutTests/ChangeLog:8
&gt; +        * platform/chromium/compositing/tiny-layer-rotated.html: Added.

where are the expectations for this test? = IMAGE is not the same as = MISSING.

you should generate + upload the pixel results for at least one platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425642</commentid>
    <comment_count>38</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-06-22 15:02:26 -0700</bug_when>
    <thetext>Great refactoring of the original code!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425704</commentid>
    <comment_count>39</comment_count>
      <attachid>98238</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-22 16:08:46 -0700</bug_when>
    <thetext>Comment on attachment 98238
Layer anti-aliasing

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:405
&gt;&gt; +                           matrix.m41(), matrix.m42(), 0.0,
&gt; 
&gt; nit: WebKit style slightly prefers 0 / 1 for these constants

Fixed

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:418
&gt;&gt; +    float sign = isCCW(boundsQuad) ? -1.0f : 1.0f;
&gt; 
&gt; nit: in WebKit we use -1 / 1 for integral constants unless type promotion requires otherwise

Fixed

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:538
&gt;&gt; +void LayerTilerChromium::drawTexturedQuad(GraphicsContext3D* context, const FloatQuad &amp;quad, const TransformationMatrix&amp; projectionMatrix, const TransformationMatrix&amp; drawMatrix,
&gt; 
&gt; nit: the &amp; goes with the type as in &quot;const FloatQuad&amp; quad&quot;

Sorry, I keep making that mistake. Many years of working on projects that do it the other way around is hard to unlearn. Would be nice to have check-webkit-style pick this up.

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:571
&gt;&gt; +    point[7] = quad.p4().y() * scaleY;
&gt; 
&gt; would this be simpler if the quad was scaled instead of scaling the individual points?

Moved the scaling to the quad in LayerTilerChromium::draw, which on second thought seems like a more appropriate place to handle this.

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.h:103
&gt;&gt; +    void drawTexturedQuad(GraphicsContext3D*, const FloatQuad &amp;, const TransformationMatrix&amp; projectionMatrix, const TransformationMatrix&amp; drawMatrix,
&gt; 
&gt; nit: &quot;const FloatQuad&amp;&quot;

Fixed.

&gt;&gt; LayoutTests/ChangeLog:8
&gt;&gt; +        * platform/chromium/compositing/tiny-layer-rotated.html: Added.
&gt; 
&gt; where are the expectations for this test? = IMAGE is not the same as = MISSING.
&gt; 
&gt; you should generate + upload the pixel results for at least one platform

I hopefully got this right in my new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425705</commentid>
    <comment_count>40</comment_count>
      <attachid>98258</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-06-22 16:09:31 -0700</bug_when>
    <thetext>Created attachment 98258
Layer anti-aliasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431138</commentid>
    <comment_count>41</comment_count>
      <attachid>98258</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-01 07:16:19 -0700</bug_when>
    <thetext>Comment on attachment 98258
Layer anti-aliasing

What&apos;s the next step here? Another round of reviews before landing this?

I marked the latest patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431195</commentid>
    <comment_count>42</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-07-01 09:09:30 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; (From update of attachment 98258 [details])
&gt; What&apos;s the next step here? Another round of reviews before landing this?

I talked with jamesr about this yesterday in person because we both want this patch to land.  jamesr said he doesn&apos;t feel like he can review the math part of this, but said informally that he was otherwise ok with these changes.

Could maybe senorblanco do the final review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431943</commentid>
    <comment_count>43</comment_count>
      <attachid>98258</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-07-04 08:29:16 -0700</bug_when>
    <thetext>Comment on attachment 98258
Layer anti-aliasing

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

Looks good.  r=me

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:406
&gt; +                           matrix.m44()).inverse();

Is this matrix always guaranteed to be invertible?  There is an &quot;isInvertible&quot; function on TransformationMatrix if you need to check.

&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:494
&gt; +                p1 = matrix.mapPoint(p1);
&gt; +                p2 = matrix.mapPoint(p2);
&gt; +
&gt; +                // Compute vertical edge.
&gt; +                edgeX = computeEdge(p1, p2, sign);

Just FYI, if there&apos;s a chance that p1 == p2, computeEdge will return something meaningless.  Don&apos;t know if that&apos;s an issue here.

&gt; Source/WebCore/platform/graphics/gpu/TilingData.cpp:52
&gt; +    int numTiles = max(1, 1 + (totalSizeWithBorder - 1 - 2 * borderTexels) / (maxTextureSize - 2 * borderTexels));

Note that this code is shared with the legacy accelerated canvas implementation, so changes here will affect that too.  Probably academic at this point, since it&apos;s no longer being used or tested.

&gt; LayoutTests/platform/chromium/test_expectations.txt:3988
&gt; +BUGWK61388 GPU : compositing/color-matching/image-color-matching.html = IMAGE
&gt; +BUGWK61388 GPU : compositing/direct-image-compositing.html = IMAGE
&gt; +BUGWK61388 GPU : compositing/geometry/fixed-in-composited.html = IMAGE
&gt; +BUGWK61388 GPU : compositing/geometry/fixed-position.html = IMAGE
&gt; +BUGWK61388 GPU : compositing/geometry/horizontal-scroll-composited.html = IMAGE

(etc) Please try to rebaseline these as soon as possible, so we don&apos;t lose test coverage for very long.  Let me know if you need help with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433784</commentid>
    <comment_count>44</comment_count>
      <attachid>98258</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-07 16:45:10 -0700</bug_when>
    <thetext>Comment on attachment 98258
Layer anti-aliasing

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:406
&gt;&gt; +                           matrix.m44()).inverse();
&gt; 
&gt; Is this matrix always guaranteed to be invertible?  There is an &quot;isInvertible&quot; function on TransformationMatrix if you need to check.

CSS allows you to specify your own 4x4 matrix so it&apos;s not impossible that we might end up with the matrix that is not invertible here. We&apos;re probably better off not drawing anything in those cases. Adding a call to isInvertible to check for this.

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp:494
&gt;&gt; +                edgeX = computeEdge(p1, p2, sign);
&gt; 
&gt; Just FYI, if there&apos;s a chance that p1 == p2, computeEdge will return something meaningless.  Don&apos;t know if that&apos;s an issue here.

Shouldn&apos;t happen but I&apos;m adding an ASSERT to computeEdge so it&apos;s easy to tell if this for some reason changes.

&gt;&gt; LayoutTests/platform/chromium/test_expectations.txt:3988
&gt;&gt; +BUGWK61388 GPU : compositing/geometry/horizontal-scroll-composited.html = IMAGE
&gt; 
&gt; (etc) Please try to rebaseline these as soon as possible, so we don&apos;t lose test coverage for very long.  Let me know if you need help with that.

Sure, I&apos;ll do that asap after the patch is merged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433786</commentid>
    <comment_count>45</comment_count>
      <attachid>100050</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-07 16:48:29 -0700</bug_when>
    <thetext>Created attachment 100050
Layer anti-aliasing

Rebased and updated with minor changes since last code review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434146</commentid>
    <comment_count>46</comment_count>
      <attachid>100050</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-07-08 10:47:24 -0700</bug_when>
    <thetext>Comment on attachment 100050
Layer anti-aliasing

OK, thanks for the changes.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434189</commentid>
    <comment_count>47</comment_count>
      <attachid>100050</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-08 11:33:14 -0700</bug_when>
    <thetext>Comment on attachment 100050
Layer anti-aliasing

Clearing flags on attachment: 100050

Committed r90646: &lt;http://trac.webkit.org/changeset/90646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434190</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-08 11:33:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434245</commentid>
    <comment_count>49</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-07-08 12:46:43 -0700</bug_when>
    <thetext>Looks like this introduced some duplicate GPU expectations which are causing the bots to early-out.  I&apos;ll land a quick fix, but in the future, please run new-run-webkit-tests --lint-test-files before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434370</commentid>
    <comment_count>50</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-07-08 16:19:32 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; Looks like this introduced some duplicate GPU expectations which are causing the bots to early-out.  I&apos;ll land a quick fix, but in the future, please run new-run-webkit-tests --lint-test-files before landing.

Sorry, didn&apos;t know about --lint-test-files. Thanks for taking care of this and those other mac/win expectations that were missing.

Created this bug to rebaseline the tests:
https://bugs.webkit.org/show_bug.cgi?id=64211</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94677</attachid>
            <date>2011-05-24 13:23:45 -0700</date>
            <delta_ts>2011-05-25 20:57:13 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-layer-aa-v4.diff</filename>
            <type>text/plain</type>
            <size>13188</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9t
ZXRyeUJpbmRpbmcuaAkocmV2aXNpb24gODY4MjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSAr
MjgsMzAgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAorI2luY2x1ZGUg
IkludFJlY3QuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCitlbnVtIEVkZ2VGaWx0ZXIgewor
ICAgIEZpbHRlckxlZnRFZGdlICAgPSAxIDw8IDAsCisgICAgRmlsdGVyVG9wRWRnZSAgICA9IDEg
PDwgMSwKKyAgICBGaWx0ZXJSaWdodEVkZ2UgID0gMSA8PCAyLAorICAgIEZpbHRlckJvdHRvbUVk
Z2UgPSAxIDw8IDMKK307Cit0eXBlZGVmIHVuc2lnbmVkIEVkZ2VGaWx0ZXJGbGFnczsKKwogY2xh
c3MgR2VvbWV0cnlCaW5kaW5nIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBHZW9tZXRyeUJpbmRp
bmcoR3JhcGhpY3NDb250ZXh0M0QqKTsKKyAgICBleHBsaWNpdCBHZW9tZXRyeUJpbmRpbmcoR3Jh
cGhpY3NDb250ZXh0M0QqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBJbnRSZWN0JiByZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGdlRmls
dGVyRmxhZ3MgZmlsdGVyKTsKICAgICB+R2VvbWV0cnlCaW5kaW5nKCk7CiAKICAgICBib29sIGlu
aXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsaXplZDsgfQpAQCAtNDUsNyArNjAs
NyBAQAogICAgIHVuc2lnbmVkIHF1YWRWZXJ0aWNlc1ZibygpIGNvbnN0IHsgcmV0dXJuIG1fcXVh
ZFZlcnRpY2VzVmJvOyB9CiAgICAgdW5zaWduZWQgcXVhZEVsZW1lbnRzVmJvKCkgY29uc3QgeyBy
ZXR1cm4gbV9xdWFkRWxlbWVudHNWYm87IH0KIAotICAgIHZvaWQgcHJlcGFyZUZvckRyYXcoKTsK
KyAgICB2b2lkIHByZXBhcmVGb3JEcmF3KCkgY29uc3Q7CiAKICAgICAvLyBBbGwgbGF5ZXIgc2hh
ZGVycyBzaGFyZSB0aGUgc2FtZSBhdHRyaWJ1dGUgbG9jYXRpb25zIGZvciB0aGUgdmVydGV4CiAg
ICAgLy8gcG9zaXRpb25zIGFuZCB0ZXh0dXJlIGNvb3JkaW5hdGVzLiBUaGlzIGFsbG93cyBzd2l0
Y2hpbmcgc2hhZGVycyB3aXRob3V0CkBAIC01NCw2ICs2OSwyMCBAQAogICAgIHN0YXRpYyBpbnQg
dGV4Q29vcmRBdHRyaWJMb2NhdGlvbigpIHsgcmV0dXJuIDE7IH0KIAogcHJpdmF0ZToKKyAgICBj
bGFzcyBFZGdlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIEVkZ2UoKSB7fQorICAgICAgICBFZGdl
KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIDogZlgoeCksIGZZKHkpLCBmWih6KSB7fQorICAg
ICAgICBGbG9hdFBvaW50IGludGVyc2VjdChjb25zdCBFZGdlJiBvdGhlcikgeworICAgICAgICAg
ICAgcmV0dXJuIEZsb2F0UG9pbnQoCisgICAgICAgICAgICAgICAgKGZZICogb3RoZXIuZlogLSBv
dGhlci5mWSAqIGZaKSAvCisgICAgICAgICAgICAgICAgKGZYICogb3RoZXIuZlkgLSBvdGhlci5m
WCAqIGZZKSwKKyAgICAgICAgICAgICAgICAoZlggKiBvdGhlci5mWiAtIG90aGVyLmZYICogZlop
IC8KKyAgICAgICAgICAgICAgICAob3RoZXIuZlggKiBmWSAtIGZYICogb3RoZXIuZlkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmWCwgZlksIGZaOworICAgIH07CisKICAgICBHcmFwaGlj
c0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIHVuc2lnbmVkIG1fcXVhZFZlcnRpY2VzVmJvOwog
ICAgIHVuc2lnbmVkIG1fcXVhZEVsZW1lbnRzVmJvOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAko
cmV2aXNpb24gODY4MjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyVGlsZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJMYXllclRpbGVyQ2hyb21pdW0uaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRENo
cm9taXVtLmgiCisjaW5jbHVkZSAiR2VvbWV0cnlCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJM
YXllclJlbmRlcmVyQ2hyb21pdW0uaCIKQEAgLTE4NCw2ICsxODUsMzMgQEAKICAgICByZXR1cm4g
bGF5ZXJSZWN0OwogfQogCitJbnRSZWN0IExheWVyVGlsZXJDaHJvbWl1bTo6dGlsZVRleFJlY3Qo
Y29uc3QgVGlsZSogdGlsZSkgY29uc3QKK3sKKyAgICBpbnQgeDEgPSAwOworICAgIGludCB5MSA9
IDA7CisgICAgaW50IHgyID0gbV90aWxlU2l6ZS53aWR0aCgpOworICAgIGludCB5MiA9IG1fdGls
ZVNpemUuaGVpZ2h0KCk7CisKKyAgICAvLyBBZGQgc3BhY2UgZm9yIHRyYW5zcGFyZW50IGJvcmRl
cnMgdG8gdGlsZXMgdGhhdCBhcmUgb24gdGhlIGVkZ2UKKyAgICAvLyBvZiB0aGUgbGF5ZXIuCisg
ICAgaWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkgeworICAgICAgICBpbnQgbnVtVGls
ZXNYID0gbV90aWxpbmdEYXRhLm51bVRpbGVzWCgpOworICAgICAgICBpbnQgbnVtVGlsZXNZID0g
bV90aWxpbmdEYXRhLm51bVRpbGVzWSgpOworICAgICAgICBpbnQgaW5kZXggPSBtX3RpbGluZ0Rh
dGEudGlsZUluZGV4KHRpbGUtPmkoKSwgdGlsZS0+aigpKTsKKworICAgICAgICBpZiAobV90aWxp
bmdEYXRhLnRpbGVYSW5kZXgoaW5kZXgpID09IDApCisgICAgICAgICAgICB4MS0tOworICAgICAg
ICBpZiAobV90aWxpbmdEYXRhLnRpbGVZSW5kZXgoaW5kZXgpID09IDApCisgICAgICAgICAgICB5
MS0tOworICAgICAgICBpZiAobV90aWxpbmdEYXRhLnRpbGVYSW5kZXgoaW5kZXgpID09IChudW1U
aWxlc1ggLSAxKSkKKyAgICAgICAgICAgIHgyKys7CisgICAgICAgIGlmIChtX3RpbGluZ0RhdGEu
dGlsZVlJbmRleChpbmRleCkgPT0gKG51bVRpbGVzWSAtIDEpKQorICAgICAgICAgICAgeTIrKzsK
KyAgICB9CisKKyAgICByZXR1cm4gSW50UmVjdCh4MSwgeTEsIHgyIC0geDEsIHkyIC0geTEpOwor
fQorCiB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVj
dCYgY29udGVudFJlY3QpCiB7CiAgICAgaWYgKGNvbnRlbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3Nr
aXBzRHJhdykKQEAgLTI0MCwxMCArMjY4LDEzIEBACiAgICAgICAgICAgICBUaWxlKiB0aWxlID0g
dGlsZUF0KGksIGopOwogICAgICAgICAgICAgaWYgKCF0aWxlKQogICAgICAgICAgICAgICAgIHRp
bGUgPSBjcmVhdGVUaWxlKGksIGopOwotICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCkt
PmlzVmFsaWQobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQorCisgICAgICAg
ICAgICAvLyBVc2UgdGlsZVRleFJlY3Qgd2hpY2ggaW5jbHVkZXMgc3BhY2UgZm9yIHRyYW5zcGFy
ZW50IGJvcmRlcnMuCisgICAgICAgICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4UmVjdCh0
aWxlKTsKKyAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5pc1ZhbGlkKHRleFJlY3Qu
c2l6ZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpCiAgICAgICAgICAgICAgICAgdGlsZS0+
bV9kaXJ0eUxheWVyUmVjdCA9IHRpbGVMYXllclJlY3QodGlsZSk7CiAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGlsZVNpemUsIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0JBKTsKKyAgICAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCkt
PnJlc2VydmUodGV4UmVjdC5zaXplKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKTsKICAgICAg
ICAgICAgIGRpcnR5TGF5ZXJSZWN0LnVuaXRlKHRpbGUtPm1fZGlydHlMYXllclJlY3QpOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMjg4LDggKzMxOSwxMCBAQAogICAgICAgICAgICAgaWYgKHNvdXJj
ZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgICAg
ICAvLyBVc2UgdGlsZVRleFJlY3Qgd2hpY2ggaW5jbHVkZXMgc3BhY2UgZm9yIHRyYW5zcGFyZW50
IGJvcmRlcnMuCisgICAgICAgICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4UmVjdCh0aWxl
KTsKICAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5pc1Jlc2VydmVkKCkpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+cmVzZXJ2ZShtX3RpbGVTaXplLCBH
cmFwaGljc0NvbnRleHQzRDo6UkdCQSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRpbGUtPnRl
eHR1cmUoKS0+cmVzZXJ2ZSh0ZXhSZWN0LnNpemUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEp
KSB7CiAgICAgICAgICAgICAgICAgICAgIG1fc2tpcHNEcmF3ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgICAgcmVzZXQoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjk3LDcg
KzMzMCw3IEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aWxl
LXNwYWNlIHJlY3RhbmdsZSB0byB1cGxvYWQgaW50by4KLSAgICAgICAgICAgIEludFJlY3QgZGVz
dFJlY3QoSW50UG9pbnQoc291cmNlUmVjdC54KCkgLSBhbmNob3IueCgpLCBzb3VyY2VSZWN0Lnko
KSAtIGFuY2hvci55KCkpLCBzb3VyY2VSZWN0LnNpemUoKSk7CisgICAgICAgICAgICBJbnRSZWN0
IGRlc3RSZWN0KEludFBvaW50KHNvdXJjZVJlY3QueCgpIC0gYW5jaG9yLngoKSAtIHRleFJlY3Qu
eCgpLCBzb3VyY2VSZWN0LnkoKSAtIGFuY2hvci55KCkgLSB0ZXhSZWN0LnkoKSksIHNvdXJjZVJl
Y3Quc2l6ZSgpKTsKICAgICAgICAgICAgIGlmIChkZXN0UmVjdC54KCkgPCAwKQogICAgICAgICAg
ICAgICAgIENSQVNIKCk7CiAgICAgICAgICAgICBpZiAoZGVzdFJlY3QueSgpIDwgMCkKQEAgLTM1
OSwxMCArMzkyLDExIEBACiAgICAgICAgICAgICB0aWxlTWF0cml4LnRyYW5zbGF0ZTNkKHRpbGVS
ZWN0LngoKSArIHRpbGVSZWN0LndpZHRoKCkgLyAyLjAsIHRpbGVSZWN0LnkoKSArIHRpbGVSZWN0
LmhlaWdodCgpIC8gMi4wLCAwKTsKIAogICAgICAgICAgICAgSW50UG9pbnQgdGV4T2Zmc2V0ID0g
bV90aWxpbmdEYXRhLnRleHR1cmVPZmZzZXQodGlsZS0+aSgpLCB0aWxlLT5qKCkpOwotICAgICAg
ICAgICAgZmxvYXQgdGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdGlsZVNpemUud2lk
dGgoKSk7Ci0gICAgICAgICAgICBmbG9hdCB0aWxlSGVpZ2h0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KG1fdGlsZVNpemUuaGVpZ2h0KCkpOwotICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWCA9
IHRleE9mZnNldC54KCkgLyB0aWxlV2lkdGg7Ci0gICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xh
dGVZID0gdGV4T2Zmc2V0LnkoKSAvIHRpbGVIZWlnaHQ7CisgICAgICAgICAgICBJbnRSZWN0IHRl
eFJlY3QgPSB0aWxlVGV4UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGZsb2F0IHRpbGVXaWR0aCA9
IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgZmxvYXQg
dGlsZUhlaWdodCA9IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LmhlaWdodCgpKTsKKyAgICAg
ICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVggPSAodGV4T2Zmc2V0LngoKSAtIHRleFJlY3QueCgp
KSAvIHRpbGVXaWR0aDsKKyAgICAgICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVkgPSAodGV4T2Zm
c2V0LnkoKSAtIHRleFJlY3QueSgpKSAvIHRpbGVIZWlnaHQ7CiAgICAgICAgICAgICBmbG9hdCB0
ZXhTY2FsZVggPSB0aWxlUmVjdC53aWR0aCgpIC8gdGlsZVdpZHRoOwogICAgICAgICAgICAgZmxv
YXQgdGV4U2NhbGVZID0gdGlsZVJlY3QuaGVpZ2h0KCkgLyB0aWxlSGVpZ2h0OwogICAgICAgICAg
ICAgLy8gT3BlbkdMIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJvdHRvbS11cC4KQEAgLTM3MSw3ICs0
MDUsMzggQEAKICAgICAgICAgICAgICAgICB0ZXhUcmFuc2xhdGVZICs9IDEuMDsKICAgICAgICAg
ICAgICAgICB0ZXhTY2FsZVkgKj0gLTEuMDsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
T3duUHRyPEdlb21ldHJ5QmluZGluZz4gZ2VvbWV0cnk7CisKKyAgICAgICAgICAgIC8vIENyZWF0
ZSBnZW9tZXRyeSBiaW5kaW5nIGFkanVzdGVkIGZvciBmaWx0ZXJpbmcgb2YgbGF5ZXIgZWRnZXMu
CisgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRhLmJvcmRlclRleGVscygpKSB7CisgICAgICAg
ICAgICAgICAgaW50IG51bVRpbGVzWCA9IG1fdGlsaW5nRGF0YS5udW1UaWxlc1goKTsKKyAgICAg
ICAgICAgICAgICBpbnQgbnVtVGlsZXNZID0gbV90aWxpbmdEYXRhLm51bVRpbGVzWSgpOworICAg
ICAgICAgICAgICAgIGludCBpbmRleCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgp
LCB0aWxlLT5qKCkpOworICAgICAgICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyBmaWx0ZXIgPSAw
OworCisgICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWEluZGV4KGluZGV4KSA9
PSAwKQorICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgfD0gRmlsdGVyTGVmdEVkZ2U7CisgICAg
ICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWUluZGV4KGluZGV4KSA9PSAwKQorICAg
ICAgICAgICAgICAgICAgICBmaWx0ZXIgfD0gRmlsdGVyVG9wRWRnZTsKKyAgICAgICAgICAgICAg
ICBpZiAobV90aWxpbmdEYXRhLnRpbGVYSW5kZXgoaW5kZXgpID09IChudW1UaWxlc1ggLSAxKSkK
KyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlclJpZ2h0RWRnZTsKKyAgICAgICAg
ICAgICAgICBpZiAobV90aWxpbmdEYXRhLnRpbGVZSW5kZXgoaW5kZXgpID09IChudW1UaWxlc1kg
LSAxKSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlckJvdHRvbUVkZ2U7CisK
KyAgICAgICAgICAgICAgICBnZW9tZXRyeSA9IGFkb3B0UHRyKG5ldyBHZW9tZXRyeUJpbmRpbmco
Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGlsZU1hdHJpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGlsZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcikpOworCisgICAgICAgICAgICAg
ICAgZ2VvbWV0cnktPnByZXBhcmVGb3JEcmF3KCk7CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGRyYXdUZXh0dXJlZFF1YWQoY29udGV4dCwgbGF5ZXJSZW5kZXJlcigpLT5wcm9qZWN0aW9u
TWF0cml4KCksIHRpbGVNYXRyaXgsIHRpbGVSZWN0LndpZHRoKCksIHRpbGVSZWN0LmhlaWdodCgp
LCBvcGFjaXR5LCB0ZXhUcmFuc2xhdGVYLCB0ZXhUcmFuc2xhdGVZLCB0ZXhTY2FsZVgsIHRleFNj
YWxlWSwgcHJvZ3JhbSk7CisKKyAgICAgICAgICAgIC8vIFJlc3RvcmUgZGVmYXVsdCBnZW9tZXRy
eSBiaW5kaW5nLgorICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkK
KyAgICAgICAgICAgICAgICBsYXllclJlbmRlcmVyKCktPnNoYXJlZEdlb21ldHJ5KCktPnByZXBh
cmVGb3JEcmF3KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHJl
dmlzaW9uIDg2ODI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clRpbGVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDYgKzEyMCw3IEBACiAgICAg
VGlsZSogdGlsZUF0KGludCwgaW50KSBjb25zdDsKICAgICBJbnRSZWN0IHRpbGVDb250ZW50UmVj
dChjb25zdCBUaWxlKikgY29uc3Q7CiAgICAgSW50UmVjdCB0aWxlTGF5ZXJSZWN0KGNvbnN0IFRp
bGUqKSBjb25zdDsKKyAgICBJbnRSZWN0IHRpbGVUZXhSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsK
IAogICAgIEludFNpemUgbV90aWxlU2l6ZTsKICAgICBJbnRQb2ludCBtX2xheWVyUG9zaXRpb247
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGlu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
ZW9tZXRyeUJpbmRpbmcuY3BwCShyZXZpc2lvbiA4NjgyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTksMTMgKzU5LDExNyBAQAogICAgIG1faW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCitzdGF0aWMg
Ym9vbCBpc0NDVyhjb25zdCBGbG9hdFBvaW50KiBwdHMpCit7CisgICAgRmxvYXRQb2ludCB2MSA9
IEZsb2F0UG9pbnQocHRzWzFdLngoKSAtIHB0c1swXS54KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHRzWzFdLnkoKSAtIHB0c1swXS55KCkpOworICAgIEZsb2F0UG9pbnQgdjIg
PSBGbG9hdFBvaW50KHB0c1syXS54KCkgLSBwdHNbMV0ueCgpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB0c1syXS55KCkgLSBwdHNbMV0ueSgpKTsKKyAgICByZXR1cm4gKHYxLngo
KSAqIHYyLnkoKSAtIHYxLnkoKSAqIHYyLngoKSkgPCAwOworfQorCitHZW9tZXRyeUJpbmRpbmc6
Okdlb21ldHJ5QmluZGluZyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiByZWN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRnZUZpbHRlckZsYWdzIGZpbHRlcikK
KyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9xdWFkVmVydGljZXNWYm8oMCkKKyAg
ICAsIG1fcXVhZEVsZW1lbnRzVmJvKDApCisgICAgLCBtX2luaXRpYWxpemVkKGZhbHNlKQorewor
ICAgIGludCB4MSA9IHJlY3QueCgpOworICAgIGludCB5MSA9IHJlY3QueSgpOworICAgIGludCB4
MiA9IHJlY3QubWF4WCgpOworICAgIGludCB5MiA9IHJlY3QubWF4WSgpOworCisgICAgLy8gSW5j
bHVkZSAuCisgICAgaWYgKGZpbHRlciAmIEZpbHRlckxlZnRFZGdlKQorICAgICAgICB4MS0tOwor
ICAgIGlmIChmaWx0ZXIgJiBGaWx0ZXJUb3BFZGdlKQorICAgICAgICB5MS0tOworICAgIGlmIChm
aWx0ZXIgJiBGaWx0ZXJSaWdodEVkZ2UpCisgICAgICAgIHgyKys7CisgICAgaWYgKGZpbHRlciAm
IEZpbHRlckJvdHRvbUVkZ2UpCisgICAgICAgIHkyKys7CisKKyAgICBGbG9hdFBvaW50IHB0WzRd
OworICAgIHB0WzBdID0gRmxvYXRQb2ludCh4MSwgeTEpOworICAgIHB0WzFdID0gRmxvYXRQb2lu
dCh4MiwgeTEpOworICAgIHB0WzJdID0gRmxvYXRQb2ludCh4MiwgeTIpOworICAgIHB0WzNdID0g
RmxvYXRQb2ludCh4MSwgeTIpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspCisg
ICAgICAgIHB0W2ldID0gbWF0cml4Lm1hcFBvaW50KHB0W2ldKTsKKworICAgIEVkZ2UgZWRnZXNb
NF07CisgICAgRmxvYXRQb2ludCBwID0gcHRbM107CisgICAgZmxvYXQgc2lnbiA9IGlzQ0NXKHB0
KSA/IC0xLjBmIDogMS4wZjsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAg
ICAgICBGbG9hdFBvaW50IHEgPSBwdFtpXTsKKyAgICAgICAgRmxvYXRQb2ludCB0YW5nZW50ID0g
RmxvYXRQb2ludChwLnkoKSAtIHEueSgpLCBxLngoKSAtIHAueCgpKTsKKyAgICAgICAgZmxvYXQg
c2NhbGUgPSBzaWduIC8gdGFuZ2VudC5sZW5ndGgoKTsKKyAgICAgICAgZmxvYXQgY3Jvc3MyID0g
cC54KCkgKiBxLnkoKSAtIHEueCgpICogcC55KCk7CisKKyAgICAgICAgZWRnZXNbaV0gPSBFZGdl
KHRhbmdlbnQueCgpICogc2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICB0YW5nZW50Lnko
KSAqIHNjYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3MyICogc2NhbGUgKyAoZmls
dGVyICYgKDEgPDwgaSkpICogMC41Zik7CisKKyAgICAgICAgcCA9IHE7CisgICAgfQorCisgICAg
Ly8gV2UgZG9uJ3QgY2FyZSBhYm91dCBaIGNvbXBvbmVudC4KKyAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBpbnZlcnNlID0KKyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobWF0cml4Lm0xMSgp
LCBtYXRyaXgubTEyKCksIDAuMCwgbWF0cml4Lm0xNCgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXRyaXgubTIxKCksIG1hdHJpeC5tMjIoKSwgMC4wLCBtYXRyaXgubTI0KCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJpeC5tMzEoKSwgbWF0cml4Lm0zMigpLCAx
LjAsIG1hdHJpeC5tMzQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm00
MSgpLCBtYXRyaXgubTQyKCksIDAuMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0
cml4Lm00NCgpKS5pbnZlcnNlKCk7CisKKyAgICBkb3VibGUgc2NhbGVYID0gMS4wIC8gcmVjdC53
aWR0aCgpOworICAgIGRvdWJsZSBzY2FsZVkgPSAxLjAgLyByZWN0LmhlaWdodCgpOworICAgIGRv
dWJsZSB0cmFuc2xhdGVYID0gcmVjdC54KCkgKyByZWN0LndpZHRoKCkgLyAyLjA7CisgICAgZG91
YmxlIHRyYW5zbGF0ZVkgPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLyAyLjA7CisKKyAgICAg
Ly8gVGhlIHR3byB0cmlhbmdsZXMgdGhhdCBtYWtlIHVwIHRoZSBsYXllciBxdWFkLgorICAgIHVp
bnQxNl90IGluZGljZXNbXSA9IHsgMCwgMSwgMiwgMCwgMiwgMyB9OworICAgIGZsb2F0IHZlcnRp
Y2VzWzIwXTsKKworICAgIEVkZ2UgcHJldl9lZGdlID0gZWRnZXNbM107CisgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgRWRnZSBlZGdlID0gZWRnZXNbaV07CisKKyAg
ICAgICAgcHRbaV0gPSBwcmV2X2VkZ2UuaW50ZXJzZWN0KGVkZ2UpOworICAgICAgICBwdFtpXSA9
IGludmVyc2UubWFwUG9pbnQocHRbaV0pOworCisgICAgICAgIC8vIFZlcnRleCBwb3NpdGlvbiBu
b3JtYWxpemVkIHRvIHJlY3QuCisgICAgICAgIHZlcnRpY2VzW2kgKiA1ICsgMF0gPSAocHRbaV0u
eCgpIC0gdHJhbnNsYXRlWCkgKiBzY2FsZVg7CisgICAgICAgIHZlcnRpY2VzW2kgKiA1ICsgMV0g
PSAocHRbaV0ueSgpIC0gdHJhbnNsYXRlWSkgKiBzY2FsZVk7CisgICAgICAgIHZlcnRpY2VzW2kg
KiA1ICsgMl0gPSAwLjBmOworCisgICAgICAgIC8vIFRleHR1cmUgY29vcmRpbmF0ZXMuCisgICAg
ICAgIHZlcnRpY2VzW2kgKiA1ICsgM10gPSAocHRbaV0ueCgpIC0gcmVjdC54KCkpICogc2NhbGVY
OworICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDRdID0gKHB0W2ldLnkoKSAtIHJlY3QueSgpKSAq
IHNjYWxlWTsKKworICAgICAgICBwcmV2X2VkZ2UgPSBlZGdlOworICAgIH0KKworICAgIEdMQyht
X2NvbnRleHQsIG1fcXVhZFZlcnRpY2VzVmJvID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKSk7
CisgICAgR0xDKG1fY29udGV4dCwgbV9xdWFkRWxlbWVudHNWYm8gPSBtX2NvbnRleHQtPmNyZWF0
ZUJ1ZmZlcigpKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR3Jh
cGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgbV9xdWFkVmVydGljZXNWYm8pKTsKKyAgICBH
TEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJ1ZmZlckRhdGEoR3JhcGhpY3NDb250ZXh0M0Q6OkFS
UkFZX0JVRkZFUiwgc2l6ZW9mKHZlcnRpY2VzKSwgdmVydGljZXMsIEdyYXBoaWNzQ29udGV4dDNE
OjpTVEFUSUNfRFJBVykpOworICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1ZmZl
cihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIG1fcXVhZEVsZW1lbnRz
VmJvKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBoaWNz
Q29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKGluZGljZXMpLCBpbmRpY2Vz
LCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpKTsKKworICAgIG1faW5pdGlhbGl6ZWQg
PSB0cnVlOworfQorCiBHZW9tZXRyeUJpbmRpbmc6On5HZW9tZXRyeUJpbmRpbmcoKQogewogICAg
IEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+ZGVsZXRlQnVmZmVyKG1fcXVhZFZlcnRpY2VzVmJv
KSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxldGVCdWZmZXIobV9xdWFkRWxl
bWVudHNWYm8pKTsKIH0KIAotdm9pZCBHZW9tZXRyeUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3KCkK
K3ZvaWQgR2VvbWV0cnlCaW5kaW5nOjpwcmVwYXJlRm9yRHJhdygpIGNvbnN0CiB7CiAgICAgR0xD
KG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJB
WV9CVUZGRVIsIHF1YWRWZXJ0aWNlc1ZibygpKSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250
ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwg
cXVhZEVsZW1lbnRzVmJvKCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94911</attachid>
            <date>2011-05-25 20:57:13 -0700</date>
            <delta_ts>2011-05-28 08:37:18 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-layer-aa-v5.diff</filename>
            <type>text/plain</type>
            <size>13174</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9t
ZXRyeUJpbmRpbmcuaAkocmV2aXNpb24gODcxNDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSAr
MjgsMzAgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAorI2luY2x1ZGUg
IkludFJlY3QuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCitlbnVtIEVkZ2VGaWx0ZXIgewor
ICAgIEZpbHRlckxlZnRFZGdlICAgPSAxIDw8IDAsCisgICAgRmlsdGVyVG9wRWRnZSAgICA9IDEg
PDwgMSwKKyAgICBGaWx0ZXJSaWdodEVkZ2UgID0gMSA8PCAyLAorICAgIEZpbHRlckJvdHRvbUVk
Z2UgPSAxIDw8IDMKK307Cit0eXBlZGVmIHVuc2lnbmVkIEVkZ2VGaWx0ZXJGbGFnczsKKwogY2xh
c3MgR2VvbWV0cnlCaW5kaW5nIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBHZW9tZXRyeUJpbmRp
bmcoR3JhcGhpY3NDb250ZXh0M0QqKTsKKyAgICBleHBsaWNpdCBHZW9tZXRyeUJpbmRpbmcoR3Jh
cGhpY3NDb250ZXh0M0QqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElu
dFJlY3QmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGdlRmlsdGVyRmxhZ3MpOwog
ICAgIH5HZW9tZXRyeUJpbmRpbmcoKTsKIAogICAgIGJvb2wgaW5pdGlhbGl6ZWQoKSBjb25zdCB7
IHJldHVybiBtX2luaXRpYWxpemVkOyB9CkBAIC00NSw3ICs2MCw3IEBACiAgICAgdW5zaWduZWQg
cXVhZFZlcnRpY2VzVmJvKCkgY29uc3QgeyByZXR1cm4gbV9xdWFkVmVydGljZXNWYm87IH0KICAg
ICB1bnNpZ25lZCBxdWFkRWxlbWVudHNWYm8oKSBjb25zdCB7IHJldHVybiBtX3F1YWRFbGVtZW50
c1ZibzsgfQogCi0gICAgdm9pZCBwcmVwYXJlRm9yRHJhdygpOworICAgIHZvaWQgcHJlcGFyZUZv
ckRyYXcoKSBjb25zdDsKIAogICAgIC8vIEFsbCBsYXllciBzaGFkZXJzIHNoYXJlIHRoZSBzYW1l
IGF0dHJpYnV0ZSBsb2NhdGlvbnMgZm9yIHRoZSB2ZXJ0ZXgKICAgICAvLyBwb3NpdGlvbnMgYW5k
IHRleHR1cmUgY29vcmRpbmF0ZXMuIFRoaXMgYWxsb3dzIHN3aXRjaGluZyBzaGFkZXJzIHdpdGhv
dXQKQEAgLTU0LDYgKzY5LDIxIEBACiAgICAgc3RhdGljIGludCB0ZXhDb29yZEF0dHJpYkxvY2F0
aW9uKCkgeyByZXR1cm4gMTsgfQogCiBwcml2YXRlOgorICAgIGNsYXNzIEVkZ2UgeworICAgIHB1
YmxpYzoKKyAgICAgICAgRWRnZSgpIHsgfQorICAgICAgICBFZGdlKGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IHopIDogZlgoeCksIGZZKHkpLCBmWih6KSB7IH0KKyAgICAgICAgRmxvYXRQb2ludCBp
bnRlcnNlY3QoY29uc3QgRWRnZSYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBGbG9hdFBvaW50KAorICAgICAgICAgICAgICAgIChmWSAqIG90aGVyLmZaIC0gb3RoZXIuZlkg
KiBmWikgLworICAgICAgICAgICAgICAgIChmWCAqIG90aGVyLmZZIC0gb3RoZXIuZlggKiBmWSks
CisgICAgICAgICAgICAgICAgKGZYICogb3RoZXIuZlogLSBvdGhlci5mWCAqIGZaKSAvCisgICAg
ICAgICAgICAgICAgKG90aGVyLmZYICogZlkgLSBmWCAqIG90aGVyLmZZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZlgsIGZZLCBmWjsKKyAgICB9OworCiAgICAgR3JhcGhpY3NDb250ZXh0
M0QqIG1fY29udGV4dDsKICAgICB1bnNpZ25lZCBtX3F1YWRWZXJ0aWNlc1ZibzsKICAgICB1bnNp
Z25lZCBtX3F1YWRFbGVtZW50c1ZibzsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9u
IDg3MTQxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVy
Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
TGF5ZXJUaWxlckNocm9taXVtLmgiCiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0RDaHJvbWl1bS5o
IgorI2luY2x1ZGUgIkdlb21ldHJ5QmluZGluZy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmgiCkBAIC0xODQsNiArMTg1LDMzIEBACiAgICAgcmV0dXJuIGxheWVyUmVj
dDsKIH0KIAorSW50UmVjdCBMYXllclRpbGVyQ2hyb21pdW06OnRpbGVUZXhSZWN0KGNvbnN0IFRp
bGUqIHRpbGUpIGNvbnN0Cit7CisgICAgaW50IHgxID0gMDsKKyAgICBpbnQgeTEgPSAwOworICAg
IGludCB4MiA9IG1fdGlsZVNpemUud2lkdGgoKTsKKyAgICBpbnQgeTIgPSBtX3RpbGVTaXplLmhl
aWdodCgpOworCisgICAgLy8gQWRkIHNwYWNlIGZvciB0cmFuc3BhcmVudCBib3JkZXJzIHRvIHRp
bGVzIHRoYXQgYXJlIG9uIHRoZSBlZGdlCisgICAgLy8gb2YgdGhlIGxheWVyLgorICAgIGlmICht
X3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpIHsKKyAgICAgICAgaW50IG51bVRpbGVzWCA9IG1f
dGlsaW5nRGF0YS5udW1UaWxlc1goKTsKKyAgICAgICAgaW50IG51bVRpbGVzWSA9IG1fdGlsaW5n
RGF0YS5udW1UaWxlc1koKTsKKyAgICAgICAgaW50IGluZGV4ID0gbV90aWxpbmdEYXRhLnRpbGVJ
bmRleCh0aWxlLT5pKCksIHRpbGUtPmooKSk7CisKKyAgICAgICAgaWYgKCFtX3RpbGluZ0RhdGEu
dGlsZVhJbmRleChpbmRleCkpCisgICAgICAgICAgICB4MS0tOworICAgICAgICBpZiAoIW1fdGls
aW5nRGF0YS50aWxlWUluZGV4KGluZGV4KSkKKyAgICAgICAgICAgIHkxLS07CisgICAgICAgIGlm
IChtX3RpbGluZ0RhdGEudGlsZVhJbmRleChpbmRleCkgPT0gKG51bVRpbGVzWCAtIDEpKQorICAg
ICAgICAgICAgeDIrKzsKKyAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWUluZGV4KGluZGV4
KSA9PSAobnVtVGlsZXNZIC0gMSkpCisgICAgICAgICAgICB5MisrOworICAgIH0KKworICAgIHJl
dHVybiBJbnRSZWN0KHgxLCB5MSwgeDIgLSB4MSwgeTIgLSB5MSk7Cit9CisKIHZvaWQgTGF5ZXJU
aWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCkK
IHsKICAgICBpZiAoY29udGVudFJlY3QuaXNFbXB0eSgpIHx8IG1fc2tpcHNEcmF3KQpAQCAtMjQw
LDEwICsyNjgsMTMgQEAKICAgICAgICAgICAgIFRpbGUqIHRpbGUgPSB0aWxlQXQoaSwgaik7CiAg
ICAgICAgICAgICBpZiAoIXRpbGUpCiAgICAgICAgICAgICAgICAgdGlsZSA9IGNyZWF0ZVRpbGUo
aSwgaik7Ci0gICAgICAgICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+aXNWYWxpZChtX3RpbGVT
aXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpCisKKyAgICAgICAgICAgIC8vIFVzZSB0aWxl
VGV4UmVjdCB3aGljaCBpbmNsdWRlcyBzcGFjZSBmb3IgdHJhbnNwYXJlbnQgYm9yZGVycy4KKyAg
ICAgICAgICAgIEludFJlY3QgdGV4UmVjdCA9IHRpbGVUZXhSZWN0KHRpbGUpOworICAgICAgICAg
ICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPmlzVmFsaWQodGV4UmVjdC5zaXplKCksIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBKSkKICAgICAgICAgICAgICAgICB0aWxlLT5tX2RpcnR5TGF5ZXJSZWN0
ID0gdGlsZUxheWVyUmVjdCh0aWxlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICB0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkEpOworICAgICAgICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+cmVzZXJ2ZSh0ZXhSZWN0
LnNpemUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpOwogICAgICAgICAgICAgZGlydHlMYXll
clJlY3QudW5pdGUodGlsZS0+bV9kaXJ0eUxheWVyUmVjdCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC0yODgsOCArMzE5LDEwIEBACiAgICAgICAgICAgICBpZiAoc291cmNlUmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgICAgIC8vIFVzZSB0aWxlVGV4
UmVjdCB3aGljaCBpbmNsdWRlcyBzcGFjZSBmb3IgdHJhbnNwYXJlbnQgYm9yZGVycy4KKyAgICAg
ICAgICAgIEludFJlY3QgdGV4UmVjdCA9IHRpbGVUZXhSZWN0KHRpbGUpOwogICAgICAgICAgICAg
aWYgKCF0aWxlLT50ZXh0dXJlKCktPmlzUmVzZXJ2ZWQoKSkgewotICAgICAgICAgICAgICAgIGlm
ICghdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGlsZVNpemUsIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0JBKSkgeworICAgICAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZl
KHRleFJlY3Quc2l6ZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgbV9za2lwc0RyYXcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICByZXNldCgp
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yOTcsNyArMzMwLDcgQEAKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRpbGUtc3BhY2UgcmVjdGFuZ2xl
IHRvIHVwbG9hZCBpbnRvLgotICAgICAgICAgICAgSW50UmVjdCBkZXN0UmVjdChJbnRQb2ludChz
b3VyY2VSZWN0LngoKSAtIGFuY2hvci54KCksIHNvdXJjZVJlY3QueSgpIC0gYW5jaG9yLnkoKSks
IHNvdXJjZVJlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIEludFJlY3QgZGVzdFJlY3QoSW50UG9p
bnQoc291cmNlUmVjdC54KCkgLSBhbmNob3IueCgpIC0gdGV4UmVjdC54KCksIHNvdXJjZVJlY3Qu
eSgpIC0gYW5jaG9yLnkoKSAtIHRleFJlY3QueSgpKSwgc291cmNlUmVjdC5zaXplKCkpOwogICAg
ICAgICAgICAgaWYgKGRlc3RSZWN0LngoKSA8IDApCiAgICAgICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgICAgIGlmIChkZXN0UmVjdC55KCkgPCAwKQpAQCAtMzU5LDEwICszOTIsMTEgQEAK
ICAgICAgICAgICAgIHRpbGVNYXRyaXgudHJhbnNsYXRlM2QodGlsZVJlY3QueCgpICsgdGlsZVJl
Y3Qud2lkdGgoKSAvIDIuMCwgdGlsZVJlY3QueSgpICsgdGlsZVJlY3QuaGVpZ2h0KCkgLyAyLjAs
IDApOwogCiAgICAgICAgICAgICBJbnRQb2ludCB0ZXhPZmZzZXQgPSBtX3RpbGluZ0RhdGEudGV4
dHVyZU9mZnNldCh0aWxlLT5pKCksIHRpbGUtPmooKSk7Ci0gICAgICAgICAgICBmbG9hdCB0aWxl
V2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4obV90aWxlU2l6ZS53aWR0aCgpKTsKLSAgICAgICAg
ICAgIGZsb2F0IHRpbGVIZWlnaHQgPSBzdGF0aWNfY2FzdDxmbG9hdD4obV90aWxlU2l6ZS5oZWln
aHQoKSk7Ci0gICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVYID0gdGV4T2Zmc2V0LngoKSAv
IHRpbGVXaWR0aDsKLSAgICAgICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVkgPSB0ZXhPZmZzZXQu
eSgpIC8gdGlsZUhlaWdodDsKKyAgICAgICAgICAgIEludFJlY3QgdGV4UmVjdCA9IHRpbGVUZXhS
ZWN0KHRpbGUpOworICAgICAgICAgICAgZmxvYXQgdGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHRleFJlY3Qud2lkdGgoKSk7CisgICAgICAgICAgICBmbG9hdCB0aWxlSGVpZ2h0ID0gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHRleFJlY3QuaGVpZ2h0KCkpOworICAgICAgICAgICAgZmxvYXQgdGV4
VHJhbnNsYXRlWCA9ICh0ZXhPZmZzZXQueCgpIC0gdGV4UmVjdC54KCkpIC8gdGlsZVdpZHRoOwor
ICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWSA9ICh0ZXhPZmZzZXQueSgpIC0gdGV4UmVj
dC55KCkpIC8gdGlsZUhlaWdodDsKICAgICAgICAgICAgIGZsb2F0IHRleFNjYWxlWCA9IHRpbGVS
ZWN0LndpZHRoKCkgLyB0aWxlV2lkdGg7CiAgICAgICAgICAgICBmbG9hdCB0ZXhTY2FsZVkgPSB0
aWxlUmVjdC5oZWlnaHQoKSAvIHRpbGVIZWlnaHQ7CiAgICAgICAgICAgICAvLyBPcGVuR0wgY29v
cmRpbmF0ZSBzeXN0ZW0gaXMgYm90dG9tLXVwLgpAQCAtMzcxLDcgKzQwNSwzOCBAQAogICAgICAg
ICAgICAgICAgIHRleFRyYW5zbGF0ZVkgKz0gMS4wOwogICAgICAgICAgICAgICAgIHRleFNjYWxl
WSAqPSAtMS4wOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBPd25QdHI8R2VvbWV0cnlC
aW5kaW5nPiBnZW9tZXRyeTsKKworICAgICAgICAgICAgLy8gQ3JlYXRlIGdlb21ldHJ5IGJpbmRp
bmcgYWRqdXN0ZWQgZm9yIGZpbHRlcmluZyBvZiBsYXllciBlZGdlcy4KKyAgICAgICAgICAgIGlm
IChtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbnVt
VGlsZXNYID0gbV90aWxpbmdEYXRhLm51bVRpbGVzWCgpOworICAgICAgICAgICAgICAgIGludCBu
dW1UaWxlc1kgPSBtX3RpbGluZ0RhdGEubnVtVGlsZXNZKCk7CisgICAgICAgICAgICAgICAgaW50
IGluZGV4ID0gbV90aWxpbmdEYXRhLnRpbGVJbmRleCh0aWxlLT5pKCksIHRpbGUtPmooKSk7Cisg
ICAgICAgICAgICAgICAgRWRnZUZpbHRlckZsYWdzIGZpbHRlciA9IDA7CisKKyAgICAgICAgICAg
ICAgICBpZiAoIW1fdGlsaW5nRGF0YS50aWxlWEluZGV4KGluZGV4KSkKKyAgICAgICAgICAgICAg
ICAgICAgZmlsdGVyIHw9IEZpbHRlckxlZnRFZGdlOworICAgICAgICAgICAgICAgIGlmICghbV90
aWxpbmdEYXRhLnRpbGVZSW5kZXgoaW5kZXgpKQorICAgICAgICAgICAgICAgICAgICBmaWx0ZXIg
fD0gRmlsdGVyVG9wRWRnZTsKKyAgICAgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRhLnRpbGVY
SW5kZXgoaW5kZXgpID09IChudW1UaWxlc1ggLSAxKSkKKyAgICAgICAgICAgICAgICAgICAgZmls
dGVyIHw9IEZpbHRlclJpZ2h0RWRnZTsKKyAgICAgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRh
LnRpbGVZSW5kZXgoaW5kZXgpID09IChudW1UaWxlc1kgLSAxKSkKKyAgICAgICAgICAgICAgICAg
ICAgZmlsdGVyIHw9IEZpbHRlckJvdHRvbUVkZ2U7CisKKyAgICAgICAgICAgICAgICBnZW9tZXRy
eSA9IGFkb3B0UHRyKG5ldyBHZW9tZXRyeUJpbmRpbmcoY29udGV4dCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZU1hdHJpeCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGls
ZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZpbHRlcikpOworCisgICAgICAgICAgICAgICAgZ2VvbWV0cnktPnByZXBhcmVGb3JE
cmF3KCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGRyYXdUZXh0dXJlZFF1YWQoY29u
dGV4dCwgbGF5ZXJSZW5kZXJlcigpLT5wcm9qZWN0aW9uTWF0cml4KCksIHRpbGVNYXRyaXgsIHRp
bGVSZWN0LndpZHRoKCksIHRpbGVSZWN0LmhlaWdodCgpLCBvcGFjaXR5LCB0ZXhUcmFuc2xhdGVY
LCB0ZXhUcmFuc2xhdGVZLCB0ZXhTY2FsZVgsIHRleFNjYWxlWSwgcHJvZ3JhbSk7CisKKyAgICAg
ICAgICAgIC8vIFJlc3RvcmUgZGVmYXVsdCBnZW9tZXRyeSBiaW5kaW5nLgorICAgICAgICAgICAg
aWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkKKyAgICAgICAgICAgICAgICBsYXllclJl
bmRlcmVyKCktPnNoYXJlZEdlb21ldHJ5KCktPnByZXBhcmVGb3JEcmF3KCk7CiAgICAgICAgIH0K
ICAgICB9CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGlsZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHJldmlzaW9uIDg3MTQxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIwLDYgKzEyMCw3IEBACiAgICAgVGlsZSogdGlsZUF0KGludCwgaW50KSBj
b25zdDsKICAgICBJbnRSZWN0IHRpbGVDb250ZW50UmVjdChjb25zdCBUaWxlKikgY29uc3Q7CiAg
ICAgSW50UmVjdCB0aWxlTGF5ZXJSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKKyAgICBJbnRSZWN0
IHRpbGVUZXhSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKIAogICAgIEludFNpemUgbV90aWxlU2l6
ZTsKICAgICBJbnRQb2ludCBtX2xheWVyUG9zaXRpb247CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuY3BwCShyZXZp
c2lvbiA4NzE0MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0
cnlCaW5kaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksMTMgKzU5LDExNyBAQAogICAgIG1f
aW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpc0NDVyhjb25zdCBGbG9hdFBv
aW50KiBwdHMpCit7CisgICAgRmxvYXRQb2ludCB2MSA9IEZsb2F0UG9pbnQocHRzWzFdLngoKSAt
IHB0c1swXS54KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRzWzFdLnkoKSAt
IHB0c1swXS55KCkpOworICAgIEZsb2F0UG9pbnQgdjIgPSBGbG9hdFBvaW50KHB0c1syXS54KCkg
LSBwdHNbMV0ueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0c1syXS55KCkg
LSBwdHNbMV0ueSgpKTsKKyAgICByZXR1cm4gKHYxLngoKSAqIHYyLnkoKSAtIHYxLnkoKSAqIHYy
LngoKSkgPCAwOworfQorCitHZW9tZXRyeUJpbmRpbmc6Okdlb21ldHJ5QmluZGluZyhHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBJbnRSZWN0JiByZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRWRnZUZpbHRlckZsYWdzIGZpbHRlcikKKyAgICA6IG1fY29udGV4dChjb250ZXh0
KQorICAgICwgbV9xdWFkVmVydGljZXNWYm8oMCkKKyAgICAsIG1fcXVhZEVsZW1lbnRzVmJvKDAp
CisgICAgLCBtX2luaXRpYWxpemVkKGZhbHNlKQoreworICAgIGludCB4MSA9IHJlY3QueCgpOwor
ICAgIGludCB5MSA9IHJlY3QueSgpOworICAgIGludCB4MiA9IHJlY3QubWF4WCgpOworICAgIGlu
dCB5MiA9IHJlY3QubWF4WSgpOworCisgICAgLy8gSW5jbHVkZSBib3JkZXIgdGV4ZWxzLgorICAg
IGlmIChmaWx0ZXIgJiBGaWx0ZXJMZWZ0RWRnZSkKKyAgICAgICAgeDEtLTsKKyAgICBpZiAoZmls
dGVyICYgRmlsdGVyVG9wRWRnZSkKKyAgICAgICAgeTEtLTsKKyAgICBpZiAoZmlsdGVyICYgRmls
dGVyUmlnaHRFZGdlKQorICAgICAgICB4MisrOworICAgIGlmIChmaWx0ZXIgJiBGaWx0ZXJCb3R0
b21FZGdlKQorICAgICAgICB5MisrOworCisgICAgRmxvYXRQb2ludCBwdFs0XTsKKyAgICBwdFsw
XSA9IEZsb2F0UG9pbnQoeDEsIHkxKTsKKyAgICBwdFsxXSA9IEZsb2F0UG9pbnQoeDIsIHkxKTsK
KyAgICBwdFsyXSA9IEZsb2F0UG9pbnQoeDIsIHkyKTsKKyAgICBwdFszXSA9IEZsb2F0UG9pbnQo
eDEsIHkyKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKQorICAgICAgICBwdFtp
XSA9IG1hdHJpeC5tYXBQb2ludChwdFtpXSk7CisKKyAgICBFZGdlIGVkZ2VzWzRdOworICAgIEZs
b2F0UG9pbnQgcCA9IHB0WzNdOworICAgIGZsb2F0IHNpZ24gPSBpc0NDVyhwdCkgPyAtMS4wZiA6
IDEuMGY7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgRmxvYXRQ
b2ludCBxID0gcHRbaV07CisgICAgICAgIEZsb2F0UG9pbnQgdGFuZ2VudCA9IEZsb2F0UG9pbnQo
cC55KCkgLSBxLnkoKSwgcS54KCkgLSBwLngoKSk7CisgICAgICAgIGZsb2F0IHNjYWxlID0gc2ln
biAvIHRhbmdlbnQubGVuZ3RoKCk7CisgICAgICAgIGZsb2F0IGNyb3NzMiA9IHAueCgpICogcS55
KCkgLSBxLngoKSAqIHAueSgpOworCisgICAgICAgIGVkZ2VzW2ldID0gRWRnZSh0YW5nZW50Lngo
KSAqIHNjYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgdGFuZ2VudC55KCkgKiBzY2FsZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNyb3NzMiAqIHNjYWxlICsgKGZpbHRlciAmICgxIDw8
IGkpKSAqIDAuNWYpOworCisgICAgICAgIHAgPSBxOworICAgIH0KKworICAgIC8vIFdlIGRvbid0
IGNhcmUgYWJvdXQgWiBjb21wb25lbnQuCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggaW52ZXJz
ZSA9CisgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KG1hdHJpeC5tMTEoKSwgbWF0cml4Lm0x
MigpLCAwLjAsIG1hdHJpeC5tMTQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0
cml4Lm0yMSgpLCBtYXRyaXgubTIyKCksIDAuMCwgbWF0cml4Lm0yNCgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXRyaXgubTMxKCksIG1hdHJpeC5tMzIoKSwgMS4wLCBtYXRyaXgu
bTM0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJpeC5tNDEoKSwgbWF0cml4
Lm00MigpLCAwLjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJpeC5tNDQoKSku
aW52ZXJzZSgpOworCisgICAgZG91YmxlIHNjYWxlWCA9IDEuMCAvIHJlY3Qud2lkdGgoKTsKKyAg
ICBkb3VibGUgc2NhbGVZID0gMS4wIC8gcmVjdC5oZWlnaHQoKTsKKyAgICBkb3VibGUgdHJhbnNs
YXRlWCA9IHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC8gMi4wOworICAgIGRvdWJsZSB0cmFuc2xh
dGVZID0gcmVjdC55KCkgKyByZWN0LmhlaWdodCgpIC8gMi4wOworCisgICAgIC8vIFRoZSB0d28g
dHJpYW5nbGVzIHRoYXQgbWFrZSB1cCB0aGUgbGF5ZXIgcXVhZC4KKyAgICB1aW50MTZfdCBpbmRp
Y2VzW10gPSB7IDAsIDEsIDIsIDAsIDIsIDMgfTsKKyAgICBmbG9hdCB2ZXJ0aWNlc1syMF07CisK
KyAgICBFZGdlIHByZXZFZGdlID0gZWRnZXNbM107CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0
OyBpKyspIHsKKyAgICAgICAgRWRnZSBlZGdlID0gZWRnZXNbaV07CisKKyAgICAgICAgcHRbaV0g
PSBwcmV2RWRnZS5pbnRlcnNlY3QoZWRnZSk7CisgICAgICAgIHB0W2ldID0gaW52ZXJzZS5tYXBQ
b2ludChwdFtpXSk7CisKKyAgICAgICAgLy8gVmVydGV4IHBvc2l0aW9uIG5vcm1hbGl6ZWQgdG8g
cmVjdC4KKyAgICAgICAgdmVydGljZXNbaSAqIDUgKyAwXSA9IChwdFtpXS54KCkgLSB0cmFuc2xh
dGVYKSAqIHNjYWxlWDsKKyAgICAgICAgdmVydGljZXNbaSAqIDUgKyAxXSA9IChwdFtpXS55KCkg
LSB0cmFuc2xhdGVZKSAqIHNjYWxlWTsKKyAgICAgICAgdmVydGljZXNbaSAqIDUgKyAyXSA9IDAu
MGY7CisKKyAgICAgICAgLy8gVGV4dHVyZSBjb29yZGluYXRlcy4KKyAgICAgICAgdmVydGljZXNb
aSAqIDUgKyAzXSA9IChwdFtpXS54KCkgLSByZWN0LngoKSkgKiBzY2FsZVg7CisgICAgICAgIHZl
cnRpY2VzW2kgKiA1ICsgNF0gPSAocHRbaV0ueSgpIC0gcmVjdC55KCkpICogc2NhbGVZOworCisg
ICAgICAgIHByZXZFZGdlID0gZWRnZTsKKyAgICB9CisKKyAgICBHTEMobV9jb250ZXh0LCBtX3F1
YWRWZXJ0aWNlc1ZibyA9IG1fY29udGV4dC0+Y3JlYXRlQnVmZmVyKCkpOworICAgIEdMQyhtX2Nv
bnRleHQsIG1fcXVhZEVsZW1lbnRzVmJvID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKSk7Cisg
ICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNE
OjpBUlJBWV9CVUZGRVIsIG1fcXVhZFZlcnRpY2VzVmJvKSk7CisgICAgR0xDKG1fY29udGV4dCwg
bV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIHNp
emVvZih2ZXJ0aWNlcyksIHZlcnRpY2VzLCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcp
KTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250
ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBtX3F1YWRFbGVtZW50c1ZibykpOworICAgIEdM
QyhtX2NvbnRleHQsIG1fY29udGV4dC0+YnVmZmVyRGF0YShHcmFwaGljc0NvbnRleHQzRDo6RUxF
TUVOVF9BUlJBWV9CVUZGRVIsIHNpemVvZihpbmRpY2VzKSwgaW5kaWNlcywgR3JhcGhpY3NDb250
ZXh0M0Q6OlNUQVRJQ19EUkFXKSk7CisKKyAgICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKK30KKwog
R2VvbWV0cnlCaW5kaW5nOjp+R2VvbWV0cnlCaW5kaW5nKCkKIHsKICAgICBHTEMobV9jb250ZXh0
LCBtX2NvbnRleHQtPmRlbGV0ZUJ1ZmZlcihtX3F1YWRWZXJ0aWNlc1ZibykpOwogICAgIEdMQyht
X2NvbnRleHQsIG1fY29udGV4dC0+ZGVsZXRlQnVmZmVyKG1fcXVhZEVsZW1lbnRzVmJvKSk7CiB9
CiAKLXZvaWQgR2VvbWV0cnlCaW5kaW5nOjpwcmVwYXJlRm9yRHJhdygpCit2b2lkIEdlb21ldHJ5
QmluZGluZzo6cHJlcGFyZUZvckRyYXcoKSBjb25zdAogewogICAgIEdMQyhtX2NvbnRleHQsIG1f
Y29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCBxdWFk
VmVydGljZXNWYm8oKSkpOwogICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1ZmZl
cihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIHF1YWRFbGVtZW50c1Zi
bygpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95262</attachid>
            <date>2011-05-28 08:37:18 -0700</date>
            <delta_ts>2011-05-31 16:04:27 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-layer-aa-v7.diff</filename>
            <type>text/plain</type>
            <size>38079</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcAkocmV2aXNpb24g
ODc1MDYpCisrKyBXZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0YVRlc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIG51bVRp
bGVzX05vVGlsaW5nKQogewogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNiwgMTYs
IGZhbHNlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwgMTUs
IDE1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwg
MTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgx
NywgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgxOCwgMTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgxNiwgIDEsIDE2LCBmYWxzZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMTUsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMTcsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiB9CiAKIFRFU1QoVGls
aW5nRGF0YVRlc3QsIG51bVRpbGVzX1RpbGluZ05vQm9yZGVycykKQEAgLTEwOSw0NSArMTA5LDQ1
IEBACiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoLTEsIDEsICAxLCB0cnVlKS5udW1UaWxl
cygpKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgwLCAgMSwgIDEsIHRydWUpLm51bVRp
bGVzKCkpOwogCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMSwgIDEsICAxLCB0cnVlKS5u
dW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgxLCAgMSwgIDEsIHRydWUp
Lm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsICAxLCAgMiwgdHJ1
ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgIDIsICAxLCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAgMSwgIDEs
IHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDIsICAxLCAg
MiwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMiwgIDIs
ICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAg
MiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIs
ICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MiwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgyLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAgMSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsICAyLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgIDMsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSgzLCAgNCwgIDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDMsICA1LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoMywgIDYsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAgNywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAg
RVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgIDIsICAzLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAgMywgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsICAzLCAgMywgdHJ1ZSkubnVtVGls
ZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMSwgIDQsIHRydWUpLm51
bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAyLCAgNCwgdHJ1ZSku
bnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgIDMsICA0LCB0cnVl
KS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgNCwgIDQsIHRy
dWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDQsICA1LCAgNCwg
dHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDYsICA0
LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg0LCAgNywg
IDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQsICA4
LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNCwg
IDksICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0
LCAxMCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRh
KDQsIDExLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoNCwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSg0LCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxp
bmdEYXRhKDQsICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoNCwgIDQsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg0LCAgNSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDQsICA2LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDQsIFRpbGluZ0RhdGEoNCwgIDcsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoNCwgVGlsaW5nRGF0YSg0LCAgOCwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDQsICA5LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTAsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSg0LCAxMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwogCi0g
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDEsICA1LCB0cnVlKS5udW1UaWxlcygpKTsK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMiwgIDUsIHRydWUpLm51bVRpbGVzKCkp
OwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAzLCAgNSwgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDQsICA1LCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA2LCAgNSwgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDcsICA1LCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgOCwgIDUsIHRydWUp
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA5LCAgNSwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsICA1LCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgIDUs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAxLCAg
MywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDIs
ICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAg
MywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUs
ICA0LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
NSwgIDUsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0
YSg1LCAgNiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDUsICA3LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgIDgsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBU
aWxpbmdEYXRhKDUsIDEwLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoNSwgMTEsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKIH0KIAogVEVTVChUaWxp
bmdEYXRhVGVzdCwgdGlsZVhJbmRleEZyb21TcmNDb29yZCkKQEAgLTE2NiwxNyArMTY2LDE3IEBA
CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCBmYWxzZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwot
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0
cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNCkpOwotICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmND
b29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50
aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgz
LCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNykpOwotICAgIEVYUEVDVF9F
USg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg4
KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWElu
ZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwg
MTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsKLSAgICBFWFBFQ1RfRVEoNywg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBF
WFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEo
MywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKKyAgICBFWFBFQ1Rf
RVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
NykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNUX0VRKDksIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKKyAgICBFWFBFQ1RfRVEoOSwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsK
KyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsIDEsIDEs
IGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CkBAIC0x
OTQsMTMgKzE5NCwxMyBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsIDIsIDIsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwogICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
MCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMs
IHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVY
UEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoMikpOwogCi0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGls
ZVhJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywg
NCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0g
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21T
cmNDb29yZCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
NCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgzKSk7CiB9CiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKQogewpAQCAtMjE4LDE3ICsyMTgsMTcgQEAKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDExKSk7CiAKICAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoMykpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKLSAgICBFWFBFQ1RfRVEo
NSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNikp
OwotICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEw
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGls
aW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOSkpOwotICAg
IEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgxMCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg0KSk7CisgICAgRVhQRUNUX0VR
KDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDUp
KTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7CisgICAgRVhQRUNUX0VRKDgsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKKyAg
ICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoOSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFsc2UpLnRpbGVZSW5kZXhGcm9tU3Jj
Q29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIGZhbHNlKS50
aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTI0Niw2MSArMjQ2LDYxIEBACiAgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29y
ZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJ
bmRleEZyb21TcmNDb29yZCgxKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywg
MywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmND
b29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywg
MywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEo
MCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsK
LSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0
cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKIH0KIAogVEVT
VChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRp
bGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNpemVYKDApKTsKIAogICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWCgwKSk7CiAgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVYKDEpKTsK
LSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6
ZVgoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGls
ZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUp
LnRpbGVTaXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgs
IGZhbHNlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4
LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEo
NSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMSkpOwogCiAgICAgRVhQRUNU
X0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSkudGlsZVNpemVYKDApKTsKICAgICBF
WFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVgoMSkpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXpl
WCgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxl
U2l6ZVgoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSku
dGlsZVNpemVYKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwg
dHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwg
MTEsIHRydWUpLnRpbGVTaXplWCgyKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
MTIsIDEyLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogfQogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGls
ZVNpemVZKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2Up
LnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0
cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAg
NSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUs
ICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGls
aW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7CiAKICAg
ICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVkoMCkp
OwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXpl
WSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxl
U2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSku
dGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRy
dWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4
LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwg
MTAsIDEwLCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0
YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxp
bmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKIAotICAg
IEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWSgy
KSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6
ZVkoMikpOwogfQogCkBAIC0zMTksMTAgKzMxOSwxMCBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDMsIDEsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CiAgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0g
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkp
OwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0
aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgMTAwLCB0cnVlKS50
aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDEwMCwgdHJ1
ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMywg
ICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUs
IDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDUsIDMsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CiAKICAgICAvLyBN
dWx0aXBsZSB0aWxlczoKICAgICAvLyBubyBib3JkZXIKQEAgLTM0MCwyMyArMzQwLDIzIEBACiAg
ICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIKICAgICAvLyBwb3NpdGlv
bnMgMCwgMiwgMywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0
cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsICAg
MSwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2
LCAgIDEsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
MywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKLSAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9u
WCgzKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxl
U2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSku
dGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRy
dWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAw
LCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDYs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOwotICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7Cisg
ICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgw
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6
ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGls
ZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUp
LnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0
cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0
LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDIp
KTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXpl
WCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxl
UG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRy
dWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDQs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKIH0KIAogVEVTVChUaWxpbmdE
YXRhVGVzdCwgdGlsZVNpemVZX2FuZF90aWxlUG9zaXRpb25ZKQpAQCAtMzc0LDEwICszNzQsMTAg
QEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDEsIHRydWUpLnRpbGVQb3Np
dGlvblkoMCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1ZSku
dGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDEsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAg
MSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgz
LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCAxMDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsICAgMSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZ
KDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAxMDAsIDMsIHRydWUpLnRpbGVQ
b3NpdGlvblkoMCkpOwogCiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gbm8gYm9yZGVy
CkBAIC0zOTUsMjMgKzM5NSwyMyBAQAogICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIHdp
dGggYm9yZGVyCiAgICAgLy8gcG9zaXRpb25zIDAsIDIsIDMsIDQKLSAgICBFWFBFQ1RfRVEoNCwg
VGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgy
LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlU2l6ZVkoMikpOwotICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNpemVZKDMpKTsK
LSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlv
blkoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0
cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAg
IDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6ZVkoMikpOwotICAgIEVYUEVDVF9F
USgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDMpKTsKLSAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwot
ICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9u
WSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxl
UG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAg
MSwgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywg
ICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsK
KyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVQb3NpdGlv
blkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0
cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwg
NCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAx
MDAsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEo
MywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwor
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9u
WSgzKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHNldFRvdGFsU2l6ZSkKQEAgLTQ2OCw3
ICs0NjgsNyBAQAogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCBzZXRNYXhUZXh0dXJlU2l6ZUJvcmRl
cnMpCiB7Ci0gICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAzMiwgdHJ1ZSk7CisgICAgVGlsaW5n
RGF0YSBkYXRhKDgsIDE2LCAzMCwgdHJ1ZSk7CiAgICAgRVhQRUNUX0VRKDMsIGRhdGEubnVtVGls
ZXNYKCkpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRpbGVzWSgpKTsKIApAQCAtNDg0LDcg
KzQ4NCw3IEBACiAKICAgICBkYXRhLnNldE1heFRleHR1cmVTaXplKDUpOwogICAgIEVYUEVDVF9F
USg1LCBkYXRhLm1heFRleHR1cmVTaXplKCkpOwotICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRp
bGVzWCgpKTsKKyAgICBFWFBFQ1RfRVEoNiwgZGF0YS5udW1UaWxlc1goKSk7CiAgICAgRVhQRUNU
X0VRKDEwLCBkYXRhLm51bVRpbGVzWSgpKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAJKHJldmlzaW9uIDg3NTA2KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDEwICs0NCwxMiBAQAogCiBzdGF0aWMgaW50IGNvbXB1dGVOdW1UaWxlcyhpbnQgbWF4VGV4
dHVyZVNpemUsIGludCB0b3RhbFNpemUsIGludCBib3JkZXJUZXhlbHMpCiB7CisgICAgaW50IHRv
dGFsU2l6ZVdpdGhCb3JkZXIgPSB0b3RhbFNpemUgKyAyICogYm9yZGVyVGV4ZWxzOworCiAgICAg
aWYgKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscyA8PSAwKQotICAgICAgICByZXR1
cm4gdG90YWxTaXplID4gMCAmJiBtYXhUZXh0dXJlU2l6ZSA+PSB0b3RhbFNpemUgPyAxIDogMDsK
KyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpbnQgbnVtVGlsZXMgPSBtYXgoMSwgMSArICh0b3Rh
bFNpemUgLSAxIC0gMiAqIGJvcmRlclRleGVscykgLyAobWF4VGV4dHVyZVNpemUgLSAyICogYm9y
ZGVyVGV4ZWxzKSk7CisgICAgaW50IG51bVRpbGVzID0gbWF4KDEsIDEgKyAodG90YWxTaXplV2l0
aEJvcmRlciAtIDEgLSAyICogYm9yZGVyVGV4ZWxzKSAvIChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBi
b3JkZXJUZXhlbHMpKTsKICAgICByZXR1cm4gdG90YWxTaXplID4gMCA/IG51bVRpbGVzIDogMDsK
IH0KIApAQCAtNzksNyArODEsNyBAQAogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VSVCht
X21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKLSAgICBpbnQgeCA9IChzcmNQ
b3MgLSBtX2JvcmRlclRleGVscykgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRl
eGVscyk7CisgICAgaW50IHggPSBzcmNQb3MgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2Jv
cmRlclRleGVscyk7CiAgICAgcmV0dXJuIG1pbihtYXgoeCwgMCksIG51bVRpbGVzWCgpIC0gMSk7
CiB9CiAKQEAgLTg5LDcgKzkxLDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBBU1NFUlQo
bV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgaW50IHkgPSAoc3Jj
UG9zIC0gbV9ib3JkZXJUZXhlbHMpIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJU
ZXhlbHMpOworICAgIGludCB5ID0gc3JjUG9zIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9i
b3JkZXJUZXhlbHMpOwogICAgIHJldHVybiBtaW4obWF4KHksIDApLCBudW1UaWxlc1koKSAtIDEp
OwogfQogCkBAIC0xMTEsMjQgKzExMyw5IEBACiB7CiAgICAgSW50UmVjdCBib3VuZHMgPSB0aWxl
Qm91bmRzKHRpbGUpOwogCi0gICAgaWYgKG1fYm9yZGVyVGV4ZWxzKSB7Ci0gICAgICAgIGludCB4
MSA9IGJvdW5kcy54KCk7Ci0gICAgICAgIGludCB4MiA9IGJvdW5kcy5tYXhYKCk7Ci0gICAgICAg
IGludCB5MSA9IGJvdW5kcy55KCk7Ci0gICAgICAgIGludCB5MiA9IGJvdW5kcy5tYXhZKCk7Cisg
ICAgaWYgKG1fYm9yZGVyVGV4ZWxzKQorICAgICAgICBib3VuZHMuaW5mbGF0ZSgxKTsKIAotICAg
ICAgICBpZiAodGlsZVhJbmRleCh0aWxlKSA+IDApCi0gICAgICAgICAgICB4MS0tOwotICAgICAg
ICBpZiAodGlsZVhJbmRleCh0aWxlKSA8IChudW1UaWxlc1goKSAtIDEpKQotICAgICAgICAgICAg
eDIrKzsKLSAgICAgICAgaWYgKHRpbGVZSW5kZXgodGlsZSkgPiAwKQotICAgICAgICAgICAgeTEt
LTsKLSAgICAgICAgaWYgKHRpbGVZSW5kZXgodGlsZSkgPCAobnVtVGlsZXNZKCkgLSAxKSkKLSAg
ICAgICAgICAgIHkyKys7Ci0KLSAgICAgICAgYm91bmRzID0gSW50UmVjdCh4MSwgeTEsIHgyIC0g
eDEsIHkyIC0geTEpOwotICAgIH0KLQogICAgIHJldHVybiBib3VuZHM7CiB9CiAKQEAgLTE2OCw4
ICsxNTUsNiBAQAogCiAgICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxlc1ggPT0gMSkKICAgICAg
ICAgcmV0dXJuIG1fdG90YWxTaXplWDsKLSAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA+
IDEpCi0gICAgICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0gbV9ib3JkZXJUZXhlbHM7CiAg
ICAgaWYgKHhJbmRleCA8IG51bVRpbGVzWCgpIC0gMSkKICAgICAgICAgcmV0dXJuIG1fbWF4VGV4
dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYgKHhJbmRleCA9PSBudW1UaWxl
c1goKSAtIDEpCkBAIC0xODUsOCArMTcwLDYgQEAKIAogICAgIGlmICgheUluZGV4ICYmIG1fbnVt
VGlsZXNZID09IDEpCiAgICAgICAgIHJldHVybiBtX3RvdGFsU2l6ZVk7Ci0gICAgaWYgKCF5SW5k
ZXggJiYgbV9udW1UaWxlc1kgPiAxKQotICAgICAgICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZSAt
IG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh5SW5kZXggPCBudW1UaWxlc1koKSAtIDEpCiAgICAg
ICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlm
ICh5SW5kZXggPT0gbnVtVGlsZXNZKCkgLSAxKQpAQCAtMjMwLDggKzIxMyw4IEBACiAKICAgICAq
bmV3U3JjID0gc3JjUmVjdEludGVyc2VjdGVkOwogICAgIG5ld1NyYy0+bW92ZSgKLSAgICAgICAg
LXRpbGVCb3VuZHMueCgpICsgKCh0aWxlWEluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRlclRleGVs
cyA6IDApLAotICAgICAgICAtdGlsZUJvdW5kcy55KCkgKyAoKHRpbGVZSW5kZXgodGlsZSkgPiAw
KSA/IG1fYm9yZGVyVGV4ZWxzIDogMCkpOworICAgICAgICAtdGlsZUJvdW5kcy54KCkgKyBtX2Jv
cmRlclRleGVscywKKyAgICAgICAgLXRpbGVCb3VuZHMueSgpICsgbV9ib3JkZXJUZXhlbHMpOwog
CiAgICAgKm5ld0RzdCA9IEZsb2F0UmVjdCgKICAgICAgICAgc3JjUmVjdEludGVyc2VjdGVkTm9y
bVggKiBkc3RSZWN0LndpZHRoKCkgKyBkc3RSZWN0LngoKSwKQEAgLTI0MiwxMCArMjI1LDcgQEAK
IAogSW50UG9pbnQgVGlsaW5nRGF0YTo6dGV4dHVyZU9mZnNldChpbnQgeEluZGV4LCBpbnQgeUlu
ZGV4KSBjb25zdAogewotICAgIGludCBsZWZ0ID0gKCF4SW5kZXggfHwgbV9udW1UaWxlc1ggPT0g
MSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0gICAgaW50IHRvcCA9ICgheUluZGV4IHx8IG1fbnVt
VGlsZXNZID09IDEpID8gMCA6IG1fYm9yZGVyVGV4ZWxzOwotCi0gICAgcmV0dXJuIEludFBvaW50
KGxlZnQsIHRvcCk7CisgICAgcmV0dXJuIEludFBvaW50KG1fYm9yZGVyVGV4ZWxzLCBtX2JvcmRl
clRleGVscyk7CiB9CiAKIHZvaWQgVGlsaW5nRGF0YTo6cmVjb21wdXRlTnVtVGlsZXMoKQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5
QmluZGluZy5oCShyZXZpc2lvbiA4NzUwNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwz
MCBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCisjaW5jbHVkZSAiSW50
UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKK2VudW0gRWRnZUZpbHRlciB7CisgICAg
RmlsdGVyTGVmdEVkZ2UgICA9IDEgPDwgMCwKKyAgICBGaWx0ZXJUb3BFZGdlICAgID0gMSA8PCAx
LAorICAgIEZpbHRlclJpZ2h0RWRnZSAgPSAxIDw8IDIsCisgICAgRmlsdGVyQm90dG9tRWRnZSA9
IDEgPDwgMworfTsKK3R5cGVkZWYgdW5zaWduZWQgRWRnZUZpbHRlckZsYWdzOworCiBjbGFzcyBH
ZW9tZXRyeUJpbmRpbmcgewogcHVibGljOgogICAgIGV4cGxpY2l0IEdlb21ldHJ5QmluZGluZyhH
cmFwaGljc0NvbnRleHQzRCopOworICAgIGV4cGxpY2l0IEdlb21ldHJ5QmluZGluZyhHcmFwaGlj
c0NvbnRleHQzRCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVj
dCYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyk7CiAgICAg
fkdlb21ldHJ5QmluZGluZygpOwogCiAgICAgYm9vbCBpbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0
dXJuIG1faW5pdGlhbGl6ZWQ7IH0KQEAgLTQ1LDcgKzYwLDcgQEAKICAgICB1bnNpZ25lZCBxdWFk
VmVydGljZXNWYm8oKSBjb25zdCB7IHJldHVybiBtX3F1YWRWZXJ0aWNlc1ZibzsgfQogICAgIHVu
c2lnbmVkIHF1YWRFbGVtZW50c1ZibygpIGNvbnN0IHsgcmV0dXJuIG1fcXVhZEVsZW1lbnRzVmJv
OyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JEcmF3KCk7CisgICAgdm9pZCBwcmVwYXJlRm9yRHJh
dygpIGNvbnN0OwogCiAgICAgLy8gQWxsIGxheWVyIHNoYWRlcnMgc2hhcmUgdGhlIHNhbWUgYXR0
cmlidXRlIGxvY2F0aW9ucyBmb3IgdGhlIHZlcnRleAogICAgIC8vIHBvc2l0aW9ucyBhbmQgdGV4
dHVyZSBjb29yZGluYXRlcy4gVGhpcyBhbGxvd3Mgc3dpdGNoaW5nIHNoYWRlcnMgd2l0aG91dApA
QCAtNTQsNiArNjksMjEgQEAKICAgICBzdGF0aWMgaW50IHRleENvb3JkQXR0cmliTG9jYXRpb24o
KSB7IHJldHVybiAxOyB9CiAKIHByaXZhdGU6CisgICAgY2xhc3MgRWRnZSB7CisgICAgcHVibGlj
OgorICAgICAgICBFZGdlKCkgeyB9CisgICAgICAgIEVkZ2UoZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgeikgOiBmWCh4KSwgZlkoeSksIGZaKHopIHsgfQorICAgICAgICBGbG9hdFBvaW50IGludGVy
c2VjdChjb25zdCBFZGdlJiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIEZs
b2F0UG9pbnQoCisgICAgICAgICAgICAgICAgKGZZICogb3RoZXIuZlogLSBvdGhlci5mWSAqIGZa
KSAvCisgICAgICAgICAgICAgICAgKGZYICogb3RoZXIuZlkgLSBvdGhlci5mWCAqIGZZKSwKKyAg
ICAgICAgICAgICAgICAoZlggKiBvdGhlci5mWiAtIG90aGVyLmZYICogZlopIC8KKyAgICAgICAg
ICAgICAgICAob3RoZXIuZlggKiBmWSAtIGZYICogb3RoZXIuZlkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmWCwgZlksIGZaOworICAgIH07CisKICAgICBHcmFwaGljc0NvbnRleHQzRCog
bV9jb250ZXh0OwogICAgIHVuc2lnbmVkIG1fcXVhZFZlcnRpY2VzVmJvOwogICAgIHVuc2lnbmVk
IG1fcXVhZEVsZW1lbnRzVmJvOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAkocmV2aXNpb24gODc1
MDYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJv
bWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJMYXll
clRpbGVyQ2hyb21pdW0uaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRENocm9taXVtLmgiCisj
aW5jbHVkZSAiR2VvbWV0cnlCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVy
Q2hyb21pdW0uaCIKQEAgLTc4LDcgKzc5LDYgQEAKICAgICByZXNldCgpOwogCiAgICAgbV90aWxl
U2l6ZSA9IHNpemU7Ci0gICAgbV90aWxpbmdEYXRhLnNldE1heFRleHR1cmVTaXplKG1heChzaXpl
LndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKIH0KIAogTGF5ZXJUZXh0dXJlKiBMYXllclRpbGVy
Q2hyb21pdW06OmdldFNpbmdsZVRleHR1cmUoKQpAQCAtMTc5LDkgKzE3OSw3IEBACiBJbnRSZWN0
IExheWVyVGlsZXJDaHJvbWl1bTo6dGlsZUxheWVyUmVjdChjb25zdCBUaWxlKiB0aWxlKSBjb25z
dAogewogICAgIGNvbnN0IGludCBpbmRleCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+
aSgpLCB0aWxlLT5qKCkpOwotICAgIEludFJlY3QgbGF5ZXJSZWN0ID0gbV90aWxpbmdEYXRhLnRp
bGVCb3VuZHNXaXRoQm9yZGVyKGluZGV4KTsKLSAgICBsYXllclJlY3Quc2V0U2l6ZShtX3RpbGVT
aXplKTsKLSAgICByZXR1cm4gbGF5ZXJSZWN0OworICAgIHJldHVybiBtX3RpbGluZ0RhdGEudGls
ZUJvdW5kc1dpdGhCb3JkZXIoaW5kZXgpOwogfQogCiB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6
aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpCkBAIC0yMzUsNiArMjMz
LDcgQEAKICAgICAvLyBDcmVhdGUgdGlsZXMgYXMgbmVlZGVkLCBleHBhbmRpbmcgYSBkaXJ0eSBy
ZWN0IHRvIGNvbnRhaW4gYWxsCiAgICAgLy8gdGhlIGRpcnR5IHJlZ2lvbnMgY3VycmVudGx5IGJl
aW5nIGRyYXduLgogICAgIEludFJlY3QgZGlydHlMYXllclJlY3Q7CisgICAgSW50U2l6ZSB0aWxl
U2l6ZTsKICAgICBpbnQgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tOwogICAgIGNvbnRlbnRSZWN0
VG9UaWxlSW5kaWNlcyhjb250ZW50UmVjdCwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKICAg
ICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7CkBAIC0yNDIsMTEgKzI0MSwx
NSBAQAogICAgICAgICAgICAgVGlsZSogdGlsZSA9IHRpbGVBdChpLCBqKTsKICAgICAgICAgICAg
IGlmICghdGlsZSkKICAgICAgICAgICAgICAgICB0aWxlID0gY3JlYXRlVGlsZShpLCBqKTsKLSAg
ICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5pc1ZhbGlkKG1fdGlsZVNpemUsIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBKSkKKworICAgICAgICAgICAgSW50U2l6ZSBjb250ZW50U2l6ZSA9
IHRpbGVDb250ZW50UmVjdCh0aWxlKS5zaXplKCk7CisgICAgICAgICAgICBpZiAoIXRpbGUtPnRl
eHR1cmUoKS0+aXNWYWxpZChjb250ZW50U2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQog
ICAgICAgICAgICAgICAgIHRpbGUtPm1fZGlydHlMYXllclJlY3QgPSB0aWxlTGF5ZXJSZWN0KHRp
bGUpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+
cmVzZXJ2ZShtX3RpbGVTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSk7CisgICAgICAgICAg
ICAgICAgdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKGNvbnRlbnRTaXplLCBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQSk7CiAgICAgICAgICAgICBkaXJ0eUxheWVyUmVjdC51bml0ZSh0aWxlLT5tX2Rp
cnR5TGF5ZXJSZWN0KTsKKworICAgICAgICAgICAgdGlsZVNpemUgPSB0aWxlU2l6ZS5leHBhbmRl
ZFRvKGNvbnRlbnRTaXplKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjU5LDcgKzI2Miw3IEBA
CiAgICAgaWYgKGRpcnR5TGF5ZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV90ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRSZWN0LCBtX3RpbGVT
aXplLCBtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpOworICAgIG1fdGV4dHVyZVVwZGF0ZXIt
PnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgdGlsZVNpemUsIG1fdGlsaW5nRGF0YS5ib3Jk
ZXJUZXhlbHMoKSk7CiB9CiAKIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjp1cGRhdGVSZWN0KCkK
QEAgLTI5MSw3ICsyOTQsNyBAQAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
ICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+aXNSZXNlcnZlZCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkEpKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPnJl
c2VydmUodGlsZUxheWVyUmVjdCh0aWxlKS5zaXplKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JB
KSkgewogICAgICAgICAgICAgICAgICAgICBtX3NraXBzRHJhdyA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTM2Myw4
ICszNjYsOSBAQAogICAgICAgICAgICAgdGlsZU1hdHJpeC50cmFuc2xhdGUzZCh0aWxlUmVjdC54
KCkgKyB0aWxlUmVjdC53aWR0aCgpIC8gMi4wLCB0aWxlUmVjdC55KCkgKyB0aWxlUmVjdC5oZWln
aHQoKSAvIDIuMCwgMCk7CiAKICAgICAgICAgICAgIEludFBvaW50IHRleE9mZnNldCA9IG1fdGls
aW5nRGF0YS50ZXh0dXJlT2Zmc2V0KHRpbGUtPmkoKSwgdGlsZS0+aigpKTsKLSAgICAgICAgICAg
IGZsb2F0IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0PGZsb2F0PihtX3RpbGVTaXplLndpZHRoKCkp
OwotICAgICAgICAgICAgZmxvYXQgdGlsZUhlaWdodCA9IHN0YXRpY19jYXN0PGZsb2F0PihtX3Rp
bGVTaXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgIEludFJlY3QgY29udGVudFJlY3QgPSB0aWxl
Q29udGVudFJlY3QodGlsZSk7CisgICAgICAgICAgICBmbG9hdCB0aWxlV2lkdGggPSBzdGF0aWNf
Y2FzdDxmbG9hdD4oY29udGVudFJlY3Qud2lkdGgoKSk7CisgICAgICAgICAgICBmbG9hdCB0aWxl
SGVpZ2h0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKICAgICAg
ICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVggPSB0ZXhPZmZzZXQueCgpIC8gdGlsZVdpZHRoOwog
ICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWSA9IHRleE9mZnNldC55KCkgLyB0aWxlSGVp
Z2h0OwogICAgICAgICAgICAgZmxvYXQgdGV4U2NhbGVYID0gdGlsZVJlY3Qud2lkdGgoKSAvIHRp
bGVXaWR0aDsKQEAgLTM3NSw3ICszNzksMzggQEAKICAgICAgICAgICAgICAgICB0ZXhUcmFuc2xh
dGVZICs9IDEuMDsKICAgICAgICAgICAgICAgICB0ZXhTY2FsZVkgKj0gLTEuMDsKICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgT3duUHRyPEdlb21ldHJ5QmluZGluZz4gZ2VvbWV0cnk7CisK
KyAgICAgICAgICAgIC8vIENyZWF0ZSBnZW9tZXRyeSBiaW5kaW5nIGFkanVzdGVkIGZvciBmaWx0
ZXJpbmcgb2YgbGF5ZXIgZWRnZXMuCisgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRhLmJvcmRl
clRleGVscygpKSB7CisgICAgICAgICAgICAgICAgaW50IG51bVRpbGVzWCA9IG1fdGlsaW5nRGF0
YS5udW1UaWxlc1goKTsKKyAgICAgICAgICAgICAgICBpbnQgbnVtVGlsZXNZID0gbV90aWxpbmdE
YXRhLm51bVRpbGVzWSgpOworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IG1fdGlsaW5nRGF0
YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpOworICAgICAgICAgICAgICAgIEVkZ2VG
aWx0ZXJGbGFncyBmaWx0ZXIgPSAwOworCisgICAgICAgICAgICAgICAgaWYgKCFtX3RpbGluZ0Rh
dGEudGlsZVhJbmRleChpbmRleCkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0
ZXJMZWZ0RWRnZTsKKyAgICAgICAgICAgICAgICBpZiAoIW1fdGlsaW5nRGF0YS50aWxlWUluZGV4
KGluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlclRvcEVkZ2U7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWEluZGV4KGluZGV4KSA9PSAobnVt
VGlsZXNYIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0ZXJSaWdodEVk
Z2U7CisgICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWUluZGV4KGluZGV4KSA9
PSAobnVtVGlsZXNZIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0ZXJC
b3R0b21FZGdlOworCisgICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBhZG9wdFB0cihuZXcgR2Vv
bWV0cnlCaW5kaW5nKGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbGVNYXRyaXgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVSZWN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIpKTsKKwor
ICAgICAgICAgICAgICAgIGdlb21ldHJ5LT5wcmVwYXJlRm9yRHJhdygpOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBkcmF3VGV4dHVyZWRRdWFkKGNvbnRleHQsIGxheWVyUmVuZGVyZXIo
KS0+cHJvamVjdGlvbk1hdHJpeCgpLCB0aWxlTWF0cml4LCB0aWxlUmVjdC53aWR0aCgpLCB0aWxl
UmVjdC5oZWlnaHQoKSwgb3BhY2l0eSwgdGV4VHJhbnNsYXRlWCwgdGV4VHJhbnNsYXRlWSwgdGV4
U2NhbGVYLCB0ZXhTY2FsZVksIHByb2dyYW0pOworCisgICAgICAgICAgICAvLyBSZXN0b3JlIGRl
ZmF1bHQgZ2VvbWV0cnkgYmluZGluZy4KKyAgICAgICAgICAgIGlmIChtX3RpbGluZ0RhdGEuYm9y
ZGVyVGV4ZWxzKCkpCisgICAgICAgICAgICAgICAgbGF5ZXJSZW5kZXJlcigpLT5zaGFyZWRHZW9t
ZXRyeSgpLT5wcmVwYXJlRm9yRHJhdygpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzg4LDYg
KzQyMywxNyBAQAogCiAgICAgSW50U2l6ZSBvbGRMYXllclNpemUobV90aWxpbmdEYXRhLnRvdGFs
U2l6ZVgoKSwgbV90aWxpbmdEYXRhLnRvdGFsU2l6ZVkoKSk7CiAgICAgSW50U2l6ZSBuZXdTaXpl
ID0gcmVjdFNpemUuZXhwYW5kZWRUbyhvbGRMYXllclNpemUpOworICAgIEludFNpemUgdGV4U2l6
ZSA9IG1fdGlsZVNpemU7CisKKyAgICAvLyBVc2UgcmVjdCB3aXRoIGJvcmRlciB0ZXhlbHMgYXMg
bWF4IHRleHR1cmUgc2l6ZSB3aGVuIHRpbGUgc2l6ZQorICAgIC8vIGhhcyBub3QgYmVlbiBzcGVj
aWZpZWQuCisgICAgaWYgKHRleFNpemUuaXNFbXB0eSgpKSB7CisgICAgICAgIHRleFNpemUgPSBu
ZXdTaXplOworICAgICAgICBpZiAobV90aWxpbmdEYXRhLmJvcmRlclRleGVscygpKQorICAgICAg
ICAgICAgdGV4U2l6ZS5leHBhbmQoMiwgMik7CisgICAgfQorCisgICAgbV90aWxpbmdEYXRhLnNl
dE1heFRleHR1cmVTaXplKG1heCh0ZXhTaXplLndpZHRoKCksIHRleFNpemUuaGVpZ2h0KCkpKTsK
ICAgICBtX3RpbGluZ0RhdGEuc2V0VG90YWxTaXplKG5ld1NpemUud2lkdGgoKSwgbmV3U2l6ZS5o
ZWlnaHQoKSk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA4NzUw
NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hy
b21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAKIC8vIE1heGltdW0g
c2l6ZSB0aGUgd2lkdGggb3IgaGVpZ2h0IG9mIHRoaXMgbGF5ZXIgY2FuIGJlIGJlZm9yZSBlbmFi
bGluZyB0aWxpbmcKIC8vIHdoZW4gbV90aWxpbmdPcHRpb24gPT0gQXV0b1RpbGUuCi1zdGF0aWMg
aW50IG1heFVudGlsZWRTaXplID0gNTEyOworc3RhdGljIGludCBtYXhVbnRpbGVkU2l6ZSA9IDUx
MDsKIC8vIFdoZW4gdGlsaW5nIGlzIGVuYWJsZWQsIHVzZSB0aWxlcyBvZiB0aGlzIGRpbWVuc2lv
biBzcXVhcmVkLgogc3RhdGljIGludCBkZWZhdWx0VGlsZVNpemUgPSAyNTY7CiAKQEAgLTE4NSw3
ICsxODUsNyBAQAogICAgIGlmICghbV90aWxlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29u
c3QgSW50U2l6ZSB0aWxlU2l6ZShtaW4oZGVmYXVsdFRpbGVTaXplLCBsYXllclNpemUud2lkdGgo
KSksIG1pbihkZWZhdWx0VGlsZVNpemUsIGxheWVyU2l6ZS5oZWlnaHQoKSkpOworICAgIGNvbnN0
IEludFNpemUgdGlsZVNpemUoZGVmYXVsdFRpbGVTaXplLCBkZWZhdWx0VGlsZVNpemUpOwogICAg
IGNvbnN0IGJvb2wgYXV0b1RpbGVkID0gbGF5ZXJTaXplLndpZHRoKCkgPiBtYXhVbnRpbGVkU2l6
ZSB8fCBsYXllclNpemUuaGVpZ2h0KCkgPiBtYXhVbnRpbGVkU2l6ZTsKIAogICAgIGJvb2wgaXNU
aWxlZDsKQEAgLTE5Niw3ICsxOTYsNyBAQAogICAgIGVsc2UKICAgICAgICAgaXNUaWxlZCA9IGF1
dG9UaWxlZDsKIAotICAgIG1fdGlsZXItPnNldFRpbGVTaXplKGlzVGlsZWQgPyB0aWxlU2l6ZSA6
IGxheWVyU2l6ZSk7CisgICAgbV90aWxlci0+c2V0VGlsZVNpemUoaXNUaWxlZCA/IHRpbGVTaXpl
IDogSW50U2l6ZSgpKTsKIH0KIAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6ZHJhdyhjb25z
dCBJbnRSZWN0JiB0YXJnZXRTdXJmYWNlUmVjdCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAJKHJldmlzaW9u
IDg3NTA2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJp
bmRpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSwxMyArNTksMTE3IEBACiAgICAgbV9pbml0
aWFsaXplZCA9IHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGlzQ0NXKGNvbnN0IEZsb2F0UG9pbnQq
IHB0cykKK3sKKyAgICBGbG9hdFBvaW50IHYxID0gRmxvYXRQb2ludChwdHNbMV0ueCgpIC0gcHRz
WzBdLngoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHNbMV0ueSgpIC0gcHRz
WzBdLnkoKSk7CisgICAgRmxvYXRQb2ludCB2MiA9IEZsb2F0UG9pbnQocHRzWzJdLngoKSAtIHB0
c1sxXS54KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRzWzJdLnkoKSAtIHB0
c1sxXS55KCkpOworICAgIHJldHVybiAodjEueCgpICogdjIueSgpIC0gdjEueSgpICogdjIueCgp
KSA8IDA7Cit9CisKK0dlb21ldHJ5QmluZGluZzo6R2VvbWV0cnlCaW5kaW5nKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEludFJlY3QmIHJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFZGdlRmlsdGVyRmxhZ3MgZmlsdGVyKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisg
ICAgLCBtX3F1YWRWZXJ0aWNlc1ZibygwKQorICAgICwgbV9xdWFkRWxlbWVudHNWYm8oMCkKKyAg
ICAsIG1faW5pdGlhbGl6ZWQoZmFsc2UpCit7CisgICAgaW50IHgxID0gcmVjdC54KCk7CisgICAg
aW50IHkxID0gcmVjdC55KCk7CisgICAgaW50IHgyID0gcmVjdC5tYXhYKCk7CisgICAgaW50IHky
ID0gcmVjdC5tYXhZKCk7CisKKyAgICAvLyBJbmNsdWRlIGJvcmRlciB0ZXhlbHMuCisgICAgaWYg
KGZpbHRlciAmIEZpbHRlckxlZnRFZGdlKQorICAgICAgICB4MS0tOworICAgIGlmIChmaWx0ZXIg
JiBGaWx0ZXJUb3BFZGdlKQorICAgICAgICB5MS0tOworICAgIGlmIChmaWx0ZXIgJiBGaWx0ZXJS
aWdodEVkZ2UpCisgICAgICAgIHgyKys7CisgICAgaWYgKGZpbHRlciAmIEZpbHRlckJvdHRvbUVk
Z2UpCisgICAgICAgIHkyKys7CisKKyAgICBGbG9hdFBvaW50IHB0WzRdOworICAgIHB0WzBdID0g
RmxvYXRQb2ludCh4MSwgeTEpOworICAgIHB0WzFdID0gRmxvYXRQb2ludCh4MiwgeTEpOworICAg
IHB0WzJdID0gRmxvYXRQb2ludCh4MiwgeTIpOworICAgIHB0WzNdID0gRmxvYXRQb2ludCh4MSwg
eTIpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspCisgICAgICAgIHB0W2ldID0g
bWF0cml4Lm1hcFBvaW50KHB0W2ldKTsKKworICAgIEVkZ2UgZWRnZXNbNF07CisgICAgRmxvYXRQ
b2ludCBwID0gcHRbM107CisgICAgZmxvYXQgc2lnbiA9IGlzQ0NXKHB0KSA/IC0xLjBmIDogMS4w
ZjsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAgICBGbG9hdFBvaW50
IHEgPSBwdFtpXTsKKyAgICAgICAgRmxvYXRQb2ludCB0YW5nZW50ID0gRmxvYXRQb2ludChwLnko
KSAtIHEueSgpLCBxLngoKSAtIHAueCgpKTsKKyAgICAgICAgZmxvYXQgc2NhbGUgPSBzaWduIC8g
dGFuZ2VudC5sZW5ndGgoKTsKKyAgICAgICAgZmxvYXQgY3Jvc3MyID0gcC54KCkgKiBxLnkoKSAt
IHEueCgpICogcC55KCk7CisKKyAgICAgICAgZWRnZXNbaV0gPSBFZGdlKHRhbmdlbnQueCgpICog
c2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICB0YW5nZW50LnkoKSAqIHNjYWxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgY3Jvc3MyICogc2NhbGUgKyAoZmlsdGVyICYgKDEgPDwgaSkp
ICogMC41Zik7CisKKyAgICAgICAgcCA9IHE7CisgICAgfQorCisgICAgLy8gV2UgZG9uJ3QgY2Fy
ZSBhYm91dCBaIGNvbXBvbmVudC4KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnZlcnNlID0K
KyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobWF0cml4Lm0xMSgpLCBtYXRyaXgubTEyKCks
IDAuMCwgbWF0cml4Lm0xNCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRyaXgu
bTIxKCksIG1hdHJpeC5tMjIoKSwgMC4wLCBtYXRyaXgubTI0KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hdHJpeC5tMzEoKSwgbWF0cml4Lm0zMigpLCAxLjAsIG1hdHJpeC5tMzQo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm00MSgpLCBtYXRyaXgubTQy
KCksIDAuMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm00NCgpKS5pbnZl
cnNlKCk7CisKKyAgICBkb3VibGUgc2NhbGVYID0gMS4wIC8gcmVjdC53aWR0aCgpOworICAgIGRv
dWJsZSBzY2FsZVkgPSAxLjAgLyByZWN0LmhlaWdodCgpOworICAgIGRvdWJsZSB0cmFuc2xhdGVY
ID0gcmVjdC54KCkgKyByZWN0LndpZHRoKCkgLyAyLjA7CisgICAgZG91YmxlIHRyYW5zbGF0ZVkg
PSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLyAyLjA7CisKKyAgICAgLy8gVGhlIHR3byB0cmlh
bmdsZXMgdGhhdCBtYWtlIHVwIHRoZSBsYXllciBxdWFkLgorICAgIHVpbnQxNl90IGluZGljZXNb
XSA9IHsgMCwgMSwgMiwgMCwgMiwgMyB9OworICAgIGZsb2F0IHZlcnRpY2VzWzIwXTsKKworICAg
IEVkZ2UgcHJldkVkZ2UgPSBlZGdlc1szXTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkr
KykgeworICAgICAgICBFZGdlIGVkZ2UgPSBlZGdlc1tpXTsKKworICAgICAgICBwdFtpXSA9IHBy
ZXZFZGdlLmludGVyc2VjdChlZGdlKTsKKyAgICAgICAgcHRbaV0gPSBpbnZlcnNlLm1hcFBvaW50
KHB0W2ldKTsKKworICAgICAgICAvLyBWZXJ0ZXggcG9zaXRpb24gbm9ybWFsaXplZCB0byByZWN0
LgorICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDBdID0gKHB0W2ldLngoKSAtIHRyYW5zbGF0ZVgp
ICogc2NhbGVYOworICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDFdID0gKHB0W2ldLnkoKSAtIHRy
YW5zbGF0ZVkpICogc2NhbGVZOworICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDJdID0gMC4wZjsK
KworICAgICAgICAvLyBUZXh0dXJlIGNvb3JkaW5hdGVzLgorICAgICAgICB2ZXJ0aWNlc1tpICog
NSArIDNdID0gKHB0W2ldLngoKSAtIHJlY3QueCgpKSAqIHNjYWxlWDsKKyAgICAgICAgdmVydGlj
ZXNbaSAqIDUgKyA0XSA9IChwdFtpXS55KCkgLSByZWN0LnkoKSkgKiBzY2FsZVk7CisKKyAgICAg
ICAgcHJldkVkZ2UgPSBlZGdlOworICAgIH0KKworICAgIEdMQyhtX2NvbnRleHQsIG1fcXVhZFZl
cnRpY2VzVmJvID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKSk7CisgICAgR0xDKG1fY29udGV4
dCwgbV9xdWFkRWxlbWVudHNWYm8gPSBtX2NvbnRleHQtPmNyZWF0ZUJ1ZmZlcigpKTsKKyAgICBH
TEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkFS
UkFZX0JVRkZFUiwgbV9xdWFkVmVydGljZXNWYm8pKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2Nv
bnRleHQtPmJ1ZmZlckRhdGEoR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgc2l6ZW9m
KHZlcnRpY2VzKSwgdmVydGljZXMsIEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVykpOwor
ICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQz
RDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIG1fcXVhZEVsZW1lbnRzVmJvKSk7CisgICAgR0xDKG1f
Y29udGV4dCwgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5U
X0FSUkFZX0JVRkZFUiwgc2l6ZW9mKGluZGljZXMpLCBpbmRpY2VzLCBHcmFwaGljc0NvbnRleHQz
RDo6U1RBVElDX0RSQVcpKTsKKworICAgIG1faW5pdGlhbGl6ZWQgPSB0cnVlOworfQorCiBHZW9t
ZXRyeUJpbmRpbmc6On5HZW9tZXRyeUJpbmRpbmcoKQogewogICAgIEdMQyhtX2NvbnRleHQsIG1f
Y29udGV4dC0+ZGVsZXRlQnVmZmVyKG1fcXVhZFZlcnRpY2VzVmJvKSk7CiAgICAgR0xDKG1fY29u
dGV4dCwgbV9jb250ZXh0LT5kZWxldGVCdWZmZXIobV9xdWFkRWxlbWVudHNWYm8pKTsKIH0KIAot
dm9pZCBHZW9tZXRyeUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3KCkKK3ZvaWQgR2VvbWV0cnlCaW5k
aW5nOjpwcmVwYXJlRm9yRHJhdygpIGNvbnN0CiB7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250
ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIHF1YWRWZXJ0
aWNlc1ZibygpKSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdy
YXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwgcXVhZEVsZW1lbnRzVmJvKCkp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95500</attachid>
            <date>2011-05-31 16:04:27 -0700</date>
            <delta_ts>2011-06-02 06:46:57 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-layer-aa-v8.diff</filename>
            <type>text/plain</type>
            <size>38327</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcAkocmV2aXNpb24g
ODc3MTYpCisrKyBXZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0YVRlc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIG51bVRp
bGVzX05vVGlsaW5nKQogewogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNiwgMTYs
IGZhbHNlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwgMTUs
IDE1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwg
MTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgx
NywgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgxOCwgMTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgxNiwgIDEsIDE2LCBmYWxzZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMTUsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMTcsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiB9CiAKIFRFU1QoVGls
aW5nRGF0YVRlc3QsIG51bVRpbGVzX1RpbGluZ05vQm9yZGVycykKQEAgLTEwOSw0NSArMTA5LDQ1
IEBACiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoLTEsIDEsICAxLCB0cnVlKS5udW1UaWxl
cygpKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgwLCAgMSwgIDEsIHRydWUpLm51bVRp
bGVzKCkpOwogCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMSwgIDEsICAxLCB0cnVlKS5u
dW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgxLCAgMSwgIDEsIHRydWUp
Lm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsICAxLCAgMiwgdHJ1
ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgIDIsICAxLCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAgMSwgIDEs
IHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDIsICAxLCAg
MiwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMiwgIDIs
ICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAg
MiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIs
ICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MiwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgyLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAgMSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsICAyLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgIDMsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSgzLCAgNCwgIDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDMsICA1LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoMywgIDYsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAgNywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAg
RVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgIDIsICAzLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAgMywgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsICAzLCAgMywgdHJ1ZSkubnVtVGls
ZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMSwgIDQsIHRydWUpLm51
bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAyLCAgNCwgdHJ1ZSku
bnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgIDMsICA0LCB0cnVl
KS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgNCwgIDQsIHRy
dWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDQsICA1LCAgNCwg
dHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDYsICA0
LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg0LCAgNywg
IDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQsICA4
LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNCwg
IDksICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0
LCAxMCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRh
KDQsIDExLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoNCwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSg0LCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxp
bmdEYXRhKDQsICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoNCwgIDQsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg0LCAgNSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDQsICA2LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDQsIFRpbGluZ0RhdGEoNCwgIDcsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoNCwgVGlsaW5nRGF0YSg0LCAgOCwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDQsICA5LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTAsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSg0LCAxMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwogCi0g
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDEsICA1LCB0cnVlKS5udW1UaWxlcygpKTsK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMiwgIDUsIHRydWUpLm51bVRpbGVzKCkp
OwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAzLCAgNSwgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDQsICA1LCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA2LCAgNSwgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDcsICA1LCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgOCwgIDUsIHRydWUp
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA5LCAgNSwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsICA1LCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgIDUs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAxLCAg
MywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDIs
ICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAg
MywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUs
ICA0LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
NSwgIDUsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0
YSg1LCAgNiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDUsICA3LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgIDgsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBU
aWxpbmdEYXRhKDUsIDEwLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoNSwgMTEsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKIH0KIAogVEVTVChUaWxp
bmdEYXRhVGVzdCwgdGlsZVhJbmRleEZyb21TcmNDb29yZCkKQEAgLTE2NiwxNyArMTY2LDE3IEBA
CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCBmYWxzZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwot
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0
cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNCkpOwotICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmND
b29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50
aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgz
LCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNykpOwotICAgIEVYUEVDVF9F
USg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg4
KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWElu
ZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwg
MTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsKLSAgICBFWFBFQ1RfRVEoNywg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBF
WFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEo
MywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKKyAgICBFWFBFQ1Rf
RVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
NykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNUX0VRKDksIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKKyAgICBFWFBFQ1RfRVEoOSwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsK
KyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsIDEsIDEs
IGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CkBAIC0x
OTQsMTMgKzE5NCwxMyBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsIDIsIDIsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwogICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
MCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMs
IHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVY
UEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoMikpOwogCi0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGls
ZVhJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywg
NCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0g
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21T
cmNDb29yZCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
NCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgzKSk7CiB9CiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKQogewpAQCAtMjE4LDE3ICsyMTgsMTcgQEAKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDExKSk7CiAKICAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoMykpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKLSAgICBFWFBFQ1RfRVEo
NSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNikp
OwotICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEw
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGls
aW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOSkpOwotICAg
IEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgxMCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg0KSk7CisgICAgRVhQRUNUX0VR
KDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDUp
KTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7CisgICAgRVhQRUNUX0VRKDgsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKKyAg
ICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoOSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFsc2UpLnRpbGVZSW5kZXhGcm9tU3Jj
Q29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIGZhbHNlKS50
aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTI0Niw2MSArMjQ2LDYxIEBACiAgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29y
ZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJ
bmRleEZyb21TcmNDb29yZCgxKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywg
MywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmND
b29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywg
MywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEo
MCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsK
LSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0
cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKIH0KIAogVEVT
VChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRp
bGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNpemVYKDApKTsKIAogICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWCgwKSk7CiAgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVYKDEpKTsK
LSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6
ZVgoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGls
ZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUp
LnRpbGVTaXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgs
IGZhbHNlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4
LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEo
NSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMSkpOwogCiAgICAgRVhQRUNU
X0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSkudGlsZVNpemVYKDApKTsKICAgICBF
WFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVgoMSkpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXpl
WCgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxl
U2l6ZVgoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSku
dGlsZVNpemVYKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwg
dHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwg
MTEsIHRydWUpLnRpbGVTaXplWCgyKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
MTIsIDEyLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogfQogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGls
ZVNpemVZKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2Up
LnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0
cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAg
NSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUs
ICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGls
aW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7CiAKICAg
ICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVkoMCkp
OwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXpl
WSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxl
U2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSku
dGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRy
dWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4
LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwg
MTAsIDEwLCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0
YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxp
bmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKIAotICAg
IEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWSgy
KSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6
ZVkoMikpOwogfQogCkBAIC0zMTksMTAgKzMxOSwxMCBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDMsIDEsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CiAgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0g
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkp
OwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0
aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgMTAwLCB0cnVlKS50
aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDEwMCwgdHJ1
ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMywg
ICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUs
IDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDUsIDMsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CiAKICAgICAvLyBN
dWx0aXBsZSB0aWxlczoKICAgICAvLyBubyBib3JkZXIKQEAgLTM0MCwyMyArMzQwLDIzIEBACiAg
ICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIKICAgICAvLyBwb3NpdGlv
bnMgMCwgMiwgMywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0
cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsICAg
MSwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2
LCAgIDEsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
MywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKLSAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9u
WCgzKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxl
U2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSku
dGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRy
dWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAw
LCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDYs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOwotICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7Cisg
ICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgw
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6
ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGls
ZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUp
LnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0
cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0
LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDIp
KTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXpl
WCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxl
UG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRy
dWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDQs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKIH0KIAogVEVTVChUaWxpbmdE
YXRhVGVzdCwgdGlsZVNpemVZX2FuZF90aWxlUG9zaXRpb25ZKQpAQCAtMzc0LDEwICszNzQsMTAg
QEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDEsIHRydWUpLnRpbGVQb3Np
dGlvblkoMCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1ZSku
dGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDEsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAg
MSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgz
LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCAxMDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsICAgMSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZ
KDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAxMDAsIDMsIHRydWUpLnRpbGVQ
b3NpdGlvblkoMCkpOwogCiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gbm8gYm9yZGVy
CkBAIC0zOTUsMjMgKzM5NSwyMyBAQAogICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIHdp
dGggYm9yZGVyCiAgICAgLy8gcG9zaXRpb25zIDAsIDIsIDMsIDQKLSAgICBFWFBFQ1RfRVEoNCwg
VGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgy
LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlU2l6ZVkoMikpOwotICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNpemVZKDMpKTsK
LSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlv
blkoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0
cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAg
IDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6ZVkoMikpOwotICAgIEVYUEVDVF9F
USgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDMpKTsKLSAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwot
ICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9u
WSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxl
UG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAg
MSwgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywg
ICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsK
KyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVQb3NpdGlv
blkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0
cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwg
NCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAx
MDAsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEo
MywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwor
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9u
WSgzKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHNldFRvdGFsU2l6ZSkKQEAgLTQ2OCw3
ICs0NjgsNyBAQAogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCBzZXRNYXhUZXh0dXJlU2l6ZUJvcmRl
cnMpCiB7Ci0gICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAzMiwgdHJ1ZSk7CisgICAgVGlsaW5n
RGF0YSBkYXRhKDgsIDE2LCAzMCwgdHJ1ZSk7CiAgICAgRVhQRUNUX0VRKDMsIGRhdGEubnVtVGls
ZXNYKCkpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRpbGVzWSgpKTsKIApAQCAtNDg0LDcg
KzQ4NCw3IEBACiAKICAgICBkYXRhLnNldE1heFRleHR1cmVTaXplKDUpOwogICAgIEVYUEVDVF9F
USg1LCBkYXRhLm1heFRleHR1cmVTaXplKCkpOwotICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRp
bGVzWCgpKTsKKyAgICBFWFBFQ1RfRVEoNiwgZGF0YS5udW1UaWxlc1goKSk7CiAgICAgRVhQRUNU
X0VRKDEwLCBkYXRhLm51bVRpbGVzWSgpKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAJKHJldmlzaW9uIDg3NzE2KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDEwICs0NCwxMiBAQAogCiBzdGF0aWMgaW50IGNvbXB1dGVOdW1UaWxlcyhpbnQgbWF4VGV4
dHVyZVNpemUsIGludCB0b3RhbFNpemUsIGludCBib3JkZXJUZXhlbHMpCiB7CisgICAgaW50IHRv
dGFsU2l6ZVdpdGhCb3JkZXIgPSB0b3RhbFNpemUgKyAyICogYm9yZGVyVGV4ZWxzOworCiAgICAg
aWYgKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscyA8PSAwKQotICAgICAgICByZXR1
cm4gdG90YWxTaXplID4gMCAmJiBtYXhUZXh0dXJlU2l6ZSA+PSB0b3RhbFNpemUgPyAxIDogMDsK
KyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpbnQgbnVtVGlsZXMgPSBtYXgoMSwgMSArICh0b3Rh
bFNpemUgLSAxIC0gMiAqIGJvcmRlclRleGVscykgLyAobWF4VGV4dHVyZVNpemUgLSAyICogYm9y
ZGVyVGV4ZWxzKSk7CisgICAgaW50IG51bVRpbGVzID0gbWF4KDEsIDEgKyAodG90YWxTaXplV2l0
aEJvcmRlciAtIDEgLSAyICogYm9yZGVyVGV4ZWxzKSAvIChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBi
b3JkZXJUZXhlbHMpKTsKICAgICByZXR1cm4gdG90YWxTaXplID4gMCA/IG51bVRpbGVzIDogMDsK
IH0KIApAQCAtNzksNyArODEsNyBAQAogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VSVCht
X21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKLSAgICBpbnQgeCA9IChzcmNQ
b3MgLSBtX2JvcmRlclRleGVscykgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRl
eGVscyk7CisgICAgaW50IHggPSBzcmNQb3MgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2Jv
cmRlclRleGVscyk7CiAgICAgcmV0dXJuIG1pbihtYXgoeCwgMCksIG51bVRpbGVzWCgpIC0gMSk7
CiB9CiAKQEAgLTg5LDcgKzkxLDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBBU1NFUlQo
bV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgaW50IHkgPSAoc3Jj
UG9zIC0gbV9ib3JkZXJUZXhlbHMpIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJU
ZXhlbHMpOworICAgIGludCB5ID0gc3JjUG9zIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9i
b3JkZXJUZXhlbHMpOwogICAgIHJldHVybiBtaW4obWF4KHksIDApLCBudW1UaWxlc1koKSAtIDEp
OwogfQogCkBAIC0xMTEsMjQgKzExMyw5IEBACiB7CiAgICAgSW50UmVjdCBib3VuZHMgPSB0aWxl
Qm91bmRzKHRpbGUpOwogCi0gICAgaWYgKG1fYm9yZGVyVGV4ZWxzKSB7Ci0gICAgICAgIGludCB4
MSA9IGJvdW5kcy54KCk7Ci0gICAgICAgIGludCB4MiA9IGJvdW5kcy5tYXhYKCk7Ci0gICAgICAg
IGludCB5MSA9IGJvdW5kcy55KCk7Ci0gICAgICAgIGludCB5MiA9IGJvdW5kcy5tYXhZKCk7Cisg
ICAgaWYgKG1fYm9yZGVyVGV4ZWxzKQorICAgICAgICBib3VuZHMuaW5mbGF0ZSgxKTsKIAotICAg
ICAgICBpZiAodGlsZVhJbmRleCh0aWxlKSA+IDApCi0gICAgICAgICAgICB4MS0tOwotICAgICAg
ICBpZiAodGlsZVhJbmRleCh0aWxlKSA8IChudW1UaWxlc1goKSAtIDEpKQotICAgICAgICAgICAg
eDIrKzsKLSAgICAgICAgaWYgKHRpbGVZSW5kZXgodGlsZSkgPiAwKQotICAgICAgICAgICAgeTEt
LTsKLSAgICAgICAgaWYgKHRpbGVZSW5kZXgodGlsZSkgPCAobnVtVGlsZXNZKCkgLSAxKSkKLSAg
ICAgICAgICAgIHkyKys7Ci0KLSAgICAgICAgYm91bmRzID0gSW50UmVjdCh4MSwgeTEsIHgyIC0g
eDEsIHkyIC0geTEpOwotICAgIH0KLQogICAgIHJldHVybiBib3VuZHM7CiB9CiAKQEAgLTE2OCw4
ICsxNTUsNiBAQAogCiAgICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxlc1ggPT0gMSkKICAgICAg
ICAgcmV0dXJuIG1fdG90YWxTaXplWDsKLSAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA+
IDEpCi0gICAgICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0gbV9ib3JkZXJUZXhlbHM7CiAg
ICAgaWYgKHhJbmRleCA8IG51bVRpbGVzWCgpIC0gMSkKICAgICAgICAgcmV0dXJuIG1fbWF4VGV4
dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYgKHhJbmRleCA9PSBudW1UaWxl
c1goKSAtIDEpCkBAIC0xODUsOCArMTcwLDYgQEAKIAogICAgIGlmICgheUluZGV4ICYmIG1fbnVt
VGlsZXNZID09IDEpCiAgICAgICAgIHJldHVybiBtX3RvdGFsU2l6ZVk7Ci0gICAgaWYgKCF5SW5k
ZXggJiYgbV9udW1UaWxlc1kgPiAxKQotICAgICAgICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZSAt
IG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh5SW5kZXggPCBudW1UaWxlc1koKSAtIDEpCiAgICAg
ICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlm
ICh5SW5kZXggPT0gbnVtVGlsZXNZKCkgLSAxKQpAQCAtMjMwLDggKzIxMyw4IEBACiAKICAgICAq
bmV3U3JjID0gc3JjUmVjdEludGVyc2VjdGVkOwogICAgIG5ld1NyYy0+bW92ZSgKLSAgICAgICAg
LXRpbGVCb3VuZHMueCgpICsgKCh0aWxlWEluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRlclRleGVs
cyA6IDApLAotICAgICAgICAtdGlsZUJvdW5kcy55KCkgKyAoKHRpbGVZSW5kZXgodGlsZSkgPiAw
KSA/IG1fYm9yZGVyVGV4ZWxzIDogMCkpOworICAgICAgICAtdGlsZUJvdW5kcy54KCkgKyBtX2Jv
cmRlclRleGVscywKKyAgICAgICAgLXRpbGVCb3VuZHMueSgpICsgbV9ib3JkZXJUZXhlbHMpOwog
CiAgICAgKm5ld0RzdCA9IEZsb2F0UmVjdCgKICAgICAgICAgc3JjUmVjdEludGVyc2VjdGVkTm9y
bVggKiBkc3RSZWN0LndpZHRoKCkgKyBkc3RSZWN0LngoKSwKQEAgLTI0MiwxMCArMjI1LDcgQEAK
IAogSW50UG9pbnQgVGlsaW5nRGF0YTo6dGV4dHVyZU9mZnNldChpbnQgeEluZGV4LCBpbnQgeUlu
ZGV4KSBjb25zdAogewotICAgIGludCBsZWZ0ID0gKCF4SW5kZXggfHwgbV9udW1UaWxlc1ggPT0g
MSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0gICAgaW50IHRvcCA9ICgheUluZGV4IHx8IG1fbnVt
VGlsZXNZID09IDEpID8gMCA6IG1fYm9yZGVyVGV4ZWxzOwotCi0gICAgcmV0dXJuIEludFBvaW50
KGxlZnQsIHRvcCk7CisgICAgcmV0dXJuIEludFBvaW50KG1fYm9yZGVyVGV4ZWxzLCBtX2JvcmRl
clRleGVscyk7CiB9CiAKIHZvaWQgVGlsaW5nRGF0YTo6cmVjb21wdXRlTnVtVGlsZXMoKQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5
QmluZGluZy5oCShyZXZpc2lvbiA4NzcxNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwz
MCBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCisjaW5jbHVkZSAiSW50
UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKK2VudW0gRWRnZUZpbHRlciB7CisgICAg
RmlsdGVyTGVmdEVkZ2UgICA9IDEgPDwgMCwKKyAgICBGaWx0ZXJUb3BFZGdlICAgID0gMSA8PCAx
LAorICAgIEZpbHRlclJpZ2h0RWRnZSAgPSAxIDw8IDIsCisgICAgRmlsdGVyQm90dG9tRWRnZSA9
IDEgPDwgMworfTsKK3R5cGVkZWYgdW5zaWduZWQgRWRnZUZpbHRlckZsYWdzOworCiBjbGFzcyBH
ZW9tZXRyeUJpbmRpbmcgewogcHVibGljOgogICAgIGV4cGxpY2l0IEdlb21ldHJ5QmluZGluZyhH
cmFwaGljc0NvbnRleHQzRCopOworICAgIGV4cGxpY2l0IEdlb21ldHJ5QmluZGluZyhHcmFwaGlj
c0NvbnRleHQzRCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVj
dCYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyk7CiAgICAg
fkdlb21ldHJ5QmluZGluZygpOwogCiAgICAgYm9vbCBpbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0
dXJuIG1faW5pdGlhbGl6ZWQ7IH0KQEAgLTQ1LDcgKzYwLDcgQEAKICAgICB1bnNpZ25lZCBxdWFk
VmVydGljZXNWYm8oKSBjb25zdCB7IHJldHVybiBtX3F1YWRWZXJ0aWNlc1ZibzsgfQogICAgIHVu
c2lnbmVkIHF1YWRFbGVtZW50c1ZibygpIGNvbnN0IHsgcmV0dXJuIG1fcXVhZEVsZW1lbnRzVmJv
OyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JEcmF3KCk7CisgICAgdm9pZCBwcmVwYXJlRm9yRHJh
dygpIGNvbnN0OwogCiAgICAgLy8gQWxsIGxheWVyIHNoYWRlcnMgc2hhcmUgdGhlIHNhbWUgYXR0
cmlidXRlIGxvY2F0aW9ucyBmb3IgdGhlIHZlcnRleAogICAgIC8vIHBvc2l0aW9ucyBhbmQgdGV4
dHVyZSBjb29yZGluYXRlcy4gVGhpcyBhbGxvd3Mgc3dpdGNoaW5nIHNoYWRlcnMgd2l0aG91dApA
QCAtNTQsNiArNjksMjEgQEAKICAgICBzdGF0aWMgaW50IHRleENvb3JkQXR0cmliTG9jYXRpb24o
KSB7IHJldHVybiAxOyB9CiAKIHByaXZhdGU6CisgICAgY2xhc3MgRWRnZSB7CisgICAgcHVibGlj
OgorICAgICAgICBFZGdlKCkgeyB9CisgICAgICAgIEVkZ2UoZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgeikgOiBmWCh4KSwgZlkoeSksIGZaKHopIHsgfQorICAgICAgICBGbG9hdFBvaW50IGludGVy
c2VjdChjb25zdCBFZGdlJiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIEZs
b2F0UG9pbnQoCisgICAgICAgICAgICAgICAgKGZZICogb3RoZXIuZlogLSBvdGhlci5mWSAqIGZa
KSAvCisgICAgICAgICAgICAgICAgKGZYICogb3RoZXIuZlkgLSBvdGhlci5mWCAqIGZZKSwKKyAg
ICAgICAgICAgICAgICAoZlggKiBvdGhlci5mWiAtIG90aGVyLmZYICogZlopIC8KKyAgICAgICAg
ICAgICAgICAob3RoZXIuZlggKiBmWSAtIGZYICogb3RoZXIuZlkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmWCwgZlksIGZaOworICAgIH07CisKICAgICBHcmFwaGljc0NvbnRleHQzRCog
bV9jb250ZXh0OwogICAgIHVuc2lnbmVkIG1fcXVhZFZlcnRpY2VzVmJvOwogICAgIHVuc2lnbmVk
IG1fcXVhZEVsZW1lbnRzVmJvOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAkocmV2aXNpb24gODc3
MTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJv
bWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJMYXll
clRpbGVyQ2hyb21pdW0uaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRENocm9taXVtLmgiCisj
aW5jbHVkZSAiR2VvbWV0cnlCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVy
Q2hyb21pdW0uaCIKQEAgLTc4LDcgKzc5LDYgQEAKICAgICByZXNldCgpOwogCiAgICAgbV90aWxl
U2l6ZSA9IHNpemU7Ci0gICAgbV90aWxpbmdEYXRhLnNldE1heFRleHR1cmVTaXplKG1heChzaXpl
LndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKIH0KIAogTGF5ZXJUZXh0dXJlKiBMYXllclRpbGVy
Q2hyb21pdW06OmdldFNpbmdsZVRleHR1cmUoKQpAQCAtMTc5LDkgKzE3OSw3IEBACiBJbnRSZWN0
IExheWVyVGlsZXJDaHJvbWl1bTo6dGlsZUxheWVyUmVjdChjb25zdCBUaWxlKiB0aWxlKSBjb25z
dAogewogICAgIGNvbnN0IGludCBpbmRleCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+
aSgpLCB0aWxlLT5qKCkpOwotICAgIEludFJlY3QgbGF5ZXJSZWN0ID0gbV90aWxpbmdEYXRhLnRp
bGVCb3VuZHNXaXRoQm9yZGVyKGluZGV4KTsKLSAgICBsYXllclJlY3Quc2V0U2l6ZShtX3RpbGVT
aXplKTsKLSAgICByZXR1cm4gbGF5ZXJSZWN0OworICAgIHJldHVybiBtX3RpbGluZ0RhdGEudGls
ZUJvdW5kc1dpdGhCb3JkZXIoaW5kZXgpOwogfQogCiB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6
aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpCkBAIC0yMzUsNiArMjMz
LDcgQEAKICAgICAvLyBDcmVhdGUgdGlsZXMgYXMgbmVlZGVkLCBleHBhbmRpbmcgYSBkaXJ0eSBy
ZWN0IHRvIGNvbnRhaW4gYWxsCiAgICAgLy8gdGhlIGRpcnR5IHJlZ2lvbnMgY3VycmVudGx5IGJl
aW5nIGRyYXduLgogICAgIEludFJlY3QgZGlydHlMYXllclJlY3Q7CisgICAgSW50U2l6ZSB0aWxl
U2l6ZTsKICAgICBpbnQgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tOwogICAgIGNvbnRlbnRSZWN0
VG9UaWxlSW5kaWNlcyhjb250ZW50UmVjdCwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKICAg
ICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7CkBAIC0yNDIsMTEgKzI0MSwx
NSBAQAogICAgICAgICAgICAgVGlsZSogdGlsZSA9IHRpbGVBdChpLCBqKTsKICAgICAgICAgICAg
IGlmICghdGlsZSkKICAgICAgICAgICAgICAgICB0aWxlID0gY3JlYXRlVGlsZShpLCBqKTsKLSAg
ICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5pc1ZhbGlkKG1fdGlsZVNpemUsIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBKSkKKworICAgICAgICAgICAgSW50U2l6ZSBjb250ZW50U2l6ZSA9
IHRpbGVDb250ZW50UmVjdCh0aWxlKS5zaXplKCk7CisgICAgICAgICAgICBpZiAoIXRpbGUtPnRl
eHR1cmUoKS0+aXNWYWxpZChjb250ZW50U2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQog
ICAgICAgICAgICAgICAgIHRpbGUtPm1fZGlydHlMYXllclJlY3QgPSB0aWxlTGF5ZXJSZWN0KHRp
bGUpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+
cmVzZXJ2ZShtX3RpbGVTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSk7CisgICAgICAgICAg
ICAgICAgdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKGNvbnRlbnRTaXplLCBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQSk7CiAgICAgICAgICAgICBkaXJ0eUxheWVyUmVjdC51bml0ZSh0aWxlLT5tX2Rp
cnR5TGF5ZXJSZWN0KTsKKworICAgICAgICAgICAgdGlsZVNpemUgPSB0aWxlU2l6ZS5leHBhbmRl
ZFRvKGNvbnRlbnRTaXplKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjU5LDcgKzI2Miw3IEBA
CiAgICAgaWYgKGRpcnR5TGF5ZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV90ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRSZWN0LCBtX3RpbGVT
aXplLCBtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpOworICAgIG1fdGV4dHVyZVVwZGF0ZXIt
PnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgdGlsZVNpemUsIG1fdGlsaW5nRGF0YS5ib3Jk
ZXJUZXhlbHMoKSk7CiB9CiAKIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjp1cGRhdGVSZWN0KCkK
QEAgLTI5MSw3ICsyOTQsNyBAQAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
ICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+aXNSZXNlcnZlZCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkEpKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPnJl
c2VydmUodGlsZUxheWVyUmVjdCh0aWxlKS5zaXplKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JB
KSkgewogICAgICAgICAgICAgICAgICAgICBtX3NraXBzRHJhdyA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTM2Myw4
ICszNjYsOSBAQAogICAgICAgICAgICAgdGlsZU1hdHJpeC50cmFuc2xhdGUzZCh0aWxlUmVjdC54
KCkgKyB0aWxlUmVjdC53aWR0aCgpIC8gMi4wLCB0aWxlUmVjdC55KCkgKyB0aWxlUmVjdC5oZWln
aHQoKSAvIDIuMCwgMCk7CiAKICAgICAgICAgICAgIEludFBvaW50IHRleE9mZnNldCA9IG1fdGls
aW5nRGF0YS50ZXh0dXJlT2Zmc2V0KHRpbGUtPmkoKSwgdGlsZS0+aigpKTsKLSAgICAgICAgICAg
IGZsb2F0IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0PGZsb2F0PihtX3RpbGVTaXplLndpZHRoKCkp
OwotICAgICAgICAgICAgZmxvYXQgdGlsZUhlaWdodCA9IHN0YXRpY19jYXN0PGZsb2F0PihtX3Rp
bGVTaXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgIEludFJlY3QgY29udGVudFJlY3QgPSB0aWxl
Q29udGVudFJlY3QodGlsZSk7CisgICAgICAgICAgICBmbG9hdCB0aWxlV2lkdGggPSBzdGF0aWNf
Y2FzdDxmbG9hdD4oY29udGVudFJlY3Qud2lkdGgoKSk7CisgICAgICAgICAgICBmbG9hdCB0aWxl
SGVpZ2h0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKICAgICAg
ICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVggPSB0ZXhPZmZzZXQueCgpIC8gdGlsZVdpZHRoOwog
ICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWSA9IHRleE9mZnNldC55KCkgLyB0aWxlSGVp
Z2h0OwogICAgICAgICAgICAgZmxvYXQgdGV4U2NhbGVYID0gdGlsZVJlY3Qud2lkdGgoKSAvIHRp
bGVXaWR0aDsKQEAgLTM3NSw3ICszNzksMzggQEAKICAgICAgICAgICAgICAgICB0ZXhUcmFuc2xh
dGVZICs9IDEuMDsKICAgICAgICAgICAgICAgICB0ZXhTY2FsZVkgKj0gLTEuMDsKICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgT3duUHRyPEdlb21ldHJ5QmluZGluZz4gZ2VvbWV0cnk7CisK
KyAgICAgICAgICAgIC8vIENyZWF0ZSBnZW9tZXRyeSBiaW5kaW5nIGFkanVzdGVkIGZvciBmaWx0
ZXJpbmcgb2YgbGF5ZXIgZWRnZXMuCisgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRhLmJvcmRl
clRleGVscygpKSB7CisgICAgICAgICAgICAgICAgaW50IG51bVRpbGVzWCA9IG1fdGlsaW5nRGF0
YS5udW1UaWxlc1goKTsKKyAgICAgICAgICAgICAgICBpbnQgbnVtVGlsZXNZID0gbV90aWxpbmdE
YXRhLm51bVRpbGVzWSgpOworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IG1fdGlsaW5nRGF0
YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpOworICAgICAgICAgICAgICAgIEVkZ2VG
aWx0ZXJGbGFncyBmaWx0ZXIgPSAwOworCisgICAgICAgICAgICAgICAgaWYgKCFtX3RpbGluZ0Rh
dGEudGlsZVhJbmRleChpbmRleCkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0
ZXJMZWZ0RWRnZTsKKyAgICAgICAgICAgICAgICBpZiAoIW1fdGlsaW5nRGF0YS50aWxlWUluZGV4
KGluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlclRvcEVkZ2U7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWEluZGV4KGluZGV4KSA9PSAobnVt
VGlsZXNYIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0ZXJSaWdodEVk
Z2U7CisgICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWUluZGV4KGluZGV4KSA9
PSAobnVtVGlsZXNZIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0ZXJC
b3R0b21FZGdlOworCisgICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBhZG9wdFB0cihuZXcgR2Vv
bWV0cnlCaW5kaW5nKGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbGVNYXRyaXgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVSZWN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIpKTsKKwor
ICAgICAgICAgICAgICAgIGdlb21ldHJ5LT5wcmVwYXJlRm9yRHJhdygpOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBkcmF3VGV4dHVyZWRRdWFkKGNvbnRleHQsIGxheWVyUmVuZGVyZXIo
KS0+cHJvamVjdGlvbk1hdHJpeCgpLCB0aWxlTWF0cml4LCB0aWxlUmVjdC53aWR0aCgpLCB0aWxl
UmVjdC5oZWlnaHQoKSwgb3BhY2l0eSwgdGV4VHJhbnNsYXRlWCwgdGV4VHJhbnNsYXRlWSwgdGV4
U2NhbGVYLCB0ZXhTY2FsZVksIHByb2dyYW0pOworCisgICAgICAgICAgICAvLyBSZXN0b3JlIGRl
ZmF1bHQgZ2VvbWV0cnkgYmluZGluZy4KKyAgICAgICAgICAgIGlmIChtX3RpbGluZ0RhdGEuYm9y
ZGVyVGV4ZWxzKCkpCisgICAgICAgICAgICAgICAgbGF5ZXJSZW5kZXJlcigpLT5zaGFyZWRHZW9t
ZXRyeSgpLT5wcmVwYXJlRm9yRHJhdygpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzg1LDkg
KzQyMCwyMSBAQAogICAgIC8vIEdyb3cgdGhlIHRpbGUgYXJyYXkgdG8gY29udGFpbiB0aGlzIGNv
bnRlbnQgcmVjdC4KICAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGNvbnRlbnRSZWN0VG9MYXllclJl
Y3QoY29udGVudFJlY3QpOwogICAgIEludFNpemUgcmVjdFNpemUgPSBJbnRTaXplKGxheWVyUmVj
dC5tYXhYKCksIGxheWVyUmVjdC5tYXhZKCkpOworICAgIEludFNpemUgdGV4U2l6ZSA9IG1fdGls
ZVNpemU7CiAKKyAgICAvLyBVc2UgcmVjdCB3aXRoIGJvcmRlciB0ZXhlbHMgYXMgbWF4IHRleHR1
cmUgc2l6ZSB3aGVuIHRpbGUgc2l6ZQorICAgIC8vIGhhcyBub3QgYmVlbiBzcGVjaWZpZWQuCisg
ICAgaWYgKHRleFNpemUuaXNFbXB0eSgpKSB7CisgICAgICAgIHRleFNpemUgPSByZWN0U2l6ZTsK
KyAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkKKyAgICAgICAgICAgIHRl
eFNpemUuZXhwYW5kKDIsIDIpOworICAgIH0KKworICAgIG1fdGlsaW5nRGF0YS5zZXRNYXhUZXh0
dXJlU2l6ZShtYXgodGV4U2l6ZS53aWR0aCgpLCB0ZXhTaXplLmhlaWdodCgpKSk7CisKICAgICBJ
bnRTaXplIG9sZExheWVyU2l6ZShtX3RpbGluZ0RhdGEudG90YWxTaXplWCgpLCBtX3RpbGluZ0Rh
dGEudG90YWxTaXplWSgpKTsKICAgICBJbnRTaXplIG5ld1NpemUgPSByZWN0U2l6ZS5leHBhbmRl
ZFRvKG9sZExheWVyU2l6ZSk7CisKICAgICBtX3RpbGluZ0RhdGEuc2V0VG90YWxTaXplKG5ld1Np
emUud2lkdGgoKSwgbmV3U2l6ZS5oZWlnaHQoKSk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21p
dW0uY3BwCShyZXZpc2lvbiA4NzcxNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0
OCw3IEBACiAKIC8vIE1heGltdW0gc2l6ZSB0aGUgd2lkdGggb3IgaGVpZ2h0IG9mIHRoaXMgbGF5
ZXIgY2FuIGJlIGJlZm9yZSBlbmFibGluZyB0aWxpbmcKIC8vIHdoZW4gbV90aWxpbmdPcHRpb24g
PT0gQXV0b1RpbGUuCi1zdGF0aWMgaW50IG1heFVudGlsZWRTaXplID0gNTEyOworc3RhdGljIGlu
dCBtYXhVbnRpbGVkU2l6ZSA9IDUxMDsKIC8vIFdoZW4gdGlsaW5nIGlzIGVuYWJsZWQsIHVzZSB0
aWxlcyBvZiB0aGlzIGRpbWVuc2lvbiBzcXVhcmVkLgogc3RhdGljIGludCBkZWZhdWx0VGlsZVNp
emUgPSAyNTY7CiAKQEAgLTE4NSw3ICsxODUsNyBAQAogICAgIGlmICghbV90aWxlcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgY29uc3QgSW50U2l6ZSB0aWxlU2l6ZShtaW4oZGVmYXVsdFRpbGVT
aXplLCBsYXllclNpemUud2lkdGgoKSksIG1pbihkZWZhdWx0VGlsZVNpemUsIGxheWVyU2l6ZS5o
ZWlnaHQoKSkpOworICAgIGNvbnN0IEludFNpemUgdGlsZVNpemUoZGVmYXVsdFRpbGVTaXplLCBk
ZWZhdWx0VGlsZVNpemUpOwogICAgIGNvbnN0IGJvb2wgYXV0b1RpbGVkID0gbGF5ZXJTaXplLndp
ZHRoKCkgPiBtYXhVbnRpbGVkU2l6ZSB8fCBsYXllclNpemUuaGVpZ2h0KCkgPiBtYXhVbnRpbGVk
U2l6ZTsKIAogICAgIGJvb2wgaXNUaWxlZDsKQEAgLTE5Niw3ICsxOTYsOCBAQAogICAgIGVsc2UK
ICAgICAgICAgaXNUaWxlZCA9IGF1dG9UaWxlZDsKIAotICAgIG1fdGlsZXItPnNldFRpbGVTaXpl
KGlzVGlsZWQgPyB0aWxlU2l6ZSA6IGxheWVyU2l6ZSk7CisgICAgLy8gWmVybyB0aWxlIHNpemUg
dGVsbHMgdGhlIHRpbGVyIHRvIGF2b2lkIHRpbGluZy4KKyAgICBtX3RpbGVyLT5zZXRUaWxlU2l6
ZShpc1RpbGVkID8gdGlsZVNpemUgOiBJbnRTaXplKCkpOwogfQogCiB2b2lkIENvbnRlbnRMYXll
ckNocm9taXVtOjpkcmF3KGNvbnN0IEludFJlY3QmIHRhcmdldFN1cmZhY2VSZWN0KQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlC
aW5kaW5nLmNwcAkocmV2aXNpb24gODc3MTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDEzICs1
OSwxMTcgQEAKICAgICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaXND
Q1coY29uc3QgRmxvYXRQb2ludCogcHRzKQoreworICAgIEZsb2F0UG9pbnQgdjEgPSBGbG9hdFBv
aW50KHB0c1sxXS54KCkgLSBwdHNbMF0ueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB0c1sxXS55KCkgLSBwdHNbMF0ueSgpKTsKKyAgICBGbG9hdFBvaW50IHYyID0gRmxvYXRQ
b2ludChwdHNbMl0ueCgpIC0gcHRzWzFdLngoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdHNbMl0ueSgpIC0gcHRzWzFdLnkoKSk7CisgICAgcmV0dXJuICh2MS54KCkgKiB2Mi55
KCkgLSB2MS55KCkgKiB2Mi54KCkpIDwgMDsKK30KKworR2VvbWV0cnlCaW5kaW5nOjpHZW9tZXRy
eUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcmVjdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyBmaWx0ZXIpCisgICAgOiBt
X2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fcXVhZFZlcnRpY2VzVmJvKDApCisgICAgLCBtX3F1
YWRFbGVtZW50c1ZibygwKQorICAgICwgbV9pbml0aWFsaXplZChmYWxzZSkKK3sKKyAgICBpbnQg
eDEgPSByZWN0LngoKTsKKyAgICBpbnQgeTEgPSByZWN0LnkoKTsKKyAgICBpbnQgeDIgPSByZWN0
Lm1heFgoKTsKKyAgICBpbnQgeTIgPSByZWN0Lm1heFkoKTsKKworICAgIC8vIEluY2x1ZGUgYm9y
ZGVyIHRleGVscy4KKyAgICBpZiAoZmlsdGVyICYgRmlsdGVyTGVmdEVkZ2UpCisgICAgICAgIHgx
LS07CisgICAgaWYgKGZpbHRlciAmIEZpbHRlclRvcEVkZ2UpCisgICAgICAgIHkxLS07CisgICAg
aWYgKGZpbHRlciAmIEZpbHRlclJpZ2h0RWRnZSkKKyAgICAgICAgeDIrKzsKKyAgICBpZiAoZmls
dGVyICYgRmlsdGVyQm90dG9tRWRnZSkKKyAgICAgICAgeTIrKzsKKworICAgIEZsb2F0UG9pbnQg
cHRbNF07CisgICAgcHRbMF0gPSBGbG9hdFBvaW50KHgxLCB5MSk7CisgICAgcHRbMV0gPSBGbG9h
dFBvaW50KHgyLCB5MSk7CisgICAgcHRbMl0gPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgcHRb
M10gPSBGbG9hdFBvaW50KHgxLCB5Mik7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkr
KykKKyAgICAgICAgcHRbaV0gPSBtYXRyaXgubWFwUG9pbnQocHRbaV0pOworCisgICAgRWRnZSBl
ZGdlc1s0XTsKKyAgICBGbG9hdFBvaW50IHAgPSBwdFszXTsKKyAgICBmbG9hdCBzaWduID0gaXND
Q1cocHQpID8gLTEuMGYgOiAxLjBmOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7
CisgICAgICAgIEZsb2F0UG9pbnQgcSA9IHB0W2ldOworICAgICAgICBGbG9hdFBvaW50IHRhbmdl
bnQgPSBGbG9hdFBvaW50KHAueSgpIC0gcS55KCksIHEueCgpIC0gcC54KCkpOworICAgICAgICBm
bG9hdCBzY2FsZSA9IHNpZ24gLyB0YW5nZW50Lmxlbmd0aCgpOworICAgICAgICBmbG9hdCBjcm9z
czIgPSBwLngoKSAqIHEueSgpIC0gcS54KCkgKiBwLnkoKTsKKworICAgICAgICBlZGdlc1tpXSA9
IEVkZ2UodGFuZ2VudC54KCkgKiBzY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdl
bnQueSgpICogc2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICBjcm9zczIgKiBzY2FsZSAr
IChmaWx0ZXIgJiAoMSA8PCBpKSkgKiAwLjVmKTsKKworICAgICAgICBwID0gcTsKKyAgICB9CisK
KyAgICAvLyBXZSBkb24ndCBjYXJlIGFib3V0IFogY29tcG9uZW50LgorICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGludmVyc2UgPQorICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChtYXRyaXgu
bTExKCksIG1hdHJpeC5tMTIoKSwgMC4wLCBtYXRyaXgubTE0KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hdHJpeC5tMjEoKSwgbWF0cml4Lm0yMigpLCAwLjAsIG1hdHJpeC5tMjQo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm0zMSgpLCBtYXRyaXgubTMy
KCksIDEuMCwgbWF0cml4Lm0zNCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRy
aXgubTQxKCksIG1hdHJpeC5tNDIoKSwgMC4wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXRyaXgubTQ0KCkpLmludmVyc2UoKTsKKworICAgIGRvdWJsZSBzY2FsZVggPSAxLjAgLyBy
ZWN0LndpZHRoKCk7CisgICAgZG91YmxlIHNjYWxlWSA9IDEuMCAvIHJlY3QuaGVpZ2h0KCk7Cisg
ICAgZG91YmxlIHRyYW5zbGF0ZVggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDIuMDsKKyAg
ICBkb3VibGUgdHJhbnNsYXRlWSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDIuMDsKKwor
ICAgICAvLyBUaGUgdHdvIHRyaWFuZ2xlcyB0aGF0IG1ha2UgdXAgdGhlIGxheWVyIHF1YWQuCisg
ICAgdWludDE2X3QgaW5kaWNlc1tdID0geyAwLCAxLCAyLCAwLCAyLCAzIH07CisgICAgZmxvYXQg
dmVydGljZXNbMjBdOworCisgICAgRWRnZSBwcmV2RWRnZSA9IGVkZ2VzWzNdOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgIEVkZ2UgZWRnZSA9IGVkZ2VzW2ldOwor
CisgICAgICAgIHB0W2ldID0gcHJldkVkZ2UuaW50ZXJzZWN0KGVkZ2UpOworICAgICAgICBwdFtp
XSA9IGludmVyc2UubWFwUG9pbnQocHRbaV0pOworCisgICAgICAgIC8vIFZlcnRleCBwb3NpdGlv
biBub3JtYWxpemVkIHRvIHJlY3QuCisgICAgICAgIHZlcnRpY2VzW2kgKiA1ICsgMF0gPSAocHRb
aV0ueCgpIC0gdHJhbnNsYXRlWCkgKiBzY2FsZVg7CisgICAgICAgIHZlcnRpY2VzW2kgKiA1ICsg
MV0gPSAocHRbaV0ueSgpIC0gdHJhbnNsYXRlWSkgKiBzY2FsZVk7CisgICAgICAgIHZlcnRpY2Vz
W2kgKiA1ICsgMl0gPSAwLjBmOworCisgICAgICAgIC8vIFRleHR1cmUgY29vcmRpbmF0ZXMuCisg
ICAgICAgIHZlcnRpY2VzW2kgKiA1ICsgM10gPSAocHRbaV0ueCgpIC0gcmVjdC54KCkpICogc2Nh
bGVYOworICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDRdID0gKHB0W2ldLnkoKSAtIHJlY3QueSgp
KSAqIHNjYWxlWTsKKworICAgICAgICBwcmV2RWRnZSA9IGVkZ2U7CisgICAgfQorCisgICAgR0xD
KG1fY29udGV4dCwgbV9xdWFkVmVydGljZXNWYm8gPSBtX2NvbnRleHQtPmNyZWF0ZUJ1ZmZlcigp
KTsKKyAgICBHTEMobV9jb250ZXh0LCBtX3F1YWRFbGVtZW50c1ZibyA9IG1fY29udGV4dC0+Y3Jl
YXRlQnVmZmVyKCkpOworICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1ZmZlcihH
cmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCBtX3F1YWRWZXJ0aWNlc1ZibykpOworICAg
IEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YnVmZmVyRGF0YShHcmFwaGljc0NvbnRleHQzRDo6
QVJSQVlfQlVGRkVSLCBzaXplb2YodmVydGljZXMpLCB2ZXJ0aWNlcywgR3JhcGhpY3NDb250ZXh0
M0Q6OlNUQVRJQ19EUkFXKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVm
ZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwgbV9xdWFkRWxlbWVu
dHNWYm8pKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJ1ZmZlckRhdGEoR3JhcGhp
Y3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBzaXplb2YoaW5kaWNlcyksIGluZGlj
ZXMsIEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVykpOworCisgICAgbV9pbml0aWFsaXpl
ZCA9IHRydWU7Cit9CisKIEdlb21ldHJ5QmluZGluZzo6fkdlb21ldHJ5QmluZGluZygpCiB7CiAg
ICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxldGVCdWZmZXIobV9xdWFkVmVydGljZXNW
Ym8pKTsKICAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmRlbGV0ZUJ1ZmZlcihtX3F1YWRF
bGVtZW50c1ZibykpOwogfQogCi12b2lkIEdlb21ldHJ5QmluZGluZzo6cHJlcGFyZUZvckRyYXco
KQordm9pZCBHZW9tZXRyeUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3KCkgY29uc3QKIHsKICAgICBH
TEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkFS
UkFZX0JVRkZFUiwgcXVhZFZlcnRpY2VzVmJvKCkpKTsKICAgICBHTEMobV9jb250ZXh0LCBtX2Nv
bnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVS
LCBxdWFkRWxlbWVudHNWYm8oKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95760</attachid>
            <date>2011-06-02 06:46:57 -0700</date>
            <delta_ts>2011-06-03 15:17:47 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-layer-aa-v11.diff</filename>
            <type>text/plain</type>
            <size>40792</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcAkocmV2aXNpb24g
ODc3NzEpCisrKyBXZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0YVRlc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIG51bVRp
bGVzX05vVGlsaW5nKQogewogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNiwgMTYs
IGZhbHNlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwgMTUs
IDE1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwg
MTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgx
NywgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgxOCwgMTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgxNiwgIDEsIDE2LCBmYWxzZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMTUsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMTcsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiB9CiAKIFRFU1QoVGls
aW5nRGF0YVRlc3QsIG51bVRpbGVzX1RpbGluZ05vQm9yZGVycykKQEAgLTEwOSw0NSArMTA5LDQ1
IEBACiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoLTEsIDEsICAxLCB0cnVlKS5udW1UaWxl
cygpKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgwLCAgMSwgIDEsIHRydWUpLm51bVRp
bGVzKCkpOwogCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMSwgIDEsICAxLCB0cnVlKS5u
dW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgxLCAgMSwgIDEsIHRydWUp
Lm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsICAxLCAgMiwgdHJ1
ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgIDIsICAxLCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAgMSwgIDEs
IHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDIsICAxLCAg
MiwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMiwgIDIs
ICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAg
MiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIs
ICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MiwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgyLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAgMSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsICAyLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgIDMsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSgzLCAgNCwgIDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDMsICA1LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoMywgIDYsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAgNywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAg
RVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgIDIsICAzLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAgMywgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsICAzLCAgMywgdHJ1ZSkubnVtVGls
ZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMSwgIDQsIHRydWUpLm51
bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAyLCAgNCwgdHJ1ZSku
bnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgIDMsICA0LCB0cnVl
KS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgNCwgIDQsIHRy
dWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDQsICA1LCAgNCwg
dHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDYsICA0
LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg0LCAgNywg
IDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQsICA4
LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNCwg
IDksICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0
LCAxMCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRh
KDQsIDExLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoNCwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSg0LCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxp
bmdEYXRhKDQsICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoNCwgIDQsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg0LCAgNSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDQsICA2LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDQsIFRpbGluZ0RhdGEoNCwgIDcsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoNCwgVGlsaW5nRGF0YSg0LCAgOCwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDQsICA5LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTAsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSg0LCAxMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwogCi0g
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDEsICA1LCB0cnVlKS5udW1UaWxlcygpKTsK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMiwgIDUsIHRydWUpLm51bVRpbGVzKCkp
OwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAzLCAgNSwgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDQsICA1LCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA2LCAgNSwgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDcsICA1LCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgOCwgIDUsIHRydWUp
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA5LCAgNSwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsICA1LCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgIDUs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAxLCAg
MywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDIs
ICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAg
MywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUs
ICA0LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
NSwgIDUsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0
YSg1LCAgNiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDUsICA3LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgIDgsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBU
aWxpbmdEYXRhKDUsIDEwLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoNSwgMTEsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKIH0KIAogVEVTVChUaWxp
bmdEYXRhVGVzdCwgdGlsZVhJbmRleEZyb21TcmNDb29yZCkKQEAgLTE2NiwxNyArMTY2LDE3IEBA
CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCBmYWxzZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwot
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0
cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNCkpOwotICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmND
b29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50
aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgz
LCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNykpOwotICAgIEVYUEVDVF9F
USg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg4
KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWElu
ZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwg
MTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsKLSAgICBFWFBFQ1RfRVEoNywg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBF
WFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEo
MywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKKyAgICBFWFBFQ1Rf
RVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
NykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNUX0VRKDksIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKKyAgICBFWFBFQ1RfRVEoOSwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsK
KyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsIDEsIDEs
IGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CkBAIC0x
OTQsMTMgKzE5NCwxMyBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsIDIsIDIsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwogICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
MCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMs
IHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVY
UEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoMikpOwogCi0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGls
ZVhJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywg
NCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0g
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21T
cmNDb29yZCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
NCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgzKSk7CiB9CiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKQogewpAQCAtMjE4LDE3ICsyMTgsMTcgQEAKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDExKSk7CiAKICAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoMykpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKLSAgICBFWFBFQ1RfRVEo
NSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNikp
OwotICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEw
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGls
aW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOSkpOwotICAg
IEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgxMCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg0KSk7CisgICAgRVhQRUNUX0VR
KDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDUp
KTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7CisgICAgRVhQRUNUX0VRKDgsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKKyAg
ICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoOSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFsc2UpLnRpbGVZSW5kZXhGcm9tU3Jj
Q29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIGZhbHNlKS50
aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTI0Niw2MSArMjQ2LDYxIEBACiAgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29y
ZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJ
bmRleEZyb21TcmNDb29yZCgxKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywg
MywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmND
b29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywg
MywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEo
MCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsK
LSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0
cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKIH0KIAogVEVT
VChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRp
bGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNpemVYKDApKTsKIAogICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWCgwKSk7CiAgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVYKDEpKTsK
LSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6
ZVgoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGls
ZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUp
LnRpbGVTaXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgs
IGZhbHNlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4
LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEo
NSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMSkpOwogCiAgICAgRVhQRUNU
X0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSkudGlsZVNpemVYKDApKTsKICAgICBF
WFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVgoMSkpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXpl
WCgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxl
U2l6ZVgoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSku
dGlsZVNpemVYKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwg
dHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwg
MTEsIHRydWUpLnRpbGVTaXplWCgyKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
MTIsIDEyLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogfQogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGls
ZVNpemVZKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2Up
LnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0
cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAg
NSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUs
ICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGls
aW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7CiAKICAg
ICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVkoMCkp
OwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXpl
WSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxl
U2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSku
dGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRy
dWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4
LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwg
MTAsIDEwLCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0
YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxp
bmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKIAotICAg
IEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWSgy
KSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6
ZVkoMikpOwogfQogCkBAIC0zMTksMTAgKzMxOSwxMCBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDMsIDEsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CiAgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0g
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkp
OwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0
aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgMTAwLCB0cnVlKS50
aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDEwMCwgdHJ1
ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMywg
ICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUs
IDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDUsIDMsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CiAKICAgICAvLyBN
dWx0aXBsZSB0aWxlczoKICAgICAvLyBubyBib3JkZXIKQEAgLTM0MCwyMyArMzQwLDIzIEBACiAg
ICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIKICAgICAvLyBwb3NpdGlv
bnMgMCwgMiwgMywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0
cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsICAg
MSwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2
LCAgIDEsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
MywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKLSAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9u
WCgzKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxl
U2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSku
dGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRy
dWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAw
LCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDYs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOwotICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7Cisg
ICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgw
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6
ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGls
ZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUp
LnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0
cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0
LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDIp
KTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXpl
WCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxl
UG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRy
dWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDQs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKIH0KIAogVEVTVChUaWxpbmdE
YXRhVGVzdCwgdGlsZVNpemVZX2FuZF90aWxlUG9zaXRpb25ZKQpAQCAtMzc0LDEwICszNzQsMTAg
QEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDEsIHRydWUpLnRpbGVQb3Np
dGlvblkoMCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1ZSku
dGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDEsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAg
MSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgz
LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCAxMDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsICAgMSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZ
KDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAxMDAsIDMsIHRydWUpLnRpbGVQ
b3NpdGlvblkoMCkpOwogCiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gbm8gYm9yZGVy
CkBAIC0zOTUsMjMgKzM5NSwyMyBAQAogICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIHdp
dGggYm9yZGVyCiAgICAgLy8gcG9zaXRpb25zIDAsIDIsIDMsIDQKLSAgICBFWFBFQ1RfRVEoNCwg
VGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgy
LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlU2l6ZVkoMikpOwotICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNpemVZKDMpKTsK
LSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlv
blkoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0
cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAg
IDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6ZVkoMikpOwotICAgIEVYUEVDVF9F
USgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDMpKTsKLSAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwot
ICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9u
WSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxl
UG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAg
MSwgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywg
ICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsK
KyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVQb3NpdGlv
blkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0
cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwg
NCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAx
MDAsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEo
MywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwor
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9u
WSgzKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHNldFRvdGFsU2l6ZSkKQEAgLTQ2OCw3
ICs0NjgsNyBAQAogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCBzZXRNYXhUZXh0dXJlU2l6ZUJvcmRl
cnMpCiB7Ci0gICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAzMiwgdHJ1ZSk7CisgICAgVGlsaW5n
RGF0YSBkYXRhKDgsIDE2LCAzMCwgdHJ1ZSk7CiAgICAgRVhQRUNUX0VRKDMsIGRhdGEubnVtVGls
ZXNYKCkpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRpbGVzWSgpKTsKIApAQCAtNDg0LDcg
KzQ4NCw3IEBACiAKICAgICBkYXRhLnNldE1heFRleHR1cmVTaXplKDUpOwogICAgIEVYUEVDVF9F
USg1LCBkYXRhLm1heFRleHR1cmVTaXplKCkpOwotICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRp
bGVzWCgpKTsKKyAgICBFWFBFQ1RfRVEoNiwgZGF0YS5udW1UaWxlc1goKSk7CiAgICAgRVhQRUNU
X0VRKDEwLCBkYXRhLm51bVRpbGVzWSgpKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAJKHJldmlzaW9uIDg3NzcxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDEwICs0NCwxMiBAQAogCiBzdGF0aWMgaW50IGNvbXB1dGVOdW1UaWxlcyhpbnQgbWF4VGV4
dHVyZVNpemUsIGludCB0b3RhbFNpemUsIGludCBib3JkZXJUZXhlbHMpCiB7CisgICAgaW50IHRv
dGFsU2l6ZVdpdGhCb3JkZXIgPSB0b3RhbFNpemUgKyAyICogYm9yZGVyVGV4ZWxzOworCiAgICAg
aWYgKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscyA8PSAwKQotICAgICAgICByZXR1
cm4gdG90YWxTaXplID4gMCAmJiBtYXhUZXh0dXJlU2l6ZSA+PSB0b3RhbFNpemUgPyAxIDogMDsK
KyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpbnQgbnVtVGlsZXMgPSBtYXgoMSwgMSArICh0b3Rh
bFNpemUgLSAxIC0gMiAqIGJvcmRlclRleGVscykgLyAobWF4VGV4dHVyZVNpemUgLSAyICogYm9y
ZGVyVGV4ZWxzKSk7CisgICAgaW50IG51bVRpbGVzID0gbWF4KDEsIDEgKyAodG90YWxTaXplV2l0
aEJvcmRlciAtIDEgLSAyICogYm9yZGVyVGV4ZWxzKSAvIChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBi
b3JkZXJUZXhlbHMpKTsKICAgICByZXR1cm4gdG90YWxTaXplID4gMCA/IG51bVRpbGVzIDogMDsK
IH0KIApAQCAtNzksNyArODEsNyBAQAogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VSVCht
X21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKLSAgICBpbnQgeCA9IChzcmNQ
b3MgLSBtX2JvcmRlclRleGVscykgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRl
eGVscyk7CisgICAgaW50IHggPSBzcmNQb3MgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2Jv
cmRlclRleGVscyk7CiAgICAgcmV0dXJuIG1pbihtYXgoeCwgMCksIG51bVRpbGVzWCgpIC0gMSk7
CiB9CiAKQEAgLTg5LDcgKzkxLDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBBU1NFUlQo
bV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgaW50IHkgPSAoc3Jj
UG9zIC0gbV9ib3JkZXJUZXhlbHMpIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJU
ZXhlbHMpOworICAgIGludCB5ID0gc3JjUG9zIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9i
b3JkZXJUZXhlbHMpOwogICAgIHJldHVybiBtaW4obWF4KHksIDApLCBudW1UaWxlc1koKSAtIDEp
OwogfQogCkBAIC0xMzIsNiArMTM0LDE2IEBACiAgICAgcmV0dXJuIGJvdW5kczsKIH0KIAorSW50
UmVjdCBUaWxpbmdEYXRhOjp0aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKGludCB0aWxlKSBjb25z
dAoreworICAgIEludFJlY3QgYm91bmRzID0gdGlsZUJvdW5kcyh0aWxlKTsKKworICAgIGlmICht
X2JvcmRlclRleGVscykKKyAgICAgICAgYm91bmRzLmluZmxhdGUoMSk7CisKKyAgICByZXR1cm4g
Ym91bmRzOworfQorCiBGbG9hdFJlY3QgVGlsaW5nRGF0YTo6dGlsZUJvdW5kc05vcm1hbGl6ZWQo
aW50IHRpbGUpIGNvbnN0CiB7CiAgICAgYXNzZXJ0VGlsZSh0aWxlKTsKQEAgLTE2OCw4ICsxODAs
NiBAQAogCiAgICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxlc1ggPT0gMSkKICAgICAgICAgcmV0
dXJuIG1fdG90YWxTaXplWDsKLSAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA+IDEpCi0g
ICAgICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0gbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYg
KHhJbmRleCA8IG51bVRpbGVzWCgpIC0gMSkKICAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNp
emUgLSAyICogbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYgKHhJbmRleCA9PSBudW1UaWxlc1goKSAt
IDEpCkBAIC0xODUsOCArMTk1LDYgQEAKIAogICAgIGlmICgheUluZGV4ICYmIG1fbnVtVGlsZXNZ
ID09IDEpCiAgICAgICAgIHJldHVybiBtX3RvdGFsU2l6ZVk7Ci0gICAgaWYgKCF5SW5kZXggJiYg
bV9udW1UaWxlc1kgPiAxKQotICAgICAgICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZSAtIG1fYm9y
ZGVyVGV4ZWxzOwogICAgIGlmICh5SW5kZXggPCBudW1UaWxlc1koKSAtIDEpCiAgICAgICAgIHJl
dHVybiBtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh5SW5k
ZXggPT0gbnVtVGlsZXNZKCkgLSAxKQpAQCAtMjMwLDggKzIzOCw4IEBACiAKICAgICAqbmV3U3Jj
ID0gc3JjUmVjdEludGVyc2VjdGVkOwogICAgIG5ld1NyYy0+bW92ZSgKLSAgICAgICAgLXRpbGVC
b3VuZHMueCgpICsgKCh0aWxlWEluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRlclRleGVscyA6IDAp
LAotICAgICAgICAtdGlsZUJvdW5kcy55KCkgKyAoKHRpbGVZSW5kZXgodGlsZSkgPiAwKSA/IG1f
Ym9yZGVyVGV4ZWxzIDogMCkpOworICAgICAgICAtdGlsZUJvdW5kcy54KCkgKyBtX2JvcmRlclRl
eGVscywKKyAgICAgICAgLXRpbGVCb3VuZHMueSgpICsgbV9ib3JkZXJUZXhlbHMpOwogCiAgICAg
Km5ld0RzdCA9IEZsb2F0UmVjdCgKICAgICAgICAgc3JjUmVjdEludGVyc2VjdGVkTm9ybVggKiBk
c3RSZWN0LndpZHRoKCkgKyBkc3RSZWN0LngoKSwKQEAgLTI0MiwxMCArMjUwLDcgQEAKIAogSW50
UG9pbnQgVGlsaW5nRGF0YTo6dGV4dHVyZU9mZnNldChpbnQgeEluZGV4LCBpbnQgeUluZGV4KSBj
b25zdAogewotICAgIGludCBsZWZ0ID0gKCF4SW5kZXggfHwgbV9udW1UaWxlc1ggPT0gMSkgPyAw
IDogbV9ib3JkZXJUZXhlbHM7Ci0gICAgaW50IHRvcCA9ICgheUluZGV4IHx8IG1fbnVtVGlsZXNZ
ID09IDEpID8gMCA6IG1fYm9yZGVyVGV4ZWxzOwotCi0gICAgcmV0dXJuIEludFBvaW50KGxlZnQs
IHRvcCk7CisgICAgcmV0dXJuIEludFBvaW50KG1fYm9yZGVyVGV4ZWxzLCBtX2JvcmRlclRleGVs
cyk7CiB9CiAKIHZvaWQgVGlsaW5nRGF0YTo6cmVjb21wdXRlTnVtVGlsZXMoKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaAkocmV2aXNpb24gODc3NzEp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTYxLDYgKzYxLDcgQEAKIAogICAgIEludFJlY3QgdGlsZUJvdW5kcyhpbnQgdGls
ZSkgY29uc3Q7CiAgICAgSW50UmVjdCB0aWxlQm91bmRzV2l0aEJvcmRlcihpbnQgdGlsZSkgY29u
c3Q7CisgICAgSW50UmVjdCB0aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKGludCB0aWxlKSBjb25z
dDsKICAgICBGbG9hdFJlY3QgdGlsZUJvdW5kc05vcm1hbGl6ZWQoaW50IHRpbGUpIGNvbnN0Owog
ICAgIGludCB0aWxlUG9zaXRpb25YKGludCB4SW5kZXgpIGNvbnN0OwogICAgIGludCB0aWxlUG9z
aXRpb25ZKGludCB5SW5kZXgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCShyZXZpc2lvbiA4Nzc3MSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwzMCBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9u
TWF0cml4LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0
M0Q7CiAKK2VudW0gRWRnZUZpbHRlciB7CisgICAgRmlsdGVyTGVmdEVkZ2UgICA9IDEgPDwgMCwK
KyAgICBGaWx0ZXJUb3BFZGdlICAgID0gMSA8PCAxLAorICAgIEZpbHRlclJpZ2h0RWRnZSAgPSAx
IDw8IDIsCisgICAgRmlsdGVyQm90dG9tRWRnZSA9IDEgPDwgMworfTsKK3R5cGVkZWYgdW5zaWdu
ZWQgRWRnZUZpbHRlckZsYWdzOworCiBjbGFzcyBHZW9tZXRyeUJpbmRpbmcgewogcHVibGljOgog
ICAgIGV4cGxpY2l0IEdlb21ldHJ5QmluZGluZyhHcmFwaGljc0NvbnRleHQzRCopOworICAgIGV4
cGxpY2l0IEdlb21ldHJ5QmluZGluZyhHcmFwaGljc0NvbnRleHQzRCosCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVkZ2VGaWx0ZXJGbGFncyk7CiAgICAgfkdlb21ldHJ5QmluZGluZygpOwogCiAgICAg
Ym9vbCBpbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZWQ7IH0KQEAgLTQ1
LDcgKzYwLDcgQEAKICAgICB1bnNpZ25lZCBxdWFkVmVydGljZXNWYm8oKSBjb25zdCB7IHJldHVy
biBtX3F1YWRWZXJ0aWNlc1ZibzsgfQogICAgIHVuc2lnbmVkIHF1YWRFbGVtZW50c1ZibygpIGNv
bnN0IHsgcmV0dXJuIG1fcXVhZEVsZW1lbnRzVmJvOyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JE
cmF3KCk7CisgICAgdm9pZCBwcmVwYXJlRm9yRHJhdygpIGNvbnN0OwogCiAgICAgLy8gQWxsIGxh
eWVyIHNoYWRlcnMgc2hhcmUgdGhlIHNhbWUgYXR0cmlidXRlIGxvY2F0aW9ucyBmb3IgdGhlIHZl
cnRleAogICAgIC8vIHBvc2l0aW9ucyBhbmQgdGV4dHVyZSBjb29yZGluYXRlcy4gVGhpcyBhbGxv
d3Mgc3dpdGNoaW5nIHNoYWRlcnMgd2l0aG91dApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAkocmV2
aXNpb24gODc3NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGlsZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJMYXllclRpbGVyQ2hyb21pdW0uaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRENocm9t
aXVtLmgiCisjaW5jbHVkZSAiR2VvbWV0cnlCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJMYXll
clJlbmRlcmVyQ2hyb21pdW0uaCIKQEAgLTc4LDcgKzc5LDYgQEAKICAgICByZXNldCgpOwogCiAg
ICAgbV90aWxlU2l6ZSA9IHNpemU7Ci0gICAgbV90aWxpbmdEYXRhLnNldE1heFRleHR1cmVTaXpl
KG1heChzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKIH0KIAogTGF5ZXJUZXh0dXJlKiBM
YXllclRpbGVyQ2hyb21pdW06OmdldFNpbmdsZVRleHR1cmUoKQpAQCAtMTc5LDExICsxNzksMTUg
QEAKIEludFJlY3QgTGF5ZXJUaWxlckNocm9taXVtOjp0aWxlTGF5ZXJSZWN0KGNvbnN0IFRpbGUq
IHRpbGUpIGNvbnN0CiB7CiAgICAgY29uc3QgaW50IGluZGV4ID0gbV90aWxpbmdEYXRhLnRpbGVJ
bmRleCh0aWxlLT5pKCksIHRpbGUtPmooKSk7Ci0gICAgSW50UmVjdCBsYXllclJlY3QgPSBtX3Rp
bGluZ0RhdGEudGlsZUJvdW5kc1dpdGhCb3JkZXIoaW5kZXgpOwotICAgIGxheWVyUmVjdC5zZXRT
aXplKG1fdGlsZVNpemUpOwotICAgIHJldHVybiBsYXllclJlY3Q7CisgICAgcmV0dXJuIG1fdGls
aW5nRGF0YS50aWxlQm91bmRzV2l0aEJvcmRlcihpbmRleCk7CiB9CiAKK0ludFJlY3QgTGF5ZXJU
aWxlckNocm9taXVtOjp0aWxlVGV4UmVjdChjb25zdCBUaWxlKiB0aWxlKSBjb25zdAoreworICAg
IGNvbnN0IGludCBpbmRleCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxl
LT5qKCkpOworICAgIHJldHVybiBtX3RpbGluZ0RhdGEudGlsZUJvdW5kc1dpdGhPdXRlckJvcmRl
cihpbmRleCk7Cit9CisKIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdChj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCkKIHsKICAgICBpZiAoY29udGVudFJlY3QuaXNFbXB0
eSgpIHx8IG1fc2tpcHNEcmF3KQpAQCAtMjM1LDYgKzIzOSw3IEBACiAgICAgLy8gQ3JlYXRlIHRp
bGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5nIGEgZGlydHkgcmVjdCB0byBjb250YWluIGFsbAogICAg
IC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1cnJlbnRseSBiZWluZyBkcmF3bi4KICAgICBJbnRSZWN0
IGRpcnR5TGF5ZXJSZWN0OworICAgIEludFNpemUgdGlsZVNpemU7CiAgICAgaW50IGxlZnQsIHRv
cCwgcmlnaHQsIGJvdHRvbTsKICAgICBjb250ZW50UmVjdFRvVGlsZUluZGljZXMoY29udGVudFJl
Y3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7CiAgICAgZm9yIChpbnQgaiA9IHRvcDsgaiA8
PSBib3R0b207ICsraikgewpAQCAtMjQyLDExICsyNDcsMTUgQEAKICAgICAgICAgICAgIFRpbGUq
IHRpbGUgPSB0aWxlQXQoaSwgaik7CiAgICAgICAgICAgICBpZiAoIXRpbGUpCiAgICAgICAgICAg
ICAgICAgdGlsZSA9IGNyZWF0ZVRpbGUoaSwgaik7Ci0gICAgICAgICAgICBpZiAoIXRpbGUtPnRl
eHR1cmUoKS0+aXNWYWxpZChtX3RpbGVTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpCisK
KyAgICAgICAgICAgIEludFNpemUgdGV4U2l6ZSA9IHRpbGVUZXhSZWN0KHRpbGUpLnNpemUoKTsK
KyAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5pc1ZhbGlkKHRleFNpemUsIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBKSkKICAgICAgICAgICAgICAgICB0aWxlLT5tX2RpcnR5TGF5ZXJS
ZWN0ID0gdGlsZUxheWVyUmVjdCh0aWxlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICB0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQkEpOworICAgICAgICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+cmVzZXJ2ZSh0ZXhT
aXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSk7CiAgICAgICAgICAgICBkaXJ0eUxheWVyUmVj
dC51bml0ZSh0aWxlLT5tX2RpcnR5TGF5ZXJSZWN0KTsKKworICAgICAgICAgICAgdGlsZVNpemUg
PSB0aWxlU2l6ZS5leHBhbmRlZFRvKHRleFNpemUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0y
NTksNyArMjY4LDcgQEAKICAgICBpZiAoZGlydHlMYXllclJlY3QuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3RleHR1cmVVcGRhdGVyLT5wcmVwYXJlVG9VcGRhdGUobV9wYWlu
dFJlY3QsIG1fdGlsZVNpemUsIG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSk7CisgICAgbV90
ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRSZWN0LCB0aWxlU2l6ZSwgbV90
aWxpbmdEYXRhLmJvcmRlclRleGVscygpKTsKIH0KIAogdm9pZCBMYXllclRpbGVyQ2hyb21pdW06
OnVwZGF0ZVJlY3QoKQpAQCAtMjgyLDcgKzI5MSw4IEBACiAKICAgICAgICAgICAgIC8vIENhbGN1
bGF0ZSBwYWdlLXNwYWNlIHJlY3RhbmdsZSB0byBjb3B5IGZyb20uCiAgICAgICAgICAgICBJbnRS
ZWN0IHNvdXJjZVJlY3QgPSB0aWxlQ29udGVudFJlY3QodGlsZSk7Ci0gICAgICAgICAgICBjb25z
dCBJbnRQb2ludCBhbmNob3IgPSBzb3VyY2VSZWN0LmxvY2F0aW9uKCk7CisgICAgICAgICAgICBJ
bnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGNvbnN0IElu
dFBvaW50IGFuY2hvciA9IHRleFJlY3QubG9jYXRpb24oKTsKICAgICAgICAgICAgIHNvdXJjZVJl
Y3QuaW50ZXJzZWN0KGxheWVyUmVjdFRvQ29udGVudFJlY3QodGlsZS0+bV9kaXJ0eUxheWVyUmVj
dCkpOwogICAgICAgICAgICAgLy8gUGFpbnQgcmVjdCBub3QgZ3VhcmFudGVlZCB0byBsaW5lIHVw
IG9uIHRpbGUgYm91bmRhcmllcywgc28KICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHNv
dXJjZVJlY3QgZG9lc24ndCBleHRlbmQgb3V0c2lkZSBvZiBpdC4KQEAgLTI5MSw3ICszMDEsNyBA
QAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBpZiAoIXRpbGUtPnRl
eHR1cmUoKS0+aXNSZXNlcnZlZCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0
dXJlKCktPnJlc2VydmUobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUodGV4UmVjdC5zaXpl
KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkgewogICAgICAgICAgICAgICAgICAgICBtX3Nr
aXBzRHJhdyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTM2Myw4ICszNzMsOSBAQAogICAgICAgICAgICAgdGlsZU1h
dHJpeC50cmFuc2xhdGUzZCh0aWxlUmVjdC54KCkgKyB0aWxlUmVjdC53aWR0aCgpIC8gMi4wLCB0
aWxlUmVjdC55KCkgKyB0aWxlUmVjdC5oZWlnaHQoKSAvIDIuMCwgMCk7CiAKICAgICAgICAgICAg
IEludFBvaW50IHRleE9mZnNldCA9IG1fdGlsaW5nRGF0YS50ZXh0dXJlT2Zmc2V0KHRpbGUtPmko
KSwgdGlsZS0+aigpKTsKLSAgICAgICAgICAgIGZsb2F0IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0
PGZsb2F0PihtX3RpbGVTaXplLndpZHRoKCkpOwotICAgICAgICAgICAgZmxvYXQgdGlsZUhlaWdo
dCA9IHN0YXRpY19jYXN0PGZsb2F0PihtX3RpbGVTaXplLmhlaWdodCgpKTsKKyAgICAgICAgICAg
IEludFJlY3QgdGV4UmVjdCA9IHRpbGVUZXhSZWN0KHRpbGUpOworICAgICAgICAgICAgZmxvYXQg
dGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleFJlY3Qud2lkdGgoKSk7CisgICAgICAg
ICAgICBmbG9hdCB0aWxlSGVpZ2h0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleFJlY3QuaGVpZ2h0
KCkpOwogICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWCA9IHRleE9mZnNldC54KCkgLyB0
aWxlV2lkdGg7CiAgICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVZID0gdGV4T2Zmc2V0Lnko
KSAvIHRpbGVIZWlnaHQ7CiAgICAgICAgICAgICBmbG9hdCB0ZXhTY2FsZVggPSB0aWxlUmVjdC53
aWR0aCgpIC8gdGlsZVdpZHRoOwpAQCAtMzc1LDcgKzM4NiwzOCBAQAogICAgICAgICAgICAgICAg
IHRleFRyYW5zbGF0ZVkgKz0gMS4wOwogICAgICAgICAgICAgICAgIHRleFNjYWxlWSAqPSAtMS4w
OwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBPd25QdHI8R2VvbWV0cnlCaW5kaW5nPiBn
ZW9tZXRyeTsKKworICAgICAgICAgICAgLy8gQ3JlYXRlIGdlb21ldHJ5IGJpbmRpbmcgYWRqdXN0
ZWQgZm9yIGZpbHRlcmluZyBvZiBsYXllciBlZGdlcy4KKyAgICAgICAgICAgIGlmIChtX3RpbGlu
Z0RhdGEuYm9yZGVyVGV4ZWxzKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbnVtVGlsZXNYID0g
bV90aWxpbmdEYXRhLm51bVRpbGVzWCgpOworICAgICAgICAgICAgICAgIGludCBudW1UaWxlc1kg
PSBtX3RpbGluZ0RhdGEubnVtVGlsZXNZKCk7CisgICAgICAgICAgICAgICAgaW50IGluZGV4ID0g
bV90aWxpbmdEYXRhLnRpbGVJbmRleCh0aWxlLT5pKCksIHRpbGUtPmooKSk7CisgICAgICAgICAg
ICAgICAgRWRnZUZpbHRlckZsYWdzIGZpbHRlciA9IDA7CisKKyAgICAgICAgICAgICAgICBpZiAo
IW1fdGlsaW5nRGF0YS50aWxlWEluZGV4KGluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgZmls
dGVyIHw9IEZpbHRlckxlZnRFZGdlOworICAgICAgICAgICAgICAgIGlmICghbV90aWxpbmdEYXRh
LnRpbGVZSW5kZXgoaW5kZXgpKQorICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgfD0gRmlsdGVy
VG9wRWRnZTsKKyAgICAgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRhLnRpbGVYSW5kZXgoaW5k
ZXgpID09IChudW1UaWxlc1ggLSAxKSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZp
bHRlclJpZ2h0RWRnZTsKKyAgICAgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRhLnRpbGVZSW5k
ZXgoaW5kZXgpID09IChudW1UaWxlc1kgLSAxKSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVy
IHw9IEZpbHRlckJvdHRvbUVkZ2U7CisKKyAgICAgICAgICAgICAgICBnZW9tZXRyeSA9IGFkb3B0
UHRyKG5ldyBHZW9tZXRyeUJpbmRpbmcoY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZU1hdHJpeCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZVJlY3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bHRlcikpOworCisgICAgICAgICAgICAgICAgZ2VvbWV0cnktPnByZXBhcmVGb3JEcmF3KCk7Cisg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIGRyYXdUZXh0dXJlZFF1YWQoY29udGV4dCwgbGF5
ZXJSZW5kZXJlcigpLT5wcm9qZWN0aW9uTWF0cml4KCksIHRpbGVNYXRyaXgsIHRpbGVSZWN0Lndp
ZHRoKCksIHRpbGVSZWN0LmhlaWdodCgpLCBvcGFjaXR5LCB0ZXhUcmFuc2xhdGVYLCB0ZXhUcmFu
c2xhdGVZLCB0ZXhTY2FsZVgsIHRleFNjYWxlWSwgcHJvZ3JhbSk7CisKKyAgICAgICAgICAgIC8v
IFJlc3RvcmUgZGVmYXVsdCBnZW9tZXRyeSBiaW5kaW5nLgorICAgICAgICAgICAgaWYgKG1fdGls
aW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkKKyAgICAgICAgICAgICAgICBsYXllclJlbmRlcmVyKCkt
PnNoYXJlZEdlb21ldHJ5KCktPnByZXBhcmVGb3JEcmF3KCk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC0zODUsOSArNDI3LDIxIEBACiAgICAgLy8gR3JvdyB0aGUgdGlsZSBhcnJheSB0byBjb250
YWluIHRoaXMgY29udGVudCByZWN0LgogICAgIEludFJlY3QgbGF5ZXJSZWN0ID0gY29udGVudFJl
Y3RUb0xheWVyUmVjdChjb250ZW50UmVjdCk7CiAgICAgSW50U2l6ZSByZWN0U2l6ZSA9IEludFNp
emUobGF5ZXJSZWN0Lm1heFgoKSwgbGF5ZXJSZWN0Lm1heFkoKSk7CisgICAgSW50U2l6ZSB0ZXhT
aXplID0gbV90aWxlU2l6ZTsKIAorICAgIC8vIFVzZSByZWN0IHdpdGggYm9yZGVyIHRleGVscyBh
cyBtYXggdGV4dHVyZSBzaXplIHdoZW4gdGlsZSBzaXplCisgICAgLy8gaGFzIG5vdCBiZWVuIHNw
ZWNpZmllZC4KKyAgICBpZiAodGV4U2l6ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgdGV4U2l6ZSA9
IHJlY3RTaXplOworICAgICAgICBpZiAobV90aWxpbmdEYXRhLmJvcmRlclRleGVscygpKQorICAg
ICAgICAgICAgdGV4U2l6ZS5leHBhbmQoMiwgMik7CisgICAgfQorCisgICAgbV90aWxpbmdEYXRh
LnNldE1heFRleHR1cmVTaXplKG1heCh0ZXhTaXplLndpZHRoKCksIHRleFNpemUuaGVpZ2h0KCkp
KTsKKwogICAgIEludFNpemUgb2xkTGF5ZXJTaXplKG1fdGlsaW5nRGF0YS50b3RhbFNpemVYKCks
IG1fdGlsaW5nRGF0YS50b3RhbFNpemVZKCkpOwogICAgIEludFNpemUgbmV3U2l6ZSA9IHJlY3RT
aXplLmV4cGFuZGVkVG8ob2xkTGF5ZXJTaXplKTsKKwogICAgIG1fdGlsaW5nRGF0YS5zZXRUb3Rh
bFNpemUobmV3U2l6ZS53aWR0aCgpLCBuZXdTaXplLmhlaWdodCgpKTsKIH0KIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExh
eWVyQ2hyb21pdW0uaAkocmV2aXNpb24gODc3NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1
LDYgKzg1LDcgQEAKIAogICAgIE93blB0cjxMYXllclRpbGVyQ2hyb21pdW0+IG1fdGlsZXI7CiAg
ICAgVGlsaW5nT3B0aW9uIG1fdGlsaW5nT3B0aW9uOworICAgIGJvb2wgbV9ib3JkZXJUZXhlbHM7
CiB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGlsZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHJldmlzaW9uIDg3NzcxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIwLDYgKzEyMCw3IEBACiAgICAgVGlsZSogdGlsZUF0KGludCwgaW50KSBj
b25zdDsKICAgICBJbnRSZWN0IHRpbGVDb250ZW50UmVjdChjb25zdCBUaWxlKikgY29uc3Q7CiAg
ICAgSW50UmVjdCB0aWxlTGF5ZXJSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKKyAgICBJbnRSZWN0
IHRpbGVUZXhSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKIAogICAgIEludFNpemUgbV90aWxlU2l6
ZTsKICAgICBJbnRQb2ludCBtX2xheWVyUG9zaXRpb247CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVt
LmNwcAkocmV2aXNpb24gODc3NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgs
NyBAQAogCiAvLyBNYXhpbXVtIHNpemUgdGhlIHdpZHRoIG9yIGhlaWdodCBvZiB0aGlzIGxheWVy
IGNhbiBiZSBiZWZvcmUgZW5hYmxpbmcgdGlsaW5nCiAvLyB3aGVuIG1fdGlsaW5nT3B0aW9uID09
IEF1dG9UaWxlLgotc3RhdGljIGludCBtYXhVbnRpbGVkU2l6ZSA9IDUxMjsKK3N0YXRpYyBpbnQg
bWF4VW50aWxlZFNpemUgPSA1MTA7CiAvLyBXaGVuIHRpbGluZyBpcyBlbmFibGVkLCB1c2UgdGls
ZXMgb2YgdGhpcyBkaW1lbnNpb24gc3F1YXJlZC4KIHN0YXRpYyBpbnQgZGVmYXVsdFRpbGVTaXpl
ID0gMjU2OwogCkBAIC04Niw2ICs4Niw3IEBACiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVu
dExheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKICAgICA6IExheWVy
Q2hyb21pdW0ob3duZXIpCiAgICAgLCBtX3RpbGluZ09wdGlvbihDb250ZW50TGF5ZXJDaHJvbWl1
bTo6QXV0b1RpbGUpCisgICAgLCBtX2JvcmRlclRleGVscyh0cnVlKQogewogfQogCkBAIC0xODUs
NyArMTg2LDcgQEAKICAgICBpZiAoIW1fdGlsZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNv
bnN0IEludFNpemUgdGlsZVNpemUobWluKGRlZmF1bHRUaWxlU2l6ZSwgbGF5ZXJTaXplLndpZHRo
KCkpLCBtaW4oZGVmYXVsdFRpbGVTaXplLCBsYXllclNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb25z
dCBJbnRTaXplIHRpbGVTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVmYXVsdFRpbGVTaXplKTsKICAg
ICBjb25zdCBib29sIGF1dG9UaWxlZCA9IGxheWVyU2l6ZS53aWR0aCgpID4gbWF4VW50aWxlZFNp
emUgfHwgbGF5ZXJTaXplLmhlaWdodCgpID4gbWF4VW50aWxlZFNpemU7CiAKICAgICBib29sIGlz
VGlsZWQ7CkBAIC0xOTYsNyArMTk3LDggQEAKICAgICBlbHNlCiAgICAgICAgIGlzVGlsZWQgPSBh
dXRvVGlsZWQ7CiAKLSAgICBtX3RpbGVyLT5zZXRUaWxlU2l6ZShpc1RpbGVkID8gdGlsZVNpemUg
OiBsYXllclNpemUpOworICAgIC8vIFplcm8gdGlsZSBzaXplIHRlbGxzIHRoZSB0aWxlciB0byBh
dm9pZCB0aWxpbmcuCisgICAgbV90aWxlci0+c2V0VGlsZVNpemUoaXNUaWxlZCA/IHRpbGVTaXpl
IDogSW50U2l6ZSgpKTsKIH0KIAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6ZHJhdyhjb25z
dCBJbnRSZWN0JiB0YXJnZXRTdXJmYWNlUmVjdCkKQEAgLTIyMSw3ICsyMjMsOCBAQAogICAgICAg
ICBsYXllclJlbmRlcmVyKCksCiAgICAgICAgIGNyZWF0ZVRleHR1cmVVcGRhdGVyKCksCiAgICAg
ICAgIEludFNpemUoZGVmYXVsdFRpbGVTaXplLCBkZWZhdWx0VGlsZVNpemUpLAotICAgICAgICBM
YXllclRpbGVyQ2hyb21pdW06Okhhc0JvcmRlclRleGVscyk7CisgICAgICAgIG1fYm9yZGVyVGV4
ZWxzID8gTGF5ZXJUaWxlckNocm9taXVtOjpIYXNCb3JkZXJUZXhlbHMgOgorICAgICAgICBMYXll
clRpbGVyQ2hyb21pdW06Ok5vQm9yZGVyVGV4ZWxzKTsKIH0KIAogdm9pZCBDb250ZW50TGF5ZXJD
aHJvbWl1bTo6dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygpCkBAIC0yNDksNiArMjUyLDcgQEAK
IAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6c2V0SXNNYXNrKGJvb2wgaXNNYXNrKQogewor
ICAgIG1fYm9yZGVyVGV4ZWxzID0gZmFsc2U7CiAgICAgc2V0VGlsaW5nT3B0aW9uKGlzTWFzayA/
IE5ldmVyVGlsZSA6IEF1dG9UaWxlKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmNwcAkocmV2aXNpb24g
ODc3NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5Qmlu
ZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCit0eXBlZGVmIEZsb2F0UG9pbnQzRCBFZGdlOworCiBHZW9tZXRyeUJpbmRpbmc6
Okdlb21ldHJ5QmluZGluZyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICA6IG1fY29u
dGV4dChjb250ZXh0KQogICAgICwgbV9xdWFkVmVydGljZXNWYm8oMCkKQEAgLTU5LDEzICs2MSwx
MjQgQEAKICAgICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaXNDQ1co
Y29uc3QgRmxvYXRQb2ludCogcHRzKQoreworICAgIEZsb2F0UG9pbnQgdjEgPSBGbG9hdFBvaW50
KHB0c1sxXS54KCkgLSBwdHNbMF0ueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB0c1sxXS55KCkgLSBwdHNbMF0ueSgpKTsKKyAgICBGbG9hdFBvaW50IHYyID0gRmxvYXRQb2lu
dChwdHNbMl0ueCgpIC0gcHRzWzFdLngoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdHNbMl0ueSgpIC0gcHRzWzFdLnkoKSk7CisgICAgcmV0dXJuICh2MS54KCkgKiB2Mi55KCkg
LSB2MS55KCkgKiB2Mi54KCkpIDwgMDsKK30KKworc3RhdGljIEZsb2F0UG9pbnQgaW50ZXJzZWN0
KGNvbnN0IEVkZ2UmIGEsIGNvbnN0IEVkZ2UmIGIpCit7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQo
CisgICAgICAgIChhLnkoKSAqIGIueigpIC0gYi55KCkgKiBhLnooKSkgLyAoYS54KCkgKiBiLnko
KSAtIGIueCgpICogYS55KCkpLAorICAgICAgICAoYS54KCkgKiBiLnooKSAtIGIueCgpICogYS56
KCkpIC8gKGIueCgpICogYS55KCkgLSBhLngoKSAqIGIueSgpKSk7Cit9CisKK0dlb21ldHJ5Qmlu
ZGluZzo6R2VvbWV0cnlCaW5kaW5nKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1h
dHJpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHJl
Y3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGdlRmlsdGVyRmxhZ3MgZmls
dGVyKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3F1YWRWZXJ0aWNlc1Zibygw
KQorICAgICwgbV9xdWFkRWxlbWVudHNWYm8oMCkKKyAgICAsIG1faW5pdGlhbGl6ZWQoZmFsc2Up
Cit7CisgICAgaW50IHgxID0gcmVjdC54KCk7CisgICAgaW50IHkxID0gcmVjdC55KCk7CisgICAg
aW50IHgyID0gcmVjdC5tYXhYKCk7CisgICAgaW50IHkyID0gcmVjdC5tYXhZKCk7CisKKyAgICAv
LyBJbmNsdWRlIGJvcmRlciB0ZXhlbHMuCisgICAgaWYgKGZpbHRlciAmIEZpbHRlckxlZnRFZGdl
KQorICAgICAgICB4MS0tOworICAgIGlmIChmaWx0ZXIgJiBGaWx0ZXJUb3BFZGdlKQorICAgICAg
ICB5MS0tOworICAgIGlmIChmaWx0ZXIgJiBGaWx0ZXJSaWdodEVkZ2UpCisgICAgICAgIHgyKys7
CisgICAgaWYgKGZpbHRlciAmIEZpbHRlckJvdHRvbUVkZ2UpCisgICAgICAgIHkyKys7CisKKyAg
ICBGbG9hdFBvaW50IHB0WzRdOworICAgIHB0WzBdID0gRmxvYXRQb2ludCh4MSwgeTEpOworICAg
IHB0WzFdID0gRmxvYXRQb2ludCh4MiwgeTEpOworICAgIHB0WzJdID0gRmxvYXRQb2ludCh4Miwg
eTIpOworICAgIHB0WzNdID0gRmxvYXRQb2ludCh4MSwgeTIpOworCisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCA0OyBpKyspCisgICAgICAgIHB0W2ldID0gbWF0cml4Lm1hcFBvaW50KHB0W2ldKTsK
KworICAgIEVkZ2UgZWRnZXNbNF07CisgICAgRmxvYXRQb2ludCBwID0gcHRbM107CisgICAgZmxv
YXQgc2lnbiA9IGlzQ0NXKHB0KSA/IC0xLjBmIDogMS4wZjsKKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IDQ7IGkrKykgeworICAgICAgICBGbG9hdFBvaW50IHEgPSBwdFtpXTsKKyAgICAgICAgRmxv
YXRQb2ludCB0YW5nZW50ID0gRmxvYXRQb2ludChwLnkoKSAtIHEueSgpLCBxLngoKSAtIHAueCgp
KTsKKyAgICAgICAgZmxvYXQgc2NhbGUgPSBzaWduIC8gdGFuZ2VudC5sZW5ndGgoKTsKKyAgICAg
ICAgZmxvYXQgY3Jvc3MyID0gcC54KCkgKiBxLnkoKSAtIHEueCgpICogcC55KCk7CisKKyAgICAg
ICAgZWRnZXNbaV0gPSBFZGdlKHRhbmdlbnQueCgpICogc2NhbGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICB0YW5nZW50LnkoKSAqIHNjYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgY3Jv
c3MyICogc2NhbGUgKyAoZmlsdGVyICYgKDEgPDwgaSkpICogMC41Zik7CisKKyAgICAgICAgcCA9
IHE7CisgICAgfQorCisgICAgLy8gV2UgZG9uJ3QgY2FyZSBhYm91dCBaIGNvbXBvbmVudC4KKyAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnZlcnNlID0KKyAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXgobWF0cml4Lm0xMSgpLCBtYXRyaXgubTEyKCksIDAuMCwgbWF0cml4Lm0xNCgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRyaXgubTIxKCksIG1hdHJpeC5tMjIoKSwgMC4w
LCBtYXRyaXgubTI0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJpeC5tMzEo
KSwgbWF0cml4Lm0zMigpLCAxLjAsIG1hdHJpeC5tMzQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWF0cml4Lm00MSgpLCBtYXRyaXgubTQyKCksIDAuMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF0cml4Lm00NCgpKS5pbnZlcnNlKCk7CisKKyAgICBkb3VibGUgc2Nh
bGVYID0gMS4wIC8gcmVjdC53aWR0aCgpOworICAgIGRvdWJsZSBzY2FsZVkgPSAxLjAgLyByZWN0
LmhlaWdodCgpOworICAgIGRvdWJsZSB0cmFuc2xhdGVYID0gcmVjdC54KCkgKyByZWN0LndpZHRo
KCkgLyAyLjA7CisgICAgZG91YmxlIHRyYW5zbGF0ZVkgPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0
KCkgLyAyLjA7CisKKyAgICAgLy8gVGhlIHR3byB0cmlhbmdsZXMgdGhhdCBtYWtlIHVwIHRoZSBs
YXllciBxdWFkLgorICAgIHVpbnQxNl90IGluZGljZXNbXSA9IHsgMCwgMSwgMiwgMCwgMiwgMyB9
OworICAgIGZsb2F0IHZlcnRpY2VzWzIwXTsKKworICAgIEVkZ2UgcHJldkVkZ2UgPSBlZGdlc1sz
XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAgICBFZGdlIGVkZ2Ug
PSBlZGdlc1tpXTsKKworICAgICAgICBwdFtpXSA9IGludGVyc2VjdChwcmV2RWRnZSwgZWRnZSk7
CisgICAgICAgIHB0W2ldID0gaW52ZXJzZS5tYXBQb2ludChwdFtpXSk7CisKKyAgICAgICAgLy8g
VmVydGV4IHBvc2l0aW9uIG5vcm1hbGl6ZWQgdG8gcmVjdC4KKyAgICAgICAgdmVydGljZXNbaSAq
IDUgKyAwXSA9IChwdFtpXS54KCkgLSB0cmFuc2xhdGVYKSAqIHNjYWxlWDsKKyAgICAgICAgdmVy
dGljZXNbaSAqIDUgKyAxXSA9IChwdFtpXS55KCkgLSB0cmFuc2xhdGVZKSAqIHNjYWxlWTsKKyAg
ICAgICAgdmVydGljZXNbaSAqIDUgKyAyXSA9IDAuMGY7CisKKyAgICAgICAgLy8gVGV4dHVyZSBj
b29yZGluYXRlcy4KKyAgICAgICAgdmVydGljZXNbaSAqIDUgKyAzXSA9IChwdFtpXS54KCkgLSBy
ZWN0LngoKSkgKiBzY2FsZVg7CisgICAgICAgIHZlcnRpY2VzW2kgKiA1ICsgNF0gPSAocHRbaV0u
eSgpIC0gcmVjdC55KCkpICogc2NhbGVZOworCisgICAgICAgIHByZXZFZGdlID0gZWRnZTsKKyAg
ICB9CisKKyAgICBHTEMobV9jb250ZXh0LCBtX3F1YWRWZXJ0aWNlc1ZibyA9IG1fY29udGV4dC0+
Y3JlYXRlQnVmZmVyKCkpOworICAgIEdMQyhtX2NvbnRleHQsIG1fcXVhZEVsZW1lbnRzVmJvID0g
bV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0
LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIG1fcXVhZFZlcnRp
Y2VzVmJvKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBo
aWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIHNpemVvZih2ZXJ0aWNlcyksIHZlcnRpY2VzLCBH
cmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2Nv
bnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVS
LCBtX3F1YWRFbGVtZW50c1ZibykpOworICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YnVm
ZmVyRGF0YShHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIHNpemVvZihp
bmRpY2VzKSwgaW5kaWNlcywgR3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXKSk7CisKKyAg
ICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKK30KKwogR2VvbWV0cnlCaW5kaW5nOjp+R2VvbWV0cnlC
aW5kaW5nKCkKIHsKICAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmRlbGV0ZUJ1ZmZlciht
X3F1YWRWZXJ0aWNlc1ZibykpOwogICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+ZGVsZXRl
QnVmZmVyKG1fcXVhZEVsZW1lbnRzVmJvKSk7CiB9CiAKLXZvaWQgR2VvbWV0cnlCaW5kaW5nOjpw
cmVwYXJlRm9yRHJhdygpCit2b2lkIEdlb21ldHJ5QmluZGluZzo6cHJlcGFyZUZvckRyYXcoKSBj
b25zdAogewogICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGlj
c0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCBxdWFkVmVydGljZXNWYm8oKSkpOwogICAgIEdMQyht
X2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVO
VF9BUlJBWV9CVUZGRVIsIHF1YWRFbGVtZW50c1ZibygpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95835</attachid>
            <date>2011-06-02 17:12:22 -0700</date>
            <delta_ts>2011-06-03 16:05:57 -0700</delta_ts>
            <desc>test_expectations.txt changes for rebaseline</desc>
            <filename>webkit-rebaseline-v1.diff</filename>
            <type>text/plain</type>
            <size>5226</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDg3
NzcxKQorKysgcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0zNTg0LDcgKzM1ODQsNyBAQAogQlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUg
OiBjb21wb3NpdGluZy9nZW9tZXRyeS9ob3Jpem9udGFsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwg
PSBJTUFHRQogQlVHV0s2MDEwMiBMSU5VWCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS90YWxs
LXBhZ2UtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKIEJVR1dLNjAxMDIgTUFDIEdQVSA6IGNvbXBv
c2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKLUJVR1dL
NjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdmlkZW8tZml4ZWQt
c2Nyb2xsaW5nLmh0bWwgPSBJTUFHRQorLy9CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNv
bXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKIEJV
R1dLNjAxMDIgTElOVVggR1BVIDogY29tcG9zaXRpbmcvbWFza3MvbWFza2VkLWFuY2VzdG9yLmh0
bWwgPSBJTUFHRQogQlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9tYXNr
cy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLmh0bWwgPSBJTUFHRQogLy8gQ29tbWVudGVkIGJlY2F1
c2Ugb2YgQlVHQ1I4MTYwNQpAQCAtNDAzMiwzICs0MDMyLDQ5IEBACiBCVUdDUjg0MzE3IERFQlVH
IDogc3ZnL3dpY2QvdGVzdC1zY2FsYWJsZS1iYWNrZ3JvdW5kLWltYWdlMS54aHRtbCA9IENSQVNI
CiAKIEJVR1dLNjE3NjcgV0lOIERFQlVHIDogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvY2xp
ZW50LWNsb3NlLmh0bWwgPSBQQVNTIFRFWFQKKworQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNF
TElORSA6IGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNoaW5nL2ltYWdlLWNvbG9yLW1hdGNoaW5nLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5n
L2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIExJ
TlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVk
Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUg
TElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2hvcml6b250YWwtc2Nyb2xs
LWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5F
IDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxheWVyLWNoaWxkcmVuLWRlZXAu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxheWVyLWNoaWxkcmVuLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3Jvb3Qt
bGF5ZXItdXBkYXRlLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElO
RSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIExJTlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9nZW9tZXRy
eS92ZXJ0aWNhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BV
IExJTlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1vcGFjaXR5LW92
ZXJsYXkuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDogY29t
cG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDogY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJh
bWUtaW4tY29tcG9zaXRlZC1sYXllci5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIExJTlVY
IFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9pZnJhbWVzL25lc3RlZC1pZnJhbWUtc2Nyb2xsaW5n
Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0
aW5nL2ltYWdlcy9kaXJlY3Qtc3ZnLWltYWdlLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUg
TElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5nL21hc2tzL2RpcmVjdC1pbWFnZS1tYXNrLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5n
L21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2suaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQ
VSBMSU5VWCBSRUJBU0VMSU5FIDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvZml4ZWQtcG9zaXRpb24t
YW5jZXN0b3ItY2xpcC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIExJTlVYIFJFQkFTRUxJ
TkUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9jb21wb3NpdGluZy1jaGFuZ2UtaW5zaWRlLXJl
ZmxlY3Rpb24uaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDog
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGVlcGx5LW5lc3RlZC1yZWZsZWN0aW9ucy5odG1sID0g
SU1BR0UKK0JVR1dLNjEzODggR1BVIExJTlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9yZWZs
ZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi1tYXNrLWNoYW5nZS5odG1sID0gSU1BR0UKK0JVR1dL
NjEzODggR1BVIExJTlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0
ZWQtcmVmbGVjdGlvbi1vbi1vdmVyZmxvdy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIExJ
TlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlv
bi1vcGFjaXR5Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6
IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXNpemUtY2hhbmdlLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5n
L3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQor
QlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25z
L25lc3RlZC1yZWZsZWN0aW9uLXRyYW5zZm9ybWVkMi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODgg
R1BVIExJTlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVm
bGVjdGlvbi10cmFuc2l0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVC
QVNFTElORSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLmh0bWwg
PSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL3JlZmxlY3Rpb24tb24tY29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEz
ODggR1BVIExJTlVYIFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0
aW9uLW9yZGVyaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElO
RSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRpb25pbmcuaHRtbCA9
IElNQUdFCitCVUdXSzYxMzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDogY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvcmVmbGVjdGlvbi1wb3NpdGlvbmluZzIuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4
IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvc2ltcGxlLWNv
bXBvc2l0ZWQtcmVmbGVjdGlvbnMuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSBMSU5VWCBS
RUJBU0VMSU5FIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvdHJhbnNmb3JtLWluc2lkZS1yZWZs
ZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNv
bXBvc2l0aW5nL3JlcGFpbnQvY29udGVudC1pbnRvLW92ZXJmbG93Lmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IGNvbXBvc2l0aW5nL3JlcGFpbnQvb3ZlcmZs
b3ctaW50by1jb250ZW50Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNF
TElORSA6IGNvbXBvc2l0aW5nL3RleHQtb24tbGFyZ2UtbGF5ZXIuaHRtbCA9IElNQUdFCitCVUdX
SzYxMzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDogY29tcG9zaXRpbmcvdHJhbnNpdGlvbnMvc2Nh
bGUtdHJhbnNpdGlvbi1uby1zdGFydC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIExJTlVY
IFJFQkFTRUxJTkUgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJ
TUFHRQorQlVHV0s2MTM4OCBHUFUgTElOVVggUkVCQVNFTElORSA6IHBsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL2h1Z2UtbGF5ZXItcm90YXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODgg
R1BVIExJTlVYIFJFQkFTRUxJTkUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9iYWNr
ZmFjZS12aXNpYmlsaXR5LXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUg
TElOVVggUkVCQVNFTElORSA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSBMSU5VWCBSRUJBU0VMSU5FIDogbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy5odG1s
ID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIExJTlVYIFJFQkFTRUxJTkUgOiBtZWRpYS92aWRlby10
cmFuc2Zvcm1lZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIExJTlVYIFJFQkFTRUxJTkUg
OiBtZWRpYS92aWRlby1sYXllci1jcmFzaC5odG1sID0gSU1BR0UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95975</attachid>
            <date>2011-06-03 15:17:47 -0700</date>
            <delta_ts>2011-06-12 12:22:11 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-layer-aa-v12.diff</filename>
            <type>text/plain</type>
            <size>46253</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4ODA0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMTEtMDYtMDMgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIEVkZ2UgYW50aS1hbGlhc2luZyBmb3IgY29tcG9zaXRlZCBsYXllcnMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTM4OAorCisg
ICAgICAgIEFkZCB0cmFuc3BhcmVudCBvdXRlciBib3JkZXIgdG8gdGlsZWQgbGF5ZXJzIGFuZCBh
ZGp1c3QgdmVydGV4CisgICAgICAgIGNvb3JkaW5hdGVzIHNvIHRoYXQgdXNlIG9mIGEgYmlsaW5l
YXIgZmlsdGVyIGNyZWF0ZXMgYSBzbW9vdGgKKyAgICAgICAgbGF5ZXIgZWRnZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgQ2hhbmdlIG1heFVudGls
ZWRTaXplIHRvIDUxMCB0byBlbnN1cmUgdGhhdCB0aWxlcyBhcmUgbm90IGdyZWF0ZXIKKyAgICAg
ICAgdGhhbiA1MTIgd2l0aCBvdXRlciBib2FyZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRMYXllckNocm9taXVtOjp1cGRhdGVMYXllclNpemUpOiBUbyBhdm9pZCB0aWxpbmcsCisgICAg
ICAgIHBhc3MgZW1wdHkgdGlsZSBzaXplIHRvIHRpbGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudExheWVyQ2hyb21pdW06OmNyZWF0ZVRpbGVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudExheWVyQ2hyb21pdW06OnNldElzTWFzayk6IERvbid0IHVzZSBib3JkZXIgdGV4
ZWxzCisgICAgICAgIGZvciBsYXllciBzZXQgYXMgbWFzay4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudExheWVyQ2hyb21pdW06Om1fYm9yZGVyVGV4ZWxzKSBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvbWV0cnlCaW5kaW5nOjpHZW9tZXRyeUJpbmRpbmcpOiBOZXcgY29uc3Ry
dWN0b3IgdGhhdAorICAgICAgICBjcmVhdGVzIGdlb21ldHJ5IGFkanVzdGVkIGZvciBvdXRlciBi
b3JkZXIgZmlsdGVyaW5nLiBUaGlzIGlzIGRvbmUKKyAgICAgICAgYnkgaW5jbHVkaW5nIGJvcmRl
ciB0ZXhlbHMgaW4gdGhlIGdlb21ldHJ5IGFuZCBvZmZzZXR0aW5nIHZlcnRpY2VzIHRvCisgICAg
ICAgIG1ha2Ugc3VyZSBhbGwgZnJhZ21lbnRzIHRoYXQgYXJlIGFmZmVjdGVkIGJ5IHRoZSBib3Jk
ZXIgd2lsbCBiZQorICAgICAgICBwcm9jZXNzZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9tZXRy
eUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3KTogQWRkIGNvbnN0IG1vZGlmaWVyLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbWV0cnlCaW5kaW5nOjpwcmVwYXJlRm9yRHJhdyk6IEFkZCBjb25zdCBtb2Rp
Zmllci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjp0aWxlVGV4
UmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjp0aWxl
TGF5ZXJSZWN0KTogbV90aWxlU2l6ZSBpcyBubworICAgICAgICBsb25nZXIgdGhlIGNvcnJlY3Qg
bGF5ZXIgc2l6ZS4gU2l6ZSBvZiBib3VuZHMgd2l0aCBib3JkZXIgc2hvdWxkCisgICAgICAgIGJl
IHRoZSBjb3JyZWN0IGxheWVyIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hy
b21pdW06Omdyb3dMYXllclRvQ29udGFpbik6IEFkanVzdCB0ZXh0dXJlCisgICAgICAgIHNpemUg
dG8gaW5jbHVkZSBvdXRlciBib3JkZXJzIGFuZCBoYW5kbGUgZW1wdHkgbV90aWxlU2l6ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1bTo6aW52YWxpZGF0ZVJlY3QpOiBVc2Ug
c2l6ZSBvZiByZWN0YW5nbGUKKyAgICAgICAgcmV0dXJuZWQgYnkgdGlsZVRleFJlY3QgaW5zdGVh
ZCBvZiBtX3RpbGVTaXplIGZvciB0ZXh0dXJlIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpMYXll
clRpbGVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJUaWxlckNocm9taXVtOjpkcmF3KTogRGl0dG8gYW5kIGNyZWF0ZSBnZW9tZXRyeSBi
aW5kaW5nCisgICAgICAgIGFkanVzdGVkIGZvciBvdXRlciBib3JkZXIgZmlsdGVyaW5nIHdoZW4g
Ym9yZGVyIHRleGVscyBhcmUgcHJlc2VudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGls
ZXJDaHJvbWl1bTo6dGlsZVRleFJlY3QpIEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9UaWxpbmdEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGluZ0RhdGE6OnRp
bGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbGlu
Z0RhdGE6OmNvbXB1dGVOdW1UaWxlcyk6IEFkanVzdCBmb3Igb3V0ZXIgYm9yZGVyLgorICAgICAg
ICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZVhJbmRleEZyb21TcmNDb29yZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZVlJbmRleEZyb21TcmNDb29yZCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZVNpemVYKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlU2l6ZVkpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlRpbGluZ0RhdGE6OmludGVyc2VjdERyYXdRdWFkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0ZXh0dXJlT2Zmc2V0KTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRp
bGluZ0RhdGE6OnRpbGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIpOiBBZGRlZC4KKwogMjAxMS0wNi0w
MyAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAJ
KHJldmlzaW9uIDg3NzcxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
b250ZW50TGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAK
IAogLy8gTWF4aW11bSBzaXplIHRoZSB3aWR0aCBvciBoZWlnaHQgb2YgdGhpcyBsYXllciBjYW4g
YmUgYmVmb3JlIGVuYWJsaW5nIHRpbGluZwogLy8gd2hlbiBtX3RpbGluZ09wdGlvbiA9PSBBdXRv
VGlsZS4KLXN0YXRpYyBpbnQgbWF4VW50aWxlZFNpemUgPSA1MTI7CitzdGF0aWMgaW50IG1heFVu
dGlsZWRTaXplID0gNTEwOwogLy8gV2hlbiB0aWxpbmcgaXMgZW5hYmxlZCwgdXNlIHRpbGVzIG9m
IHRoaXMgZGltZW5zaW9uIHNxdWFyZWQuCiBzdGF0aWMgaW50IGRlZmF1bHRUaWxlU2l6ZSA9IDI1
NjsKIApAQCAtODYsNiArODYsNyBAQCBQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiBD
b250ZW50CiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21pdW0oR3JhcGhp
Y3NMYXllckNocm9taXVtKiBvd25lcikKICAgICA6IExheWVyQ2hyb21pdW0ob3duZXIpCiAgICAg
LCBtX3RpbGluZ09wdGlvbihDb250ZW50TGF5ZXJDaHJvbWl1bTo6QXV0b1RpbGUpCisgICAgLCBt
X2JvcmRlclRleGVscyh0cnVlKQogewogfQogCkBAIC0xODUsNyArMTg2LDcgQEAgdm9pZCBDb250
ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJTaQogICAgIGlmICghbV90aWxlcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgY29uc3QgSW50U2l6ZSB0aWxlU2l6ZShtaW4oZGVmYXVsdFRpbGVT
aXplLCBsYXllclNpemUud2lkdGgoKSksIG1pbihkZWZhdWx0VGlsZVNpemUsIGxheWVyU2l6ZS5o
ZWlnaHQoKSkpOworICAgIGNvbnN0IEludFNpemUgdGlsZVNpemUoZGVmYXVsdFRpbGVTaXplLCBk
ZWZhdWx0VGlsZVNpemUpOwogICAgIGNvbnN0IGJvb2wgYXV0b1RpbGVkID0gbGF5ZXJTaXplLndp
ZHRoKCkgPiBtYXhVbnRpbGVkU2l6ZSB8fCBsYXllclNpemUuaGVpZ2h0KCkgPiBtYXhVbnRpbGVk
U2l6ZTsKIAogICAgIGJvb2wgaXNUaWxlZDsKQEAgLTE5Niw3ICsxOTcsOCBAQCB2b2lkIENvbnRl
bnRMYXllckNocm9taXVtOjp1cGRhdGVMYXllclNpCiAgICAgZWxzZQogICAgICAgICBpc1RpbGVk
ID0gYXV0b1RpbGVkOwogCi0gICAgbV90aWxlci0+c2V0VGlsZVNpemUoaXNUaWxlZCA/IHRpbGVT
aXplIDogbGF5ZXJTaXplKTsKKyAgICAvLyBaZXJvIHRpbGUgc2l6ZSB0ZWxscyB0aGUgdGlsZXIg
dG8gYXZvaWQgdGlsaW5nLgorICAgIG1fdGlsZXItPnNldFRpbGVTaXplKGlzVGlsZWQgPyB0aWxl
U2l6ZSA6IEludFNpemUoKSk7CiB9CiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OmRyYXco
Y29uc3QgSW50UmVjdCYgdGFyZ2V0U3VyZmFjZVJlY3QpCkBAIC0yMjEsNyArMjIzLDggQEAgdm9p
ZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGlsZXJJZgogICAgICAgICBsYXllclJlbmRl
cmVyKCksCiAgICAgICAgIGNyZWF0ZVRleHR1cmVVcGRhdGVyKCksCiAgICAgICAgIEludFNpemUo
ZGVmYXVsdFRpbGVTaXplLCBkZWZhdWx0VGlsZVNpemUpLAotICAgICAgICBMYXllclRpbGVyQ2hy
b21pdW06Okhhc0JvcmRlclRleGVscyk7CisgICAgICAgIG1fYm9yZGVyVGV4ZWxzID8gTGF5ZXJU
aWxlckNocm9taXVtOjpIYXNCb3JkZXJUZXhlbHMgOgorICAgICAgICBMYXllclRpbGVyQ2hyb21p
dW06Ok5vQm9yZGVyVGV4ZWxzKTsKIH0KIAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBk
YXRlQ29tcG9zaXRvclJlc291cmNlcygpCkBAIC0yNDksNiArMjUyLDcgQEAgdm9pZCBDb250ZW50
TGF5ZXJDaHJvbWl1bTo6YmluZENvbnRlbnRzVAogCiB2b2lkIENvbnRlbnRMYXllckNocm9taXVt
OjpzZXRJc01hc2soYm9vbCBpc01hc2spCiB7CisgICAgbV9ib3JkZXJUZXhlbHMgPSBmYWxzZTsK
ICAgICBzZXRUaWxpbmdPcHRpb24oaXNNYXNrID8gTmV2ZXJUaWxlIDogQXV0b1RpbGUpOwogfQog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNo
cm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiA4Nzc3MSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAkod29ya2luZyBj
b3B5KQpAQCAtODUsNiArODUsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBPd25QdHI8TGF5ZXJUaWxl
ckNocm9taXVtPiBtX3RpbGVyOwogICAgIFRpbGluZ09wdGlvbiBtX3RpbGluZ09wdGlvbjsKKyAg
ICBib29sIG1fYm9yZGVyVGV4ZWxzOwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmNwcAkocmV2aXNp
b24gODc3NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5
QmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCit0eXBlZGVmIEZsb2F0UG9pbnQzRCBFZGdlOworCiBHZW9tZXRyeUJpbmRp
bmc6Okdlb21ldHJ5QmluZGluZyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICA6IG1f
Y29udGV4dChjb250ZXh0KQogICAgICwgbV9xdWFkVmVydGljZXNWYm8oMCkKQEAgLTU5LDEzICs2
MSwxMjQgQEAgR2VvbWV0cnlCaW5kaW5nOjpHZW9tZXRyeUJpbmRpbmcoR3JhcGhpYwogICAgIG1f
aW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpc0NDVyhjb25zdCBGbG9hdFBv
aW50KiBwdHMpCit7CisgICAgRmxvYXRQb2ludCB2MSA9IEZsb2F0UG9pbnQocHRzWzFdLngoKSAt
IHB0c1swXS54KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRzWzFdLnkoKSAt
IHB0c1swXS55KCkpOworICAgIEZsb2F0UG9pbnQgdjIgPSBGbG9hdFBvaW50KHB0c1syXS54KCkg
LSBwdHNbMV0ueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0c1syXS55KCkg
LSBwdHNbMV0ueSgpKTsKKyAgICByZXR1cm4gKHYxLngoKSAqIHYyLnkoKSAtIHYxLnkoKSAqIHYy
LngoKSkgPCAwOworfQorCitzdGF0aWMgRmxvYXRQb2ludCBpbnRlcnNlY3QoY29uc3QgRWRnZSYg
YSwgY29uc3QgRWRnZSYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRQb2ludCgKKyAgICAgICAgKGEu
eSgpICogYi56KCkgLSBiLnkoKSAqIGEueigpKSAvIChhLngoKSAqIGIueSgpIC0gYi54KCkgKiBh
LnkoKSksCisgICAgICAgIChhLngoKSAqIGIueigpIC0gYi54KCkgKiBhLnooKSkgLyAoYi54KCkg
KiBhLnkoKSAtIGEueCgpICogYi55KCkpKTsKK30KKworR2VvbWV0cnlCaW5kaW5nOjpHZW9tZXRy
eUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcmVjdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyBmaWx0ZXIpCisgICAgOiBt
X2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fcXVhZFZlcnRpY2VzVmJvKDApCisgICAgLCBtX3F1
YWRFbGVtZW50c1ZibygwKQorICAgICwgbV9pbml0aWFsaXplZChmYWxzZSkKK3sKKyAgICBpbnQg
eDEgPSByZWN0LngoKTsKKyAgICBpbnQgeTEgPSByZWN0LnkoKTsKKyAgICBpbnQgeDIgPSByZWN0
Lm1heFgoKTsKKyAgICBpbnQgeTIgPSByZWN0Lm1heFkoKTsKKworICAgIC8vIEluY2x1ZGUgYm9y
ZGVyIHRleGVscy4KKyAgICBpZiAoZmlsdGVyICYgRmlsdGVyTGVmdEVkZ2UpCisgICAgICAgIHgx
LS07CisgICAgaWYgKGZpbHRlciAmIEZpbHRlclRvcEVkZ2UpCisgICAgICAgIHkxLS07CisgICAg
aWYgKGZpbHRlciAmIEZpbHRlclJpZ2h0RWRnZSkKKyAgICAgICAgeDIrKzsKKyAgICBpZiAoZmls
dGVyICYgRmlsdGVyQm90dG9tRWRnZSkKKyAgICAgICAgeTIrKzsKKworICAgIEZsb2F0UG9pbnQg
cHRbNF07CisgICAgcHRbMF0gPSBGbG9hdFBvaW50KHgxLCB5MSk7CisgICAgcHRbMV0gPSBGbG9h
dFBvaW50KHgyLCB5MSk7CisgICAgcHRbMl0gPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgcHRb
M10gPSBGbG9hdFBvaW50KHgxLCB5Mik7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkr
KykKKyAgICAgICAgcHRbaV0gPSBtYXRyaXgubWFwUG9pbnQocHRbaV0pOworCisgICAgRWRnZSBl
ZGdlc1s0XTsKKyAgICBGbG9hdFBvaW50IHAgPSBwdFszXTsKKyAgICBmbG9hdCBzaWduID0gaXND
Q1cocHQpID8gLTEuMGYgOiAxLjBmOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7
CisgICAgICAgIEZsb2F0UG9pbnQgcSA9IHB0W2ldOworICAgICAgICBGbG9hdFBvaW50IHRhbmdl
bnQgPSBGbG9hdFBvaW50KHAueSgpIC0gcS55KCksIHEueCgpIC0gcC54KCkpOworICAgICAgICBm
bG9hdCBzY2FsZSA9IHNpZ24gLyB0YW5nZW50Lmxlbmd0aCgpOworICAgICAgICBmbG9hdCBjcm9z
czIgPSBwLngoKSAqIHEueSgpIC0gcS54KCkgKiBwLnkoKTsKKworICAgICAgICBlZGdlc1tpXSA9
IEVkZ2UodGFuZ2VudC54KCkgKiBzY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdl
bnQueSgpICogc2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICBjcm9zczIgKiBzY2FsZSAr
IChmaWx0ZXIgJiAoMSA8PCBpKSkgKiAwLjVmKTsKKworICAgICAgICBwID0gcTsKKyAgICB9CisK
KyAgICAvLyBXZSBkb24ndCBjYXJlIGFib3V0IFogY29tcG9uZW50LgorICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGludmVyc2UgPQorICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChtYXRyaXgu
bTExKCksIG1hdHJpeC5tMTIoKSwgMC4wLCBtYXRyaXgubTE0KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hdHJpeC5tMjEoKSwgbWF0cml4Lm0yMigpLCAwLjAsIG1hdHJpeC5tMjQo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm0zMSgpLCBtYXRyaXgubTMy
KCksIDEuMCwgbWF0cml4Lm0zNCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRy
aXgubTQxKCksIG1hdHJpeC5tNDIoKSwgMC4wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXRyaXgubTQ0KCkpLmludmVyc2UoKTsKKworICAgIGRvdWJsZSBzY2FsZVggPSAxLjAgLyBy
ZWN0LndpZHRoKCk7CisgICAgZG91YmxlIHNjYWxlWSA9IDEuMCAvIHJlY3QuaGVpZ2h0KCk7Cisg
ICAgZG91YmxlIHRyYW5zbGF0ZVggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDIuMDsKKyAg
ICBkb3VibGUgdHJhbnNsYXRlWSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDIuMDsKKwor
ICAgICAvLyBUaGUgdHdvIHRyaWFuZ2xlcyB0aGF0IG1ha2UgdXAgdGhlIGxheWVyIHF1YWQuCisg
ICAgdWludDE2X3QgaW5kaWNlc1tdID0geyAwLCAxLCAyLCAwLCAyLCAzIH07CisgICAgZmxvYXQg
dmVydGljZXNbMjBdOworCisgICAgRWRnZSBwcmV2RWRnZSA9IGVkZ2VzWzNdOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgIEVkZ2UgZWRnZSA9IGVkZ2VzW2ldOwor
CisgICAgICAgIHB0W2ldID0gaW50ZXJzZWN0KHByZXZFZGdlLCBlZGdlKTsKKyAgICAgICAgcHRb
aV0gPSBpbnZlcnNlLm1hcFBvaW50KHB0W2ldKTsKKworICAgICAgICAvLyBWZXJ0ZXggcG9zaXRp
b24gbm9ybWFsaXplZCB0byByZWN0LgorICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDBdID0gKHB0
W2ldLngoKSAtIHRyYW5zbGF0ZVgpICogc2NhbGVYOworICAgICAgICB2ZXJ0aWNlc1tpICogNSAr
IDFdID0gKHB0W2ldLnkoKSAtIHRyYW5zbGF0ZVkpICogc2NhbGVZOworICAgICAgICB2ZXJ0aWNl
c1tpICogNSArIDJdID0gMC4wZjsKKworICAgICAgICAvLyBUZXh0dXJlIGNvb3JkaW5hdGVzLgor
ICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDNdID0gKHB0W2ldLngoKSAtIHJlY3QueCgpKSAqIHNj
YWxlWDsKKyAgICAgICAgdmVydGljZXNbaSAqIDUgKyA0XSA9IChwdFtpXS55KCkgLSByZWN0Lnko
KSkgKiBzY2FsZVk7CisKKyAgICAgICAgcHJldkVkZ2UgPSBlZGdlOworICAgIH0KKworICAgIEdM
QyhtX2NvbnRleHQsIG1fcXVhZFZlcnRpY2VzVmJvID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIo
KSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9xdWFkRWxlbWVudHNWYm8gPSBtX2NvbnRleHQtPmNy
ZWF0ZUJ1ZmZlcigpKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJpbmRCdWZmZXIo
R3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgbV9xdWFkVmVydGljZXNWYm8pKTsKKyAg
ICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJ1ZmZlckRhdGEoR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUiwgc2l6ZW9mKHZlcnRpY2VzKSwgdmVydGljZXMsIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEFUSUNfRFJBVykpOworICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1
ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIG1fcXVhZEVsZW1l
bnRzVmJvKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBo
aWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKGluZGljZXMpLCBpbmRp
Y2VzLCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpKTsKKworICAgIG1faW5pdGlhbGl6
ZWQgPSB0cnVlOworfQorCiBHZW9tZXRyeUJpbmRpbmc6On5HZW9tZXRyeUJpbmRpbmcoKQogewog
ICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+ZGVsZXRlQnVmZmVyKG1fcXVhZFZlcnRpY2Vz
VmJvKSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxldGVCdWZmZXIobV9xdWFk
RWxlbWVudHNWYm8pKTsKIH0KIAotdm9pZCBHZW9tZXRyeUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3
KCkKK3ZvaWQgR2VvbWV0cnlCaW5kaW5nOjpwcmVwYXJlRm9yRHJhdygpIGNvbnN0CiB7CiAgICAg
R0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpB
UlJBWV9CVUZGRVIsIHF1YWRWZXJ0aWNlc1ZibygpKSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9j
b250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZF
UiwgcXVhZEVsZW1lbnRzVmJvKCkpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRpbmcuaAkocmV2aXNpb24gODc3NzEpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCwxNSArMjgsMzAgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIAorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNE
OwogCitlbnVtIEVkZ2VGaWx0ZXIgeworICAgIEZpbHRlckxlZnRFZGdlICAgPSAxIDw8IDAsCisg
ICAgRmlsdGVyVG9wRWRnZSAgICA9IDEgPDwgMSwKKyAgICBGaWx0ZXJSaWdodEVkZ2UgID0gMSA8
PCAyLAorICAgIEZpbHRlckJvdHRvbUVkZ2UgPSAxIDw8IDMKK307Cit0eXBlZGVmIHVuc2lnbmVk
IEVkZ2VGaWx0ZXJGbGFnczsKKwogY2xhc3MgR2VvbWV0cnlCaW5kaW5nIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBHZW9tZXRyeUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqKTsKKyAgICBleHBs
aWNpdCBHZW9tZXRyeUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFZGdlRmlsdGVyRmxhZ3MpOwogICAgIH5HZW9tZXRyeUJpbmRpbmcoKTsKIAogICAgIGJv
b2wgaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxpemVkOyB9CkBAIC00NSw3
ICs2MCw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBxdWFkVmVydGljZXNWYm8oKSBjb25zdCB7
IHJldHVybiBtX3F1YWRWZXJ0aWNlc1ZibzsgfQogICAgIHVuc2lnbmVkIHF1YWRFbGVtZW50c1Zi
bygpIGNvbnN0IHsgcmV0dXJuIG1fcXVhZEVsZW1lbnRzVmJvOyB9CiAKLSAgICB2b2lkIHByZXBh
cmVGb3JEcmF3KCk7CisgICAgdm9pZCBwcmVwYXJlRm9yRHJhdygpIGNvbnN0OwogCiAgICAgLy8g
QWxsIGxheWVyIHNoYWRlcnMgc2hhcmUgdGhlIHNhbWUgYXR0cmlidXRlIGxvY2F0aW9ucyBmb3Ig
dGhlIHZlcnRleAogICAgIC8vIHBvc2l0aW9ucyBhbmQgdGV4dHVyZSBjb29yZGluYXRlcy4gVGhp
cyBhbGxvd3Mgc3dpdGNoaW5nIHNoYWRlcnMgd2l0aG91dApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNw
cAkocmV2aXNpb24gODc3NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyVGlsZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJMYXllclRpbGVyQ2hyb21pdW0uaCIKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMz
RENocm9taXVtLmgiCisjaW5jbHVkZSAiR2VvbWV0cnlCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRl
ICJMYXllclJlbmRlcmVyQ2hyb21pdW0uaCIKQEAgLTc4LDcgKzc5LDYgQEAgdm9pZCBMYXllclRp
bGVyQ2hyb21pdW06OnNldFRpbGVTaXplKGNvbgogICAgIHJlc2V0KCk7CiAKICAgICBtX3RpbGVT
aXplID0gc2l6ZTsKLSAgICBtX3RpbGluZ0RhdGEuc2V0TWF4VGV4dHVyZVNpemUobWF4KHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogfQogCiBMYXllclRleHR1cmUqIExheWVyVGlsZXJD
aHJvbWl1bTo6Z2V0U2luZ2xlVGV4dHVyZSgpCkBAIC0xNzksOSArMTc5LDEzIEBAIEludFJlY3Qg
TGF5ZXJUaWxlckNocm9taXVtOjp0aWxlQ29udGVudFIKIEludFJlY3QgTGF5ZXJUaWxlckNocm9t
aXVtOjp0aWxlTGF5ZXJSZWN0KGNvbnN0IFRpbGUqIHRpbGUpIGNvbnN0CiB7CiAgICAgY29uc3Qg
aW50IGluZGV4ID0gbV90aWxpbmdEYXRhLnRpbGVJbmRleCh0aWxlLT5pKCksIHRpbGUtPmooKSk7
Ci0gICAgSW50UmVjdCBsYXllclJlY3QgPSBtX3RpbGluZ0RhdGEudGlsZUJvdW5kc1dpdGhCb3Jk
ZXIoaW5kZXgpOwotICAgIGxheWVyUmVjdC5zZXRTaXplKG1fdGlsZVNpemUpOwotICAgIHJldHVy
biBsYXllclJlY3Q7CisgICAgcmV0dXJuIG1fdGlsaW5nRGF0YS50aWxlQm91bmRzV2l0aEJvcmRl
cihpbmRleCk7Cit9CisKK0ludFJlY3QgTGF5ZXJUaWxlckNocm9taXVtOjp0aWxlVGV4UmVjdChj
b25zdCBUaWxlKiB0aWxlKSBjb25zdAoreworICAgIGNvbnN0IGludCBpbmRleCA9IG1fdGlsaW5n
RGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpOworICAgIHJldHVybiBtX3RpbGlu
Z0RhdGEudGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcihpbmRleCk7CiB9CiAKIHZvaWQgTGF5ZXJU
aWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCkK
QEAgLTIzNSw2ICsyMzksNyBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBk
YXRlCiAgICAgLy8gQ3JlYXRlIHRpbGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5nIGEgZGlydHkgcmVj
dCB0byBjb250YWluIGFsbAogICAgIC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1cnJlbnRseSBiZWlu
ZyBkcmF3bi4KICAgICBJbnRSZWN0IGRpcnR5TGF5ZXJSZWN0OworICAgIEludFNpemUgdGlsZVNp
emU7CiAgICAgaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsKICAgICBjb250ZW50UmVjdFRv
VGlsZUluZGljZXMoY29udGVudFJlY3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7CiAgICAg
Zm9yIChpbnQgaiA9IHRvcDsgaiA8PSBib3R0b207ICsraikgewpAQCAtMjQyLDExICsyNDcsMTUg
QEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZQogICAgICAgICAgICAg
VGlsZSogdGlsZSA9IHRpbGVBdChpLCBqKTsKICAgICAgICAgICAgIGlmICghdGlsZSkKICAgICAg
ICAgICAgICAgICB0aWxlID0gY3JlYXRlVGlsZShpLCBqKTsKLSAgICAgICAgICAgIGlmICghdGls
ZS0+dGV4dHVyZSgpLT5pc1ZhbGlkKG1fdGlsZVNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JB
KSkKKworICAgICAgICAgICAgSW50U2l6ZSB0ZXhTaXplID0gdGlsZVRleFJlY3QodGlsZSkuc2l6
ZSgpOworICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPmlzVmFsaWQodGV4U2l6ZSwg
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQogICAgICAgICAgICAgICAgIHRpbGUtPm1fZGlydHlM
YXllclJlY3QgPSB0aWxlTGF5ZXJSZWN0KHRpbGUpOwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+cmVzZXJ2ZShtX3RpbGVTaXplLCBHcmFwaGljc0Nv
bnRleHQzRDo6UkdCQSk7CisgICAgICAgICAgICAgICAgdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZl
KHRleFNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKTsKICAgICAgICAgICAgIGRpcnR5TGF5
ZXJSZWN0LnVuaXRlKHRpbGUtPm1fZGlydHlMYXllclJlY3QpOworCisgICAgICAgICAgICB0aWxl
U2l6ZSA9IHRpbGVTaXplLmV4cGFuZGVkVG8odGV4U2l6ZSk7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTI1OSw3ICsyNjgsNyBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBk
YXRlCiAgICAgaWYgKGRpcnR5TGF5ZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV90ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRSZWN0LCBtX3Rp
bGVTaXplLCBtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpOworICAgIG1fdGV4dHVyZVVwZGF0
ZXItPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgdGlsZVNpemUsIG1fdGlsaW5nRGF0YS5i
b3JkZXJUZXhlbHMoKSk7CiB9CiAKIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjp1cGRhdGVSZWN0
KCkKQEAgLTI4Miw3ICsyOTEsOCBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6dXBkYXRlUmVj
dCgpCiAKICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBwYWdlLXNwYWNlIHJlY3RhbmdsZSB0byBj
b3B5IGZyb20uCiAgICAgICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QgPSB0aWxlQ29udGVudFJl
Y3QodGlsZSk7Ci0gICAgICAgICAgICBjb25zdCBJbnRQb2ludCBhbmNob3IgPSBzb3VyY2VSZWN0
LmxvY2F0aW9uKCk7CisgICAgICAgICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4UmVjdCh0
aWxlKTsKKyAgICAgICAgICAgIGNvbnN0IEludFBvaW50IGFuY2hvciA9IHRleFJlY3QubG9jYXRp
b24oKTsKICAgICAgICAgICAgIHNvdXJjZVJlY3QuaW50ZXJzZWN0KGxheWVyUmVjdFRvQ29udGVu
dFJlY3QodGlsZS0+bV9kaXJ0eUxheWVyUmVjdCkpOwogICAgICAgICAgICAgLy8gUGFpbnQgcmVj
dCBub3QgZ3VhcmFudGVlZCB0byBsaW5lIHVwIG9uIHRpbGUgYm91bmRhcmllcywgc28KICAgICAg
ICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHNvdXJjZVJlY3QgZG9lc24ndCBleHRlbmQgb3V0c2lk
ZSBvZiBpdC4KQEAgLTI5MSw3ICszMDEsNyBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6dXBk
YXRlUmVjdCgpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGlmICgh
dGlsZS0+dGV4dHVyZSgpLT5pc1Jlc2VydmVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXRp
bGUtPnRleHR1cmUoKS0+cmVzZXJ2ZShtX3RpbGVTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdC
QSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+cmVzZXJ2ZSh0ZXhS
ZWN0LnNpemUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIG1fc2tpcHNEcmF3ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgcmVzZXQoKTsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzYzLDggKzM3Myw5IEBAIHZvaWQgTGF5ZXJU
aWxlckNocm9taXVtOjpkcmF3KGNvbnN0IEludFIKICAgICAgICAgICAgIHRpbGVNYXRyaXgudHJh
bnNsYXRlM2QodGlsZVJlY3QueCgpICsgdGlsZVJlY3Qud2lkdGgoKSAvIDIuMCwgdGlsZVJlY3Qu
eSgpICsgdGlsZVJlY3QuaGVpZ2h0KCkgLyAyLjAsIDApOwogCiAgICAgICAgICAgICBJbnRQb2lu
dCB0ZXhPZmZzZXQgPSBtX3RpbGluZ0RhdGEudGV4dHVyZU9mZnNldCh0aWxlLT5pKCksIHRpbGUt
PmooKSk7Ci0gICAgICAgICAgICBmbG9hdCB0aWxlV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4o
bV90aWxlU2l6ZS53aWR0aCgpKTsKLSAgICAgICAgICAgIGZsb2F0IHRpbGVIZWlnaHQgPSBzdGF0
aWNfY2FzdDxmbG9hdD4obV90aWxlU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICBJbnRSZWN0
IHRleFJlY3QgPSB0aWxlVGV4UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGZsb2F0IHRpbGVXaWR0
aCA9IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgZmxv
YXQgdGlsZUhlaWdodCA9IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LmhlaWdodCgpKTsKICAg
ICAgICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVggPSB0ZXhPZmZzZXQueCgpIC8gdGlsZVdpZHRo
OwogICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWSA9IHRleE9mZnNldC55KCkgLyB0aWxl
SGVpZ2h0OwogICAgICAgICAgICAgZmxvYXQgdGV4U2NhbGVYID0gdGlsZVJlY3Qud2lkdGgoKSAv
IHRpbGVXaWR0aDsKQEAgLTM3NSw3ICszODYsMzggQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06
OmRyYXcoY29uc3QgSW50UgogICAgICAgICAgICAgICAgIHRleFRyYW5zbGF0ZVkgKz0gMS4wOwog
ICAgICAgICAgICAgICAgIHRleFNjYWxlWSAqPSAtMS4wOwogICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBPd25QdHI8R2VvbWV0cnlCaW5kaW5nPiBnZW9tZXRyeTsKKworICAgICAgICAgICAg
Ly8gQ3JlYXRlIGdlb21ldHJ5IGJpbmRpbmcgYWRqdXN0ZWQgZm9yIGZpbHRlcmluZyBvZiBsYXll
ciBlZGdlcy4KKyAgICAgICAgICAgIGlmIChtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpIHsK
KyAgICAgICAgICAgICAgICBpbnQgbnVtVGlsZXNYID0gbV90aWxpbmdEYXRhLm51bVRpbGVzWCgp
OworICAgICAgICAgICAgICAgIGludCBudW1UaWxlc1kgPSBtX3RpbGluZ0RhdGEubnVtVGlsZXNZ
KCk7CisgICAgICAgICAgICAgICAgaW50IGluZGV4ID0gbV90aWxpbmdEYXRhLnRpbGVJbmRleCh0
aWxlLT5pKCksIHRpbGUtPmooKSk7CisgICAgICAgICAgICAgICAgRWRnZUZpbHRlckZsYWdzIGZp
bHRlciA9IDA7CisKKyAgICAgICAgICAgICAgICBpZiAoIW1fdGlsaW5nRGF0YS50aWxlWEluZGV4
KGluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlckxlZnRFZGdlOwor
ICAgICAgICAgICAgICAgIGlmICghbV90aWxpbmdEYXRhLnRpbGVZSW5kZXgoaW5kZXgpKQorICAg
ICAgICAgICAgICAgICAgICBmaWx0ZXIgfD0gRmlsdGVyVG9wRWRnZTsKKyAgICAgICAgICAgICAg
ICBpZiAobV90aWxpbmdEYXRhLnRpbGVYSW5kZXgoaW5kZXgpID09IChudW1UaWxlc1ggLSAxKSkK
KyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlclJpZ2h0RWRnZTsKKyAgICAgICAg
ICAgICAgICBpZiAobV90aWxpbmdEYXRhLnRpbGVZSW5kZXgoaW5kZXgpID09IChudW1UaWxlc1kg
LSAxKSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlckJvdHRvbUVkZ2U7CisK
KyAgICAgICAgICAgICAgICBnZW9tZXRyeSA9IGFkb3B0UHRyKG5ldyBHZW9tZXRyeUJpbmRpbmco
Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGlsZU1hdHJpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGlsZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcikpOworCisgICAgICAgICAgICAg
ICAgZ2VvbWV0cnktPnByZXBhcmVGb3JEcmF3KCk7CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGRyYXdUZXh0dXJlZFF1YWQoY29udGV4dCwgbGF5ZXJSZW5kZXJlcigpLT5wcm9qZWN0aW9u
TWF0cml4KCksIHRpbGVNYXRyaXgsIHRpbGVSZWN0LndpZHRoKCksIHRpbGVSZWN0LmhlaWdodCgp
LCBvcGFjaXR5LCB0ZXhUcmFuc2xhdGVYLCB0ZXhUcmFuc2xhdGVZLCB0ZXhTY2FsZVgsIHRleFNj
YWxlWSwgcHJvZ3JhbSk7CisKKyAgICAgICAgICAgIC8vIFJlc3RvcmUgZGVmYXVsdCBnZW9tZXRy
eSBiaW5kaW5nLgorICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkK
KyAgICAgICAgICAgICAgICBsYXllclJlbmRlcmVyKCktPnNoYXJlZEdlb21ldHJ5KCktPnByZXBh
cmVGb3JEcmF3KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zODUsOSArNDI3LDIxIEBAIHZv
aWQgTGF5ZXJUaWxlckNocm9taXVtOjpncm93TGF5ZXJUb0NvbnQKICAgICAvLyBHcm93IHRoZSB0
aWxlIGFycmF5IHRvIGNvbnRhaW4gdGhpcyBjb250ZW50IHJlY3QuCiAgICAgSW50UmVjdCBsYXll
clJlY3QgPSBjb250ZW50UmVjdFRvTGF5ZXJSZWN0KGNvbnRlbnRSZWN0KTsKICAgICBJbnRTaXpl
IHJlY3RTaXplID0gSW50U2l6ZShsYXllclJlY3QubWF4WCgpLCBsYXllclJlY3QubWF4WSgpKTsK
KyAgICBJbnRTaXplIHRleFNpemUgPSBtX3RpbGVTaXplOworCisgICAgLy8gVXNlIHJlY3Qgd2l0
aCBib3JkZXIgdGV4ZWxzIGFzIG1heCB0ZXh0dXJlIHNpemUgd2hlbiB0aWxlIHNpemUKKyAgICAv
LyBoYXMgbm90IGJlZW4gc3BlY2lmaWVkLgorICAgIGlmICh0ZXhTaXplLmlzRW1wdHkoKSkgewor
ICAgICAgICB0ZXhTaXplID0gcmVjdFNpemU7CisgICAgICAgIGlmIChtX3RpbGluZ0RhdGEuYm9y
ZGVyVGV4ZWxzKCkpCisgICAgICAgICAgICB0ZXhTaXplLmV4cGFuZCgyLCAyKTsKKyAgICB9CisK
KyAgICBtX3RpbGluZ0RhdGEuc2V0TWF4VGV4dHVyZVNpemUobWF4KHRleFNpemUud2lkdGgoKSwg
dGV4U2l6ZS5oZWlnaHQoKSkpOwogCiAgICAgSW50U2l6ZSBvbGRMYXllclNpemUobV90aWxpbmdE
YXRhLnRvdGFsU2l6ZVgoKSwgbV90aWxpbmdEYXRhLnRvdGFsU2l6ZVkoKSk7CiAgICAgSW50U2l6
ZSBuZXdTaXplID0gcmVjdFNpemUuZXhwYW5kZWRUbyhvbGRMYXllclNpemUpOworCiAgICAgbV90
aWxpbmdEYXRhLnNldFRvdGFsU2l6ZShuZXdTaXplLndpZHRoKCksIG5ld1NpemUuaGVpZ2h0KCkp
OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGls
ZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHJldmlzaW9uIDg3NzcxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uaAkod29ya2luZyBj
b3B5KQpAQCAtMTIwLDYgKzEyMCw3IEBAIHByaXZhdGU6CiAgICAgVGlsZSogdGlsZUF0KGludCwg
aW50KSBjb25zdDsKICAgICBJbnRSZWN0IHRpbGVDb250ZW50UmVjdChjb25zdCBUaWxlKikgY29u
c3Q7CiAgICAgSW50UmVjdCB0aWxlTGF5ZXJSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKKyAgICBJ
bnRSZWN0IHRpbGVUZXhSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKIAogICAgIEludFNpemUgbV90
aWxlU2l6ZTsKICAgICBJbnRQb2ludCBtX2xheWVyUG9zaXRpb247CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAkocmV2aXNpb24gODc3NzEpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsMTAgKzQ0LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlu
dCBjb21wdXRlTnVtVGlsZXMoaW50IG1heFRleHR1cmVTaXplLCBpbnQgdG90YWxTaXplLCBpbnQg
Ym9yZGVyVGV4ZWxzKQogeworICAgIGludCB0b3RhbFNpemVXaXRoQm9yZGVyID0gdG90YWxTaXpl
ICsgMiAqIGJvcmRlclRleGVsczsKKwogICAgIGlmIChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBib3Jk
ZXJUZXhlbHMgPD0gMCkKLSAgICAgICAgcmV0dXJuIHRvdGFsU2l6ZSA+IDAgJiYgbWF4VGV4dHVy
ZVNpemUgPj0gdG90YWxTaXplID8gMSA6IDA7CisgICAgICAgIHJldHVybiAwOwogCi0gICAgaW50
IG51bVRpbGVzID0gbWF4KDEsIDEgKyAodG90YWxTaXplIC0gMSAtIDIgKiBib3JkZXJUZXhlbHMp
IC8gKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscykpOworICAgIGludCBudW1UaWxl
cyA9IG1heCgxLCAxICsgKHRvdGFsU2l6ZVdpdGhCb3JkZXIgLSAxIC0gMiAqIGJvcmRlclRleGVs
cykgLyAobWF4VGV4dHVyZVNpemUgLSAyICogYm9yZGVyVGV4ZWxzKSk7CiAgICAgcmV0dXJuIHRv
dGFsU2l6ZSA+IDAgPyBudW1UaWxlcyA6IDA7CiB9CiAKQEAgLTc5LDcgKzgxLDcgQEAgaW50IFRp
bGluZ0RhdGE6OnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoaQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIEFTU0VSVChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKLSAgICBp
bnQgeCA9IChzcmNQb3MgLSBtX2JvcmRlclRleGVscykgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIg
KiBtX2JvcmRlclRleGVscyk7CisgICAgaW50IHggPSBzcmNQb3MgLyAobV9tYXhUZXh0dXJlU2l6
ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7CiAgICAgcmV0dXJuIG1pbihtYXgoeCwgMCksIG51bVRp
bGVzWCgpIC0gMSk7CiB9CiAKQEAgLTg5LDcgKzkxLDcgQEAgaW50IFRpbGluZ0RhdGE6OnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoaQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VSVChtX21h
eFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKLSAgICBpbnQgeSA9IChzcmNQb3Mg
LSBtX2JvcmRlclRleGVscykgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVs
cyk7CisgICAgaW50IHkgPSBzcmNQb3MgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRl
clRleGVscyk7CiAgICAgcmV0dXJuIG1pbihtYXgoeSwgMCksIG51bVRpbGVzWSgpIC0gMSk7CiB9
CiAKQEAgLTEzMiw2ICsxMzQsMTYgQEAgSW50UmVjdCBUaWxpbmdEYXRhOjp0aWxlQm91bmRzV2l0
aEJvcmRlcgogICAgIHJldHVybiBib3VuZHM7CiB9CiAKK0ludFJlY3QgVGlsaW5nRGF0YTo6dGls
ZUJvdW5kc1dpdGhPdXRlckJvcmRlcihpbnQgdGlsZSkgY29uc3QKK3sKKyAgICBJbnRSZWN0IGJv
dW5kcyA9IHRpbGVCb3VuZHModGlsZSk7CisKKyAgICBpZiAobV9ib3JkZXJUZXhlbHMpCisgICAg
ICAgIGJvdW5kcy5pbmZsYXRlKDEpOworCisgICAgcmV0dXJuIGJvdW5kczsKK30KKwogRmxvYXRS
ZWN0IFRpbGluZ0RhdGE6OnRpbGVCb3VuZHNOb3JtYWxpemVkKGludCB0aWxlKSBjb25zdAogewog
ICAgIGFzc2VydFRpbGUodGlsZSk7CkBAIC0xNjgsOCArMTgwLDYgQEAgaW50IFRpbGluZ0RhdGE6
OnRpbGVTaXplWChpbnQgeEluZGV4KSBjbwogCiAgICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxl
c1ggPT0gMSkKICAgICAgICAgcmV0dXJuIG1fdG90YWxTaXplWDsKLSAgICBpZiAoIXhJbmRleCAm
JiBtX251bVRpbGVzWCA+IDEpCi0gICAgICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0gbV9i
b3JkZXJUZXhlbHM7CiAgICAgaWYgKHhJbmRleCA8IG51bVRpbGVzWCgpIC0gMSkKICAgICAgICAg
cmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYgKHhJ
bmRleCA9PSBudW1UaWxlc1goKSAtIDEpCkBAIC0xODUsOCArMTk1LDYgQEAgaW50IFRpbGluZ0Rh
dGE6OnRpbGVTaXplWShpbnQgeUluZGV4KSBjbwogCiAgICAgaWYgKCF5SW5kZXggJiYgbV9udW1U
aWxlc1kgPT0gMSkKICAgICAgICAgcmV0dXJuIG1fdG90YWxTaXplWTsKLSAgICBpZiAoIXlJbmRl
eCAmJiBtX251bVRpbGVzWSA+IDEpCi0gICAgICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0g
bV9ib3JkZXJUZXhlbHM7CiAgICAgaWYgKHlJbmRleCA8IG51bVRpbGVzWSgpIC0gMSkKICAgICAg
ICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYg
KHlJbmRleCA9PSBudW1UaWxlc1koKSAtIDEpCkBAIC0yMzAsOCArMjM4LDggQEAgdm9pZCBUaWxp
bmdEYXRhOjppbnRlcnNlY3REcmF3UXVhZChjb25zdAogCiAgICAgKm5ld1NyYyA9IHNyY1JlY3RJ
bnRlcnNlY3RlZDsKICAgICBuZXdTcmMtPm1vdmUoCi0gICAgICAgIC10aWxlQm91bmRzLngoKSAr
ICgodGlsZVhJbmRleCh0aWxlKSA+IDApID8gbV9ib3JkZXJUZXhlbHMgOiAwKSwKLSAgICAgICAg
LXRpbGVCb3VuZHMueSgpICsgKCh0aWxlWUluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRlclRleGVs
cyA6IDApKTsKKyAgICAgICAgLXRpbGVCb3VuZHMueCgpICsgbV9ib3JkZXJUZXhlbHMsCisgICAg
ICAgIC10aWxlQm91bmRzLnkoKSArIG1fYm9yZGVyVGV4ZWxzKTsKIAogICAgICpuZXdEc3QgPSBG
bG9hdFJlY3QoCiAgICAgICAgIHNyY1JlY3RJbnRlcnNlY3RlZE5vcm1YICogZHN0UmVjdC53aWR0
aCgpICsgZHN0UmVjdC54KCksCkBAIC0yNDIsMTAgKzI1MCw3IEBAIHZvaWQgVGlsaW5nRGF0YTo6
aW50ZXJzZWN0RHJhd1F1YWQoY29uc3QKIAogSW50UG9pbnQgVGlsaW5nRGF0YTo6dGV4dHVyZU9m
ZnNldChpbnQgeEluZGV4LCBpbnQgeUluZGV4KSBjb25zdAogewotICAgIGludCBsZWZ0ID0gKCF4
SW5kZXggfHwgbV9udW1UaWxlc1ggPT0gMSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0gICAgaW50
IHRvcCA9ICgheUluZGV4IHx8IG1fbnVtVGlsZXNZID09IDEpID8gMCA6IG1fYm9yZGVyVGV4ZWxz
OwotCi0gICAgcmV0dXJuIEludFBvaW50KGxlZnQsIHRvcCk7CisgICAgcmV0dXJuIEludFBvaW50
KG1fYm9yZGVyVGV4ZWxzLCBtX2JvcmRlclRleGVscyk7CiB9CiAKIHZvaWQgVGlsaW5nRGF0YTo6
cmVjb21wdXRlTnVtVGlsZXMoKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
VGlsaW5nRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1RpbGluZ0RhdGEuaAkocmV2aXNpb24gODc3NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9UaWxpbmdEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVi
bGljOgogCiAgICAgSW50UmVjdCB0aWxlQm91bmRzKGludCB0aWxlKSBjb25zdDsKICAgICBJbnRS
ZWN0IHRpbGVCb3VuZHNXaXRoQm9yZGVyKGludCB0aWxlKSBjb25zdDsKKyAgICBJbnRSZWN0IHRp
bGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIoaW50IHRpbGUpIGNvbnN0OwogICAgIEZsb2F0UmVjdCB0
aWxlQm91bmRzTm9ybWFsaXplZChpbnQgdGlsZSkgY29uc3Q7CiAgICAgaW50IHRpbGVQb3NpdGlv
blgoaW50IHhJbmRleCkgY29uc3Q7CiAgICAgaW50IHRpbGVQb3NpdGlvblkoaW50IHlJbmRleCkg
Y29uc3Q7CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFu
Z2VMb2cJKHJldmlzaW9uIDg4MDY3KQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTAzICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcgZm9yIGNvbXBvc2l0ZWQgbGF5ZXJz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzODgK
KworICAgICAgICBUcmFjayBjaGFuZ2VzIHRvIFRpbGluZ0RhdGEgY2xhc3Mgd2hpY2ggbm93IHVz
ZXMgYW4gb3V0ZXIgYm9yZGVyLgorCisgICAgICAgICogY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0
YVRlc3QuY3BwOgorCiAyMDExLTA2LTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpJbmRleDogV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vdGVzdHMvVGlsaW5nRGF0YVRlc3QuY3BwCShyZXZpc2lvbiA4Nzc3MSkKKysrIFdlYktpdC9j
aHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEw
ICs0MSwxMCBAQCBuYW1lc3BhY2UgewogVEVTVChUaWxpbmdEYXRhVGVzdCwgbnVtVGlsZXNfTm9U
aWxpbmcpCiB7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMTYsIDE2LCAxNiwgZmFsc2Up
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNSwgMTUsIHRy
dWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNiwgMTYs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE3LCAxNSwg
MTUsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE4LCAx
NiwgMTYsIHRydWUpLm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2
LCAgMSwgMTYsIGZhbHNlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgxNSwgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgxNywgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRh
VGVzdCwgbnVtVGlsZXNfVGlsaW5nTm9Cb3JkZXJzKQpAQCAtMTA5LDQ1ICsxMDksNDUgQEAgVEVT
VChUaWxpbmdEYXRhVGVzdCwgbnVtVGlsZXNfVGlsaW5nV2l0aAogICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKC0xLCAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAs
IFRpbGluZ0RhdGEoMCwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKIAotICAgIEVYUEVDVF9F
USgxLCBUaWxpbmdEYXRhKDEsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMSwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgxLCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwogICAgIEVY
UEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsICAyLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMiwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwot
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDIsICAyLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7
Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMiwgIDIsICAyLCB0cnVlKS5udW1UaWxlcygp
KTsKLQotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMywgdHJ1ZSkubnVtVGls
ZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDIsICAzLCB0cnVlKS5udW1U
aWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgMywgIDMsIHRydWUpLm51
bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICA0LCAgMywgdHJ1ZSku
bnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgIDUsICAzLCB0cnVl
KS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAgNiwgIDMsIHRy
dWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsICA3LCAgMywg
dHJ1ZSkubnVtVGlsZXMoKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMSwg
IDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAy
LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwg
IDMsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0
LCAgNCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRh
KDQsICA1LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoNCwgIDYsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSg0LCAgNywgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDQsICA4LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRp
bGluZ0RhdGEoNCwgIDksICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwg
VGlsaW5nRGF0YSg0LCAxMCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1
LCBUaWxpbmdEYXRhKDQsIDExLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0KLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSg1LCAgMSwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDUsICAyLCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDMsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0g
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA1LCB0cnVlKS5udW1UaWxlcygpKTsK
LSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNywgIDUsIHRydWUpLm51bVRpbGVzKCkp
OwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA4LCAgNSwgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDksICA1LCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgIDUsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDExLCAgNSwgdHJ1ZSkubnVt
VGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDEsICAxLCB0cnVlKS5u
dW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAgMSwgIDIsIHRydWUp
Lm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsICAyLCAgMSwgdHJ1
ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDIsICAyLCB0
cnVlKS5udW1UaWxlcygpKTsKKworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAg
MSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgIDEs
ICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAg
MiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMs
ICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEo
MywgIDIsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0
YSgzLCAgMywgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdE
YXRhKDMsICAzLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisKKyAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSg0LCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDQsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNCwgIDMsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSg0LCAgNCwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDQsICA1LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNCwgIDYsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgNywgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDQsICA4LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAg
RVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgIDksICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg0LCAxMCwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDQsIDExLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMSwgIDMsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAyLCAgMywgdHJ1ZSkubnVtVGls
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDMsICAzLCB0cnVlKS5udW1U
aWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNCwgIDMsIHRydWUpLm51
bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA1LCAgMywgdHJ1ZSku
bnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICAzLCB0cnVl
KS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNywgIDMsIHRy
dWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgMywg
dHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDksICAz
LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAxMCwg
IDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEx
LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVY
SW5kZXhGcm9tU3JjQ29vcmQpCkBAIC0xNjYsMTcgKzE2NiwxNyBAQCBURVNUKFRpbGluZ0RhdGFU
ZXN0LCB0aWxlWEluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCBmYWxzZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVY
SW5kZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsK
LSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoNCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGlu
Z0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBF
WFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoNykpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCg4KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEo
MywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1Rf
RVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
MTApKTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVY
SW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgy
LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7
CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4
RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAs
IHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAg
RVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNy
Y0Nvb3JkKDYpKTsKKyAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUp
LnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRh
KDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNU
X0VRKDksIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KDkpKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVY
SW5kZXhGcm9tU3JjQ29vcmQoMTApKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9F
USgwLCBUaWxpbmdEYXRhKDEsIDEsIDEsIGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgwKSk7CkBAIC0xOTQsMTMgKzE5NCwxMyBAQCBURVNUKFRpbGluZ0RhdGFU
ZXN0LCB0aWxlWEluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwg
MiwgMiwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAs
IFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CiAg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21T
cmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7
CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0
cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KDIpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWElu
ZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCA0LCAz
LCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nv
b3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxl
WEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKIH0KIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQpCiB7CkBAIC0yMTgsMTcgKzIxOCwxNyBAQCBURVNUKFRpbGluZ0RhdGFU
ZXN0LCB0aWxlWUluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCBmYWxzZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3Jk
KDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsK
LSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhG
cm9tU3JjQ29vcmQoNCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGlu
Z0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBF
WFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3Jj
Q29vcmQoNykpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSku
dGlsZVlJbmRleEZyb21TcmNDb29yZCg4KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEo
MywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1Rf
RVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQo
MTApKTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgy
LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7
CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAs
IHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAg
RVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKDYpKTsKKyAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUp
LnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRh
KDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNU
X0VRKDksIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3Jk
KDkpKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoMTApKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9F
USgwLCBUaWxpbmdEYXRhKDEsIDEsIDEsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCgwKSk7CkBAIC0yNDYsNjEgKzI0Niw2MSBAQCBURVNUKFRpbGluZ0RhdGFU
ZXN0LCB0aWxlWUluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwg
MiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAs
IFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CiAg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSku
dGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7
CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZy
b21TcmNDb29yZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0
cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3Jk
KDIpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUlu
ZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxl
WUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNp
emVYKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2UpLnRp
bGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVl
KS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwg
dHJ1ZSkudGlsZVNpemVYKDApKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2
LCAgNiwgZmFsc2UpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEo
NSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5n
RGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1Rf
RVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgxKSk7CiAKICAgICBF
WFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVgoMCkpOwog
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgx
KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6
ZVgoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGls
ZVNpemVYKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUp
LnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0
cnVlKS50aWxlU2l6ZVgoMSkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAs
IDEwLCBmYWxzZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1
LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwogICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKIAotICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWCgyKSk7
CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6ZVgo
MikpOwogfQogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZKQogewogICAgIEVYUEVDVF9F
USg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAg
IEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNpemVZKDApKTsK
IAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2UpLnRpbGVTaXpl
WSgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGls
ZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUp
LnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0
cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAg
NiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAg
NiwgIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0
YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVYUEVDVF9F
USg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAg
RVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwog
CiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSkudGlsZVNpemVZ
KDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxl
U2l6ZVkoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSku
dGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRy
dWUpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEw
LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEw
LCAxMCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRh
KDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWSgyKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6ZVkoMikpOwogfQogCkBAIC0zMTksMTAg
KzMxOSwxMCBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVhfYW5kX3RpbGVQCiAgICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMSwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDAp
KTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxLCAxMDAsIHRydWUpLnRpbGVTaXpl
WCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVlKS50aWxl
UG9zaXRpb25YKDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAzLCAgIDEsIHRy
dWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgICAx
LCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgz
LCAzLCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMywgMywgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAzLCAgIDEsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoNSwgMywgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBF
WFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAzLCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7Cisg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDApKTsKIAogICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIG5vIGJvcmRlcgpAQCAtMzQw
LDIzICszNDAsMjMgQEAgVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYX2FuZF90aWxlUAog
ICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIHdpdGggYm9yZGVyCiAgICAgLy8gcG9zaXRp
b25zIDAsIDIsIDMsIDQKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRy
dWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwg
dHJ1ZSkudGlsZVNpemVYKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAg
IDEsIHRydWUpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywg
NiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRh
KDMsIDYsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOwotICAgIEVYUEVDVF9FUSgy
LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7Ci0gICAgRVhQ
RUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDIpKTsK
LSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlv
blgoMykpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGls
ZVNpemVYKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUp
LnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0
cnVlKS50aWxlU2l6ZVgoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYsIDEw
MCwgdHJ1ZSkudGlsZVNpemVYKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA2
LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDIpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMykpOwor
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6ZVgo
MCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVNp
emVYKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRp
bGVTaXplWCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVl
KS50aWxlU2l6ZVgoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwg
dHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywg
NCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5n
RGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7CisgICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXplWCgy
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlU2l6
ZVgoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGls
ZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0
cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA0
LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7CiB9CiAKIFRFU1QoVGlsaW5n
RGF0YVRlc3QsIHRpbGVTaXplWV9hbmRfdGlsZVBvc2l0aW9uWSkKQEAgLTM3NCwxMCArMzc0LDEw
IEBAIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVTaXplWV9hbmRfdGlsZVAKICAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDEsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwogICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1ZSkudGlsZVNpemVZKDApKTsK
ICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDEsIHRydWUpLnRpbGVQb3NpdGlv
blkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAgMSwgMywgdHJ1ZSkudGls
ZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDMsIHRydWUp
LnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwg
MywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAx
MDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDUsICAgMSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSg1LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAxMDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwog
CiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gbm8gYm9yZGVyCkBAIC0zOTUsMjMgKzM5
NSwyMyBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVlfYW5kX3RpbGVQCiAgICAgLy8g
TXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIKICAgICAvLyBwb3NpdGlvbnMgMCwg
MiwgMywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50
aWxlU2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1
ZSkudGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYs
IHRydWUpLnRpbGVTaXplWSgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAx
LCA2LCB0cnVlKS50aWxlU2l6ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMs
ICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGlu
Z0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7
Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6ZVko
MCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNp
emVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRp
bGVTaXplWSgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVl
KS50aWxlU2l6ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwg
dHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywg
MTAwLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVYUEVDVF9FUSg0
LCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQ
RUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7Cisg
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkp
OworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZ
KDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVT
aXplWSgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50
aWxlUG9zaXRpb25ZKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQs
IHRydWUpLnRpbGVQb3NpdGlvblkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMs
ICAgMSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKKyAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNU
X0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgzKSk7
CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRp
b25ZKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRp
bGVQb3NpdGlvblkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwg
dHJ1ZSkudGlsZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywg
MTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVz
dCwgc2V0VG90YWxTaXplKQpAQCAtNDY4LDcgKzQ2OCw3IEBAIFRFU1QoVGlsaW5nRGF0YVRlc3Qs
IHNldE1heFRleHR1cmVTaXplTm8KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgc2V0TWF4VGV4dHVy
ZVNpemVCb3JkZXJzKQogewotICAgIFRpbGluZ0RhdGEgZGF0YSg4LCAxNiwgMzIsIHRydWUpOwor
ICAgIFRpbGluZ0RhdGEgZGF0YSg4LCAxNiwgMzAsIHRydWUpOwogICAgIEVYUEVDVF9FUSgzLCBk
YXRhLm51bVRpbGVzWCgpKTsKICAgICBFWFBFQ1RfRVEoNSwgZGF0YS5udW1UaWxlc1koKSk7CiAK
QEAgLTQ4NCw3ICs0ODQsNyBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCBzZXRNYXhUZXh0dXJlU2l6
ZUJvCiAKICAgICBkYXRhLnNldE1heFRleHR1cmVTaXplKDUpOwogICAgIEVYUEVDVF9FUSg1LCBk
YXRhLm1heFRleHR1cmVTaXplKCkpOwotICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRpbGVzWCgp
KTsKKyAgICBFWFBFQ1RfRVEoNiwgZGF0YS5udW1UaWxlc1goKSk7CiAgICAgRVhQRUNUX0VRKDEw
LCBkYXRhLm51bVRpbGVzWSgpKTsKIH0KIAo=
</data>
<flag name="review"
          id="89579"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95980</attachid>
            <date>2011-06-03 16:05:57 -0700</date>
            <delta_ts>2011-06-12 11:29:46 -0700</delta_ts>
            <desc>LayoutTest changes</desc>
            <filename>webkit-layer-aa-layout-tests.diff</filename>
            <type>text/plain</type>
            <size>7149</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDY5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDYt
MDMgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEVkZ2UgYW50aS1h
bGlhc2luZyBmb3IgY29tcG9zaXRlZCBsYXllcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTM4OAorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDExLTA2LTAzICBKYW1lcyBTaW1vbnNlbiAg
PHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQs
IGJhc2VsaW5lIGZvciBmdWxsLXNjcmVlbi1wbGFjZWhvbGRlci4gTW9yZSBmbGFraW5lc3MgZm9y
IHN2Zy96b29tIGFuZCBuYXZpZ2F0b3IuCkluZGV4OiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CShyZXZpc2lvbiA4ODA0MCkKKysrIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzAyNyw3ICszMDI3LDggQEAgQlVH
Q1I3NTAxOSBXSU4gTElOVVggTUFDIDpmYXN0L3RleHQvaHlwaAogLy9CVUdXSzU4NTg3IERFQlVH
IEdQVSBMSU5VWCA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2xheW91dC13aWR0aC1j
aGFuZ2UuaHRtbCA9IElNQUdFCiAKIC8vIENocm9taXVtIEdQVSBkcmF3cyBzY3JvbGxiYXJzIHNs
aWdodGx5IGRpZmZlcmVudGx5IGluIGRlYnVnIHZzLiByZWxlYXNlLgotQlVHV0s1ODU4NyBERUJV
RyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9
IElNQUdFCisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNTg1ODcg
REVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0
bWwgPSBJTUFHRQogQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBtZWRpYS92aWRlby16b29t
Lmh0bWwgPSBJTUFHRQogCiAvLyBXZWJLaXQgcm9sbCA4MDU2NDo4MDYzMTogcmVuZGVyaW5nIG9u
IExlb3BhcmQgaXMgc2hpZnRlZCB0byB0aGUgdG9wIHJpZ2h0CkBAIC0zMzkzLDcgKzMzOTQsOCBA
QCBCVUdDUjc5MTExIEdQVSBXSU4gTElOVVggOiBmYXN0L2NhbnZhcy9ECiBCVUdDUjc5MTExIEdQ
VSA6IGNvbXBvc2l0aW5nL2ZyYW1lc2V0cy9jb21wb3NpdGVkLWZyYW1lLWFsaWdubWVudC5odG1s
ID0gSU1BR0UKIAogQlVHV0s1ODMwOCBHUFUgV0lOIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcv
ei1vcmRlci9uZWdhdGl2ZS16LWluZGV4Lmh0bWwgPSBQQVNTIENSQVNICi1CVUdXSzU4MzI4IEdQ
VSBXSU4gTUFDIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVmbGVjdGlv
bi5odG1sID0gSU1BR0UgUEFTUyBDUkFTSAorLy8gQ29tbWVudGVkIGJlY2F1c2Ugb2YgQlVHV0s2
MTM4OAorLy9CVUdXSzU4MzI4IEdQVSBXSU4gTUFDIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcv
d2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UgUEFTUyBDUkFTSAogCiBCVUdDUjc5
MTczIEdQVSBMSU5VWCBERUJVRyA6IGZhc3QvY2FudmFzL2FjY2Vzcy16ZXJvLXNpemVkLWNhbnZh
cy5odG1sID0gUEFTUyBDUkFTSAogCkBAIC0zNTYwLDEzICszNTYyLDE2IEBAIEJVR1dLNjAwOTkg
REVCVUcgOiBmYXN0L2RvbS9BdHRyL2FjY2Vzcy0KIEJVR1dLNjAwOTYgREVCVUcgOiBmYXN0L2Nz
cy9sYXN0LWNoaWxkLXBzZXVkby1jbGFzcy5odG1sID0gVEVYVCBQQVNTCiBCVUdXSzYwMDk3IERF
QlVHIDogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L2xpbmstYW5kLXN1YnJlc291cmNlLXRlc3Qu
aHRtbCA9IFRFWFQgUEFTUwogCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAy
IExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2hvcml6b250YWwtc2Nyb2xs
LWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYx
Mzg4CisvL0JVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtaW4tY29tcG9zaXRlZC5odG1sID0gSU1BR0UKKy8vQlVHV0s2MDEwMiBMSU5VWCBERUJV
RyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9ob3Jpem9udGFsLXNjcm9sbC1jb21wb3NpdGVk
Lmh0bWwgPSBJTUFHRQogQlVHV0s2MDEwMiBMSU5VWCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRy
eS90YWxsLXBhZ2UtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKLUJVR1dLNjAxMDIgTUFDIEdQVSA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UK
LUJVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdmlkZW8t
Zml4ZWQtc2Nyb2xsaW5nLmh0bWwgPSBJTUFHRQorLy8gQ29tbWVudGVkIGJlY2F1c2Ugb2YgQlVH
V0s2MTM4OAorLy9CVUdXSzYwMTAyIE1BQyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRl
by1maXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCisvL0JVR1dLNjAxMDIgTElOVVggREVCVUcg
R1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdmlkZW8tZml4ZWQtc2Nyb2xsaW5nLmh0bWwgPSBJ
TUFHRQogQlVHV0s2MDEwMiBMSU5VWCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9tYXNrZWQtYW5j
ZXN0b3IuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0
aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2suaHRtbCA9IElNQUdFCisvLyBDb21tZW50
ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDog
Y29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKIC8v
IENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR0NSODE2MDUKIC8vQlVHV0s2MDEwMiBMSU5VWCBERUJV
RyBHUFUgOiBmYXN0L2NhbnZhcy9jYW52YXMtdGV4dC1hbGlnbm1lbnQuaHRtbCA9IElNQUdFCiBC
VUdXSzYwMTAyIExJTlVYIEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2xheW91
dC13aWR0aC1jaGFuZ2UuaHRtbCA9IElNQUdFCkBAIC0zOTk2LDMgKzQwMDEsNDkgQEAgQlVHV0s2
MTkyMSA6IGZhc3QvZXZlbnRzL29ubG9hZC1hZnRlci1kbwogCiBCVUdXSzYxOTM2IDogZmFzdC9m
aWxlc3lzdGVtL2ZpbGVzeXN0ZW0tbm8tY2FsbGJhY2stbnVsbC1wdHItY3Jhc2guaHRtbCA9IENS
QVNIIFBBU1MKIEJVR0FCQVJUSCBMSU5VWCA6IHN2Zy90ZXh0L3NjYWxpbmctZm9udC13aXRoLWdl
b21ldHJpYy1wcmVjaXNpb24uaHRtbCA9IElNQUdFIFBBU1MKKworQlVHV0s2MTM4OCBHUFUgOiBj
b21wb3NpdGluZy9jb2xvci1tYXRjaGluZy9pbWFnZS1jb2xvci1tYXRjaGluZy5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5n
Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1pbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvaG9yaXpvbnRhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0g
SU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRv
LWxheWVyLWNoaWxkcmVuLWRlZXAuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2xheWVyLWR1ZS10by1sYXllci1jaGlsZHJlbi5odG1sID0gSU1BR0UK
K0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvcm9vdC1sYXllci11cGRhdGUu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVv
LWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvdmVydGljYWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdX
SzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLW9wYWNpdHktb3ZlcmxheS5o
dG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3Np
dGVkLWlmcmFtZS1zY3JvbGwuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0
aW5nL2lmcmFtZXMvaWZyYW1lLWluLWNvbXBvc2l0ZWQtbGF5ZXIuaHRtbCA9IElNQUdFCitCVUdX
SzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2lmcmFtZXMvbmVzdGVkLWlmcmFtZS1zY3JvbGxpbmcu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3Qt
c3ZnLWltYWdlLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9tYXNr
cy9kaXJlY3QtaW1hZ2UtbWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9z
aXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEz
ODggR1BVIDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvZml4ZWQtcG9zaXRpb24tYW5jZXN0b3ItY2xp
cC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMv
Y29tcG9zaXRpbmctY2hhbmdlLWluc2lkZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2
MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9kZWVwbHktbmVzdGVkLXJlZmxlY3Rp
b25zLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9u
cy9uZXN0ZWQtcmVmbGVjdGlvbi1tYXNrLWNoYW5nZS5odG1sID0gSU1BR0UKK0JVR1dLNjEzODgg
R1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tb24tb3ZlcmZs
b3cuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25z
L25lc3RlZC1yZWZsZWN0aW9uLW9wYWNpdHkuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6
IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXNpemUtY2hhbmdlLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0
ZWQtcmVmbGVjdGlvbi10cmFuc2Zvcm1lZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNmb3JtZWQyLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0
ZWQtcmVmbGVjdGlvbi10cmFuc2l0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBj
b21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UKK0JV
R1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vbi1jb21w
b3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0
aW9ucy9yZWZsZWN0aW9uLW9yZGVyaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBj
b21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLXBvc2l0aW9uaW5nLmh0bWwgPSBJTUFH
RQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLXBv
c2l0aW9uaW5nMi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvc2ltcGxlLWNvbXBvc2l0ZWQtcmVmbGVjdGlvbnMuaHRtbCA9IElNQUdFCitCVUdX
SzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3RyYW5zZm9ybS1pbnNpZGUtcmVm
bGVjdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVwYWlu
dC9jb250ZW50LWludG8tb3ZlcmZsb3cuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNv
bXBvc2l0aW5nL3JlcGFpbnQvb3ZlcmZsb3ctaW50by1jb250ZW50Lmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy90ZXh0LW9uLWxhcmdlLWxheWVyLmh0bWwgPSBJTUFH
RQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy90cmFuc2l0aW9ucy9zY2FsZS10cmFuc2l0
aW9uLW5vLXN0YXJ0Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy93
ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBwbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9odWdlLWxheWVyLXJvdGF0ZWQuaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2JhY2tmYWNl
LXZpc2liaWxpdHktdHJhbnNmb3JtZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1l
ZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVv
LXpvb20tY29udHJvbHMuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVv
LXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby1s
YXllci1jcmFzaC5odG1sID0gSU1BR0UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96883</attachid>
            <date>2011-06-12 11:29:46 -0700</date>
            <delta_ts>2011-06-12 12:22:11 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-gpu-anti-aliasing-v7.diff</filename>
            <type>text/plain</type>
            <size>52821</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQJKHJldmlzaW9uIDg4NjE2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMDI2LDggKzMw
MjYsOSBAQAogLy9CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IHBsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL2xheW91dC13aWR0aC1jaGFuZ2UuaHRtbCA9IElNQUdFCiAKIC8vIENocm9t
aXVtIEdQVSBkcmF3cyBzY3JvbGxiYXJzIHNsaWdodGx5IGRpZmZlcmVudGx5IGluIGRlYnVnIHZz
LiByZWxlYXNlLgotQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9kaXJl
Y3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzU4NTg3IERFQlVHIEdQVSBM
SU5VWCA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCisvLyBDb21tZW50ZWQgYmVjYXVz
ZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRp
bmcvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwgPSBJTUFHRQorLy9CVUdXSzU4NTg3IERF
QlVHIEdQVSBMSU5VWCA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCiAKIC8vIFdlYktp
dCByb2xsIDgwNTY0OjgwNjMxOiByZW5kZXJpbmcgb24gTGVvcGFyZCBpcyBzaGlmdGVkIHRvIHRo
ZSB0b3AgcmlnaHQKIC8vIHN0YXJ0ZWQgYXQgc29tZSBwb2ludCBhdCBvciBhZnRlciBXSyByODA1
ODIgKERhdmUgSHlhdHQncyB2ZXJ0aWNhbCB0ZXh0IGNoYW5nZSAtIGEgdmVyeSBsaWtlbHkgY2Fu
ZGlkYXRlKQpAQCAtMzM3Niw3ICszMzc3LDggQEAKIEJVR0NSNzkxMTEgR1BVIDogY29tcG9zaXRp
bmcvZnJhbWVzZXRzL2NvbXBvc2l0ZWQtZnJhbWUtYWxpZ25tZW50Lmh0bWwgPSBJTUFHRQogCiBC
VUdXSzU4MzA4IEdQVSBXSU4gTElOVVggREVCVUcgOiBjb21wb3NpdGluZy96LW9yZGVyL25lZ2F0
aXZlLXotaW5kZXguaHRtbCA9IFBBU1MgQ1JBU0gKLUJVR1dLNTgzMjggR1BVIFdJTiBNQUMgTElO
VVggREVCVUcgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJTUFH
RSBQQVNTIENSQVNICisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dL
NTgzMjggR1BVIFdJTiBNQUMgTElOVVggREVCVUcgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1y
ZWZsZWN0aW9uLmh0bWwgPSBJTUFHRSBQQVNTIENSQVNICiAKIEJVR0NSNzkxNzMgR1BVIExJTlVY
IERFQlVHIDogZmFzdC9jYW52YXMvYWNjZXNzLXplcm8tc2l6ZWQtY2FudmFzLmh0bWwgPSBQQVNT
IENSQVNICiAKQEAgLTM1NDAsMTIgKzM1NDIsMTUgQEAKIAogLy8gTmVlZHMgcmViYXNlbGluZQog
Ci1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LWluLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9
IElNQUdFCi1CVUdXSzYwMTAyIE1BQyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1m
aXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UK
Ky8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s2MDEwMiBMSU5VWCBE
RUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVkLmh0bWwg
PSBJTUFHRQorLy9CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0aW5nL2dlb21l
dHJ5L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCisvLyBDb21tZW50
ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNjAxMDIgTUFDIEdQVSA6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKKy8vQlVHV0s2
MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1maXhlZC1z
Y3JvbGxpbmcuaHRtbCA9IElNQUdFCiBCVUdXSzYwMTAyIExJTlVYIEdQVSA6IGNvbXBvc2l0aW5n
L21hc2tzL21hc2tlZC1hbmNlc3Rvci5odG1sID0gSU1BR0UKLUJVR1dLNjAxMDIgTElOVVggREVC
VUcgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0g
SU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s2MDEwMiBM
SU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNr
Lmh0bWwgPSBJTUFHRQogLy8gQ29tbWVudGVkIGJlY2F1c2Ugb2YgQlVHQ1I4MTYwNQogLy9CVUdX
SzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGZhc3QvY2FudmFzL2NhbnZhcy10ZXh0LWFsaWdubWVu
dC5odG1sID0gSU1BR0UKIEJVR1dLNjAxMDIgTElOVVggR1BVIDogcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvbGF5b3V0LXdpZHRoLWNoYW5nZS5odG1sID0gSU1BR0UKQEAgLTM5OTQsMyAr
Mzk5OSw1MyBAQAogQlVHQ1I4NTM5NCA6IGZhc3QvanMvZXZhbC12YXItZGVjbC5odG1sID0gRkFJ
TCBQQVNTCiBCVUdDUjg1NzU1IDogZmFzdC9qcy9leGNlcHRpb24tcHJvcGVydGllcy5odG1sID0g
VEVYVAogCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNoaW5nL2ltYWdl
LWNvbG9yLW1hdGNoaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLmh0bWwg
PSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9ob3Jpem9udGFs
LXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3Np
dGluZy9nZW9tZXRyeS9sYXllci1kdWUtdG8tbGF5ZXItY2hpbGRyZW4tZGVlcC5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxh
eWVyLWNoaWxkcmVuLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9yb290LWxheWVyLXVwZGF0ZS5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvdGFsbC1wYWdlLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGlu
Zy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdmVy
dGljYWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNv
bXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLW9wYWNpdHktb3ZlcmxheS5odG1sID0gSU1BR0UKK0JV
R1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3Jv
bGwuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZy
YW1lLWluLWNvbXBvc2l0ZWQtbGF5ZXIuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNv
bXBvc2l0aW5nL2lmcmFtZXMvbmVzdGVkLWlmcmFtZS1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3Qtc3ZnLWltYWdlLmh0bWwg
PSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9kaXJlY3QtaW1hZ2Ut
bWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2lt
cGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvZml4ZWQtcG9zaXRpb24tYW5jZXN0b3ItY2xpcC5odG1sID0gSU1BR0UK
K0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvY29tcG9zaXRpbmctY2hh
bmdlLWluc2lkZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21w
b3NpdGluZy9yZWZsZWN0aW9ucy9kZWVwbHktbmVzdGVkLXJlZmxlY3Rpb25zLmh0bWwgPSBJTUFH
RQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVj
dGlvbi1tYXNrLWNoYW5nZS5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRp
bmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tb24tb3ZlcmZsb3cuaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0
aW9uLW9wYWNpdHkuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXNpemUtY2hhbmdlLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10
cmFuc2Zvcm1lZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNmb3JtZWQyLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10
cmFuc2l0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZs
ZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1pbi1jb21wb3NpdGVkLmh0bWwgPSBJ
TUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9u
LW9uLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5n
L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3JkZXJpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4
IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRpb25pbmcuaHRt
bCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxl
Y3Rpb24tcG9zaXRpb25pbmcyLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3Np
dGluZy9yZWZsZWN0aW9ucy9zaW1wbGUtY29tcG9zaXRlZC1yZWZsZWN0aW9ucy5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvdHJhbnNmb3JtLWlu
c2lkZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9yZXBhaW50L2NvbnRlbnQtaW50by1vdmVyZmxvdy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODgg
R1BVIDogY29tcG9zaXRpbmcvcmVwYWludC9vdmVyZmxvdy1pbnRvLWNvbnRlbnQuaHRtbCA9IElN
QUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3NoYWRvd3Mvc2hhZG93LWRyYXdpbmcu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3NpYmxpbmctcG9zaXRp
b25pbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3RleHQtb24t
bGFyZ2UtbGF5ZXIuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3Ry
YW5zaXRpb25zL3NjYWxlLXRyYW5zaXRpb24tbm8tc3RhcnQuaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSA6IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLXJlZmxlY3Rpb24uaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2h1Z2UtbGF5
ZXItcm90YXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4
OCBHUFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9iYWNrZmFjZS12aXNpYmlsaXR5
LXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby16
b29tLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby16b29tLWNvbnRy
b2xzLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby10cmFuc2Zvcm1l
ZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogbWVkaWEvdmlkZW8tbGF5ZXItY3Jhc2gu
aHRtbCA9IElNQUdFCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4ODYxNikKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTA2LTEyICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcg
Zm9yIGNvbXBvc2l0ZWQgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjEzODgKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMS0wNi0xMiAgTWFoZXNoIEt1bGthcm5pICA8bWFoZXNo
Lmt1bGthcm5pQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVz
LgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVz
dC5jcHAJKHJldmlzaW9uIDg4NjE2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9U
aWxpbmdEYXRhVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEwICs0MSwxMCBAQAogVEVT
VChUaWxpbmdEYXRhVGVzdCwgbnVtVGlsZXNfTm9UaWxpbmcpCiB7CiAgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMTYsIDE2LCAxNiwgZmFsc2UpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgxLCBUaWxpbmdEYXRhKDE2LCAxNSwgMTUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNiwgMTYsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE3LCAxNSwgMTUsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE4LCAxNiwgMTYsIHRydWUpLm51bVRpbGVzKCkpOwog
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAgMSwgMTYsIGZhbHNlKS5udW1UaWxlcygp
KTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNSwgMTUsIDE1LCB0cnVlKS5udW1UaWxl
cygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNywgMTUsIDE1LCB0cnVlKS5udW1U
aWxlcygpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgbnVtVGlsZXNfVGlsaW5nTm9Cb3Jk
ZXJzKQpAQCAtMTA5LDQ1ICsxMDksNDUgQEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgt
MSwgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRh
KDAsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgxLCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDEsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMSwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgxLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDIsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMiwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgyLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDIsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsICAyLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDIsICAyLCB0cnVlKS5udW1UaWxlcygpKTsK
IAotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDIsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgMywgIDMsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICA0LCAgMywgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgIDUsICAzLCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAgNiwgIDMsIHRydWUp
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsICA3LCAgMywgdHJ1
ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDEsICAxLCB0
cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMSwgIDIs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAyLCAg
MSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgIDIs
ICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAg
MiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMs
ICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDksIFRpbGluZ0RhdGEo
MywgIDMsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKIAotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDQsICAxLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoNCwgIDIsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSg0LCAgMywgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDQsICA0LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNCwgIDUsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSg0LCAgNiwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDQsICA3LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNCwgIDgsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgOSwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDQsIDEwLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAg
RVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTEsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDMsICAyLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg0LCAgNCwgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQsICA1LCAgMiwgdHJ1ZSkubnVtVGls
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNCwgIDYsICAyLCB0cnVlKS5udW1U
aWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgNywgIDIsIHRydWUpLm51
bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDQsICA4LCAgMiwgdHJ1ZSku
bnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgIDksICAyLCB0cnVl
KS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg0LCAxMCwgIDIsIHRy
dWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDQsIDExLCAgMiwg
dHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMSwg
IDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAy
LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwg
IDMsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1
LCAgNCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDUsICA1LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoNSwgIDYsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5n
RGF0YSg1LCAgNywgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxp
bmdEYXRhKDUsICA4LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoNSwgIDksICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAxMCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsIDExLCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoNSwgIDEsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSg1LCAgMiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDUsICAzLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDQsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA2LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDcsICAzLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDMsIHRydWUpLm51bVRpbGVzKCkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA5LCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTAsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAxMSwgIDMsIHRydWUpLm51bVRp
bGVzKCkpOwogfQogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KQpAQCAtMTY2LDE3ICsxNjYsMTcgQEAKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDExKSk7CiAKICAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
MCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMiwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMykpOwot
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0
cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNikpOwotICAgIEVY
UEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmND
b29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50
aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgz
LCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoOSkpOwotICAgIEVYUEVDVF9F
USg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgx
MCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgxMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg0KSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGlu
Z0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKKyAgICBF
WFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCg3KSk7CisgICAgRVhQRUNUX0VRKDgsIFRpbGluZ0RhdGEo
MywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKKyAgICBFWFBFQ1Rf
RVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
OSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgxMCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFsc2UpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkp
OwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIGZhbHNlKS50aWxlWEluZGV4
RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTE5NCwxMyArMTk0LDEzIEBACiAgICAgRVhQRUNUX0VRKDAs
IFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CiAg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVhJbmRleEZyb21T
cmNDb29yZCgxKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1
ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWElu
ZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAz
LCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nv
b3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxl
WEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCA0
LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKIH0KIFRFU1QoVGlsaW5nRGF0
YVRlc3QsIHRpbGVZSW5kZXhGcm9tU3JjQ29vcmQpCiB7CkBAIC0yMTgsMTcgKzIxOCwxNyBAQAog
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgZmFsc2UpLnRpbGVZSW5kZXhG
cm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgzKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDQpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoNSkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCg2KSk7Ci0gICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDcpKTsKLSAgICBFWFBFQ1RfRVEo
NywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOCkp
OwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCg5KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEw
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEwKSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDExKSk7Cisg
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgzKSk7CisgICAgRVhQ
RUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDQpKTsKKyAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoNSkpOworICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg2KSk7CisgICAgRVhQRUNUX0VR
KDcsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDcp
KTsKKyAgICBFWFBFQ1RfRVEoOCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoOCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg5KSk7CisgICAgRVhQRUNUX0VRKDksIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEwKSk7Cisg
ICAgRVhQRUNUX0VRKDksIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDExKSk7CiAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgxLCAxLCAxLCBm
YWxzZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGlu
Z0RhdGEoMiwgMiwgMiwgZmFsc2UpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwpAQCAtMjQ2
LDYxICsyNDYsNjEgQEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgyLCAyLCAyLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKICAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0
cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3Jk
KDIpKTsKIAotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMs
IDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMikpOwotICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3Jj
Q29vcmQoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDQs
IDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMikpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMykpOwogfQogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVgpCiB7CiAg
ICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCBmYWxzZSkudGlsZVNpemVYKDAp
KTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLnRpbGVTaXpl
WCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxl
U2l6ZVgoMCkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxz
ZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNiwgIDYs
IGZhbHNlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA2
LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDApKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1
LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgxKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKIAogICAgIEVYUEVDVF9FUSg1
LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCBmYWxzZSkudGlsZVNpemVYKDEpKTsKLSAgICBF
WFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0g
ICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMSkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVY
KDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVT
aXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNl
KS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwg
ZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTAs
IDEwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUs
IDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWCgxKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogCi0gICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoNSwgMTEsIDExLCB0cnVlKS50aWxlU2l6ZVgoMikpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKICAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMiwgMTIsIHRydWUpLnRpbGVTaXplWCgyKSk7CiB9CiBU
RVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVkpCiB7CiAgICAgRVhQRUNUX0VRKDUsIFRpbGlu
Z0RhdGEoNSwgIDUsICA1LCBmYWxzZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoNSwg
VGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVkoMCkpOwogCiAgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIGZhbHNlKS50aWxlU2l6ZVkoMSkp
OwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVZ
KDApKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVT
aXplWSgxKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50
aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1
ZSkudGlsZVNpemVZKDEpKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA4LCAg
OCwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
IDgsICA4LCBmYWxzZSkudGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0
YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGlu
Z0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVDVF9FUSgzLCBU
aWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgxKSk7CiAKICAgICBFWFBF
Q1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMCkpOwogICAg
IEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgZmFsc2UpLnRpbGVTaXplWSgxKSk7
Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVko
MCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNp
emVZKDApKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRp
bGVTaXplWSgxKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVl
KS50aWxlU2l6ZVkoMikpOwogCi0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTEsIDEx
LCB0cnVlKS50aWxlU2l6ZVkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEx
LCAxMSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1
LCAxMiwgMTIsIHRydWUpLnRpbGVTaXplWSgyKSk7CiB9CiAKQEAgLTMxOSwxMCArMzE5LDEwIEBA
CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMSwgICAxLCB0cnVlKS50aWxlUG9zaXRp
b25YKDApKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxLCAxMDAsIHRydWUpLnRp
bGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVl
KS50aWxlUG9zaXRpb25YKDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAzLCAg
IDEsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywg
MywgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAzLCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMywgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1Rf
RVEoMywgVGlsaW5nRGF0YSg1LCAzLCAgIDEsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoNSwgMywgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAzLCAxMDAsIHRydWUpLnRpbGVTaXplWCgw
KSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlUG9z
aXRpb25YKDApKTsKIAogICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIG5vIGJvcmRlcgpA
QCAtMzQwLDIzICszNDAsMjMgQEAKICAgICAvLyBNdWx0aXBsZSB0aWxlczoKICAgICAvLyB3aXRo
IGJvcmRlcgogICAgIC8vIHBvc2l0aW9ucyAwLCAyLCAzLCA0Ci0gICAgRVhQRUNUX0VRKDQsIFRp
bGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwg
VGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKLSAgICBF
WFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVTaXplWCgzKSk7Ci0g
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDApKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQ
b3NpdGlvblgoMSkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1
ZSkudGlsZVBvc2l0aW9uWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNiwg
ICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0
YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKLSAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXplWCgzKSk7Ci0gICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKLSAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgo
MSkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBv
c2l0aW9uWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVl
KS50aWxlUG9zaXRpb25YKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCA0LCAg
IDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQs
ICAgMSwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgz
LCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOworICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7Cisg
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQ
b3NpdGlvblgoMykpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1
ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAs
IHRydWUpLnRpbGVTaXplWCgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwg
MTAwLCB0cnVlKS50aWxlU2l6ZVgoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMs
IDQsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOworICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7CisgICAgRVhQRUNU
X0VRKDIsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDIpKTsKKyAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgo
MykpOwogfQogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVlfYW5kX3RpbGVQb3NpdGlv
blkpCkBAIC0zNzQsMTAgKzM3NCwxMCBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMs
ICAgMSwgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMywgMTAwLCAxLCB0cnVlKS50aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoMywgICAxLCAzLCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVY
UEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAgMSwgMywgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7
Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAwLCAzLCB0cnVlKS50aWxlU2l6ZVko
MCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVBv
c2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgICAxLCAzLCB0cnVl
KS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUsICAgMSwgMywg
dHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
MTAwLCAzLCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRh
KDUsIDEwMCwgMywgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CiAKICAgICAvLyBNdWx0aXBsZSB0
aWxlczoKICAgICAvLyBubyBib3JkZXIKQEAgLTM5NSwyMyArMzk1LDIzIEBACiAgICAgLy8gTXVs
dGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIKICAgICAvLyBwb3NpdGlvbnMgMCwgMiwg
MywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkubnVtVGls
ZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxl
U2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSku
dGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRy
dWUpLnRpbGVTaXplWSgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAxLCA2
LCB0cnVlKS50aWxlU2l6ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAg
MSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgICAxLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7Ci0g
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6ZVkoMCkp
OwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZ
KDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVT
aXplWSgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50
aWxlU2l6ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1
ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAw
LCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVYUEVDVF9FUSg0LCBU
aWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDIp
KTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXpl
WSgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxl
UG9zaXRpb25ZKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAg
MSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKKyAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgzKSk7Cisg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25Z
KDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVQ
b3NpdGlvblkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1
ZSkudGlsZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAw
LCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwg
c2V0VG90YWxTaXplKQpAQCAtNDY4LDcgKzQ2OCw3IEBACiAKIFRFU1QoVGlsaW5nRGF0YVRlc3Qs
IHNldE1heFRleHR1cmVTaXplQm9yZGVycykKIHsKLSAgICBUaWxpbmdEYXRhIGRhdGEoOCwgMTYs
IDMyLCB0cnVlKTsKKyAgICBUaWxpbmdEYXRhIGRhdGEoOCwgMTYsIDMwLCB0cnVlKTsKICAgICBF
WFBFQ1RfRVEoMywgZGF0YS5udW1UaWxlc1goKSk7CiAgICAgRVhQRUNUX0VRKDUsIGRhdGEubnVt
VGlsZXNZKCkpOwogCkBAIC00ODQsNyArNDg0LDcgQEAKIAogICAgIGRhdGEuc2V0TWF4VGV4dHVy
ZVNpemUoNSk7CiAgICAgRVhQRUNUX0VRKDUsIGRhdGEubWF4VGV4dHVyZVNpemUoKSk7Ci0gICAg
RVhQRUNUX0VRKDUsIGRhdGEubnVtVGlsZXNYKCkpOworICAgIEVYUEVDVF9FUSg2LCBkYXRhLm51
bVRpbGVzWCgpKTsKICAgICBFWFBFQ1RfRVEoMTAsIGRhdGEubnVtVGlsZXNZKCkpOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTAzICBEYXZpZCBSZXZlbWFu
ICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcgZm9yIGNvbXBv
c2l0ZWQgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjEzODgKKworICAgICAgICBUcmFjayBjaGFuZ2VzIHRvIFRpbGluZ0RhdGEgY2xhc3Mg
d2hpY2ggbm93IHVzZXMgYW4gb3V0ZXIgYm9yZGVyLgorCisgICAgICAgICogY2hyb21pdW0vdGVz
dHMvVGlsaW5nRGF0YVRlc3QuY3BwOgorCiAyMDExLTA2LTAyICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw2NiBAQAorMjAxMS0wNi0xMiAgRGF2aWQgUmV2ZW1hbiAg
PHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gRWRnZSBhbnRpLWFsaWFzaW5nIGZvciBjb21wb3Np
dGVkIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxMzg4CisKKyAgICAgICAgQWRkIHRyYW5zcGFyZW50IG91dGVyIGJvcmRlciB0byB0aWxl
ZCBsYXllcnMgYW5kIGFkanVzdCB2ZXJ0ZXgKKyAgICAgICAgY29vcmRpbmF0ZXMgc28gdGhhdCB1
c2Ugb2YgYSBiaWxpbmVhciBmaWx0ZXIgY3JlYXRlcyBhIHNtb290aAorICAgICAgICBsYXllciBl
ZGdlLgorCisgICAgICAgIFRlc3RzOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55
LWxheWVyLXJvdGF0ZWQuaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvaHVnZS1sYXllci1yb3RhdGVkLmh0bWwgKGV4aXN0aW5nKQorICAgICAgICAgICAg
ICAgVGlsaW5nRGF0YVRlc3QgaW4gd2Via2l0X3VuaXRfdGVzdHMKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
Q2hhbmdlIG1heFVudGlsZWRTaXplIHRvIDUxMCB0byBlbnN1cmUgdGhhdCB0aWxlcyBhcmUgbm90
IGdyZWF0ZXIKKyAgICAgICAgdGhhbiA1MTIgd2l0aCBvdXRlciBib3JkZXJzLgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyU2l6ZSk6IFdlIGNhbid0
IHVzZSB0aGUKKyAgICAgICAgbGF5ZXIgc2l6ZSBhcyB0aWxlIHNpemUgd2hlbiB3ZSB3YW50IHRv
IGF2b2lkIHRpbGluZyBhcyB0aGlzIHdpbGwKKyAgICAgICAgbm90IGJlIGVub3VnaCBzcGFjZSB0
byBpbmNsdWRlIHBvc3NpYmxlIG91dGVyIGJvcmRlcnMuIFdlIGluc3RlYWQgdXNlCisgICAgICAg
IGFuIGVtcHR5IHNpemUsIHdoaWNoIGFsbG93cyB0aGUgdGlsZXIgdG8gYXV0b21hdGljYWxseSBh
ZGp1c3QgdGhlCisgICAgICAgIHRpbGUgc2l6ZSB0byBiZSBsYXJnZSBlbm91Z2ggZm9yIHRoZSBs
YXllciB0byBmaXQgaW4gb25lIHRpbGUuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlVGlsZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
TGF5ZXJDaHJvbWl1bTo6c2V0SXNNYXNrKTogRG9uJ3QgdXNlIGJvcmRlciB0ZXhlbHMKKyAgICAg
ICAgZm9yIGxheWVyIHNldCBhcyBtYXNrLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
TGF5ZXJDaHJvbWl1bTo6bV9ib3JkZXJUZXhlbHMpIEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9tZXRyeUJpbmRpbmc6Okdlb21ldHJ5QmluZGluZyk6IE5ldyBjb25zdHJ1Y3RvciB0aGF0
CisgICAgICAgIGNyZWF0ZXMgZ2VvbWV0cnkgYWRqdXN0ZWQgZm9yIG91dGVyIGJvcmRlciBmaWx0
ZXJpbmcuIFRoaXMgaXMgZG9uZQorICAgICAgICBieSBpbmNsdWRpbmcgYm9yZGVyIHRleGVscyBp
biB0aGUgZ2VvbWV0cnkgYW5kIG9mZnNldHRpbmcgdmVydGljZXMgdG8KKyAgICAgICAgbWFrZSBz
dXJlIGFsbCBmcmFnbWVudHMgdGhhdCBhcmUgYWZmZWN0ZWQgYnkgdGhlIGJvcmRlciB3aWxsIGJl
CisgICAgICAgIHByb2Nlc3NlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb21ldHJ5QmluZGluZzo6
cHJlcGFyZUZvckRyYXcpOiBBZGQgY29uc3QgbW9kaWZpZXIuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9tZXRyeUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3KTogQWRkIGNvbnN0IG1vZGlmaWVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVUZXhSZWN0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVMYXllclJlY3Qp
OiBtX3RpbGVTaXplIGlzIG5vCisgICAgICAgIGxvbmdlciB0aGUgY29ycmVjdCBsYXllciBzaXpl
LiBTaXplIG9mIGJvdW5kcyB3aXRoIGJvcmRlciBzaG91bGQKKyAgICAgICAgYmUgdGhlIGNvcnJl
Y3QgbGF5ZXIgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1bTo6Z3Jv
d0xheWVyVG9Db250YWluKTogQWRqdXN0IHRleHR1cmUKKyAgICAgICAgc2l6ZSB0byBpbmNsdWRl
IG91dGVyIGJvcmRlcnMgYW5kIGhhbmRsZSBlbXB0eSBtX3RpbGVTaXplLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdCk6IFVzZSBzaXplIG9mIHJl
Y3RhbmdsZQorICAgICAgICByZXR1cm5lZCBieSB0aWxlVGV4UmVjdCBpbnN0ZWFkIG9mIG1fdGls
ZVNpemUgZm9yIHRleHR1cmUgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJv
bWl1bTo6cHJlcGFyZVRvVXBkYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpMYXllclRp
bGVyQ2hyb21pdW06OmRyYXcpOiBEaXR0byBhbmQgY3JlYXRlIGdlb21ldHJ5IGJpbmRpbmcKKyAg
ICAgICAgYWRqdXN0ZWQgZm9yIG91dGVyIGJvcmRlciBmaWx0ZXJpbmcgd2hlbiBib3JkZXIgdGV4
ZWxzIGFyZSBwcmVzZW50LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyVGlsZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVt
Ojp0aWxlVGV4UmVjdCkgQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1Rp
bGluZ0RhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZUJvdW5kc1dp
dGhPdXRlckJvcmRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6Y29t
cHV0ZU51bVRpbGVzKTogQWRqdXN0IGZvciBvdXRlciBib3JkZXIuCisgICAgICAgIChXZWJDb3Jl
OjpUaWxpbmdEYXRhOjp0aWxlWEluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlWUluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlU2l6ZVgpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlRpbGluZ0RhdGE6OnRpbGVTaXplWSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
VGlsaW5nRGF0YTo6aW50ZXJzZWN0RHJhd1F1YWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlRpbGluZ0RhdGE6OnRleHR1cmVPZmZzZXQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6
dGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcik6IEFkZGVkLgorCiAyMDExLTA2LTEyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBL
bGluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdE
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvVGlsaW5nRGF0YS5jcHAJKHJldmlzaW9uIDg4NjE2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwx
MCArNDQsMTIgQEAKIAogc3RhdGljIGludCBjb21wdXRlTnVtVGlsZXMoaW50IG1heFRleHR1cmVT
aXplLCBpbnQgdG90YWxTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKQogeworICAgIGludCB0b3RhbFNp
emVXaXRoQm9yZGVyID0gdG90YWxTaXplICsgMiAqIGJvcmRlclRleGVsczsKKwogICAgIGlmICht
YXhUZXh0dXJlU2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMgPD0gMCkKLSAgICAgICAgcmV0dXJuIHRv
dGFsU2l6ZSA+IDAgJiYgbWF4VGV4dHVyZVNpemUgPj0gdG90YWxTaXplID8gMSA6IDA7CisgICAg
ICAgIHJldHVybiAwOwogCi0gICAgaW50IG51bVRpbGVzID0gbWF4KDEsIDEgKyAodG90YWxTaXpl
IC0gMSAtIDIgKiBib3JkZXJUZXhlbHMpIC8gKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRl
eGVscykpOworICAgIGludCBudW1UaWxlcyA9IG1heCgxLCAxICsgKHRvdGFsU2l6ZVdpdGhCb3Jk
ZXIgLSAxIC0gMiAqIGJvcmRlclRleGVscykgLyAobWF4VGV4dHVyZVNpemUgLSAyICogYm9yZGVy
VGV4ZWxzKSk7CiAgICAgcmV0dXJuIHRvdGFsU2l6ZSA+IDAgPyBudW1UaWxlcyA6IDA7CiB9CiAK
QEAgLTc5LDcgKzgxLDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBBU1NFUlQobV9tYXhU
ZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgaW50IHggPSAoc3JjUG9zIC0g
bV9ib3JkZXJUZXhlbHMpIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMp
OworICAgIGludCB4ID0gc3JjUG9zIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJU
ZXhlbHMpOwogICAgIHJldHVybiBtaW4obWF4KHgsIDApLCBudW1UaWxlc1goKSAtIDEpOwogfQog
CkBAIC04OSw3ICs5MSw3IEBACiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQVNTRVJUKG1fbWF4
VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOwotICAgIGludCB5ID0gKHNyY1BvcyAt
IG1fYm9yZGVyVGV4ZWxzKSAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxz
KTsKKyAgICBpbnQgeSA9IHNyY1BvcyAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVy
VGV4ZWxzKTsKICAgICByZXR1cm4gbWluKG1heCh5LCAwKSwgbnVtVGlsZXNZKCkgLSAxKTsKIH0K
IApAQCAtMTMyLDYgKzEzNCwxNiBAQAogICAgIHJldHVybiBib3VuZHM7CiB9CiAKK0ludFJlY3Qg
VGlsaW5nRGF0YTo6dGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcihpbnQgdGlsZSkgY29uc3QKK3sK
KyAgICBJbnRSZWN0IGJvdW5kcyA9IHRpbGVCb3VuZHModGlsZSk7CisKKyAgICBpZiAobV9ib3Jk
ZXJUZXhlbHMpCisgICAgICAgIGJvdW5kcy5pbmZsYXRlKDEpOworCisgICAgcmV0dXJuIGJvdW5k
czsKK30KKwogRmxvYXRSZWN0IFRpbGluZ0RhdGE6OnRpbGVCb3VuZHNOb3JtYWxpemVkKGludCB0
aWxlKSBjb25zdAogewogICAgIGFzc2VydFRpbGUodGlsZSk7CkBAIC0xNjgsOCArMTgwLDYgQEAK
IAogICAgIGlmICgheEluZGV4ICYmIG1fbnVtVGlsZXNYID09IDEpCiAgICAgICAgIHJldHVybiBt
X3RvdGFsU2l6ZVg7Ci0gICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxlc1ggPiAxKQotICAgICAg
ICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZSAtIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh4SW5k
ZXggPCBudW1UaWxlc1goKSAtIDEpCiAgICAgICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0g
MiAqIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh4SW5kZXggPT0gbnVtVGlsZXNYKCkgLSAxKQpA
QCAtMTg1LDggKzE5NSw2IEBACiAKICAgICBpZiAoIXlJbmRleCAmJiBtX251bVRpbGVzWSA9PSAx
KQogICAgICAgICByZXR1cm4gbV90b3RhbFNpemVZOwotICAgIGlmICgheUluZGV4ICYmIG1fbnVt
VGlsZXNZID4gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSBtX2JvcmRlclRl
eGVsczsKICAgICBpZiAoeUluZGV4IDwgbnVtVGlsZXNZKCkgLSAxKQogICAgICAgICByZXR1cm4g
bV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVsczsKICAgICBpZiAoeUluZGV4ID09
IG51bVRpbGVzWSgpIC0gMSkKQEAgLTIzMCw4ICsyMzgsOCBAQAogCiAgICAgKm5ld1NyYyA9IHNy
Y1JlY3RJbnRlcnNlY3RlZDsKICAgICBuZXdTcmMtPm1vdmUoCi0gICAgICAgIC10aWxlQm91bmRz
LngoKSArICgodGlsZVhJbmRleCh0aWxlKSA+IDApID8gbV9ib3JkZXJUZXhlbHMgOiAwKSwKLSAg
ICAgICAgLXRpbGVCb3VuZHMueSgpICsgKCh0aWxlWUluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRl
clRleGVscyA6IDApKTsKKyAgICAgICAgLXRpbGVCb3VuZHMueCgpICsgbV9ib3JkZXJUZXhlbHMs
CisgICAgICAgIC10aWxlQm91bmRzLnkoKSArIG1fYm9yZGVyVGV4ZWxzKTsKIAogICAgICpuZXdE
c3QgPSBGbG9hdFJlY3QoCiAgICAgICAgIHNyY1JlY3RJbnRlcnNlY3RlZE5vcm1YICogZHN0UmVj
dC53aWR0aCgpICsgZHN0UmVjdC54KCksCkBAIC0yNDIsMTAgKzI1MCw3IEBACiAKIEludFBvaW50
IFRpbGluZ0RhdGE6OnRleHR1cmVPZmZzZXQoaW50IHhJbmRleCwgaW50IHlJbmRleCkgY29uc3QK
IHsKLSAgICBpbnQgbGVmdCA9ICgheEluZGV4IHx8IG1fbnVtVGlsZXNYID09IDEpID8gMCA6IG1f
Ym9yZGVyVGV4ZWxzOwotICAgIGludCB0b3AgPSAoIXlJbmRleCB8fCBtX251bVRpbGVzWSA9PSAx
KSA/IDAgOiBtX2JvcmRlclRleGVsczsKLQotICAgIHJldHVybiBJbnRQb2ludChsZWZ0LCB0b3Ap
OworICAgIHJldHVybiBJbnRQb2ludChtX2JvcmRlclRleGVscywgbV9ib3JkZXJUZXhlbHMpOwog
fQogCiB2b2lkIFRpbGluZ0RhdGE6OnJlY29tcHV0ZU51bVRpbGVzKCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaAkocmV2aXNp
b24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5n
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBACiAKICAgICBJbnRSZWN0IHRp
bGVCb3VuZHMoaW50IHRpbGUpIGNvbnN0OwogICAgIEludFJlY3QgdGlsZUJvdW5kc1dpdGhCb3Jk
ZXIoaW50IHRpbGUpIGNvbnN0OworICAgIEludFJlY3QgdGlsZUJvdW5kc1dpdGhPdXRlckJvcmRl
cihpbnQgdGlsZSkgY29uc3Q7CiAgICAgRmxvYXRSZWN0IHRpbGVCb3VuZHNOb3JtYWxpemVkKGlu
dCB0aWxlKSBjb25zdDsKICAgICBpbnQgdGlsZVBvc2l0aW9uWChpbnQgeEluZGV4KSBjb25zdDsK
ICAgICBpbnQgdGlsZVBvc2l0aW9uWShpbnQgeUluZGV4KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21l
dHJ5QmluZGluZy5oCShyZXZpc2lvbiA4ODYxNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCwxNSArMjgsMzAgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAorI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCitlbnVtIEVkZ2VGaWx0
ZXIgeworICAgIEZpbHRlckxlZnRFZGdlICAgPSAxIDw8IDAsCisgICAgRmlsdGVyVG9wRWRnZSAg
ICA9IDEgPDwgMSwKKyAgICBGaWx0ZXJSaWdodEVkZ2UgID0gMSA8PCAyLAorICAgIEZpbHRlckJv
dHRvbUVkZ2UgPSAxIDw8IDMKK307Cit0eXBlZGVmIHVuc2lnbmVkIEVkZ2VGaWx0ZXJGbGFnczsK
KwogY2xhc3MgR2VvbWV0cnlCaW5kaW5nIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBHZW9tZXRy
eUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqKTsKKyAgICBHZW9tZXRyeUJpbmRpbmcoR3JhcGhp
Y3NDb250ZXh0M0QqLAorCQkgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLAorCQkgICAg
Y29uc3QgSW50UmVjdCYsCisJCSAgICBFZGdlRmlsdGVyRmxhZ3MpOwogICAgIH5HZW9tZXRyeUJp
bmRpbmcoKTsKIAogICAgIGJvb2wgaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2luaXRp
YWxpemVkOyB9CkBAIC00NSw3ICs2MCw3IEBACiAgICAgdW5zaWduZWQgcXVhZFZlcnRpY2VzVmJv
KCkgY29uc3QgeyByZXR1cm4gbV9xdWFkVmVydGljZXNWYm87IH0KICAgICB1bnNpZ25lZCBxdWFk
RWxlbWVudHNWYm8oKSBjb25zdCB7IHJldHVybiBtX3F1YWRFbGVtZW50c1ZibzsgfQogCi0gICAg
dm9pZCBwcmVwYXJlRm9yRHJhdygpOworICAgIHZvaWQgcHJlcGFyZUZvckRyYXcoKSBjb25zdDsK
IAogICAgIC8vIEFsbCBsYXllciBzaGFkZXJzIHNoYXJlIHRoZSBzYW1lIGF0dHJpYnV0ZSBsb2Nh
dGlvbnMgZm9yIHRoZSB2ZXJ0ZXgKICAgICAvLyBwb3NpdGlvbnMgYW5kIHRleHR1cmUgY29vcmRp
bmF0ZXMuIFRoaXMgYWxsb3dzIHN3aXRjaGluZyBzaGFkZXJzIHdpdGhvdXQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTGF5ZXJUaWxlckNocm9t
aXVtLmgiCiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0RDaHJvbWl1bS5oIgorI2luY2x1ZGUgIkdl
b21ldHJ5QmluZGluZy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgi
CkBAIC03OCw3ICs3OSw2IEBACiAgICAgcmVzZXQoKTsKIAogICAgIG1fdGlsZVNpemUgPSBzaXpl
OwotICAgIG1fdGlsaW5nRGF0YS5zZXRNYXhUZXh0dXJlU2l6ZShtYXgoc2l6ZS53aWR0aCgpLCBz
aXplLmhlaWdodCgpKSk7CiB9CiAKIExheWVyVGV4dHVyZSogTGF5ZXJUaWxlckNocm9taXVtOjpn
ZXRTaW5nbGVUZXh0dXJlKCkKQEAgLTE3OSwxMSArMTc5LDE1IEBACiBJbnRSZWN0IExheWVyVGls
ZXJDaHJvbWl1bTo6dGlsZUxheWVyUmVjdChjb25zdCBUaWxlKiB0aWxlKSBjb25zdAogewogICAg
IGNvbnN0IGludCBpbmRleCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxl
LT5qKCkpOwotICAgIEludFJlY3QgbGF5ZXJSZWN0ID0gbV90aWxpbmdEYXRhLnRpbGVCb3VuZHNX
aXRoQm9yZGVyKGluZGV4KTsKLSAgICBsYXllclJlY3Quc2V0U2l6ZShtX3RpbGVTaXplKTsKLSAg
ICByZXR1cm4gbGF5ZXJSZWN0OworICAgIHJldHVybiBtX3RpbGluZ0RhdGEudGlsZUJvdW5kc1dp
dGhCb3JkZXIoaW5kZXgpOwogfQogCitJbnRSZWN0IExheWVyVGlsZXJDaHJvbWl1bTo6dGlsZVRl
eFJlY3QoY29uc3QgVGlsZSogdGlsZSkgY29uc3QKK3sKKyAgICBjb25zdCBpbnQgaW5kZXggPSBt
X3RpbGluZ0RhdGEudGlsZUluZGV4KHRpbGUtPmkoKSwgdGlsZS0+aigpKTsKKyAgICByZXR1cm4g
bV90aWxpbmdEYXRhLnRpbGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIoaW5kZXgpOworfQorCiB2b2lk
IExheWVyVGlsZXJDaHJvbWl1bTo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgY29udGVu
dFJlY3QpCiB7CiAgICAgaWYgKGNvbnRlbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3NraXBzRHJhdykK
QEAgLTIzNSw2ICsyMzksNyBAQAogICAgIC8vIENyZWF0ZSB0aWxlcyBhcyBuZWVkZWQsIGV4cGFu
ZGluZyBhIGRpcnR5IHJlY3QgdG8gY29udGFpbiBhbGwKICAgICAvLyB0aGUgZGlydHkgcmVnaW9u
cyBjdXJyZW50bHkgYmVpbmcgZHJhd24uCiAgICAgSW50UmVjdCBkaXJ0eUxheWVyUmVjdDsKKyAg
ICBJbnRTaXplIHRpbGVTaXplOwogICAgIGludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207CiAg
ICAgY29udGVudFJlY3RUb1RpbGVJbmRpY2VzKGNvbnRlbnRSZWN0LCBsZWZ0LCB0b3AsIHJpZ2h0
LCBib3R0b20pOwogICAgIGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyArK2opIHsKQEAg
LTI0MiwxMSArMjQ3LDE1IEBACiAgICAgICAgICAgICBUaWxlKiB0aWxlID0gdGlsZUF0KGksIGop
OwogICAgICAgICAgICAgaWYgKCF0aWxlKQogICAgICAgICAgICAgICAgIHRpbGUgPSBjcmVhdGVU
aWxlKGksIGopOwotICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPmlzVmFsaWQobV90
aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQorCisgICAgICAgICAgICBJbnRTaXpl
IHRleFNpemUgPSB0aWxlVGV4UmVjdCh0aWxlKS5zaXplKCk7CisgICAgICAgICAgICBpZiAoIXRp
bGUtPnRleHR1cmUoKS0+aXNWYWxpZCh0ZXhTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkp
CiAgICAgICAgICAgICAgICAgdGlsZS0+bV9kaXJ0eUxheWVyUmVjdCA9IHRpbGVMYXllclJlY3Qo
dGlsZSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGlsZS0+dGV4dHVyZSgp
LT5yZXNlcnZlKG1fdGlsZVNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKTsKKyAgICAgICAg
ICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUodGV4U2l6ZSwgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQkEpOwogICAgICAgICAgICAgZGlydHlMYXllclJlY3QudW5pdGUodGlsZS0+bV9kaXJ0
eUxheWVyUmVjdCk7CisKKyAgICAgICAgICAgIHRpbGVTaXplID0gdGlsZVNpemUuZXhwYW5kZWRU
byh0ZXhTaXplKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjU5LDcgKzI2OCw3IEBACiAgICAg
aWYgKGRpcnR5TGF5ZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90
ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRSZWN0LCBtX3RpbGVTaXplLCBt
X3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpOworICAgIG1fdGV4dHVyZVVwZGF0ZXItPnByZXBh
cmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgdGlsZVNpemUsIG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhl
bHMoKSk7CiB9CiAKIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjp1cGRhdGVSZWN0KCkKQEAgLTI4
Miw3ICsyOTEsOCBAQAogCiAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgcGFnZS1zcGFjZSByZWN0
YW5nbGUgdG8gY29weSBmcm9tLgogICAgICAgICAgICAgSW50UmVjdCBzb3VyY2VSZWN0ID0gdGls
ZUNvbnRlbnRSZWN0KHRpbGUpOwotICAgICAgICAgICAgY29uc3QgSW50UG9pbnQgYW5jaG9yID0g
c291cmNlUmVjdC5sb2NhdGlvbigpOworICAgICAgICAgICAgSW50UmVjdCB0ZXhSZWN0ID0gdGls
ZVRleFJlY3QodGlsZSk7CisgICAgICAgICAgICBjb25zdCBJbnRQb2ludCBhbmNob3IgPSB0ZXhS
ZWN0LmxvY2F0aW9uKCk7CiAgICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChsYXllclJl
Y3RUb0NvbnRlbnRSZWN0KHRpbGUtPm1fZGlydHlMYXllclJlY3QpKTsKICAgICAgICAgICAgIC8v
IFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBvbiB0aWxlIGJvdW5kYXJpZXMs
IHNvCiAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3QgZXh0
ZW5kIG91dHNpZGUgb2YgaXQuCkBAIC0yOTEsNyArMzAxLDcgQEAKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIAogICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPmlzUmVzZXJ2ZWQo
KSkgewotICAgICAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGls
ZVNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkgeworICAgICAgICAgICAgICAgIGlmICgh
dGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKHRleFJlY3Quc2l6ZSgpLCBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQSkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9za2lwc0RyYXcgPSB0cnVlOwogICAg
ICAgICAgICAgICAgICAgICByZXNldCgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBA
IC0zNjksOCArMzc5LDkgQEAKICAgICAgICAgICAgIHRpbGVNYXRyaXgudHJhbnNsYXRlM2QodGls
ZVJlY3QueCgpICsgdGlsZVJlY3Qud2lkdGgoKSAvIDIuMCwgdGlsZVJlY3QueSgpICsgdGlsZVJl
Y3QuaGVpZ2h0KCkgLyAyLjAsIDApOwogCiAgICAgICAgICAgICBJbnRQb2ludCB0ZXhPZmZzZXQg
PSBtX3RpbGluZ0RhdGEudGV4dHVyZU9mZnNldCh0aWxlLT5pKCksIHRpbGUtPmooKSkgKyBvZmZz
ZXQ7Ci0gICAgICAgICAgICBmbG9hdCB0aWxlV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4obV90
aWxlU2l6ZS53aWR0aCgpKTsKLSAgICAgICAgICAgIGZsb2F0IHRpbGVIZWlnaHQgPSBzdGF0aWNf
Y2FzdDxmbG9hdD4obV90aWxlU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICBJbnRSZWN0IHRl
eFJlY3QgPSB0aWxlVGV4UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGZsb2F0IHRpbGVXaWR0aCA9
IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgZmxvYXQg
dGlsZUhlaWdodCA9IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LmhlaWdodCgpKTsKICAgICAg
ICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVggPSB0ZXhPZmZzZXQueCgpIC8gdGlsZVdpZHRoOwog
ICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWSA9IHRleE9mZnNldC55KCkgLyB0aWxlSGVp
Z2h0OwogICAgICAgICAgICAgZmxvYXQgdGV4U2NhbGVYID0gdGlsZVJlY3Qud2lkdGgoKSAvIHRp
bGVXaWR0aDsKQEAgLTM4MSw3ICszOTIsMzggQEAKICAgICAgICAgICAgICAgICB0ZXhUcmFuc2xh
dGVZID0gMS4wIC0gdGV4VHJhbnNsYXRlWTsKICAgICAgICAgICAgICAgICB0ZXhTY2FsZVkgKj0g
LTEuMDsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgT3duUHRyPEdlb21ldHJ5QmluZGlu
Zz4gZ2VvbWV0cnk7CisKKyAgICAgICAgICAgIC8vIENyZWF0ZSBnZW9tZXRyeSBiaW5kaW5nIGFk
anVzdGVkIGZvciBmaWx0ZXJpbmcgb2YgbGF5ZXIgZWRnZXMuCisgICAgICAgICAgICBpZiAobV90
aWxpbmdEYXRhLmJvcmRlclRleGVscygpKSB7CisgICAgICAgICAgICAgICAgaW50IG51bVRpbGVz
WCA9IG1fdGlsaW5nRGF0YS5udW1UaWxlc1goKTsKKyAgICAgICAgICAgICAgICBpbnQgbnVtVGls
ZXNZID0gbV90aWxpbmdEYXRhLm51bVRpbGVzWSgpOworICAgICAgICAgICAgICAgIGludCBpbmRl
eCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpOworICAgICAg
ICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyBmaWx0ZXIgPSAwOworCisgICAgICAgICAgICAgICAg
aWYgKCFtX3RpbGluZ0RhdGEudGlsZVhJbmRleChpbmRleCkpCisgICAgICAgICAgICAgICAgICAg
IGZpbHRlciB8PSBGaWx0ZXJMZWZ0RWRnZTsKKyAgICAgICAgICAgICAgICBpZiAoIW1fdGlsaW5n
RGF0YS50aWxlWUluZGV4KGluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZp
bHRlclRvcEVkZ2U7CisgICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWEluZGV4
KGluZGV4KSA9PSAobnVtVGlsZXNYIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8
PSBGaWx0ZXJSaWdodEVkZ2U7CisgICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxl
WUluZGV4KGluZGV4KSA9PSAobnVtVGlsZXNZIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZp
bHRlciB8PSBGaWx0ZXJCb3R0b21FZGdlOworCisgICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBh
ZG9wdFB0cihuZXcgR2VvbWV0cnlCaW5kaW5nKGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVNYXRyaXgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVSZWN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaWx0ZXIpKTsKKworICAgICAgICAgICAgICAgIGdlb21ldHJ5LT5wcmVwYXJlRm9yRHJhdygp
OworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBkcmF3VGV4dHVyZWRRdWFkKGNvbnRleHQs
IGxheWVyUmVuZGVyZXIoKS0+cHJvamVjdGlvbk1hdHJpeCgpLCB0aWxlTWF0cml4LCB0aWxlUmVj
dC53aWR0aCgpLCB0aWxlUmVjdC5oZWlnaHQoKSwgb3BhY2l0eSwgdGV4VHJhbnNsYXRlWCwgdGV4
VHJhbnNsYXRlWSwgdGV4U2NhbGVYLCB0ZXhTY2FsZVksIHByb2dyYW0pOworCisgICAgICAgICAg
ICAvLyBSZXN0b3JlIGRlZmF1bHQgZ2VvbWV0cnkgYmluZGluZy4KKyAgICAgICAgICAgIGlmICht
X3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpCisgICAgICAgICAgICAgICAgbGF5ZXJSZW5kZXJl
cigpLT5zaGFyZWRHZW9tZXRyeSgpLT5wcmVwYXJlRm9yRHJhdygpOwogICAgICAgICB9CiAgICAg
fQogfQpAQCAtMzkxLDkgKzQzMywyMSBAQAogICAgIC8vIEdyb3cgdGhlIHRpbGUgYXJyYXkgdG8g
Y29udGFpbiB0aGlzIGNvbnRlbnQgcmVjdC4KICAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGNvbnRl
bnRSZWN0VG9MYXllclJlY3QoY29udGVudFJlY3QpOwogICAgIEludFNpemUgcmVjdFNpemUgPSBJ
bnRTaXplKGxheWVyUmVjdC5tYXhYKCksIGxheWVyUmVjdC5tYXhZKCkpOworICAgIEludFNpemUg
dGV4U2l6ZSA9IG1fdGlsZVNpemU7CiAKKyAgICAvLyBVc2UgcmVjdCB3aXRoIGJvcmRlciB0ZXhl
bHMgYXMgbWF4IHRleHR1cmUgc2l6ZSB3aGVuIHRpbGUgc2l6ZQorICAgIC8vIGhhcyBub3QgYmVl
biBzcGVjaWZpZWQuCisgICAgaWYgKHRleFNpemUuaXNFbXB0eSgpKSB7CisgICAgICAgIHRleFNp
emUgPSByZWN0U2l6ZTsKKyAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkK
KyAgICAgICAgICAgIHRleFNpemUuZXhwYW5kKDIsIDIpOworICAgIH0KKworICAgIG1fdGlsaW5n
RGF0YS5zZXRNYXhUZXh0dXJlU2l6ZShtYXgodGV4U2l6ZS53aWR0aCgpLCB0ZXhTaXplLmhlaWdo
dCgpKSk7CisKICAgICBJbnRTaXplIG9sZExheWVyU2l6ZShtX3RpbGluZ0RhdGEudG90YWxTaXpl
WCgpLCBtX3RpbGluZ0RhdGEudG90YWxTaXplWSgpKTsKICAgICBJbnRTaXplIG5ld1NpemUgPSBy
ZWN0U2l6ZS5leHBhbmRlZFRvKG9sZExheWVyU2l6ZSk7CisKICAgICBtX3RpbGluZ0RhdGEuc2V0
VG90YWxTaXplKG5ld1NpemUud2lkdGgoKSwgbmV3U2l6ZS5oZWlnaHQoKSk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNo
cm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAkocmV2aXNpb24gODg2MTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBACiAKICAgICBPd25QdHI8TGF5ZXJU
aWxlckNocm9taXVtPiBtX3RpbGVyOwogICAgIFRpbGluZ09wdGlvbiBtX3RpbGluZ09wdGlvbjsK
KyAgICBib29sIG1fYm9yZGVyVGV4ZWxzOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxl
ckNocm9taXVtLmgJKHJldmlzaW9uIDg4NjE2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEyMCw2ICsxMjAsNyBAQAogICAgIFRpbGUqIHRpbGVBdChpbnQsIGludCkgY29uc3Q7CiAgICAg
SW50UmVjdCB0aWxlQ29udGVudFJlY3QoY29uc3QgVGlsZSopIGNvbnN0OwogICAgIEludFJlY3Qg
dGlsZUxheWVyUmVjdChjb25zdCBUaWxlKikgY29uc3Q7CisgICAgSW50UmVjdCB0aWxlVGV4UmVj
dChjb25zdCBUaWxlKikgY29uc3Q7CiAKICAgICBJbnRTaXplIG1fdGlsZVNpemU7CiAgICAgSW50
UG9pbnQgbV9sYXllclBvc2l0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9t
aXVtLmNwcAkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDcgKzQ3LDcgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogLy8gU3RhcnQg
dGlsaW5nIHdoZW4gdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgYSBsYXllciBhcmUgbGFyZ2VyIHRo
YW4gdGhpcyBzaXplLgotc3RhdGljIGludCBtYXhVbnRpbGVkU2l6ZSA9IDUxMjsKK3N0YXRpYyBp
bnQgbWF4VW50aWxlZFNpemUgPSA1MTA7CiAKIC8vIFdoZW4gdGlsaW5nIGlzIGVuYWJsZWQsIHVz
ZSB0aWxlcyBvZiB0aGlzIGRpbWVuc2lvbiBzcXVhcmVkLgogc3RhdGljIGludCBkZWZhdWx0VGls
ZVNpemUgPSAyNTY7CkBAIC04Niw2ICs4Niw3IEBACiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29u
dGVudExheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKICAgICA6IExh
eWVyQ2hyb21pdW0ob3duZXIpCiAgICAgLCBtX3RpbGluZ09wdGlvbihDb250ZW50TGF5ZXJDaHJv
bWl1bTo6QXV0b1RpbGUpCisgICAgLCBtX2JvcmRlclRleGVscyh0cnVlKQogewogfQogCkBAIC0x
ODUsNyArMTg2LDcgQEAKICAgICBpZiAoIW1fdGlsZXIpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGNvbnN0IEludFNpemUgdGlsZVNpemUobWluKGRlZmF1bHRUaWxlU2l6ZSwgbGF5ZXJTaXplLndp
ZHRoKCkpLCBtaW4oZGVmYXVsdFRpbGVTaXplLCBsYXllclNpemUuaGVpZ2h0KCkpKTsKKyAgICBj
b25zdCBJbnRTaXplIHRpbGVTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVmYXVsdFRpbGVTaXplKTsK
IAogICAgIC8vIFRpbGUgaWYgYm90aCBkaW1lbnNpb25zIGxhcmdlLCBvciBhbnkgb25lIGRpbWVu
c2lvbiBsYXJnZSBhbmQgdGhlIG90aGVyCiAgICAgLy8gZXh0ZW5kcyBpbnRvIGEgc2Vjb25kIHRp
bGUuIFRoaXMgaGV1cmlzdGljIGFsbG93cyBmb3IgbG9uZyBza2lubnkgbGF5ZXJzCkBAIC0yMDIs
NyArMjAzLDggQEAKICAgICBlbHNlCiAgICAgICAgIGlzVGlsZWQgPSBhdXRvVGlsZWQ7CiAKLSAg
ICBJbnRTaXplIHJlcXVlc3RlZFNpemUgPSBpc1RpbGVkID8gdGlsZVNpemUgOiBsYXllclNpemU7
CisgICAgLy8gWmVybyB0aWxlIHNpemUgdGVsbHMgdGhlIHRpbGVyIHRvIGF2b2lkIHRpbGluZy4K
KyAgICBJbnRTaXplIHJlcXVlc3RlZFNpemUgPSBpc1RpbGVkID8gdGlsZVNpemUgOiBJbnRTaXpl
KCk7CiAgICAgY29uc3QgaW50IG1heFNpemUgPSBsYXllclJlbmRlcmVyKCktPm1heFRleHR1cmVT
aXplKCk7CiAgICAgSW50U2l6ZSBjbGFtcGVkU2l6ZSA9IHJlcXVlc3RlZFNpemUuc2hydW5rVG8o
SW50U2l6ZShtYXhTaXplLCBtYXhTaXplKSk7CiAgICAgbV90aWxlci0+c2V0VGlsZVNpemUoY2xh
bXBlZFNpemUpOwpAQCAtMjMwLDcgKzIzMiw4IEBACiAgICAgICAgIGxheWVyUmVuZGVyZXIoKSwK
ICAgICAgICAgY3JlYXRlVGV4dHVyZVVwZGF0ZXIoKSwKICAgICAgICAgSW50U2l6ZShkZWZhdWx0
VGlsZVNpemUsIGRlZmF1bHRUaWxlU2l6ZSksCi0gICAgICAgIExheWVyVGlsZXJDaHJvbWl1bTo6
SGFzQm9yZGVyVGV4ZWxzKTsKKyAgICAgICAgbV9ib3JkZXJUZXhlbHMgPyBMYXllclRpbGVyQ2hy
b21pdW06Okhhc0JvcmRlclRleGVscyA6CisgICAgICAgIExheWVyVGlsZXJDaHJvbWl1bTo6Tm9C
b3JkZXJUZXhlbHMpOwogfQogCiB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb21w
b3NpdG9yUmVzb3VyY2VzKCkKQEAgLTI1OCw2ICsyNjEsNyBAQAogCiB2b2lkIENvbnRlbnRMYXll
ckNocm9taXVtOjpzZXRJc01hc2soYm9vbCBpc01hc2spCiB7CisgICAgbV9ib3JkZXJUZXhlbHMg
PSBmYWxzZTsKICAgICBzZXRUaWxpbmdPcHRpb24oaXNNYXNrID8gTmV2ZXJUaWxlIDogQXV0b1Rp
bGUpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HZW9tZXRyeUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAJKHJldmlzaW9uIDg4NjE2
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlC
aW5kaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK3R5cGVkZWYgRmxvYXRQb2ludDNEIEVkZ2U7CisKIEdlb21ldHJ5QmluZGlu
Zzo6R2VvbWV0cnlCaW5kaW5nKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogICAgIDogbV9j
b250ZXh0KGNvbnRleHQpCiAgICAgLCBtX3F1YWRWZXJ0aWNlc1ZibygwKQpAQCAtNTksMTMgKzYx
LDEyNCBAQAogICAgIG1faW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpc0ND
Vyhjb25zdCBGbG9hdFBvaW50KiBwdHMpCit7CisgICAgRmxvYXRQb2ludCB2MSA9IEZsb2F0UG9p
bnQocHRzWzFdLngoKSAtIHB0c1swXS54KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHRzWzFdLnkoKSAtIHB0c1swXS55KCkpOworICAgIEZsb2F0UG9pbnQgdjIgPSBGbG9hdFBv
aW50KHB0c1syXS54KCkgLSBwdHNbMV0ueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB0c1syXS55KCkgLSBwdHNbMV0ueSgpKTsKKyAgICByZXR1cm4gKHYxLngoKSAqIHYyLnko
KSAtIHYxLnkoKSAqIHYyLngoKSkgPCAwOworfQorCitzdGF0aWMgRmxvYXRQb2ludCBpbnRlcnNl
Y3QoY29uc3QgRWRnZSYgYSwgY29uc3QgRWRnZSYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRQb2lu
dCgKKyAgICAgICAgKGEueSgpICogYi56KCkgLSBiLnkoKSAqIGEueigpKSAvIChhLngoKSAqIGIu
eSgpIC0gYi54KCkgKiBhLnkoKSksCisgICAgICAgIChhLngoKSAqIGIueigpIC0gYi54KCkgKiBh
LnooKSkgLyAoYi54KCkgKiBhLnkoKSAtIGEueCgpICogYi55KCkpKTsKK30KKworR2VvbWV0cnlC
aW5kaW5nOjpHZW9tZXRyeUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bWF0cml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYg
cmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyBm
aWx0ZXIpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fcXVhZFZlcnRpY2VzVmJv
KDApCisgICAgLCBtX3F1YWRFbGVtZW50c1ZibygwKQorICAgICwgbV9pbml0aWFsaXplZChmYWxz
ZSkKK3sKKyAgICBpbnQgeDEgPSByZWN0LngoKTsKKyAgICBpbnQgeTEgPSByZWN0LnkoKTsKKyAg
ICBpbnQgeDIgPSByZWN0Lm1heFgoKTsKKyAgICBpbnQgeTIgPSByZWN0Lm1heFkoKTsKKworICAg
IC8vIEluY2x1ZGUgYm9yZGVyIHRleGVscy4KKyAgICBpZiAoZmlsdGVyICYgRmlsdGVyTGVmdEVk
Z2UpCisgICAgICAgIHgxLS07CisgICAgaWYgKGZpbHRlciAmIEZpbHRlclRvcEVkZ2UpCisgICAg
ICAgIHkxLS07CisgICAgaWYgKGZpbHRlciAmIEZpbHRlclJpZ2h0RWRnZSkKKyAgICAgICAgeDIr
KzsKKyAgICBpZiAoZmlsdGVyICYgRmlsdGVyQm90dG9tRWRnZSkKKyAgICAgICAgeTIrKzsKKwor
ICAgIEZsb2F0UG9pbnQgcHRbNF07CisgICAgcHRbMF0gPSBGbG9hdFBvaW50KHgxLCB5MSk7Cisg
ICAgcHRbMV0gPSBGbG9hdFBvaW50KHgyLCB5MSk7CisgICAgcHRbMl0gPSBGbG9hdFBvaW50KHgy
LCB5Mik7CisgICAgcHRbM10gPSBGbG9hdFBvaW50KHgxLCB5Mik7CisKKyAgICBmb3IgKGludCBp
ID0gMDsgaSA8IDQ7IGkrKykKKyAgICAgICAgcHRbaV0gPSBtYXRyaXgubWFwUG9pbnQocHRbaV0p
OworCisgICAgRWRnZSBlZGdlc1s0XTsKKyAgICBGbG9hdFBvaW50IHAgPSBwdFszXTsKKyAgICBm
bG9hdCBzaWduID0gaXNDQ1cocHQpID8gLTEuMGYgOiAxLjBmOworICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgNDsgaSsrKSB7CisgICAgICAgIEZsb2F0UG9pbnQgcSA9IHB0W2ldOworICAgICAgICBG
bG9hdFBvaW50IHRhbmdlbnQgPSBGbG9hdFBvaW50KHAueSgpIC0gcS55KCksIHEueCgpIC0gcC54
KCkpOworICAgICAgICBmbG9hdCBzY2FsZSA9IHNpZ24gLyB0YW5nZW50Lmxlbmd0aCgpOworICAg
ICAgICBmbG9hdCBjcm9zczIgPSBwLngoKSAqIHEueSgpIC0gcS54KCkgKiBwLnkoKTsKKworICAg
ICAgICBlZGdlc1tpXSA9IEVkZ2UodGFuZ2VudC54KCkgKiBzY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRhbmdlbnQueSgpICogc2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICBj
cm9zczIgKiBzY2FsZSArIChmaWx0ZXIgJiAoMSA8PCBpKSkgKiAwLjVmKTsKKworICAgICAgICBw
ID0gcTsKKyAgICB9CisKKyAgICAvLyBXZSBkb24ndCBjYXJlIGFib3V0IFogY29tcG9uZW50Lgor
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGludmVyc2UgPQorICAgICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeChtYXRyaXgubTExKCksIG1hdHJpeC5tMTIoKSwgMC4wLCBtYXRyaXgubTE0KCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJpeC5tMjEoKSwgbWF0cml4Lm0yMigpLCAw
LjAsIG1hdHJpeC5tMjQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm0z
MSgpLCBtYXRyaXgubTMyKCksIDEuMCwgbWF0cml4Lm0zNCgpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYXRyaXgubTQxKCksIG1hdHJpeC5tNDIoKSwgMC4wLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXRyaXgubTQ0KCkpLmludmVyc2UoKTsKKworICAgIGRvdWJsZSBz
Y2FsZVggPSAxLjAgLyByZWN0LndpZHRoKCk7CisgICAgZG91YmxlIHNjYWxlWSA9IDEuMCAvIHJl
Y3QuaGVpZ2h0KCk7CisgICAgZG91YmxlIHRyYW5zbGF0ZVggPSByZWN0LngoKSArIHJlY3Qud2lk
dGgoKSAvIDIuMDsKKyAgICBkb3VibGUgdHJhbnNsYXRlWSA9IHJlY3QueSgpICsgcmVjdC5oZWln
aHQoKSAvIDIuMDsKKworICAgICAvLyBUaGUgdHdvIHRyaWFuZ2xlcyB0aGF0IG1ha2UgdXAgdGhl
IGxheWVyIHF1YWQuCisgICAgdWludDE2X3QgaW5kaWNlc1tdID0geyAwLCAxLCAyLCAwLCAyLCAz
IH07CisgICAgZmxvYXQgdmVydGljZXNbMjBdOworCisgICAgRWRnZSBwcmV2RWRnZSA9IGVkZ2Vz
WzNdOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgIEVkZ2UgZWRn
ZSA9IGVkZ2VzW2ldOworCisgICAgICAgIHB0W2ldID0gaW50ZXJzZWN0KHByZXZFZGdlLCBlZGdl
KTsKKyAgICAgICAgcHRbaV0gPSBpbnZlcnNlLm1hcFBvaW50KHB0W2ldKTsKKworICAgICAgICAv
LyBWZXJ0ZXggcG9zaXRpb24gbm9ybWFsaXplZCB0byByZWN0LgorICAgICAgICB2ZXJ0aWNlc1tp
ICogNSArIDBdID0gKHB0W2ldLngoKSAtIHRyYW5zbGF0ZVgpICogc2NhbGVYOworICAgICAgICB2
ZXJ0aWNlc1tpICogNSArIDFdID0gKHB0W2ldLnkoKSAtIHRyYW5zbGF0ZVkpICogc2NhbGVZOwor
ICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDJdID0gMC4wZjsKKworICAgICAgICAvLyBUZXh0dXJl
IGNvb3JkaW5hdGVzLgorICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDNdID0gKHB0W2ldLngoKSAt
IHJlY3QueCgpKSAqIHNjYWxlWDsKKyAgICAgICAgdmVydGljZXNbaSAqIDUgKyA0XSA9IChwdFtp
XS55KCkgLSByZWN0LnkoKSkgKiBzY2FsZVk7CisKKyAgICAgICAgcHJldkVkZ2UgPSBlZGdlOwor
ICAgIH0KKworICAgIEdMQyhtX2NvbnRleHQsIG1fcXVhZFZlcnRpY2VzVmJvID0gbV9jb250ZXh0
LT5jcmVhdGVCdWZmZXIoKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9xdWFkRWxlbWVudHNWYm8g
PSBtX2NvbnRleHQtPmNyZWF0ZUJ1ZmZlcigpKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRl
eHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgbV9xdWFkVmVy
dGljZXNWYm8pKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJ1ZmZlckRhdGEoR3Jh
cGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgc2l6ZW9mKHZlcnRpY2VzKSwgdmVydGljZXMs
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVykpOworICAgIEdMQyhtX2NvbnRleHQsIG1f
Y29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZG
RVIsIG1fcXVhZEVsZW1lbnRzVmJvKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5i
dWZmZXJEYXRhKEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwgc2l6ZW9m
KGluZGljZXMpLCBpbmRpY2VzLCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpKTsKKwor
ICAgIG1faW5pdGlhbGl6ZWQgPSB0cnVlOworfQorCiBHZW9tZXRyeUJpbmRpbmc6On5HZW9tZXRy
eUJpbmRpbmcoKQogewogICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+ZGVsZXRlQnVmZmVy
KG1fcXVhZFZlcnRpY2VzVmJvKSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxl
dGVCdWZmZXIobV9xdWFkRWxlbWVudHNWYm8pKTsKIH0KIAotdm9pZCBHZW9tZXRyeUJpbmRpbmc6
OnByZXBhcmVGb3JEcmF3KCkKK3ZvaWQgR2VvbWV0cnlCaW5kaW5nOjpwcmVwYXJlRm9yRHJhdygp
IGNvbnN0CiB7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBo
aWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIHF1YWRWZXJ0aWNlc1ZibygpKSk7CiAgICAgR0xD
KG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpFTEVN
RU5UX0FSUkFZX0JVRkZFUiwgcXVhZEVsZW1lbnRzVmJvKCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96886</attachid>
            <date>2011-06-12 12:22:11 -0700</date>
            <delta_ts>2011-06-20 22:28:54 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-gpu-anti-aliasing-v8.diff</filename>
            <type>text/plain</type>
            <size>52863</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQJKHJldmlzaW9uIDg4NjE2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMDI2LDggKzMw
MjYsOSBAQAogLy9CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IHBsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL2xheW91dC13aWR0aC1jaGFuZ2UuaHRtbCA9IElNQUdFCiAKIC8vIENocm9t
aXVtIEdQVSBkcmF3cyBzY3JvbGxiYXJzIHNsaWdodGx5IGRpZmZlcmVudGx5IGluIGRlYnVnIHZz
LiByZWxlYXNlLgotQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9kaXJl
Y3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzU4NTg3IERFQlVHIEdQVSBM
SU5VWCA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCisvLyBDb21tZW50ZWQgYmVjYXVz
ZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRp
bmcvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwgPSBJTUFHRQorLy9CVUdXSzU4NTg3IERF
QlVHIEdQVSBMSU5VWCA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCiAKIC8vIFdlYktp
dCByb2xsIDgwNTY0OjgwNjMxOiByZW5kZXJpbmcgb24gTGVvcGFyZCBpcyBzaGlmdGVkIHRvIHRo
ZSB0b3AgcmlnaHQKIC8vIHN0YXJ0ZWQgYXQgc29tZSBwb2ludCBhdCBvciBhZnRlciBXSyByODA1
ODIgKERhdmUgSHlhdHQncyB2ZXJ0aWNhbCB0ZXh0IGNoYW5nZSAtIGEgdmVyeSBsaWtlbHkgY2Fu
ZGlkYXRlKQpAQCAtMzM3Niw3ICszMzc3LDggQEAKIEJVR0NSNzkxMTEgR1BVIDogY29tcG9zaXRp
bmcvZnJhbWVzZXRzL2NvbXBvc2l0ZWQtZnJhbWUtYWxpZ25tZW50Lmh0bWwgPSBJTUFHRQogCiBC
VUdXSzU4MzA4IEdQVSBXSU4gTElOVVggREVCVUcgOiBjb21wb3NpdGluZy96LW9yZGVyL25lZ2F0
aXZlLXotaW5kZXguaHRtbCA9IFBBU1MgQ1JBU0gKLUJVR1dLNTgzMjggR1BVIFdJTiBNQUMgTElO
VVggREVCVUcgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJTUFH
RSBQQVNTIENSQVNICisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dL
NTgzMjggR1BVIFdJTiBNQUMgTElOVVggREVCVUcgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1y
ZWZsZWN0aW9uLmh0bWwgPSBJTUFHRSBQQVNTIENSQVNICiAKIEJVR0NSNzkxNzMgR1BVIExJTlVY
IERFQlVHIDogZmFzdC9jYW52YXMvYWNjZXNzLXplcm8tc2l6ZWQtY2FudmFzLmh0bWwgPSBQQVNT
IENSQVNICiAKQEAgLTM1NDAsMTIgKzM1NDIsMTUgQEAKIAogLy8gTmVlZHMgcmViYXNlbGluZQog
Ci1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LWluLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9
IElNQUdFCi1CVUdXSzYwMTAyIE1BQyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1m
aXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UK
Ky8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s2MDEwMiBMSU5VWCBE
RUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVkLmh0bWwg
PSBJTUFHRQorLy9CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0aW5nL2dlb21l
dHJ5L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCisvLyBDb21tZW50
ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNjAxMDIgTUFDIEdQVSA6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKKy8vQlVHV0s2
MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1maXhlZC1z
Y3JvbGxpbmcuaHRtbCA9IElNQUdFCiBCVUdXSzYwMTAyIExJTlVYIEdQVSA6IGNvbXBvc2l0aW5n
L21hc2tzL21hc2tlZC1hbmNlc3Rvci5odG1sID0gSU1BR0UKLUJVR1dLNjAxMDIgTElOVVggREVC
VUcgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0g
SU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s2MDEwMiBM
SU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNr
Lmh0bWwgPSBJTUFHRQogLy8gQ29tbWVudGVkIGJlY2F1c2Ugb2YgQlVHQ1I4MTYwNQogLy9CVUdX
SzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGZhc3QvY2FudmFzL2NhbnZhcy10ZXh0LWFsaWdubWVu
dC5odG1sID0gSU1BR0UKIEJVR1dLNjAxMDIgTElOVVggR1BVIDogcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvbGF5b3V0LXdpZHRoLWNoYW5nZS5odG1sID0gSU1BR0UKQEAgLTM5OTQsMyAr
Mzk5OSw1MyBAQAogQlVHQ1I4NTM5NCA6IGZhc3QvanMvZXZhbC12YXItZGVjbC5odG1sID0gRkFJ
TCBQQVNTCiBCVUdDUjg1NzU1IDogZmFzdC9qcy9leGNlcHRpb24tcHJvcGVydGllcy5odG1sID0g
VEVYVAogCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNoaW5nL2ltYWdl
LWNvbG9yLW1hdGNoaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLmh0bWwg
PSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9ob3Jpem9udGFs
LXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3Np
dGluZy9nZW9tZXRyeS9sYXllci1kdWUtdG8tbGF5ZXItY2hpbGRyZW4tZGVlcC5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxh
eWVyLWNoaWxkcmVuLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9yb290LWxheWVyLXVwZGF0ZS5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvdGFsbC1wYWdlLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGlu
Zy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdmVy
dGljYWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNv
bXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLW9wYWNpdHktb3ZlcmxheS5odG1sID0gSU1BR0UKK0JV
R1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3Jv
bGwuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2lmcmFtZXMvaWZy
YW1lLWluLWNvbXBvc2l0ZWQtbGF5ZXIuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNv
bXBvc2l0aW5nL2lmcmFtZXMvbmVzdGVkLWlmcmFtZS1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3Qtc3ZnLWltYWdlLmh0bWwg
PSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9kaXJlY3QtaW1hZ2Ut
bWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2lt
cGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvZml4ZWQtcG9zaXRpb24tYW5jZXN0b3ItY2xpcC5odG1sID0gSU1BR0UK
K0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvY29tcG9zaXRpbmctY2hh
bmdlLWluc2lkZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21w
b3NpdGluZy9yZWZsZWN0aW9ucy9kZWVwbHktbmVzdGVkLXJlZmxlY3Rpb25zLmh0bWwgPSBJTUFH
RQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVj
dGlvbi1tYXNrLWNoYW5nZS5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRp
bmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tb24tb3ZlcmZsb3cuaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0
aW9uLW9wYWNpdHkuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXNpemUtY2hhbmdlLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10
cmFuc2Zvcm1lZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNmb3JtZWQyLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10
cmFuc2l0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZs
ZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1pbi1jb21wb3NpdGVkLmh0bWwgPSBJ
TUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9u
LW9uLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5n
L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3JkZXJpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4
IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRpb25pbmcuaHRt
bCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxl
Y3Rpb24tcG9zaXRpb25pbmcyLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3Np
dGluZy9yZWZsZWN0aW9ucy9zaW1wbGUtY29tcG9zaXRlZC1yZWZsZWN0aW9ucy5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvdHJhbnNmb3JtLWlu
c2lkZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9yZXBhaW50L2NvbnRlbnQtaW50by1vdmVyZmxvdy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODgg
R1BVIDogY29tcG9zaXRpbmcvcmVwYWludC9vdmVyZmxvdy1pbnRvLWNvbnRlbnQuaHRtbCA9IElN
QUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3NoYWRvd3Mvc2hhZG93LWRyYXdpbmcu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3NpYmxpbmctcG9zaXRp
b25pbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3RleHQtb24t
bGFyZ2UtbGF5ZXIuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3Ry
YW5zaXRpb25zL3NjYWxlLXRyYW5zaXRpb24tbm8tc3RhcnQuaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSA6IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLXJlZmxlY3Rpb24uaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2h1Z2UtbGF5
ZXItcm90YXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4
OCBHUFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9iYWNrZmFjZS12aXNpYmlsaXR5
LXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby16
b29tLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby16b29tLWNvbnRy
b2xzLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby10cmFuc2Zvcm1l
ZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogbWVkaWEvdmlkZW8tbGF5ZXItY3Jhc2gu
aHRtbCA9IElNQUdFCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4ODYxNikKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTA2LTEyICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcg
Zm9yIGNvbXBvc2l0ZWQgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjEzODgKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMS0wNi0xMiAgTWFoZXNoIEt1bGthcm5pICA8bWFoZXNo
Lmt1bGthcm5pQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVz
LgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVz
dC5jcHAJKHJldmlzaW9uIDg4NjE2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9U
aWxpbmdEYXRhVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEwICs0MSwxMCBAQAogVEVT
VChUaWxpbmdEYXRhVGVzdCwgbnVtVGlsZXNfTm9UaWxpbmcpCiB7CiAgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMTYsIDE2LCAxNiwgZmFsc2UpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgxLCBUaWxpbmdEYXRhKDE2LCAxNSwgMTUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNiwgMTYsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE3LCAxNSwgMTUsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE4LCAxNiwgMTYsIHRydWUpLm51bVRpbGVzKCkpOwog
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAgMSwgMTYsIGZhbHNlKS5udW1UaWxlcygp
KTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNSwgMTUsIDE1LCB0cnVlKS5udW1UaWxl
cygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNywgMTUsIDE1LCB0cnVlKS5udW1U
aWxlcygpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgbnVtVGlsZXNfVGlsaW5nTm9Cb3Jk
ZXJzKQpAQCAtMTA5LDQ1ICsxMDksNDUgQEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgt
MSwgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRh
KDAsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgxLCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDEsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMSwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgxLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDIsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMiwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgyLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDIsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsICAyLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDIsICAyLCB0cnVlKS5udW1UaWxlcygpKTsK
IAotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDIsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgMywgIDMsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICA0LCAgMywgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgIDUsICAzLCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAgNiwgIDMsIHRydWUp
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsICA3LCAgMywgdHJ1
ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDEsICAxLCB0
cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMSwgIDIs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAyLCAg
MSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgIDIs
ICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAg
MiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMs
ICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDksIFRpbGluZ0RhdGEo
MywgIDMsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKIAotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDQsICAxLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoNCwgIDIsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSg0LCAgMywgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDQsICA0LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNCwgIDUsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSg0LCAgNiwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDQsICA3LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNCwgIDgsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgOSwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVY
UEVDVF9FUSg0LCBUaWxpbmdEYXRhKDQsIDEwLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAg
RVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTEsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDMsICAyLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg0LCAgNCwgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQsICA1LCAgMiwgdHJ1ZSkubnVtVGls
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNCwgIDYsICAyLCB0cnVlKS5udW1U
aWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgNywgIDIsIHRydWUpLm51
bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDQsICA4LCAgMiwgdHJ1ZSku
bnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgIDksICAyLCB0cnVl
KS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg0LCAxMCwgIDIsIHRy
dWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDQsIDExLCAgMiwg
dHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMSwg
IDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAy
LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwg
IDMsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1
LCAgNCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDUsICA1LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoNSwgIDYsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5n
RGF0YSg1LCAgNywgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxp
bmdEYXRhKDUsICA4LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoNSwgIDksICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAxMCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsIDExLCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoNSwgIDEsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSg1LCAgMiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDUsICAzLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDQsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA2LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDcsICAzLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDMsIHRydWUpLm51bVRpbGVzKCkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA5LCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTAsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAxMSwgIDMsIHRydWUpLm51bVRp
bGVzKCkpOwogfQogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KQpAQCAtMTY2LDE3ICsxNjYsMTcgQEAKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDExKSk7CiAKICAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
MCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMiwg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMykpOwot
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0
cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5n
RGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNikpOwotICAgIEVY
UEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmND
b29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50
aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgz
LCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoOSkpOwotICAgIEVYUEVDVF9F
USg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgx
MCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgxMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg0KSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGlu
Z0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKKyAgICBF
WFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCg3KSk7CisgICAgRVhQRUNUX0VRKDgsIFRpbGluZ0RhdGEo
MywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKKyAgICBFWFBFQ1Rf
RVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
OSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgxMCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFsc2UpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkp
OwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIGZhbHNlKS50aWxlWEluZGV4
RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTE5NCwxMyArMTk0LDEzIEBACiAgICAgRVhQRUNUX0VRKDAs
IFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CiAg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVhJbmRleEZyb21T
cmNDb29yZCgxKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSku
dGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1
ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWElu
ZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAz
LCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nv
b3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxl
WEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCA0
LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKIH0KIFRFU1QoVGlsaW5nRGF0
YVRlc3QsIHRpbGVZSW5kZXhGcm9tU3JjQ29vcmQpCiB7CkBAIC0yMTgsMTcgKzIxOCwxNyBAQAog
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgZmFsc2UpLnRpbGVZSW5kZXhG
cm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgzKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDQpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoNSkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCg2KSk7Ci0gICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDcpKTsKLSAgICBFWFBFQ1RfRVEo
NywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOCkp
OwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCg5KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEw
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEwKSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDExKSk7Cisg
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgzKSk7CisgICAgRVhQ
RUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDQpKTsKKyAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoNSkpOworICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg2KSk7CisgICAgRVhQRUNUX0VR
KDcsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDcp
KTsKKyAgICBFWFBFQ1RfRVEoOCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoOCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg5KSk7CisgICAgRVhQRUNUX0VRKDksIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEwKSk7Cisg
ICAgRVhQRUNUX0VRKDksIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDExKSk7CiAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgxLCAxLCAxLCBm
YWxzZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGlu
Z0RhdGEoMiwgMiwgMiwgZmFsc2UpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwpAQCAtMjQ2
LDYxICsyNDYsNjEgQEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgyLCAyLCAyLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKICAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0
cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3Jk
KDIpKTsKIAotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMs
IDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMikpOwotICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3Jj
Q29vcmQoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDQs
IDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMikpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMykpOwogfQogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVgpCiB7CiAg
ICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCBmYWxzZSkudGlsZVNpemVYKDAp
KTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLnRpbGVTaXpl
WCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxl
U2l6ZVgoMCkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxz
ZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNiwgIDYs
IGZhbHNlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA2
LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDApKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1
LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgxKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKIAogICAgIEVYUEVDVF9FUSg1
LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCBmYWxzZSkudGlsZVNpemVYKDEpKTsKLSAgICBF
WFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0g
ICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMSkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVY
KDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVT
aXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNl
KS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwg
ZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTAs
IDEwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUs
IDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWCgxKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogCi0gICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoNSwgMTEsIDExLCB0cnVlKS50aWxlU2l6ZVgoMikpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKICAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMiwgMTIsIHRydWUpLnRpbGVTaXplWCgyKSk7CiB9CiBU
RVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVkpCiB7CiAgICAgRVhQRUNUX0VRKDUsIFRpbGlu
Z0RhdGEoNSwgIDUsICA1LCBmYWxzZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoNSwg
VGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVkoMCkpOwogCiAgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIGZhbHNlKS50aWxlU2l6ZVkoMSkp
OwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVZ
KDApKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVT
aXplWSgxKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50
aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1
ZSkudGlsZVNpemVZKDEpKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA4LCAg
OCwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
IDgsICA4LCBmYWxzZSkudGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0
YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGlu
Z0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVDVF9FUSgzLCBU
aWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgxKSk7CiAKICAgICBFWFBF
Q1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMCkpOwogICAg
IEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgZmFsc2UpLnRpbGVTaXplWSgxKSk7
Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVko
MCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNp
emVZKDApKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRp
bGVTaXplWSgxKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVl
KS50aWxlU2l6ZVkoMikpOwogCi0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTEsIDEx
LCB0cnVlKS50aWxlU2l6ZVkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEx
LCAxMSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1
LCAxMiwgMTIsIHRydWUpLnRpbGVTaXplWSgyKSk7CiB9CiAKQEAgLTMxOSwxMCArMzE5LDEwIEBA
CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMSwgICAxLCB0cnVlKS50aWxlUG9zaXRp
b25YKDApKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxLCAxMDAsIHRydWUpLnRp
bGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVl
KS50aWxlUG9zaXRpb25YKDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAzLCAg
IDEsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywg
MywgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAzLCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMywgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1Rf
RVEoMywgVGlsaW5nRGF0YSg1LCAzLCAgIDEsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoNSwgMywgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAzLCAxMDAsIHRydWUpLnRpbGVTaXplWCgw
KSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlUG9z
aXRpb25YKDApKTsKIAogICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIG5vIGJvcmRlcgpA
QCAtMzQwLDIzICszNDAsMjMgQEAKICAgICAvLyBNdWx0aXBsZSB0aWxlczoKICAgICAvLyB3aXRo
IGJvcmRlcgogICAgIC8vIHBvc2l0aW9ucyAwLCAyLCAzLCA0Ci0gICAgRVhQRUNUX0VRKDQsIFRp
bGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwg
VGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKLSAgICBF
WFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVTaXplWCgzKSk7Ci0g
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDApKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQ
b3NpdGlvblgoMSkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1
ZSkudGlsZVBvc2l0aW9uWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNiwg
ICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0
YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKLSAgICBFWFBFQ1RfRVEo
MiwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXplWCgzKSk7Ci0gICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKLSAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgo
MSkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBv
c2l0aW9uWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVl
KS50aWxlUG9zaXRpb25YKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCA0LCAg
IDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQs
ICAgMSwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgz
LCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOworICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7Cisg
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQ
b3NpdGlvblgoMykpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1
ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAs
IHRydWUpLnRpbGVTaXplWCgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwg
MTAwLCB0cnVlKS50aWxlU2l6ZVgoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMs
IDQsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOworICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7CisgICAgRVhQRUNU
X0VRKDIsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDIpKTsKKyAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgo
MykpOwogfQogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVlfYW5kX3RpbGVQb3NpdGlv
blkpCkBAIC0zNzQsMTAgKzM3NCwxMCBAQAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMs
ICAgMSwgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMywgMTAwLCAxLCB0cnVlKS50aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoMywgICAxLCAzLCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVY
UEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAgMSwgMywgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7
Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAwLCAzLCB0cnVlKS50aWxlU2l6ZVko
MCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVBv
c2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgICAxLCAzLCB0cnVl
KS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUsICAgMSwgMywg
dHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
MTAwLCAzLCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRh
KDUsIDEwMCwgMywgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CiAKICAgICAvLyBNdWx0aXBsZSB0
aWxlczoKICAgICAvLyBubyBib3JkZXIKQEAgLTM5NSwyMyArMzk1LDIzIEBACiAgICAgLy8gTXVs
dGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIKICAgICAvLyBwb3NpdGlvbnMgMCwgMiwg
MywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkubnVtVGls
ZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxl
U2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSku
dGlsZVNpemVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRy
dWUpLnRpbGVTaXplWSgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAxLCA2
LCB0cnVlKS50aWxlU2l6ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAg
MSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgICAxLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7Ci0g
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6ZVkoMCkp
OwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZ
KDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVT
aXplWSgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50
aWxlU2l6ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1
ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAw
LCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVYUEVDVF9FUSg0LCBU
aWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDIp
KTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXpl
WSgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxl
UG9zaXRpb25ZKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAg
MSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKKyAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgzKSk7Cisg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25Z
KDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVQ
b3NpdGlvblkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1
ZSkudGlsZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAw
LCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwg
c2V0VG90YWxTaXplKQpAQCAtNDY4LDcgKzQ2OCw3IEBACiAKIFRFU1QoVGlsaW5nRGF0YVRlc3Qs
IHNldE1heFRleHR1cmVTaXplQm9yZGVycykKIHsKLSAgICBUaWxpbmdEYXRhIGRhdGEoOCwgMTYs
IDMyLCB0cnVlKTsKKyAgICBUaWxpbmdEYXRhIGRhdGEoOCwgMTYsIDMwLCB0cnVlKTsKICAgICBF
WFBFQ1RfRVEoMywgZGF0YS5udW1UaWxlc1goKSk7CiAgICAgRVhQRUNUX0VRKDUsIGRhdGEubnVt
VGlsZXNZKCkpOwogCkBAIC00ODQsNyArNDg0LDcgQEAKIAogICAgIGRhdGEuc2V0TWF4VGV4dHVy
ZVNpemUoNSk7CiAgICAgRVhQRUNUX0VRKDUsIGRhdGEubWF4VGV4dHVyZVNpemUoKSk7Ci0gICAg
RVhQRUNUX0VRKDUsIGRhdGEubnVtVGlsZXNYKCkpOworICAgIEVYUEVDVF9FUSg2LCBkYXRhLm51
bVRpbGVzWCgpKTsKICAgICBFWFBFQ1RfRVEoMTAsIGRhdGEubnVtVGlsZXNZKCkpOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTAzICBEYXZpZCBSZXZlbWFu
ICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcgZm9yIGNvbXBv
c2l0ZWQgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjEzODgKKworICAgICAgICBUcmFjayBjaGFuZ2VzIHRvIFRpbGluZ0RhdGEgY2xhc3Mg
d2hpY2ggbm93IHVzZXMgYW4gb3V0ZXIgYm9yZGVyLgorCisgICAgICAgICogY2hyb21pdW0vdGVz
dHMvVGlsaW5nRGF0YVRlc3QuY3BwOgorCiAyMDExLTA2LTAyICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw2NiBAQAorMjAxMS0wNi0xMiAgRGF2aWQgUmV2ZW1hbiAg
PHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gRWRnZSBhbnRpLWFsaWFzaW5nIGZvciBjb21wb3Np
dGVkIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxMzg4CisKKyAgICAgICAgQWRkIHRyYW5zcGFyZW50IG91dGVyIGJvcmRlciB0byB0aWxl
ZCBsYXllcnMgYW5kIGFkanVzdCB2ZXJ0ZXgKKyAgICAgICAgY29vcmRpbmF0ZXMgc28gdGhhdCB1
c2Ugb2YgYSBiaWxpbmVhciBmaWx0ZXIgY3JlYXRlcyBhIHNtb290aAorICAgICAgICBsYXllciBl
ZGdlLgorCisgICAgICAgIFRlc3RzOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55
LWxheWVyLXJvdGF0ZWQuaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvaHVnZS1sYXllci1yb3RhdGVkLmh0bWwgKGV4aXN0aW5nKQorICAgICAgICAgICAg
ICAgVGlsaW5nRGF0YVRlc3QgaW4gd2Via2l0X3VuaXRfdGVzdHMKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
Q2hhbmdlIG1heFVudGlsZWRTaXplIHRvIDUxMCB0byBlbnN1cmUgdGhhdCB0aWxlcyBhcmUgbm90
IGdyZWF0ZXIKKyAgICAgICAgdGhhbiA1MTIgd2l0aCBvdXRlciBib3JkZXJzLgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyU2l6ZSk6IFdlIGNhbid0
IHVzZSB0aGUKKyAgICAgICAgbGF5ZXIgc2l6ZSBhcyB0aWxlIHNpemUgd2hlbiB3ZSB3YW50IHRv
IGF2b2lkIHRpbGluZyBhcyB0aGlzIHdpbGwKKyAgICAgICAgbm90IGJlIGVub3VnaCBzcGFjZSB0
byBpbmNsdWRlIHBvc3NpYmxlIG91dGVyIGJvcmRlcnMuIFdlIGluc3RlYWQgdXNlCisgICAgICAg
IGFuIGVtcHR5IHNpemUsIHdoaWNoIGFsbG93cyB0aGUgdGlsZXIgdG8gYXV0b21hdGljYWxseSBh
ZGp1c3QgdGhlCisgICAgICAgIHRpbGUgc2l6ZSB0byBiZSBsYXJnZSBlbm91Z2ggZm9yIHRoZSBs
YXllciB0byBmaXQgaW4gb25lIHRpbGUuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlVGlsZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
TGF5ZXJDaHJvbWl1bTo6c2V0SXNNYXNrKTogRG9uJ3QgdXNlIGJvcmRlciB0ZXhlbHMKKyAgICAg
ICAgZm9yIGxheWVyIHNldCBhcyBtYXNrLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
TGF5ZXJDaHJvbWl1bTo6bV9ib3JkZXJUZXhlbHMpIEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9tZXRyeUJpbmRpbmc6Okdlb21ldHJ5QmluZGluZyk6IE5ldyBjb25zdHJ1Y3RvciB0aGF0
CisgICAgICAgIGNyZWF0ZXMgZ2VvbWV0cnkgYWRqdXN0ZWQgZm9yIG91dGVyIGJvcmRlciBmaWx0
ZXJpbmcuIFRoaXMgaXMgZG9uZQorICAgICAgICBieSBpbmNsdWRpbmcgYm9yZGVyIHRleGVscyBp
biB0aGUgZ2VvbWV0cnkgYW5kIG9mZnNldHRpbmcgdmVydGljZXMgdG8KKyAgICAgICAgbWFrZSBz
dXJlIGFsbCBmcmFnbWVudHMgdGhhdCBhcmUgYWZmZWN0ZWQgYnkgdGhlIGJvcmRlciB3aWxsIGJl
CisgICAgICAgIHByb2Nlc3NlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb21ldHJ5QmluZGluZzo6
cHJlcGFyZUZvckRyYXcpOiBBZGQgY29uc3QgbW9kaWZpZXIuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9tZXRyeUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3KTogQWRkIGNvbnN0IG1vZGlmaWVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVUZXhSZWN0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVMYXllclJlY3Qp
OiBtX3RpbGVTaXplIGlzIG5vCisgICAgICAgIGxvbmdlciB0aGUgY29ycmVjdCBsYXllciBzaXpl
LiBTaXplIG9mIGJvdW5kcyB3aXRoIGJvcmRlciBzaG91bGQKKyAgICAgICAgYmUgdGhlIGNvcnJl
Y3QgbGF5ZXIgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1bTo6Z3Jv
d0xheWVyVG9Db250YWluKTogQWRqdXN0IHRleHR1cmUKKyAgICAgICAgc2l6ZSB0byBpbmNsdWRl
IG91dGVyIGJvcmRlcnMgYW5kIGhhbmRsZSBlbXB0eSBtX3RpbGVTaXplLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdCk6IFVzZSBzaXplIG9mIHJl
Y3RhbmdsZQorICAgICAgICByZXR1cm5lZCBieSB0aWxlVGV4UmVjdCBpbnN0ZWFkIG9mIG1fdGls
ZVNpemUgZm9yIHRleHR1cmUgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJv
bWl1bTo6cHJlcGFyZVRvVXBkYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpMYXllclRp
bGVyQ2hyb21pdW06OmRyYXcpOiBEaXR0byBhbmQgY3JlYXRlIGdlb21ldHJ5IGJpbmRpbmcKKyAg
ICAgICAgYWRqdXN0ZWQgZm9yIG91dGVyIGJvcmRlciBmaWx0ZXJpbmcgd2hlbiBib3JkZXIgdGV4
ZWxzIGFyZSBwcmVzZW50LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyVGlsZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVt
Ojp0aWxlVGV4UmVjdCkgQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1Rp
bGluZ0RhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZUJvdW5kc1dp
dGhPdXRlckJvcmRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6Y29t
cHV0ZU51bVRpbGVzKTogQWRqdXN0IGZvciBvdXRlciBib3JkZXIuCisgICAgICAgIChXZWJDb3Jl
OjpUaWxpbmdEYXRhOjp0aWxlWEluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlWUluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlU2l6ZVgpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlRpbGluZ0RhdGE6OnRpbGVTaXplWSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
VGlsaW5nRGF0YTo6aW50ZXJzZWN0RHJhd1F1YWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlRpbGluZ0RhdGE6OnRleHR1cmVPZmZzZXQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6
dGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcik6IEFkZGVkLgorCiAyMDExLTA2LTEyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBL
bGluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdE
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvVGlsaW5nRGF0YS5jcHAJKHJldmlzaW9uIDg4NjE2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwx
MCArNDQsMTIgQEAKIAogc3RhdGljIGludCBjb21wdXRlTnVtVGlsZXMoaW50IG1heFRleHR1cmVT
aXplLCBpbnQgdG90YWxTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKQogeworICAgIGludCB0b3RhbFNp
emVXaXRoQm9yZGVyID0gdG90YWxTaXplICsgMiAqIGJvcmRlclRleGVsczsKKwogICAgIGlmICht
YXhUZXh0dXJlU2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMgPD0gMCkKLSAgICAgICAgcmV0dXJuIHRv
dGFsU2l6ZSA+IDAgJiYgbWF4VGV4dHVyZVNpemUgPj0gdG90YWxTaXplID8gMSA6IDA7CisgICAg
ICAgIHJldHVybiAwOwogCi0gICAgaW50IG51bVRpbGVzID0gbWF4KDEsIDEgKyAodG90YWxTaXpl
IC0gMSAtIDIgKiBib3JkZXJUZXhlbHMpIC8gKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRl
eGVscykpOworICAgIGludCBudW1UaWxlcyA9IG1heCgxLCAxICsgKHRvdGFsU2l6ZVdpdGhCb3Jk
ZXIgLSAxIC0gMiAqIGJvcmRlclRleGVscykgLyAobWF4VGV4dHVyZVNpemUgLSAyICogYm9yZGVy
VGV4ZWxzKSk7CiAgICAgcmV0dXJuIHRvdGFsU2l6ZSA+IDAgPyBudW1UaWxlcyA6IDA7CiB9CiAK
QEAgLTc5LDcgKzgxLDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBBU1NFUlQobV9tYXhU
ZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgaW50IHggPSAoc3JjUG9zIC0g
bV9ib3JkZXJUZXhlbHMpIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMp
OworICAgIGludCB4ID0gc3JjUG9zIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJU
ZXhlbHMpOwogICAgIHJldHVybiBtaW4obWF4KHgsIDApLCBudW1UaWxlc1goKSAtIDEpOwogfQog
CkBAIC04OSw3ICs5MSw3IEBACiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQVNTRVJUKG1fbWF4
VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOwotICAgIGludCB5ID0gKHNyY1BvcyAt
IG1fYm9yZGVyVGV4ZWxzKSAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxz
KTsKKyAgICBpbnQgeSA9IHNyY1BvcyAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVy
VGV4ZWxzKTsKICAgICByZXR1cm4gbWluKG1heCh5LCAwKSwgbnVtVGlsZXNZKCkgLSAxKTsKIH0K
IApAQCAtMTMyLDYgKzEzNCwxNiBAQAogICAgIHJldHVybiBib3VuZHM7CiB9CiAKK0ludFJlY3Qg
VGlsaW5nRGF0YTo6dGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcihpbnQgdGlsZSkgY29uc3QKK3sK
KyAgICBJbnRSZWN0IGJvdW5kcyA9IHRpbGVCb3VuZHModGlsZSk7CisKKyAgICBpZiAobV9ib3Jk
ZXJUZXhlbHMpCisgICAgICAgIGJvdW5kcy5pbmZsYXRlKDEpOworCisgICAgcmV0dXJuIGJvdW5k
czsKK30KKwogRmxvYXRSZWN0IFRpbGluZ0RhdGE6OnRpbGVCb3VuZHNOb3JtYWxpemVkKGludCB0
aWxlKSBjb25zdAogewogICAgIGFzc2VydFRpbGUodGlsZSk7CkBAIC0xNjgsOCArMTgwLDYgQEAK
IAogICAgIGlmICgheEluZGV4ICYmIG1fbnVtVGlsZXNYID09IDEpCiAgICAgICAgIHJldHVybiBt
X3RvdGFsU2l6ZVg7Ci0gICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxlc1ggPiAxKQotICAgICAg
ICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZSAtIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh4SW5k
ZXggPCBudW1UaWxlc1goKSAtIDEpCiAgICAgICAgIHJldHVybiBtX21heFRleHR1cmVTaXplIC0g
MiAqIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh4SW5kZXggPT0gbnVtVGlsZXNYKCkgLSAxKQpA
QCAtMTg1LDggKzE5NSw2IEBACiAKICAgICBpZiAoIXlJbmRleCAmJiBtX251bVRpbGVzWSA9PSAx
KQogICAgICAgICByZXR1cm4gbV90b3RhbFNpemVZOwotICAgIGlmICgheUluZGV4ICYmIG1fbnVt
VGlsZXNZID4gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSBtX2JvcmRlclRl
eGVsczsKICAgICBpZiAoeUluZGV4IDwgbnVtVGlsZXNZKCkgLSAxKQogICAgICAgICByZXR1cm4g
bV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVsczsKICAgICBpZiAoeUluZGV4ID09
IG51bVRpbGVzWSgpIC0gMSkKQEAgLTIzMCw4ICsyMzgsOCBAQAogCiAgICAgKm5ld1NyYyA9IHNy
Y1JlY3RJbnRlcnNlY3RlZDsKICAgICBuZXdTcmMtPm1vdmUoCi0gICAgICAgIC10aWxlQm91bmRz
LngoKSArICgodGlsZVhJbmRleCh0aWxlKSA+IDApID8gbV9ib3JkZXJUZXhlbHMgOiAwKSwKLSAg
ICAgICAgLXRpbGVCb3VuZHMueSgpICsgKCh0aWxlWUluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRl
clRleGVscyA6IDApKTsKKyAgICAgICAgLXRpbGVCb3VuZHMueCgpICsgbV9ib3JkZXJUZXhlbHMs
CisgICAgICAgIC10aWxlQm91bmRzLnkoKSArIG1fYm9yZGVyVGV4ZWxzKTsKIAogICAgICpuZXdE
c3QgPSBGbG9hdFJlY3QoCiAgICAgICAgIHNyY1JlY3RJbnRlcnNlY3RlZE5vcm1YICogZHN0UmVj
dC53aWR0aCgpICsgZHN0UmVjdC54KCksCkBAIC0yNDIsMTAgKzI1MCw3IEBACiAKIEludFBvaW50
IFRpbGluZ0RhdGE6OnRleHR1cmVPZmZzZXQoaW50IHhJbmRleCwgaW50IHlJbmRleCkgY29uc3QK
IHsKLSAgICBpbnQgbGVmdCA9ICgheEluZGV4IHx8IG1fbnVtVGlsZXNYID09IDEpID8gMCA6IG1f
Ym9yZGVyVGV4ZWxzOwotICAgIGludCB0b3AgPSAoIXlJbmRleCB8fCBtX251bVRpbGVzWSA9PSAx
KSA/IDAgOiBtX2JvcmRlclRleGVsczsKLQotICAgIHJldHVybiBJbnRQb2ludChsZWZ0LCB0b3Ap
OworICAgIHJldHVybiBJbnRQb2ludChtX2JvcmRlclRleGVscywgbV9ib3JkZXJUZXhlbHMpOwog
fQogCiB2b2lkIFRpbGluZ0RhdGE6OnJlY29tcHV0ZU51bVRpbGVzKCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaAkocmV2aXNp
b24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5n
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBACiAKICAgICBJbnRSZWN0IHRp
bGVCb3VuZHMoaW50IHRpbGUpIGNvbnN0OwogICAgIEludFJlY3QgdGlsZUJvdW5kc1dpdGhCb3Jk
ZXIoaW50IHRpbGUpIGNvbnN0OworICAgIEludFJlY3QgdGlsZUJvdW5kc1dpdGhPdXRlckJvcmRl
cihpbnQgdGlsZSkgY29uc3Q7CiAgICAgRmxvYXRSZWN0IHRpbGVCb3VuZHNOb3JtYWxpemVkKGlu
dCB0aWxlKSBjb25zdDsKICAgICBpbnQgdGlsZVBvc2l0aW9uWChpbnQgeEluZGV4KSBjb25zdDsK
ICAgICBpbnQgdGlsZVBvc2l0aW9uWShpbnQgeUluZGV4KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21l
dHJ5QmluZGluZy5oCShyZXZpc2lvbiA4ODYxNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCwxNSArMjgsMzAgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAorI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCitlbnVtIEVkZ2VGaWx0
ZXIgeworICAgIEZpbHRlckxlZnRFZGdlICAgPSAxIDw8IDAsCisgICAgRmlsdGVyVG9wRWRnZSAg
ICA9IDEgPDwgMSwKKyAgICBGaWx0ZXJSaWdodEVkZ2UgID0gMSA8PCAyLAorICAgIEZpbHRlckJv
dHRvbUVkZ2UgPSAxIDw8IDMKK307Cit0eXBlZGVmIHVuc2lnbmVkIEVkZ2VGaWx0ZXJGbGFnczsK
KwogY2xhc3MgR2VvbWV0cnlCaW5kaW5nIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBHZW9tZXRy
eUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqKTsKKyAgICBHZW9tZXRyeUJpbmRpbmcoR3JhcGhp
Y3NDb250ZXh0M0QqLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmLAorICAgICAgICAgICAg
ICAgICAgICBFZGdlRmlsdGVyRmxhZ3MpOwogICAgIH5HZW9tZXRyeUJpbmRpbmcoKTsKIAogICAg
IGJvb2wgaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxpemVkOyB9CkBAIC00
NSw3ICs2MCw3IEBACiAgICAgdW5zaWduZWQgcXVhZFZlcnRpY2VzVmJvKCkgY29uc3QgeyByZXR1
cm4gbV9xdWFkVmVydGljZXNWYm87IH0KICAgICB1bnNpZ25lZCBxdWFkRWxlbWVudHNWYm8oKSBj
b25zdCB7IHJldHVybiBtX3F1YWRFbGVtZW50c1ZibzsgfQogCi0gICAgdm9pZCBwcmVwYXJlRm9y
RHJhdygpOworICAgIHZvaWQgcHJlcGFyZUZvckRyYXcoKSBjb25zdDsKIAogICAgIC8vIEFsbCBs
YXllciBzaGFkZXJzIHNoYXJlIHRoZSBzYW1lIGF0dHJpYnV0ZSBsb2NhdGlvbnMgZm9yIHRoZSB2
ZXJ0ZXgKICAgICAvLyBwb3NpdGlvbnMgYW5kIHRleHR1cmUgY29vcmRpbmF0ZXMuIFRoaXMgYWxs
b3dzIHN3aXRjaGluZyBzaGFkZXJzIHdpdGhvdXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNo
cm9taXVtLmNwcAkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTGF5ZXJUaWxlckNocm9taXVtLmgiCiAKICNpbmNs
dWRlICJFeHRlbnNpb25zM0RDaHJvbWl1bS5oIgorI2luY2x1ZGUgIkdlb21ldHJ5QmluZGluZy5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNELmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiCkBAIC03OCw3ICs3OSw2
IEBACiAgICAgcmVzZXQoKTsKIAogICAgIG1fdGlsZVNpemUgPSBzaXplOwotICAgIG1fdGlsaW5n
RGF0YS5zZXRNYXhUZXh0dXJlU2l6ZShtYXgoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7
CiB9CiAKIExheWVyVGV4dHVyZSogTGF5ZXJUaWxlckNocm9taXVtOjpnZXRTaW5nbGVUZXh0dXJl
KCkKQEAgLTE3OSwxMSArMTc5LDE1IEBACiBJbnRSZWN0IExheWVyVGlsZXJDaHJvbWl1bTo6dGls
ZUxheWVyUmVjdChjb25zdCBUaWxlKiB0aWxlKSBjb25zdAogewogICAgIGNvbnN0IGludCBpbmRl
eCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpOwotICAgIElu
dFJlY3QgbGF5ZXJSZWN0ID0gbV90aWxpbmdEYXRhLnRpbGVCb3VuZHNXaXRoQm9yZGVyKGluZGV4
KTsKLSAgICBsYXllclJlY3Quc2V0U2l6ZShtX3RpbGVTaXplKTsKLSAgICByZXR1cm4gbGF5ZXJS
ZWN0OworICAgIHJldHVybiBtX3RpbGluZ0RhdGEudGlsZUJvdW5kc1dpdGhCb3JkZXIoaW5kZXgp
OwogfQogCitJbnRSZWN0IExheWVyVGlsZXJDaHJvbWl1bTo6dGlsZVRleFJlY3QoY29uc3QgVGls
ZSogdGlsZSkgY29uc3QKK3sKKyAgICBjb25zdCBpbnQgaW5kZXggPSBtX3RpbGluZ0RhdGEudGls
ZUluZGV4KHRpbGUtPmkoKSwgdGlsZS0+aigpKTsKKyAgICByZXR1cm4gbV90aWxpbmdEYXRhLnRp
bGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIoaW5kZXgpOworfQorCiB2b2lkIExheWVyVGlsZXJDaHJv
bWl1bTo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpCiB7CiAgICAg
aWYgKGNvbnRlbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3NraXBzRHJhdykKQEAgLTIzNSw2ICsyMzks
NyBAQAogICAgIC8vIENyZWF0ZSB0aWxlcyBhcyBuZWVkZWQsIGV4cGFuZGluZyBhIGRpcnR5IHJl
Y3QgdG8gY29udGFpbiBhbGwKICAgICAvLyB0aGUgZGlydHkgcmVnaW9ucyBjdXJyZW50bHkgYmVp
bmcgZHJhd24uCiAgICAgSW50UmVjdCBkaXJ0eUxheWVyUmVjdDsKKyAgICBJbnRTaXplIHRpbGVT
aXplOwogICAgIGludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207CiAgICAgY29udGVudFJlY3RU
b1RpbGVJbmRpY2VzKGNvbnRlbnRSZWN0LCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOwogICAg
IGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyArK2opIHsKQEAgLTI0MiwxMSArMjQ3LDE1
IEBACiAgICAgICAgICAgICBUaWxlKiB0aWxlID0gdGlsZUF0KGksIGopOwogICAgICAgICAgICAg
aWYgKCF0aWxlKQogICAgICAgICAgICAgICAgIHRpbGUgPSBjcmVhdGVUaWxlKGksIGopOwotICAg
ICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPmlzVmFsaWQobV90aWxlU2l6ZSwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQkEpKQorCisgICAgICAgICAgICBJbnRTaXplIHRleFNpemUgPSB0aWxl
VGV4UmVjdCh0aWxlKS5zaXplKCk7CisgICAgICAgICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+
aXNWYWxpZCh0ZXhTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpCiAgICAgICAgICAgICAg
ICAgdGlsZS0+bV9kaXJ0eUxheWVyUmVjdCA9IHRpbGVMYXllclJlY3QodGlsZSk7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGls
ZVNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKTsKKyAgICAgICAgICAgICAgICB0aWxlLT50
ZXh0dXJlKCktPnJlc2VydmUodGV4U2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpOwogICAg
ICAgICAgICAgZGlydHlMYXllclJlY3QudW5pdGUodGlsZS0+bV9kaXJ0eUxheWVyUmVjdCk7CisK
KyAgICAgICAgICAgIHRpbGVTaXplID0gdGlsZVNpemUuZXhwYW5kZWRUbyh0ZXhTaXplKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMjU5LDcgKzI2OCw3IEBACiAgICAgaWYgKGRpcnR5TGF5ZXJS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90ZXh0dXJlVXBkYXRlci0+
cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRSZWN0LCBtX3RpbGVTaXplLCBtX3RpbGluZ0RhdGEuYm9y
ZGVyVGV4ZWxzKCkpOworICAgIG1fdGV4dHVyZVVwZGF0ZXItPnByZXBhcmVUb1VwZGF0ZShtX3Bh
aW50UmVjdCwgdGlsZVNpemUsIG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSk7CiB9CiAKIHZv
aWQgTGF5ZXJUaWxlckNocm9taXVtOjp1cGRhdGVSZWN0KCkKQEAgLTI4Miw3ICsyOTEsOCBAQAog
CiAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgcGFnZS1zcGFjZSByZWN0YW5nbGUgdG8gY29weSBm
cm9tLgogICAgICAgICAgICAgSW50UmVjdCBzb3VyY2VSZWN0ID0gdGlsZUNvbnRlbnRSZWN0KHRp
bGUpOwotICAgICAgICAgICAgY29uc3QgSW50UG9pbnQgYW5jaG9yID0gc291cmNlUmVjdC5sb2Nh
dGlvbigpOworICAgICAgICAgICAgSW50UmVjdCB0ZXhSZWN0ID0gdGlsZVRleFJlY3QodGlsZSk7
CisgICAgICAgICAgICBjb25zdCBJbnRQb2ludCBhbmNob3IgPSB0ZXhSZWN0LmxvY2F0aW9uKCk7
CiAgICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChsYXllclJlY3RUb0NvbnRlbnRSZWN0
KHRpbGUtPm1fZGlydHlMYXllclJlY3QpKTsKICAgICAgICAgICAgIC8vIFBhaW50IHJlY3Qgbm90
IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBvbiB0aWxlIGJvdW5kYXJpZXMsIHNvCiAgICAgICAgICAg
ICAvLyBtYWtlIHN1cmUgdGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3QgZXh0ZW5kIG91dHNpZGUgb2Yg
aXQuCkBAIC0yOTEsNyArMzAxLDcgQEAKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPmlzUmVzZXJ2ZWQoKSkgewotICAgICAgICAg
ICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGlsZVNpemUsIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBKSkgeworICAgICAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgp
LT5yZXNlcnZlKHRleFJlY3Quc2l6ZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpIHsKICAg
ICAgICAgICAgICAgICAgICAgbV9za2lwc0RyYXcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAg
ICByZXNldCgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0zNjksOCArMzc5LDkg
QEAKICAgICAgICAgICAgIHRpbGVNYXRyaXgudHJhbnNsYXRlM2QodGlsZVJlY3QueCgpICsgdGls
ZVJlY3Qud2lkdGgoKSAvIDIuMCwgdGlsZVJlY3QueSgpICsgdGlsZVJlY3QuaGVpZ2h0KCkgLyAy
LjAsIDApOwogCiAgICAgICAgICAgICBJbnRQb2ludCB0ZXhPZmZzZXQgPSBtX3RpbGluZ0RhdGEu
dGV4dHVyZU9mZnNldCh0aWxlLT5pKCksIHRpbGUtPmooKSkgKyBvZmZzZXQ7Ci0gICAgICAgICAg
ICBmbG9hdCB0aWxlV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4obV90aWxlU2l6ZS53aWR0aCgp
KTsKLSAgICAgICAgICAgIGZsb2F0IHRpbGVIZWlnaHQgPSBzdGF0aWNfY2FzdDxmbG9hdD4obV90
aWxlU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4
UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGZsb2F0IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0PGZs
b2F0Pih0ZXhSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgZmxvYXQgdGlsZUhlaWdodCA9IHN0
YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LmhlaWdodCgpKTsKICAgICAgICAgICAgIGZsb2F0IHRl
eFRyYW5zbGF0ZVggPSB0ZXhPZmZzZXQueCgpIC8gdGlsZVdpZHRoOwogICAgICAgICAgICAgZmxv
YXQgdGV4VHJhbnNsYXRlWSA9IHRleE9mZnNldC55KCkgLyB0aWxlSGVpZ2h0OwogICAgICAgICAg
ICAgZmxvYXQgdGV4U2NhbGVYID0gdGlsZVJlY3Qud2lkdGgoKSAvIHRpbGVXaWR0aDsKQEAgLTM4
MSw3ICszOTIsMzggQEAKICAgICAgICAgICAgICAgICB0ZXhUcmFuc2xhdGVZID0gMS4wIC0gdGV4
VHJhbnNsYXRlWTsKICAgICAgICAgICAgICAgICB0ZXhTY2FsZVkgKj0gLTEuMDsKICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgT3duUHRyPEdlb21ldHJ5QmluZGluZz4gZ2VvbWV0cnk7CisK
KyAgICAgICAgICAgIC8vIENyZWF0ZSBnZW9tZXRyeSBiaW5kaW5nIGFkanVzdGVkIGZvciBmaWx0
ZXJpbmcgb2YgbGF5ZXIgZWRnZXMuCisgICAgICAgICAgICBpZiAobV90aWxpbmdEYXRhLmJvcmRl
clRleGVscygpKSB7CisgICAgICAgICAgICAgICAgaW50IG51bVRpbGVzWCA9IG1fdGlsaW5nRGF0
YS5udW1UaWxlc1goKTsKKyAgICAgICAgICAgICAgICBpbnQgbnVtVGlsZXNZID0gbV90aWxpbmdE
YXRhLm51bVRpbGVzWSgpOworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IG1fdGlsaW5nRGF0
YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpOworICAgICAgICAgICAgICAgIEVkZ2VG
aWx0ZXJGbGFncyBmaWx0ZXIgPSAwOworCisgICAgICAgICAgICAgICAgaWYgKCFtX3RpbGluZ0Rh
dGEudGlsZVhJbmRleChpbmRleCkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0
ZXJMZWZ0RWRnZTsKKyAgICAgICAgICAgICAgICBpZiAoIW1fdGlsaW5nRGF0YS50aWxlWUluZGV4
KGluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyIHw9IEZpbHRlclRvcEVkZ2U7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWEluZGV4KGluZGV4KSA9PSAobnVt
VGlsZXNYIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0ZXJSaWdodEVk
Z2U7CisgICAgICAgICAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS50aWxlWUluZGV4KGluZGV4KSA9
PSAobnVtVGlsZXNZIC0gMSkpCisgICAgICAgICAgICAgICAgICAgIGZpbHRlciB8PSBGaWx0ZXJC
b3R0b21FZGdlOworCisgICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBhZG9wdFB0cihuZXcgR2Vv
bWV0cnlCaW5kaW5nKGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbGVNYXRyaXgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVSZWN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIpKTsKKwor
ICAgICAgICAgICAgICAgIGdlb21ldHJ5LT5wcmVwYXJlRm9yRHJhdygpOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBkcmF3VGV4dHVyZWRRdWFkKGNvbnRleHQsIGxheWVyUmVuZGVyZXIo
KS0+cHJvamVjdGlvbk1hdHJpeCgpLCB0aWxlTWF0cml4LCB0aWxlUmVjdC53aWR0aCgpLCB0aWxl
UmVjdC5oZWlnaHQoKSwgb3BhY2l0eSwgdGV4VHJhbnNsYXRlWCwgdGV4VHJhbnNsYXRlWSwgdGV4
U2NhbGVYLCB0ZXhTY2FsZVksIHByb2dyYW0pOworCisgICAgICAgICAgICAvLyBSZXN0b3JlIGRl
ZmF1bHQgZ2VvbWV0cnkgYmluZGluZy4KKyAgICAgICAgICAgIGlmIChtX3RpbGluZ0RhdGEuYm9y
ZGVyVGV4ZWxzKCkpCisgICAgICAgICAgICAgICAgbGF5ZXJSZW5kZXJlcigpLT5zaGFyZWRHZW9t
ZXRyeSgpLT5wcmVwYXJlRm9yRHJhdygpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzkxLDkg
KzQzMywyMSBAQAogICAgIC8vIEdyb3cgdGhlIHRpbGUgYXJyYXkgdG8gY29udGFpbiB0aGlzIGNv
bnRlbnQgcmVjdC4KICAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGNvbnRlbnRSZWN0VG9MYXllclJl
Y3QoY29udGVudFJlY3QpOwogICAgIEludFNpemUgcmVjdFNpemUgPSBJbnRTaXplKGxheWVyUmVj
dC5tYXhYKCksIGxheWVyUmVjdC5tYXhZKCkpOworICAgIEludFNpemUgdGV4U2l6ZSA9IG1fdGls
ZVNpemU7CiAKKyAgICAvLyBVc2UgcmVjdCB3aXRoIGJvcmRlciB0ZXhlbHMgYXMgbWF4IHRleHR1
cmUgc2l6ZSB3aGVuIHRpbGUgc2l6ZQorICAgIC8vIGhhcyBub3QgYmVlbiBzcGVjaWZpZWQuCisg
ICAgaWYgKHRleFNpemUuaXNFbXB0eSgpKSB7CisgICAgICAgIHRleFNpemUgPSByZWN0U2l6ZTsK
KyAgICAgICAgaWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkKKyAgICAgICAgICAgIHRl
eFNpemUuZXhwYW5kKDIsIDIpOworICAgIH0KKworICAgIG1fdGlsaW5nRGF0YS5zZXRNYXhUZXh0
dXJlU2l6ZShtYXgodGV4U2l6ZS53aWR0aCgpLCB0ZXhTaXplLmhlaWdodCgpKSk7CisKICAgICBJ
bnRTaXplIG9sZExheWVyU2l6ZShtX3RpbGluZ0RhdGEudG90YWxTaXplWCgpLCBtX3RpbGluZ0Rh
dGEudG90YWxTaXplWSgpKTsKICAgICBJbnRTaXplIG5ld1NpemUgPSByZWN0U2l6ZS5leHBhbmRl
ZFRvKG9sZExheWVyU2l6ZSk7CisKICAgICBtX3RpbGluZ0RhdGEuc2V0VG90YWxTaXplKG5ld1Np
emUud2lkdGgoKSwgbmV3U2l6ZS5oZWlnaHQoKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVu
dExheWVyQ2hyb21pdW0uaAkocmV2aXNpb24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNv
cHkpCkBAIC04NSw2ICs4NSw3IEBACiAKICAgICBPd25QdHI8TGF5ZXJUaWxlckNocm9taXVtPiBt
X3RpbGVyOwogICAgIFRpbGluZ09wdGlvbiBtX3RpbGluZ09wdGlvbjsKKyAgICBib29sIG1fYm9y
ZGVyVGV4ZWxzOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHJl
dmlzaW9uIDg4NjE2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsNyBA
QAogICAgIFRpbGUqIHRpbGVBdChpbnQsIGludCkgY29uc3Q7CiAgICAgSW50UmVjdCB0aWxlQ29u
dGVudFJlY3QoY29uc3QgVGlsZSopIGNvbnN0OwogICAgIEludFJlY3QgdGlsZUxheWVyUmVjdChj
b25zdCBUaWxlKikgY29uc3Q7CisgICAgSW50UmVjdCB0aWxlVGV4UmVjdChjb25zdCBUaWxlKikg
Y29uc3Q7CiAKICAgICBJbnRTaXplIG1fdGlsZVNpemU7CiAgICAgSW50UG9pbnQgbV9sYXllclBv
c2l0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAkocmV2aXNp
b24gODg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
b250ZW50TGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogLy8gU3RhcnQgdGlsaW5nIHdoZW4gdGhl
IHdpZHRoIGFuZCBoZWlnaHQgb2YgYSBsYXllciBhcmUgbGFyZ2VyIHRoYW4gdGhpcyBzaXplLgot
c3RhdGljIGludCBtYXhVbnRpbGVkU2l6ZSA9IDUxMjsKK3N0YXRpYyBpbnQgbWF4VW50aWxlZFNp
emUgPSA1MTA7CiAKIC8vIFdoZW4gdGlsaW5nIGlzIGVuYWJsZWQsIHVzZSB0aWxlcyBvZiB0aGlz
IGRpbWVuc2lvbiBzcXVhcmVkLgogc3RhdGljIGludCBkZWZhdWx0VGlsZVNpemUgPSAyNTY7CkBA
IC04Niw2ICs4Niw3IEBACiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21p
dW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKICAgICA6IExheWVyQ2hyb21pdW0ob3du
ZXIpCiAgICAgLCBtX3RpbGluZ09wdGlvbihDb250ZW50TGF5ZXJDaHJvbWl1bTo6QXV0b1RpbGUp
CisgICAgLCBtX2JvcmRlclRleGVscyh0cnVlKQogewogfQogCkBAIC0xODUsNyArMTg2LDcgQEAK
ICAgICBpZiAoIW1fdGlsZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IEludFNpemUg
dGlsZVNpemUobWluKGRlZmF1bHRUaWxlU2l6ZSwgbGF5ZXJTaXplLndpZHRoKCkpLCBtaW4oZGVm
YXVsdFRpbGVTaXplLCBsYXllclNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb25zdCBJbnRTaXplIHRp
bGVTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVmYXVsdFRpbGVTaXplKTsKIAogICAgIC8vIFRpbGUg
aWYgYm90aCBkaW1lbnNpb25zIGxhcmdlLCBvciBhbnkgb25lIGRpbWVuc2lvbiBsYXJnZSBhbmQg
dGhlIG90aGVyCiAgICAgLy8gZXh0ZW5kcyBpbnRvIGEgc2Vjb25kIHRpbGUuIFRoaXMgaGV1cmlz
dGljIGFsbG93cyBmb3IgbG9uZyBza2lubnkgbGF5ZXJzCkBAIC0yMDIsNyArMjAzLDggQEAKICAg
ICBlbHNlCiAgICAgICAgIGlzVGlsZWQgPSBhdXRvVGlsZWQ7CiAKLSAgICBJbnRTaXplIHJlcXVl
c3RlZFNpemUgPSBpc1RpbGVkID8gdGlsZVNpemUgOiBsYXllclNpemU7CisgICAgLy8gWmVybyB0
aWxlIHNpemUgdGVsbHMgdGhlIHRpbGVyIHRvIGF2b2lkIHRpbGluZy4KKyAgICBJbnRTaXplIHJl
cXVlc3RlZFNpemUgPSBpc1RpbGVkID8gdGlsZVNpemUgOiBJbnRTaXplKCk7CiAgICAgY29uc3Qg
aW50IG1heFNpemUgPSBsYXllclJlbmRlcmVyKCktPm1heFRleHR1cmVTaXplKCk7CiAgICAgSW50
U2l6ZSBjbGFtcGVkU2l6ZSA9IHJlcXVlc3RlZFNpemUuc2hydW5rVG8oSW50U2l6ZShtYXhTaXpl
LCBtYXhTaXplKSk7CiAgICAgbV90aWxlci0+c2V0VGlsZVNpemUoY2xhbXBlZFNpemUpOwpAQCAt
MjMwLDcgKzIzMiw4IEBACiAgICAgICAgIGxheWVyUmVuZGVyZXIoKSwKICAgICAgICAgY3JlYXRl
VGV4dHVyZVVwZGF0ZXIoKSwKICAgICAgICAgSW50U2l6ZShkZWZhdWx0VGlsZVNpemUsIGRlZmF1
bHRUaWxlU2l6ZSksCi0gICAgICAgIExheWVyVGlsZXJDaHJvbWl1bTo6SGFzQm9yZGVyVGV4ZWxz
KTsKKyAgICAgICAgbV9ib3JkZXJUZXhlbHMgPyBMYXllclRpbGVyQ2hyb21pdW06Okhhc0JvcmRl
clRleGVscyA6CisgICAgICAgIExheWVyVGlsZXJDaHJvbWl1bTo6Tm9Cb3JkZXJUZXhlbHMpOwog
fQogCiB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2Vz
KCkKQEAgLTI1OCw2ICsyNjEsNyBAQAogCiB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpzZXRJ
c01hc2soYm9vbCBpc01hc2spCiB7CisgICAgbV9ib3JkZXJUZXhlbHMgPSBmYWxzZTsKICAgICBz
ZXRUaWxpbmdPcHRpb24oaXNNYXNrID8gTmV2ZXJUaWxlIDogQXV0b1RpbGUpOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HZW9tZXRyeUJpbmRp
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAJKHJldmlzaW9uIDg4NjE2KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2VvbWV0cnlCaW5kaW5nLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3R5
cGVkZWYgRmxvYXRQb2ludDNEIEVkZ2U7CisKIEdlb21ldHJ5QmluZGluZzo6R2VvbWV0cnlCaW5k
aW5nKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQp
CiAgICAgLCBtX3F1YWRWZXJ0aWNlc1ZibygwKQpAQCAtNTksMTMgKzYxLDEyNCBAQAogICAgIG1f
aW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpc0NDVyhjb25zdCBGbG9hdFBv
aW50KiBwdHMpCit7CisgICAgRmxvYXRQb2ludCB2MSA9IEZsb2F0UG9pbnQocHRzWzFdLngoKSAt
IHB0c1swXS54KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRzWzFdLnkoKSAt
IHB0c1swXS55KCkpOworICAgIEZsb2F0UG9pbnQgdjIgPSBGbG9hdFBvaW50KHB0c1syXS54KCkg
LSBwdHNbMV0ueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0c1syXS55KCkg
LSBwdHNbMV0ueSgpKTsKKyAgICByZXR1cm4gKHYxLngoKSAqIHYyLnkoKSAtIHYxLnkoKSAqIHYy
LngoKSkgPCAwOworfQorCitzdGF0aWMgRmxvYXRQb2ludCBpbnRlcnNlY3QoY29uc3QgRWRnZSYg
YSwgY29uc3QgRWRnZSYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRQb2ludCgKKyAgICAgICAgKGEu
eSgpICogYi56KCkgLSBiLnkoKSAqIGEueigpKSAvIChhLngoKSAqIGIueSgpIC0gYi54KCkgKiBh
LnkoKSksCisgICAgICAgIChhLngoKSAqIGIueigpIC0gYi54KCkgKiBhLnooKSkgLyAoYi54KCkg
KiBhLnkoKSAtIGEueCgpICogYi55KCkpKTsKK30KKworR2VvbWV0cnlCaW5kaW5nOjpHZW9tZXRy
eUJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcmVjdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVkZ2VGaWx0ZXJGbGFncyBmaWx0ZXIpCisgICAgOiBt
X2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fcXVhZFZlcnRpY2VzVmJvKDApCisgICAgLCBtX3F1
YWRFbGVtZW50c1ZibygwKQorICAgICwgbV9pbml0aWFsaXplZChmYWxzZSkKK3sKKyAgICBpbnQg
eDEgPSByZWN0LngoKTsKKyAgICBpbnQgeTEgPSByZWN0LnkoKTsKKyAgICBpbnQgeDIgPSByZWN0
Lm1heFgoKTsKKyAgICBpbnQgeTIgPSByZWN0Lm1heFkoKTsKKworICAgIC8vIEluY2x1ZGUgYm9y
ZGVyIHRleGVscy4KKyAgICBpZiAoZmlsdGVyICYgRmlsdGVyTGVmdEVkZ2UpCisgICAgICAgIHgx
LS07CisgICAgaWYgKGZpbHRlciAmIEZpbHRlclRvcEVkZ2UpCisgICAgICAgIHkxLS07CisgICAg
aWYgKGZpbHRlciAmIEZpbHRlclJpZ2h0RWRnZSkKKyAgICAgICAgeDIrKzsKKyAgICBpZiAoZmls
dGVyICYgRmlsdGVyQm90dG9tRWRnZSkKKyAgICAgICAgeTIrKzsKKworICAgIEZsb2F0UG9pbnQg
cHRbNF07CisgICAgcHRbMF0gPSBGbG9hdFBvaW50KHgxLCB5MSk7CisgICAgcHRbMV0gPSBGbG9h
dFBvaW50KHgyLCB5MSk7CisgICAgcHRbMl0gPSBGbG9hdFBvaW50KHgyLCB5Mik7CisgICAgcHRb
M10gPSBGbG9hdFBvaW50KHgxLCB5Mik7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkr
KykKKyAgICAgICAgcHRbaV0gPSBtYXRyaXgubWFwUG9pbnQocHRbaV0pOworCisgICAgRWRnZSBl
ZGdlc1s0XTsKKyAgICBGbG9hdFBvaW50IHAgPSBwdFszXTsKKyAgICBmbG9hdCBzaWduID0gaXND
Q1cocHQpID8gLTEuMGYgOiAxLjBmOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7
CisgICAgICAgIEZsb2F0UG9pbnQgcSA9IHB0W2ldOworICAgICAgICBGbG9hdFBvaW50IHRhbmdl
bnQgPSBGbG9hdFBvaW50KHAueSgpIC0gcS55KCksIHEueCgpIC0gcC54KCkpOworICAgICAgICBm
bG9hdCBzY2FsZSA9IHNpZ24gLyB0YW5nZW50Lmxlbmd0aCgpOworICAgICAgICBmbG9hdCBjcm9z
czIgPSBwLngoKSAqIHEueSgpIC0gcS54KCkgKiBwLnkoKTsKKworICAgICAgICBlZGdlc1tpXSA9
IEVkZ2UodGFuZ2VudC54KCkgKiBzY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdl
bnQueSgpICogc2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICBjcm9zczIgKiBzY2FsZSAr
IChmaWx0ZXIgJiAoMSA8PCBpKSkgKiAwLjVmKTsKKworICAgICAgICBwID0gcTsKKyAgICB9CisK
KyAgICAvLyBXZSBkb24ndCBjYXJlIGFib3V0IFogY29tcG9uZW50LgorICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGludmVyc2UgPQorICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChtYXRyaXgu
bTExKCksIG1hdHJpeC5tMTIoKSwgMC4wLCBtYXRyaXgubTE0KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hdHJpeC5tMjEoKSwgbWF0cml4Lm0yMigpLCAwLjAsIG1hdHJpeC5tMjQo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm0zMSgpLCBtYXRyaXgubTMy
KCksIDEuMCwgbWF0cml4Lm0zNCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRy
aXgubTQxKCksIG1hdHJpeC5tNDIoKSwgMC4wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXRyaXgubTQ0KCkpLmludmVyc2UoKTsKKworICAgIGRvdWJsZSBzY2FsZVggPSAxLjAgLyBy
ZWN0LndpZHRoKCk7CisgICAgZG91YmxlIHNjYWxlWSA9IDEuMCAvIHJlY3QuaGVpZ2h0KCk7Cisg
ICAgZG91YmxlIHRyYW5zbGF0ZVggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDIuMDsKKyAg
ICBkb3VibGUgdHJhbnNsYXRlWSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDIuMDsKKwor
ICAgICAvLyBUaGUgdHdvIHRyaWFuZ2xlcyB0aGF0IG1ha2UgdXAgdGhlIGxheWVyIHF1YWQuCisg
ICAgdWludDE2X3QgaW5kaWNlc1tdID0geyAwLCAxLCAyLCAwLCAyLCAzIH07CisgICAgZmxvYXQg
dmVydGljZXNbMjBdOworCisgICAgRWRnZSBwcmV2RWRnZSA9IGVkZ2VzWzNdOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgIEVkZ2UgZWRnZSA9IGVkZ2VzW2ldOwor
CisgICAgICAgIHB0W2ldID0gaW50ZXJzZWN0KHByZXZFZGdlLCBlZGdlKTsKKyAgICAgICAgcHRb
aV0gPSBpbnZlcnNlLm1hcFBvaW50KHB0W2ldKTsKKworICAgICAgICAvLyBWZXJ0ZXggcG9zaXRp
b24gbm9ybWFsaXplZCB0byByZWN0LgorICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDBdID0gKHB0
W2ldLngoKSAtIHRyYW5zbGF0ZVgpICogc2NhbGVYOworICAgICAgICB2ZXJ0aWNlc1tpICogNSAr
IDFdID0gKHB0W2ldLnkoKSAtIHRyYW5zbGF0ZVkpICogc2NhbGVZOworICAgICAgICB2ZXJ0aWNl
c1tpICogNSArIDJdID0gMC4wZjsKKworICAgICAgICAvLyBUZXh0dXJlIGNvb3JkaW5hdGVzLgor
ICAgICAgICB2ZXJ0aWNlc1tpICogNSArIDNdID0gKHB0W2ldLngoKSAtIHJlY3QueCgpKSAqIHNj
YWxlWDsKKyAgICAgICAgdmVydGljZXNbaSAqIDUgKyA0XSA9IChwdFtpXS55KCkgLSByZWN0Lnko
KSkgKiBzY2FsZVk7CisKKyAgICAgICAgcHJldkVkZ2UgPSBlZGdlOworICAgIH0KKworICAgIEdM
QyhtX2NvbnRleHQsIG1fcXVhZFZlcnRpY2VzVmJvID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIo
KSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9xdWFkRWxlbWVudHNWYm8gPSBtX2NvbnRleHQtPmNy
ZWF0ZUJ1ZmZlcigpKTsKKyAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJpbmRCdWZmZXIo
R3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgbV9xdWFkVmVydGljZXNWYm8pKTsKKyAg
ICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmJ1ZmZlckRhdGEoR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUiwgc2l6ZW9mKHZlcnRpY2VzKSwgdmVydGljZXMsIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEFUSUNfRFJBVykpOworICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEJ1
ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIG1fcXVhZEVsZW1l
bnRzVmJvKSk7CisgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBo
aWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKGluZGljZXMpLCBpbmRp
Y2VzLCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpKTsKKworICAgIG1faW5pdGlhbGl6
ZWQgPSB0cnVlOworfQorCiBHZW9tZXRyeUJpbmRpbmc6On5HZW9tZXRyeUJpbmRpbmcoKQogewog
ICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+ZGVsZXRlQnVmZmVyKG1fcXVhZFZlcnRpY2Vz
VmJvKSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxldGVCdWZmZXIobV9xdWFk
RWxlbWVudHNWYm8pKTsKIH0KIAotdm9pZCBHZW9tZXRyeUJpbmRpbmc6OnByZXBhcmVGb3JEcmF3
KCkKK3ZvaWQgR2VvbWV0cnlCaW5kaW5nOjpwcmVwYXJlRm9yRHJhdygpIGNvbnN0CiB7CiAgICAg
R0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpB
UlJBWV9CVUZGRVIsIHF1YWRWZXJ0aWNlc1ZibygpKSk7CiAgICAgR0xDKG1fY29udGV4dCwgbV9j
b250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZF
UiwgcXVhZEVsZW1lbnRzVmJvKCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97931</attachid>
            <date>2011-06-20 22:28:54 -0700</date>
            <delta_ts>2011-06-22 14:05:33 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-gpu-anti-aliasing-v9.diff</filename>
            <type>text/plain</type>
            <size>57861</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0YVRlc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0YVRlc3Qu
Y3BwCShyZXZpc2lvbiA4OTMzNSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGls
aW5nRGF0YVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAKIFRFU1Qo
VGlsaW5nRGF0YVRlc3QsIG51bVRpbGVzX05vVGlsaW5nKQogewogICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDE2LCAxNiwgMTYsIGZhbHNlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSgxNiwgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgxNiwgMTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgxNywgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxOCwgMTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKICAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwgIDEsIDE2LCBmYWxzZSkubnVtVGlsZXMoKSk7
Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMTUsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMo
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMTcsIDE1LCAxNSwgdHJ1ZSkubnVtVGls
ZXMoKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIG51bVRpbGVzX1RpbGluZ05vQm9yZGVy
cykKQEAgLTEwOSw0NSArMTA5LDQ1IEBACiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoLTEs
IDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgw
LCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwogCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMSwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgxLCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDEsICAxLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMSwgIDIsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgyLCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDIsICAxLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMiwgIDIsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgyLCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDIsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgMSwgIDMsIHRydWUpLm51bVRpbGVzKCkp
OwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAyLCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDMsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgNCwgIDMsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICA1LCAgMywgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgIDYsICAzLCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAgNywgIDMsIHRydWUp
Lm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMSwgdHJ1
ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgIDEsICAyLCB0
cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMiwgIDEs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAyLCAg
MiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgIDIs
ICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAg
MywgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMs
ICAzLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSg0LCAgMSwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDQsICAyLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoNCwgIDMsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSg0LCAgNCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBU
aWxpbmdEYXRhKDQsICA1LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNCwgIDYsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSg0LCAgNywgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDQsICA4LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoNCwgIDksICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAxMCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVY
UEVDVF9FUSg1LCBUaWxpbmdEYXRhKDQsIDExLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDQsICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDQsICAyLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg0LCAgNSwgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQsICA2LCAgMiwgdHJ1ZSkubnVtVGls
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNCwgIDcsICAyLCB0cnVlKS5udW1U
aWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgOCwgIDIsIHRydWUpLm51
bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDQsICA5LCAgMiwgdHJ1ZSku
bnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTAsICAyLCB0cnVl
KS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSg0LCAxMSwgIDIsIHRy
dWUpLm51bVRpbGVzKCkpOwogCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDEsICA1
LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMiwg
IDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAz
LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwg
IDQsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1
LCAgNSwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRh
KDUsICA2LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoNSwgIDcsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5n
RGF0YSg1LCAgOCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDUsICA5LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoNSwgMTAsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAxMSwgIDUsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDUsICAxLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoNSwgIDIsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSg1LCAgMywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSgyLCBUaWxpbmdEYXRhKDUsICA0LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDUsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA3LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICAzLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOSwgIDMsIHRydWUpLm51bVRpbGVzKCkp
OworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTEsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVhJbmRleEZyb21TcmNDb29yZCkK
QEAgLTE2NiwxNyArMTY2LDE3IEBACiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCBmYWxzZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKLSAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoNCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBFWFBF
Q1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoNykpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVhJbmRleEZyb21TcmNDb29yZCg4KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1RfRVEo
NywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTAp
KTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMTEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwg
MTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBU
aWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJv
bVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAgRVhQ
RUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nv
b3JkKDYpKTsKKyAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVYSW5kZXhGcm9tU3JjQ29vcmQoNykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNUX0VR
KDksIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkp
KTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMTApKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwg
MTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDEsIDEsIDEsIGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsK
ICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgwKSk7CkBAIC0xOTQsMTMgKzE5NCwxMyBAQAogICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDIsIDIsIDIsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwogICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoMSkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRp
bGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMs
IDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMikpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUp
LnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMikpOwogCi0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgx
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMywg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGlu
Z0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29y
ZCgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgNCwg
MywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgzKSk7CiB9CiBURVNUKFRpbGluZ0RhdGFU
ZXN0LCB0aWxlWUluZGV4RnJvbVNyY0Nvb3JkKQogewpAQCAtMjE4LDE3ICsyMTgsMTcgQEAKICAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIGZhbHNlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDExKSk7CiAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAs
IHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUp
LnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3Jk
KDUpKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoNikpOwotICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcs
IFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsK
LSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhG
cm9tU3JjQ29vcmQoOSkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOworICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29y
ZCg0KSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxl
WUluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3
LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7
CisgICAgRVhQRUNUX0VRKDgsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDgpKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAs
IHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOworICAg
IEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFs
c2UpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsIDIsIDIsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTI0Niw2
MSArMjQ2LDYxIEBACiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSku
dGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MiwgMiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CiAgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7
Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZy
b21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNU
X0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgy
KSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUlu
ZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxl
WUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAz
LCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYKQogewogICAg
IEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWCgwKSk7
Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVgo
MCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNp
emVYKDApKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2Up
LnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBm
YWxzZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwg
IDYsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwg
IDYsICA2LCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwg
VGlsaW5nRGF0YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQ
RUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAg
IEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgw
KSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6
ZVgoMSkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSku
dGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZh
bHNlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAx
MCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAx
MCwgMTAsIHRydWUpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEo
NSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBU
aWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWCgyKSk7CiAgICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogfQogVEVT
VChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRp
bGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKIAogICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDEpKTsK
LSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgw
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6
ZVkoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGls
ZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUp
LnRpbGVTaXplWSgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgs
IGZhbHNlKS50aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4
LCAgOCwgZmFsc2UpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEo
NSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogCiAgICAgRVhQRUNU
X0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAgICBF
WFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMSkpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXpl
WSgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxl
U2l6ZVkoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSku
dGlsZVNpemVZKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwg
dHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwg
MTEsIHRydWUpLnRpbGVTaXplWSgyKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
MTIsIDEyLCB0cnVlKS50aWxlU2l6ZVkoMikpOwogfQogCkBAIC0zMTksMTAgKzMxOSwxMCBAQAog
ICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9u
WCgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVlKS50aWxl
U2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEsIDEwMCwgdHJ1ZSku
dGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgICAx
LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMs
ICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgMywgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDMsIDMsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgMywgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDUsIDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkp
OworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUsIDMsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0
aW9uWCgwKSk7CiAKICAgICAvLyBNdWx0aXBsZSB0aWxlczoKICAgICAvLyBubyBib3JkZXIKQEAg
LTM0MCwyMyArMzQwLDIzIEBACiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBi
b3JkZXIKICAgICAvLyBwb3NpdGlvbnMgMCwgMiwgMywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxp
bmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9z
aXRpb25YKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUp
LnRpbGVQb3NpdGlvblgoMikpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAg
MSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
MywgNiwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9F
USgwLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAg
RVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDEp
KTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3Np
dGlvblgoMikpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSku
dGlsZVBvc2l0aW9uWCgzKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNCwgICAx
LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAg
IDEsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywg
NCwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDMsIDQsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgy
KSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9z
aXRpb25YKDMpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUp
LnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0
cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEw
MCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0
LCAxMDAsIHRydWUpLnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9F
USgyLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAg
RVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDMp
KTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZX2FuZF90aWxlUG9zaXRpb25Z
KQpAQCAtMzc0LDEwICszNzQsMTAgQEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAg
IDEsIDEsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsIDEwMCwgMSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSgzLCAxMDAsIDEsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDMsICAgMSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwot
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDMsIHRydWUpLnRpbGVQb3Np
dGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICAgMSwgMywgdHJ1ZSku
dGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAgIDEsIDMsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEw
MCwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1
LCAxMDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwogCiAgICAgLy8gTXVsdGlwbGUgdGls
ZXM6CiAgICAgLy8gbm8gYm9yZGVyCkBAIC0zOTUsMjMgKzM5NSwyMyBAQAogICAgIC8vIE11bHRp
cGxlIHRpbGVzOgogICAgIC8vIHdpdGggYm9yZGVyCiAgICAgLy8gcG9zaXRpb25zIDAsIDIsIDMs
IDQKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLm51bVRpbGVz
KCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNp
emVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRp
bGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVl
KS50aWxlU2l6ZVkoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwg
dHJ1ZSkudGlsZVNpemVZKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEs
IDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRh
KDMsICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1Rf
RVEoNCwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOwotICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVTaXplWSgx
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6
ZVkoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGls
ZVNpemVZKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUp
LnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwg
NiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEo
MywgMTAwLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGls
aW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOworICAgIEVYUEVDVF9F
USg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNU
X0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVko
MykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBv
c2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVl
KS50aWxlUG9zaXRpb25ZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgIDEs
IDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgw
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9z
aXRpb25ZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUp
LnRpbGVQb3NpdGlvblkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwg
NCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHNl
dFRvdGFsU2l6ZSkKQEAgLTQ2OCw3ICs0NjgsNyBAQAogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCBz
ZXRNYXhUZXh0dXJlU2l6ZUJvcmRlcnMpCiB7Ci0gICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAz
MiwgdHJ1ZSk7CisgICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAzMCwgdHJ1ZSk7CiAgICAgRVhQ
RUNUX0VRKDMsIGRhdGEubnVtVGlsZXNYKCkpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRp
bGVzWSgpKTsKIApAQCAtNDg0LDcgKzQ4NCw3IEBACiAKICAgICBkYXRhLnNldE1heFRleHR1cmVT
aXplKDUpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm1heFRleHR1cmVTaXplKCkpOwotICAgIEVY
UEVDVF9FUSg1LCBkYXRhLm51bVRpbGVzWCgpKTsKKyAgICBFWFBFQ1RfRVEoNiwgZGF0YS5udW1U
aWxlc1goKSk7CiAgICAgRVhQRUNUX0VRKDEwLCBkYXRhLm51bVRpbGVzWSgpKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg5MzM1KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0yMSAgRGF2aWQgUmV2ZW1hbiAg
PHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gRWRnZSBhbnRpLWFsaWFzaW5nIGZvciBjb21wb3Np
dGVkIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxMzg4CisKKyAgICAgICAgVHJhY2sgY2hhbmdlcyB0byBUaWxpbmdEYXRhIGNsYXNzIHdo
aWNoIG5vdyB1c2VzIGFuIG91dGVyIGJvcmRlci4KKworICAgICAgICAqIGNocm9taXVtL3Rlc3Rz
L1RpbGluZ0RhdGFUZXN0LmNwcDoKKwogMjAxMS0wNi0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiA4OTMzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBACisyMDExLTA2LTIxICBEYXZpZCBSZXZlbWFuICA8
cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcgZm9yIGNvbXBvc2l0
ZWQgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjEzODgKKworICAgICAgICBBZGQgdHJhbnNwYXJlbnQgb3V0ZXIgYm9yZGVyIHRvIHRpbGVk
IGxheWVycyBhbmQgYWRqdXN0IHZlcnRleAorICAgICAgICBjb29yZGluYXRlcyBzbyB0aGF0IHVz
ZSBvZiBhIGJpbGluZWFyIGZpbHRlciBjcmVhdGVzIGEgc21vb3RoCisgICAgICAgIGxheWVyIGVk
Z2UuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3Rpbnkt
bGF5ZXItcm90YXRlZC5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy9odWdlLWxheWVyLXJvdGF0ZWQuaHRtbCAoZXhpc3RpbmcpCisgICAgICAgICAgICAg
ICBUaWxpbmdEYXRhVGVzdCBpbiB3ZWJraXRfdW5pdF90ZXN0cworCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICBD
aGFuZ2UgbWF4VW50aWxlZFNpemUgdG8gNTEwIHRvIGVuc3VyZSB0aGF0IHRpbGVzIGFyZSBub3Qg
Z3JlYXRlcgorICAgICAgICB0aGFuIDUxMiB3aXRoIG91dGVyIGJvcmRlcnMuCisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJTaXplKTogV2UgY2FuJ3Qg
dXNlIHRoZQorICAgICAgICBsYXllciBzaXplIGFzIHRpbGUgc2l6ZSB3aGVuIHdlIHdhbnQgdG8g
YXZvaWQgdGlsaW5nIGFzIHRoaXMgd2lsbAorICAgICAgICBub3QgYmUgZW5vdWdoIHNwYWNlIHRv
IGluY2x1ZGUgcG9zc2libGUgb3V0ZXIgYm9yZGVycy4gV2UgaW5zdGVhZCB1c2UKKyAgICAgICAg
YW4gZW1wdHkgc2l6ZSwgd2hpY2ggYWxsb3dzIHRoZSB0aWxlciB0byBhdXRvbWF0aWNhbGx5IGFk
anVzdCB0aGUKKyAgICAgICAgdGlsZSBzaXplIHRvIGJlIGxhcmdlIGVub3VnaCBmb3IgdGhlIGxh
eWVyIHRvIGZpdCBpbiBvbmUgdGlsZS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNo
cm9taXVtOjpjcmVhdGVUaWxlcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRM
YXllckNocm9taXVtOjpzZXRJc01hc2spOiBEb24ndCB1c2UgYm9yZGVyIHRleGVscworICAgICAg
ICBmb3IgbGF5ZXIgdXNlZCBhcyBtYXNrLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRMYXllckNocm9taXVtOjptX2JvcmRlclRleGVscykgQWRkZWQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjp0aWxlVGV4UmVjdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjp0aWxlTGF5ZXJSZWN0KTogbV90aWxlU2l6
ZSBpcyBubworICAgICAgICBsb25nZXIgdGhlIGNvcnJlY3QgbGF5ZXIgc2l6ZS4gU2l6ZSBvZiBi
b3VuZHMgd2l0aCBib3JkZXIgc2hvdWxkCisgICAgICAgIGJlIHRoZSBjb3JyZWN0IGxheWVyIHNp
emUuCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06Omdyb3dMYXllclRvQ29u
dGFpbik6IEFkanVzdCB0ZXh0dXJlCisgICAgICAgIHNpemUgdG8gaW5jbHVkZSBvdXRlciBib3Jk
ZXJzIGFuZCBoYW5kbGUgZW1wdHkgbV90aWxlU2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
VGlsZXJDaHJvbWl1bTo6aW52YWxpZGF0ZVJlY3QpOiBVc2Ugc2l6ZSBvZiByZWN0YW5nbGUKKyAg
ICAgICAgcmV0dXJuZWQgYnkgdGlsZVRleFJlY3QgaW5zdGVhZCBvZiBtX3RpbGVTaXplIGZvciB0
ZXh0dXJlIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnByZXBh
cmVUb1VwZGF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVt
OjpkcmF3KTogQ29tcHV0ZSBhbmQgaW50ZXJzZWN0IHRpbGUgZWRnZXMKKyAgICAgICAgaW5zdGVh
ZCBvZiB1c2luZyB0aWxlIGNvb3JkaW5hdGVzIGRpcmVjdGx5LiBFZGdlcyBhcmUgYWRqdXN0ZWQg
dG8KKyAgICAgICAgaW5jbHVkZSBvdXRlciBib3JkZXJzIGFuZCBtYWtlIHN1cmUgYWxsIHBhcnRp
YWxseSBjb3ZlcmVkIHBpeGVscyBhcmUKKyAgICAgICAgcHJvY2Vzc2VkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdCk6IEludmFsaWRhdGUgb2xk
IGxheWVyCisgICAgICAgIGFyZWEgdG8gY2xlYXIgYW55IGNvbnRlbnRzIGxlZnQgZnJvbSBwcmV2
aW91cyBsYXllciBzaXplLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJUaWxlckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21p
dW06OnRpbGVUZXhSZWN0KSBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1NoYWRlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZlcnRleFNoYWRl
clBvc1RleFRyYW5zZm9ybTo6Z2V0U2hhZGVyU3RyaW5nKSBHZXQgWC9ZIHZlcnRleAorICAgICAg
ICBjb21wb25lbnRzIGZyb20gcG9pbnQgdW5pZm9ybS4KKyAgICAgICAgKFdlYkNvcmU6OlZlcnRl
eFNoYWRlclBvc1RleFRyYW5zZm9ybTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtKQorICAg
ICAgICBBZGRlZCBwb2ludCB1bmlmb3JtLgorICAgICAgICAoV2ViQ29yZTo6VmVydGV4U2hhZGVy
UG9zVGV4VHJhbnNmb3JtOjppbml0KSBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZlcnRleFNo
YWRlclBvc1RleFRyYW5zZm9ybTo6cG9pbnRMb2NhdGlvbikgQWRkZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpwb2ludExvY2F0aW9uKSBBZGRlZC4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGluZ0RhdGE6OnRpbGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbGluZ0RhdGE6OmNvbXB1dGVOdW1UaWxlcyk6IEFkanVz
dCBmb3Igb3V0ZXIgYm9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZVhJ
bmRleEZyb21TcmNDb29yZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6
dGlsZVlJbmRleEZyb21TcmNDb29yZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5n
RGF0YTo6dGlsZVNpemVYKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0
aWxlU2l6ZVkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRpbGluZ0RhdGE6OmludGVyc2Vj
dERyYXdRdWFkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0ZXh0dXJl
T2Zmc2V0KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5n
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZUJvdW5kc1dpdGhPdXRl
ckJvcmRlcik6IEFkZGVkLgorCiAyMDExLTA2LTIwICBEYWkgTWlrdXJ1YmUgIDxkbWlrdXJ1YmVA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRh
LmNwcAkocmV2aXNpb24gODkzMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvVGlsaW5nRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDEwICs0NCwxMiBAQAog
CiBzdGF0aWMgaW50IGNvbXB1dGVOdW1UaWxlcyhpbnQgbWF4VGV4dHVyZVNpemUsIGludCB0b3Rh
bFNpemUsIGludCBib3JkZXJUZXhlbHMpCiB7CisgICAgaW50IHRvdGFsU2l6ZVdpdGhCb3JkZXIg
PSB0b3RhbFNpemUgKyAyICogYm9yZGVyVGV4ZWxzOworCiAgICAgaWYgKG1heFRleHR1cmVTaXpl
IC0gMiAqIGJvcmRlclRleGVscyA8PSAwKQotICAgICAgICByZXR1cm4gdG90YWxTaXplID4gMCAm
JiBtYXhUZXh0dXJlU2l6ZSA+PSB0b3RhbFNpemUgPyAxIDogMDsKKyAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBpbnQgbnVtVGlsZXMgPSBtYXgoMSwgMSArICh0b3RhbFNpemUgLSAxIC0gMiAqIGJv
cmRlclRleGVscykgLyAobWF4VGV4dHVyZVNpemUgLSAyICogYm9yZGVyVGV4ZWxzKSk7CisgICAg
aW50IG51bVRpbGVzID0gbWF4KDEsIDEgKyAodG90YWxTaXplV2l0aEJvcmRlciAtIDEgLSAyICog
Ym9yZGVyVGV4ZWxzKSAvIChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMpKTsKICAg
ICByZXR1cm4gdG90YWxTaXplID4gMCA/IG51bVRpbGVzIDogMDsKIH0KIApAQCAtNzksNyArODEs
NyBAQAogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VSVChtX21heFRleHR1cmVTaXplIC0g
MiAqIG1fYm9yZGVyVGV4ZWxzKTsKLSAgICBpbnQgeCA9IChzcmNQb3MgLSBtX2JvcmRlclRleGVs
cykgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7CisgICAgaW50IHgg
PSBzcmNQb3MgLyAobV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7CiAgICAg
cmV0dXJuIG1pbihtYXgoeCwgMCksIG51bVRpbGVzWCgpIC0gMSk7CiB9CiAKQEAgLTg5LDcgKzkx
LDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBBU1NFUlQobV9tYXhUZXh0dXJlU2l6ZSAt
IDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgaW50IHkgPSAoc3JjUG9zIC0gbV9ib3JkZXJUZXhl
bHMpIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOworICAgIGludCB5
ID0gc3JjUG9zIC8gKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOwogICAg
IHJldHVybiBtaW4obWF4KHksIDApLCBudW1UaWxlc1koKSAtIDEpOwogfQogCkBAIC0xMzIsNiAr
MTM0LDE2IEBACiAgICAgcmV0dXJuIGJvdW5kczsKIH0KIAorSW50UmVjdCBUaWxpbmdEYXRhOjp0
aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKGludCB0aWxlKSBjb25zdAoreworICAgIEludFJlY3Qg
Ym91bmRzID0gdGlsZUJvdW5kcyh0aWxlKTsKKworICAgIGlmIChtX2JvcmRlclRleGVscykKKyAg
ICAgICAgYm91bmRzLmluZmxhdGUoMSk7CisKKyAgICByZXR1cm4gYm91bmRzOworfQorCiBGbG9h
dFJlY3QgVGlsaW5nRGF0YTo6dGlsZUJvdW5kc05vcm1hbGl6ZWQoaW50IHRpbGUpIGNvbnN0CiB7
CiAgICAgYXNzZXJ0VGlsZSh0aWxlKTsKQEAgLTE2OCw4ICsxODAsNiBAQAogCiAgICAgaWYgKCF4
SW5kZXggJiYgbV9udW1UaWxlc1ggPT0gMSkKICAgICAgICAgcmV0dXJuIG1fdG90YWxTaXplWDsK
LSAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA+IDEpCi0gICAgICAgIHJldHVybiBtX21h
eFRleHR1cmVTaXplIC0gbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYgKHhJbmRleCA8IG51bVRpbGVz
WCgpIC0gMSkKICAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJU
ZXhlbHM7CiAgICAgaWYgKHhJbmRleCA9PSBudW1UaWxlc1goKSAtIDEpCkBAIC0xODUsOCArMTk1
LDYgQEAKIAogICAgIGlmICgheUluZGV4ICYmIG1fbnVtVGlsZXNZID09IDEpCiAgICAgICAgIHJl
dHVybiBtX3RvdGFsU2l6ZVk7Ci0gICAgaWYgKCF5SW5kZXggJiYgbV9udW1UaWxlc1kgPiAxKQot
ICAgICAgICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZSAtIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlm
ICh5SW5kZXggPCBudW1UaWxlc1koKSAtIDEpCiAgICAgICAgIHJldHVybiBtX21heFRleHR1cmVT
aXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzOwogICAgIGlmICh5SW5kZXggPT0gbnVtVGlsZXNZKCkg
LSAxKQpAQCAtMjMwLDggKzIzOCw4IEBACiAKICAgICAqbmV3U3JjID0gc3JjUmVjdEludGVyc2Vj
dGVkOwogICAgIG5ld1NyYy0+bW92ZSgKLSAgICAgICAgLXRpbGVCb3VuZHMueCgpICsgKCh0aWxl
WEluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRlclRleGVscyA6IDApLAotICAgICAgICAtdGlsZUJv
dW5kcy55KCkgKyAoKHRpbGVZSW5kZXgodGlsZSkgPiAwKSA/IG1fYm9yZGVyVGV4ZWxzIDogMCkp
OworICAgICAgICAtdGlsZUJvdW5kcy54KCkgKyBtX2JvcmRlclRleGVscywKKyAgICAgICAgLXRp
bGVCb3VuZHMueSgpICsgbV9ib3JkZXJUZXhlbHMpOwogCiAgICAgKm5ld0RzdCA9IEZsb2F0UmVj
dCgKICAgICAgICAgc3JjUmVjdEludGVyc2VjdGVkTm9ybVggKiBkc3RSZWN0LndpZHRoKCkgKyBk
c3RSZWN0LngoKSwKQEAgLTI0MiwxMCArMjUwLDcgQEAKIAogSW50UG9pbnQgVGlsaW5nRGF0YTo6
dGV4dHVyZU9mZnNldChpbnQgeEluZGV4LCBpbnQgeUluZGV4KSBjb25zdAogewotICAgIGludCBs
ZWZ0ID0gKCF4SW5kZXggfHwgbV9udW1UaWxlc1ggPT0gMSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7
Ci0gICAgaW50IHRvcCA9ICgheUluZGV4IHx8IG1fbnVtVGlsZXNZID09IDEpID8gMCA6IG1fYm9y
ZGVyVGV4ZWxzOwotCi0gICAgcmV0dXJuIEludFBvaW50KGxlZnQsIHRvcCk7CisgICAgcmV0dXJu
IEludFBvaW50KG1fYm9yZGVyVGV4ZWxzLCBtX2JvcmRlclRleGVscyk7CiB9CiAKIHZvaWQgVGls
aW5nRGF0YTo6cmVjb21wdXRlTnVtVGlsZXMoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5oCShyZXZpc2lvbiA4OTMzNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAKIAogICAgIEludFJlY3QgdGlsZUJvdW5kcyhpbnQg
dGlsZSkgY29uc3Q7CiAgICAgSW50UmVjdCB0aWxlQm91bmRzV2l0aEJvcmRlcihpbnQgdGlsZSkg
Y29uc3Q7CisgICAgSW50UmVjdCB0aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKGludCB0aWxlKSBj
b25zdDsKICAgICBGbG9hdFJlY3QgdGlsZUJvdW5kc05vcm1hbGl6ZWQoaW50IHRpbGUpIGNvbnN0
OwogICAgIGludCB0aWxlUG9zaXRpb25YKGludCB4SW5kZXgpIGNvbnN0OwogICAgIGludCB0aWxl
UG9zaXRpb25ZKGludCB5SW5kZXgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNocm9taXVtLmNw
cAkocmV2aXNpb24gODkzMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw2ICsxMjQs
NyBAQAogVmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFu
c2Zvcm0oKQogICAgIDogbV9tYXRyaXhMb2NhdGlvbigtMSkKICAgICAsIG1fdGV4VHJhbnNmb3Jt
TG9jYXRpb24oLTEpCisgICAgLCBtX3BvaW50TG9jYXRpb24oLTEpCiB7CiB9CiAKQEAgLTEzMSw3
ICsxMzIsOCBAQAogewogICAgIG1fbWF0cml4TG9jYXRpb24gPSBjb250ZXh0LT5nZXRVbmlmb3Jt
TG9jYXRpb24ocHJvZ3JhbSwgIm1hdHJpeCIpOwogICAgIG1fdGV4VHJhbnNmb3JtTG9jYXRpb24g
PSBjb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleFRyYW5zZm9ybSIpOwot
ICAgIEFTU0VSVChtX21hdHJpeExvY2F0aW9uICE9IC0xICYmIG1fdGV4VHJhbnNmb3JtTG9jYXRp
b24gIT0gLTEpOworICAgIG1fcG9pbnRMb2NhdGlvbiA9IGNvbnRleHQtPmdldFVuaWZvcm1Mb2Nh
dGlvbihwcm9ncmFtLCAicG9pbnQiKTsKKyAgICBBU1NFUlQobV9tYXRyaXhMb2NhdGlvbiAhPSAt
MSAmJiBtX3RleFRyYW5zZm9ybUxvY2F0aW9uICE9IC0xICYmIG1fcG9pbnRMb2NhdGlvbiAhPSAt
MSk7CiB9CiAKIFN0cmluZyBWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm06OmdldFNoYWRlclN0
cmluZygpIGNvbnN0CkBAIC0xNDEsMTEgKzE0MywxOCBAQAogICAgICAgICBhdHRyaWJ1dGUgdmVj
MiBhX3RleENvb3JkOwogICAgICAgICB1bmlmb3JtIG1hdDQgbWF0cml4OwogICAgICAgICB1bmlm
b3JtIHZlYzQgdGV4VHJhbnNmb3JtOworICAgICAgICB1bmlmb3JtIHZlYzIgcG9pbnRbNF07CiAg
ICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOwogICAgICAgICB2b2lkIG1haW4oKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IG1hdHJpeCAqIGFfcG9zaXRpb247Ci0g
ICAgICAgICAgICB2X3RleENvb3JkID0gYV90ZXhDb29yZCAqIHRleFRyYW5zZm9ybS56dyArIHRl
eFRyYW5zZm9ybS54eTsKKyAgICAgICAgICAgIHZlYzIgY29tcGxlbWVudCA9IGFicyhhX3RleENv
b3JkIC0gMS4wKTsKKyAgICAgICAgICAgIHZlYzQgcG9zID0gdmVjNCgwLjAsIDAuMCwgYV9wb3Np
dGlvbi56LCBhX3Bvc2l0aW9uLncpOworICAgICAgICAgICAgcG9zLnh5ICs9IChjb21wbGVtZW50
LnggKiBjb21wbGVtZW50LnkpICogcG9pbnRbMF07CisgICAgICAgICAgICBwb3MueHkgKz0gKGFf
dGV4Q29vcmQueCAqIGNvbXBsZW1lbnQueSkgKiBwb2ludFsxXTsKKyAgICAgICAgICAgIHBvcy54
eSArPSAoYV90ZXhDb29yZC54ICogYV90ZXhDb29yZC55KSAqIHBvaW50WzJdOworICAgICAgICAg
ICAgcG9zLnh5ICs9IChjb21wbGVtZW50LnggKiBhX3RleENvb3JkLnkpICogcG9pbnRbM107Cisg
ICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IG1hdHJpeCAqIHBvczsKKyAgICAgICAgICAgIHZfdGV4
Q29vcmQgPSBwb3MueHkgKiB0ZXhUcmFuc2Zvcm0uencgKyB0ZXhUcmFuc2Zvcm0ueHk7CiAgICAg
ICAgIH0KICAgICApOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5oCShyZXZpc2lvbiA4OTMz
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNo
cm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDEwICs5MCwxMiBAQAogCiAgICAgaW50IG1h
dHJpeExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhMb2NhdGlvbjsgfQogICAgIGlu
dCB0ZXhUcmFuc2Zvcm1Mb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4VHJhbnNmb3JtTG9j
YXRpb247IH0KKyAgICBpbnQgcG9pbnRMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRM
b2NhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIGludCBtX21hdHJpeExvY2F0aW9uOwogICAgIGlu
dCBtX3RleFRyYW5zZm9ybUxvY2F0aW9uOworICAgIGludCBtX3BvaW50TG9jYXRpb247CiB9Owog
CiBjbGFzcyBGcmFnbWVudFRleEFscGhhQmluZGluZyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGls
ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDg5MzM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkxheWVyVGlsZXJDaHJvbWl1bS5oIgogCiAj
aW5jbHVkZSAiRXh0ZW5zaW9uczNEQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RC5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgpAQCAtNDIsNiArNDMsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3R5cGVkZWYgRmxvYXRQb2ludDNEIEVkZ2U7CisK
IFBhc3NPd25QdHI8TGF5ZXJUaWxlckNocm9taXVtPiBMYXllclRpbGVyQ2hyb21pdW06OmNyZWF0
ZShMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIsIFBhc3NPd25QdHI8TGF5ZXJU
ZXh0dXJlVXBkYXRlcj4gdGV4dHVyZVVwZGF0ZXIsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBC
b3JkZXJUZXhlbE9wdGlvbiBib3JkZXIpCiB7CiAgICAgaWYgKCFsYXllclJlbmRlcmVyIHx8IHRp
bGVTaXplLmlzRW1wdHkoKSkKQEAgLTc4LDcgKzgxLDYgQEAKICAgICByZXNldCgpOwogCiAgICAg
bV90aWxlU2l6ZSA9IHNpemU7Ci0gICAgbV90aWxpbmdEYXRhLnNldE1heFRleHR1cmVTaXplKG1h
eChzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKIH0KIAogTGF5ZXJUZXh0dXJlKiBMYXll
clRpbGVyQ2hyb21pdW06OmdldFNpbmdsZVRleHR1cmUoKQpAQCAtMTgyLDE2ICsxODQsMjMgQEAK
IEludFJlY3QgTGF5ZXJUaWxlckNocm9taXVtOjp0aWxlTGF5ZXJSZWN0KGNvbnN0IFRpbGUqIHRp
bGUpIGNvbnN0CiB7CiAgICAgY29uc3QgaW50IGluZGV4ID0gbV90aWxpbmdEYXRhLnRpbGVJbmRl
eCh0aWxlLT5pKCksIHRpbGUtPmooKSk7Ci0gICAgSW50UmVjdCBsYXllclJlY3QgPSBtX3RpbGlu
Z0RhdGEudGlsZUJvdW5kc1dpdGhCb3JkZXIoaW5kZXgpOwotICAgIGxheWVyUmVjdC5zZXRTaXpl
KG1fdGlsZVNpemUpOwotICAgIHJldHVybiBsYXllclJlY3Q7CisgICAgcmV0dXJuIG1fdGlsaW5n
RGF0YS50aWxlQm91bmRzV2l0aEJvcmRlcihpbmRleCk7CiB9CiAKK0ludFJlY3QgTGF5ZXJUaWxl
ckNocm9taXVtOjp0aWxlVGV4UmVjdChjb25zdCBUaWxlKiB0aWxlKSBjb25zdAoreworICAgIGNv
bnN0IGludCBpbmRleCA9IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5q
KCkpOworICAgIHJldHVybiBtX3RpbGluZ0RhdGEudGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcihp
bmRleCk7Cit9CisKIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdChjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCkKIHsKICAgICBpZiAoY29udGVudFJlY3QuaXNFbXB0eSgp
IHx8IG1fc2tpcHNEcmF3KQogICAgICAgICByZXR1cm47CiAKKyAgICBJbnRTaXplIG9sZExheWVy
U2l6ZShtX3RpbGluZ0RhdGEudG90YWxTaXplWCgpLCBtX3RpbGluZ0RhdGEudG90YWxTaXplWSgp
KTsKKyAgICBjb25zdCBJbnRSZWN0IG9sZExheWVyUmVjdCA9IEludFJlY3QoSW50UG9pbnQoKSwg
b2xkTGF5ZXJTaXplKTsKKwogICAgIGdyb3dMYXllclRvQ29udGFpbihjb250ZW50UmVjdCk7CiAK
ICAgICAvLyBEaXJ0eSByZWN0cyBhcmUgYWx3YXlzIGluIGxheWVyIHNwYWNlLCBhcyB0aGUgbGF5
ZXIgY291bGQgYmUgcmVwb3NpdGlvbmVkCkBAIC0yMDgsNiArMjE3LDEyIEBACiAgICAgICAgICAg
ICBJbnRSZWN0IGJvdW5kID0gdGlsZUxheWVyUmVjdCh0aWxlKTsKICAgICAgICAgICAgIGJvdW5k
LmludGVyc2VjdChsYXllclJlY3QpOwogICAgICAgICAgICAgdGlsZS0+bV9kaXJ0eUxheWVyUmVj
dC51bml0ZShib3VuZCk7CisKKyAgICAgICAgICAgIC8vIEludmFsaWRhdGUgb2xkIGxheWVyIGFy
ZWEgdG8gY2xlYXIgYW55IGNvbnRlbnRzIGxlZnQgZnJvbQorICAgICAgICAgICAgLy8gcHJldmlv
dXMgbGF5ZXIgc2l6ZS4KKyAgICAgICAgICAgIEludFJlY3Qgb2xkQm91bmQgPSB0aWxlTGF5ZXJS
ZWN0KHRpbGUpOworICAgICAgICAgICAgb2xkQm91bmQuaW50ZXJzZWN0KG9sZExheWVyUmVjdCk7
CisgICAgICAgICAgICB0aWxlLT5tX2RpcnR5TGF5ZXJSZWN0LnVuaXRlKG9sZEJvdW5kKTsKICAg
ICAgICAgfQogICAgIH0KIH0KQEAgLTIzOCw2ICsyNTMsNyBAQAogICAgIC8vIENyZWF0ZSB0aWxl
cyBhcyBuZWVkZWQsIGV4cGFuZGluZyBhIGRpcnR5IHJlY3QgdG8gY29udGFpbiBhbGwKICAgICAv
LyB0aGUgZGlydHkgcmVnaW9ucyBjdXJyZW50bHkgYmVpbmcgZHJhd24uCiAgICAgSW50UmVjdCBk
aXJ0eUxheWVyUmVjdDsKKyAgICBJbnRTaXplIHRpbGVTaXplOwogICAgIGludCBsZWZ0LCB0b3As
IHJpZ2h0LCBib3R0b207CiAgICAgY29udGVudFJlY3RUb1RpbGVJbmRpY2VzKGNvbnRlbnRSZWN0
LCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOwogICAgIGZvciAoaW50IGogPSB0b3A7IGogPD0g
Ym90dG9tOyArK2opIHsKQEAgLTI0NSwxMSArMjYxLDE1IEBACiAgICAgICAgICAgICBUaWxlKiB0
aWxlID0gdGlsZUF0KGksIGopOwogICAgICAgICAgICAgaWYgKCF0aWxlKQogICAgICAgICAgICAg
ICAgIHRpbGUgPSBjcmVhdGVUaWxlKGksIGopOwotICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0
dXJlKCktPmlzVmFsaWQobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQorCisg
ICAgICAgICAgICBJbnRTaXplIHRleFNpemUgPSB0aWxlVGV4UmVjdCh0aWxlKS5zaXplKCk7Cisg
ICAgICAgICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+aXNWYWxpZCh0ZXhTaXplLCBHcmFwaGlj
c0NvbnRleHQzRDo6UkdCQSkpCiAgICAgICAgICAgICAgICAgdGlsZS0+bV9kaXJ0eUxheWVyUmVj
dCA9IHRpbGVMYXllclJlY3QodGlsZSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGlsZVNpemUsIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0JBKTsKKyAgICAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUodGV4U2l6
ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpOwogICAgICAgICAgICAgZGlydHlMYXllclJlY3Qu
dW5pdGUodGlsZS0+bV9kaXJ0eUxheWVyUmVjdCk7CisKKyAgICAgICAgICAgIHRpbGVTaXplID0g
dGlsZVNpemUuZXhwYW5kZWRUbyh0ZXhTaXplKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjYy
LDcgKzI4Miw3IEBACiAgICAgaWYgKGRpcnR5TGF5ZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV90ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRS
ZWN0LCBtX3RpbGVTaXplLCBtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpOworICAgIG1fdGV4
dHVyZVVwZGF0ZXItPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgdGlsZVNpemUsIG1fdGls
aW5nRGF0YS5ib3JkZXJUZXhlbHMoKSk7CiB9CiAKIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjp1
cGRhdGVSZWN0KCkKQEAgLTI4NSw3ICszMDUsOCBAQAogCiAgICAgICAgICAgICAvLyBDYWxjdWxh
dGUgcGFnZS1zcGFjZSByZWN0YW5nbGUgdG8gY29weSBmcm9tLgogICAgICAgICAgICAgSW50UmVj
dCBzb3VyY2VSZWN0ID0gdGlsZUNvbnRlbnRSZWN0KHRpbGUpOwotICAgICAgICAgICAgY29uc3Qg
SW50UG9pbnQgYW5jaG9yID0gc291cmNlUmVjdC5sb2NhdGlvbigpOworICAgICAgICAgICAgSW50
UmVjdCB0ZXhSZWN0ID0gdGlsZVRleFJlY3QodGlsZSk7CisgICAgICAgICAgICBjb25zdCBJbnRQ
b2ludCBhbmNob3IgPSB0ZXhSZWN0LmxvY2F0aW9uKCk7CiAgICAgICAgICAgICBzb3VyY2VSZWN0
LmludGVyc2VjdChsYXllclJlY3RUb0NvbnRlbnRSZWN0KHRpbGUtPm1fZGlydHlMYXllclJlY3Qp
KTsKICAgICAgICAgICAgIC8vIFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBv
biB0aWxlIGJvdW5kYXJpZXMsIHNvCiAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzb3Vy
Y2VSZWN0IGRvZXNuJ3QgZXh0ZW5kIG91dHNpZGUgb2YgaXQuCkBAIC0yOTQsNyArMzE1LDcgQEAK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0
dXJlKCktPmlzUmVzZXJ2ZWQoKSkgewotICAgICAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVy
ZSgpLT5yZXNlcnZlKG1fdGlsZVNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkgeworICAg
ICAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKHRleFJlY3Quc2l6ZSgp
LCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9za2lw
c0RyYXcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICByZXNldCgpOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CkBAIC0zMzYsNiArMzU3LDM1IEBACiAgICAgbV9sYXllclBvc2l0aW9u
ID0gbGF5ZXJQb3NpdGlvbjsKIH0KIAorc3RhdGljIGJvb2wgaXNDQ1coY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIG1hdHJpeCkKK3sKKyAgICBJbnRSZWN0IHJlY3QoMCwgMCwgMSwgMSk7Cisg
ICAgRmxvYXRRdWFkIHF1YWQgPSBtYXRyaXgubWFwUXVhZChGbG9hdFF1YWQocmVjdCkpOworICAg
IEZsb2F0UG9pbnQgdjEgPSBGbG9hdFBvaW50KHF1YWQucDIoKS54KCkgLSBxdWFkLnAxKCkueCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1YWQucDIoKS55KCkgLSBxdWFkLnAx
KCkueSgpKTsKKyAgICBGbG9hdFBvaW50IHYyID0gRmxvYXRQb2ludChxdWFkLnAzKCkueCgpIC0g
cXVhZC5wMigpLngoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWFkLnAzKCku
eSgpIC0gcXVhZC5wMigpLnkoKSk7CisgICAgcmV0dXJuICh2MS54KCkgKiB2Mi55KCkgLSB2MS55
KCkgKiB2Mi54KCkpIDwgMDsKK30KKworc3RhdGljIEVkZ2UgY29tcHV0ZUVkZ2UoY29uc3QgRmxv
YXRQb2ludCYgcCwgY29uc3QgRmxvYXRQb2ludCYgcSwgZmxvYXQgc2lnbikKK3sKKyAgICBGbG9h
dFBvaW50IHRhbmdlbnQocC55KCkgLSBxLnkoKSwgcS54KCkgLSBwLngoKSk7CisgICAgZmxvYXQg
c2NhbGUgPSBzaWduIC8gdGFuZ2VudC5sZW5ndGgoKTsKKyAgICBmbG9hdCBjcm9zczIgPSBwLngo
KSAqIHEueSgpIC0gcS54KCkgKiBwLnkoKTsKKworICAgIHJldHVybiBFZGdlKHRhbmdlbnQueCgp
ICogc2NhbGUsCisgICAgICAgICAgICAgICAgdGFuZ2VudC55KCkgKiBzY2FsZSwKKyAgICAgICAg
ICAgICAgICBjcm9zczIgKiBzY2FsZSk7Cit9CisKK3N0YXRpYyBGbG9hdFBvaW50IGludGVyc2Vj
dChjb25zdCBFZGdlJiBhLCBjb25zdCBFZGdlJiBiKQoreworICAgIHJldHVybiBGbG9hdFBvaW50
KAorICAgICAgICAoYS55KCkgKiBiLnooKSAtIGIueSgpICogYS56KCkpIC8gKGEueCgpICogYi55
KCkgLSBiLngoKSAqIGEueSgpKSwKKyAgICAgICAgKGEueCgpICogYi56KCkgLSBiLngoKSAqIGEu
eigpKSAvIChiLngoKSAqIGEueSgpIC0gYS54KCkgKiBiLnkoKSkpOworfQorCiB2b2lkIExheWVy
VGlsZXJDaHJvbWl1bTo6ZHJhdyhjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIGdsb2JhbFRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSkKIHsKICAg
ICBpZiAobV9za2lwc0RyYXcgfHwgIW1fdGlsZXMuc2l6ZSgpIHx8IGNvbnRlbnRSZWN0LmlzRW1w
dHkoKSkKQEAgLTM0NywxMCArMzk3LDQzIEBACiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnVu
aWZvcm0xaShwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigpLnNhbXBsZXJMb2NhdGlvbigpLCAwKSk7
CiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkUwKSk7CiAKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXgoZ2xvYmFs
VHJhbnNmb3JtKTsKKworICAgIC8vIFdlIGRvbid0IGNhcmUgYWJvdXQgWiBjb21wb25lbnQuCisg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggaW52ZXJzZSA9CisgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeChtYXRyaXgubTExKCksIG1hdHJpeC5tMTIoKSwgMC4wLCBtYXRyaXgubTE0KCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXRyaXgubTIxKCksIG1hdHJpeC5tMjIoKSwgMC4wLCBt
YXRyaXgubTI0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRyaXgubTMxKCksIG1h
dHJpeC5tMzIoKSwgMS4wLCBtYXRyaXgubTM0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXRyaXgubTQxKCksIG1hdHJpeC5tNDIoKSwgMC4wLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWF0cml4Lm00NCgpKS5pbnZlcnNlKCk7CisKKyAgICBmbG9hdCBzaWduID0gaXNDQ1co
bWF0cml4KSA/IC0xLjBmIDogMS4wZjsKICAgICBpbnQgbGVmdCwgdG9wLCByaWdodCwgYm90dG9t
OwogICAgIGNvbnRlbnRSZWN0VG9UaWxlSW5kaWNlcyhjb250ZW50UmVjdCwgbGVmdCwgdG9wLCBy
aWdodCwgYm90dG9tKTsKLSAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGNvbnRlbnRSZWN0VG9MYXll
clJlY3QoY29udGVudFJlY3QpOwogICAgIGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyAr
K2opIHsKKyAgICAgICAgSW50UmVjdCBoQm94ID0gbV90aWxpbmdEYXRhLnRpbGVCb3VuZHMobV90
aWxpbmdEYXRhLnRpbGVJbmRleCgwLCBqKSk7CisgICAgICAgIGhCb3gubW92ZShtX2xheWVyUG9z
aXRpb24ueCgpLCBtX2xheWVyUG9zaXRpb24ueSgpKTsKKworICAgICAgICAvLyBJbmNsdWRlIHRv
cC9ib3R0b20gb3V0ZXIgYm9yZGVyIHRleGVscyBpbiBob3Jpem9udGFsIGJveC4KKyAgICAgICAg
aWYgKCFqKQorICAgICAgICAgICAgaEJveC5zaGlmdFlFZGdlVG8oaEJveC55KCkgLSBtX3RpbGlu
Z0RhdGEuYm9yZGVyVGV4ZWxzKCkpOworICAgICAgICBpZiAoaiA9PSAobV90aWxpbmdEYXRhLm51
bVRpbGVzWSgpIC0gMSkpCisgICAgICAgICAgICBoQm94LnNoaWZ0TWF4WUVkZ2VUbyhoQm94Lm1h
eFkoKSArIG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSk7CisKKyAgICAgICAgLy8gTWFwIGhv
cml6b250YWwgYm94IHRvIGRldmljZSBjb29yZGluYXRlcy4KKyAgICAgICAgRmxvYXRRdWFkIGhR
dWFkID0gbWF0cml4Lm1hcFF1YWQoRmxvYXRRdWFkKGhCb3gpKTsKKworICAgICAgICAvLyBDb21w
dXRlIGhvcml6b250YWwgZWRnZXMuCisgICAgICAgIEVkZ2UgdG9wRWRnZSA9IGNvbXB1dGVFZGdl
KGhRdWFkLnAxKCksIGhRdWFkLnAyKCksIHNpZ24pOworICAgICAgICBFZGdlIGJvdHRvbUVkZ2Ug
PSBjb21wdXRlRWRnZShoUXVhZC5wMygpLCBoUXVhZC5wNCgpLCBzaWduKTsKKworICAgICAgICAv
LyBNb3ZlIGhvcml6b250YWwgZWRnZXMgdG8gZW5zdXJlIHRoYXQgYWxsIHBhcnRpYWxseSBjb3Zl
cmVkIHBpeGVscworICAgICAgICAvLyBhcmUgcHJvY2Vzc2VkLgorICAgICAgICBpZiAoIWopCisg
ICAgICAgICAgICB0b3BFZGdlLm1vdmUoMCwgMCwgbV90aWxpbmdEYXRhLmJvcmRlclRleGVscygp
ICogMC41Zik7CisgICAgICAgIGlmIChqID09IChtX3RpbGluZ0RhdGEubnVtVGlsZXNZKCkgLSAx
KSkKKyAgICAgICAgICAgIGJvdHRvbUVkZ2UubW92ZSgwLCAwLCBtX3RpbGluZ0RhdGEuYm9yZGVy
VGV4ZWxzKCkgKiAwLjVmKTsKKwogICAgICAgICBmb3IgKGludCBpID0gbGVmdDsgaSA8PSByaWdo
dDsgKytpKSB7CiAgICAgICAgICAgICBUaWxlKiB0aWxlID0gdGlsZUF0KGksIGopOwogICAgICAg
ICAgICAgaWYgKCF0aWxlKQpAQCAtMzU4LDI0ICs0NDEsMTcgQEAKIAogICAgICAgICAgICAgdGls
ZS0+dGV4dHVyZSgpLT5iaW5kVGV4dHVyZSgpOwogCi0gICAgICAgICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCB0aWxlTWF0cml4KGdsb2JhbFRyYW5zZm9ybSk7Ci0KICAgICAgICAgICAgIC8vIERv
bid0IHVzZSB0aWxlQ29udGVudFJlY3QgaGVyZSwgYXMgdGhhdCBjb250YWlucyB0aGUgZnVsbAog
ICAgICAgICAgICAgLy8gcmVjdCB3aXRoIGJvcmRlciB0ZXhlbHMgd2hpY2ggc2hvdWxkbid0IGJl
IGRyYXduLgogICAgICAgICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IG1fdGlsaW5nRGF0YS50aWxl
Qm91bmRzKG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpKTsKLSAg
ICAgICAgICAgIEludFJlY3QgZGlzcGxheVJlY3QgPSB0aWxlUmVjdDsKLSAgICAgICAgICAgIHRp
bGVSZWN0LmludGVyc2VjdChsYXllclJlY3QpOwotICAgICAgICAgICAgLy8gS2VlcCB0cmFjayBv
ZiBob3cgdGhlIHRvcCBsZWZ0IGhhcyBtb3ZlZCwgc28gdGhlIHRleHR1cmUgY2FuIGJlCi0gICAg
ICAgICAgICAvLyBvZmZzZXQgdGhlIHNhbWUgYW1vdW50LgotICAgICAgICAgICAgSW50U2l6ZSBv
ZmZzZXQgPSB0aWxlUmVjdC5taW5YTWluWUNvcm5lcigpIC0gZGlzcGxheVJlY3QubWluWE1pbllD
b3JuZXIoKTsKICAgICAgICAgICAgIHRpbGVSZWN0Lm1vdmUobV9sYXllclBvc2l0aW9uLngoKSwg
bV9sYXllclBvc2l0aW9uLnkoKSk7Ci0gICAgICAgICAgICB0aWxlTWF0cml4LnRyYW5zbGF0ZTNk
KHRpbGVSZWN0LngoKSArIHRpbGVSZWN0LndpZHRoKCkgLyAyLjAsIHRpbGVSZWN0LnkoKSArIHRp
bGVSZWN0LmhlaWdodCgpIC8gMi4wLCAwKTsKIAotICAgICAgICAgICAgSW50UG9pbnQgdGV4T2Zm
c2V0ID0gbV90aWxpbmdEYXRhLnRleHR1cmVPZmZzZXQodGlsZS0+aSgpLCB0aWxlLT5qKCkpICsg
b2Zmc2V0OwotICAgICAgICAgICAgZmxvYXQgdGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KG1fdGlsZVNpemUud2lkdGgoKSk7Ci0gICAgICAgICAgICBmbG9hdCB0aWxlSGVpZ2h0ID0gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KG1fdGlsZVNpemUuaGVpZ2h0KCkpOwotICAgICAgICAgICAgZmxvYXQg
dGV4VHJhbnNsYXRlWCA9IHRleE9mZnNldC54KCkgLyB0aWxlV2lkdGg7Ci0gICAgICAgICAgICBm
bG9hdCB0ZXhUcmFuc2xhdGVZID0gdGV4T2Zmc2V0LnkoKSAvIHRpbGVIZWlnaHQ7CisgICAgICAg
ICAgICBJbnRQb2ludCB0ZXhPZmZzZXQgPSBtX3RpbGluZ0RhdGEudGV4dHVyZU9mZnNldCh0aWxl
LT5pKCksIHRpbGUtPmooKSk7CisgICAgICAgICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4
UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGZsb2F0IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0PGZs
b2F0Pih0ZXhSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgZmxvYXQgdGlsZUhlaWdodCA9IHN0
YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIGZsb2F0IHRl
eFRyYW5zbGF0ZVggPSAodGV4T2Zmc2V0LngoKSAtIHRpbGVSZWN0LngoKSkgLyB0aWxlV2lkdGg7
CisgICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVZID0gKHRleE9mZnNldC55KCkgLSB0aWxl
UmVjdC55KCkpIC8gdGlsZUhlaWdodDsKICAgICAgICAgICAgIGZsb2F0IHRleFNjYWxlWCA9IHRp
bGVSZWN0LndpZHRoKCkgLyB0aWxlV2lkdGg7CiAgICAgICAgICAgICBmbG9hdCB0ZXhTY2FsZVkg
PSB0aWxlUmVjdC5oZWlnaHQoKSAvIHRpbGVIZWlnaHQ7CiAgICAgICAgICAgICAvLyBPcGVuR0wg
Y29vcmRpbmF0ZSBzeXN0ZW0gaXMgYm90dG9tLXVwLgpAQCAtMzg0LDcgKzQ2MCw0MiBAQAogICAg
ICAgICAgICAgICAgIHRleFRyYW5zbGF0ZVkgPSAxLjAgLSB0ZXhUcmFuc2xhdGVZOwogICAgICAg
ICAgICAgICAgIHRleFNjYWxlWSAqPSAtMS4wOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
ZHJhd1RleHR1cmVkUXVhZChjb250ZXh0LCBsYXllclJlbmRlcmVyKCktPnByb2plY3Rpb25NYXRy
aXgoKSwgdGlsZU1hdHJpeCwgdGlsZVJlY3Qud2lkdGgoKSwgdGlsZVJlY3QuaGVpZ2h0KCksIG9w
YWNpdHksIHRleFRyYW5zbGF0ZVgsIHRleFRyYW5zbGF0ZVksIHRleFNjYWxlWCwgdGV4U2NhbGVZ
LCBwcm9ncmFtKTsKKworICAgICAgICAgICAgSW50UmVjdCB2Qm94ID0gbV90aWxpbmdEYXRhLnRp
bGVCb3VuZHMoCisgICAgICAgICAgICAgICAgbV90aWxpbmdEYXRhLnRpbGVJbmRleChpLCBqKSk7
CisgICAgICAgICAgICB2Qm94Lm1vdmUobV9sYXllclBvc2l0aW9uLngoKSwgbV9sYXllclBvc2l0
aW9uLnkoKSk7CisKKyAgICAgICAgICAgIC8vIEluY2x1ZGUgbGVmdC9yaWdodCBvdXRlciBib3Jk
ZXIgdGV4ZWxzIGluIHZlcnRpY2FsIGJveC4KKyAgICAgICAgICAgIGlmICghaSkKKyAgICAgICAg
ICAgICAgICB2Qm94LnNoaWZ0WEVkZ2VUbyh2Qm94LngoKSAtIG1fdGlsaW5nRGF0YS5ib3JkZXJU
ZXhlbHMoKSk7CisgICAgICAgICAgICBpZiAoaSA9PSAobV90aWxpbmdEYXRhLm51bVRpbGVzWCgp
IC0gMSkpCisgICAgICAgICAgICAgICAgdkJveC5zaGlmdE1heFhFZGdlVG8odkJveC5tYXhYKCkg
KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdGlsaW5nRGF0YS5ib3Jk
ZXJUZXhlbHMoKSk7CisKKyAgICAgICAgICAgIC8vIE1hcCB2ZXJ0aWNhbCBib3ggdG8gZGV2aWNl
IGNvb3JkaW5hdGVzLgorICAgICAgICAgICAgRmxvYXRRdWFkIHZRdWFkID0gbWF0cml4Lm1hcFF1
YWQoRmxvYXRRdWFkKHZCb3gpKTsKKworICAgICAgICAgICAgLy8gQ29tcHV0ZSB2ZXJ0aWNhbCBl
ZGdlcy4KKyAgICAgICAgICAgIEVkZ2UgbGVmdEVkZ2UgPSBjb21wdXRlRWRnZSh2UXVhZC5wNCgp
LCB2UXVhZC5wMSgpLCBzaWduKTsKKyAgICAgICAgICAgIEVkZ2UgcmlnaHRFZGdlID0gY29tcHV0
ZUVkZ2UodlF1YWQucDIoKSwgdlF1YWQucDMoKSwgc2lnbik7CisKKyAgICAgICAgICAgIC8vIE1v
dmUgdmVydGljYWwgZWRnZXMgdG8gZW5zdXJlIHRoYXQgYWxsIHBhcnRpYWxseSBjb3ZlcmVkCisg
ICAgICAgICAgICAvLyBwaXhlbHMgYXJlIHByb2Nlc3NlZC4KKyAgICAgICAgICAgIGlmICghaSkK
KyAgICAgICAgICAgICAgICBsZWZ0RWRnZS5tb3ZlKDAsIDAsIG1fdGlsaW5nRGF0YS5ib3JkZXJU
ZXhlbHMoKSAqIDAuNWYpOworICAgICAgICAgICAgaWYgKGkgPT0gKG1fdGlsaW5nRGF0YS5udW1U
aWxlc1goKSAtIDEpKQorICAgICAgICAgICAgICAgIHJpZ2h0RWRnZS5tb3ZlKDAsIDAsIG1fdGls
aW5nRGF0YS5ib3JkZXJUZXhlbHMoKSAqIDAuNWYpOworCisgICAgICAgICAgICAvLyBDcmVhdGUg
ZGV2aWNlIHNwYWNlIHF1YWQuCisgICAgICAgICAgICBGbG9hdFF1YWQgZGV2aWNlUXVhZChpbnRl
cnNlY3QoYm90dG9tRWRnZSwgbGVmdEVkZ2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50ZXJzZWN0KGxlZnRFZGdlLCB0b3BFZGdlKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludGVyc2VjdCh0b3BFZGdlLCByaWdodEVkZ2UpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50ZXJzZWN0KHJpZ2h0RWRnZSwgYm90dG9tRWRnZSkpOwor
CisgICAgICAgICAgICAvLyBNYXAgcXVhZCB0byBsYXllciBzcGFjZS4KKyAgICAgICAgICAgIEZs
b2F0UXVhZCBxdWFkID0gaW52ZXJzZS5tYXBRdWFkKGRldmljZVF1YWQpOworCisgICAgICAgICAg
ICBkcmF3VGV4dHVyZWRRdWFkKGNvbnRleHQsIHF1YWQsIGxheWVyUmVuZGVyZXIoKS0+cHJvamVj
dGlvbk1hdHJpeCgpLCBtYXRyaXgsIHRpbGVSZWN0LndpZHRoKCksIHRpbGVSZWN0LmhlaWdodCgp
LCBvcGFjaXR5LCB0ZXhUcmFuc2xhdGVYLCB0ZXhUcmFuc2xhdGVZLCB0ZXhTY2FsZVgsIHRleFNj
YWxlWSwgcHJvZ3JhbSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zOTQsMTMgKzUwNSwyNSBA
QAogICAgIC8vIEdyb3cgdGhlIHRpbGUgYXJyYXkgdG8gY29udGFpbiB0aGlzIGNvbnRlbnQgcmVj
dC4KICAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGNvbnRlbnRSZWN0VG9MYXllclJlY3QoY29udGVu
dFJlY3QpOwogICAgIEludFNpemUgcmVjdFNpemUgPSBJbnRTaXplKGxheWVyUmVjdC5tYXhYKCks
IGxheWVyUmVjdC5tYXhZKCkpOworICAgIEludFNpemUgdGV4U2l6ZSA9IG1fdGlsZVNpemU7CiAK
KyAgICAvLyBVc2UgcmVjdCB3aXRoIGJvcmRlciB0ZXhlbHMgYXMgbWF4IHRleHR1cmUgc2l6ZSB3
aGVuIHRpbGUgc2l6ZQorICAgIC8vIGhhcyBub3QgYmVlbiBzcGVjaWZpZWQuCisgICAgaWYgKHRl
eFNpemUuaXNFbXB0eSgpKSB7CisgICAgICAgIHRleFNpemUgPSByZWN0U2l6ZTsKKyAgICAgICAg
aWYgKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSkKKyAgICAgICAgICAgIHRleFNpemUuZXhw
YW5kKDIsIDIpOworICAgIH0KKworICAgIG1fdGlsaW5nRGF0YS5zZXRNYXhUZXh0dXJlU2l6ZSht
YXgodGV4U2l6ZS53aWR0aCgpLCB0ZXhTaXplLmhlaWdodCgpKSk7CisKICAgICBJbnRTaXplIG9s
ZExheWVyU2l6ZShtX3RpbGluZ0RhdGEudG90YWxTaXplWCgpLCBtX3RpbGluZ0RhdGEudG90YWxT
aXplWSgpKTsKICAgICBJbnRTaXplIG5ld1NpemUgPSByZWN0U2l6ZS5leHBhbmRlZFRvKG9sZExh
eWVyU2l6ZSk7CisKICAgICBtX3RpbGluZ0RhdGEuc2V0VG90YWxTaXplKG5ld1NpemUud2lkdGgo
KSwgbmV3U2l6ZS5oZWlnaHQoKSk7CiB9CiAKLXZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpkcmF3
VGV4dHVyZWRRdWFkKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IGRyYXdNYXRyaXgsCit2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6ZHJhd1RleHR1cmVkUXVhZChH
cmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgRmxvYXRRdWFkICZxdWFkLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIGRyYXdNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgb3BhY2l0eSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVYLCBmbG9hdCB0ZXhU
cmFuc2xhdGVZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRl
eFNjYWxlWCwgZmxvYXQgdGV4U2NhbGVZLApAQCAtNDIzLDYgKzU0NiwxOSBAQAogICAgIEdMQyhj
b250ZXh0LCBjb250ZXh0LT51bmlmb3JtNGYocHJvZ3JhbS0+dmVydGV4U2hhZGVyKCkudGV4VHJh
bnNmb3JtTG9jYXRpb24oKSwKICAgICAgICAgdGV4VHJhbnNsYXRlWCwgdGV4VHJhbnNsYXRlWSwg
dGV4U2NhbGVYLCB0ZXhTY2FsZVkpKTsKIAorICAgIGZsb2F0IHNjYWxlWCA9IDEuMGYgLyB3aWR0
aDsKKyAgICBmbG9hdCBzY2FsZVkgPSAxLjBmIC8gaGVpZ2h0OworICAgIGZsb2F0IHBvaW50Wzhd
OworICAgIHBvaW50WzBdID0gcXVhZC5wMSgpLngoKSAqIHNjYWxlWDsKKyAgICBwb2ludFsxXSA9
IHF1YWQucDEoKS55KCkgKiBzY2FsZVk7CisgICAgcG9pbnRbMl0gPSBxdWFkLnAyKCkueCgpICog
c2NhbGVYOworICAgIHBvaW50WzNdID0gcXVhZC5wMigpLnkoKSAqIHNjYWxlWTsKKyAgICBwb2lu
dFs0XSA9IHF1YWQucDMoKS54KCkgKiBzY2FsZVg7CisgICAgcG9pbnRbNV0gPSBxdWFkLnAzKCku
eSgpICogc2NhbGVZOworICAgIHBvaW50WzZdID0gcXVhZC5wNCgpLngoKSAqIHNjYWxlWDsKKyAg
ICBwb2ludFs3XSA9IHF1YWQucDQoKS55KCkgKiBzY2FsZVk7CisgICAgR0xDKGNvbnRleHQsIGNv
bnRleHQtPnVuaWZvcm0yZnYocHJvZ3JhbS0+dmVydGV4U2hhZGVyKCkucG9pbnRMb2NhdGlvbigp
LCBwb2ludCwgNCkpOworCiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRyYXdFbGVtZW50cyhH
cmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVTLCA2LCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdO
RURfU0hPUlQsIDApKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5o
CShyZXZpc2lvbiA4OTMzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDYgKzg1
LDcgQEAKIAogICAgIE93blB0cjxMYXllclRpbGVyQ2hyb21pdW0+IG1fdGlsZXI7CiAgICAgVGls
aW5nT3B0aW9uIG1fdGlsaW5nT3B0aW9uOworICAgIGJvb2wgbV9ib3JkZXJUZXhlbHM7CiB9Owog
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clRpbGVyQ2hyb21pdW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uaAkocmV2aXNpb24gODkzMzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hy
b21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBACiAgICAgICAgIGludCBt
X2o7CiAgICAgfTsKIAotICAgIHZvaWQgZHJhd1RleHR1cmVkUXVhZChHcmFwaGljc0NvbnRleHQz
RCosIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwcm9qZWN0aW9uTWF0cml4LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgZHJhd01hdHJpeCwKKyAgICB2b2lkIGRyYXdUZXh0dXJlZFF1
YWQoR3JhcGhpY3NDb250ZXh0M0QqLCBjb25zdCBGbG9hdFF1YWQgJiwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHByb2plY3Rpb25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBkcmF3TWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB3aWR0aCwgZmxv
YXQgaGVpZ2h0LCBmbG9hdCBvcGFjaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9h
dCB0ZXhUcmFuc2xhdGVYLCBmbG9hdCB0ZXhUcmFuc2xhdGVZLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBmbG9hdCB0ZXhTY2FsZVgsIGZsb2F0IHRleFNjYWxlWSwKQEAgLTEyMiw2ICsxMjIs
NyBAQAogICAgIFRpbGUqIHRpbGVBdChpbnQsIGludCkgY29uc3Q7CiAgICAgSW50UmVjdCB0aWxl
Q29udGVudFJlY3QoY29uc3QgVGlsZSopIGNvbnN0OwogICAgIEludFJlY3QgdGlsZUxheWVyUmVj
dChjb25zdCBUaWxlKikgY29uc3Q7CisgICAgSW50UmVjdCB0aWxlVGV4UmVjdChjb25zdCBUaWxl
KikgY29uc3Q7CiAKICAgICBJbnRTaXplIG1fdGlsZVNpemU7CiAgICAgSW50UG9pbnQgbV9sYXll
clBvc2l0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAkocmV2
aXNpb24gODkzMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcg
QEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogLy8gU3RhcnQgdGlsaW5nIHdoZW4g
dGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgYSBsYXllciBhcmUgbGFyZ2VyIHRoYW4gdGhpcyBzaXpl
Lgotc3RhdGljIGludCBtYXhVbnRpbGVkU2l6ZSA9IDUxMjsKK3N0YXRpYyBpbnQgbWF4VW50aWxl
ZFNpemUgPSA1MTA7CiAKIC8vIFdoZW4gdGlsaW5nIGlzIGVuYWJsZWQsIHVzZSB0aWxlcyBvZiB0
aGlzIGRpbWVuc2lvbiBzcXVhcmVkLgogc3RhdGljIGludCBkZWZhdWx0VGlsZVNpemUgPSAyNTY7
CkBAIC04Niw2ICs4Niw3IEBACiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hy
b21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKICAgICA6IExheWVyQ2hyb21pdW0o
b3duZXIpCiAgICAgLCBtX3RpbGluZ09wdGlvbihDb250ZW50TGF5ZXJDaHJvbWl1bTo6QXV0b1Rp
bGUpCisgICAgLCBtX2JvcmRlclRleGVscyh0cnVlKQogewogfQogCkBAIC0xODgsNyArMTg5LDcg
QEAKICAgICBpZiAoIW1fdGlsZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IEludFNp
emUgdGlsZVNpemUobWluKGRlZmF1bHRUaWxlU2l6ZSwgbGF5ZXJTaXplLndpZHRoKCkpLCBtaW4o
ZGVmYXVsdFRpbGVTaXplLCBsYXllclNpemUuaGVpZ2h0KCkpKTsKKyAgICBjb25zdCBJbnRTaXpl
IHRpbGVTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVmYXVsdFRpbGVTaXplKTsKIAogICAgIC8vIFRp
bGUgaWYgYm90aCBkaW1lbnNpb25zIGxhcmdlLCBvciBhbnkgb25lIGRpbWVuc2lvbiBsYXJnZSBh
bmQgdGhlIG90aGVyCiAgICAgLy8gZXh0ZW5kcyBpbnRvIGEgc2Vjb25kIHRpbGUuIFRoaXMgaGV1
cmlzdGljIGFsbG93cyBmb3IgbG9uZyBza2lubnkgbGF5ZXJzCkBAIC0yMDUsNyArMjA2LDggQEAK
ICAgICBlbHNlCiAgICAgICAgIGlzVGlsZWQgPSBhdXRvVGlsZWQ7CiAKLSAgICBJbnRTaXplIHJl
cXVlc3RlZFNpemUgPSBpc1RpbGVkID8gdGlsZVNpemUgOiBsYXllclNpemU7CisgICAgLy8gRW1w
dHkgdGlsZSBzaXplIHRlbGxzIHRoZSB0aWxlciB0byBhdm9pZCB0aWxpbmcuCisgICAgSW50U2l6
ZSByZXF1ZXN0ZWRTaXplID0gaXNUaWxlZCA/IHRpbGVTaXplIDogSW50U2l6ZSgpOwogICAgIGNv
bnN0IGludCBtYXhTaXplID0gbGF5ZXJSZW5kZXJlcigpLT5tYXhUZXh0dXJlU2l6ZSgpOwogICAg
IEludFNpemUgY2xhbXBlZFNpemUgPSByZXF1ZXN0ZWRTaXplLnNocnVua1RvKEludFNpemUobWF4
U2l6ZSwgbWF4U2l6ZSkpOwogICAgIG1fdGlsZXItPnNldFRpbGVTaXplKGNsYW1wZWRTaXplKTsK
QEAgLTI0Miw3ICsyNDQsOCBAQAogICAgICAgICBsYXllclJlbmRlcmVyKCksCiAgICAgICAgIGNy
ZWF0ZVRleHR1cmVVcGRhdGVyKCksCiAgICAgICAgIEludFNpemUoZGVmYXVsdFRpbGVTaXplLCBk
ZWZhdWx0VGlsZVNpemUpLAotICAgICAgICBMYXllclRpbGVyQ2hyb21pdW06Okhhc0JvcmRlclRl
eGVscyk7CisgICAgICAgIG1fYm9yZGVyVGV4ZWxzID8gTGF5ZXJUaWxlckNocm9taXVtOjpIYXNC
b3JkZXJUZXhlbHMgOgorICAgICAgICBMYXllclRpbGVyQ2hyb21pdW06Ok5vQm9yZGVyVGV4ZWxz
KTsKIH0KIAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29tcG9zaXRvclJlc291
cmNlcygpCkBAIC0yNzAsNiArMjczLDcgQEAKIAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6
c2V0SXNNYXNrKGJvb2wgaXNNYXNrKQogeworICAgIG1fYm9yZGVyVGV4ZWxzID0gZmFsc2U7CiAg
ICAgc2V0VGlsaW5nT3B0aW9uKGlzTWFzayA/IE5ldmVyVGlsZSA6IEF1dG9UaWxlKTsKIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dAkocmV2aXNpb24gODkzMzUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMwNTcsMTEgKzMw
NTcsMTIgQEAKIEJVR0NSNzUwMTkgV0lOIExJTlVYIE1BQyA6ZmFzdC90ZXh0L2h5cGhlbmF0ZS1s
aW1pdC1iZWZvcmUtYWZ0ZXIuaHRtbCA9IElNQUdFK1RFWFQKIAogLy8gQ2hyb21pdW0gR1BVIGRy
YXdzIHNjcm9sbGJhcnMgc2xpZ2h0bHkgZGlmZmVyZW50bHkgaW4gZGVidWcgdnMuIHJlbGVhc2Uu
Ci1CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2RpcmVjdC1pbWFnZS1j
b21wb3NpdGluZy5odG1sID0gSU1BR0UKLUJVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29t
cG9zaXRpbmcvZ2VvbWV0cnkvaG9yaXpvbnRhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1B
R0UKLUJVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdGFs
bC1wYWdlLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5V
WCA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1B
R0UKLUJVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0g
SU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s1ODU4NyBE
RUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRt
bCA9IElNQUdFCisvL0JVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvaG9yaXpvbnRhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKKy8vQlVHV0s1
ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS90YWxsLXBhZ2UtY29t
cG9zaXRlZC5odG1sID0gSU1BR0UKKy8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21w
b3NpdGluZy9nZW9tZXRyeS92aWRlby1maXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCisvL0JV
R1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0gSU1BR0UK
IAogLy8gV2ViS2l0IHJvbGwgODA1NjQ6ODA2MzE6IHJlbmRlcmluZyBvbiBMZW9wYXJkIGlzIHNo
aWZ0ZWQgdG8gdGhlIHRvcCByaWdodAogLy8gc3RhcnRlZCBhdCBzb21lIHBvaW50IGF0IG9yIGFm
dGVyIFdLIHI4MDU4MiAoRGF2ZSBIeWF0dCdzIHZlcnRpY2FsIHRleHQgY2hhbmdlIC0gYSB2ZXJ5
IGxpa2VseSBjYW5kaWRhdGUpCkBAIC0zMzk1LDcgKzMzOTYsOCBAQAogQlVHQ1I3OTExMSBHUFUg
OiBjb21wb3NpdGluZy9mcmFtZXNldHMvY29tcG9zaXRlZC1mcmFtZS1hbGlnbm1lbnQuaHRtbCA9
IElNQUdFCiAKIEJVR1dLNTgzMDggR1BVIFdJTiBMSU5VWCBERUJVRyA6IGNvbXBvc2l0aW5nL3ot
b3JkZXIvbmVnYXRpdmUtei1pbmRleC5odG1sID0gUEFTUyBDUkFTSAotQlVHV0s1ODMyOCBHUFUg
V0lOIE1BQyBMSU5VWCBERUJVRyA6IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLXJlZmxlY3Rpb24u
aHRtbCA9IElNQUdFIFBBU1MgQ1JBU0gKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEz
ODgKKy8vQlVHV0s1ODMyOCBHUFUgV0lOIE1BQyBMSU5VWCBERUJVRyA6IGNvbXBvc2l0aW5nL3dl
YmdsL3dlYmdsLXJlZmxlY3Rpb24uaHRtbCA9IElNQUdFIFBBU1MgQ1JBU0gKIAogQlVHQ1I3OTE3
MyBHUFUgTElOVVggREVCVUcgOiBmYXN0L2NhbnZhcy9hY2Nlc3MtemVyby1zaXplZC1jYW52YXMu
aHRtbCA9IFBBU1MgQ1JBU0gKIApAQCAtMzU1NSw5ICszNTU3LDExIEBACiAKIC8vIE5lZWRzIHJl
YmFzZWxpbmUKIAotQlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1pbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorLy8gQ29tbWVudGVkIGJlY2F1
c2Ugb2YgQlVHV0s2MTM4OAorLy9CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCiBCVUdXSzYwMTAy
IExJTlVYIEdQVSA6IGNvbXBvc2l0aW5nL21hc2tzL21hc2tlZC1hbmNlc3Rvci5odG1sID0gSU1B
R0UKLUJVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxl
LWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJV
R1dLNjEzODgKKy8vQlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9tYXNr
cy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLmh0bWwgPSBJTUFHRQogLy8gQ29tbWVudGVkIGJlY2F1
c2Ugb2YgQlVHQ1I4MTYwNQogLy9CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGZhc3QvY2Fu
dmFzL2NhbnZhcy10ZXh0LWFsaWdubWVudC5odG1sID0gSU1BR0UKIApAQCAtNDAxMywzICs0MDE3
LDQyIEBACiBCVUdXSzYzMDMxIFdJTiBMSU5VWCBSRUxFQVNFIDogaW5zcGVjdG9yL2VsZW1lbnRz
L2V2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbCA9IFRFWFQKIEJVR1dLNjMwMzMgOiBzdmcvY3Vz
dG9tL2Fic29sdXRlLXJvb3QtcG9zaXRpb24tbWFza2luZy54aHRtbCA9IElNQUdFCiBCVUdXSzYz
MDM2IE1BQyA6IHN2Zy9kb20vU1ZHVHJhbnNmb3JtTGlzdC1iYXNpY3MueGh0bWwgPSBJTUFHRQor
CitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNoaW5nL2ltYWdlLWNvbG9y
LW1hdGNoaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9kaXJl
Y3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLmh0bWwgPSBJTUFH
RQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9ob3Jpem9udGFsLXNjcm9s
bC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9sYXllci1kdWUtdG8tbGF5ZXItY2hpbGRyZW4tZGVlcC5odG1sID0gSU1BR0UKK0JV
R1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxheWVyLWNo
aWxkcmVuLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRy
eS90YWxsLXBhZ2UtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29t
cG9zaXRpbmcvZ2VvbWV0cnkvdmlkZW8tZml4ZWQtc2Nyb2xsaW5nLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92ZXJ0aWNhbC1zY3JvbGwtY29tcG9z
aXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
dmlkZW8tb3BhY2l0eS1vdmVybGF5Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21w
b3NpdGluZy9pZnJhbWVzL25lc3RlZC1pZnJhbWUtc2Nyb2xsaW5nLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9kaXJlY3QtaW1hZ2UtbWFzay5odG1sID0g
SU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0
ZWQtbWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvb3ZlcmZs
b3cvZml4ZWQtcG9zaXRpb24tYW5jZXN0b3ItY2xpcC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODgg
R1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGVlcGx5LW5lc3RlZC1yZWZsZWN0aW9ucy5o
dG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVz
dGVkLXJlZmxlY3Rpb24tb24tb3ZlcmZsb3cuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6
IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXRyYW5zZm9ybWVkLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0
ZWQtcmVmbGVjdGlvbi10cmFuc2Zvcm1lZDIuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6
IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXRyYW5zaXRpb24uaHRt
bCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxl
Y3Rpb24taW4tY29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9z
aXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQor
QlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW9yZGVy
aW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9u
cy9yZWZsZWN0aW9uLXBvc2l0aW9uaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBj
b21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLXBvc2l0aW9uaW5nMi5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvc2ltcGxlLWNvbXBv
c2l0ZWQtcmVmbGVjdGlvbnMuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0
aW5nL3JlZmxlY3Rpb25zL3RyYW5zZm9ybS1pbnNpZGUtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UK
K0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvc2hhZG93cy9zaGFkb3ctZHJhd2luZy5odG1s
ID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvdGV4dC1vbi1sYXJnZS1sYXll
ci5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvdHJhbnNpdGlvbnMv
c2NhbGUtdHJhbnNpdGlvbi1uby1zdGFydC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEz
ODggR1BVIDogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvaHVnZS1sYXllci1yb3RhdGVk
Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3Np
dGluZy90aW55LWxheWVyLXJvdGF0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IHBs
YXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2JhY2tmYWNlLXZpc2liaWxpdHktdHJhbnNmb3Jt
ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9
IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbCA9
IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVvLXRyYW5zZm9ybWVkLmh0bWwgPSBJ
TUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby1sYXllci1jcmFzaC5odG1sID0gSU1B
R0UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3Rpbnkt
bGF5ZXItcm90YXRlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1y
b3RhdGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1sPgorPGhlYWQ+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLnNtYWxsIHsK
KyAgICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEwMDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3Jt
LW9yaWdpbjogbGVmdCB0b3A7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSg1M2Rl
Zykgcm90YXRlWigxMGRlZykgc2NhbGVYKDEwMC4wKSBzY2FsZVkoMTAwLjApOworICAgICAgd2lk
dGg6IDEwcHg7CisgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0
LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCMwMGFiZWIpLCB0
bygjZmZmKSk7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJvdmVyZmxvdzpoaWRkZW4iPgorICA8ZGl2IGNs
YXNzPSJzbWFsbCI+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuc21hbGwgewor
ICAgICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm0t
b3JpZ2luOiBsZWZ0IHRvcDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDUzZGVn
KSByb3RhdGVaKDEwZGVnKSBzY2FsZVgoMTAwLjApIHNjYWxlWSgxMDAuMCk7CisgICAgICB3aWR0
aDogMTBweDsKKyAgICAgIGhlaWdodDogMzBweDsKKyAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQt
Z3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20oIzAwYWJlYiksIHRv
KCNmZmYpKTsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRlbiI+CisgIDxkaXYgY2xh
c3M9InNtYWxsIj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55LWxheWVy
LXJvdGF0ZWQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA4OTMzNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTA2LTIxICBEYXZpZCBSZXZlbWFuICA8cmV2
ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcgZm9yIGNvbXBvc2l0ZWQg
bGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjEzODgKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5
ZXItcm90YXRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTEtMDYtMjAgIFl1dGEgS2l0YW11cmEgIDx5dXRha0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIENocm9taXVtIHRlc3Qg
ZXhwZWN0YXRpb24gZm9yIGluc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFy
Lmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98238</attachid>
            <date>2011-06-22 14:05:33 -0700</date>
            <delta_ts>2011-06-22 16:09:31 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-gpu-anti-aliasing-v11.diff</filename>
            <type>text/plain</type>
            <size>57243</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0YVRlc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsaW5nRGF0YVRlc3Qu
Y3BwCShyZXZpc2lvbiA4OTQ1NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGls
aW5nRGF0YVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAKIFRFU1Qo
VGlsaW5nRGF0YVRlc3QsIG51bVRpbGVzX05vVGlsaW5nKQogewogICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDE2LCAxNiwgMTYsIGZhbHNlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSgxNiwgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgxNiwgMTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgxNywgMTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxOCwgMTYsIDE2LCB0cnVlKS5udW1UaWxlcygpKTsKICAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwgIDEsIDE2LCBmYWxzZSkubnVtVGlsZXMoKSk7
Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMTUsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMo
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMTcsIDE1LCAxNSwgdHJ1ZSkubnVtVGls
ZXMoKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIG51bVRpbGVzX1RpbGluZ05vQm9yZGVy
cykKQEAgLTEwOSw0NSArMTA5LDQ1IEBACiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoLTEs
IDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgw
LCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwogCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMSwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgxLCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDEsICAxLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMSwgIDIsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgyLCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDIsICAxLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMiwgIDIsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgyLCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDIsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAgMiwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgMSwgIDMsIHRydWUpLm51bVRpbGVzKCkp
OwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAyLCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDMsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgNCwgIDMsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICA1LCAgMywgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgIDYsICAzLCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAgNywgIDMsIHRydWUp
Lm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMSwgdHJ1
ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgIDEsICAyLCB0
cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMiwgIDEs
IHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAyLCAg
MiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgIDIs
ICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAg
MywgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMs
ICAzLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CiAKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSg0LCAgMSwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDQsICAyLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoNCwgIDMsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSg0LCAgNCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBU
aWxpbmdEYXRhKDQsICA1LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoNCwgIDYsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSg0LCAgNywgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDQsICA4LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoNCwgIDksICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAxMCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVY
UEVDVF9FUSg1LCBUaWxpbmdEYXRhKDQsIDExLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgIDEsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDQsICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDQsICAyLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg0LCAgNSwgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQsICA2LCAgMiwgdHJ1ZSkubnVtVGls
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNCwgIDcsICAyLCB0cnVlKS5udW1U
aWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgOCwgIDIsIHRydWUpLm51
bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDQsICA5LCAgMiwgdHJ1ZSku
bnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTAsICAyLCB0cnVl
KS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSg0LCAxMSwgIDIsIHRy
dWUpLm51bVRpbGVzKCkpOwogCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDEsICA1
LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMiwg
IDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAz
LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwg
IDQsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1
LCAgNSwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRh
KDUsICA2LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoNSwgIDcsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5n
RGF0YSg1LCAgOCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDUsICA5LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoNSwgMTAsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAxMSwgIDUsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDUsICAxLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoNSwgIDIsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSg1LCAgMywgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSgyLCBUaWxpbmdEYXRhKDUsICA0LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDUsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBF
WFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA3LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICAzLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOSwgIDMsIHRydWUpLm51bVRpbGVzKCkp
OworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTEsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVhJbmRleEZyb21TcmNDb29yZCkK
QEAgLTE2NiwxNyArMTY2LDE3IEBACiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAs
IDEwLCBmYWxzZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKLSAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoNCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBFWFBF
Q1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoNykpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVhJbmRleEZyb21TcmNDb29yZCg4KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1RfRVEo
NywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTAp
KTsKLSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMTEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwg
MTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBU
aWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJv
bVNyY0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAgRVhQ
RUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nv
b3JkKDYpKTsKKyAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVYSW5kZXhGcm9tU3JjQ29vcmQoNykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNUX0VR
KDksIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkp
KTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMTApKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwg
MTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDEsIDEsIDEsIGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsK
ICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVhJbmRleEZy
b21TcmNDb29yZCgwKSk7CkBAIC0xOTQsMTMgKzE5NCwxMyBAQAogICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDIsIDIsIDIsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwogICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3Jj
Q29vcmQoMSkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRp
bGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMs
IDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMikpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDMsIDMsIHRydWUp
LnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMikpOwogCi0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7Ci0gICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgx
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMywgdHJ1ZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMywg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGlu
Z0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29y
ZCgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgNCwgMywgdHJ1ZSkudGlsZVhJ
bmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgNCwg
MywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgzKSk7CiB9CiBURVNUKFRpbGluZ0RhdGFU
ZXN0LCB0aWxlWUluZGV4RnJvbVNyY0Nvb3JkKQogewpAQCAtMjE4LDE3ICsyMTgsMTcgQEAKICAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIGZhbHNlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDExKSk7CiAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAs
IHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKDIpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUp
LnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3Jk
KDUpKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoNikpOwotICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEw
LCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcs
IFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsK
LSAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhG
cm9tU3JjQ29vcmQoOSkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwg
dHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOworICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29y
ZCg0KSk7CisgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxl
WUluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAx
MCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3
LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7
CisgICAgRVhQRUNUX0VRKDgsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4
RnJvbVNyY0Nvb3JkKDgpKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAs
IHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxp
bmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOworICAg
IEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21T
cmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFs
c2UpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDIsIDIsIDIsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTI0Niw2
MSArMjQ2LDYxIEBACiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1ZSku
dGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MiwgMiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CiAgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7
Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZy
b21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQRUNU
X0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgy
KSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUlu
ZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxl
WUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAz
LCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYKQogewogICAg
IEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWCgwKSk7
Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVgo
MCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNp
emVYKDApKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2Up
LnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBm
YWxzZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwg
IDYsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwg
IDYsICA2LCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwg
VGlsaW5nRGF0YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQ
RUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAg
IEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsK
KyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgw
KSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6
ZVgoMSkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSku
dGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZh
bHNlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAx
MCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAx
MCwgMTAsIHRydWUpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEo
NSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBU
aWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWCgyKSk7CiAgICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogfQogVEVT
VChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRp
bGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKIAogICAgIEVYUEVD
VF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDEpKTsK
LSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgw
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6
ZVkoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGls
ZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUp
LnRpbGVTaXplWSgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgs
IGZhbHNlKS50aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4
LCAgOCwgZmFsc2UpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEo
NSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogCiAgICAgRVhQRUNU
X0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAgICBF
WFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMSkpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXpl
WSgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxl
U2l6ZVkoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSku
dGlsZVNpemVZKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwg
dHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMSwg
MTEsIHRydWUpLnRpbGVTaXplWSgyKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwg
MTIsIDEyLCB0cnVlKS50aWxlU2l6ZVkoMikpOwogfQogCkBAIC0zMTksMTAgKzMxOSwxMCBAQAog
ICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9u
WCgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVlKS50aWxl
U2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEsIDEwMCwgdHJ1ZSku
dGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMywgICAx
LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMs
ICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgMywgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDMsIDMsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgMywgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDUsIDMsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkp
OworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUsIDMsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0
aW9uWCgwKSk7CiAKICAgICAvLyBNdWx0aXBsZSB0aWxlczoKICAgICAvLyBubyBib3JkZXIKQEAg
LTM0MCwyMyArMzQwLDIzIEBACiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBi
b3JkZXIKICAgICAvLyBwb3NpdGlvbnMgMCwgMiwgMywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxp
bmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRp
bGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9z
aXRpb25YKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUp
LnRpbGVQb3NpdGlvblgoMikpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAg
MSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
MywgNiwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9F
USgwLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAg
RVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDEp
KTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3Np
dGlvblgoMikpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSku
dGlsZVBvc2l0aW9uWCgzKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNCwgICAx
LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAg
IDEsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywg
NCwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDMsIDQsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgy
KSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9z
aXRpb25YKDMpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUp
LnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0
cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEw
MCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0
LCAxMDAsIHRydWUpLnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9F
USgyLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAg
RVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDMp
KTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZX2FuZF90aWxlUG9zaXRpb25Z
KQpAQCAtMzc0LDEwICszNzQsMTAgQEAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAg
IDEsIDEsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsIDEwMCwgMSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSgzLCAxMDAsIDEsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDMsICAgMSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwot
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDMsIHRydWUpLnRpbGVQb3Np
dGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICAgMSwgMywgdHJ1ZSku
dGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAgIDEsIDMsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEw
MCwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1
LCAxMDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwogCiAgICAgLy8gTXVsdGlwbGUgdGls
ZXM6CiAgICAgLy8gbm8gYm9yZGVyCkBAIC0zOTUsMjMgKzM5NSwyMyBAQAogICAgIC8vIE11bHRp
cGxlIHRpbGVzOgogICAgIC8vIHdpdGggYm9yZGVyCiAgICAgLy8gcG9zaXRpb25zIDAsIDIsIDMs
IDQKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLm51bVRpbGVz
KCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNp
emVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRp
bGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVl
KS50aWxlU2l6ZVkoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwg
dHJ1ZSkudGlsZVNpemVZKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEs
IDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRh
KDMsICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1Rf
RVEoNCwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOwotICAg
IEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVTaXplWSgx
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6
ZVkoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGls
ZVNpemVZKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUp
LnRpbGVQb3NpdGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwg
NiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEo
MywgMTAwLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGls
aW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOworICAgIEVYUEVDVF9F
USg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNU
X0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7
CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVko
MykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBv
c2l0aW9uWSgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVl
KS50aWxlUG9zaXRpb25ZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgIDEs
IDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgyKSk7CisgICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMykpOworICAg
IEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgw
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9z
aXRpb25ZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUp
LnRpbGVQb3NpdGlvblkoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwg
NCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHNl
dFRvdGFsU2l6ZSkKQEAgLTQ2OCw3ICs0NjgsNyBAQAogCiBURVNUKFRpbGluZ0RhdGFUZXN0LCBz
ZXRNYXhUZXh0dXJlU2l6ZUJvcmRlcnMpCiB7Ci0gICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAz
MiwgdHJ1ZSk7CisgICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAzMCwgdHJ1ZSk7CiAgICAgRVhQ
RUNUX0VRKDMsIGRhdGEubnVtVGlsZXNYKCkpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRp
bGVzWSgpKTsKIApAQCAtNDg0LDcgKzQ4NCw3IEBACiAKICAgICBkYXRhLnNldE1heFRleHR1cmVT
aXplKDUpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm1heFRleHR1cmVTaXplKCkpOwotICAgIEVY
UEVDVF9FUSg1LCBkYXRhLm51bVRpbGVzWCgpKTsKKyAgICBFWFBFQ1RfRVEoNiwgZGF0YS5udW1U
aWxlc1goKSk7CiAgICAgRVhQRUNUX0VRKDEwLCBkYXRhLm51bVRpbGVzWSgpKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg5NDU1KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0yMSAgRGF2aWQgUmV2ZW1hbiAg
PHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gRWRnZSBhbnRpLWFsaWFzaW5nIGZvciBjb21wb3Np
dGVkIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxMzg4CisKKyAgICAgICAgVHJhY2sgY2hhbmdlcyB0byBUaWxpbmdEYXRhIGNsYXNzIHdo
aWNoIG5vdyB1c2VzIGFuIG91dGVyIGJvcmRlci4KKworICAgICAgICAqIGNocm9taXVtL3Rlc3Rz
L1RpbGluZ0RhdGFUZXN0LmNwcDoKKwogMjAxMS0wNi0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiA4OTQ1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBACisyMDExLTA2LTIyICBEYXZpZCBSZXZlbWFuICA8
cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcgZm9yIGNvbXBvc2l0
ZWQgbGF5ZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjEzODgKKworICAgICAgICBBZGQgdHJhbnNwYXJlbnQgb3V0ZXIgYm9yZGVyIHRvIHRpbGVk
IGxheWVycyBhbmQgYWRqdXN0IHZlcnRleAorICAgICAgICBjb29yZGluYXRlcyBzbyB0aGF0IHVz
ZSBvZiBhIGJpbGluZWFyIGZpbHRlciBjcmVhdGVzIGEgc21vb3RoCisgICAgICAgIGxheWVyIGVk
Z2UuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3Rpbnkt
bGF5ZXItcm90YXRlZC5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy9odWdlLWxheWVyLXJvdGF0ZWQuaHRtbCAoZXhpc3RpbmcpCisgICAgICAgICAgICAg
ICBUaWxpbmdEYXRhVGVzdCBpbiB3ZWJraXRfdW5pdF90ZXN0cworCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICBD
aGFuZ2UgbWF4VW50aWxlZFNpemUgdG8gNTEwIHRvIGVuc3VyZSB0aGF0IHRpbGVzIGFyZSBub3Qg
Z3JlYXRlcgorICAgICAgICB0aGFuIDUxMiB3aXRoIG91dGVyIGJvcmRlcnMuCisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJTaXplKTogV2UgY2FuJ3Qg
dXNlIHRoZQorICAgICAgICBsYXllciBzaXplIGFzIHRpbGUgc2l6ZSB3aGVuIHdlIHdhbnQgdG8g
YXZvaWQgdGlsaW5nIGFzIHRoaXMgd2lsbAorICAgICAgICBub3QgYmUgZW5vdWdoIHNwYWNlIHRv
IGluY2x1ZGUgcG9zc2libGUgb3V0ZXIgYm9yZGVycy4gV2UgaW5zdGVhZCB1c2UKKyAgICAgICAg
YW4gZW1wdHkgc2l6ZSwgd2hpY2ggYWxsb3dzIHRoZSB0aWxlciB0byBhdXRvbWF0aWNhbGx5IGFk
anVzdCB0aGUKKyAgICAgICAgdGlsZSBzaXplIHRvIGJlIGxhcmdlIGVub3VnaCBmb3IgdGhlIGxh
eWVyIHRvIGZpdCBpbiBvbmUgdGlsZS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNo
cm9taXVtOjpjcmVhdGVUaWxlcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRM
YXllckNocm9taXVtOjpzZXRJc01hc2spOiBEb24ndCB1c2UgYm9yZGVyIHRleGVscworICAgICAg
ICBmb3IgbGF5ZXIgdXNlZCBhcyBtYXNrLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRMYXllckNocm9taXVtOjptX2JvcmRlclRleGVscykgQWRkZWQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjp0aWxlVGV4UmVjdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjp0aWxlTGF5ZXJSZWN0KTogbV90aWxlU2l6
ZSBpcyBubworICAgICAgICBsb25nZXIgdGhlIGNvcnJlY3QgbGF5ZXIgc2l6ZS4gU2l6ZSBvZiBi
b3VuZHMgd2l0aCBib3JkZXIgc2hvdWxkCisgICAgICAgIGJlIHRoZSBjb3JyZWN0IGxheWVyIHNp
emUuCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06Omdyb3dMYXllclRvQ29u
dGFpbik6IEFkanVzdCB0ZXh0dXJlCisgICAgICAgIHNpemUgdG8gaW5jbHVkZSBvdXRlciBib3Jk
ZXJzIGFuZCBoYW5kbGUgZW1wdHkgbV90aWxlU2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
VGlsZXJDaHJvbWl1bTo6aW52YWxpZGF0ZVJlY3QpOiBVc2Ugc2l6ZSBvZiByZWN0YW5nbGUKKyAg
ICAgICAgcmV0dXJuZWQgYnkgdGlsZVRleFJlY3QgaW5zdGVhZCBvZiBtX3RpbGVTaXplIGZvciB0
ZXh0dXJlIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnByZXBh
cmVUb1VwZGF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9taXVt
OjpkcmF3KTogQ29tcHV0ZSBhbmQgaW50ZXJzZWN0IHRpbGUgZWRnZXMKKyAgICAgICAgaW5zdGVh
ZCBvZiB1c2luZyB0aWxlIGNvb3JkaW5hdGVzIGRpcmVjdGx5LiBFZGdlcyBhcmUgYWRqdXN0ZWQg
dG8KKyAgICAgICAgaW5jbHVkZSBvdXRlciBib3JkZXJzIGFuZCBtYWtlIHN1cmUgYWxsIHBhcnRp
YWxseSBjb3ZlcmVkIHBpeGVscyBhcmUKKyAgICAgICAgcHJvY2Vzc2VkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdCk6IEludmFsaWRhdGUgb2xk
IGxheWVyCisgICAgICAgIGFyZWEgdG8gY2xlYXIgYW55IGNvbnRlbnRzIGxlZnQgZnJvbSBwcmV2
aW91cyBsYXllciBzaXplLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJUaWxlckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21p
dW06OnRpbGVUZXhSZWN0KSBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1NoYWRlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZlcnRleFNoYWRl
clBvc1RleFRyYW5zZm9ybTo6Z2V0U2hhZGVyU3RyaW5nKSBHZXQgWC9ZIHZlcnRleAorICAgICAg
ICBjb21wb25lbnRzIGZyb20gcG9pbnQgdW5pZm9ybS4KKyAgICAgICAgKFdlYkNvcmU6OlZlcnRl
eFNoYWRlclBvc1RleFRyYW5zZm9ybTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtKQorICAg
ICAgICBBZGRlZCBwb2ludCB1bmlmb3JtLgorICAgICAgICAoV2ViQ29yZTo6VmVydGV4U2hhZGVy
UG9zVGV4VHJhbnNmb3JtOjppbml0KSBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZlcnRleFNo
YWRlclBvc1RleFRyYW5zZm9ybTo6cG9pbnRMb2NhdGlvbikgQWRkZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpwb2ludExvY2F0aW9uKSBBZGRlZC4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGluZ0RhdGE6OnRpbGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbGluZ0RhdGE6OmNvbXB1dGVOdW1UaWxlcyk6IEFkanVz
dCBmb3Igb3V0ZXIgYm9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZVhJ
bmRleEZyb21TcmNDb29yZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6
dGlsZVlJbmRleEZyb21TcmNDb29yZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5n
RGF0YTo6dGlsZVNpemVYKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0
aWxlU2l6ZVkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRpbGluZ0RhdGE6OmludGVyc2Vj
dERyYXdRdWFkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0ZXh0dXJl
T2Zmc2V0KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5n
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZUJvdW5kc1dpdGhPdXRl
ckJvcmRlcik6IEFkZGVkLgorCiAyMDExLTA2LTIyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIEdUSyBidWlsZCBhZnRlciBteSBp
bmNvbXBsZXRlIHJvbGxvdXQgb2YgODgzMzIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCShyZXZpc2lvbiA4OTQ1NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsMTAgKzQ0LDEyIEBACiAKIHN0YXRpYyBpbnQgY29tcHV0ZU51
bVRpbGVzKGludCBtYXhUZXh0dXJlU2l6ZSwgaW50IHRvdGFsU2l6ZSwgaW50IGJvcmRlclRleGVs
cykKIHsKKyAgICBpbnQgdG90YWxTaXplV2l0aEJvcmRlciA9IHRvdGFsU2l6ZSArIDIgKiBib3Jk
ZXJUZXhlbHM7CisKICAgICBpZiAobWF4VGV4dHVyZVNpemUgLSAyICogYm9yZGVyVGV4ZWxzIDw9
IDApCi0gICAgICAgIHJldHVybiB0b3RhbFNpemUgPiAwICYmIG1heFRleHR1cmVTaXplID49IHRv
dGFsU2l6ZSA/IDEgOiAwOworICAgICAgICByZXR1cm4gMDsKIAotICAgIGludCBudW1UaWxlcyA9
IG1heCgxLCAxICsgKHRvdGFsU2l6ZSAtIDEgLSAyICogYm9yZGVyVGV4ZWxzKSAvIChtYXhUZXh0
dXJlU2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMpKTsKKyAgICBpbnQgbnVtVGlsZXMgPSBtYXgoMSwg
MSArICh0b3RhbFNpemVXaXRoQm9yZGVyIC0gMSAtIDIgKiBib3JkZXJUZXhlbHMpIC8gKG1heFRl
eHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscykpOwogICAgIHJldHVybiB0b3RhbFNpemUgPiAw
ID8gbnVtVGlsZXMgOiAwOwogfQogCkBAIC03OSw3ICs4MSw3IEBACiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgQVNTRVJUKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOwot
ICAgIGludCB4ID0gKHNyY1BvcyAtIG1fYm9yZGVyVGV4ZWxzKSAvIChtX21heFRleHR1cmVTaXpl
IC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKKyAgICBpbnQgeCA9IHNyY1BvcyAvIChtX21heFRleHR1
cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKICAgICByZXR1cm4gbWluKG1heCh4LCAwKSwg
bnVtVGlsZXNYKCkgLSAxKTsKIH0KIApAQCAtODksNyArOTEsNyBAQAogICAgICAgICByZXR1cm4g
MDsKIAogICAgIEFTU0VSVChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsK
LSAgICBpbnQgeSA9IChzcmNQb3MgLSBtX2JvcmRlclRleGVscykgLyAobV9tYXhUZXh0dXJlU2l6
ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7CisgICAgaW50IHkgPSBzcmNQb3MgLyAobV9tYXhUZXh0
dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVscyk7CiAgICAgcmV0dXJuIG1pbihtYXgoeSwgMCks
IG51bVRpbGVzWSgpIC0gMSk7CiB9CiAKQEAgLTEzMiw2ICsxMzQsMTYgQEAKICAgICByZXR1cm4g
Ym91bmRzOwogfQogCitJbnRSZWN0IFRpbGluZ0RhdGE6OnRpbGVCb3VuZHNXaXRoT3V0ZXJCb3Jk
ZXIoaW50IHRpbGUpIGNvbnN0Cit7CisgICAgSW50UmVjdCBib3VuZHMgPSB0aWxlQm91bmRzKHRp
bGUpOworCisgICAgaWYgKG1fYm9yZGVyVGV4ZWxzKQorICAgICAgICBib3VuZHMuaW5mbGF0ZSgx
KTsKKworICAgIHJldHVybiBib3VuZHM7Cit9CisKIEZsb2F0UmVjdCBUaWxpbmdEYXRhOjp0aWxl
Qm91bmRzTm9ybWFsaXplZChpbnQgdGlsZSkgY29uc3QKIHsKICAgICBhc3NlcnRUaWxlKHRpbGUp
OwpAQCAtMTY4LDggKzE4MCw2IEBACiAKICAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA9
PSAxKQogICAgICAgICByZXR1cm4gbV90b3RhbFNpemVYOwotICAgIGlmICgheEluZGV4ICYmIG1f
bnVtVGlsZXNYID4gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSBtX2JvcmRl
clRleGVsczsKICAgICBpZiAoeEluZGV4IDwgbnVtVGlsZXNYKCkgLSAxKQogICAgICAgICByZXR1
cm4gbV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVsczsKICAgICBpZiAoeEluZGV4
ID09IG51bVRpbGVzWCgpIC0gMSkKQEAgLTE4NSw4ICsxOTUsNiBAQAogCiAgICAgaWYgKCF5SW5k
ZXggJiYgbV9udW1UaWxlc1kgPT0gMSkKICAgICAgICAgcmV0dXJuIG1fdG90YWxTaXplWTsKLSAg
ICBpZiAoIXlJbmRleCAmJiBtX251bVRpbGVzWSA+IDEpCi0gICAgICAgIHJldHVybiBtX21heFRl
eHR1cmVTaXplIC0gbV9ib3JkZXJUZXhlbHM7CiAgICAgaWYgKHlJbmRleCA8IG51bVRpbGVzWSgp
IC0gMSkKICAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhl
bHM7CiAgICAgaWYgKHlJbmRleCA9PSBudW1UaWxlc1koKSAtIDEpCkBAIC0yMzAsOCArMjM4LDgg
QEAKIAogICAgICpuZXdTcmMgPSBzcmNSZWN0SW50ZXJzZWN0ZWQ7CiAgICAgbmV3U3JjLT5tb3Zl
KAotICAgICAgICAtdGlsZUJvdW5kcy54KCkgKyAoKHRpbGVYSW5kZXgodGlsZSkgPiAwKSA/IG1f
Ym9yZGVyVGV4ZWxzIDogMCksCi0gICAgICAgIC10aWxlQm91bmRzLnkoKSArICgodGlsZVlJbmRl
eCh0aWxlKSA+IDApID8gbV9ib3JkZXJUZXhlbHMgOiAwKSk7CisgICAgICAgIC10aWxlQm91bmRz
LngoKSArIG1fYm9yZGVyVGV4ZWxzLAorICAgICAgICAtdGlsZUJvdW5kcy55KCkgKyBtX2JvcmRl
clRleGVscyk7CiAKICAgICAqbmV3RHN0ID0gRmxvYXRSZWN0KAogICAgICAgICBzcmNSZWN0SW50
ZXJzZWN0ZWROb3JtWCAqIGRzdFJlY3Qud2lkdGgoKSArIGRzdFJlY3QueCgpLApAQCAtMjQyLDEw
ICsyNTAsNyBAQAogCiBJbnRQb2ludCBUaWxpbmdEYXRhOjp0ZXh0dXJlT2Zmc2V0KGludCB4SW5k
ZXgsIGludCB5SW5kZXgpIGNvbnN0CiB7Ci0gICAgaW50IGxlZnQgPSAoIXhJbmRleCB8fCBtX251
bVRpbGVzWCA9PSAxKSA/IDAgOiBtX2JvcmRlclRleGVsczsKLSAgICBpbnQgdG9wID0gKCF5SW5k
ZXggfHwgbV9udW1UaWxlc1kgPT0gMSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0KLSAgICByZXR1
cm4gSW50UG9pbnQobGVmdCwgdG9wKTsKKyAgICByZXR1cm4gSW50UG9pbnQobV9ib3JkZXJUZXhl
bHMsIG1fYm9yZGVyVGV4ZWxzKTsKIH0KIAogdm9pZCBUaWxpbmdEYXRhOjpyZWNvbXB1dGVOdW1U
aWxlcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5n
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9UaWxpbmdEYXRhLmgJKHJldmlzaW9uIDg5NDU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEs
NyBAQAogCiAgICAgSW50UmVjdCB0aWxlQm91bmRzKGludCB0aWxlKSBjb25zdDsKICAgICBJbnRS
ZWN0IHRpbGVCb3VuZHNXaXRoQm9yZGVyKGludCB0aWxlKSBjb25zdDsKKyAgICBJbnRSZWN0IHRp
bGVCb3VuZHNXaXRoT3V0ZXJCb3JkZXIoaW50IHRpbGUpIGNvbnN0OwogICAgIEZsb2F0UmVjdCB0
aWxlQm91bmRzTm9ybWFsaXplZChpbnQgdGlsZSkgY29uc3Q7CiAgICAgaW50IHRpbGVQb3NpdGlv
blgoaW50IHhJbmRleCkgY29uc3Q7CiAgICAgaW50IHRpbGVQb3NpdGlvblkoaW50IHlJbmRleCkg
Y29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9T
aGFkZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA4OTQ1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNocm9taXVt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDYgKzEyNCw3IEBACiBWZXJ0ZXhTaGFkZXJQb3NU
ZXhUcmFuc2Zvcm06OlZlcnRleFNoYWRlclBvc1RleFRyYW5zZm9ybSgpCiAgICAgOiBtX21hdHJp
eExvY2F0aW9uKC0xKQogICAgICwgbV90ZXhUcmFuc2Zvcm1Mb2NhdGlvbigtMSkKKyAgICAsIG1f
cG9pbnRMb2NhdGlvbigtMSkKIHsKIH0KIApAQCAtMTMxLDcgKzEzMiw4IEBACiB7CiAgICAgbV9t
YXRyaXhMb2NhdGlvbiA9IGNvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAibWF0
cml4Iik7CiAgICAgbV90ZXhUcmFuc2Zvcm1Mb2NhdGlvbiA9IGNvbnRleHQtPmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAidGV4VHJhbnNmb3JtIik7Ci0gICAgQVNTRVJUKG1fbWF0cml4TG9j
YXRpb24gIT0gLTEgJiYgbV90ZXhUcmFuc2Zvcm1Mb2NhdGlvbiAhPSAtMSk7CisgICAgbV9wb2lu
dExvY2F0aW9uID0gY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJwb2ludCIp
OworICAgIEFTU0VSVChtX21hdHJpeExvY2F0aW9uICE9IC0xICYmIG1fdGV4VHJhbnNmb3JtTG9j
YXRpb24gIT0gLTEgJiYgbV9wb2ludExvY2F0aW9uICE9IC0xKTsKIH0KIAogU3RyaW5nIFZlcnRl
eFNoYWRlclBvc1RleFRyYW5zZm9ybTo6Z2V0U2hhZGVyU3RyaW5nKCkgY29uc3QKQEAgLTE0MSwx
MSArMTQzLDE4IEBACiAgICAgICAgIGF0dHJpYnV0ZSB2ZWMyIGFfdGV4Q29vcmQ7CiAgICAgICAg
IHVuaWZvcm0gbWF0NCBtYXRyaXg7CiAgICAgICAgIHVuaWZvcm0gdmVjNCB0ZXhUcmFuc2Zvcm07
CisgICAgICAgIHVuaWZvcm0gdmVjMiBwb2ludFs0XTsKICAgICAgICAgdmFyeWluZyB2ZWMyIHZf
dGV4Q29vcmQ7CiAgICAgICAgIHZvaWQgbWFpbigpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGds
X1Bvc2l0aW9uID0gbWF0cml4ICogYV9wb3NpdGlvbjsKLSAgICAgICAgICAgIHZfdGV4Q29vcmQg
PSBhX3RleENvb3JkICogdGV4VHJhbnNmb3JtLnp3ICsgdGV4VHJhbnNmb3JtLnh5OworICAgICAg
ICAgICAgdmVjMiBjb21wbGVtZW50ID0gYWJzKGFfdGV4Q29vcmQgLSAxLjApOworICAgICAgICAg
ICAgdmVjNCBwb3MgPSB2ZWM0KDAuMCwgMC4wLCBhX3Bvc2l0aW9uLnosIGFfcG9zaXRpb24udyk7
CisgICAgICAgICAgICBwb3MueHkgKz0gKGNvbXBsZW1lbnQueCAqIGNvbXBsZW1lbnQueSkgKiBw
b2ludFswXTsKKyAgICAgICAgICAgIHBvcy54eSArPSAoYV90ZXhDb29yZC54ICogY29tcGxlbWVu
dC55KSAqIHBvaW50WzFdOworICAgICAgICAgICAgcG9zLnh5ICs9IChhX3RleENvb3JkLnggKiBh
X3RleENvb3JkLnkpICogcG9pbnRbMl07CisgICAgICAgICAgICBwb3MueHkgKz0gKGNvbXBsZW1l
bnQueCAqIGFfdGV4Q29vcmQueSkgKiBwb2ludFszXTsKKyAgICAgICAgICAgIGdsX1Bvc2l0aW9u
ID0gbWF0cml4ICogcG9zOworICAgICAgICAgICAgdl90ZXhDb29yZCA9IHBvcy54eSAqIHRleFRy
YW5zZm9ybS56dyArIHRleFRyYW5zZm9ybS54eTsKICAgICAgICAgfQogICAgICk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1NoYWRlckNocm9taXVtLmgJKHJldmlzaW9uIDg5NDU1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5
KQpAQCAtOTAsMTAgKzkwLDEyIEBACiAKICAgICBpbnQgbWF0cml4TG9jYXRpb24oKSBjb25zdCB7
IHJldHVybiBtX21hdHJpeExvY2F0aW9uOyB9CiAgICAgaW50IHRleFRyYW5zZm9ybUxvY2F0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV90ZXhUcmFuc2Zvcm1Mb2NhdGlvbjsgfQorICAgIGludCBwb2lu
dExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb2ludExvY2F0aW9uOyB9CiAKIHByaXZhdGU6
CiAgICAgaW50IG1fbWF0cml4TG9jYXRpb247CiAgICAgaW50IG1fdGV4VHJhbnNmb3JtTG9jYXRp
b247CisgICAgaW50IG1fcG9pbnRMb2NhdGlvbjsKIH07CiAKIGNsYXNzIEZyYWdtZW50VGV4QWxw
aGFCaW5kaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAkocmV2aXNp
b24gODk0NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclRpbGVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiTGF5ZXJUaWxlckNocm9taXVtLmgiCiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0RD
aHJvbWl1bS5oIgorI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmgiCkBAIC00Miw2ICs0Myw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAordHlwZWRlZiBGbG9hdFBvaW50M0QgRWRnZTsKKwogUGFzc093blB0cjxMYXllclRpbGVy
Q2hyb21pdW0+IExheWVyVGlsZXJDaHJvbWl1bTo6Y3JlYXRlKExheWVyUmVuZGVyZXJDaHJvbWl1
bSogbGF5ZXJSZW5kZXJlciwgUGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyPiB0ZXh0dXJl
VXBkYXRlciwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIEJvcmRlclRleGVsT3B0aW9uIGJvcmRl
cikKIHsKICAgICBpZiAoIWxheWVyUmVuZGVyZXIgfHwgdGlsZVNpemUuaXNFbXB0eSgpKQpAQCAt
NzgsNyArODEsNiBAQAogICAgIHJlc2V0KCk7CiAKICAgICBtX3RpbGVTaXplID0gc2l6ZTsKLSAg
ICBtX3RpbGluZ0RhdGEuc2V0TWF4VGV4dHVyZVNpemUobWF4KHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSkpOwogfQogCiBMYXllclRleHR1cmUqIExheWVyVGlsZXJDaHJvbWl1bTo6Z2V0U2lu
Z2xlVGV4dHVyZSgpCkBAIC0xODIsMTYgKzE4NCwyMyBAQAogSW50UmVjdCBMYXllclRpbGVyQ2hy
b21pdW06OnRpbGVMYXllclJlY3QoY29uc3QgVGlsZSogdGlsZSkgY29uc3QKIHsKICAgICBjb25z
dCBpbnQgaW5kZXggPSBtX3RpbGluZ0RhdGEudGlsZUluZGV4KHRpbGUtPmkoKSwgdGlsZS0+aigp
KTsKLSAgICBJbnRSZWN0IGxheWVyUmVjdCA9IG1fdGlsaW5nRGF0YS50aWxlQm91bmRzV2l0aEJv
cmRlcihpbmRleCk7Ci0gICAgbGF5ZXJSZWN0LnNldFNpemUobV90aWxlU2l6ZSk7Ci0gICAgcmV0
dXJuIGxheWVyUmVjdDsKKyAgICByZXR1cm4gbV90aWxpbmdEYXRhLnRpbGVCb3VuZHNXaXRoQm9y
ZGVyKGluZGV4KTsKIH0KIAorSW50UmVjdCBMYXllclRpbGVyQ2hyb21pdW06OnRpbGVUZXhSZWN0
KGNvbnN0IFRpbGUqIHRpbGUpIGNvbnN0Cit7CisgICAgY29uc3QgaW50IGluZGV4ID0gbV90aWxp
bmdEYXRhLnRpbGVJbmRleCh0aWxlLT5pKCksIHRpbGUtPmooKSk7CisgICAgcmV0dXJuIG1fdGls
aW5nRGF0YS50aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKGluZGV4KTsKK30KKwogdm9pZCBMYXll
clRpbGVyQ2hyb21pdW06OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0
KQogewogICAgIGlmIChjb250ZW50UmVjdC5pc0VtcHR5KCkgfHwgbV9za2lwc0RyYXcpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIEludFNpemUgb2xkTGF5ZXJTaXplKG1fdGlsaW5nRGF0YS50b3Rh
bFNpemVYKCksIG1fdGlsaW5nRGF0YS50b3RhbFNpemVZKCkpOworICAgIGNvbnN0IEludFJlY3Qg
b2xkTGF5ZXJSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCBvbGRMYXllclNpemUpOworCiAgICAg
Z3Jvd0xheWVyVG9Db250YWluKGNvbnRlbnRSZWN0KTsKIAogICAgIC8vIERpcnR5IHJlY3RzIGFy
ZSBhbHdheXMgaW4gbGF5ZXIgc3BhY2UsIGFzIHRoZSBsYXllciBjb3VsZCBiZSByZXBvc2l0aW9u
ZWQKQEAgLTIwOCw2ICsyMTcsMTIgQEAKICAgICAgICAgICAgIEludFJlY3QgYm91bmQgPSB0aWxl
TGF5ZXJSZWN0KHRpbGUpOwogICAgICAgICAgICAgYm91bmQuaW50ZXJzZWN0KGxheWVyUmVjdCk7
CiAgICAgICAgICAgICB0aWxlLT5tX2RpcnR5TGF5ZXJSZWN0LnVuaXRlKGJvdW5kKTsKKworICAg
ICAgICAgICAgLy8gSW52YWxpZGF0ZSBvbGQgbGF5ZXIgYXJlYSB0byBjbGVhciBhbnkgY29udGVu
dHMgbGVmdCBmcm9tCisgICAgICAgICAgICAvLyBwcmV2aW91cyBsYXllciBzaXplLgorICAgICAg
ICAgICAgSW50UmVjdCBvbGRCb3VuZCA9IHRpbGVMYXllclJlY3QodGlsZSk7CisgICAgICAgICAg
ICBvbGRCb3VuZC5pbnRlcnNlY3Qob2xkTGF5ZXJSZWN0KTsKKyAgICAgICAgICAgIHRpbGUtPm1f
ZGlydHlMYXllclJlY3QudW5pdGUob2xkQm91bmQpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAt
MjM4LDYgKzI1Myw3IEBACiAgICAgLy8gQ3JlYXRlIHRpbGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5n
IGEgZGlydHkgcmVjdCB0byBjb250YWluIGFsbAogICAgIC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1
cnJlbnRseSBiZWluZyBkcmF3bi4KICAgICBJbnRSZWN0IGRpcnR5TGF5ZXJSZWN0OworICAgIElu
dFNpemUgdGlsZVNpemU7CiAgICAgaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsKICAgICBj
b250ZW50UmVjdFRvVGlsZUluZGljZXMoY29udGVudFJlY3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJv
dHRvbSk7CiAgICAgZm9yIChpbnQgaiA9IHRvcDsgaiA8PSBib3R0b207ICsraikgewpAQCAtMjQ1
LDExICsyNjEsMTUgQEAKICAgICAgICAgICAgIFRpbGUqIHRpbGUgPSB0aWxlQXQoaSwgaik7CiAg
ICAgICAgICAgICBpZiAoIXRpbGUpCiAgICAgICAgICAgICAgICAgdGlsZSA9IGNyZWF0ZVRpbGUo
aSwgaik7Ci0gICAgICAgICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+aXNWYWxpZChtX3RpbGVT
aXplLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSkpCisKKyAgICAgICAgICAgIEludFNpemUgdGV4
U2l6ZSA9IHRpbGVUZXhSZWN0KHRpbGUpLnNpemUoKTsKKyAgICAgICAgICAgIGlmICghdGlsZS0+
dGV4dHVyZSgpLT5pc1ZhbGlkKHRleFNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkKICAg
ICAgICAgICAgICAgICB0aWxlLT5tX2RpcnR5TGF5ZXJSZWN0ID0gdGlsZUxheWVyUmVjdCh0aWxl
KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnJl
c2VydmUobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpOworICAgICAgICAgICAg
ICAgIHRpbGUtPnRleHR1cmUoKS0+cmVzZXJ2ZSh0ZXhTaXplLCBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQSk7CiAgICAgICAgICAgICBkaXJ0eUxheWVyUmVjdC51bml0ZSh0aWxlLT5tX2RpcnR5TGF5
ZXJSZWN0KTsKKworICAgICAgICAgICAgdGlsZVNpemUgPSB0aWxlU2l6ZS5leHBhbmRlZFRvKHRl
eFNpemUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNjIsNyArMjgyLDcgQEAKICAgICBpZiAo
ZGlydHlMYXllclJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3RleHR1
cmVVcGRhdGVyLT5wcmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZVNpemUsIG1fdGls
aW5nRGF0YS5ib3JkZXJUZXhlbHMoKSk7CisgICAgbV90ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRv
VXBkYXRlKG1fcGFpbnRSZWN0LCB0aWxlU2l6ZSwgbV90aWxpbmdEYXRhLmJvcmRlclRleGVscygp
KTsKIH0KIAogdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OnVwZGF0ZVJlY3QoKQpAQCAtMjg1LDcg
KzMwNSw4IEBACiAKICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBwYWdlLXNwYWNlIHJlY3Rhbmds
ZSB0byBjb3B5IGZyb20uCiAgICAgICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QgPSB0aWxlQ29u
dGVudFJlY3QodGlsZSk7Ci0gICAgICAgICAgICBjb25zdCBJbnRQb2ludCBhbmNob3IgPSBzb3Vy
Y2VSZWN0LmxvY2F0aW9uKCk7CisgICAgICAgICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4
UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGNvbnN0IEludFBvaW50IGFuY2hvciA9IHRleFJlY3Qu
bG9jYXRpb24oKTsKICAgICAgICAgICAgIHNvdXJjZVJlY3QuaW50ZXJzZWN0KGxheWVyUmVjdFRv
Q29udGVudFJlY3QodGlsZS0+bV9kaXJ0eUxheWVyUmVjdCkpOwogICAgICAgICAgICAgLy8gUGFp
bnQgcmVjdCBub3QgZ3VhcmFudGVlZCB0byBsaW5lIHVwIG9uIHRpbGUgYm91bmRhcmllcywgc28K
ICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHNvdXJjZVJlY3QgZG9lc24ndCBleHRlbmQg
b3V0c2lkZSBvZiBpdC4KQEAgLTI5NCw3ICszMTUsNyBAQAogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+aXNSZXNlcnZlZCgpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUobV90aWxlU2l6
ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0aWxl
LT50ZXh0dXJlKCktPnJlc2VydmUodGV4UmVjdC5zaXplKCksIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0JBKSkgewogICAgICAgICAgICAgICAgICAgICBtX3NraXBzRHJhdyA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTMz
Niw2ICszNTcsMzMgQEAKICAgICBtX2xheWVyUG9zaXRpb24gPSBsYXllclBvc2l0aW9uOwogfQog
CitzdGF0aWMgYm9vbCBpc0NDVyhjb25zdCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgRmxvYXRQ
b2ludCB2MSA9IEZsb2F0UG9pbnQocXVhZC5wMigpLngoKSAtIHF1YWQucDEoKS54KCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVhZC5wMigpLnkoKSAtIHF1YWQucDEoKS55KCkp
OworICAgIEZsb2F0UG9pbnQgdjIgPSBGbG9hdFBvaW50KHF1YWQucDMoKS54KCkgLSBxdWFkLnAy
KCkueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1YWQucDMoKS55KCkgLSBx
dWFkLnAyKCkueSgpKTsKKyAgICByZXR1cm4gKHYxLngoKSAqIHYyLnkoKSAtIHYxLnkoKSAqIHYy
LngoKSkgPCAwOworfQorCitzdGF0aWMgRWRnZSBjb21wdXRlRWRnZShjb25zdCBGbG9hdFBvaW50
JiBwLCBjb25zdCBGbG9hdFBvaW50JiBxLCBmbG9hdCBzaWduKQoreworICAgIEZsb2F0UG9pbnQg
dGFuZ2VudChwLnkoKSAtIHEueSgpLCBxLngoKSAtIHAueCgpKTsKKyAgICBmbG9hdCBzY2FsZSA9
IHNpZ24gLyB0YW5nZW50Lmxlbmd0aCgpOworICAgIGZsb2F0IGNyb3NzMiA9IHAueCgpICogcS55
KCkgLSBxLngoKSAqIHAueSgpOworCisgICAgcmV0dXJuIEVkZ2UodGFuZ2VudC54KCkgKiBzY2Fs
ZSwKKyAgICAgICAgICAgICAgICB0YW5nZW50LnkoKSAqIHNjYWxlLAorICAgICAgICAgICAgICAg
IGNyb3NzMiAqIHNjYWxlKTsKK30KKworc3RhdGljIEZsb2F0UG9pbnQgaW50ZXJzZWN0KGNvbnN0
IEVkZ2UmIGEsIGNvbnN0IEVkZ2UmIGIpCit7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoCisgICAg
ICAgIChhLnkoKSAqIGIueigpIC0gYi55KCkgKiBhLnooKSkgLyAoYS54KCkgKiBiLnkoKSAtIGIu
eCgpICogYS55KCkpLAorICAgICAgICAoYS54KCkgKiBiLnooKSAtIGIueCgpICogYS56KCkpIC8g
KGIueCgpICogYS55KCkgLSBhLngoKSAqIGIueSgpKSk7Cit9CisKIHZvaWQgTGF5ZXJUaWxlckNo
cm9taXVtOjpkcmF3KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgZ2xvYmFsVHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5KQogewogICAgIGlmICht
X3NraXBzRHJhdyB8fCAhbV90aWxlcy5zaXplKCkgfHwgY29udGVudFJlY3QuaXNFbXB0eSgpKQpA
QCAtMzQ3LDEwICszOTUsNjUgQEAKICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dW5pZm9ybTFp
KHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkuc2FtcGxlckxvY2F0aW9uKCksIDApKTsKICAgICBH
TEMoY29udGV4dCwgY29udGV4dC0+YWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRTApKTsKIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdHJpeChnbG9iYWxUcmFuc2Zv
cm0pOworCisgICAgLy8gV2UgZG9uJ3QgY2FyZSBhYm91dCBaIGNvbXBvbmVudC4KKyAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBpbnZlcnNlID0KKyAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KG1h
dHJpeC5tMTEoKSwgbWF0cml4Lm0xMigpLCAwLjAsIG1hdHJpeC5tMTQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hdHJpeC5tMjEoKSwgbWF0cml4Lm0yMigpLCAwLjAsIG1hdHJpeC5t
MjQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJpeC5tMzEoKSwgbWF0cml4Lm0z
MigpLCAxLjAsIG1hdHJpeC5tMzQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJp
eC5tNDEoKSwgbWF0cml4Lm00MigpLCAwLjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBt
YXRyaXgubTQ0KCkpLmludmVyc2UoKTsKKworICAgIEludFJlY3QgYm91bmRzKG1fbGF5ZXJQb3Np
dGlvbiwgSW50U2l6ZShtX3RpbGluZ0RhdGEudG90YWxTaXplWCgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RpbGluZ0RhdGEudG90YWxTaXplWSgpKSk7
CisKKyAgICAvLyBJbmNsdWRlIG91dGVyIGJvcmRlciB0ZXhlbHMgaW4gYm91bmRzLgorICAgIGJv
dW5kcy5pbmZsYXRlKG1fdGlsaW5nRGF0YS5ib3JkZXJUZXhlbHMoKSk7CisKKyAgICAvLyBNYXAg
Ym91bmRzIHRvIGRldmljZSBzcGFjZS4KKyAgICBGbG9hdFF1YWQgYm91bmRzUXVhZCA9IG1hdHJp
eC5tYXBRdWFkKEZsb2F0UXVhZChib3VuZHMpKTsKKworICAgIC8vIENvdW50ZXItY2xvY2t3aXNl
PworICAgIGZsb2F0IHNpZ24gPSBpc0NDVyhib3VuZHNRdWFkKSA/IC0xLjBmIDogMS4wZjsKKwor
ICAgIC8vIENvbXB1dGUgb3V0ZXIgZWRnZXMuCisgICAgRWRnZSBsZWZ0RWRnZSA9IGNvbXB1dGVF
ZGdlKGJvdW5kc1F1YWQucDQoKSwgYm91bmRzUXVhZC5wMSgpLCBzaWduKTsKKyAgICBFZGdlIHJp
Z2h0RWRnZSA9IGNvbXB1dGVFZGdlKGJvdW5kc1F1YWQucDIoKSwgYm91bmRzUXVhZC5wMygpLCBz
aWduKTsKKyAgICBFZGdlIHRvcEVkZ2UgPSBjb21wdXRlRWRnZShib3VuZHNRdWFkLnAxKCksIGJv
dW5kc1F1YWQucDIoKSwgc2lnbik7CisgICAgRWRnZSBib3R0b21FZGdlID0gY29tcHV0ZUVkZ2Uo
Ym91bmRzUXVhZC5wMygpLCBib3VuZHNRdWFkLnA0KCksIHNpZ24pOworCisgICAgLy8gTW92ZSBv
dXRlciBlZGdlcyB0byBlbnN1cmUgdGhhdCBhbGwgcGFydGlhbGx5IGNvdmVyZWQgcGl4ZWxzIGFy
ZQorICAgIC8vIHByb2Nlc3NlZC4KKyAgICBmbG9hdCB6RGlzdGFuY2UgPSBtX3RpbGluZ0RhdGEu
Ym9yZGVyVGV4ZWxzKCkgKiAwLjVmOworICAgIGxlZnRFZGdlLm1vdmUoMCwgMCwgekRpc3RhbmNl
KTsKKyAgICByaWdodEVkZ2UubW92ZSgwLCAwLCB6RGlzdGFuY2UpOworICAgIHRvcEVkZ2UubW92
ZSgwLCAwLCB6RGlzdGFuY2UpOworICAgIGJvdHRvbUVkZ2UubW92ZSgwLCAwLCB6RGlzdGFuY2Up
OworCisgICAgRWRnZSBwcmV2RWRnZVkgPSB0b3BFZGdlOworCiAgICAgaW50IGxlZnQsIHRvcCwg
cmlnaHQsIGJvdHRvbTsKICAgICBjb250ZW50UmVjdFRvVGlsZUluZGljZXMoY29udGVudFJlY3Qs
IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7Ci0gICAgSW50UmVjdCBsYXllclJlY3QgPSBjb250
ZW50UmVjdFRvTGF5ZXJSZWN0KGNvbnRlbnRSZWN0KTsKICAgICBmb3IgKGludCBqID0gdG9wOyBq
IDw9IGJvdHRvbTsgKytqKSB7CisgICAgICAgIEVkZ2UgcHJldkVkZ2VYID0gbGVmdEVkZ2U7CisK
KyAgICAgICAgRWRnZSBlZGdlWSA9IGJvdHRvbUVkZ2U7CisgICAgICAgIGlmIChqIDwgKG1fdGls
aW5nRGF0YS5udW1UaWxlc1koKSAtIDEpKSB7CisgICAgICAgICAgICBJbnRSZWN0IHRpbGVSZWN0
ID0gbV90aWxpbmdEYXRhLnRpbGVCb3VuZHMobV90aWxpbmdEYXRhLnRpbGVJbmRleCgwLCBqKSk7
CisgICAgICAgICAgICB0aWxlUmVjdC5tb3ZlKG1fbGF5ZXJQb3NpdGlvbi54KCksIG1fbGF5ZXJQ
b3NpdGlvbi55KCkpOworCisgICAgICAgICAgICBGbG9hdFBvaW50IHAxKHRpbGVSZWN0Lm1heFgo
KSwgdGlsZVJlY3QubWF4WSgpKTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgcDIodGlsZVJlY3Qu
eCgpLCB0aWxlUmVjdC5tYXhZKCkpOworCisgICAgICAgICAgICAvLyBNYXAgcG9pbnRzIHRvIGRl
dmljZSBzcGFjZS4KKyAgICAgICAgICAgIHAxID0gbWF0cml4Lm1hcFBvaW50KHAxKTsKKyAgICAg
ICAgICAgIHAyID0gbWF0cml4Lm1hcFBvaW50KHAyKTsKKworICAgICAgICAgICAgLy8gQ29tcHV0
ZSBob3Jpem9udGFsIGVkZ2UuCisgICAgICAgICAgICBlZGdlWSA9IGNvbXB1dGVFZGdlKHAxLCBw
Miwgc2lnbik7CisgICAgICAgIH0KKwogICAgICAgICBmb3IgKGludCBpID0gbGVmdDsgaSA8PSBy
aWdodDsgKytpKSB7CiAgICAgICAgICAgICBUaWxlKiB0aWxlID0gdGlsZUF0KGksIGopOwogICAg
ICAgICAgICAgaWYgKCF0aWxlKQpAQCAtMzU4LDI0ICs0NjEsMTcgQEAKIAogICAgICAgICAgICAg
dGlsZS0+dGV4dHVyZSgpLT5iaW5kVGV4dHVyZSgpOwogCi0gICAgICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCB0aWxlTWF0cml4KGdsb2JhbFRyYW5zZm9ybSk7Ci0KICAgICAgICAgICAgIC8v
IERvbid0IHVzZSB0aWxlQ29udGVudFJlY3QgaGVyZSwgYXMgdGhhdCBjb250YWlucyB0aGUgZnVs
bAogICAgICAgICAgICAgLy8gcmVjdCB3aXRoIGJvcmRlciB0ZXhlbHMgd2hpY2ggc2hvdWxkbid0
IGJlIGRyYXduLgogICAgICAgICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IG1fdGlsaW5nRGF0YS50
aWxlQm91bmRzKG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpKTsK
LSAgICAgICAgICAgIEludFJlY3QgZGlzcGxheVJlY3QgPSB0aWxlUmVjdDsKLSAgICAgICAgICAg
IHRpbGVSZWN0LmludGVyc2VjdChsYXllclJlY3QpOwotICAgICAgICAgICAgLy8gS2VlcCB0cmFj
ayBvZiBob3cgdGhlIHRvcCBsZWZ0IGhhcyBtb3ZlZCwgc28gdGhlIHRleHR1cmUgY2FuIGJlCi0g
ICAgICAgICAgICAvLyBvZmZzZXQgdGhlIHNhbWUgYW1vdW50LgotICAgICAgICAgICAgSW50U2l6
ZSBvZmZzZXQgPSB0aWxlUmVjdC5taW5YTWluWUNvcm5lcigpIC0gZGlzcGxheVJlY3QubWluWE1p
bllDb3JuZXIoKTsKICAgICAgICAgICAgIHRpbGVSZWN0Lm1vdmUobV9sYXllclBvc2l0aW9uLngo
KSwgbV9sYXllclBvc2l0aW9uLnkoKSk7Ci0gICAgICAgICAgICB0aWxlTWF0cml4LnRyYW5zbGF0
ZTNkKHRpbGVSZWN0LngoKSArIHRpbGVSZWN0LndpZHRoKCkgLyAyLjAsIHRpbGVSZWN0LnkoKSAr
IHRpbGVSZWN0LmhlaWdodCgpIC8gMi4wLCAwKTsKIAotICAgICAgICAgICAgSW50UG9pbnQgdGV4
T2Zmc2V0ID0gbV90aWxpbmdEYXRhLnRleHR1cmVPZmZzZXQodGlsZS0+aSgpLCB0aWxlLT5qKCkp
ICsgb2Zmc2V0OwotICAgICAgICAgICAgZmxvYXQgdGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KG1fdGlsZVNpemUud2lkdGgoKSk7Ci0gICAgICAgICAgICBmbG9hdCB0aWxlSGVpZ2h0ID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdGlsZVNpemUuaGVpZ2h0KCkpOwotICAgICAgICAgICAgZmxv
YXQgdGV4VHJhbnNsYXRlWCA9IHRleE9mZnNldC54KCkgLyB0aWxlV2lkdGg7Ci0gICAgICAgICAg
ICBmbG9hdCB0ZXhUcmFuc2xhdGVZID0gdGV4T2Zmc2V0LnkoKSAvIHRpbGVIZWlnaHQ7CisgICAg
ICAgICAgICBJbnRQb2ludCB0ZXhPZmZzZXQgPSBtX3RpbGluZ0RhdGEudGV4dHVyZU9mZnNldCh0
aWxlLT5pKCksIHRpbGUtPmooKSk7CisgICAgICAgICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxl
VGV4UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGZsb2F0IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0
PGZsb2F0Pih0ZXhSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgZmxvYXQgdGlsZUhlaWdodCA9
IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIGZsb2F0
IHRleFRyYW5zbGF0ZVggPSAodGV4T2Zmc2V0LngoKSAtIHRpbGVSZWN0LngoKSkgLyB0aWxlV2lk
dGg7CisgICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVZID0gKHRleE9mZnNldC55KCkgLSB0
aWxlUmVjdC55KCkpIC8gdGlsZUhlaWdodDsKICAgICAgICAgICAgIGZsb2F0IHRleFNjYWxlWCA9
IHRpbGVSZWN0LndpZHRoKCkgLyB0aWxlV2lkdGg7CiAgICAgICAgICAgICBmbG9hdCB0ZXhTY2Fs
ZVkgPSB0aWxlUmVjdC5oZWlnaHQoKSAvIHRpbGVIZWlnaHQ7CiAgICAgICAgICAgICAvLyBPcGVu
R0wgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYm90dG9tLXVwLgpAQCAtMzg0LDggKzQ4MCwzNSBAQAog
ICAgICAgICAgICAgICAgIHRleFRyYW5zbGF0ZVkgPSAxLjAgLSB0ZXhUcmFuc2xhdGVZOwogICAg
ICAgICAgICAgICAgIHRleFNjYWxlWSAqPSAtMS4wOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZHJhd1RleHR1cmVkUXVhZChjb250ZXh0LCBsYXllclJlbmRlcmVyKCktPnByb2plY3Rpb25N
YXRyaXgoKSwgdGlsZU1hdHJpeCwgdGlsZVJlY3Qud2lkdGgoKSwgdGlsZVJlY3QuaGVpZ2h0KCks
IG9wYWNpdHksIHRleFRyYW5zbGF0ZVgsIHRleFRyYW5zbGF0ZVksIHRleFNjYWxlWCwgdGV4U2Nh
bGVZLCBwcm9ncmFtKTsKKworICAgICAgICAgICAgRWRnZSBlZGdlWCA9IHJpZ2h0RWRnZTsKKyAg
ICAgICAgICAgIGlmIChpIDwgKG1fdGlsaW5nRGF0YS5udW1UaWxlc1goKSAtIDEpKSB7CisgICAg
ICAgICAgICAgICAgRmxvYXRQb2ludCBwMSh0aWxlUmVjdC5tYXhYKCksIHRpbGVSZWN0LnkoKSk7
CisgICAgICAgICAgICAgICAgRmxvYXRQb2ludCBwMih0aWxlUmVjdC5tYXhYKCksIHRpbGVSZWN0
Lm1heFkoKSk7CisKKyAgICAgICAgICAgICAgICAvLyBNYXAgcG9pbnRzIHRvIGRldmljZSBzcGFj
ZS4KKyAgICAgICAgICAgICAgICBwMSA9IG1hdHJpeC5tYXBQb2ludChwMSk7CisgICAgICAgICAg
ICAgICAgcDIgPSBtYXRyaXgubWFwUG9pbnQocDIpOworCisgICAgICAgICAgICAgICAgLy8gQ29t
cHV0ZSB2ZXJ0aWNhbCBlZGdlLgorICAgICAgICAgICAgICAgIGVkZ2VYID0gY29tcHV0ZUVkZ2Uo
cDEsIHAyLCBzaWduKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ3JlYXRlIGRl
dmljZSBzcGFjZSBxdWFkLgorICAgICAgICAgICAgRmxvYXRRdWFkIGRldmljZVF1YWQoaW50ZXJz
ZWN0KGVkZ2VZLCBwcmV2RWRnZVgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50ZXJzZWN0KHByZXZFZGdlWCwgcHJldkVkZ2VZKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludGVyc2VjdChwcmV2RWRnZVksIGVkZ2VYKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludGVyc2VjdChlZGdlWCwgZWRnZVkpKTsKKworICAgICAgICAgICAg
Ly8gTWFwIHF1YWQgdG8gbGF5ZXIgc3BhY2UuCisgICAgICAgICAgICBGbG9hdFF1YWQgcXVhZCA9
IGludmVyc2UubWFwUXVhZChkZXZpY2VRdWFkKTsKKworICAgICAgICAgICAgZHJhd1RleHR1cmVk
UXVhZChjb250ZXh0LCBxdWFkLCBsYXllclJlbmRlcmVyKCktPnByb2plY3Rpb25NYXRyaXgoKSwg
bWF0cml4LCB0aWxlUmVjdC53aWR0aCgpLCB0aWxlUmVjdC5oZWlnaHQoKSwgb3BhY2l0eSwgdGV4
VHJhbnNsYXRlWCwgdGV4VHJhbnNsYXRlWSwgdGV4U2NhbGVYLCB0ZXhTY2FsZVksIHByb2dyYW0p
OworCisgICAgICAgICAgICBwcmV2RWRnZVggPSBlZGdlWDsKICAgICAgICAgfQorCisgICAgICAg
IHByZXZFZGdlWSA9IGVkZ2VZOwogICAgIH0KIH0KIApAQCAtMzk0LDEzICs1MTcsMjUgQEAKICAg
ICAvLyBHcm93IHRoZSB0aWxlIGFycmF5IHRvIGNvbnRhaW4gdGhpcyBjb250ZW50IHJlY3QuCiAg
ICAgSW50UmVjdCBsYXllclJlY3QgPSBjb250ZW50UmVjdFRvTGF5ZXJSZWN0KGNvbnRlbnRSZWN0
KTsKICAgICBJbnRTaXplIHJlY3RTaXplID0gSW50U2l6ZShsYXllclJlY3QubWF4WCgpLCBsYXll
clJlY3QubWF4WSgpKTsKKyAgICBJbnRTaXplIHRleFNpemUgPSBtX3RpbGVTaXplOwogCisgICAg
Ly8gVXNlIHJlY3Qgd2l0aCBib3JkZXIgdGV4ZWxzIGFzIG1heCB0ZXh0dXJlIHNpemUgd2hlbiB0
aWxlIHNpemUKKyAgICAvLyBoYXMgbm90IGJlZW4gc3BlY2lmaWVkLgorICAgIGlmICh0ZXhTaXpl
LmlzRW1wdHkoKSkgeworICAgICAgICB0ZXhTaXplID0gcmVjdFNpemU7CisgICAgICAgIGlmICht
X3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpCisgICAgICAgICAgICB0ZXhTaXplLmV4cGFuZCgy
LCAyKTsKKyAgICB9CisKKyAgICBtX3RpbGluZ0RhdGEuc2V0TWF4VGV4dHVyZVNpemUobWF4KHRl
eFNpemUud2lkdGgoKSwgdGV4U2l6ZS5oZWlnaHQoKSkpOworCiAgICAgSW50U2l6ZSBvbGRMYXll
clNpemUobV90aWxpbmdEYXRhLnRvdGFsU2l6ZVgoKSwgbV90aWxpbmdEYXRhLnRvdGFsU2l6ZVko
KSk7CiAgICAgSW50U2l6ZSBuZXdTaXplID0gcmVjdFNpemUuZXhwYW5kZWRUbyhvbGRMYXllclNp
emUpOworCiAgICAgbV90aWxpbmdEYXRhLnNldFRvdGFsU2l6ZShuZXdTaXplLndpZHRoKCksIG5l
d1NpemUuaGVpZ2h0KCkpOwogfQogCi12b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6ZHJhd1RleHR1
cmVkUXVhZChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHByb2plY3Rpb25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3
TWF0cml4LAordm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUZXh0dXJlZFF1YWQoR3JhcGhp
Y3NDb250ZXh0M0QqIGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCAmcXVhZCwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHByb2plY3Rpb25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBkcmF3TWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZs
b2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IG9wYWNpdHksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWCwgZmxvYXQgdGV4VHJhbnNs
YXRlWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB0ZXhTY2Fs
ZVgsIGZsb2F0IHRleFNjYWxlWSwKQEAgLTQyMyw2ICs1NTgsMTkgQEAKICAgICBHTEMoY29udGV4
dCwgY29udGV4dC0+dW5pZm9ybTRmKHByb2dyYW0tPnZlcnRleFNoYWRlcigpLnRleFRyYW5zZm9y
bUxvY2F0aW9uKCksCiAgICAgICAgIHRleFRyYW5zbGF0ZVgsIHRleFRyYW5zbGF0ZVksIHRleFNj
YWxlWCwgdGV4U2NhbGVZKSk7CiAKKyAgICBmbG9hdCBzY2FsZVggPSAxLjBmIC8gd2lkdGg7Cisg
ICAgZmxvYXQgc2NhbGVZID0gMS4wZiAvIGhlaWdodDsKKyAgICBmbG9hdCBwb2ludFs4XTsKKyAg
ICBwb2ludFswXSA9IHF1YWQucDEoKS54KCkgKiBzY2FsZVg7CisgICAgcG9pbnRbMV0gPSBxdWFk
LnAxKCkueSgpICogc2NhbGVZOworICAgIHBvaW50WzJdID0gcXVhZC5wMigpLngoKSAqIHNjYWxl
WDsKKyAgICBwb2ludFszXSA9IHF1YWQucDIoKS55KCkgKiBzY2FsZVk7CisgICAgcG9pbnRbNF0g
PSBxdWFkLnAzKCkueCgpICogc2NhbGVYOworICAgIHBvaW50WzVdID0gcXVhZC5wMygpLnkoKSAq
IHNjYWxlWTsKKyAgICBwb2ludFs2XSA9IHF1YWQucDQoKS54KCkgKiBzY2FsZVg7CisgICAgcG9p
bnRbN10gPSBxdWFkLnA0KCkueSgpICogc2NhbGVZOworICAgIEdMQyhjb250ZXh0LCBjb250ZXh0
LT51bmlmb3JtMmZ2KHByb2dyYW0tPnZlcnRleFNoYWRlcigpLnBvaW50TG9jYXRpb24oKSwgcG9p
bnQsIDQpKTsKKwogICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5kcmF3RWxlbWVudHMoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRSSUFOR0xFUywgNiwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JULCAwKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAkocmV2
aXNpb24gODk0NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBA
CiAKICAgICBPd25QdHI8TGF5ZXJUaWxlckNocm9taXVtPiBtX3RpbGVyOwogICAgIFRpbGluZ09w
dGlvbiBtX3RpbGluZ09wdGlvbjsKKyAgICBib29sIG1fYm9yZGVyVGV4ZWxzOwogfTsKIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxl
ckNocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHJldmlzaW9uIDg5NDU1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQAogICAgICAgICBpbnQgbV9qOwog
ICAgIH07CiAKLSAgICB2b2lkIGRyYXdUZXh0dXJlZFF1YWQoR3JhcGhpY3NDb250ZXh0M0QqLCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIGRyYXdNYXRyaXgsCisgICAgdm9pZCBkcmF3VGV4dHVyZWRRdWFkKEdy
YXBoaWNzQ29udGV4dDNEKiwgY29uc3QgRmxvYXRRdWFkICYsIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBwcm9qZWN0aW9uTWF0cml4LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZHJh
d01hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCwgZmxvYXQgb3BhY2l0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdGV4
VHJhbnNsYXRlWCwgZmxvYXQgdGV4VHJhbnNsYXRlWSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxvYXQgdGV4U2NhbGVYLCBmbG9hdCB0ZXhTY2FsZVksCkBAIC0xMjIsNiArMTIyLDcgQEAK
ICAgICBUaWxlKiB0aWxlQXQoaW50LCBpbnQpIGNvbnN0OwogICAgIEludFJlY3QgdGlsZUNvbnRl
bnRSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKICAgICBJbnRSZWN0IHRpbGVMYXllclJlY3QoY29u
c3QgVGlsZSopIGNvbnN0OworICAgIEludFJlY3QgdGlsZVRleFJlY3QoY29uc3QgVGlsZSopIGNv
bnN0OwogCiAgICAgSW50U2l6ZSBtX3RpbGVTaXplOwogICAgIEludFBvaW50IG1fbGF5ZXJQb3Np
dGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Nv
bnRlbnRMYXllckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9u
IDg5NDU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29u
dGVudExheWVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIC8vIFN0YXJ0IHRpbGluZyB3aGVuIHRoZSB3
aWR0aCBhbmQgaGVpZ2h0IG9mIGEgbGF5ZXIgYXJlIGxhcmdlciB0aGFuIHRoaXMgc2l6ZS4KLXN0
YXRpYyBpbnQgbWF4VW50aWxlZFNpemUgPSA1MTI7CitzdGF0aWMgaW50IG1heFVudGlsZWRTaXpl
ID0gNTEwOwogCiAvLyBXaGVuIHRpbGluZyBpcyBlbmFibGVkLCB1c2UgdGlsZXMgb2YgdGhpcyBk
aW1lbnNpb24gc3F1YXJlZC4KIHN0YXRpYyBpbnQgZGVmYXVsdFRpbGVTaXplID0gMjU2OwpAQCAt
ODYsNiArODYsNyBAQAogQ29udGVudExheWVyQ2hyb21pdW06OkNvbnRlbnRMYXllckNocm9taXVt
KEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpCiAgICAgOiBMYXllckNocm9taXVtKG93bmVy
KQogICAgICwgbV90aWxpbmdPcHRpb24oQ29udGVudExheWVyQ2hyb21pdW06OkF1dG9UaWxlKQor
ICAgICwgbV9ib3JkZXJUZXhlbHModHJ1ZSkKIHsKIH0KIApAQCAtMTg4LDcgKzE4OSw3IEBACiAg
ICAgaWYgKCFtX3RpbGVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBJbnRTaXplIHRp
bGVTaXplKG1pbihkZWZhdWx0VGlsZVNpemUsIGxheWVyU2l6ZS53aWR0aCgpKSwgbWluKGRlZmF1
bHRUaWxlU2l6ZSwgbGF5ZXJTaXplLmhlaWdodCgpKSk7CisgICAgY29uc3QgSW50U2l6ZSB0aWxl
U2l6ZShkZWZhdWx0VGlsZVNpemUsIGRlZmF1bHRUaWxlU2l6ZSk7CiAKICAgICAvLyBUaWxlIGlm
IGJvdGggZGltZW5zaW9ucyBsYXJnZSwgb3IgYW55IG9uZSBkaW1lbnNpb24gbGFyZ2UgYW5kIHRo
ZSBvdGhlcgogICAgIC8vIGV4dGVuZHMgaW50byBhIHNlY29uZCB0aWxlLiBUaGlzIGhldXJpc3Rp
YyBhbGxvd3MgZm9yIGxvbmcgc2tpbm55IGxheWVycwpAQCAtMjA1LDcgKzIwNiw4IEBACiAgICAg
ZWxzZQogICAgICAgICBpc1RpbGVkID0gYXV0b1RpbGVkOwogCi0gICAgSW50U2l6ZSByZXF1ZXN0
ZWRTaXplID0gaXNUaWxlZCA/IHRpbGVTaXplIDogbGF5ZXJTaXplOworICAgIC8vIEVtcHR5IHRp
bGUgc2l6ZSB0ZWxscyB0aGUgdGlsZXIgdG8gYXZvaWQgdGlsaW5nLgorICAgIEludFNpemUgcmVx
dWVzdGVkU2l6ZSA9IGlzVGlsZWQgPyB0aWxlU2l6ZSA6IEludFNpemUoKTsKICAgICBjb25zdCBp
bnQgbWF4U2l6ZSA9IGxheWVyUmVuZGVyZXIoKS0+bWF4VGV4dHVyZVNpemUoKTsKICAgICBJbnRT
aXplIGNsYW1wZWRTaXplID0gcmVxdWVzdGVkU2l6ZS5zaHJ1bmtUbyhJbnRTaXplKG1heFNpemUs
IG1heFNpemUpKTsKICAgICBtX3RpbGVyLT5zZXRUaWxlU2l6ZShjbGFtcGVkU2l6ZSk7CkBAIC0y
NDIsNyArMjQ0LDggQEAKICAgICAgICAgbGF5ZXJSZW5kZXJlcigpLAogICAgICAgICBjcmVhdGVU
ZXh0dXJlVXBkYXRlcigpLAogICAgICAgICBJbnRTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVmYXVs
dFRpbGVTaXplKSwKLSAgICAgICAgTGF5ZXJUaWxlckNocm9taXVtOjpIYXNCb3JkZXJUZXhlbHMp
OworICAgICAgICBtX2JvcmRlclRleGVscyA/IExheWVyVGlsZXJDaHJvbWl1bTo6SGFzQm9yZGVy
VGV4ZWxzIDoKKyAgICAgICAgTGF5ZXJUaWxlckNocm9taXVtOjpOb0JvcmRlclRleGVscyk7CiB9
CiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMo
KQpAQCAtMjcwLDYgKzI3Myw3IEBACiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnNldElz
TWFzayhib29sIGlzTWFzaykKIHsKKyAgICBtX2JvcmRlclRleGVscyA9IGZhbHNlOwogICAgIHNl
dFRpbGluZ09wdGlvbihpc01hc2sgPyBOZXZlclRpbGUgOiBBdXRvVGlsZSk7CiB9CiAKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQJKHJldmlzaW9uIDg5NDU1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOTk2LDExICsyOTk2LDEy
IEBACiBCVUdDUjc1MDE5IFdJTiBMSU5VWCBNQUMgOmZhc3QvdGV4dC9oeXBoZW5hdGUtbGltaXQt
YmVmb3JlLWFmdGVyLmh0bWwgPSBJTUFHRStURVhUCiAKIC8vIENocm9taXVtIEdQVSBkcmF3cyBz
Y3JvbGxiYXJzIHNsaWdodGx5IGRpZmZlcmVudGx5IGluIGRlYnVnIHZzLiByZWxlYXNlLgotQlVH
V0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9z
aXRpbmcuaHRtbCA9IElNQUdFCi1CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1C
VUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3RhbGwtcGFn
ZS1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQotQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBj
b21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1maXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCi1C
VUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdF
CisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNTg1ODcgREVCVUcg
R1BVIExJTlVYIDogY29tcG9zaXRpbmcvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwgPSBJ
TUFHRQorLy9CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5
L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCisvL0JVR1dLNTg1ODcg
REVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdGFsbC1wYWdlLWNvbXBvc2l0
ZWQuaHRtbCA9IElNQUdFCisvL0JVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvdmlkZW8tZml4ZWQtc2Nyb2xsaW5nLmh0bWwgPSBJTUFHRQorLy9CVUdXSzU4
NTg3IERFQlVHIEdQVSBMSU5VWCA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCiAKIC8v
IFdlYktpdCByb2xsIDgwNTY0OjgwNjMxOiByZW5kZXJpbmcgb24gTGVvcGFyZCBpcyBzaGlmdGVk
IHRvIHRoZSB0b3AgcmlnaHQKIC8vIHN0YXJ0ZWQgYXQgc29tZSBwb2ludCBhdCBvciBhZnRlciBX
SyByODA1ODIgKERhdmUgSHlhdHQncyB2ZXJ0aWNhbCB0ZXh0IGNoYW5nZSAtIGEgdmVyeSBsaWtl
bHkgY2FuZGlkYXRlKQpAQCAtMzMyOSw3ICszMzMwLDggQEAKIEJVR0NSNzkxMTEgR1BVIDogY29t
cG9zaXRpbmcvZnJhbWVzZXRzL2NvbXBvc2l0ZWQtZnJhbWUtYWxpZ25tZW50Lmh0bWwgPSBJTUFH
RQogCiBCVUdXSzU4MzA4IEdQVSBXSU4gTElOVVggREVCVUcgOiBjb21wb3NpdGluZy96LW9yZGVy
L25lZ2F0aXZlLXotaW5kZXguaHRtbCA9IFBBU1MgQ1JBU0gKLUJVR1dLNTgzMjggR1BVIFdJTiBN
QUMgTElOVVggREVCVUcgOiBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwg
PSBJTUFHRSBQQVNTIENSQVNICisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4Cisv
L0JVR1dLNTgzMjggR1BVIFdJTiBNQUMgTElOVVggREVCVUcgOiBjb21wb3NpdGluZy93ZWJnbC93
ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRSBQQVNTIENSQVNICiAKIEJVR0NSNzkxNzMgR1BV
IExJTlVYIERFQlVHIDogZmFzdC9jYW52YXMvYWNjZXNzLXplcm8tc2l6ZWQtY2FudmFzLmh0bWwg
PSBQQVNTIENSQVNICiAKQEAgLTM0ODksOSArMzQ5MSwxMSBAQAogCiAvLyBOZWVkcyByZWJhc2Vs
aW5lCiAKLUJVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtaW4tY29tcG9zaXRlZC5odG1sID0gSU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9m
IEJVR1dLNjEzODgKKy8vQlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQogQlVHV0s2MDEwMiBMSU5V
WCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9tYXNrZWQtYW5jZXN0b3IuaHRtbCA9IElNQUdFCi1C
VUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6IGNvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21w
b3NpdGVkLW1hc2suaHRtbCA9IElNQUdFCisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYx
Mzg4CisvL0JVR1dLNjAxMDIgTElOVVggREVCVUcgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2lt
cGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKIC8vIENvbW1lbnRlZCBiZWNhdXNlIG9m
IEJVR0NSODE2MDUKIC8vQlVHV0s2MDEwMiBMSU5VWCBERUJVRyBHUFUgOiBmYXN0L2NhbnZhcy9j
YW52YXMtdGV4dC1hbGlnbm1lbnQuaHRtbCA9IElNQUdFCiAKQEAgLTM5OTYsMyArNDAwMCw0NCBA
QAogQlVHQ1I4NzA3MCA6IGZhc3QvanMvcGFyc2VyLXhtbC1jbG9zZS1jb21tZW50Lmh0bWwgPSBU
RVhUCiAvLyBTb3VuZHMgbGlrZSBhIHJlYWwgcmVncmVzc2lvbi4KIEJVR0NSODcwNzAgV0lOIERF
QlVHIDogaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1ERU5JRUQtdG8tamF2
YXNjcmlwdC11cmwtaW4tZm9yZWlnbi1kb21haW4tc3ViZnJhbWUuaHRtbCA9IENSQVNIIFBBU1MK
KworQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9jb2xvci1tYXRjaGluZy9pbWFnZS1jb2xv
ci1tYXRjaGluZy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZGly
ZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2
MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvaG9yaXpvbnRhbC1zY3Jv
bGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcv
Z2VvbWV0cnkvbGF5ZXItZHVlLXRvLWxheWVyLWNoaWxkcmVuLWRlZXAuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xheWVyLWR1ZS10by1sYXllci1j
aGlsZHJlbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0
cnkvdGFsbC1wYWdlLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNv
bXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKK0JV
R1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdmVydGljYWwtc2Nyb2xsLWNvbXBv
c2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5
L3ZpZGVvLW9wYWNpdHktb3ZlcmxheS5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29t
cG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS1zY3JvbGwuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2lmcmFtZXMvbmVzdGVkLWlmcmFtZS1zY3JvbGxp
bmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2ltYWdlcy9kaXJl
Y3Qtc3ZnLWltYWdlLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9t
YXNrcy9kaXJlY3QtaW1hZ2UtbWFzay5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29t
cG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0gSU1BR0UKK0JVR1dL
NjEzODggR1BVIDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvZml4ZWQtcG9zaXRpb24tYW5jZXN0b3It
Y2xpcC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlv
bnMvZGVlcGx5LW5lc3RlZC1yZWZsZWN0aW9ucy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BV
IDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tb24tb3ZlcmZsb3cu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25l
c3RlZC1yZWZsZWN0aW9uLXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUg
OiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi10cmFuc2Zvcm1lZDIu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25l
c3RlZC1yZWZsZWN0aW9uLXRyYW5zaXRpb24uaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6
IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24taW4tY29tcG9zaXRlZC5odG1sID0g
SU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlv
bi1vbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW9yZGVyaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4
OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLXBvc2l0aW9uaW5nLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZs
ZWN0aW9uLXBvc2l0aW9uaW5nMi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9z
aXRpbmcvcmVmbGVjdGlvbnMvc2ltcGxlLWNvbXBvc2l0ZWQtcmVmbGVjdGlvbnMuaHRtbCA9IElN
QUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3RyYW5zZm9ybS1p
bnNpZGUtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRp
bmcvc2hhZG93cy9zaGFkb3ctZHJhd2luZy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDog
Y29tcG9zaXRpbmcvdGV4dC1vbi1sYXJnZS1sYXllci5odG1sID0gSU1BR0UKK0JVR1dLNjEzODgg
R1BVIDogY29tcG9zaXRpbmcvdHJhbnNpdGlvbnMvc2NhbGUtdHJhbnNpdGlvbi1uby1zdGFydC5o
dG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVm
bGVjdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvaHVnZS1sYXllci1yb3RhdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBH
UFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQuaHRt
bCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L2JhY2tmYWNlLXZpc2liaWxpdHktdHJhbnNmb3JtZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4
IEdQVSA6IG1lZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1l
ZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1l
ZGlhL3ZpZGVvLXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRp
YS92aWRlby1sYXllci1jcmFzaC5odG1sID0gSU1BR0UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5
ZXItcm90YXRlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIg
bWVkaWE9InNjcmVlbiI+CisgICAgLnNtYWxsIHsKKyAgICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6
IDEwMDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7CisgICAgICAt
d2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSg1M2RlZykgcm90YXRlWigxMGRlZykgc2NhbGVYKDEw
MC4wKSBzY2FsZVkoMTAwLjApOworICAgICAgd2lkdGg6IDEwcHg7CisgICAgICBoZWlnaHQ6IDMw
cHg7CisgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3As
IGxlZnQgYm90dG9tLCBmcm9tKCMwMGFiZWIpLCB0bygjZmZmKSk7CisgICAgfQorICA8L3N0eWxl
PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KHRydWUpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IHN0eWxl
PSJvdmVyZmxvdzpoaWRkZW4iPgorICA8ZGl2IGNsYXNzPSJzbWFsbCI+CisgIDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB
ZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODk0NTUpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAxMS0wNi0yMiAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gRWRn
ZSBhbnRpLWFsaWFzaW5nIGZvciBjb21wb3NpdGVkIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzg4CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEx
LTA2LTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98258</attachid>
            <date>2011-06-22 16:09:31 -0700</date>
            <delta_ts>2011-07-07 16:48:29 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-gpu-anti-aliasing-v13.diff</filename>
            <type>text/plain</type>
            <size>133116</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NDg2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODAgQEAKKzIwMTEtMDYtMjIgIERhdmlkIFJl
dmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEVkZ2UgYW50aS1hbGlhc2luZyBmb3Ig
Y29tcG9zaXRlZCBsYXllcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MTM4OAorCisgICAgICAgIEFkZCB0cmFuc3BhcmVudCBvdXRlciBib3JkZXIg
dG8gdGlsZWQgbGF5ZXJzIGFuZCBhZGp1c3QgdmVydGV4CisgICAgICAgIGNvb3JkaW5hdGVzIHNv
IHRoYXQgdXNlIG9mIGEgYmlsaW5lYXIgZmlsdGVyIGNyZWF0ZXMgYSBzbW9vdGgKKyAgICAgICAg
bGF5ZXIgZWRnZS4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL2h1Z2UtbGF5ZXItcm90YXRlZC5odG1sIChleGlzdGluZykKKyAgICAg
ICAgICAgICAgIFRpbGluZ0RhdGFUZXN0IGluIHdlYmtpdF91bml0X3Rlc3RzCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIENoYW5nZSBtYXhVbnRpbGVkU2l6ZSB0byA1MTAgdG8gZW5zdXJlIHRoYXQgdGlsZXMg
YXJlIG5vdCBncmVhdGVyCisgICAgICAgIHRoYW4gNTEyIHdpdGggb3V0ZXIgYm9yZGVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVMYXllclNpemUpOiBX
ZSBjYW4ndCB1c2UgdGhlCisgICAgICAgIGxheWVyIHNpemUgYXMgdGlsZSBzaXplIHdoZW4gd2Ug
d2FudCB0byBhdm9pZCB0aWxpbmcgYXMgdGhpcyB3aWxsCisgICAgICAgIG5vdCBiZSBlbm91Z2gg
c3BhY2UgdG8gaW5jbHVkZSBwb3NzaWJsZSBvdXRlciBib3JkZXJzLiBXZSBpbnN0ZWFkIHVzZQor
ICAgICAgICBhbiBlbXB0eSBzaXplLCB3aGljaCBhbGxvd3MgdGhlIHRpbGVyIHRvIGF1dG9tYXRp
Y2FsbHkgYWRqdXN0IHRoZQorICAgICAgICB0aWxlIHNpemUgdG8gYmUgbGFyZ2UgZW5vdWdoIGZv
ciB0aGUgbGF5ZXIgdG8gZml0IGluIG9uZSB0aWxlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dExheWVyQ2hyb21pdW06OmNyZWF0ZVRpbGVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudExheWVyQ2hyb21pdW06OnNldElzTWFzayk6IERvbid0IHVzZSBib3JkZXIgdGV4ZWxz
CisgICAgICAgIGZvciBsYXllciB1c2VkIGFzIG1hc2suCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudExheWVyQ2hyb21pdW06Om1fYm9yZGVyVGV4ZWxzKSBBZGRlZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVUZXhSZWN0KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVMYXllclJlY3QpOiBt
X3RpbGVTaXplIGlzIG5vCisgICAgICAgIGxvbmdlciB0aGUgY29ycmVjdCBsYXllciBzaXplLiBT
aXplIG9mIGJvdW5kcyB3aXRoIGJvcmRlciBzaG91bGQKKyAgICAgICAgYmUgdGhlIGNvcnJlY3Qg
bGF5ZXIgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1bTo6Z3Jvd0xh
eWVyVG9Db250YWluKTogQWRqdXN0IHRleHR1cmUKKyAgICAgICAgc2l6ZSB0byBpbmNsdWRlIG91
dGVyIGJvcmRlcnMgYW5kIGhhbmRsZSBlbXB0eSBtX3RpbGVTaXplLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdCk6IFVzZSBzaXplIG9mIHJlY3Rh
bmdsZQorICAgICAgICByZXR1cm5lZCBieSB0aWxlVGV4UmVjdCBpbnN0ZWFkIG9mIG1fdGlsZVNp
emUgZm9yIHRleHR1cmUgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1
bTo6cHJlcGFyZVRvVXBkYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVy
Q2hyb21pdW06OmRyYXcpOiBDb21wdXRlIGFuZCBpbnRlcnNlY3QgdGlsZSBlZGdlcworICAgICAg
ICBpbnN0ZWFkIG9mIHVzaW5nIHRpbGUgY29vcmRpbmF0ZXMgZGlyZWN0bHkuIEVkZ2VzIGFyZSBh
ZGp1c3RlZCB0bworICAgICAgICBpbmNsdWRlIG91dGVyIGJvcmRlcnMgYW5kIG1ha2Ugc3VyZSBh
bGwgcGFydGlhbGx5IGNvdmVyZWQgcGl4ZWxzIGFyZQorICAgICAgICBwcm9jZXNzZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUZXh0dXJlZFF1YWQpOiBQYXNz
IHF1YWQgdG8KKyAgICAgICAgc2hhZGVyIHVzaW5nIHBvaW50IHVuaWZvcm0uCisgICAgICAgIChX
ZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OmludmFsaWRhdGVSZWN0KTogSW52YWxpZGF0ZSBv
bGQgbGF5ZXIKKyAgICAgICAgYXJlYSB0byBjbGVhciBhbnkgY29udGVudHMgbGVmdCBmcm9tIHBy
ZXZpb3VzIGxheWVyIHNpemUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllclRpbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJv
bWl1bTo6dGlsZVRleFJlY3QpIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNo
cm9taXVtOjpkcmF3VGV4dHVyZWRRdWFkKTogQWRkIHF1YWQgcGFyYW1ldGVyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpnZXRTaGFkZXJTdHJpbmcp
IEdldCBYL1kgdmVydGV4CisgICAgICAgIGNvbXBvbmVudHMgZnJvbSBwb2ludCB1bmlmb3JtLgor
ICAgICAgICAoV2ViQ29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpWZXJ0ZXhTaGFk
ZXJQb3NUZXhUcmFuc2Zvcm0pCisgICAgICAgIEFkZGVkIHBvaW50IHVuaWZvcm0uCisgICAgICAg
IChXZWJDb3JlOjpWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm06OmluaXQpIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpwb2ludExvY2F0aW9u
KSBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNo
cm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm06
OnBvaW50TG9jYXRpb24pIEFkZGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1RpbGluZ0RhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZUJvdW5k
c1dpdGhPdXRlckJvcmRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6
Y29tcHV0ZU51bVRpbGVzKTogQWRqdXN0IGZvciBvdXRlciBib3JkZXIuCisgICAgICAgIChXZWJD
b3JlOjpUaWxpbmdEYXRhOjp0aWxlWEluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlWUluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlU2l6ZVgpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlRpbGluZ0RhdGE6OnRpbGVTaXplWSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6VGlsaW5nRGF0YTo6aW50ZXJzZWN0RHJhd1F1YWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlRpbGluZ0RhdGE6OnRleHR1cmVPZmZzZXQpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxpbmdE
YXRhOjp0aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKTogQWRkZWQuCisKIDIwMTEtMDYtMjIgIE1h
cmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCShy
ZXZpc2lvbiA4OTQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcs
NyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAvLyBTdGFydCB0aWxpbmcgd2hl
biB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBhIGxheWVyIGFyZSBsYXJnZXIgdGhhbiB0aGlzIHNp
emUuCi1zdGF0aWMgaW50IG1heFVudGlsZWRTaXplID0gNTEyOworc3RhdGljIGludCBtYXhVbnRp
bGVkU2l6ZSA9IDUxMDsKIAogLy8gV2hlbiB0aWxpbmcgaXMgZW5hYmxlZCwgdXNlIHRpbGVzIG9m
IHRoaXMgZGltZW5zaW9uIHNxdWFyZWQuCiBzdGF0aWMgaW50IGRlZmF1bHRUaWxlU2l6ZSA9IDI1
NjsKQEAgLTg2LDYgKzg2LDcgQEAgUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4gQ29u
dGVudAogQ29udGVudExheWVyQ2hyb21pdW06OkNvbnRlbnRMYXllckNocm9taXVtKEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bSogb3duZXIpCiAgICAgOiBMYXllckNocm9taXVtKG93bmVyKQogICAgICwg
bV90aWxpbmdPcHRpb24oQ29udGVudExheWVyQ2hyb21pdW06OkF1dG9UaWxlKQorICAgICwgbV9i
b3JkZXJUZXhlbHModHJ1ZSkKIHsKIH0KIApAQCAtMTg4LDcgKzE4OSw3IEBAIHZvaWQgQ29udGVu
dExheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyU2kKICAgICBpZiAoIW1fdGlsZXIpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGNvbnN0IEludFNpemUgdGlsZVNpemUobWluKGRlZmF1bHRUaWxlU2l6
ZSwgbGF5ZXJTaXplLndpZHRoKCkpLCBtaW4oZGVmYXVsdFRpbGVTaXplLCBsYXllclNpemUuaGVp
Z2h0KCkpKTsKKyAgICBjb25zdCBJbnRTaXplIHRpbGVTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVm
YXVsdFRpbGVTaXplKTsKIAogICAgIC8vIFRpbGUgaWYgYm90aCBkaW1lbnNpb25zIGxhcmdlLCBv
ciBhbnkgb25lIGRpbWVuc2lvbiBsYXJnZSBhbmQgdGhlIG90aGVyCiAgICAgLy8gZXh0ZW5kcyBp
bnRvIGEgc2Vjb25kIHRpbGUuIFRoaXMgaGV1cmlzdGljIGFsbG93cyBmb3IgbG9uZyBza2lubnkg
bGF5ZXJzCkBAIC0yMDUsNyArMjA2LDggQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBk
YXRlTGF5ZXJTaQogICAgIGVsc2UKICAgICAgICAgaXNUaWxlZCA9IGF1dG9UaWxlZDsKIAotICAg
IEludFNpemUgcmVxdWVzdGVkU2l6ZSA9IGlzVGlsZWQgPyB0aWxlU2l6ZSA6IGxheWVyU2l6ZTsK
KyAgICAvLyBFbXB0eSB0aWxlIHNpemUgdGVsbHMgdGhlIHRpbGVyIHRvIGF2b2lkIHRpbGluZy4K
KyAgICBJbnRTaXplIHJlcXVlc3RlZFNpemUgPSBpc1RpbGVkID8gdGlsZVNpemUgOiBJbnRTaXpl
KCk7CiAgICAgY29uc3QgaW50IG1heFNpemUgPSBsYXllclJlbmRlcmVyKCktPm1heFRleHR1cmVT
aXplKCk7CiAgICAgSW50U2l6ZSBjbGFtcGVkU2l6ZSA9IHJlcXVlc3RlZFNpemUuc2hydW5rVG8o
SW50U2l6ZShtYXhTaXplLCBtYXhTaXplKSk7CiAgICAgbV90aWxlci0+c2V0VGlsZVNpemUoY2xh
bXBlZFNpemUpOwpAQCAtMjQyLDcgKzI0NCw4IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OmNyZWF0ZVRpbGVySWYKICAgICAgICAgbGF5ZXJSZW5kZXJlcigpLAogICAgICAgICBjcmVhdGVU
ZXh0dXJlVXBkYXRlcigpLAogICAgICAgICBJbnRTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVmYXVs
dFRpbGVTaXplKSwKLSAgICAgICAgTGF5ZXJUaWxlckNocm9taXVtOjpIYXNCb3JkZXJUZXhlbHMp
OworICAgICAgICBtX2JvcmRlclRleGVscyA/IExheWVyVGlsZXJDaHJvbWl1bTo6SGFzQm9yZGVy
VGV4ZWxzIDoKKyAgICAgICAgTGF5ZXJUaWxlckNocm9taXVtOjpOb0JvcmRlclRleGVscyk7CiB9
CiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMo
KQpAQCAtMjcwLDYgKzI3Myw3IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OmJpbmRDb250
ZW50c1QKIAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6c2V0SXNNYXNrKGJvb2wgaXNNYXNr
KQogeworICAgIG1fYm9yZGVyVGV4ZWxzID0gZmFsc2U7CiAgICAgc2V0VGlsaW5nT3B0aW9uKGlz
TWFzayA/IE5ldmVyVGlsZSA6IEF1dG9UaWxlKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50
TGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiA4OTQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg1LDYgKzg1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgT3duUHRyPExheWVyVGlsZXJD
aHJvbWl1bT4gbV90aWxlcjsKICAgICBUaWxpbmdPcHRpb24gbV90aWxpbmdPcHRpb247CisgICAg
Ym9vbCBtX2JvcmRlclRleGVsczsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNo
cm9taXVtLmNwcAkocmV2aXNpb24gODk0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTGF5ZXJUaWxlckNocm9taXVtLmgiCiAKICNpbmNs
dWRlICJFeHRlbnNpb25zM0RDaHJvbWl1bS5oIgorI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgi
CiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiCkBAIC00Miw2ICs0Myw4IEBAIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordHlwZWRlZiBGbG9h
dFBvaW50M0QgRWRnZTsKKwogUGFzc093blB0cjxMYXllclRpbGVyQ2hyb21pdW0+IExheWVyVGls
ZXJDaHJvbWl1bTo6Y3JlYXRlKExheWVyUmVuZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlciwg
UGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyPiB0ZXh0dXJlVXBkYXRlciwgY29uc3QgSW50
U2l6ZSYgdGlsZVNpemUsIEJvcmRlclRleGVsT3B0aW9uIGJvcmRlcikKIHsKICAgICBpZiAoIWxh
eWVyUmVuZGVyZXIgfHwgdGlsZVNpemUuaXNFbXB0eSgpKQpAQCAtNzgsNyArODEsNiBAQCB2b2lk
IExheWVyVGlsZXJDaHJvbWl1bTo6c2V0VGlsZVNpemUoY29uCiAgICAgcmVzZXQoKTsKIAogICAg
IG1fdGlsZVNpemUgPSBzaXplOwotICAgIG1fdGlsaW5nRGF0YS5zZXRNYXhUZXh0dXJlU2l6ZSht
YXgoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CiB9CiAKIExheWVyVGV4dHVyZSogTGF5
ZXJUaWxlckNocm9taXVtOjpnZXRTaW5nbGVUZXh0dXJlKCkKQEAgLTE4Miw5ICsxODQsMTMgQEAg
SW50UmVjdCBMYXllclRpbGVyQ2hyb21pdW06OnRpbGVDb250ZW50UgogSW50UmVjdCBMYXllclRp
bGVyQ2hyb21pdW06OnRpbGVMYXllclJlY3QoY29uc3QgVGlsZSogdGlsZSkgY29uc3QKIHsKICAg
ICBjb25zdCBpbnQgaW5kZXggPSBtX3RpbGluZ0RhdGEudGlsZUluZGV4KHRpbGUtPmkoKSwgdGls
ZS0+aigpKTsKLSAgICBJbnRSZWN0IGxheWVyUmVjdCA9IG1fdGlsaW5nRGF0YS50aWxlQm91bmRz
V2l0aEJvcmRlcihpbmRleCk7Ci0gICAgbGF5ZXJSZWN0LnNldFNpemUobV90aWxlU2l6ZSk7Ci0g
ICAgcmV0dXJuIGxheWVyUmVjdDsKKyAgICByZXR1cm4gbV90aWxpbmdEYXRhLnRpbGVCb3VuZHNX
aXRoQm9yZGVyKGluZGV4KTsKK30KKworSW50UmVjdCBMYXllclRpbGVyQ2hyb21pdW06OnRpbGVU
ZXhSZWN0KGNvbnN0IFRpbGUqIHRpbGUpIGNvbnN0Cit7CisgICAgY29uc3QgaW50IGluZGV4ID0g
bV90aWxpbmdEYXRhLnRpbGVJbmRleCh0aWxlLT5pKCksIHRpbGUtPmooKSk7CisgICAgcmV0dXJu
IG1fdGlsaW5nRGF0YS50aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKGluZGV4KTsKIH0KIAogdm9p
ZCBMYXllclRpbGVyQ2hyb21pdW06OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIGNvbnRl
bnRSZWN0KQpAQCAtMTkyLDYgKzE5OCw5IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjppbnZh
bGlkYXRlUmVjdCgKICAgICBpZiAoY29udGVudFJlY3QuaXNFbXB0eSgpIHx8IG1fc2tpcHNEcmF3
KQogICAgICAgICByZXR1cm47CiAKKyAgICBJbnRTaXplIG9sZExheWVyU2l6ZShtX3RpbGluZ0Rh
dGEudG90YWxTaXplWCgpLCBtX3RpbGluZ0RhdGEudG90YWxTaXplWSgpKTsKKyAgICBjb25zdCBJ
bnRSZWN0IG9sZExheWVyUmVjdCA9IEludFJlY3QoSW50UG9pbnQoKSwgb2xkTGF5ZXJTaXplKTsK
KwogICAgIGdyb3dMYXllclRvQ29udGFpbihjb250ZW50UmVjdCk7CiAKICAgICAvLyBEaXJ0eSBy
ZWN0cyBhcmUgYWx3YXlzIGluIGxheWVyIHNwYWNlLCBhcyB0aGUgbGF5ZXIgY291bGQgYmUgcmVw
b3NpdGlvbmVkCkBAIC0yMDgsNiArMjE3LDEyIEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpp
bnZhbGlkYXRlUmVjdCgKICAgICAgICAgICAgIEludFJlY3QgYm91bmQgPSB0aWxlTGF5ZXJSZWN0
KHRpbGUpOwogICAgICAgICAgICAgYm91bmQuaW50ZXJzZWN0KGxheWVyUmVjdCk7CiAgICAgICAg
ICAgICB0aWxlLT5tX2RpcnR5TGF5ZXJSZWN0LnVuaXRlKGJvdW5kKTsKKworICAgICAgICAgICAg
Ly8gSW52YWxpZGF0ZSBvbGQgbGF5ZXIgYXJlYSB0byBjbGVhciBhbnkgY29udGVudHMgbGVmdCBm
cm9tCisgICAgICAgICAgICAvLyBwcmV2aW91cyBsYXllciBzaXplLgorICAgICAgICAgICAgSW50
UmVjdCBvbGRCb3VuZCA9IHRpbGVMYXllclJlY3QodGlsZSk7CisgICAgICAgICAgICBvbGRCb3Vu
ZC5pbnRlcnNlY3Qob2xkTGF5ZXJSZWN0KTsKKyAgICAgICAgICAgIHRpbGUtPm1fZGlydHlMYXll
clJlY3QudW5pdGUob2xkQm91bmQpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMjM4LDYgKzI1
Myw3IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGUKICAgICAvLyBD
cmVhdGUgdGlsZXMgYXMgbmVlZGVkLCBleHBhbmRpbmcgYSBkaXJ0eSByZWN0IHRvIGNvbnRhaW4g
YWxsCiAgICAgLy8gdGhlIGRpcnR5IHJlZ2lvbnMgY3VycmVudGx5IGJlaW5nIGRyYXduLgogICAg
IEludFJlY3QgZGlydHlMYXllclJlY3Q7CisgICAgSW50U2l6ZSB0aWxlU2l6ZTsKICAgICBpbnQg
bGVmdCwgdG9wLCByaWdodCwgYm90dG9tOwogICAgIGNvbnRlbnRSZWN0VG9UaWxlSW5kaWNlcyhj
b250ZW50UmVjdCwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKICAgICBmb3IgKGludCBqID0g
dG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7CkBAIC0yNDUsMTEgKzI2MSwxNSBAQCB2b2lkIExheWVy
VGlsZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAgICAgICAgICAgICBUaWxlKiB0aWxlID0g
dGlsZUF0KGksIGopOwogICAgICAgICAgICAgaWYgKCF0aWxlKQogICAgICAgICAgICAgICAgIHRp
bGUgPSBjcmVhdGVUaWxlKGksIGopOwotICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJlKCkt
PmlzVmFsaWQobV90aWxlU2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQorCisgICAgICAg
ICAgICBJbnRTaXplIHRleFNpemUgPSB0aWxlVGV4UmVjdCh0aWxlKS5zaXplKCk7CisgICAgICAg
ICAgICBpZiAoIXRpbGUtPnRleHR1cmUoKS0+aXNWYWxpZCh0ZXhTaXplLCBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQSkpCiAgICAgICAgICAgICAgICAgdGlsZS0+bV9kaXJ0eUxheWVyUmVjdCA9IHRp
bGVMYXllclJlY3QodGlsZSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGls
ZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGlsZVNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JB
KTsKKyAgICAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnJlc2VydmUodGV4U2l6ZSwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJHQkEpOwogICAgICAgICAgICAgZGlydHlMYXllclJlY3QudW5pdGUo
dGlsZS0+bV9kaXJ0eUxheWVyUmVjdCk7CisKKyAgICAgICAgICAgIHRpbGVTaXplID0gdGlsZVNp
emUuZXhwYW5kZWRUbyh0ZXhTaXplKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjYyLDcgKzI4
Miw3IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGUKICAgICBpZiAo
ZGlydHlMYXllclJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3RleHR1
cmVVcGRhdGVyLT5wcmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZVNpemUsIG1fdGls
aW5nRGF0YS5ib3JkZXJUZXhlbHMoKSk7CisgICAgbV90ZXh0dXJlVXBkYXRlci0+cHJlcGFyZVRv
VXBkYXRlKG1fcGFpbnRSZWN0LCB0aWxlU2l6ZSwgbV90aWxpbmdEYXRhLmJvcmRlclRleGVscygp
KTsKIH0KIAogdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OnVwZGF0ZVJlY3QoKQpAQCAtMjg1LDcg
KzMwNSw4IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjp1cGRhdGVSZWN0KCkKIAogICAgICAg
ICAgICAgLy8gQ2FsY3VsYXRlIHBhZ2Utc3BhY2UgcmVjdGFuZ2xlIHRvIGNvcHkgZnJvbS4KICAg
ICAgICAgICAgIEludFJlY3Qgc291cmNlUmVjdCA9IHRpbGVDb250ZW50UmVjdCh0aWxlKTsKLSAg
ICAgICAgICAgIGNvbnN0IEludFBvaW50IGFuY2hvciA9IHNvdXJjZVJlY3QubG9jYXRpb24oKTsK
KyAgICAgICAgICAgIEludFJlY3QgdGV4UmVjdCA9IHRpbGVUZXhSZWN0KHRpbGUpOworICAgICAg
ICAgICAgY29uc3QgSW50UG9pbnQgYW5jaG9yID0gdGV4UmVjdC5sb2NhdGlvbigpOwogICAgICAg
ICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QobGF5ZXJSZWN0VG9Db250ZW50UmVjdCh0aWxlLT5t
X2RpcnR5TGF5ZXJSZWN0KSk7CiAgICAgICAgICAgICAvLyBQYWludCByZWN0IG5vdCBndWFyYW50
ZWVkIHRvIGxpbmUgdXAgb24gdGlsZSBib3VuZGFyaWVzLCBzbwogICAgICAgICAgICAgLy8gbWFr
ZSBzdXJlIHRoYXQgc291cmNlUmVjdCBkb2Vzbid0IGV4dGVuZCBvdXRzaWRlIG9mIGl0LgpAQCAt
Mjk0LDcgKzMxNSw3IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjp1cGRhdGVSZWN0KCkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgaWYgKCF0aWxlLT50ZXh0dXJl
KCktPmlzUmVzZXJ2ZWQoKSkgewotICAgICAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgp
LT5yZXNlcnZlKG1fdGlsZVNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkgeworICAgICAg
ICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKHRleFJlY3Quc2l6ZSgpLCBH
cmFwaGljc0NvbnRleHQzRDo6UkdCQSkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9za2lwc0Ry
YXcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICByZXNldCgpOwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CkBAIC0zMzYsNiArMzU3LDMzIEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVt
OjpzZXRMYXllclBvc2l0aW8KICAgICBtX2xheWVyUG9zaXRpb24gPSBsYXllclBvc2l0aW9uOwog
fQogCitzdGF0aWMgYm9vbCBpc0NDVyhjb25zdCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgRmxv
YXRQb2ludCB2MSA9IEZsb2F0UG9pbnQocXVhZC5wMigpLngoKSAtIHF1YWQucDEoKS54KCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVhZC5wMigpLnkoKSAtIHF1YWQucDEoKS55
KCkpOworICAgIEZsb2F0UG9pbnQgdjIgPSBGbG9hdFBvaW50KHF1YWQucDMoKS54KCkgLSBxdWFk
LnAyKCkueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1YWQucDMoKS55KCkg
LSBxdWFkLnAyKCkueSgpKTsKKyAgICByZXR1cm4gKHYxLngoKSAqIHYyLnkoKSAtIHYxLnkoKSAq
IHYyLngoKSkgPCAwOworfQorCitzdGF0aWMgRWRnZSBjb21wdXRlRWRnZShjb25zdCBGbG9hdFBv
aW50JiBwLCBjb25zdCBGbG9hdFBvaW50JiBxLCBmbG9hdCBzaWduKQoreworICAgIEZsb2F0UG9p
bnQgdGFuZ2VudChwLnkoKSAtIHEueSgpLCBxLngoKSAtIHAueCgpKTsKKyAgICBmbG9hdCBzY2Fs
ZSA9IHNpZ24gLyB0YW5nZW50Lmxlbmd0aCgpOworICAgIGZsb2F0IGNyb3NzMiA9IHAueCgpICog
cS55KCkgLSBxLngoKSAqIHAueSgpOworCisgICAgcmV0dXJuIEVkZ2UodGFuZ2VudC54KCkgKiBz
Y2FsZSwKKyAgICAgICAgICAgICAgICB0YW5nZW50LnkoKSAqIHNjYWxlLAorICAgICAgICAgICAg
ICAgIGNyb3NzMiAqIHNjYWxlKTsKK30KKworc3RhdGljIEZsb2F0UG9pbnQgaW50ZXJzZWN0KGNv
bnN0IEVkZ2UmIGEsIGNvbnN0IEVkZ2UmIGIpCit7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoCisg
ICAgICAgIChhLnkoKSAqIGIueigpIC0gYi55KCkgKiBhLnooKSkgLyAoYS54KCkgKiBiLnkoKSAt
IGIueCgpICogYS55KCkpLAorICAgICAgICAoYS54KCkgKiBiLnooKSAtIGIueCgpICogYS56KCkp
IC8gKGIueCgpICogYS55KCkgLSBhLngoKSAqIGIueSgpKSk7Cit9CisKIHZvaWQgTGF5ZXJUaWxl
ckNocm9taXVtOjpkcmF3KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgZ2xvYmFsVHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5KQogewogICAgIGlm
IChtX3NraXBzRHJhdyB8fCAhbV90aWxlcy5zaXplKCkgfHwgY29udGVudFJlY3QuaXNFbXB0eSgp
KQpAQCAtMzQ3LDEwICszOTUsNjUgQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXcoY29u
c3QgSW50UgogICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT51bmlmb3JtMWkocHJvZ3JhbS0+ZnJh
Z21lbnRTaGFkZXIoKS5zYW1wbGVyTG9jYXRpb24oKSwgMCkpOwogICAgIEdMQyhjb250ZXh0LCBj
b250ZXh0LT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMCkpOwogCisg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4KGdsb2JhbFRyYW5zZm9ybSk7CisKKyAgICAv
LyBXZSBkb24ndCBjYXJlIGFib3V0IFogY29tcG9uZW50LgorICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IGludmVyc2UgPQorICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobWF0cml4Lm0xMSgpLCBt
YXRyaXgubTEyKCksIDAsIG1hdHJpeC5tMTQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hdHJpeC5tMjEoKSwgbWF0cml4Lm0yMigpLCAwLCBtYXRyaXgubTI0KCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXRyaXgubTMxKCksIG1hdHJpeC5tMzIoKSwgMSwgbWF0cml4Lm0z
NCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Lm00MSgpLCBtYXRyaXgubTQy
KCksIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRyaXgubTQ0KCkpLmludmVyc2Uo
KTsKKworICAgIEludFJlY3QgYm91bmRzKG1fbGF5ZXJQb3NpdGlvbiwgSW50U2l6ZShtX3RpbGlu
Z0RhdGEudG90YWxTaXplWCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3RpbGluZ0RhdGEudG90YWxTaXplWSgpKSk7CisKKyAgICAvLyBJbmNsdWRlIG91
dGVyIGJvcmRlciB0ZXhlbHMgaW4gYm91bmRzLgorICAgIGJvdW5kcy5pbmZsYXRlKG1fdGlsaW5n
RGF0YS5ib3JkZXJUZXhlbHMoKSk7CisKKyAgICAvLyBNYXAgYm91bmRzIHRvIGRldmljZSBzcGFj
ZS4KKyAgICBGbG9hdFF1YWQgYm91bmRzUXVhZCA9IG1hdHJpeC5tYXBRdWFkKEZsb2F0UXVhZChi
b3VuZHMpKTsKKworICAgIC8vIENvdW50ZXItY2xvY2t3aXNlPworICAgIGZsb2F0IHNpZ24gPSBp
c0NDVyhib3VuZHNRdWFkKSA/IC0xIDogMTsKKworICAgIC8vIENvbXB1dGUgb3V0ZXIgZWRnZXMu
CisgICAgRWRnZSBsZWZ0RWRnZSA9IGNvbXB1dGVFZGdlKGJvdW5kc1F1YWQucDQoKSwgYm91bmRz
UXVhZC5wMSgpLCBzaWduKTsKKyAgICBFZGdlIHJpZ2h0RWRnZSA9IGNvbXB1dGVFZGdlKGJvdW5k
c1F1YWQucDIoKSwgYm91bmRzUXVhZC5wMygpLCBzaWduKTsKKyAgICBFZGdlIHRvcEVkZ2UgPSBj
b21wdXRlRWRnZShib3VuZHNRdWFkLnAxKCksIGJvdW5kc1F1YWQucDIoKSwgc2lnbik7CisgICAg
RWRnZSBib3R0b21FZGdlID0gY29tcHV0ZUVkZ2UoYm91bmRzUXVhZC5wMygpLCBib3VuZHNRdWFk
LnA0KCksIHNpZ24pOworCisgICAgLy8gTW92ZSBvdXRlciBlZGdlcyB0byBlbnN1cmUgdGhhdCBh
bGwgcGFydGlhbGx5IGNvdmVyZWQgcGl4ZWxzIGFyZQorICAgIC8vIHByb2Nlc3NlZC4KKyAgICBm
bG9hdCB6RGlzdGFuY2UgPSBtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkgKiAwLjVmOworICAg
IGxlZnRFZGdlLm1vdmUoMCwgMCwgekRpc3RhbmNlKTsKKyAgICByaWdodEVkZ2UubW92ZSgwLCAw
LCB6RGlzdGFuY2UpOworICAgIHRvcEVkZ2UubW92ZSgwLCAwLCB6RGlzdGFuY2UpOworICAgIGJv
dHRvbUVkZ2UubW92ZSgwLCAwLCB6RGlzdGFuY2UpOworCisgICAgRWRnZSBwcmV2RWRnZVkgPSB0
b3BFZGdlOworCiAgICAgaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsKICAgICBjb250ZW50
UmVjdFRvVGlsZUluZGljZXMoY29udGVudFJlY3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7
Ci0gICAgSW50UmVjdCBsYXllclJlY3QgPSBjb250ZW50UmVjdFRvTGF5ZXJSZWN0KGNvbnRlbnRS
ZWN0KTsKICAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7CisgICAgICAg
IEVkZ2UgcHJldkVkZ2VYID0gbGVmdEVkZ2U7CisKKyAgICAgICAgRWRnZSBlZGdlWSA9IGJvdHRv
bUVkZ2U7CisgICAgICAgIGlmIChqIDwgKG1fdGlsaW5nRGF0YS5udW1UaWxlc1koKSAtIDEpKSB7
CisgICAgICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0gbV90aWxpbmdEYXRhLnRpbGVCb3VuZHMo
bV90aWxpbmdEYXRhLnRpbGVJbmRleCgwLCBqKSk7CisgICAgICAgICAgICB0aWxlUmVjdC5tb3Zl
KG1fbGF5ZXJQb3NpdGlvbi54KCksIG1fbGF5ZXJQb3NpdGlvbi55KCkpOworCisgICAgICAgICAg
ICBGbG9hdFBvaW50IHAxKHRpbGVSZWN0Lm1heFgoKSwgdGlsZVJlY3QubWF4WSgpKTsKKyAgICAg
ICAgICAgIEZsb2F0UG9pbnQgcDIodGlsZVJlY3QueCgpLCB0aWxlUmVjdC5tYXhZKCkpOworCisg
ICAgICAgICAgICAvLyBNYXAgcG9pbnRzIHRvIGRldmljZSBzcGFjZS4KKyAgICAgICAgICAgIHAx
ID0gbWF0cml4Lm1hcFBvaW50KHAxKTsKKyAgICAgICAgICAgIHAyID0gbWF0cml4Lm1hcFBvaW50
KHAyKTsKKworICAgICAgICAgICAgLy8gQ29tcHV0ZSBob3Jpem9udGFsIGVkZ2UuCisgICAgICAg
ICAgICBlZGdlWSA9IGNvbXB1dGVFZGdlKHAxLCBwMiwgc2lnbik7CisgICAgICAgIH0KKwogICAg
ICAgICBmb3IgKGludCBpID0gbGVmdDsgaSA8PSByaWdodDsgKytpKSB7CiAgICAgICAgICAgICBU
aWxlKiB0aWxlID0gdGlsZUF0KGksIGopOwogICAgICAgICAgICAgaWYgKCF0aWxlKQpAQCAtMzU4
LDI0ICs0NjEsMTcgQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXcoY29uc3QgSW50Ugog
CiAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPmJpbmRUZXh0dXJlKCk7CiAKLSAgICAgICAg
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRpbGVNYXRyaXgoZ2xvYmFsVHJhbnNmb3JtKTsKLQog
ICAgICAgICAgICAgLy8gRG9uJ3QgdXNlIHRpbGVDb250ZW50UmVjdCBoZXJlLCBhcyB0aGF0IGNv
bnRhaW5zIHRoZSBmdWxsCiAgICAgICAgICAgICAvLyByZWN0IHdpdGggYm9yZGVyIHRleGVscyB3
aGljaCBzaG91bGRuJ3QgYmUgZHJhd24uCiAgICAgICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0g
bV90aWxpbmdEYXRhLnRpbGVCb3VuZHMobV90aWxpbmdEYXRhLnRpbGVJbmRleCh0aWxlLT5pKCks
IHRpbGUtPmooKSkpOwotICAgICAgICAgICAgSW50UmVjdCBkaXNwbGF5UmVjdCA9IHRpbGVSZWN0
OwotICAgICAgICAgICAgdGlsZVJlY3QuaW50ZXJzZWN0KGxheWVyUmVjdCk7Ci0gICAgICAgICAg
ICAvLyBLZWVwIHRyYWNrIG9mIGhvdyB0aGUgdG9wIGxlZnQgaGFzIG1vdmVkLCBzbyB0aGUgdGV4
dHVyZSBjYW4gYmUKLSAgICAgICAgICAgIC8vIG9mZnNldCB0aGUgc2FtZSBhbW91bnQuCi0gICAg
ICAgICAgICBJbnRTaXplIG9mZnNldCA9IHRpbGVSZWN0Lm1pblhNaW5ZQ29ybmVyKCkgLSBkaXNw
bGF5UmVjdC5taW5YTWluWUNvcm5lcigpOwogICAgICAgICAgICAgdGlsZVJlY3QubW92ZShtX2xh
eWVyUG9zaXRpb24ueCgpLCBtX2xheWVyUG9zaXRpb24ueSgpKTsKLSAgICAgICAgICAgIHRpbGVN
YXRyaXgudHJhbnNsYXRlM2QodGlsZVJlY3QueCgpICsgdGlsZVJlY3Qud2lkdGgoKSAvIDIuMCwg
dGlsZVJlY3QueSgpICsgdGlsZVJlY3QuaGVpZ2h0KCkgLyAyLjAsIDApOwogCi0gICAgICAgICAg
ICBJbnRQb2ludCB0ZXhPZmZzZXQgPSBtX3RpbGluZ0RhdGEudGV4dHVyZU9mZnNldCh0aWxlLT5p
KCksIHRpbGUtPmooKSkgKyBvZmZzZXQ7Ci0gICAgICAgICAgICBmbG9hdCB0aWxlV2lkdGggPSBz
dGF0aWNfY2FzdDxmbG9hdD4obV90aWxlU2l6ZS53aWR0aCgpKTsKLSAgICAgICAgICAgIGZsb2F0
IHRpbGVIZWlnaHQgPSBzdGF0aWNfY2FzdDxmbG9hdD4obV90aWxlU2l6ZS5oZWlnaHQoKSk7Ci0g
ICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVYID0gdGV4T2Zmc2V0LngoKSAvIHRpbGVXaWR0
aDsKLSAgICAgICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVkgPSB0ZXhPZmZzZXQueSgpIC8gdGls
ZUhlaWdodDsKKyAgICAgICAgICAgIEludFBvaW50IHRleE9mZnNldCA9IG1fdGlsaW5nRGF0YS50
ZXh0dXJlT2Zmc2V0KHRpbGUtPmkoKSwgdGlsZS0+aigpKTsKKyAgICAgICAgICAgIEludFJlY3Qg
dGV4UmVjdCA9IHRpbGVUZXhSZWN0KHRpbGUpOworICAgICAgICAgICAgZmxvYXQgdGlsZVdpZHRo
ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleFJlY3Qud2lkdGgoKSk7CisgICAgICAgICAgICBmbG9h
dCB0aWxlSGVpZ2h0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleFJlY3QuaGVpZ2h0KCkpOworICAg
ICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWCA9ICh0ZXhPZmZzZXQueCgpIC0gdGlsZVJlY3Qu
eCgpKSAvIHRpbGVXaWR0aDsKKyAgICAgICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVkgPSAodGV4
T2Zmc2V0LnkoKSAtIHRpbGVSZWN0LnkoKSkgLyB0aWxlSGVpZ2h0OwogICAgICAgICAgICAgZmxv
YXQgdGV4U2NhbGVYID0gdGlsZVJlY3Qud2lkdGgoKSAvIHRpbGVXaWR0aDsKICAgICAgICAgICAg
IGZsb2F0IHRleFNjYWxlWSA9IHRpbGVSZWN0LmhlaWdodCgpIC8gdGlsZUhlaWdodDsKICAgICAg
ICAgICAgIC8vIE9wZW5HTCBjb29yZGluYXRlIHN5c3RlbSBpcyBib3R0b20tdXAuCkBAIC0zODQs
OCArNDgwLDM4IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpkcmF3KGNvbnN0IEludFIKICAg
ICAgICAgICAgICAgICB0ZXhUcmFuc2xhdGVZID0gMS4wIC0gdGV4VHJhbnNsYXRlWTsKICAgICAg
ICAgICAgICAgICB0ZXhTY2FsZVkgKj0gLTEuMDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGRyYXdUZXh0dXJlZFF1YWQoY29udGV4dCwgbGF5ZXJSZW5kZXJlcigpLT5wcm9qZWN0aW9uTWF0
cml4KCksIHRpbGVNYXRyaXgsIHRpbGVSZWN0LndpZHRoKCksIHRpbGVSZWN0LmhlaWdodCgpLCBv
cGFjaXR5LCB0ZXhUcmFuc2xhdGVYLCB0ZXhUcmFuc2xhdGVZLCB0ZXhTY2FsZVgsIHRleFNjYWxl
WSwgcHJvZ3JhbSk7CisKKyAgICAgICAgICAgIEVkZ2UgZWRnZVggPSByaWdodEVkZ2U7CisgICAg
ICAgICAgICBpZiAoaSA8IChtX3RpbGluZ0RhdGEubnVtVGlsZXNYKCkgLSAxKSkgeworICAgICAg
ICAgICAgICAgIEZsb2F0UG9pbnQgcDEodGlsZVJlY3QubWF4WCgpLCB0aWxlUmVjdC55KCkpOwor
ICAgICAgICAgICAgICAgIEZsb2F0UG9pbnQgcDIodGlsZVJlY3QubWF4WCgpLCB0aWxlUmVjdC5t
YXhZKCkpOworCisgICAgICAgICAgICAgICAgLy8gTWFwIHBvaW50cyB0byBkZXZpY2Ugc3BhY2Uu
CisgICAgICAgICAgICAgICAgcDEgPSBtYXRyaXgubWFwUG9pbnQocDEpOworICAgICAgICAgICAg
ICAgIHAyID0gbWF0cml4Lm1hcFBvaW50KHAyKTsKKworICAgICAgICAgICAgICAgIC8vIENvbXB1
dGUgdmVydGljYWwgZWRnZS4KKyAgICAgICAgICAgICAgICBlZGdlWCA9IGNvbXB1dGVFZGdlKHAx
LCBwMiwgc2lnbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENyZWF0ZSBkZXZp
Y2Ugc3BhY2UgcXVhZC4KKyAgICAgICAgICAgIEZsb2F0UXVhZCBkZXZpY2VRdWFkKGludGVyc2Vj
dChlZGdlWSwgcHJldkVkZ2VYKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dGVyc2VjdChwcmV2RWRnZVgsIHByZXZFZGdlWSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnRlcnNlY3QocHJldkVkZ2VZLCBlZGdlWCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnRlcnNlY3QoZWRnZVgsIGVkZ2VZKSk7CisKKyAgICAgICAgICAgIC8v
IE1hcCBxdWFkIHRvIGxheWVyIHNwYWNlLgorICAgICAgICAgICAgRmxvYXRRdWFkIHF1YWQgPSBp
bnZlcnNlLm1hcFF1YWQoZGV2aWNlUXVhZCk7CisKKyAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0
byB0aWxlUmVjdC4KKyAgICAgICAgICAgIHF1YWQuc2NhbGUoMS4wZiAvIHRpbGVSZWN0LndpZHRo
KCksIDEuMGYgLyB0aWxlUmVjdC5oZWlnaHQoKSk7CisKKyAgICAgICAgICAgIGRyYXdUZXh0dXJl
ZFF1YWQoY29udGV4dCwgcXVhZCwgbGF5ZXJSZW5kZXJlcigpLT5wcm9qZWN0aW9uTWF0cml4KCks
IG1hdHJpeCwgdGlsZVJlY3Qud2lkdGgoKSwgdGlsZVJlY3QuaGVpZ2h0KCksIG9wYWNpdHksIHRl
eFRyYW5zbGF0ZVgsIHRleFRyYW5zbGF0ZVksIHRleFNjYWxlWCwgdGV4U2NhbGVZLCBwcm9ncmFt
KTsKKworICAgICAgICAgICAgcHJldkVkZ2VYID0gZWRnZVg7CiAgICAgICAgIH0KKworICAgICAg
ICBwcmV2RWRnZVkgPSBlZGdlWTsKICAgICB9CiB9CiAKQEAgLTM5NCwxMyArNTIwLDI1IEBAIHZv
aWQgTGF5ZXJUaWxlckNocm9taXVtOjpncm93TGF5ZXJUb0NvbnQKICAgICAvLyBHcm93IHRoZSB0
aWxlIGFycmF5IHRvIGNvbnRhaW4gdGhpcyBjb250ZW50IHJlY3QuCiAgICAgSW50UmVjdCBsYXll
clJlY3QgPSBjb250ZW50UmVjdFRvTGF5ZXJSZWN0KGNvbnRlbnRSZWN0KTsKICAgICBJbnRTaXpl
IHJlY3RTaXplID0gSW50U2l6ZShsYXllclJlY3QubWF4WCgpLCBsYXllclJlY3QubWF4WSgpKTsK
KyAgICBJbnRTaXplIHRleFNpemUgPSBtX3RpbGVTaXplOworCisgICAgLy8gVXNlIHJlY3Qgd2l0
aCBib3JkZXIgdGV4ZWxzIGFzIG1heCB0ZXh0dXJlIHNpemUgd2hlbiB0aWxlIHNpemUKKyAgICAv
LyBoYXMgbm90IGJlZW4gc3BlY2lmaWVkLgorICAgIGlmICh0ZXhTaXplLmlzRW1wdHkoKSkgewor
ICAgICAgICB0ZXhTaXplID0gcmVjdFNpemU7CisgICAgICAgIGlmIChtX3RpbGluZ0RhdGEuYm9y
ZGVyVGV4ZWxzKCkpCisgICAgICAgICAgICB0ZXhTaXplLmV4cGFuZCgyLCAyKTsKKyAgICB9CisK
KyAgICBtX3RpbGluZ0RhdGEuc2V0TWF4VGV4dHVyZVNpemUobWF4KHRleFNpemUud2lkdGgoKSwg
dGV4U2l6ZS5oZWlnaHQoKSkpOwogCiAgICAgSW50U2l6ZSBvbGRMYXllclNpemUobV90aWxpbmdE
YXRhLnRvdGFsU2l6ZVgoKSwgbV90aWxpbmdEYXRhLnRvdGFsU2l6ZVkoKSk7CiAgICAgSW50U2l6
ZSBuZXdTaXplID0gcmVjdFNpemUuZXhwYW5kZWRUbyhvbGRMYXllclNpemUpOworCiAgICAgbV90
aWxpbmdEYXRhLnNldFRvdGFsU2l6ZShuZXdTaXplLndpZHRoKCksIG5ld1NpemUuaGVpZ2h0KCkp
OwogfQogCi12b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6ZHJhd1RleHR1cmVkUXVhZChHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHByb2plY3Rp
b25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3TWF0cml4LAordm9pZCBM
YXllclRpbGVyQ2hyb21pdW06OmRyYXdUZXh0dXJlZFF1YWQoR3JhcGhpY3NDb250ZXh0M0QqIGNv
bnRleHQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHByb2plY3Rpb25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3TWF0cml4
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHdpZHRoLCBmbG9h
dCBoZWlnaHQsIGZsb2F0IG9wYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWCwgZmxvYXQgdGV4VHJhbnNsYXRlWSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB0ZXhTY2FsZVgsIGZsb2F0IHRleFNj
YWxlWSwKQEAgLTQyMyw2ICs1NjEsMTcgQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdU
ZXh0dXJlZFF1YQogICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT51bmlmb3JtNGYocHJvZ3JhbS0+
dmVydGV4U2hhZGVyKCkudGV4VHJhbnNmb3JtTG9jYXRpb24oKSwKICAgICAgICAgdGV4VHJhbnNs
YXRlWCwgdGV4VHJhbnNsYXRlWSwgdGV4U2NhbGVYLCB0ZXhTY2FsZVkpKTsKIAorICAgIGZsb2F0
IHBvaW50WzhdOworICAgIHBvaW50WzBdID0gcXVhZC5wMSgpLngoKTsKKyAgICBwb2ludFsxXSA9
IHF1YWQucDEoKS55KCk7CisgICAgcG9pbnRbMl0gPSBxdWFkLnAyKCkueCgpOworICAgIHBvaW50
WzNdID0gcXVhZC5wMigpLnkoKTsKKyAgICBwb2ludFs0XSA9IHF1YWQucDMoKS54KCk7CisgICAg
cG9pbnRbNV0gPSBxdWFkLnAzKCkueSgpOworICAgIHBvaW50WzZdID0gcXVhZC5wNCgpLngoKTsK
KyAgICBwb2ludFs3XSA9IHF1YWQucDQoKS55KCk7CisgICAgR0xDKGNvbnRleHQsIGNvbnRleHQt
PnVuaWZvcm0yZnYocHJvZ3JhbS0+dmVydGV4U2hhZGVyKCkucG9pbnRMb2NhdGlvbigpLCBwb2lu
dCwgNCkpOworCiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRyYXdFbGVtZW50cyhHcmFwaGlj
c0NvbnRleHQzRDo6VFJJQU5HTEVTLCA2LCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hP
UlQsIDApKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHJldmlzaW9u
IDg5NDg2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJUaWxlckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2
YXRlOgogICAgICAgICBpbnQgbV9qOwogICAgIH07CiAKLSAgICB2b2lkIGRyYXdUZXh0dXJlZFF1
YWQoR3JhcGhpY3NDb250ZXh0M0QqLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcHJvamVj
dGlvbk1hdHJpeCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGRyYXdNYXRyaXgsCisgICAg
dm9pZCBkcmF3VGV4dHVyZWRRdWFkKEdyYXBoaWNzQ29udGV4dDNEKiwgY29uc3QgRmxvYXRRdWFk
JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHByb2plY3Rpb25NYXRyaXgsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3TWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBvcGFjaXR5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVYLCBmbG9hdCB0ZXhUcmFuc2xhdGVZLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB0ZXhTY2FsZVgsIGZsb2F0IHRleFNjYWxl
WSwKQEAgLTEyMiw2ICsxMjIsNyBAQCBwcml2YXRlOgogICAgIFRpbGUqIHRpbGVBdChpbnQsIGlu
dCkgY29uc3Q7CiAgICAgSW50UmVjdCB0aWxlQ29udGVudFJlY3QoY29uc3QgVGlsZSopIGNvbnN0
OwogICAgIEludFJlY3QgdGlsZUxheWVyUmVjdChjb25zdCBUaWxlKikgY29uc3Q7CisgICAgSW50
UmVjdCB0aWxlVGV4UmVjdChjb25zdCBUaWxlKikgY29uc3Q7CiAKICAgICBJbnRTaXplIG1fdGls
ZVNpemU7CiAgICAgSW50UG9pbnQgbV9sYXllclBvc2l0aW9uOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNo
cm9taXVtLmNwcAkocmV2aXNpb24gODk0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
NCw2ICsxMjQsNyBAQCBTdHJpbmcgVmVydGV4U2hhZGVyUG9zOjpnZXRTaGFkZXJTdHJpbmcoCiBW
ZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm06OlZlcnRleFNoYWRlclBvc1RleFRyYW5zZm9ybSgp
CiAgICAgOiBtX21hdHJpeExvY2F0aW9uKC0xKQogICAgICwgbV90ZXhUcmFuc2Zvcm1Mb2NhdGlv
bigtMSkKKyAgICAsIG1fcG9pbnRMb2NhdGlvbigtMSkKIHsKIH0KIApAQCAtMTMxLDcgKzEzMiw4
IEBAIHZvaWQgVmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjppbml0KEcKIHsKICAgICBtX21h
dHJpeExvY2F0aW9uID0gY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJtYXRy
aXgiKTsKICAgICBtX3RleFRyYW5zZm9ybUxvY2F0aW9uID0gY29udGV4dC0+Z2V0VW5pZm9ybUxv
Y2F0aW9uKHByb2dyYW0sICJ0ZXhUcmFuc2Zvcm0iKTsKLSAgICBBU1NFUlQobV9tYXRyaXhMb2Nh
dGlvbiAhPSAtMSAmJiBtX3RleFRyYW5zZm9ybUxvY2F0aW9uICE9IC0xKTsKKyAgICBtX3BvaW50
TG9jYXRpb24gPSBjb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInBvaW50Iik7
CisgICAgQVNTRVJUKG1fbWF0cml4TG9jYXRpb24gIT0gLTEgJiYgbV90ZXhUcmFuc2Zvcm1Mb2Nh
dGlvbiAhPSAtMSAmJiBtX3BvaW50TG9jYXRpb24gIT0gLTEpOwogfQogCiBTdHJpbmcgVmVydGV4
U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpnZXRTaGFkZXJTdHJpbmcoKSBjb25zdApAQCAtMTQxLDEx
ICsxNDMsMTggQEAgU3RyaW5nIFZlcnRleFNoYWRlclBvc1RleFRyYW5zZm9ybTo6Z2V0UwogICAg
ICAgICBhdHRyaWJ1dGUgdmVjMiBhX3RleENvb3JkOwogICAgICAgICB1bmlmb3JtIG1hdDQgbWF0
cml4OwogICAgICAgICB1bmlmb3JtIHZlYzQgdGV4VHJhbnNmb3JtOworICAgICAgICB1bmlmb3Jt
IHZlYzIgcG9pbnRbNF07CiAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOwogICAgICAg
ICB2b2lkIG1haW4oKQogICAgICAgICB7Ci0gICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IG1hdHJp
eCAqIGFfcG9zaXRpb247Ci0gICAgICAgICAgICB2X3RleENvb3JkID0gYV90ZXhDb29yZCAqIHRl
eFRyYW5zZm9ybS56dyArIHRleFRyYW5zZm9ybS54eTsKKyAgICAgICAgICAgIHZlYzIgY29tcGxl
bWVudCA9IGFicyhhX3RleENvb3JkIC0gMS4wKTsKKyAgICAgICAgICAgIHZlYzQgcG9zID0gdmVj
NCgwLjAsIDAuMCwgYV9wb3NpdGlvbi56LCBhX3Bvc2l0aW9uLncpOworICAgICAgICAgICAgcG9z
Lnh5ICs9IChjb21wbGVtZW50LnggKiBjb21wbGVtZW50LnkpICogcG9pbnRbMF07CisgICAgICAg
ICAgICBwb3MueHkgKz0gKGFfdGV4Q29vcmQueCAqIGNvbXBsZW1lbnQueSkgKiBwb2ludFsxXTsK
KyAgICAgICAgICAgIHBvcy54eSArPSAoYV90ZXhDb29yZC54ICogYV90ZXhDb29yZC55KSAqIHBv
aW50WzJdOworICAgICAgICAgICAgcG9zLnh5ICs9IChjb21wbGVtZW50LnggKiBhX3RleENvb3Jk
LnkpICogcG9pbnRbM107CisgICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IG1hdHJpeCAqIHBvczsK
KyAgICAgICAgICAgIHZfdGV4Q29vcmQgPSBwb3MueHkgKiB0ZXhUcmFuc2Zvcm0uencgKyB0ZXhU
cmFuc2Zvcm0ueHk7CiAgICAgICAgIH0KICAgICApOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1
bS5oCShyZXZpc2lvbiA4OTQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1NoYWRlckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDEwICs5MCwx
MiBAQCBwdWJsaWM6CiAKICAgICBpbnQgbWF0cml4TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBt
X21hdHJpeExvY2F0aW9uOyB9CiAgICAgaW50IHRleFRyYW5zZm9ybUxvY2F0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV90ZXhUcmFuc2Zvcm1Mb2NhdGlvbjsgfQorICAgIGludCBwb2ludExvY2F0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb2ludExvY2F0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgaW50
IG1fbWF0cml4TG9jYXRpb247CiAgICAgaW50IG1fdGV4VHJhbnNmb3JtTG9jYXRpb247CisgICAg
aW50IG1fcG9pbnRMb2NhdGlvbjsKIH07CiAKIGNsYXNzIEZyYWdtZW50VGV4QWxwaGFCaW5kaW5n
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRh
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
VGlsaW5nRGF0YS5jcHAJKHJldmlzaW9uIDg5NDg2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMCAr
NDQsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW50IGNvbXB1dGVOdW1UaWxl
cyhpbnQgbWF4VGV4dHVyZVNpemUsIGludCB0b3RhbFNpemUsIGludCBib3JkZXJUZXhlbHMpCiB7
CisgICAgaW50IHRvdGFsU2l6ZVdpdGhCb3JkZXIgPSB0b3RhbFNpemUgKyAyICogYm9yZGVyVGV4
ZWxzOworCiAgICAgaWYgKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscyA8PSAwKQot
ICAgICAgICByZXR1cm4gdG90YWxTaXplID4gMCAmJiBtYXhUZXh0dXJlU2l6ZSA+PSB0b3RhbFNp
emUgPyAxIDogMDsKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpbnQgbnVtVGlsZXMgPSBtYXgo
MSwgMSArICh0b3RhbFNpemUgLSAxIC0gMiAqIGJvcmRlclRleGVscykgLyAobWF4VGV4dHVyZVNp
emUgLSAyICogYm9yZGVyVGV4ZWxzKSk7CisgICAgaW50IG51bVRpbGVzID0gbWF4KDEsIDEgKyAo
dG90YWxTaXplV2l0aEJvcmRlciAtIDEgLSAyICogYm9yZGVyVGV4ZWxzKSAvIChtYXhUZXh0dXJl
U2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMpKTsKICAgICByZXR1cm4gdG90YWxTaXplID4gMCA/IG51
bVRpbGVzIDogMDsKIH0KIApAQCAtNzksNyArODEsNyBAQCBpbnQgVGlsaW5nRGF0YTo6dGlsZVhJ
bmRleEZyb21TcmNDb29yZChpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQVNTRVJUKG1fbWF4
VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOwotICAgIGludCB4ID0gKHNyY1BvcyAt
IG1fYm9yZGVyVGV4ZWxzKSAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxz
KTsKKyAgICBpbnQgeCA9IHNyY1BvcyAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVy
VGV4ZWxzKTsKICAgICByZXR1cm4gbWluKG1heCh4LCAwKSwgbnVtVGlsZXNYKCkgLSAxKTsKIH0K
IApAQCAtODksNyArOTEsNyBAQCBpbnQgVGlsaW5nRGF0YTo6dGlsZVlJbmRleEZyb21TcmNDb29y
ZChpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQVNTRVJUKG1fbWF4VGV4dHVyZVNpemUgLSAy
ICogbV9ib3JkZXJUZXhlbHMpOwotICAgIGludCB5ID0gKHNyY1BvcyAtIG1fYm9yZGVyVGV4ZWxz
KSAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKKyAgICBpbnQgeSA9
IHNyY1BvcyAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKICAgICBy
ZXR1cm4gbWluKG1heCh5LCAwKSwgbnVtVGlsZXNZKCkgLSAxKTsKIH0KIApAQCAtMTMyLDYgKzEz
NCwxNiBAQCBJbnRSZWN0IFRpbGluZ0RhdGE6OnRpbGVCb3VuZHNXaXRoQm9yZGVyCiAgICAgcmV0
dXJuIGJvdW5kczsKIH0KIAorSW50UmVjdCBUaWxpbmdEYXRhOjp0aWxlQm91bmRzV2l0aE91dGVy
Qm9yZGVyKGludCB0aWxlKSBjb25zdAoreworICAgIEludFJlY3QgYm91bmRzID0gdGlsZUJvdW5k
cyh0aWxlKTsKKworICAgIGlmIChtX2JvcmRlclRleGVscykKKyAgICAgICAgYm91bmRzLmluZmxh
dGUoMSk7CisKKyAgICByZXR1cm4gYm91bmRzOworfQorCiBGbG9hdFJlY3QgVGlsaW5nRGF0YTo6
dGlsZUJvdW5kc05vcm1hbGl6ZWQoaW50IHRpbGUpIGNvbnN0CiB7CiAgICAgYXNzZXJ0VGlsZSh0
aWxlKTsKQEAgLTE2OCw4ICsxODAsNiBAQCBpbnQgVGlsaW5nRGF0YTo6dGlsZVNpemVYKGludCB4
SW5kZXgpIGNvCiAKICAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA9PSAxKQogICAgICAg
ICByZXR1cm4gbV90b3RhbFNpemVYOwotICAgIGlmICgheEluZGV4ICYmIG1fbnVtVGlsZXNYID4g
MSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSBtX2JvcmRlclRleGVsczsKICAg
ICBpZiAoeEluZGV4IDwgbnVtVGlsZXNYKCkgLSAxKQogICAgICAgICByZXR1cm4gbV9tYXhUZXh0
dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVsczsKICAgICBpZiAoeEluZGV4ID09IG51bVRpbGVz
WCgpIC0gMSkKQEAgLTE4NSw4ICsxOTUsNiBAQCBpbnQgVGlsaW5nRGF0YTo6dGlsZVNpemVZKGlu
dCB5SW5kZXgpIGNvCiAKICAgICBpZiAoIXlJbmRleCAmJiBtX251bVRpbGVzWSA9PSAxKQogICAg
ICAgICByZXR1cm4gbV90b3RhbFNpemVZOwotICAgIGlmICgheUluZGV4ICYmIG1fbnVtVGlsZXNZ
ID4gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSBtX2JvcmRlclRleGVsczsK
ICAgICBpZiAoeUluZGV4IDwgbnVtVGlsZXNZKCkgLSAxKQogICAgICAgICByZXR1cm4gbV9tYXhU
ZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVsczsKICAgICBpZiAoeUluZGV4ID09IG51bVRp
bGVzWSgpIC0gMSkKQEAgLTIzMCw4ICsyMzgsOCBAQCB2b2lkIFRpbGluZ0RhdGE6OmludGVyc2Vj
dERyYXdRdWFkKGNvbnN0CiAKICAgICAqbmV3U3JjID0gc3JjUmVjdEludGVyc2VjdGVkOwogICAg
IG5ld1NyYy0+bW92ZSgKLSAgICAgICAgLXRpbGVCb3VuZHMueCgpICsgKCh0aWxlWEluZGV4KHRp
bGUpID4gMCkgPyBtX2JvcmRlclRleGVscyA6IDApLAotICAgICAgICAtdGlsZUJvdW5kcy55KCkg
KyAoKHRpbGVZSW5kZXgodGlsZSkgPiAwKSA/IG1fYm9yZGVyVGV4ZWxzIDogMCkpOworICAgICAg
ICAtdGlsZUJvdW5kcy54KCkgKyBtX2JvcmRlclRleGVscywKKyAgICAgICAgLXRpbGVCb3VuZHMu
eSgpICsgbV9ib3JkZXJUZXhlbHMpOwogCiAgICAgKm5ld0RzdCA9IEZsb2F0UmVjdCgKICAgICAg
ICAgc3JjUmVjdEludGVyc2VjdGVkTm9ybVggKiBkc3RSZWN0LndpZHRoKCkgKyBkc3RSZWN0Lngo
KSwKQEAgLTI0MiwxMCArMjUwLDcgQEAgdm9pZCBUaWxpbmdEYXRhOjppbnRlcnNlY3REcmF3UXVh
ZChjb25zdAogCiBJbnRQb2ludCBUaWxpbmdEYXRhOjp0ZXh0dXJlT2Zmc2V0KGludCB4SW5kZXgs
IGludCB5SW5kZXgpIGNvbnN0CiB7Ci0gICAgaW50IGxlZnQgPSAoIXhJbmRleCB8fCBtX251bVRp
bGVzWCA9PSAxKSA/IDAgOiBtX2JvcmRlclRleGVsczsKLSAgICBpbnQgdG9wID0gKCF5SW5kZXgg
fHwgbV9udW1UaWxlc1kgPT0gMSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0KLSAgICByZXR1cm4g
SW50UG9pbnQobGVmdCwgdG9wKTsKKyAgICByZXR1cm4gSW50UG9pbnQobV9ib3JkZXJUZXhlbHMs
IG1fYm9yZGVyVGV4ZWxzKTsKIH0KIAogdm9pZCBUaWxpbmdEYXRhOjpyZWNvbXB1dGVOdW1UaWxl
cygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9U
aWxpbmdEYXRhLmgJKHJldmlzaW9uIDg5NDg2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBA
QCBwdWJsaWM6CiAKICAgICBJbnRSZWN0IHRpbGVCb3VuZHMoaW50IHRpbGUpIGNvbnN0OwogICAg
IEludFJlY3QgdGlsZUJvdW5kc1dpdGhCb3JkZXIoaW50IHRpbGUpIGNvbnN0OworICAgIEludFJl
Y3QgdGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcihpbnQgdGlsZSkgY29uc3Q7CiAgICAgRmxvYXRS
ZWN0IHRpbGVCb3VuZHNOb3JtYWxpemVkKGludCB0aWxlKSBjb25zdDsKICAgICBpbnQgdGlsZVBv
c2l0aW9uWChpbnQgeEluZGV4KSBjb25zdDsKICAgICBpbnQgdGlsZVBvc2l0aW9uWShpbnQgeUlu
ZGV4KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA4OTQ4NikKKysrIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMjIg
IERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEVkZ2UgYW50aS1hbGlh
c2luZyBmb3IgY29tcG9zaXRlZCBsYXllcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MTM4OAorCisgICAgICAgIFRyYWNrIGNoYW5nZXMgdG8gVGls
aW5nRGF0YSBjbGFzcyB3aGljaCBub3cgdXNlcyBhbiBvdXRlciBib3JkZXIuCisKKyAgICAgICAg
KiBjaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHA6CisKIDIwMTEtMDYtMDEgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxpbmdE
YXRhVGVzdC5jcHAJKHJldmlzaW9uIDg5NDg2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEwICs0MSwxMCBA
QCBuYW1lc3BhY2UgewogVEVTVChUaWxpbmdEYXRhVGVzdCwgbnVtVGlsZXNfTm9UaWxpbmcpCiB7
CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMTYsIDE2LCAxNiwgZmFsc2UpLm51bVRpbGVz
KCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNSwgMTUsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAxNiwgMTYsIHRydWUpLm51
bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE3LCAxNSwgMTUsIHRydWUp
Lm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE4LCAxNiwgMTYsIHRy
dWUpLm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDE2LCAgMSwgMTYs
IGZhbHNlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNSwgMTUs
IDE1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNywg
MTUsIDE1LCB0cnVlKS5udW1UaWxlcygpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgbnVt
VGlsZXNfVGlsaW5nTm9Cb3JkZXJzKQpAQCAtMTA5LDQ1ICsxMDksNDUgQEAgVEVTVChUaWxpbmdE
YXRhVGVzdCwgbnVtVGlsZXNfVGlsaW5nV2l0aAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRh
KC0xLCAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMCwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKIAotICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDEsICAxLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMSwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKICAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgxLCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwogICAgIEVYUEVDVF9FUSgw
LCBUaWxpbmdEYXRhKDEsICAyLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VR
KDEsIFRpbGluZ0RhdGEoMiwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgyLCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDIsICAyLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMiwgIDIsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKLQotICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0g
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDIsICAzLCB0cnVlKS5udW1UaWxlcygpKTsK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgMywgIDMsIHRydWUpLm51bVRpbGVzKCkp
OwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICA0LCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgIDUsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAgNiwgIDMsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMsICA3LCAgMywgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgMSwgIDQsIHRydWUp
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAyLCAgNCwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgIDMsICA0LCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAgNCwgIDQs
IHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDQsICA1LCAg
NCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNCwgIDYs
ICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg0LCAg
NywgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDQs
ICA4LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEo
NCwgIDksICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0
YSg0LCAxMCwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdE
YXRhKDQsIDExLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMSwgVGls
aW5nRGF0YSg1LCAgMSwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDUsICAyLCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoNSwgIDMsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSg1LCAgNCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgxLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNU
X0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNywgIDUsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVY
UEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA4LCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAg
RVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDksICA1LCB0cnVlKS5udW1UaWxlcygpKTsKLSAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgIDUsIHRydWUpLm51bVRpbGVzKCkpOwot
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDExLCAgNSwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAgMSwgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsICAyLCAgMSwgdHJ1ZSkubnVtVGls
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgIDIsICAyLCB0cnVlKS5udW1U
aWxlcygpKTsKKworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAxLCAgMSwgdHJ1ZSku
bnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgIDEsICAyLCB0cnVl
KS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgMiwgIDEsIHRy
dWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAyLCAgMiwg
dHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoMywgIDIsICAz
LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAgMywg
IDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsICAz
LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0
LCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRh
KDQsICAyLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoNCwgIDMsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5n
RGF0YSg0LCAgNCwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDQsICA1LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoNCwgIDYsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNCwg
VGlsaW5nRGF0YSg0LCAgNywgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0
LCBUaWxpbmdEYXRhKDQsICA4LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VR
KDUsIFRpbGluZ0RhdGEoNCwgIDksICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1Rf
RVEoNSwgVGlsaW5nRGF0YSg0LCAxMCwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSg2LCBUaWxpbmdEYXRhKDQsIDExLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisKKyAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAyLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDMsICAzLCB0cnVlKS5udW1UaWxlcygpKTsK
KyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNCwgIDMsIHRydWUpLm51bVRpbGVzKCkp
OworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA1LCAgMywgdHJ1ZSkubnVtVGlsZXMo
KSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICAzLCB0cnVlKS5udW1UaWxl
cygpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNywgIDMsIHRydWUpLm51bVRp
bGVzKCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgMywgdHJ1ZSkubnVt
VGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDksICAzLCB0cnVlKS5u
dW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAxMCwgIDMsIHRydWUp
Lm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAgMywgdHJ1
ZSkubnVtVGlsZXMoKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQpCkBAIC0xNjYsMTcgKzE2NiwxNyBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxl
WEluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCBm
YWxzZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKLSAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoNCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVhJbmRleEZyb21TcmNDb29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBFWFBFQ1RfRVEo
NiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoNykp
OwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCg4KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEw
LCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGls
aW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsKLSAg
ICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoMTEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQ
RUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nv
b3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVYSW5kZXhGcm9tU3JjQ29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAgRVhQRUNUX0VR
KDYsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDYp
KTsKKyAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoNykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNUX0VRKDksIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKKyAg
ICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoMTApKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDEsIDEsIDEsIGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVhJbmRleEZyb21TcmND
b29yZCgwKSk7CkBAIC0xOTQsMTMgKzE5NCwxMyBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxl
WEluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1
ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CiAgICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywg
dHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29y
ZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxl
WEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA0
LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNy
Y0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50
aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0
LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCA0LCAzLCB0cnVlKS50aWxlWEluZGV4RnJv
bVNyY0Nvb3JkKDMpKTsKIH0KIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVZSW5kZXhGcm9tU3Jj
Q29vcmQpCiB7CkBAIC0yMTgsMTcgKzIxOCwxNyBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxl
WUluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCBm
YWxzZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOwogCiAgICAgRVhQRUNUX0VRKDAsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDMpKTsKLSAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoNCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCg1KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDYpKTsKLSAgICBFWFBFQ1RfRVEo
NiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoNykp
OwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCg4KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywgMTAsIDEw
LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKLSAgICBFWFBFQ1RfRVEoNywgVGls
aW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMTApKTsKLSAg
ICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMTEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQ
RUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoNCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg1KSk7CisgICAgRVhQRUNUX0VR
KDYsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDYp
KTsKKyAgICBFWFBFQ1RfRVEoNywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoNykpOworICAgIEVYUEVDVF9FUSg4LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg4KSk7CisgICAgRVhQRUNUX0VRKDksIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDkpKTsKKyAg
ICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMTApKTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMTEpKTsKIAogICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDEsIDEsIDEsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAgICBF
WFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCBmYWxzZSkudGlsZVlJbmRleEZyb21TcmND
b29yZCgwKSk7CkBAIC0yNDYsNjEgKzI0Niw2MSBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxl
WUluZGV4RnJvbVNyY0NvCiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMiwgMiwgMiwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgwKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMiwgMiwgMiwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CiAgICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgMywg
dHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgyKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7CisgICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMywgMywgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29y
ZCgyKSk7CiAKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxl
WUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAz
LCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50
aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg0
LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg0LCAzLCA0LCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYKQogewog
ICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWCgw
KSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6
ZVgoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGls
ZVNpemVYKDApKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFs
c2UpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2
LCBmYWxzZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAg
NiwgIDYsIHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEo
NSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGls
aW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEo
NSwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIGZhbHNlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAg
RVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVYKDEp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXpl
WCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxl
U2l6ZVgoMSkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxz
ZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAs
IGZhbHNlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEw
LCAxMCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1
LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0
LCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1Rf
RVEoMywgVGlsaW5nRGF0YSg1LCAxMSwgMTEsIHRydWUpLnRpbGVTaXplWCgyKSk7CiAgICAgRVhQ
RUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6ZVgoMikpOwogfQog
VEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZKQogewogICAgIEVYUEVDVF9FUSg1LCBUaWxp
bmdEYXRhKDUsICA1LCAgNSwgZmFsc2UpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDUs
IFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9F
USgzLCBUaWxpbmdEYXRhKDUsICA1LCAgNSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKIAogICAgIEVY
UEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAg
ICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVZKDEp
KTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXpl
WSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxl
U2l6ZVkoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSku
dGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRy
dWUpLnRpbGVTaXplWSgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgOCwg
IDgsIGZhbHNlKS50aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUs
ICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0Rh
dGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxp
bmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VR
KDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwogCiAgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCBmYWxzZSkudGlsZVNpemVZKDApKTsKICAg
ICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVkoMSkp
OwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZ
KDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVT
aXplWSgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50
aWxlU2l6ZVkoMSkpOwogICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1
ZSkudGlsZVNpemVZKDIpKTsKIAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUsIDExLCAx
MSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAx
MSwgMTEsIHRydWUpLnRpbGVTaXplWSgyKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEo
NSwgMTIsIDEyLCB0cnVlKS50aWxlU2l6ZVkoMikpOwogfQogCkBAIC0zMTksMTAgKzMxOSwxMCBA
QCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVhfYW5kX3RpbGVQCiAgICAgRVhQRUNUX0VR
KDAsIFRpbGluZ0RhdGEoMywgMSwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKICAgICBF
WFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxLCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7CiAg
ICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMSwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAzLCAgIDEsIHRydWUpLnRpbGVT
aXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywgICAxLCB0cnVlKS50
aWxlUG9zaXRpb25YKDApKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAzLCAxMDAs
IHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMywg
MTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSg1LCAzLCAgIDEsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGlu
Z0RhdGEoNSwgMywgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEo
MywgVGlsaW5nRGF0YSg1LCAzLCAxMDAsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNU
X0VRKDAsIFRpbGluZ0RhdGEoNSwgMywgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKIAog
ICAgIC8vIE11bHRpcGxlIHRpbGVzOgogICAgIC8vIG5vIGJvcmRlcgpAQCAtMzQwLDIzICszNDAs
MjMgQEAgVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVYX2FuZF90aWxlUAogICAgIC8vIE11
bHRpcGxlIHRpbGVzOgogICAgIC8vIHdpdGggYm9yZGVyCiAgICAgLy8gcG9zaXRpb25zIDAsIDIs
IDMsIDQKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGls
ZVNpemVYKDApKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUp
LnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0
cnVlKS50aWxlU2l6ZVgoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYsICAg
MSwgdHJ1ZSkudGlsZVNpemVYKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA2
LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdE
YXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDMs
IFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDIpKTsKLSAgICBFWFBF
Q1RfRVEoNCwgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMykpOwot
ICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXpl
WCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxl
U2l6ZVgoMikpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSku
dGlsZVNpemVYKDMpKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRy
dWUpLnRpbGVQb3NpdGlvblgoMCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDYs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgxKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDIpKTsKLSAgICBFWFBFQ1RfRVEoNCwg
VGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMykpOworICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQ
RUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDEpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgy
KSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlU2l6
ZVgoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGls
ZVBvc2l0aW9uWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0
cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA0
LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdE
YXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7CisgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVYUEVDVF9F
USgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVTaXplWCgyKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMykpOwor
ICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9u
WCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxl
UG9zaXRpb25YKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRy
dWUpLnRpbGVQb3NpdGlvblgoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDQs
IDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgzKSk7CiB9CiAKIFRFU1QoVGlsaW5nRGF0YVRlc3Qs
IHRpbGVTaXplWV9hbmRfdGlsZVBvc2l0aW9uWSkKQEAgLTM3NCwxMCArMzc0LDEwIEBAIFRFU1Qo
VGlsaW5nRGF0YVRlc3QsIHRpbGVTaXplWV9hbmRfdGlsZVAKICAgICBFWFBFQ1RfRVEoMCwgVGls
aW5nRGF0YSgzLCAgIDEsIDEsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwogICAgIEVYUEVDVF9F
USgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1ZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBF
Q1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDEsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwot
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAgMSwgMywgdHJ1ZSkudGlsZVNpemVZKDAp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAgIDEsIDMsIHRydWUpLnRpbGVQb3Np
dGlvblkoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSku
dGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDMsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICAg
MSwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1
LCAgIDEsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxp
bmdEYXRhKDUsIDEwMCwgMywgdHJ1ZSkudGlsZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSg1LCAxMDAsIDMsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOwogCiAgICAgLy8g
TXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gbm8gYm9yZGVyCkBAIC0zOTUsMjMgKzM5NSwyMyBAQCBU
RVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVlfYW5kX3RpbGVQCiAgICAgLy8gTXVsdGlwbGUg
dGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIKICAgICAvLyBwb3NpdGlvbnMgMCwgMiwgMywgNAot
ICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkubnVtVGlsZXMoKSk7
Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlU2l6ZVko
MCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNp
emVZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRp
bGVTaXplWSgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVl
KS50aWxlU2l6ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwg
dHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywg
ICAxLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVYUEVDVF9FUSg0
LCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7Ci0gICAgRVhQ
RUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAg
IEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVNpemVZKDEpKTsK
LSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVTaXplWSgy
KSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlU2l6
ZVkoMykpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0
cnVlKS50aWxlUG9zaXRpb25ZKDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAx
MDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMikpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgzKSk7CisgICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNU
X0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVTaXplWSgzKSk7
CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRp
b25ZKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRp
bGVQb3NpdGlvblkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwg
dHJ1ZSkudGlsZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywg
ICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5n
RGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlU2l6ZVkoMSkpOworICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXplWSgzKSk7CisgICAgRVhQ
RUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDApKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVQb3NpdGlv
blkoMSkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGls
ZVBvc2l0aW9uWSgyKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0
cnVlKS50aWxlUG9zaXRpb25ZKDMpKTsKIH0KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgc2V0VG90
YWxTaXplKQpAQCAtNDY4LDcgKzQ2OCw3IEBAIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHNldE1heFRl
eHR1cmVTaXplTm8KIAogVEVTVChUaWxpbmdEYXRhVGVzdCwgc2V0TWF4VGV4dHVyZVNpemVCb3Jk
ZXJzKQogewotICAgIFRpbGluZ0RhdGEgZGF0YSg4LCAxNiwgMzIsIHRydWUpOworICAgIFRpbGlu
Z0RhdGEgZGF0YSg4LCAxNiwgMzAsIHRydWUpOwogICAgIEVYUEVDVF9FUSgzLCBkYXRhLm51bVRp
bGVzWCgpKTsKICAgICBFWFBFQ1RfRVEoNSwgZGF0YS5udW1UaWxlc1koKSk7CiAKQEAgLTQ4NCw3
ICs0ODQsNyBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCBzZXRNYXhUZXh0dXJlU2l6ZUJvCiAKICAg
ICBkYXRhLnNldE1heFRleHR1cmVTaXplKDUpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm1heFRl
eHR1cmVTaXplKCkpOwotICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51bVRpbGVzWCgpKTsKKyAgICBF
WFBFQ1RfRVEoNiwgZGF0YS5udW1UaWxlc1goKSk7CiAgICAgRVhQRUNUX0VRKDEwLCBkYXRhLm51
bVRpbGVzWSgpKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODk0ODYpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNi0yMiAg
RGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gRWRnZSBhbnRpLWFsaWFz
aW5nIGZvciBjb21wb3NpdGVkIGxheWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYxMzg4CisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy90aW55LWxheWVyLXJvdGF0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDExLTA2LTIyICBBZGFtIFJvYmVuICA8
YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBTa2lwIHNvbWUgZmxha3kgYW5pbWF0aW9uIHRl
c3RzIG9uIFdpbmRvd3MKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDg5NDg2KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0zMDE0LDExICszMDE0LDEyIEBAIEJVR0NSNzUxMDkgV0lOIExJTlVYIDogc3ZnL2Nzcy9n
ZXRDb21wdXQKIEJVR0NSNzUwMTkgV0lOIExJTlVYIE1BQyA6ZmFzdC90ZXh0L2h5cGhlbmF0ZS1s
aW1pdC1iZWZvcmUtYWZ0ZXIuaHRtbCA9IElNQUdFK1RFWFQKIAogLy8gQ2hyb21pdW0gR1BVIGRy
YXdzIHNjcm9sbGJhcnMgc2xpZ2h0bHkgZGlmZmVyZW50bHkgaW4gZGVidWcgdnMuIHJlbGVhc2Uu
Ci1CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2RpcmVjdC1pbWFnZS1j
b21wb3NpdGluZy5odG1sID0gSU1BR0UKLUJVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29t
cG9zaXRpbmcvZ2VvbWV0cnkvaG9yaXpvbnRhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1B
R0UKLUJVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdGFs
bC1wYWdlLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCi1CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5V
WCA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1B
R0UKLUJVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0g
SU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s1ODU4NyBE
RUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRt
bCA9IElNQUdFCisvL0JVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvaG9yaXpvbnRhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKKy8vQlVHV0s1
ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS90YWxsLXBhZ2UtY29t
cG9zaXRlZC5odG1sID0gSU1BR0UKKy8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21w
b3NpdGluZy9nZW9tZXRyeS92aWRlby1maXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCisvL0JV
R1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0gSU1BR0UK
IAogLy8gV2ViS2l0IHJvbGwgODA1NjQ6ODA2MzE6IHJlbmRlcmluZyBvbiBMZW9wYXJkIGlzIHNo
aWZ0ZWQgdG8gdGhlIHRvcCByaWdodAogLy8gc3RhcnRlZCBhdCBzb21lIHBvaW50IGF0IG9yIGFm
dGVyIFdLIHI4MDU4MiAoRGF2ZSBIeWF0dCdzIHZlcnRpY2FsIHRleHQgY2hhbmdlIC0gYSB2ZXJ5
IGxpa2VseSBjYW5kaWRhdGUpCkBAIC0zMzQ5LDcgKzMzNTAsOCBAQCBCVUdDUjc5MTEwIFdJTiBM
SU5VWCA6IGZhc3Qvb3ZlcmZsb3cvaW5mCiBCVUdDUjc5MTExIEdQVSA6IGNvbXBvc2l0aW5nL2Zy
YW1lc2V0cy9jb21wb3NpdGVkLWZyYW1lLWFsaWdubWVudC5odG1sID0gSU1BR0UKIAogQlVHV0s1
ODMwOCBHUFUgV0lOIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcvei1vcmRlci9uZWdhdGl2ZS16
LWluZGV4Lmh0bWwgPSBQQVNTIENSQVNICi1CVUdXSzU4MzI4IEdQVSBXSU4gTUFDIExJTlVYIERF
QlVHIDogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UgUEFT
UyBDUkFTSAorLy8gQ29tbWVudGVkIGJlY2F1c2Ugb2YgQlVHV0s2MTM4OAorLy9CVUdXSzU4MzI4
IEdQVSBXSU4gTUFDIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVmbGVj
dGlvbi5odG1sID0gSU1BR0UgUEFTUyBDUkFTSAogCiBCVUdDUjc5MTczIEdQVSBMSU5VWCBERUJV
RyA6IGZhc3QvY2FudmFzL2FjY2Vzcy16ZXJvLXNpemVkLWNhbnZhcy5odG1sID0gUEFTUyBDUkFT
SAogCkBAIC0zNTA5LDkgKzM1MTEsMTEgQEAgQlVHV0s2MDA5NyBERUJVRyA6IGZhc3QvZG9tL0hU
TUxMaW5rRWxlbQogCiAvLyBOZWVkcyByZWJhc2VsaW5lCiAKLUJVR1dLNjAxMDIgTElOVVggREVC
VUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtaW4tY29tcG9zaXRlZC5odG1sID0g
SU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s2MDEwMiBM
SU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3NpdGVk
Lmh0bWwgPSBJTUFHRQogQlVHV0s2MDEwMiBMSU5VWCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9t
YXNrZWQtYW5jZXN0b3IuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQVSA6
IGNvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2suaHRtbCA9IElNQUdFCisv
LyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNjAxMDIgTElOVVggREVC
VUcgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1sID0g
SU1BR0UKIC8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR0NSODE2MDUKIC8vQlVHV0s2MDEwMiBM
SU5VWCBERUJVRyBHUFUgOiBmYXN0L2NhbnZhcy9jYW52YXMtdGV4dC1hbGlnbm1lbnQuaHRtbCA9
IElNQUdFCiAKQEAgLTM5NzYsMyArMzk4MCw0MyBAQCBCVUdDUjg3MDcwIDogZmFzdC9qcy9yZXNl
cnZlZC13b3Jkcy5odG1sCiBCVUdDUjg3MDcwIDogZmFzdC9qcy9wYXJzZXIteG1sLWNsb3NlLWNv
bW1lbnQuaHRtbCA9IFRFWFQKIC8vIFNvdW5kcyBsaWtlIGEgcmVhbCByZWdyZXNzaW9uLgogQlVH
Q1I4NzA3MCBXSU4gREVCVUcgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNz
LURFTklFRC10by1qYXZhc2NyaXB0LXVybC1pbi1mb3JlaWduLWRvbWFpbi1zdWJmcmFtZS5odG1s
ID0gQ1JBU0ggUEFTUworCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2NvbG9yLW1hdGNo
aW5nL2ltYWdlLWNvbG9yLW1hdGNoaW5nLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBj
b21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLWluLWNvbXBvc2l0ZWQuaHRtbCA9
IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9o
b3Jpem9udGFsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUg
OiBjb21wb3NpdGluZy9nZW9tZXRyeS9sYXllci1kdWUtdG8tbGF5ZXItY2hpbGRyZW4tZGVlcC5o
dG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGF5ZXIt
ZHVlLXRvLWxheWVyLWNoaWxkcmVuLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21w
b3NpdGluZy9nZW9tZXRyeS90YWxsLXBhZ2UtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dL
NjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdmlkZW8tZml4ZWQtc2Nyb2xsaW5nLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92ZXJ0aWNh
bC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9z
aXRpbmcvZ2VvbWV0cnkvdmlkZW8tb3BhY2l0eS1vdmVybGF5Lmh0bWwgPSBJTUFHRQorQlVHV0s2
MTM4OCBHUFUgOiBjb21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLXNjcm9sbC5o
dG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvaWZyYW1lcy9uZXN0ZWQt
aWZyYW1lLXNjcm9sbGluZy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRp
bmcvaW1hZ2VzL2RpcmVjdC1zdmctaW1hZ2UuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6
IGNvbXBvc2l0aW5nL21hc2tzL2RpcmVjdC1pbWFnZS1tYXNrLmh0bWwgPSBJTUFHRQorQlVHV0s2
MTM4OCBHUFUgOiBjb21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLmh0bWwg
PSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9vdmVyZmxvdy9maXhlZC1wb3Np
dGlvbi1hbmNlc3Rvci1jbGlwLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3Np
dGluZy9yZWZsZWN0aW9ucy9kZWVwbHktbmVzdGVkLXJlZmxlY3Rpb25zLmh0bWwgPSBJTUFHRQor
QlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlv
bi1vbi1vdmVyZmxvdy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcv
cmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNmb3JtZWQuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9u
LXRyYW5zZm9ybWVkMi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcv
cmVmbGVjdGlvbnMvbmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNpdGlvbi5odG1sID0gSU1BR0UKK0JV
R1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1pbi1jb21w
b3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0
aW9ucy9yZWZsZWN0aW9uLW9uLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQ
VSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3JkZXJpbmcuaHRtbCA9IElN
QUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24t
cG9zaXRpb25pbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRpb25pbmcyLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4
OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9zaW1wbGUtY29tcG9zaXRlZC1yZWZsZWN0
aW9ucy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlv
bnMvdHJhbnNmb3JtLWluc2lkZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBH
UFUgOiBjb21wb3NpdGluZy9zaGFkb3dzL3NoYWRvdy1kcmF3aW5nLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy90ZXh0LW9uLWxhcmdlLWxheWVyLmh0bWwgPSBJTUFH
RQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy90cmFuc2l0aW9ucy9zY2FsZS10cmFuc2l0
aW9uLW5vLXN0YXJ0Lmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy93
ZWJnbC93ZWJnbC1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBwbGF0
Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9odWdlLWxheWVyLXJvdGF0ZWQuaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2JhY2tmYWNl
LXZpc2liaWxpdHktdHJhbnNmb3JtZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1l
ZGlhL3ZpZGVvLXpvb20uaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVv
LXpvb20tY29udHJvbHMuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IG1lZGlhL3ZpZGVv
LXRyYW5zZm9ybWVkLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBtZWRpYS92aWRlby1s
YXllci1jcmFzaC5odG1sID0gSU1BR0UKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXll
ci1yb3RhdGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1yb3RhdGVkLWV4
cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy90aW55LWxheWVyLXJv
dGF0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFkPgorICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5zbWFsbCB7CisgICAgICAt
d2Via2l0LXBlcnNwZWN0aXZlOiAxMDA7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46
IGxlZnQgdG9wOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoNTNkZWcpIHJvdGF0
ZVooMTBkZWcpIHNjYWxlWCgxMDAuMCkgc2NhbGVZKDEwMC4wKTsKKyAgICAgIHdpZHRoOiAxMHB4
OworICAgICAgaGVpZ2h0OiAzMHB4OworICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSgjMDBhYmViKSwgdG8oI2ZmZikp
OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNo
YXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuIj4KKyAgPGRpdiBjbGFzcz0ic21h
bGwiPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRl
ZC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRl
ZC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXll
ci1yb3RhdGVkLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAg
ICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZC
VW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQmtOMlJtTURGbApOemcwWlRabE4yRmhabVl5WkdSbFpH
TTVOVFl4TURJMk1LUnQ3R2tBQUNBQVNVUkJWSGljN0YzUmx1c3FyaXhsL1ArZmQvL2pQcy9hCjFq
eUFoTUNBd1hic3BDT3RQV2ZTYm5kRXNHT0txa0xRLy8zL2Z4bTBNc3Qvc1RJWUNFZmtCZUp2R1F5
a2cvSmo5anA3d1FEcGEyYUEKaUpsQkJHWWlFQWhnQW9pSUFJQUpSQVFDQUJCUW5LTi9SUVF3aDcv
YXZBNS9sWjAvbFVYTzZXZXNaQ0VDeXptTkxBT2ZhN1I1elU3dwo4UER3OFBEd2VEWVdSVWhiZEpW
Qkt6QURhOEpQTklheEtPQXFCa0RoZGZ3ekltQUZrU0NNMVNDTTFZQ0c3VGxNQUZQQU53eDVUZkth
CjVEaW9sU1hDR0lOakdBU0JZc3dKUWdWTW93ZGgvaERtRC9Oek9MNURhSkhOVXNsWXo3TGJDZWgy
Z3NGbkhoNGVIaDRlSHZmSFlqZ3EKKzY5QVZ4RjRNYkNDbVNrL3B3K3pLSUF6WGdPeTRrQmk5VEZL
QzhjWUpGUkZSVlhrdE1uU0JIUHl6aldnWm9EZERKZ0xDWHZ3OFV5VwpNWkRLY0Y3THc4UER3OFBq
emxnQ044VkVEQmI2cW9CWmlyR0NhRWdySWdtMWNnN0xlQ01kbWhjZ3dWdENaMDNobUEwUzZyRTc5
cHpoCkxDVURkREFMcXBBeFpPYnd3c0xIUFNLdEF4a25RR3IyRGg0ZUhoNGVIaDV2amlnUnJpc3pG
ZUlnclJ3Z0Z5ZG9GWThIcU1STVdOY0UKc0t4SnF3S3oyRGl4eEZjMGgyTWkraG1WNnJvWXBSUUU3
ZmxUZ21BOFI3TWtNR2NsdkFxdzY5SmF1MkN1UjNGVjRLUFRXaDRlSGg0ZQpIamZHb2hMZXVqSVQ1
YXdWS2JveTBNcmFzN0JDdlBCcnJqT3FwS2pIT2RpU0FoTGdGcVBUWklBVUNRMklhUEdjVVhkWGVs
Mit3ekNPCjJXUVpRazVnQ2lzQnhyS2dDZ2RIYUxBZVpIUmF5OFBEdzhQRDQrcFlEQ3BTVUtXRzl3
SmQ2WDg1V2JLU055dkhWZUd0T0NoYWtkbFMKaWdzMWpNSk55OUVFdXpPUGxuSnBiMDZxYTduVVov
MWtIVjk4NFRsN1d5ZTRnT2poNGVIaDRYRmRMQ29PUmhNVmxMaks1VUx3Q25EOApyeUd1RXFkVlFL
dUFrUUtKVlRCYktxalZ1QlpJT1FmS25FYkhMVWQxUVJBbGNxbzR2UVp4VEVFNDJkZDFUTE8vUWpE
NjR2V2NXVCtaCk9hZVpSZCs1aEk5ZTdzSER3OFBEdytOa2hGV0V5Y0FlTkVGQlM3UXlNNmtaQyth
L0Nyd1VWR1dDSUhxMXNtZ0V4M0FRMFRBbjFRMjQKMVB0VkQ0NjU3L2NFd1MwTmhuM0lDRUJWMUNs
QnNFUkxsU3g1eHFiZHpXa3REdzhQRHcrUEk3RW83aEVVSlpZc3cyQXBydHI0c1ZBcwpQRndCcU1o
b29GWDI0N2psU0hXdVhVdjRxT1dvaldtT0c1dUdCTUdqWUM3NXlmWTdZVFRMcko5TXNyZ3Yzc1BE
dzhQRFl5elVnNlc0Cml0ZThJb05CVjRHNEVsQzFVUXpYbFZFUVdtTHFDb3JoS2lzSTJ6aEdTS2Fx
YWFuaml4K3lIUFV3emRHcXAvMk14N0pZQ2EvOFhCVmYKL0J4a25QV1QxU0NqMDFvZUhoNGVIaDdk
V0pSVlNoVkJSUnhjR2FJQUd2cEt6Vmc1Z3dWTFZpWFd5bTYyWXp4WWRZUlJVNm02WEl2MQp4ZTh4
T2sxTXN5OElvZ0g0anBldzZ1Q1lVVDlaOHNYdmd6bnNkb0tjUCsvdVluYS9sb2VIaDRlSFJ4SEx1
Z2JLQ3FzQ0thaFdDSEc3Ckl6ZGpsYTZzVkdLMHJFcWFINWNsaENpRzhJM1FOaWZWUVh6eEtKQ1F2
blBENURTWTVaanY2Z2lZRzVQcTluenhVNExnanZ0K0J6SWEKRk9nNHk4UER3OFBEUThLV2FVajFH
cUxWM2ZyZmlRUnBDZW95NncxRk1ZUkZWNGJLZ3U1SXVHWXJCQVhIbkpmcWpPVklHSjBCazlOMApG
bFNSMEZsalUxYUlJY2MwSSs0dWM4Nm0zTU9zbjJ5VHBiLzhjT3YwMGl3ZUhoNGVIaDQvSEFaZ3Fk
VmRIVmV5dVkzU1dvcWxWcEVGCjAwSDlWYXBCR3BpdHZIeERHSHg3Kzk1Y1ltd3lsdkR6bGlPNzht
NU9FTnpOMGdOMlU1MVFnNHhEdnZqSkxQMXVyOEZIUjFzZUhoNGUKSHI4WFN5Z0hhaDFYWnVsZkpo
b3E2b3EwbGdGYkJscVJLZUtnMk12dXRBTWsyVzdDY2pSamJESTJLWkNXZTVpUjZwb3I3NllFd1Qz
SQplTHhRMWdCYUN2Mjh0emhnRGpMRzExTTF5YklzSGg0ZUhoNGV2eEdMcVhxVjI5c3RybEt2RlFu
TXF2cmZvMjZJTGJxeVRxd1dhM0xPCjJEUXExYkZSc29hejFMUXd6bEZnRzJGMEs3TzNNUTNtY0V3
ZEZWMndPQ0RyaEhUK0dYZVgwMW9lSGg0ZUhuODlGc05YY1FKU3lZd0YKcHJqMEwwbUhTVVpjUTYz
Uk5RTlZsTzJ4UThKbXJjRzgxUjNPdDhOekYyR1l5dXh6dnZpcGJSRGo2MnFXWTc2cjR5V3NPclZW
cDBIcQp3RGFJcUpKdDJOTmV4eUNqKytJOVBEdzhQUDVzTEVWdEJWT2dJYU92RW85bFRGbzVpUVdt
VURlTEdWaTFIdWxxMlN3aEwrcFZEMnJECjg3N2w2TENJVm1kMGNsU1J6ajlhS0d1TGxucWZhNmYr
ZXhQSHpQckpFbVJzYjRPNDV5YzdWZlUweDlBdUlIcDRlSGg0L0sxWXBNSkMKTEtsUVExcE5kR1dL
WTJFRkZFdVo4cVJsVVhnR0xyVWNIZDJicjFmdW9jUTBSeXhISldURU1ObVdaM2xUSjdRaEkySzVo
MWsvMlVnVwpsUnE3bjhzRlJBOFBEdytQNzQ5RjltWTJxLytzNFoyd3J2Smp5V1lwL0ZKY2hiSlFG
aFhvaWhpY1lacVpHZ1Fic1dsZXBiSm9xWTR3ClFGVHp4Wit4SEYxWktLdkpBRTFuNmFxaUxWLzhp
U1VJc3hmWGFTMFBEdzhQankrT0pTOEhDaTB4YW1BV01ZRlhicUFyYUUyc2xiR3kKVlFteHJqQTJy
RmhyZEVCRTZ5Q01NUmJrb0xHcG1uRitCOEFNTVl6Q3h5bEI4Q3hJZlhNbmJDRGo0TVZ0UTBhbnRU
dzhQRHc4dmlvVwp6aWtvVGl4VXNMMlQyTjZ0WWxpZ3EwaFRyWkNpV1luWm9qWGFzT0syaHNBWlk1
T29WRGdzMVIzY202L0Y2RlJha3NQQncxTGRYaWMwCi9XU0hxcDRPSVNkc3QwSHNlT01hY0hDRUJ2
TnlEeDRlSGg0ZTN4NkxGbERRelo0amxvS3NJb1RabExCd3ZrTmZSUHdrSjRRM3NYdEYKYXpHSXc4
WW1veDhkODExZHVrSGgyQTZBZzhocHBoelhjYWx1NDFJdmxra09nOVMyTDE3T1NRc2JMMWlDVU84
RVIxb2VIaDRlSGg4YwpDd1BNdGk2bzJlTEdsbDNZdk40d1dQYUYyYlhRN21Zb2tHYmUyRFF0Q0E2
Z3BVWkdpSWlHQWE0RllObjg1NXlmYkFRdGRVVzBhenRoClpna0N6RGFJVXlCMUJnb2JzaTIvTkY3
dXdjUER3OFBqQXlPVENOTnJYZnFYMFZTYi81b2YveFVxWVlSV2FkZkNnTHBRVUNZOUhLT28Kb3Va
VkdzTXg3U3h0VEhNSXpBVmZQSitWNnJaWjZwNnphNHhOMjR6alV0MjJxd0ZWVVM5WWdwQmxVZkFh
ME55bTA1elc4dkR3OFBENApzQWdtZDF0VlFka3NCbktOVC8xVkZsZXRodENLL0phVkVVc2VhMWd6
T3F3ZmJRdGx6Vm1Pam1USlB4YzZsdkF0d2hoUVJTM2FtQklFCnUyaXBsbkdvanRmcFRwaGJnbkJp
RjIxSFd4NGVIaDRlRDhVU2lsZHQwSlZxaGFJSlJvelZSbGNaeHJMZXJHU0tad3hhanFaVnFuUk8K
ampDYUxNaXVqWHJPMkZSRFFpMWYvQ2lZT3l5aWRiTG9PNy9QZlorL3c5WVhQd2NaKzkyK283MW1G
OVREdzhQRHcrUEdXTGFGUUl1OQpCVmZ3eW1TUUZxOU1WZEh3WDFiS29TZ0V6MHkwOHA0OFZ3aUNs
STJYUThhbXVnSG9jQW1yRHNLb3FWVER2dmk5TEUxTXMwUFg5U0RqCmVhbHVud1pyWlVtKytGdVdJ
RFNCS1RNNXIrWGg0ZUhoOGY2UVFxUEdpUlhGd1dKdlFWQU9udWlmS2Rid3I2ajVEa1FRcHJ3WGFG
M0IKZ2RYWVowSEc5YU1SeTlGNWxVcXlKSVJSMC9nR3BUcUlMeDR0SERQcko1TXNQY2c0MmdremtI
SFdUMWIzeFcrZzhBREgyY3F5QXhrTgpISFNjNWVIaDRlSHh6bGhVQ3VTc3dvSXBlWlhMZkFLaG11
anFYMW1TTkZTQmoxNnVHcU56V0QvcTRwaVpHZ1R4bk4wc201VjNreUphCkJjeFZPbUhPVHphUzVY
eWhyRzFYei9ySktwQnhVKzVoOXVKdXN2UVp4d1pRYzZUbDRlSGg0WEY1TExhSUtBTk14S3NhMnpm
MVJVRTUKVFlVT2ovVlBpenZvVm9hb0NJTEJxd1FjbHVyS2M0QUtFcnJPY25SQ3BXcG1BY2gwQXM1
Wmpxem5ySTFScHJPOGZRa0NNT0NMbjh3QwpoWmhERjlkOThSNGVIaDRlRjhXaUMvM2lXc0tjemRK
SzdrVnBobjlyRHJZaXVxS0lxMUkxckZoUDZ4L3pxdldpR29MZ1JUc0F0b2ZuCkhmMm94N1hJeVJ1
TjZab2FCUEs2MmdtWTY0VFRJUFdkU3hCYWFNbDBBbHFMQTJEOVpDT1FjZmJpYnJKNGVIaDRlSGdj
RFMzVFlQVEIKUWl0VVhLWFdkVXRmcFJjR1hhbjdLcTgreXRrd3RxOGZZVmd6c2dCb1NqK2FZa0VP
VzQ3YWtIRUhPUjNhQWJEMnVZWVJScU9yVmNKcgpZSnFCQzlyT2N1SGlnQWJPUHJQUXdXa3REdzhQ
RDQvNWlCSmgyQ2NIU1JBMFRxd0lub3FTRFFYTUlpc1IvbHVEUVo2S1VnN0FYZzJDCmpZaFdaWFFh
ZzJ0Nmg5T0ZzalRMc0VxRmZZUmhNTXFFNVdpSDBTbXpOQURvcWFxbm8zNnltU3o2enFQd2NYUWJ4
QzBVbm5GM3RTR2oKc29rZUhoNGVIaDc3c2F5cTZNbUw2TW9TNW9tei9adXhXVkZvSEZjQ3RoaGhq
V0ZFWXdxOFZIeVpVNmtzUmdIV0dzS1lrdXJzT1ZNMQpDTWg4aEdyOTl3SEllTmhQVm1kME5tUWJy
c295QVlYSHVycUNBbmVsdXMxQ2gvMXRFS3NYZDZBVHVwQXg1d0lGelh0NGVIaDRlTFFpCk1GaUln
eWEwVWdQaXZqZUVkVld4ejlCWG9nOEdNMWFHcnRpQ3JjQmpVWGc5T0xnMjF1NVpUZ0tWOHBVREE2
YzlaNG9GdWNqWWRFS2wKMnE2a0E2b3E2bkhMVVNWTEV6a05yOTNiZ3JtakpheDY1UjVtTCs3Y0Vv
VGU1NEtETFE4UER3K1BTaXdGZlZWUVdWWUtMS0NWL3NxaQpxM1ZWMWdxRmJyaWVVcW5xdzU0S2lG
TXFWWWJKOWxpUUROUHNyOTNyUU1aekt0V2JPcUVDR2EyRTEwVk8xeTVCYUdYWmg0eW9xS2l6Clha
M09FVUZ3ZkQ3Z3RKYUhoNGVIeHlZV1ExOGhNRmdzcnpPOEJWajZLdFArZEpPY2lLNG8rSzRFZUNr
NEd4djJCalFqK3pycFFaTysKK0pSbGF1d2ZkM2VWbHFPVEt0VTJ5eVlqZ0FNN0FJNm9vazAvMlJT
T0dieTRlWmJaVGppK09FRFEwdlRGM1dSeFg3eUhoNGZIejhlUwpjMWROTml0dDlneFRwaUhncCto
cUowVlhLZzVHR1RHb2pUaHBCdEtoYmtjLzJ2WEYxN0ljMW84NlEzZ2lRZzViam5ackVHUVFjN0RT
CmdXM0pEWjN3MEJJRThJQXZ2Z0laSitGai80STZyZVhoNGVIeHE3RndIQXNDbGpMUUNxWHBLbFZl
eUFtdGY4d3NMaXRGVi85V3JHQXAKamtYL21IbENwZW9NNGJQNkVXSHJpeThIeTMxTU0yOXNNdnJS
WlpZajFEdGhJRXZMRjMvSWZULytXWEtoYzZ5cnE1RFJkTFYyYnhmVApEUHJpMzdBRW9kNEpqclE4
UER3OGZpeVdZdkVnUjF5VjAxcUt0SEpjRlY2elZRTXppUkJxYi8vSEFBNGJtNnduWmtvL1NzT2Ur
T0tICldKQlNSSnMyTmcyeU8xUHUrMDFHMjJralhFczhoVkdCakJQd2NVSVExQTU1WHlmTUkzV1li
UkJ6eUhqWXRkYjRMQzJrSGorZ2g0ZUgKaDhkZmpnVUJWUEdxMUZSQ1dsb0hLeXZUa0htd3RJakRQ
eW5XOEc5VmszdTJ4cEE3M015NElIaEVwYXJzelRlMEE2Q0thRk9hVVoxMwo2Y0RIRVdOVExlT0lH
YWpSVVVGRm5kZ0c4ZEFTaEZNZ3RaSmxrM0VhcVdlOHBxcW9GeXhCcUdmcGRvTFRXaDRlSGg1L091
eFdPU2lJCks0WXNKSXdRYXRXMWdkYWs5Yy9nclF4ZHhWOXg4TGtEMkdoaHU1YWoxckEzTHRWdHN4
Z0ZxdStMUDJnNVF2cUF3NWFqQ1ZYMGlFcFYKOFp5bGQ2aGF3bHNJbzlmVlZzSWJ1Ymhkc3EzTVVz
dDRkZ25DWGljYzRUWFZ6YmJKMkwrRjNCZnY0ZUhoOGJkaUVSVEZCbEZsVGl3bQpVOEE5d2FiQWRW
RlFEd1ZhVVlSVHdEK0dncTNBWUdFcmw4eXdJUGI4S1RVbk56YlZNNTdiQWZDd2ZqUUNHYzlMZGVV
NWRRQmErT0pQCjF5T2RFZ1Qzc3J6SmZWOGlvY3dYajBaSEhaa1BjSVJRSS9NQnA3VThQRHc4L2tR
c3FWdzdPTDNtek43T29LUWhhaWtzTlYweFZnN1EKS2pqY3lWSlp3ZWYrajdrKzdJMFRBTE1xVlFI
bUp2V2owYUlTSjFTcU5wamI2WVJ6eHFaQmRtZHFCOEJHeG9HMWUyM0lxTjI3RHgrUApMMEZvWEZ6
bVNpY01MRUc0ZWo0UXZqVWVIaDRlSGw4WWljRVM3b3BXQmhPdGE2TU9saGpidGFDb2NGcUJ6UXBs
R3ZKZk1mOGJzaHlOCjZVZDlBa0N6Ykh4WGsvclJ5RGFJNTFXcU9VSFFudDhkbmhzZE5VWngyWE1H
eWowMFFHb255ejVrdktJVEtqUVlqaUQxY0RlZGNkOXYKc3d4QlJudmhIR2Q1ZUhoNGZGa0VEeFlG
MWlweFY0VzMzZHJiRy84Q2ZmVXZ1ZDBWWGNVamUyck9ZZjJvWDRXeWpZUW1zMlJrQmc3bwpSeU9R
Y1FnKzdtZlpkZ0pQZDBJVk1tNFluYmNzUVpnQXFmdmFLeGV2RHk5QmFKZDcyQUdwOVN3SE9rR3pl
SGg0ZUhoOGZDd0txb0tmClhia3I5VmZsOVJveStxcXdaSzNKa3BWb0xTV3g4c0YxandEWTBZOUdj
TXhoL1FqdExBREFYQ2xmZVlYbGFOTUpPMzZ5a1N3blZLb1cKV3RKT2FNTEhtYTR1SWVNY1NOM1ZY
bXZkZnNrU0JBaXRkZUY4UUNIajJNVjFYN3lIaDRmSEI4ZVNpQ3ZkNEJtQ3BUYlFhbVV3aDJxaQor
TWY4YnlNVXlyOVE1MTA1TGVZZVdxb2hweEdkWlcvbDNaUlVONENXOW56eHA3TE02a2Nqa0hHak1j
MkExS1lnZU5uaUFFT0R6VjNjCnFTeVhRT0ZDZXpYUUVIVVY5ZEI4QURNWDE1emp0SmFIaDRmSDU4
VWk0aUJXWnFXdmd1RmR5YTEvWmwzaHY3U2lrTEwxaG14L0pJTzMKK0Y4bzhabDVYeFJWek9wSGcy
NGJKUVBxK3dlM2hyMWRXM1JyMkp2YUJ0RUFvQTBTd3RXZE1HODVha1BHSFV4emFBZkEvSE1OZFBV
TQpaQnk4dURzNEp0ZGV4eFlIUERVZmNGckx3OFBENHpOaUVYUWxjS3JZbEJEUjlxNDFTQzJudFNH
dUtsVFdQL25EWFZ0MGE5aWJJZ0RzCitjMHNwMnNRdFBTakFWKzgwWmdPNmtkOVFSQTduMnNZWVJ4
Ymd0QmlkQnBaTnU5d2ZIRkFyeFBTK2VOZGZXNEp3djQyaUZzb3ZIT0gKVDg0SHlJR1doNGVIeDVP
eFJLK1ZyaDhFVm16YzdzRjZ4YUV5dThpQ2Naa2g2YTZGVzJpbGhuZk9sbkVkbXByUGxPS2NWNm5h
US9LcwpTbVV4Q2xCdWd4Z2g0NngrdEFjWngvMWtBd2pqMmlVSXJXMFE1LzFrcDZId3dTVUlpVzZj
blEvMHRrSGNlTTdPTDBHb2RJSm05UER3CjhQQzROOElxUWc0d3l4QlV4dDRPUlBobGxoUCs0d3hw
L1dQOE15WjNNYndqMUIyTkd4R2VWNmxRWjBHNnZNc29qdGtJZ21qekx2S0gKMVN4YkZxVGNCbkcr
RTRBR1J0bXdJRmRhanNiS2Nka3NIYTRGMEcwUTI5M2VnWTl0eUppeURGemNhVEIzSVZJbmxOc2du
cGdQekVKaApnVmtPdGp3OFBEenVpVkFIeTRpRFNsOHBxSkp0Y3lKbFpTeFpkZ21oT04veGJ5TWRy
c0dmQkFDMHp2aGd5c0d5eFlKTWlHaTFZVytHCkJUbHFiQUtSN2dDNFAzQTJzK3l4SUJtbU9XVTVH
Z1dwdTlwcnRSTlE2ZlpSaERHeUJHSEFUemFTWlFZS2owSkdBQ2hWMUxQekFjM1MKdnJnV3pEbXQ1
ZUhoNGZIK1dMVGtWWVcrU3JYZG9lVkcrekRMRWxxS3J2Nnh6SjZqVXJQdlVKbXFRWkJURGtlTlRY
c3NpQjMySm1zcApWZlFqVFBuaWJaWTNkVUs1Qk9Ha1N0V0R3cW1kVTc3NENtUThpdFNIY016Z3hi
V0s4RVFubkY0Y2NOMTh3SDN4SGg0ZUhtK0lXS2FCCndZbStza3NJdFY0RHNoY0NzK2lmbUxlTTZZ
cFc0Tis2L2tPQVgvalgwSSs2RHBVbUFkQWFYQzh3Tm8wQ093eXlJQ05TM2E0dnZwWUYKTzRQckVT
MXNnQVhac3h4MWx5QTBMeTRHZlBFMTdmV3dpRGFDWXdZdjd1d1NoT2JGM1psMU5DSGpKSHpzWDFD
bnRUdzhQRHl1aXdWRQpMTHNOY2xZUWl5TGtNa0poM0lJd1d0MHB2TkNLN2RibnZvTFlsQnNsREVo
MWwyOUljdW5lZktmYzl3VUs3TEVneVJjL0pRamE4K2VOClRZZEZ0SmxPR0xZY0Rld0FlTjYxdHJY
M2NlcU5rMGk5MHRXajg0SDZyS01PR1M5Y0hHRG1BOW9xRHc4UEQ0OFRzVENIeXVRQUV0S0sKeG5h
bHJDS29Ja05sVWZDNTY3ckNUZWwyM1JDYVY4WTRqbWt6T3JQNjBRRENtQ1VBNXJJVXlHbEd6UWxz
eG13blRHYXhOTmdGU3hCYQo3dnNLN3pMVzFVaSsrTTBTaEpHTE81UWxubk9tRTlEcUJLUk9PRG9m
YU04NnJvUENxYU5xU0QybTl2RHc4UENZaXdWeHNzb01aa0Q5CjZBeGVtZGxLaE9yQmlzb2dCR1BG
SllSaE84SUF6bXhsTEo0ZFhDdU1UZy9UVk5mdWpZejkxeTJNdDhNZTJwVERRZmM5R3lTMG94OU4K
UThZNVFYQU1MYWw2dGJrMDcrdUVjY3RSZitYZDNDMDBKZ2llWG9JQWdKa3AwVnFYemdkcXhyc3FI
SFNrNWVIaDRURWVDeWdnS1FBeQpGQVJPaXlIUDZyQ2lVRnp0aXJUaVFhRzRXT1ZDVWg3cm4xUjRQ
eWRrWU0raE1vMlc1dlVqQStZNnR1ajZzTGZIdFZRaFl4SUVCUW0xCmZQSEh3ZHlzbjJ3a3krekZI
VEUyNlRzRGhTVjhXcXJiSW96Qml6czBIMGpYcThoNHNoTzQyd252V1lMUXU0WGNGKy9oNGVHeEZ3
dXoKY2xqQ1lvRkFISjY1QVd5QkNHSHVyRmlLcGRpVmJEZ29vaUd0c2tlaFlpekdnSDBLWFJhazYx
Q1pzaHhORVFEeG5CR2RaVm8vNmc1NwpXeGJrSFRzQXp1bEhJNUN4MyswRFhWMUJTelVBYW4zeGxZ
OXdkU2RNemdmR0x1N1orVUNZZGNST1FLT2ozajBmY0ZyTHc4UERveEVMCkVIRVZoNGNyQTBCd0FM
RTV6d2lJNGNkb3pBcXJDSU00YU0zdldxWWhia1RZSFZ5bldCQjcvdVNHSkRpcFVvMFFBTk1xVmN2
N01xTWYKcmFPV0l3dGVwL1NqRVRCWDc0UXB5OUVteStERnpYenhBMUM0ZHBzTnJOMGJnSXo3OEhG
cVBoQmZkeTd1OFU2NGVqN2d0SmFIaDRlSAppWVVUamdyUGJVNHdDaEZtc1I0aFFXT3NmeEgzaC83
SHpHTEQraGRKckNnVU5taUdscEF4clZMdFZEb29HWkd4cWZtK3NhblB1OHhrCnFZQzVhVFBRd0Rh
SWgvV2pEbVE4QjFLM1hXMDdhb3ppc3VjTWJJUFlBS25WTEtPUThVS2t2ajFuZmo2Z3Z2ano4NEVK
eUdndm5BTXQKRHc4UGoyQnlKekN2NHJ1UzRTbFkzRU1RZ1lOY0tETldOa2dyakdsTWEzSmxCUktM
QldDaGp6Q21DQUE1WjQvUjBTeG5wdVpOVjhydQpzSGNteTNtVlNzZ015NEwwdW4xRXF0dDI5UkI4
M05WZTI1YWppVTZvUXNaTnVZZFpQOWtJV3ByMWsvVzFWLzBXeUoxd2RBbEN1OGhjCkY2UVdXYzUw
Z21ieDhQRHcrTWxZQkRVUkNNUUphUVdvQlQyQ2dLdkNJNXF0bmhnZXlvWUp3eG9ONy9GZlp4QzZl
bUc4bVk3SEhRQ3IKbE1QSkxPWjFZOWlidHh3eGpRMmNVMWtxblRDa0g0MUF4bnEzbjhzaThPSVNL
S3lkSUJUc0xGSWZnSXduUU9ySThzUHJsaUFnMGxyVApTSDBBTXJvdjNzUER3Nk1TQzRpQzRDZEFp
d1FwV2NJcS9Md2FZMVlZT0ZaQUZjVUl0TmdvakNDU0F3em0xK3RWMFpqNlQvTkJOUWZWCm9TNmJ5
azl0Z3hqUGFTRWh6WGpNZDFVVDJvN29SNzBzQ2ErUUVSQVBxVlFORURDQ01NYTdldnJpWnVjMHRO
ZDZKOWlQY3dUTTFaSFEKcWZtQUZRUXZnTUpaVjJ2M2hzd0JTOVd1MFJISU9ERWZpT2VRMDFvZUho
NC9FVXZBUDdFb0F3UUtSZGdrazI1bHVRQUFjZnZtK0NlQQpVUmdCZVhTdkpkWUNVZGoxdVdLSTZU
ek4renBMbXdXcFRzM1JML2R3bGVWb25BRG9hMkg3QkZWckdHc1BleFNhMEdGMGRyUEk2eXN0ClI0
TVhkeXJMenNVOXVBTWdBTFRSdytuNXdNREYzY0V4dWZZNnRqamdudm5BRmpJNnJlWGg0ZkYzWXdu
L1I0S2lFaVNpV0I5TEN6Y0EKcVdKV2VKQ0xNU3VjQU5RVXhzUjVtUkFBQnpDL1huVGRqaDk5eWlG
bFlmSEJiQndxT2pXdkVBQTdVL041WTVPOGJnK2NGM2JDUmo4YQo4TVVyWk5SM1BxNVN0YlBVUHRk
QVZ5dGtySFYxbjNlUmk5VmdkQnFYQXdrSmpXUG9NNTB3aDlUdldvM2I2L1pqOHdIRXYvTHc4UEQ0
ClE3R0VNY2FzQ2dSWWpzUWZEZmFTcDJUYVlJZXFDcU01MGcraVZaQVdnYzVaanBwUC9PYkF1VjE0
bFFhaElRTGdrSnBUWTBRT3FsVGIKTEYzZUpYdUhEZGRTTEE1SWtQR0FmclRMdGV4ZDNGT1dvMTFN
czhmb1ZMSWNrT3FPUXVHNXJpN21BOGVYSUhRM1h6ZnpnU01ZdWtQdQptdGVhMGNQRHcrUDdZMkY1
UUF2U3lpeFVTUnMwUnkxc1VvVlJUeW9WeHRFZ3BiV09XbzRxVC93NUFpQmF3cWNKZ0hTT3RyUE5n
bVNZCjVsckxVVDJqL0dHUjVYMmRnTjJ1bnIyNDE1WGpZdE43SGE0RjBHMFFLeWh3SHo2T1hORDJ4
VDIrQkVHN2Q2QVRkclhYY3RaeFlqNHcKRG9YdEhSN1RlWGg0ZUh4bExBR0ZHRzB3REFmTXNGQ0xB
bzJWOEJKUmhzWENjM2V0S0l3SFFwQlc2WXRQVDNEVVdaRFcxUHlRa0FGZwp6aGVmc2pUQm5IMU5N
L3BSQnpJT3c4ZEp0QlFFUkQ2bVV2VzZ1dC90TXpqRzNnbHpGM2V1RXpDSjFPK1pEMnpRMHRqbm9x
eUg5KzlxClFGWFVtK1lEdEptdWtOTmFIaDRlM3hlbVRBTUFZb09Ld2tQUFZMOEt6MHpyWGljQUpG
WXRqazlCcXpBeXl3QnhLQXBmdkQ3QlI4eEEKcDlTYzlCb0R2dmpoR2dTZGpNT0Q2eGdMWW9lOXFS
b0VCcnlhZDhDTUx4N3Y3NFFNTWs3Q3g2RXNVRFlvdFhQUUY3OFBHZHVZNXNSOApZT3ppenU1UFVD
NUJHTzJFMDBzUXZOeURoNGZIdDhjU1VGSHlzNGVubHhVTGRZQk54aXdTWTVZQ3Fld1VFSWloMDA3
N1BEd010bkphCmE5OFhQeTlrNUxQdHpaQldkYWdNYTBibHNIZkkyRlNBdVZuOWFLd1R1dnJScmkr
K20rVWlLSnhCeGpuNE9OYlZSYmZuN3lCM0FqcFoKRG5UQ0tXUFQ0TVc5YkQ3UW5IVnNMMGM1SDlo
bkhMM2NnNGVIeDkrSXhiclhFWkdWdXRmakFVUnRNRHpRRE9jVm43cGdyRlpoQkJjSwpZd3A5SnA2
anRXSkRDTlNUNmxCL2d0Zk95U21Ia2FuNTBJWWtGYkx0SW1QVGU5ejNOTWFDR1AxSWZmRnRRWENI
YkpzeU5oRStiZ2xDCnhSZGZadEYzUGowZnFFREdBMGo5c3ZsQU9ldm9nYmwzekFla3E1bGpMM3A0
ZUhoOFRDejZpcUVvaXVWSTRLZmlrZHk5RG9oUEsxTVkKazA4ci9GMFRSMTJBdEVEU25wUEdwczA3
REt0VWJVYW5xeDhOY0MxZHlEZ0tIMmV5Qk14NFN5ZWNzaHlkQUtuN1dZNGpkWVJwUlFVeQpqc0hI
d2ZuQStVN0FRQ2RVZ2QzSUJUVysrT3ZuQS8xdmdlMUdEdzhQancrSWhSVW9oU0N3c2JoVE9MSXFp
b3BHS3kySUZSK2Y0VWVPCkQxbUF4eDN1OW9GNGdZQ0lPcTNWSHVxTTNEQWwxZlVZblY1R0hBQnpZ
eXlJSFpBbXM2VFgxKzBBdU1sb08rSGdFb1F4aW1zSXBHNnoKb0N3UE1ZM1VCenBoMW5MVVgzazND
WVc3Z21Edld6RExhekt6dE9qUytVQzFFN1pJWGJONGVIaDRQQmNMRUdGVThxckxFWlR1ZGNWZQpL
STZFcDJQQVIyTE1pZ3JqVkd2MG1YZzlyZFgxd1p4WUdGOGhBRm9PbFVOWkFscWExNC8ySVdNNTdF
MUxkVDIwRkpvWnBHYjV3NTZJCmRsMG45RlNxdVZLY3A3TUFoU1g4ak9WbzR6azdDRklyV2VUMWU1
WWdsSjF3elJLRW1mbUErK0k5UER5ZWlGQm9kRFdZS1R4MTVRZ2oKakpUUmlCV1BDTkpLY21ENE1R
TkdmQUltMmVmaEJiUldWdTZoTy9mdEQrSEk5WWdXQzlKeXFJd1JBSnNzb3dUQURKaHJERWluMUJ4
OQo1MzFmL0R4YTJsT3Bqa0RHZnJkM3U3cHlEZ3hleVpHUTNBa1hkTUpacEQ0bUNGNEFoY3NaU05Z
SmpXL0IrU1VJT3lEVmFTMFBENDhiClkyRWtiQldyaGdLUUtaOXhyME1lVTFrNUxCWW52SjRrbXVO
bFRkUm40Z204cHVVZXdnUFhQSXVuQ0lDNnpqSTJOVWVkMXRvanBZYUcKdEVuSVdNKzR1M2F2M2xG
QWIwamJESHRUMnlCYWlEbWpINDFBeGtPZDBMNGNVMGo5TFRzQTdpUDFuZm5BUmJ3bUYrOFEvN0RW
Q2FQegpnWU5MRUpxUTBXa3REdytQTjBlVUNMTnFXQUVqWmU1MVpOczVod2ZzdW9valN5YWxLeHVG
RWJ4ZTNOWUxrSllSRUxHdXM5c2dwblBHCkNZQ05rTkcwaE5kVzNoMnhITTBSQU1NcVZRL016ZnJK
UnJaQlRKUlkrUTdYV0k1R0xtNXo3Wjd0S0wxWUUwZzlkTUllbzVQdWhKR0wKZTIwbkRDSDE3VG5U
SUhWZzFqSHd1V1lZeHpvYzlQRHc4TGc2bGdTYklpcUtSUnFFcmpMWUt6eVFwR0tXVENDeDNlQTUx
c09pVTFDbwpFL2FCZUk3V0NtK3hvYlc2T0dhS0FKQnoyc096MEdIQ0JBQUFJQUJKUkVGVXFYUndk
bXArM0hKMEpzdDVsU3J2aEcyM3ozVjFDekphCnZESnljZXZhYXdNeVh0QUptM0lQc3hkM0JETENJ
cUdKTEVPUThmaDhvTDBONHZCOFlBSXkxanBCczNoNGVIaGNGRXVBUVpsN1BZcHAKdGUyY09md0lF
bVZRVGdoL3NocjVrQTV1bERNWitreThoTmFhdEJ6MW51WlRhQWx4QjhEeWlYOUZGZ0NLTU41aE9X
b01uRk5aV3AwdwpwQitOUU1iWml6dUZsbzZxVkRYdEZVQlZSWjJYNmk2ZEQ5eTdCQUd4M01Oejh3
RVhFRDA4UEU3SFlyM3FRQ0N0Y3E5Nk1tYVpZMUFCCmtSRVJHZ1R0TUFoV0s5UjNmbXRja2tvK1Yy
c2J4RFlCZ0FaQk5hRVpaVlA1cVcwUTR6bVZMSWYxbzg0Z1pEdGt5azgya2dWa0JNUWoKV2Jab2FS
dytqbmYxOU1WdG82VzlUa2dmNTB3blhEb2ZhREZBQjdQVXV6cGtEdWl0ZG8zdW5BOTRlSGg0ekVj
b05Fb1JFbG5PaVdSTApRWWtJUHZTSU9MZHNpYXkwNVE0b2loN3BEYzBidlRrdVNGWFpCckg3TkQr
cjVsVDBJelRLUFF5anBUN2xjTXpZZEZnLzZ0cWlVV05OCk9DS01LVjk4RlFtTmpQMVRuV0Q5WkJj
dFFhaXN2TE9YWm1vSHdBekh6Q0QxMmZuQXdNVWRtQS9jMEFtWHpBZWMxdkx3OEppSnhZQWsKbVNq
V3QzTzJGQlhsSjlpdERNTUppZUNDSEVqeEJOSTZrMDBGUkl4dGd5aFAvQmtDb0t0U3RSMHE2RnFP
dXNQZUhBRVFzalFHemxOZwpyamZzVFcyRG1DN0hGZ2tkZDYzdFFlRkRscU5OVi9lN1BiNURpOUhw
b2FWRFN4Q096UWRPTDBFWVFrNFRzdzRMMzhmdThGSElTRTVyCmVYaDQ3TWNTSjJVc2hGUUVTVlM2
MThPejFHem5IUHhaNWsvU0VhUVRZdFNCemlYd1p6Z3V3SFV6dnZncEFxRHloOFhBU1Z1SGlrN04K
UndtQWM1YWo4eXJWTmt1ZmNzaDdyMEFQcFM5ZVVFanEzbkg0dU1lMXBDeWJpM3VCNWVnNFVxOXNn
eGl6NkR0ZjRMNnZrVzJtOTQ0Zwo5Zm41UU9rbjI1OTFWT3h1MTNhQ1p2VHc4UENveFFKRXY1Umxx
QXIzT3BEVnZvcG41SUlpNTFYZlM0UmxvZzUwTG9BL28zRkZLbEphCjY1Q3g2WUtGOGRFUVBra0FW
TEowV1pBRVdTWUpnSDNJMk1pNHE3M1dGZ2RNZDBJZHpEVUZRY3hjM05rbENGMlZhcUNyRWIvQ2Vr
Ni8KMncvUEJ6WmsyMEdrdm9XTTNVNFl5MkpuSFRNWGQyOEpRZ21GNVRiTHZ3Vko4ZlR3OFBDUVdM
WmU5ZkpJS01vUVlBa1o5WEJ6SkR4cgptTzA1dmRoQld1VXZybzlMVWttUDViNzRKRkpzaDdxZHFm
a2hJUVBBc0MrK3lOSUVjMUNFY2JBNlFBOHlubGVwS3N2dmVWYWwydS9xCldyY1BjQzA5eUZnZ29j
N0ZuUVJ6cHhZSHZIayswRVpMamM4MWdkUXpYbE5WMUlQekFScWJEMnd2amROYUhoNGVlU3p4U2Jr
YVBxcHcKcjRmSDVHcVBBT0RpQ0ZsY0ZhZU9vNkNsQ1hUcUVPd3RjVUdxclMrK3dZTE1USnFid3g1
cUJNQ0lRMlZDRUd4U0R2dURhNjBHUVkwRgoyUXg3WTFMZEZqS2FkeENkZWlqTFJDZU02MGNkeUdo
WWtLR0xPNFZqekR2c1dzTHJTSDNiMWNOSXZkSFYxZmxBdWhNNkYvY2dtRXZkCnZ0OEo1K2NEZlY3
VGZmRWVIajhjUzc2ZGMrNWVEMmhCdG5NR1V0M1I0Z2hTeFN3QW93eFdOZXBBcHduQnJvOUxVdVcw
MXI0di9vaVEKMFdWQnFnNlZZYzJvSFBhbUNBQTVCNFI5RnVSc0p5VExVV1hnN1ByaWQ3UDBlWmNC
a0ZxQmpNUHdjYUtycFh1cnpLamNDZGhtdVhRSgp3ckg1d0hWTEVDeDRMVE5XWmgxemtQR0srUUE1
cmVYaDhYT3g2Rk80NGw0SE9ENm1BWWdQaTBpcEtWWVRrRllpamFDRXJCdnJXRFNCClRoMkN2U1V1
U0xYbml6OGtaQXdOYWRuVVhCMHE0d1RBbFphajh5cFZiZEVaVFVwMXhoYy9ZRGs2cUZKbEp4L29o
RGt3bDNmN1FKYkoKSFFDUFF1RnRSM1huQXpOUzNmSDVRSnAxN0lNNTdIYUNuRC92N21LT3Zlamg0
ZkduWXpGZTlmaWRaNnptRUlreEsyRU1qZ3dONjk4VQp6aTJoTHk2TE90RDVMcVNGaGk5K0dpMXQz
bUhZQjlObWREWUVBR1VqMlRuTDBTaDhuTWtTTU9PYk82RUFxYWVNVGNOUWVGeDJQSUhVCkViKy8y
NjdXZHg2OHVJMHNkY2c0ajlUZk9SOUlzdzRVV2M1QjRUWmtMRkdnNHl3UGp6OGRTd1FQVkhxcUFH
Qk5TQ3MrRTRvanVuUVEKOFcyQ2wrdDllK1RZNXhIdkhMMnhBWk9SQkVUVWFhMDJ3ckJrd0E0QllN
L3BNanExakZkYWpxNWFHRi96bkozZG0wL0pqRTFHMCsxSApseUFnZzRPRDhIRXd5L2xPd0VBblhE
TWZxQ0NoczhZbWNOa2hSK2NER3pIOTlIeWd2L3h3aTZFMWk0ZUh4OStLSmZkVUFTSVdtaU13CkJi
R3lJMEFnclVqL0xqNG4zazhwNFcvVFdsMm43UlVMNHpVTEtnNlY0MWs0SDFBYm53dWJZVzhDTXM3
cVIrVTVkU1NFalM5K3EreTgKZTRQQ09jdlJ5TVdkeWdLb0pYd1NxYmR4ekpYemdTeExzOXZQemdj
dzRJdWZ6REo1Y2QwWDcrSHhWMklCV1U5VktuOUZBcG4wQ1BJago0Y0hCdklydkN2R0pLcWZjRmp0
SXEvekZHeHR3SmxXaXRiSnRFTHR6MzU1K2xBMUlqZWw0TnV6cFZQN0lOb2pweFFBQk1BM21zazVJ
CjUxOWpiTnIzeGMrakphNE1uSHY2MFlBcWluYTM5N2lXMmprMUpCUUFLSzdyaERmTUIrU2RMNXdQ
NUVoSU80SGppOHEzNEo3NWdOTmEKSGg1ZkhndWduaXA3dkN6SFhtN256TFppVmppMG1qZEpmM2hu
TklGT0hZSzl0dzNIVTZWeUQrR0JPNjlTamVnczNRR3BSV3Z0cVRsRApRNW85WjRvQW1OU1BSbHpx
Ky9vUlJpQmpkZzZJcHZTakVjZzQyUW1YN3MzSGZjaFl6OUsrdUkydUhvQ01zeGYzMEh5ZzN3bHpZ
TzY2CitZRFRXaDRlWHhoTGNxOVR0RS9sQmJHMlJ5S0ZCU0JPSjFmamQ0OFYzZStFTlBXb04rQUpw
SFVpV3hJUU1iY05Za3ZJYUJJQUxTR2oKUW1hMGhqcnNEMm4ybkNrQ3dKNC9waDkxd053Vm5kQW0y
MnJkZnM1eU5Pd25HMEVZcW9vT0lYVnp6c3cyaVBLNm11VWRuVENFMURmbgp6TThIQm1ZZE1MZlo1
blBOSWZWdFZ5cys5dkR3K0lJSUVxR0lmd2lQUm9DekF1MUFjcThUSWo5VkxZZ1ZhNzVUeG1XRmVC
eHBaVzI0CkF2NGNhTU01V2l1OFJhSzFkbkRNTEFGQUE4TXp0aHVTeEJ0azJuSTBTd0FjeTFLaXBY
TXFsWFpDU1lNMTRlQUlqdWxDeGhtUU9tbzUKT2l5aXBhN2VWRHFvR08vT0wwR1loY0l6a0hGdVBt
QWhZM3NieEwyTGU0cmN0ZEJRc25oNGVIeHdMS2I4VlhoRXJJbWlpa2NLOXpybApGYk1FYVFHUUIx
KzF6T2k5a0tZZWRhQnpJd2E4SWxXaXRTN1lrT1NRa0lHNEErQTBBYkNQbHJZc2lCMzJaZ21BRWpM
TzZrZWJMSTFPCjJQRmR6WFpDZ3dXNXlISjBGQXBYVjlMSmwzMFdxUTlBUmlnUzJnT3BlWlkzZFVJ
Yk1pS1dlNWhCNmhQemdkZ2J2Yy9sQXFLSHgwZEcKS05QQVdpTlU1MFZWOTNxT25hZ3N5TUJxNTly
NXh0OElhV1lhY0NNR3ZDU1ZJSzNDRjc4MzkrMFFWRE1FZ0U3bE1iNE40azZXbmVXSApCOEhjQUF0
eU5BdklDSWhUV1NxWXJNMkNaSmhtcHFzM2tISHc0amJRMHBzNjRjeDhBSE5aVGtIaFhsZUh6UEhy
c09uMjBhN09JZVBSCitZQ0hoOGRueENKMXJNTFRrVUdDdGhScFlVM2lZUHlDNTV2aEVHa0ZMVDB5
bVA1R1NEUFpnQnN4NEFXcHR0c2dva0VBekV6TjI0TlEKUlQvQ3VDKytucVZQT1J3ek51VUV3RGpD
R09CYTdPdWtCMDM2NHJNc3AwUzA0VTU0OXhLRWNEZk9ac202K2p4U3I4NEhVTy8yUVJ3egoxUWtN
bXV5RURXUThnZFNkMXZMdytJeFlnRGpDNTRWR1dZK0VwMDE0eWhUYk9ZZTZvMkxNSXZtVGd6amhS
a2d6MDRBbmtOYVpiQ29nCllzNFhQME1BdEZRcVNyU1cvRjFsMk92Wm9sdkQzaHdCRUxMVUJzNEJo
REhWQ1MwLzJhNHZ2cGJsdUVxMUI0V0hXSkFxWkt4MWRiL2IKNVIwYWpFNmxKVGQxd2hta1BqY2Yw
UFBuWmgwWkhKeGJnckQvM2ZIdzhMZzlsdkFjVEpwZTRWN1hUUWFyMnpuSDZaWTlBb0J3RkdPRgor
QnlrbGJYaEV2Z3ozNFp6dEZaNGkvREFIWllZOWdpQXloK0dCczl0U0xKREFKeXpIUFVwaDJOWkxC
dTBvUno2WEV2cGk5OUN4bjM0Ck9HOXNNdGRvVGtTclFNWmRHbXkzcThkMkFIekRmR0RvRHQrSGpC
UHpnUTFJM1o5MUhPbUVtZm1BWnZUdzhMZ3JGaXYxYmRrblk4d1MKR0JXSC9IUUU2WWllY2szY0My
bDIydkE0clhVaVZjOFhQMFVBWk1ocGlnQUlFL2xKQWlETGduR0VNVTBBTkNGalRSRE1rTk9lOWxy
egp4VTkzd2lISU9IaHhaOTMzdFl5aDB3YTVsdmpRVU1qWXd5aEg1d1BtVHRBT2VYY256TXdIN0t6
ajBNV2QraXcxcEI0L29JZUh4eHRqCmdUaW9DazhWRithczNHUWxPMEFiN0NWSEZIdGRHemRDbXBr
RzNJZ0JMMGtsMTRqRlZsS0tGSnVoYmxZLzZnNnVRZ0JnM0Jldjd6QmgKT1pvZ0FNWWc0NnlmYkNS
TDZJemgyZ3B6WFYxRGdXTTRwcDJsbmZFUW1Bc3E2a1FuVE13SEttVGJWSlkySnR0a3JOL2hZMTBO
cUlyNgpodm1BSWR0YW5lQzBsb2ZITzBNWXJQQlZYYTNMQ2dBMWpzUS9qck84MWVBcXdvVU1WalZ1
aERTVERiZ1JBMTZRaW9nRkdzY25lSU1GCk9TZlZZU05rcE5jakRwVmhRUkFtNDR3V3hrWUc2ckFn
cUE5N1U4WW1BeG5OT3d6NDRnOTF3cmgrTkFJWkJ5L3VGSTR4NzlDeGhNOHQKUVhqSGZNRGNDZHVN
Rnl4QkdPaUVlK1lEN292MzhMZzBGb1M1ZE9hZ0FvQlFFSXZrU0ZvNUdMNkJIUDRJdGtSVzhzamZo
WHh1aERRegpEYmdSQTE2U3l0SmFyOWVlMithWWtORmxRYW9PbFNsQjBBNTdVMjZibElYMldSQTdJ
RTExUWc0WjZ3Tm4xeGMvSkFnZWhNSk55Sml6CklCMzRPTmJWZVpZYUVtcjU0a2ZCWEtQYno4NEgz
cjhFb1RYcjJIYjFQbVM4WWo3Z3RKYUh4eFd4RkpzTVdwY1ZtU09JODU5d2FEVTQKU3ZSRThJM0lx
b3pQUVZwbEcyNXMyUVdwOW56eHg0V01tYW41ekRhSXMvclJDR1E4cjFMbDUyUmdib0RpQ2krTUwz
NUNFQ3k2ZlFTawoxaUhqZTh4QWswaDlaZ2ZBUTFCNEJ6SWVRdXFkcnA2WkR6QlhPbUVQTWw0Nkg0
aTBGc2MzOFBEd21Jd2xBcXVOZ3lvL0FnZy9GZFdNCitGZXJHY3ZEODRFVmlIMldmdmRFRzc0WWFX
MTg4VWVOVFpnaUFLeVFNYkFENFB6VWZCOHlqc0hIdVN5SE9vR0hPK0d5dmZrYVNPaE0KRnRNSmg1
RTZnTFJvdVdrNUdybTRteXc5eUhnZXFWODVIOERKMWJqYkxFT1EwZHpoanJNOFBDWmpLZlp5QnFL
bktqdzlFZVZEZzdTSQpVUjZKZW1KUUM4M20wVEUrQytnODBZQ3NEVGRpd0V0U0tkSnEwVnF0WVcr
S0FMRG5kQm1kVFVZNjZydWFJUURzK1ZOWnJsQ3BETjdhCmFtR1ZicC9vNmd6SERBcUNVMWsyWS8v
NUpRaVZUdWdpOVdOTEVHYWg4SzcyV3UrMHlmbkFSa3lmdmJqVjcwNmJjV3dBTlVkYUhoNGoKc2NU
dkNwdVZnL0dJOFZTRmgwcjRiVHdDQkZpVnpnRUFYdGR0amc4Rk9nKzE0Uy9SV3QxQnFEWnBQcnZ0
Q1RLSHlqSExVUk9UYlRKdQpCcVI1eURpckg1bHptbGxDTXdPVC9NWWxDRVA2MFhoTnN2MkxPd2VG
UVFPTEErWjR6Y0RUWERNZklPd3RQOFJjSjlRZ0l6RGdpNS9NCmd2UmRHN200N292MzhHaEhLRFJh
ZXFxUWU2b0NpakxuaURNclBqYkRiQ3JXT1RLRVdCbWZDM1FlYjhDTlhYTkpLa0ZhNVRhSWFlNkwK
Z2FmNWR0anJUY2V6WVUrbjhsUGJJRzdRVXBjQUdORlo5aXhIVXl6SUFGcmE4OFVmeWRJZW50c0k0
NGpsYUl4ckdjaGlYamRVMUhrdwpkeUZTMzJaNUF4UTJuUUQ1T21BT3FXOHZ4K241Z0llSGg0bkZy
QXlzZTZyWWpzS3luWE02a0hhSm5vc1BCVHBQTktCc3c0MHR1eUJWCnNRMGl4cC9tVS83eDNvRFVv
clgyMUp5aEljMmVNMFVBN0toVTdXR3ZQWXp0NjBmb1E4Yks1ZWdPbkZkMXdvMUxFQTd0QUZqN1hI
TkkKdlRvZmlKaDQ3T0pPWmJsd2NVQURaNStaRHppdDVlRUJJRWlFaGN1S2pLY0tnSHpseSsyYzdZ
YlBoQWk4RHRUQWF1S011K0x4QnRnMgpQSTYwem1TemJxMlpiUkIzaFl6ZWNONWtkUG9JQS90RG1q
MW5pZ0N3NTQvcFI1dU91cW9UOXBjZ25GU3BocUJ3UFV1anEyMUhHWXlDCmRyZVhsMmFIMFNtek5D
N3VNZC9Wd0h6Z3FMdEwzM2tVUGg1ZmpUdmo3cXFnUUowUGtBTXRqNStPSlRtb3ROeEM3cWxLeUNw
OGc3TFMKb3dRQWRvTm5BdEJUQ2Z0eEk2TDQ5QVprYmJnWEExN1FDVFBiSU1ZSDl4Z0JZSi80KzhO
enVTR0pqdmRIbDZ5UEV3REhzcFJvQ1dadwpuVkdwYkNmRXhRRmJ5RGdoMVExQnhvbUxTK0NwVGpp
TDFGdmJJTTc3eVM2YUQ0eDE5U1h6Z2QxdEVPc1hkNkFUN0RtOVR0Q01IaDQvCkZrdjRQeWwyUlFq
R0dvRmJFVUp4QUZhd3hVaTVja1JLa2RwNXl5R3c5YUZBNTZFMlBFNXJuVWhGU212TldJNE82MGMx
QWtBdGhaTmoKUmc4dGJWaVF5ckEzU3dDVWtQR0VTdFh0aEVOK3NoSElPT3NuRzRHTUoxU3FyZllL
VkZYVTQ1YWoyaEtFb1lzN0IrYXVuQS9Jck9NZAo4NEV4OFQxL3VucDQvT0ZZcks1SFFLVWdsdTZs
WTdHWEhDRUkwb3Avc2ZudUtOZzZoN1R3YVVEbjhRYmMyRFdYcEpMN3F2VEYxK2UrCkdDQ29Kb1NN
TkpYSCtEYUluU3hiRm1SQ1B4cUJqTDBoN1dnV2tCRVFwN0prbUd5UEJja3d6U25MMGVERnJXSE45
M1ZDZlQ3UXd6U2IKaXp1VlpmNFcyb2VNSVhQOE9zUk91MkErZ05HTDY3U1d4Mi9FQWtRS3ltNHlp
TXlZRmFPMm5iT3RBaDkrNU9iOGhNeHhwN1d1YmNDTgpYWE5CcXNJWFh5VUFwaWZOblVHb291eGd3
QmMvSlFoV3N4eDAyN1NIdFBxdzErZGFVR3BNU1ErYTlNV25MRk5qLzdGT0dMMjRzKzc3CjBrK0dB
enNBWmwxOURxazN1dHErK1hTVzJVNDR2ampndXZtQSsrSTkvbUtFUXFQTWVuK3pjYS9IbVE0Wk8z
dkNYc3BaV1RUR2JYeVYKaFg2Wm5OYTZ0Z0ZQSUswejJYSmFhOThYUHk5azdPaEhYWWRLa3dEbzhp
NmpCRUNHZFN3QmNKa1pxT3lFbG42MDY0dXZaVG1zSDNXaAo4R25MVWJ1cnE5MHU3ekR1aTcraEV4
NWFnakF5NjZoQnhrdm5BL0xCUFR6K1FDd3lKYXNvZmJxL2M4QlI0UmtrOW5ZQWtkVEtpcEhPCnhq
bWtwUTNCcHdHZEp4cVF0ZUZlRUhwQkp3ejY0bWNKQUdvOHpSdkRIaTdma0dRSU1vNFNBSWVNVFhs
R0dtQkJqQzkrU2hDMDU4OGIKbTR4K05JZWhLNUR4L0JLRWxpLytrUHQrN0xQWVRqaU8xS3Z6Z1M3
WnRzblNtM1VjNzRTWitZQm05UEQ0NWxnQVNLV3JlRCtIdXFOeQpTSkJXaG9BSW13MmU0MVk1ZEF4
bkdhU0ZzN1RXWndHZGg5cndPSzExSWxYUEZ6OUZBS1R6SjFXcU5xTXpxeDhOSUl4WkFxQUZHYk1z
CmxoS2IwbzlNVjRjditMRk9tSWFNZ3hkM2l0ZlVkemJzemlSU0J4QVgrNVNRY1FJK2pxS2x0eXhC
NkhmN1VCWTc2OGdoNDlYemdSWlMKSnpzOGVIaDhUU3lKb1ZMdFQwWkpLbXRkUmNiSzhpU2lGbDVL
bmVpM3lRWEUwdzNJMm5CajExeVN5Z3FJUk5Tcy85NGQ5cVlJZ0JLTwp5QWZaOWNXbmQ1Z0RjN1A2
MFFoa1BLOVNWZmJtRzlvQkVDS2l6VUhHUVlxcmNzNlVJSGhtQ1VMQTNCUGJJQjVhZ25BS3BQYWg4
T2tsCkNBQlVSWjJhRDFTd1pqTkx0eE0waTRmSGw4UUNRcjZsSUFQWWJETEl4Z0lmNy9GUUlrdUN1
RGFNbnNVWmR0N2l0TmJwTm53eHJVVVUKV1ZYdVRKUVBUWnAzaEl6MGVzZWhjaVRMQVMxc0Z6SzJo
cjBocnFVQlROUHJNS2RDSzh0Qnl4SG1PbUUveStERm5jSXg1aDJxbHZDaQpvMFpWMGZMU0hKd1BW
TkRTSm1PMTA2N3RoSDJrWHAwUE5HNkEvaTNrdm5pUGo0L0YyTnNCaUtlS0tDb0VxZzZHazZJbDNo
Nko1cTMrCnJYN0pFQ3R2NGJUV3BRMjRzV3N1U1dWcExWUHVvZkVzbmhVeWRsbVFoa05sV0RNeXIy
Y0pnUDFockRrZ0hRSnpHeFprenhjL25PVVEKRkI2RmpFMU1jOExZVkFPZ2hTOSsybmYxanZsQVFr
THZjZCtYbnl2TU9sSW5URlBJL1c0Zm13ODRyZVh4cVJFS2pWYVVQakc4a3dLYQpvaUNXRkg3WG9R
Yk1LL1p1OVF1RzJITkl5N2JoczRET0V3MG8yM0JqeXk3QjNGTHVJVHh3eC9XakVSd3pPalUvdmlI
SnFZWHhBd1RBCmJKYWlFeWIxbzNVVU12WjVseTVJYllLNW5VNDRaMndhdkxoVE93Qk96Z2VHSUtO
Mjc4QWRQam9mMEhPNklMWFJDWHZrN29YekFkTXEKRDQrUGlRVzJCQU1vQ29QbUVDZk9RSS9ZOGxl
OE9USWFaNGRZTXVtK2s5WjZ2QUZvWFlYdlFsb2JYL3g1eTlHRWROSm1kRW9DWUhacQp2ZzhaeCtE
allKWXpuYkN6T0tCZ1FjNm9WSE9DWU8zaU5yWFhTa2UxTVVvTHh3eVVleGk4dUNiTFBtUzhvaE1x
OHdFY213L2c2R3JjCjZyclhIbVEwNTJkNHpnVkVqdytJSmQ2R292VEZpUDUySlBCRkVVWTFDbUts
Y3c3RUJUaER2MHhPYTUxdVFOYUdHekhnSmFuU1pLQkIKYTdXR3ZTa0N3SjdUWTNRMkJJQU1TSmRZ
am9hR3Zha3NNbXdQc1R1N1dUSXlvOW50RTExZGc0eURGM2N2eTdZVExscUNzR0YwM3JJRQpZWFkr
ME5WZWVlUU9iOFBIZEU2NzNNUE1mR0NYQzB5bjVmMFcrb0VjYUhrOEZvdFYrb0F3UUFuU0lnQWtU
cXhFVWZFS3hWNlVIYm1nClFXZHhodjAydVMvK2RCditFcTNWOUYxZFhCMGdaY0YyQjhBaC9haDZ6
aDRCc0JuMjVpMUhoL1dqRGpBRmdQQ0l1YUlUQ2pDM2YzSDMKVktwdGxzTXFWUnN0YVNjMDRlTk1W
NWVROFlMNVFLc1RHdmZlb1U0QTBOZ0dzWEZ4aHlFakM5SmliYnk4WnJuMDhVZDJ1T1Z4Wnl3eQps
bVdlS2pHOHA5S2pGQ2Y1YTZyVkhyNnRzUXc4QVBCNkpTMTd3UkNyamZsT0FSR1hkTUk3R25CajEx
eVNTcEJXdVEyaWVSejNoK2NaCk5TY05lMHFKcGFuODFEYUliYlJVeTlqVGowWndqR1ZFNWhjSERB
aUNGUUh4VkJieitqTExrWG5kdTdoVFdTNWNIS0RuekY3Y3FTeVgKemdjMnFpams2NEFMNWdNUlAw
VWFEMlRSbFh4TSs1VWhWdURsUU12ai9iRkFsVDRsckxCeFdTVWxNTjZWdGhocC9QcnNyaVE4R2hj
TQpzZmJMOU9XMDF1TU5LTnR3WThzdXdkelpOb2dZZTVxUDZDdzlBaUNibXFOZjdxSHBTakd6ODdI
QmRRWXQ3UTJjN1dHdnpiWHM2MGZZCkFhazF6MWw2a1dlOG9oUGVzd1NoZDNFUDdRQ1lmNjZCcnA2
QmpJTVhkM2crTU5BSmZHSSs4S0lreThhVEJWMEprT0x3L1NObWFXMzQKWkhGWWNLRGw4YjVZY3Uw
dkw5bWVZNi80cldLckRZS3hKdGZMKysvVlM0WlllWXV2cExVZWJ3QmFWK0VKcEhVbW0zVnJqV3lE
V0VWTApJd1JBUzZWaVdidTNjYWhnbytic0QybjJuQWtDSUdYc1pybXFFemI2MFlBdjNtaE1RK3pP
TEJRdUwwM2xIY1lRUmdVT0RtQ2FGcVBUCnlMSjVoK09MQTNxZGtNNGY3K3B6U3hDT3JNWUZPQ0F6
QlZXRzBNcllMQkFuUEZkSFdpNGdlbHdlUy9oNkIwK1ZnaVkyZm5ZcXNaZk0KU2xhRHZjTDMvc1lC
LzRJaDloelNzbTM0TEtEelJBT3lOdHlMQVMvQjNFUGJJQlpUYyt3VEFQYjg1c0JaVzNnbGc5QVFB
WEJJelNtSAp2YWtzZThhbTVuQmV6Mkl4U3JrNFFDSGpySDYwQmFsZFFkQm1MTElNSUl4cmx5QzB0
a0djOTVPZGhzSUhseUFrdW5GMlB0RGRmSjIzCkdRVS9vWGlCZFEyZml4Q3lFUFJGL1BPSXRBaUtz
WFJFU0lPRGg4ZVpXTXgrZ3VIKzUrME9nOFozSlF3V2gyOXdYb3owb1RnN3hOb3YKMDVjTGlKL1Fo
c2RwclJPcFNHbXR5UTFKZXNQZUhBRVFmZkhUQkVBNngyWkJuUVhwOGk2ak9HWWpDS0lDSDBkVXFu
ZDBBbmE3K2p4SQozV2F4MVEzR29IQzdxd0hvTm9qdGJ1L0F4elprbkpvUFRJTzVDNUg2ZHRaUmRE
c1gwT3BGOXZyR2Q2WWdGRVlTUzZFVkM1NGpDanhXClFscnBVZUpJeStOTUxQSWRYSkhRUlRqQ0xG
UEFjRkRWUW9yWXk1cmlrNDZJRHhqamo3ZEJ2MC9mS1NEaWs2NUNIV21WdjNoakE4NmsKRXFSVit1
STNlS3MzTlkrajF5d0JRSVlKd0p3dnZzelNZa0VtUkxRUnlEZ01IeWV5Z0VoM0FPd096NjBzdmE3
dWQvdFFWMjhnNCt6RgpKY0pFSjJBU3FROUF4bGsvMlVpV0dTZzhDaGtCb0ZSUnc1dGIxaW9PUkFJ
Y2hhWVNFZ3NrTElLQlZncTJFRjhJclZVaXJmeXA0dUV4CkdFdm1zaUxFbFlNYnBGVXBSbXFpK1BF
djRBejc5WEphNjlvRzNOZzFGNlFxZlBFRkFYQlFQK29QZXlVU3dvQXZmcW9HUVU0NUhEVTIKN2JF
Z0ZtRk1lY2pzNi9RT21QSEY0LzJka0VIR1NmZzRsS1Z5Y1RIbGkrOUJ4a21rM29XTUNXSU9YVnly
Q0U5MFFtMXhRR1N0Q3BobApYa2pMQllxeGlvWnlSeEgwaGZ3M0FLODE0UzM3S0hHazVURWVvZEJv
VXZyaWJROUF0aDBFSUY4SzVhekNNV1BlYWlmNEhKeHhab2lWCnQzQmE2OUlHUElHMHptVExhYTE5
WC95OFhMS2pIM1VkS2swQ3dJNS9kdGk3d05nMEFSK1Bkc0lteTY0dnZwYkZTbmh6S2xVOVN3WVoK
NStEajhCS0U1c1cxeUtDWFpiWVRqc3dIRGk1Qk9EOGZFRDhWbUxrTHM1Z1kyai94YTRsRWNXVlVW
aDg5aFFkSGVtb3g3ZnlCeDYrSApNbGdJQkN0UWFIOXlJSHczNVBia3ZCaXBHTjU3OFRsai9QRTJu
RU5hK0tST2VMd0JXUnZ1QmFHWFlPNGhYL3dzQVZCUURydFMzZEVOClNkcCtzaEhJT01ydUhESTJ5
ZXNDQmZaWWtPU0xueElFN2ZuVHhxYmpJdHBNSnd3ajlZRWRBTSs3MXJiMlBzV1hCNUQ2YmxjUHpB
Y1kKcjFmQVZNek1MOFMrbllGWkpXQU5RbUY2TkxBOEw5ajhIUG9oOWtjYUZqdzhpbGowbGRuMkpz
d096SkVjYVprallGN2pMWmVjOER0eAo3MkM2MHdZWEVEK2hEWS9UV2lkU2tkQmE1eTFIQnhmR3R4
bWR3L3BSZTlnYm83anNPVE5aQ3VRMHZ6aGd0aE1tczFnRzZJSWxDUFVzCmVTZE1kVFdndnZncFFW
QXU3bENXZU02WlRrQ3JFNUE2WVdBK1FBQ3YvQXFOSmY3SC9DSkswR29XWnBIQ0xPekNMQUcxU0dj
NTB2TFkKeEFJaUl3VUNDR2dKWXN3U1lLVy9BNFRrQ25mZHFVSHFMK0FNL1ZhNWdIaTZBVmtiYnV5
YVMxSlpBWkdJQmpRaksrRmhSai9hbkpQaApFdXo2NG12NjBkRFlmMzV2dnBvZ2lDTGo2YjM1bE5G
cGZDNTdhYVloNHhqRk5XZHNZc1VFNWFWNVh5YzhOQjhZRWdUSGtQb3JmRnFECnEvNHh2MTZVb0pW
QlZ5OTVVTE5COHdxem9DUldXbFdBS0JxR0wzVzhXeUpyRmYrR29EQUxCUDJWSXkyUEVMYlFLRW14
cTNpZkFYR1QKUVVWYUlHUFZBaUJJTEY5RWVDVCtBczZ3M3lxbnRVNjM0WXRwTGVyUldpMGZ6QlFC
WU0rcFpRbi8zL2JGSDhreXF4K05RTVlXcHRuagpXcXFRTVFtQ2dvVFE4TVVmQjNPemZyS1JMTE1Y
ZDJRSlFxb2Vnc0lYWDRPUGs1RHh5dmxBdWw1RnhvRk9ZRWJDV0M4S1RVcGxIU0s2CjRnQ3RWZ2g5
bGNNZnFZYWxvRXFlQU5FRGdIdzFQUlJta1V5b0xKc1Z4MDA0b2VVQkFJczhrYkpOQnRXOUxrZkN0
RnhnUThSZXNrOGgKQUxxeXl1am40SXd6UTZ5OGhkTmFsemJneHE2NUpKV2x0VXk1aHpybE1LRlNZ
VHVNNVN5SURHbFZYL3lVNVdoS3BZcm5ERUhHSnFhWgpBM01aWkt4bnZHd0h3SkhQTlFjWis5MCsw
TlVWdEZRRG9OWVhYL2tJVjNmQzVIeGc3T0tXV1Y1RWtiNUMwQXBqUDc4UStLUm9mbCtGCklpVWtq
S2lkYi9HV3JjNlFlZDRMaVRBQktDWlFEck00dmlFaCs5SGpKMk9SRWd6eDlrbUVsaHdNMnc3cTdT
V2xSK1htUzhzUHI0L1AKR2VPUHQrRWMwc0luZGNMakRTamJjR1BMTHNIY1V1NUJac3c2dU00U0FK
TXNpRDEvY2tNU0NDTnlzbERXTmtzMTQxaVdXa2ZOU1hWQgpSUjNxYWd0ZXh3VEJPY3RSRjBOUDRw
Z3BwRzU5OFFOUXVIYWI5YlhYVWNpNER4L3JYYzFSSEJUNktuNVBFNGFUYjZ0QlYvRzF5b1ZBCkZB
Uk5hOFB3UjRpbXZoeGRFWWN2VWVqQU5HOGhLWjNGcG9ZV2hZWTRsZlc3c1FBQmE1dWRjQURrMnA4
Y0VxVEZDUE1oamsvcjcrQVMKcm1yRDR3TGk4VGFjaThjYmdOWlYrQzZrdGZIRm56WTJUYXRVTzVV
T1NrWmtaK0NzNEpnZHlIaGFwYXFBdVFzWEIyaEhYVmdvYXhvSwoxN05zdTlwMjFEeFMzeTMzME1w
WXp6SXR1VE1JQUFBZ0FFbEVRVlFLR2E5QTZzQ0w0b3RnZFZjMkMwcFFVYVNRUS90ZnIvajFYUVhn
CkNpQXJFVkNsWklNVXcwdGdDeHh3V096R2hMR3dwYkljWS8xbUxNVU9neWlRRnZFR2V5R1VmWmNJ
WDhEN0J0d2JCOU9kQmh4dmczN2IKbk5ZNjNZQ3NEVGRpd0V0U0tkS3EwRnBkaERGRkFNZzU3Y0hT
VkRvSVAzUjVsemt3dDhPQ3BNSDFUSmJ6S3BVd09xbXI4MjZmNitvVwpaSnk5dUhYdHRjVTRubCtD
c0NuM2NHR2hyTlRPU1Q5WlczdEZJTEdnb0NyOGwza05TT3NsR3lFdzhIclJxanlXL0xOVVZyUmJw
Y3VrCmJFTEVWUlFKWUNhaXNNbDAvSzg5SWhockM5bzhmakFXdlljMlNDdlNXdkdyRVd4YUdmWkNY
dmI5N3JoeE1OMXZ3K08wMXVNOThBbHQKK0V1MFZtc1F1bnBoZk1xQ3VBTmdsWEk0bWNXOGJpQ01l
Y3NSRisvUWdvOVRXU3FkTUNTaWpVREd3WXM3bFVWQTlpVlFXRHNCWWh5WgpST29Ea1BFRVNNMDc0
VVVVVE83aHYvbzFKUE1DQXBoZUwyTEJUeFpVeVhwYitSZFJtMEMyRUVrb0ZORXdIclJ5WVFWaldh
M1FTYXpmCmpDWFV0VEorZFhGWkllSDM2TExTdTI5VDlwM1hWYjRYejhUbjRJd3pIaDE1aTY4VUVQ
R3hWK0hHcnJra2xTQ3RjaHZFTktDMkJrNDAKQ0tvSnpRaGtmUEZUMnlER2MxcElTRE1lODEzVmhM
WlJGbVFVTWlhOFFrWkFQSktsZ3BhWWFBdytqbmYxOU1YTnptbG9yL1ZPbUVMcQpPNTF3MFh5QVpY
bGdISlpXZmhFS2xSQlE2bEhrVHJJOEZtY01WZ3h6aExPZlFrY2tFb3M1WWl6NTBmeFhNWllJaFI0
L0dWcG9sTVIwCmxjWUZGWjNORVJZc0ptc2tBc3VsNjFUMXpIYzN2QkdQNDR3TEdtQy9rRTVyWGR1
QUc3dm1Fc3lkYllPSXZZRnpSR2Rwc3lCMjJOTjMKUUwvY3cxV1dvM0hOcUsrRjdSTlVMY2pZeGpR
VW10QmhkSGF6eU9zTEZnZWtUaGk3dUZOWmRpN3V4RGFJOXB3SWJVZVIraUJrZkFtQwpzVEFySXJQ
NG1nRWl4b3NRUU5XTEtJeHdZc1pLWUNzaXJZeWcwbTh2UjA3THNGWVZqTFZGV3ZHOVBYNDNGaER4
dXFaeFBON1YyY3BBClRyTnFPV0xLdmdlTFBJanNTUEw0RUd2YjhNVU5VTERsdE5hMURYZ0NhWjNK
bHI2QVk5c2dWdEZTRGNjMGh2UE53Tm5kQnJGUWN4SmgKVU9OZHlzRjFTak9TMTIxMjU4Sk8ySWhv
QTc1NGhZejZ6b2RkYTUwc3RjODEwTlVLR1d0ZDNldjJkTEdFNE1SdUZuc25UR0hvMGJ1YQpHQnlR
VXRnblI3OXJGWmlGQUxPaVJMaVZDMVVyZkFVSWlnSnNEV0FzVlJaSk1nc0VsTjcwK0xsWVdNUmhr
aDBHcGRnVkVjQnJWc1dkCm91azkvYjJjVHZvZi9ZWEdodzZ4VHpUZ2VCdk9JUzE4VWljODNvQ3NE
ZmVDMEVzdzk5QTJpR2dPbG1ad2JXS2FobjVVM3daUmhyMGgKRnVTMDVTaFNEZE9XbzJhV1pzYk5P
Mnk0bG1KeFFJS01FMUxkUG1RRWhpN3VNZC9WWGlma0Y3ZTlPS0NTWmZiaXprRmhEcXNJSTRtVgpE
VUdoR1MraWxUbld3Ykl3QzdFK0ZndXVTcURLSWkyaUhZekZEQVdkNFhjRUo3RThiRVNKVUN4VkpL
WXJRVnBoVmhCTlZ3S3RBaDViClV5SFN5aTFVRzBrK2RJaDlxQTB1SUg1Q0d4Nm50VTZrR3ZERmo3
RWdHWEthc1J3aFdzSTFTNTkzNmVoSFBSYkVJb3lMTFVmMWpQS0gKUlpiM2RRSjJ1M3IyNGw1WGpv
dE43N1c3R29CdWcxaEJnZnZ3Y2VTQzVobWplQjVoVm1pQWxRdjFSZkJhclJGZFFVUkRmaEd4b09S
aQpPU0VvWWEvMDZTekdnbWpIUW1XRmMwaUV3cGhaMnVieG03R0VaM1M2YStTSkxiZWJzYlBIdVpr
Z3JmZzFvSjB5bzdYaDlIT0gyQ2NhCmNMd041aW85MDREVDhUbFhvWTYweWwrOHNRRm5VZ25TS24z
eGFiQkVuUVd4dzk2a1ZMZTFIQUdZODhXbkxFMHdaMThUcnJFY0RjUEgKU2JRVUJFUWUxOEpzbGw1
WDk3dDlCc2ZZTzJIdTRzNTFBaWFSK3V4OElPS2FRRDdKdHloOEhPRUpTT2lsUWl1TW5OWkwxbkNF
Ymx0WAoxaXBaOFJ0RjhwVmsvZnhBTUhHUi9JN2lPK2g2ZTVaMGJtLzNRS1BRS01jajBDTUFiRUdH
ZU4va3BVY0hvamFhZmM0USt3bHRjRnJyCnFUWTBHM0JqMTF5UXF2REY2MkE1WWdZYVkwSHNPYWdo
b1JGZi9KUWcyTWc0UElTM1daQVd3dGpsV25JY28rRFZ2TU9VTHg3djc0UU0KTWs3Q3g2RXNVTEl0
dFhQUUY3OFBHU3ZkL3JMZm1VSW96QWNxb3hVcXVsTFdTcXNwMExyaTlUSmZKWTZnVEYvSHI1VSti
QVZYUVV4cApVcDQwL0JRYUhpZ3ZqeCtOUldGVUJPeXIydGNOMGtwSGtGeFlDWHRoZWtUb0lxMzV0
N3NzUGdkbm5CbGk1UzJjMXJxMEFUZDJ6U1dwCmNscHIzeGMvU2pPa2MzTDFiWU1lcXI3NFljMm9I
R2dQR1pzS01IZEJkWURXeXJzV2V0ajF4WGV6WEFTRk04ZzRCeC9IdXJybzl2d2QKQm56eHM1MGdN
RWFGUW82V3FmVDFZVENGOVlNQWoyRXNiSGtzd3pESVc2Y1hMTTlhRlFvaG5lcjBsUWNnSHF5SXRa
T3BLa3JhVUhVUQpncjBhUmQ2UFJtTWsrZEFoOW9rR0hHL0RPYVNGVCtxRXh4dFF0dUhHbGwyQ3Vm
dSsrRVBHcG1uOUNPcUxIMkJCemtoMURiUjBYcVdxCkZhSG84UzRWSEFQamkyOExnanRrMjVTeGlm
RHVKUWpUSUxYaWl5K3pZSTlzWXc0akVJRkxOaXNDS1IybUFob0tEUnZnc2ZoRmlYVVMKaVpEVHp3
cnNFdGhTcVJHMlBxVENMTWRiUHh0TExIOFZmd3czWWFZV0F2SDJRN3dSRWM4eE45STF3MHh0Skxr
QVo1eUx4eHVBZXNkTQovYjJkazdtQWVMWU5YNHkwV3I3NEVSWWtPMmZ6RHNNcVZadlI2ZXBIQTF4
TEZ6S093c2VaTEFFejN0SUpoNVlnV0FibzFCS0VYcGJqClNCMFJqbXdoNHo1OHBCTGltRzhGUlJZ
dG9LRUl0bEJsc3pLTVpZYTc5TFlzRkpsK0Ewbit6M3d0RGJTaWRJcHRqOGR2eHBMdUJXR2sKd2cr
SUlDb2JrRlBaZDdscGlxb04xMFJqT1AyY1lmN3hCaHh2ZzRJdEZ4QlBOeUJydzQxZGMwbXFKQ0Np
VG11MWh6b2dqcXg5aXFzYwpYTHVNVGk4akRvQzVJUllrUXhpVFdkTHI2M1lBM0dTMG5YQndDY0lZ
eFRVRVVxdGsyN2xPd0VBbjFJQmRKSmxZV2Fzd2R4Q1ZrRmdvCnAzR01wZXNLemFKQ0t4RW1Pc0Y4
OFVqZ21CbEg0KytkdGZJSUVxRjF1TWN2MDVxUVZrRGtvWEJEUEJTd21OeCthVlhGTzZJMm5IN28K
RVB0UUc1elcrb1EyL0VGYXErdURPVlRscU1tQ3RIenhKMm9wRFF1Q0U1Q3hSQnZUVWwwUExZVm14
cWR3L01NenZxdnhUdGljTXlVSQo3bDNjdVhKY0tIenhEYVFlTndXa0RZTWxMMEpGQmxYNExNWmla
SDRzWWEwb2ZBa0laR2dGWmdGdFJJclpaR2hVdHhiSi80Vk9OMHZEClBINDhsa2hybW4xdjByYURV
cEhCYmpzSVcvWWQ0WHR3eS9CV0cwNC9kNGo5cmdZNHJmV21CdHpZTlpla1NyUldWdTdoaEVxRmhE
QjYKTEVqSEYyOWVqT0NZT1QvWkJKZzdMS0tOWk5uM3hjK2pKU1owUDljUnlOanY5bTVYVjg1QnVs
NEZBTFcrK0ZvbjZOUSs3dk1jcUN5dApIaVFZSzJBcHhWaU1rc0ZpWUYxTEVrdS9RZlNLb0lwaVhR
ajVycjFDdytXTEo3U1pRREhJTHp4K1BhVFFhTGhKQ3FRbGpGYUd0T1QyCkNSdnNtQVdJMExkNmU5
UkdzODhaWXA5cXd3VU5PSWUwOEVsWDRmRUdsRzI0c1dXWFlHNHA5N0FSRUtkVXFyb0JxTWU3MlBP
bnRrRVUKVkhGY3BSb1JCQ2ZjOTYyT0Fxb1lwUVVmSjhvOTVHVGJmcFk1eUhpb0U5cVhZd3FwczRH
TXhBSnJDQWdpbi82WVl5d1F2eExHUXM1ZwpnY095d1VSaXhmL3FYeWNpQzJLWko0VldMSituL3Yw
NThKM3orSHV4TU1NYXIrUk8xSHRNN2V3RUxkcGdrQlpGRGpiRnJTTmNGMm5kCjFJWmFmTTR3Znha
cDRWdHByY2NiZ05aVitDNmtaUVJFck92c05vanBIR3VMbnRTUG1wYncyc3E3STVhakhjZzQ2aWNy
cy9UQTNLeWYKYkdRYnhPUTVLOTloR01kTWxlT3FYZHlhOXRwMGQ4MGc5ZEFKa2RaQ1FsRjFqQlVI
clBBaFh3Q0RHRmdSNm9CeWdsbElwaXVyR0JJUQpGaGFHYjA4UUNrTURZdktFdE9MWGpPVC95dStl
eHcvSGdnQ1RZZ21HcEwxRmo1VjVNT2QwbFJCZDdiZStkWVJySlB0Nm9ITmRBNDYzCndXbXQ2eHFR
dGVIR2I4ZzFxV2EyUWJTRGEwc1FITkNQYXNPenFYU3dZVVNtUkxTbkxFZXpWcW9hRXJLZHNPMzJ1
YTV1UVVhRFhJY3UKYmwxN2JTOUJPTmdKQlA1blBWaUtzZlJlVDlQKzdLdXZIdlp3MGd0ZzQyMlBj
NGw0ZzZkdkNpV0tTNWtJWWRRVXp3SlNkTFNrdFNJbwpaSWRjdnhoTHR1OE5DTEx0WVBnSlFPQ3JG
TXlEb0VYZURSVzdFN2VPY0xWa0h6ckVQdFNHeDJtdHgzdmdFOXJ3TjJpdEdjdlJySDdVCjVWcmlE
b0E1YTNKTkZnQ0tNTjVoT2VxeE82TlpXcDB3NUNjYmdZeXpGM2NLTGMxRFlmTU9MNklYbHhncjZZ
YjJSaS9ZTEFPek9QbXgKb0NRV2N6UmpjUnJibEw3U054UFI5aFgxbXh4UW9hQWRpdDk2L0ZRcyty
eU5HendqM0pkRUtKRVdXSXU0SXh3OFVLUGgxaEd1bHV4egpoOWp2YXNBNVdzdXZRck1CTjNiTkph
a0VhYlcyUVJTODBxMUJVTk9QUm5CTTRCTGkrVlBiSU1aek9vTGd0SWkyUTRQdFVseDFvVzAvCkM4
Z0lpRWV5Yk5IU09Id2M3K3JwaTV1ZFk3T0VkZXNGeGlKQld2cGZFaUJsL2ltMFlvQmU1aUFDbFVC
eVM4c1hSRjVIaGlGZ1dtbWEKdm9CYzdOb3c0L0hERVF1TkNyQUNBdExLNzVRa0g4WmJpS0lIUGgw
NUVyZU9jTFZrbnpQRVB0V0dDeHJndE5iN0duQmoxMXlDdVRmYgpJSFlIemptcGJvc3dLdm9SR3VV
ZWh0RlNuM2M1Wm15cWZhNHhoREhnSWR0Z0dnSW1mZkZWSkRRQ0g2YzZ3ZnJKVGk1QmVNa25lVEZX
ClJWU3JnaXdBb0pjVWMxZlhscm03QTFuRndsMEJDSEtoU0lGUlk5UWZpWWlGeEVvTVZyRGVVNG0z
cXQ4aDU3RitNeFpCK3dCa0kwTG8KYmJLcUVLQklLeHJjNDUvVE5JVlZpODlCV2plMW9SYWZnek9j
MXZxNEJqeUJ0TTVrUzgrTnNXMFFaWERkNVZwR1ZhcnFOb2dXWWRTNApsaXJ2WWpETm5DRElCZStT
WlR3RjVucVlabW9ieEhRNXRram91R3R0RHdxZlg0SUFHYkpJM0ZlaG5RSzJDR0lXMUxzNGtKMkd4
RW84CkZnWHVLcm5kV1VveWhDME94U0FUU2F3bzh4QUpsVVZhQ0ZLbHcrTGJvNjMyK0xWWUFFQmNW
dnB3VmFRRnlHMWVGSG1YdjdpMnl1aXQKUTJ3ajJZY09zVTgwNEhnYnppRXRmRkluUE42QXJBMzNn
dEJMTVBlNEwzNUVFSnhRcVN3TG90c2dBamxpc0RybTVaWWpQaXZWalpmagpzcC9MZG9McGFwUytl
SWhMWGJ0M0h6NU9lY2pxRjNlZ0UvcGdMcGEvRWdtRkdLdThpSFFCcFZzMk9LVTRPcTZ5ZXptYXNZ
VEtVdFlxCm83SWlKMXVRV0pHdnNpb2hDWDdVVy8rNWg0ZkhwOFNTNzNzRHFjb0dJTUNvb3RBbzgy
cldVc0RlVHhmSHJTTmNMZG1IRHJFUHRjRUYKeEU5b3crTzAxb2xVUFYvOEZBdHlWS1VTUzNqSzBz
L1l6aktFTUlZb3JqbkkyTWk0cTczV0ZnZE1kOElNWk15TWQrY0taVzJ6Q0paQwpCRklFdkloWFdZ
WkZFZE96VUZrWmt5VDAxZGFlRldwaXBSOEZiQ1VTeTZBcllVbkowRmZ5dENzMnlYSDY2cGRqc1l5
VU9VNXBOK2VJCnZlcEYzbStJVzBlNFdyTFBIV0tmYU1EeE5weWp0ZndxTkJ0d1k5ZGNra3FRVnU2
TFY0OU9td1hKZVpjZHJxVjFqZ3FDd0xBdnZzalMKUkJoUWhIRitiNzVObHAxQ1dZZXloTTgwQlZK
M3U3clc3VDJLYXdBeXBpeE1PdnNuS21CV2ZFRmFVVDBKaFJRVndNM05HOWtFQWl1NgpZbVlLQXgz
THZScmdsQXFGSkZaMythK09pdG1NMGtrc2p3VlcreU1ZUTNzOHFBU1dhTm55RjNwUDNSaTNqbkMx
Wko4enhINUNHNXpXCmVxb056UWJjMkRVWHBOcjY0aHNzU0gvZC9pRENRSWFFSm56eEU0Smd5bmhV
Qzh2QW5LS0tIcVlaaytxMmtORzh3NEF2dnFxOTduWEMKcnA5c0JETHFPeU52VmZnL3dycUMwa2JP
SVNlOUlvOGwwRW9HdWNyU3d2eGZSVEZrRXY2Vm9rUExNbGlaVnFnanBCTlhIZ0NXK0UwMAorOTdJ
ZDFDMnk0bEJzclZ6K21OVFYvZnVZZVlacEdYeVBUN0U0dVpPZUZNRG5OWjZVd051N0pwTFV1VzAx
cjR2ZnBkcnFRemhoZ1haCmNpMVZYL3l3NWFqRU5CT0NvRUVNaExsNnBFYzZJWUs1T3NYVjljVmZ0
Z1NoaWM4cWtMSHM5aGNJekpBdEF3bVJHUWhYY0RXTlJJSloKOGVvcjBnck5aNGhXcUtES3ZsQVNT
eVZWVWgyd2lxdUFNQ1k2c3ZLUTBFS2o0YTRCcko4OVlxOWNEU1NVcFVmajRSaFBJYTJiVXRjKwo1
NGNPc1U4MDRIZ2J6aUV0ZkZJblBONkFzZzAzdHV3U3pOMzN4Ujh5TnMyTGFPcUwzeGZPWnYxa0ky
anB3a0paaWhTTnhqY28xUmxmCi9NVkxFQnBrMjI0bk1JczRHRXBkazhHbWhQK0FWZ2E5b2hvWTMr
UVY5VUdscitKdkU4d3EwQld6WnBBVHhOY2VUbU1LS21HOFR6TXoKVmlDeER0LytIbjhwRnIwYllu
MTJRQjZTRENueUh2L0hDTVZJOVpUcVVQamdNSE5yNmk3U3Vxa05tM2k4QVRoL0Zld0U4RHRwcmNj
YgpnTlpWK0M2azFmTEZUNk9selRzTVc0N2FqSTVWcnpiU1hnTTlOSEZNRFE2T3dNZVpMS1pEM3Rj
SkJVaWR5YktCalBXTCs5S000VU1sCmJqS3UxM29ScjFFbHhNcE1sTFRDVmV0WG9jcG1iVWdzRW85
V2tGQU5pSXF2MUliVjBRVGxMVHgrTUJZUWVNMXNWcnFVVUpGV1Vnc3AKTG1CbFhuY2ZuQThPTTdl
bWJpUjdFR2grV2dPT3Q4RnByZXNha0xYaHhtL0lKYW1TZ0lnNnJkVkdHTURCRWxZZFJxZVc4VXJM
MGNsQwpXZHNzNmZYcHZicGxHNzd1c3NxcHJxNUJ4ZzdGRlM5RGFEVWhRQ1NCMGNuaEhrOVJVQ1VN
Rm05aEZtbmQwUnFKeFpHc0NxMkl4d2xHCk9vUkF2Q3RyRm5uOGhWaFlwRDVDaHJUQ2pTdmlZQ1J2
Tnl3WEJwK1pEdzR6dDZhdUpmdlFJZmFoTmp4T2F6M2VBNS9RaGo5SWEzVlgKM2wxUkhVQ3pvT1dM
bnkrVXBXaHByeHdYTnZCeEFqTE8rc2xHMEJKZ2ZmRmJZUGVPVG9oQ0MwREFDNExEV05wSm9OQ0dZ
TWFLVFVWRQpWd1dEeFJGWFdZeFZrbGlzQlVpakxBanBtRVJZeFIvVFQxRktSTVpwT1luMXE3R0U3
MGxjT2hodUFyRlk1V3FnS1QyS2VBTWRlRW8rCk9NdzhnN1JNdnM4ZFlyK3JBZWRvTGI4S3pRYmMy
RFdYcEVxMFZyWU5vbFd2Wmpna1JSZzlyaVZERzZlMlFVd3ZCdGlkYVRDWGRVSTYKZjF5cTYyWFo5
OFZQWmRueGt4VVVWK2hQQlZVY0VhaDBHb0xJRWtRNzhXTXhFYTNna0Vvb0s0NUhsTGdxU2F6d0k3
T2VFNjZLZnNSUQpIeXRTYVRuTTB2czhkczNSVzl6ankyUFIvWjBUMGdvTU9STFNna1ZhSzBNcU56
Q3ZaNUQ1VThQTTNVTnM3WE4remhEN1ZCc3VhTUE1CnBJVlB1Z3FQTjZCc3c0MHR1d1J6UzdtSEpD
RE9xVlJtN0orcVFhRG50Mml0RnNLWUVnVHRPUU9Rc1o5eGsyWE8zYlVESDZlMlFiUVEKczVreDd3
UUlqMFR5QUVoNEt5SmRTaWIzS0JRbU14YkpXa0tLNVVQUklySHd5dEVTeVE4QnhPbEFXYUFyVUNR
WTd5MWc1UEdac2NpWApnb3ZSUDJJdGdwaXVCR3dsN0hVWjcvbmdNSE5yNmk3U3Vxa050ZmljWWY1
eEFmRjRHODdGNHcxQTZ5bzhnYlJPWkVzQ0l1YTJRV3daCm0xUnE3R0dhSFVhbmhURDBZSnZpc3Vk
TUNZTDIvUDBzVlRCM2JTZTB5YlphdDdmaG8zUkx3RlZBcExKSUlGREVXNUdqRWxTV1ZNSUEKVVFP
UWlvQnNTMkxodFhWbEJaVXc4SW42eUFuZHpQSTU0R1VhUEd3c2FsOEhBakJmb2VLZ2dDbUx0Q0lj
QS9USWhmSGdNSE5yNmtheQpyd2M2MXpYZ2VCdWMxcnF1QVZrYjd2MXlYdEFKTTlzZ1JqalNGUVNy
bUdhWDBRSFNOb2lDTnNLbm15OWgxYWExekR1ZmxPcTJhR25jClN0WFVYbEZ1ZzhqbXhRakZKZWVz
VEs4RXNNQ0cwS0tJdEZhOTNORnJSWkhCQXExSVBKWkFxNDMxU3BYQjlKb1k0a28ydHlaSEdrSS8K
MVRaWWhrbkhYRDhhaStHb2RIT2M4R05lZWhRaUdHWlAzRGMrYUI4Y1ptNU5YVXYyb1VQc1EyMTRu
Tlo2dkFjK29RMlAwMW9uVW8zNgo0c2NGd1ZsakUrSU9nTk9DNEQ1YU1ueFlCVDdPU1hWYnlEanJK
K3RxcjZZVGRueFg3VTc0bDJrdENyWkNhU3BrUXFGOW5WVENYQW9FCkVva1ZqN0RlTU1KbTZSMFlo
MGpXQllPVTNhVFZWWVMwUGVUeE03RUVBa3Z2V2NxUlZ2amFxSUlvMzhyN05pTEViOU5hbnp2RWZs
Y0QKenRGYWZoV2FEYml4YXk1SkpVaXI4TVZ2OFZZT0Fqb0UxVVFOZ2tqL0J4cGt5aGZmRXdTN0sr
OE9ncmtCUWZCb2xreEFuTXBDVWxqVQovR056eEx3TzIrTUF4UHlmRW1PQmdYVVY4N3RDcTdyRFBk
Y0tZYlRBL0s0TWpGZjVTNCtmajhVK056bC9jbTNLWDVWRjNrbE92eDlzCk9hMTFmenlPTXk1b2dO
TmE3MnZBZDlGYTIyMFFjeVNVTU0yK2lEYUNNQ3BPcndsZmZEMUxMMlA1RHFNNHhwWVBuWUdQRFZv
cmg0enAKZGZLSHpmamlYNG15QWlHdEpjd3hWckpxclF3Q3Z3TGVpZzczRFltVnU2enNqNEt1T0hu
ZUFVREtONFRsWHNwbTVlZ3FrSUdIYjArUAp2eEVMaU1KbU9IcElienQ3UTRsVW1KQldOdmFmSWdp
T2hDT3QrOXBRaTgvQkdVNXJmVndEbmtCYVo3TGx0TmE0TDM2bUJrRkZnb1RXCklLaHVnNWloa0Fx
dHRZZHB4Z1RCUEVzTkZRM0F4NmxPYVBuSmRuM3g0YytJRGNDaUJvK2x3SXZBQ0c1M29iVnlFcXVH
c2VKL0lVNHMKNlduaHRQUzVrUU9xbzNlZngxOE9MVFJLNHRtejZsUzV2TEN5blU0ZUR5S3RTbXYr
VXVwR3NnOGRZcDlvd1BFMm5MNXJQNmNUSG05QQoxb1o3djV3WDBWcmhMWVFMYWVPWUFVRVFGVXlE
SE1mMHQwRUVHb1NUZlYzSE5QTlZUMGY5WkJlVTR3cWZxNitLbHI1NGVhdGdjcmN3CkMzZ0ZJSlYw
bUNBTEprS0xVU094R0d2OHJkQlg0Uk5IeVkvTWp3aHJCd1BxUW9tMHFwQkxiMGJIWHI4Ym9kRG9h
cFlTVXZUeUpUVVEKQUdITmxnNFNaWGIzYlpDNXFaeld1aUhaNDRUSzR3M0ErYXR3K3E3OVVLRHpV
QnNlcDdWT3BPcjU0cWNFd1F3NVRSbWJPQnF1V3hobApQd3RhVXQwV01nNVJYUFZ6bWxrYXlHbFBl
NjM1NGtrRVAvb1hNQllKdW1LOFl2R0ZuTWN5a0N2OGRnVVJ3TWFKcFpSVnRsdE9rQUNECk9BaXJE
OG90RVo0U1NuUzE4Vk5VQ1IxaS9YQXNldjBKeUpCV0VNclZ6NjZUL0JWU0U2dTJaS0lXVG12ZG5P
eHpodm5IRzNDOERlZnUKMnM4Rk9vODM0TWF1dVNTVkZSQ0phTE4yYjRzd0ttaGpTcXF6NTZnZ2lI
RmZ2TDdEaE85cVVCVWRoNHl6ZnJLUkxBaUZyZitaejY0SAp5WFJDZ2xtQUNJWHhuMVVHUzF5MTBR
cGhmZTV5UHludWpiZUgzVXh1ZXdkU0pMdU8zbjBlM3gwTEVHNGp1eE1PQUNuUlFCQjFQaUd0CjhK
VStjTk00clhWenNzOFpZaitoRFU1clBkV0daZ051N0pvTFVva3pPdmg2R3NMWmVhbHVhMnhLcjBk
ODhjT0NJRXpHK1VKWmU1WFoKVy9DeFM2UjFJQ1BVbTBMQWFzeFlvWFpvL0RqeWh5OGl3MkJGclRB
NnNSaGMxR3ZJTUJaenBCZlVkOFdNdEp3d3ZrZk9MM1I0S2hxagpJVHorWkN3QlNSRmszcEZzVnVH
Mk1NV3c1QVppWGcvaHF5eCtrOWE2RldtWmZJOFBzYmk1RTk3VUFLZTEzdFNBYjZhMThtMFFEeGJL
CnlqQlpVWWloUm5GVmZmRlRncURGTkJPQ29NMUNoU3JhN1FUTWRVSU9HUVVhSXZibnlqSHZLeEY3
SU9EMWVsbFpVQmdzdFdjSjVGcVoKeUlDcWlLdGl5UVlFQUJVOVdIb2tGc1JTYU1YNS9WU1hkSnk5
K3UxWTlGWGlyTUp0dm5MQ1hrRHl1eHZzZFVrTDdrZGFlRzZZdVh1SQovV3hhNi9FR0hHL0Q2YnYy
Y3pyaDhRYVViZmcyV211N0RXTGRjcVRuRE9LWUdSRnRaaHZFQ3d0bERRaUN4N0prWU02b2Zvd1hZ
NDExCjJJWEtpc1JWTUdNSnlKT2lXYStFb2dqS1pxa09pQ3JNNGdpZ1l5RWlVbGRXNkQ3ZGVkQlkz
U005RVg4YzlzOTQvTzFZT016QzdESFcKKzRibFJ5TWcwcnVxakxxQWVIT3l4d21WeHh1QTgxZmhP
Z0h4ZUJ2T3hlTU5RT3NxZkJmUzJ2amlqeHFiVUVWQ0k4YW1nUjBBejBsMQpkY2c0QmgvbnNsUTY0
VVZFaEJVQTh4bytHaWQ5OElXNHp5QkZmZEFZclNEc1Y0YTMxSlhGUklhN0V0Z1U2SVZRN0VyUUZY
UVAzcWdKCmtvS3FMZW5nNUpVSEZnRHlqUWphWUxwRjBzK0N0ZFRSQjNvdkNQcE5BZkdPMUkxa244
Tm5QTjZBNDIxd1d1dTZCbVJ0dVBFYmNra3EKUlZvdFdxdUZNS1lvTG50T0hRa0JkVjg4SGZWZE5T
cXpYMTMxTkY2SUltTW9saDVLTGVoYVFnVlZLM0hKWXpFVllDc215UUdXY0ZmeQpncGdESTRnb0M3
SlFVK2FHRE4ycFdtRURTMmtKSkk5ZmpRV0FaYVFDMnh4dktZbFVWVlJacmJ1QWo5TmFOeWY3MENI
Mm9UWThUbXM5CjNnT2YwSWEvUkd2dGxPS2NsZXBRdkVOdGhXRERGMy9JZmI5WGptc0Q1dVloWTlO
UDlnTFdDSzJnMENyZ0txblVrRjRvV1pVNXRPaFYKMGxlMlpFTUVSRnFnQVpBbGdHSnYxeCtaRW10
VnZXWGtaeGNLZnp1V3dJc0NrSVdDOHB0NGsvTVdhWVdmN3g4RGZwUFd1aFZwbVh5ZgpPOFIrVndQ
TzNiVitGWm9OK0ZaYXE5d0dVWEJNMUFWMjJKMHREZGFUNXpKTW83NzRxVzBRTjJpcEt3aHU0ZU1j
Wk94MkFrVnZleEJDCmlVSUp4OFJqdlY2VTdZMGp3aUlEVW1pVVkyc0pSQlFxNlNlOEphK2hWYmRE
VDhnZFlGeFpNSzZzMmwwU0RqaTYrdmxZQkVWaGk3U2sKMENnQktMYlRDWVJ0ZkMwSC96RFN3blBE
ek4xRHJOTmFiMnJBSDZLMUhtOUEyWWJ2b3JXS2JSQ1JZNVMrSURqaEgrOWhtcEZ5RDdVcwpzMzZ5
QWNnWWp4dTdWU01McERwRCtPK0xtViswbWtLalFUMVVNMWJhZ3RCYXJ3UWs1ZitTM1NwQU1mRmdS
WkV2T2JIQ3BXZThYdmFPCktLczJ3TkdWQjRCUXBrR1ZQN2xUQUNLUkF0ZDRseEhpYzJCdG10d2ZS
RnB3QWZHV1pJOERIWHpTTVArenROYmpEVURyS2p5QnRNNWsKVXdFUmM5c2c3aHFiUnExVW1TOSt4
NlcrVDNIWmM2WUVRWHQrS3dzaDZvTUJTSzBjRnc4R21TL2dxcGZ3Yy9hRmNsY3ZLY1F3OEM5eQpV
OHBqSVhBS29TSEVBSWt4cTN2eE9iOVJQSDRzRmlVL2JjRXJ4R01KYVFtdkZlNTZxaU1zaVVlZXY3
OHBJTjZSdXBIc0x3Q2RpeHB3CnZBMm43OXJQNllUSEc1QzE0ZDR2NTBXMFZuaUxZVjk4UlJDTVN3
VmJtR1ovaGFEWkJqRUhjL01sck1ZRVFRc2ZkN0tJcTMwTjRpRFIKaTdFS1JJd0hqUlByUmNUZ2xh
Tml5SXhWMUVPbzFaMFRvcElxV2VZRlVlak5vQmdpMXNjS1Y0bDNPQ3JXeStieHV4RUtqUnA1Y0My
UgpWa0RvcVV3REd2eFZJNXpXK2xPcHU3VFdadzJ4RDdYQkJjUlBhTVBqdE5hSlZLTysrSEZCTU1N
eEk0Smd2Z1BndUNEWVEwdWJRZ3lUCmZySzRDK0VxcXQvS1dBRUFhNlN2T09LcWw3NVdLaXV0SlV5
djh5SllFQ3dWL2duOFVzVVFrR3BZY3AwWmllaWk4bzZMWDJmbnIzNDkKUXFGUjRVS2o0Z3phSWkz
ZE1jQklpbFBodE5hZlNsMUw5cmxEN0hjMTRNc0ZSSHpzVmJpeGF5NUpKVWlyOU1YWEJVRU1FRlFU
VlUraApTQWpqMnlCMnNtUmd6cjQyd0s0UDVvUytVb2x3SlE3SzRBb21ZQVZlaElTMFpCWGhpMmhk
K2ZWU2pNV0ZWb2dJdVpTNzB1c25JMk9RCkF1TUhBb1B0Q2EycjV6WXNqeVducTBxa0JZUzZ0bHBv
bEFQU09wblZhYTAvbGRwcHJUYzF3R210OXpYZ3UyaXR3aGVmSTZINGVycUUKVlllVXFoUmxPTDBO
WWkranZrTkhkbHdSQmNGUW1pRytCZ0JlaVY3QWlpQVg4bHBUQ2F0YVlhU3lFcHNWaWo5cXJTeVdn
dkNoZ1VicgprVnBaaU9xaHVWaktXem1COWZPeDZDM0FXTVBkSmh5V3FkdWdqSlhaQXZxUzlJOE1B
QS9TV3IrTXRHNXFReTArQjJjNHJmVnhEWGdDCmFaM0psdE5hKzc3NFhVR3dVbzVySzBIV3lqMEU3
MGhPZzdWb3Jab2dhRjgwaWJSNHpndTBXZ1pMSkVJaHNYZ0ZLWXBhR1RtbzRqcDMKdGQwcVJ3aXFI
R01obGg0bHVZWkVVaGlyZVpXY3Z2SkFYbWkwUUZiaEovbjVZbVJWeGlNRGdBdUlOeWY3MENIMmlR
WWNiOFBwdS9aegpPdUh4Qm1SdHVQZkxlUkd0RllJUHRBTUFBQ0FBU1VSQlZONmk2NHNmRWdUMW5P
REJxZ21DRFlJS3hoZmZBSFAyOVFiWWpibTdZTkRWCkdrdGVzWkJZVEJWUWxaeFlMMUNrckN4M3hj
VXVoUEpDV0VINVY3N1czWEt5TzhhK3BMY05reDdmRmd2TE53cUN0Q0tTeXBHV1B0ZUYKVDMxajNQ
LzhkUUh4NW1TUEV5cVBOd0RucjRJTGlKZTI0WEZhNjBTcW5pOStUQkRjbExucXJ4RGNaR2x2Z3po
UUtHc0w1bERTWUZBRwpDMm16Wi8zeHhlQlgrSkZmRkl6d3lZbFZTb1NDcnJUUHc5cEFrZjhvZ2Ey
TXdWTDlKcU9tc2xxaktncXlmaVNQbnc1aHNCQnZMekpJCkN4WnByYWIwNlB1SXJEeWMxdnBUcVoz
VzJtdkE4VGE0Z0hoZEE3STIzTmcxbDZTeUFpSVJOZXUvSnh4enVJVFY1aHo3b3JVTllqWEwKQ0pn
em1tQ3dYcjBFVVVVU2krbEZVR2lWTVZpbW1MdWlxM2c4R3RpTkdZdFkwUlh3Mm5RdzJSZW12bWgy
OVZ3ZjlBaXhGSTUxUlZvRgpwNlhyVG5rMVN5anV4RDMzWjNSYTY5NWtIenJFUHRRR3A3VStvUTFm
VEdzSmJrQ3QvbnVySHVtaERRb0xsN3ErTTNaODhWTlpYcnlXCkpCWmVSQUVxcmFCWHRHR0JveVVM
RmwxWm9kQzQzU054RlVXWlZ5cmZFR0dobUxjNERIcnB5NldHOTNiL2IycTdlL3hnTEhGbXN1cDIK
T1NrczBvTFNXbWFUSER5Q2U4eHJwN1hlbXZvcGx2SnpoOWp2YW9EVFdtOXF3RGZUV3FiY1F3UFRE
QWlDR1NiYnE4emU4c1h2bG51UQpOd1NCL3FsNzNaQlk0WVhBTEpDd1dRbFV4VW9OdWxVT0pldVYy
Yjg1TkU0OTc2QVNhUVVQVnNSYlRJWmpJUDBQb0RTRXZHYjBFSmpICkQ4U2k5ZG5qZlI2bHdQUmRG
cFU2L3RpNllSNTVGRDVJYTkyR3RQRGNNSFAzRVB2WnROYmpEVGplQnZmRlg5ZUFzZzNmUm10SnVZ
ZTYKTDM1Q0VNelBtYXBIT3JNTll0cWc4Ti9LcjVlU1dMeEtCYXdWV3ZVcWJqNjRXallyVk1EYWxt
YWc3UXUxc1hFZ3RLRFZIdzEzRmNBVwpGQnZXUjBUTzRaYkhqNGFXYVdDRHRDQnczUlJ0SjFsbnNm
Zmxmb1podWorakM0ajNKbnVjVUhtOEFUaC9GYTRURUkrMzRWdzgzZ0MwCnJzSjNJYTJOTDM2eVVO
WjJPK2NaWHp6NnZuamp2aGRtYXlVTHFpbzgxZ3E4SXFFbFNHdmw5WVdNeEFwd2lxWGtGUlBydUVh
aXo4UmUKSmRVTjA5aUgvUDZyWVNzSFZSNDJGcUU5b3pNUnNTYUQza3loaWtpR3RNYS8xaTRndml1
amVmMlhhYTFHc3MvaE14NXZ3UEUyT0sxMQpYUU95Tm55cmdOaWt0UkpUbGN0NVFtVU5VVnoybktv
Z2lPaUwzN2p2cmNPZHhZbUZMWThGcVRLYVBGaEJGclRyQjIyNVVRVmJvSXpLCkN2U0NmRzVoczJJ
UEthSFZSRklrbjl3RlFvOGxJaWJoUXExemozbGxSVnFpVng4cjQrNjAxaHVUYXNhYkVqNlUrck1G
eEU5b3crTzAKMXVNOThBbHQrRXUwVm5jYnhGR0t5NTZ6SndqcU5vaFp4cmc4TVA0VDRncGcwcXFo
aG5sQ09pSkl5NmlCeWxxbHVneVJ5b3IyNHBjMgpMUXg2RkdIVlN5Z0lVRjZhUVhwZEs0OFM0QUto
QndBcDA2RHNaeVN5T0ZlZW1WZHp5Z3lGVlF1bnRkNlYwYnorTlZycmM0Zlk3MnFBCisrTGYxSUJ2
cGJYS2JSQVR1dW9MZ2tmY1haWVNTNzc0bFJrVUVaWG9nN3dDVEsvc0NDSFdhMEI4a1Vpc0FLcHlL
cXNnc1lMenVLWVkKc2hCcW9oaUcvdWtzRWxUODVSRHI1Mk9KQ3lJWWdCUUNDVi9LakxHaWRPQzZ4
NFBUV205TXFobHZTdmhRYXFlMTN0U0FQMFJyUGQ2QQpzZzNmUldzVjJ5Q2lRRVVqV3p2SGVYblgz
ZFVyL1pCOFY4bUFGYWlzOENPdGhzU3F2VkJ4Y0l1cklxakNTd2t3amh6VmkxUXVER0FMCkFWZFZN
VmJKYWJrKzZBR295WjJsMHNjR2FVbGhrMVJvOUN5RFZZMEhhYTA3bjc4UDBscS9qTFJ1YWtNdFBt
ZVkvMWxhNi9FR29IVVYKbmtCYVo3S3BnSWl4YlJDcmFHbWtIRmRSS0F2RTYwdXNWMEVjTkc1M0pt
ZzFyQlY0UmVCRmEvNGliSlZUYm85RENLQ0ttUUp4aFpnOApZcWtJcmFoTFdhWHVvZmFQSHI4WWl5
bC9KWHFnSUszMGN5dzBHcEhXV3h2a0F1SzdNcHJYdnlZZzRtOEFuWXNhY0x3TjdvdS9yZ0ZaCkcr
NzljbDVFYTRXMzJQZkY3NVY3YU5KZzFsa2Y2YXNObGNWeEYwSkJXZ1YzVlMvSElNUVZtQlZPQVZE
UE80VE5paGdyTEpLa3pJOFYKUDMyQnVwam9GYzUxQzVZSGdDVitCZFkxaVlPRzA3TGZ3UGd6MFQy
Z3dBWEVOeWJWakRjbGZDaTFDNGg3YlhBQjhSUGE4RGl0ZFNMVgpnQysrTGdnbWdxcGQraUc5QTZk
VmhBRlV5WXZneDlJS1dNQUt2TklHT0VZdXJORlhvZnlWa2xnQlRqRlJyaFZHSUdYOFdIVTJTMmdJ
CngxWWVNUlp3RXBqSklDMENGR21GT3lvR3A0MldqcTBvUEJCT2E3MHJvM245YTdUVzV3NnhUelRn
ZUJ1K1hFREVKMTJGT3RJcWYvSEcKQnB4SkpVaXI5TVZ2MEZKSmNTVm1TMm13bk5ZS3NDbVdZSURo
cm9DVmhjUUNWcVNOQlVVeGxHSlgyRUNyREdOQmtDSWpibENJREdNUgo2YTlhTlJyTXNrRkcrS0FP
dEg0K0ZuM0ZCbW5wejRuVDBwcTJKaDVFV25CYTYvS2ttdkdtaEErbGRscHJydzFPYXozVmhtWUR2
b3ZXCktuenhoU0E0VUkvVTBsb2szTlVyVmNPcXMxbUtxNnk5ZldVV0FiSGNKeWNnS2labHJSS2hG
ZlZCWmExSU9vYlNaMHc5eE9XVmsxSlkKSHI4ZWk0SjZpSHZkRkJvTk1ENGhMUUxhMUNod0k5TENv
N1RXblE5Zjk4WGZtZXp4SVJhZmhEUE9ETEh5Rms1clhkcUFKNURXbVd3NQpyYlh2aTYvaXJaZGEy
ZzIwaXRXdzJEaXhGR2F0L0hwQjJheEFZa1VjSm9RV1NxMlFHWVJYK2pHNXI1SVpLM1VLaThxei9j
RDBjbXpsCkVVTVlyRmorcWtSYXJFaExEdlFGWm92YlhVQzhPS2tMaVBjbSs5QWg5b2tHSEcrRCsr
S3ZhMERXaG51L25CZlJXdUV0dXI3NFRhRXMKWXF3azRpQ0hCWU1SVVFYNktyTmtjYVlTTWdtYkpa
VFZ5bXd3VmlTbHBCeERxTmNRRk10VWtTR3ZUS1NvQ3pwUXdneDh6bHg1MkZnUwpSUlZ1bFRDSjJG
UmtpRGNaMGZnM3pBWEVkMlYwQWZIZVpJOFRLbzgzQU9ldmdndUlsN2JoY1ZyclJLcWVMMzVMYTcz
TStrRTJTQ3ZWCndUSWtWcUt5SW10bGpPMjZCYUhzTThnVVgrTUZjWUpCNWNJNE1vbyttSEJWQjBF
eFpGVmkvenlQWDRsWWFKVGkxbEpwdTV4NGUyd1gKRTg2SDAxcHZUT3EwMXIzSlBtZVlmN3dCeDl2
Z0F1SjFEY2phY0dQWFhDNGdFalZvclZTWGdWZVduUWVwUW1KWkJtdGxmb2t5YUxUQwpqdHRkVjNa
Wk0xYTB4YWdUcTE4TlMzL2ovbmFQRUhFdndweXhvaWdPR3FURjZ3VklDMDVydlMrajAxcjNKdnZR
SWZhaE5qaXQ5UWx0CitHSmFpNXEwRnNJZU9MTEJNMGNnaFpYQkx3aXVLcEZXNUtLWWpGWm9jQldN
eVIyeU95SEU4QTdDS3piTGJHV3lnNjRnWG5kWENUMDAKRnJzWlRwcFJFQ0RjYUpBUDZlcXZxOU5h
YjB6Nms3VFdyVWpMNVB2Y0lmYTdHdUMwMXBzYThNMjAxdXYxb2lBRkJ2QWtjbUUwclFmZwpsVEZZ
S0ZrcjRROU1zUWFyRWtMTHVFdjUwRkFUQ3d5SytJNzBreGwyd0l4Zm9md1ZLYnFLUXFIRExBOHMw
ZDZlN1lRREFBelo0Qm54Cm9CaTFycjl2ZnFHdzFpTko3MGRhZUc2WXVYdUkvV3hhNi9FR0hHK0Qr
K0t2YTBEWmhtK2p0VlptQ2pzUHNxaUV3ZEllbHhBeUV4VzQKcXNwbXJjSm1aUmdMVWpxYkFMUE5N
OFQ4YmhFVm14OTd3UUN4azFnZUlSYlcrdXhnR0tSRkJtbEJublh2d1ZjcFhFQjhWMFlYRU85Tgo5
amloOG5nRGNQNHFYQ2NnSG0vRHVYaThBV2hkaGU5QlduRlpJWkJ6VklGOG9rUnVsZHdWc1ZJSGxz
MUtUcXpnODNycGtlQjNaNmJ3Cksvc2lnUzJpZ3I2eXh2WklaVG02OHBDd2hVYkR2UktSVm1CT0U2
ZEZZRjV2WXoxZFFIeGowcDhVRU85STNVajJPWHpHNHcwNDNnYW4KdGE1clFOYUd6eGNRb3pPTHpQ
UWJLMFhEZXdCYkszRUFXNG12U3ZRVloraksvRk9MVmZpcjFNQUVwK3lMeGllSkI5UmpVLzI5eDQv
RwpnZ2pxMHcwZkZXdEVzRVVHYVQwRUNKeldlazlHcDdYdVRmYWhRK3hEYlhpYzFucThCejZoRFo5
UGF3VmtSZWxjQ3JVYkFEQllRSlZWCkEzTXFTNGF6Y2dsaGhyUUFTRlgzZUdZb2dxWE5WSk5NZHYy
b0dCS1o2RVhZOGNKNy9GQm9vVkhyc2hJMGJndU5nb3V2d2hPQXdHbXQKdHlWMVd1dkdaSjg3eEg1
WEE5d1gvNllHZkJDdHhlbXN0QVZObEZwSXhvVGdrVks1a01Xb3ZxNzhlbEYxRlNHSTBvc2NhU0g5
VnZpdApNTjUwUzdUTDhPUVNvVWVLVUdoMFpiMi9jcVNsMFhtQ09hMTFRMUtudGY1Q2FxZTEzdFFB
cDdYZTE0QkhhUzBDZ1VFdlVBSlRBVmpGCmtTcHUxUHdpT1FKbVhsZndDOFdXT0JzekZndTZVaDdo
cFlzTlRadDIwSklPUklGYUF6ZTIwUEg0eVFpRlJ1TTl0VVZhc0FXeEJ1SkIKV3VzMnBJVkhhYTA3
SDc2K0RlS2R5UjRmWXZGSk9NTnByWTlyd0JOSUsxSldVWmhqa1FzcHdpd0kwbUw1MlppMUttb2dC
MnBLemV6RwpERU1DdVZRTkJPV1UxUjV1WXNqNlFkNC8yZU0zUWszdVlySXlTSXNUT3hzM3d4d1BG
eERmbmZIV3BDNGczcHZzUTRmWUp4cHd2QTN1Cmk3K3VBVmtiYmhVUVdWNVlzQk8zTENUejBJL0ZG
bXg1S2xVV2k2cFhpTElnY3QwdzFYQ1h0elBlWTF1YnZRUlBsS1gxUXFNZUthUk0KQXdMdVR2Y2ZJ
dE5wMUVJNjhuVnlBZkdHcEM0Zy9vWFVMaUR1dGNFRnhFOW93NTIwRmhHOVZBMEV3S0RYeTFTOURz
cGVkaVN5WEFsZQo0L1ZTU2RGWTNWbk03Rko1SVpCV3ltYnBaMk0yeGJHeXlBNEtkY1ZTYzlUREEw
dUFUYkkzVGdEcUNXa3BaUXFBZVQzSmZEcXQ5ZTZNCnR5WjFXdXZHWko4N3hEN1JnT050Y0FIeFRR
MTRVOWVZR2cxR0RjeU9rQ2g3UklLMEF0Q1JzOFQwRW1GV1BQSVNkSVZFWlFXdVM2a3MKdTd0emQ1
K2NDS3JDbXp1QjVhR3h4RTBKekpkbWk3U1FTTlJyc2pxdGRVTlNwN1grUW1xbnRmYmE0TFRXVTIx
b051RFNyb2xGR1FUZgpWS3MyNUVkQVpFc3NNSUFYWlFvakJHN0ZuK1hORFpVbFRpeEtuNGM1K08y
UnZSUGxyOXgvNVdFaWVMRGtab3FVS1lDRXRKSTArSjc3CjVrRmF5MzN4MXlkOWp0YjZGYVJsOGow
K3hPS1RjTWJ4QmppdDlhWUduTzRhZlZZSHdLUTFHc0liYXRXR1FEUUZoaXZwaVVKWFpRb2oKdlZR
dURPeEJwakNHUWVGRmNlM1gvcEJuOEZSODZSS2hSNG9sTGxKTkNJb0twRVVaMG5wanVJRDQ3b3kz
Sm5VQjhZWjhIMGxyUGQ2QQo0MjF3WC94MURTamJjS3hsekZLQ0lWRlVaRHhWY2lRd1ZBeklBa090
bUJYcEtyenNFVEpJSzFjWTAxWW1PYTJsTkVReERpcUdVMzNRCkpVSVBqWVZnaVZMdUlLM2J2ckl1
SU42UTFBWEV2NUM2aTdSdWFzTW1IbThBemw4RkZ4QXZiY05ocEdVY1ZFeldVMlU0cThvUndCeXgK
QXFLSWpJQVVyQ3FQRUFScDFUL0twbmtaaWVVMTNEMnlXQ0Rpb0NKOVFBcGl5UzBhenZrWlFPQzAx
dHVTT3ExMWI3TFBHZVlmYjhEeApOcmlBZUYwRHNqYnNkWTFLZTlGVFpZeFdSZFVHQUpUYm82UnFn
MjBEdlRaSEN0bFJtTEtJNmF3S0tXLzdxalRVNENxSFZ4NDJGc0ZSCmpEYlMyajVZZmdZUU9LMzFu
b3hPYTkyYjdFT0gySWZhNExUV0o3UmhuOWJpV0tKZFJEdXpsckRucVRJTCtSZ0FGMGRVMFN1eUZK
cGoKU2hSWENGck5FZnF6TmorckRlSGhBU0NhM01sVVY1TUhSOXFXTU41MjlSb05Qd01Jbk5aNlc5
S2ZwTFZ1UlZvbTMrY09zZC9WQUtlMQozdFFBeWwvbVNoOWlSYW9jYVJsUDFVdTRnbzJuaWdVa1di
V1FVNlY0UkVZci9VbWhNTmFYTWNZajhoTnJ3ejA4SUlWRzJkN3JMQ0NlCkxLMDFjTk04Q0FqdWZF
WThTR3ZkK2pGdlQzby8wc0p6dzh6ZFE2elRXbTlxZ1B2aXIydkF0ZzFSNmN1TzlCeFVBcjVnam1T
ZUtvcE0KUW1GRzU0U2FZam91M09vaFMzYWtxVEI2ZU1RSWhVYkZ6NTRoTFM2UTFuajhEUFhpQXVK
N01ycUFlRyt5eDRFT1BtbVlmMXhBUE42RwpjL0Y0QTVCZmhWS0RrejRXcUtUNFJzOEpLQ25SU0xt
bktvbU1rZ0dFamNKSTloeElhZmpzNG9wd0dmOG9XenpJZVQ5Ni9IWXNPVDhWCjltcmlCdEthanA4
QkJDNGd2aTNwVHdxSWQ2UnVKUHQ2b0hOZEE0NjN3V210U3hyQXVhNkhLTU1WUjZwVkd6SUhWWDZF
MnA0cWVST1cKUHpGSHlHQ3YrQ2RzVGtpYTQxdTd4ZU83WXRHSFFmU3pRNkMvN0o4anZ6Mkx6SDhH
RURpdDlaNk1UbXZkbSt3amh0aVBhY1BqdE5iagpQWEIvRzVMQlBlNW5JMHBmMnVHR2lDeGp0ZlZV
Q2E0YThWVGxJcVAxVkZIWmtwTFUybWlPSGg1QWtBaDVUWnVHbzBSYVVVQzhrUGY4CkdVRGd0TmJi
a2pxdGRXT3l2d0IwUHFFQjdvdWZEbFp3UXlidGRpZWNpRy9rRU9XZXFuQmEyMU9Wdk9xaU9ScFBW
VG9DWkNzRk9ienIKUm5OMGxPV1JZcEV0TFRNL2Uzb1NxSUQ0bnEvVXp3QUNwN1hlazlGcHJYdVRm
UTdRZWFvTlZ3cUljRnFySFd6cnN5T0lLclpxQTlVZApWRU9lcWhjVmlmS3FEVVF2TWtncmMxbkpl
dnRYL1lpSGg0MkZCRVpKVVlhRXRLU3diWWozZnBjZmVXUThTR3Y1Tm9qWEozMk8xdnBsCnBIVlRH
MnJ4T1RqRGFhMDNORURzVTVuU3g0RWt5aDFVRlUvVjYyV1FWdUdnUXVibGFucXFFQ21zNU9WcXR5
UWVJZVRYeE9QWFl4R1AKSHhScG9ZYTBib3Vmb1Y1Y1FIeGJVaGNRNzAzMkY0RE9SUTA0M2diM3hS
ZnZSaVRlcHV5Z1ZmNG9PMktVdmdSMzBvRWhUeFZuWGk2cgo5Nm45UzQ5VjhsN3h3VDMrVWl3Qmht
K2x3THlrZTc1UHp0OWxDRnhBdkNHcEM0aC9JYlVMaUh0dGNBSHhUQnVzcmtmVldnbjVnVzFWCnFs
ZlZRVlU3WWxzYVpFZE5vN3NkWmtmc0ljN2V4Y1BEeG1LWENnSWtSUm5TOTRLWmkyL0pqekFFVG11
OU8rT3RTWC9qcG4wZ2RTM1oKWHdBNjF6WGdlQnQrV1VDTXRSSnlwUTlGOVFRUXlxcFVnSHFxYWc0
cThYSVpseFhBZlU4Vnk5dStOQzhrYnp4SmpzeCtTbysvSFF2SQpGR3p2SXExdC9BaEQ0TFRXRFVt
ZDF2b0xxWjNXMm11RDAxcURiU2lVdnBmZDk4YnFlclRSOWNLSVJ1Rk5USDBzZTZUcW9FcHYyajRT
CjMrUmxuVnZaRVlkWUhpWVdZN3VLU0R5VWFWQ2tGUVRFM1RmNkVZYkFhYTEzWjd3MTZXL2N0RVhx
VzVHV3lmY1hnTTRuTk9CWGFDM3gKTmlGeFJPR3ZDMTN2bFZWdEFFeFZLc3FPVkQxVnJHOG12Smdv
akptN0N3cjVLa2VTNWdoSFdCNDJRcUZScGJBcVNBc01ObmZoYnR3LwphT0ZSUUhEblErcEJXdXZX
ajNsNzBoKzVhWXU4TjZYK2JGcnI4UVljYjhPZjlzV0wxUW1xNjcyMlNsK3lwb2Qzc1U2dDZDQ3VP
S2p5CldTc2hQeWw1cWxqUlZPR0J6OXVXOHJvVHk2T0lVR2dVVXY2cWpyU09mUUYvUkl0eEFmR0dw
QzRnL29YVVhhUjFVeHMyOFhnRGNQNHEKWENjZ0htL0R1YWczb0tIMFpaNHFwdUJMenh4VWxDT3Qr
RmZHdmM0TWlyS2pwTng2cXFxYjhKaThTSTFSNTVZVFdCNDJGbXU4MG1wWQo2UllyS284ZWpSL1JZ
bHhBZkhmR1c1UCt4azM3UU9wR3NrOG1WRzV1d1BFMi9CMWFhN3YvREw4eUlnbllLSDFTWGtIOVV2
VGFITm1jClUvVlUwZGJMVlRsaUdsT3NhdlR3QUxBUVNJcGRCWWdPS0lrVklQbWxYN1FmWVFpYzFy
b2hxZE5hZnlIMVp3dUluOUNHeDJtdFp6Z3QKUXh5TktuM3hmSklqbWFlcTZhQktSeEEzNGNsRVJy
c3lNRFhHdEZOVGUzaVVZUXVOQmt3dmRVVU4wbnBUL0FoRDRMVFd1elBlbXZRMwpidG9pOWExSXkr
VDdDMERuRXhyd2JiNTRBb2gxbXh2SkhNc3IyS0lNU2RmVHMwVFgwNCtjVjIySVI2eDVpN3FlS281
LzB0aUVKelY2CnhxbnM4U09oaFVaWHpoOXJxZnpWeFJ4V0pYN0VZdnpJazlwOThlL0srQnMzYlpI
M3B0Uk9hNzJwQVY4aUlHNlZ2Z2htZ2lHNFBJTE8KdmpkRUpQWGJWZW5UY3lCd3JlbXAydFRIMnBU
bW9nSjdlWGlrMEVLamlzd3QwZ0pBdCs2YTl4dGFqQXVJTnlSMUFmRXZwTzRpclp2YQpVSXZQUVh1
UEM0akgyOUFMaG9pQW90bnRLSDFneUU0NFVlbVR2ekQ3M3BRT3FnRlBsZGxoc0RpeTlYSzVWT2hS
eEtJRVZZRzBrQ3p2CmV0OENmNW9oK0JsQTRBTGkyNUwreGszN1FPcEdzcThIT3RjMTRIZ2JQcERX
U3JwZWVsOVYraWhDbmx6RkM3L1BqbFFkVkRWUGxmVnkKQlUrVk9jbHNzSk1kU1R4WU91TGhrY1VT
bE1EQWhnWVcxUGl1SW5TMzlkeWRJWGgzeGx1VE9xMzFwb3kvY2RNK2s5b0Z4TDAyUEU1cgpuZXlC
dUY0UElNcnJzeU1wZmFPNkhsRHVoSU1BNE9xYjhKZ1B3Szk4RTU2a01LWWo5bTBkWW5tVXNVRHVp
N3o4VlVKYXJTK2FNd1EzCkpIVmE2MDBaYjAzNkd6ZnRBNmxyeWY0QzBQbUVCanpzaXhkUFZYa2s2
bnEwcSt1SkdCUC9xcmtUam5GUWljR3JZZWV5cEpYWmFwb3QKd3ZQd3lHSUJFYSsyUkFPQU5CTWdn
SG5keGViT0VMdzc0NjFKbmRaNlU4YmZ1R21mU2UyMDFwc2E4QVN0WmNBTFNGYnc2ZHNvcFdYYgpT
TGxPSjBleTl6UitLZElqbEZmREVyakcyUkZ0VEJYMndRa3NqM3JZUXFONVFTd0FjWWlkdUhFZWVh
STl5QkRjK2pGdlQzby8wc0tqCktOWnYycitRdW91MGJtcERMVDRIN1gwQnJXVm9vYTMyRjgrSXhx
d2NlNkVFWHlSRWx6bFM2bnJ5RjdtbktoMkp6cTJVT3ZKalZLUWUKN0FlUDM0a0ZvTERuSUp1N2E0
dTBac08xbUJ1U3VvRDRwb3kzSnYyTm0vYUIxSTFrZndIb1hOU0E0MjE0c3kvZXJNNFRxaW5UOVlp
SQpYaldsVDk0eEtYMmFvN2J2RGJXUFJJTlhWakdyQnZLOFJvTkhKeGFENGhHTVdNbExlRkdOQnRk
aTNwM3gxcVF1SUw0cDQyL2N0TStrCi9raGE2L0VHNFB4VmVMT0FTUEZmRWxJS005UzJWc0tycGZR
bEJrRThWZVdSeEdIbGtJNDZSeUtYcGtPb2g0ZUpCUUFvQUN0WUkxYWcKdGE0Tlp3aHVTT3EwMXBz
eTNwcjBOMjdhQjFJN3JiWFhnT050dUU1QWxQVjZ5ZjVVWGNFbjFhNVFWZnFpeGNvcWZXRW5ISDJM
Q05kMgpQRlZFUmRzRTBpbXdjb083UnlPV1lzL0I4Sk5GV20vNnlqdEQ4TzZNdHlaMVd1dE5HWC9q
cG4wbWRaZlcrbUtnYzEwYkhxRzFYb2xiCk10WFlvY1lzZzcyNlNwL29laHVsTDNpcTdMNDNTbHJs
bnFyc0NETVZTSW9WODNGKzNUdzhZc1JDbzRINGxFS2o0UzVVcFBYZWNJYmcKaHFST2E3MHA0NjFK
ZitPbUxWTGZpclJNdnI4QWRENmhBVWZ1V2xiK1NhQ0xLSDNtaUdJdm8rdkp2ejJsRDFBbkRBa1RC
cW1HVmErUApaUTFldWdHaWRnMjlEbmFQeDk4T0xUUXFhd25aVkhBUFA5OFlEeklFZjN0SHVVZWUx
QS9TV3JkK3pOdVQvc2hOVytTOUtmVm4wMXFQCk4rQjRHNGJ2MmtMN000WFVEZitVR3BhVVBwdksy
TERpZXhMaEZiSmI0L3ptaUxybTFlQlZ1T2FOVlNzSGVjNWhlV3hpa1JleWNsQ1IKRmhEcVk5RVQz
MnJYWXQ2ZDhkYWtMaUMrS2VOdjNMVFBwTzRpclp2YXNJbkhHNER6VjJIM3JpMkZ2NmowdmJiVjJD
bFgrcmpVK1VUcApzOGtWcnVWSFltTGFIRUZPcDJWMnJwVEZYVmdldFZoQVFGWm9OTnhYTE5pSzg3
dnhyODlmUTlMZjBHSmNRSHgzeGx1VC9zWk4rMERxClJyTFBZWlVlYjhEeE50VHUya0xVUThrdEdi
WkpWdkJsU0t1aTlFRjBQVTJuUjdMUG9Oc2R3cmptTStNOFN0aFhJam9QRHhPTFFWQ2MKNzQxVHYy
dCtaZjRhTXY0R1ErQzAxZzFKL2FiOUM2ay9XMEQ4aERaY1FHdkpHOUptMytWWGcyMHE2N09udlhF
d3ZCTk94YzRGVkxjNwpKQlFFVzNEVU9NenkyTVFDb2F2WTNDWE1LKzg5blg5bC9xcEpmNE1oY0Zy
cjNSbHZUZm9iTjIyUitsYWtaZkw5QmFEemVBTU0vNlJ2CmxLMGNqRm1TMGtmbGtSeDdwWWFVU3A4
Q3JkSTRqK1NwRWp0WGVhUkNzSGw0YkNKNHNBZ1JxRU0zZkFiME50cVBYNW0vaG95M0QxcDQKRkJD
NEwvNFBKUDJSbTdiSWUxTnFwN1V1YlFBUjZZTDJYbjEySkZFdlIyTld4YVBpU01KSThxU1IxcGFl
cW1wOXJOSkszeEo2UER3QQptRUtqWVMxaGlrQnJ6Y1p2SWkzOGFTM0dCY1Fia3ZwTit4ZFNkNUhX
VFcyb3hlZWd2ZDBHa0hKQ1NRb01SMko5ZHNyNUp4WDFsSC9TClAycnRlMk4xdmEyVlB0c0pCd0hE
N1c5MzZPRlJqYVhjM1ZuK0lVd2pqc1luS0FWM3B2NFJMY1lGeEhkbnZEWHBiOXkwRDZSdUpQc2kK
b1BQdUJyVGFZRVE3cUJ4bmpxQmFqZjIxWlp0Q05TelN0MVViVmpKVVdhWHZsUjFKOHVFckhkbWow
enc4TmhFS2pZYjdpcGxaYnhhNgo3a3Y0Sy9QWGtQRTNHQUtudFc1STZqZnRYMGp0QXVKZUc3SUdG
QmhJaUNXZ3JNYStaWnNDSENyWnBueU9scHV1QUZINnRCb1cxTHdsCnhubHBpUjVKZEpyYXVaekc4
cWpHa25ZaEpBVEZtbU5jbit4WDVxK2E5RGNZQXFlMTNwM3gxcVMvY2RNK2tMcVc3SE9CemhNTmdG
Qk4KdWFtY0N2N3B0ZUdmTXQ3TGFIOElQMHQ5ckYybEw4ZG5FQnRXZ2xERkVTTmxlbmhVWXZsZmUx
ZTJKYm1xSzRWWC9mOG5OLzFnQm9uQgo2UUVFTmhGcjMzT3JzOUtFN0NUdHFKQVFmbnI0SGcza0p4
S1IvZGZ4RzdmSzM2ODc0eG9PQVd3dEJWSk0yaTlRdzliNmdmMUJaTTcwClorZitrOGo5TWYrSnFK
cnBFL3ZlRVAwcW5CZXZjTzBGQURuK3lMaU83Znh2VjlvZHJJWnB3anBtK1B0VmszZWdRNkI2bXVx
aytrcUwKaHFwWVROb3ZVQjhxTGFVWVNoaDEvWTIxb2tjb1dYT3VQL3RHb1NqZUN5dWl6YjFDUE5O
blpLYlAvNzVRT0crU2phWFpkb2ZzRlZSaApBVlg4c2RTemJJaEZaTzAvK1dkczkyaUdmYXZaejhq
RmRDSkZBckVUb3lycEdwTjJBSFdGYkI1YlN5Y0FFeFpYbGZ1emMwZUtxTmlOCm5mZG84RWs5VVRo
dktxK0VJWWlTamFYZG15anZqeVhLdVFBZ2dldURGWXV1ZHJIdURDd2p2bFNLWDdWVi9uN2RHZGZJ
eFNDQnFFQ0sKU2ZzRjZpbHRMWlVBaFA4VWlzcGpwczhYbFcrR3ZVSWt1ckg3K01UYVF2Y0tLM0ZQ
TzJhUlYwMXkwYUlvbkM4a0xuYzdyY2UxQUQ2QQp2OUNsWWRmbHJBN0x0WHJiVVZaYTZTL2FZNVcv
WHdQcEdnNEJiSzNlaktxa2EwemFBZFNyMlZxV3pDWTZmdTZLaDd0SnJCUksrRS9rClVqSFdjTzBW
WDZFODkwZFUyZ21IbkdSS0N1ZVRqYVZ0b1hBZUFGTDh1UlViZkJOQ0lzcnVsZFhiQ215dFRveHJP
QVN3dFJSSU1XbS8KUUgxb2F3MVhXazFpQ0Jxb1VHWXVPb0llK1U4OGxrSi85dkpPT01SZUtSZk9F
MW51cjhuQ2VZZ3NvSXcvMXBIQlRhSmRhVVgzTlFOcwpMV1hxUlJ3QzJGcTlHVlZKMTVpMENiV3Ew
bUo4d3hPSTFPWWkyS1RNUEtnaVpqNFpyNHBLL2RuWkdNN1FvdWcvOFFBTkdmNzFOOW0rCk42d3dT
eVF1MDFjZ3JvQTYvbllsWlZ6N0t5ZmkvVzkvZkZOZ2F5bFQ2eiswYUtnZzBQeE1COXBhcXFlcFRy
cklwRTE0bGFqbnRyV3UKQmhCOEllUFVUSlF2cHRZajFGRFNEWXU1VFNaOWhVZ3NVV1NGOHpFSWF4
UFp4RGVXemw1QmlUdHdoRC9XL3NwUHVuOVp2dkFFZnRoYQpVRnB0R2RmSXhTQ0JxRUNLU2ZzRjZr
T2xwUlJEaHNzQlpEMGFxTllqVk5yUFNWS1B2TnVVZG1NM1hsVHhKWXFXaUN3WjJzU2lSU0szClJK
Rm5IZVdpeGRnTkN3REsrT1AvY09uQ3NCTGoxcGV5L0tWQ0FyRWY2UnE1R0NRUWV6T3FrcTR4YVFk
UVY4aGVZV3NaWTNoVlUxN3EKSkFTTnRabjJvcjBibHRCZUZCWVdIbXF2K0lyVVhxdy9WcjVvVVE0
TUFDbit5QmpmL3NxeXFkdm1nUUpiUzVONkVZY0F0cFlDS1NidApGNmpuVGlEV1l0aWxpKzhSR3BY
V1JoVlZSTHVNMm9UMnl2dXo4eDZoNUErS1VaanNGU0p4QkZOYU1UUUxDd3M0d0ovVFZZWm83NGJs
Clo2emxIVWdmNDRmU1NuL1JIcXY4L1JwSTEzQUlZR3YxWmxRbFhXUFNKdFNvaXc4QkZBVVFsek95
ekp3Ty9LZGdOY1UzK1lQdUxGRzAKY1l4d3RReHRFRmZBTWR4ZWhOYitDemMxWjlQMm1UdlZielZz
clU2TW9vUkFpOVQvOEdHbFJVTnRyVVhxNG1rQlcwdGI2TXhzYStVSgpPQktxS0NvdG9iMG9LMnlH
RHdBQUlBQkpSRUZVcEJPNS83UjNZK2N2T3BVVUhhdnFFa1dpMGhKRjYwWk5Ya0dLRUtqaHovS2t0
MVJhCnZURlBBbEdGclV5dEtrSEdPUVJmdDE2UVFPeEd1c0NrSFVOOXFMU1VZaER3TlZYa2RKUTU3
aEZLb1dtV0VVcUxwUG0wVzAxeElubWwKSldXOFRQeUZnYWl3UkxHd2FCRUF5dmd6dEU4WmEvM1U4
OU5TNy90Vi9sYnJmdGRYK2Z0MUoxMGpGNE1FWW05R1ZkSTFKdTBBNmdyWgpvRnVpdDRsRVhFNTdi
UlExMEM1dXR0eC9Zc1lTMDJ0N0daWmNvaGdFRy92V1pxLzRKWXFVdmRLMGlnYjRKRUtqVVdkZ0Vk
SDFGZzB0Ck1ZK3Q5ZkcvWDNmR05YSXhzTFVVU0RGcHYwQTlMb0ZveUJpYjJGSDE0aWQrb09zN3l2
dXpoOElzOFFvVnRKZDc4WGQ3Q0N1M08zU1IKQU1BUi90ejg4NDFHM2Z3ak8vQ0dzdU9IMGtwLzBU
R0EvbFJUVUMvaUVNRFc2czJvU3JyR3BCMUFYU0xyR2tBeEFiZlZpcDhvT2xJOApvbFA5MllzNzRj
UWRlWm11eXBjb1dpTEtsaWdDUUFWL2UzYlFVdGkzblBaR293RkRzL0tIQWNEVzZzUzRoa01BVzB1
QkZKUDJDOVM2CnRsWlJBQVVORkl3bDVramQ2YysraWFKNFR4UmZDVlFobVAybGRJa2liQ3pnQUtI
UjZENkxyUC83b1h5VG10M1dRbDE4YzlKeERvSHEKYWFxVDZpc3RHcXBpTVdtL1FIMm90QjdHWUlq
TVhudkZYM0dqdWxkOW9rOTB3OXFZLzVUM1p4ZVpQdVkvOGFCRjRid3J6RHBhb21nTApWV0lBVU1E
ZWFQVGY3bVA1NldKKzN2VG5VVm9pQmwzNU0rb2lJQmVqUUlvRVlpZEdWZEkxSnUwQTZnclowM25G
ekNmZXBzRmtsZWVGCkhxRW12bUs4MWVSVms5L2MwR1VEOTROa1RaVnp3azRzVVJUYWk2Q3lnQVBz
alViZE1nbHIvKzFWV09lN2pBNVBJRkx0VzQwRVlpZkcKTlhJeFNDQXFrR0xTZm9HNm5hMFZCUkJy
RUxvZEZEK0pqcURpRmFHOW1OSU93ekxIcXRvTVFyNWlLdG9MQUtwd0tVSytsdEQvMzJYTQpZMnVW
bFZiNmk0NEI5S2VhZ25vUmh3QzJWbTlHVmRJMUp1MEE2bWUyVmxCRmNrc2I2MzhiaTU5TTNwODlT
cUo0VUswL094dFdhRFBpCmpiakVLeVNYS0laNmZMaFh3QS84MlRCcDk3OFJXdXhDT056V3FnWUFX
NnNUNHhvT0FXd3RCVkpNMmk5UUg5cGE1UURTTFd1QzRCRXAKT1ZmOHhIU1NrMEJSN2x6c3o4NklZ
blMxSllyc3l5SCtBUUFsL0huRnp4cU4rcVVaVFFCYmE1Vy9Yd1BwR2c0QmJLM2VqS3FrYTB6YQpo
RnBWYVRHKzBtdVc1K01vcEF2SnVsTDFTbytHL1lNejNQcGkzeEtaQ3R5SExUU0RZQXNTODUxd3Fp
MnlXbHdkNE9QWTJ6VEVMNXJwCmRvdVpSMm1sTWNEVzZzU28vdENpb1lKQTh6TWRhR3VwbnFZNjZT
S1ROdUZWb2o2d3RYeHViMWN1bXpDS2pBbVBKV05JYWkrcUN5Q2gKdEZ4eGV1WS9zV3JqaENocXIz
eUpJb2w0QUtDR1A3Y0NnMXo3SzRYNzlmQUVJdFh1YUZCYW5Salh5TVVnZ2FoQWlrbjdCZXFNYkl1
eQp5ZjJpSklsQ3J3VDJDaE5BdkM3TGxCY2tscnV4Ry9seGUvMW1ZMDJ5ZUVVcUxRQ280NDlDM1pY
WDhkOXV6Rk1MUU1TQUJHSS8walZ5Ck1VZ2c5bVpVSlYxajBnNmdGbVRDS0FvdkZpWFJWcEpFeG9Y
TVhDNUxSRGJSWHZ1THBRV0phZEc3Q2ZaREdGYTBoMGhPQUFCUy9JbU4KQ0Z0VXVOOERiQzFkcXZI
VWl6Z0VzTFVVU0RGcFAwRHQxK3VsUnRGT2J5aDJEV1V4cFYxRFpaK3FhRDRaWDZjVmxaYjdsMDJJ
aUZ3MwpMS205ak5CZVlrRWlBRlR4UjhiSktxYTAzRnljUytnTUR3QzJWai9TTlJ3QzJGcTlHVlZK
MTVpME90UjhIYUF2dzRwVVNkZFFDaVZTClRDZkpWQ0FSeWE2aHFmYnlZMFRmS3hKSjdlWEh6WW1z
dkM0QWtPSFAydDBJdFVGcEJVd3FkRVlFa01ZQVc2c1Q0eG9PQVd3dEJWSk0KMmpkUmx5UVJwVjFE
U1c1UXc1VFdMb2NNVWIxcnFCdldFUm1odEZMdGRVUkVqS2poQlFBK2lkQm9ORGhZb2lCcngvRDgz
ZkFBcUhaYgpHYUcwVk5qSzFKcThBeDBDMWROVUo5VlhXalJVeFdMU3prOWRsRVF5YlNja0VXVmRR
NU1rSHYzc0VlcEo0N0NzUlZaVVdsUnV1d1Z0CkJaekJYMUJXKzliZ1BGRll4RHl1MHZBQVJBeTY4
bWZVUlVBdVJvRVVDY1JPaktxa2EwemFwdFMvSlpFdncvSXBSU0dKUEhuV0k5U24KQXVOTGZnUmlS
RjQzeVJaWllVeVhQelRzMzBnUUFyL3c1OHNLOTBhak5rN2xYNWhVNkF5S1liaXQ5ZXEvWDg4eXJw
R0xRUUpSZ1JTVApkaUpxYTEwdkszYW9JU083WWRGMlRoSTVWY1FrVVl3bzZ4RzZrL0twS0d2dFRV
YkVrNFVBOEFOL2NtOGM1c21leHJ4Q1ozZ0FpcGZtCi9YKy9YaVJkd3lHQXJkV2JVWlYwalVsN2h6
cHY3N2tmVjJpYmJ2TU1YVkVTYlprazhqbkhJTDVFQUFtUExJRm5Tc3NSSmFjSUFBWDgKdVJsSjFq
Y2F2YWV5SE9ZUk9xTmlxQVlBVzZzVDR4b09BV3d0QlZKTTJpSFVKcWdpaXRxbElJbE9kdzJOTmhj
ZmxoS2xWV29FYjRsYwo2d2YrQ2FYOXNRajVRZUFjZUtOUitlZlZzNi9qY0tGRE02bTk0VXBMaGEx
TWpSTGpENUNpTHI0ajZaSzJGdWRONUl2WFA3S1J1cXRkCmlkMndNa2xFMFpJcWRnMDF0V0d0Wi9W
SzZ4Y1JFb1RBU2Z5SmIzV3gwZWpqdTg2a1FtZEVBQ0lHM2Z2Y3FJdUFYSXdDS1JLSW5SaFYKU2RV
bkxjMXhXL0JPa2l1MFl1OHh2bU83YzZUaUNqL2o2clNZOXFMUXBNck5VbWRhbFFVY0gxWnFMd3JT
cTZDMEdGSGpLd0o4RVg5awpuRmY2K3d2MitLNHpxZEFaRk1Od1cydTJURUVYeGpWeU1VZ2dLcEJp
MHZhaVB1alJRRVNpa2JxWFJHbm5LaWFKL0l2UmZXSUM3c0d3CjFrZTdzU01BNEFoLy9PWjRTbWJ0
UUFLeFhRQWlCc1ZMTTBPbVFKTWF0bFl2UnRoYS9VZ1htTFJCQkdYYVJiWk5kMlZZVEJLbElvbEMK
dmpHV3lSUEovdXpQaHcxWEJRb0wrSUUvTitOOHAxSHJGMktjQld5dHBqSEExdEpnWE1NaGdLMmxR
SXBKMjRJbFVUTWsyM3RTbEVSUgpKRkU4eEpvd1NoekVIOEdIM1VSLzlsUERTdTNsajBDblVlQWNZ
cVBSWGJrL0FteXRUZ0hBMXVwSHVvQkRRR01FQVd5dGJxUmZtN1N1CmJkVXVrcmFvWmxqaHVYK25r
MDBzSWxQcEdob2tFZEZ4Zi9Zd3JGQk52dURkQnJZNHJJOFdBSTd4NXpZaUpFcVdFdTY0K1YxNmZK
K2IKVk9pTUNDQ05BYlpXSjBiMWh4WU5GUVNhbitsQVcwdjFOTlZKUHpOcG5TMUVsUFN5SXJLODlz
bXdacVErWnllVmxyeHpia0UzL2VyUApIazdJK0pLd2JGaE9oQnAzNEJSOG8xSHZZalYrbXJkTElO
NlA0Um1HQjBDMVR3RktxeFBqZDNNeFJVWlZVaVFRT3pHK2VOSmFMbGU4ClFVWEJqekpDSkpGZjBl
ZmY3MXBrdVJZTnhnZVdLSzJhZ0tzTUsxcGt4VGd6U1FjQXgvaUxmeEVVZXpSNE5MaFB3ZFpxRjRD
SUFRbkUKZnFSZnk4WDhJRVVDc1JPakt1bXJKcTNmZWRBYTZRdVZteW5JUnVxWlNLSW0vZGtQaHQx
elBmdEFGMDhVV0JGL1JDWklxMWp1ZDRoNQpiSzI1aE02Z0dHQnJhVEMrMkNHNHc2aEtDbHVyRStN
YkppM1ROMFJrZlJsV0VJbEU1RG9zQ0VrVVJSSkZTVVJCSk1uaUxVdmtlNFJHCnhQN3NkNGNGZ0Yv
Z2JSck0xUnRjZzF2R3N5SG1GVHJEQTRDdDFZLzBWUTdCYzFMWVdwMFlWVW5ubmJTOHhpclVxdS9s
VVY3aStPTVQKcFVXK24wS1FST1N0cjRJa2NtK3hZZGhBL25QWVRIc2w1d2NBWmZ5Uk1iRkp3emtI
SzBmTEJPTGRJU1lWT2lNQ1NHT0FyZFdKOFEwTwpRVU5HVlZMWVdwMFlaNXUwMXJkQ1lOcUZtVVJD
YVFVZFpYZ3pVaWVTVE9wSWtVa2tVVlJONXRxdzhSMVJld0hBYndRSFMzcXlEd0JiCmEzZ0FWTHVF
STVTV0NsdVpXcE4zb0VPZ2VwcnFwUHBLaTRhcTJOVW1iYjdFajNkWUVJWG43djNiUnRGc2lwSW9p
aVNwdE9wZFE1TmgKemNHd2lZQ3o2TkVBbk1MZi92LzJNcXkyWDdPV3R0YmR3T1p4bFlZSElHTFFs
VCtqTGdKeU1RcWtTQ0IyWWxRbEhUcHBSUm1XMHpkbQppMnFHS1BSb2lDS0o1TDZGUkdFMVlsRnAv
ZTRhS29lMUlVVC9KamtzQUp6Qkgza1Rsb2lzL2RjcHRmejBQdldoQk9JTU1ReTN0WkJBCjdFVWFH
SlVJa1VEVUlQM3dwRTBxejJXV3I5cE1nWWtrMnNyTlNBMFRTY1FHeWF5eW1DMHNLQzN1bitYREFz
QXgvc0pQZTUvUjNuekQKYmExNWhjN3dBQlF2elF3SlJFMXEyRnE5R0dGcjlTUFZtYlN1a1pVeExr
dm5YazM3cWp0OVUxRmFybDZLSzYyOXFOZ1V1NGFHYmxoKwpKSXBLSzNXNWtwV0RidGpHRndINEtQ
NWNabEN6RTdBSGJLM2hhcThhQUd5dFRveXd0ZnFSd3RicXhOaHowbTZ4ek54NmI0bEpJdC9JCmlx
dWtxTFFNN2RmRDE2cGIvdThvaVd3MjdLN1lTcGxLM3VaS2FxOUV3QUhBYjRSR281ZDdORFJFZzFz
R2JLMU9BWXhRV2lwc1plclYKU293L1NZcTYrSTZralNjdEszYVhTL3lJWE83UHY4dDZiNGtwTFRJ
K2kyZTUwdUx5SytxcVNqTlNwN1NFeStXYU1sZzViQmdCT1VMZwpKUFpHby8vaXpDR2lDWjd4OTJO
NGZBN3pYSVRoQVlnWWRPWFBxSXZ3NVZ3TVoyUS9mMWdRSUlIWWtiVEZwQTBwdkh5Sm42SHdpcGRF
Cjd2ZVduTzhWSXNoV0RqS1JGS3JUTSswbGxSYlRjREs4d3JBQWNCSi8xdklscDZHK0wyTDRZeDRK
eEJsaUdHNXJJWUhZaXpRd0toRWkKZ2FoQitvcEp5d3dxdDhTUEwrR1QrbVovLythMGx6ZTZva1Bs
ZEJTbFNpc2R4QVR0OWJNWnFUK3JQVHhaZmc4QUovQkhoZzQzSWZ5RQp6a0FDc1YwQUlnYkZTek5E
QWxHVEdyWldMMGJZV3YxSTcweGF5OHF3eUN1ZVFpT3JMWW9rcHJUSXZSaUxySXBLaTJtNGd0S1NW
bGt1CjRJelBGeEtSMmE1ZEUyQmwvSVc2d0o5Znd5L29ETmhhVFdPQXJhWEJDRnVySHlsc3JVNk01
eWF0TER5M1h2RVk5Z2JSeU1wWHdSTkwKdG15R1FrZXNUR2t4dWJhTHBQMk45ZjdzdndTY2dZY0ZY
TUNmMCtiSExsYUdlWFRHL1FCZ2EzVUtBTFpXUDFMWVdwMFlZV3YxSXoyWQp0T1hDYyt2THNPSnJU
aVFSTjZpWUpOb2xVS3lnRXZLTGtrRk1PZ2pYY0ZKN09kV1hLSzFibHdGWUVYL1draVc3SndwdktQ
TjVudkgzClkzaDhEdk5jaE9FQnBESEExdXJFcUs2MGFLZ2cwUHhNQjlwYXFxZXBUcHJiV3FIdzNE
Q2x4YnRoZVc4cDliU2tRZVZGVXRqMnJkTEwKaW9HMWZTOE04blBmSGdBNGhiM1JhSU5wOHdWSHAx
MEM4WDRNenpBOEFLcDlDbEJhblJpUlFPeEhpZ1JpUDlKb05SbGlTcXRRZUU3RQptNUhHRWZKbXBG
NFNHU2JmbUVHVkRVdmszVEx4QUl5UjVFcHJyNmlCekFMTzRjOVN4MTBJaHovajc4Y0FXNnRkQUNJ
R0pCRDdrU0tCCjJJa1JDY1FlY0lYbjVmWUthZUc1cTZBNmFrYks0UTBxMFExTEtLMms3WHV4R1dt
MTdUc0FuTUpmMU9NZGJoenpHaW8zanI4N3hLUkMKWjFBTXNMVTBHR0ZyOVNPRnJkVU0xcGlObFVQ
SlBnZzJOSjJTU3N1OWtDa3RTNkZnU2hwZHNvdERFRW15L0V0WVpiblMyditEdEFJdQo0bytJZnZS
cGFJUjVkQWJxNHFjTEFMWldQMUxZV3AwWVlXczlITm1ZS0luSWNLVzFzU3lleVpiNEVYL0JaSkpv
VjFwSjIzY3YxM0szCkxDUWxnOUZGSkpLU3pDcUR4Z0t1NGMvSmVNVm56WENkMFRLQmVIZUlTWVhP
aUFEU0dHQnJkV0tFcmRXUEZMYldqZEhTM1ozSmFhMVkKZUU3TVd5Snlpb2NWbnJQZmU0RkdlZHQz
b1pLS2JkOHB5VXY2STd4VkZvY0ZnQ3Y0SXlJeVEvWjYzcGtkaGovbWw3VzFoZ2RBdFVzNApRbW1w
c0pXcFI1UVlmMWxwRFNIVlYxbzBWTVUrWWl3cytuTkRab1hubGlrZXFpN3hJNjY5cXIyc1l0eTMy
cjdMdXdVQUhPRXZkTUJpCmZ5Y013RHhLNjM0TWo4OWhub3N3UEFBUmc2NzhHWFVSa0VCVUlFVUNz
UlBqRGRJb2tncUwvaWdXbnN0cnliT0Z4c1J4aE5JeVVtbFIKMjdidkFIQVdmMjRTL1F0ejBXR3VS
K3lnR0pCQW5DR0c0YllXRW9pOVNBT2pFaUVTaUJxa3B4bHRPQ2lXUTFGZGFZbkM4MkxiZHkrSgpu
QXNXdWo5SXBjV3RNcTYwa3J5a1A0MWRhWVdkY3M2ZUhBQUVCOHVFT1JobUZYdlRYSS9ZRVFIY2or
SGxDVVNhNlZOQVhid1NLV3l0ClRveXd0VWo4em15eW5wMHBMV1BjU0xGVXkxb2kyclpNYWJtOFhx
cTBmRjdQRUNVdUY0VzhKTVYvTTBYbkJwRktLL2FPQjRDeitQUDUKNVgvZWIvVy9ZZCtNZVI2eE04
UUFXMnRVRE5VQVlHdDFZb1N0MVk5MGVWdkx4RC9yWFRjczJSbWh0T2pQK01Kejl3NVdlRzY5cDVV
bwpMU29vclppWHpKUVdaVzNmVGRZN0hnQk80czhTTDhGaU9GUmFOTUZqL3NVQndOYnFGQUJzclg2
a3NMVTZNUzVXRjg5SWc1VVVYU0tTCm0vOVJyYjFDcWUyN1A4UVNwVzNmOTdFTlpZTUVwU1h5a3FM
dE93OGNUZHlCUy9palBUMTRNRzBxOTdsSkg3RWpBcmdmdytOem1PY2kKREE4Z2pRRzJWaWRHZGFW
RlF3VUJFb2hkU0cyNnJYSmM5R2ZMU292b1d0dDNvbUxiOTdCQXNWUUJGcVRYVWR0M0FEaUxQN3Aw
bzV6UwoxaG9lQUQyL1R5R0IyRFFHS0MwTlJpUVErNUYrUFlIb3JTTmpOck1saS81RWV3VWkzcDg5
bGtNSnBVVloyL2Z0dU8wN2VhVlZ5a3Z1ClNvdXBMV0pwSG9nczRBTCs3RDZScm42bFlHdjlDdUIr
REVnZ3RndEF4SUFFWWo5U0pCQTdNWDdYMWhMYWhkeWl2NDByTGJIb2o2alMKOWoySUpHZU04WHAy
eGtPV0ttM2ZUMWVBZGJrTXdKZng1NzlORDc1S2g3YldYSS9ZUVRIQTFwb2hCdGhhR295d3RmcVJm
c2pXT3JQbwp6L2lxODZTa3lqQ2xaYnlISmV3b0o1dFlwaSsrSlNvdFNpckFjcVZWYXZzT0FPZngx
M0lqd3RMWGNkNUg3THNDZ0szVktRRFlXdjFJCllXdDFZdnlBcldWTEd6TWZMUHB6NVZCODBaK0x4
UzN5eTVWV2xFMWxwWlhtSmNNaGhrUUZXQ3lDYjNMbXdFTDRjek94K1pjVXRsYW4KQUI1ZnhIayto
ZUVCcERIQTF1ckVxSzYwYUtpdHBWb3cvazViaStYeFlvRlV3dUpycXFUU2VyREJEa1dkWk9Qdnox
V0FzVmdBNEN6aQpWam05Y0tpMGFJS243RnNEYUpkQXZCL0RNd3dQZ0dxZkFwUldKMFlrRVB1UnZx
emRRL0NqeUxpVTNWRXBPbGMzc3ZDY2l5VGF6WUowCkVONzIzV1pLeTdyelNGYzFVa0ZwWFQ1TFlH
M3Nxd2l0TWFiN2w3SnkxM205MEdrWHdQMFlZR3UxQzBERWdBUmlQMUlrRURzeHZpR0IKbUpTaUc3
Ym96OVJLMGZORmYwYTBWMkREdWxsVlYxcHBKR0ZWb3hkNTdGU3NRWWs3Y0E5LzFuOGhWVzhFU0NE
K2ltRzRyVFg4Q3N3UQpBMnd0RFViWVd2MUlwMDBneWdJcDl0NjBGTDJndEdxTC91SzRKbEZhbExS
OTl5bklWSzZGV251bXRJVFJCWmtGWE1GZi9wTHFqYUJFCk51OGo5bDBCUEJzQ24wSTFBTmhhL1Vo
aGEzVmluTXpXMm9YTHhncWtzbklvWThoc2NvQWZpLzZDMHVLRENObVVLUzFMbEhRMFRaUlcKV21z
UEFCZXd0Mm1vZnQ5Z2F3M1hHUzBUaUhlSHdLZFFEUUMyVmlkRzJGcjlTR2V5dFF6ZjZZOUtTc3Zy
SDlFaWEzOHRWcThmYjdCRApxZEp5WlZpc1AvdXV0TVFTUlRlMk44WWdyNERMK0R2NXZaNUhhU25G
VU1JOE9nTzIxblFCakZCYUtteGxhazNlZ2JhVzZtbXFrNDZzCmk3YzIyUzdRK0FJcExtWkVPUlJi
OUJleWdVS01sWlFXcFZuSXZSNkdGMitSM0dDSGd0S0tBMW5ZVjhBZEZGS0V4eGllUUtScEg3RWoK
QXJnZncrTnptT2NpREE5QXhLQXJmMFpkQkNRUUZVaS9ta0IweXNxU0UwbGJWb3BPZnRFZmk3Q3k2
STlTcFJVR01WNGt5WG92THNmOApJVmJ3eE1SbG9Wa1hBSnpIMzVOdjB6eTIxbHlQMkVFeElJRTRR
d3pEYlMwa0VIdVJCa1lsd2c4bkVMMis0VXFMOVdnSVF0clhWS1ZLCml5LzZZMGJZYm5TNVhsYUJL
MVZhYVJiU1ZGT0s4Vi9SL1FLQTgvZzdMTUU2aStHMjFyeVAyQkVCM0k4QkNjUk9BU2hlbWhrU2lK
clUKc0xWNk1YYXp0WGExcytzWEU1UVdSYVZGUG0wWDZKa0FpdUVkTGZvanI3VFlTWGlpc3RLeVFX
bVpndEtDdGdKdTRKR0RWUVJzclMvbwpETmhhL1FLQXJkV0pFYlpXUDlMbXRoYXJqaEk1dTZobUhO
R1dML3FUcGVoY2FabDAwWi9icEVUVXN5ZEtLOVo3aFVOaUNqSXAzZ0tBClMvaXp0bGY5M2hpbHhm
aUdQMkpwSnAyQnV2anBBb0N0MVk4VXRsWW54amEybHR6RXBsNGR4WlZXclJSZGhFZmUwNm9wclMx
VFdvVjYKTDZLUWdxUm9kQUhBVmZ3cHJJN1F2dlhNYldzTkQrQitESS9QWVo2TE1EeUFOQWJZV3Aw
WTFaVVdEYlcxTkQvVDI3WVdreXRDYVJtWApIQlJLS3hSSVZaVldxUlRkRUczRUJvbjFYa0hUVlNy
clJiMFhheUVCZ1FWY3grVlZoQTh4VHdKUktZWU13d09nNTU4Q0VvaE5ZNERTCjBtQkVBckVmNlZX
bFphM00yUkdWdHd1VVlzdUdldmJBa3BhaXAwckxPb1dVWmlGRlF5eXB0TmdlTzM2TTBCZ0NBSzdo
YjlSTlZ2VkcKVUNHYjV6RS9QSUQ3TVNDQjJDNEFFUU1TaVAxSWtVRHN4SGd1Z2VnOEsxWkVuaXV0
amRLTm1VV0JWS1VVUFNndFNuUlRXcjN1QjZHQwowbklIN1VwTE51c0NnRXVJRHRZcWY4N09uVUNj
SVFiWVdqUEVBRnRMZ3hHMlZqL1NpcTBWcm5sd2tvemJ4Q1pWV3VRS3BIak9MbE5hCmFTbTY2OUZn
K0NCaDNGanlkVnhaejVTVzlTOUNaZ0hYTVhvdndnbzE2dUxmSFFCc3JVNEJ3TmJxUndwYnF4T2p0
TFY0ajRaQ3pvNmkKMG9vNU9rdmhMUUViNzRaVlZGcFVWbHFzZU90bnZWY1NDUUJjdzQ4YXJDVVNp
RlErejNrZXNhTmlHSjVBYkRIQVU4d1RRQm9EYksxTwpqT3BLaTFhenRhd0xvT0FrSFd3WEdKU1d6
Tm9acWJUWW9qK3B0R0pKRlRQTHBOSmlsVmhwMHJIRHhRQytqN05GN3F2Y1lRK1ZsbElNCkpjenpt
QitlUUx3Znd6TU1ENEJxbndLVVZpZkdOUktJNnFUMndFa0tOaFZ2LyttMFZ0QlZyQTQ5VjFyY2tB
b2l5U3VscEhoOWY4OVcKVlZxV0R3SUFsekgzWG9RRHFTdGtyeGM2N1FLNEh3TnNyWFlCaUJpUVFP
eEhpZ1JpSTJ4TXZQeDJrcnpTeXROMlJQSERTUGVOM2t1NwpLRlZhdm5nckRpS0x0NHhzUGNyMmpi
Ynk4d0NBYzNqVXBtR1ZQMmVSUVB3VnczQmJhL2dWbUNFRzJGb2FqR3ZZV2gwbnRyVXU5Y2R6CmRz
ZE9Vbnd0V3ptNHYyMHZSVGZDb2RvSFR3cW9Da29yRm0rRllCSm1Dd3NMdUljMmZiQlcrWE8yUkRi
dkkvWmRBVHdiQXA5Q05RRFkKV3YxSVlXdmRHTTBsQjcxSUtpd0RkRTVTRUQxQ05kVTJaZzdKUVJM
N1J2dWpMS3RlTjVHb0hBa0pwUVZ4QmR4RiswYWpxL3c1QzF1cgpVd0N3dGZvRkFGdXJFeU5zcmF0
REJTZnBwNzVobkNiYVhFWVdTSjFYV2o2QktJcTNtTkl5aGcxTDVDdnJuNTB1c0NnNmRuSmY1UTU3
CnFMU1VZaWhoSHAwQlcydTZBRVlvTFJXMk1yVnF3Zmc0VytzRmRmRldiQ0M0Ly85RTM3QXNIbFdV
VnFrVWZVc1gvVVhweGZxT3BrckwKWkVyTEZXL1pUR2tCd0dWb2JKVXp3eDFXZzdwQ051a2pka1FB
OTJONGZBN3pYSVRoQVlnWWRMK2NveTRDRW9nS3BHY1pYUWNHNnkycgpHTFhUTnpVbmFUOTI5N0Rp
SWFGTmczOGx6VG15ZjVtUWhlU2w5akdZTkJJaTY1dThuenc1QU9ENGMzbnBULyt4TllCNlNsdHJl
QUQwCi9GTkFBckZwRE1OdHJZL2ZCM1pHSkJERGV3d1J1WTBJRTNGVFVGcVVPa2xSTmxrbWtqeW5k
OEw4SUJXbDVTdXg5cGZrdnRHWjBpSWkKN0VNSTNJWnpzQmI1WTJzQU5XeXRYd0hjandFSnhFNEJL
RjZhVmU0RGdYU05PMjF0WXN1U0tVcVVsaStaa3U4bmNyWldFRnBpR1NDVgo5NDBPdzVxYzF5dXRM
Skw5S0V0VTJEY2FBSzRqVFJFdThzZldHT3BEVzJ2NEkzYUdHR0JyallxaEdnQnNyVTZNYTl4cDAz
bkZLdE1UCmZiUEY0dlNvYitSUVlSa2dYVkJhdXdWbFMwcUw3UnZOSWtuRUdIbzBBUGR4VklPMXlC
OWJDYldxMG1KOHd4K3hOSlBPUUYzOGRBSEEKMXVwSHVzYWQxdkI2cUlPdG1rVTM5c3hKWXRzRkdq
Y3FFMG1XakJ2V25GRmFJcGlrM291SXIxa0VnQnM0VmVTdS8vMm5jWThaN1Z2UAozTGJXOEFEdXgv
RDRIT2E1Q01NRFNHT0FyZFdKY1prN2JlalI0RGZDS1dVUDZaVFNNdXhOTERsby9iQmJTV254U0RL
bGxjaytLQ3pnCkhxNnRJbHpFMWg1RGZhaTBsR0xJTUR3QWV2NHB0RXNnM28vaEdZWUhRTFZQQVVx
ckUrTkg3N1RleElyblorSUdnbmIzbUxqU012RXQKVVdsUlNCRDZjR3RLeXcrYkt5MWlyVWZqS1Fm
WjV3WVJyYmtBNERMdXQybFl4TlllUUYwaG04ZlBHQjdBL1JoZ2E3VUxRTVNBQkdJLwowZy9kYWIx
QXNrVDVCb0ttcUxTRXJVWGUxdktobVV3bG1lMlUwbUpIZVZ0TEJCT1UxbjVNMDZzQUxJTUdmYkMr
K3NmV0ZOUnpKeEJuCmlHRzRyVFg4Q3N3UUEyd3REY2JYMzJsdDhKNTRJaTlSV2tTMFhWTmFKQktJ
b2FwMTQ0ZDRzYlVQNjV5eE0wb0xOZTdBZlRSdU5QcWwKUDdiT1U2TXUvdDBCUEJzQ24wSTFBTmhh
L1VqZmVhY1Z2UklxU2t1MmFSQkthejlzeTVWV1VtV1ZLaTJ1end6dE5oWkZwWldrSEozUwpRbzhH
NERGNmRYSmZwMXFUOU8rd3NMVTZCZkFoVzJ0NEFHa01zTFU2TWI3SDFuS0wrQ2pkMWlZb0xiTXJy
WHdEUWErMCtPd1NSZkZaClhkWWxwV1hZcWZBbTc2SDl3NVd6QklDSTdsdmx2T2o3L3o3cVE2V2xG
RU1KOHp6bWw3VzFoZ2RBdFVzNFFtbXBzSldwTlhrSDJscG4KQ0UxdFd4dTJXSStwcHRoM1ZPVHNp
SmdrWWxWVysyRWxwUlZmdXE2MElLNkFKL2d6aXJlQWw5cmFMNkN1a0gxQjZEUUs0SDRNajg5aApu
b3N3UEFBUmcrNlhjeFY3ZXllZCswNjdDNWN0VjFxSnJSWC9WZEJOWkgwQ3NhcTBFcEdVS1MwVGd3
bURFT3V6VlRvNUFMaUFQNEt0Ci9URnFKQkIveFlBRTRnd3hETGUxUG40ZjJCbW51dE5hYTdaTjdO
VjhaZ05CNDd3bFk0WFM0b3NIRTZVVkR6dFdXaUZyeVpTV0hCWlYKV01BamlCUWgvdGo2RkhXSmJO
NUg3THNDZUhrQ2thYjlGQlF2elNyM2dVQTYrazVyakFuY1pqdmNRSkFvNUFkenBVVy9sSllzM2hK
Swp5Mm10NkZBVm03d3pXOHQzUWdXQUc2aldZSzMreDliSHFHRnJkUW9BdGxhL0FHQnJkV0ljZDZk
bEt3ZUQwcW9VcHhPRkVuT3B0UHhyCkpKVFdkazVwUmVxMGp0N1NMck1vMzdnUUFHN2lkNUg3a0Z2
UDVOV2FMNlkrVkZwS01aUXdqODZBclRWZEFDT1VsZ3BibWZxcmQ5cEMKVnlyajY5a0xTc3M3U2V3
Z1VXVVYzeEtWbGg4Mm5CVlhXckpVaTFLbEpSS0laTGluQlFEM2NHRVY0WnEydGlhR0p4QnAya2Zz
aUFEdQp4L0Q0SE9hNUNNTURFREhvZmpsSFhZVFAzbW1qbmlrb25xQzB5SkF4b2xUcnZOSXlqQ2xS
V3ZGTlZhVlZLdFdDd2dJZTRHYWJocVZzCmJZS3RwUkJEaHVFQjBQTlBBUW5FcGpFTXQ3VStmaC9Z
R1h2ZGFXMVVQSFdsdFpVVVR6b0lSYVVWeHZtcHROdzQrOEJ5T3gzM0hzYWIKeURNQXVJZW5mYkEr
KzhkV3dzaCsvdktmczdDMWZnVndQd1lrRURzRm9IaHBWcmtQQk5LbWQ5cWdyVFl2WG54YWo3YXJH
d2lXaTlPbAorSW9ORnloVldwNTNWMXBwcVJaNWFrUHl3Z1BBTmJSc05QcWhQN1lPU1FPakV1RWc2
a05iYS9namRvWVlZR3VOaXFFYUFHeXRUb3lQCjc3UnVaVjZoSzlXK3V0Qy83V0FEUVFySndhd29u
bndDa1NtdE9JNDFpZElpOHQ3WUw2VUZBRS9RcFpQN0IvN1lPc1hJZnY1eVBXenAKUEljL1lta21u
WUc2K09rQ2dLM1ZqL1RXbmJiZWxZcm81TFkyMForS3V6V25wVnBubEZheWIvVCtVamdYWS8wTEtI
RUhucUwvVmpuKwpoOG0vLzA5Si9ROGZ2OFBPYldzTkQrQitESS9QWVo2TE1EeUFOQWJZV3AwWXI5
OXBZeGFQRzBtM2xCYkw0cFZLdFpJaUs2NnJXQVY4ClpxY0ord3dXRnZBUTNRVld3QnR0N1R1a2dW
R0pjQkQxb2RKU2lpSEQ4QURvK2FmUUxvRjRQNFpuR0I0QTFUNEZLSzFPakNmdXRJVUUKbkdpSWxT
b3RvdFJiT3ErMGhHSkx5OWtUa2VlcXZhcEtDeG9MZUlDL0FkOUc5dlBNZjJ3OVpXUS9mOW5XcXBE
TjQyY01EK0IrRExDMQoyZ1VnWWtCUTl6bStBQUFnQUVsRVFWUUNzUjlwN1U3ci9tbWxrTXFWVnRM
a1BaWnFzU3dlYmJKSEF3Vy9LU3F0ckZSclgxMllVUWVsClJWN0Q4WENoc0lBbmlBN1dtRytqUGlO
c0xWMnlTUit4ZzJJWWJtc052d0l6eEFCYlM0TlIzbW1OU1hSU1VGclJKdkp2S0NvdGlnbEUKaXJz
MXk1b3FyclNJdFI1bENjUXpUZDY5bllZVUlmQVE1UlFoYksxZWpPem5MLzg1V3lLYjl4SDdyZ0Nl
RFlGUG9Sb0FiSzErcE40VwpNdDViMnBnalZWN0J4NVJXU05xRkcvWjVwV1dJV0QyN1VGb2tseGRT
U1duQndBS2U0RWNOMXBCYjRmQS90cFJJQTZNUzRTQnEyRnFkCkF2aVFyVFU4Z0RRRzJGcHRZWW15
QkZ5aXRJeXYwd29MQTcwYW80MStsV3JkVWxwdW5KTFM4dUcxdlFyQWNqaGI1TDVJQXBHRzJscGYK
dnNOV3lJWUxIWnJwTWIrc3JUVThBS3Bkd2hGS1M0V3RUTjJOMXhwanlMTGlkRm5xRkwybFhXd1pT
a1hTeVZLdE1LU0o0NFNYb3RJcQpsbXBac25FWlk2OExBU3lGTzZzSWtVRHN4Y2grL25MaW9FTDJC
YUhUS0lEN01UdytoM2t1d3ZBQVJBeTZYODVSRjZIVFdlNFNSbmhMCjBjTXFkYVZpOU9WdGJYNldh
cEZQSUJwMlNLRW8zcFZxSlVxTENCb0xhSUJIYlJvV3NiV1FRRlFtbS9RUk95Z0dKQkJuaUdHNHJm
WHEKKzBEdUNTVXIrS1J2SkJYUDlWS3RFSGhOYVYwb2lnZUFCMmpXQnd1MlZpOUc5dk0zL3B3OVR6
YnZJM1pFQVBkamVIa0NrV2I2RkZBWApmd2Z1TU5aSE5Bd3VsUlpWU3JYT0tDMlgrNk9DMGlJbnBN
NldhcFh1UUFCd0dlMGJqY0xXNmtnYUdKVUlCMUhEMXZvVkEyeXRVVEZVCkE0Q3RkWENVTVZ1cHFE
eFhXdDZSS2lndC94N1dlclJXcWtWQmFjbDY5bjNvODZWYUFQQU1mVHU1RDdTMVVCZi9CZXBEcGFV
VVF3bnoKNkl4bDYrSnAyazhCdGxZQjRTMW1FNlZPaGFMeXJKNjlta0RrQXllbFdyK1VscWYrVmFv
RkFFK2d0RlVPRW9pOUdOblBjOTlodTVCTgorb2dkRWNEOUdCNmZ3endYWVhnQWFReXd0Znd2OG5y
MlRhNGNwSU91Vk5kTHRkS2llTHBYRkE4QWovRG41NTdTdHhJSnhJNmtnVkdKCmNCRDFsTGJXOEFE
bythZUFCR0xUR0tDMDR1dE9KREZ2S1ZOYTU3cFMzU3ZWRXJiV2ZrZjJaVmxiU1dseGVRWUE5K0Vj
TEZFUXFDNjIKWUdzMVptUS93OWJTeHp3QjNJOEJDY1IyQVlnWUZrNGdNanVLZVVzbmxGYTlWSXRJ
dEI2dGxHb1ZkNGt1SlJCNTFHamlEanhISVVVWQpaeXRzcmJhTXNMVjB5U1o5eEE2S0FiYldEREdz
YUd0WnUyZmw0aXV4T04wRmxDZ3RvcVQxcVBlVzdwVnFSWWwzdFNnZUFCN2hxQVlMCnRsWkgwaVZ0
TFZXbHhmam1mY1MrS3dEWVdwMEMrTHl0WldVV0x3VERGUTlMSUc1TWJGM1lRUEJucVJheGU0SXYx
YkxGVWkxRHlCRUMKejNGNnE1eHh0cGJtclhDZ3JhV210R2pjWTBiNzVqNjNyVFU4Z1BzeFBENkhl
UzdDOEFEU0dENW5hd1ZkRmVWTEVFSGlQWm5TQ3NWYgo3ajFYUzdYU0hnMk15Q1JLSzdXMW1sOEZZ
RWxjWGtXSUJHSXZSaVFRZGNtR0d5ckRBNkRubjBLN0JPTDlHSjVoZUFCVSt4UytvclJFCml5bnVM
VEZiSzNsL2tEdkdGcFVXTzBpVWF2RkJoTktTcFZyOEVKWkF6RXExQU9BaDdyZHBRQUt4SSttU0NV
UU42Z3JaUEg3RzhBRHUKeHdCYnExMEFJb2EzSnhCM00ybUxLVHBUVTFyaXFTTDdmN0lFSW8rdXNF
djB1Vkl0SGx4YXFpV2tHQURjUjVzK1dMQzFlakhDMXRJbAptL1FST3lpRzRiYlc4Q3N3UXd4dnQ3
WFNsSndvaHNwa1U3U3NSQUp4TzVkQVpCSGZMdFhpb1FIQUl6UnVOQXBicXlNcGJDMUZzbmtmCnNl
OEs0TmtRK0JTcUFiek0xcElORjV6YnhHU1RlNEU5UUVvSlJDR1N5TkNWQkNKUC9CMldhcmxEYnA0
b0FEQjA3T1FPVzZzWEkyd3QKWGJKNUhyR2pZbWlaUUx3N0JENkZhZ0J6MjFwSlNrNG1CLzBienBS
cVNVOHBTU0M2UVZoMG1kS3FKaERycFZvQThBZ2FXK1hvS3kwYQphbXRwM253SDJsb3JLeTJsR0Vx
WVIyZkExcG91Z0JGSzZ6ZWJkWDFGQzgwOHZRRGFSVTR0OGNjVGlGc3BnU2h5am42Y0VKcFFXbzdv
CmQ2a1dVb1RBYy93WlRRbUNCR0kvVWlRUWRja21mY1NPQ09CK0RJL1BZWjZMTUR3QUVZUHVsL1A0
SW1URlQyVE1KdldOek9JeFc2dWkKdElnczIwQ3dTRlJTV3Y0OThUV210Q3d2Q0lPSkJUVEJIdzBU
QkVnZzltRkVBbEdYYk5KSDdLQVlrRUNjSVliaHRoYWpzdnlYRzNlYgpiSFhsb0hTYmhOTEs2ckpD
WFh4TmFSMGxFSG1NZmdnclAwd0F1STgwUlRoQ0VNRFc2a1lLVzB1UmJONUg3SWdBN3NlQUJHS25B
QlF2CkRaZE1UZ0FWOTEzZVErRzJWamlzb3JUcXRsWmNnY2cxVXBKQTNOLytNNEVJQUUxUXJjR0Ny
YVZBQ2x2ckM5U3d0WDdGQUZ0clZBelYKQUxRdVRiNXlzSjZTQzdiV0poVk91Z3lRaWFSS0FwR3Nm
MDlxYS8wcTFaSitHZ0E4dzZraTk0RzJGdXJpMjVPT3M3VldWbHBLTVpRdwpqODVBWGZ4MEFXaGNt
a0pLTHF0bk55V2xsVlpESlRZWXM2emNqb0oxcFJVUHFpVVEvUnU4QWdPQXg3aTJpaEFKeE42TXFx
UklJT3FTClRmcUlIUkhBL1JnZW44TThGMkY0QUdrTUhTTGJpS3NrWmhReElsbGx4WldXUDRRS1Nt
dVRMM25KRlBadVRoY3R1bnAyS2lzdFhvVUYKYlFXMHdzMDJEVWdnS3BBaWdmZ0Y2aWx0cmVFQjBQ
TlBBUW5FcGpGMFUxby9WZzdtdHBZWFNUR0JHRUtKaWI4b2tsSmJpMWxXd3RiaQpJY20yOEptbkJZ
a0ZORUtEUGxpd3RYb3pxcExDMXRJbG0rY3hQenlBK3pFZ2dkZ3VBQkZEaTBzamlwK3liQ0VWdDJw
T3E2eXlsWVBlCjF1S0txRkJIWDFKYUptN2JZNW1CWmJpdEJRQk4wTExSS0d3dEJWTFlXbCtnUHJT
MTVuckVEb29CdHRZTU1UeTN0YXIxN016V1lwQ3QKUnd0MlZDbUJtSzVRcE55T2twbkFiT1ZnS1lF
SUFNL1JxNU03YkszZWpLcWtTOXBhcWtxTDhjMzdpSDFYQUxDMU9nVnc2ZEw0SGcxYgpSV2taOXg3
Um80R3lyWnFwSUpLMmt0SWlibXZKM0oreC9qMWtkMWFpU3FrV0FEUkI5NjF5aHR3akJ0cGFxcWVw
VHFxdnRHamNZMGI3CkVUdTNyVFU4Z1BzeFBENkhlUzdDOEFEU0dINUVabzNaK0c4TFdUemhOdEd1
eE5oYlNnbEVJNVJXTmVkWVYxcGhrRnl4QVVCRGFPeEYKdUFNSlJBVlNKQkMvUUgyb3RKUml5REE4
QUhyK0tiUkxJTjZQNFJtR0IwQzFUNkU0YVkzaFZWZnVwdUdTZzZMRXlyOG5IbDlML09WSwppNG1r
VXFtV1lhVmFSUHRlem9YMkVDUVUyOVZyQWdCRi9DMGpDSkJBN0VhNlpBSlJnN3BDTm8rZk1UeUEr
ekhBMW1vWGdJaUJDNkJhCmo0WnM1YUFYVzF4cHhWRmpndEVOV2xKYVhDUVJtUzBtRUMyampvR2FS
Tkl4cFFVQWpTQWNyR1VFQVd5dFBveXd0WFRKSm4zRURvcGgKdUswMS9Bck1FSU1Nd0hKRGlsV3ZX
L0dTRzRIWHMxY1NpTktPSXBNMkNhVW9wQXBLYXc4cFRTQjZXNHZiYVFEUUJPVVU0VEtDQUxaVwpO
MUxZV29wa0V6OWlYeFhBc3lId0tlUUJDSkhFaktUYzFrb0d5Uk4vMlNGY2VwSFp5cllXdXdFWkw2
VGNPSEZZS3c4QmdFYjRYWU8xCmpDQ0FyZFdIRWJhV0x0azhqOWhSTWJSTUlONGRBcCtDVjFIV0ZP
dlpzNVdESm04OTZxdXMvSTNEc0x3ZXBkVmRCYVdWbGRKTFc0dkIKVWR0NEVBQTB3SVVpOXlHM2pJ
RzJGclpCYkU4Nnp0WmFXV2tweFZEQ1BEb0R0dGFBQUVJOWV6R0w5M3Zsb0NGL1RGYUtiaEtsRlY1
agpDVVR6VzJubGV4ZkN3Z0xhNGM0cXdtV3NGeVFRdTVFaWdhaEw5Z1doMHlpQSt6RThQb2Q1TG9K
T0FGRURCYVVsTGUwMHo1ZTJDSzMwCmFCRDE3SVl0REtTMHVzdm00MloybWlWTGxPM2tBd0FOOExS
Tnd6S0NBQW5FUG94SUlPcVN6Zk9NbnlFR0pCQTd4eUN6ZVA2MVhTSDUKQmxtbEJLSlhQS1Y2ZHY5
Q2FrZlZTN1VTa2NjVVhCaUhKUzRoc29CbWFOWUhheGxCQUZ1ckd5bHNMVVd5THdpZGRnSGNqd0VK
eEJvcwpNVWtrczNqaVBUOVhEbTcrUGU0WVdhc2VoaVdpd3FKRnByVDgzZHZuR0lrQ0VWZGFBTkFN
WFJxTkxpTUlZR3YxWVlTdHBVdjJCYUhUCkxnYllXbzFpc1A1L25IVFpVc1VqSFNrS2liOWszMlVo
bWxnOWV6MkJHTVZXSnVnU2tWZHF4QVVBcmRDM2svdVFXOFpBVzh0YVBkcGwKVkt4blhNbldVbFZh
ak84TFFtZUdBR0Jya1JjdUlnRm5tSnFoZ3Jma0RrekZWc2tKODhzQUQ2dTdDdFNaclJWaFVZTUZO
SWJTVmprcgpXUy9EYksydnExalBxSGllb3g3MjJ0K1h1VzJ0NFFIY2orSHhPY3h6RWE0R1VPNUtG
WVpKVzRSV2VqUVlwclFvMytpR3hBYUN0akJ1CnByU0lLaHRMSTBFSU5NZmZDaXZua1VCVUlFVUM4
UXZVaDBwTEtZWU13d09nNTU5Q3V3VGkvUmllNFhJQUo3MmxiT1dnZjArbXRBeVYKNnRtekJLS2s1
b20vTk9kWWFnOXg1c3dBNENTaWc3VklMbVpnQXBFK2JXc2hnZmdwNmdyWmV3MlY1Z0hjajJFTlcw
dG9KRi9NYnJJMwpDS1cxbDJxNUY2eE1EaWJEVnZ2Q3l4WlpSOVFzL0tTTkF3QzBRU0ZGdUloREFG
dExnUlMyMWhlbzUwNGd6aEREY0Z0citCVW94VkRLCjRoR1J0VjdleEtLbnJKNDlXemxZU1NDR0Vp
dnlWVjhIMU1iL1YxeTBXQ3BFQklCSCtGR0R0WWhEQUZ1ck42TXE2UnFUTnFGR1hmeTcKQTNnMnhJ
U2Z3aTZIZHUyeS84b2szcEtYTzg2eU11RTl4RTRpU2Z4WmIxbVZFb2lGVXZxWVFFd3EyS1BTWW5Y
MHlCQUNiWEcyeUgyUgpFdU1oZCtxQnRoYnE0dHVUK2grK25FQ2s4bm5PSTNSR3hkQXlnWGgzaUdr
K0JaZkZvOHhiMm5LbEZWY08rbGQrMUxOYks0WWxxbGQzCitkeGZyTzdLcVVNZFBRd3NvQ0V1cnlK
Y0pCZURCS0lDS1JLSVg2QStWRnBLTVpRd2pjNVkxOWFTaXNlUWJ6b1Y1STUvRDdlanZDd0sKS3dj
TDlleHlBOEdZYzR6bkxKMHc1bW5KNmk1ampKWFVBTkFRajlvMExKS0xRUUt4TjZNcTZScVRkZ0Ix
aGV3TFFxZFJBUGRqZUh3Two2aGZCU3RsMDFsdmlROFJEV0luVmtkSWlLNGVOMUduT01iNWd2VlVH
YlFXMFI1cytXSXM0QkxDMUZFaGhhMzJCR2duRVh6RjhPNEZvCnlNU1NLWkdQeTVSVzRpMjU1R0NX
eFdNbFZoU1RnOElHTzhvNW1ncTFpVXJMSFFZQTdkQyswZWdpRGdGc3JkNk1xcVJyVE5vQjFDV3kK
THdpZGRnSGNqMkhpQktLb0dXZkY2ZlVzSGtuRlk5a2dOU2VzbG5NVUt3Y3RwOTdmc0FsTkYzZ2hy
b0RtNk5qSmZSR0hBTGFXQWlscwpyUzlRdzliNkZjT0hiQzAzMG5ZNmkxZndsaWdSVzNXbHRWdFVG
TXJWOTM5bjFFN0FSWlhuOTQyT0lxL1pCUUFBdmExeXhqa0VtamZOCmdiYVdtdEtpb1NwVzlkTmNZ
OUlPb0Q1VVdrb3hsRENQMm50OVhiek5EYXFzSzlYdmxZUFNXN0plYWUzNVI4UEd5UStoK0wydDVS
eFoKZnBDU053QkFFL3pGdnhOVXNFZ3VCZ25FM295cXBHdE0yZ0hVRmJJdkNKMUdBZHlQNGZFNVBC
bWdVSnhPUkxFaGxtdzlHcjJsY0hpaQp0Qkk3eWxLMHJLTFlrcExPeEZla0RWWldXaVRTbHdEUUJN
N0JRaTZtTjZNcUtSS0luUmpYbUxSanFLZTB0WVlIUU04L2hVRUp4QjlaCnZDaUp4TitHVVNSWkU4
ZGg1T1hFWDFCYWppYWpqamxIVVJmUFR4SU9GdEFjYVlvUURvRUNLV3l0VG95cXBHdE0yZ0hVc0xW
K0JYQS8KQnEwRVlpSldhaXNIVGZDV0RySjRuczlMTDB0TWVzV3ZZZGhPaHdXWDV4eXBsbk1FZ0E0
NHFzR0NROUNiVVpVVXRsWW54alVtN1JqcQpRMXZyeFVLblhReVQybHFXVEgxYm00TXNIaEdaTFN2
Vit1MkUvY2c1NXRTaXVvdnNMdUF1WHdVQU9NU3BJdmNoZDdSRkhBTFlXcjBaClZVblhtTFFKdGFy
U1lueGZFRG96Qk5EQjFoSjJsSlZaUEZZdlZWWThQSXNudmFWQzRpOG9yZjBOVzNubElFOHp5cHlq
VENBQ1FGTmMKVzBXNHlFT0xoZ29DWFJVN3pOWlNQVTExMGtVbWJjS3JSRDIzclRVOGdQc3hQRDRI
bDNsTGhCYVRPeFNLblVwWlBGYVhsWHBMU1lsVQpvclFvaUNUTHh5MHFyUmpMSGxraXRnQ2dJZTYz
YVVBdXBqZWpLaWtTaUowWTE1aTBZNmdQbFpaU0RCbUdCMERQUDRWbjV4QnllbHhKCkZScGk1Vms4
MFpVcVUxcHNaRlpTVmJLMTluOEdyWlczaDVCNkRRWHVRQ2MwNklPMWlLMjFqQ0JBQXJFYjZScVRk
Z0IxaFd3ZVYybDQKQVBkanVINE9VZTc0eW5UbUVsV1dBZTVadkNpSnhNcEI2WVQ1eW5URFZnNVNV
czhlbFpZcmpMZWVPdjQrVWdOQUp6UnVOQXFIb0RlagpLaWxzclU2TWEwemFNZFJ6SnhCbmlLRzNy
YlcvTWMzaThXV0FSTDZaZ2lrcHJjZ2lxcXlDYWtweWp2dExVcHpWbEphUE1Jbk9RbWNCClBkQ3Jr
enNjQWdWUzJGcWRHRlZKMTVpMENUWHE0dDhkd09FUXNhZzgvck5Rbkg2d2NqRDNsdEo2ZGkvT2Ns
dUxCK2FMNU5ONmRzc1AKU2F1NUFLQVpOTGJLR2VnUWZMdkVlTWlkR25YeHZSalhtTFFKcnhJMWJL
MU9BUlNIOE1vcFdRWm9NamxUV2ptNEdmWmRJTjU2bE5legprenprWU9VZzVVNFlMOVhpY1VOaEFZ
Mmh0QmZoRHVSaWVqT3FraUtCMklseGpVazdodnBRYVNuRlVNSThhdSs1clZWYkJzalg2bTNWClBR
ZWR1NVI3UzRYaTlMU2V2Wlp6bENJdmM4SlE1UTUwZ3ZaZWhEdVFpMUVnUlFLeEU2TXE2UnFUZGdC
MWhld0xRcWRSQUE5aUVMSnAKUzdKNFZDaE96N040OGhCZVFFVm1LeXN0SnJZUzJ5dExJRVpsRmI1
YWFPY090TWV3dlFnRDRCRDBabFFsaGEzVmlYR05TVHVHR2duRQpYekZjQ0lBWlE3SEU2dlRLUVM2
THRpeUw1eG91eEVQS1BScGtQZnRtZ3NveWtWcWNadllLQURUQkZIc1JEcVJleENHQXJkV2JVWlYw
CmpVazdnTHBFOWxhaDB5ZUFFekg0RlhsQmFSSFZOaEE4VVM4VkQ1R0t6WEFXSWw3UFhsRmFoaW10
blhwTEU0Z0EwQlp6N1VVNGtIb1IKaHdDMmxnSXBKdTBYcUdGci9ZcWhHSUJ4SmVSWkZvOWs4Uk1s
S3djTFdieHdWTWppc1daWC9CQjJsUFZLeTFvaXczckRFLytLU0NjTQpQUnFBWHJpMkZ5R04rL3RW
azNlZ1E2QjZtdXFrK2txTGhxcFlUTm92VUI4cUxhVVlTcGhIN2ZFQU1rOG9YUVlZdmFWZkt3ZlQ0
dlI0ClNLVlVTNDZ5SzYwZ3RzaWt0cFlOU2dzQSt1RHlLc0pSMzJya1loUklrVURzeEtoS3VzYWtI
VUJkSVp0VDZBd0p3QWZoRk04bUYrZWwKeXdLVFVpMHJzM2lzWHVwVVBUdWpUOUtRc3A2OW5FQk1U
Z0lBbXVCTmV4RU9wRjRrRjRNRW9nSXBKdTBYcUtlMHRZWUhRRUs3dUNpUwpEUVJEOWpDM3RYalVi
dlZoS0xFNlhqbEkwU256b3hhVVZtQlB4QmxNTEtBVDNyb1g0VURxUlJ3QzJGcTlHVlZKMTVpMEE2
aGhhNlg0CmtjVVRQUnE4U0RMSHhlbUduNFpZQm1nTGgwaWx0Vk5uOWV6U1BFT1BCcUFMWHI4WDRV
RHFSUndDMkZvS3BKaTBYNkErdExXR0t5MmwKR01JeXdFVHhzTCtleEV2V3Z5UFVTNWtqcGVYR3Nl
U1VGanVFRXRuRUQySDE3SWFLU2dzQTJ1TlRleEVPcEY3RUlZQ3QxWnRSbFhTTgpTWnRRcXlvdHhq
ZEYvcTUvQVB1azJrV09rRTNrVlZWcEdXQVNaRHlFRmFjejJaUWVaT0pSL3FBMDV5Z1ZuZlhVZXlv
UkFQcmdtM3NSCkRxVFdmMmpSVUVHZytaa090TFZVVDFPZGRKRkptL0FxVWE5b2ExV2FlUktKbFlP
bHJaclBGS2Z6cUpObGdEN2h5SFN0Q1R2aFZLZ3QKcGJFQ1FDTjhmQy9DZ2RTTDVHS1FRRlFneGFU
OUF2V2gwbEtLb1lTV0Y4SGFwTHVWdEt5SWVCYlB5aGZTUXpLbDVZN3lTc3RGTG13dAp5c1k1UENU
cEx3OEFqYUVxc0FKbXlCUm9VaStTaTBFQ3NUZWpLdWthazNZQWRZVnNIbHZyU1FDR1pkK2NiYlFu
RFUzWTRObS9NNm15CjRnMno5aWhNS3I0Szlld2s2OWwzWlpZZUpVUHh1VXZlWC83QkdRTkFGWC9m
K0ZhL2hYb1Jod0MybGdJcEp1MFhxTCtWUUpUVlVkNG8KcWpaYytMRnlrSXV0Y3M2Uks2MllUeVJl
M1ZWSUlISnFHRmhBVDBRSDY3M2Y2cGRTTCtJUXdOYnF6YWhLdXNha0hVQmRJbnRkQXJHZwplSVJz
TXNZWUlTWFBiQ0JZV2puSUdqdWtTb3U5d292WmlYZGlrSVZaa0ZoQUx4UlNoSy83VnIrZGVwRVM0
OVZzclZYcTRoVlpWN2t0CnZOZldza1JlMEpTVUZwVzlKYm1CNEU2VzVBdXpJcXVndExnM2xpVVE1
U0UrT1dpWUdJT0ZCWFRFanhxc2ViN1ZINytsN296TDVHSUcKMmxwSUlMWm5IR2RyZmZ5MmNLaTBs
R0lvb1hZUlJIRTZMM1hhRHhJMVZZZFpQS0prNVdCdWF6SDRCR0pRV3J2MmtrcUxjcEVIRHd2bwpq
TE5GN3NPLzFhdGtDZ0xwR3JrWUpCQjdNNnFTcmpGcEIxQlh5S2I4QTdpK0RKQ2kyR0t5U2lZUWsw
TjJCY1NXQVJMRjR2U1FRUFRzCnNsU0wyMm5aSWVFZGFXMFhBTFREblZXRVUzNnJQMHU5aUsyMVdn
S1JQcTVpNDg4Zm5yUmpxQ2RPSUVwWkZYczBoTmRTTytycUJvSVUKbFJhVGEzdHlzRXpOSXVSMldu
RFBHcDAvQUpUd1I3Ris4REltK1ZZUGlRRU9nUUlwYksxT2pLcWthMHphQWRRbHN0R3BCdXQ5STda
eQowRkRxTFRHbEZlcWhaRTJWWmUvaHRwWkkvTVhEK0NIK0NNc09LVkJUK0twakkwS2dGN3lEOWV4
bVAvcGJMV0w0K04rdk8rTWFEZ0ZzCkxRVlNUTm92VU05aGE1WHJwVVFwT3U5MlpmaFJTWW5WbVpX
RHFhMFZFbjhsa1ZmbzBaQzVYQURRRmxtSzhQSE5IcmFXTXU5QWh3QjEKOGUxSi9ROGZWbHEwektR
ZFFEM1MxZ3BqYzhValNxeVliSEtwUTY2MWtrT3liS0VscjVRcUt3Y1QyY1NvL1NGT2JtMm9id2Mw
Y0ZpRApCVnZyTWE4bTlTSzVHQ1FRZXpPcWtxNHhhY2RRNjlwYXU0aUptVDZ5KzhjcnZLWDluZmtH
Z3NMbHlrV1NrVzVUVENDS1U0dGR0UTRPCkVVZkJ2Z0s2NGx5UisrTXY1VHkyMXNmL2Z0MFoxOGpG
SUlHb1FJcEord1hxUTZYVktvYTBYb3A0S2JxaDFHM2FENmswWEtCc0E4SHkKTXNCNFNLUk8ya09Z
TElHWTJHa0EwQTBYVnhFaWdmZzI2a1VjQXRoYXZSbFZTZGVZdEFPb0syVHQ1bFdVTDNIdzRDVEpI
ZzNNYlNvbwpuaVR4UjE2eHhaV0RtZEtpUkduNUx5azd5aVJLeXcwTUFIM3daMjUvcVpCQWZCWDFJ
ZzRCYkMwRlVremFMMUMzVGlENmZaYmRBREk1CjZOOGpxcXhNdWxWelhXbmx5d0JETVR1UnIyZjNz
ZWZWNnlMbjZEdTZHMmdyb0RQKzZQbTNHcmJXMjZnWGNRaGdhL1ZtVkNWZFk5SW0KMUsrcWl4Zkw5
NWlPcXJZZURlOGdyc2FTRFFSakNmekJNa0JYd1M1V0RqTHFoRGVoQm9CT0VDbkNCdDlxMkZxdm90
Wi9hTkZRUWFENQptUTYwdFZSUFU1MTBrVW1iOENwUlA3TzFwR3pLWDdDNWIxU3JaK2VjeWNwQm9u
UVpZRGFJVHlBbTFFbk9FV1ZZUUdlVWE3QWFmS3NmCjM1RG1zYldXVWxyMDZWd01Fb2dLcEppMFg2
QStWRnJGR0lKOE1YWEZ3NDYzaVJpcmJkVmNMRTVuL2RoNUNUeDN3a1IxbHd2ZHhrT2sKMWdLQUx2
aGQ1RDVQQXZGK0RNOHdRNlpBazNxUlhBd1NpTDBaVlVuWG1MUURxQ3RraFhuRmV6Ull5NWZ2RmJ5
bDJENDkzYXFaZkg3dwpsOUk2WExTWWJTd2RxUGs1UUY4QlhYRmhGU0ZzcmJFQndDSG96YWhLQ2x1
ckUrTWFrM1lNZGQzV3NtUmxwVGtKdVJOcXFrcEtLd3lhCkZLZmJwT0ZDT0tod1NGSm1kWW9hQUhy
anptYlBOSk90TlZ4cDZjY0FoMENCRkxaV0owWlYwalVtN1FEcWpDeDRVQ0dMRjk4cmQzY20Ka3JM
SlhGZzVhRXo0TEpPU3FraGRPTVJUQzRQTm5RVjBGdEFSTndWV1FJTTc5Yk1oaGljUWFhamFnMFBR
bTFHVkZMWldKOFkxSnUwWQpha05FWkVMbkEwOWJ5T0lKeGNPVlZvdzB0Y0VPbEZZNGhQaWlSVXUr
bkV2RXVGZHVKVG5ISnFjUEFIVThGVmdCTFJPSWQ0ZUFyYVhNCk85QWhVRDFOZFZKOXBVVkRWU3dt
N2R1cFE0c3A0UzN0ek9iWVd5cVZhdm1tb1d3OTRwVmRvajIxdDZ4UzZsRGQxZm95QUlCQU00SEYK
QVZ1THh0MVZrWXRSSUVVQ3NST2pLdWthazFhTk92T1dtRkVVdktWVUkxSDVrTlFKaytzTi9USkFW
cGtsMytFMFhRak55bzZtUkNXWApDd0NhbzR2QUNtaHBhNkV1L2czVWkrUmlrRUJVSU1Xa2ZSSDFr
UjNGdlNYUDdCV1BZYklwOVpaS09VZFpxdVgvdTdUZG9kTmU4TENBCi91Z3JzRGllZnF1UlFId2I5
U0lPQVd5dDNveXFwR3RNMnZiVXJ0UmRORXFnU2hadjQwcUxsMnI1ZW5raG04b05GeW81eDJUbG9E
aWsKc0dqeDRVa0R3REgwQkZiQWNGdHI1UVRpRU9wRkhBTFlXZ3FrbUxSelVxZmVFbS9tR2Q0Z2hr
ODBVbjBEUWFKazVXRFF3UGtvSkhLTwpodlprSWZGQnlHeUowZ0tBWHZqYnA5bGJkUVpzclJiVUtE
SCtBT2xxZGZHcXBFdmFXaGQ1eXlrNXRnelFFaGxLbXBHV0RpSDZ2WUZnCllaZm9MVXNnQ29uSGNv
N1dIUU1IQytnTjUyRE5vek5RRjY4ZkFCNWFDcVJJSUg2QVZIL1MwaXR1QzBFMmlXemdMMitKeXlh
WEhDenYKRWkwSHFkU3p5enA2dVV1MEtWSURRRytrS2NKNWxOYjlHQjZmd3p3WDRYV1pnanVNYStS
aWtFQlVJTVdrSFVUdFh4Yk5QS2xhbkM3bApEbVd5S1I1aDJiaHlkaFZzTFpsekpKY2ZUT3ZvMDNX
TUFOQU4xUnFzTHpnNlNDQytqUnEyVmkvR05Xd3RUTm9oMVB2c2twcklpSm9xCjY1VFdGcnlsL1Ux
YjJkYml3NmM1Ui84Zkc2U3N0T0lmRjN6WUtMWWVYUWNBT0lOVFJlNWYwQmxJSUw2S2VoR0hBTGFX
QWlrbWJXL3EKWW5INmlYcDI2UzJGd2l3bTEweHN2MTR2MWNwWERscnJrNE8xN1E0aHJ3QU5YRnRG
K0FXZEFWdnJiZFNMT0FTd3RYb3pxcEt1TVdrNQpYN3B5MEVTUmRKVEZreThKa2NSbFU1NUFsRGxI
VCt4emp1NklLTTZJVXFYVjZ1d0JvSWI3YlJybTBSbW9peDhTd0VDSDROc2x4a00rCjA0RzJGdXJp
MjVQNkgzUTRzNXB4bTNoWVBqa1l2S1UwaTFjYWhJUTRLMVozbFZZT0h0bHBWcjRBaVFWMHh0OXpu
VEJjWnd4UElMWVkKNENuV1ZGcjA2VndNRW9nS3BKaTBMU0N5ZUhsSzd0aGJNbUlPRkxKNFNYVlhm
TVdTb0dZOGFYc0lsblBrdWN0VzV3OEFSU1FPVnJQOAoyMXQxUnJzRTR2MFluZ0VKeE82TTdPZFBD
d0lrRUx1UmZtdlN4cTVVcFN5ZWNhLzhLdFd5eVF0KzVXQ210Q3IxN0U1dEpTc0hBL1grClN5c0dB
WUMrcUtVSW05bGF3NVhXL1JoZ2E3MksrdE1PUVlGUmxSUzJWaWZHajB4YTd5MzVobGd4aTVlSm1a
clNrbFZXcko3ZGhuRlkKenZIWHlzSHdFbDg4YVBoT1BnUURDK2lPTXpWWWo3NlB3eDBkZW41RGFX
ZHJEYjhDK2pIQUlWQWdoYTNWaVZHVjlNMlRWb29rbDVMYgptTnp4Mm91dkhDUkRQN0o0SWVlWTJs
ekNvR0k1UnpkRW9icEwxbXJCd1FJMGNLbklmZmtFNHVNaHZpQTNYMFg5RllmZ0xLTXFLV3l0ClRv
d3ZtN1IyWDZPM1l6UEd1TzJjZjNoTG5DL3hsZzZVRmlOTnpUR2h0QUkxNVlkQVd3Rkt1TGVLc0Zr
QzhlYnhqOUV5Z1hoM2lIbmsKcG40TVE4NTlvRU9nZXBycXBQcEtpNGFxV0V4YStYNWpyS1ZkV3ZI
RFRCQTQ1N0o0N2sxZVYxbEQ0VEJpUmZHblZ3N21LeEJEZGRldQo0czZkSHdEY3g5L3dRcU41ZEFa
c0xmMEFrSXRSSUVVQ3NST2pLdW1za3paemtyeFJSR2tmVVIrNklWOUVGY2JPdmFYaU1rQXlzYnFM
CmlLMGNkS09LdlF0dHJyU0N5THQ0S1FEZ0hxS0QxVTVwM1J4akhxVjFQNGJoY3ZVeGtFRHNUaG9Z
bFFpUlFOUWdYWGpTWHN6aTdhOVkKcG5qaUdOYjdYcVp3eUhHcGxwTllqSnJpSVRrVEhDeEFBWVVV
WVl0YnhxTXh2dURvSUlINE51cHBIWUpPcExDMU9qR3FrczR3YVMwegpxUHl2MHcwRWY2OGNaTjZT
OTZqY0M5R2dvdkloUW1sSmVXYUprdjd5d2p3RGdMNDRxc0ZxY2N1QXJZVUU0c3VvNTNNSStqS3Fr
c0xXCjZzUTRidElLYjRtTVZ6T25zbmhVczZQeVVpMktPVWRMaWFTTHRwWTRwRmFxeFJRYkFIVEYy
U0ozMkZyMC9DTEExbXBCalJMakQ1REMKMXVwSXFqOXBuMlR4ckhlWnNpemVtYTJhcGFUejFQNzlJ
VHcrU3VLbEFVQS9YRjVGMk5UV1FsMDhiSzM3dkpyVVUrUmlGRWwxVmV3dwpXekt4QTQ4QUFCR2NT
VVJCVk92ckt0WXo5cVJNOG0ySjBxS0NiQ3A1UzBrV2p4ZkZCOEhHbEJaN0V6dmsxOTZGYWQ4R0FP
aU0rNXM5ClU0TmJCaEtJTFMvaThJdUFCR0l2MHNDb1JJZ0VvZ2JwUnladDdMUnVwRWdxTEFQa1dU
dzZXYXBWeWpueUU4cFZrNVIwdkZRclJ2djQKdEFIZ054NEpySURodHRZWEhKMTJDY1Q3TVR6RERB
bEVUV3JZV3IwWWtVRHNSOXA2MHBhS24vd255SnltUEl1WDIxcHMxSFNYNkVMTwprVVNqZUtydlhj
aXJybndoUFFCb29JM0E0b0N0QlZ0cmJBQmZjd2hxcElGUmlSQzJsZ2JwMnladE9MS1F4VXRlT3BQ
RjQyWlRpUE5YCnpuRWpmb3kxY3RnU05VUVdvSUwyQWl1Z3hTMER0aGI3R1hYeGI2Q0dyZFdMRWJa
V1A5SzdremJrOUp4QnhlcWxjbHRMTXRhemVQc2gKU1U4R1hxcVY1aHd0RzdhZWN5d1ViZ0ZBWDNR
VVdBSERFNGdOam4rTUJnRThHK0lMY3ZOVjFQcEtpNFlLQXRURmY0RDBxcTExV0M5bApNaWZKN2oy
b2ZtYnhxamxIOTZiS3lrRnBhMGtsVlNqVkFvRGUwQkJZSFBNa0VCL0U4QWhJSUk0TllQNkhWaHZT
d0toRWlBU2lCcW11Cml2V2tQMWgvbHBuN0YweFdMMFZ5TzUxU0g5SEFrcjlFU1FMUkVoTmFvcm9y
NmZYdysrUUJvQVcwQlZZQWJLMEdBYlJMSU42UDRSbVEKUU96T3lINytzQ0JBQXJFamFYM1M1dHFs
c0F6d2xHd0svNm83WWFtdFpTU1JZTEZpV0ZuZFplVjFCSUJ1K0J2K2lLV1piSzNoVitCKwpETEMx
WGtVTlc2c2pLV3l0VG96NXBMWFd1Rit4anUyaVhpcThraWd0cXZVUnBld29YeFJQc2x0cGtFMkZu
S054QXEyUWM5emZkZXNDCkFNQTFDQWZyRTQvWVIyTjhRVzYyczdXR1h3SDlHR1p6Q0hveHNwOC9M
UWhnYTNVak5mdi9PalZqcEd4aUFjbU83UVdEaXN4MmRwZm8KUXM1UnNxUTVSeEtlVlQ0c0FIUkZP
VVU0WEdjMFRTRGVIR01lbllHNitDRUJUT0VRS0pBR1JpVkMyRm9hcEZxTVFydHdGK3N3aTJmWQpl
MlM5Vkw1eThFbk8wYkdsT1VjWVdJQU9mdGRnZlVGbnZOeldhcGxBdkR2RVBOTkFQNFloNXo3UTFs
STlUWFZTZmFWRlExVnNSMFpYCk1pWHJwVGJ1RWgzVlMrWGVFbzgzT21HTVJXb3ZibERGUTJvNVJ5
N2lBRUFIRjRyY1AvR0liWlovRzM0UllHdnBCNEFFb2dJcEVvaWQKR0h1UTVzVlB2aW9yWmdORHZa
Ui9wVnd2bFdYeEtqbkhwTW03TGVVYzkxS3RRczRSMmdwUXhaMVZoSjk0eEg0bmdYZy9obllYY2Zo
RgpRQUt4RjJsZ1ZDSkVBbEdEdEFuanJuSnk3WElvbTRqSWVsVmtlQnpNQ1ROa2lrcnJkTTdSRjhX
VEYxdCtEUFJvQUZUeDE4clBHUDZJCmZSRER1eE9JOVB4VFFBTHhiZFN3dFhveHd0WTZQMGk1K01s
cm5YcTkxTzhFSXJGNnFjd0pPNTl6UEhUQ0FLQTdtSU9GekJGc0xjSTAKZUJrMWJLMk9wTEMxamxI
dTJPNDFFQi9SU0crcHFyUk9PV0dNT25YQ1pHRldXV25KeXd3QUhWRktFU0p6OUhpTUwrZ00yRnB2
bzRhdAoxWXNSdGxieC9SV1hxRkQ4bEdrZ05rZEZTZFdKbktOL29lU0U4ZWhGemxGb0x3QlF3bUVO
Rmg2eFlnelV4Y1BXZWdlMXZ0S2lvWUpBCjh6TWRhR3VwbnVaRlVtbFFSYVVWWnFLVVJQRVFJWnVF
V2lzNFlXeUo0aVVuakIxaTBhTUIwTVBwSW5jOFlwRkFwSllYY2ZoRldFcHAKRVJLSXpVbVJRSXp0
UFprR1NyT0RCOHNBeFNHbkdpNVllUlJKSjJ3eitTRzVFd1lBYXJpK2loQzJsaGdEQ2NTM2FtNGtF
THN6c3ArbgpFQVNkR0ZkTklPWXVrUytRY3IvMTJvdkpKcUhHckpkRU5neGZjOElDODVFVEptdkNV
aWNNMmdwUXg1OTU4aFdGclFWYmkxcGV4T0VYCkFiWldMOUxBcUVRSVcwdUJkTmN1aDMycXlnYVZG
enpSOTZLQ0UwYmt0eE9rbkNoSU91dERjZFZlaHF3cnRwY0pSTC9sYzd2TEFBQS8KOEVkNHhEWUxB
TFlXKzNsZGQvTk4xTEMxZWpGKzN0YXl4UHduSWk2YlFqeGVWNFc2Si9ZR2UzQ0kwR2RVY01MMkFm
eHBXcGtjRkpMTwpIN1A1VVFCQUQybUtFSS9ZNFFuRUJzYy9Sb01BNEc2K2lucTF1bmhWMG0vYVdw
WnNiTC9naFZhb1RKZkY2Y0dna3JZV0R6QXpxRXlxCnRMS0NyOHdKU3plV1prU3hWS3Z4WlFDQU9x
bzFXTU50clU4OFlwc2xFQi9FOEFndHA4SGRJYjRnTjk5RHZVZ0NjUWlwdnRLaWJxZkoKekNjYmVF
b0dsU3pWRW5hVVB5UTFxRXl5MHMrd3hGK29wenJ0aEltYU1BRFF4S2tpZDloYXNMWGFCUEJ5elkw
RVluZEc5ak1TaUkxSgpBMk9UMGJMVmVYbjNCRTZZbDVuL2FMamd0OU14YlBveGc0cUk0bzQ2L0xS
cXBWckJDUU1BTlZ4YlJZaEhMRFc0Q00xc3JlRlg0SDRNCktOcDdGZlVpdGhZU2lCZmdhOFlOR1NN
RmtOTkF3ZEk2MTdIOW1oTVdiSzVqSnl5VGRBQ2dpVHViUFJNZXNjMENlRFRHRitRbTNNMjMKVWNQ
VzZzWDRLbHVycUlIa3lMTEtQTy9SNENTUkNjcnFoaE5XT3lSWk9RZ1BDeGlDbXdLTFk1NUg3UDBZ
bnFGcEF2SG1HUFBvRExpYgpRd0tBcmRXYlVaWDBCYmJXcmwxcWZhb0tCcFhoTCtTSE1PSmdSMW5a
MnNxTHBJcWtrMDVZMFR3N2RXWUEwQWdOQkZZQWJLMUdBYnpiCjFtbzVEZTRPTWM4MDBJOWh5TGtQ
dExXV3FZdlhvejF6bWw2NmlNcW5rdEppaDZSdVUxb3ZSU2VidkI4N1lhblNJa29sSFFBb29hWEEK
NHBqSDFucnpJN2JaVlJ4K0VXQnI2UWVBQktJQ3FlNkZIV1pyVmZsc0xEd1BiOTQxRUpNN0pDVlJW
V25sK294bjlSTFo5RVBTV1grSQpLTXpDUm9TQUtub0pyQUE4WXFuQlJmaE9BdkYrREhBM1gwV05C
R0pIMGdrU2lLSVBnby9xdEVGbFE4SXc2RFAyejJUbElCa3FFUEhyCmZjVUpBd0E5ZEJkWUFjZ2NV
WnZiOGJzVGlQVDhVOEEwZUJzMWJLMWVqSVBxNGlYVGxiMXh3aUI1eC9iNGhwSStzOXdKWTRjSWc0
ck0KVnJDMStMSkdBTkNFbnNEaWdLMUZEUzRDYkMxTWc1ZFJ3OWJxU0twb2E3bWNZS3FqaUxWT29L
SnNLaW10ZEkxZlRaK0pBR3FIOEpaWgorK2ZBWWdNQVpmeXhoUFVBREgvRXRoamdLVm9FQUZ1TC9R
eGI2dzNVc0xWNk1mYTN0YlpMc3NsR3Q0bFlxZjcrbG56bG9Kc1Fmc3hmClJLSkhReHlvZmdnQXFN
RTVXSGpFTmdqZ01ZWW5FQnNjL3hod04ybm9wekRRMWxwa0cwVE56N1NiclZYTzZ4bGp0bUpIVUth
QmFySXAKQ1pzN1lVeDdzVU9JclJ3MHpyRTZ6am5LTHpjQWRFY2hSVGpQSS9aK0RIakVJb0ZJTFMv
aThJdXdsTklpSkJDYmt6WlZXbUpMd1NCbQptSEdXdjNSYWFZbDV3S3E3aUI4VmlQdy82MDRZMTJj
QW9JdWpHcXd2NkF6WVdtSU1KQkRmcXJtUlFPek95SDcrc0szVk5vRjRwR2FrCjI4VFBVQnBVVkpO
Tmgwc1UzU0YrQ0tiUEtEMUtKQkFCUUJGbmk5em4wUm5JSEQwSUFMWVdiSzJYVWNQVzZraDYzOVpL
K3lCUTVqWmQKYmoxcTh6SDhVZXdWSWVuTU1WSHVoQUdBS2k2dklwem42WEkvQmp4aUg0L3hCYmtK
ZC9OdDFMQzFlakZldExWOFdvNE8xVXpOb0xyUQpRNnVVRGJUQklEdTkzU0VBak1IOU5nMTR4TFlZ
NENtR0p4QWJIUDhZY0RkcDZLY0FXNnMzb3lycEdWdkwyaU0xVXkySE91Z0lLaXJUCkQ1VldWWi94
aTVRUVFXWUJROUNtRDlZOGo5ajdNY0RXYXBkQWZCRERJN1NjQm5lSG1HY2E2TWN3NU53SDJscXFw
NmxPZXFDMGpERkgKYXFiU1JKU2xBbk8zaWZmUU1vRkZpalBubE5tVFJLWFlBRUFUalJ1TkRuL0Uw
dk03RVI2eFlnellXckMxN3ZOcVVpT0IySXRSSmhERApQdy9VakluSC9oUkFCd2xFY2RUTzcvV1px
ZmZRTXZFVjR3NndJaWdBVUVMSFR1NTR4SDdpRWR2TTFocCtCZTdIQUhmelZkUklJSFlrCk5jYjNj
TS9VREF1a0pwdjhHekxaeEE3alhIVjk1bzVLYVJpUkpSSTlUZ0ZBSFJwYjVRelhHWGpFTmdyZzBS
akRwd0U5dndod045OUcKRFZ1clBaZlFRTFJ4MldSNVV3WXZnSWhPdVUzcFVjYkxLa2NVN0tnZ3F6
S2xWYWkxNS9vTUFKU2h2UmZoUEErWTRZL1krekU4UTlNRQo0czB4NXBrRzkyT0F1L2txYXRoYTdX
QkxCbFhaYmVLeEpNZGs2Y0tTYktLeVBrdDdhSVV4L083T09SRUE2R1BZWG9SNHhMWVk0Q2xnCmE5
Rk1tbnY0RmRDUFljaTV3OVo2Tkt5SkQ0MWZ2aEdWWlZPbWVCS1ZkTDYxVlVKRU1iVG9uN0cwSkFD
b1l2eGVoSGpFTmdqZ01acmEKV3FpTGg2MTFuMWVUV2w5cDBWQmJxdzFqTERPUHZoRUZnVk5PQlZJ
UVVZbmJGQTBxdzk0VUkzWDZ6UC83VEpQM3NqNXJjdW9BY0Fsego3VVdJUit3bkhyRklJTUxkZkJr
MUVvZ1hCdWxrVUFudGxlc3oxOW1CeFMxcTdTMlIyWDRxTFFCUXhhUjdFUTdYR1MwZnNYZUhtT2NS
Cit5QUdKQkRaeit0T2d6ZFJJNEY0OHNEVGVUMTJiR3BRNVgycTdyY2VQZWloNWQ0RUFMcDR3VjZF
OHp4Z1lHczlDQUMyRnFiQnk2aGgKYXhWZ1pWNXZIK0ZINFRtWmpZcEs2NVJzSWltYnhDR3M3b29k
VXUvc0FBQ3F1TDhYSWExUkQxc000SDRNeUJ3OUh1TUxPZ08yMXR1bwpZV3RsdUZBT1ZjdnJVVGtW
S01hd3UyeUs3NGxIa2NzTkJ1b1lDby9Fb3I0ZEdJUkhiUnBHM2VYeGlHMFF3R01NVHlBMk9QNHg0
RzdTCjBFOWhvSzIxWmwzOExsbnl2WEcydXgzYnlTMzVpMGNGMmw4ckI0MGw4bjBjL0RCZW4vRzRZ
VjhCby9ENnZRam5lY1RlandHUFdDUVEKcWVWRkhINFJWcmdQckpsQUxOWmRpZmVmNjcxZTk3MFNw
U1dPcWh3U2Y1OFFrZFJuQUtDTTcreEYrQVdkQVZ0TGpJRUU0bHMxOTJyMwpnWVVTaUpib1JGNlBm
RjR2OUdnSVIwbXJxVkRMeFkrU3F3dnRMcGpPTEZGa0Z3ZzlHb0JoK09aZWhQUG9ER1NPSGdRQVd3
dTIxc3VvClAyOXJCUmtWYXNzdjV2WDhDd1dES2lFcXlDWldtSFd4MWg0U0N4aUJqKzlGT00vVDVY
NE1lTVErSHVNTGNoUHU1dHVvdjIxcjFkYnIKY2Y2TGVUMGkyYkZkdUZna1pWUGhrRWljVjRCQllR
RkQ4R2ZNeDZzMUUxNTk2anlHNFkvWSt6RTh3L0FFWW9Qakh3UHVKZzM5RkdCcgpQUnoyZkY3UHlH
eWdMRHdYYnRQZVJKU3B0U3RMRkNNT2VtZ0J3QUQ4MGJlKy81TlRKd0hjandHMlZyc0U0b01ZSHFI
bE5MZzd4RHpUClFEK0dJZWMrME5acVNuakdvTXBiVzUxclBVcWlZM3ZTbzhHV0s4QTJscVdNUjhY
V285Qll3QWlrS2NKdjI5cnpVT2N4NEJIN0lBYlkKV3JDMUd2QnFVci96VG11RHJNcnJyZ1JYc1lK
SzZDcTZibEFkTEZGa3RmWXlHRGhZd0VCVWE3QmdhNzB2QUR4aVVSZFBMUy9pOEl1dwp3bjNnWFhm
YUJnWlYxa1ByZ1d5eTRXellHOHExOWdDZ2oxTkY3dS84WSt0OTFNMEMrSkN0aGJyNCt3RjhhQnJv
eHdCYnEvUm1WM3AxCnRGN1AvVnZrOWNJaE1xOW44bzZndkphTEVSR3Y1U3FzSE15SVFpMlhUYzhT
QVBSd2JSWGh1LzdZZWpWMXN3QmVibXMxVFNEZUhHT2UKYVhBL2hwZFBBMXJzUGpEbm5iWjFYbzk0
TFpjNFNnenJqbUt6OEV3Rm1JbE4zZ0ZnRU82M2FmaEt0ZWJzMUVrQTkyTkE1dWp4R0YvUQpHYkMx
M2tZOW9hMmxsdGNyeUNhcHo2d1lSQnhsWSt4UVdjQVlOT2lETmVIMy81UFVlUXg0eEQ2SW9kbFZI
SDRSbG5VM2FlaW5NTkRXCkd0Wll4OXJOeUNWK0lxOW5qRWdGRXN2ckpRbkVtQzRNS1VmMmhwZ05M
QjdpWDJHZEhZaUlyTmxxRldBQU1BWXRHNDNPYVd0L2tycFoKQUhqRUlvRklMUy9pOEl1d3duMWcx
SjNXR0tOclVCSEYxbGFVSEZXb3RXZU9sZEJlMEZqQUlQVHE1QTViNjJVQndOWVNZeUNCK0ZiTgp2
ZHA5WU1DZDlxNXM4ckJ5a09JaHY1Y28ya3hwaGFQWVA5R2pBUmlKN2x2bHdOWjZYd0N3dFdCclVj
dUxPUHdpckhBZlVMalRGdXF1CktNL3JuZCs4bWNodktSZzdnc1poMlRtRXZLU0pZUlFyd0d6VVo4
Z09BdVB4WjBiY0FwYXl0WVkvWGU3SGdFZnM0ekcrSURmaGJyNk4KdXRlZE5oUk1CZGtVNUkxTzYx
SFo1SjFrQlppTUxVYlM1dHdCNERyK2FPZ2ZXOWdHVVRrR1BHSWZ4TkRzS2c2L0NIQTNod1F3OGs3
YgpnTlVtdHRENUNxcFM0WGs1cjJjUERhcTdGV0FBTUFZaVJmaEpXN3RBR2hpVkNLZWdUZ0s0SHdN
ZXNlMFNpQTlpZUFRVTdZME5ZTUNkCmxyRSt1OVAyTktpeWNjdTFYS1VLTUZzZEZpSUxHSVp5RGRh
bmJPMERSdll6YkszN3g5OGRZcDVIN0lNWVlHdTlYbk92ZGgrNGQ2Y04KQWltdm9PS0dWRjVCWmN6
UjVzM2hrQ1N2Vit6c1VHbnl6aU1SRldBWFRnOEFPdUIza1R0c3JROVROd3ZnNVk5WWFuQVJtdGxh
dzYvQQovUmhRdFBjcTZrdDNXcG5YSzJmb21oaFV2SmJMUzYzZmVjbHdIdUU5QURBY0YxWVJ2dWlQ
clVlTTdHZlV4ZDhmWXVsSDdLTXh2aUEzCjRXNitqZnJrbmJZa201SzljVUxucXJ5Q2lwSzhYakpz
WGNBVlpGTVkxc3BJOXZkWUg4bkowd2VBSHJqWnBtSGdIMXVvaTFlT1lmZ2oKOW40TXo5QTBnWGh6
akhsMEJ0ek5JUUhNWTJ0RmtXVEppTHdlTTZqU3ZKN28wZURmOHlPdko0ZGxaVmMyeWlhZVlXVERs
aUtCeEFMRwo0V2tmckhtKy8zMUpBNk1TNFJUVVNRRDNZNEN0OVhpTTRUcWo1VFM0TzhRODAwQS9o
aUhuTHY2c0RhcG9PMk5RbGQybTgzbTltbFgyCk15L0pTK0QzMTI2ZVBBQTh4bituNGZCT3dHTnEy
QUFBQUFCSlJVNUVya0pnZ2c9PQoK
</data>
<flag name="review"
          id="93951"
          type_id="1"
          status="+"
          setter="senorblanco"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100050</attachid>
            <date>2011-07-07 16:48:29 -0700</date>
            <delta_ts>2011-07-08 11:33:14 -0700</delta_ts>
            <desc>Layer anti-aliasing</desc>
            <filename>webkit-gpu-anti-aliasing-v15.diff</filename>
            <type>text/plain</type>
            <size>133766</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwNjAwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODAgQEAKKzIwMTEtMDctMDcgIERhdmlkIFJl
dmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEVkZ2UgYW50aS1hbGlhc2luZyBmb3Ig
Y29tcG9zaXRlZCBsYXllcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MTM4OAorCisgICAgICAgIEFkZCB0cmFuc3BhcmVudCBvdXRlciBib3JkZXIg
dG8gdGlsZWQgbGF5ZXJzIGFuZCBhZGp1c3QgdmVydGV4CisgICAgICAgIGNvb3JkaW5hdGVzIHNv
IHRoYXQgdXNlIG9mIGEgYmlsaW5lYXIgZmlsdGVyIGNyZWF0ZXMgYSBzbW9vdGgKKyAgICAgICAg
bGF5ZXIgZWRnZS4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL2h1Z2UtbGF5ZXItcm90YXRlZC5odG1sIChleGlzdGluZykKKyAgICAg
ICAgICAgICAgIFRpbGluZ0RhdGFUZXN0IGluIHdlYmtpdF91bml0X3Rlc3RzCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIENoYW5nZSBtYXhVbnRpbGVkU2l6ZSB0byA1MTAgdG8gZW5zdXJlIHRoYXQgdGlsZXMg
YXJlIG5vdCBncmVhdGVyCisgICAgICAgIHRoYW4gNTEyIHdpdGggb3V0ZXIgYm9yZGVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVMYXllclNpemUpOiBX
ZSBjYW4ndCB1c2UgdGhlCisgICAgICAgIGxheWVyIHNpemUgYXMgdGlsZSBzaXplIHdoZW4gd2Ug
d2FudCB0byBhdm9pZCB0aWxpbmcgYXMgdGhpcyB3aWxsCisgICAgICAgIG5vdCBiZSBlbm91Z2gg
c3BhY2UgdG8gaW5jbHVkZSBwb3NzaWJsZSBvdXRlciBib3JkZXJzLiBXZSBpbnN0ZWFkIHVzZQor
ICAgICAgICBhbiBlbXB0eSBzaXplLCB3aGljaCBhbGxvd3MgdGhlIHRpbGVyIHRvIGF1dG9tYXRp
Y2FsbHkgYWRqdXN0IHRoZQorICAgICAgICB0aWxlIHNpemUgdG8gYmUgbGFyZ2UgZW5vdWdoIGZv
ciB0aGUgbGF5ZXIgdG8gZml0IGluIG9uZSB0aWxlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dExheWVyQ2hyb21pdW06OmNyZWF0ZVRpbGVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudExheWVyQ2hyb21pdW06OnNldElzTWFzayk6IERvbid0IHVzZSBib3JkZXIgdGV4ZWxz
CisgICAgICAgIGZvciBsYXllciB1c2VkIGFzIG1hc2suCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudExheWVyQ2hyb21pdW06Om1fYm9yZGVyVGV4ZWxzKSBBZGRlZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVUZXhSZWN0KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OnRpbGVMYXllclJlY3QpOiBt
X3RpbGVTaXplIGlzIG5vCisgICAgICAgIGxvbmdlciB0aGUgY29ycmVjdCBsYXllciBzaXplLiBT
aXplIG9mIGJvdW5kcyB3aXRoIGJvcmRlciBzaG91bGQKKyAgICAgICAgYmUgdGhlIGNvcnJlY3Qg
bGF5ZXIgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1bTo6Z3Jvd0xh
eWVyVG9Db250YWluKTogQWRqdXN0IHRleHR1cmUKKyAgICAgICAgc2l6ZSB0byBpbmNsdWRlIG91
dGVyIGJvcmRlcnMgYW5kIGhhbmRsZSBlbXB0eSBtX3RpbGVTaXplLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdCk6IFVzZSBzaXplIG9mIHJlY3Rh
bmdsZQorICAgICAgICByZXR1cm5lZCBieSB0aWxlVGV4UmVjdCBpbnN0ZWFkIG9mIG1fdGlsZVNp
emUgZm9yIHRleHR1cmUgc2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1
bTo6cHJlcGFyZVRvVXBkYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpMYXllclRpbGVy
Q2hyb21pdW06OmRyYXcpOiBDb21wdXRlIGFuZCBpbnRlcnNlY3QgdGlsZSBlZGdlcworICAgICAg
ICBpbnN0ZWFkIG9mIHVzaW5nIHRpbGUgY29vcmRpbmF0ZXMgZGlyZWN0bHkuIEVkZ2VzIGFyZSBh
ZGp1c3RlZCB0bworICAgICAgICBpbmNsdWRlIG91dGVyIGJvcmRlcnMgYW5kIG1ha2Ugc3VyZSBh
bGwgcGFydGlhbGx5IGNvdmVyZWQgcGl4ZWxzIGFyZQorICAgICAgICBwcm9jZXNzZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUZXh0dXJlZFF1YWQpOiBQYXNz
IHF1YWQgdG8KKyAgICAgICAgc2hhZGVyIHVzaW5nIHBvaW50IHVuaWZvcm0uCisgICAgICAgIChX
ZWJDb3JlOjpMYXllclRpbGVyQ2hyb21pdW06OmludmFsaWRhdGVSZWN0KTogSW52YWxpZGF0ZSBv
bGQgbGF5ZXIKKyAgICAgICAgYXJlYSB0byBjbGVhciBhbnkgY29udGVudHMgbGVmdCBmcm9tIHBy
ZXZpb3VzIGxheWVyIHNpemUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllclRpbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJv
bWl1bTo6dGlsZVRleFJlY3QpIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNo
cm9taXVtOjpkcmF3VGV4dHVyZWRRdWFkKTogQWRkIHF1YWQgcGFyYW1ldGVyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpnZXRTaGFkZXJTdHJpbmcp
IEdldCBYL1kgdmVydGV4CisgICAgICAgIGNvbXBvbmVudHMgZnJvbSBwb2ludCB1bmlmb3JtLgor
ICAgICAgICAoV2ViQ29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpWZXJ0ZXhTaGFk
ZXJQb3NUZXhUcmFuc2Zvcm0pCisgICAgICAgIEFkZGVkIHBvaW50IHVuaWZvcm0uCisgICAgICAg
IChXZWJDb3JlOjpWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm06OmluaXQpIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpwb2ludExvY2F0aW9u
KSBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNo
cm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm06
OnBvaW50TG9jYXRpb24pIEFkZGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1RpbGluZ0RhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6dGlsZUJvdW5k
c1dpdGhPdXRlckJvcmRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGlsaW5nRGF0YTo6
Y29tcHV0ZU51bVRpbGVzKTogQWRqdXN0IGZvciBvdXRlciBib3JkZXIuCisgICAgICAgIChXZWJD
b3JlOjpUaWxpbmdEYXRhOjp0aWxlWEluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlWUluZGV4RnJvbVNyY0Nvb3JkKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpUaWxpbmdEYXRhOjp0aWxlU2l6ZVgpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlRpbGluZ0RhdGE6OnRpbGVTaXplWSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6VGlsaW5nRGF0YTo6aW50ZXJzZWN0RHJhd1F1YWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlRpbGluZ0RhdGE6OnRleHR1cmVPZmZzZXQpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxpbmdE
YXRhOjp0aWxlQm91bmRzV2l0aE91dGVyQm9yZGVyKTogQWRkZWQuCisKIDIwMTEtMDctMDcgIExl
dmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFN3aXRjaCByZW1h
aW5pbmcgcGFpbnQgZnVuY3Rpb25zIHRvIG5ldyBsYXlvdXQgdHlwZXMKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDkwNjAwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIC8vIFN0YXJ0IHRpbGluZyB3aGVuIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIGEg
bGF5ZXIgYXJlIGxhcmdlciB0aGFuIHRoaXMgc2l6ZS4KLXN0YXRpYyBpbnQgbWF4VW50aWxlZFNp
emUgPSA1MTI7CitzdGF0aWMgaW50IG1heFVudGlsZWRTaXplID0gNTEwOwogCiAvLyBXaGVuIHRp
bGluZyBpcyBlbmFibGVkLCB1c2UgdGlsZXMgb2YgdGhpcyBkaW1lbnNpb24gc3F1YXJlZC4KIHN0
YXRpYyBpbnQgZGVmYXVsdFRpbGVTaXplID0gMjU2OwpAQCAtOTIsNiArOTIsNyBAQCBQYXNzUmVm
UHRyPENvbnRlbnRMYXllckNocm9taXVtPiBDb250ZW50CiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6
Q29udGVudExheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKICAgICA6
IExheWVyQ2hyb21pdW0ob3duZXIpCiAgICAgLCBtX3RpbGluZ09wdGlvbihDb250ZW50TGF5ZXJD
aHJvbWl1bTo6QXV0b1RpbGUpCisgICAgLCBtX2JvcmRlclRleGVscyh0cnVlKQogewogfQogCkBA
IC0xNzQsNyArMTc1LDcgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJT
aQogICAgIGlmICghbV90aWxlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgSW50U2l6
ZSB0aWxlU2l6ZShtaW4oZGVmYXVsdFRpbGVTaXplLCBjb250ZW50Qm91bmRzKCkud2lkdGgoKSks
IG1pbihkZWZhdWx0VGlsZVNpemUsIGNvbnRlbnRCb3VuZHMoKS5oZWlnaHQoKSkpOworICAgIGNv
bnN0IEludFNpemUgdGlsZVNpemUoZGVmYXVsdFRpbGVTaXplLCBkZWZhdWx0VGlsZVNpemUpOwog
CiAgICAgLy8gVGlsZSBpZiBib3RoIGRpbWVuc2lvbnMgbGFyZ2UsIG9yIGFueSBvbmUgZGltZW5z
aW9uIGxhcmdlIGFuZCB0aGUgb3RoZXIKICAgICAvLyBleHRlbmRzIGludG8gYSBzZWNvbmQgdGls
ZS4gVGhpcyBoZXVyaXN0aWMgYWxsb3dzIGZvciBsb25nIHNraW5ueSBsYXllcnMKQEAgLTE5MSw3
ICsxOTIsOCBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVMYXllclNpCiAgICAg
ZWxzZQogICAgICAgICBpc1RpbGVkID0gYXV0b1RpbGVkOwogCi0gICAgSW50U2l6ZSByZXF1ZXN0
ZWRTaXplID0gaXNUaWxlZCA/IHRpbGVTaXplIDogY29udGVudEJvdW5kcygpOworICAgIC8vIEVt
cHR5IHRpbGUgc2l6ZSB0ZWxscyB0aGUgdGlsZXIgdG8gYXZvaWQgdGlsaW5nLgorICAgIEludFNp
emUgcmVxdWVzdGVkU2l6ZSA9IGlzVGlsZWQgPyB0aWxlU2l6ZSA6IEludFNpemUoKTsKICAgICBj
b25zdCBpbnQgbWF4U2l6ZSA9IGxheWVyUmVuZGVyZXIoKS0+bWF4VGV4dHVyZVNpemUoKTsKICAg
ICBJbnRTaXplIGNsYW1wZWRTaXplID0gcmVxdWVzdGVkU2l6ZS5zaHJ1bmtUbyhJbnRTaXplKG1h
eFNpemUsIG1heFNpemUpKTsKICAgICBtX3RpbGVyLT5zZXRUaWxlU2l6ZShjbGFtcGVkU2l6ZSk7
CkBAIC0yMjgsNyArMjMwLDggQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGls
ZXJJZgogICAgIG1fdGlsZXIgPSBMYXllclRpbGVyQ2hyb21pdW06OmNyZWF0ZSgKICAgICAgICAg
bGF5ZXJSZW5kZXJlcigpLAogICAgICAgICBJbnRTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVmYXVs
dFRpbGVTaXplKSwKLSAgICAgICAgTGF5ZXJUaWxlckNocm9taXVtOjpIYXNCb3JkZXJUZXhlbHMp
OworICAgICAgICBtX2JvcmRlclRleGVscyA/IExheWVyVGlsZXJDaHJvbWl1bTo6SGFzQm9yZGVy
VGV4ZWxzIDoKKyAgICAgICAgTGF5ZXJUaWxlckNocm9taXVtOjpOb0JvcmRlclRleGVscyk7CiB9
CiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMo
KQpAQCAtMjU2LDYgKzI1OSw3IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OmJpbmRDb250
ZW50c1QKIAogdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6c2V0SXNNYXNrKGJvb2wgaXNNYXNr
KQogeworICAgIG1fYm9yZGVyVGV4ZWxzID0gZmFsc2U7CiAgICAgc2V0VGlsaW5nT3B0aW9uKGlz
TWFzayA/IE5ldmVyVGlsZSA6IEF1dG9UaWxlKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50
TGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiA5MDYwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDYgKzgxLDcgQEAgcHJvdGVjdGVkOgogICAgIE93blB0cjxMYXllclRleHR1cmVV
cGRhdGVyPiBtX3RleHR1cmVVcGRhdGVyOwogICAgIE93blB0cjxMYXllclRpbGVyQ2hyb21pdW0+
IG1fdGlsZXI7CiAgICAgVGlsaW5nT3B0aW9uIG1fdGlsaW5nT3B0aW9uOworICAgIGJvb2wgbV9i
b3JkZXJUZXhlbHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5j
cHAJKHJldmlzaW9uIDkwNjAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkxheWVyVGlsZXJDaHJvbWl1bS5oIgogCiAjaW5jbHVkZSAiRXh0
ZW5zaW9uczNEQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1
ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgpAQCAtNDMsNiArNDQsOCBAQCB1c2luZyBuYW1l
c3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3R5cGVkZWYgRmxvYXRQb2ludDNE
IEVkZ2U7CisKIFBhc3NPd25QdHI8TGF5ZXJUaWxlckNocm9taXVtPiBMYXllclRpbGVyQ2hyb21p
dW06OmNyZWF0ZShMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIsIGNvbnN0IElu
dFNpemUmIHRpbGVTaXplLCBCb3JkZXJUZXhlbE9wdGlvbiBib3JkZXIpCiB7CiAgICAgaWYgKCFs
YXllclJlbmRlcmVyIHx8IHRpbGVTaXplLmlzRW1wdHkoKSkKQEAgLTc5LDcgKzgyLDYgQEAgdm9p
ZCBMYXllclRpbGVyQ2hyb21pdW06OnNldFRpbGVTaXplKGNvbgogICAgIHJlc2V0KCk7CiAKICAg
ICBtX3RpbGVTaXplID0gc2l6ZTsKLSAgICBtX3RpbGluZ0RhdGEuc2V0TWF4VGV4dHVyZVNpemUo
bWF4KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogfQogCiBMYXllclRleHR1cmUqIExh
eWVyVGlsZXJDaHJvbWl1bTo6Z2V0U2luZ2xlVGV4dHVyZSgpCkBAIC0xODUsOSArMTg3LDEzIEBA
IEludFJlY3QgTGF5ZXJUaWxlckNocm9taXVtOjp0aWxlQ29udGVudFIKIEludFJlY3QgTGF5ZXJU
aWxlckNocm9taXVtOjp0aWxlTGF5ZXJSZWN0KGNvbnN0IFRpbGUqIHRpbGUpIGNvbnN0CiB7CiAg
ICAgY29uc3QgaW50IGluZGV4ID0gbV90aWxpbmdEYXRhLnRpbGVJbmRleCh0aWxlLT5pKCksIHRp
bGUtPmooKSk7Ci0gICAgSW50UmVjdCBsYXllclJlY3QgPSBtX3RpbGluZ0RhdGEudGlsZUJvdW5k
c1dpdGhCb3JkZXIoaW5kZXgpOwotICAgIGxheWVyUmVjdC5zZXRTaXplKG1fdGlsZVNpemUpOwot
ICAgIHJldHVybiBsYXllclJlY3Q7CisgICAgcmV0dXJuIG1fdGlsaW5nRGF0YS50aWxlQm91bmRz
V2l0aEJvcmRlcihpbmRleCk7Cit9CisKK0ludFJlY3QgTGF5ZXJUaWxlckNocm9taXVtOjp0aWxl
VGV4UmVjdChjb25zdCBUaWxlKiB0aWxlKSBjb25zdAoreworICAgIGNvbnN0IGludCBpbmRleCA9
IG1fdGlsaW5nRGF0YS50aWxlSW5kZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpOworICAgIHJldHVy
biBtX3RpbGluZ0RhdGEudGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcihpbmRleCk7CiB9CiAKIHZv
aWQgTGF5ZXJUaWxlckNocm9taXVtOjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdCkKQEAgLTE5NSw2ICsyMDEsOSBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6aW52
YWxpZGF0ZVJlY3QoCiAgICAgaWYgKGNvbnRlbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3NraXBzRHJh
dykKICAgICAgICAgcmV0dXJuOwogCisgICAgSW50U2l6ZSBvbGRMYXllclNpemUobV90aWxpbmdE
YXRhLnRvdGFsU2l6ZVgoKSwgbV90aWxpbmdEYXRhLnRvdGFsU2l6ZVkoKSk7CisgICAgY29uc3Qg
SW50UmVjdCBvbGRMYXllclJlY3QgPSBJbnRSZWN0KEludFBvaW50KCksIG9sZExheWVyU2l6ZSk7
CisKICAgICBncm93TGF5ZXJUb0NvbnRhaW4oY29udGVudFJlY3QpOwogCiAgICAgLy8gRGlydHkg
cmVjdHMgYXJlIGFsd2F5cyBpbiBsYXllciBzcGFjZSwgYXMgdGhlIGxheWVyIGNvdWxkIGJlIHJl
cG9zaXRpb25lZApAQCAtMjExLDYgKzIyMCwxMiBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6
aW52YWxpZGF0ZVJlY3QoCiAgICAgICAgICAgICBJbnRSZWN0IGJvdW5kID0gdGlsZUxheWVyUmVj
dCh0aWxlKTsKICAgICAgICAgICAgIGJvdW5kLmludGVyc2VjdChsYXllclJlY3QpOwogICAgICAg
ICAgICAgdGlsZS0+bV9kaXJ0eUxheWVyUmVjdC51bml0ZShib3VuZCk7CisKKyAgICAgICAgICAg
IC8vIEludmFsaWRhdGUgb2xkIGxheWVyIGFyZWEgdG8gY2xlYXIgYW55IGNvbnRlbnRzIGxlZnQg
ZnJvbQorICAgICAgICAgICAgLy8gcHJldmlvdXMgbGF5ZXIgc2l6ZS4KKyAgICAgICAgICAgIElu
dFJlY3Qgb2xkQm91bmQgPSB0aWxlTGF5ZXJSZWN0KHRpbGUpOworICAgICAgICAgICAgb2xkQm91
bmQuaW50ZXJzZWN0KG9sZExheWVyUmVjdCk7CisgICAgICAgICAgICB0aWxlLT5tX2RpcnR5TGF5
ZXJSZWN0LnVuaXRlKG9sZEJvdW5kKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTI2Nyw2ICsy
ODIsNyBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAgICAgLy8g
Q3JlYXRlIHRpbGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5nIGEgZGlydHkgcmVjdCB0byBjb250YWlu
IGFsbAogICAgIC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1cnJlbnRseSBiZWluZyBkcmF3bi4KICAg
ICBJbnRSZWN0IGRpcnR5TGF5ZXJSZWN0OworICAgIEludFNpemUgdGlsZVNpemU7CiAgICAgaW50
IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsKICAgICBjb250ZW50UmVjdFRvVGlsZUluZGljZXMo
Y29udGVudFJlY3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7CiAgICAgZm9yIChpbnQgaiA9
IHRvcDsgaiA8PSBib3R0b207ICsraikgewpAQCAtMjc0LDE2ICsyOTAsMjAgQEAgdm9pZCBMYXll
clRpbGVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZQogICAgICAgICAgICAgVGlsZSogdGlsZSA9
IHRpbGVBdChpLCBqKTsKICAgICAgICAgICAgIGlmICghdGlsZSkKICAgICAgICAgICAgICAgICB0
aWxlID0gY3JlYXRlVGlsZShpLCBqKTsKLSAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgp
LT5pc1ZhbGlkKG1fdGlsZVNpemUsIG1fdGV4dHVyZUZvcm1hdCkpCisKKyAgICAgICAgICAgIElu
dFNpemUgdGV4U2l6ZSA9IHRpbGVUZXhSZWN0KHRpbGUpLnNpemUoKTsKKyAgICAgICAgICAgIGlm
ICghdGlsZS0+dGV4dHVyZSgpLT5pc1ZhbGlkKHRleFNpemUsIG1fdGV4dHVyZUZvcm1hdCkpCiAg
ICAgICAgICAgICAgICAgdGlsZS0+bV9kaXJ0eUxheWVyUmVjdCA9IHRpbGVMYXllclJlY3QodGls
ZSk7CiAKLSAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgpLT5yZXNlcnZlKG1fdGlsZVNp
emUsIG1fdGV4dHVyZUZvcm1hdCkpIHsKKyAgICAgICAgICAgIGlmICghdGlsZS0+dGV4dHVyZSgp
LT5yZXNlcnZlKHRleFNpemUsIG1fdGV4dHVyZUZvcm1hdCkpIHsKICAgICAgICAgICAgICAgICBt
X3NraXBzRHJhdyA9IHRydWU7CiAgICAgICAgICAgICAgICAgcmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRpcnR5TGF5ZXJSZWN0
LnVuaXRlKHRpbGUtPm1fZGlydHlMYXllclJlY3QpOworCisgICAgICAgICAgICB0aWxlU2l6ZSA9
IHRpbGVTaXplLmV4cGFuZGVkVG8odGV4U2l6ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI5
Niw3ICszMTYsNyBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAg
ICAgaWYgKGRpcnR5TGF5ZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
dGV4dHVyZVVwZGF0ZXItPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90aWxlU2l6ZSwg
bV90aWxpbmdEYXRhLmJvcmRlclRleGVscygpKTsKKyAgICB0ZXh0dXJlVXBkYXRlci0+cHJlcGFy
ZVRvVXBkYXRlKG1fcGFpbnRSZWN0LCB0aWxlU2l6ZSwgbV90aWxpbmdEYXRhLmJvcmRlclRleGVs
cygpKTsKIH0KIAogdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OnVwZGF0ZVJlY3QoTGF5ZXJUZXh0
dXJlVXBkYXRlciogdGV4dHVyZVVwZGF0ZXIpCkBAIC0zMTksNyArMzM5LDggQEAgdm9pZCBMYXll
clRpbGVyQ2hyb21pdW06OnVwZGF0ZVJlY3QoTGF5ZQogCiAgICAgICAgICAgICAvLyBDYWxjdWxh
dGUgcGFnZS1zcGFjZSByZWN0YW5nbGUgdG8gY29weSBmcm9tLgogICAgICAgICAgICAgSW50UmVj
dCBzb3VyY2VSZWN0ID0gdGlsZUNvbnRlbnRSZWN0KHRpbGUpOwotICAgICAgICAgICAgY29uc3Qg
SW50UG9pbnQgYW5jaG9yID0gc291cmNlUmVjdC5sb2NhdGlvbigpOworICAgICAgICAgICAgSW50
UmVjdCB0ZXhSZWN0ID0gdGlsZVRleFJlY3QodGlsZSk7CisgICAgICAgICAgICBjb25zdCBJbnRQ
b2ludCBhbmNob3IgPSB0ZXhSZWN0LmxvY2F0aW9uKCk7CiAgICAgICAgICAgICBzb3VyY2VSZWN0
LmludGVyc2VjdChsYXllclJlY3RUb0NvbnRlbnRSZWN0KHRpbGUtPm1fZGlydHlMYXllclJlY3Qp
KTsKICAgICAgICAgICAgIC8vIFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBv
biB0aWxlIGJvdW5kYXJpZXMsIHNvCiAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzb3Vy
Y2VSZWN0IGRvZXNuJ3QgZXh0ZW5kIG91dHNpZGUgb2YgaXQuCkBAIC0zODYsMTIgKzQwNyw1MSBA
QCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6Z3Jvd0xheWVyVG9Db250CiAgICAgLy8gR3JvdyB0
aGUgdGlsZSBhcnJheSB0byBjb250YWluIHRoaXMgY29udGVudCByZWN0LgogICAgIEludFJlY3Qg
bGF5ZXJSZWN0ID0gY29udGVudFJlY3RUb0xheWVyUmVjdChjb250ZW50UmVjdCk7CiAgICAgSW50
U2l6ZSByZWN0U2l6ZSA9IEludFNpemUobGF5ZXJSZWN0Lm1heFgoKSwgbGF5ZXJSZWN0Lm1heFko
KSk7CisgICAgSW50U2l6ZSB0ZXhTaXplID0gbV90aWxlU2l6ZTsKKworICAgIC8vIFVzZSByZWN0
IHdpdGggYm9yZGVyIHRleGVscyBhcyBtYXggdGV4dHVyZSBzaXplIHdoZW4gdGlsZSBzaXplCisg
ICAgLy8gaGFzIG5vdCBiZWVuIHNwZWNpZmllZC4KKyAgICBpZiAodGV4U2l6ZS5pc0VtcHR5KCkp
IHsKKyAgICAgICAgdGV4U2l6ZSA9IHJlY3RTaXplOworICAgICAgICBpZiAobV90aWxpbmdEYXRh
LmJvcmRlclRleGVscygpKQorICAgICAgICAgICAgdGV4U2l6ZS5leHBhbmQoMiwgMik7CisgICAg
fQogCisgICAgbV90aWxpbmdEYXRhLnNldE1heFRleHR1cmVTaXplKG1heCh0ZXhTaXplLndpZHRo
KCksIHRleFNpemUuaGVpZ2h0KCkpKTsKICAgICBJbnRTaXplIG9sZExheWVyU2l6ZShtX3RpbGlu
Z0RhdGEudG90YWxTaXplWCgpLCBtX3RpbGluZ0RhdGEudG90YWxTaXplWSgpKTsKICAgICBJbnRT
aXplIG5ld1NpemUgPSByZWN0U2l6ZS5leHBhbmRlZFRvKG9sZExheWVyU2l6ZSk7CiAgICAgbV90
aWxpbmdEYXRhLnNldFRvdGFsU2l6ZShuZXdTaXplLndpZHRoKCksIG5ld1NpemUuaGVpZ2h0KCkp
OwogfQogCitzdGF0aWMgYm9vbCBpc0NDVyhjb25zdCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAg
RmxvYXRQb2ludCB2MSA9IEZsb2F0UG9pbnQocXVhZC5wMigpLngoKSAtIHF1YWQucDEoKS54KCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVhZC5wMigpLnkoKSAtIHF1YWQucDEo
KS55KCkpOworICAgIEZsb2F0UG9pbnQgdjIgPSBGbG9hdFBvaW50KHF1YWQucDMoKS54KCkgLSBx
dWFkLnAyKCkueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1YWQucDMoKS55
KCkgLSBxdWFkLnAyKCkueSgpKTsKKyAgICByZXR1cm4gKHYxLngoKSAqIHYyLnkoKSAtIHYxLnko
KSAqIHYyLngoKSkgPCAwOworfQorCitzdGF0aWMgRWRnZSBjb21wdXRlRWRnZShjb25zdCBGbG9h
dFBvaW50JiBwLCBjb25zdCBGbG9hdFBvaW50JiBxLCBmbG9hdCBzaWduKQoreworICAgIEFTU0VS
VChwICE9IHEpOworCisgICAgRmxvYXRQb2ludCB0YW5nZW50KHAueSgpIC0gcS55KCksIHEueCgp
IC0gcC54KCkpOworICAgIGZsb2F0IHNjYWxlID0gc2lnbiAvIHRhbmdlbnQubGVuZ3RoKCk7Cisg
ICAgZmxvYXQgY3Jvc3MyID0gcC54KCkgKiBxLnkoKSAtIHEueCgpICogcC55KCk7CisKKyAgICBy
ZXR1cm4gRWRnZSh0YW5nZW50LngoKSAqIHNjYWxlLAorICAgICAgICAgICAgICAgIHRhbmdlbnQu
eSgpICogc2NhbGUsCisgICAgICAgICAgICAgICAgY3Jvc3MyICogc2NhbGUpOworfQorCitzdGF0
aWMgRmxvYXRQb2ludCBpbnRlcnNlY3QoY29uc3QgRWRnZSYgYSwgY29uc3QgRWRnZSYgYikKK3sK
KyAgICByZXR1cm4gRmxvYXRQb2ludCgKKyAgICAgICAgKGEueSgpICogYi56KCkgLSBiLnkoKSAq
IGEueigpKSAvIChhLngoKSAqIGIueSgpIC0gYi54KCkgKiBhLnkoKSksCisgICAgICAgIChhLngo
KSAqIGIueigpIC0gYi54KCkgKiBhLnooKSkgLyAoYi54KCkgKiBhLnkoKSAtIGEueCgpICogYi55
KCkpKTsKK30KKwogdGVtcGxhdGUgPGNsYXNzIFQ+CiB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6
ZHJhd1RpbGVzKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgZ2xvYmFsVHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBUKiBwcm9ncmFt
LCBMYXllclRleHR1cmVVcGRhdGVyKiB0ZXh0dXJlVXBkYXRlcikKIHsKQEAgLTQwMCwxMCArNDYw
LDY5IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpkcmF3VGlsZXMoY29uc3QKICAgICBHTEMo
Y29udGV4dCwgY29udGV4dC0+dW5pZm9ybTFpKHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkuc2Ft
cGxlckxvY2F0aW9uKCksIDApKTsKICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+YWN0aXZlVGV4
dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTApKTsKIAorICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IG1hdHJpeChnbG9iYWxUcmFuc2Zvcm0pOworCisgICAgLy8gV2UgZG9uJ3QgY2FyZSBh
Ym91dCBaIGNvbXBvbmVudC4KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXhYWVcgPQor
ICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChtYXRyaXgubTExKCksIG1hdHJpeC5tMTIoKSwg
MCwgbWF0cml4Lm0xNCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRyaXgubTIx
KCksIG1hdHJpeC5tMjIoKSwgMCwgbWF0cml4Lm0yNCgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXRyaXgubTMxKCksIG1hdHJpeC5tMzIoKSwgMSwgbWF0cml4Lm0zNCgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRyaXgubTQxKCksIG1hdHJpeC5tNDIoKSwgMCwg
bWF0cml4Lm00NCgpKTsKKworICAgIC8vIERvbid0IGRyYXcgYW55IHRpbGVzIHdoZW4gbWF0cml4
IGlzIG5vdCBpbnZlcnRpYmxlLgorICAgIGlmICghbWF0cml4WFlXLmlzSW52ZXJ0aWJsZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnZlcnNlID0gbWF0
cml4WFlXLmludmVyc2UoKTsKKyAgICBJbnRSZWN0IGJvdW5kcyhtX2xheWVyUG9zaXRpb24sIElu
dFNpemUobV90aWxpbmdEYXRhLnRvdGFsU2l6ZVgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV90aWxpbmdEYXRhLnRvdGFsU2l6ZVkoKSkpOworCisgICAg
Ly8gSW5jbHVkZSBvdXRlciBib3JkZXIgdGV4ZWxzIGluIGJvdW5kcy4KKyAgICBib3VuZHMuaW5m
bGF0ZShtX3RpbGluZ0RhdGEuYm9yZGVyVGV4ZWxzKCkpOworCisgICAgLy8gTWFwIGJvdW5kcyB0
byBkZXZpY2Ugc3BhY2UuCisgICAgRmxvYXRRdWFkIGJvdW5kc1F1YWQgPSBtYXRyaXgubWFwUXVh
ZChGbG9hdFF1YWQoYm91bmRzKSk7CisKKyAgICAvLyBDb3VudGVyLWNsb2Nrd2lzZT8KKyAgICBm
bG9hdCBzaWduID0gaXNDQ1coYm91bmRzUXVhZCkgPyAtMSA6IDE7CisKKyAgICAvLyBDb21wdXRl
IG91dGVyIGVkZ2VzLgorICAgIEVkZ2UgbGVmdEVkZ2UgPSBjb21wdXRlRWRnZShib3VuZHNRdWFk
LnA0KCksIGJvdW5kc1F1YWQucDEoKSwgc2lnbik7CisgICAgRWRnZSByaWdodEVkZ2UgPSBjb21w
dXRlRWRnZShib3VuZHNRdWFkLnAyKCksIGJvdW5kc1F1YWQucDMoKSwgc2lnbik7CisgICAgRWRn
ZSB0b3BFZGdlID0gY29tcHV0ZUVkZ2UoYm91bmRzUXVhZC5wMSgpLCBib3VuZHNRdWFkLnAyKCks
IHNpZ24pOworICAgIEVkZ2UgYm90dG9tRWRnZSA9IGNvbXB1dGVFZGdlKGJvdW5kc1F1YWQucDMo
KSwgYm91bmRzUXVhZC5wNCgpLCBzaWduKTsKKworICAgIC8vIE1vdmUgb3V0ZXIgZWRnZXMgdG8g
ZW5zdXJlIHRoYXQgYWxsIHBhcnRpYWxseSBjb3ZlcmVkIHBpeGVscyBhcmUKKyAgICAvLyBwcm9j
ZXNzZWQuCisgICAgZmxvYXQgekRpc3RhbmNlID0gbV90aWxpbmdEYXRhLmJvcmRlclRleGVscygp
ICogMC41ZjsKKyAgICBsZWZ0RWRnZS5tb3ZlKDAsIDAsIHpEaXN0YW5jZSk7CisgICAgcmlnaHRF
ZGdlLm1vdmUoMCwgMCwgekRpc3RhbmNlKTsKKyAgICB0b3BFZGdlLm1vdmUoMCwgMCwgekRpc3Rh
bmNlKTsKKyAgICBib3R0b21FZGdlLm1vdmUoMCwgMCwgekRpc3RhbmNlKTsKKworICAgIEVkZ2Ug
cHJldkVkZ2VZID0gdG9wRWRnZTsKKwogICAgIGludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207
CiAgICAgY29udGVudFJlY3RUb1RpbGVJbmRpY2VzKGNvbnRlbnRSZWN0LCBsZWZ0LCB0b3AsIHJp
Z2h0LCBib3R0b20pOwotICAgIEludFJlY3QgbGF5ZXJSZWN0ID0gY29udGVudFJlY3RUb0xheWVy
UmVjdChjb250ZW50UmVjdCk7CiAgICAgZm9yIChpbnQgaiA9IHRvcDsgaiA8PSBib3R0b207ICsr
aikgeworICAgICAgICBFZGdlIHByZXZFZGdlWCA9IGxlZnRFZGdlOworCisgICAgICAgIEVkZ2Ug
ZWRnZVkgPSBib3R0b21FZGdlOworICAgICAgICBpZiAoaiA8IChtX3RpbGluZ0RhdGEubnVtVGls
ZXNZKCkgLSAxKSkgeworICAgICAgICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IG1fdGlsaW5nRGF0
YS50aWxlQm91bmRzKG1fdGlsaW5nRGF0YS50aWxlSW5kZXgoMCwgaikpOworICAgICAgICAgICAg
dGlsZVJlY3QubW92ZShtX2xheWVyUG9zaXRpb24ueCgpLCBtX2xheWVyUG9zaXRpb24ueSgpKTsK
KworICAgICAgICAgICAgRmxvYXRQb2ludCBwMSh0aWxlUmVjdC5tYXhYKCksIHRpbGVSZWN0Lm1h
eFkoKSk7CisgICAgICAgICAgICBGbG9hdFBvaW50IHAyKHRpbGVSZWN0LngoKSwgdGlsZVJlY3Qu
bWF4WSgpKTsKKworICAgICAgICAgICAgLy8gTWFwIHBvaW50cyB0byBkZXZpY2Ugc3BhY2UuCisg
ICAgICAgICAgICBwMSA9IG1hdHJpeC5tYXBQb2ludChwMSk7CisgICAgICAgICAgICBwMiA9IG1h
dHJpeC5tYXBQb2ludChwMik7CisKKyAgICAgICAgICAgIC8vIENvbXB1dGUgaG9yaXpvbnRhbCBl
ZGdlLgorICAgICAgICAgICAgZWRnZVkgPSBjb21wdXRlRWRnZShwMSwgcDIsIHNpZ24pOworICAg
ICAgICB9CisKICAgICAgICAgZm9yIChpbnQgaSA9IGxlZnQ7IGkgPD0gcmlnaHQ7ICsraSkgewog
ICAgICAgICAgICAgVGlsZSogdGlsZSA9IHRpbGVBdChpLCBqKTsKICAgICAgICAgICAgIGlmICgh
dGlsZSkKQEAgLTQxMywyNCArNTMyLDE3IEBAIHZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpkcmF3
VGlsZXMoY29uc3QKIAogICAgICAgICAgICAgdGlsZS0+dGV4dHVyZSgpLT5iaW5kVGV4dHVyZSgp
OwogCi0gICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0aWxlTWF0cml4KGdsb2JhbFRy
YW5zZm9ybSk7Ci0KICAgICAgICAgICAgIC8vIERvbid0IHVzZSB0aWxlQ29udGVudFJlY3QgaGVy
ZSwgYXMgdGhhdCBjb250YWlucyB0aGUgZnVsbAogICAgICAgICAgICAgLy8gcmVjdCB3aXRoIGJv
cmRlciB0ZXhlbHMgd2hpY2ggc2hvdWxkbid0IGJlIGRyYXduLgogICAgICAgICAgICAgSW50UmVj
dCB0aWxlUmVjdCA9IG1fdGlsaW5nRGF0YS50aWxlQm91bmRzKG1fdGlsaW5nRGF0YS50aWxlSW5k
ZXgodGlsZS0+aSgpLCB0aWxlLT5qKCkpKTsKLSAgICAgICAgICAgIEludFJlY3QgZGlzcGxheVJl
Y3QgPSB0aWxlUmVjdDsKLSAgICAgICAgICAgIHRpbGVSZWN0LmludGVyc2VjdChsYXllclJlY3Qp
OwotICAgICAgICAgICAgLy8gS2VlcCB0cmFjayBvZiBob3cgdGhlIHRvcCBsZWZ0IGhhcyBtb3Zl
ZCwgc28gdGhlIHRleHR1cmUgY2FuIGJlCi0gICAgICAgICAgICAvLyBvZmZzZXQgdGhlIHNhbWUg
YW1vdW50LgotICAgICAgICAgICAgSW50U2l6ZSBvZmZzZXQgPSB0aWxlUmVjdC5taW5YTWluWUNv
cm5lcigpIC0gZGlzcGxheVJlY3QubWluWE1pbllDb3JuZXIoKTsKICAgICAgICAgICAgIHRpbGVS
ZWN0Lm1vdmUobV9sYXllclBvc2l0aW9uLngoKSwgbV9sYXllclBvc2l0aW9uLnkoKSk7Ci0gICAg
ICAgICAgICB0aWxlTWF0cml4LnRyYW5zbGF0ZTNkKHRpbGVSZWN0LngoKSArIHRpbGVSZWN0Lndp
ZHRoKCkgLyAyLjAsIHRpbGVSZWN0LnkoKSArIHRpbGVSZWN0LmhlaWdodCgpIC8gMi4wLCAwKTsK
IAotICAgICAgICAgICAgSW50UG9pbnQgdGV4T2Zmc2V0ID0gbV90aWxpbmdEYXRhLnRleHR1cmVP
ZmZzZXQodGlsZS0+aSgpLCB0aWxlLT5qKCkpICsgb2Zmc2V0OwotICAgICAgICAgICAgZmxvYXQg
dGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdGlsZVNpemUud2lkdGgoKSk7Ci0gICAg
ICAgICAgICBmbG9hdCB0aWxlSGVpZ2h0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdGlsZVNpemUu
aGVpZ2h0KCkpOwotICAgICAgICAgICAgZmxvYXQgdGV4VHJhbnNsYXRlWCA9IHRleE9mZnNldC54
KCkgLyB0aWxlV2lkdGg7Ci0gICAgICAgICAgICBmbG9hdCB0ZXhUcmFuc2xhdGVZID0gdGV4T2Zm
c2V0LnkoKSAvIHRpbGVIZWlnaHQ7CisgICAgICAgICAgICBJbnRQb2ludCB0ZXhPZmZzZXQgPSBt
X3RpbGluZ0RhdGEudGV4dHVyZU9mZnNldCh0aWxlLT5pKCksIHRpbGUtPmooKSk7CisgICAgICAg
ICAgICBJbnRSZWN0IHRleFJlY3QgPSB0aWxlVGV4UmVjdCh0aWxlKTsKKyAgICAgICAgICAgIGZs
b2F0IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0LndpZHRoKCkpOworICAg
ICAgICAgICAgZmxvYXQgdGlsZUhlaWdodCA9IHN0YXRpY19jYXN0PGZsb2F0Pih0ZXhSZWN0Lmhl
aWdodCgpKTsKKyAgICAgICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVggPSAodGV4T2Zmc2V0Lngo
KSAtIHRpbGVSZWN0LngoKSkgLyB0aWxlV2lkdGg7CisgICAgICAgICAgICBmbG9hdCB0ZXhUcmFu
c2xhdGVZID0gKHRleE9mZnNldC55KCkgLSB0aWxlUmVjdC55KCkpIC8gdGlsZUhlaWdodDsKICAg
ICAgICAgICAgIGZsb2F0IHRleFNjYWxlWCA9IHRpbGVSZWN0LndpZHRoKCkgLyB0aWxlV2lkdGg7
CiAgICAgICAgICAgICBmbG9hdCB0ZXhTY2FsZVkgPSB0aWxlUmVjdC5oZWlnaHQoKSAvIHRpbGVI
ZWlnaHQ7CiAgICAgICAgICAgICAvLyBPcGVuR0wgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYm90dG9t
LXVwLgpAQCAtNDM5LDEzICs1NTEsNDMgQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdU
aWxlcyhjb25zdAogICAgICAgICAgICAgICAgIHRleFRyYW5zbGF0ZVkgPSAxLjAgLSB0ZXhUcmFu
c2xhdGVZOwogICAgICAgICAgICAgICAgIHRleFNjYWxlWSAqPSAtMS4wOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgZHJhd1RleHR1cmVkUXVhZChjb250ZXh0LCBsYXllclJlbmRlcmVyKCkt
PnByb2plY3Rpb25NYXRyaXgoKSwgdGlsZU1hdHJpeCwgdGlsZVJlY3Qud2lkdGgoKSwgdGlsZVJl
Y3QuaGVpZ2h0KCksIG9wYWNpdHksIHRleFRyYW5zbGF0ZVgsIHRleFRyYW5zbGF0ZVksIHRleFNj
YWxlWCwgdGV4U2NhbGVZLCBwcm9ncmFtKTsKKworICAgICAgICAgICAgRWRnZSBlZGdlWCA9IHJp
Z2h0RWRnZTsKKyAgICAgICAgICAgIGlmIChpIDwgKG1fdGlsaW5nRGF0YS5udW1UaWxlc1goKSAt
IDEpKSB7CisgICAgICAgICAgICAgICAgRmxvYXRQb2ludCBwMSh0aWxlUmVjdC5tYXhYKCksIHRp
bGVSZWN0LnkoKSk7CisgICAgICAgICAgICAgICAgRmxvYXRQb2ludCBwMih0aWxlUmVjdC5tYXhY
KCksIHRpbGVSZWN0Lm1heFkoKSk7CisKKyAgICAgICAgICAgICAgICAvLyBNYXAgcG9pbnRzIHRv
IGRldmljZSBzcGFjZS4KKyAgICAgICAgICAgICAgICBwMSA9IG1hdHJpeC5tYXBQb2ludChwMSk7
CisgICAgICAgICAgICAgICAgcDIgPSBtYXRyaXgubWFwUG9pbnQocDIpOworCisgICAgICAgICAg
ICAgICAgLy8gQ29tcHV0ZSB2ZXJ0aWNhbCBlZGdlLgorICAgICAgICAgICAgICAgIGVkZ2VYID0g
Y29tcHV0ZUVkZ2UocDEsIHAyLCBzaWduKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
Ly8gQ3JlYXRlIGRldmljZSBzcGFjZSBxdWFkLgorICAgICAgICAgICAgRmxvYXRRdWFkIGRldmlj
ZVF1YWQoaW50ZXJzZWN0KGVkZ2VZLCBwcmV2RWRnZVgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50ZXJzZWN0KHByZXZFZGdlWCwgcHJldkVkZ2VZKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludGVyc2VjdChwcmV2RWRnZVksIGVkZ2VYKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyc2VjdChlZGdlWCwgZWRnZVkpKTsKKwor
ICAgICAgICAgICAgLy8gTWFwIHF1YWQgdG8gbGF5ZXIgc3BhY2UuCisgICAgICAgICAgICBGbG9h
dFF1YWQgcXVhZCA9IGludmVyc2UubWFwUXVhZChkZXZpY2VRdWFkKTsKKworICAgICAgICAgICAg
Ly8gTm9ybWFsaXplIHRvIHRpbGVSZWN0LgorICAgICAgICAgICAgcXVhZC5zY2FsZSgxLjBmIC8g
dGlsZVJlY3Qud2lkdGgoKSwgMS4wZiAvIHRpbGVSZWN0LmhlaWdodCgpKTsKKworICAgICAgICAg
ICAgZHJhd1RleHR1cmVkUXVhZChjb250ZXh0LCBxdWFkLCBsYXllclJlbmRlcmVyKCktPnByb2pl
Y3Rpb25NYXRyaXgoKSwgbWF0cml4LCB0aWxlUmVjdC53aWR0aCgpLCB0aWxlUmVjdC5oZWlnaHQo
KSwgb3BhY2l0eSwgdGV4VHJhbnNsYXRlWCwgdGV4VHJhbnNsYXRlWSwgdGV4U2NhbGVYLCB0ZXhT
Y2FsZVksIHByb2dyYW0pOworCisgICAgICAgICAgICBwcmV2RWRnZVggPSBlZGdlWDsKICAgICAg
ICAgfQorCisgICAgICAgIHByZXZFZGdlWSA9IGVkZ2VZOwogICAgIH0KIH0KIAogdGVtcGxhdGUg
PGNsYXNzIFQ+Ci12b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6ZHJhd1RleHR1cmVkUXVhZChHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHByb2pl
Y3Rpb25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3TWF0cml4LAordm9p
ZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUZXh0dXJlZFF1YWQoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHByb2plY3Rpb25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3TWF0
cml4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgd2lk
dGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgb3BhY2l0eSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZsb2F0IHRleFRyYW5zbGF0ZVgsIGZsb2F0IHRleFRyYW5zbGF0
ZVksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB0ZXhT
Y2FsZVgsIGZsb2F0IHRleFNjYWxlWSwKQEAgLTQ2OCw2ICs2MTAsMTcgQEAgdm9pZCBMYXllclRp
bGVyQ2hyb21pdW06OmRyYXdUZXh0dXJlZFF1YQogICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT51
bmlmb3JtNGYocHJvZ3JhbS0+dmVydGV4U2hhZGVyKCkudGV4VHJhbnNmb3JtTG9jYXRpb24oKSwK
ICAgICAgICAgdGV4VHJhbnNsYXRlWCwgdGV4VHJhbnNsYXRlWSwgdGV4U2NhbGVYLCB0ZXhTY2Fs
ZVkpKTsKIAorICAgIGZsb2F0IHBvaW50WzhdOworICAgIHBvaW50WzBdID0gcXVhZC5wMSgpLngo
KTsKKyAgICBwb2ludFsxXSA9IHF1YWQucDEoKS55KCk7CisgICAgcG9pbnRbMl0gPSBxdWFkLnAy
KCkueCgpOworICAgIHBvaW50WzNdID0gcXVhZC5wMigpLnkoKTsKKyAgICBwb2ludFs0XSA9IHF1
YWQucDMoKS54KCk7CisgICAgcG9pbnRbNV0gPSBxdWFkLnAzKCkueSgpOworICAgIHBvaW50WzZd
ID0gcXVhZC5wNCgpLngoKTsKKyAgICBwb2ludFs3XSA9IHF1YWQucDQoKS55KCk7CisgICAgR0xD
KGNvbnRleHQsIGNvbnRleHQtPnVuaWZvcm0yZnYocHJvZ3JhbS0+dmVydGV4U2hhZGVyKCkucG9p
bnRMb2NhdGlvbigpLCBwb2ludCwgNCkpOworCiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRy
YXdFbGVtZW50cyhHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVTLCA2LCBHcmFwaGljc0NvbnRl
eHQzRDo6VU5TSUdORURfU0hPUlQsIDApKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNo
cm9taXVtLmgJKHJldmlzaW9uIDkwNjAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEx
Miw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhd1RpbGVzKGNvbnN0IEludFJlY3Qm
IGNvbnRlbnRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHks
IGNvbnN0IFQqIHByb2dyYW0sIExheWVyVGV4dHVyZVVwZGF0ZXIqKTsKIAogICAgIHRlbXBsYXRl
IDxjbGFzcyBUPgotICAgIHZvaWQgZHJhd1RleHR1cmVkUXVhZChHcmFwaGljc0NvbnRleHQzRCos
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwcm9qZWN0aW9uTWF0cml4LCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgZHJhd01hdHJpeCwKKyAgICB2b2lkIGRyYXdUZXh0dXJlZFF1YWQo
R3JhcGhpY3NDb250ZXh0M0QqLCBjb25zdCBGbG9hdFF1YWQmLCBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGRy
YXdNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsIGZsb2F0IG9wYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRl
eFRyYW5zbGF0ZVgsIGZsb2F0IHRleFRyYW5zbGF0ZVksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZsb2F0IHRleFNjYWxlWCwgZmxvYXQgdGV4U2NhbGVZLApAQCAtMTM0LDYgKzEzNCw3IEBA
IHByaXZhdGU6CiAgICAgVGlsZSogdGlsZUF0KGludCwgaW50KSBjb25zdDsKICAgICBJbnRSZWN0
IHRpbGVDb250ZW50UmVjdChjb25zdCBUaWxlKikgY29uc3Q7CiAgICAgSW50UmVjdCB0aWxlTGF5
ZXJSZWN0KGNvbnN0IFRpbGUqKSBjb25zdDsKKyAgICBJbnRSZWN0IHRpbGVUZXhSZWN0KGNvbnN0
IFRpbGUqKSBjb25zdDsKIAogICAgIEdDM0RlbnVtIG1fdGV4dHVyZUZvcm1hdDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1NoYWRlckNocm9taXVtLmNwcAkocmV2aXNpb24gOTA2MDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyNCw2ICsxMjQsNyBAQCBTdHJpbmcgVmVydGV4U2hhZGVyUG9zOjpnZXRTaGFk
ZXJTdHJpbmcoCiBWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm06OlZlcnRleFNoYWRlclBvc1Rl
eFRyYW5zZm9ybSgpCiAgICAgOiBtX21hdHJpeExvY2F0aW9uKC0xKQogICAgICwgbV90ZXhUcmFu
c2Zvcm1Mb2NhdGlvbigtMSkKKyAgICAsIG1fcG9pbnRMb2NhdGlvbigtMSkKIHsKIH0KIApAQCAt
MTMxLDcgKzEzMiw4IEBAIHZvaWQgVmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjppbml0KEcK
IHsKICAgICBtX21hdHJpeExvY2F0aW9uID0gY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKHBy
b2dyYW0sICJtYXRyaXgiKTsKICAgICBtX3RleFRyYW5zZm9ybUxvY2F0aW9uID0gY29udGV4dC0+
Z2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXhUcmFuc2Zvcm0iKTsKLSAgICBBU1NFUlQo
bV9tYXRyaXhMb2NhdGlvbiAhPSAtMSAmJiBtX3RleFRyYW5zZm9ybUxvY2F0aW9uICE9IC0xKTsK
KyAgICBtX3BvaW50TG9jYXRpb24gPSBjb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3Jh
bSwgInBvaW50Iik7CisgICAgQVNTRVJUKG1fbWF0cml4TG9jYXRpb24gIT0gLTEgJiYgbV90ZXhU
cmFuc2Zvcm1Mb2NhdGlvbiAhPSAtMSAmJiBtX3BvaW50TG9jYXRpb24gIT0gLTEpOwogfQogCiBT
dHJpbmcgVmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtOjpnZXRTaGFkZXJTdHJpbmcoKSBjb25z
dApAQCAtMTQxLDExICsxNDMsMTggQEAgU3RyaW5nIFZlcnRleFNoYWRlclBvc1RleFRyYW5zZm9y
bTo6Z2V0UwogICAgICAgICBhdHRyaWJ1dGUgdmVjMiBhX3RleENvb3JkOwogICAgICAgICB1bmlm
b3JtIG1hdDQgbWF0cml4OwogICAgICAgICB1bmlmb3JtIHZlYzQgdGV4VHJhbnNmb3JtOworICAg
ICAgICB1bmlmb3JtIHZlYzIgcG9pbnRbNF07CiAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENv
b3JkOwogICAgICAgICB2b2lkIG1haW4oKQogICAgICAgICB7Ci0gICAgICAgICAgICBnbF9Qb3Np
dGlvbiA9IG1hdHJpeCAqIGFfcG9zaXRpb247Ci0gICAgICAgICAgICB2X3RleENvb3JkID0gYV90
ZXhDb29yZCAqIHRleFRyYW5zZm9ybS56dyArIHRleFRyYW5zZm9ybS54eTsKKyAgICAgICAgICAg
IHZlYzIgY29tcGxlbWVudCA9IGFicyhhX3RleENvb3JkIC0gMS4wKTsKKyAgICAgICAgICAgIHZl
YzQgcG9zID0gdmVjNCgwLjAsIDAuMCwgYV9wb3NpdGlvbi56LCBhX3Bvc2l0aW9uLncpOworICAg
ICAgICAgICAgcG9zLnh5ICs9IChjb21wbGVtZW50LnggKiBjb21wbGVtZW50LnkpICogcG9pbnRb
MF07CisgICAgICAgICAgICBwb3MueHkgKz0gKGFfdGV4Q29vcmQueCAqIGNvbXBsZW1lbnQueSkg
KiBwb2ludFsxXTsKKyAgICAgICAgICAgIHBvcy54eSArPSAoYV90ZXhDb29yZC54ICogYV90ZXhD
b29yZC55KSAqIHBvaW50WzJdOworICAgICAgICAgICAgcG9zLnh5ICs9IChjb21wbGVtZW50Lngg
KiBhX3RleENvb3JkLnkpICogcG9pbnRbM107CisgICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IG1h
dHJpeCAqIHBvczsKKyAgICAgICAgICAgIHZfdGV4Q29vcmQgPSBwb3MueHkgKiB0ZXhUcmFuc2Zv
cm0uencgKyB0ZXhUcmFuc2Zvcm0ueHk7CiAgICAgICAgIH0KICAgICApOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9T
aGFkZXJDaHJvbWl1bS5oCShyZXZpc2lvbiA5MDYwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTkwLDEwICs5MCwxMiBAQCBwdWJsaWM6CiAKICAgICBpbnQgbWF0cml4TG9jYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX21hdHJpeExvY2F0aW9uOyB9CiAgICAgaW50IHRleFRyYW5zZm9ybUxvY2F0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXhUcmFuc2Zvcm1Mb2NhdGlvbjsgfQorICAgIGludCBw
b2ludExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb2ludExvY2F0aW9uOyB9CiAKIHByaXZh
dGU6CiAgICAgaW50IG1fbWF0cml4TG9jYXRpb247CiAgICAgaW50IG1fdGV4VHJhbnNmb3JtTG9j
YXRpb247CisgICAgaW50IG1fcG9pbnRMb2NhdGlvbjsKIH07CiAKIGNsYXNzIEZyYWdtZW50VGV4
QWxwaGFCaW5kaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9UaWxpbmdEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAJKHJldmlzaW9uIDkwNjAwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NCwxMCArNDQsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW50IGNv
bXB1dGVOdW1UaWxlcyhpbnQgbWF4VGV4dHVyZVNpemUsIGludCB0b3RhbFNpemUsIGludCBib3Jk
ZXJUZXhlbHMpCiB7CisgICAgaW50IHRvdGFsU2l6ZVdpdGhCb3JkZXIgPSB0b3RhbFNpemUgKyAy
ICogYm9yZGVyVGV4ZWxzOworCiAgICAgaWYgKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRl
eGVscyA8PSAwKQotICAgICAgICByZXR1cm4gdG90YWxTaXplID4gMCAmJiBtYXhUZXh0dXJlU2l6
ZSA+PSB0b3RhbFNpemUgPyAxIDogMDsKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpbnQgbnVt
VGlsZXMgPSBtYXgoMSwgMSArICh0b3RhbFNpemUgLSAxIC0gMiAqIGJvcmRlclRleGVscykgLyAo
bWF4VGV4dHVyZVNpemUgLSAyICogYm9yZGVyVGV4ZWxzKSk7CisgICAgaW50IG51bVRpbGVzID0g
bWF4KDEsIDEgKyAodG90YWxTaXplV2l0aEJvcmRlciAtIDEgLSAyICogYm9yZGVyVGV4ZWxzKSAv
IChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMpKTsKICAgICByZXR1cm4gdG90YWxT
aXplID4gMCA/IG51bVRpbGVzIDogMDsKIH0KIApAQCAtNzksNyArODEsNyBAQCBpbnQgVGlsaW5n
RGF0YTo6dGlsZVhJbmRleEZyb21TcmNDb29yZChpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
QVNTRVJUKG1fbWF4VGV4dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOwotICAgIGludCB4
ID0gKHNyY1BvcyAtIG1fYm9yZGVyVGV4ZWxzKSAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1f
Ym9yZGVyVGV4ZWxzKTsKKyAgICBpbnQgeCA9IHNyY1BvcyAvIChtX21heFRleHR1cmVTaXplIC0g
MiAqIG1fYm9yZGVyVGV4ZWxzKTsKICAgICByZXR1cm4gbWluKG1heCh4LCAwKSwgbnVtVGlsZXNY
KCkgLSAxKTsKIH0KIApAQCAtODksNyArOTEsNyBAQCBpbnQgVGlsaW5nRGF0YTo6dGlsZVlJbmRl
eEZyb21TcmNDb29yZChpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQVNTRVJUKG1fbWF4VGV4
dHVyZVNpemUgLSAyICogbV9ib3JkZXJUZXhlbHMpOwotICAgIGludCB5ID0gKHNyY1BvcyAtIG1f
Ym9yZGVyVGV4ZWxzKSAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsK
KyAgICBpbnQgeSA9IHNyY1BvcyAvIChtX21heFRleHR1cmVTaXplIC0gMiAqIG1fYm9yZGVyVGV4
ZWxzKTsKICAgICByZXR1cm4gbWluKG1heCh5LCAwKSwgbnVtVGlsZXNZKCkgLSAxKTsKIH0KIApA
QCAtMTMyLDYgKzEzNCwxNiBAQCBJbnRSZWN0IFRpbGluZ0RhdGE6OnRpbGVCb3VuZHNXaXRoQm9y
ZGVyCiAgICAgcmV0dXJuIGJvdW5kczsKIH0KIAorSW50UmVjdCBUaWxpbmdEYXRhOjp0aWxlQm91
bmRzV2l0aE91dGVyQm9yZGVyKGludCB0aWxlKSBjb25zdAoreworICAgIEludFJlY3QgYm91bmRz
ID0gdGlsZUJvdW5kcyh0aWxlKTsKKworICAgIGlmIChtX2JvcmRlclRleGVscykKKyAgICAgICAg
Ym91bmRzLmluZmxhdGUoMSk7CisKKyAgICByZXR1cm4gYm91bmRzOworfQorCiBGbG9hdFJlY3Qg
VGlsaW5nRGF0YTo6dGlsZUJvdW5kc05vcm1hbGl6ZWQoaW50IHRpbGUpIGNvbnN0CiB7CiAgICAg
YXNzZXJ0VGlsZSh0aWxlKTsKQEAgLTE2OCw4ICsxODAsNiBAQCBpbnQgVGlsaW5nRGF0YTo6dGls
ZVNpemVYKGludCB4SW5kZXgpIGNvCiAKICAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA9
PSAxKQogICAgICAgICByZXR1cm4gbV90b3RhbFNpemVYOwotICAgIGlmICgheEluZGV4ICYmIG1f
bnVtVGlsZXNYID4gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSBtX2JvcmRl
clRleGVsczsKICAgICBpZiAoeEluZGV4IDwgbnVtVGlsZXNYKCkgLSAxKQogICAgICAgICByZXR1
cm4gbV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVsczsKICAgICBpZiAoeEluZGV4
ID09IG51bVRpbGVzWCgpIC0gMSkKQEAgLTE4NSw4ICsxOTUsNiBAQCBpbnQgVGlsaW5nRGF0YTo6
dGlsZVNpemVZKGludCB5SW5kZXgpIGNvCiAKICAgICBpZiAoIXlJbmRleCAmJiBtX251bVRpbGVz
WSA9PSAxKQogICAgICAgICByZXR1cm4gbV90b3RhbFNpemVZOwotICAgIGlmICgheUluZGV4ICYm
IG1fbnVtVGlsZXNZID4gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemUgLSBtX2Jv
cmRlclRleGVsczsKICAgICBpZiAoeUluZGV4IDwgbnVtVGlsZXNZKCkgLSAxKQogICAgICAgICBy
ZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZSAtIDIgKiBtX2JvcmRlclRleGVsczsKICAgICBpZiAoeUlu
ZGV4ID09IG51bVRpbGVzWSgpIC0gMSkKQEAgLTIzMCw4ICsyMzgsOCBAQCB2b2lkIFRpbGluZ0Rh
dGE6OmludGVyc2VjdERyYXdRdWFkKGNvbnN0CiAKICAgICAqbmV3U3JjID0gc3JjUmVjdEludGVy
c2VjdGVkOwogICAgIG5ld1NyYy0+bW92ZSgKLSAgICAgICAgLXRpbGVCb3VuZHMueCgpICsgKCh0
aWxlWEluZGV4KHRpbGUpID4gMCkgPyBtX2JvcmRlclRleGVscyA6IDApLAotICAgICAgICAtdGls
ZUJvdW5kcy55KCkgKyAoKHRpbGVZSW5kZXgodGlsZSkgPiAwKSA/IG1fYm9yZGVyVGV4ZWxzIDog
MCkpOworICAgICAgICAtdGlsZUJvdW5kcy54KCkgKyBtX2JvcmRlclRleGVscywKKyAgICAgICAg
LXRpbGVCb3VuZHMueSgpICsgbV9ib3JkZXJUZXhlbHMpOwogCiAgICAgKm5ld0RzdCA9IEZsb2F0
UmVjdCgKICAgICAgICAgc3JjUmVjdEludGVyc2VjdGVkTm9ybVggKiBkc3RSZWN0LndpZHRoKCkg
KyBkc3RSZWN0LngoKSwKQEAgLTI0MiwxMCArMjUwLDcgQEAgdm9pZCBUaWxpbmdEYXRhOjppbnRl
cnNlY3REcmF3UXVhZChjb25zdAogCiBJbnRQb2ludCBUaWxpbmdEYXRhOjp0ZXh0dXJlT2Zmc2V0
KGludCB4SW5kZXgsIGludCB5SW5kZXgpIGNvbnN0CiB7Ci0gICAgaW50IGxlZnQgPSAoIXhJbmRl
eCB8fCBtX251bVRpbGVzWCA9PSAxKSA/IDAgOiBtX2JvcmRlclRleGVsczsKLSAgICBpbnQgdG9w
ID0gKCF5SW5kZXggfHwgbV9udW1UaWxlc1kgPT0gMSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0K
LSAgICByZXR1cm4gSW50UG9pbnQobGVmdCwgdG9wKTsKKyAgICByZXR1cm4gSW50UG9pbnQobV9i
b3JkZXJUZXhlbHMsIG1fYm9yZGVyVGV4ZWxzKTsKIH0KIAogdm9pZCBUaWxpbmdEYXRhOjpyZWNv
bXB1dGVOdW1UaWxlcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvVGlsaW5nRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9UaWxpbmdEYXRhLmgJKHJldmlzaW9uIDkwNjAwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAt
NjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKICAgICBJbnRSZWN0IHRpbGVCb3VuZHMoaW50IHRpbGUp
IGNvbnN0OwogICAgIEludFJlY3QgdGlsZUJvdW5kc1dpdGhCb3JkZXIoaW50IHRpbGUpIGNvbnN0
OworICAgIEludFJlY3QgdGlsZUJvdW5kc1dpdGhPdXRlckJvcmRlcihpbnQgdGlsZSkgY29uc3Q7
CiAgICAgRmxvYXRSZWN0IHRpbGVCb3VuZHNOb3JtYWxpemVkKGludCB0aWxlKSBjb25zdDsKICAg
ICBpbnQgdGlsZVBvc2l0aW9uWChpbnQgeEluZGV4KSBjb25zdDsKICAgICBpbnQgdGlsZVBvc2l0
aW9uWShpbnQgeUluZGV4KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MDYwMCkKKysr
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDctMDcgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEVk
Z2UgYW50aS1hbGlhc2luZyBmb3IgY29tcG9zaXRlZCBsYXllcnMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTM4OAorCisgICAgICAgIFRyYWNrIGNo
YW5nZXMgdG8gVGlsaW5nRGF0YSBjbGFzcyB3aGljaCBub3cgdXNlcyBhbiBvdXRlciBib3JkZXIu
CisKKyAgICAgICAgKiBjaHJvbWl1bS90ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHA6CisKIDIwMTEt
MDYtMzAgIExlYW5kcm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcAkocmV2aXNpb24gOTA2MDApCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDEsMTAgKzQxLDEwIEBAIG5hbWVzcGFjZSB7CiBURVNUKFRpbGluZ0RhdGFUZXN0
LCBudW1UaWxlc19Ob1RpbGluZykKIHsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgxNiwg
MTYsIDE2LCBmYWxzZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEo
MTYsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0Rh
dGEoMTYsIDE2LCAxNiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMTcsIDE1LCAxNSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMTgsIDE2LCAxNiwgdHJ1ZSkubnVtVGlsZXMoKSk7CiAgICAgRVhQRUNUX0VRKDEs
IFRpbGluZ0RhdGEoMTYsICAxLCAxNiwgZmFsc2UpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9F
USgxLCBUaWxpbmdEYXRhKDE1LCAxNSwgMTUsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVD
VF9FUSgxLCBUaWxpbmdEYXRhKDE3LCAxNSwgMTUsIHRydWUpLm51bVRpbGVzKCkpOwogfQogCiBU
RVNUKFRpbGluZ0RhdGFUZXN0LCBudW1UaWxlc19UaWxpbmdOb0JvcmRlcnMpCkBAIC0xMDksNDUg
KzEwOSw0NSBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCBudW1UaWxlc19UaWxpbmdXaXRoCiAgICAg
RVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoLTEsIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKICAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgwLCAgMSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOwog
Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMSwgIDEsICAxLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgxLCAgMSwgIDEsIHRydWUpLm51bVRpbGVz
KCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDEsICAxLCAgMiwgdHJ1ZSkubnVtVGls
ZXMoKSk7CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgIDIsICAxLCB0cnVlKS5udW1U
aWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAgMSwgIDEsIHRydWUpLm51
bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDIsICAxLCAgMiwgdHJ1ZSku
bnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMiwgIDIsICAxLCB0cnVl
KS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgyLCAgMiwgIDIsIHRy
dWUpLm51bVRpbGVzKCkpOwotCi0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgIDEsICAz
LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgMiwg
IDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAz
LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywg
IDQsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgz
LCAgNSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRh
KDMsICA2LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDUsIFRpbGluZ0Rh
dGEoMywgIDcsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKLQotICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDQsICAxLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoNCwgIDIsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSg0LCAgMywgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgx
LCBUaWxpbmdEYXRhKDQsICA0LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VR
KDIsIFRpbGluZ0RhdGEoNCwgIDUsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1Rf
RVEoMiwgVGlsaW5nRGF0YSg0LCAgNiwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDQsICA3LCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQ
RUNUX0VRKDMsIFRpbGluZ0RhdGEoNCwgIDgsICA0LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBF
WFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg0LCAgOSwgIDQsIHRydWUpLm51bVRpbGVzKCkpOwotICAg
IEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDQsIDEwLCAgNCwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0g
ICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNCwgMTEsICA0LCB0cnVlKS5udW1UaWxlcygpKTsK
LQotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAxLCAgNSwgdHJ1ZSkubnVtVGlsZXMo
KSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDIsICA1LCB0cnVlKS5udW1UaWxl
cygpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMywgIDUsIHRydWUpLm51bVRp
bGVzKCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICA0LCAgNSwgdHJ1ZSkubnVt
VGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS5u
dW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNiwgIDUsIHRydWUp
Lm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA3LCAgNSwgdHJ1
ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwgIDgsICA1LCB0
cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOSwgIDUs
IHRydWUpLm51bVRpbGVzKCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAg
NSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTEs
ICA1LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAg
MSwgIDEsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIs
ICAxLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEo
MiwgIDIsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0
YSgyLCAgMiwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworCisgICAgRVhQRUNUX0VRKDEsIFRpbGlu
Z0RhdGEoMywgIDEsICAxLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGls
aW5nRGF0YSgzLCAgMSwgIDIsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBU
aWxpbmdEYXRhKDMsICAyLCAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDQs
IFRpbGluZ0RhdGEoMywgIDIsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEo
NiwgVGlsaW5nRGF0YSgzLCAgMiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9F
USg2LCBUaWxpbmdEYXRhKDMsICAzLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNU
X0VRKDksIFRpbGluZ0RhdGEoMywgIDMsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKworICAgIEVY
UEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsICAxLCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAg
RVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNCwgIDIsICAyLCB0cnVlKS5udW1UaWxlcygpKTsKKyAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg0LCAgMywgIDIsIHRydWUpLm51bVRpbGVzKCkpOwor
ICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDQsICA0LCAgMiwgdHJ1ZSkubnVtVGlsZXMoKSk7
CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNCwgIDUsICAyLCB0cnVlKS5udW1UaWxlcygp
KTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg0LCAgNiwgIDIsIHRydWUpLm51bVRpbGVz
KCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDQsICA3LCAgMiwgdHJ1ZSkubnVtVGls
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNCwgIDgsICAyLCB0cnVlKS5udW1U
aWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg0LCAgOSwgIDIsIHRydWUpLm51
bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDQsIDEwLCAgMiwgdHJ1ZSku
bnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDYsIFRpbGluZ0RhdGEoNCwgMTEsICAyLCB0cnVl
KS5udW1UaWxlcygpKTsKKworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDUsICAxLCAgMywg
dHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoNSwgIDIsICAz
LCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgMywg
IDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCBUaWxpbmdEYXRhKDUsICA0
LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoNSwg
IDUsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1
LCAgNiwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDUsICA3LCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoNSwgIDgsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSg1LCAgOSwgIDMsIHRydWUpLm51bVRpbGVzKCkpOworICAgIEVYUEVDVF9FUSg0LCBUaWxp
bmdEYXRhKDUsIDEwLCAgMywgdHJ1ZSkubnVtVGlsZXMoKSk7CisgICAgRVhQRUNUX0VRKDQsIFRp
bGluZ0RhdGEoNSwgMTEsICAzLCB0cnVlKS5udW1UaWxlcygpKTsKIH0KIAogVEVTVChUaWxpbmdE
YXRhVGVzdCwgdGlsZVhJbmRleEZyb21TcmNDb29yZCkKQEAgLTE2NiwxNyArMTY2LDE3IEBAIFRF
U1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVYSW5kZXhGcm9tU3JjQ28KICAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIGZhbHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDExKSk7
CiAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9t
U3JjQ29vcmQoMykpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKLSAgICBFWFBF
Q1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoNikpOwotICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVhJbmRleEZyb21TcmNDb29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKLSAgICBFWFBFQ1RfRVEo
NywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoOSkp
OwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRl
eEZyb21TcmNDb29yZCgxMCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOworICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxKSk7Cisg
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJv
bVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg0KSk7CisgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nv
b3JkKDUpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVYSW5kZXhGcm9tU3JjQ29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCg3KSk7CisgICAgRVhQRUNUX0VR
KDgsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDgp
KTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoOSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMCkpOworICAgIEVYUEVDVF9FUSg5LCBU
aWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVhJbmRleEZyb21TcmNDb29yZCgxMSkpOwog
CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFsc2UpLnRpbGVYSW5kZXhG
cm9tU3JjQ29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIGZh
bHNlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTE5NCwxMyArMTk0LDEzIEBAIFRF
U1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVYSW5kZXhGcm9tU3JjQ28KICAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgyLCAyLCAyLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCB0cnVlKS50aWxlWEluZGV4RnJvbVNy
Y0Nvb3JkKDEpKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50
aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgz
LCAzLCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEo
MCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWEluZGV4RnJv
bVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVl
KS50aWxlWEluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKIAotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDQsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDQsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQo
MSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDMsIHRydWUpLnRpbGVYSW5k
ZXhGcm9tU3JjQ29vcmQoMikpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDMs
IHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDQsIDQsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMCkpOworICAgIEVY
UEVDVF9FUSgwLCBUaWxpbmdEYXRhKDQsIDQsIDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29v
cmQoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsIDQsIDMsIHRydWUpLnRpbGVY
SW5kZXhGcm9tU3JjQ29vcmQoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsIDQs
IDMsIHRydWUpLnRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoMykpOwogfQogVEVTVChUaWxpbmdEYXRh
VGVzdCwgdGlsZVlJbmRleEZyb21TcmNDb29yZCkKIHsKQEAgLTIxOCwxNyArMjE4LDE3IEBAIFRF
U1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVZSW5kZXhGcm9tU3JjQ28KICAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCAxMCwgMTAsIGZhbHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDExKSk7
CiAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRp
bGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKLSAg
ICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9t
U3JjQ29vcmQoMykpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1
ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg0KSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0Rh
dGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDUpKTsKLSAgICBFWFBF
Q1RfRVEoNSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoNikpOwotICAgIEVYUEVDVF9FUSg2LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGls
ZVlJbmRleEZyb21TcmNDb29yZCg3KSk7Ci0gICAgRVhQRUNUX0VRKDcsIFRpbGluZ0RhdGEoMywg
MTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgpKTsKLSAgICBFWFBFQ1RfRVEo
NywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoOSkp
OwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRl
eEZyb21TcmNDb29yZCgxMCkpOwotICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOworICAgIEVYUEVDVF9FUSgxLCBU
aWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxKSk7Cisg
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRy
dWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdE
YXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg0KSk7CisgICAgRVhQ
RUNUX0VRKDUsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nv
b3JkKDUpKTsKKyAgICBFWFBFQ1RfRVEoNiwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRp
bGVZSW5kZXhGcm9tU3JjQ29vcmQoNikpOworICAgIEVYUEVDVF9FUSg3LCBUaWxpbmdEYXRhKDMs
IDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCg3KSk7CisgICAgRVhQRUNUX0VR
KDgsIFRpbGluZ0RhdGEoMywgMTAsIDEwLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDgp
KTsKKyAgICBFWFBFQ1RfRVEoOSwgVGlsaW5nRGF0YSgzLCAxMCwgMTAsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoOSkpOworICAgIEVYUEVDVF9FUSg5LCBUaWxpbmdEYXRhKDMsIDEwLCAx
MCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMCkpOworICAgIEVYUEVDVF9FUSg5LCBU
aWxpbmdEYXRhKDMsIDEwLCAxMCwgdHJ1ZSkudGlsZVlJbmRleEZyb21TcmNDb29yZCgxMSkpOwog
CiAgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMSwgMSwgMSwgZmFsc2UpLnRpbGVZSW5kZXhG
cm9tU3JjQ29vcmQoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDIsIDIsIDIsIGZh
bHNlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKQEAgLTI0Niw2MSArMjQ2LDYxIEBAIFRF
U1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVZSW5kZXhGcm9tU3JjQ28KICAgICBFWFBFQ1RfRVEoMCwg
VGlsaW5nRGF0YSgyLCAyLCAyLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKICAg
ICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgyLCAyLCAyLCB0cnVlKS50aWxlWUluZGV4RnJvbVNy
Y0Nvb3JkKDEpKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50
aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgz
LCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDEpKTsKLSAgICBFWFBFQ1RfRVEo
MCwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsK
KyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVlKS50aWxlWUluZGV4RnJv
bVNyY0Nvb3JkKDEpKTsKKyAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAzLCAzLCB0cnVl
KS50aWxlWUluZGV4RnJvbVNyY0Nvb3JkKDIpKTsKIAotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdE
YXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOwotICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQo
MSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDMsIDQsIHRydWUpLnRpbGVZSW5k
ZXhGcm9tU3JjQ29vcmQoMikpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDMsIDQs
IHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOworICAgIEVYUEVDVF9FUSgwLCBUaWxp
bmdEYXRhKDQsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMCkpOworICAgIEVY
UEVDVF9FUSgwLCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29v
cmQoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsIDMsIDQsIHRydWUpLnRpbGVZ
SW5kZXhGcm9tU3JjQ29vcmQoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDQsIDMs
IDQsIHRydWUpLnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoMykpOwogfQogCiBURVNUKFRpbGluZ0Rh
dGFUZXN0LCB0aWxlU2l6ZVgpCiB7CiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUs
ICA1LCBmYWxzZSkudGlsZVNpemVYKDApKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1
LCAgNSwgIDUsIHRydWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0Rh
dGEoNSwgIDUsICA1LCB0cnVlKS50aWxlU2l6ZVgoMCkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRp
bGluZ0RhdGEoNSwgIDYsICA2LCBmYWxzZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEo
MSwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIGZhbHNlKS50aWxlU2l6ZVgoMSkpOwotICAgIEVYUEVD
VF9FUSg0LCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVYKDApKTsKLSAgICBF
WFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWCgxKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVgoMCkp
OworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVY
KDEpKTsKIAogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRp
bGVTaXplWCgwKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCBmYWxz
ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgOCwgIDgs
IHRydWUpLnRpbGVTaXplWCgwKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgs
ICA4LCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUs
ICA4LCAgOCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0
YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWCgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGls
aW5nRGF0YSg1LCAxMCwgMTAsIGZhbHNlKS50aWxlU2l6ZVgoMCkpOwogICAgIEVYUEVDVF9FUSg1
LCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgZmFsc2UpLnRpbGVTaXplWCgxKSk7Ci0gICAgRVhQRUNU
X0VRKDQsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOworICAgIEVY
UEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKICAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWCgxKSk7
CiAgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVgo
MikpOwogCi0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgMTEsIDExLCB0cnVlKS50aWxl
U2l6ZVgoMikpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSku
dGlsZVNpemVYKDIpKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMiwgMTIsIHRy
dWUpLnRpbGVTaXplWCgyKSk7CiB9CiBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6ZVkpCiB7
CiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCBmYWxzZSkudGlsZVNpemVZ
KDApKTsKLSAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAgNSwgIDUsIHRydWUpLnRpbGVT
aXplWSgwKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDUsICA1LCB0cnVlKS50
aWxlU2l6ZVkoMCkpOwogCiAgICAgRVhQRUNUX0VRKDUsIFRpbGluZ0RhdGEoNSwgIDYsICA2LCBm
YWxzZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSg1LCAgNiwg
IDYsIGZhbHNlKS50aWxlU2l6ZVkoMSkpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDUs
ICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVZKDApKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0
YSg1LCAgNiwgIDYsIHRydWUpLnRpbGVTaXplWSgxKSk7CisgICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoNSwgIDYsICA2LCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBU
aWxpbmdEYXRhKDUsICA2LCAgNiwgdHJ1ZSkudGlsZVNpemVZKDEpKTsKIAogICAgIEVYUEVDVF9F
USg1LCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgZmFsc2UpLnRpbGVTaXplWSgwKSk7CiAgICAgRVhQ
RUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCBmYWxzZSkudGlsZVNpemVZKDEpKTsKLSAg
ICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRpbGVTaXplWSgwKSk7
Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwgIDgsICA4LCB0cnVlKS50aWxlU2l6ZVko
MSkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsICA4LCAgOCwgdHJ1ZSkudGlsZVNp
emVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAgOCwgIDgsIHRydWUpLnRp
bGVTaXplWSgxKSk7CiAKICAgICBFWFBFQ1RfRVEoNSwgVGlsaW5nRGF0YSg1LCAxMCwgMTAsIGZh
bHNlKS50aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSg1LCBUaWxpbmdEYXRhKDUsIDEwLCAx
MCwgZmFsc2UpLnRpbGVTaXplWSgxKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoNSwg
MTAsIDEwLCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDUsIDEwLCAxMCwgdHJ1ZSkudGlsZVNpemVZKDApKTsKICAgICBFWFBFQ1RfRVEoMywgVGlsaW5n
RGF0YSg1LCAxMCwgMTAsIHRydWUpLnRpbGVTaXplWSgxKSk7CiAgICAgRVhQRUNUX0VRKDMsIFRp
bGluZ0RhdGEoNSwgMTAsIDEwLCB0cnVlKS50aWxlU2l6ZVkoMikpOwogCi0gICAgRVhQRUNUX0VR
KDQsIFRpbGluZ0RhdGEoNSwgMTEsIDExLCB0cnVlKS50aWxlU2l6ZVkoMikpOworICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDUsIDExLCAxMSwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKICAgICBF
WFBFQ1RfRVEoMywgVGlsaW5nRGF0YSg1LCAxMiwgMTIsIHRydWUpLnRpbGVTaXplWSgyKSk7CiB9
CiAKQEAgLTMxOSwxMCArMzE5LDEwIEBAIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVTaXplWF9h
bmRfdGlsZVAKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxLCAgIDEsIHRydWUpLnRp
bGVQb3NpdGlvblgoMCkpOwogICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEsIDEwMCwg
dHJ1ZSkudGlsZVNpemVYKDApKTsKICAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxLCAx
MDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOwotICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRh
KDMsIDMsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgVGlsaW5n
RGF0YSgzLCAzLCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOwotICAgIEVYUEVDVF9FUSgz
LCBUaWxpbmdEYXRhKDMsIDMsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDApKTsKLSAgICBFWFBFQ1Rf
RVEoMCwgVGlsaW5nRGF0YSgzLCAzLCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMCkpOworICAg
IEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDMsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDApKTsK
KyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAzLCAgIDEsIHRydWUpLnRpbGVQb3NpdGlv
blgoMCkpOworICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDUsIDMsIDEwMCwgdHJ1ZSkudGls
ZVNpemVYKDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSg1LCAzLCAxMDAsIHRydWUp
LnRpbGVQb3NpdGlvblgoMCkpOwogCiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gbm8g
Ym9yZGVyCkBAIC0zNDAsMjMgKzM0MCwyMyBAQCBURVNUKFRpbGluZ0RhdGFUZXN0LCB0aWxlU2l6
ZVhfYW5kX3RpbGVQCiAgICAgLy8gTXVsdGlwbGUgdGlsZXM6CiAgICAgLy8gd2l0aCBib3JkZXIK
ICAgICAvLyBwb3NpdGlvbnMgMCwgMiwgMywgNAotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRh
KDMsIDYsICAgMSwgdHJ1ZSkubnVtVGlsZXMoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxp
bmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VR
KDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVD
VF9FUSgwLCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0g
ICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDEpKTsKLSAgICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAgIDEsIHRydWUpLnRpbGVQ
b3NpdGlvblgoMikpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsICAgMSwgdHJ1
ZSkudGlsZVBvc2l0aW9uWCgzKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGluZ0RhdGEoMywgNiwg
MTAwLCB0cnVlKS50aWxlU2l6ZVgoMCkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMs
IDYsIDEwMCwgdHJ1ZSkudGlsZVNpemVYKDEpKTsKLSAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVTaXplWCgyKSk7Ci0gICAgRVhQRUNUX0VRKDIsIFRpbGlu
Z0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlU2l6ZVgoMykpOwotICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgwKSk7Ci0gICAgRVhQRUNU
X0VRKDIsIFRpbGluZ0RhdGEoMywgNiwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDEpKTsKLSAg
ICBFWFBFQ1RfRVEoMywgVGlsaW5nRGF0YSgzLCA2LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgo
MikpOwotICAgIEVYUEVDVF9FUSg0LCBUaWxpbmdEYXRhKDMsIDYsIDEwMCwgdHJ1ZSkudGlsZVBv
c2l0aW9uWCgzKSk7CisgICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVl
KS5udW1UaWxlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRy
dWUpLnRpbGVTaXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgICAx
LCB0cnVlKS50aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQs
ICAgMSwgdHJ1ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgz
LCA0LCAgIDEsIHRydWUpLnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwg
VGlsaW5nRGF0YSgzLCA0LCAgIDEsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVD
VF9FUSgyLCBUaWxpbmdEYXRhKDMsIDQsICAgMSwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7Cisg
ICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgNCwgICAxLCB0cnVlKS50aWxlUG9zaXRpb25Y
KDMpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVT
aXplWCgwKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50
aWxlU2l6ZVgoMSkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1
ZSkudGlsZVNpemVYKDIpKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCA0LCAxMDAs
IHRydWUpLnRpbGVTaXplWCgzKSk7CisgICAgRVhQRUNUX0VRKDAsIFRpbGluZ0RhdGEoMywgNCwg
MTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0
YSgzLCA0LCAxMDAsIHRydWUpLnRpbGVQb3NpdGlvblgoMSkpOworICAgIEVYUEVDVF9FUSgyLCBU
aWxpbmdEYXRhKDMsIDQsIDEwMCwgdHJ1ZSkudGlsZVBvc2l0aW9uWCgyKSk7CisgICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoMywgNCwgMTAwLCB0cnVlKS50aWxlUG9zaXRpb25YKDMpKTsKIH0K
IAogVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZX2FuZF90aWxlUG9zaXRpb25ZKQpAQCAt
Mzc0LDEwICszNzQsMTAgQEAgVEVTVChUaWxpbmdEYXRhVGVzdCwgdGlsZVNpemVZX2FuZF90aWxl
UAogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsICAgMSwgMSwgdHJ1ZSkudGlsZVBvc2l0
aW9uWSgwKSk7CiAgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCAxLCB0cnVlKS50
aWxlU2l6ZVkoMCkpOwogICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMsIDEwMCwgMSwgdHJ1
ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoMywgICAx
LCAzLCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDMs
ICAgMSwgMywgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDMsIFRpbGlu
Z0RhdGEoMywgMTAwLCAzLCB0cnVlKS50aWxlU2l6ZVkoMCkpOwotICAgIEVYUEVDVF9FUSgwLCBU
aWxpbmdEYXRhKDMsIDEwMCwgMywgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7CisgICAgRVhQRUNU
X0VRKDMsIFRpbGluZ0RhdGEoNSwgICAxLCAzLCB0cnVlKS50aWxlU2l6ZVkoMCkpOworICAgIEVY
UEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUsICAgMSwgMywgdHJ1ZSkudGlsZVBvc2l0aW9uWSgwKSk7
CisgICAgRVhQRUNUX0VRKDMsIFRpbGluZ0RhdGEoNSwgMTAwLCAzLCB0cnVlKS50aWxlU2l6ZVko
MCkpOworICAgIEVYUEVDVF9FUSgwLCBUaWxpbmdEYXRhKDUsIDEwMCwgMywgdHJ1ZSkudGlsZVBv
c2l0aW9uWSgwKSk7CiAKICAgICAvLyBNdWx0aXBsZSB0aWxlczoKICAgICAvLyBubyBib3JkZXIK
QEAgLTM5NSwyMyArMzk1LDIzIEBAIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHRpbGVTaXplWV9hbmRf
dGlsZVAKICAgICAvLyBNdWx0aXBsZSB0aWxlczoKICAgICAvLyB3aXRoIGJvcmRlcgogICAgIC8v
IHBvc2l0aW9ucyAwLCAyLCAzLCA0Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgICAx
LCA2LCB0cnVlKS5udW1UaWxlcygpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAg
IDEsIDYsIHRydWUpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEo
MywgICAxLCA2LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGls
aW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVTaXplWSgzKSk7Ci0gICAgRVhQRUNUX0VRKDAs
IFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDApKTsKLSAgICBFWFBF
Q1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAgIDEsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMSkpOwot
ICAgIEVYUEVDVF9FUSgzLCBUaWxpbmdEYXRhKDMsICAgMSwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9u
WSgyKSk7Ci0gICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgICAxLCA2LCB0cnVlKS50aWxl
UG9zaXRpb25ZKDMpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRy
dWUpLnRpbGVTaXplWSgwKSk7Ci0gICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA2
LCB0cnVlKS50aWxlU2l6ZVkoMSkpOwotICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEw
MCwgNiwgdHJ1ZSkudGlsZVNpemVZKDIpKTsKLSAgICBFWFBFQ1RfRVEoMiwgVGlsaW5nRGF0YSgz
LCAxMDAsIDYsIHRydWUpLnRpbGVTaXplWSgzKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFRpbGluZ0Rh
dGEoMywgMTAwLCA2LCB0cnVlKS50aWxlUG9zaXRpb25ZKDApKTsKLSAgICBFWFBFQ1RfRVEoMiwg
VGlsaW5nRGF0YSgzLCAxMDAsIDYsIHRydWUpLnRpbGVQb3NpdGlvblkoMSkpOwotICAgIEVYUEVD
VF9FUSgzLCBUaWxpbmdEYXRhKDMsIDEwMCwgNiwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgyKSk7Ci0g
ICAgRVhQRUNUX0VRKDQsIFRpbGluZ0RhdGEoMywgMTAwLCA2LCB0cnVlKS50aWxlUG9zaXRpb25Z
KDMpKTsKKyAgICBFWFBFQ1RfRVEoNCwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLm51bVRp
bGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwgNCwgdHJ1ZSkudGls
ZVNpemVZKDApKTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUp
LnRpbGVTaXplWSgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgICAxLCA0LCB0
cnVlKS50aWxlU2l6ZVkoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsICAgMSwg
NCwgdHJ1ZSkudGlsZVNpemVZKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAg
IDEsIDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdE
YXRhKDMsICAgMSwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgxKSk7CisgICAgRVhQRUNUX0VRKDIs
IFRpbGluZ0RhdGEoMywgICAxLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKKyAgICBFWFBF
Q1RfRVEoMywgVGlsaW5nRGF0YSgzLCAgIDEsIDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOwor
ICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSkudGlsZVNpemVZKDAp
KTsKKyAgICBFWFBFQ1RfRVEoMSwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVTaXpl
WSgxKSk7CisgICAgRVhQRUNUX0VRKDEsIFRpbGluZ0RhdGEoMywgMTAwLCA0LCB0cnVlKS50aWxl
U2l6ZVkoMikpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEwMCwgNCwgdHJ1ZSku
dGlsZVNpemVZKDMpKTsKKyAgICBFWFBFQ1RfRVEoMCwgVGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRy
dWUpLnRpbGVQb3NpdGlvblkoMCkpOworICAgIEVYUEVDVF9FUSgxLCBUaWxpbmdEYXRhKDMsIDEw
MCwgNCwgdHJ1ZSkudGlsZVBvc2l0aW9uWSgxKSk7CisgICAgRVhQRUNUX0VRKDIsIFRpbGluZ0Rh
dGEoMywgMTAwLCA0LCB0cnVlKS50aWxlUG9zaXRpb25ZKDIpKTsKKyAgICBFWFBFQ1RfRVEoMywg
VGlsaW5nRGF0YSgzLCAxMDAsIDQsIHRydWUpLnRpbGVQb3NpdGlvblkoMykpOwogfQogCiBURVNU
KFRpbGluZ0RhdGFUZXN0LCBzZXRUb3RhbFNpemUpCkBAIC00NjgsNyArNDY4LDcgQEAgVEVTVChU
aWxpbmdEYXRhVGVzdCwgc2V0TWF4VGV4dHVyZVNpemVObwogCiBURVNUKFRpbGluZ0RhdGFUZXN0
LCBzZXRNYXhUZXh0dXJlU2l6ZUJvcmRlcnMpCiB7Ci0gICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2
LCAzMiwgdHJ1ZSk7CisgICAgVGlsaW5nRGF0YSBkYXRhKDgsIDE2LCAzMCwgdHJ1ZSk7CiAgICAg
RVhQRUNUX0VRKDMsIGRhdGEubnVtVGlsZXNYKCkpOwogICAgIEVYUEVDVF9FUSg1LCBkYXRhLm51
bVRpbGVzWSgpKTsKIApAQCAtNDg0LDcgKzQ4NCw3IEBAIFRFU1QoVGlsaW5nRGF0YVRlc3QsIHNl
dE1heFRleHR1cmVTaXplQm8KIAogICAgIGRhdGEuc2V0TWF4VGV4dHVyZVNpemUoNSk7CiAgICAg
RVhQRUNUX0VRKDUsIGRhdGEubWF4VGV4dHVyZVNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKDUsIGRh
dGEubnVtVGlsZXNYKCkpOworICAgIEVYUEVDVF9FUSg2LCBkYXRhLm51bVRpbGVzWCgpKTsKICAg
ICBFWFBFQ1RfRVEoMTAsIGRhdGEubnVtVGlsZXNZKCkpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA5MDYwMCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTA3LTA3ICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0No
cm9taXVtXSBFZGdlIGFudGktYWxpYXNpbmcgZm9yIGNvbXBvc2l0ZWQgbGF5ZXJzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzODgKKworICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC1leHBl
Y3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L3RpbnktbGF5ZXItcm90YXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIw
MTEtMDctMDcgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dIEFkZCB0ZXh0IGJhc2VsaW5lIGZvciBzcGFuT3ZlcmxhcHNDYW52YXMKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQJKHJldmlzaW9uIDkwNjAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOTY2LDExICsyOTY2
LDEyIEBAIEJVR0NSNzUxMDkgV0lOIExJTlVYIDogc3ZnL2Nzcy9nZXRDb21wdXQKIEJVR0NSNzUw
MTkgV0lOIExJTlVYIE1BQyA6ZmFzdC90ZXh0L2h5cGhlbmF0ZS1saW1pdC1iZWZvcmUtYWZ0ZXIu
aHRtbCA9IElNQUdFK1RFWFQKIAogLy8gQ2hyb21pdW0gR1BVIGRyYXdzIHNjcm9sbGJhcnMgc2xp
Z2h0bHkgZGlmZmVyZW50bHkgaW4gZGVidWcgdnMuIHJlbGVhc2UuCi1CVUdXSzU4NTg3IERFQlVH
IEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy5odG1sID0g
SU1BR0UKLUJVR1dLNTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
aG9yaXpvbnRhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKLUJVR1dLNTg1ODcgREVC
VUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvdGFsbC1wYWdlLWNvbXBvc2l0ZWQu
aHRtbCA9IElNQUdFCi1CVUdXSzU4NTg3IERFQlVHIEdQVSBMSU5VWCA6IGNvbXBvc2l0aW5nL2dl
b21ldHJ5L3ZpZGVvLWZpeGVkLXNjcm9sbGluZy5odG1sID0gSU1BR0UKLUJVR1dLNTg1ODcgREVC
VUcgR1BVIExJTlVYIDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0gSU1BR0UKKy8vIENvbW1lbnRl
ZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBj
b21wb3NpdGluZy9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCA9IElNQUdFCisvL0JVR1dL
NTg1ODcgREVCVUcgR1BVIExJTlVYIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvaG9yaXpvbnRhbC1z
Y3JvbGwtY29tcG9zaXRlZC5odG1sID0gSU1BR0UKKy8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElO
VVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS90YWxsLXBhZ2UtY29tcG9zaXRlZC5odG1sID0gSU1B
R0UKKy8vQlVHV0s1ODU4NyBERUJVRyBHUFUgTElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS92
aWRlby1maXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCisvL0JVR1dLNTg1ODcgREVCVUcgR1BV
IExJTlVYIDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0gSU1BR0UKIAogLy8gV2ViS2l0IHJvbGwg
ODA1NjQ6ODA2MzE6IHJlbmRlcmluZyBvbiBMZW9wYXJkIGlzIHNoaWZ0ZWQgdG8gdGhlIHRvcCBy
aWdodAogLy8gc3RhcnRlZCBhdCBzb21lIHBvaW50IGF0IG9yIGFmdGVyIFdLIHI4MDU4MiAoRGF2
ZSBIeWF0dCdzIHZlcnRpY2FsIHRleHQgY2hhbmdlIC0gYSB2ZXJ5IGxpa2VseSBjYW5kaWRhdGUp
CkBAIC0zMjk0LDcgKzMyOTUsOCBAQCBCVUdDUjc5MTEwIFdJTiBMSU5VWCA6IGZhc3Qvb3ZlcmZs
b3cvaW5mCiBCVUdDUjc5MTExIEdQVSA6IGNvbXBvc2l0aW5nL2ZyYW1lc2V0cy9jb21wb3NpdGVk
LWZyYW1lLWFsaWdubWVudC5odG1sID0gSU1BR0UKIAogQlVHV0s1ODMwOCBHUFUgV0lOIExJTlVY
IERFQlVHIDogY29tcG9zaXRpbmcvei1vcmRlci9uZWdhdGl2ZS16LWluZGV4Lmh0bWwgPSBQQVNT
IENSQVNICi1CVUdXSzU4MzI4IEdQVSBXSU4gTUFDIExJTlVYIERFQlVHIDogY29tcG9zaXRpbmcv
d2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sID0gSU1BR0UgUEFTUyBDUkFTSAorLy8gQ29tbWVu
dGVkIGJlY2F1c2Ugb2YgQlVHV0s2MTM4OAorLy9CVUdXSzU4MzI4IEdQVSBXSU4gTUFDIExJTlVY
IERFQlVHIDogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtcmVmbGVjdGlvbi5odG1sID0gSU1BR0Ug
UEFTUyBDUkFTSAogCiBCVUdDUjc5MTczIEdQVSBMSU5VWCBERUJVRyA6IGZhc3QvY2FudmFzL2Fj
Y2Vzcy16ZXJvLXNpemVkLWNhbnZhcy5odG1sID0gUEFTUyBDUkFTSAogCkBAIC0zNDUyLDkgKzM0
NTQsMTEgQEAgQlVHV0s2MDA5OSBERUJVRyA6IGZhc3QvZG9tL0F0dHIvYWNjZXNzLQogQlVHV0s2
MDA5NiBERUJVRyA6IGZhc3QvY3NzL2xhc3QtY2hpbGQtcHNldWRvLWNsYXNzLmh0bWwgPSBURVhU
IFBBU1MKIEJVR1dLNjAwOTcgREVCVUcgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1h
bmQtc3VicmVzb3VyY2UtdGVzdC5odG1sID0gVEVYVCBQQVNTCiAKLUJVR1dLNjAxMDIgTElOVVgg
REVCVUcgR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtaW4tY29tcG9zaXRlZC5odG1s
ID0gSU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHV0s2MDEw
MiBMSU5VWCBERUJVRyBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1pbi1jb21wb3Np
dGVkLmh0bWwgPSBJTUFHRQogQlVHV0s2MDEwMiBMSU5VWCBHUFUgOiBjb21wb3NpdGluZy9tYXNr
cy9tYXNrZWQtYW5jZXN0b3IuaHRtbCA9IElNQUdFCi1CVUdXSzYwMTAyIExJTlVYIERFQlVHIEdQ
VSA6IGNvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2suaHRtbCA9IElNQUdF
CisvLyBDb21tZW50ZWQgYmVjYXVzZSBvZiBCVUdXSzYxMzg4CisvL0JVR1dLNjAxMDIgTElOVVgg
REVCVUcgR1BVIDogY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay5odG1s
ID0gSU1BR0UKIAogLy8gTG9va3MgbGlrZSBzb21lIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGF0IHRo
ZSBib3R0b20uCiBCVUdXSzYwMTAzIDogZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAu
aHRtbCA9IElNQUdFIFRJTUVPVVQgSU1BR0UrVEVYVApAQCAtMzkxNSw3ICszOTE5LDggQEAgQlVH
Q1I4ODMxMSBNQUMgREVCVUcgOiBmYXN0L2Nzcy9sYXN0LW9mLQogQlVHV0s2MzkwMiBNQUMgV0lO
IDogc3ZnL2FuaW1hdGlvbnMvc3ZndHJhbnNmb3JtLWFuaW1hdGlvbi0xLmh0bWwgPSBURVhUCiAK
IC8vIFN0YXJ0ZWQgZmFpbGluZyBhdCBXZWJLaXQgcjkwMjU5LTkwMjYxLgotQlVHQ1I4ODQwMCBH
UFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92ZXJ0aWNhbC1zY3JvbGwtY29tcG9zaXRlZC5odG1s
ID0gSU1BR0UKKy8vIENvbW1lbnRlZCBiZWNhdXNlIG9mIEJVR1dLNjEzODgKKy8vQlVHQ1I4ODQw
MCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92ZXJ0aWNhbC1zY3JvbGwtY29tcG9zaXRlZC5o
dG1sID0gSU1BR0UKIEJVR0NSODg0MDAgR1BVIDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvb3ZlcmZs
b3ctc2Nyb2xsLmh0bWwgPSBJTUFHRQogCiAvLyBTdGFydGVkIGFyb3VuZCBXZWJLaXQgcjkwMjMz
OnI5MDI0MgpAQCAtMzk1MywzICszOTU4LDQzIEBAIEJVR0NSODg1OTQgV0lONyA6IGh0dHAvdGVz
dHMvYXBwY2FjaGUvZmEKIEJVR0NSODg1NzcgV0lOIExJTlVYIEdQVSA6IGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0dGVybi5yZXBlYXQuZW1wdHkuaHRtbCA9IFRFWFQKIEJVR0NSODg1NzcgV0lO
IExJTlVYIEdQVSA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5yZXBlYXQubnVsbC5o
dG1sID0gVEVYVAogQlVHQ1I4ODU3NyBXSU4gTElOVVggR1BVIDogZmFzdC9jYW52YXMvY2FudmFz
LXBhdHRlcm4tYmVoYXZpb3VyLmh0bWwgPSBURVhUCisKK0JVR1dLNjEzODggR1BVIDogY29tcG9z
aXRpbmcvY29sb3ItbWF0Y2hpbmcvaW1hZ2UtY29sb3ItbWF0Y2hpbmcuaHRtbCA9IElNQUdFCitC
VUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy5odG1s
ID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtaW4t
Y29tcG9zaXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24uaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2hvcml6b250YWwtc2Nyb2xsLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xheWVyLWR1ZS10by1sYXll
ci1jaGlsZHJlbi1kZWVwLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGlu
Zy9nZW9tZXRyeS9sYXllci1kdWUtdG8tbGF5ZXItY2hpbGRyZW4uaHRtbCA9IElNQUdFCitCVUdX
SzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L3RhbGwtcGFnZS1jb21wb3NpdGVkLmh0
bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1m
aXhlZC1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5n
L2dlb21ldHJ5L3ZlcnRpY2FsLXNjcm9sbC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s2
MTM4OCBHUFUgOiBjb21wb3NpdGluZy9nZW9tZXRyeS92aWRlby1vcGFjaXR5LW92ZXJsYXkuaHRt
bCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL2lmcmFtZXMvbmVzdGVkLWlm
cmFtZS1zY3JvbGxpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5n
L21hc2tzL2RpcmVjdC1pbWFnZS1tYXNrLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBj
b21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLmh0bWwgPSBJTUFHRQorQlVH
V0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9vdmVyZmxvdy9maXhlZC1wb3NpdGlvbi1hbmNlc3Rv
ci1jbGlwLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0
aW9ucy9kZWVwbHktbmVzdGVkLXJlZmxlY3Rpb25zLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBH
UFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9uZXN0ZWQtcmVmbGVjdGlvbi1vbi1vdmVyZmxv
dy5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMv
bmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNmb3JtZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQ
VSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL25lc3RlZC1yZWZsZWN0aW9uLXRyYW5zZm9ybWVk
Mi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMv
bmVzdGVkLXJlZmxlY3Rpb24tdHJhbnNpdGlvbi5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BV
IDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1pbi1jb21wb3NpdGVkLmh0bWwg
PSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9yZWZsZWN0
aW9uLW9uLWNvbXBvc2l0ZWQuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0
aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3JkZXJpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tcG9zaXRpb25pbmcu
aHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL3Jl
ZmxlY3Rpb24tcG9zaXRpb25pbmcyLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21w
b3NpdGluZy9yZWZsZWN0aW9ucy9zaW1wbGUtY29tcG9zaXRlZC1yZWZsZWN0aW9ucy5odG1sID0g
SU1BR0UKK0JVR1dLNjEzODggR1BVIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvdHJhbnNmb3Jt
LWluc2lkZS1yZWZsZWN0aW9uLmh0bWwgPSBJTUFHRQorQlVHV0s2MTM4OCBHUFUgOiBjb21wb3Np
dGluZy9ydGwvcnRsLWlmcmFtZS1hYnNvbHV0ZS1vdmVyZmxvdy5odG1sID0gSU1BR0UKK0JVR1dL
NjEzODggR1BVIDogY29tcG9zaXRpbmcvcnRsL3J0bC1pZnJhbWUtZml4ZWQtb3ZlcmZsb3cuaHRt
bCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3NoYWRvd3Mvc2hhZG93LWRy
YXdpbmcuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3RleHQtb24t
bGFyZ2UtbGF5ZXIuaHRtbCA9IElNQUdFCitCVUdXSzYxMzg4IEdQVSA6IGNvbXBvc2l0aW5nL3Ry
YW5zaXRpb25zL3NjYWxlLXRyYW5zaXRpb24tbm8tc3RhcnQuaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSA6IGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLXJlZmxlY3Rpb24uaHRtbCA9IElNQUdF
CitCVUdXSzYxMzg4IEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2h1Z2UtbGF5
ZXItcm90YXRlZC5odG1sID0gSU1BR0UKK0JVR1dLNjEzODggR1BVIDogcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS10cmFuc2Zvcm1lZC5odG1sID0gSU1B
R0UKK0JVR1dLNjEzODggR1BVIDogbWVkaWEvdmlkZW8tem9vbS5odG1sID0gSU1BR0UKK0JVR1dL
NjEzODggR1BVIDogbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy5odG1sID0gSU1BR0UKK0JVR1dL
NjEzODggR1BVIDogbWVkaWEvdmlkZW8tdHJhbnNmb3JtZWQuaHRtbCA9IElNQUdFCitCVUdXSzYx
Mzg4IEdQVSA6IG1lZGlhL3ZpZGVvLWxheWVyLWNyYXNoLmh0bWwgPSBJTUFHRQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXllci1yb3RhdGVk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvdGlueS1sYXll
ci1yb3RhdGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy90aW55LWxheWVyLXJvdGF0ZWQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpl
b2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL3RpbnktbGF5ZXItcm90YXRlZC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAK
KzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+
CisgICAgLnNtYWxsIHsKKyAgICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEwMDsKKyAgICAgIC13
ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7CisgICAgICAtd2Via2l0LXRyYW5zZm9y
bTogcm90YXRlWSg1M2RlZykgcm90YXRlWigxMGRlZykgc2NhbGVYKDEwMC4wKSBzY2FsZVkoMTAw
LjApOworICAgICAgd2lkdGg6IDEwcHg7CisgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICBiYWNr
Z3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBm
cm9tKCMwMGFiZWIpLCB0bygjZmZmKSk7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KHRydWUpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJvdmVyZmxvdzpoaWRk
ZW4iPgorICA8ZGl2IGNsYXNzPSJzbWFsbCI+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvdGlueS1sYXllci1yb3RhdGVkLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9z
aXRpbmcvdGlueS1sYXllci1yb3RhdGVkLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBk
aXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1h
Z2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy90aW55LWxheWVyLXJvdGF0ZWQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCgppVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFCa04yUm1NREZs
Ck56ZzBaVFpsTjJGaFptWXlaR1JsWkdNNU5UWXhNREkyTUtSdDdHa0FBQ0FBU1VSQlZIaWM3RjNS
bHVzcXJpeGwvUCtmZC8valBzL2EKMWp5QWhNQ0F3WGJzcENPdFBXZlNibmRFc0dPS3FrTFEvLzMv
ZnhtME1zdC9zVElZQ0Vma0JlSnZHUXlrZy9KajlqcDd3UURwYTJhQQppSmxCQkdZaUVBaGdBb2lJ
QUlBSlJBUUNBQkJRbktOL1JRUXdoNy9hdkE1L2xaMC9sVVhPNldlc1pDRUN5em1OTEFPZmE3UjV6
VTd3CjhQRHc4UER3ZURZV1JVaGJkSlZCS3pBRGE4SlBOSWF4S09BcUJrRGhkZnd6SW1BRmtTQ00x
U0NNMVlDRzdUbE1BRlBBTnd4NVRmS2EKNURpb2xTWENHSU5qR0FTQllzd0pRZ1ZNb3dkaC9oRG1E
L056T0w1RGFKSE5Vc2xZejdMYkNlaDJnc0ZuSGg0ZUhoNGVIdmZIWWpncQorNjlBVnhGNE1iQ0Nt
U2svcHcrektJQXpYZ095NGtCaTlURktDOGNZSkZSRlJWWGt0TW5TQkhQeXpqV2dab0RkREpnTENY
dnc4VXlXCk1aREtjRjdMdzhQRHc4UGp6bGdDTjhWRURCYjZxb0JaaXJHQ2FFZ3JJZ20xY2c3TGVD
TWRtaGNnd1Z0Q1owM2htQTBTNnJFNzlwemgKTENVRGREQUxxcEF4Wk9id3dzTEhQU0t0QXhrblFH
cjJEaDRlSGg0ZUhoNXZqaWdScmlzekZlSWdyUndnRnlkb0ZZOEhxTVJNV05jRQpzS3hKcXdLejJE
aXh4RmMwaDJNaStobVY2cm9ZcFJRRTdmbFRnbUE4UjdNa01HY2x2QXF3NjlKYXUyQ3VSM0ZWNEtQ
VFdoNGVIaDRlCkhqZkdvaExldWpJVDVhd1ZLYm95ME1yYXM3QkN2UEJycmpPcXBLakhPZGlTQWhM
Z0ZxUFRaSUFVQ1EySWFQR2NVWGRYZWwyK3d6Q08KMldRWlFrNWdDaXNCeHJLZ0NnZEhhTEFlWkhS
YXk4UER3OFBENCtwWURDcFNVS1dHOXdKZDZYODVXYktTTnl2SFZlR3RPQ2hha2RsUwppZ3Mxak1K
Tnk5RUV1ek9QbG5KcGIwNnFhN25VWi8xa0hWOTg0VGw3V3llNGdPamg0ZUhoNFhGZExDb09SaE1W
bExqSzVVTHdDbkQ4CnJ5R3VFcWRWUUt1QWtRS0pWVEJiS3FqVnVCWklPUWZLbkViSExVZDFRUkFs
Y3FvNHZRWnhURUU0MmRkMVRMTy9RakQ2NHZXY1dUK1oKT2FlWlJkKzVoSTllN3NIRHc4UER3K05r
aEZXRXljQWVORUZCUzdReU02a1pDK2EvQ3J3VVZHV0NJSHExc21nRXgzQVEwVEFuMVEyNAoxUHRW
RDQ2NTcvY0V3UzBOaG4zSUNFQlYxQ2xCc0VSTGxTeDV4cWJkeldrdER3OFBEdytQSTdFbzdoRVVK
WllzdzJBcHJ0cjRzVkFzClBGd0JxTWhvb0ZYMjQ3amxTSFd1WFV2NHFPV29qV21PRzV1R0JNR2pZ
Qzc1eWZZN1lUVExySjlNc3JndjNzUER3OFBEWXl6VWc2VzQKaXRlOElvTkJWNEc0RWxDMVVRelhs
VkVRV21McUNvcmhLaXNJMnpoR1NLYXFhYW5qaXgreUhQVXd6ZEdxcC8yTXg3SllDYS84WEJWZgov
QnhrblBXVDFTQ2owMW9lSGg0ZUhoN2RXSlJWU2hWQlJSeGNHYUlBR3ZwS3pWZzVnd1ZMVmlYV3lt
NjJZenhZZFlSUlU2bTZYSXYxCnhlOHhPazFNc3k4SW9nSDRqcGV3NnVDWVVUOVo4c1h2Z3puc2Rv
S2NQKy91WW5hL2xvZUhoNGVIUnhITHVnYktDcXNDS2FoV0NIRzcKSXpkamxhNnNWR0swckVxYUg1
Y2xoQ2lHOEkzUU5pZlZRWHp4S0pDUXZuUEQ1RFNZNVpqdjZnaVlHNVBxOW56eFU0TGdqdnQrQnpJ
YQpGT2c0eThQRHc4UERROEtXYVVqMUdxTFYzZnJmaVFScENlb3k2dzFGTVlSRlY0YktndTVJdUdZ
ckJBWEhuSmZxak9WSUdKMEJrOU4wCkZsU1IwRmxqVTFhSUljYzBJKzR1Yzg2bTNNT3NuMnlUcGIv
OGNPdjAwaXdlSGg0ZUhoNC9IQVpncWRWZEhWZXl1WTNTV29xbFZwRUYKMDBIOVZhcEJHcGl0dkh4
REdIeDcrOTVjWW13eWx2RHpsaU83OG01T0VOek4wZ04yVTUxUWc0eER2dmpKTFAxdXI4RkhSMXNl
SGg0ZQpIcjhYU3lnSGFoMVhadWxmSmhvcTZvcTBsZ0ZiQmxxUktlS2cyTXZ1dEFNazJXN0NjalJq
YkRJMktaQ1dlNWlSNnBvcjc2WUV3VDNJCmVMeFExZ0JhQ3YyOHR6aGdEakxHMTFNMXliSXNIaDRl
SGg0ZXZ4R0xxWHFWMjlzdHJsS3ZGUW5NcXZyZm8yNklMYnF5VHF3V2EzTE8KMkRRcTFiRlJzb2F6
MUxRd3psRmdHMkYwSzdPM01RM21jRXdkRlYyd09DRHJoSFQrR1hlWDAxb2VIaDRlSG44OUZzTlhj
UUpTeVl3RgpwcmowTDBtSFNVWmNRNjNSTlFOVmxPMnhROEptcmNHODFSM090OE56RjJHWXl1eHp2
dmlwYlJEajYycVdZNzZyNHlXc09yVlZwMEhxCndEYUlxSkp0Mk5OZXh5Q2orK0k5UER3OFBQNXNM
RVZ0QlZPZ0lhT3ZFbzlsVEZvNWlRV21VRGVMR1ZpMUh1bHEyU3doTCtwVkQyckQKODc3bDZMQ0lW
bWQwY2xTUnpqOWFLR3VMbG5xZmE2ZitleFBIelBySkVtUnNiNE80NXljN1ZmVTB4OUF1SUhwNGVI
aDQvSzFZcE1KQwpMS2xRUTFwTmRHV0tZMkVGRkV1WjhxUmxVWGdHTHJVY0hkMmJyMWZ1b2NRMFJ5
eEhKV1RFTU5tV1ozbFRKN1FoSTJLNWgxay8yVWdXCmxScTduOHNGUkE4UER3K1A3NDlGOW1ZMnEv
K3M0WjJ3cnZKanlXWXAvRkpjaGJKUUZoWG9paGljWVpxWkdnUWJzV2xlcGJKb3FZNHcKUUZUenha
K3hIRjFaS0t2SkFFMW42YXFpTFYvOGlTVUlzeGZYYVMwUER3OFBqeStPSlM4SENpMHhhbUFXTVlG
WGJxQXJhRTJzbGJHeQpWUW14cmpBMnJGaHJkRUJFNnlDTU1SYmtvTEdwbW5GK0I4QU1NWXpDeHls
QjhDeElmWE1uYkNEajRNVnRRMGFudFR3OFBEdzh2aW9XCnppa29UaXhVc0wyVDJONnRZbGlncTBo
VHJaQ2lXWW5ab2pYYXNPSzJoc0FaWTVPb1ZEZ3MxUjNjbTYvRjZGUmFrc1BCdzFMZFhpYzAKL1dT
SHFwNE9JU2RzdDBIc2VPTWFjSENFQnZOeUR4NGVIaDRlM3g2TEZsRFF6WjRqbG9Lc0lvVFpsTEJ3
dmtOZlJQd2tKNFEzc1h0RgphekdJdzhZbW94OGQ4MTFkdWtIaDJBNkFnOGhwcGh6WGNhbHU0MUl2
bGtrT2c5UzJMMTdPU1FzYkwxaUNVTzhFUjFvZUhoNGVIaDhjCkN3UE10aTZvMmVMR2xsM1l2TjR3
V1BhRjJiWFE3bVlva0diZTJEUXRDQTZncFVaR2lJaUdBYTRGWU5uODU1eWZiQVF0ZFVXMGF6dGgK
WmdrQ3pEYUlVeUIxQmdvYnNpMi9ORjd1d2NQRHc4UGpBeU9UQ05OclhmcVgwVlNiLzVvZi94VXFZ
WVJXYWRmQ2dMcFFVQ1k5SEtPbwpvdVpWR3NNeDdTeHRUSE1JekFWZlBKK1Y2clpaNnA2emE0eE4y
NHpqVXQyMnF3RlZVUzlZZ3BCbFVmQWEwTnltMDV6Vzh2RHc4UEQ0CnNBZ21kMXRWUWRrc0JuS05U
LzFWRmxldGh0Q0svSmFWRVVzZWExZ3pPcXdmYlF0bHpWbU9qbVRKUHhjNmx2QXR3aGhRUlMzYW1C
SUUKdTJpcGxuR29qdGZwVHBoYmduQmlGMjFIV3g0ZUhoNGVEOFVTaWxkdDBKVnFoYUlKUm96VlJs
Y1p4ckxlckdTS1p3eGFqcVpWcW5STwpqakNhTE1pdWpYck8yRlJEUWkxZi9DaVlPeXlpZGJMb083
L1BmWisvdzlZWFB3Y1orOTIrbzcxbUY5VER3OFBEdytQR1dMYUZRSXU5CkJWZnd5bVNRRnE5TVZk
SHdYMWJLb1NnRXoweTA4cDQ4VndpQ2xJMlhROGFtdWdIb2NBbXJEc0tvcVZURHZ2aTlMRTFNczBQ
WDlTRGoKZWFsdW53WnJaVW0rK0Z1V0lEU0JLVE01citYaDRlSGg4ZjZRUXFQR2lSWEZ3V0p2UVZB
T251aWZLZGJ3cjZqNURrUVFwcndYYUYzQgpnZFhZWjBIRzlhTVJ5OUY1bFVxeUpJUlIwL2dHcFRx
SUx4NHRIRFBySjVNc1BjZzQyZ2t6a0hIV1QxYjN4VytnOEFESDJjcXlBeGtOCkhIU2M1ZUhoNGVI
eHpsaFVDdVNzd29JcGVaWExmQUtobXVqcVgxbVNORlNCajE2dUdxTnpXRC9xNHBpWkdnVHhuTjBz
bTVWM2t5SmEKQmN4Vk9tSE9UemFTNVh5aHJHMVh6L3JKS3BCeFUrNWg5dUp1c3ZRWnh3WlFjNlRs
NGVIaDRYRjVMTGFJS0FOTXhLc2EyemYxUlVFNQpUWVVPai9WUGl6dm9Wb2FvQ0lMQnF3UWNsdXJL
YzRBS0Vyck9jblJDcFdwbUFjaDBBczVaanF6bnJJMVJwck84ZlFrQ01PQ0xuOHdDCmhaaERGOWQ5
OFI0ZUhoNGVGOFdpQy8zaVdzS2N6ZEpLN2tWcGhuOXJEcllpdXFLSXExSTFyRmhQNngvenF2V2lH
b0xnUlRzQXRvZm4KSGYyb3g3WEl5UnVONlpvYUJQSzYyZ21ZNjRUVElQV2RTeEJhYU1sMEFscUxB
MkQ5WkNPUWNmYmlicko0ZUhoNGVIZ2NEUzNUWVBUQgpRaXRVWEtYV2RVdGZwUmNHWGFuN0txOCt5
dGt3dHE4ZllWZ3pzZ0JvU2orYVlrRU9XNDdha0hFSE9SM2FBYkQydVlZUlJxT3JWY0pyCllKcUJD
OXJPY3VIaWdBYk9QclBRd1drdER3OFBENC81aUJKaDJDY0hTUkEwVHF3SW5vcVNEUVhNSWlzUi9s
dURRWjZLVWc3QVhnMkMKalloV1pYUWFnMnQ2aDlPRnNqVExzRXFGZllSaE1NcUU1V2lIMFNtek5B
RG9xYXFubzM2eW1TejZ6cVB3Y1hRYnhDMFVubkYzdFNHagpzb2tlSGg0ZUhoNzdzYXlxNk1tTDZN
b1M1b216L1p1eFdWRm9IRmNDdGhoaGpXRkVZd3E4Vkh5WlU2a3NSZ0hXR3NLWWt1cnNPVk0xCkNN
aDhoR3I5OXdISWVOaFBWbWQwTm1RYnJzb3lBWVhIdXJxQ0FuZWx1czFDaC8xdEVLc1hkNkFUdXBB
eDV3SUZ6WHQ0ZUhoNGVMUWkKTUZpSWd5YTBVZ1BpdmplRWRWV3h6OUJYb2c4R00xYUdydGlDcmNC
alVYZzlPTGcyMXU1WlRnS1Y4cFVEQTZjOVo0b0Z1Y2pZZEVLbAoycTZrQTZvcTZuSExVU1ZMRXpr
TnI5M2Jncm1qSmF4NjVSNW1MKzdjRW9UZTU0S0RMUThQRHcrUFNpd0ZmVlZRV1ZZS0xLQ1Yvc3Fp
CnEzVlYxZ3FGYnJpZVVxbnF3NTRLaUZNcVZZYko5bGlRRE5Qc3I5M3JRTVp6S3RXYk9xRUNHYTJF
MTBWTzF5NUJhR1haaDR5b3FLaXoKWFozT0VVRndmRDdndEphSGg0ZUh4eVlXUTE4aE1GZ3Nyek84
QlZqNkt0UCtkSk9jaUs0bytLNEVlQ2s0R3h2MkJqUWorenJwUVpPKworSlJsYXV3ZmQzZVZscU9U
S3RVMnl5WWpnQU03QUk2b29rMC8yUlNPR2J5NGVaYlpUamkrT0VEUTB2VEYzV1J4WDd5SGg0Zkh6
OGVTCmMxZE5OaXR0OWd4VHBpSGdwK2hxSjBWWEtnNUdHVEdvalRocEJ0S2hia2MvMnZYRjE3SWMx
bzg2UTNnaVFnNWJqblpyRUdRUWM3RFMKZ1czSkRaM3cwQklFOElBdnZnSVpKK0ZqLzRJNnJlWGg0
ZUh4cTdGd0hBc0NsakxRQ3FYcEtsVmV5QW10Zjh3c0xpdEZWLzlXckdBcApqa1gvbUhsQ3Blb000
YlA2RVdIcml5OEh5MzFNTTI5c012clJaWllqMUR0aElFdkxGMy9JZlQvK1dYS2hjNnlycTVEUmRM
VjJieGZUCkRQcmkzN0FFb2Q0SmpyUThQRHc4Zml5V1l2RWdSMXlWMDFxS3RISmNGVjZ6VlFNemlS
QnFiLy9IQUE0Ym02d25aa28vU3NPZStPS0gKV0pCU1JKczJOZzJ5TzFQdSswMUcyMmtqWEVzOGhW
R0JqQlB3Y1VJUTFBNTVYeWZNSTNXWWJSQnp5SGpZdGRiNExDMmtIaitnaDRlSApoOGRmamdVQlZQ
R3ExRlJDV2xvSEt5dlRrSG13dElqRFB5blc4RzlWazN1MnhwQTczTXk0SUhoRXBhcnN6VGUwQTZD
S2FGT2FVWjEzCjZjREhFV05UTGVPSUdhalJVVUZGbmRnRzhkQVNoRk1ndFpKbGszRWFxV2U4cHFx
b0Z5eEJxR2ZwZG9MVFdoNGVIaDUvT3V4V09TaUkKSzRZc0pJd1FhdFcxZ2RhazljL2dyUXhkeFY5
eDhMa0QyR2hodTVhajFyQTNMdFZ0c3hnRnF1K0xQMmc1UXZxQXc1YWpDVlgwaUVwVgo4WnlsZDZo
YXdsc0lvOWZWVnNJYnViaGRzcTNNVXN0NGRnbkNYaWNjNFRYVnpiYkoyTCtGM0JmdjRlSGg4YmRp
RVJURkJsRmxUaXdtClU4QTl3YWJBZFZGUUR3VmFVWVJUd0QrR2dxM0FZR0VybDh5d0lQYjhLVFVu
TnpiVk01N2JBZkN3ZmpRQ0djOUxkZVU1ZFFCYStPSlAKMXlPZEVnVDNzcnpKZlY4aW9jd1hqMFpI
SFprUGNJUlFJL01CcDdVOFBEdzgva1FzcVZ3N09MM216TjdPb0tRaGFpa3NOVjB4Vmc3UQpLampj
eVZKWndlZitqN2srN0kwVEFMTXFWUUhtSnZXajBhSVNKMVNxTnBqYjZZUnp4cVpCZG1kcUI4Qkd4
b0cxZTIzSXFOMjdEeCtQCkwwRm9YRnptU2ljTUxFRzRlajRRdmpVZUhoNGVIbDhZaWNFUzdvcFdC
aE90YTZNT2xoamJ0YUNvY0ZxQnpRcGxHdkpmTWY4YnNoeU4KNlVkOUFrQ3piSHhYay9yUnlEYUk1
MVdxT1VIUW50OGRuaHNkTlVaeDJYTUd5ajAwUUdvbnl6NWt2S0lUS2pRWWppRDFjRGVkY2Q5dgpz
d3hCUm52aEhHZDVlSGg0ZkZrRUR4WUYxaXB4VjRXMzNkcmJHLzhDZmZVdnVkMFZYY1VqZTJyT1lm
Mm9YNFd5allRbXMyUmtCZzdvClJ5T1FjUWcrN21mWmRnSlBkMElWTW00WW5iY3NRWmdBcWZ2YUt4
ZXZEeTlCYUpkNzJBR3A5U3dIT2tHemVIaDRlSGg4ZkN3S3FvS2YKWGJrcjlWZmw5Um95K3Fxd1pL
M0prcFZvTFNXeDhzRjFqd0RZMFk5R2NNeGgvUWp0TEFEQVhDbGZlWVhsYU5NSk8zNnlrU3duVktv
VwpXdEpPYU1MSG1hNHVJZU1jU04zVlhtdmRmc2tTQkFpdGRlRjhRQ0hqMk1WMVg3eUhoNGZIQjhl
U2lDdmQ0Qm1DcFRiUWFtVXdoMnFpCitNZjhieU1VeXI5UTUxMDVMZVllV3FvaHB4R2RaVy9sM1pS
VU40Q1c5bnp4cDdMTTZrY2prSEdqTWMyQTFLWWdlTm5pQUVPRHpWM2MKcVN5WFFPRkNlelhRRUhV
VjlkQjhBRE1YMTV6anRKYUhoNGZINThVaTRpQldacVd2Z3VGZHlhMS9abDNodjdTaWtMTDFobXgv
SklPMworRjhvOFpsNVh4UlZ6T3BIZzI0YkpRUHErd2UzaHIxZFczUnIySnZhQnRFQW9BMFN3dFdk
TUc4NWFrUEdIVXh6YUFmQS9ITU5kUFVNClpCeTh1RHM0SnRkZXh4WUhQRFVmY0ZyTHc4UEQ0ek5p
RVhRbGNLcllsQkRSOXE0MVNDMm50U0d1S2xUV1AvbkRYVnQwYTlpYklnRHMKK2Mwc3Ayc1F0UFNq
QVYrODBaZ082a2Q5UVJBN24yc1lZUnhiZ3RCaWRCcFpOdTl3ZkhGQXJ4UFMrZU5kZlc0Snd2NDJp
RnNvdkhPSApUODRIeUlHV2g0ZUh4NU94UksrVnJoOEVWbXpjN3NGNnhhRXl1OGlDY1praDZhNkZX
MmlsaG5mT2xuRWRtcHJQbE9LY1Y2bmFRL0tzClNtVXhDbEJ1Z3hnaDQ2eCt0QWNaeC8xa0F3amoy
aVVJclcwUTUvMWtwNkh3d1NVSWlXNmNuUS8wdGtIY2VNN09MMEdvZElKbTlQRHcKOFBDNE44SXFR
ZzR3eXhCVXh0NE9SUGhsbGhQKzR3eHAvV1A4TXlaM01id2oxQjJOR3hHZVY2bFFaMEc2dk1zb2p0
a0lnbWp6THZLSAoxU3hiRnFUY0JuRytFNEFHUnRtd0lGZGFqc2JLY2Rrc0hhNEYwRzBRMjkzZWdZ
OXR5Sml5REZ6Y2FUQjNJVklubE5zZ25wZ1B6RUpoCmdWa090anc4UER6dWlWQUh5NGlEU2w4cHFK
SnRjeUpsWlN4WmRnbWhPTi94YnlNZHJzR2ZCQUMwenZoZ3lzR3l4WUpNaUdpMVlXK0cKQlRscWJB
S1I3Z0M0UDNBMnMreXhJQm1tT1dVNUdnV3B1OXBydFJOUTZmWlJoREd5QkdIQVR6YVNaUVlLajBK
R0FDaFYxTFB6QWMzUwp2cmdXekRtdDVlSGg0ZkgrV0xUa1ZZVytTclhkb2VWRyt6RExFbHFLcnY2
eHpKNmpVclB2VUptcVFaQlREa2VOVFhzc2lCMzJKbXNwClZmUWpUUG5pYlpZM2RVSzVCT0drU3RX
RHdxbWRVNzc0Q21ROGl0U0hjTXpneGJXSzhFUW5uRjRjY04xOHdIM3hIaDRlSG0rSVdLYUIKd1lt
K3Nrc0l0VjREc2hjQ3MraWZtTGVNNllwVzROKzYva09BWC9qWDBJKzZEcFVtQWRBYVhDOHdObzBD
T3d5eUlDTlMzYTR2dnBZRgpPNFByRVMxc2dBWFpzeHgxbHlBMEx5NEdmUEUxN2ZXd2lEYUNZd1l2
N3V3U2hPYkYzWmwxTkNIakpIenNYMUNudFR3OFBEeXVpd1ZFCkxMc05jbFlRaXlMa01rSmgzSUl3
V3QwcHZOQ0s3ZGJudm9MWWxCc2xERWgxbDI5SWN1bmVmS2ZjOXdVSzdMRWd5UmMvSlFqYTgrZU4K
VFlkRnRKbE9HTFljRGV3QWVONjF0clgzY2VxTmswaTkwdFdqODRINnJLTU9HUzljSEdEbUE5b3FE
dzhQRDQ4VHNUQ0h5dVFBRXRLSwp4bmFsckNLb0lrTmxVZkM1NjdyQ1RlbDIzUkNhVjhZNGpta3pP
clA2MFFEQ21DVUE1cklVeUdsR3pRbHN4bXduVEdheE5OZ0ZTeEJhCjd2c0s3ekxXMVVpKytNMFNo
SkdMTzVRbG5uT21FOURxQktST09Eb2ZhTTg2cm9QQ3FhTnFTRDJtOXZEdzhQQ1lpd1Z4c3NvTVpr
RDkKNkF4ZW1kbEtoT3JCaXNvZ0JHUEZKWVJoTzhJQXpteGxMSjRkWEN1TVRnL1RWTmZ1all6OTF5
Mk10OE1lMnBURFFmYzlHeVMwb3g5TgpROFk1UVhBTUxhbDZ0YmswNyt1RWNjdFJmK1hkM0MwMEpn
aWVYb0lBZ0prcDBWcVh6Z2RxeHJzcUhIU2s1ZUhoNFRFZUN5Z2dLUUF5CkZBUk9peUhQNnJDaVVG
enRpclRpUWFHNFdPVkNVaDdybjFSNFB5ZGtZTStoTW8yVzV2VWpBK1k2dHVqNnNMZkh0VlFoWXhJ
RUJRbTEKZlBISHdkeXNuMndreSt6RkhURTI2VHNEaFNWOFdxcmJJb3pCaXpzMEgwalhxOGg0c2hP
NDJ3bnZXWUxRdTRYY0YrL2g0ZUd4Rnd1egpjbGpDWW9GQUhKNjVBV3lCQ0dIdXJGaUtwZGlWYkRn
b29pR3Rza2VoWWl6R2dIMEtYUmFrNjFDWnNoeE5FUUR4bkJHZFpWby82ZzU3Cld4YmtIVHNBenVs
SEk1Q3gzKzBEWFYxQlN6VUFhbjN4bFk5d2RTZE16Z2ZHTHU3WitVQ1lkY1JPUUtPajNqMGZjRnJM
dzhQRG94RUwKRUhFVmg0Y3JBMEJ3QUxFNXp3aUk0Y2RvekFxckNJTTRhTTN2V3FZaGJrVFlIVnlu
V0JCNy91U0dKRGlwVW8wUUFOTXFWY3Y3TXFNZgpyYU9XSXd0ZXAvU2pFVEJYNzRRcHk5RW15K0RG
elh6eEExQzRkcHNOck4wYmdJejc4SEZxUGhCZmR5N3U4VTY0ZWo3Z3RKYUhoNGVICmlZVVRqZ3JQ
YlU0d0NoRm1zUjRoUVdPc2Z4SDNoLzdIekdMRCtoZEpyQ2dVTm1pR2xwQXhyVkx0VkRvb0daR3hx
Zm0rc2FuUHU4eGsKcVlDNWFUUFF3RGFJaC9XakRtUThCMUszWFcwN2FvemlzdWNNYklQWUFLblZM
S09ROFVLa3ZqMW5majZndnZqejg0RUp5R2d2bkFNdApEdzhQajJCeUp6Q3Y0cnVTNFNsWTNFTVFn
WU5jS0ROV05rZ3JqR2xNYTNKbEJSS0xCV0NoanpDbUNBQTVaNC9SMFN4bnB1Wk5WOHJ1CnNIY215
M21WU3NnTXk0TDB1bjFFcXR0MjlSQjgzTlZlMjVhamlVNm9Rc1pOdVlkWlA5a0lXcHIxay9XMVYv
MFd5SjF3ZEFsQ3U4aGMKRjZRV1djNTBnbWJ4OFBEdytNbFlCRFVSQ01RSmFRV29CVDJDZ0t2Q0k1
cXRuaGdleW9ZSnd4b043L0ZmWnhDNmVtRzhtWTdISFFDcgpsTVBKTE9aMVk5aWJ0eHd4alEyY1Ux
a3FuVENrSDQxQXhucTNuOHNpOE9JU0tLeWRJQlRzTEZJZmdJd25RT3JJOHNQcmxpQWcwbHJUClNI
MEFNcm92M3NQRHc2TVNDNGlDNENkQWl3UXBXY0lxL0x3YVkxWVlPRlpBRmNVSXROZ29qQ0NTQXd6
bTErdFYwWmo2VC9OQk5RZlYKb1M2YnlrOXRneGpQYVNFaHpYak1kMVVUMm83b1I3MHNDYStRRVJB
UHFWUU5FRENDTU1hN2V2cmladWMwdE5kNko5aVBjd1RNMVpIUQpxZm1BRlFRdmdNSlpWMnYzaHN3
QlM5V3UwUkhJT0RFZmlPZVEwMW9lSGg0L0VVdkFQN0VvQXdRS1JkZ2trMjVsdVFBQWNmdm0rQ2VB
ClVSZ0JlWFN2SmRZQ1VkajF1V0tJNlR6Tit6cExtd1dwVHMzUkwvZHdsZVZvbkFEb2EySDdCRlZy
R0dzUGV4U2EwR0YwZHJQSTZ5c3QKUjRNWGR5ckx6c1U5dUFNZ0FMVFJ3K241d01ERjNjRXh1Zlk2
dGpqZ252bkFGakk2cmVYaDRmRjNZd24vUjRLaUVpU2lXQjlMQ3pjQQpxV0pXZUpDTE1TdWNBTlFV
eHNSNW1SQUFCekMvWG5UZGpoOTl5aUZsWWZIQmJCd3FPald2RUFBN1UvTjVZNU84YmcrY0YzYkNS
ajhhCjhNVXJaTlIzUHE1U3RiUFVQdGRBVnl0a3JIVjFuM2VSaTlWZ2RCcVhBd2tKaldQb001MHdo
OVR2V28zYjYvWmo4d0hFdi9MdzhQRDQKUTdHRU1jYXNDZ1JZanNRZkRmYVNwMlRhWUllcUNxTTUw
ZytpVlpBV2djNVpqcHBQL09iQXVWMTRsUWFoSVFMZ2tKcFRZMFFPcWxUYgpMRjNlSlh1SERkZFNM
QTVJa1BHQWZyVEx0ZXhkM0ZPV28xMU1zOGZvVkxJY2tPcU9RdUc1cmk3bUE4ZVhJSFEzWHpmemdT
TVl1a1B1Cm10ZWEwY1BEdytQN1kyRjVRQXZTeWl4VVNSczBSeTFzVW9WUlR5b1Z4dEVncGJXT1dv
NHFUL3c1QWlCYXdxY0pnSFNPdHJQTmdtU1kKNWxyTFVUMmovR0dSNVgyZGdOMnVucjI0MTVYall0
TjdIYTRGMEcwUUt5aHdIejZPWE5EMnhUMitCRUc3ZDZBVGRyWFhjdFp4WWo0dwpEb1h0SFI3VGVY
aDRlSHhsTEFHRkdHMHdEQWZNc0ZDTEFvMlY4QkpSaHNYQ2MzZXRLSXdIUXBCVzZZdFBUM0RVV1pE
VzFQeVFrQUZnCnpoZWZzalRCbkgxTk0vcFJCeklPdzhkSnRCUUVSRDZtVXZXNnV0L3RNempHM2ds
ekYzZXVFekNKMU8rWkQyelEwdGpub3F5SDkrOXEKUUZYVW0rWUR0Sm11a05OYUhoNGUzeGVtVEFN
QVlvT0t3a1BQVkw4S3owenJYaWNBSkZZdGprOUJxekF5eXdCeEtBcGZ2RDdCUjh4QQpwOVNjOUJv
RHZ2amhHZ1Nkak1PRDZ4Z0xZb2U5cVJvRUJyeWFkOENNTHg3djc0UU1NazdDeDZFc1VEWW90WFBR
Rjc4UEdkdVk1c1I4CllPeml6dTVQVUM1QkdPMkUwMHNRdk55RGg0Zkh0OGNTVUZIeXM0ZW5seFVM
ZFlCTnhpd1NZNVlDcWV3VUVJaWgwMDc3UER3TXRuSmEKYTk4WFB5OWs1TFB0elpCV2RhZ01hMGJs
c0hmSTJGU0F1Vm45YUt3VHV2clJyaSsrbStVaUtKeEJ4am40T05iVlJiZm43eUIzQWpwWgpEblRD
S1dQVDRNVzliRDdRbkhWc0wwYzVIOWhuSEwzY2c0ZUh4OStJeGJyWEVaR1Z1dGZqQVVSdE1EelFE
T2NWbjdwZ3JGWmhCQmNLCll3cDlKcDZqdFdKRENOU1Q2bEIvZ3RmT3lTbUhrYW41MElZa0ZiTHRJ
bVBUZTl6M05NYUNHUDFJZmZGdFFYQ0hiSnN5TmhFK2JnbEMKeFJkZlp0RjNQajBmcUVER0Ewajlz
dmxBT2V2b2dibDN6QWVrcTVsakwzcDRlSGg4VEN6NmlxRW9pdVZJNEtmaWtkeTlEb2hQSzFNWQpr
MDhyL0YwVFIxMkF0RURTbnBQR3BzMDdES3RVYlVhbnF4OE5jQzFkeURnS0gyZXlCTXg0U3llY3No
eWRBS243V1k0amRZUnBSUVV5CmpzSEh3Zm5BK1U3QVFDZFVnZDNJQlRXKytPdm5BLzF2Z2UxR0R3
OFBqdytJaFJVb2hTQ3dzYmhUT0xJcWlvcEdLeTJJRlIrZjRVZU8KRDFtQXh4M3U5b0Y0Z1lDSU9x
M1ZIdXFNM0RBbDFmVVluVjVHSEFCell5eUlIWkFtczZUWDErMEF1TWxvTytIZ0VvUXhpbXNJcEc2
egpvQ3dQTVkzVUJ6cGgxbkxVWDNrM0NZVzdnbUR2V3pETGF6S3p0T2pTK1VDMUU3WklYYk40ZUho
NFBCY0xFR0ZVOHFyTEVaVHVkY1ZlCktJNkVwMlBBUjJMTWlncmpWR3YwbVhnOXJkWDF3WnhZR0Y4
aEFGb09sVU5aQWxxYTE0LzJJV001N0UxTGRUMjBGSm9acEdiNXc1NkkKZGwwbjlGU3F1VktjcDdN
QWhTWDhqT1ZvNHprN0NGSXJXZVQxZTVZZ2xKMXd6UktFbWZtQSsrSTlQRHllaUZCb2REV1lLVHgx
NVFnagpqSlRSaUJXUENOSktjbUQ0TVFOR2ZBSW0yZWZoQmJSV1Z1NmhPL2Z0RCtISTlZZ1dDOUp5
cUl3UkFKc3Nvd1RBREpockRFaW4xQng5CjUzMWYvRHhhMmxPcGprREdmcmQzdTdweURneGV5WkdR
M0FrWGRNSlpwRDRtQ0Y0QWhjc1pTTllKalcvQitTVUlPeURWYVMwUEQ0OGIKWTJFa2JCV3JoZ0tR
S1o5eHIwTWVVMWs1TEJZbnZKNGttdU5sVGRSbjRnbThwdVVld2dQWFBJdW5DSUM2empJMk5VZWQx
dG9qcFlhRwp0RW5JV00rNHUzYXYzbEZBYjBqYkRIdFQyeUJhaURtakg0MUF4a09kMEw0Y1UwajlM
VHNBN2lQMW5mbkFSYndtRis4US83RFZDYVB6CmdZTkxFSnFRMFdrdER3K1BOMGVVQ0xOcVdBRWpa
ZTUxWk5zNWh3ZnN1b29qU3lhbEt4dUZFYnhlM05ZTGtKWVJFTEd1czlzZ3BuUEcKQ1lDTmtORzBo
TmRXM2gyeEhNMFJBTU1xVlEvTXpmckpSclpCVEpSWStRN1hXSTVHTG01ejdaN3RLTDFZRTBnOWRN
SWVvNVB1aEpHTAplMjBuRENIMTdUblRJSFZnMWpId3VXWVl4em9jOVBEdzhMZzZsZ1NiSWlxS1JS
cUVyakxZS3p5UXBHS1dUQ0N4M2VBNTFzT2lVMUNvCkUvYUJlSTdXQ20reG9iVzZPR2FLQUpCejJz
T3owR0hDQkFBQUlBQkpSRUZVcVhSd2RtcCszSEowSnN0NWxTcnZoRzIzejNWMUN6SmEKdkRKeWNl
dmFhd015WHRBSm0zSVBzeGQzQkRMQ0lxR0pMRU9ROGZoOG9MME40dkI4WUFJeTFqcEJzM2g0ZUho
Y0ZFdUFRWmw3UFlwcAp0ZTJjT2Z3SUVtVlFUZ2gvc2hyNWtBNXVsRE1aK2t5OGhOYWF0QnoxbnVa
VGFBbHhCOER5aVg5RkZnQ0tNTjVoT1dvTW5GTlpXcDB3CnBCK05RTWJaaXp1RmxvNnFWRFh0RlVC
VlJaMlg2aTZkRDl5N0JBR3gzTU56OHdFWEVEMDhQRTdIWXIzcVFDQ3RjcTk2TW1hWlkxQUIKa1JF
UkdnVHRNQWhXSzlSM2ZtdGNra28rVjJzYnhEWUJnQVpCTmFFWlpWUDVxVzBRNHptVkxJZjFvODRn
WkR0a3lrODJrZ1ZrQk1RagpXYlpvYVJ3K2puZjE5TVZ0bzZXOVRrZ2Y1MHduWERvZmFERkFCN1BV
dXpwa0R1aXRkbzN1bkE5NGVIaDR6RWNvTkVvUkVsbk9pV1JMClFZa0lQdlNJT0xkc2lheTA1UTRv
aWg3cERjMGJ2VGt1U0ZYWkJySDdORCtyNWxUMEl6VEtQUXlqcFQ3bGNNellkRmcvNnRxaVVXTk4K
T0NLTUtWOThGUW1OalAxVG5XRDlaQmN0UWFpc3ZMT1habW9Id0F6SHpDRDEyZm5Bd01VZG1BL2Mw
QW1YekFlYzF2THc4SmlKeFlBawptU2pXdDNPMkZCWGxKOWl0RE1NSmllQ0NIRWp4Qk5JNmswMEZS
SXh0Z3loUC9Ca0NvS3RTdFIwcTZGcU91c1BlSEFFUXNqUUd6bE5nCnJqZnNUVzJEbUM3SEZna2Rk
NjN0UWVGRGxxTk5WL2U3UGI1RGk5SHBvYVZEU3hDT3pRZE9MMEVZUWs0VHN3NEwzOGZ1OEZISVNF
NXIKZVhoNDdNY1NKMlVzaEZRRVNWUzYxOE96MUd6bkhQeFo1ay9TRWFRVFl0U0J6aVh3WnpndXdI
VXp2dmdwQXFEeWg4WEFTVnVIaWs3TgpSd21BYzVhajh5clZOa3VmY3NoN3IwQVBwUzllVUVqcTNu
SDR1TWUxcEN5YmkzdUI1ZWc0VXE5c2d4aXo2RHRmNEw2dmtXMm05NDRnCjlmbjVRT2tuMjU5MVZP
eHUxM2FDWnZUdzhQQ294UUpFdjVSbHFBcjNPcERWdm9wbjVJSWk1MVhmUzRSbG9nNTBMb0EvbzNG
RktsSmEKNjVDeDZZS0Y4ZEVRUGtrQVZMSjBXWkFFV1NZSmdIM0kyTWk0cTczV0ZnZE1kMElkekRV
RlFjeGMzTmtsQ0YyVmFxQ3JFYi9DZWs2Lwoydy9QQnpaazIwR2t2b1dNM1U0WXkySm5IVE1YZDI4
SlFnbUY1VGJMdndWSjhmVHc4UENRV0xaZTlmSklLTW9RWUFrWjlYQnpKRHhyCm1PMDV2ZGhCV3VV
dnJvOUxVa21QNWI3NEpGSnNoN3FkcWZraElRUEFzQysreU5JRWMxQ0VjYkE2UUE4eW5sZXBLc3Z2
ZVZhbDJ1L3EKV3JjUGNDMDl5Rmdnb2M3Rm5RUnpweFlIdkhrKzBFWkxqYzgxZ2RRelhsTlYxSVB6
QVJxYkQyd3ZqZE5hSGg0ZWVTenhTYmthUHFwdwpyNGZINUdxUEFPRGlDRmxjRmFlT282Q2xDWFRx
RU93dGNVR3FyUysrd1lMTVRKcWJ3eDVxQk1DSVEyVkNFR3hTRHZ1RGE2MEdRWTBGCjJReDdZMUxk
RmpLYWR4Q2RlaWpMUkNlTTYwY2R5R2hZa0tHTE80Vmp6RHZzV3NMclNIM2IxY05JdmRIVjFmbEF1
aE02Ri9jZ21FdmQKdnQ4SjUrY0RmVjdUZmZFZUhqOGNTNzZkYys1ZUQyaEJ0bk1HVXQzUjRnaFN4
U3dBb3d4V05lcEFwd25Ccm85TFV1VzAxcjR2L29pUQowV1ZCcWc2VlljMm9IUGFtQ0FBNUI0UjlG
dVJzSnlUTFVXWGc3UHJpZDdQMGVaY0JrRnFCak1Qd2NhS3JwWHVyektqY0NkaG11WFFKCndySDV3
SFZMRUN4NExUTldaaDF6a1BHSytRQTVyZVhoOFhPeDZGTzQ0bDRIT0Q2bUFZZ1BpMGlwS1ZZVGtG
WWlqYUNFckJ2cldEU0IKVGgyQ3ZTVXVTTFhuaXo4a1pBd05hZG5VWEIwcTR3VEFsWmFqOHlwVmJk
RVpUVXAxeGhjL1lEazZxRkpsSngvb2hEa3dsM2Y3UUpiSgpIUUNQUXVGdFIzWG5Bek5TM2ZINVFK
cDE3SU01N0hhQ25EL3Y3bUtPdmVqaDRmR25ZekZlOWZpZFo2em1FSWt4SzJFTWpnd042OThVCnpp
MmhMeTZMT3RENUxxU0ZoaTkrR2kxdDNtSFlCOU5tZERZRUFHVWoyVG5MMFNoOG5Na1NNT09iTzZF
QXFhZU1UY05RZUZ4MlBJSFUKRWIrLzI2N1dkeDY4dUkwc2RjZzRqOVRmT1I5SXN3NFVXYzVCNFRa
a0xGR2c0eXdQano4ZFN3UVBWSHFxQUdCTlNDcytFNG9qdW5RUQo4VzJDbCt0OWUrVFk1eEh2SEwy
eEFaT1JCRVRVYWEwMndyQmt3QTRCWU0vcE1qcTFqRmRhanE1YUdGL3puSjNkbTAvSmpFMUcwKzFI
Cmx5QWdnNE9EOEhFd3kvbE93RUFuWERNZnFDQ2hzOFltY05raFIrY0RHekg5OUh5Z3YveHdpNkUx
aTRlSHg5K0tKZmRVQVNJV21pTXcKQmJHeUkwQWdyVWovTGo0bjNrOHA0Vy9UV2wybjdSVUw0elVM
S2c2VjQxazRIMUFibnd1YllXOENNczdxUitVNWRTU0VqUzkrcSt5OAplNFBDT2N2UnlNV2R5Z0tv
Slh3U3FiZHh6Slh6Z1N4THM5dlB6Z2N3NEl1ZnpESjVjZDBYNytIeFYySUJXVTlWS245RkFwbjBD
UElqCjRjSEJ2SXJ2Q3ZHSktxZmNGanRJcS96Rkd4dHdKbFdpdGJKdEVMdHozNTUrbEExSWplbDRO
dXpwVlA3SU5vanB4UUFCTUEzbXNrNUkKNTE5amJOcjN4YytqSmE0TW5IdjYwWUFxaW5hMzk3aVcy
amsxSkJRQUtLN3JoRGZNQitTZEw1d1A1RWhJTzRIamk4cTM0Sjc1Z05OYQpIaDVmSGd1Z25pcDd2
Q3pIWG03bnpMWmlWamkwbWpkSmYzaG5OSUZPSFlLOXR3M0hVNlZ5RCtHQk82OVNqZWdzM1FHcFJX
dnRxVGxEClE1bzlaNG9BbU5TUFJsenErL29SUmlCamRnNklwdlNqRWNnNDJRbVg3czNIZmNoWXo5
Syt1STJ1SG9DTXN4ZjMwSHlnM3dsellPNjYKK1lEVFdoNGVYeGhMY3E5VHRFL2xCYkcyUnlLRkJT
Qk9KMWZqZDQ4VjNlK0VOUFdvTitBSnBIVWlXeElRTWJjTllrdklhQklBTFNHagpRbWEwaGpyc0Qy
bjJuQ2tDd0o0L3BoOTF3TndWbmRBbTIycmRmczV5Tk93bkcwRVlxb29PSVhWenpzdzJpUEs2bXVV
ZG5UQ0UxRGZuCnpNOEhCbVlkTUxmWjVuUE5JZlZ0VnlzKzl2RHcrSUlJRXFHSWZ3aVBSb0N6QXUx
QWNxOFRJajlWTFlnVmE3NVR4bVdGZUJ4cFpXMjQKQXY0Y2FNTTVXaXU4UmFLMWRuRE1MQUZBQThN
enRodVN4QnRrMm5JMFN3QWN5MUtpcFhNcWxYWkNTWU0xNGVBSWp1bEN4aG1RT21vNQpPaXlpcGE3
ZVZEcW9HTy9PTDBHWWhjSXprSEZ1UG1BaFkzc2J4TDJMZTRyY3RkQlFzbmg0ZUh4d0xLYjhWWGhF
ckltaWlrY0s5enJsCkZiTUVhUUdRQjErMXpPaTlrS1llZGFCekl3YThJbFdpdFM3WWtPU1FrSUc0
QStBMEFiQ1BscllzaUIzMlpnbUFFakxPNmtlYkxJMU8KMlBGZHpYWkNnd1c1eUhKMEZBcFhWOUxK
bDMwV3FROUFSaWdTMmdPcGVaWTNkVUliTWlLV2U1aEI2aFB6Z2RnYnZjL2xBcUtIeDBkRwpLTlBB
V2lOVTUwVlY5M3FPbmFnc3lNQnE1OXI1eHQ4SWFXWWFjQ01HdkNTVklLM0NGNzgzOSswUVZETUVn
RTdsTWI0TjRrNlduZVdICkI4SGNBQXR5TkF2SUNJaFRXU3FZck0yQ1pKaG1wcXMza0hIdzRqYlEw
cHM2NGN4OEFITlpUa0hoWGxlSHpQSHJzT24yMGE3T0llUFIKK1lDSGg4ZG54Q0oxck1MVGtVR0N0
aFJwWVUzaVlQeUM1NXZoRUdrRkxUMHltUDVHU0RQWmdCc3g0QVdwdHRzZ29rRUF6RXpOMjROUQpS
VC9DdUMrK25xVlBPUnd6TnVVRXdEakNHT0JhN091a0IwMzY0ck1zcDBTMDRVNTQ5eEtFY0RmT1pz
bTYranhTcjg0SFVPLzJRUnd6CjFRa01tdXlFRFdROGdkU2Qxdkx3K0l4WWdEakM1NFZHV1krRXAw
MTR5aFRiT1llNm8yTE1Jdm1UZ3pqaFJrZ3owNEFua05hWmJDb2cKWXM0WFAwTUF0RlFxU3JTVy9G
MWwyT3Zab2x2RDNod0JFTExVQnM0QmhESFZDUzAvMmE0dnZwYmx1RXExQjRXSFdKQXFaS3gxZGIv
Ygo1UjBhakU2bEpUZDF3aG1rUGpjZjBQUG5aaDBaSEp4YmdyRC8zZkh3OExnOWx2QWNUSnBlNFY3
WFRRYXIyem5INlpZOUFvQndGR09GCitCeWtsYlhoRXZnejM0Wnp0Rlo0aS9EQUhaWVk5Z2lBeWgr
R0JzOXRTTEpEQUp5ekhQVXBoMk5aTEJ1MG9SejZYRXZwaTk5Q3huMzQKT0c5c010ZG9Ua1NyUU1a
ZEdteTNxOGQyQUh6RGZHRG9EdCtIakJQemdRMUkzWjkxSE9tRW1mbUFadlR3OExnckZpdjFiZGtu
WTh3UwpHQldIL0hRRTZZaWVjazNjQzJsMjJ2QTRyWFVpVmM4WFAwVUFaTWhwaWdBSUUvbEpBaURM
Z25HRU1VMEFOQ0ZqVFJETWtOT2U5bHJ6CnhVOTN3aUhJT0hoeFo5MzN0WXloMHdhNWx2alFVTWpZ
d3loSDV3UG1UdEFPZVhjbnpNd0g3S3pqME1XZCtpdzFwQjQvb0llSHh4dGoKZ1Rpb0NrOFZGK2Fz
M0dRbE8wQWI3Q1ZIRkh0ZEd6ZENtcGtHM0lnQkwwa2wxNGpGVmxLS0ZKdWhibFkvNmc2dVFnQmcz
QmV2N3pCaApPWm9nQU1ZZzQ2eWZiQ1JMNkl6aDJncHpYVjFEZ1dNNHBwMmxuZkVRbUFzcTZrUW5U
TXdIS21UYlZKWTJKdHRrck4vaFkxME5xSXI2Cmh2bUFJZHRhbmVDMGxvZkhPME1ZclBCVlhhM0xD
Z0ExanNRL2pyTzgxZUFxd29VTVZqVnVoRFNURGJnUkExNlFpb2dGR3NjbmVJTUYKT1NmVllTTmtw
TmNqRHBWaFFSQW00NHdXeGtZRzZyQWdxQTk3VThZbUF4bk5Pd3o0NGc5MXdyaCtOQUlaQnkvdUZJ
NHg3OUN4aE04dApRWGpIZk1EY0NkdU1GeXhCR09pRWUrWUQ3b3YzOExnMEZvUzVkT2FnQW9CUUVJ
dmtTRm81R0w2QkhQNEl0a1JXOHNqZmhYeHVoRFF6CkRiZ1JBMTZTeXRKYXI5ZWUyK2FZa05GbFFh
b09sU2xCMEE1N1UyNmJsSVgyV1JBN0lFMTFRZzRaNndObjF4Yy9KQWdlaE1KTnlKaXoKSUIzNE9O
YlZlWllhRW1yNTRrZkJYS1Biejg0SDNyOEVvVFhyMkhiMVBtUzhZajdndEphSHh4V3hGSnNNV3Bj
Vm1TT0k4NTl3YURVNApTdlJFOEkzSXFvelBRVnBsRzI1czJRV3A5bnp4eDRXTW1hbjV6RGFJcy9y
UkNHUThyMUxsNTJSZ2JvRGlDaStNTDM1Q0VDeTZmUVNrCjFpSGplOHhBazBoOVpnZkFRMUI0QnpJ
ZVF1cWRycDZaRHpCWE9tRVBNbDQ2SDRpMEZzYzM4UER3bUl3bEFxdU5neW8vQWdnL0ZkV00KK0Zl
ckdjdkQ4NEVWaUgyV2Z2ZEVHNzRZYVcxODhVZU5UWmdpQUt5UU1iQUQ0UHpVZkI4eWpzSEh1U3lI
T29HSE8rR3l2ZmthU09oTQpGdE1KaDVFNmdMUm91V2s1R3JtNG15dzl5SGdlcVY4NUg4REoxYmpi
TEVPUTBkemhqck04UENaaktmWnlCcUtuS2p3OUVlVkRnN1NJClVSNkplbUpRQzgzbTBURStDK2c4
MFlDc0RUZGl3RXRTS2RKcTBWcXRZVytLQUxEbmRCbWRUVVk2NnJ1YUlRRHMrVk5acmxDcERON2EK
YW1HVmJwL282Z3pIREFxQ1UxazJZLy81SlFpVlR1Z2k5V05MRUdhaDhLNzJXdSsweWZuQVJreWZ2
YmpWNzA2YmNXd0FOVWRhSGg0agpzY1R2Q3B1VmcvR0k4VlNGaDByNGJUd0NCRmlWemdFQVh0ZHRq
ZzhGT2crMTRTL1JXdDFCcURacFBydnRDVEtIeWpITFVST1RiVEp1CkJxUjV5RGlySDVsem1sbENN
d09UL01ZbENFUDYwWGhOc3YyTE93ZUZRUU9MQStaNHpjRFRYRE1mSU93dFA4UmNKOVFnSXpEZ2k1
L00KZ3ZSZEc3bTQ3b3YzOEdoSEtEUmFlcXFRZTZvQ2lqTG5pRE1yUGpiRGJDcldPVEtFV0JtZkMz
UWViOENOWFhOSktrRmE1VGFJYWU2TApnYWY1ZHRqclRjZXpZVStuOGxQYklHN1FVcGNBR05GWjlp
eEhVeXpJQUZyYTg4VWZ5ZEllbnRzSTQ0amxhSXhyR2NoaVhqZFUxSGt3CmR5RlMzMlo1QXhRMm5R
RDVPbUFPcVc4dngrbjVnSWVIaDRuRnJBeXNlNnJZanNLeW5YTTZrSGFKbm9zUEJUcFBOS0JzdzQw
dHV5QlYKc1EwaXhwL21VLzd4M29EVW9yWDIxSnloSWMyZU0wVUE3S2hVN1dHdlBZenQ2MGZvUThi
SzVlZ09uRmQxd28xTEVBN3RBRmo3WEhOSQp2VG9maUpoNDdPSk9aYmx3Y1VBRFo1K1pEeml0NWVF
QklFaUVoY3VLaktjS2dIemx5KzJjN1liUGhBaThEdFRBYXVLTXUrTHhCdGcyClBJNjB6bVN6YnEy
WmJSQjNoWXplY041a2RQb0lBL3REbWoxbmlnQ3c1NC9wUjV1T3Vxb1Q5cGNnbkZTcGhxQndQVXVq
cTIxSEdZeUMKZHJlWGwyYUgwU216TkM3dU1kL1Z3SHpncUx0TDMza1VQaDVmalR2ajdxcWdRSjBQ
a0FNdGo1K09KVG1vdE54QzdxbEt5Q3A4ZzdMUwpvd1FBZG9ObkF0QlRDZnR4STZMNDlBWmtiYmdY
QTE3UUNUUGJJTVlIOXhnQllKLzQrOE56dVNHSmp2ZEhsNnlQRXdESHNwUm9DV1p3Cm5WR3BiQ2ZF
eFFGYnlEZ2gxUTFCeG9tTFMrQ3BUamlMMUZ2YklNNzd5UzZhRDR4MTlTWHpnZDF0RU9zWGQ2QVQ3
RG05VHRDTUhoNC8KRmt2NFB5bDJSUWpHR29GYkVVSnhBRmF3eFVpNWNrUktrZHA1eXlHdzlhRkE1
NkUyUEU1cm5VaEZTbXZOV0k0TzYwYzFBa0F0aFpOagpSZzh0YlZpUXlyQTNTd0NVa1BHRVN0WHRo
RU4rc2hISU9Pc25HNEdNSjFTcXJmWUtWRlhVNDVhajJoS0VvWXM3QithdW5BL0lyT01kCjg0RXg4
VDEvdW5wNC9PRllySzVIUUtVZ2x1NmxZN0dYSENFSTBvcC9zZm51S05nNmg3VHdhVURuOFFiYzJE
V1hwSkw3cXZURjErZSsKR0NDb0pvU01OSlhIK0RhSW5TeGJGbVJDUHhxQmpMMGg3V2dXa0JFUXA3
SmttR3lQQmNrd3pTbkwwZURGcldITjkzVkNmVDdRd3pTYgppenVWWmY0VzJvZU1JWFA4T3NST3Uy
QStnTkdMNjdTV3gyL0VBa1FLeW00eWlNeVlGYU8ybmJPdEFoOSs1T2I4aE14eHA3V3ViY0NOClhY
TkJxc0lYWHlVQXBpZk5uVUdvb3V4Z3dCYy9KUWhXc3h4MDI3U0h0UHF3MStkYVVHcE1TUSthOU1X
bkxGTmovN0ZPR0wyNHMrNzcKMGsrR0F6c0FabDE5RHFrM3V0cSsrWFNXMlU0NHZqamd1dm1BKytJ
OS9tS0VRcVBNZW4remNhL0htUTRaTzN2Q1hzcFpXVFRHYlh5VgpoWDZabk5hNnRnRlBJSzB6MlhK
YWE5OFhQeTlrN09oSFhZZEtrd0RvOGk2akJFQ0dkU3dCY0prWnFPeUVsbjYwNjR1dlpUbXNIM1do
CjhHbkxVYnVycTkwdTd6RHVpNytoRXg1YWdqQXk2NmhCeGt2bkEvTEJQVHorUUN3eUphc29mYnEv
YzhCUjRSa2s5bllBa2RUS2lwSE8KeGpta3BRM0Jwd0dkSnhxUXRlRmVFSHBCSnd6NjRtY0pBR284
elJ2REhpN2ZrR1FJTW80U0FJZU1UWGxHR21CQmpDOStTaEMwNTg4YgptNHgrTkllaEs1RHgvQktF
bGkvK2tQdCs3TFBZVGppTzFLdnpnUzdadHNuU20zVWM3NFNaK1lCbTlQRDQ1bGdBU0tXcmVEK0h1
cU55ClNKQldob0FJbXcyZTQxWTVkQXhuR2FTRnM3VFdad0dkaDlyd09LMTFJbFhQRno5RkFLVHpK
MVdxTnFNenF4OE5JSXhaQXFBRkdiTXMKbGhLYjBvOU1WNGN2K0xGT21JYU1neGQzaXRmVWR6YnN6
aVJTQnhBWCs1U1FjUUkranFLbHR5eEI2SGY3VUJZNzY4Z2g0OVh6Z1JaUwpKenM4ZUhoOFRTeUpv
Vkx0VDBaSkttdGRSY2JLOGlTaUZsNUtuZWkzeVFYRTB3M0kybkJqMTF5U3lncUlSTlNzLzk0ZDlx
WUlnQktPCnlBZlo5Y1duZDVnRGM3UDYwUWhrUEs5U1ZmYm1HOW9CRUNLaXpVSEdRWXFyY3M2VUlI
aG1DVUxBM0JQYklCNWFnbkFLcFBhaDhPa2wKQ0FCVVJaMmFEMVN3WmpOTHR4TTBpNGZIbDhRQ1Fy
NmxJQVBZYkRMSXhnSWY3L0ZRSWt1Q3VEYU1uc1VaZHQ3aXROYnBObnd4clVVVQpXVlh1VEpRUFRa
cDNoSXowZXNlaGNpVExBUzFzRnpLMmhyMGhycVVCVE5Qck1LZENLOHRCeXhIbU9tRS95K0RGbmNJ
eDVoMnFsdkNpCm8wWlYwZkxTSEp3UFZORFNKbU8xMDY3dGhIMmtYcDBQTkc2QS9pM2t2bmlQajQv
RjJOc0JpS2VLS0NvRXFnNkdrNklsM2g2SjVxMysKclg3SkVDdHY0YlRXcFEyNHNXc3VTV1ZwTFZQ
dW9mRXNuaFV5ZGxtUWhrTmxXRE15cjJjSmdQMWhyRGtnSFFKekd4Wmt6eGMvbk9VUQpGQjZGakUx
TWM4TFlWQU9naFM5KzJuZjFqdmxBUWtMdmNkK1hueXZNT2xJblRGUEkvVzRmbXc4NHJlWHhxUkVL
alZhVVBqRzhrd0thCm9pQ1dGSDdYb1FiTUsvWnU5UXVHMkhOSXk3YmhzNERPRXcwbzIzQmp5eTdC
M0ZMdUlUeHd4L1dqRVJ3ek9qVS92aUhKcVlYeEF3VEEKYkphaUV5YjFvM1VVTXZaNWx5NUliWUs1
blU0NFoyd2F2TGhUT3dCT3pnZUdJS04yNzhBZFBqb2YwSE82SUxYUkNYdms3b1h6QWRNcQpENCtQ
aVFXMkJBTW9Db1BtRUNmT1FJL1k4bGU4T1RJYVo0ZFlNdW0razlaNnZBRm9YWVh2UWxvYlgveDV5
OUdFZE5KbWRFb0NZSFpxCnZnOFp4K0RqWUpZem5iQ3pPS0JnUWM2b1ZIT0NZTzNpTnJYWFNrZTFN
VW9MeHd5VWV4aTh1Q2JMUG1TOG9oTXE4d0VjbXcvZzZHcmMKNnJyWEhtUTA1MmQ0emdWRWp3K0lK
ZDZHb3ZURmlQNTJKUEJGRVVZMUNtS2xjdzdFQlRoRHYweE9hNTF1UU5hR0d6SGdKYW5TWktCQgph
N1dHdlNrQ3dKN1RZM1EyQklBTVNKZFlqb2FHdmFrc01td1BzVHU3V1RJeW85bnRFMTFkZzR5REYz
Y3Z5N1lUTGxxQ3NHRjAzcklFCllYWSswTlZlZWVRT2I4UEhkRTY3M01QTWZHQ1hDMHluNWYwVytv
RWNhSGs4Rm90VitvQXdRQW5TSWdBa1RxeEVVZkVLeFY2VUhibWcKUVdkeGh2MDJ1Uy8rZEJ2K0Vx
M1Y5RjFkWEIwZ1pjRjJCOEFoL2FoNnpoNEJzQm4yNWkxSGgvV2pEakFGZ1BDSXVhSVRDakMzZjNI
MwpWS3B0bHNNcVZSc3RhU2MwNGVOTVY1ZVE4WUw1UUtzVEd2ZmVvVTRBME5nR3NYRnhoeUVqQzlK
aWJieThacm4wOFVkMnVPVnhaeXd5CmxtV2VLakc4cDlLakZDZjVhNnJWSHI2dHNRdzhBUEI2SlMx
N3dSQ3JqZmxPQVJHWGRNSTdHbkJqMTF5U1NwQld1UTJpZVJ6M2grY1oKTlNjTmUwcUpwYW44MURh
SWJiUlV5OWpUajBad2pHVkU1aGNIREFpQ0ZRSHhWQmJ6K2pMTGtYbmR1N2hUV1M1Y0hLRG56Rjdj
cVN5WAp6Z2MycWlqazY0QUw1Z01SUDBVYUQyVFJsWHhNKzVVaFZ1RGxRTXZqL2JGQWxUNGxyTEJ4
V1NVbE1ONlZ0aGhwL1Byc3JpUThHaGNNCnNmYkw5T1cwMXVNTktOdHdZOHN1d2R6Wk5vZ1llNXFQ
NkN3OUFpQ2JtcU5mN3FIcFNqR3o4N0hCZFFZdDdRMmM3V0d2emJYczYwZlkKQWFrMXoxbDZrV2U4
b2hQZXN3U2hkM0VQN1FDWWY2NkJycDZCaklNWGQzZytNTkFKZkdJKzhLSWt5OGFUQlYwSmtPTHcv
U05tYVczNApaSEZZY0tEbDhiNVljdTB2TDltZVk2LzRyV0tyRFlLeEp0ZkwrKy9WUzRaWWVZdXZw
TFVlYndCYVYrRUpwSFVtbTNWcmpXeURXRVZMCkl3UkFTNlZpV2J1M2NhaGdvK2JzRDJuMm5Ba0NJ
R1hzWnJtcUV6YjYwWUF2M21oTVErek9MQlF1TDAzbEhjWVFSZ1VPRG1DYUZxUFQKeUxKNWgrT0xB
M3Fka000ZjcrcHpTeENPck1ZRk9DQXpCVldHME1yWUxCQW5QRmRIV2k0Z2Vsd2VTL2g2QjArVmdp
WTJmbllxc1pmTQpTbGFEdmNMMy9zWUIvNEloOWh6U3NtMzRMS0R6UkFPeU50eUxBUy9CM0VQYklC
WlRjK3dUQVBiODVzQlpXM2dsZzlBUUFYQkl6U21ICnZha3NlOGFtNW5CZXoySXhTcms0UUNIanJI
NjBCYWxkUWRCbUxMSU1JSXhybHlDMHRrR2M5NU9kaHNJSGx5QWt1bkYyUHREZGZKMjMKR1FVL29Y
aUJkUTJmaXhDeUVQUkYvUE9JdEFpS3NYUkVTSU9EaDhlWldNeCtndUgrNSswT2c4WjNKUXdXaDI5
d1hvejBvVGc3eE5vdgowNWNMaUovUWhzZHByUk9wU0dtdHlRMUplc1BlSEFFUWZmSFRCRUE2eDJa
Qm5RWHA4aTZqT0dZakNLSUNIMGRVcW5kMEFuYTcranhJCjNXYXgxUTNHb0hDN3F3SG9Ob2p0YnUv
QXh6WmtuSm9QVElPNUM1SDZkdFpSZERzWDBPcEY5dnJHZDZZZ0ZFWVNTNkVWQzU0akNqeFcKUWxy
cFVlSkl5K05NTFBJZFhKSFFSVGpDTEZQQWNGRFZRb3JZeTVyaWs0NklEeGpqajdkQnYwL2ZLU0Rp
azY1Q0hXbVZ2M2hqQTg2awpFcVJWK3VJM2VLczNOWStqMXl3QlFJWUp3Snd2dnN6U1lrRW1STFFS
eURnTUh5ZXlnRWgzQU93T3o2MHN2YTd1ZC90UVYyOGc0K3pGCkpjSkVKMkFTcVE5QXhsay8yVWlX
R1NnOENoa0JvRlJSdzV0YjFpb09SQUljaGFZU0Vnc2tMSUtCVmdxMkVGOElyVlVpcmZ5cDR1RXgK
R0V2bXNpTEVsWU1icEZVcFJtcWkrUEV2NEF6NzlYSmE2OW9HM05nMUY2UXFmUEVGQVhCUVArb1Bl
eVVTd29BdmZxb0dRVTQ1SERVMgo3YkVnRm1GTWVjanM2L1FPbVBIRjQvMmRrRUhHU2ZnNGxLVnlj
VEhsaSs5QnhrbWszb1dNQ1dJT1hWeXJDRTkwUW0xeFFHU3RDcGhsClhrakxCWXF4aW9aeVJ4SDBo
ZnczQUs4MTRTMzdLSEdrNVRFZW9kQm9VdnJpYlE5QXRoMEVJRjhLNWF6Q01XUGVhaWY0SEp4eFpv
aVYKdDNCYTY5SUdQSUcwem1UTGFhMTlYL3k4WExLakgzVWRLazBDd0k1L2R0aTd3TmcwQVIrUGRz
SW15NjR2dnBiRlNuaHpLbFU5U3dZWgo1K0RqOEJLRTVzVzF5S0NYWmJZVGpzd0hEaTVCT0Q4ZkVE
OFZtTGtMczVnWTJqL3hhNGxFY1dWVVZoODloUWRIZW1veDdmeUJ4NitICk1sZ0lCQ3RRYUg5eUlI
dzM1UGJrdkJpcEdONTc4VGxqL1BFMm5FTmErS1JPZUx3QldSdnVCYUdYWU80aFgvd3NBVkJRRHJ0
UzNkRU4KU2RwK3NoSElPTXJ1SERJMnllc0NCZlpZa09TTG54SUU3Zm5UeHFiakl0cE1Kd3dqOVlF
ZEFNKzcxcmIyUHNXWEI1RDZibGNQekFjWQpyMWZBVk16TUw4UytuWUZaSldBTlFtRjZOTEE4TDlq
OEhQb2g5a2NhRmp3OGlsajBsZG4ySnN3T3pKRWNhWmtqWUY3akxaZWM4RHR4CjcyQzYwd1lYRUQr
aERZL1RXaWRTa2RCYTV5MUhCeGZHdHhtZHcvcFJlOWdibzdqc09UTlpDdVEwdnpoZ3RoTW1zMWdH
NklJbENQVXMKZVNkTWRUV2d2dmdwUVZBdTdsQ1dlTTZaVGtDckU1QTZZV0ErUUFDdi9BcU5KZjdI
L0NKSzBHb1dacEhDTE96Q0xBRzFTR2M1MHZMWQp4QUlpSXdVQ0NHZ0pZc3dTWUtXL0E0VGtDbmZk
cVVIcUwrQU0vVmE1Z0hpNkFWa2JidXlhUzFKWkFaR0lCalFqSytGaFJqL2FuSlBoCkV1ejY0bXY2
MGREWWYzNXZ2cG9naUNMajZiMzVsTkZwZkM1N2FhWWg0eGpGTldkc1lzVUU1YVY1WHljOE5COFlF
Z1RIa1BvcmZGcUQKcS80eHYxNlVvSlZCVnk5NVVMTkI4d3F6b0NSV1dsV0FLQnFHTDNXOFd5SnJG
ZitHb0RBTEJQMlZJeTJQRUxiUUtFbXhxM2lmQVhHVApRVVZhSUdQVkFpQklMRjlFZUNUK0FzNncz
eXFudFU2MzRZdHBMZXJSV2kwZnpCUUJZTStwWlFuLzMvYkZIOGt5cXgrTlFNWVdwdG5qCldxcVFN
UW1DZ29UUThNVWZCM096ZnJLUkxMTVhkMlFKUXFvZWdzSVhYNE9QazVEeHl2bEF1bDVGeG9GT1lF
YkNXQzhLVFVwbEhTSzYKNGdDdFZnaDlsY01mcVlhbG9FcWVBTkVEZ0h3MVBSUm1rVXlvTEpzVngw
MDRvZVVCQUlzOGtiSk5CdFc5TGtmQ3RGeGdROFJlc2s4aApBTHF5eXVqbjRJd3pRNnk4aGROYWx6
Ymd4cTY1SkpXbHRVeTVoenJsTUtGU1lUdU01U3lJREdsVlgveVU1V2hLcFlybkRFSEdKcWFaCkEz
TVpaS3hudkd3SHdKSFBOUWNaKzkwKzBOVVZ0RlFEb05ZWFgva0lWM2ZDNUh4ZzdPS1dXVjVFa2I1
QzBBcGpQNzhRK0tSb2ZsK0YKSWlVa2pLaWRiL0dXcmM2UWVkNExpVEFCS0NaUURyTTR2aUVoKzlI
akoyT1JFZ3p4OWttRWxod00ydzdxN1NXbFIrWG1TOHNQcjQvUApHZU9QdCtFYzBzSW5kY0xqRFNq
YmNHUExMc0hjVXU1QlpzdzZ1TTRTQUpNc2lEMS9ja01TQ0NOeXNsRFdOa3MxNDFpV1drZk5TWFZC
ClJSM3FhZ3RleHdUQk9jdFJGME5QNHBncHBHNTk4UU5RdUhhYjliWFhVY2k0RHgvclhjMVJIQlQ2
S241UEU0YVRiNnRCVi9HMXlvVkEKRkFSTmE4UHdSNGltdmh4ZEVZY3ZVZWpBTkc4aEtaM0Zwb1lX
aFlZNGxmVzdzUUFCYTV1ZGNBRGsycDhjRXFURkNQTWhqay9yNytBUwpybXJENHdMaThUYWNpOGNi
Z05aVitDNmt0ZkhGbnpZMlRhdFVPNVVPU2taa1orQ3M0SmdkeUhoYXBhcUF1UXNYQjJoSFhWZ29h
eG9LCjE3TnN1OXAyMUR4UzN5MzMwTXBZenpJdHVUTUlBQUFnQUVsRVFWUUtHYTlBNnNDTDRvdGdk
VmMyQzBwUVVhU1FRL3Rmci9qMVhRWGcKQ2lBckVWQ2xaSU1VdzB0Z0N4eHdXT3pHaExHd3BiSWNZ
LzFtTE1VT2d5aVFGdkVHZXlHVWZaY0lYOEQ3QnR3YkI5T2RCaHh2ZzM3YgpuTlk2M1lDc0RUZGl3
RXRTS2RLcTBGcGRoREZGQU1nNTdjSFNWRG9JUDNSNWx6a3d0OE9DcE1IMVRKYnpLcFV3T3Ftcjgy
NmY2K29XClpKeTl1SFh0dGNVNG5sK0NzQ24zY0dHaHJOVE9TVDlaVzN0RklMR2dvQ3I4bDNrTlNP
c2xHeUV3OEhyUnFqeVcvTE5VVnJSYnBjdWsKYkVMRVZSUUpZQ2Fpc01sMC9LODlJaGhyQzlvOGZq
QVd2WWMyU0N2U1d2R3JFV3hhR2ZaQ1h2Yjk3cmh4TU4xdncrTzAxdU05OEFsdAorRXUwVm1zUXVu
cGhmTXFDdUFOZ2xYSTRtY1c4YmlDTWVjc1JGKy9RZ285VFdTcWRNQ1NpalVER3dZczdsVVZBOWlW
UVdEc0JZaHlaClJPb0RrUEVFU00wNzRVVVVUTzdodi9vMUpQTUNBcGhlTDJMQlR4WlV5WHBiK1Jk
Um0wQzJFRWtvRk5Fd0hyUnlZUVZqV2EzUVNhemYKakNYVXRUSitkWEZaSWVIMzZMTFN1MjlUOXAz
WFZiNFh6OFRuNEl3ekhoMTVpNjhVRVBHeFYrSEdycmtrbFNDdGNodkVOS0MyQms0MApDS29KelFo
a2ZQRlQyeURHYzFwSVNETWU4MTNWaExaUkZtUVVNaWE4UWtaQVBKS2xncGFZYUF3K2puZjE5TVhO
em1sb3IvVk9tRUxxCk81MXcwWHlBWlhsZ0hKWldmaEVLbFJCUTZsSGtUckk4Rm1jTVZneHpoTE9m
UWtja0VvczVZaXo1MGZ4WE1aWUloUjQvR1Zwb2xNUjAKbGNZRkZaM05FUllzSm1za0FzdWw2MVQx
ekhjM3ZCR1A0NHdMR21DL2tFNXJYZHVBRzd2bUVzeWRiWU9JdllGelJHZHBzeUIyMk5OMwpRTC9j
dzFXV28zSE5xSytGN1JOVUxjall4alFVbXRCaGRIYXp5T3NMRmdla1RoaTd1Rk5aZGk3dXhEYUk5
cHdJYlVlUitpQmtmQW1DCnNUQXJJclA0bWdFaXhvc1FRTldMS0l4d1lzWktZQ3Npcll5ZzBtOHZS
MDdMc0ZZVmpMVkZXdkc5UFg0M0ZoRHh1cVp4UE43VjJjcEEKVHJOcU9XTEt2Z2VMUElqc1NQTDRF
R3ZiOE1VTlVMRGx0TmExRFhnQ2FaM0pscjZBWTlzZ1Z0RlNEY2MwaHZQTndObmRCckZRY3hKaApV
T05keXNGMVNqT1MxMjEyNThKTzJJaG9BNzU0aFl6NnpvZGRhNTBzdGM4MTBOVUtHV3RkM2V2MmRM
R0U0TVJ1Rm5zblRHSG8wYnVhCkdCeVFVdGduUjc5ckZaaUZBTE9pUkxpVkMxVXJmQVVJaWdKc0RX
QXNWUlpKTWdzRWxONzArTGxZV01SaGtoMEdwZGdWRWNCclZzV2QKb3VrOS9iMmNUdm9mL1lYR2h3
NnhUelRnZUJ2T0lTMThVaWM4M29Dc0RmZUMwRXN3OTlBMmlHZ09sbVp3YldLYWhuNVUzd1pSaHIw
aApGdVMwNVNoU0RkT1dvMmFXWnNiTk8yeTRsbUp4UUlLTUUxTGRQbVFFaGk3dU1kL1ZYaWZrRjdl
OU9LQ1NaZmJpemtGaERxc0lJNG1WCkRVR2hHUytpbFRuV3diSXdDN0UrRmd1dVNxREtJaTJpSFl6
RkRBV2Q0WGNFSjdFOGJFU0pVQ3hWSktZclFWcGhWaEJOVndLdEFoNWIKVXlIU3lpMVVHMGsrZElo
OXFBMHVJSDVDR3g2bnRVNmtHdkRGajdFZ0dYS2FzUndoV3NJMVM1OTM2ZWhIUFJiRUlveUxMVWYx
alBLSApSWmIzZFFKMnUzcjI0bDVYam90Tjc3VzdHb0J1ZzFoQmdmdndjZVNDNWhtamVCNWhWbWlB
bFF2MVJmQmFyUkZkUVVSRGZoR3hvT1JpCk9TRW9ZYS8wNlN6R2dtakhRbVdGYzBpRXdwaFoydWJ4
bTdHRVozUzZhK1NKTGJlYnNiUEh1WmtncmZnMW9KMHlvN1hoOUhPSDJDY2EKY0x3TjVpbzkwNERU
OFRsWG9ZNjB5bCs4c1FGblVnblNLbjN4YWJCRW5RV3h3OTZrVkxlMUhBR1k4OFduTEUwd1oxOFRy
ckVjRGNQSApTYlFVQkVRZTE4SnNsbDVYOTd0OUJzZllPMkh1NHM1MUFpYVIrdXg4SU9LYVFEN0p0
eWg4SE9FSlNPaWxRaXVNbk5aTDFuQ0VibHRYCjFpcFo4UnRGOHBWay9meEFNSEdSL0k3aU8raDZl
NVowYm0vM1FLUFFLTWNqMENNQWJFR0dlTi9rcFVjSG9qYWFmYzRRK3dsdGNGcnIKcVRZMEczQmox
MXlRcXZERjYyQTVZZ1lhWTBIc09hZ2hvUkZmL0pRZzJNZzRQSVMzV1pBV3d0amxXbkljbytEVnZN
T1VMeDd2NzRRTQpNazdDeDZFc1VMSXR0WFBRRjc4UEdTdmQvckxmbVVJb3pBY3FveFVxdWxMV1Nx
c3AwTHJpOVRKZkpZNmdURi9IcjVVK2JBVlhRVXhwClVwNDAvQlFhSGlndmp4K05SV0ZVQk95cjJ0
Y04wa3BIa0Z4WUNYdGhla1RvSXEzNXQ3c3NQZ2RubkJsaTVTMmMxcnEwQVRkMnpTV3AKY2xwcjN4
Yy9Tak9rYzNMMWJZTWVxcjc0WWMyb0hHZ1BHWnNLTUhkQmRZRFd5cnNXZXRqMXhYZXpYQVNGTThn
NEJ4L0h1cnJvOXZ3ZApCbnp4czUwZ01FYUZRbzZXcWZUMVlUQ0Y5WU1BajJFc2JIa3N3ekRJVzZj
WExNOWFGUW9obmVyMGxRY2dIcXlJdFpPcEtrcmFVSFVRCmdyMGFSZDZQUm1NaytkQWg5b2tHSEcv
RE9hU0ZUK3FFeHh0UXR1SEdsbDJDdWZ1KytFUEdwbW45Q09xTEgyQkJ6a2gxRGJSMFhxV3EKRmFI
bzhTNFZIQVBqaTI4TGdqdGsyNVN4aWZEdUpRalRJTFhpaXkrellJOXNZdzRqRUlGTE5pc0NLUjJt
QWhvS0RSdmdzZmhGaVhVUwppWkRUendyc0V0aFNxUkcyUHFUQ0xNZGJQeHRMTEg4VmZ3dzNZYVlX
QXZIMlE3d1JFYzh4TjlJMXcweHRKTGtBWjV5THh4dUFlc2RNCi9iMmRrN21BZUxZTlg0eTBXcjc0
RVJZa08yZnpEc01xVlp2UjZlcEhBMXhMRnpLT3dzZVpMQUV6M3RJSmg1WWdXQWJvMUJLRVhwYmoK
U0IwUmptd2g0ejU4cEJMaW1HOEZSUll0b0tFSXRsQmxzektNWllhNzlMWXNGSmwrQTBuK3ozd3RE
YlNpZElwdGo4ZHZ4cEx1QldHawp3ZytJSUNvYmtGUFpkN2xwaXFvTjEwUmpPUDJjWWY3eEJoeHZn
NEl0RnhCUE55QnJ3NDFkYzBtcUpDQ2lUbXUxaHpvZ2pxeDlpcXNjClhMdU1UaThqRG9DNUlSWWtR
eGlUV2RMcjYzWUEzR1MwblhCd0NjSVl4VFVFVXF0azI3bE93RUFuMUlCZEpKbFlXYXN3ZHhDVmtG
Z28KcDNHTXBlc0t6YUpDS3hFbU9zRjg4VWpnbUJsSDQrK2R0ZklJRXFGMXVNY3YwNXFRVmtEa29Y
QkRQQlN3bU54K2FWWEZPNkkybkg3bwpFUHRRRzV6VytvUTIvRUZhcSt1RE9WVGxxTW1DdEh6eEoy
b3BEUXVDRTVDeFJCdlRVbDBQTFlWbXhxZHcvTU16dnF2eFR0aWNNeVVJCjdsM2N1WEpjS0h6eERh
UWVOd1drRFlNbEwwSkZCbFg0TE1aaVpINHNZYTBvZkFrSVpHZ0ZaZ0Z0UklyWlpHaFV0eGJKLzRW
T04wdkQKUEg0OGxraHJtbjF2MHJhRFVwSEJianNJVy9ZZDRYdHd5L0JXRzA0L2Q0ajlyZ1k0cmZX
bUJ0ellOWmVrU3JSV1Z1N2hoRXFGaERCNgpMRWpIRjI5ZWpPQ1lPVC9aQkpnN0xLS05aTm4zeGMr
akpTWjBQOWNSeU5qdjltNVhWODVCdWw0RkFMVysrRm9uNk5RKzd2TWNxQ3l0CkhpUVlLMkFweFZp
TWtzRmlZRjFMRWt1L1FmU0tvSXBpWFFqNXJyMUN3K1dMSjdTWlFESElMengrUGFUUWFMaEpDcVFs
akZhR3RPVDIKQ1J2c21BV0kwTGQ2ZTlSR3M4OFpZcDlxd3dVTk9JZTA4RWxYNGZFR2xHMjRzV1dY
WUc0cDk3QVJFS2RVcXJvQnFNZTcyUE9udGtFVQpWSEZjcFJvUkJDZmM5NjJPQXFvWXBRVWZKOG85
NUdUYmZwWTV5SGlvRTlxWFl3cXBzNEdNeEFKckNBZ2luLzZZWXl3UXZ4TEdRczVnCmdjT3l3VVJp
eGYvcVh5Y2lDMktaSjRWV0xKK24vdjA1OEozeitIdXhNTU1hcitSTzFIdE03ZXdFTGRwZ2tCWkZE
amJGclNOY0YybmQKMUlaYWZNNHdmeFpwNFZ0cHJjY2JnTlpWK0M2a1pRUkVyT3ZzTm9qcEhHdUxu
dFNQbXBidzJzcTdJNWFqSGNnNDZpY3JzL1RBM0t5ZgpiR1FieE9RNUs5OWhHTWRNbGVPcVhkeWE5
dHAwZDgwZzlkQUprZFpDUWxGMWpCVUhyUEFoWHdDREdGZ1I2b0J5Z2xsSXBpdXJHQklRCkZoYUdi
MDhRQ2tNRFl2S0V0T0xYak9UL3l1K2V4dy9IZ2dDVFlnbUdwTDFGajVWNU1PZDBsUkJkN2JlK2RZ
UnJKUHQ2b0hOZEE0NjMKd1dtdDZ4cVF0ZUhHYjhnMXFXYTJRYlNEYTBzUUhOQ1Bhc096cVhTd1lV
U21STFNuTEVlelZxb2FFcktkc08zMnVhNXVRVWFEWEljdQpibDE3YlM5Qk9OZ0pCUDVuUFZpS3Nm
UmVUOVArN0t1dkh2WncwZ3RnNDIyUGM0bDRnNmR2Q2lXS1M1a0lZZFFVendKU2RMU2t0U0lvClpJ
ZGN2eGhMdHU4TkNMTHRZUGdKUU9DckZNeURvRVhlRFJXN0U3ZU9jTFZrSHpyRVB0U0d4Mm10eDN2
Z0U5cndOMml0R2N2UnJIN1UKNVZyaURvQTVhM0pORmdDS01ONWhPZXF4TzZOWldwMHc1Q2NiZ1l5
ekYzY0tMYzFEWWZNT0w2SVhseGdyNlliMlJpL1lMQU96T1BteApvQ1FXY3pSamNScmJsTDdTTnhQ
UjloWDFteHhRb2FBZGl0OTYvRlFzK3J5Tkd6d2ozSmRFS0pFV1dJdTRJeHc4VUtQaDFoR3VsdXh6
Cmg5anZhc0E1V3N1dlFyTUJOM2JOSmFrRWFiVzJRUlM4MHExQlVOT1BSbkJNNEJMaStWUGJJTVp6
T29MZ3RJaTJRNFB0VWx4MW9XMC8KQzhnSWlFZXliTkhTT0h3YzcrcnBpNXVkWTdPRWRlc0Z4aUpC
V3ZwZkVpQmwvaW0wWW9CZTVpQUNsVUJ5UzhzWFJGNUhoaUZnV21tYQp2b0JjN05vdzQvSERFUXVO
Q3JBQ0F0TEs3NVFrSDhaYmlLSUhQaDA1RXJlT2NMVmtuelBFUHRXR0N4cmd0TmI3R25CajExeUN1
VGZiCklIWUh6am1wYm9zd0t2b1JHdVVlaHRGU24zYzVabXlxZmE0eGhESGdJZHRnR2dJbWZmRlZK
RFFDSDZjNndmckpUaTVCZU1rbmVURlcKUlZTcmdpd0FvSmNVYzFmWGxybTdBMW5Gd2wwQkNIS2hT
SUZSWTlRZmlZaUZ4RW9NVnJEZVU0bTNxdDhoNTdGK014WkIrd0JrSTBMbwpiYktxRUtCSUt4cmM0
NS9UTklWVmk4OUJXamUxb1JhZmd6T2MxdnE0Qmp5QnRNNWtTOCtOc1cwUVpYRGQ1VnBHVmFycU5v
Z1dZZFM0CmxpcnZZakRObkNESUJlK1NaVHdGNW5xWVptb2J4SFE1dGtqb3VHdHREd3FmWDRJQUdi
SkkzRmVoblFLMkNHSVcxTHM0a0oyR3hFbzgKRmdYdUtybmRXVW95aEMwT3hTQVRTYXdvOHhBSmxV
VmFDRktsdytMYm82MzIrTFZZQUVCY1Z2cHdWYVFGeUcxZUZIbVh2N2kyeXVpdApRMndqMlljT3NV
ODA0SGdiemlFdGZGSW5QTjZBckEzM2d0QkxNUGU0TDM1RUVKeFFxU3dMb3RzZ0FqbGlzRHJtNVpZ
alBpdlZqWmZqCnNwL0xkb0xwYXBTK2VJaExYYnQzSHo1T2VjanFGM2VnRS9wZ0xwYS9FZ21GR0t1
OGlIUUJwVnMyT0tVNE9xNnllem1hc1lUS1V0WXEKbzdJaUoxdVFXSkd2c2lvaENYN1VXLys1aDRm
SHA4U1M3M3NEcWNvR0lNQ29vdEFvODJyV1VzRGVUeGZIclNOY0xkbUhEckVQdGNFRgp4RTlvdytP
MDFvbFVQVi84RkF0eVZLVVNTM2pLMHMvWXpqS0VNSVlvcmpuSTJNaTRxNzNXRmdkTWQ4SU1aTXlN
ZCtjS1pXMnpDSlpDCkJGSUV2SWhYV1laRkVkT3pVRmtaa3lUMDFkYWVGV3BpcFI4RmJDVVN5NkFy
WVVuSjBGZnl0Q3MyeVhINjZwZGpzWXlVT1U1cE4rZUkKdmVwRjNtK0lXMGU0V3JMUEhXS2ZhTUR4
TnB5anRmd3FOQnR3WTlkY2trcVFWdTZMVjQ5T213WEplWmNkcnFWMWpncUN3TEF2dnNqUwpSQmhR
aEhGK2I3NU5scDFDV1lleWhNODBCVkozdTdyVzdUMkthd0F5cGl4TU92c25LbUJXZkVGYVVUMEpo
UlFWd00zTkc5a0VBaXU2ClltWUtBeDNMdlJyZ2xBcUZKRlozK2ErT2l0bU0wa2tzandWVyt5TVlR
M3M4cUFTV2FObnlGM3BQM1JpM2puQzFaSjh6eEg1Q0c1elcKZXFvTnpRYmMyRFVYcE5yNjRoc3NT
SC9kL2lEQ1FJYUVKbnp4RTRKZ3luaFVDOHZBbktLS0hxWVprK3Eya05HOHc0QXZ2cXE5N25YQwpy
cDlzQkRMcU95TnZWZmcvd3JxQzBrYk9JU2U5SW84bDBFb0d1Y3JTd3Z4ZlJURmtFdjZWb2tQTE1s
aVpWcWdqcEJOWEhnQ1crRTAwCis5N0lkMUMyeTRsQnNyVnorbU5UVi9mdVllWVpwR1h5UFQ3RTR1
Wk9lRk1Ebk5aNlV3TnU3SnBMVXVXMDFyNHZmcGRycVF6aGhnWFoKY2kxVlgveXc1YWpFTkJPQ29F
RU1oTGw2cEVjNklZSzVPc1hWOWNWZnRnU2hpYzhxa0xIczloY0l6SkF0QXdtUkdRaFhjRFdOUklK
Wgo4ZW9yMGdyTlo0aFdxS0RLdmxBU1N5VlZVaDJ3aXF1QU1DWTZzdktRMEVLajRhNEJySjg5WXE5
Y0RTU1VwVWZqNFJoUElhMmJVdGMrCjU0Y09zVTgwNEhnYnppRXRmRkluUE42QXNnMDN0dXdTek4z
M3hSOHlOczJMYU9xTDN4Zk9adjFrSTJqcHdrSlppaFNOeGpjbzFSbGYKL01WTEVCcGsyMjRuTUlz
NEdFcGRrOEdtaFArQVZnYTlvaG9ZMytRVjlVR2xyK0p2RTh3cTBCV3pacEFUeE5jZVRtTUtLbUc4
VHpNegpWaUN4RHQvK0huOHBGcjBiWW4xMlFCNlNEQ255SHYvSENNVkk5WlRxVVBqZ01ITnI2aTdT
dXFrTm0zaThBVGgvRmV3RThEdHByY2NiCmdOWlYrQzZrMWZMRlQ2T2x6VHNNVzQ3YWpJNVZyemJT
WGdNOU5IRk1EUTZPd01lWkxLWkQzdGNKQlVpZHliS0JqUFdMKzlLTTRVTWwKYmpLdTEzb1JyMUVs
eE1wTWxMVENWZXRYb2NwbWJVZ3NFbzlXa0ZBTmlJcXYxSWJWMFFUbExUeCtNQllRZU0xc1ZycVVV
SkZXVWdzcApMbUJsWG5jZm5BOE9NN2VtYmlSN0VHaCtXZ09PdDhGcHJlc2FrTFhoeG0vSUphbVNn
SWc2cmRWR0dNREJFbFlkUnFlVzhVckwwY2xDCldkc3M2ZlhwdmJwbEc3N3Vzc3FwcnE1QnhnN0ZG
UzlEYURVaFFDU0IwY25oSGs5UlVDVU1GbTloRm1uZDBScUp4WkdzQ3EySXh3bEcKT29SQXZDdHJG
bm44aFZoWXBENUNoclRDalN2aVlDUnZOeXdYQnArWkR3NHp0NmF1SmZ2UUlmYWhOanhPYXozZUE1
L1FoajlJYTNWWAozbDFSSFVDem9PV0xueStVcFdocHJ4d1hOdkJ4QWpMTytzbEcwQkpnZmZGYllQ
ZU9Ub2hDQzBEQUM0TERXTnBKb05DR1lNYUtUVVZFClZ3V0R4UkZYV1l4VmtsaXNCVWlqTEFqcG1F
Ull4Ui9UVDFGS1JNWnBPWW4xcTdHRTcwbGNPaGh1QXJGWTVXcWdLVDJLZUFNZGVFbysKT013OGc3
Uk12czhkWXIrckFlZG9MYjhLelFiYzJEV1hwRXEwVnJZTm9sV3ZaamdrUlJnOXJpVkRHNmUyUVV3
dkJ0aWRhVENYZFVJNgpmMXlxNjJYWjk4VlBaZG54a3hVVVYraFBCVlVjRWFoMEdvTElFa1E3OFdN
eEVhM2drRW9vSzQ1SGxMZ3FTYXp3STdPZUU2Nktmc1JRCkh5dFNhVG5NMHZzOGRzM1JXOXpqeTJQ
Ui9aMFQwZ29NT1JMU2drVmFLME1xTnpDdlo1RDVVOFBNM1VOczdYTit6aEQ3VkJzdWFNQTUKcElW
UHVncVBONkJzdzQwdHV3UnpTN21ISkNET3FWUm03SitxUWFEbnQyaXRGc0tZRWdUdE9RT1FzWjl4
azJYTzNiVURINmUyUWJRUQpzNWt4N3dRSWowVHlBRWg0S3lKZFNpYjNLQlFtTXhiSldrS0s1VVBS
SXJId3l0RVN5UThCeE9sQVdhQXJVQ1FZN3kxZzVQR1pzY2lYCmdvdlJQMkl0Z3BpdUJHd2w3SFVa
Ny9uZ01ITnI2aTdTdXFrTnRmaWNZZjV4QWZGNEc4N0Y0dzFBNnlvOGdiUk9aRXNDSXVhMlFXd1oK
bTFScTdHR2FIVWFuaFREMFlKdmlzdWRNQ1lMMi9QMHNWVEIzYlNlMHliWmF0N2ZobzNSTHdGVkFw
TEpJSUZERVc1R2pFbFNXVk1JQQpVUU9RaW9Cc1MyTGh0WFZsQlpVdzhJbjZ5QW5kelBJNTRHVWFQ
R3dzYWw4SEFqQmZvZUtnZ0NtTHRDSWNBL1RJaGZIZ01ITnI2a2F5CnJ3YzYxelhnZUJ1YzFycXVB
VmtiN3YxeVh0QUpNOXNnUmpqU0ZRU3JtR2FYMFFIU05vaUNOc0tubXk5aDFhYTF6RHVmbE9xMmFH
bmMKU3RYVVhsRnVnOGpteFFqRkplZXNUSzhFc01DRzBLS0l0RmE5M05GclJaSEJBcTFJUEpaQXE0
MzFTcFhCOUpvWTRrbzJ0eVpIR2tJLwoxVFpZaGtuSFhEOGFpK0dvZEhPYzhHTmVlaFFpR0daUDNE
YythQjhjWm01TlhVdjJvVVBzUTIxNG5OWjZ2QWMrb1EyUDAxb25VbzM2CjRzY0Z3VmxqRStJT2dO
T0M0RDVhTW54WUJUN09TWFZieURqckordHFyNllUZG54WDdVNzRsMmt0Q3JaQ2FTcGtRcUY5blZU
Q1hBb0UKRW9rVmo3RGVNTUptNlIwWWgwaldCWU9VM2FUVlZZUzBQZVR4TTdFRUFrdnZXY3FSVnZq
YXFJSW8zOHI3TmlMRWI5TmFuenZFZmxjRAp6dEZhZmhXYURiaXhheTVKSlVpcjhNVnY4VllPQWpv
RTFVUU5na2ovQnhwa3loZmZFd1M3Sys4T2dya0JRZkJvbGt4QW5NcENVbGpVCi9HTnp4THdPMitN
QXhQeWZFbU9CZ1hVVjg3dENxN3JEUGRjS1liVEEvSzRNakZmNVM0K2ZqOFUrTnpsL2NtM0tYNVZG
M2tsT3Z4OXMKT2ExMWZ6eU9NeTVvZ05OYTcydkFkOUZhMjIwUWN5U1VNTTIraURhQ01DcE9yd2xm
ZkQxTEwyUDVEcU00eHBZUG5ZR1BEVm9yaDR6cApkZktIemZqaVg0bXlBaUd0SmN3eFZySnFyUXdD
dndMZWlnNzNEWW1WdTZ6c2o0S3VPSG5lQVVES040VGxYc3BtNWVncWtJR0hiMCtQCnZ4RUxpTUpt
T0hwSWJ6dDdRNGxVbUpCV052YWZJZ2lPaENPdCs5cFFpOC9CR1U1cmZWd0Rua0JhWjdMbHROYTRM
MzZtQmtGRmdvVFcKSUtodWc1aWhrQXF0dFlkcHhnVEJQRXNORlEzQXg2bE9hUG5KZG4zeDRjK0lE
Y0NpQm8rbHdJdkFDRzUzb2JWeUVxdUdzZUovSVU0cwo2V25odFBTNWtRT3FvM2VmeDE4T0xUUks0
dG16NmxTNXZMQ3luVTRlRHlLdFNtditVdXBHc2c4ZFlwOW93UEUybkw1clA2Y1RIbTlBCjFvWjd2
NXdYMFZyaExZUUxhZU9ZQVVFUUZVeURITWYwdDBFRUdvU1RmVjNITlBOVlQwZjlaQmVVNHdxZnE2
K0tscjU0ZWF0Z2NyY3cKQzNnRklKVjBtQ0FMSmtLTFVTT3hHR3Y4cmRCWDRSTkh5WS9NandockJ3
UHFRb20wcXBCTGIwYkhYcjhib2REb2FwWVNVdlR5SlRVUQpBR0hObGc0U1pYYjNiWkM1cVp6V3Vp
SFo0NFRLNHczQSthdHcrcTc5VUtEelVCc2VwN1ZPcE9yNTRxY0V3UXc1VFJtYk9CcXVXeGhsClB3
dGFVdDBXTWc1UlhQVnptbGtheUdsUGU2MzU0a2tFUC9vWE1CWUp1bUs4WXZHRm5NY3lrQ3Y4ZGdV
UndNYUpwWlJWdGx0T2tBQ0QKT0FpckQ4b3RFWjRTU25TMThWTlVDUjFpL1hBc2V2MEp5SkJXRU1y
Vno2NlQvQlZTRTZ1MlpLSVdUbXZkbk94emh2bkhHM0M4RGVmdQoyczhGT284MzRNYXV1U1NWRlJD
SmFMTjJiNHN3S21oalNxcXo1NmdnaUhGZnZMN0RoTzlxVUJVZGg0eXpmcktSTEFpRnJmK1p6NjRI
CnlYUkNnbG1BQ0lYeG4xVUdTMXkxMFFwaGZlNXlQeW51amJlSDNVeHVld2RTSkx1TzNuMGUzeDBM
RUc0anV4TU9BQ25SUUJCMVBpR3QKOEpVK2NOTTRyWFZ6c3M4WllqK2hEVTVyUGRXR1pnTnU3Sm9M
VW9rek92aDZHc0xaZWFsdWEyeEtyMGQ4OGNPQ0lFekcrVUpaZTVYWgpXL0N4UzZSMUlDUFVtMExB
YXN4WW9YWm8vRGp5aHk4aXcyQkZyVEE2c1JoYzFHdklNQlp6cEJmVWQ4V010Snd3dmtmT0wzUjRL
aHFqCklUeitaQ3dCU1JGazNwRnNWdUcyTU1XdzVBWmlYZy9ocXl4K2s5YTZGV21aZkk4UHNiaTVF
OTdVQUtlMTN0U0FiNmExOG0wUUR4YksKeWpCWlVZaWhSbkZWZmZGVGdxREZOQk9Db00xQ2hTcmE3
UVRNZFVJT0dRVWFJdmJueWpIdkt4RjdJT0QxZWxsWlVCZ3N0V2NKNUZxWgp5SUNxaUt0aXlRWUVB
QlU5V0hva0ZzUlNhTVg1L1ZTWGRKeTkrdTFZOUZYaXJNSnR2bkxDWGtEeXV4dnNkVWtMN2tkYWVH
Nll1WHVJCi9XeGE2L0VHSEcvRDZidjJjenJoOFFhVWJmZzJXbXU3RFdMZGNxVG5ET0tZR1JGdFpo
dkVDd3RsRFFpQ3g3SmtZTTZvZm93WFk0MTEKMklYS2lzUlZNR01KeUpPaVdhK0VvZ2pLWnFrT2lD
ck00Z2lnWXlFaVVsZFc2RDdkZWRCWTNTTTlFWDhjOXM5NC9PMVlPTXpDN0RIVworNGJsUnlNZzBy
dXFqTHFBZUhPeXh3bVZ4eHVBODFmaE9nSHhlQnZPeGVNTlFPc3FmQmZTMnZqaWp4cWJVRVZDSThh
bWdSMEF6MGwxCmRjZzRCaC9uc2xRNjRVVkVoQlVBOHhvK0dpZDk4SVc0enlCRmZkQVlyU0RzVjRh
MzFKWEZSSWE3RXRnVTZJVlE3RXJRRlhRUDNxZ0oKa29LcUxlbmc1SlVIRmdEeWpRamFZTHBGMHMr
Q3RkVFJCM292Q1BwTkFmR08xSTFrbjhOblBONkE0MjF3V3V1NkJtUnR1UEViY2trcQpSVm90V3F1
Rk1LWW9MbnRPSFFrQmRWODhIZlZkTlNxelgxMzFORjZJSW1Nb2xoNUtMZWhhUWdWVkszSEpZekVW
WUNzbXlRR1djRmZ5CmdwZ0RJNGdvQzdKUVUrYUdETjJwV21FRFMya0pKSTlmalFXQVphUUMyeHh2
S1lsVVZWUlpyYnVBajlOYU55ZjcwQ0gyb1RZOFRtczkKM2dPZjBJYS9SR3Z0bE9LY2xlcFF2RU50
aFdEREYzL0lmYjlYam1zRDV1WWhZOU5QOWdMV0NLMmcwQ3JnS3FuVWtGNG9XWlU1dE9oVgowbGUy
WkVNRVJGcWdBWkFsZ0dKdjF4K1pFbXRWdldYa1p4Y0tmenVXd0lzQ2tJV0M4cHQ0ay9NV2FZV2Y3
eDhEZnBQV3VoVnBtWHlmCk84UitWd1BPM2JWK0Zab04rRlphcTl3R1VYQk0xQVYyMkowdERkYVQ1
ekpNbzc3NHFXMFFOMmlwS3dodTRlTWNaT3gyQWtWdmV4QkMKaVVJSng4Ump2VjZVN1kwandpSURV
bWlVWTJzSlJCUXE2U2U4SmEraFZiZERUOGdkWUZ4Wk1LNnMybDBTRGppNit2bFlCRVZoaTdTawow
Q2dCS0xiVENZUnRmQzBIL3pEU3duUER6TjFEck5OYWIyckFINksxSG05QTJZYnZvcldLYlJDUlk1
UytJRGpoSCs5aG1wRnlEN1VzCnMzNnlBY2dZanh1N1ZTTUxwRHBEK08rTG1WKzBta0tqUVQxVU0x
YmFndEJhcndRazVmK1MzU3BBTWZGZ1JaRXZPYkhDcFdlOFh2YU8KS0tzMndOR1ZCNEJRcGtHVlA3
bFRBQ0tSQXRkNGx4SGljMkJ0bXR3ZlJGcHdBZkdXWkk4REhYelNNUCt6dE5iakRVRHJLanlCdE01
awpVd0VSYzlzZzdocWJScTFVbVM5K3g2VytUM0haYzZZRVFYdCtLd3NoNm9NQlNLMGNGdzhHbVMv
Z3FwZndjL2FGY2xjdktjUXc4Qzl5ClU4cGpJWEFLb1NIRUFJa3hxM3Z4T2I5UlBINHNGaVUvYmNF
cnhHTUphUW12RmU1NnFpTXNpVWVldjc4cElONlJ1cEhzTHdDZGl4cHcKdkEybjc5clA2WVRIRzVD
MTRkNHY1MFcwVm5pTFlWOThSUkNNU3dWYm1HWi9oYURaQmpFSGMvTWxyTVlFUVFzZmQ3S0lxMzBO
NGlEUgppN0VLUkl3SGpSUHJSY1RnbGFOaXlJeFYxRU9vMVowVG9wSXFXZVlGVWVqTm9CZ2kxc2NL
VjRsM09Dcld5K2J4dXhFS2pScDVjQzJSClZrRG9xVXdER3Z4Vkk1elcrbE9wdTdUV1p3MnhEN1hC
QmNSUGFNUGp0TmFKVktPKytIRkJNTU14STRKZ3ZnUGd1Q0RZUTB1YlFneVQKZnJLNEMrRXFxdC9L
V0FFQWE2U3ZPT0txbDc1V0tpdXRKVXl2OHlKWUVDd1YvZ244VXNVUWtHcFljcDBaaWVpaThvNkxY
MmZucjM0OQpRcUZSNFVLajRnemFJaTNkTWNCSWlsUGh0TmFmU2wxTDlybEQ3SGMxNE1zRlJIenNW
Yml4YXk1SkpVaXI5TVhYQlVFTUVGUVRWVStoClNBamoyeUIyc21SZ3pyNDJ3SzRQNW9TK1VvbHdK
UTdLNEFvbVlBVmVoSVMwWkJYaGkyaGQrZlZTak1XRlZvZ0l1WlM3MHVzbkkyT1EKQXVNSEFvUHRD
YTJyNXpZc2p5V25xMHFrQllTNnRscG9sQVBTT3BuVmFhMC9sZHBwclRjMXdHbXQ5elhndTJpdHdo
ZWZJNkg0ZXJxRQpWWWVVcWhSbE9MME5ZaStqdmtOSGRsd1JCY0ZRbWlHK0JnQmVpVjdBaWlBWDhs
cFRDYXRhWWFTeUVwc1ZpajlxclN5V2d2Q2hnVWJyCmtWcFppT3FodVZqS1d6bUI5Zk94NkMzQVdN
UGRKaHlXcWR1Z2pKWFpBdnFTOUk4TUFBL1NXcitNdEc1cVF5MCtCMmM0cmZWeERYZ0MKYVozSmx0
TmErNzc0WFVHd1VvNXJLMEhXeWowRTcwaE9nN1ZvclpvZ2FGODBpYlI0emd1MFdnWkxKRUloc1hn
RktZcGFHVG1vNGpwMwp0ZDBxUndpcUhHTWhsaDRsdVlaRVVoaXJlWldjdnZKQVhtaTBRRmJoSi9u
NVltUlZ4aU1EZ0F1SU55ZjcwQ0gyaVFZY2I4UHB1L1p6Ck91SHhCbVJ0dVBmTGVSR3RGWUlQdEFN
QUFDQUFTVVJCVk42aTY0c2ZFZ1Qxbk9EQnFnbUNEWUlLeGhmZkFIUDI5UWJZamJtN1lORFYKR2t0
ZXNaQllUQlZRbFp4WUwxQ2tyQ3gzeGNVdWhQSkNXRUg1Vjc3VzNYS3lPOGErcExjTmt4N2ZGZ3ZM
TndxQ3RDS1N5cEdXUHRlRgpUMzFqM1AvOGRRSHg1bVNQRXlxUE53RG5yNElMaUplMjRYRmE2MFNx
bmk5K1RCRGNsTG5xcnhEY1pHbHZnemhRS0dzTDVsRFNZRkFHCkMybXpaLzN4eGVCWCtKRmZGSXp3
eVlsVlNvU0NyclRQdzlwQWtmOG9nYTJNd1ZMOUpxT21zbHFqS2dxeWZpU1BudzVoc0JCdkx6SkkK
Q3hacHJhYjA2UHVJckR5YzF2cFRxWjNXMm12QThUYTRnSGhkQTdJMjNOZzFsNlN5QWlJUk5ldS9K
eHh6dUlUVjVoejdvclVOWWpYTApDSmd6bW1Dd1hyMEVVVVVTaStsRlVHaVZNVmltbUx1aXEzZzhH
dGlOR1l0WTBSWHcyblF3MlJlbXZtaDI5VndmOUFpeEZJNTFSVm9GCnA2WHJUbmsxU3lqdXhEMzNa
M1JhNjk1a0h6ckVQdFFHcDdVK29RMWZUR3NKYmtDdC9udXJIdW1oRFFvTGw3cStNM1o4OFZOWlhy
eVcKSkJaZVJBRXFyYUJYdEdHQm95VUxGbDFab2RDNDNTTnhGVVdaVnlyZkVHR2htTGM0REhycHk2
V0c5M2IvYjJxN2UveGdMSEZtc3VwMgpPU2tzMG9MU1dtYVRIRHlDZTh4cnA3WGVtdm9wbHZKemg5
anZhb0RUV205cXdEZlRXcWJjUXdQVERBaUNHU2JicTh6ZThzWHZsbnVRCk53U0IvcWw3M1pCWTRZ
WEFMSkN3V1FsVXhVb051bFVPSmV1VjJiODVORTQ5NzZBU2FRVVBWc1JiVElaaklQMFBvRFNFdkdi
MEVKakgKRDhTaTlkbmpmUjZsd1BSZEZwVTYvdGk2WVI1NUZENUlhOTJHdFBEY01IUDNFUHZadE5i
akRUamVCdmZGWDllQXNnM2ZSbXRKdVllNgpMMzVDRU16UG1hcEhPck1OWXRxZzhOL0tyNWVTV0x4
S0Jhd1ZXdlVxYmo2NFdqWXJWTURhbG1hZzdRdTFzWEVndEtEVkh3MTNGY0FXCkZCdldSMFRPNFpi
SGo0YVdhV0NEdENCdzNSUnRKMWxuc2ZmbGZvWmh1aitqQzRqM0pudWNVSG04QVRoL0ZhNFRFSSsz
NFZ3ODNnQzAKcnNKM0lhMk5MMzZ5VU5aMk8rY1pYeno2dm5qanZoZG1heVVMcWlvODFncThJcUVs
U0d2bDlZV014QXB3aXFYa0ZSUHJ1RWFpejhSZQpKZFVOMDlpSC9QNnJZU3NIVlI0MkZxRTlvek1S
c1NhRDNreWhpa2lHdE1hLzFpNGd2aXVqZWYyWGFhMUdzcy9oTXg1dndQRTJPSzExClhRT3lObnly
Z05pa3RSSlRsY3Q1UW1VTlVWejJuS29naU9pTDM3anZyY09keFltRkxZOEZxVEthUEZoQkZyVHJC
MjI1VVFWYm9JeksKQ3ZTQ2ZHNWhzMklQS2FIVlJGSWtuOXdGUW84bElpYmhRcTF6ajNsbFJWcWlW
eDhyNCs2MDFodVRhc2FiRWo2VStyTUZ4RTlvdytPMAoxdU05OEFsdCtFdTBWbmNieEZHS3k1NnpK
d2pxTm9oWnhyZzhNUDRUNGdwZzBxcWhobmxDT2lKSXk2aUJ5bHFsdWd5UnlvcjI0cGMyCkxReDZG
R0hWU3lnSVVGNmFRWHBkSzQ4UzRBS2hCd0FwMDZEc1p5U3lPRmVlbVZkenlneUZWUXVudGQ2VjBi
eitOVnJyYzRmWTcycUEKKytMZjFJQnZwYlhLYlJBVHV1b0xna2ZjWFpZU1M3NzRsUmtVRVpYb2c3
d0NUSy9zQ0NIV2EwQjhrVWlzQUtweUtxc2dzWUx6dUtZWQpzaEJxb2hpRy91a3NFbFQ4NVJEcjUy
T0pDeUlZZ0JRQ0NWL0tqTEdpZE9DNng0UFRXbTlNcWhsdlN2aFFhcWUxM3RTQVAwUnJQZDZBCnNn
M2ZSV3NWMnlDaVFFVWpXenZIZVhuWDNkVXIvWkI4VjhtQUZhaXM4Q090aHNTcXZWQnhjSXVySXFq
Q1N3a3dqaHpWaTFRdURHQUwKQVZkVk1WYkphYmsrNkFHb3laMmwwc2NHYVVsaGsxUm85Q3lEVlkw
SGFhMDduNzhQMGxxL2pMUnVha010UG1lWS8xbGE2L0VHb0hVVgpua0JhWjdLcGdJaXhiUkNyYUdt
a0hGZFJLQXZFNjB1c1YwRWNORzUzSm1nMXJCVjRSZUJGYS80aWJKVlRibzlEQ0tDS21RSnhoWmc4
Cllxa0lyYWhMV2FYdW9mYVBIcjhZaXlsL0pYcWdJSzMwY3l3MEdwSFdXeHZrQXVLN01wclh2eVln
NG04QW5Zc2FjTHdON291L3JnRloKRys3OWNsNUVhNFczMlBmRjc1VjdhTkpnMWxrZjZhc05sY1Z4
RjBKQldnVjNWUy9ISU1RVm1CVk9BVkRQTzRUTmloZ3JMSktrekk4VgpQMzJCdXBqb0ZjNTFDNVlI
Z0NWK0JkWTFpWU9HMDdMZndQZ3owVDJnd0FYRU55YlZqRGNsZkNpMUM0aDdiWEFCOFJQYThEaXRk
U0xWCmdDKytMZ2dtZ3FwZCtpRzlBNmRWaEFGVXlZdmd4OUlLV01BS3ZOSUdPRVl1ck5GWG9meVZr
bGdCVGpGUnJoVkdJR1g4V0hVMlMyZ0kKeDFZZU1SWndFcGpKSUMwQ0ZHbUZPeW9HcDQyV2pxMG9Q
QkJPYTcwcm8zbjlhN1RXNXc2eFR6VGdlQnUrWEVERUoxMkZPdElxZi9IRwpCcHhKSlVpcjlNVnYw
RkpKY1NWbVMybXduTllLc0NtV1lJRGhyb0NWaGNRQ1ZxU05CVVV4bEdKWDJFQ3JER05Ca0NJamJs
Q0lER01SCjZhOWFOUnJNc2tGRytLQU90SDQrRm4zRkJtbnB6NG5UMHBxMkpoNUVXbkJhNi9La212
R21oQStsZGxwcnJ3MU9hejNWaG1ZRHZvdlcKS256eGhTQTRVSS9VMGxvazNOVXJWY09xczFtS3E2
eTlmV1VXQWJIY0p5Y2dLaVpsclJLaEZmVkJaYTFJT29iU1owdzl4T1dWazFKWQpIcjhlaTRKNmlI
dmRGQm9OTUQ0aExRTGExQ2h3STlMQ283VFduUTlmOThYZm1lenhJUmFmaERQT0RMSHlGazVyWGRx
QUo1RFdtV3c1CnJiWHZpNi9pclpkYTJnMjBpdFd3MkRpeEZHYXQvSHBCMmF4QVlrVWNKb1FXU3Ey
UUdZUlgrakc1cjVJWkszVUtpOHF6L2NEMGNtemwKRVVNWXJGaitxa1JhckVoTER2UUZab3ZiWFVD
OE9La0xpUGNtKzlBaDlva0dIRytEKytLdmEwRFdobnUvbkJmUld1RXR1cjc0VGFFcwpZcXdrNGlD
SEJZTVJVUVg2S3JOa2NhWVNNZ21iSlpUVnltd3dWaVNscEJ4RHFOY1FGTXRVa1NHdlRLU29DenBR
d2d4OHpseDUyRmdTClJSVnVsVENKMkZSa2lEY1owZmczekFYRWQyVjBBZkhlWkk4VEtvODNBT2V2
Z2d1SWw3YmhjVnJyUktxZUwzNUxhNzNNK2tFMlNDdlYKd1RJa1ZxS3lJbXRsak8yNkJhSHNNOGdV
WCtNRmNZSkI1Y0k0TW9vK21IQlZCMEV4WkZWaS96eVBYNGxZYUpUaTFsSnB1NXg0ZTJ3WApFODZI
MDFwdlRPcTAxcjNKUG1lWWY3d0J4OXZnQXVKMURjamFjR1BYWEM0Z0VqVm9yVlNYZ1ZlV25RZXBR
bUpaQm10bGZva3lhTFRDCmp0dGRWM1paTTFhMHhhZ1RxMThOUzMvai9uYVBFSEV2d3B5eG9pZ09H
cVRGNndWSUMwNXJ2UytqMDFyM0p2dlFJZmFoTmppdDlRbHQKK0dKYWk1cTBGc0llT0xMQk0wY2do
WlhCTHdpdUtwRlc1S0tZakZab2NCV015UjJ5T3lIRThBN0NLemJMYkdXeWc2NGdYbmRYQ1QwMApG
cnNaVHBwUkVDRGNhSkFQNmVxdnE5TmFiMHo2azdUV3JVakw1UHZjSWZhN0d1QzAxcHNhOE0yMDF1
djFvaUFGQnZBa2NtRTByUWZnCmxURllLRmtyNFE5TXNRYXJFa0xMdUV2NTBGQVRDd3lLK0k3MGt4
bDJ3SXhmb2Z3VkticUtRcUhETEE4czBkNmU3WVFEQUF6WjRCbngKb0JpMXJyOXZmcUd3MWlOSjcw
ZGFlRzZZdVh1SS9XeGE2L0VHSEcrRCsrS3ZhMERaaG0ranRWWm1DanNQc3FpRXdkSWVseEF5RXhX
NApxc3BtcmNKbVpSZ0xVanFiQUxQTk04VDhiaEVWbXg5N3dRQ3hrMWdlSVJiVyt1eGdHS1JGQm1s
Qm5uWHZ3VmNwWEVCOFYwWVhFTzlOCjlqaWg4bmdEY1A0cVhDY2dIbS9EdVhpOEFXaGRoZTlCV25G
WklaQnpWSUY4b2tSdWxkd1ZzVklIbHMxS1Rxemc4M3Jwa2VCM1o2YncKSy9zaWdTMmlncjZ5eHZa
SVpUbTY4cEN3aFViRHZSS1JWbUJPRTZkRllGNXZZejFkUUh4ajBwOFVFTzlJM1VqMk9Yekc0dzA0
M2dhbgp0YTVyUU5hR3p4Y1Fvek9MelBRYkswWERld0JiSzNFQVc0bXZTdlFWWitqSy9GT0xWZmly
MU1BRXAreUx4aWVKQjlSalUvMjl4NC9HCmdnanEwdzBmRld0RXNFVUdhVDBFQ0p6V2VrOUdwN1h1
VGZhaFEreERiWGljMW5xOEJ6NmhEWjlQYXdWa1JlbGNDclViQURCWVFKVlYKQTNNcVM0YXpjZ2xo
aHJRQVNGWDNlR1lvZ3FYTlZKTk1kdjJvR0JLWjZFWFk4Y0o3L0ZCb29WSHJzaEkwYmd1TmdvdXZ3
aE9Bd0dtdAp0eVYxV3V2R1pKODd4SDVYQTl3WC82WUdmQkN0eGVtc3RBVk5sRnBJeG9UZ2tWSzVr
TVdvdnE3OGVsRjFGU0dJMG9zY2FTSDlWdml0Ck1ONTBTN1RMOE9RU29VZUtVR2gwWmIyL2NxU2ww
WG1DT2ExMVExS250ZjVDYXFlMTN0UUFwN1hlMTRCSGFTMENnVUV2VUFKVEFWakYKa1NwdTFQd2lP
UUptWGxmd0M4V1dPQnN6Rmd1NlVoN2hwWXNOVFp0MjBKSU9SSUZhQXplMjBQSDR5UWlGUnVNOXRV
VmFzQVd4QnVKQgpXdXMycElWSGFhMDdINzYrRGVLZHlSNGZZdkZKT01OcHJZOXJ3Qk5JSzFKV1Va
aGprUXNwd2l3STBtTDUyWmkxS21vZ0IycEt6ZXpHCkRFTUN1VlFOQk9XVTFSNXVZc2o2UWQ0LzJl
TTNRazN1WXJJeVNJc1RPeHMzd3h3UEZ4RGZuZkhXcEM0ZzNwdnNRNGZZSnhwd3ZBM3UKaTcrdUFW
a2JiaFVRV1Y1WXNCTzNMQ1R6MEkvRkZteDVLbFVXaTZwWGlMSWdjdDB3MVhDWHR6UGVZMXVidlFS
UGxLWDFRcU1lS2FSTQpBd0x1VHZjZkl0TnAxRUk2OG5WeUFmR0dwQzRnL29YVUxpRHV0Y0VGeEU5
b3c1MjBGaEc5VkEwRXdLRFh5MVM5RHNwZWRpU3lYQWxlCjQvVlNTZEZZM1ZuTTdGSjVJWkJXeW1i
cFoyTTJ4Ykd5eUE0S2RjVlNjOVREQTB1QVRiSTNUZ0RxQ1drcFpRcUFlVDNKZkRxdDllNk0KdHla
MVd1dkdaSjg3eEQ3UmdPTnRjQUh4VFExNFU5ZVlHZzFHRGN5T2tDaDdSSUswQXRDUnM4VDBFbUZX
UFBJU2RJVkVaUVd1UzZrcwp1N3R6ZDUrY0NLckNtenVCNWFHeHhFMEp6SmRtaTdTUVNOUnJzanF0
ZFVOU3A3WCtRbXFudGZiYTRMVFdVMjFvTnVEU3JvbEZHUVRmClZLczI1RWRBWkVzc01JQVhaUW9q
Qkc3Rm4rWE5EWlVsVGl4S240YzUrTzJSdlJQbHI5eC81V0VpZUxEa1pvcVVLWUNFdEpJMCtKNzcK
NWtGYXkzM3gxeWQ5anRiNkZhUmw4ajAreE9LVGNNYnhCaml0OWFZR25PNGFmVllId0tRMUdzSWJh
dFdHUURRRmhpdnBpVUpYWlFvagp2VlF1RE94QnBqQ0dRZUZGY2UzWC9wQm44RlI4NlJLaFI0b2xM
bEpOQ0lvS3BFVVowbnBqdUlENDdveTNKblVCOFlaOEgwbHJQZDZBCjQyMXdYL3gxRFNqYmNLeGx6
RktDSVZGVVpEeFZjaVF3VkF6SUFrT3RtQlhwS3J6c0VUSklLMWNZMDFZbU9hMmxORVF4RGlxR1Uz
M1EKSlVJUGpZVmdpVkx1SUszYnZySXVJTjZRMUFYRXY1QzZpN1J1YXNNbUhtOEF6bDhGRnhBdmJj
TmhwR1VjVkV6V1UyVTRxOG9Sd0J5eApBcUtJaklBVXJDcVBFQVJwMVQvS3Bua1ppZVUxM0QyeVdD
RGlvQ0o5UUFwaXlTMGF6dmtaUU9DMDF0dVNPcTExYjdMUEdlWWZiOER4Ck5yaUFlRjBEc2pic2RZ
MUtlOUZUWll4V1JkVUdBSlRibzZScWcyMER2VFpIQ3RsUm1MS0k2YXdLS1cvN3FqVFU0Q3FIVng0
MkZzRlIKakRiUzJqNVlmZ1lRT0szMW5veE9hOTJiN0VPSDJJZmE0TFRXSjdSaG45YmlXS0pkUkR1
emxyRG5xVElMK1JnQUYwZFUwU3V5RkpwagpTaFJYQ0ZyTkVmcXpOaityRGVIaEFTQ2EzTWxVVjVN
SFI5cVdNTjUyOVJvTlB3TUluTlo2VzlLZnBMVnVSVm9tMytjT3NkL1ZBS2UxCjN0UUF5bC9tU2g5
aVJhb2NhUmxQMVV1NGdvMm5pZ1VrV2JXUVU2VjRSRVlyL1VtaE1OYVhNY1lqOGhOcnd6MDhJSVZH
MmQ3ckxDQ2UKTEswMWNOTThDQWp1ZkVZOFNHdmQrakZ2VDNvLzBzSnp3OHpkUTZ6VFdtOXFnUHZp
cjJ2QXRnMVI2Y3VPOUJ4VUFyNWdqbVNlS29wTQpRbUZHNTRTYVlqb3UzT29oUzNha3FUQjZlTVFJ
aFViRno1NGhMUzZRMW5qOERQWGlBdUo3TXJxQWVHK3l4NEVPUG1tWWYxeEFQTjZHCmMvRjRBNUJm
aFZLRGt6NFdxS1Q0UnM4SktDblJTTG1uS29tTWtnR0VqY0pJOWh4SWFmanM0b3B3R2Y4b1d6ekll
VDk2L0hZc09UOFYKOW1yaUJ0S2FqcDhCQkM0Z3ZpM3BUd3FJZDZSdUpQdDZvSE5kQTQ2M3dXbXRT
eHJBdWE2SEtNTVZSNnBWR3pJSFZYNkUycDRxZVJPVwpQekZIeUdDditDZHNUa2lhNDF1N3hlTzdZ
dEdIUWZTelE2Qy83SjhqdnoyTHpIOEdFRGl0OVo2TVRtdmRtK3dqaHRpUGFjUGp0TmJqClBYQi9H
NUxCUGU1bkkwcGYydUdHaUN4anRmVlVDYTRhOFZUbElxUDFWRkhaa3BMVTJtaU9IaDVBa0FoNVRa
dUdvMFJhVVVDOGtQZjgKR1VEZ3ROYmJranF0ZFdPeXZ3QjBQcUVCN291ZkRsWndReWJ0ZGllY2lH
L2tFT1dlcW5CYTIxT1Z2T3FpT1JwUFZUb0NaQ3NGT2J6cgpSbk4wbE9XUllwRXRMVE0vZTNvU3FJ
RDRucS9VendBQ3A3WGVrOUZwclh1VGZRN1FlYW9OVndxSWNGcXJIV3pyc3lPSUtyWnFBOVVkClZF
T2VxaGNWaWZLcURVUXZNa2dyYzFuSmV2dFgvWWlIaDQyRkJFWkpVWWFFdEtTd2JZajNmcGNmZVdR
OFNHdjVOb2pYSjMyTzF2cGwKcEhWVEcycnhPVGpEYWEwM05FRHNVNW5TeDRFa3loMVVGVS9WNjJX
UVZ1R2dRdWJsYW5xcUVDbXM1T1ZxdHlRZUllVFh4T1BYWXhHUApIeFJwb1lhMGJvdWZvVjVjUUh4
YlVoY1E3MDMyRjRET1JRMDQzZ2IzeFJmdlJpVGVwdXlnVmY0b08yS1V2Z1IzMG9FaFR4Vm5YaTZy
Cjk2bjlTNDlWOGw3eHdUMytVaXdCaG0rbHdMeWtlNzVQenQ5bENGeEF2Q0dwQzRoL0liVUxpSHR0
Y0FIeFRCdXNya2ZWV2duNWdXMVYKcWxmVlFWVTdZbHNhWkVkTm83c2Raa2ZzSWM3ZXhjUER4bUtY
Q2dJa1JSblM5NEtaaTIvSmp6QUVUbXU5TytPdFNYL2pwbjBnZFMzWgpYd0E2MXpYZ2VCdCtXVUNN
dFJKeXBROUY5UVFReXFwVWdIcXFhZzRxOFhJWmx4WEFmVThWeTl1K05DOGtienhKanN4K1NvKy9I
UXZJCkZHenZJcTF0L0FoRDRMVFdEVW1kMXZvTHFaM1cybXVEMDFxRGJTaVV2cGZkOThicWVyVFI5
Y0tJUnVGTlRIMHNlNlRxb0VwdjJqNFMKMytSbG5WdlpFWWRZSGlZV1k3dUtTRHlVYVZDa0ZRVEUz
VGY2RVliQWFhMTNaN3cxNlcvY3RFWHFXNUdXeWZjWGdNNG5OT0JYYUMzeApOaUZ4Uk9HdkMxM3Zs
VlZ0QUV4VktzcU9WRDFWckc4bXZKZ29qSm03Q3dyNUtrZVM1Z2hIV0I0MlFxRlJwYkFxU0FzTU5u
ZmhidHcvCmFPRlJRSERuUStwQld1dldqM2w3MGgrNWFZdThONlgrYkZycjhRWWNiOE9mOXNXTDFR
bXE2NzIyU2wreXBvZDNzVTZ0NkNDdU9LankKV1NzaFB5bDVxbGpSVk9HQno5dVc4cm9UeTZPSVVH
Z1VVdjZxanJTT2ZRRi9SSXR4QWZHR3BDNGcvb1hVWGFSMVV4czI4WGdEY1A0cQpYQ2NnSG0vRHVh
ZzNvS0gwWlo0cXB1Qkx6eHhVbENPdCtGZkd2YzRNaXJLanBOeDZxcXFiOEppOFNJMVI1NVlUV0I0
MkZtdTgwbXBZCjZSWXJLbzhlalIvUllseEFmSGZHVzVQK3hrMzdRT3BHc2s4bVZHNXV3UEUyL0Ix
YWE3di9ETDh5SWduWUtIMVNYa0g5VXZUYUhObWMKVS9WVTBkYkxWVGxpR2xPc2F2VHdBTEFRU0lw
ZEJZZ09LSWtWSVBtbFg3UWZZUWljMXJvaHFkTmFmeUgxWnd1SW45Q0d4Mm10WnpndApReHlOS24z
eGZKSWptYWVxNmFCS1J4QTM0Y2xFUnJzeU1EWEd0Rk5UZTNpVVlRdU5Ca3d2ZFVVTjBucFQvQWhE
NExUV3V6UGVtdlEzCmJ0b2k5YTFJeStUN0MwRG5FeHJ3YmI1NEFvaDFteHZKSE1zcjJLSU1TZGZU
czBUWDA0K2NWMjJJUjZ4NWk3cWVLbzUvMHRpRUp6VjYKeHFuczhTT2hoVVpYemg5cnFmelZ4UnhX
Slg3RVl2eklrOXA5OGUvSytCczNiWkgzcHRST2E3MnBBVjhpSUc2VnZnaG1naUc0UElMTwp2amRF
SlBYYlZlblRjeUJ3cmVtcDJ0VEgycFRtb2dKN2VYaWswRUtqaXN3dDBnSkF0KzZhOXh0YWpBdUlO
eVIxQWZFdnBPNGlyWnZhClVJdlBRWHVQQzRqSDI5QUxob2lBb3RudEtIMWd5RTQ0VWVtVHZ6RDcz
cFFPcWdGUGxkbGhzRGl5OVhLNVZPaFJ4S0lFVllHMGtDenYKZXQ4Q2Y1b2grQmxBNEFMaTI1TCt4
azM3UU9wR3NxOEhPdGMxNEhnYlBwRFdTcnBlZWw5VitpaENubHpGQzcvUGpsUWRWRFZQbGZWeQpC
VStWT2Nsc3NKTWRTVHhZT3VMaGtjVVNsTURBaGdZVzFQaXVJblMzOWR5ZElYaDN4bHVUT3EzMXBv
eS9jZE0razlvRnhMMDJQRTVyCm5leUJ1RjRQSU1ycnN5TXBmYU82SGxEdWhJTUE0T3FiOEpnUHdL
OThFNTZrTUtZajltMGRZbm1Vc1VEdWk3ejhWVUphclMrYU13UTMKSkhWYTYwMFpiMDM2R3pmdEE2
bHJ5ZjRDMFBtRUJqenNpeGRQVlhrazZucTBxK3VKR0JQL3Fya1RqbkZRaWNHclllZXlwSlhaYXBv
dAp3dlB3eUdJQkVhKzJSQU9BTkJNZ2dIbmR4ZWJPRUx3NzQ2MUpuZFo2VThiZnVHbWZTZTIwMXBz
YThBU3RaY0FMU0ZidzZkc29wV1hiClNMbE9KMGV5OXpSK0tkSWpsRmZERXJqRzJSRnRUQlgyd1Fr
c2ozcllRcU41UVN3QWNZaWR1SEVlZWFJOXlCRGMrakZ2VDNvLzBzS2oKS05adjJyK1F1b3UwYm1w
RExUNEg3WDBCcldWb29hMzJGOCtJeHF3Y2U2RUVYeVJFbHpsUzZucnlGN21uS2gySnpxMlVPdkpq
VktRZQo3QWVQMzRrRm9MRG5JSnU3YTR1MFpzTzFtQnVTdW9ENHBveTNKdjJObS9hQjFJMWtmd0hv
WE5TQTQyMTRzeS9lck00VHFpblQ5WWlJClhqV2xUOTR4S1gyYW83YnZEYldQUklOWFZqR3JCdks4
Um9OSEp4YUQ0aEdNV01sTGVGR05CdGRpM3AzeDFxUXVJTDRwNDIvY3RNK2sKL2toYTYvRUc0UHhW
ZUxPQVNQRmZFbElLTTlTMlZzS3JwZlFsQmtFOFZlV1J4R0hsa0k0NlJ5S1hwa09vaDRlSkJRQW9B
Q3RZSTFhZwp0YTROWndodVNPcTAxcHN5M3ByME4yN2FCMUk3cmJYWGdPTnR1RTVBbFBWNnlmNVVY
Y0VuMWE1UVZmcWl4Y29xZldFbkhIMkxDTmQyClBGVkVSZHNFMGltd2NvTzdSeU9XWXMvQjhKTkZX
bS82eWp0RDhPNk10eVoxV3V0TkdYL2pwbjBtZFpmVyttS2djMTBiSHFHMVhvbGIKTXRYWW9jWXNn
NzI2U3Avb2VodWxMM2lxN0w0M1NscmxucXJzQ0RNVlNJb1Y4M0YrM1R3OFlzUkNvNEg0bEVLajRT
NVVwUFhlY0liZwpocVJPYTcwcDQ2MUpmK09tTFZMZmlyUk12cjhBZEQ2aEFVZnVXbGIrU2FDTEtI
M21pR0l2byt2SnZ6MmxEMUFuREFrVEJxbUdWYStQClpRMWV1Z0dpZGcyOURuYVB4OThPTFRRcWF3
blpWSEFQUDk4WUR6SUVmM3RIdVVlZTFBL1NXcmQrek51VC9zaE5XK1M5S2ZWbjAxcVAKTitCNEc0
YnYya0w3TTRYVURmK1VHcGFVUHB2SzJMRGlleExoRmJKYjQvem1pTHJtMWVCVnVPYU5WU3NIZWM1
aGVXeGlrUmV5Y2xDUgpGaERxWTlFVDMyclhZdDZkOGRha0xpQytLZU52M0xUUHBPNGlyWnZhc0lu
SEc0RHpWMkgzcmkyRnY2ajB2YmJWMkNsWCtyalUrVVRwCnM4a1ZydVZIWW1MYUhFRk9wMlYycnBU
RlhWZ2V0VmhBUUZab05OeFhMTmlLODd2eHI4OWZROUxmMEdKY1FIeDN4bHVUL3NaTiswRHEKUnJM
UFlaVWViOER4TnRUdTJrTFVROGt0R2JaSlZ2QmxTS3VpOUVGMFBVMm5SN0xQb05zZHdyam1NK004
U3RoWElqb1BEeE9MUVZDYwo3NDFUdjJ0K1pmNGFNdjRHUStDMDFnMUovYWI5QzZrL1cwRDhoRFpj
UUd2Skc5Sm0zK1ZYZzIwcTY3T252WEV3dkJOT3hjNEZWTGM3CkpCUUVXM0RVT016eTJNUUNvYXZZ
M0NYTUsrODluWDlsL3FwSmY0TWhjRnJyM1JsdlRmb2JOMjJSK2xha1pmTDlCYUR6ZUFNTS82UnYK
bEswY2pGbVMwa2Zsa1J4N3BZYVVTcDhDcmRJNGorU3BFanRYZWFSQ3NIbDRiQ0o0c0FnUnFFTTNm
QWIwTnRxUFg1bS9ob3kzRDFwNApGQkM0TC80UEpQMlJtN2JJZTFOcXA3VXViUUFSNllMMlhuMTJK
RkV2UjJOV3hhUGlTTUpJOHFTUjFwYWVxbXA5ck5KSzN4SjZQRHdBCm1FS2pZUzFoaWtCcnpjWnZJ
aTM4YVMzR0JjUWJrdnBOK3hkU2Q1SFdUVzJveGVlZ3ZkMEdrSEpDU1FvTVIySjlkc3I1SnhYMWxI
L1MKUDJydGUyTjF2YTJWUHRzSkJ3SEQ3VzkzNk9GUmphWGMzVm4rSVV3ampzWW5LQVYzcHY0Ukxj
WUZ4SGRudkRYcGI5eTBENlJ1SlBzaQpvUFB1QnJUYVlFUTdxQnhuanFCYWpmMjFaWnRDTlN6U3Qx
VWJWakpVV2FYdmxSMUo4dUVySGRtajB6dzhOaEVLalliN2lwbFpieGE2CjdrdjRLL1BYa1BFM0dB
S250VzVJNmpmdFgwanRBdUplRzdJR0ZCaElpQ1dnck1hK1pac0NIQ3JacG55T2xwdXVBRkg2dEJv
VzFMd2wKeG5scGlSNUpkSnJhdVp6RzhxakdrblloSkFURm1tTmNuK3hYNXErYTlEY1lBcWUxM3Az
eDFxUy9jZE0ra0xxVzdIT0J6aE1OZ0ZCTgp1YW1jQ3Y3cHRlR2ZNdDdMYUg4SVAwdDlyRjJsTDhk
bkVCdFdnbERGRVNObGVuaFVZdmxmZTFlMkpibXFLNFZYL2Y4bk4vMWdCb25CCjZRRUVOaEZyMzNP
cnM5S0U3Q1R0cUpBUWZucjRIZzNrSnhLUi9kZnhHN2ZLMzY4NzR4b09BV3d0QlZKTTJpOVF3OWI2
Z2YxQlpNNzAKWitmK2s4ajlNZitKcUpycEUvdmVFUDBxbkJldmNPMEZBRG4reUxpTzdmeHZWOW9k
cklacHdqcG0rUHRWazNlZ1E2QjZtdXFrK2txTApocXBZVE5vdlVCOHFMYVVZU2hoMS9ZMjFva2Nv
V1hPdVAvdEdvU2plQ3l1aXpiMUNQTk5uWktiUC83NVFPRytTamFYWmRvZnNGVlJoCkFWWDhzZFN6
YkloRlpPMC8rV2RzOTJpR2Zhdlp6OGpGZENKRkFyRVRveXJwR3BOMkFIV0ZiQjViU3ljQUV4Wlhs
ZnV6YzBlS3FOaU4KbmZkbzhFazlVVGh2S3ErRUlZaVNqYVhkbXlqdmp5WEt1UUFnZ2V1REZZdXVk
ckh1REN3anZsU0tYN1ZWL243ZEdkZkl4U0NCcUVDSwpTZnNGNmlsdExaVUFoUDhVaXNwanBzOFhs
VytHdlVJa3VySDcrTVRhUXZjS0szRlBPMmFSVjAxeTBhSW9uQzhrTG5jN3JjZTFBRDZBCnY5Q2xZ
ZGZsckE3THRYcmJVVlphNlMvYVk1Vy9Yd1BwR2c0QmJLM2VqS3FrYTB6YUFkU3IyVnFXekNZNmZ1
NktoN3RKckJSSytFL2sKVWpIV2NPMFZYNkU4OTBkVTJnbUhuR1JLQ3VlVGphVnRvWEFlQUZMOHVS
VWJmQk5DSXNydWxkWGJDbXl0VG94ck9BU3d0UlJJTVdtLwpRSDFvYXcxWFdrMWlDQnFvVUdZdU9v
SWUrVTg4bGtKLzl2Sk9PTVJlS1JmT0UxbnVyOG5DZVlnc29Jdy8xcEhCVGFKZGFVWDNOUU5zCkxX
WHFSUndDMkZxOUdWVkoxNWkwQ2JXcTBtSjh3eE9JMU9ZaTJLVE1QS2dpWmo0WnI0cEsvZG5aR003
UW91Zy84UUFOR2Y3MU45bSsKTjZ3d1N5UXUwMWNncm9BNi9uWWxaVno3S3lmaS9XOS9mRk5nYXls
VDZ6KzBhS2dnMFB4TUI5cGFxcWVwVHJySXBFMTRsYWpudHJXdQpCaEI4SWVQVVRKUXZwdFlqMUZE
U0RZdTVUU1o5aFVnc1VXU0Y4ekVJYXhQWnhEZVd6bDVCaVR0d2hEL1cvc3BQdW45WnZ2QUVmdGhh
ClVGcHRHZGZJeFNDQnFFQ0tTZnNGNmtPbHBSUkRoc3NCWkQwYXFOWWpWTnJQU1ZLUHZOdVVkbU0z
WGxUeEpZcVdpQ3daMnNTaVJTSzMKUkpGbkhlV2l4ZGdOQ3dESytPUC9jT25Dc0JMajFwZXkvS1ZD
QXJFZjZScTVHQ1FRZXpPcWtxNHhhUWRRVjhoZVlXc1pZM2hWVTE3cQpKQVNOdFpuMm9yMGJsdEJl
RkJZV0htcXYrSXJVWHF3L1ZyNW9VUTRNQUNuK3lCamYvc3F5cWR2bWdRSmJTNU42RVljQXRwWUNL
U2J0CkY2am5UaURXWXRpbGkrOFJHcFhXUmhWVlJMdU0yb1QyeXZ1ejh4Nmg1QStLVVpqc0ZTSnhC
Rk5hTVRRTEN3czR3Si9UVllabzc0YmwKWjZ6bEhVZ2Y0NGZTU24vUkhxdjgvUnBJMTNBSVlHdjFa
bFFsWFdQU0p0U29pdzhCRkFVUWx6T3l6SndPL0tkZ05jVTMrWVB1TEZHMApjWXh3dFF4dEVGZkFN
ZHhlaE5iK0N6YzFaOVAybVR2VmJ6VnNyVTZNb29SQWk5VC84R0dsUlVOdHJVWHE0bWtCVzB0YjZN
eHNhK1VKCk9CS3FLQ290b2Iwb0syeUdEd0FBSUFCSlJFRlVwQk81LzdSM1krY3ZPcFVVSGF2cUVr
V2kwaEpGNjBaTlhrR0tFS2poei9La3QxUmEKdlRGUEFsR0ZyVXl0S2tIR09RUmZ0MTZRUU94R3Vz
Q2tIVU45cUxTVVloRHdOVlhrZEpRNTdoRktvV21XRVVxTHBQbTBXMDF4SW5tbApKV1c4VFB5Rmdh
aXdSTEd3YUJFQXl2Z3p0RThaYS8zVTg5TlM3L3RWL2xicmZ0ZFgrZnQxSjEwakY0TUVZbTlHVmRJ
MUp1MEE2Z3JaCm9GdWl0NGxFWEU1N2JSUTEwQzV1dHR4L1lzWVMwMnQ3R1paY29oZ0VHL3ZXWnEv
NEpZcVV2ZEswaWdiNEpFS2pVV2RnRWRIMUZnMHQKTVkrdDlmRy9YM2ZHTlhJeHNMVVVTREZwdjBB
OUxvRm95QmliMkZIMTRpZCtvT3M3eXZ1emg4SXM4UW9WdEpkNzhYZDdDQ3UzTzNTUgpBTUFSL3R6
ODg0MUczZndqTy9DR3N1T0gwa3AvMFRHQS9sUlRVQy9pRU1EVzZzMm9TcnJHcEIxQVhTTHJHa0F4
QWJmVmlwOG9PbEk4Cm9sUDkyWXM3NGNRZGVabXV5cGNvV2lMS2xpZ0NRQVYvZTNiUVV0aTNuUFpH
b3dGRHMvS0hBY0RXNnNTNGhrTUFXMHVCRkpQMkM5UzYKdGxaUkFBVU5GSXdsNWtqZDZjKytpYUo0
VHhSZkNWUWhtUDJsZElraWJDemdBS0hSNkQ2THJQLzdvWHlUbXQzV1FsMThjOUp4RG9IcQphYXFU
NmlzdEdxcGlNV20vUUgyb3RCN0dZSWpNWG52RlgzR2p1bGQ5b2s5MHc5cVkvNVQzWnhlWlB1WS84
YUJGNGJ3cnpEcGFvbWdMClZXSUFVTURlYVBUZjdtUDU2V0orM3ZUblVWb2lCbDM1TStvaUlCZWpR
SW9FWWlkR1ZkSTFKdTBBNmdyWjAzbkZ6Q2ZlcHNGa2xlZUYKSHFFbXZtSzgxZVJWazkvYzBHVUQ5
NE5rVFpWendrNHNVUlRhaTZDeWdBUHNqVWJkTWdsci8rMVZXT2U3akE1UElGTHRXNDBFWWlmRwpO
WEl4U0NBcWtHTFNmb0c2bmEwVkJSQnJFTG9kRkQrSmpxRGlGYUc5bU5JT3d6TEhxdG9NUXI1aUt0
b0xBS3B3S1VLK2x0RC8zMlhNClkydVZsVmI2aTQ0QjlLZWFnbm9SaHdDMlZtOUdWZEkxSnUwQTZt
ZTJWbEJGY2tzYjYzOGJpNTlNM3A4OVNxSjRVSzAvT3h0V2FEUGkKamJqRUt5U1hLSVo2ZkxoWHdB
LzgyVEJwOTc4Uld1eENPTnpXcWdZQVc2c1Q0eG9PQVd3dEJWSk0yaTlRSDlwYTVRRFNMV3VDNEJF
cApPVmY4eEhTU2swQlI3bHpzejg2SVluUzFKWXJzeXlIK0FRQWwvSG5GenhxTitxVVpUUUJiYTVX
L1h3UHBHZzRCYkszZWpLcWthMHphCmhGcFZhVEcrMG11VzUrTW9wQXZKdWxMMVNvK0cvWU16M1Bw
aTN4S1pDdHlITFRTRFlBc1M4NTF3cWkyeVdsd2Q0T1BZMnpURUw1cnAKZG91WlIybWxNY0RXNnNT
by90Q2lvWUpBOHpNZGFHdXBucVk2NlNLVE51RlZvajZ3dFh4dWIxY3VtekNLakFtUEpXTklhaStx
Q3lDaAp0Rnh4ZXVZL3NXcmpoQ2hxcjN5SklvbDRBS0NHUDdjQ2cxejdLNFg3OWZBRUl0WHVhRkJh
blJqWHlNVWdnYWhBaWtuN0JlcU1iSXV5CnlmMmlKSWxDcndUMkNoTkF2QzdMbEJja2xydXhHL2x4
ZS8xbVkwMnllRVVxTFFDbzQ0OUMzWlhYOGQ5dXpGTUxRTVNBQkdJLzBqVnkKTVVnZzltWlVKVjFq
MGc2Z0ZtVENLQW92RmlYUlZwSkV4b1hNWEM1TFJEYlJYdnVMcFFXSmFkRzdDZlpER0ZhMGgwaE9B
QUJTL0ltTgpDRnRVdU44RGJDMWRxdkhVaXpnRXNMVVVTREZwUDBEdDErdWxSdEZPYnloMkRXVXhw
VjFEWlorcWFENFpYNmNWbFpiN2wwMklpRnczCkxLbTlqTkJlWWtFaUFGVHhSOGJKS3FhMDNGeWNT
K2dNRHdDMlZqL1NOUndDMkZxOUdWVkoxNWkwT3RSOEhhQXZ3NHBVU2RkUUNpVlMKVENmSlZDQVJ5
YTZocWZieVkwVGZLeEpKN2VYSHpZbXN2QzRBa09IUDJ0MEl0VUZwQlV3cWRFWUVrTVlBVzZzVDR4
b09BV3d0QlZKTQoyamRSbHlRUnBWMURTVzVRdzVUV0xvY01VYjFycUJ2V0VSbWh0Rkx0ZFVSRWpL
amhCUUEraWRCb05EaFlvaUJyeC9EODNmQUFxSFpiCkdhRzBWTmpLMUpxOEF4MEMxZE5VSjlWWFdq
UlV4V0xTems5ZGxFUXliU2NrRVdWZFE1TWtIdjNzRWVwSjQ3Q3NSVlpVV2xSdXV3VnQKQlp6Qlgx
QlcrOWJnUEZGWXhEeXUwdkFBUkF5NjhtZlVSVUF1Um9FVUNjUk9qS3FrYTB6YXB0Uy9KWkV2dy9J
cFJTR0pQSG5XSTlTbgpBdU5MZmdSaVJGNDN5UlpaWVV5WFB6VHMzMGdRQXIvdzU4c0s5MGFqTms3
bFg1aFU2QXlLWWJpdDllcS9YODh5cnBHTFFRSlJnUlNUCmRpSnFhMTB2SzNhb0lTTzdZZEYyVGhJ
NVZjUWtVWXdvNnhHNmsvS3BLR3Z0VFViRWs0VUE4QU4vY204YzVzbWV4cnhDWjNnQWlwZm0KL1gr
L1hpUmR3eUdBcmRXYlVaVjBqVWw3aHpwdjc3a2ZWMmliYnZNTVhWRVNiWmtrOGpuSElMNUVBQW1Q
TElGblNzc1JKYWNJQUFYOAp1UmxKMWpjYXZhZXlIT1lST3FOaXFBWUFXNnNUNHhvT0FXd3RCVkpN
MmlIVUpxZ2lpdHFsSUlsT2R3Mk5OaGNmbGhLbFZXb0ViNGxjCjZ3ZitDYVg5c1FqNVFlQWNlS05S
K2VmVnM2L2pjS0ZETTZtOTRVcExoYTFNalJMakQ1Q2lMcjRqNlpLMkZ1ZE41SXZYUDdLUnVxdGQK
aWQyd01rbEUwWklxZGcwMXRXR3RaL1ZLNnhjUkVvVEFTZnlKYjNXeDBlamp1ODZrUW1kRUFDSUcz
ZnZjcUl1QVhJd0NLUktJblJoVgpTZFVuTGMxeFcvQk9raXUwWXU4eHZtTzdjNlRpQ2ovajZyU1k5
cUxRcE1yTlVtZGFsUVVjSDFacUx3clNxNkMwR0ZIakt3SjhFWDlrCm5GZjYrd3YyK0s0enFkQVpG
TU53VzJ1MlRFRVh4alZ5TVVnZ0twQmkwdmFpUHVqUlFFU2lrYnFYUkdubktpYUovSXZSZldJQzdz
R3cKMWtlN3NTTUE0QWgvL09aNFNtYnRRQUt4WFFBaUJzVkxNME9tUUpNYXRsWXZSdGhhL1VnWG1M
UkJCR1hhUmJaTmQyVllUQktsSW9sQwp2akdXeVJQSi91elBodzFYQlFvTCtJRS9OK044cDFIckYy
S2NCV3l0cGpIQTF0SmdYTU1oZ0sybFFJcEoyNElsVVRNazIzdFNsRVJSCkpGRTh4Sm93U2h6RUg4
R0gzVVIvOWxQRFN1M2xqMENuVWVBY1lxUFJYYmsvQW15dFRnSEExdXBIdW9CRFFHTUVBV3l0YnFS
Zm03U3UKYmRVdWtyYW9abGpodVgrbmswMHNJbFBwR2hva0VkRnhmL1l3ckZCTnZ1RGRCclk0ckk4
V0FJN3g1ellpSkVxV0V1NjQrVjE2ZkorYgpWT2lNQ0NDTkFiWldKMGIxaHhZTkZRU2FuK2xBVzB2
MU5OVkpQek5wblMxRWxQU3lJcks4OXNtd1pxUStaeWVWbHJ4emJrRTMvZXJQCkhrN0krSkt3YkZo
T2hCcDM0QlI4bzFIdllqVittcmRMSU42UDRSbUdCMEMxVHdGS3F4UGpkM014UlVaVlVpUVFPekcr
ZU5KYUxsZTgKUVVYQmp6SkNKSkZmMGVmZjcxcGt1UllOeGdlV0tLMmFnS3NNSzFwa3hUZ3pTUWNB
eC9pTGZ4RVVlelI0TkxoUHdkWnFGNENJQVFuRQpmcVJmeThYOElFVUNzUk9qS3VtckpxM2ZlZEFh
NlF1Vm15bklSdXFaU0tJbS9ka1BodDF6UGZ0QUYwOFVXQkYvUkNaSXExanVkNGg1CmJLMjVoTTZn
R0dCcmFUQysyQ0c0dzZoS0NsdXJFK01iSmkzVE4wUmtmUmxXRUlsRTVEb3NDRWtVUlJKRlNVUkJK
TW5pTFV2a2U0UkcKeFA3c2Q0Y0ZnRi9nYlJyTTFSdGNnMXZHc3lIbUZUckRBNEN0MVkvMFZRN0Jj
MUxZV3AwWVZVbm5uYlM4eGlyVXF1L2xVVjdpK09NVApwVVcrbjBLUVJPU3RyNElrY20reFlkaEEv
blBZVEhzbDV3Y0FaZnlSTWJGSnd6a0hLMGZMQk9MZElTWVZPaU1DU0dPQXJkV0o4UTBPClFVTkdW
VkxZV3AwWVo1dTAxcmRDWU5xRm1VUkNhUVVkWlhnelVpZVNUT3BJa1Vra1VWUk41dHF3OFIxUmV3
SEFid1FIUzNxeUR3QmIKYTNnQVZMdUVJNVNXQ2x1WldwTjNvRU9nZXBycXBQcEtpNGFxMk5VbWJi
N0VqM2RZRUlYbjd2M2JSdEZzaXBJb2lpU3B0T3BkUTVOaAp6Y0d3aVlDejZORUFuTUxmL3YvMk1x
eTJYN09XdHRiZHdPWnhsWVlISUdMUWxUK2pMZ0p5TVFxa1NDQjJZbFFsSFRwcFJSbVcwemRtCmky
cUdLUFJvaUNLSjVMNkZSR0UxWWxGcC9lNGFLb2UxSVVUL0pqa3NBSnpCSDNrVGxvaXMvZGNwdGZ6
MFB2V2hCT0lNTVF5M3RaQkEKN0VVYUdKVUlrVURVSVAzd3BFMHF6MldXcjlwTWdZa2syc3JOU0Ew
VFNjUUd5YXl5bUMwc0tDM3VuK1hEQXNBeC9zSlBlNS9SM256RApiYTE1aGM3d0FCUXZ6UXdKUkUx
cTJGcTlHR0ZyOVNQVm1iU3VrWlV4TGt2blhrMzdxanQ5VTFGYXJsNktLNjI5cU5nVXU0YUdibGgr
CkpJcEtLM1c1a3BXRGJ0akdGd0g0S1A1Y1psQ3pFN0FIYkszaGFxOGFBR3l0VG95d3RmcVJ3dGJx
eE5oejBtNnh6Tng2YjRsSkl0L0kKaXF1a3FMUU03ZGZEMTZwYi91OG9pV3cyN0s3WVNwbEszdVpL
YXE5RXdBSEFiNFJHbzVkN05EUkVnMXNHYksxT0FZeFFXaXBzWmVyVgpTb3cvU1lxNitJNmtqU2N0
SzNhWFMveUlYTzdQdjh0NmI0a3BMVEkraTJlNTB1THlLK3FxU2pOU3A3U0V5K1dhTWxnNWJCZ0JP
VUxnCkpQWkdvLy9pekNHaUNaN3g5Mk40ZkE3elhJVGhBWWdZZE9YUHFJdnc1VndNWjJRL2YxZ1FJ
SUhZa2JURnBBMHB2SHlKbjZId2lwZEUKN3ZlV25POFZJc2hXRGpLUkZLclRNKzBsbFJiVGNESzh3
ckFBY0JKLzF2SWxwNkcrTDJMNFl4NEp4QmxpR0c1cklZSFlpelF3S2hFaQpnYWhCK29wSnl3d3F0
OFNQTCtHVCttWi8vK2EwbHplNm9rUGxkQlNsU2lzZHhBVHQ5Yk1acVQrclBUeFpmZzhBSi9CSGhn
NDNJZnlFCnprQUNzVjBBSWdiRlN6TkRBbEdUR3JaV0wwYllXdjFJNzB4YXk4cXd5Q3VlUWlPckxZ
b2twclRJdlJpTHJJcEtpMm00Z3RLU1Zsa3UKNEl6UEZ4S1IyYTVkRTJCbC9JVzZ3Sjlmd3kvb0RO
aGFUV09BcmFYQkNGdXJIeWxzclU2TTV5YXRMRHkzWHZFWTlnYlJ5TXBYd1JOTAp0bXlHUWtlc1RH
a3h1YmFMcFAyTjlmN3N2d1NjZ1ljRlhNQ2YwK2JITGxhR2VYVEcvUUJnYTNVS0FMWldQMUxZV3Aw
WVlXdjFJejJZCnRPWENjK3ZMc09KclRpUVJONmlZSk5vbFVLeWdFdktMa2tGTU9nalhjRko3T2RX
WEtLMWJsd0ZZRVgvV2tpVzdKd3B2S1BONW52SDMKWTNoOER2TmNoT0VCcERIQTF1ckVxSzYwYUtn
ZzBQeE1COXBhcXFlcFRwcmJXcUh3M0RDbHhidGhlVzhwOWJTa1FlVkZVdGoycmRMTAppb0cxZlM4
TThuUGZIZ0E0aGIzUmFJTnA4d1ZIcDEwQzhYNE16ekE4QUtwOUNsQmFuUmlSUU94SGlnUmlQOUpv
TlJsaVNxdFFlRTdFCm01SEdFZkptcEY0U0dTYmZtRUdWRFV2azNUTHhBSXlSNUVwcnI2aUJ6QUxP
NGM5U3gxMEloei9qNzhjQVc2dGRBQ0lHSkJEN2tTS0IKMklrUkNjUWVjSVhuNWZZS2FlRzVxNkE2
YWtiSzRRMHEwUTFMS0syazdYdXhHV20xN1RzQW5NSmYxT01kYmh6ekdpbzNqcjg3eEtSQwpaMUFN
c0xVMEdHRnI5U09GcmRVTTFwaU5sVVBKUGdnMk5KMlNTc3U5a0NrdFM2RmdTaHBkc290REVFbXkv
RXRZWmJuUzJ2K0R0QUl1CjRvK0lmdlJwYUlSNWRBYnE0cWNMQUxaV1AxTFlXcDBZWVdzOUhObVlL
SW5JY0tXMXNTeWV5WmI0RVgvQlpKSm9WMXBKMjNjdjEzSzMKTENRbGc5RkZKSktTekNxRHhnS3U0
Yy9KZU1WbnpYQ2QwVEtCZUhlSVNZWE9pQURTR0dCcmRXS0VyZFdQRkxiV2pkSFMzWjNKYWExWQpl
RTdNV3lKeWlvY1ZuclBmZTRGR2VkdDNvWktLYmQ4cHlVdjZJN3hWRm9jRmdDdjRJeUl5US9aNjNw
a2Roai9tbDdXMWhnZEF0VXM0ClFtbXBzSldwUjVRWWYxbHBEU0hWVjFvMFZNVStZaXdzK25ORFpv
WG5saWtlcWk3eEk2NjlxcjJzWXR5MzJyN0x1d1VBSE9FdmRNQmkKZnljTXdEeEs2MzRNajg5aG5v
c3dQQUFSZzY3OEdYVVJrRUJVSUVVQ3NSUGpEZElva2dxTC9pZ1duc3RyeWJPRnhzUnhoTkl5VW1s
UgoyN2J2QUhBV2YyNFMvUXR6MFdHdVIreWdHSkJBbkNHRzRiWVdFb2k5U0FPakVpRVNpQnFrcHhs
dE9DaVdRMUZkYVluQzgyTGJkeStKCm5Bc1d1ajlJcGNXdE1xNjBrcnlrUDQxZGFZV2RjczZlSEFB
RUI4dUVPUmhtRlh2VFhJL1lFUUhjaitIbENVU2E2Vk5BWGJ3U0tXeXQKVG95d3RVajh6bXl5bnAw
cExXUGNTTEZVeTFvaTJyWk1hYm04WHFxMGZGN1BFQ1V1RjRXOEpNVi9NMFhuQnBGS0svYU9CNEN6
K1BQNQo1WC9lYi9XL1lkK01lUjZ4TThRQVcydFVETlVBWUd0MVlvU3QxWTkwZVZ2THhEL3JYVGNz
MlJtaHRPalArTUp6OXc1V2VHNjlwNVVvCkxTb29yWmlYekpRV1pXM2ZUZFk3SGdCTzRzOFNMOEZp
T0ZSYU5NRmovc1VCd05icUZBQnNyWDZrc0xVNk1TNVdGODlJZzVVVVhTS1MKbS85UnJiMUNxZTI3
UDhRU3BXM2Y5N0VOWllNRXBTWHlrcUx0T3c4Y1RkeUJTL2lqUFQxNE1HMHE5N2xKSDdFakFyZ2Z3
K056bU9jaQpEQThnalFHMlZpZEdkYVZGUXdVQkVvaGRTRzI2clhKYzlHZkxTb3ZvV3R0M29tTGI5
N0JBc1ZRQkZxVFhVZHQzQURpTFA3cDBvNXpTCjFob2VBRDIvVHlHQjJEUUdLQzBOUmlRUSs1RitQ
WUhvclNOak5yTWxpLzVFZXdVaTNwODlsa01KcFVWWjIvZnR1TzA3ZWFWVnlrdnUKU291cExXSnBI
b2dzNEFMKzdENlJybjZsWUd2OUN1QitERWdndGd0QXhJQUVZajlTSkJBN01YN1gxaExhaGR5aXY0
MHJMYkhvajZqUwo5ajJJSkdlTThYcDJ4a09XS20zZlQxZUFkYmtNd0pmeDU3OU5ENzVLaDdiV1hJ
L1lRVEhBMXBvaEJ0aGFHb3l3dGZxUmZzaldPclBvCnovaXE4NlNreWpDbFpieUhKZXdvSjV0WXBp
KytKU290U2lyQWNxVlZhdnNPQU9meDEzSWp3dExYY2Q1SDdMc0NnSzNWS1FEWVd2MUkKWVd0MVl2
eUFyV1ZMR3pNZkxQcHo1VkI4MForTHhTM3l5NVZXbEUxbHBaWG1KY01oaGtRRldDeUNiM0xtd0VM
NGN6T3grWmNVdGxhbgpBQjVmeEhrK2hlRUJwREhBMXVyRXFLNjBhS2l0cFZvdy9rNWJpK1h4WW9G
VXd1SnJxcVRTZXJEQkRrV2RaT1B2ejFXQXNWZ0E0Q3ppClZqbTljS2kwYUlLbjdGc0RhSmRBdkIv
RE13d1BnR3FmQXBSV0owWWtFUHVSdnF6ZFEvQ2p5TGlVM1ZFcE9sYzNzdkNjaXlUYXpZSjAKRU43
MjNXWkt5N3J6U0ZjMVVrRnBYVDVMWUczc3F3aXRNYWI3bDdKeTEzbTkwR2tYd1AwWVlHdTFDMERF
Z0FSaVAxSWtFRHN4dmlHQgptSlNpRzdib3o5UkswZk5GZjBhMFYyRER1bGxWVjFwcEpHRlZveGQ1
N0ZTc1FZazdjQTkvMW44aFZXOEVTQ0QraW1HNHJUWDhDc3dRCkEyd3REVWJZV3YxSXAwMGd5Z0lw
OXQ2MEZMMmd0R3FML3VLNEpsRmFsTFI5OXluSVZLNkZXbnVtdElUUkJaa0ZYTUZmL3BMcWphQkUK
TnU4ajlsMEJQQnNDbjBJMUFOaGEvVWhoYTNWaW5Nelcyb1hMeGdxa3NuSW9ZOGhzY29BZmkvNkMw
dUtEQ05tVUtTMUxsSFEwVFpSVwpXbXNQQUJld3QybW9mdDlnYXczWEdTMFRpSGVId0tkUURRQzJW
aWRHMkZyOVNHZXl0UXpmNlk5S1NzdnJIOUVpYTM4dFZxOGZiN0JECnFkSnlaVmlzUC91dXRNUVNS
VGUyTjhZZ3I0REwrRHY1dlo1SGFTbkZVTUk4T2dPMjFuUUJqRkJhS214bGFrM2VnYmFXNm1tcWs0
NnMKaTdjMjJTN1ErQUlwTG1aRU9SUmI5QmV5Z1VLTWxaUVdwVm5JdlI2R0YyK1IzR0NIZ3RLS0Ex
bllWOEFkRkZLRXh4aWVRS1JwSDdFagpBcmdmdytOem1PY2lEQTlBeEtBcmYwWmRCQ1FRRlVpL21r
QjB5c3FTRTBsYlZvcE9mdEVmaTdDeTZJOVNwUlVHTVY0a3lYb3ZMc2Y4CklWYnd4TVJsb1ZrWEFK
ekgzNU52MHp5MjFseVAyRUV4SUlFNFF3ekRiUzBrRUh1UkJrWWx3ZzhuRUwyKzRVcUw5V2dJUXRy
WFZLVksKaXkvNlkwYlliblM1WGxhQksxVmFhUmJTVkZPSzhWL1IvUUtBOC9nN0xNRTZpK0cyMXJ5
UDJCRUIzSThCQ2NST0FTaGVtaGtTaUpyVQpzTFY2TVhhenRYYTFzK3NYRTVRV1JhVkZQbTBYNkpr
QWl1RWRMZm9qcjdUWVNYaWlzdEt5UVdtWmd0S0N0Z0p1NEpHRFZRUnNyUy9vCkROaGEvUUtBcmRX
SkViWldQOUxtdGhhcmpoSTV1NmhtSE5HV0wvcVRwZWhjYVpsMDBaL2JwRVRVc3lkS0s5WjdoVU5p
Q2pJcDNnS0EKUy9penRsZjkzaGlseGZpR1AySnBKcDJCdXZqcEFvQ3QxWThVdGxZbnhqYTJsdHpF
cGw0ZHhaVldyUlJkaEVmZTA2b3ByUzFUV29WNgpMNktRZ3FSb2RBSEFWZndwckk3UXZ2WE1iV3NO
RCtCK0RJL1BZWjZMTUR5QU5BYllXcDBZMVpVV0RiVzFORC9UMjdZV2t5dENhUm1YCkhCUktLeFJJ
VlpWV3FSVGRFRzNFQm9uMVhrSFRWU3JyUmIwWGF5RUJnUVZjeCtWVmhBOHhUd0pSS1lZTXd3T2c1
NThDRW9oTlk0RFMKMG1CRUFyRWY2VldsWmEzTTJSR1Z0d3VVWXN1R2V2YkFrcGFpcDByTE9vV1Va
aUZGUXl5cHROZ2VPMzZNMEJnQ0FLN2hiOVJOVnZWRwpVQ0diNXpFL1BJRDdNU0NCMkM0QUVRTVNp
UDFJa1VEc3hIZ3VnZWc4SzFaRW5pdXRqZEtObVVXQlZLVVVQU2d0U25SVFdyM3VCNkdDCjBuSUg3
VXBMTnVzQ2dFdUlEdFlxZjg3T25VQ2NJUWJZV2pQRUFGdExneEcyVmovU2lxMFZybmx3a296YnhD
WlZXdVFLcEhqT0xsTmEKYVNtNjY5RmcrQ0JoM0ZqeWRWeFp6NVNXOVM5Q1pnSFhNWG92d2dvMTZ1
TGZIUUJzclU0QndOYnFSd3BicXhPanRMVjRqNFpDem82aQowb281T2t2aExRRWI3NFpWVkZwVVZs
cXNlT3RudlZjU0NRQmN3NDhhckNVU2lGUSt6M2tlc2FOaUdKNUFiREhBVTh3VFFCb0RiSzFPCmpP
cEtpMWF6dGF3TG9PQWtIV3dYR0pTV3pOb1pxYlRZb2orcHRHSkpGVFBMcE5KaWxWaHAwckhEeFFD
K2o3TkY3cXZjWVErVmxsSU0KSmN6em1CK2VRTHdmd3pNTUQ0QnFud0tVVmlmR05SS0k2cVQyd0Vr
S05oVnYvK20wVnRCVnJBNDlWMXJja0FvaXlTdWxwSGg5Zjg5VwpWVnFXRHdJQWx6SDNYb1FEcVN0
a3J4YzY3UUs0SHdOc3JYWUJpQmlRUU94SGlnUmlJMnhNdlB4MmtyelN5dE4yUlBIRFNQZU4za3U3
CktGVmF2bmdyRGlLTHQ0eHNQY3IyamJieTh3Q0FjM2pVcG1HVlAyZVJRUHdWdzNCYmEvZ1ZtQ0VH
MkZvYWpHdllXaDBudHJVdTljZHoKZHNkT1Vud3RXem00djIwdlJUZkNvZG9IVHdxb0Nrb3JGbStG
WUJKbUN3c0x1SWMyZmJCVytYTzJSRGJ2SS9aZEFUd2JBcDlDTlFEWQpXdjFJWVd2ZEdNMGxCNzFJ
S2l3RGRFNVNFRDFDTmRVMlpnN0pRUkw3UnZ1akxLdGVONUdvSEFrSnBRVnhCZHhGKzBhanEvdzVD
MXVyClV3Q3d0Zm9GQUZ1ckV5TnNyYXREQlNmcHA3NWhuQ2JhWEVZV1NKMVhXajZCS0lxM21OSXlo
ZzFMNUN2cm41MHVzQ2c2ZG5KZjVRNTcKcUxTVVlpaGhIcDBCVzJ1NkFFWW9MUlcyTXJWcXdmZzRX
K3NGZGZGV2JDQzQvLzlFMzdBc0hsV1VWcWtVZlVzWC9VWHB4ZnFPcGtyTApaRXJMRlcvWlRHa0J3
R1ZvYkpVend4MVdnN3BDTnVramRrUUE5Mk40ZkE3elhJVGhBWWdZZEwrY295NENFb2dLcEdjWlhR
Y0c2eTJyCkdMWFROelVuYVQ5Mjk3RGlJYUZOZzM4bHpUbXlmNW1RaGVTbDlqR1lOQklpNjV1OG56
dzVBT0Q0YzNucFQvK3hOWUI2U2x0cmVBRDAKL0ZOQUFyRnBETU50clkvZkIzWkdKQkREZXd3UnVZ
MElFM0ZUVUZxVU9rbFJObGtta2p5bmQ4TDhJQldsNVN1eDlwZmt2dEdaMGlJaQo3RU1JM0laenNC
YjVZMnNBTld5dFh3SGNqd0VKeEU0QktGNmFWZTREZ1hTTk8yMXRZc3VTS1VxVWxpK1prdThuY3Ja
V0VGcGlHU0NWCjk0ME93NXFjMXl1dExKTDlLRXRVMkRjYUFLNGpUUkV1OHNmV0dPcERXMnY0STNh
R0dHQnJqWXFoR2dCc3JVNk1hOXhwMDNuRkt0TVQKZmJQRjR2U29iK1JRWVJrZ1hWQmF1d1ZsUzBx
TDdSdk5Ja25FR0hvMEFQZHhWSU8xeUI5YkNiV3EwbUo4d3greE5KUE9RRjM4ZEFIQQoxdXBIdXNh
ZDF2QjZxSU90bWtVMzlzeEpZdHNGR2pjcUUwbVdqQnZXbkZGYUlwaWszb3VJcjFrRWdCczRWZVN1
Ly8ybmNZOFo3VnZQCjNMYlc4QUR1eC9ENEhPYTVDTU1EU0dPQXJkV0pjWms3YmVqUjREZkNLV1VQ
NlpUU011eE5MRGxvL2JCYlNXbnhTREtsbGNrK0tDemcKSHE2dElsekUxaDVEZmFpMGxHTElNRHdB
ZXY0cHRFc2czby9oR1lZSFFMVlBBVXFyRStOSDc3VGV4SXJuWitJR2duYjNtTGpTTXZFdApVV2xS
U0JENmNHdEt5dytiS3kxaXJVZmpLUWZaNXdZUnJia0E0REx1dDJsWXhOWWVRRjBobThmUEdCN0Ev
UmhnYTdVTFFNU0FCR0kvCjBnL2RhYjFBc2tUNUJvS21xTFNFclVYZTF2S2htVXdsbWUyVTBtSkhl
VnRMQkJPVTFuNU0wNnNBTElNR2ZiQysrc2ZXRk5Sekp4Qm4KaUdHNHJUWDhDc3dRQTJ3dERjYlgz
Mmx0OEo1NElpOVJXa1MwWFZOYUpCS0lvYXAxNDRkNHNiVVA2NXl4TTBvTE5lN0FmVFJ1TlBxbApQ
N2JPVTZNdS90MEJQQnNDbjBJMUFOaGEvVWpmZWFjVnZSSXFTa3UyYVJCS2F6OXN5NVZXVW1XVktp
MnV6d3p0TmhaRnBaV2tISjNTClFvOEc0REY2ZFhKZnAxcVQ5Tyt3c0xVNkJmQWhXMnQ0QUdrTXNM
VTZNYjdIMW5LTCtDamQxaVlvTGJNcnJYd0RRYSswK093U1JmRloKWGRZbHBXWFlxZkFtNzZIOXc1
V3pCSUNJN2x2bHZPajcvejdxUTZXbEZFTUo4enptbDdXMWhnZEF0VXM0UW1tcHNKV3BOWGtIMmxw
bgpDRTF0V3h1MldJK3BwdGgzVk9Uc2lKZ2tZbFZXKzJFbHBSVmZ1cTYwSUs2QUovZ3ppcmVBbDly
YUw2Q3VrSDFCNkRRSzRINE1qODloCm5vc3dQQUFSZys2WGN4VjdleWVkKzA2N0M1Y3RWMXFKclJY
L1ZkQk5aSDBDc2FxMEVwR1VLUzBUZ3dtREVPdXpWVG81QUxpQVA0S3QKL1RGcUpCQi94WUFFNGd3
eERMZTFQbjRmMkJtbnV0TmFhN1pON05WOFpnTkI0N3dsWTRYUzRvc0hFNlVWRHp0V1dpRnJ5WlNX
SEJaVgpXTUFqaUJRaC90ajZGSFdKYk41SDdMc0NlSGtDa2FiOUZCUXZ6U3IzZ1VBNitrNXJqQW5j
Wmp2Y1FKQW81QWR6cFVXL2xKWXMzaEpLCnkybXQ2RkFWbTd3elc4dDNRZ1dBRzZqV1lLMyt4OWJI
cUdGcmRRb0F0bGEvQUdCcmRXSWNkNmRsS3dlRDBxb1VweE9GRW5PcHRQeHIKSkpUV2RrNXBSZXEw
anQ3U0xyTW8zN2dRQUc3aWQ1SDdrRnZQNU5XYUw2WStWRnBLTVpRd2o4NkFyVFZkQUNPVWxncGJt
ZnFyZDlwQwpWeXJqNjlrTFNzczdTZXdnVVdVVjN4S1ZsaDgybkJWWFdySlVpMUtsSlJLSVpMaW5C
UUQzY0dFVjRacTJ0aWFHSnhCcDJrZnNpQUR1CngvRDRIT2E1Q01NREVESG9mamxIWFlUUDNtbWpu
aWtvbnFDMHlKQXhvbFRydk5JeWpDbFJXdkZOVmFWVkt0V0N3Z0llNEdhYmhxVnMKYllLdHBSQkRo
dUVCMFBOUEFRbkVwakVNdDdVK2ZoL1lHWHZkYVcxVVBIV2x0WlVVVHpvSVJhVVZ4dm1wdE53NCs4
QnlPeDMzSHNhYgp5RE1BdUllbmZiQSsrOGRXd3NoKy92S2ZzN0MxZmdWd1B3WWtFRHNGb0hocFZy
a1BCTkttZDlxZ3JUWXZYbnhhajdhckd3aVdpOU9sCitJb05GeWhWV3A1M1YxcHBxUlo1YWtQeXdn
UEFOYlJzTlBxaFA3WU9TUU9qRXVFZzZrTmJhL2dqZG9ZWVlHdU5pcUVhQUd5dFRveVAKNzdSdVpW
NmhLOVcrdXRDLzdXQURRUXJKd2F3b25ud0NrU210T0k0MWlkSWk4dDdZTDZVRkFFL1FwWlA3Qi83
WU9zWElmdjV5UFd6cApQSWMvWW1rbW5ZRzYrT2tDZ0szVmovVFduYmJlbFlybzVMWTIwWitLdXpX
bnBWcG5sRmF5Yi9UK1VqZ1hZLzBMS0hFSG5xTC9Wam4rCmg4bS8vMDlKL1E4ZnY4UE9iV3NORCtC
K0RJL1BZWjZMTUR5QU5BYllXcDBZcjk5cFl4YVBHMG0zbEJiTDRwVkt0WklpSzY2cldBVjgKWnFj
Sit3d1dGdkFRM1FWV3dCdHQ3VHVrZ1ZHSmNCRDFvZEpTaWlIRDhBRG8rYWZRTG9GNFA0Wm5HQjRB
MVQ0RktLMU9qQ2Z1dElVRQpuR2lJbFNvdG90UmJPcSswaEdKTHk5a1RrZWVxdmFwS0N4b0xlSUMv
QWQ5Rzl2UE1mMnc5WldRL2Y5bldxcERONDJjTUQrQitETEMxCjJnVWdZa0JROXptK0FBQWdBRWxF
UVZRQ3NSOXA3VTdyL21tbGtNcVZWdExrUFpacXNTd2ViYkpIQXdXL0tTcXRyRlJyWDEyWVVRZWwK
UlY3RDhYQ2hzSUFuaUE3V21HK2pQaU5zTFYyeVNSK3hnMklZYm1zTnZ3SXp4QUJiUzROUjNtbU5T
WFJTVUZyUkp2SnZLQ290aWdsRQppcnMxeTVvcXJyU0l0UjVsQ2NRelRkNjluWVlVSWZBUTVSUWhi
SzFlak96bkwvODVXeUtiOXhIN3JnQ2VEWUZQb1JvQWJLMStwTjRXCk10NWIycGdqVlY3Qng1UldT
TnFGRy9aNXBXV0lXRDI3VUZva2x4ZFNTV25Cd0FLZTRFY04xcEJiNGZBL3RwUklBNk1TNFNCcTJG
cWQKQXZpUXJUVThnRFFHMkZwdFlZbXlCRnlpdEl5djB3b0xBNzBhbzQxK2xXcmRVbHB1bkpMUzh1
RzF2UXJBY2poYjVMNUlBcEdHMmxwZgp2c05XeUlZTEhacnBNYitzclRVOEFLcGR3aEZLUzRXdFRO
Mk4xeHBqeUxMaWRGbnFGTDJsWFd3WlNrWFN5Vkt0TUtTSjQ0U1hvdElxCmxtcFpzbkVaWTY4TEFT
eUZPNnNJa1VEc3hjaCsvbkxpb0VMMkJhSFRLSUQ3TVR3K2gza3V3dkFBUkF5Nlg4NVJGNkhUV2U0
U1JuaEwKMGNNcWRhVmk5T1Z0Ylg2V2FwRlBJQnAyU0tFbzNwVnFKVXFMQ0JvTGFJQkhiUm9Xc2JX
UVFGUW1tL1FST3lnR0pCQm5pR0c0cmZYcQorMER1Q1NVcitLUnZKQlhQOVZLdEVIaE5hVjBvaWdl
QUIyaldCd3UyVmk5Rzl2TTMvcHc5VHpidkkzWkVBUGRqZUhrQ2tXYjZGRkFYCmZ3ZnVNTlpITkF3
dWxSWlZTclhPS0MyWCs2T0MwaUlucE02V2FwWHVRQUJ3R2UwYmpjTFc2a2dhR0pVSUIxSEQxdm9W
QTJ5dFVURlUKQTRDdGRYQ1VNVnVwcUR4WFd0NlJLaWd0L3g3V2VyUldxa1ZCYWNsNjluM284NlZh
QVBBTWZUdTVEN1MxVUJmL0JlcERwYVVVUXduego2SXhsNitKcDJrOEJ0bFlCNFMxbUU2Vk9oYUx5
cko2OW1rRGtBeWVsV3IrVWxxZitWYW9GQUUrZ3RGVU9Fb2k5R05uUGM5OWh1NUJOCitvZ2RFY0Q5
R0I2Znd6d1hZWGdBYVF5d3Rmd3Y4bnIyVGE0Y3BJT3VWTmRMdGRLaWVMcFhGQThBai9EbjU1N1N0
eElKeEk2a2dWR0oKY0JEMWxMYlc4QURvK2FlQUJHTFRHS0MwNHV0T0pERnZLVk5hNTdwUzNTdlZF
cmJXZmtmMlpWbGJTV2x4ZVFZQTkrRWNMRkVRcUM2MgpZR3MxWm1RL3c5YlN4endCM0k4QkNjUjJB
WWdZRms0Z01qdUtlVXNubEZhOVZJdEl0QjZ0bEdvVmQ0a3VKUkI1MUdqaURqeEhJVVVZClp5dHNy
YmFNc0xWMHlTWjl4QTZLQWJiV0RER3NhR3RadTJmbDRpdXhPTjBGbENndG9xVDFxUGVXN3BWcVJZ
bDN0U2dlQUI3aHFBWUwKdGxaSDBpVnRMVldseGZqbWZjUytLd0RZV3AwQytMeXRaV1VXTHdUREZR
OUxJRzVNYkYzWVFQQm5xUmF4ZTRJdjFiTEZVaTFEeUJFQwp6M0Y2cTV4eHRwYm1yWENncmFXbXRH
amNZMGI3NWo2M3JUVThnUHN4UEQ2SGVTN0M4QURTR0Q1bmF3VmRGZVZMRUVIaVBablNDc1ZiCjdq
MVhTN1hTSGcyTXlDUktLN1cxbWw4RllFbGNYa1dJQkdJdlJpUVFkY21HR3lyREE2RG5uMEs3Qk9M
OUdKNWhlQUJVK3hTK29yUkUKaXludUxURmJLM2wva0R2R0ZwVVdPMGlVYXZGQmhOS1NwVnI4RUpa
QXpFcTFBT0FoN3JkcFFBS3hJK21TQ1VRTjZnclpQSDdHOEFEdQp4d0JicTEwQUlvYTNKeEIzTTJt
TEtUcFRVMXJpcVNMN2Y3SUVJbyt1c0V2MHVWSXRIbHhhcWlXa0dBRGNSNXMrV0xDMWVqSEMxdEls
Cm0vUVJPeWlHNGJiVzhDc3dRd3h2dDdYU2xKd29oc3BrVTdTc1JBSnhPNWRBWkJIZkx0WGlvUUhB
SXpSdU5BcGJxeU1wYkMxRnNua2YKc2U4SzROa1ErQlNxQWJ6TTFwSU5GNXpieEdTVGU0RTlRRW9K
UkNHU3lOQ1ZCQ0pQL0IyV2FybERicDRvQURCMDdPUU9XNnNYSTJ3dApYYko1SHJHalltaVpRTHc3
QkQ2RmFnQnoyMXBKU2s0bUIvMGJ6cFJxU1U4cFNTQzZRVmgwbWRLcUpoRHJwVm9BOEFnYVcrWG9L
eTBhCmFtdHAzbndIMmxvckt5MmxHRXFZUjJmQTFwb3VnQkZLNnplYmRYMUZDODA4dlFEYVJVNHQ4
Y2NUaUZzcGdTaHlqbjZjRUpwUVdvN28KZDZrV1VvVEFjL3daVFFtQ0JHSS9VaVFRZGNrbWZjU09D
T0IrREkvUFlaNkxNRHdBRVlQdWwvUDRJbVRGVDJUTUp2V056T0l4VzZ1aQp0SWdzMjBDd1NGUlNX
djQ5OFRXbXRDd3ZDSU9KQlRUQkh3MFRCRWdnOW1GRUFsR1hiTkpIN0tBWWtFQ2NJWWJodGhhanN2
eVhHM2ViCmJIWGxvSFNiaE5MSzZySkNYWHhOYVIwbEVIbU1mZ2dyUDB3QXVJODBSVGhDRU1EVzZr
WUtXMHVSYk41SDdJZ0E3c2VBQkdLbkFCUXYKRFpkTVRnQVY5MTNlUStHMlZqaXNvclRxdGxaY2dj
ZzFVcEpBM04vK000RUlBRTFRcmNHQ3JhVkFDbHZyQzlTd3RYN0ZBRnRyVkF6VgpBTFF1VGI1eXNK
NlNDN2JXSmhWT3VneVFpYVJLQXBHc2YwOXFhLzBxMVpKK0dnQTh3NmtpOTRHMkZ1cmkyNU9PczdW
V1ZscEtNWlF3Cmo4NUFYZngwQVdoY21rSktMcXRuTnlXbGxWWkRKVFlZczZ6Y2pvSjFwUlVQcWlV
US9SdThBZ09BeDdpMmloQUp4TjZNcXFSSUlPcVMKVGZxSUhSSEEvUmdlbjhNOEYyRjRBR2tNSFNM
YmlLc2taaFF4SWxsbHhaV1dQNFFLU211VEwzbkpGUFp1VGhjdHVucDJLaXN0WG9VRgpiUVcwd3Mw
MkRVZ2dLcEFpZ2ZnRjZpbHRyZUVCMFBOUEFRbkVwakYwVTFvL1ZnN210cFlYU1RHQkdFS0ppYjhv
a2xKYmkxbFd3dGJpCkljbTI4Sm1uQllrRk5FS0RQbGl3dFhvenFwTEMxdElsbStjeFB6eUErekVn
Z2RndUFCRkRpMHNqaXAreWJDRVZ0MnBPcTZ5eWxZUGUKMXVLS3FGQkhYMUphSm03Ylk1bUJaYml0
QlFCTjBMTFJLR3d0QlZMWVdsK2dQclMxNW5yRURvb0J0dFlNTVR5M3RhcjE3TXpXWXBDdApSd3Qy
VkNtQm1LNVFwTnlPa3BuQWJPVmdLWUVJQU0vUnE1TTdiSzNlaktxa1M5cGFxa3FMOGMzN2lIMVhB
TEMxT2dWdzZkTDRIZzFiClJXa1o5eDdSbzRHeXJacXBJSksya3RJaWJtdkozSit4L2oxa2QxYWlT
cWtXQURSQjk2MXlodHdqQnRwYXFxZXBUcXF2dEdqY1kwYjcKRVR1M3JUVThnUHN4UEQ2SGVTN0M4
QURTR0g1RVpvM1orRzhMV1R6aE50R3V4TmhiU2dsRUk1UldOZWRZVjFwaGtGeXhBVUJEYU94Rgp1
QU1KUkFWU0pCQy9RSDJvdEpSaXlEQThBSHIrS2JSTElONlA0Um1HQjBDMVQ2RTRhWTNoVlZmdXB1
R1NnNkxFeXI4bkhsOUwvT1ZLCmk0bWtVcW1XWWFWYVJQdGV6b1gyRUNRVTI5VnJBZ0JGL0MwakNK
QkE3RWE2WkFKUmc3cENObytmTVR5QSt6SEExbW9YZ0lpQkM2QmEKajRaczVhQVhXMXhweFZGamd0
RU5XbEphWENRUm1TMG1FQzJqam9HYVJOSXhwUVVBalNBY3JHVUVBV3l0UG95d3RYVEpKbjNFRG9w
aAp1SzAxL0FyTUVJTU13SEpEaWxXdlcvR1NHNEhYczFjU2lOS09JcE0yQ2FVb3BBcEthdzhwVFNC
Nlc0dmJhUURRQk9VVTRUS0NBTFpXCk4xTFlXb3BrRXo5aVh4WEFzeUh3S2VRQkNKSEVqS1RjMWtv
R3lSTi8yU0ZjZXBIWnlyWVd1d0VaTDZUY09IRllLdzhCZ0ViNFhZTzEKakNDQXJkV0hFYmFXTHRr
OGo5aFJNYlJNSU40ZEFwK0NWMUhXRk92WnM1V0RKbTg5NnF1cy9JM0RzTHdlcGRWZEJhV1ZsZEpM
VzR2QgpVZHQ0RUFBMHdJVWk5eUczaklHMkZyWkJiRTg2enRaYVdXa3B4VkRDUERvRHR0YUFBRUk5
ZXpHTDkzdmxvQ0YvVEZhS2JoS2xGVjVqCkNVVHpXMm5sZXhmQ3dnTGE0YzRxd21Xc0Z5UVF1NUVp
Z2FoTDlnV2gweWlBK3pFOFBvZDVMb0pPQUZFREJhVWxMZTAwejVlMkNLMzAKYUJEMTdJWXRES1Mw
dXN2bTQyWjJtaVZMbE8za0F3QU44TFJOd3pLQ0FBbkVQb3hJSU9xU3pmT01ueUVHSkJBN3h5Q3pl
UDYxWFNINQpCbG1sQktKWFBLVjZkdjlDYWtmVlM3VVNrY2NVWEJpSEpTNGhzb0JtYU5ZSGF4bEJB
RnVyR3lsc0xVV3lMd2lkZGdIY2p3RUp4Qm9zCk1Va2tzM2ppUFQ5WERtNytQZTRZV2FzZWhpV2l3
cUpGcHJUODNkdm5HSWtDRVZkYUFOQU1YUnFOTGlNSVlHdjFZWVN0cFV2MkJhSFQKTGdiWVdvMWlz
UDUvbkhUWlVzVWpIU2tLaWI5azMyVWhtbGc5ZXoyQkdNVldKdWdTa1ZkcXhBVUFyZEMzay91UVc4
WkFXOHRhUGRwbApWS3huWE1uV1VsVmFqTzhMUW1lR0FHQnJrUmN1SWdGbm1KcWhncmZrRGt6RlZz
a0o4OHNBRDZ1N0N0U1pyUlZoVVlNRk5JYlNWamtyCldTL0RiSzJ2cTFqUHFIaWVveDcyMnQrWHVX
MnQ0UUhjaitIeE9jeHpFYTRHVU81S0ZZWkpXNFJXZWpRWXByUW8zK2lHeEFhQ3RqQnUKcHJTSUto
dExJMEVJTk1mZkNpdm5rVUJVSUVVQzhRdlVoMHBMS1lZTXd3T2c1NTlDdXdUaS9SaWU0WElBSjcy
bGJPV2dmMCttdEF5Vgo2dG16QktLazVvbS9OT2RZYWc5eDVzd0E0Q1NpZzdWSUxtWmdBcEUrYldz
aGdmZ3A2Z3JaZXcyVjVnSGNqMkVOVzB0b0pGL01ickkzCkNLVzFsMnE1RjZ4TURpYkRWdnZDeXha
WlI5UXMvS1NOQXdDMFFTRkZ1SWhEQUZ0TGdSUzIxaGVvNTA0Z3poRERjRnRyK0JVb3hWREsKNGhH
UnRWN2V4S0tucko0OVd6bFlTU0NHRWl2eVZWOEgxTWIvVjF5MFdDcEVCSUJIK0ZHRHRZaERBRnVy
TjZNcTZScVROcUZHWGZ5NwpBM2cyeElTZndpNkhkdTJ5LzhvazNwS1hPODZ5TXVFOXhFNGlTZnha
YjFtVkVvaUZVdnFZUUV3cTJLUFNZblgweUJBQ2JYRzJ5SDJSCkV1TWhkK3FCdGhicTR0dVQraCsr
bkVDazhubk9JM1JHeGRBeWdYaDNpR2srQlpmRm84eGIybktsRlZjTytsZCsxTE5iSzRZbHFsZDMK
K2R4ZnJPN0txVU1kUFF3c29DRXVyeUpjSkJlREJLSUNLUktJWDZBK1ZGcEtNWlF3amM1WTE5YVNp
c2VRYnpvVjVJNS9EN2VqdkN3SwpLd2NMOWV4eUE4R1ljNHpuTEowdzVtbko2aTVqakpYVUFOQVFq
OW8wTEpLTFFRS3hONk1xNlJxVGRnQjFoZXdMUXFkUkFQZGplSHdPCjZoZkJTdGwwMWx2aVE4UkRX
SW5Wa2RJaUs0ZU4xR25PTWI1Z3ZWVUdiUVcwUjVzK1dJczRCTEMxRkVoaGEzMkJHZ25FWHpGOE80
Rm8KeU1TU0taR1B5NVJXNGkyNTVHQ1d4V01sVmhTVGc4SUdPOG81bWdxMWlVckxIUVlBN2RDKzBl
Z2lEZ0ZzcmQ2TXFxUnJUTm9CMUNXeQpMd2lkZGdIY2oySGlCS0tvR1dmRjZmVXNIa25GWTlrZ05T
ZXNsbk1VS3djdHA5N2ZzQWxORjNnaHJvRG02TmpKZlJHSEFMYVdBaWxzCnJTOVF3OWI2RmNPSGJD
MDMwblk2aTFmd2xpZ1JXM1dsdFZ0VUZNclY5MzluMUU3QVJaWG45NDJPSXEvWkJRQUF2YTF5eGpr
RW1qZk4KZ2JhV210S2lvU3BXOWROY1k5SU9vRDVVV2tveGxEQ1AybnQ5WGJ6TkRhcXNLOVh2bFlQ
U1c3SmVhZTM1UjhQR3lRK2grTDJ0NVJ4WgpmcENTTndCQUUvekZ2eE5Vc0VndUJnbkUzb3lxcEd0
TTJnSFVGYkl2Q0oxR0FkeVA0ZkU1UEJtZ1VKeE9STEVobG13OUdyMmxjSGlpCnRCSTd5bEswcktM
WWtwTE94RmVrRFZaV1dpVFNsd0RRQk03QlFpNm1ONk1xS1JLSW5SalhtTFJqcUtlMHRZWUhRTTgv
aFVFSnhCOVoKdkNpSnhOK0dVU1JaRThkaDVPWEVYMUJhamlhampqbEhVUmZQVHhJT0Z0QWNhWW9R
RG9FQ0tXeXRUb3lxcEd0TTJnSFVzTFYrQlhBLwpCcTBFWWlKV2Fpc0hUZkNXRHJKNG5zOUxMMHRN
ZXNXdllkaE9od1dYNXh5cGxuTUVnQTQ0cXNHQ1E5Q2JVWlVVdGxZbnhqVW03UmpxClExdnJ4VUtu
WFF5VDJscVdUSDFibTRNc0hoR1pMU3ZWK3UyRS9jZzU1dFNpdW92c0x1QXVYd1VBT01TcEl2Y2hk
N1JGSEFMWVdyMFoKVlVuWG1MUUp0YXJTWW54ZkVEb3pCTkRCMWhKMmxKVlpQRll2VlZZOFBJc252
YVZDNGk4b3JmME5XM25sSUU4enlweWpUQ0FDUUZOYwpXMFc0eUVPTGhnb0NYUlU3ek5aU1BVMTEw
a1VtYmNLclJEMjNyVFU4Z1BzeFBENEhsM2xMaEJhVE94U0tuVXBaUEZhWGxYcExTWWxVCm9yUW9p
Q1RMeHkwcXJSakxIbGtpdGdDZ0llNjNhVUF1cGplaktpa1NpSjBZMTVpMFk2Z1BsWlpTREJtR0Iw
RFBQNFZuNXhCeWVseEoKRlJwaTVWazgwWlVxVTFwc1pGWlNWYksxOW44R3JaVzNoNUI2RFFYdVFD
YzA2SU8xaUsyMWpDQkFBckViNlJxVGRnQjFoV3dlVjJsNApBUGRqdUg0T1VlNzR5blRtRWxXV0Fl
NVp2Q2lKeE1wQjZZVDV5blREVmc1U1VzOGVsWllyakxlZU92NCtVZ05BSnpSdU5BcUhvRGVqCktp
bHNyVTZNYTB6YU1kUnpKeEJuaUtHM3JiVy9NYzNpOFdXQVJMNlpnaWtwcmNnaXFxeUNha3B5anZ0
TFVwelZsSmFQTUluT1FtY0IKUGRDcmt6c2NBZ1ZTMkZxZEdGVkoxNWkwQ1RYcTR0OGR3T0VRc2Fn
OC9yTlFuSDZ3Y2pEM2x0SjZkaS9PY2x1TEIrYUw1Tk42ZHNzUApTYXU1QUtBWk5MYktHZWdRZkx2
RWVNaWRHblh4dlJqWG1MUUpyeEkxYksxT0FSU0g4TW9wV1Fab01qbFRXam00R2ZaZElONTZsTmV6
Cmt6emtZT1VnNVU0WUw5WGljVU5oQVkyaHRCZmhEdVJpZWpPcWtpS0IySWx4alVrN2h2cFFhU25G
VU1JOGF1KzVyVlZiQnNqWDZtM1YKUFFlZHU1UjdTNFhpOUxTZXZaWnpsQ0l2YzhKUTVRNTBndlpl
aER1UWkxRWdSUUt4RTZNcTZScVRkZ0IxaGV3TFFxZFJBQTlpRUxKcApTN0o0VkNoT3o3TjQ4aEJl
UUVWbUt5c3RKcllTMnl0TElFWmxGYjVhYU9jT3RNZXd2UWdENEJEMFpsUWxoYTNWaVhHTlNUdUdH
Z25FClh6RmNDSUFaUTdIRTZ2VEtRUzZMdGl5TDV4b3V4RVBLUFJwa1BmdG1nc295a1ZxY1p2WUtB
RFRCRkhzUkRxUmV4Q0dBcmRXYlVaVjAKalVrN2dMcEU5bGFoMHllQUV6SDRGWGxCYVJIVk5oQThV
UzhWRDVHS3pYQVdJbDdQWGxGYWhpbXRuWHBMRTRnQTBCWno3VVU0a0hvUgpod0MybGdJcEp1MFhx
R0ZyL1lxaEdJQnhKZVJaRm85azhSTWxLd2NMV2J4d1ZNamlzV1pYL0JCMmxQVkt5MW9pdzNyREUv
K0tTQ2NNClBScUFYcmkyRnlHTisvdFZrM2VnUTZCNm11cWsra3FMaHFwWVROb3ZVQjhxTGFVWVNw
aEg3ZkVBTWs4b1hRWVl2YVZmS3dmVDR2UjQKU0tWVVM0NnlLNjBndHNpa3RwWU5TZ3NBK3VEeUtz
SlIzMnJrWWhSSWtVRHN4S2hLdXNha0hVQmRJWnRUNkF3SndBZmhGTThtRitlbAp5d0tUVWkwcnMz
aXNYdXBVUFR1alQ5S1FzcDY5bkVCTVRnSUFtdUJOZXhFT3BGNGtGNE1Fb2dJcEp1MFhxS2UwdFlZ
SFFFSzd1Q2lTCkRRUkQ5akMzdFhqVWJ2VmhLTEU2WGpsSTBTbnpveGFVVm1CUHhCbE1MS0FUM3Jv
WDRVRHFSUndDMkZxOUdWVkoxNWkwQTZoaGE2WDQKa2NVVFBScThTRExIeGVtR240WllCbWdMaDBp
bHRWTm45ZXpTUEVPUEJxQUxYcjhYNFVEcVJSd0MyRm9LcEppMFg2QSt0TFdHS3kybApHTUl5d0VU
eHNMK2V4RXZXdnlQVVM1a2pwZVhHc2VTVUZqdUVFdG5FRDJIMTdJYUtTZ3NBMnVOVGV4RU9wRjdF
SVlDdDFadFJsWFNOClNadFFxeW90eGpkRi9xNS9BUHVrMmtXT2tFM2tWVlZwR1dBU1pEeUVGYWN6
MlpRZVpPSlIvcUEwNXlnVm5mWFVleW9SQVByZ20zc1IKRHFUV2YyalJVRUdnK1prT3RMVlVUMU9k
ZEpGSm0vQXFVYTlvYTFXYWVSS0psWU9sclpyUEZLZnpxSk5sZ0Q3aHlIU3RDVHZoVktndApwYkVD
UUNOOGZDL0NnZFNMNUdLUVFGUWd4YVQ5QXZXaDBsS0tvWVNXRjhIYXBMdVZ0S3lJZUJiUHloZlNR
ektsNVk3eVNzdEZMbXd0CnlzWTVQQ1RwTHc4QWphRXFzQUpteUJSb1VpK1NpMEVDc1Rlakt1a2Fr
M1lBZFlWc0hsdnJTUUNHWmQrY2JiUW5EVTNZNE5tL002bXkKNGcyejlpaE1LcjRLOWV3azY5bDNa
WlllSlVQeHVVdmVYLzdCR1FOQUZYL2YrRmEvaFhvUmh3QzJsZ0lwSnUwWHFMK1ZRSlRWVWQ0bwpx
alpjK0xGeWtJdXRjczZSSzYyWVR5UmUzVlZJSUhKcUdGaEFUMFFINjczZjZwZFNMK0lRd05icXph
aEt1c2FrSFVCZEludGRBckdnCmVJUnNNc1lZSVNYUGJDQllXam5JR2p1a1NvdTl3b3ZaaVhkaWtJ
VlprRmhBTHhSU2hLLzdWcitkZXBFUzQ5VnNyVlhxNGhWWlY3a3QKdk5mV3NrUmUwSlNVRnBXOUpi
bUI0RTZXNUF1eklxdWd0TGczbGlVUTVTRStPV2lZR0lPRkJYVEVqeHFzZWI3Vkg3K2w3b3pMNUdJ
RwoybHBJSUxabkhHZHJmZnkyY0tpMGxHSW9vWFlSUkhFNkwzWGFEeEkxVllkWlBLSms1V0J1YXpI
NEJHSlFXcnYya2txTGNwRUhEd3ZvCmpMTkY3c08vMWF0a0NnTHBHcmtZSkJCN002cVNyakZwQjFC
WHlLYjhBN2krREpDaTJHS3lTaVlRazBOMkJjU1dBUkxGNHZTUVFQVHMKc2xTTDIyblpJZUVkYVcw
WEFMVERuVldFVTM2clAwdTlpSzIxV2dLUlBxNWk0ODhmbnJSanFDZE9JRXBaRlhzMGhOZFNPK3Jx
Qm9JVQpsUmFUYTN0eXNFek5JdVIyV25EUEdwMC9BSlR3UjdGKzhESW0rVllQaVFFT2dRSXBiSzFP
aktxa2EwemFBZFFsc3RHcEJ1dDlJN1p5CjBGRHFMVEdsRmVxaFpFMlZaZS9odHBaSS9NWEQrQ0gr
Q01zT0tWQlQrS3BqSTBLZ0Y3eUQ5ZXhtUC9wYkxXTDQrTit2TytNYURnRnMKTFFWU1ROb3ZVTTlo
YTVYcnBVUXBPdTkyWmZoUlNZblZtWldEcWEwVkVuOGxrVmZvMFpDNVhBRFFGbG1LOFBITkhyYVdN
dTlBaHdCMQo4ZTFKL1E4ZlZscTB6S1FkUUQzUzFncGpjOFVqU3F5WWJIS3BRNjYxa2tPeWJLRWxy
NVFxS3djVDJjU28vU0ZPYm0yb2J3YzBjRmlECkJWdnJNYThtOVNLNUdDUVFlek9xa3E0eGFjZFE2
OXBhdTRpSm1UNnkrOGNydktYOW5ma0dnc0xseWtXU2tXNVRUQ0NLVTR0ZHRRNE8KRVVmQnZnSzY0
bHlSKytNdjVUeTIxc2YvZnQwWjE4akZJSUdvUUlwSit3WHFRNlhWS29hMFhvcDRLYnFoMUczYUQ2
azBYS0JzQThIeQpNc0I0U0tSTzJrT1lMSUdZMkdrQTBBMFhWeEVpZ2ZnMjZrVWNBdGhhdlJsVlNk
ZVl0QU9vSzJUdDVsV1VMM0h3NENUSkhnM01iU29vCm5pVHhSMTZ4eFpXRG1kS2lSR241THlrN3lp
Ukt5dzBNQUgzd1oyNS9xWkJBZkJYMUlnNEJiQzBGVWt6YUwxQzNUaUQ2ZlpiZEFESTUKNk44anFx
eE11bFZ6WFdubHl3QkRNVHVScjJmM3NlZlY2eUxuNkR1NkcyZ3JvRFArNlBtM0dyYlcyNmdYY1Fo
Z2EvVm1WQ1ZkWTlJbQoxSytxaXhmTDk1aU9xclllRGU4Z3JzYVNEUVJqQ2Z6Qk1rQlh3UzVXRGpM
cWhEZWhCb0JPRUNuQ0J0OXEyRnF2b3RaL2FORlFRYUQ1Cm1RNjB0VlJQVTUxMGtVbWI4Q3BSUDdP
MXBHektYN0M1YjFTclorZWN5Y3BCb25RWllEYUlUeUFtMUVuT0VXVllRR2VVYTdBYWZLc2YKMzVE
bXNiV1dVbHIwNlZ3TUVvZ0twSmkwWDZBK1ZGckZHSUo4TVhYRnc0NjNpUmlyYmRWY0xFNW4vZGg1
Q1R4M3drUjFsd3ZkeGtPawoxZ0tBTHZoZDVENVBBdkYrRE04d1E2WkFrM3FSWEF3U2lMMFpWVW5Y
bUxRRHFDdGtoWG5GZXpSWXk1ZnZGYnlsMkQ0OTNhcVpmSDd3Cmw5STZYTFNZYlN3ZHFQazVRRjhC
WFhGaEZTRnNyYkVCd0NIb3phaEtDbHVyRStNYWszWU1kZDNXc21SbHBUa0p1Uk5xcWtwS0t3eWEK
RktmYnBPRkNPS2h3U0ZKbWRZb2FBSHJqem1iUE5KT3ROVnhwNmNjQWgwQ0JGTFpXSjBaVjBqVW03
UURxakN4NFVDR0xGOThyZDNjbQprckxKWEZnNWFFejRMSk9TcWtoZE9NUlRDNFBOblFWMEZ0QVJO
d1ZXUUlNNzliTWhoaWNRYWFqYWcwUFFtMUdWRkxaV0o4WTFKdTBZCmFrTkVaRUxuQTA5YnlPSUp4
Y09WVm93MHRjRU9sRlk0aFBpaVJVdStuRXZFdUZkdUpUbkhKcWNQQUhVOEZWZ0JMUk9JZDRlQXJh
WE0KTzlBaFVEMU5kVko5cFVWRFZTd203ZHVwUTRzcDRTM3R6T2JZV3lxVmF2bW1vV3c5NHBWZG9q
MjF0NnhTNmxEZDFmb3lBSUJBTTRIRgpBVnVMeHQxVmtZdFJJRVVDc1JPakt1a2FrMWFOT3ZPV21G
RVV2S1ZVSTFINWtOUUprK3NOL1RKQVZwa2wzK0UwWFFqTnlvNm1SQ1dYCkN3Q2FvNHZBQ21ocGE2
RXUvZzNVaStSaWtFQlVJTVdrZlJIMWtSM0Z2U1hQN0JXUFliSXA5WlpLT1VkWnF1WC91N1Rkb2RO
ZThMQ0EKL3VncnNEaWVmcXVSUUh3YjlTSU9BV3l0M295cXBHdE0ydmJVcnRSZE5FcWdTaFp2NDBx
TGwycjVlbmtobThvTkZ5bzV4MlRsb0RpawpzR2p4NFVrRHdESDBCRmJBY0Z0cjVRVGlFT3BGSEFM
WVdncWttTFJ6VXFmZUVtL21HZDRnaGs4MFVuMERRYUprNVdEUXdQa29KSEtPCmh2WmtJZkZCeUd5
SjBnS0FYdmpicDlsYmRRWnNyUmJVS0RIK0FPbHFkZkdxcEV2YVdoZDV5eWs1dGd6UUVobEttcEdX
RGlINnZZRmcKWVpmb0xVc2dDb25IY283V0hRTUhDK2dONTJETm96TlFGNjhmQUI1YUNxUklJSDZB
VkgvUzBpdHVDMEUyaVd6Z0wyK0p5eWFYSEN6dgpFaTBIcWRTenl6cDZ1VXUwS1ZJRFFHK2tLY0o1
bE5iOUdCNmZ3endYNFhXWmdqdU1hK1Jpa0VCVUlNV2tIVVR0WHhiTlBLbGFuQzdsCkRtV3lLUjVo
MmJoeWRoVnNMWmx6SkpjZlRPdm8wM1dNQU5BTjFScXNMemc2U0NDK2pScTJWaS9HTld3dFROb2gx
UHZza3BySWlKb3EKNjVUV0ZyeWwvVTFiMmRiaXc2YzVSLzhmRzZTc3RPSWZGM3pZS0xZZVhRY0FP
SU5UUmU1ZjBCbElJTDZLZWhHSEFMYVdBaWttYlcvcQpZbkg2aVhwMjZTMkZ3aXdtMTB4c3YxNHYx
Y3BYRGxycms0TzE3UTRocndBTlhGdEYrQVdkQVZ2cmJkU0xPQVN3dFhvenFwS3VNV2s1Clg3cHkw
RVNSZEpURmt5OEprY1JsVTU1QWxEbEhUK3h6anU2SUtNNklVcVhWNnV3Qm9JYjdiUnJtMFJtb2l4
OFN3RUNINE5zbHhrTSsKMDRHMkZ1cmkyNVA2SDNRNHM1cHhtM2hZUGprWXZLVTBpMWNhaElRNEsx
WjNsVllPSHRscFZyNEFpUVYweHQ5em5UQmNad3hQSUxZWQo0Q25XVkZyMDZWd01Fb2dLcEppMExT
Q3llSGxLN3RoYk1tSU9GTEo0U1hWWGZNV1NvR1k4YVhzSWxuUGt1Y3RXNXc4QVJTUU9WclA4CjIx
dDFScnNFNHYwWW5nRUp4TzZNN09kUEN3SWtFTHVSZm12U3hxNVVwU3llY2EvOEt0V3l5UXQrNVdD
bXRDcjE3RTV0SlNzSEEvWCsKU3lzR0FZQytxS1VJbTlsYXc1WFcvUmhnYTcySyt0TU9RWUZSbFJT
MlZpZkdqMHhhN3kzNWhsZ3hpNWVKbVpyU2tsVldySjdkaG5GWQp6dkhYeXNId0VsODhhUGhPUGdR
REMraU9NelZZajc2UHd4MGRlbjVEYVdkckRiOEMrakhBSVZBZ2hhM1ZpVkdWOU0yVFZvb2tsNUxi
Cm1Oengyb3V2SENSRFA3SjRJZWVZMmx6Q29HSTVSemRFb2JwTDFtckJ3UUkwY0tuSWZma0U0dU1o
dmlBM1gwWDlGWWZnTEtNcUtXeXQKVG93dm03UjJYNk8zWXpQR3VPMmNmM2hMbkMveGxnNlVGaU5O
elRHaHRBSTE1WWRBV3dGS3VMZUtzRmtDOGVieGo5RXlnWGgzaUhuawpwbjRNUTg1OW9FT2dlcHJx
cFBwS2k0YXFXRXhhK1g1anJLVmRXdkhEVEJBNDU3SjQ3azFlVjFsRDRUQmlSZkduVnc3bUt4QkRk
ZGV1CjRzNmRId0RjeDkvd1FxTjVkQVpzTGYwQWtJdFJJRVVDc1JPakt1bXNrelp6a3J4UlJHa2ZV
Uis2SVY5RUZjYk92YVhpTWtBeXNicUwKaUswY2RLT0t2UXR0cnJTQ3lMdDRLUURnSHFLRDFVNXAz
UnhqSHFWMVA0YmhjdlV4a0VEc1Rob1lsUWlSUU5RZ1hYalNYc3ppN2E5WQpwbmppR05iN1hxWnd5
SEdwbHBOWWpKcmlJVGtUSEN4QUFZVVVZWXRieHFNeHZ1RG9JSUg0TnVwcEhZSk9wTEMxT2pHcWtz
NHdhUzB6CnFQeXYwdzBFZjY4Y1pONlM5NmpjQzlHZ292SWhRbWxKZVdhSmt2N3l3andEZ0w0NHFz
RnFjY3VBcllVRTRzdW81M01JK2pLcWtzTFcKNnNRNGJ0SUtiNG1NVnpPbnNuaFVzNlB5VWkyS09V
ZExpYVNMdHBZNHBGYXF4UlFiQUhURjJTSjMyRnIwL0NMQTFtcEJqUkxqRDVEQwoxdXBJcWo5cG4y
VHhySGVac2l6ZW1hMmFwYVR6MVA3OUlUdytTdUtsQVVBL1hGNUYyTlRXUWwwOGJLMzd2SnJVVStS
aUZFbDFWZXd3Cld6S3hBNDhBQUJHY1NVUkJWT3ZyS3RZejlxUk04bTJKMHFLQ2JDcDVTMGtXanhm
RkI4SEdsQlo3RXp2azE5NkZhZDhHQU9pTSs1czkKVTROYkJoS0lMUy9pOEl1QUJHSXYwc0NvUkln
RW9nYnBSeVp0N0xSdXBFZ3FMQVBrV1R3NldhcFZ5am55RThwVms1UjB2RlFyUnZ2NAp0QUhnTng0
SnJJRGh0dFlYSEoxMkNjVDdNVHpEREFsRVRXcllXcjBZa1VEc1I5cDYwcGFLbi93bnlKeW1QSXVY
MjFwczFIU1g2RUxPCmtVU2plS3J2WGNpcnJud2hQUUJvb0kzQTRvQ3RCVnRyYkFCZmN3aHFwSUZS
aVJDMmxnYnAyeVp0T0xLUXhVdGVPcFBGNDJaVGlQTlgKem5FamZveTFjdGdTTlVRV29JTDJBaXVn
eFMwRHRoYjdHWFh4YjZDR3JkV0xFYlpXUDlLN2t6Yms5SnhCeGVxbGNsdExNdGF6ZVBzaApTVThH
WHFxVjVod3RHN2FlY3l3VWJnRkFYM1FVV0FIREU0Z05qbitNQmdFOEcrSUxjdk5WMVBwS2k0WUtB
dFRGZjREMHFxMTFXQzlsCk1pZko3ajJvZm1ieHFqbEg5NmJLeWtGcGEwa2xWU2pWQW9EZTBCQllI
UE1rRUIvRThBaElJSTROWVA2SFZodlN3S2hFaUFTaUJxbXUKaXZXa1AxaC9scG43RjB4V0wwVnlP
NTFTSDlIQWtyOUVTUUxSRWhOYW9yb3I2Zlh3KytRQm9BVzBCVllBYkswR0FiUkxJTjZQNFJtUQpR
T3pPeUg3K3NDQkFBckVqYVgzUzV0cWxzQXp3bEd3Sy82bzdZYW10WlNTUllMRmlXRm5kWmVWMUJJ
QnUrQnYraUtXWmJLM2hWK0IrCkRMQzFYa1VOVzZzaktXeXRUb3o1cExYV3VGK3hqdTJpWGlxOGtp
Z3RxdlVScGV3b1h4UlBzbHRwa0UyRm5LTnhBcTJRYzl6ZmRlc0MKQU1BMUNBZnJFNC9ZUjJOOFFX
NjJzN1dHWHdIOUdHWnpDSG94c3A4L0xRaGdhM1VqTmZ2L09qVmpwR3hpQWNtTzdRV0Rpc3gyZHBm
bwpRczVSc3FRNVJ4S2VWVDRzQUhSRk9VVTRYR2MwVFNEZUhHTWVuWUc2K0NFQlRPRVFLSkFHUmlW
QzJGb2FwRnFNUXJ0d0Yrc3dpMmZZCmUyUzlWTDV5OEVuTzBiR2xPVWNZV0lBT2Z0ZGdmVUZudk56
V2FwbEF2RHZFUE5OQVA0WWg1ejdRMWxJOVRYVlNmYVZGUTFWc1IwWlgKTWlYcnBUYnVFaDNWUytY
ZUVvODNPbUdNUldvdmJsREZRMm81Unk3aUFFQUhGNHJjUC9HSWJaWi9HMzRSWUd2cEI0QUVvZ0lw
RW9pZApHSHVRNXNWUHZpb3JaZ05EdlpSL3BWd3ZsV1h4S2puSHBNbTdMZVVjOTFLdFFzNFIyZ3BR
eFoxVmhKOTR4SDRuZ1hnL2huWVhjZmhGClFBS3hGMmxnVkNKRUFsR0R0QW5qcm5KeTdYSW9tNGpJ
ZWxWa2VCek1DVE5raWtycmRNN1JGOFdURjF0K0RQUm9BRlR4MThyUEdQNkkKZlJERHV4T0k5UHhU
UUFMeGJkU3d0WG94d3RZNlAwaTUrTWxyblhxOTFPOEVJckY2cWN3Sk81OXpQSFRDQUtBN21JT0Z6
QkZzTGNJMAplQmsxYksyT3BMQzFqbEh1Mk80MUVCL1JTRytwcXJST09XR01PblhDWkdGV1dXbkp5
d3dBSFZGS0VTSno5SGlNTCtnTTJGcHZvNGF0CjFZc1J0bGJ4L1JXWHFGRDhsR2tnTmtkRlNkV0pu
S04vb2VTRThlaEZ6bEZvTHdCUXdtRU5GaDZ4WWd6VXhjUFdlZ2UxdnRLaW9ZSkEKOHpNZGFHdXBu
dVpGVW1sUVJhVVZacUtVUlBFUUladUVXaXM0WVd5SjRpVW5qQjFpMGFNQjBNUHBJbmM4WXBGQXBK
WVhjZmhGV0VwcApFUktJelVtUlFJenRQWmtHU3JPREI4c0F4U0duR2k1WWVSUkpKMnd6K1NHNUV3
WUFhcmkraWhDMmxoZ0RDY1MzYW00a0VMc3pzcCtuCkVBU2RHRmROSU9ZdWtTK1Fjci8xMm92Skpx
SEdySmRFTmd4ZmM4SUM4NUVUSm12Q1VpY00yZ3BReDU5NThoV0ZyUVZiaTFwZXhPRVgKQWJaV0w5
TEFxRVFJVzB1QmROY3VoMzJxeWdhVkZ6elI5NktDRTBia3R4T2tuQ2hJT3V0RGNkVmVocXdydHBj
SlJML2xjN3ZMQUFBLwo4RWQ0eERZTEFMWVcrM2xkZC9OTjFMQzFlakYrM3RheXhQd25JaTZiUWp4
ZVY0VzZKL1lHZTNDSTBHZFVjTUwyQWZ4cFdwa2NGSkxPCkg3UDVVUUJBRDJtS0VJL1k0UW5FQnNj
L1JvTUE0RzYraW5xMXVuaFYwbS9hV3Bac2JML2doVmFvVEpmRjZjR2drcllXRHpBenFFeXEKdExL
Q3I4d0pTemVXWmtTeFZLdnhaUUNBT3FvMVdNTnRyVTg4WXBzbEVCL0U4QWd0cDhIZEliNGdOOTlE
dlVnQ2NRaXB2dEtpYnFmSgp6Q2NiZUVvR2xTelZFbmFVUHlRMXFFeXkwcyt3eEYrb3B6cnRoSW1h
TUFEUXhLa2lkOWhhc0xYYUJQQnl6WTBFWW5kRzlqTVNpSTFKCkEyT1QwYkxWZVhuM0JFNllsNW4v
YUxqZ3Q5TXhiUG94ZzRxSTRvNDYvTFJxcFZyQkNRTUFOVnhiUlloSExEVzRDTTFzcmVGWDRINE0K
S05wN0ZmVWl0aFlTaUJmZ2E4WU5HU01Ga05OQXdkSTYxN0g5bWhNV2JLNWpKeXlUZEFDZ2lUdWJQ
Uk1lc2MwQ2VEVEdGK1FtM00yMwpVY1BXNnNYNEtsdXJxSUhreUxMS1BPL1I0Q1NSQ2NycWhoTldP
eVJaT1FnUEN4aUNtd0tMWTU1SDdQMFlucUZwQXZIbUdQUG9ETGliClF3S0FyZFdiVVpYMEJiYldy
bDFxZmFvS0JwWGhMK1NITU9KZ1Ixbloyc3FMcElxa2swNVkwVHc3ZFdZQTBBZ05CRllBYksxR0Fi
emIKMW1vNURlNE9NYzgwMEk5aHlMa1B0TFdXcVl2WG96MXptbDY2aU1xbmt0SmloNlJ1VTFvdlJT
ZWJ2Qjg3WWFuU0lrb2xIUUFvb2FYQQo0cGpIMW5yekk3YlpWUngrRVdCcjZRZUFCS0lDcWU2RkhX
WnJWZmxzTER3UGI5NDFFSk03SkNWUlZXbmwrb3huOVJMWjlFUFNXWCtJCktNekNSb1NBS25vSnJB
QThZcW5CUmZoT0F2RitESEEzWDBXTkJHSkgwZ2tTaUtJUGdvL3F0RUZsUThJdzZEUDJ6MlRsSUJr
cUVQSHIKZmNVSkF3QTlkQmRZQWNnY1VadmI4YnNUaVBUOFU4QTBlQnMxYksxZWpJUHE0aVhUbGIx
eHdpQjV4L2I0aHBJK3M5d0pZNGNJZzRyTQpWckMxK0xKR0FOQ0Vuc0RpZ0sxRkRTNENiQzFNZzVk
Unc5YnFTS3BvYTdtY1lLcWppTFZPb0tKc0tpbXRkSTFmVForSkFHcUg4SlpaCisrZkFZZ01BWmZ5
eGhQVUFESC9FdGhqZ0tWb0VBRnVML1F4YjZ3M1VzTFY2TWZhM3RiWkxzc2xHdDRsWXFmNytsbnps
b0pzUWZzeGYKUktKSFF4eW9mZ2dBcU1FNVdIakVOZ2pnTVlZbkVCc2MveGh3TjJub3B6RFExbHBr
RzBUTno3U2JyVlhPNnhsanRtSkhVS2FCYXJJcApDWnM3WVV4N3NVT0lyUncwenJFNnpqbktMemNB
ZEVjaFJUalBJL1orREhqRUlvRklMUy9pOEl1d2xOSWlKQkNia3paVldtSkx3U0JtCm1IR1d2M1Jh
YVlsNXdLcTdpQjhWaVB3LzYwNFkxMmNBb0l1akdxd3Y2QXpZV21JTUpCRGZxcm1SUU96T3lINytz
SzNWTm9GNHBHYWsKMjhUUFVCcFVWSk5OaDBzVTNTRitDS2JQS0QxS0pCQUJRQkZuaTl6bjBSbklI
RDBJQUxZV2JLMlhVY1BXNmtoNjM5WksreUJRNWpaZApiajFxOHpIOFVld1ZJZW5NTVZIdWhBR0FL
aTZ2SXB6bjZYSS9CanhpSDQveEJia0pkL050MUxDMWVqRmV0TFY4V280TzFVek5vTHJRClE2dVVE
YlRCSUR1OTNTRUFqTUg5TmcxNHhMWVk0Q21HSnhBYkhQOFljRGRwNktjQVc2czNveXJwR1Z2TDJp
TTFVeTJIT3VnSUtpclQKRDVWV1ZaL3hpNVFRUVdZQlE5Q21EOVk4ajlqN01jRFdhcGRBZkJEREk3
U2NCbmVIbUdjYTZNY3c1TndIMmxxcXA2bE9lcUMwakRGSAphcWJTUkpTbEFuTzNpZmZRTW9GRmlq
UG5sTm1UUktYWUFFQVRqUnVORG4vRTB2TTdFUjZ4WWd6WVdyQzE3dk5xVWlPQjJJdFJKaEREClB3
L1VqSW5IL2hSQUJ3bEVjZFRPNy9XWnFmZlFNdkVWNHc2d0lpZ0FVRUxIVHU1NHhIN2lFZHZNMWhw
K0JlN0hBSGZ6VmRSSUlIWWsKTmNiM2NNL1VEQXVrSnB2OEd6TFp4QTdqWEhWOTVvNUthUmlSSlJJ
OVRnRkFIUnBiNVF6WEdYakVOZ3JnMFJqRHB3RTl2d2h3Tjk5RwpEVnVyUFpmUVFMUngyV1I1VXdZ
dmdJaE91VTNwVWNiTEtrY1U3S2dncXpLbFZhaTE1L29NQUpTaHZSZmhQQStZNFkvWSt6RThROU1F
CjRzMHg1cGtHOTJPQXUva3FhdGhhN1dCTEJsWFpiZUt4Sk1kazZjS1NiS0t5UGt0N2FJVXgvTzdP
T1JFQTZHUFlYb1I0eExZWTRDbGcKYTlGTW1udjRGZENQWWNpNXc5WjZOS3lKRDQxZnZoR1ZaVk9t
ZUJLVmRMNjFWVUpFTWJUb243RzBKQUNvWXZ4ZWhIakVOZ2pnTVpyYQpXcWlMaDYxMW4xZVRXbDlw
MFZCYnF3MWpMRE9QdmhFRmdWTk9CVklRVVluYkZBMHF3OTRVSTNYNnpQLzdUSlAzc2o1cmN1b0Fj
QWx6CjdVV0lSK3duSHJGSUlNTGRmQmsxRW9nWEJ1bGtVQW50bGVzejE5bUJ4UzFxN1MyUjJYNHFM
UUJReGFSN0VRN1hHUzBmc1hlSG1PY1IKK3lBR0pCRFp6K3RPZ3pkUkk0RjQ4c0RUZVQxMmJHcFE1
WDJxN3JjZVBlaWg1ZDRFQUxwNHdWNkU4enhnWUdzOUNBQzJGcWJCeTZoaApheFZnWlY1dkgrRkg0
VG1aallwSzY1UnNJaW1ieENHczdvb2RVdS9zQUFDcXVMOFhJYTFSRDFzTTRINE15Qnc5SHVNTE9n
TzIxdHVvCllXdGx1RkFPVmN2clVUa1ZLTWF3dTJ5Szc0bEhrY3NOQnVvWUNvL0VvcjRkR0lSSGJS
cEczZVh4aUcwUXdHTU1UeUEyT1A0eDRHN1MKMEU5aG9LMjFabDM4TGxueXZYRzJ1eDNieVMzNWkw
Y0YybDhyQjQwbDhuMGMvREJlbi9HNFlWOEJvL0Q2dlFqbmVjVGVqd0dQV0NRUQpxZVZGSEg0UlZy
Z1BySmxBTE5aZGlmZWY2NzFlOTcwU3BTV09xaHdTZjU4UWtkUm5BS0NNNyt4RitBV2RBVnRMaklF
RTRsczE5MnIzCmdZVVNpSmJvUkY2UGZGNHY5R2dJUjBtcnFWREx4WStTcXd2dExwak9MRkZrRndn
OUdvQmgrT1plaFBQb0RHU09IZ1FBV3d1MjFzdW8KUDI5ckJSa1Zhc3N2NXZYOEN3V0RLaUVxeUNa
V21IV3gxaDRTQ3hpQmorOUZPTS9UNVg0TWVNUStIdU1MY2hQdTV0dW92MjFyMWRicgpjZjZMZVQw
aTJiRmR1RmdrWlZQaGtFaWNWNEJCWVFGRDhHZk14NnMxRTE1OTZqeUc0WS9ZK3pFOHcvQUVZb1Bq
SHdQdUpnMzlGR0JyClBSejJmRjdQeUd5Z0xEd1hidFBlUkpTcHRTdExGQ01PZW1nQndBRDgwYmUr
LzVOVEp3SGNqd0cyVnJzRTRvTVlIcUhsTkxnN3hEelQKUUQrR0llYyswTlpxU25qR29NcGJXNTFy
UFVxaVkzdlNvOEdXSzhBMmxxV01SOFhXbzlCWXdBaWtLY0p2MjlyelVPY3g0Qkg3SUFiWQpXckMx
R3ZCcVVyL3pUbXVEck1ycnJnUlhzWUpLNkNxNmJsQWRMRkZrdGZZeUdEaFl3RUJVYTdCZ2E3MHZB
RHhpVVJkUExTL2k4SXV3CnduM2dYWGZhQmdaVjFrUHJnV3l5NFd6WUc4cTE5Z0NnajFORjd1LzhZ
K3Q5MU0wQytKQ3RoYnI0K3dGOGFCcm94d0JicS9SbVYzcDEKdEY3UC9Wdms5Y0loTXE5bjhvNmd2
SmFMRVJHdjVTcXNITXlJUWkyWFRjOFNBUFJ3YlJYaHUvN1llalYxc3dCZWJtczFUU0RlSEdPZQph
WEEvaHBkUEExcnNQakRubmJaMVhvOTRMWmM0U2d6cmptS3o4RXdGbUlsTjNnRmdFTzYzYWZoS3Rl
YnMxRWtBOTJOQTV1anhHRi9RCkdiQzEza1k5b2EybGx0Y3J5Q2FwejZ3WVJCeGxZK3hRV2NBWU5P
aUROZUgzLzVQVWVReDR4RDZJb2RsVkhINFJsblUzYWVpbk1ORFcKR3RaWXg5ck55Q1YrSXE5bmpF
Z0ZFc3ZySlFuRW1DNE1LVWYyaHBnTkxCN2lYMkdkSFlpSXJObHFGV0FBTUFZdEc0M09hV3Qva3Jw
WgpBSGpFSW9GSUxTL2k4SXV3d24xZzFKM1dHS05yVUJIRjFsYVVIRldvdFdlT2xkQmUwRmpBSVBU
cTVBNWI2MlVCd05ZU1l5Q0IrRmJOCnZkcDlZTUNkOXE1czhyQnlrT0lodjVjbzJreHBoYVBZUDlH
akFSaUo3bHZsd05aNlh3Q3d0V0JyVWN1TE9Qd2lySEFmVUxqVEZ1cXUKS00vcm5kKzhtY2h2S1Jn
N2dzWmgyVG1FdktTSllSUXJ3R3pVWjhnT0F1UHhaMGJjQXBheXRZWS9YZTdIZ0VmczR6RytJRGZo
YnI2Tgp1dGVkTmhSTUJka1U1STFPNjFIWjVKMWtCWmlNTFViUzV0d0I0RHIrYU9nZlc5Z0dVVGtH
UEdJZnhORHNLZzYvQ0hBM2h3UXc4azdiCmdOVW10dEQ1Q3FwUzRYazVyMmNQRGFxN0ZXQUFNQVlp
UmZoSlc3dEFHaGlWQ0tlZ1RnSzRId01lc2UwU2lBOWllQVFVN1kwTllNQ2QKbHJFK3U5UDJOS2l5
Y2N1MVhLVUtNRnNkRmlJTEdJWnlEZGFuYk8wRFJ2WXpiSzM3eDk4ZFlwNUg3SU1ZWUd1OVhuT3Zk
aCs0ZDZjTgpBaW12b09LR1ZGNUJaY3pSNXMzaGtDU3ZWK3pzVUdueXppTVJGV0FYVGc4QU91QjNr
VHRzclE5VE53dmc1WTlZYW5BUm10bGF3Ni9BCi9SaFF0UGNxNmt0M1dwblhLMmZvbWhoVXZKYkxT
NjNmZWNsd0h1RTlBREFjRjFZUnZ1aVByVWVNN0dmVXhkOGZZdWxIN0tNeHZpQTMKNFc2K2pmcmtu
YllrbTVLOWNVTG5xcnlDaXBLOFhqSnNYY0FWWkZNWTFzcEk5dmRZSDhuSjB3ZUFIcmpacG1IZ0gx
dW9pMWVPWWZnago5bjRNejlBMGdYaHpqSGwwQnR6TklRSE1ZMnRGa1dUSmlMd2VNNmpTdko3bzBl
RGY4eU92SjRkbFpWYzJ5aWFlWVdURGxpS0J4QUxHCjRXa2ZySG0rLzMxSkE2TVM0UlRVU1FEM1k0
Q3Q5WGlNNFRxajVUUzRPOFE4MDBBL2hpSG5MdjZzRGFwb08yTlFsZDJtODNtOW1sWDIKTXkvSlMr
RDMxMjZlUEFBOHhuK240ZkJPd0dOcTJBQUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>