<?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>6274</bug_id>
          
          <creation_ts>2005-12-28 13:36:03 -0800</creation_ts>
          <short_desc>text repainting does not account for glyphs which draw outside the typographic bounds of the font</short_desc>
          <delta_ts>2025-10-26 21:42:43 -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>Text</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=234816</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=235106</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=293471</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=301447</see_also>
          <bug_file_loc>http://www.hixie.ch/tests/adhoc/dom/web-apps/XMLHttpRequest/009.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>adele</cc>
    
    <cc>a.mueller</cc>
    
    <cc>bertheau</cc>
    
    <cc>bfulgham</cc>
    
    <cc>bugzillawatcher</cc>
    
    <cc>daniele.metilli</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>floam</cc>
    
    <cc>fujii</cc>
    
    <cc>gustavo</cc>
    
    <cc>hrhlzhlqermt</cc>
    
    <cc>ian</cc>
    
    <cc>ian</cc>
    
    <cc>ifiz.dev</cc>
    
    <cc>james</cc>
    
    <cc>joepeck</cc>
    
    <cc>karlcow</cc>
    
    <cc>kiel.oleson</cc>
    
    <cc>lck60980</cc>
    
    <cc>marshfamily407</cc>
    
    <cc>mitz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>patorjk</cc>
    
    <cc>pdr</cc>
    
    <cc>pogon</cc>
    
    <cc>rik</cc>
    
    <cc>simo2409</cc>
    
    <cc>steve</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>xidorn-webkit</cc>
    
    <cc>yuzo</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>27058</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-28 13:36:03 -0800</bug_when>
    <thetext>This test tracks progress of an XMLHttpRequest by modifying p.firstChild.data. At the end, one can see 
two dots remaining from &quot;g&quot; letters that weren&apos;t completely erased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27169</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2005-12-29 14:34:31 -0800</bug_when>
    <thetext>This is font-dependent. I was able to reproduce with Lucida Grande 16 selected as standard font.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27170</commentid>
    <comment_count>2</comment_count>
      <attachid>5357</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-29 14:38:00 -0800</bug_when>
    <thetext>Created attachment 5357
screenshot

...and my anti-alias setting is Standard (best for CRT)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33123</commentid>
    <comment_count>3</comment_count>
      <attachid>6563</attachid>
    <who name="">mitz</who>
    <bug_when>2006-02-17 05:43:41 -0800</bug_when>
    <thetext>Created attachment 6563
Test case

With Zapfino the effect is even more dramatic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37567</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-03-25 11:43:31 -0800</bug_when>
    <thetext>The fix for bug 7301 includes a mechanism that could be used to fix this bug, if you figure out how to tell by how much a given font can overflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40136</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-04-22 02:00:10 -0700</bug_when>
    <thetext>*** Bug 8527 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7386</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-06-15 13:35:16 -0700</bug_when>
    <thetext>*** Bug 14174 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86106</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-07-16 14:24:25 -0700</bug_when>
    <thetext>*** Bug 20060 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94070</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-10-04 01:15:45 -0700</bug_when>
    <thetext>*** Bug 20420 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94071</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-10-04 01:20:22 -0700</bug_when>
    <thetext>Changing the title to reflect more accurately what is going on here (at least according to mitz).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98285</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-11-11 07:24:38 -0800</bug_when>
    <thetext>*** Bug 22175 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112390</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-03-05 09:26:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/6649734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143444</commentid>
    <comment_count>12</comment_count>
      <attachid>38749</attachid>
    <who name="">mitz</who>
    <bug_when>2009-08-28 13:27:12 -0700</bug_when>
    <thetext>Created attachment 38749
First cut

Mac-only and “fast path”-only, not performance-tested, leaves some room for optimization and clean-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143488</commentid>
    <comment_count>13</comment_count>
      <attachid>38766</attachid>
    <who name="">mitz</who>
    <bug_when>2009-08-28 17:36:12 -0700</bug_when>
    <thetext>Created attachment 38766
Slightly better

Works with custom fonts, slightly cleaned up, fixes a bug in WidthIterator::advance().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143520</commentid>
    <comment_count>14</comment_count>
      <attachid>38776</attachid>
    <who name="">mitz</who>
    <bug_when>2009-08-29 15:05:40 -0700</bug_when>
    <thetext>Created attachment 38776
WIP

Works on Windows, fixes a couple of bugs and tries to be faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143521</commentid>
    <comment_count>15</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-08-29 15:10:33 -0700</bug_when>
    <thetext>Vertical overflow is very common, especially in small font sizes, because the descender height is rounded down to an integer, so descenders actually overflow by a fraction of a pixel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143528</commentid>
    <comment_count>16</comment_count>
      <attachid>38779</attachid>
    <who name="">mitz</who>
    <bug_when>2009-08-29 18:44:52 -0700</bug_when>
    <thetext>Created attachment 38779
WIP

Added overflow calculation in the Core Text code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143534</commentid>
    <comment_count>17</comment_count>
      <attachid>38783</attachid>
    <who name="">mitz</who>
    <bug_when>2009-08-29 19:59:27 -0700</bug_when>
    <thetext>Created attachment 38783
WIP

Added overflow calculation in the Uniscribe code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171599</commentid>
    <comment_count>18</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-12-14 14:51:46 -0800</bug_when>
    <thetext>*** Bug 32506 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208703</commentid>
    <comment_count>19</comment_count>
      <attachid>52574</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-05 14:26:49 -0700</bug_when>
    <thetext>Created attachment 52574
patch

The patch does not contain a test case, because I&apos;m working on it. I&apos;d like to get it reviewed meanwhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208705</commentid>
    <comment_count>20</comment_count>
      <attachid>52574</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-05 14:31:49 -0700</bug_when>
    <thetext>Comment on attachment 52574
patch

forgot to mark it as patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208723</commentid>
    <comment_count>21</comment_count>
      <attachid>52577</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-05 14:59:16 -0700</bug_when>
    <thetext>Created attachment 52577
Patch2

Added layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208735</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-05 15:21:46 -0700</bug_when>
    <thetext>Attachment 52574 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1688007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208765</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-05 16:03:47 -0700</bug_when>
    <thetext>Attachment 52577 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1687016</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208784</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-05 16:30:36 -0700</bug_when>
    <thetext>Attachment 52577 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/1685035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208792</commentid>
    <comment_count>25</comment_count>
      <attachid>52577</attachid>
    <who name="">mitz</who>
    <bug_when>2010-04-05 16:41:12 -0700</bug_when>
    <thetext>Comment on attachment 52577
Patch2

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 57096)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,104 @@
&gt; +2010-04-05  Enrica Casucci  &lt;enrica@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Text repainting does not account for glyphs which draw outside the typographic bounds of the font (6274).
&gt; +        &lt;rdar://problem/6649734&gt;
&gt; +        &lt;https://bugs.webkit.org/show_bug.cgi?id=6274&gt;
&gt; +        
&gt; +        In order to be able to handle successfully this case, it is necessary to change the glyph width cache to store
&gt; +        the bounding box for the glyph instead of the simply caching the glyph width.
&gt; +        Retrieving the bounding box for the glyph is expensive, therefore we do it only
&gt; +        when we are rendering text using the complex text path to minimize the performance impact.
&gt; +        To support characters with stacked diacritics, the method canUseGlyphCache has been modified to
&gt; +        return false for the range of characters with stacked diacritics.
&gt; +        
&gt; +        The original version of this patch has been written by Dan Bernstein.
&gt; +
&gt; +        Test: fast/repaint/stacked-diacritics.html
&gt; +
&gt; +        * WebCore.base.exp:
&gt; +        * platform/graphics/Font.cpp:
&gt; +        (WebCore::Font::floatWidth):
&gt; +        * platform/graphics/Font.h:
&gt; +        (WebCore::GlyphOverflow::GlyphOverflow):
&gt; +        (WebCore::Font::width):
&gt; +        * platform/graphics/FontFastPath.cpp:
&gt; +        (WebCore::Font::canUseGlyphCache):
&gt; +        (WebCore::Font::floatWidthForSimpleText):
&gt; +        * platform/graphics/GlyphWidthMap.cpp:
&gt; +        (WebCore::GlyphWidthMap::locatePageSlowCase):
&gt; +        * platform/graphics/GlyphWidthMap.h:
&gt; +        (WebCore::GlyphWidthMap::metricsForGlyph):
&gt; +        (WebCore::GlyphWidthMap::widthForGlyph):
&gt; +        (WebCore::GlyphWidthMap::setMetricsForGlyph):
&gt; +        (WebCore::GlyphWidthMap::GlyphWidthPage::metricsForGlyph):
&gt; +        (WebCore::GlyphWidthMap::GlyphWidthPage::setMetricsForGlyph):
&gt; +        (WebCore::GlyphWidthMap::GlyphWidthPage::setMetricsForIndex):
&gt; +        * platform/graphics/SimpleFontData.cpp:
&gt; +        (WebCore::SimpleFontData::platformGlyphInit):
&gt; +        * platform/graphics/SimpleFontData.h:
&gt; +        (WebCore::):
&gt; +        (WebCore::SimpleFontData::widthForGlyph):
&gt; +        (WebCore::SimpleFontData::metricsForGlyph):
&gt; +        * platform/graphics/WidthIterator.cpp:
&gt; +        (WebCore::WidthIterator::WidthIterator):
&gt; +        (WebCore::WidthIterator::advance):
&gt; +        * platform/graphics/WidthIterator.h:
&gt; +        (WebCore::WidthIterator::maxGlyphBoundingBoxY):
&gt; +        (WebCore::WidthIterator::minGlyphBoundingBoxY):
&gt; +        (WebCore::WidthIterator::firstGlyphOverflow):
&gt; +        (WebCore::WidthIterator::lastGlyphOverflow):
&gt; +        * platform/graphics/mac/ComplexTextController.cpp:
&gt; +        (WebCore::ComplexTextController::ComplexTextController):
&gt; +        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
&gt; +        * platform/graphics/mac/ComplexTextController.h:
&gt; +        (WebCore::ComplexTextController::minGlyphBoundingBoxX):
&gt; +        (WebCore::ComplexTextController::maxGlyphBoundingBoxX):
&gt; +        (WebCore::ComplexTextController::minGlyphBoundingBoxY):
&gt; +        (WebCore::ComplexTextController::maxGlyphBoundingBoxY):
&gt; +        * platform/graphics/mac/FontComplexTextMac.cpp:
&gt; +        (WebCore::Font::floatWidthForComplexText):
&gt; +        * platform/graphics/mac/SimpleFontDataMac.mm:
&gt; +        (WebCore::SimpleFontData::platformMetricsForGlyph):
&gt; +        * platform/graphics/win/FontWin.cpp:
&gt; +        (WebCore::Font::floatWidthForComplexText):
&gt; +        * platform/graphics/win/SimpleFontDataCGWin.cpp:
&gt; +        (WebCore::SimpleFontData::platformMetricsForGlyph):
&gt; +        * platform/graphics/win/SimpleFontDataWin.cpp:
&gt; +        (WebCore::SimpleFontData::metricsForGDIGlyph):
&gt; +        * platform/graphics/win/UniscribeController.cpp:
&gt; +        (WebCore::UniscribeController::UniscribeController):
&gt; +        (WebCore::UniscribeController::shapeAndPlaceItem):
&gt; +        * platform/graphics/win/UniscribeController.h:
&gt; +        (WebCore::UniscribeController::minGlyphBoundingBoxX):
&gt; +        (WebCore::UniscribeController::maxGlyphBoundingBoxX):
&gt; +        (WebCore::UniscribeController::minGlyphBoundingBoxY):
&gt; +        (WebCore::UniscribeController::maxGlyphBoundingBoxY):
&gt; +        * rendering/InlineFlowBox.cpp:
&gt; +        (WebCore::InlineFlowBox::placeBoxesHorizontally):
&gt; +        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
&gt; +        (WebCore::InlineFlowBox::computeVerticalOverflow):
&gt; +        * rendering/InlineTextBox.cpp:
&gt; +        (WebCore::InlineTextBox::setFallbackFonts):
&gt; +        (WebCore::InlineTextBox::fallbackFonts):
&gt; +        (WebCore::InlineTextBox::setGlyphOverflow):
&gt; +        (WebCore::InlineTextBox::glyphOverflow):
&gt; +        * rendering/InlineTextBox.h:
&gt; +        (WebCore::InlineTextBox::clearGlyphOverflowAndFallbackFontMap):
&gt; +        * rendering/RenderBlockLineLayout.cpp:
&gt; +        (WebCore::RenderBlock::computeHorizontalPositionsForLine):
&gt; +        (WebCore::RenderBlock::createLineBoxesForResolver):
&gt; +        * rendering/RenderText.cpp:
&gt; +        (WebCore::RenderText::RenderText):
&gt; +        (WebCore::RenderText::styleDidChange):
&gt; +        (WebCore::RenderText::widthFromCache):
&gt; +        (WebCore::RenderText::trimmedPrefWidths):
&gt; +        (WebCore::RenderText::calcPrefWidths):
&gt; +        (WebCore::RenderText::setText):
&gt; +        (WebCore::RenderText::width):
&gt; +        * rendering/RenderText.h:

I think some specific comments on at least some of the functions would be helpful.

&gt; +    float floatWidth(const TextRun&amp;, HashSet&lt;const SimpleFontData*&gt;* fallbackFonts = 0, GlyphOverflow* glyphOverflow = 0) const;

Don’t need the argument name “glyphOverflow” here.

&gt; @@ -234,6 +234,11 @@ bool Font::canUseGlyphCache(const TextRu
&gt;          if (c &lt;= 0x194F)
&gt;              return false;
&gt;  
&gt; +        if (c &lt; 0x1E00)
&gt; +            continue;
&gt; +        if (c &lt;= 0x2000)
&gt; +            return false;
&gt; +            

It is important to add a comment about why this range is included (even more than any of the other ranges, because the reason it’s included is unique). There is also some trailing whitespace up there.


&gt;  class GlyphWidthMap : public Noncopyable {

Should probably rename this (and related files) GlyphMetricsMap.

&gt; +ALWAYS_INLINE GlyphMetrics SimpleFontData::metricsForGlyph(Glyph glyph, GlyphMetricsMode metricsMode) const
&gt;  {
&gt; -    float width = m_glyphToWidthMap.widthForGlyph(glyph);
&gt; -    if (width != cGlyphWidthUnknown)
&gt; -        return width;
&gt; -    
&gt; -    width = platformWidthForGlyph(glyph);
&gt; -    m_glyphToWidthMap.setWidthForGlyph(glyph, width);
&gt; -    
&gt; -    return width;
&gt; +    GlyphMetrics metrics = m_glyphToWidthMap.metricsForGlyph(glyph);
&gt; +    if (metrics.horizontalAdvance != cGlyphWidthUnknown)
&gt; +        return metrics;
&gt; +
&gt; +    metrics = platformMetricsForGlyph(glyph, metricsMode);
&gt; +    m_glyphToWidthMap.setMetricsForGlyph(glyph, metrics);
&gt; +
&gt; +    return metrics;
&gt;  }

This confuses me. What’s to stop us from caching “width only” metrics in the map at first, and then on a subsequent request for “bounding box” metrics return the cached value instead of actually getting the bounding box? This seems to be assuming that the fast path and the complex path will never hit the same glyph. I don’t think it’s true, especially since the complex path can be forced for any text by specifying text-rendering: optimizeLegibility.

&gt; +    , m_maxGlyphBoundingBoxY(numeric_limits&lt;float&gt;::min())
&gt; +    , m_minGlyphBoundingBoxY(numeric_limits&lt;float&gt;::max())
&gt; +    , m_firstGlyphOverflow(0)
&gt; +    , m_lastGlyphOverflow(0)

Seems like you don’t need this (nor any of the changes to WidthIterator) now that this is limited to the complex code path.

Seeing as you have kept that code in, and just by avoiding actually getting the glyph bounds you managed to have no performance impact on the fast path, I am thinking that perhaps instead of forcing the complex path for the range of glyphs with stacked diacritics, you could still use the fast path for those, but get and use the real bounding rects in that case. This would essentially make canUseGlyphCache() select between three modes: fast, fast with real glyph bounds, and complex. For “fast with real glyph bounds”, Font::floatWidth() would pass the glyphOverflow pointer through to floatWidthForSimpleText(). For plain “fast”, it would pass 0, and the will instruct WidthIterator down the line to not get real bounding boxes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208846</commentid>
    <comment_count>26</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-05 18:53:10 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 52577 [details])
&gt; &gt; Index: WebCore/ChangeLog
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/ChangeLog	(revision 57096)
&gt; &gt; +++ WebCore/ChangeLog	(working copy)
&gt; &gt; @@ -1,3 +1,104 @@
&gt; &gt; +2010-04-05  Enrica Casucci  &lt;enrica@apple.com&gt;
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        Text repainting does not account for glyphs which draw outside the typographic bounds of the font (6274).
&gt; &gt; +        &lt;rdar://problem/6649734&gt;
&gt; &gt; +        &lt;https://bugs.webkit.org/show_bug.cgi?id=6274&gt;
&gt; &gt; +        
&gt; &gt; +        In order to be able to handle successfully this case, it is necessary to change the glyph width cache to store
&gt; &gt; +        the bounding box for the glyph instead of the simply caching the glyph width.
&gt; &gt; +        Retrieving the bounding box for the glyph is expensive, therefore we do it only
&gt; &gt; +        when we are rendering text using the complex text path to minimize the performance impact.
&gt; &gt; +        To support characters with stacked diacritics, the method canUseGlyphCache has been modified to
&gt; &gt; +        return false for the range of characters with stacked diacritics.
&gt; &gt; +        
&gt; &gt; +        The original version of this patch has been written by Dan Bernstein.
&gt; &gt; +
&gt; &gt; +        Test: fast/repaint/stacked-diacritics.html
&gt; &gt; +
&gt; &gt; +        * WebCore.base.exp:
&gt; &gt; +        * platform/graphics/Font.cpp:
&gt; &gt; +        (WebCore::Font::floatWidth):
&gt; &gt; +        * platform/graphics/Font.h:
&gt; &gt; +        (WebCore::GlyphOverflow::GlyphOverflow):
&gt; &gt; +        (WebCore::Font::width):
&gt; &gt; +        * platform/graphics/FontFastPath.cpp:
&gt; &gt; +        (WebCore::Font::canUseGlyphCache):
&gt; &gt; +        (WebCore::Font::floatWidthForSimpleText):
&gt; &gt; +        * platform/graphics/GlyphWidthMap.cpp:
&gt; &gt; +        (WebCore::GlyphWidthMap::locatePageSlowCase):
&gt; &gt; +        * platform/graphics/GlyphWidthMap.h:
&gt; &gt; +        (WebCore::GlyphWidthMap::metricsForGlyph):
&gt; &gt; +        (WebCore::GlyphWidthMap::widthForGlyph):
&gt; &gt; +        (WebCore::GlyphWidthMap::setMetricsForGlyph):
&gt; &gt; +        (WebCore::GlyphWidthMap::GlyphWidthPage::metricsForGlyph):
&gt; &gt; +        (WebCore::GlyphWidthMap::GlyphWidthPage::setMetricsForGlyph):
&gt; &gt; +        (WebCore::GlyphWidthMap::GlyphWidthPage::setMetricsForIndex):
&gt; &gt; +        * platform/graphics/SimpleFontData.cpp:
&gt; &gt; +        (WebCore::SimpleFontData::platformGlyphInit):
&gt; &gt; +        * platform/graphics/SimpleFontData.h:
&gt; &gt; +        (WebCore::):
&gt; &gt; +        (WebCore::SimpleFontData::widthForGlyph):
&gt; &gt; +        (WebCore::SimpleFontData::metricsForGlyph):
&gt; &gt; +        * platform/graphics/WidthIterator.cpp:
&gt; &gt; +        (WebCore::WidthIterator::WidthIterator):
&gt; &gt; +        (WebCore::WidthIterator::advance):
&gt; &gt; +        * platform/graphics/WidthIterator.h:
&gt; &gt; +        (WebCore::WidthIterator::maxGlyphBoundingBoxY):
&gt; &gt; +        (WebCore::WidthIterator::minGlyphBoundingBoxY):
&gt; &gt; +        (WebCore::WidthIterator::firstGlyphOverflow):
&gt; &gt; +        (WebCore::WidthIterator::lastGlyphOverflow):
&gt; &gt; +        * platform/graphics/mac/ComplexTextController.cpp:
&gt; &gt; +        (WebCore::ComplexTextController::ComplexTextController):
&gt; &gt; +        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
&gt; &gt; +        * platform/graphics/mac/ComplexTextController.h:
&gt; &gt; +        (WebCore::ComplexTextController::minGlyphBoundingBoxX):
&gt; &gt; +        (WebCore::ComplexTextController::maxGlyphBoundingBoxX):
&gt; &gt; +        (WebCore::ComplexTextController::minGlyphBoundingBoxY):
&gt; &gt; +        (WebCore::ComplexTextController::maxGlyphBoundingBoxY):
&gt; &gt; +        * platform/graphics/mac/FontComplexTextMac.cpp:
&gt; &gt; +        (WebCore::Font::floatWidthForComplexText):
&gt; &gt; +        * platform/graphics/mac/SimpleFontDataMac.mm:
&gt; &gt; +        (WebCore::SimpleFontData::platformMetricsForGlyph):
&gt; &gt; +        * platform/graphics/win/FontWin.cpp:
&gt; &gt; +        (WebCore::Font::floatWidthForComplexText):
&gt; &gt; +        * platform/graphics/win/SimpleFontDataCGWin.cpp:
&gt; &gt; +        (WebCore::SimpleFontData::platformMetricsForGlyph):
&gt; &gt; +        * platform/graphics/win/SimpleFontDataWin.cpp:
&gt; &gt; +        (WebCore::SimpleFontData::metricsForGDIGlyph):
&gt; &gt; +        * platform/graphics/win/UniscribeController.cpp:
&gt; &gt; +        (WebCore::UniscribeController::UniscribeController):
&gt; &gt; +        (WebCore::UniscribeController::shapeAndPlaceItem):
&gt; &gt; +        * platform/graphics/win/UniscribeController.h:
&gt; &gt; +        (WebCore::UniscribeController::minGlyphBoundingBoxX):
&gt; &gt; +        (WebCore::UniscribeController::maxGlyphBoundingBoxX):
&gt; &gt; +        (WebCore::UniscribeController::minGlyphBoundingBoxY):
&gt; &gt; +        (WebCore::UniscribeController::maxGlyphBoundingBoxY):
&gt; &gt; +        * rendering/InlineFlowBox.cpp:
&gt; &gt; +        (WebCore::InlineFlowBox::placeBoxesHorizontally):
&gt; &gt; +        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
&gt; &gt; +        (WebCore::InlineFlowBox::computeVerticalOverflow):
&gt; &gt; +        * rendering/InlineTextBox.cpp:
&gt; &gt; +        (WebCore::InlineTextBox::setFallbackFonts):
&gt; &gt; +        (WebCore::InlineTextBox::fallbackFonts):
&gt; &gt; +        (WebCore::InlineTextBox::setGlyphOverflow):
&gt; &gt; +        (WebCore::InlineTextBox::glyphOverflow):
&gt; &gt; +        * rendering/InlineTextBox.h:
&gt; &gt; +        (WebCore::InlineTextBox::clearGlyphOverflowAndFallbackFontMap):
&gt; &gt; +        * rendering/RenderBlockLineLayout.cpp:
&gt; &gt; +        (WebCore::RenderBlock::computeHorizontalPositionsForLine):
&gt; &gt; +        (WebCore::RenderBlock::createLineBoxesForResolver):
&gt; &gt; +        * rendering/RenderText.cpp:
&gt; &gt; +        (WebCore::RenderText::RenderText):
&gt; &gt; +        (WebCore::RenderText::styleDidChange):
&gt; &gt; +        (WebCore::RenderText::widthFromCache):
&gt; &gt; +        (WebCore::RenderText::trimmedPrefWidths):
&gt; &gt; +        (WebCore::RenderText::calcPrefWidths):
&gt; &gt; +        (WebCore::RenderText::setText):
&gt; &gt; +        (WebCore::RenderText::width):
&gt; &gt; +        * rendering/RenderText.h:
&gt; 
&gt; I think some specific comments on at least some of the functions would be
&gt; helpful.
Will do.
&gt; 
&gt; &gt; +    float floatWidth(const TextRun&amp;, HashSet&lt;const SimpleFontData*&gt;* fallbackFonts = 0, GlyphOverflow* glyphOverflow = 0) const;
&gt; 
&gt; Don’t need the argument name “glyphOverflow” here.
Ok,
&gt; 
&gt; &gt; @@ -234,6 +234,11 @@ bool Font::canUseGlyphCache(const TextRu
&gt; &gt;          if (c &lt;= 0x194F)
&gt; &gt;              return false;
&gt; &gt;  
&gt; &gt; +        if (c &lt; 0x1E00)
&gt; &gt; +            continue;
&gt; &gt; +        if (c &lt;= 0x2000)
&gt; &gt; +            return false;
&gt; &gt; +            
&gt; 
&gt; It is important to add a comment about why this range is included (even more
&gt; than any of the other ranges, because the reason it’s included is unique).
&gt; There is also some trailing whitespace up there.
&gt; 
Will do,
&gt; 
&gt; &gt;  class GlyphWidthMap : public Noncopyable {
&gt; 
&gt; Should probably rename this (and related files) GlyphMetricsMap.
&gt; 
I know, it is just a pain :-)

&gt; &gt; +ALWAYS_INLINE GlyphMetrics SimpleFontData::metricsForGlyph(Glyph glyph, GlyphMetricsMode metricsMode) const
&gt; &gt;  {
&gt; &gt; -    float width = m_glyphToWidthMap.widthForGlyph(glyph);
&gt; &gt; -    if (width != cGlyphWidthUnknown)
&gt; &gt; -        return width;
&gt; &gt; -    
&gt; &gt; -    width = platformWidthForGlyph(glyph);
&gt; &gt; -    m_glyphToWidthMap.setWidthForGlyph(glyph, width);
&gt; &gt; -    
&gt; &gt; -    return width;
&gt; &gt; +    GlyphMetrics metrics = m_glyphToWidthMap.metricsForGlyph(glyph);
&gt; &gt; +    if (metrics.horizontalAdvance != cGlyphWidthUnknown)
&gt; &gt; +        return metrics;
&gt; &gt; +
&gt; &gt; +    metrics = platformMetricsForGlyph(glyph, metricsMode);
&gt; &gt; +    m_glyphToWidthMap.setMetricsForGlyph(glyph, metrics);
&gt; &gt; +
&gt; &gt; +    return metrics;
&gt; &gt;  }
&gt; 
&gt; This confuses me. What’s to stop us from caching “width only” metrics in the
&gt; map at first, and then on a subsequent request for “bounding box” metrics
&gt; return the cached value instead of actually getting the bounding box? This
&gt; seems to be assuming that the fast path and the complex path will never hit the
&gt; same glyph. I don’t think it’s true, especially since the complex path can be
&gt; forced for any text by specifying text-rendering: optimizeLegibility.
&gt; 
Then I&apos;m not sure I&apos;ve fully understood how this code works.

&gt; &gt; +    , m_maxGlyphBoundingBoxY(numeric_limits&lt;float&gt;::min())
&gt; &gt; +    , m_minGlyphBoundingBoxY(numeric_limits&lt;float&gt;::max())
&gt; &gt; +    , m_firstGlyphOverflow(0)
&gt; &gt; +    , m_lastGlyphOverflow(0)
&gt; 
&gt; Seems like you don’t need this (nor any of the changes to WidthIterator) now
&gt; that this is limited to the complex code path.
&gt; 
&gt; Seeing as you have kept that code in, and just by avoiding actually getting the
&gt; glyph bounds you managed to have no performance impact on the fast path, I am
&gt; thinking that perhaps instead of forcing the complex path for the range of
&gt; glyphs with stacked diacritics, you could still use the fast path for those,
&gt; but get and use the real bounding rects in that case. This would essentially
&gt; make canUseGlyphCache() select between three modes: fast, fast with real glyph
&gt; bounds, and complex. For “fast with real glyph bounds”, Font::floatWidth()
&gt; would pass the glyphOverflow pointer through to floatWidthForSimpleText(). For
&gt; plain “fast”, it would pass 0, and the will instruct WidthIterator down the
&gt; line to not get real bounding boxes.
I think I&apos;ve tried that, and still had perf issues.
We&apos;ll talk in person about this.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209254</commentid>
    <comment_count>27</comment_count>
      <attachid>52670</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-06 14:39:14 -0700</bug_when>
    <thetext>Created attachment 52670
Patch3

Missing windows layout tests results.
Creating now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209258</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 14:45:26 -0700</bug_when>
    <thetext>Attachment 52670 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.cpp
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.h
WebCore/platform/graphics/SimpleFontData.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/platform/graphics/FontFastPath.cpp:237:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/graphics/GlyphMetricsMap.h:51:  More than one command on the same line in if  [whitespace/parens] [4]
WebCore/platform/graphics/GlyphMetricsMap.cpp:37:  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: 4 in 37 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>209262</commentid>
    <comment_count>29</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-04-06 14:51:26 -0700</bug_when>
    <thetext>Attachment 52670 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/1553318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209281</commentid>
    <comment_count>30</comment_count>
      <attachid>52670</attachid>
    <who name="">mitz</who>
    <bug_when>2010-04-06 15:15:56 -0700</bug_when>
    <thetext>Comment on attachment 52670
Patch3

&gt; -const float cGlyphWidthUnknown = -1;
&gt; +const float cGlyphSizeUnknown = -1;

NaN might be a better choice here.

&gt;  #include &quot;GlyphPageTreeNode.h&quot;
&gt; -#include &quot;GlyphWidthMap.h&quot;
&gt; +#include &quot;GlyphMetricsMap.h&quot;

These are not in ASCII order now.

&gt; +    if ((metricsMode == GlyphWidthOnly &amp;&amp; metrics.horizontalAdvance != cGlyphSizeUnknown) || (metricsMode == GlyphBoundingBox &amp;&amp; metrics.boundingBox.width() != cGlyphSizeUnknown &amp;&amp; metrics.boundingBox.height() != cGlyphSizeUnknown))
&gt; +        return metrics;

Checking bot width() and height() seems like an overkill.

&gt; -            width = fontData-&gt;widthForGlyph(glyph);
&gt; +            width = fontData-&gt;metricsForGlyph(glyph, GlyphWidthOnly).horizontalAdvance;

This change seems unnecessary. widthForGlyph does just what you want.

&gt; +    if (metricsMode == GlyphBoundingBox) {

I would write this as an early return.

&gt; +    if (metricsMode == GlyphBoundingBox) {

Ditto.

The rendering part of the code needs to be reviewed by someone other than myself, since I wrote it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209282</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 15:30:41 -0700</bug_when>
    <thetext>Attachment 52670 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1680092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209288</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 15:37:06 -0700</bug_when>
    <thetext>Attachment 52670 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/1596273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209290</commentid>
    <comment_count>33</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-06 15:38:45 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 52670 [details])
&gt; &gt; -const float cGlyphWidthUnknown = -1;
&gt; &gt; +const float cGlyphSizeUnknown = -1;
&gt;
Ok. 
&gt; NaN might be a better choice here.
&gt; 
&gt; &gt;  #include &quot;GlyphPageTreeNode.h&quot;
&gt; &gt; -#include &quot;GlyphWidthMap.h&quot;
&gt; &gt; +#include &quot;GlyphMetricsMap.h&quot;
&gt; 
&gt; These are not in ASCII order now.
&gt; 
Already fixed.

&gt; &gt; +    if ((metricsMode == GlyphWidthOnly &amp;&amp; metrics.horizontalAdvance != cGlyphSizeUnknown) || (metricsMode == GlyphBoundingBox &amp;&amp; metrics.boundingBox.width() != cGlyphSizeUnknown &amp;&amp; metrics.boundingBox.height() != cGlyphSizeUnknown))
&gt; &gt; +        return metrics;
&gt; 
&gt; Checking bot width() and height() seems like an overkill.
&gt;
Checking only for width.
 
&gt; &gt; -            width = fontData-&gt;widthForGlyph(glyph);
&gt; &gt; +            width = fontData-&gt;metricsForGlyph(glyph, GlyphWidthOnly).horizontalAdvance;
&gt; 
&gt; This change seems unnecessary. widthForGlyph does just what you want.
&gt; 
&gt; &gt; +    if (metricsMode == GlyphBoundingBox) {
I don&apos;t see the advantage here. We still need to have two return statements.

&gt; 
&gt; I would write this as an early return.
&gt; 
&gt; &gt; +    if (metricsMode == GlyphBoundingBox) {
&gt; 
&gt; Ditto.
&gt; 
&gt; The rendering part of the code needs to be reviewed by someone other than
&gt; myself, since I wrote it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209300</commentid>
    <comment_count>34</comment_count>
      <attachid>52676</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-06 15:46:59 -0700</bug_when>
    <thetext>Created attachment 52676
Patch4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209303</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 15:54:04 -0700</bug_when>
    <thetext>Attachment 52676 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.cpp
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.h
WebCore/platform/graphics/FontFastPath.cpp:237:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/graphics/GlyphMetricsMap.cpp:37:  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: 2 in 36 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>209319</commentid>
    <comment_count>36</comment_count>
      <attachid>52682</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-06 16:33:56 -0700</bug_when>
    <thetext>Created attachment 52682
Patch5

Hopefully the laste one :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209320</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 16:35:26 -0700</bug_when>
    <thetext>Attachment 52676 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1671143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209330</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 16:41:12 -0700</bug_when>
    <thetext>Attachment 52682 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.cpp
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.h
WebCore/platform/graphics/FontFastPath.cpp:237:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/graphics/GlyphMetricsMap.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 36 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>209340</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 17:16:14 -0700</bug_when>
    <thetext>Attachment 52676 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/1651219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209341</commentid>
    <comment_count>40</comment_count>
      <attachid>52684</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-06 17:17:14 -0700</bug_when>
    <thetext>Created attachment 52684
Patch6

Fixed for chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209343</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 17:22:24 -0700</bug_when>
    <thetext>Attachment 52684 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.cpp
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.h
WebCore/platform/graphics/FontFastPath.cpp:237:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 36 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>209378</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 18:23:46 -0700</bug_when>
    <thetext>Attachment 52684 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1650217</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209415</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-06 19:57:36 -0700</bug_when>
    <thetext>Attachment 52684 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/1570295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209491</commentid>
    <comment_count>44</comment_count>
      <attachid>52708</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-06 23:56:24 -0700</bug_when>
    <thetext>Created attachment 52708
Patch7

Fixed build errors for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209492</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-07 00:01:19 -0700</bug_when>
    <thetext>Attachment 52708 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.cpp
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.h
WebCore/platform/graphics/FontFastPath.cpp:237:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 47 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>209507</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-07 00:28:51 -0700</bug_when>
    <thetext>Attachment 52708 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1568298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209519</commentid>
    <comment_count>47</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-07 01:00:27 -0700</bug_when>
    <thetext>Attachment 52708 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/1608276</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209616</commentid>
    <comment_count>48</comment_count>
      <attachid>52734</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-07 06:55:11 -0700</bug_when>
    <thetext>Created attachment 52734
Patch8

One more Gtk build error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209619</commentid>
    <comment_count>49</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-07 06:56:35 -0700</bug_when>
    <thetext>Attachment 52734 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.cpp
WARNING: Skipping non-existent file: WebCore/platform/graphics/GlyphWidthMap.h
WebCore/platform/graphics/FontFastPath.cpp:237:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 48 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>209632</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-07 07:28:27 -0700</bug_when>
    <thetext>Attachment 52734 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1605365</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209681</commentid>
    <comment_count>51</comment_count>
      <attachid>52734</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-04-07 09:50:25 -0700</bug_when>
    <thetext>Comment on attachment 52734
Patch8

r=me.  I gave some comments/feedback on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209686</commentid>
    <comment_count>52</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-04-07 09:55:48 -0700</bug_when>
    <thetext>A couple of ideas about improving performance:
1) Populate an entire page for glyph metrics at a time instead of glyph-at-a-time
2) Instead of using CGRectApplyAffineTransform(), just multiply everything by pointSize, since we know that the transform is a scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209687</commentid>
    <comment_count>53</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-04-07 09:57:01 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; A couple of ideas about improving performance:

The idea is that by doing this (and other improvements) this could be enabled for the fast path without a significant performance hit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209693</commentid>
    <comment_count>54</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-04-07 10:07:19 -0700</bug_when>
    <thetext>Committed revision 57215.
Added FIXME in canUseGlyphCache for characters with stacked diacritics.
Leaving the bug open because it is not 100% fixed, but it is a big step forward in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213854</commentid>
    <comment_count>55</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-18 16:29:22 -0700</bug_when>
    <thetext>Attachment 52734 was posted by a committer and has review+, assigning to Enrica Casucci for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218610</commentid>
    <comment_count>56</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-04-28 13:54:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58426 broke this again. It didn&apos;t fully rollback http://trac.webkit.org/changeset/57215 though, just the part that caused a known perf regression. See bug 37292.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218838</commentid>
    <comment_count>57</comment_count>
      <attachid>54676</attachid>
    <who name="">mitz</who>
    <bug_when>2010-04-28 22:40:42 -0700</bug_when>
    <thetext>Created attachment 54676
Account for overflow of glyphs for U+1E00..U+2000 without sending them through the complex text code path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218841</commentid>
    <comment_count>58</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-28 22:44:55 -0700</bug_when>
    <thetext>Attachment 54676 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/WidthIterator.h:41:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/WidthIterator.h:42:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/WidthIterator.h:43:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/WidthIterator.h:44:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 4 in 8 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>218847</commentid>
    <comment_count>59</comment_count>
      <attachid>54676</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-04-28 22:53:48 -0700</bug_when>
    <thetext>Comment on attachment 54676
Account for overflow of glyphs for U+1E00..U+2000 without sending them through the complex text code path

Although I realize it just mirrors the existing CodePath enum, I wish the codePath function name included a more descriptive term.  The rest looks good.  r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219372</commentid>
    <comment_count>60</comment_count>
      <attachid>54784</attachid>
    <who name="">mitz</who>
    <bug_when>2010-04-29 23:27:35 -0700</bug_when>
    <thetext>Created attachment 54784
Account for overflow of glyphs for U+1E00..U+2000 without sending them through the complex text code path

Changed codePath() to allowedOptimizations() which returns a bitfield. Is this better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219373</commentid>
    <comment_count>61</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-29 23:29:13 -0700</bug_when>
    <thetext>Attachment 54784 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/WidthIterator.h:41:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/WidthIterator.h:42:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/WidthIterator.h:43:  More than one command on the same line  [whitespace/newline] [4]
WebCore/platform/graphics/WidthIterator.h:44:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 4 in 8 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>219530</commentid>
    <comment_count>62</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-04-30 10:51:25 -0700</bug_when>
    <thetext>Attachment 54676 committed as &lt;http://trac.webkit.org/projects/webkit/changeset/58585&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220844</commentid>
    <comment_count>63</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-04 15:55:16 -0700</bug_when>
    <thetext>Just to close the loop, there is no perf regression with this fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220888</commentid>
    <comment_count>64</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-05-04 17:15:54 -0700</bug_when>
    <thetext>(In reply to comment #63)
&gt; Just to close the loop, there is no perf regression with this fix.

That&apos;s great. Thanks for the update, Ojan!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226664</commentid>
    <comment_count>65</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 00:52:45 -0700</bug_when>
    <thetext>If I&apos;m reading the comments correctly, looks like this should be closed.  Please re-open if I&apos;m wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226763</commentid>
    <comment_count>66</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-05-17 07:51:37 -0700</bug_when>
    <thetext>Not fixed in general. The test case from this report is still failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226829</commentid>
    <comment_count>67</comment_count>
      <attachid>52734</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 11:06:22 -0700</bug_when>
    <thetext>Comment on attachment 52734
Patch8

Obsoleting since this was landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226830</commentid>
    <comment_count>68</comment_count>
      <attachid>54676</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 11:07:31 -0700</bug_when>
    <thetext>Comment on attachment 54676
Account for overflow of glyphs for U+1E00..U+2000 without sending them through the complex text code path

Obsoleting since this was landed.

Given the number of comments and attachments on this bug, I suspect it would be easier to deal with future fixes if they were attached to new bugs. :)  But I leave that up to you.  Cleared the r+ on the two attachments which were landed so that pending-commit stops listing this as needing landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294143</commentid>
    <comment_count>69</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-10-14 08:57:03 -0700</bug_when>
    <thetext>*** Bug 47657 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353134</commentid>
    <comment_count>70</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-02-17 13:07:58 -0800</bug_when>
    <thetext>*** Bug 54599 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446903</commentid>
    <comment_count>71</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-04 16:58:11 -0700</bug_when>
    <thetext>*** Bug 65732 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565100</commentid>
    <comment_count>72</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-25 21:43:14 -0800</bug_when>
    <thetext>*** Bug 79582 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565101</commentid>
    <comment_count>73</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-25 21:44:12 -0800</bug_when>
    <thetext>Bug 79582 has a test case where even optimizeLegibility helps only partially (tested with Safari 5.1.3 on OS X 10.7.3).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897954</commentid>
    <comment_count>74</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-06 15:34:52 -0700</bug_when>
    <thetext>*** Bug 117253 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032943</commentid>
    <comment_count>75</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-09-03 11:22:14 -0700</bug_when>
    <thetext>*** Bug 17026 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149795</commentid>
    <comment_count>76</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-12-16 15:51:16 -0800</bug_when>
    <thetext>*** Bug 152292 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1158589</commentid>
    <comment_count>77</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-01-25 16:26:50 -0800</bug_when>
    <thetext>*** Bug 153393 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192413</commentid>
    <comment_count>78</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-05-12 12:17:30 -0700</bug_when>
    <thetext>*** Bug 108929 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192701</commentid>
    <comment_count>79</comment_count>
    <who name="Tobi Reif">tobi</who>
    <bug_when>2016-05-13 02:10:04 -0700</bug_when>
    <thetext>When this issue here has been fixed, please also make sure that https://tobireif.com/centerslate/ gets rendered as intended / as Chrome and Firefox do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297498</commentid>
    <comment_count>80</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-04-14 13:55:30 -0700</bug_when>
    <thetext>*** Bug 170801 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512007</commentid>
    <comment_count>81</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-03-03 18:26:37 -0800</bug_when>
    <thetext>*** Bug 195044 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722876</commentid>
    <comment_count>82</comment_count>
    <who name="Frank">ifiz.dev</who>
    <bug_when>2021-01-27 02:05:38 -0800</bug_when>
    <thetext>*** Bug 220850 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785708</commentid>
    <comment_count>83</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-19 23:30:54 -0700</bug_when>
    <thetext>*** Bug 229179 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793230</commentid>
    <comment_count>86</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-14 01:34:29 -0700</bug_when>
    <thetext>*** Bug 225641 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154158</commentid>
    <comment_count>88</comment_count>
      <attachid>477193</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-10-24 15:13:17 -0700</bug_when>
    <thetext>Created attachment 477193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154160</commentid>
    <comment_count>89</comment_count>
      <attachid>477193</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-10-24 15:17:11 -0700</bug_when>
    <thetext>Comment on attachment 477193
Patch

wrong bugzilla. sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154162</commentid>
    <comment_count>90</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-10-24 15:20:06 -0700</bug_when>
    <thetext>While bug 301447 takes care of the original test case reported here, there are a few duplicates that bug 301447 does not fix (it&apos;s essentially about vertical vs. horizontal glyph overflow, where bug 301447 addresses vertical overflow only)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>5357</attachid>
            <date>2005-12-29 14:38:00 -0800</date>
            <delta_ts>2005-12-29 14:38:00 -0800</delta_ts>
            <desc>screenshot</desc>
            <filename>6274-screenshot.png</filename>
            <type>image/png</type>
            <size>1736</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAQwAAAA0CAIAAADwsJGwAAAB/WlDQ1BJQ0MgUHJvZmlsZQAAeJyV
kk1rE1EUhp87oVZrCIIpFBEcEbGUVEJVKF1IY2pFqSUmEZPgopOZaTIyH5f5iAZdqliKIi6KC3ci
uHQXN2LdiAjqQvz4HSpuShkXY8hCQvHAgee8cLjnvOdC6qEmpa0Ajhv65XNn1Fq9oY5+YYQMY+xl
TtMDWSiVlhgav78iAD5Pa1LaS737kb926c2Db+kjYn1qbngfABm/Vm+AyAHZVsLzQLaZcBXIXg9l
CKINZPW2ZoC4BeT8arkI4jmQaSX8Esg0E34HZDp6KwTxHci7huWCshuYNcxAB2Ue8IxAd0B5Adx1
HM+A1CwwqUs/hNQKMF2rN9Rk5M5bOH0blLWBVluHZ2Owf3SgHbsDB+/Bq42B9vMTAhATzWD1xAwA
In0ARjbj+EcMoyuw/TGOtx7H8fYGpH7B62U98jt//RLiA+xUJzsnNbyP+zSME18AyMPTTbgCLANP
gKM9mLgJJaAKytlD/Uw8BGC8IKVtqpUwMixPXbACaWvdHW7/3+HYUf+9FJA23csVYBI4ueovloEp
4Oo17UKpr1NAIrExUakQEmFg4aGygEWAxEajy0U8XCxCTCJ81KGdJH8EYNc+eDSuoCz29hz+Z97Q
vBECFD3Z9a1WO1QTl4qeI6PQ9HPqeVc/nlNn8vlTAH8Ai/WapPkwKkgAAASGSURBVHic7dxLKHR/
HMfx7zlnIhQid8KIWSAUSRQit2KBWCDjsrFRSqxcU0I2aiwZShLRkB0ldu6FjjTlWprFEHIYo5ln
cWr+Ex4//s/M89e/z2vl/H7n/GamvM2ZOTM4q9VKAPB7/H99BwB+OkQCwIBIABgQCQADIgFgQCQA
DIgEgAGRADAgEgAGRALAgEgAGBAJAAMiAWBQOGNRSZJEURQEISYmxt3d3X7KYDDo9frAwMCIiAhB
EJxx6wAOZv1IZ2enPMtxnJ+fX0ZGxsLCwpt9kpKSiGhnZ+fN+OTkpLe3NxEJgsBxXElJiTxuNpvV
ajXHcQqFgohcXFzGxsY+vHWAH+Wz0635+fmVlZXu7m69Xl9eXr67u2ub2t/f39vbI6Lx8XH7Q0RR
bGhoyMnJubi4kCRpfX09Pz9fnhoaGtJqtRqN5u7u7ubmRqvVhoeHOzJ3ACf5MB35meTi4kLe7O/v
J6KBgQHbDs3NzX5+fiqVytfX12Qy2cY1Gg0R7e7uvl8zKysrKirKoYUD/A1feuGemJhIRM/Pz/Lm
y8vL1NRUVVVVXV2d0WhcWlqy7alUKoloZWXl/SJKpfLs7Eyv1/9p1gB/15cimZiYIKKEhAR5U6fT
GY1GtVpdU1MjCIL9GVdOTk5wcHB7e3tra+vLy4v9ItXV1RaLJTU1VafTOe7+Azjfh88v8unW8fHx
6upqc3Ozi4tLWlqa2WyWZwsKCpKSkuSfCwsLBUG4vr62HSuKokqlIqLo6OiNjQ37ZcfHx+U3u8rK
ygwGg3OeGwEcjPHuFhHxPF9fX2/7nb68vOR5fmRkRN6cmZkhoqGhIfvDJUlqa2tTKBQ8z2s0Gvup
k5OT7OxsIgoMDDw8PHTCIwJwsM8imZ6ePjg4kCTJfqqvr4+IamtrW1paWlpampqaiCg2Nvb9Imtr
awEBAQqFwmg02o9bLJbe3l6e5/Py8hz4SACc5LPXJOnp6XFxcW5ubvaDWq02MjLSYDCIoiiK4unp
qUqlOjo62traenN4ZmZmT0/P6+vr8vKy/TjHcR0dHdnZ2Wtra/f39//6RBHg7/jeFff19XW9Xr+8
vFxUVGQb3N7eTklJ0Wq1KSkpb/b38vL63VKenp6vr6+46A4/3/c+uzU2NhYSEmK7PihLTk6Oj4+f
np42mUyjo6PDw8Onp6cWi2Vzc3NwcNDHxyc3N5eIGhsb5+fnb25unp6eZmdnl5aWiouLPTw8HPlo
AJzgG5E8PDzMzc2p1er3f/7r6+tvb291Op0kSV1dXUql0tXVNTU11Ww2Ly4uBgUFEdHJyUlFRYWv
r6+np2dlZWVpaembq/UAPxNndfS/ObVarWdnZ+fn52FhYZGRkTz/T4cmk0kUxcfHx+joaH9/f8fe
LoCTOD4SgP8ZfJ8EgMEp3ycB+HNWq/X8/Pzq6io8PDw0NJTjuK/POhZOtwAYcLoFwIBIABgQCQAD
IgFgQCQADIgEgAGRADAgEgAGRALAgEgAGBAJAAMiAWBAJAAMiASAAZEAMCASAAZEAsCASAAYEAkA
AyIBYPgFsiHqPUpaLhAAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6563</attachid>
            <date>2006-02-17 05:43:41 -0800</date>
            <delta_ts>2006-02-17 06:28:36 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>foggy.html</filename>
            <type>text/html; charset=macintosh</type>
            <size>177</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">PHNwYW4gaWQ9InQiIHN0eWxlPSJmb250LWZhbWlseTogJ0x1Y2lkYSBHcmFuZGUnOyBmb250LXdl
aWdodDogYm9sZDsgZm9udC1zaXplOiAxNnB4OyI+CmZvZ2d5IEZyYW6NYWlzCjwvc3Bhbj4KPHA+
CjxidXR0b24gb25jbGljaz0idC5pbm5lclRleHQgPSAnJm5ic3A7JyI+QmVnb25lITwvYnV0dG9u
CjwvcD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38749</attachid>
            <date>2009-08-28 13:27:12 -0700</date>
            <delta_ts>2009-08-28 17:36:12 -0700</delta_ts>
            <desc>First cut</desc>
            <filename>glyph-overflow_r3.diff</filename>
            <type>text/plain</type>
            <size>35802</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ3ODM4KQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsMTEgKzMxMiwxMSBAQCBfX1pON1dlYkNvcmUxNFJl
c291cmNlSGFuZGxlMTJyZWxlYXNlUHJvCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjBm
b3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5j
ZWxsZWRFcnJvckV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTlzZXRTaG91bGRCdWZm
ZXJEYXRhRWIKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxF
CiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTZjcmVhdGVGcm9tU3RyaW5nRVJLTlNfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNHJlZ2lzdGVyVVJMU2NoZW1lQXNM
b2NhbEVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjV3aGl0ZUxp
c3RBY2Nlc3NGcm9tT3JpZ2luRVJLUzBfUktOU182U3RyaW5nRVM1X2IKIF9fWk43V2ViQ29yZTE0
U2VjdXJpdHlPcmlnaW4yN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0c0V2CitfX1pON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlMTVBcmNo
aXZlUmVzb3VyY2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2hhcmVkQnVmZmVyRUVF
UktOU180S1VSTEVSS05TXzZTdHJpbmdFU0FfU0FfUktOU18xNlJlc291cmNlUmVzcG9uc2VFCiBf
X1pON1dlYkNvcmUxNUJhY2tGb3J3YXJkTGlzdDEwcmVtb3ZlSXRlbUVQTlNfMTFIaXN0b3J5SXRl
bUUKIF9fWk43V2ViQ29yZTE1QmFja0ZvcndhcmRMaXN0MTBzZXRFbmFibGVkRWIKQEAgLTg3Myw3
ICs4NzMsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c3VnCiBfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTN1cmxFdgogX19aTks3V2ViQ29yZTIwUmVz
b3VyY2VSZXNwb25zZUJhc2U4bWltZVR5cGVFdgogX19aTks3V2ViQ29yZTI2TmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXI2aXNEb25lRXYKLV9fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVS
S05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0
ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUUKK19fWk5LN1dlYkNvcmU0Rm9udDEw
ZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250
RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUVQTlNfMTNHbHlw
aE92ZXJmbG93RQogX19aTks3V2ViQ29yZTRGb250MTFwcmltYXJ5Rm9udEV2CiBfX1pOSzdXZWJD
b3JlNEZvbnQ4ZHJhd1RleHRFUE5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN1RleHRSdW5FUktO
U18xMEZsb2F0UG9pbnRFaWkKIF9fWk5LN1dlYkNvcmU0S1VSTDExaXNMb2NhbEZpbGVFdgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lvbiA0NzgzOCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsx
ODMsNyBAQCB2b2lkIEZvbnQ6OmRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCogY29uCiAgICAgcmV0
dXJuIGRyYXdDb21wbGV4VGV4dChjb250ZXh0LCBydW4sIHBvaW50LCBmcm9tLCB0byk7CiB9CiAK
LWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0CitmbG9hdCBGb250OjpmbG9h
dFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgp
KQpAQCAtMTk1LDExICsxOTUsMTEgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0
UnVuJiBydQogICAgICAgICAvLyBJZiB0aGUgY29tcGxleCB0ZXh0IGltcGxlbWVudGF0aW9uIGNh
bm5vdCByZXR1cm4gZmFsbGJhY2sgZm9udHMsIGF2b2lkCiAgICAgICAgIC8vIHJldHVybmluZyB0
aGVtIGZvciBzaW1wbGUgdGV4dCBhcyB3ZWxsLgogICAgICAgICBzdGF0aWMgYm9vbCByZXR1cm5G
YWxsYmFja0ZvbnRzID0gY2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7Ci0g
ICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxi
YWNrRm9udHMgPyBmYWxsYmFja0ZvbnRzIDogMCk7CisgICAgICAgIHJldHVybiBmbG9hdFdpZHRo
Rm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9udHMgPyBmYWxsYmFja0ZvbnRz
IDogMCwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
fQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGV4dHJh
Q2hhcnNBdmFpbGFibGUsIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNv
bnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNDc4MzgpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsMjEgQEAgc3RydWN0IEdseXBoRGF0YTsKIAogY29uc3QgdW5zaWduZWQgZGVmYXVsdFVuaXRz
UGVyRW0gPSAxMDAwOwogCitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgR2x5cGhPdmVyZmxv
dygpCisgICAgICAgIDogbGVmdCgwKQorICAgICAgICAsIHJpZ2h0KDApCisgICAgICAgICwgdG9w
KDApCisgICAgICAgICwgYm90dG9tKDApCisgICAgeworICAgIH0KKworICAgIGludCBsZWZ0Owor
ICAgIGludCByaWdodDsKKyAgICBpbnQgdG9wOworICAgIGludCBib3R0b207Cit9OworCiBjbGFz
cyBGb250IHsKIHB1YmxpYzoKICAgICBGb250KCk7CkBAIC03OCw4ICs5Myw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAotICAg
IGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0
aChydW4sIGZhbGxiYWNrRm9udHMpKTsgfQotICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAp
IGNvbnN0OworICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBo
T3ZlcmZsb3cgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxs
YmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KSk7IH0KKyAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0
IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CiAgICAgZmxvYXQg
ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBp
bnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKIAogICAgIGludCBv
ZmZzZXRGb3JQb3NpdGlvbihjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE0Miw3ICsxNTcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdH
bHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlw
aEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAg
ICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgZmxvYXQg
ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVmZmVyKiwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Cisg
ICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVm
ZmVyKiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
R2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JT
aW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0
bykgY29uc3Q7CiAKQEAgLTE1MCw3ICsxNjUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2
b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0
aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAg
IGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQg
cG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVj
dCBzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBv
aW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA0NzgzOCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzE3LDEwICszMTcsMTggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3ND
b250ZQogICAgIGRyYXdHbHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0
RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250
OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVy
KiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykg
Y29uc3QKIHsKICAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cyk7
CiAgICAgaXQuYWR2YW5jZShydW4ubGVuZ3RoKCksIGdseXBoQnVmZmVyKTsKKworICAgIGlmIChn
bHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGds
eXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWl0Lm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0gYXNj
ZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50PihnbHlwaE92
ZXJmbG93LT5ib3R0b20sIGNlaWxmKGl0Lm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0gZGVzY2Vu
dCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IG1heDxpbnQ+KGdseXBoT3ZlcmZs
b3ctPmxlZnQsIGNlaWxmKGl0LmZpcnN0R2x5cGhPdmVyZmxvdygpKSk7CisgICAgICAgIGdseXBo
T3ZlcmZsb3ctPnJpZ2h0ID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+cmlnaHQsIGNlaWxmKGl0
Lmxhc3RHbHlwaE92ZXJmbG93KCkpKTsKKyAgICB9CisKICAgICByZXR1cm4gaXQubV9ydW5XaWR0
aFNvRmFyOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhN
YXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0
aE1hcC5jcHAJKHJldmlzaW9uIDQ3ODM4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
bHlwaFdpZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsMTIgQEAgR2x5cGhX
aWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdAogICAgICAgICBtX3BhZ2VzLT5zZXQo
cGFnZU51bWJlciwgcGFnZSk7CiAgICAgfQogCisgICAgR2x5cGhNZXRyaWNzIHVua25vd25NZXRy
aWNzOworICAgIHVua25vd25NZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gY0dseXBoV2lkdGhV
bmtub3duOworCiAgICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3du
IGdseXBoIHdpZHRoIHZhbHVlLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdp
ZHRoUGFnZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNH
bHlwaFdpZHRoVW5rbm93bik7CisgICAgICAgIHBhZ2UtPnNldE1ldHJpY3NGb3JJbmRleChpLCB1
bmtub3duTWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFnZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA0NzgzOCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw2ICsyOSw3IEBACiAjaWZuZGVmIEdseXBoV2lkdGhNYXBfaAogI2RlZmluZSBHbHlwaFdpZHRo
TWFwX2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KQEAgLTM5LDM0ICs0MCw0NCBAQCB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOwogCiBj
b25zdCBmbG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAtMTsKIAorc3RydWN0IEdseXBoTWV0cmlj
cyB7CisgICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5n
Qm94OworfTsKKwogY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBw
dWJsaWM6CiAgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxsZWRQcmltYXJ5UGFnZShmYWxzZSkg
eyB9CiAgICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3BhZ2VzKSB7IGRlbGV0ZUFsbFZhbHVl
cygqbV9wYWdlcyk7IH0gfQogCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlw
aCBnbHlwaCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhX
aWR0aFBhZ2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgIH0KKwogICAgIGZs
b2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCiAgICAgewotICAgICAgICByZXR1cm4gbG9j
YXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlw
aCk7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNp
emUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwogICAgIH0KIAot
ICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAg
dm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYg
bWV0cmljcykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFn
ZTo6c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAgICAgbG9jYXRl
UGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGds
eXBoLCBtZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdseXBoV2lkdGhQ
YWdlIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5
IGNvdmVycyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhz
W3NpemVdOworICAgICAgICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3NpemVdOwogCi0gICAgICAg
IGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhz
W2dseXBoICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGds
eXBoLCBmbG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChH
bHlwaCBnbHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBoICUgc2l6ZV07IH0KKyAg
ICAgICAgdm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0
cmljcyYgbWV0cmljcykKICAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChn
bHlwaCAlIHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJpY3NGb3JJbmRleChnbHlw
aCAlIHNpemUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJ
bmRleCh1bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAgIHZvaWQgc2V0TWV0cmlj
c0ZvckluZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRoOworICAgICAgICAg
ICAgbV9tZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0KICAgICB9OwogICAgIApA
QCAtODQsNiArOTUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhX
aWR0aFBhZ2UqPiA+IG1fcGFnZXM7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0
YS5jcHAJKHJldmlzaW9uIDQ3ODM4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw5ICsxNTUsMTEgQEAgdm9pZCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8g
dGhlIFpFUk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlw
aCA9IGdseXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBp
ZiAoemVyb1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlw
aCAhPSBtX3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0
aEZvckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAg
IGlmICh6ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAg
R2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZh
bmNlID0gMDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlw
aCh6ZXJvV2lkdGhTcGFjZUdseXBoLCBtZXRyaWNzKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBMT0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0
aGUgc2FtZSBnbHlwaC4gR2x5cGggd2lkdGggbm90IG92ZXJyaWRkZW4uIik7CiAgICAgfQogCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lv
biA0NzgzOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNiBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBj
bGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9u
dERhdGE7Ci1jbGFzcyBXaWR0aE1hcDsKIAogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4
ZWRQaXRjaCwgVmFyaWFibGVQaXRjaCB9OwogCkBAIC03OCw4ICs3Nyw5IEBAIHB1YmxpYzoKICAg
ICBmbG9hdCB4SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWdu
ZWQgdW5pdHNQZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxv
YXQgd2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZv
ckdseXBoKEdseXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBo
KSBjb25zdCB7IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNl
OyB9CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCkgY29uc3Q7CisgICAg
R2x5cGhNZXRyaWNzIHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEdseXBoKSBjb25zdDsKIAogICAg
IGZsb2F0IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlV2lkdGg7IH0KICAgICBm
bG9hdCBhZGp1c3RlZFNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkU3BhY2VX
aWR0aDsgfQpAQCAtMjMxLDE2ICsyMzEsMTYgQEAgcHJpdmF0ZToKICAgICAKICAgICAKICNpZiAh
UExBVEZPUk0oUVQpCi1BTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnREYXRhOjp3aWR0aEZv
ckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlwaE1ldHJpY3MgU2lt
cGxlRm9udERhdGE6Om1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKLSAgICBm
bG9hdCB3aWR0aCA9IG1fZ2x5cGhUb1dpZHRoTWFwLndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAg
IGlmICh3aWR0aCAhPSBjR2x5cGhXaWR0aFVua25vd24pCi0gICAgICAgIHJldHVybiB3aWR0aDsK
LSAgICAKLSAgICB3aWR0aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChnbHlwaCk7Ci0gICAgbV9n
bHlwaFRvV2lkdGhNYXAuc2V0V2lkdGhGb3JHbHlwaChnbHlwaCwgd2lkdGgpOwotICAgIAotICAg
IHJldHVybiB3aWR0aDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljcyA9IG1fZ2x5cGhUb1dpZHRo
TWFwLm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgaWYgKG1ldHJpY3MuaG9yaXpvbnRhbEFk
dmFuY2UgIT0gY0dseXBoV2lkdGhVbmtub3duKQorICAgICAgICByZXR1cm4gbWV0cmljczsKKwor
ICAgIG1ldHJpY3MgPSBwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgbV9nbHlw
aFRvV2lkdGhNYXAuc2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNzKTsKKworICAgIHJl
dHVybiBtZXRyaWNzOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvV2lkdGhJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9XaWR0aEl0ZXJhdG9yLmNwcAkocmV2aXNpb24gNDc4MzgpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
Myw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsK
K3VzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsNiAr
NDgsMTAgQEAgV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KgogICAgICwg
bV9ydW5XaWR0aFNvRmFyKDApCiAgICAgLCBtX2ZpbmFsUm91bmRpbmdXaWR0aCgwKQogICAgICwg
bV9mYWxsYmFja0ZvbnRzKGZhbGxiYWNrRm9udHMpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdC
b3hZKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWluKCkpCisgICAgLCBtX21pbkdseXBoQm91bmRp
bmdCb3hZKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX2ZpcnN0R2x5cGhP
dmVyZmxvdygwKQorICAgICwgbV9sYXN0R2x5cGhPdmVyZmxvdygwKQogewogICAgIC8vIElmIHRo
ZSBwYWRkaW5nIGlzIG5vbi16ZXJvLCBjb3VudCB0aGUgbnVtYmVyIG9mIHNwYWNlcyBpbiB0aGUg
cnVuCiAgICAgLy8gYW5kIGRpdmlkZSB0aGF0IGJ5IHRoZSBwYWRkaW5nIGZvciBwZXIgc3BhY2Ug
YWRkaXRpb24uCkBAIC0xMjAsMTIgKzEyNSwxNCBAQCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFkdmFu
Y2UoaW50IG9mZnNldCwgCiAgICAgICAgIEFTU0VSVChmb250RGF0YSk7CiAKICAgICAgICAgLy8g
Tm93IHRoYXQgd2UgaGF2ZSBhIGdseXBoIGFuZCBmb250IGRhdGEsIGdldCBpdHMgd2lkdGguCisg
ICAgICAgIEdseXBoTWV0cmljcyBnbHlwaE1ldHJpY3M7CiAgICAgICAgIGZsb2F0IHdpZHRoOwog
ICAgICAgICBpZiAoYyA9PSAnXHQnICYmIG1fcnVuLmFsbG93VGFicygpKSB7CiAgICAgICAgICAg
ICBmbG9hdCB0YWJXaWR0aCA9IG1fZm9udC0+dGFiV2lkdGgoKTsKICAgICAgICAgICAgIHdpZHRo
ID0gdGFiV2lkdGggLSBmbW9kZihtX3J1bi54UG9zKCkgKyBydW5XaWR0aFNvRmFyLCB0YWJXaWR0
aCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB3aWR0aCA9IGZvbnREYXRhLT53aWR0
aEZvckdseXBoKGdseXBoKTsKKyAgICAgICAgICAgIGdseXBoTWV0cmljcyA9IGZvbnREYXRhLT5t
ZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICAgICAgd2lkdGggPSBnbHlwaE1ldHJpY3Mu
aG9yaXpvbnRhbEFkdmFuY2U7CiAgICAgICAgICAgICAvLyBXZSBzcGVjaWFsIGNhc2Ugc3BhY2Vz
IGluIHR3byB3YXlzIHdoZW4gYXBwbHlpbmcgd29yZCByb3VuZGluZy4KICAgICAgICAgICAgIC8v
IEZpcnN0LCB3ZSByb3VuZCBzcGFjZXMgdG8gYW4gYWRqdXN0ZWQgd2lkdGggaW4gYWxsIGZvbnRz
LgogICAgICAgICAgICAgLy8gU2Vjb25kLCBpbiBmaXhlZC1waXRjaCBmb250cyB3ZSBlbnN1cmUg
dGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0CkBAIC0xNzUsMTAgKzE4Miw2IEBAIHZvaWQgV2lkdGhJ
dGVyYXRvcjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
Ci0gICAgICAgIC8vIEFkdmFuY2UgcGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3QgZGVhbHQgd2l0
aC4KLSAgICAgICAgY3AgKz0gY2x1c3Rlckxlbmd0aDsKLSAgICAgICAgY3VycmVudENoYXJhY3Rl
ciArPSBjbHVzdGVyTGVuZ3RoOwotCiAgICAgICAgIC8vIEFjY291bnQgZm9yIGZsb2F0L2ludGVn
ZXIgaW1wZWRhbmNlIG1pc21hdGNoIGJldHdlZW4gQ0cgYW5kIEtIVE1MLiAiV29yZHMiIChjaGFy
YWN0ZXJzIAogICAgICAgICAvLyBmb2xsb3dlZCBieSBhIGNoYXJhY3RlciBkZWZpbmVkIGJ5IGlz
Um91bmRpbmdIYWNrQ2hhcmFjdGVyKCkpIGFyZSBhbHdheXMgYW4gaW50ZWdlciB3aWR0aC4KICAg
ICAgICAgLy8gV2UgYWRqdXN0IHRoZSB3aWR0aCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSAi
d29yZCIgdG8gZW5zdXJlIGFuIGludGVnZXIgd2lkdGguCkBAIC0yMDUsNiArMjA4LDE4IEBAIHZv
aWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgICAgIGdseXBo
QnVmZmVyLT5hZGQoZ2x5cGgsIGZvbnREYXRhLCAocnRsID8gb2xkV2lkdGggKyBsYXN0Um91bmRp
bmdXaWR0aCA6IHdpZHRoKSk7CiAKICAgICAgICAgbGFzdFJvdW5kaW5nV2lkdGggPSB3aWR0aCAt
IG9sZFdpZHRoOworCisgICAgICAgIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkgPSBtYXgobV9tYXhH
bHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LmJvdHRvbSgpKTsKKyAg
ICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hZ
LCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsKKworICAgICAgICBpZiAoIWN1cnJlbnRD
aGFyYWN0ZXIpCisgICAgICAgICAgICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IG1heDxmbG9hdD4o
MCwgLWdseXBoTWV0cmljcy5ib3VuZGluZ0JveC54KCkpOworICAgICAgICBtX2xhc3RHbHlwaE92
ZXJmbG93ID0gbWF4PGZsb2F0PigwLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gucmlnaHQoKSAt
IHdpZHRoKTsKKworICAgICAgICAvLyBBZHZhbmNlIHBhc3QgdGhlIGNoYXJhY3RlciB3ZSBqdXN0
IGRlYWx0IHdpdGguCisgICAgICAgIGNwICs9IGNsdXN0ZXJMZW5ndGg7CisgICAgICAgIGN1cnJl
bnRDaGFyYWN0ZXIgKz0gY2x1c3Rlckxlbmd0aDsKKwogICAgIH0KIAogICAgIG1fY3VycmVudENo
YXJhY3RlciA9IGN1cnJlbnRDaGFyYWN0ZXI7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1dpZHRoSXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1dpZHRoSXRlcmF0b3IuaAkocmV2aXNpb24gNDc4MzgpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEg
QEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogICAgIHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBo
QnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2YW5jZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgs
IEdseXBoQnVmZmVyKiA9IDApOwogCisgICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0JveFkoKSBj
b25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgbWluR2x5
cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9
CisgICAgZmxvYXQgZmlyc3RHbHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdEds
eXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBsYXN0R2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0
dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7IH0KKwogICAgIGNvbnN0IEZvbnQqIG1fZm9udDsKIAog
ICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwpAQCAtNTEsNyArNTYsMTIgQEAgc3RydWN0IFdpZHRo
SXRlcmF0b3IgewogCiBwcml2YXRlOgogICAgIFVDaGFyMzIgbm9ybWFsaXplVm9pY2luZ01hcmtz
KGludCBjdXJyZW50Q2hhcmFjdGVyKTsKKwogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogbV9mYWxsYmFja0ZvbnRzOworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7
CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WTsKKyAgICBmbG9hdCBtX2ZpcnN0R2x5
cGhPdmVyZmxvdzsKKyAgICBmbG9hdCBtX2xhc3RHbHlwaE92ZXJmbG93OwogfTsKIAogfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hY0NvcmVUZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjQ29yZVRleHQu
Y3BwCShyZXZpc2lvbiA0NzgzOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRNYWNDb3JlVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBG
b250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihj
b250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6
ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KikgY29uc3QKIHsK
ICAgICBDb3JlVGV4dENvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIHRydWUsIGZhbGxi
YWNrRm9udHMpOwogICAgIHJldHVybiBjb250cm9sbGVyLnRvdGFsV2lkdGgoKTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1t
CShyZXZpc2lvbiA0NzgzOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBs
ZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTEsMTcgKzM5MSwyNSBAQCB2b2lk
IFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgICAgIFtuYW1lIGNhc2VJ
bnNlbnNpdGl2ZUNvbXBhcmU6QCJNb25vdHlwZUNvcnNpdmEiXSAhPSBOU09yZGVyZWRTYW1lOwog
fQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGds
eXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NG
b3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKLSAgICBOU0ZvbnQqIGZvbnQgPSBtX3BsYXRm
b3JtRGF0YS5mb250KCk7Ci0gICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURhdGEubV9z
aXplOworICAgIE5TRm9udCogZm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKKyAgICBmbG9h
dCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7CiAgICAgQ0dBZmZpbmVUcmFuc2Zv
cm0gbSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsK
ICAgICBDR1NpemUgYWR2YW5jZTsKLSAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFu
Y2VzKG1fcGxhdGZvcm1EYXRhLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkp
IHsKKyAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgp
LmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKICAgICAgICAgTE9HX0VS
Uk9SKCJVbmFibGUgdG8gY2FjaGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3Bs
YXlOYW1lXSwgcG9pbnRTaXplKTsKICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7CiAgICAgfQot
ICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEds
eXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZh
bmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIENHUmVjdCBib3VuZGluZ0Jv
eDsKKyAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmds
eXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgIENHRmxvYXQgc2NhbGUgPSBwb2ludFNpemUgLyB1
bml0c1BlckVtKCk7CisgICAgbWV0cmljcy5ib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5l
VHJhbnNmb3JtKGJvdW5kaW5nQm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwg
LXNjYWxlKSk7CisgICAgaWYgKG1fc3ludGhldGljQm9sZE9mZnNldCkKKyAgICAgICAgbWV0cmlj
cy5ib3VuZGluZ0JveC5zZXRXaWR0aChtZXRyaWNzLmJvdW5kaW5nQm94LndpZHRoKCkgKyBtX3N5
bnRoZXRpY0JvbGRPZmZzZXQpOworICAgIHJldHVybiBtZXRyaWNzOwogfQogCiAjaWYgVVNFKEFU
U1VJKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDQ3ODM4
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4OCw4ICsyODgsMTAgQEAgaW50IElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNIb3Jpem9u
dGFsbAogICAgICAgICAgICAgaW50IGxldHRlclNwYWNpbmcgPSBtaW4oMCwgKGludClydC0+c3R5
bGUobV9maXJzdExpbmUpLT5mb250KCkubGV0dGVyU3BhY2luZygpKTsKICAgICAgICAgICAgIHJp
Z2h0TGF5b3V0T3ZlcmZsb3cgPSBtYXgoeFBvcyArIHRleHQtPndpZHRoKCkgLSBsZXR0ZXJTcGFj
aW5nLCByaWdodExheW91dE92ZXJmbG93KTsKIAotICAgICAgICAgICAgaW50IGxlZnRHbHlwaE92
ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgaW50IHJpZ2h0R2x5cGhPdmVy
ZmxvdyA9IHN0cm9rZU92ZXJmbG93IC0gbGV0dGVyU3BhY2luZzsKKyAgICAgICAgICAgIEdseXBo
T3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihjdXJy
KS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cg
PSAtc3Ryb2tlT3ZlcmZsb3cgLSBnbHlwaE92ZXJmbG93LmxlZnQ7CisgICAgICAgICAgICBpbnQg
cmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFjaW5nICsgZ2x5
cGhPdmVyZmxvdy5yaWdodDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaW50IGNoaWxkT3Zl
cmZsb3dMZWZ0ID0gbGVmdEdseXBoT3ZlcmZsb3c7CiAgICAgICAgICAgICBpbnQgY2hpbGRPdmVy
Zmxvd1JpZ2h0ID0gcmlnaHRHbHlwaE92ZXJmbG93OwpAQCAtNTY1LDEwICs1NjcsMTMgQEAgdm9p
ZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlVmVydGljYWxPdmVyZgogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogCiAgICAgICAgICAgICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxp
bnQ+KGNlaWxmKHJ0LT5zdHlsZSgpLT50ZXh0U3Ryb2tlV2lkdGgoKSAvIDIuMGYpKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaW50IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZs
b3c7Ci0gICAgICAgICAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93
OwotICAgICAgICAgICAgCisKKyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxv
dzsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+dGFrZUds
eXBoT3ZlcmZsb3coZ2x5cGhPdmVyZmxvdyk7CisKKyAgICAgICAgICAgIGludCB0b3BHbHlwaE92
ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gZ2x5cGhPdmVyZmxvdy50b3A7CisgICAgICAgICAg
ICBpbnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93ICsgZ2x5cGhPdmVyZmxv
dy5ib3R0b207CisKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhP
dmVyZmxvdzsKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5
cGhPdmVyZmxvdzsKICAgICAgICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0
eWxlKCktPnRleHRTaGFkb3coKTsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA0NzgzOCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OTQs
NyArOTk0LDcgQEAgYm9vbCBJbmxpbmVUZXh0Qm94Ojpjb250YWluc0NhcmV0T2Zmc2V0KAogICAg
IHJldHVybiB0cnVlOwogfQogCi10eXBlZGVmIEhhc2hNYXA8SW5saW5lVGV4dEJveCosIFZlY3Rv
cjxjb25zdCBTaW1wbGVGb250RGF0YSo+ID4gRmFsbGJhY2tGb250c01hcDsKK3R5cGVkZWYgSGFz
aE1hcDxjb25zdCBJbmxpbmVUZXh0Qm94KiwgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4g
PiBGYWxsYmFja0ZvbnRzTWFwOwogc3RhdGljIEZhbGxiYWNrRm9udHNNYXAqIGdGYWxsYmFja0Zv
bnRzTWFwOwogCiB2b2lkIElubGluZVRleHRCb3g6OnNldEZhbGxiYWNrRm9udHMoY29uc3QgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQpAQCAtMTAyMCw0ICsx
MDIwLDM1IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6dGFrZUZhbGxiYWNrRm9udHMoVmUKICAgICBn
RmFsbGJhY2tGb250c01hcC0+cmVtb3ZlKGl0KTsKIH0KIAordHlwZWRlZiBIYXNoTWFwPGNvbnN0
IElubGluZVRleHRCb3gqLCBHbHlwaE92ZXJmbG93PiBHbHlwaE92ZXJmbG93TWFwOworc3RhdGlj
IEdseXBoT3ZlcmZsb3dNYXAqIGdHbHlwaE92ZXJmbG93TWFwOworCit2b2lkIElubGluZVRleHRC
b3g6OnNldEdseXBoT3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykK
K3sKKyAgICBpZiAoIWdHbHlwaE92ZXJmbG93TWFwKQorICAgICAgICBnR2x5cGhPdmVyZmxvd01h
cCA9IG5ldyBHbHlwaE92ZXJmbG93TWFwOworCisgICAgQVNTRVJUKCFnR2x5cGhPdmVyZmxvd01h
cC0+Y29udGFpbnModGhpcykpOworICAgIGdHbHlwaE92ZXJmbG93TWFwLT5zZXQodGhpcywgZ2x5
cGhPdmVyZmxvdyk7Cit9CisKK0dseXBoT3ZlcmZsb3cgSW5saW5lVGV4dEJveDo6Z2x5cGhPdmVy
ZmxvdygpIGNvbnN0Cit7CisgICAgaWYgKCFnR2x5cGhPdmVyZmxvd01hcCkKKyAgICAgICAgcmV0
dXJuIEdseXBoT3ZlcmZsb3coKTsKKyAgICByZXR1cm4gZ0dseXBoT3ZlcmZsb3dNYXAtPmdldCh0
aGlzKTsKK30KKwordm9pZCBJbmxpbmVUZXh0Qm94Ojp0YWtlR2x5cGhPdmVyZmxvdyhHbHlwaE92
ZXJmbG93JiBnbHlwaE92ZXJmbG93KQoreworICAgIGlmICghZ0dseXBoT3ZlcmZsb3dNYXApCisg
ICAgICAgIHJldHVybjsKKworICAgIEdseXBoT3ZlcmZsb3dNYXA6Oml0ZXJhdG9yIGl0ID0gZ0ds
eXBoT3ZlcmZsb3dNYXAtPmZpbmQodGhpcyk7CisgICAgaWYgKGl0ID09IGdHbHlwaE92ZXJmbG93
TWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ2x5cGhPdmVyZmxvdyA9IGdHbHlw
aE92ZXJmbG93TWFwLT50YWtlKHRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCShyZXZpc2lvbiA0NzgzOCkKKysrIFdlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmFsbGJhY2tGb250cyhjb25zdCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4mKTsKICAgICB2b2lkIHRha2VGYWxsYmFja0ZvbnRzKFZlY3Rv
cjxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7CiAKKyAgICB2b2lkIHNldEdseXBoT3ZlcmZsb3co
Y29uc3QgR2x5cGhPdmVyZmxvdyYpOworICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdygp
IGNvbnN0OworICAgIHZvaWQgdGFrZUdseXBoT3ZlcmZsb3coR2x5cGhPdmVyZmxvdyYpOworCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgaW50IHNlbGVjdGlvblRvcCgpOwogICAgIHZpcnR1YWwgaW50
IHNlbGVjdGlvbkhlaWdodCgpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA0NzgzOCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0MCw3ICs2NDAsOCBA
QCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0CiAgICAgICAgICAgICAg
ICAgbmVlZHNXb3JkU3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJ0LT5jaGFyYWN0ZXJzKClb
ci0+bV9zdG9wIC0gMV0pICYmIHItPm1fc3RvcCA9PSBsZW5ndGg7ICAgICAgICAgIAogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+IGZhbGxi
YWNrRm9udHM7Ci0gICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1f
c3RhcnQsIHItPm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxs
YmFja0ZvbnRzKSk7CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7Cisg
ICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1fc3RhcnQsIHItPm1f
c3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxsYmFja0ZvbnRzLCAm
Z2x5cGhPdmVyZmxvdykpOwogICAgICAgICAgICAgaWYgKCFmYWxsYmFja0ZvbnRzLmlzRW1wdHko
KQogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICAgICAgICAgICYmICFpc1NWR1RleHQoKQpA
QCAtNjQ5LDYgKzY1MCwxNCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBv
c2l0CiAgICAgICAgICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CiAgICAgICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0RmFsbGJh
Y2tGb250cyhmYWxsYmFja0ZvbnRzKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgo
Z2x5cGhPdmVyZmxvdy50b3AgfHwgZ2x5cGhPdmVyZmxvdy5ib3R0b20gfHwgZ2x5cGhPdmVyZmxv
dy5sZWZ0IHx8IGdseXBoT3ZlcmZsb3cucmlnaHQpCisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAg
ICAgICAgICAgICAgJiYgIWlzU1ZHVGV4dCgpCisjZW5kaWYKKyAgICAgICAgICAgICkgeworICAg
ICAgICAgICAgICAgIEFTU0VSVChyLT5tX2JveC0+aXNUZXh0KCkpOworICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihyLT5tX2JveCktPnNldEdseXBoT3ZlcmZsb3co
Z2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoIXItPm1f
b2JqZWN0LT5pc1JlbmRlcklubGluZSgpKSB7CiAgICAgICAgICAgICBSZW5kZXJCb3gqIHJlbmRl
ckJveCA9IHRvUmVuZGVyQm94KHItPm1fb2JqZWN0KTsKICAgICAgICAgICAgIHJlbmRlckJveC0+
Y2FsY1dpZHRoKCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gNDc4
MzgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjUsNyArNjUsNyBAQCBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUqIG5vZGUsIFBhc3NS
CiAgICAgICwgbV9saW5lc0RpcnR5KGZhbHNlKQogICAgICAsIG1fY29udGFpbnNSZXZlcnNlZFRl
eHQoZmFsc2UpCiAgICAgICwgbV9pc0FsbEFTQ0lJKGNoYXJhY3RlcnNBcmVBbGxBU0NJSShtX3Rl
eHQuZ2V0KCkpKQotICAgICAsIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMoZmFsc2UpCisg
ICAgICwgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMoZmFsc2UpCiB7
CiAgICAgQVNTRVJUKG1fdGV4dCk7CiAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFJlbmRlclRl
eHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmCiAgICAgLy8gbmVlZCB0byByZWxheW91dC4KICAg
ICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQpIHsKICAgICAgICAgc2V0TmVlZHNM
YXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Ci0gICAgICAgIG1fa25vd25Ob3RUb1VzZUZhbGxi
YWNrRm9udHMgPSBmYWxzZTsKKyAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0Zh
bGxiYWNrRm9udHMgPSBmYWxzZTsKICAgICB9CiAKICAgICBFVGV4dFRyYW5zZm9ybSBvbGRUcmFu
c2Zvcm0gPSBvbGRTdHlsZSA/IG9sZFN0eWxlLT50ZXh0VHJhbnNmb3JtKCkgOiBUVE5PTkU7CkBA
IC00MjcsNyArNDI3LDcgQEAgSW50UmVjdCBSZW5kZXJUZXh0Ojpsb2NhbENhcmV0UmVjdChJbmxp
bgogICAgIHJldHVybiBJbnRSZWN0KGxlZnQsIHRvcCwgY2FyZXRXaWR0aCwgaGVpZ2h0KTsKIH0K
IAotQUxXQVlTX0lOTElORSBpbnQgUmVuZGVyVGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9u
dCYgZiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorQUxXQVlTX0lOTElORSBpbnQgUmVuZGVy
VGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYgZiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBp
bnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBH
bHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIGlmIChmLmlzRml4ZWRQ
aXRjaCgpICYmICFmLmlzU21hbGxDYXBzKCkgJiYgbV9pc0FsbEFTQ0lJKSB7CiAgICAgICAgIGlu
dCBtb25vc3BhY2VDaGFyYWN0ZXJXaWR0aCA9IGYuc3BhY2VXaWR0aCgpOwpAQCAtNDU3LDcgKzQ1
Nyw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUMKICAgICAgICAg
cmV0dXJuIHc7CiAgICAgfQogCi0gICAgcmV0dXJuIGYud2lkdGgoVGV4dFJ1bih0ZXh0KCktPmNo
YXJhY3RlcnMoKSArIHN0YXJ0LCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250
cyk7CisgICAgcmV0dXJuIGYud2lkdGgoVGV4dFJ1bih0ZXh0KCktPmNoYXJhY3RlcnMoKSArIHN0
YXJ0LCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxv
dyk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGxlYWRXaWR0
aCwKQEAgLTUyNiw3ICs1MjYsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhz
KGludCBsCiAgICAgICAgICAgICAgICAgbGluZWxlbisrOwogCiAgICAgICAgICAgICBpZiAobGlu
ZWxlbikgewotICAgICAgICAgICAgICAgIGVuZE1heFcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCBs
aW5lbGVuLCBsZWFkV2lkdGggKyBlbmRNYXhXLCAwKTsKKyAgICAgICAgICAgICAgICBlbmRNYXhX
ID0gd2lkdGhGcm9tQ2FjaGUoZiwgaSwgbGluZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4VywgMCwg
MCk7CiAgICAgICAgICAgICAgICAgaWYgKGZpcnN0TGluZSkgewogICAgICAgICAgICAgICAgICAg
ICBmaXJzdExpbmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgbGVhZFdpZHRoID0gMDsK
QEAgLTU3MSwxNCArNTcxLDE1IEBAIGludCBSZW5kZXJUZXh0OjptYXhQcmVmV2lkdGgoKSBjb25z
dAogdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoKQogewogICAg
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOwotICAgIGNhbGNQ
cmVmV2lkdGhzKGxlYWRXaWR0aCwgZmFsbGJhY2tGb250cyk7Ci0gICAgaWYgKGZhbGxiYWNrRm9u
dHMuaXNFbXB0eSgpKQotICAgICAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gdHJ1
ZTsKKyAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7CisgICAgY2FsY1ByZWZXaWR0aHMo
bGVhZFdpZHRoLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKKyAgICBpZiAoZmFsbGJh
Y2tGb250cy5pc0VtcHR5KCkgJiYgIWdseXBoT3ZlcmZsb3cubGVmdCAmJiAhZ2x5cGhPdmVyZmxv
dy5yaWdodCAmJiAhZ2x5cGhPdmVyZmxvdy50b3AgJiYgIWdseXBoT3ZlcmZsb3cuYm90dG9tKQor
ICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IHRydWU7
CiB9CiAKLXZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQordm9pZCBSZW5kZXJU
ZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4mIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZsb3cpCiB7
Ci0gICAgQVNTRVJUKG1faGFzVGFiIHx8IHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90
VG9Vc2VGYWxsYmFja0ZvbnRzKTsKKyAgICBBU1NFUlQobV9oYXNUYWIgfHwgcHJlZldpZHRoc0Rp
cnR5KCkgfHwgIW1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzKTsKIAog
ICAgIG1fbWluV2lkdGggPSAwOwogICAgIG1fYmVnaW5NaW5XaWR0aCA9IDA7CkBAIC02MDgsNiAr
NjA5LDggQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgIGlu
dCBuZXh0QnJlYWthYmxlID0gLTE7CiAgICAgaW50IGxhc3RXb3JkQm91bmRhcnkgPSAwOwogCisg
ICAgaW50IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPSAtMTsKKwogICAgIGJvb2wgYnJlYWtOQlNQ
ID0gc3R5bGUoKS0+YXV0b1dyYXAoKSAmJiBzdHlsZSgpLT5uYnNwTW9kZSgpID09IFNQQUNFOwog
ICAgIGJvb2wgYnJlYWtBbGwgPSAoc3R5bGUoKS0+d29yZEJyZWFrKCkgPT0gQnJlYWtBbGxXb3Jk
QnJlYWsgfHwgc3R5bGUoKS0+d29yZEJyZWFrKCkgPT0gQnJlYWtXb3JkQnJlYWspICYmIHN0eWxl
KCktPmF1dG9XcmFwKCk7CiAKQEAgLTY1MCw3ICs2NTMsOSBAQCB2b2lkIFJlbmRlclRleHQ6OmNh
bGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5Kys7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfSBlbHNlIGlmIChjID09IHNvZnRIeXBoZW4p
IHsKLSAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29y
ZEJvdW5kYXJ5LCBpIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRo
LCAmZmFsbGJhY2tGb250cyk7CisgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9t
Q2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaSAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0
aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKKyAgICAg
ICAgICAgIGlmIChmaXJzdEdseXBoTGVmdE92ZXJmbG93IDwgMCkKKyAgICAgICAgICAgICAgICBm
aXJzdEdseXBoTGVmdE92ZXJmbG93ID0gZ2x5cGhPdmVyZmxvdy5sZWZ0OwogICAgICAgICAgICAg
bGFzdFdvcmRCb3VuZGFyeSA9IGkgKyAxOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KQEAgLTY3MywxMyArNjc4LDE1IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMo
aW50IGxlYWQKIAogICAgICAgICBpbnQgd29yZExlbiA9IGogLSBpOwogICAgICAgICBpZiAod29y
ZExlbikgewotICAgICAgICAgICAgaW50IHcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCB3b3JkTGVu
LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAg
IGludCB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgaSwgd29yZExlbiwgbGVhZFdpZHRoICsgY3Vyck1h
eFdpZHRoLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYg
KGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhM
ZWZ0T3ZlcmZsb3cgPSBnbHlwaE92ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBjdXJyTWluV2lk
dGggKz0gdzsKICAgICAgICAgICAgIGlmIChiZXR3ZWVuV29yZHMpIHsKICAgICAgICAgICAgICAg
ICBpZiAobGFzdFdvcmRCb3VuZGFyeSA9PSBpKQogICAgICAgICAgICAgICAgICAgICBjdXJyTWF4
V2lkdGggKz0gdzsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGN1
cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBqIC0gbGFz
dFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cyk7
CisgICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBs
YXN0V29yZEJvdW5kYXJ5LCBqIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1h
eFdpZHRoLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwogICAgICAgICAgICAgICAg
IGxhc3RXb3JkQm91bmRhcnkgPSBqOwogICAgICAgICAgICAgfQogCkBAIC03MzksNiArNzQ2LDgg
QEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAgICB9CiAg
ICAgfQogCisgICAgZ2x5cGhPdmVyZmxvdy5sZWZ0ID0gZmlyc3RHbHlwaExlZnRPdmVyZmxvdzsK
KwogICAgIGlmICgobmVlZHNXb3JkU3BhY2luZyAmJiBsZW4gPiAxKSB8fCAoaWdub3JpbmdTcGFj
ZXMgJiYgIWZpcnN0V29yZCkpCiAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3b3JkU3BhY2luZzsK
IApAQCAtMTAwMCw3ICsxMDA5LDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpzZXRUZXh0KFBhc3NSZWZQ
dHI8U3RyaQogCiAgICAgc2V0VGV4dEludGVybmFsKHRleHQpOwogICAgIHNldE5lZWRzTGF5b3V0
QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMg
PSBmYWxzZTsKKyAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9
IGZhbHNlOwogfQogCiBpbnQgUmVuZGVyVGV4dDo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwg
Ym9vbCkgY29uc3QKQEAgLTEwNTUsNyArMTA2NCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6cG9zaXRp
b25MaW5lQm94KElubGluZUIKICAgICBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0IHw9IHMtPmRpcmVj
dGlvbigpID09IFJUTDsKIH0KIAotdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQg
ZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExpbmUsIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK3Vuc2lnbmVkIFJlbmRl
clRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wg
Zmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMs
IEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKGZyb20gPj0g
dGV4dExlbmd0aCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTEwNjMsMTAgKzEwNzIsMTAgQEAg
dW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbQogICAgIGlmIChmcm9tICsg
bGVuID4gdGV4dExlbmd0aCgpKQogICAgICAgICBsZW4gPSB0ZXh0TGVuZ3RoKCkgLSBmcm9tOwog
Ci0gICAgcmV0dXJuIHdpZHRoKGZyb20sIGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4
UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICByZXR1cm4gd2lkdGgoZnJvbSwgbGVuLCBzdHlsZShm
aXJzdExpbmUpLT5mb250KCksIHhQb3MsIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
fQogCi11bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBs
ZW4sIGNvbnN0IEZvbnQmIGYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmIGYsIGludCB4UG9zLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGds
eXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGZyb20gKyBsZW4gPD0gdGV4dExlbmd0
aCgpKTsKICAgICBpZiAoIWNoYXJhY3RlcnMoKSkKQEAgLTEwNzYsMTggKzEwODUsMTkgQEAgdW5z
aWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbQogICAgIGlmICgmZiA9PSAmc3R5
bGUoKS0+Zm9udCgpKSB7CiAgICAgICAgIGlmICghc3R5bGUoKS0+cHJlc2VydmVOZXdsaW5lKCkg
JiYgIWZyb20gJiYgbGVuID09IHRleHRMZW5ndGgoKSkgewogICAgICAgICAgICAgaWYgKGZhbGxi
YWNrRm9udHMpIHsKLSAgICAgICAgICAgICAgICBpZiAocHJlZldpZHRoc0RpcnR5KCkgfHwgIW1f
a25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3Rf
Y2FzdDxSZW5kZXJUZXh0Kj4odGhpcyktPmNhbGNQcmVmV2lkdGhzKDAsICpmYWxsYmFja0ZvbnRz
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrRm9udHMtPmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVl
OworICAgICAgICAgICAgICAgIEFTU0VSVChnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgICAg
ICBpZiAocHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9G
YWxsYmFja0ZvbnRzKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4
dCo+KHRoaXMpLT5jYWxjUHJlZldpZHRocygwLCAqZmFsbGJhY2tGb250cywgKmdseXBoT3ZlcmZs
b3cpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tGb250cy0+aXNFbXB0eSgpICYm
ICFnbHlwaE92ZXJmbG93LT5sZWZ0ICYmICFnbHlwaE92ZXJmbG93LT5yaWdodCAmJiAhZ2x5cGhP
dmVyZmxvdy0+dG9wICYmICFnbHlwaE92ZXJmbG93LT5ib3R0b20pCisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IHRydWU7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHcgPSBtX21heFdpZHRoOwogICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdyA9IG1heFByZWZXaWR0aCgpOwogICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4s
IHhQb3MsIGZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgdyA9IHdpZHRoRnJvbUNhY2hlKGYs
IGZyb20sIGxlbiwgeFBvcywgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfSBl
bHNlCi0gICAgICAgIHcgPSBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBm
cm9tLCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cyk7CisgICAgICAgIHcg
PSBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBmcm9tLCBsZW4sIGFsbG93
VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiAKICAgICByZXR1
cm4gdzsKIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHJldmlzaW9uIDQ3ODM4KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw4ICs2
Nyw4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV90ZXh0LT5sZW5ndGgoKTsgfSAvLyBub24gdmlydHVhbCBpbXBsZW1lbnRhdGlvbiBvZiBsZW5n
dGgoKQogICAgIHZvaWQgcG9zaXRpb25MaW5lQm94KElubGluZUJveCopOwogCi0gICAgdmlydHVh
bCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQm
LCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
ID0gMCkgY29uc3Q7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSA9IGZhbHNlLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9u
dCYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQg
d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExp
bmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
ID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IGxpbmVI
ZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsK
IApAQCAtMTMyLDcgKzEzMiw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIElubGluZVRleHRC
b3gqIGNyZWF0ZVRleHRCb3goKTsgLy8gU3ViY2xhc3NlZCBieSBTVkcuCiAKIHByaXZhdGU6Ci0g
ICAgdm9pZCBjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpOworICAgIHZvaWQgY2FsY1ByZWZXaWR0aHMoaW50
IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRz
LCBHbHlwaE92ZXJmbG93Jik7CiAKICAgICAvLyBNYWtlIGxlbmd0aCgpIHByaXZhdGUgc28gdGhh
dCBjYWxsZXJzIHRoYXQgaGF2ZSBhIFJlbmRlclRleHQqCiAgICAgLy8gd2lsbCB1c2UgdGhlIG1v
cmUgZWZmaWNpZW50IHRleHRMZW5ndGgoKSBpbnN0ZWFkLCB3aGlsZQpAQCAtMTQ1LDcgKzE0NSw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZVRleHRCb3hlcygpOwogICAgIGJvb2wgY29u
dGFpbnNPbmx5V2hpdGVzcGFjZSh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4pIGNvbnN0Owot
ICAgIGludCB3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBp
bnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBj
b25zdDsKKyAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYsIGludCBzdGFydCwgaW50
IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cywgR2x5cGhPdmVyZmxvdyopIGNvbnN0OwogICAgIGJvb2wgaXNBbGxBU0NJSSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNBbGxBU0NJSTsgfQogCiAgICAgaW50IG1fbWluV2lkdGg7IC8vIGhlcmUg
dG8gbWluaW1pemUgcGFkZGluZyBpbiA2NC1iaXQuCkBAIC0xNzAsNyArMTcwLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9yIHJlbW92ZWQpLgogICAgIGJvb2wg
bV9jb250YWluc1JldmVyc2VkVGV4dCA6IDE7CiAgICAgYm9vbCBtX2lzQWxsQVNDSUkgOiAxOwot
ICAgIG11dGFibGUgYm9vbCBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzIDogMTsKKyAgICBt
dXRhYmxlIGJvb2wgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgOiAx
OwogfTsKIAogaW5saW5lIFJlbmRlclRleHQqIHRvUmVuZGVyVGV4dChSZW5kZXJPYmplY3QqIG9i
amVjdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38766</attachid>
            <date>2009-08-28 17:36:12 -0700</date>
            <delta_ts>2009-08-29 15:05:40 -0700</delta_ts>
            <desc>Slightly better</desc>
            <filename>glyph-overflow_r4.diff</filename>
            <type>text/plain</type>
            <size>40657</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ3ODc0KQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsMTEgKzMxMiwxMSBAQCBfX1pON1dlYkNvcmUxNFJl
c291cmNlSGFuZGxlMTJyZWxlYXNlUHJvCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjBm
b3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5j
ZWxsZWRFcnJvckV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTlzZXRTaG91bGRCdWZm
ZXJEYXRhRWIKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxF
CiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTZjcmVhdGVGcm9tU3RyaW5nRVJLTlNfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNHJlZ2lzdGVyVVJMU2NoZW1lQXNM
b2NhbEVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjV3aGl0ZUxp
c3RBY2Nlc3NGcm9tT3JpZ2luRVJLUzBfUktOU182U3RyaW5nRVM1X2IKIF9fWk43V2ViQ29yZTE0
U2VjdXJpdHlPcmlnaW4yN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0c0V2CitfX1pON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlMTVBcmNo
aXZlUmVzb3VyY2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2hhcmVkQnVmZmVyRUVF
UktOU180S1VSTEVSS05TXzZTdHJpbmdFU0FfU0FfUktOU18xNlJlc291cmNlUmVzcG9uc2VFCiBf
X1pON1dlYkNvcmUxNUJhY2tGb3J3YXJkTGlzdDEwcmVtb3ZlSXRlbUVQTlNfMTFIaXN0b3J5SXRl
bUUKIF9fWk43V2ViQ29yZTE1QmFja0ZvcndhcmRMaXN0MTBzZXRFbmFibGVkRWIKQEAgLTg3Myw3
ICs4NzMsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c3VnCiBfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTN1cmxFdgogX19aTks3V2ViQ29yZTIwUmVz
b3VyY2VSZXNwb25zZUJhc2U4bWltZVR5cGVFdgogX19aTks3V2ViQ29yZTI2TmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXI2aXNEb25lRXYKLV9fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVS
S05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0
ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUUKK19fWk5LN1dlYkNvcmU0Rm9udDEw
ZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250
RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUVQTlNfMTNHbHlw
aE92ZXJmbG93RQogX19aTks3V2ViQ29yZTRGb250MTFwcmltYXJ5Rm9udEV2CiBfX1pOSzdXZWJD
b3JlNEZvbnQ4ZHJhd1RleHRFUE5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN1RleHRSdW5FUktO
U18xMEZsb2F0UG9pbnRFaWkKIF9fWk5LN1dlYkNvcmU0S1VSTDExaXNMb2NhbEZpbGVFdgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lvbiA0Nzg3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsx
ODMsNyBAQCB2b2lkIEZvbnQ6OmRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCogY29uCiAgICAgcmV0
dXJuIGRyYXdDb21wbGV4VGV4dChjb250ZXh0LCBydW4sIHBvaW50LCBmcm9tLCB0byk7CiB9CiAK
LWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0CitmbG9hdCBGb250OjpmbG9h
dFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgp
KQpAQCAtMTk1LDExICsxOTUsMTEgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0
UnVuJiBydQogICAgICAgICAvLyBJZiB0aGUgY29tcGxleCB0ZXh0IGltcGxlbWVudGF0aW9uIGNh
bm5vdCByZXR1cm4gZmFsbGJhY2sgZm9udHMsIGF2b2lkCiAgICAgICAgIC8vIHJldHVybmluZyB0
aGVtIGZvciBzaW1wbGUgdGV4dCBhcyB3ZWxsLgogICAgICAgICBzdGF0aWMgYm9vbCByZXR1cm5G
YWxsYmFja0ZvbnRzID0gY2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7Ci0g
ICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxi
YWNrRm9udHMgPyBmYWxsYmFja0ZvbnRzIDogMCk7CisgICAgICAgIHJldHVybiBmbG9hdFdpZHRo
Rm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9udHMgPyBmYWxsYmFja0ZvbnRz
IDogMCwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
fQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGV4dHJh
Q2hhcnNBdmFpbGFibGUsIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNv
bnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNDc4NzQpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsMjEgQEAgc3RydWN0IEdseXBoRGF0YTsKIAogY29uc3QgdW5zaWduZWQgZGVmYXVsdFVuaXRz
UGVyRW0gPSAxMDAwOwogCitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgR2x5cGhPdmVyZmxv
dygpCisgICAgICAgIDogbGVmdCgwKQorICAgICAgICAsIHJpZ2h0KDApCisgICAgICAgICwgdG9w
KDApCisgICAgICAgICwgYm90dG9tKDApCisgICAgeworICAgIH0KKworICAgIGludCBsZWZ0Owor
ICAgIGludCByaWdodDsKKyAgICBpbnQgdG9wOworICAgIGludCBib3R0b207Cit9OworCiBjbGFz
cyBGb250IHsKIHB1YmxpYzoKICAgICBGb250KCk7CkBAIC03OCw4ICs5Myw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAotICAg
IGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0
aChydW4sIGZhbGxiYWNrRm9udHMpKTsgfQotICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAp
IGNvbnN0OworICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBo
T3ZlcmZsb3cgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxs
YmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KSk7IH0KKyAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0
IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CiAgICAgZmxvYXQg
ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBp
bnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKIAogICAgIGludCBv
ZmZzZXRGb3JQb3NpdGlvbihjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE0Miw3ICsxNTcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdH
bHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlw
aEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAg
ICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgZmxvYXQg
ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVmZmVyKiwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Cisg
ICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVm
ZmVyKiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
R2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JT
aW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0
bykgY29uc3Q7CiAKQEAgLTE1MCw3ICsxNjUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2
b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0
aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAg
IGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQg
cG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVj
dCBzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBv
aW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA0Nzg3NCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzE3LDEwICszMTcsMTggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3ND
b250ZQogICAgIGRyYXdHbHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0
RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250
OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVy
KiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykg
Y29uc3QKIHsKICAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cyk7
CiAgICAgaXQuYWR2YW5jZShydW4ubGVuZ3RoKCksIGdseXBoQnVmZmVyKTsKKworICAgIGlmIChn
bHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGds
eXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWl0Lm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0gYXNj
ZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50PihnbHlwaE92
ZXJmbG93LT5ib3R0b20sIGNlaWxmKGl0Lm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0gZGVzY2Vu
dCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IG1heDxpbnQ+KGdseXBoT3ZlcmZs
b3ctPmxlZnQsIGNlaWxmKGl0LmZpcnN0R2x5cGhPdmVyZmxvdygpKSk7CisgICAgICAgIGdseXBo
T3ZlcmZsb3ctPnJpZ2h0ID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+cmlnaHQsIGNlaWxmKGl0
Lmxhc3RHbHlwaE92ZXJmbG93KCkpKTsKKyAgICB9CisKICAgICByZXR1cm4gaXQubV9ydW5XaWR0
aFNvRmFyOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhN
YXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0
aE1hcC5jcHAJKHJldmlzaW9uIDQ3ODc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
bHlwaFdpZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsMTIgQEAgR2x5cGhX
aWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdAogICAgICAgICBtX3BhZ2VzLT5zZXQo
cGFnZU51bWJlciwgcGFnZSk7CiAgICAgfQogCisgICAgR2x5cGhNZXRyaWNzIHVua25vd25NZXRy
aWNzOworICAgIHVua25vd25NZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gY0dseXBoV2lkdGhV
bmtub3duOworCiAgICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3du
IGdseXBoIHdpZHRoIHZhbHVlLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdp
ZHRoUGFnZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNH
bHlwaFdpZHRoVW5rbm93bik7CisgICAgICAgIHBhZ2UtPnNldE1ldHJpY3NGb3JJbmRleChpLCB1
bmtub3duTWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFnZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA0Nzg3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw2ICsyOSw3IEBACiAjaWZuZGVmIEdseXBoV2lkdGhNYXBfaAogI2RlZmluZSBHbHlwaFdpZHRo
TWFwX2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KQEAgLTM5LDM0ICs0MCw0NCBAQCB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOwogCiBj
b25zdCBmbG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAtMTsKIAorc3RydWN0IEdseXBoTWV0cmlj
cyB7CisgICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5n
Qm94OworfTsKKwogY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBw
dWJsaWM6CiAgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxsZWRQcmltYXJ5UGFnZShmYWxzZSkg
eyB9CiAgICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3BhZ2VzKSB7IGRlbGV0ZUFsbFZhbHVl
cygqbV9wYWdlcyk7IH0gfQogCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlw
aCBnbHlwaCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhX
aWR0aFBhZ2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgIH0KKwogICAgIGZs
b2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCiAgICAgewotICAgICAgICByZXR1cm4gbG9j
YXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlw
aCk7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNp
emUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwogICAgIH0KIAot
ICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAg
dm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYg
bWV0cmljcykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFn
ZTo6c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAgICAgbG9jYXRl
UGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGds
eXBoLCBtZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdseXBoV2lkdGhQ
YWdlIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5
IGNvdmVycyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhz
W3NpemVdOworICAgICAgICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3NpemVdOwogCi0gICAgICAg
IGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhz
W2dseXBoICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGds
eXBoLCBmbG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChH
bHlwaCBnbHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBoICUgc2l6ZV07IH0KKyAg
ICAgICAgdm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0
cmljcyYgbWV0cmljcykKICAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChn
bHlwaCAlIHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJpY3NGb3JJbmRleChnbHlw
aCAlIHNpemUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJ
bmRleCh1bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAgIHZvaWQgc2V0TWV0cmlj
c0ZvckluZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRoOworICAgICAgICAg
ICAgbV9tZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0KICAgICB9OwogICAgIApA
QCAtODQsNiArOTUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhX
aWR0aFBhZ2UqPiA+IG1fcGFnZXM7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0
YS5jcHAJKHJldmlzaW9uIDQ3ODc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw5ICsxNTUsMTEgQEAgdm9pZCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8g
dGhlIFpFUk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlw
aCA9IGdseXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBp
ZiAoemVyb1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlw
aCAhPSBtX3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0
aEZvckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAg
IGlmICh6ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAg
R2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZh
bmNlID0gMDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlw
aCh6ZXJvV2lkdGhTcGFjZUdseXBoLCBtZXRyaWNzKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBMT0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0
aGUgc2FtZSBnbHlwaC4gR2x5cGggd2lkdGggbm90IG92ZXJyaWRkZW4uIik7CiAgICAgfQogCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lv
biA0Nzg3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNiBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBj
bGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9u
dERhdGE7Ci1jbGFzcyBXaWR0aE1hcDsKIAogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4
ZWRQaXRjaCwgVmFyaWFibGVQaXRjaCB9OwogCkBAIC03OCw4ICs3Nyw5IEBAIHB1YmxpYzoKICAg
ICBmbG9hdCB4SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWdu
ZWQgdW5pdHNQZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxv
YXQgd2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZv
ckdseXBoKEdseXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBo
KSBjb25zdCB7IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNl
OyB9CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCkgY29uc3Q7CisgICAg
R2x5cGhNZXRyaWNzIHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEdseXBoKSBjb25zdDsKIAogICAg
IGZsb2F0IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlV2lkdGg7IH0KICAgICBm
bG9hdCBhZGp1c3RlZFNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkU3BhY2VX
aWR0aDsgfQpAQCAtMjMxLDE2ICsyMzEsMTYgQEAgcHJpdmF0ZToKICAgICAKICAgICAKICNpZiAh
UExBVEZPUk0oUVQpCi1BTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnREYXRhOjp3aWR0aEZv
ckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlwaE1ldHJpY3MgU2lt
cGxlRm9udERhdGE6Om1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKLSAgICBm
bG9hdCB3aWR0aCA9IG1fZ2x5cGhUb1dpZHRoTWFwLndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAg
IGlmICh3aWR0aCAhPSBjR2x5cGhXaWR0aFVua25vd24pCi0gICAgICAgIHJldHVybiB3aWR0aDsK
LSAgICAKLSAgICB3aWR0aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChnbHlwaCk7Ci0gICAgbV9n
bHlwaFRvV2lkdGhNYXAuc2V0V2lkdGhGb3JHbHlwaChnbHlwaCwgd2lkdGgpOwotICAgIAotICAg
IHJldHVybiB3aWR0aDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljcyA9IG1fZ2x5cGhUb1dpZHRo
TWFwLm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgaWYgKG1ldHJpY3MuaG9yaXpvbnRhbEFk
dmFuY2UgIT0gY0dseXBoV2lkdGhVbmtub3duKQorICAgICAgICByZXR1cm4gbWV0cmljczsKKwor
ICAgIG1ldHJpY3MgPSBwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgbV9nbHlw
aFRvV2lkdGhNYXAuc2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNzKTsKKworICAgIHJl
dHVybiBtZXRyaWNzOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvV2lkdGhJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9XaWR0aEl0ZXJhdG9yLmNwcAkocmV2aXNpb24gNDc4NzQpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
Myw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsK
K3VzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsNiAr
NDgsMTAgQEAgV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KgogICAgICwg
bV9ydW5XaWR0aFNvRmFyKDApCiAgICAgLCBtX2ZpbmFsUm91bmRpbmdXaWR0aCgwKQogICAgICwg
bV9mYWxsYmFja0ZvbnRzKGZhbGxiYWNrRm9udHMpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdC
b3hZKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWluKCkpCisgICAgLCBtX21pbkdseXBoQm91bmRp
bmdCb3hZKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX2ZpcnN0R2x5cGhP
dmVyZmxvdygwKQorICAgICwgbV9sYXN0R2x5cGhPdmVyZmxvdygwKQogewogICAgIC8vIElmIHRo
ZSBwYWRkaW5nIGlzIG5vbi16ZXJvLCBjb3VudCB0aGUgbnVtYmVyIG9mIHNwYWNlcyBpbiB0aGUg
cnVuCiAgICAgLy8gYW5kIGRpdmlkZSB0aGF0IGJ5IHRoZSBwYWRkaW5nIGZvciBwZXIgc3BhY2Ug
YWRkaXRpb24uCkBAIC0xMjAsMTIgKzEyNSwxNCBAQCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFkdmFu
Y2UoaW50IG9mZnNldCwgCiAgICAgICAgIEFTU0VSVChmb250RGF0YSk7CiAKICAgICAgICAgLy8g
Tm93IHRoYXQgd2UgaGF2ZSBhIGdseXBoIGFuZCBmb250IGRhdGEsIGdldCBpdHMgd2lkdGguCisg
ICAgICAgIEdseXBoTWV0cmljcyBnbHlwaE1ldHJpY3M7CiAgICAgICAgIGZsb2F0IHdpZHRoOwog
ICAgICAgICBpZiAoYyA9PSAnXHQnICYmIG1fcnVuLmFsbG93VGFicygpKSB7CiAgICAgICAgICAg
ICBmbG9hdCB0YWJXaWR0aCA9IG1fZm9udC0+dGFiV2lkdGgoKTsKICAgICAgICAgICAgIHdpZHRo
ID0gdGFiV2lkdGggLSBmbW9kZihtX3J1bi54UG9zKCkgKyBydW5XaWR0aFNvRmFyLCB0YWJXaWR0
aCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB3aWR0aCA9IGZvbnREYXRhLT53aWR0
aEZvckdseXBoKGdseXBoKTsKKyAgICAgICAgICAgIGdseXBoTWV0cmljcyA9IGZvbnREYXRhLT5t
ZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICAgICAgd2lkdGggPSBnbHlwaE1ldHJpY3Mu
aG9yaXpvbnRhbEFkdmFuY2U7CiAgICAgICAgICAgICAvLyBXZSBzcGVjaWFsIGNhc2Ugc3BhY2Vz
IGluIHR3byB3YXlzIHdoZW4gYXBwbHlpbmcgd29yZCByb3VuZGluZy4KICAgICAgICAgICAgIC8v
IEZpcnN0LCB3ZSByb3VuZCBzcGFjZXMgdG8gYW4gYWRqdXN0ZWQgd2lkdGggaW4gYWxsIGZvbnRz
LgogICAgICAgICAgICAgLy8gU2Vjb25kLCBpbiBmaXhlZC1waXRjaCBmb250cyB3ZSBlbnN1cmUg
dGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0CkBAIC0xNzUsNiArMTgyLDkgQEAgdm9pZCBXaWR0aEl0
ZXJhdG9yOjphZHZhbmNlKGludCBvZmZzZXQsIAogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKCFjdXJyZW50Q2hhcmFjdGVyKQorICAgICAgICAgICAgbV9maXJzdEdseXBo
T3ZlcmZsb3cgPSBtYXg8ZmxvYXQ+KDAsIC1nbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueCgpKTsK
KwogICAgICAgICAvLyBBZHZhbmNlIHBhc3QgdGhlIGNoYXJhY3RlciB3ZSBqdXN0IGRlYWx0IHdp
dGguCiAgICAgICAgIGNwICs9IGNsdXN0ZXJMZW5ndGg7CiAgICAgICAgIGN1cnJlbnRDaGFyYWN0
ZXIgKz0gY2x1c3Rlckxlbmd0aDsKQEAgLTIwNSw2ICsyMTUsMTAgQEAgdm9pZCBXaWR0aEl0ZXJh
dG9yOjphZHZhbmNlKGludCBvZmZzZXQsIAogICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChn
bHlwaCwgZm9udERhdGEsIChydGwgPyBvbGRXaWR0aCArIGxhc3RSb3VuZGluZ1dpZHRoIDogd2lk
dGgpKTsKIAogICAgICAgICBsYXN0Um91bmRpbmdXaWR0aCA9IHdpZHRoIC0gb2xkV2lkdGg7CisK
KyAgICAgICAgbV9tYXhHbHlwaEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdC
b3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICBtX21pbkds
eXBoQm91bmRpbmdCb3hZID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFksIGdseXBoTWV0cmlj
cy5ib3VuZGluZ0JveC55KCkpOworICAgICAgICBtX2xhc3RHbHlwaE92ZXJmbG93ID0gbWF4PGZs
b2F0PigwLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gucmlnaHQoKSAtIHdpZHRoKTsKICAgICB9
CiAKICAgICBtX2N1cnJlbnRDaGFyYWN0ZXIgPSBjdXJyZW50Q2hhcmFjdGVyOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHJldmlzaW9uIDQ3ODc0KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDYgKzM4LDExIEBAIHN0cnVjdCBXaWR0aEl0ZXJhdG9yIHsKICAgICB2b2lkIGFk
dmFuY2UoaW50IHRvLCBHbHlwaEJ1ZmZlciogPSAwKTsKICAgICBib29sIGFkdmFuY2VPbmVDaGFy
YWN0ZXIoZmxvYXQmIHdpZHRoLCBHbHlwaEJ1ZmZlciogPSAwKTsKIAorICAgIGZsb2F0IG1heEds
eXBoQm91bmRpbmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlwaEJvdW5kaW5nQm94WTsg
fQorICAgIGZsb2F0IG1pbkdseXBoQm91bmRpbmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9taW5H
bHlwaEJvdW5kaW5nQm94WTsgfQorICAgIGZsb2F0IGZpcnN0R2x5cGhPdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIG1fZmlyc3RHbHlwaE92ZXJmbG93OyB9CisgICAgZmxvYXQgbGFzdEdseXBoT3Zl
cmZsb3coKSBjb25zdCB7IHJldHVybiBtX2xhc3RHbHlwaE92ZXJmbG93OyB9CisKICAgICBjb25z
dCBGb250KiBtX2ZvbnQ7CiAKICAgICBjb25zdCBUZXh0UnVuJiBtX3J1bjsKQEAgLTUxLDcgKzU2
LDEyIEBAIHN0cnVjdCBXaWR0aEl0ZXJhdG9yIHsKIAogcHJpdmF0ZToKICAgICBVQ2hhcjMyIG5v
cm1hbGl6ZVZvaWNpbmdNYXJrcyhpbnQgY3VycmVudENoYXJhY3Rlcik7CisKICAgICBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIG1fZmFsbGJhY2tGb250czsKKyAgICBmbG9hdCBtX21h
eEdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7Cisg
ICAgZmxvYXQgbV9maXJzdEdseXBoT3ZlcmZsb3c7CisgICAgZmxvYXQgbV9sYXN0R2x5cGhPdmVy
ZmxvdzsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRN
YWNDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udE1hY0NvcmVUZXh0LmNwcAkocmV2aXNpb24gNDc4NzQpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250TWFjQ29yZVRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
Niw3ICs4Niw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAg
ICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7
CiB9CiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVu
JiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29u
c3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBy
dW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhP
dmVyZmxvdyopIGNvbnN0CiB7CiAgICAgQ29yZVRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIodGhp
cywgcnVuLCB0cnVlLCBmYWxsYmFja0ZvbnRzKTsKICAgICByZXR1cm4gY29udHJvbGxlci50b3Rh
bFdpZHRoKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250
RGF0YU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YU1hYy5tbQkocmV2aXNpb24gNDc4NzQpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzkx
LDE3ICszOTEsMjUgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAg
ICAgICAgICBbbmFtZSBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiTW9ub3R5cGVDb3JzaXZhIl0g
IT0gTlNPcmRlcmVkU2FtZTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgTlNG
b250KiBmb250ID0gbV9wbGF0Zm9ybURhdGEuZm9udCgpOwotICAgIGZsb2F0IHBvaW50U2l6ZSA9
IG1fcGxhdGZvcm1EYXRhLm1fc2l6ZTsKKyAgICBOU0ZvbnQqIGZvbnQgPSBwbGF0Zm9ybURhdGEo
KS5mb250KCk7CisgICAgZmxvYXQgcG9pbnRTaXplID0gcGxhdGZvcm1EYXRhKCkubV9zaXplOwog
ICAgIENHQWZmaW5lVHJhbnNmb3JtIG0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShwb2lu
dFNpemUsIHBvaW50U2l6ZSk7CiAgICAgQ0dTaXplIGFkdmFuY2U7Ci0gICAgaWYgKCF3a0dldEds
eXBoVHJhbnNmb3JtZWRBZHZhbmNlcyhtX3BsYXRmb3JtRGF0YS5jZ0ZvbnQoKSwgZm9udCwgJm0s
ICZnbHlwaCwgJmFkdmFuY2UpKSB7CisgICAgaWYgKCF3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZh
bmNlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgZm9udCwgJm0sICZnbHlwaCwgJmFkdmFuY2Up
KSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNhY2hlIGdseXBoIHdpZHRocyBmb3Ig
JUAgJWYiLCBbZm9udCBkaXNwbGF5TmFtZV0sIHBvaW50U2l6ZSk7CiAgICAgICAgIGFkdmFuY2Uu
d2lkdGggPSAwOwogICAgIH0KLSAgICByZXR1cm4gYWR2YW5jZS53aWR0aCArIG1fc3ludGhldGlj
Qm9sZE9mZnNldDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljczsKKyAgICBtZXRyaWNzLmhvcml6
b250YWxBZHZhbmNlID0gYWR2YW5jZS53aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAg
ICBDR1JlY3QgYm91bmRpbmdCb3g7CisgICAgQ0dGb250R2V0R2x5cGhCQm94ZXMocGxhdGZvcm1E
YXRhKCkuY2dGb250KCksICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsKKyAgICBDR0Zsb2F0IHNj
YWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgIG1ldHJpY3MuYm91bmRpbmdCb3gg
PSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShib3VuZGluZ0JveCwgQ0dBZmZpbmVUcmFuc2Zv
cm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOworICAgIGlmIChtX3N5bnRoZXRpY0JvbGRPZmZz
ZXQpCisgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0cmljcy5ib3VuZGlu
Z0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICByZXR1cm4gbWV0cmlj
czsKIH0KIAogI2lmIFVTRShBVFNVSSkKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwCShyZXZpc2lvbiA0Nzg3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODgsOCArMjg4LDEwIEBAIGludCBJbmxpbmVGbG93Qm94
OjpwbGFjZUJveGVzSG9yaXpvbnRhbGwKICAgICAgICAgICAgIGludCBsZXR0ZXJTcGFjaW5nID0g
bWluKDAsIChpbnQpcnQtPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLmxldHRlclNwYWNpbmco
KSk7CiAgICAgICAgICAgICByaWdodExheW91dE92ZXJmbG93ID0gbWF4KHhQb3MgKyB0ZXh0LT53
aWR0aCgpIC0gbGV0dGVyU3BhY2luZywgcmlnaHRMYXlvdXRPdmVyZmxvdyk7CiAKLSAgICAgICAg
ICAgIGludCBsZWZ0R2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdzsKLSAgICAgICAgICAg
IGludCByaWdodEdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmc7
CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8
SW5saW5lVGV4dEJveCo+KGN1cnIpLT5nbHlwaE92ZXJmbG93KCk7CisKKyAgICAgICAgICAgIGlu
dCBsZWZ0R2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIChnbHlwaE92ZXJmbG93ID8g
Z2x5cGhPdmVyZmxvdy0+bGVmdCA6IDApOworICAgICAgICAgICAgaW50IHJpZ2h0R2x5cGhPdmVy
ZmxvdyA9IHN0cm9rZU92ZXJmbG93IC0gbGV0dGVyU3BhY2luZyArIChnbHlwaE92ZXJmbG93ID8g
Z2x5cGhPdmVyZmxvdy0+cmlnaHQgOiAwKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaW50
IGNoaWxkT3ZlcmZsb3dMZWZ0ID0gbGVmdEdseXBoT3ZlcmZsb3c7CiAgICAgICAgICAgICBpbnQg
Y2hpbGRPdmVyZmxvd1JpZ2h0ID0gcmlnaHRHbHlwaE92ZXJmbG93OwpAQCAtNDEyLDM1ICs0MTQs
MzUgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaQogCiAgICAgICAg
IGludCBsaW5lSGVpZ2h0OwogICAgICAgICBpbnQgYmFzZWxpbmU7Ci0gICAgICAgIFZlY3Rvcjxj
b25zdCBTaW1wbGVGb250RGF0YSo+IHVzZWRGb250czsKKyAgICAgICAgVmVjdG9yPGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4qIHVzZWRGb250cyA9IDA7CiAgICAgICAgIGlmIChjdXJyLT5pc0lubGlu
ZVRleHRCb3goKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihjdXJy
KS0+dGFrZUZhbGxiYWNrRm9udHModXNlZEZvbnRzKTsKKyAgICAgICAgICAgIHVzZWRGb250cyA9
IHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+ZmFsbGJhY2tGb250cygpOwogCi0g
ICAgICAgIGlmICghdXNlZEZvbnRzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgdXNlZEZvbnRz
LmFwcGVuZChjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5wcmlt
YXJ5Rm9udCgpKTsKKyAgICAgICAgaWYgKHVzZWRGb250cykgeworICAgICAgICAgICAgdXNlZEZv
bnRzLT5hcHBlbmQoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCku
cHJpbWFyeUZvbnQoKSk7CiAgICAgICAgICAgICBMZW5ndGggcGFyZW50TGluZUhlaWdodCA9IGN1
cnItPnJlbmRlcmVyKCktPnBhcmVudCgpLT5zdHlsZSgpLT5saW5lSGVpZ2h0KCk7CiAgICAgICAg
ICAgICBpZiAocGFyZW50TGluZUhlaWdodC5pc05lZ2F0aXZlKCkpIHsKICAgICAgICAgICAgICAg
ICBpbnQgYmFzZWxpbmVUb0JvdHRvbSA9IDA7CiAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSAw
OwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9ICh1c2VkRm9u
dHNbaV0tPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0gdXNlZEZvbnRz
W2ldLT5kZXNjZW50KCkpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgo
YmFzZWxpbmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwgdXNl
ZEZvbnRzW2ldLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRG
b250c1tpXS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOworICAgICAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNlZEZvbnRzLT5hdChpKS0+bGluZVNwYWNpbmco
KSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0gdXNlZEZvbnRzLT5hdChpKS0+ZGVzY2Vu
dCgpKSAvIDI7CisgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBo
YWxmTGVhZGluZyArIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgYmFzZWxpbmVUb0JvdHRvbSA9IG1heChiYXNlbGluZVRvQm90dG9tLCB1c2VkRm9udHMt
PmF0KGkpLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkgLSB1c2Vk
Rm9udHMtPmF0KGkpLT5kZXNjZW50KCkgLSBoYWxmTGVhZGluZyk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBiYXNlbGluZSArIGJhc2VsaW5lVG9Cb3R0
b207CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudExpbmVIZWlnaHQuaXNQZXJjZW50KCkp
IHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gcGFyZW50TGluZUhlaWdodC5jYWxjTWlu
VmFsdWUoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+Zm9udFNpemUoKSk7CiAgICAgICAgICAg
ICAgICAgYmFzZWxpbmUgPSAwOwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgdXNlZEZvbnRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBoYWxm
TGVhZGluZyA9IChsaW5lSGVpZ2h0IC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRGb250
c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4
KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOworICAgICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLT5zaXplKCk7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVz
ZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0gdXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpKSAv
IDI7CisgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVh
ZGluZyArIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBwYXJlbnRM
aW5lSGVpZ2h0LnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSAwOwotICAgICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9IChsaW5lSGVpZ2h0IC0gdXNl
ZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRGb250c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAg
ICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVz
ZWRGb250c1tpXS0+YXNjZW50KCkpOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdXNlZEZvbnRzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpbnQg
aGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0g
dXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpKSAvIDI7CisgICAgICAgICAgICAgICAgICAgIGJh
c2VsaW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250cy0+YXQoaSktPmFz
Y2VudCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxz
ZSB7CkBAIC01NjUsMTAgKzU2NywxMiBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVWZXJ0
aWNhbE92ZXJmCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGludCBz
dHJva2VPdmVyZmxvdyA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocnQtPnN0eWxlKCktPnRleHRT
dHJva2VXaWR0aCgpIC8gMi4wZikpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpbnQgdG9w
R2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdzsKLSAgICAgICAgICAgIGludCBib3R0b21H
bHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICAKKworICAgICAgICAg
ICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19jYXN0PElubGluZVRleHRC
b3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAgICBpbnQgdG9wR2x5cGhP
dmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxv
dy0+dG9wIDogMCk7CisgICAgICAgICAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9r
ZU92ZXJmbG93ICsgKGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5ib3R0b20gOiAwKTsK
KwogICAgICAgICAgICAgaW50IGNoaWxkT3ZlcmZsb3dUb3AgPSB0b3BHbHlwaE92ZXJmbG93Owog
ICAgICAgICAgICAgaW50IGNoaWxkT3ZlcmZsb3dCb3R0b20gPSBib3R0b21HbHlwaE92ZXJmbG93
OwogICAgICAgICAgICAgZm9yIChTaGFkb3dEYXRhKiBzaGFkb3cgPSBydC0+c3R5bGUoKS0+dGV4
dFNoYWRvdygpOyBzaGFkb3c7IHNoYWRvdyA9IHNoYWRvdy0+bmV4dCkgewpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDQ3ODc0KQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5NCwzMCArOTk0LDU3
IEBAIGJvb2wgSW5saW5lVGV4dEJveDo6Y29udGFpbnNDYXJldE9mZnNldCgKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPElubGluZVRleHRCb3gqLCBWZWN0b3I8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiA+IEZhbGxiYWNrRm9udHNNYXA7Ci1zdGF0aWMgRmFsbGJhY2tGb250
c01hcCogZ0ZhbGxiYWNrRm9udHNNYXA7Cit0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSW5saW5lVGV4
dEJveCosIHBhaXI8VmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4sIEdseXBoT3ZlcmZsb3c+
ID4gR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CitzdGF0aWMgR2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAqIGdHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDsK
IAogdm9pZCBJbmxpbmVUZXh0Qm94OjpzZXRGYWxsYmFja0ZvbnRzKGNvbnN0IEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cykKIHsKLSAgICBpZiAoIWdGYWxsYmFj
a0ZvbnRzTWFwKQotICAgICAgICBnRmFsbGJhY2tGb250c01hcCA9IG5ldyBGYWxsYmFja0ZvbnRz
TWFwOworICAgIGlmICghZ0dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAg
ICBnR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAgPSBuZXcgR2x5cGhPdmVyZmxvd0Fu
ZEZhbGxiYWNrRm9udHNNYXA7CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9
IGdGYWxsYmFja0ZvbnRzTWFwLT5zZXQodGhpcywgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4oKSkuZmlyc3Q7Ci0gICAgQVNTRVJUKGl0LT5zZWNvbmQuaXNFbXB0eSgpKTsKLSAgICBjb3B5
VG9WZWN0b3IoZmFsbGJhY2tGb250cywgaXQtPnNlY29uZCk7CisgICAgR2x5cGhPdmVyZmxvd0Fu
ZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gZ0dseXBoT3ZlcmZsb3dBbmRGYWxsYmFj
a0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWlyKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0
YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0OworICAgIEFTU0VSVChpdC0+c2Vjb25kLmZp
cnN0LmlzRW1wdHkoKSk7CisgICAgY29weVRvVmVjdG9yKGZhbGxiYWNrRm9udHMsIGl0LT5zZWNv
bmQuZmlyc3QpOwogfQogCi12b2lkIElubGluZVRleHRCb3g6OnRha2VGYWxsYmFja0ZvbnRzKFZl
Y3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQorVmVjdG9yPGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIElubGluZVRleHRCb3g6OmZhbGxiYWNrRm9udHMoKSBjb25zdAog
ewotICAgIGlmICghZ0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAo
IWdHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBnR2x5
cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmZpbmQodGhpcyk7CisgICAgaWYgKGl0ID09
IGdHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCisgICAgICAgIHJldHVy
biAwOworCisgICAgcmV0dXJuICZpdC0+c2Vjb25kLmZpcnN0OworfQogCi0gICAgRmFsbGJhY2tG
b250c01hcDo6aXRlcmF0b3IgaXQgPSBnRmFsbGJhY2tGb250c01hcC0+ZmluZCh0aGlzKTsKLSAg
ICBpZiAoaXQgPT0gZ0ZhbGxiYWNrRm9udHNNYXAtPmVuZCgpKQordm9pZCBJbmxpbmVUZXh0Qm94
OjpzZXRHbHlwaE92ZXJmbG93KGNvbnN0IEdseXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZsb3cpCit7
CisgICAgaWYgKCFnR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIGdH
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCA9IG5ldyBHbHlwaE92ZXJmbG93QW5kRmFs
bGJhY2tGb250c01hcDsKKworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjpp
dGVyYXRvciBpdCA9IGdHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMs
IG1ha2VfcGFpcihWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93
KCkpKS5maXJzdDsKKyAgICBpdC0+c2Vjb25kLnNlY29uZCA9IGdseXBoT3ZlcmZsb3c7Cit9CisK
K0dseXBoT3ZlcmZsb3cqIElubGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3coKSBjb25zdAorewor
ICAgIGlmICghZ0dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1
cm4gMDsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQg
PSBnR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmZpbmQodGhpcyk7CisgICAgaWYg
KGl0ID09IGdHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgcmV0dXJuICZpdC0+c2Vjb25kLnNlY29uZDsKK30KKwordm9pZCBJ
bmxpbmVUZXh0Qm94OjpjbGVhckdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRNYXAoKQorewor
ICAgIGlmICghZ0dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQogICAgICAgICByZXR1
cm47CiAKLSAgICBmYWxsYmFja0ZvbnRzLnN3YXAoaXQtPnNlY29uZCk7Ci0gICAgZ0ZhbGxiYWNr
Rm9udHNNYXAtPnJlbW92ZShpdCk7CisgICAgZ0dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwLT5jbGVhcigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5oCShyZXZpc2lvbiA0Nzg3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L0lubGluZVRleHRCb3guaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsMTIgQEAgcHVibGlj
OgogICAgIHZvaWQgb2Zmc2V0UnVuKGludCBkKSB7IG1fc3RhcnQgKz0gZDsgfQogCiAgICAgdm9p
ZCBzZXRGYWxsYmFja0ZvbnRzKGNvbnN0IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYp
OwotICAgIHZvaWQgdGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4mKTsKKyAgICBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cygp
IGNvbnN0OworCisgICAgdm9pZCBzZXRHbHlwaE92ZXJmbG93KGNvbnN0IEdseXBoT3ZlcmZsb3cm
KTsKKyAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KCkgY29uc3Q7CisKKyAgICBzdGF0
aWMgdm9pZCBjbGVhckdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRNYXAoKTsKIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGludCBzZWxlY3Rpb25Ub3AoKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gNDc4NzQpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDAsNyArNjQwLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUhvcml6b250YWxQb3Np
dAogICAgICAgICAgICAgICAgIG5lZWRzV29yZFNwYWNpbmcgPSAhaXNTcGFjZU9yTmV3bGluZShy
dC0+Y2hhcmFjdGVycygpW3ItPm1fc3RvcCAtIDFdKSAmJiByLT5tX3N0b3AgPT0gbGVuZ3RoOyAg
ICAgICAgICAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOwotICAgICAgICAgICAgci0+bV9ib3gtPnNldFdpZHRo
KHJ0LT53aWR0aChyLT5tX3N0YXJ0LCByLT5tX3N0b3AgLSByLT5tX3N0YXJ0LCB0b3RXaWR0aCwg
Zmlyc3RMaW5lLCAmZmFsbGJhY2tGb250cykpOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyBn
bHlwaE92ZXJmbG93OworICAgICAgICAgICAgci0+bV9ib3gtPnNldFdpZHRoKHJ0LT53aWR0aChy
LT5tX3N0YXJ0LCByLT5tX3N0b3AgLSByLT5tX3N0YXJ0LCB0b3RXaWR0aCwgZmlyc3RMaW5lLCAm
ZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpKTsKICAgICAgICAgICAgIGlmICghZmFsbGJh
Y2tGb250cy5pc0VtcHR5KCkKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICAgICAgICAgICAgICAm
JiAhaXNTVkdUZXh0KCkKQEAgLTY0OSw2ICs2NTAsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29t
cHV0ZUhvcml6b250YWxQb3NpdAogICAgICAgICAgICAgICAgIEFTU0VSVChyLT5tX2JveC0+aXNU
ZXh0KCkpOwogICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihyLT5t
X2JveCktPnNldEZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cyk7CiAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoKGdseXBoT3ZlcmZsb3cudG9wIHx8IGdseXBoT3ZlcmZsb3cuYm90dG9t
IHx8IGdseXBoT3ZlcmZsb3cubGVmdCB8fCBnbHlwaE92ZXJmbG93LnJpZ2h0KQorI2lmIEVOQUJM
RShTVkcpCisgICAgICAgICAgICAgICAgICAgICYmICFpc1NWR1RleHQoKQorI2VuZGlmCisgICAg
ICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoci0+bV9ib3gtPmlzVGV4dCgpKTsK
KyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oci0+bV9ib3gpLT5z
ZXRHbHlwaE92ZXJmbG93KGdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgfQogICAgICAgICB9
IGVsc2UgaWYgKCFyLT5tX29iamVjdC0+aXNSZW5kZXJJbmxpbmUoKSkgewogICAgICAgICAgICAg
UmVuZGVyQm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChyLT5tX29iamVjdCk7CiAgICAgICAg
ICAgICByZW5kZXJCb3gtPmNhbGNXaWR0aCgpOwpAQCAtMTAzMiw2ICsxMDQxLDggQEAgdm9pZCBS
ZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gTm93IHBvc2l0aW9uIG91ciB0ZXh0IHJ1bnMgdmVydGljYWxseS4KICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uc0ZvckxpbmUobGluZUJveCwgcmVz
b2x2ZXIuZmlyc3RSdW4oKSk7CiAKKyAgICAgICAgICAgICAgICAgICAgICAgIElubGluZVRleHRC
b3g6OmNsZWFyR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCgpOworCiAjaWYgRU5BQkxF
KFNWRykKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNwZWNpYWwgU1ZHIHRleHQgbGF5b3V0
IGNvZGUKICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCb3gtPmNvbXB1dGVQZXJDaGFyYWN0
ZXJMYXlvdXRJbmZvcm1hdGlvbigpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJl
dmlzaW9uIDQ3ODc0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgUmVuZGVyVGV4dDo6UmVuZGVyVGV4dChOb2RlKiBu
b2RlLCBQYXNzUgogICAgICAsIG1fbGluZXNEaXJ0eShmYWxzZSkKICAgICAgLCBtX2NvbnRhaW5z
UmV2ZXJzZWRUZXh0KGZhbHNlKQogICAgICAsIG1faXNBbGxBU0NJSShjaGFyYWN0ZXJzQXJlQWxs
QVNDSUkobV90ZXh0LmdldCgpKSkKLSAgICAgLCBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRz
KGZhbHNlKQorICAgICAsIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRz
KGZhbHNlKQogewogICAgIEFTU0VSVChtX3RleHQpOwogCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9p
ZCBSZW5kZXJUZXh0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZgogICAgIC8vIG5lZWQgdG8gcmVs
YXlvdXQuCiAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0KSB7CiAgICAgICAg
IHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAgICAgICBtX2tub3duTm90
VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgICAgIG1fa25vd25Ub0hhdmVOb092ZXJm
bG93QW5kTm9GYWxsYmFja0ZvbnRzID0gZmFsc2U7CiAgICAgfQogCiAgICAgRVRleHRUcmFuc2Zv
cm0gb2xkVHJhbnNmb3JtID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+dGV4dFRyYW5zZm9ybSgpIDog
VFROT05FOwpAQCAtNDI3LDcgKzQyNyw3IEBAIEludFJlY3QgUmVuZGVyVGV4dDo6bG9jYWxDYXJl
dFJlY3QoSW5saW4KICAgICByZXR1cm4gSW50UmVjdChsZWZ0LCB0b3AsIGNhcmV0V2lkdGgsIGhl
aWdodCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgaW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hl
KGNvbnN0IEZvbnQmIGYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK0FMV0FZU19JTkxJTkUg
aW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQmIGYsIGludCBzdGFydCwg
aW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICAgICBpZiAo
Zi5pc0ZpeGVkUGl0Y2goKSAmJiAhZi5pc1NtYWxsQ2FwcygpICYmIG1faXNBbGxBU0NJSSkgewog
ICAgICAgICBpbnQgbW9ub3NwYWNlQ2hhcmFjdGVyV2lkdGggPSBmLnNwYWNlV2lkdGgoKTsKQEAg
LTQ1Nyw3ICs0NTcsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21D
CiAgICAgICAgIHJldHVybiB3OwogICAgIH0KIAotICAgIHJldHVybiBmLndpZHRoKFRleHRSdW4o
dGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZh
bGxiYWNrRm9udHMpOworICAgIHJldHVybiBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0
ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOwogfQogCiB2b2lkIFJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKGlu
dCBsZWFkV2lkdGgsCkBAIC01MjYsNyArNTI2LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojp0cmltbWVk
UHJlZldpZHRocyhpbnQgbAogICAgICAgICAgICAgICAgIGxpbmVsZW4rKzsKIAogICAgICAgICAg
ICAgaWYgKGxpbmVsZW4pIHsKLSAgICAgICAgICAgICAgICBlbmRNYXhXID0gd2lkdGhGcm9tQ2Fj
aGUoZiwgaSwgbGluZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4VywgMCk7CisgICAgICAgICAgICAg
ICAgZW5kTWF4VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4sIGxlYWRXaWR0aCArIGVu
ZE1heFcsIDAsIDApOwogICAgICAgICAgICAgICAgIGlmIChmaXJzdExpbmUpIHsKICAgICAgICAg
ICAgICAgICAgICAgZmlyc3RMaW5lID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGxlYWRX
aWR0aCA9IDA7CkBAIC01NzEsMTQgKzU3MSwxNSBAQCBpbnQgUmVuZGVyVGV4dDo6bWF4UHJlZldp
ZHRoKCkgY29uc3QKIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0
aCkKIHsKICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gZmFsbGJhY2tGb250czsK
LSAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxiYWNrRm9udHMpOwotICAgIGlmIChm
YWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tG
b250cyA9IHRydWU7CisgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93OworICAgIGNhbGNQ
cmVmV2lkdGhzKGxlYWRXaWR0aCwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CisgICAg
aWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFnbHlwaE92ZXJmbG93LmxlZnQgJiYgIWds
eXBoT3ZlcmZsb3cucmlnaHQgJiYgIWdseXBoT3ZlcmZsb3cudG9wICYmICFnbHlwaE92ZXJmbG93
LmJvdHRvbSkKKyAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9u
dHMgPSB0cnVlOwogfQogCi12b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFk
V2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cykKK3Zv
aWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93JiBnbHlwaE92
ZXJmbG93KQogewotICAgIEFTU0VSVChtX2hhc1RhYiB8fCBwcmVmV2lkdGhzRGlydHkoKSB8fCAh
bV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyk7CisgICAgQVNTRVJUKG1faGFzVGFiIHx8IHBy
ZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tG
b250cyk7CiAKICAgICBtX21pbldpZHRoID0gMDsKICAgICBtX2JlZ2luTWluV2lkdGggPSAwOwpA
QCAtNjA4LDYgKzYwOSw4IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxl
YWQKICAgICBpbnQgbmV4dEJyZWFrYWJsZSA9IC0xOwogICAgIGludCBsYXN0V29yZEJvdW5kYXJ5
ID0gMDsKIAorICAgIGludCBmaXJzdEdseXBoTGVmdE92ZXJmbG93ID0gLTE7CisKICAgICBib29s
IGJyZWFrTkJTUCA9IHN0eWxlKCktPmF1dG9XcmFwKCkgJiYgc3R5bGUoKS0+bmJzcE1vZGUoKSA9
PSBTUEFDRTsKICAgICBib29sIGJyZWFrQWxsID0gKHN0eWxlKCktPndvcmRCcmVhaygpID09IEJy
ZWFrQWxsV29yZEJyZWFrIHx8IHN0eWxlKCktPndvcmRCcmVhaygpID09IEJyZWFrV29yZEJyZWFr
KSAmJiBzdHlsZSgpLT5hdXRvV3JhcCgpOwogCkBAIC02NTAsNyArNjUzLDkgQEAgdm9pZCBSZW5k
ZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAgICAgICAgbGFzdFdvcmRCb3Vu
ZGFyeSsrOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSBz
b2Z0SHlwaGVuKSB7Ci0gICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUo
ZiwgbGFzdFdvcmRCb3VuZGFyeSwgaSAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1
cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9
IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkgLSBsYXN0V29yZEJvdW5kYXJ5
LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxv
dyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA8IDApCisgICAgICAg
ICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGdseXBoT3ZlcmZsb3cubGVmdDsKICAg
ICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkgPSBpICsgMTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CkBAIC02NzMsMTMgKzY3OCwxNSBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQ
cmVmV2lkdGhzKGludCBsZWFkCiAKICAgICAgICAgaW50IHdvcmRMZW4gPSBqIC0gaTsKICAgICAg
ICAgaWYgKHdvcmRMZW4pIHsKLSAgICAgICAgICAgIGludCB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwg
aSwgd29yZExlbiwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cyk7Cisg
ICAgICAgICAgICBpbnQgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIHdvcmRMZW4sIGxlYWRXaWR0
aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKKyAgICAg
ICAgICAgIGlmIChmaXJzdEdseXBoTGVmdE92ZXJmbG93IDwgMCkKKyAgICAgICAgICAgICAgICBm
aXJzdEdseXBoTGVmdE92ZXJmbG93ID0gZ2x5cGhPdmVyZmxvdy5sZWZ0OwogICAgICAgICAgICAg
Y3Vyck1pbldpZHRoICs9IHc7CiAgICAgICAgICAgICBpZiAoYmV0d2VlbldvcmRzKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKGxhc3RXb3JkQm91bmRhcnkgPT0gaSkKICAgICAgICAgICAgICAgICAg
ICAgY3Vyck1heFdpZHRoICs9IHc7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFy
eSwgaiAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxi
YWNrRm9udHMpOworICAgICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9t
Q2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaiAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0
aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKICAgICAg
ICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5ID0gajsKICAgICAgICAgICAgIH0KIApAQCAtNzM5
LDYgKzc0Niw4IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKICAg
ICAgICAgfQogICAgIH0KIAorICAgIGdseXBoT3ZlcmZsb3cubGVmdCA9IGZpcnN0R2x5cGhMZWZ0
T3ZlcmZsb3c7CisKICAgICBpZiAoKG5lZWRzV29yZFNwYWNpbmcgJiYgbGVuID4gMSkgfHwgKGln
bm9yaW5nU3BhY2VzICYmICFmaXJzdFdvcmQpKQogICAgICAgICBjdXJyTWF4V2lkdGggKz0gd29y
ZFNwYWNpbmc7CiAKQEAgLTEwMDAsNyArMTAwOSw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6c2V0VGV4
dChQYXNzUmVmUHRyPFN0cmkKIAogICAgIHNldFRleHRJbnRlcm5hbCh0ZXh0KTsKICAgICBzZXRO
ZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICBtX2tub3duTm90VG9Vc2VGYWxs
YmFja0ZvbnRzID0gZmFsc2U7CisgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxi
YWNrRm9udHMgPSBmYWxzZTsKIH0KIAogaW50IFJlbmRlclRleHQ6OmxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIGJvb2wpIGNvbnN0CkBAIC0xMDU1LDcgKzEwNjQsNyBAQCB2b2lkIFJlbmRlclRl
eHQ6OnBvc2l0aW9uTGluZUJveChJbmxpbmVCCiAgICAgbV9jb250YWluc1JldmVyc2VkVGV4dCB8
PSBzLT5kaXJlY3Rpb24oKSA9PSBSVEw7CiB9CiAKLXVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRo
KHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lLCBI
YXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0Cit1bnNp
Z25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4
UG9zLCBib29sIGZpcnN0TGluZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIGlm
IChmcm9tID49IHRleHRMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMDYzLDEwICsx
MDcyLDEwIEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20KICAgICBp
ZiAoZnJvbSArIGxlbiA+IHRleHRMZW5ndGgoKSkKICAgICAgICAgbGVuID0gdGV4dExlbmd0aCgp
IC0gZnJvbTsKIAotICAgIHJldHVybiB3aWR0aChmcm9tLCBsZW4sIHN0eWxlKGZpcnN0TGluZSkt
PmZvbnQoKSwgeFBvcywgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIHdpZHRoKGZyb20sIGxl
biwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4UG9zLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92
ZXJmbG93KTsKIH0KIAotdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAordW5zaWduZWQgUmVuZGVyVGV4dDo6
d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBv
cywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92
ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIEFTU0VSVChmcm9tICsgbGVuIDw9
IHRleHRMZW5ndGgoKSk7CiAgICAgaWYgKCFjaGFyYWN0ZXJzKCkpCkBAIC0xMDc2LDE4ICsxMDg1
LDE5IEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20KICAgICBpZiAo
JmYgPT0gJnN0eWxlKCktPmZvbnQoKSkgewogICAgICAgICBpZiAoIXN0eWxlKCktPnByZXNlcnZl
TmV3bGluZSgpICYmICFmcm9tICYmIGxlbiA9PSB0ZXh0TGVuZ3RoKCkpIHsKICAgICAgICAgICAg
IGlmIChmYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0
eSgpIHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRoaXMpLT5jYWxjUHJlZldpZHRocygwLCAqZmFs
bGJhY2tGb250cyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzLT5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0Zv
bnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZ2x5cGhPdmVyZmxvdyk7CisgICAg
ICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVy
Zmxvd0FuZE5vRmFsbGJhY2tGb250cykgeworICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0
PFJlbmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZXaWR0aHMoMCwgKmZhbGxiYWNrRm9udHMsICpn
bHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrRm9udHMtPmlz
RW1wdHkoKSAmJiAhZ2x5cGhPdmVyZmxvdy0+bGVmdCAmJiAhZ2x5cGhPdmVyZmxvdy0+cmlnaHQg
JiYgIWdseXBoT3ZlcmZsb3ctPnRvcCAmJiAhZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9u
dHMgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB3ID0gbV9tYXhX
aWR0aDsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHcgPSBtYXhQcmVmV2lk
dGgoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwg
ZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgIHcgPSB3aWR0aEZy
b21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cp
OwogICAgIH0gZWxzZQotICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFj
dGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMpOwor
ICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwg
bGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
CiAgICAgcmV0dXJuIHc7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCShyZXZpc2lvbiA0
Nzg3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkod29ya2luZyBjb3B5KQpA
QCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdGV4dExlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGV4dC0+bGVuZ3RoKCk7IH0gLy8gbm9uIHZpcnR1YWwgaW1wbGVtZW50YXRp
b24gb2YgbGVuZ3RoKCkKICAgICB2b2lkIHBvc2l0aW9uTGluZUJveChJbmxpbmVCb3gqKTsKIAot
ICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBj
b25zdCBGb250JiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cyA9IDApIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExpbmUgPSBmYWxzZSwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7
CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4s
IGNvbnN0IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBm
YWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJv
b2wgZmlyc3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IGludCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxz
ZSkgY29uc3Q7CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJ
bmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7IC8vIFN1YmNsYXNzZWQgYnkgU1ZHLgogCiBw
cml2YXRlOgotICAgIHZvaWQgY2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKTsKKyAgICB2b2lkIGNhbGNQcmVm
V2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFs
bGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYpOwogCiAgICAgLy8gTWFrZSBsZW5ndGgoKSBwcml2
YXRlIHNvIHRoYXQgY2FsbGVycyB0aGF0IGhhdmUgYSBSZW5kZXJUZXh0KgogICAgIC8vIHdpbGwg
dXNlIHRoZSBtb3JlIGVmZmljaWVudCB0ZXh0TGVuZ3RoKCkgaW5zdGVhZCwgd2hpbGUKQEAgLTE0
NSw3ICsxNDUsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVUZXh0Qm94ZXMoKTsKICAg
ICBib29sIGNvbnRhaW5zT25seVdoaXRlc3BhY2UodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVu
KSBjb25zdDsKLSAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYsIGludCBzdGFydCwg
aW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cykgY29uc3Q7CisgICAgaW50IHdpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQmLCBpbnQg
c3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqKSBjb25zdDsKICAgICBib29sIGlzQWxsQVND
SUkoKSBjb25zdCB7IHJldHVybiBtX2lzQWxsQVNDSUk7IH0KIAogICAgIGludCBtX21pbldpZHRo
OyAvLyBoZXJlIHRvIG1pbmltaXplIHBhZGRpbmcgaW4gNjQtYml0LgpAQCAtMTcwLDcgKzE3MCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvciByZW1vdmVkKS4K
ICAgICBib29sIG1fY29udGFpbnNSZXZlcnNlZFRleHQgOiAxOwogICAgIGJvb2wgbV9pc0FsbEFT
Q0lJIDogMTsKLSAgICBtdXRhYmxlIGJvb2wgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA6
IDE7CisgICAgbXV0YWJsZSBib29sIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFj
a0ZvbnRzIDogMTsKIH07CiAKIGlubGluZSBSZW5kZXJUZXh0KiB0b1JlbmRlclRleHQoUmVuZGVy
T2JqZWN0KiBvYmplY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38776</attachid>
            <date>2009-08-29 15:05:40 -0700</date>
            <delta_ts>2009-08-29 18:44:52 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>glyph-overflow_r6.diff</filename>
            <type>text/plain</type>
            <size>45973</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsMTEgKzMxMiwxMSBAQCBfX1pON1dlYkNvcmUxNFJl
c291cmNlSGFuZGxlMTJyZWxlYXNlUHJvCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjBm
b3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5j
ZWxsZWRFcnJvckV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTlzZXRTaG91bGRCdWZm
ZXJEYXRhRWIKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxF
CiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTZjcmVhdGVGcm9tU3RyaW5nRVJLTlNfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNHJlZ2lzdGVyVVJMU2NoZW1lQXNM
b2NhbEVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjV3aGl0ZUxp
c3RBY2Nlc3NGcm9tT3JpZ2luRVJLUzBfUktOU182U3RyaW5nRVM1X2IKIF9fWk43V2ViQ29yZTE0
U2VjdXJpdHlPcmlnaW4yN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0c0V2CitfX1pON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlMTVBcmNo
aXZlUmVzb3VyY2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2hhcmVkQnVmZmVyRUVF
UktOU180S1VSTEVSS05TXzZTdHJpbmdFU0FfU0FfUktOU18xNlJlc291cmNlUmVzcG9uc2VFCiBf
X1pON1dlYkNvcmUxNUJhY2tGb3J3YXJkTGlzdDEwcmVtb3ZlSXRlbUVQTlNfMTFIaXN0b3J5SXRl
bUUKIF9fWk43V2ViQ29yZTE1QmFja0ZvcndhcmRMaXN0MTBzZXRFbmFibGVkRWIKQEAgLTg3Myw3
ICs4NzMsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c3VnCiBfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTN1cmxFdgogX19aTks3V2ViQ29yZTIwUmVz
b3VyY2VSZXNwb25zZUJhc2U4bWltZVR5cGVFdgogX19aTks3V2ViQ29yZTI2TmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXI2aXNEb25lRXYKLV9fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVS
S05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0
ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUUKK19fWk5LN1dlYkNvcmU0Rm9udDEw
ZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250
RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUVQTlNfMTNHbHlw
aE92ZXJmbG93RQogX19aTks3V2ViQ29yZTRGb250MTFwcmltYXJ5Rm9udEV2CiBfX1pOSzdXZWJD
b3JlNEZvbnQ4ZHJhd1RleHRFUE5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN1RleHRSdW5FUktO
U18xMEZsb2F0UG9pbnRFaWkKIF9fWk5LN1dlYkNvcmU0S1VSTDExaXNMb2NhbEZpbGVFdgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsx
ODMsNyBAQCB2b2lkIEZvbnQ6OmRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCogY29uCiAgICAgcmV0
dXJuIGRyYXdDb21wbGV4VGV4dChjb250ZXh0LCBydW4sIHBvaW50LCBmcm9tLCB0byk7CiB9CiAK
LWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0CitmbG9hdCBGb250OjpmbG9h
dFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgp
KQpAQCAtMTk1LDExICsxOTUsMTEgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0
UnVuJiBydQogICAgICAgICAvLyBJZiB0aGUgY29tcGxleCB0ZXh0IGltcGxlbWVudGF0aW9uIGNh
bm5vdCByZXR1cm4gZmFsbGJhY2sgZm9udHMsIGF2b2lkCiAgICAgICAgIC8vIHJldHVybmluZyB0
aGVtIGZvciBzaW1wbGUgdGV4dCBhcyB3ZWxsLgogICAgICAgICBzdGF0aWMgYm9vbCByZXR1cm5G
YWxsYmFja0ZvbnRzID0gY2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7Ci0g
ICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxi
YWNrRm9udHMgPyBmYWxsYmFja0ZvbnRzIDogMCk7CisgICAgICAgIHJldHVybiBmbG9hdFdpZHRo
Rm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9udHMgPyBmYWxsYmFja0ZvbnRz
IDogMCwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
fQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGV4dHJh
Q2hhcnNBdmFpbGFibGUsIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNv
bnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNDc4ODEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsMjEgQEAgc3RydWN0IEdseXBoRGF0YTsKIAogY29uc3QgdW5zaWduZWQgZGVmYXVsdFVuaXRz
UGVyRW0gPSAxMDAwOwogCitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgR2x5cGhPdmVyZmxv
dygpCisgICAgICAgIDogbGVmdCgwKQorICAgICAgICAsIHJpZ2h0KDApCisgICAgICAgICwgdG9w
KDApCisgICAgICAgICwgYm90dG9tKDApCisgICAgeworICAgIH0KKworICAgIGludCBsZWZ0Owor
ICAgIGludCByaWdodDsKKyAgICBpbnQgdG9wOworICAgIGludCBib3R0b207Cit9OworCiBjbGFz
cyBGb250IHsKIHB1YmxpYzoKICAgICBGb250KCk7CkBAIC03OCw4ICs5Myw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAotICAg
IGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0
aChydW4sIGZhbGxiYWNrRm9udHMpKTsgfQotICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAp
IGNvbnN0OworICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBo
T3ZlcmZsb3cgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxs
YmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KSk7IH0KKyAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0
IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CiAgICAgZmxvYXQg
ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBp
bnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKIAogICAgIGludCBv
ZmZzZXRGb3JQb3NpdGlvbihjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE0Miw3ICsxNTcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdH
bHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlw
aEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAg
ICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgZmxvYXQg
ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVmZmVyKiwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Cisg
ICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVm
ZmVyKiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
R2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JT
aW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0
bykgY29uc3Q7CiAKQEAgLTE1MCw3ICsxNjUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2
b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0
aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAg
IGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQg
cG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVj
dCBzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBv
aW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzE3LDEwICszMTcsMTggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3ND
b250ZQogICAgIGRyYXdHbHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0
RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250
OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVy
KiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykg
Y29uc3QKIHsKICAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cyk7
CiAgICAgaXQuYWR2YW5jZShydW4ubGVuZ3RoKCksIGdseXBoQnVmZmVyKTsKKworICAgIGlmIChn
bHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGds
eXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWl0Lm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0gYXNj
ZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50PihnbHlwaE92
ZXJmbG93LT5ib3R0b20sIGNlaWxmKGl0Lm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0gZGVzY2Vu
dCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IGNlaWxmKGl0LmZpcnN0R2x5cGhP
dmVyZmxvdygpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+cmlnaHQgPSBjZWlsZihpdC5sYXN0
R2x5cGhPdmVyZmxvdygpKTsKKyAgICB9CisKICAgICByZXR1cm4gaXQubV9ydW5XaWR0aFNvRmFy
OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5j
cHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdp
ZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsMTIgQEAgR2x5cGhXaWR0aE1h
cDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdAogICAgICAgICBtX3BhZ2VzLT5zZXQocGFnZU51
bWJlciwgcGFnZSk7CiAgICAgfQogCisgICAgR2x5cGhNZXRyaWNzIHVua25vd25NZXRyaWNzOwor
ICAgIHVua25vd25NZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gY0dseXBoV2lkdGhVbmtub3du
OworCiAgICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBo
IHdpZHRoIHZhbHVlLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRoUGFn
ZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlwaFdp
ZHRoVW5rbm93bik7CisgICAgICAgIHBhZ2UtPnNldE1ldHJpY3NGb3JJbmRleChpLCB1bmtub3du
TWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFnZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWZuZGVmIEdseXBoV2lkdGhNYXBfaAogI2RlZmluZSBHbHlwaFdpZHRoTWFwX2gK
IAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAg
LTM5LDM0ICs0MCw0NCBAQCB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOwogCiBjb25zdCBm
bG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAtMTsKIAorc3RydWN0IEdseXBoTWV0cmljcyB7Cisg
ICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94Owor
fTsKKwogY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6
CiAgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxsZWRQcmltYXJ5UGFnZShmYWxzZSkgeyB9CiAg
ICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3BhZ2VzKSB7IGRlbGV0ZUFsbFZhbHVlcygqbV9w
YWdlcyk7IH0gfQogCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlw
aCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBh
Z2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgIH0KKwogICAgIGZsb2F0IHdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCiAgICAgewotICAgICAgICByZXR1cm4gbG9jYXRlUGFn
ZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7Cisg
ICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5t
ZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwogICAgIH0KIAotICAgIHZv
aWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgdm9pZCBz
ZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmlj
cykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6
ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAgICAgbG9jYXRlUGFnZShn
bHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBt
ZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsK
ICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVy
cyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVd
OworICAgICAgICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3NpemVdOwogCi0gICAgICAgIGZsb2F0
IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2dseXBo
ICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBm
bG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBn
bHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBoICUgc2l6ZV07IH0KKyAgICAgICAg
dm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYg
bWV0cmljcykKICAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlwaCAl
IHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJpY3NGb3JJbmRleChnbHlwaCAlIHNp
emUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJbmRleCh1
bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAgIHZvaWQgc2V0TWV0cmljc0Zvcklu
ZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRoOworICAgICAgICAgICAgbV9t
ZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0KICAgICB9OwogICAgIApAQCAtODQs
NiArOTUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBh
Z2UqPiA+IG1fcGFnZXM7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJ
KHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw5ICsxNTUsMTEgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpF
Uk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGds
eXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVy
b1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBt
X3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckds
eXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh6
ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAgR2x5cGhN
ZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0g
MDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlwaCh6ZXJv
V2lkdGhTcGFjZUdseXBoLCBtZXRyaWNzKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBM
T0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0aGUgc2Ft
ZSBnbHlwaC4gR2x5cGggd2lkdGggbm90IG92ZXJyaWRkZW4uIik7CiAgICAgfQogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA0Nzg4
MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsNyArNTUsNiBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBG
b250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERhdGE7
Ci1jbGFzcyBXaWR0aE1hcDsKIAogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQaXRj
aCwgVmFyaWFibGVQaXRjaCB9OwogCkBAIC03OCw4ICs3Nyw5IEBAIHB1YmxpYzoKICAgICBmbG9h
dCB4SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWduZWQgdW5p
dHNQZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxvYXQgd2lk
dGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZvckdseXBo
KEdseXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25z
dCB7IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOyB9Cisg
ICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCkgY29uc3Q7CisgICAgR2x5cGhN
ZXRyaWNzIHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEdseXBoKSBjb25zdDsKIAogICAgIGZsb2F0
IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlV2lkdGg7IH0KICAgICBmbG9hdCBh
ZGp1c3RlZFNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkU3BhY2VXaWR0aDsg
fQpAQCAtMTYyLDcgKzE2Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZv
aWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lkIHBsYXRmb3JtQ29tbW9uRGVzdHJveSgpOwotICAg
IGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OworICAgIEdseXBoTWV0
cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OwogI2VuZGlmCiAKICAg
ICBpbnQgbV9hc2NlbnQ7CkBAIC0yMzEsMTYgKzIzMSwxNiBAQCBwcml2YXRlOgogICAgIAogICAg
IAogI2lmICFQTEFURk9STShRVCkKLUFMV0FZU19JTkxJTkUgZmxvYXQgU2ltcGxlRm9udERhdGE6
OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitBTFdBWVNfSU5MSU5FIEdseXBoTWV0
cmljcyBTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAog
ewotICAgIGZsb2F0IHdpZHRoID0gbV9nbHlwaFRvV2lkdGhNYXAud2lkdGhGb3JHbHlwaChnbHlw
aCk7Ci0gICAgaWYgKHdpZHRoICE9IGNHbHlwaFdpZHRoVW5rbm93bikKLSAgICAgICAgcmV0dXJu
IHdpZHRoOwotICAgIAotICAgIHdpZHRoID0gcGxhdGZvcm1XaWR0aEZvckdseXBoKGdseXBoKTsK
LSAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7Ci0g
ICAgCi0gICAgcmV0dXJuIHdpZHRoOworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzID0gbV9nbHlw
aFRvV2lkdGhNYXAubWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICBpZiAobWV0cmljcy5ob3Jp
em9udGFsQWR2YW5jZSAhPSBjR2x5cGhXaWR0aFVua25vd24pCisgICAgICAgIHJldHVybiBtZXRy
aWNzOworCisgICAgbWV0cmljcyA9IHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAg
ICBtX2dseXBoVG9XaWR0aE1hcC5zZXRNZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3MpOwor
CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBV
bmljb2RlOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Nyw2ICs0OCwxMCBAQCBXaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQq
CiAgICAgLCBtX3J1bldpZHRoU29GYXIoMCkKICAgICAsIG1fZmluYWxSb3VuZGluZ1dpZHRoKDAp
CiAgICAgLCBtX2ZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cykKKyAgICAsIG1fbWF4R2x5cGhC
b3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fbWluR2x5
cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fZmly
c3RHbHlwaE92ZXJmbG93KDApCisgICAgLCBtX2xhc3RHbHlwaE92ZXJmbG93KDApCiB7CiAgICAg
Ly8gSWYgdGhlIHBhZGRpbmcgaXMgbm9uLXplcm8sIGNvdW50IHRoZSBudW1iZXIgb2Ygc3BhY2Vz
IGluIHRoZSBydW4KICAgICAvLyBhbmQgZGl2aWRlIHRoYXQgYnkgdGhlIHBhZGRpbmcgZm9yIHBl
ciBzcGFjZSBhZGRpdGlvbi4KQEAgLTEyMCwxMiArMTI1LDE0IEBAIHZvaWQgV2lkdGhJdGVyYXRv
cjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgQVNTRVJUKGZvbnREYXRhKTsKIAogICAg
ICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGEgZ2x5cGggYW5kIGZvbnQgZGF0YSwgZ2V0IGl0cyB3
aWR0aC4KKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljczsKICAgICAgICAgZmxvYXQg
d2lkdGg7CiAgICAgICAgIGlmIChjID09ICdcdCcgJiYgbV9ydW4uYWxsb3dUYWJzKCkpIHsKICAg
ICAgICAgICAgIGZsb2F0IHRhYldpZHRoID0gbV9mb250LT50YWJXaWR0aCgpOwogICAgICAgICAg
ICAgd2lkdGggPSB0YWJXaWR0aCAtIGZtb2RmKG1fcnVuLnhQb3MoKSArIHJ1bldpZHRoU29GYXIs
IHRhYldpZHRoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdpZHRoID0gZm9udERh
dGEtPndpZHRoRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICAgICAgZ2x5cGhNZXRyaWNzID0gZm9u
dERhdGEtPm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICB3aWR0aCA9IGdseXBo
TWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZTsKICAgICAgICAgICAgIC8vIFdlIHNwZWNpYWwgY2Fz
ZSBzcGFjZXMgaW4gdHdvIHdheXMgd2hlbiBhcHBseWluZyB3b3JkIHJvdW5kaW5nLgogICAgICAg
ICAgICAgLy8gRmlyc3QsIHdlIHJvdW5kIHNwYWNlcyB0byBhbiBhZGp1c3RlZCB3aWR0aCBpbiBh
bGwgZm9udHMuCiAgICAgICAgICAgICAvLyBTZWNvbmQsIGluIGZpeGVkLXBpdGNoIGZvbnRzIHdl
IGVuc3VyZSB0aGF0IGFsbCBjaGFyYWN0ZXJzIHRoYXQKQEAgLTE3NSw2ICsxODIsOSBAQCB2b2lk
IFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAoIWN1cnJlbnRDaGFyYWN0ZXIpCisgICAgICAgICAgICBtX2Zp
cnN0R2x5cGhPdmVyZmxvdyA9IG1heDxmbG9hdD4oMCwgLWdseXBoTWV0cmljcy5ib3VuZGluZ0Jv
eC54KCkpOworCiAgICAgICAgIC8vIEFkdmFuY2UgcGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3Qg
ZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVu
dENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpAQCAtMjA1LDYgKzIxNSwxMCBAQCB2b2lkIFdp
ZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICBnbHlwaEJ1ZmZl
ci0+YWRkKGdseXBoLCBmb250RGF0YSwgKHJ0bCA/IG9sZFdpZHRoICsgbGFzdFJvdW5kaW5nV2lk
dGggOiB3aWR0aCkpOwogCiAgICAgICAgIGxhc3RSb3VuZGluZ1dpZHRoID0gd2lkdGggLSBvbGRX
aWR0aDsKKworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhC
b3VuZGluZ0JveFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAg
IG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WSwgZ2x5
cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAgIG1fbGFzdEdseXBoT3ZlcmZsb3cg
PSBtYXg8ZmxvYXQ+KDAsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgpIC0gd2lkdGgp
OwogICAgIH0KIAogICAgIG1fY3VycmVudENoYXJhY3RlciA9IGN1cnJlbnRDaGFyYWN0ZXI7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkocmV2aXNpb24g
NDc4ODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogICAg
IHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2YW5j
ZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwogCisgICAgZmxv
YXQgbWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRp
bmdCb3hZOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVy
biBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgZmlyc3RHbHlwaE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdEdseXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBsYXN0
R2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7IH0KKwog
ICAgIGNvbnN0IEZvbnQqIG1fZm9udDsKIAogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwpAQCAt
NTEsNyArNTYsMTIgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogCiBwcml2YXRlOgogICAgIFVD
aGFyMzIgbm9ybWFsaXplVm9pY2luZ01hcmtzKGludCBjdXJyZW50Q2hhcmFjdGVyKTsKKwogICAg
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOworICAgIGZs
b2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5n
Qm94WTsKKyAgICBmbG9hdCBtX2ZpcnN0R2x5cGhPdmVyZmxvdzsKKyAgICBmbG9hdCBtX2xhc3RH
bHlwaE92ZXJmbG93OwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udE1hY0NvcmVUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250TWFjQ29yZVRleHQuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWNDb3JlVGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFy
dFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0
IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
LCBHbHlwaE92ZXJmbG93KikgY29uc3QKIHsKICAgICBDb3JlVGV4dENvbnRyb2xsZXIgY29udHJv
bGxlcih0aGlzLCBydW4sIHRydWUsIGZhbGxiYWNrRm9udHMpOwogICAgIHJldHVybiBjb250cm9s
bGVyLnRvdGFsV2lkdGgoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1Np
bXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zOTEsMTcgKzM5MSwyNSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRj
aCgpCiAgICAgICAgICAgIFtuYW1lIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJNb25vdHlwZUNv
cnNpdmEiXSAhPSBOU09yZGVyZWRTYW1lOwogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6cGxh
dGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsK
LSAgICBOU0ZvbnQqIGZvbnQgPSBtX3BsYXRmb3JtRGF0YS5mb250KCk7Ci0gICAgZmxvYXQgcG9p
bnRTaXplID0gbV9wbGF0Zm9ybURhdGEubV9zaXplOworICAgIE5TRm9udCogZm9udCA9IHBsYXRm
b3JtRGF0YSgpLmZvbnQoKTsKKyAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5t
X3NpemU7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNj
YWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUgYWR2YW5jZTsKLSAgICBpZiAo
IXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKG1fcGxhdGZvcm1EYXRhLmNnRm9udCgpLCBm
b250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKKyAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zv
cm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAm
YWR2YW5jZSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY2FjaGUgZ2x5cGggd2lk
dGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXplKTsKICAgICAgICAg
YWR2YW5jZS53aWR0aCA9IDA7CiAgICAgfQotICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9z
eW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJp
Y3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zm
c2V0OworICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhw
bGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgIENH
RmxvYXQgc2NhbGUgPSBwb2ludFNpemUgLyB1bml0c1BlckVtKCk7CisgICAgbWV0cmljcy5ib3Vu
ZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJvdW5kaW5nQm94LCBDR0FmZmlu
ZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAgaWYgKG1fc3ludGhldGlj
Qm9sZE9mZnNldCkKKyAgICAgICAgbWV0cmljcy5ib3VuZGluZ0JveC5zZXRXaWR0aChtZXRyaWNz
LmJvdW5kaW5nQm94LndpZHRoKCkgKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQpOworICAgIHJldHVy
biBtZXRyaWNzOwogfQogCiAjaWYgVVNFKEFUU1VJKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5
LDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRyYXdH
bHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0KIAot
ZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxv
YXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93
KikgY29uc3QKIHsKICAgICBVbmlzY3JpYmVDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVu
LCBmYWxsYmFja0ZvbnRzKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UocnVuLmxlbmd0aCgpKTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZv
bnREYXRhQ0dXaW4uY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYs
MTAgKzEyNiwxMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUNoYXJXaWR0aEluCiAg
ICAgfQogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEds
eXBoIGdseXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1l
dHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybURh
dGEudXNlR0RJKCkpCi0gICAgICAgcmV0dXJuIHdpZHRoRm9yR0RJR2x5cGgoZ2x5cGgpOworICAg
ICAgIHJldHVybiBtZXRyaWNzRm9yR0RJR2x5cGgoZ2x5cGgpOwogCiAgICAgQ0dGb250UmVmIGZv
bnQgPSBtX3BsYXRmb3JtRGF0YS5jZ0ZvbnQoKTsKICAgICBmbG9hdCBwb2ludFNpemUgPSBtX3Bs
YXRmb3JtRGF0YS5zaXplKCk7CkBAIC0xMzksOCArMTM5LDE1IEBAIGZsb2F0IFNpbXBsZUZvbnRE
YXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2wKICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgcmVhbCBz
dXBwb3J0IGZvciBwcmludGVyIGZvbnRzLgogICAgIGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNl
OwogICAgIHdrR2V0R2x5cGhBZHZhbmNlcyhmb250LCBtLCBtX2lzU3lzdGVtRm9udCwgaXNQcmlu
dGVyRm9udCwgZ2x5cGgsIGFkdmFuY2UpOwotCi0gICAgcmV0dXJuIGFkdmFuY2Uud2lkdGggKyBt
X3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgbWV0
cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQ7CisgICAgQ0dSZWN0IGJvdW5kaW5nQm94OworICAgIENHRm9udEdldEdseXBoQkJveGVz
KGZvbnQsICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsKKyAgICBDR0Zsb2F0IHNjYWxlID0gcG9p
bnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgIG1ldHJpY3MuYm91bmRpbmdCb3ggPSBDR1JlY3RB
cHBseUFmZmluZVRyYW5zZm9ybShib3VuZGluZ0JveCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2Nh
bGUoc2NhbGUsIC1zY2FsZSkpOworICAgIGlmIChtX3N5bnRoZXRpY0JvbGRPZmZzZXQpCisgICAg
ICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0cmljcy5ib3VuZGluZ0JveC53aWR0
aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICByZXR1cm4gbWV0cmljczsKIH0KIAog
fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZv
bnREYXRhV2luLmNwcAkocmV2aXNpb24gNDc4ODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OSwxNiAr
MTc5LDI1IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OmRldGVybWluZVBpdGNoKCkKICAgICBSZWxl
YXNlREMoMCwgZGMpOwogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHRElHbHlw
aChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6bWV0cmlj
c0ZvckdESUdseXBoKEdseXBoIGdseXBoKSBjb25zdAogewogICAgIEhEQyBoZGMgPSBHZXREQygw
KTsKICAgICBTZXRHcmFwaGljc01vZGUoaGRjLCBHTV9BRFZBTkNFRCk7CiAgICAgSEdESU9CSiBv
bGRGb250ID0gU2VsZWN0T2JqZWN0KGhkYywgbV9wbGF0Zm9ybURhdGEuaGZvbnQoKSk7Ci0gICAg
aW50IHdpZHRoOwotICAgIEdldENoYXJXaWR0aEkoaGRjLCBnbHlwaCwgMSwgMCwgJndpZHRoKTsK
KworICAgIEdMWVBITUVUUklDUyBnZGlNZXRyaWNzOworICAgIHN0YXRpYyBjb25zdCBNQVQyIGlk
ZW50aXR5ID0geyAwLCAxLCAgMCwgMCwgIDAsIDAsICAwLCAxIH07CisgICAgR2V0R2x5cGhPdXRs
aW5lKGhkYywgZ2x5cGgsIEdHT19NRVRSSUNTIHwgR0dPX0dMWVBIX0lOREVYLCAmZ2RpTWV0cmlj
cywgMCwgMCwgJmlkZW50aXR5KTsKKwogICAgIFNlbGVjdE9iamVjdChoZGMsIG9sZEZvbnQpOwog
ICAgIFJlbGVhc2VEQygwLCBoZGMpOwotICAgIHJldHVybiB3aWR0aCArIG1fc3ludGhldGljQm9s
ZE9mZnNldDsKKworICAgIEdseXBoTWV0cmljcyBnbHlwaE1ldHJpY3M7CisgICAgZ2x5cGhNZXRy
aWNzLmhvcml6b250YWxBZHZhbmNlID0gZ2RpTWV0cmljcy5nbUNlbGxJbmNYICsgbV9zeW50aGV0
aWNCb2xkT2Zmc2V0OworICAgIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChn
ZGlNZXRyaWNzLmdtcHRHbHlwaE9yaWdpbi54LCAtZ2RpTWV0cmljcy5nbXB0R2x5cGhPcmlnaW4u
eSwKKyAgICAgICAgZ2RpTWV0cmljcy5nbUJsYWNrQm94WCArIG1fc3ludGhldGljQm9sZE9mZnNl
dCwgZ2RpTWV0cmljcy5nbUJsYWNrQm94WSk7CisKKyAgICByZXR1cm4gZ2x5cGhNZXRyaWNzOwog
fQogCiBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIFNpbXBsZUZvbnREYXRhOjpzY3JpcHRGb250UHJv
cGVydGllcygpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2
aXNpb24gNDc4ODEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQgSW5saW5lRmxvd0JveDo6cGxhY2VC
b3hlc0hvcml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0dGVyU3BhY2luZyA9IG1pbigwLCAo
aW50KXJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5sZXR0ZXJTcGFjaW5nKCkpOwogICAg
ICAgICAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4UG9zICsgdGV4dC0+d2lkdGgoKSAt
IGxldHRlclNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cpOwogCi0gICAgICAgICAgICBpbnQg
bGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgcmln
aHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFjaW5nOworICAgICAg
ICAgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19jYXN0PElubGluZVRl
eHRCb3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAgICBpbnQgbGVmdEds
eXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3Zl
cmZsb3ctPmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCByaWdodEdseXBoT3ZlcmZsb3cgPSBz
dHJva2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3Zl
cmZsb3ctPnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGludCBjaGlsZE92
ZXJmbG93TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAgICAgICAgICAgaW50IGNoaWxkT3Zl
cmZsb3dSaWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAgLTQxMiwzNSArNDE0LDM1IEBAIHZv
aWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKIAogICAgICAgICBpbnQgbGlu
ZUhlaWdodDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAgICAgICBWZWN0b3I8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZlY3Rvcjxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAoY3Vyci0+aXNJbmxpbmVUZXh0Qm94
KCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPnRha2VG
YWxsYmFja0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAgICB1c2VkRm9udHMgPSBzdGF0aWNf
Y2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNrRm9udHMoKTsKIAotICAgICAgICBp
ZiAoIXVzZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZWRGb250cy5hcHBlbmQo
Y3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkucHJpbWFyeUZvbnQo
KSk7CisgICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAgICAgICAgIHVzZWRGb250cy0+YXBw
ZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLnByaW1hcnlG
b250KCkpOwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExpbmVIZWlnaHQgPSBjdXJyLT5yZW5k
ZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdodCgpOwogICAgICAgICAgICAgaWYg
KHBhcmVudExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAgICAgICAgICAgICAgICAgaW50IGJh
c2VsaW5lVG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAg
ICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkg
ewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNlZEZvbnRzW2ldLT5s
aW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRGb250c1tpXS0+ZGVz
Y2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5l
LCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOwotICAgICAgICAgICAgICAg
ICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20sIHVzZWRGb250c1tp
XS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0t
PmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAg
aW50IGhhbGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSktPmxpbmVTcGFjaW5nKCkgLSB1c2Vk
Rm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAy
OworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRp
bmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIGJh
c2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwgdXNlZEZvbnRzLT5hdChpKS0+
bGluZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0gdXNlZEZvbnRzLT5h
dChpKS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBiYXNlbGluZVRvQm90dG9tOwogICAg
ICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzUGVyY2VudCgpKSB7CiAgICAg
ICAgICAgICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVIZWlnaHQuY2FsY01pblZhbHVlKGN1
cnItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkpOwogICAgICAgICAgICAgICAgIGJh
c2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRG
b250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcg
PSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRl
c2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGlu
ZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMt
PmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAg
ICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1
c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gcGFyZW50TGluZUhlaWdo
dC52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAg
ICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tp
XS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAg
ICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNb
aV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVz
ZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFk
aW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250
cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9
IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewpAQCAt
NTY1LDEwICs1NjcsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlVmVydGljYWxPdmVy
ZgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBpbnQgc3Ryb2tlT3Zl
cmZsb3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5zdHlsZSgpLT50ZXh0U3Ryb2tlV2lk
dGgoKSAvIDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaW50IHRvcEdseXBoT3Zl
cmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgYm90dG9tR2x5cGhPdmVy
ZmxvdyA9IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgCisKKyAgICAgICAgICAgIEdseXBo
T3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3Vy
ciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAgaW50IHRvcEdseXBoT3ZlcmZsb3cg
PSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6
IDApOworICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxv
dyArIChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDogMCk7CisKICAgICAg
ICAgICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhPdmVyZmxvdzsKICAgICAgICAg
ICAgIGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5cGhPdmVyZmxvdzsKICAgICAg
ICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0eWxlKCktPnRleHRTaGFkb3co
KTsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgogCisjaW5jbHVkZSAiQ1N0
cmluZy5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05OTQsMzAgKzk5NSw1MyBAQCBib29sIElubGluZVRl
eHRCb3g6OmNvbnRhaW5zQ2FyZXRPZmZzZXQoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXR5cGVk
ZWYgSGFzaE1hcDxJbmxpbmVUZXh0Qm94KiwgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4g
PiBGYWxsYmFja0ZvbnRzTWFwOwotc3RhdGljIEZhbGxiYWNrRm9udHNNYXAqIGdGYWxsYmFja0Zv
bnRzTWFwOwotCiB2b2lkIElubGluZVRleHRCb3g6OnNldEZhbGxiYWNrRm9udHMoY29uc3QgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQogewotICAgIGlmICgh
Z0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIGdGYWxsYmFja0ZvbnRzTWFwID0gbmV3IEZhbGxi
YWNrRm9udHNNYXA7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFw
KQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwID0gbmV3IEdseXBo
T3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOwogCi0gICAgRmFsbGJhY2tGb250c01hcDo6aXRl
cmF0b3IgaXQgPSBnRmFsbGJhY2tGb250c01hcC0+c2V0KHRoaXMsIFZlY3Rvcjxjb25zdCBTaW1w
bGVGb250RGF0YSo+KCkpLmZpcnN0OwotICAgIEFTU0VSVChpdC0+c2Vjb25kLmlzRW1wdHkoKSk7
Ci0gICAgY29weVRvVmVjdG9yKGZhbGxiYWNrRm9udHMsIGl0LT5zZWNvbmQpOworICAgIEdseXBo
T3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IHNfZ2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAtPmFkZCh0aGlzLCBtYWtlX3BhaXIoVmVjdG9yPGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4oKSwgR2x5cGhPdmVyZmxvdygpKSkuZmlyc3Q7CisgICAgQVNTRVJUKGl0
LT5zZWNvbmQuZmlyc3QuaXNFbXB0eSgpKTsKKyAgICBjb3B5VG9WZWN0b3IoZmFsbGJhY2tGb250
cywgaXQtPnNlY29uZC5maXJzdCk7CiB9CiAKLXZvaWQgSW5saW5lVGV4dEJveDo6dGFrZUZhbGxi
YWNrRm9udHMoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCitW
ZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogSW5saW5lVGV4dEJveDo6ZmFsbGJhY2tGb250
cygpIGNvbnN0CiB7Ci0gICAgaWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAgICAgICAgcmV0dXJu
OworICAgIGlmICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IGdGYWxsYmFj
a0ZvbnRzTWFwLT5maW5kKHRoaXMpOwotICAgIGlmIChpdCA9PSBnRmFsbGJhY2tGb250c01hcC0+
ZW5kKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5m
aW5kKHRoaXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gJml0LT5zZWNvbmQu
Zmlyc3Q7Cit9CisKK0lubGluZVRleHRCb3g6OkdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwKiBJbmxpbmVUZXh0Qm94OjpzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwID0g
MDsKKwordm9pZCBJbmxpbmVUZXh0Qm94OjpzZXRHbHlwaE92ZXJmbG93KGNvbnN0IEdseXBoT3Zl
cmZsb3cmIGdseXBoT3ZlcmZsb3cpCit7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFw
ID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworCisgICAgR2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19nbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMsIG1ha2VfcGFpcihWZWN0b3I8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93KCkpKS5maXJzdDsKKyAgICBpdC0+c2Vjb25kLnNl
Y29uZCA9IGdseXBoT3ZlcmZsb3c7CisjaWYgMAorICAgIHByaW50ZigiR2x5cGggb3ZlcmZsb3c6
ICVkICVkICVkICVkICVzICVkIFwiJXNcIlxuIiwgZ2x5cGhPdmVyZmxvdy50b3AsIGdseXBoT3Zl
cmZsb3cuYm90dG9tLCBnbHlwaE92ZXJmbG93LmxlZnQsIGdseXBoT3ZlcmZsb3cucmlnaHQsCisg
ICAgICAgIHJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnQoKS5mYW1pbHkoKS5mYW1pbHkoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCByZW5kZXJlcigpLT5zdHlsZSgpLT5mb250KCkucGl4ZWxTaXpl
KCksCisgICAgICAgIFN0cmluZyh0ZXh0UmVuZGVyZXIoKS0+Y2hhcmFjdGVycygpICsgbV9zdGFy
dCwgbV9sZW4pLnV0ZjgoKS5kYXRhKCkpOworI2VuZGlmCit9CisKK0dseXBoT3ZlcmZsb3cqIElu
bGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3coKSBjb25zdAoreworICAgIGlmICghc19nbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgR2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19nbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcC0+ZmluZCh0aGlzKTsKKyAgICBpZiAoaXQgPT0gc19nbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCisgICAgICAgIHJldHVybiAwOwogCi0g
ICAgZmFsbGJhY2tGb250cy5zd2FwKGl0LT5zZWNvbmQpOwotICAgIGdGYWxsYmFja0ZvbnRzTWFw
LT5yZW1vdmUoaXQpOworICAgIHJldHVybiAmaXQtPnNlY29uZC5zZWNvbmQ7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgJKHJldmlz
aW9uIDQ3ODgxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MCw3ICs2MCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBvZmZzZXRSdW4oaW50
IGQpIHsgbV9zdGFydCArPSBkOyB9CiAKICAgICB2b2lkIHNldEZhbGxiYWNrRm9udHMoY29uc3Qg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7Ci0gICAgdm9pZCB0YWtlRmFsbGJhY2tG
b250cyhWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYpOworICAgIFZlY3Rvcjxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldEds
eXBoT3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYpOworICAgIEdseXBoT3ZlcmZsb3cqIGds
eXBoT3ZlcmZsb3coKSBjb25zdDsKKworICAgIHN0YXRpYyB2b2lkIGNsZWFyR2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udE1hcCgpCisgICAgeworICAgICAgICBpZiAoc19nbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxi
YWNrRm9udHNNYXAtPmNsZWFyKCk7CisgICAgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgaW50
IHNlbGVjdGlvblRvcCgpOwpAQCAtMTIwLDYgKzEyOSw5IEBAIHByaXZhdGU6CiAgICAgdW5zaWdu
ZWQgc2hvcnQgbV90cnVuY2F0aW9uOyAvLyBXaGVyZSB0byB0cnVuY2F0ZSB3aGVuIHRleHQgb3Zl
cmZsb3cgaXMgYXBwbGllZC4gIFdlIHVzZSBzcGVjaWFsIGNvbnN0YW50cyB0bwogICAgICAgICAg
ICAgICAgICAgICAgIC8vIGRlbm90ZSBubyB0cnVuY2F0aW9uICh0aGUgd2hvbGUgcnVuIHBhaW50
cykgYW5kIGZ1bGwgdHJ1bmNhdGlvbiAobm90aGluZyBwYWludHMgYXQgYWxsKS4KIAorICAgIHR5
cGVkZWYgSGFzaE1hcDxjb25zdCBJbmxpbmVUZXh0Qm94KiwgcGFpcjxWZWN0b3I8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiwgR2x5cGhPdmVyZmxvdz4gPiBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tG
b250c01hcDsKKyAgICBzdGF0aWMgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAqIHNf
Z2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCosIGludCB0eCwgaW50
IHR5LCBSZW5kZXJTdHlsZSosIGNvbnN0IEZvbnQmLCBpbnQgc3RhcnRQb3MsIGludCBlbmRQb3Mp
OwogICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtlcnMoR3JhcGhpY3NDb250ZXh0KiwgaW50IHR4
LCBpbnQgdHksIFJlbmRlclN0eWxlKiwgY29uc3QgRm9udCYsIGJvb2wgYmFja2dyb3VuZCk7Cklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlz
aW9uIDQ3ODgxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjQwLDcgKzY0MCw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNv
bXB1dGVIb3Jpem9udGFsUG9zaXQKICAgICAgICAgICAgICAgICBuZWVkc1dvcmRTcGFjaW5nID0g
IWlzU3BhY2VPck5ld2xpbmUocnQtPmNoYXJhY3RlcnMoKVtyLT5tX3N0b3AgLSAxXSkgJiYgci0+
bV9zdG9wID09IGxlbmd0aDsgICAgICAgICAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBI
YXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gZmFsbGJhY2tGb250czsKLSAgICAgICAgICAg
IHItPm1fYm94LT5zZXRXaWR0aChydC0+d2lkdGgoci0+bV9zdGFydCwgci0+bV9zdG9wIC0gci0+
bV9zdGFydCwgdG90V2lkdGgsIGZpcnN0TGluZSwgJmZhbGxiYWNrRm9udHMpKTsKKyAgICAgICAg
ICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdzsKKyAgICAgICAgICAgIHItPm1fYm94LT5z
ZXRXaWR0aChydC0+d2lkdGgoci0+bV9zdGFydCwgci0+bV9zdG9wIC0gci0+bV9zdGFydCwgdG90
V2lkdGgsIGZpcnN0TGluZSwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KSk7CiAgICAg
ICAgICAgICBpZiAoIWZhbGxiYWNrRm9udHMuaXNFbXB0eSgpCiAjaWYgRU5BQkxFKFNWRykKICAg
ICAgICAgICAgICAgICAgICAgJiYgIWlzU1ZHVGV4dCgpCkBAIC02NDksNiArNjUwLDE0IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVIb3Jpem9udGFsUG9zaXQKICAgICAgICAgICAgICAgICBB
U1NFUlQoci0+bV9ib3gtPmlzVGV4dCgpKTsKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJ
bmxpbmVUZXh0Qm94Kj4oci0+bV9ib3gpLT5zZXRGYWxsYmFja0ZvbnRzKGZhbGxiYWNrRm9udHMp
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChnbHlwaE92ZXJmbG93LnRvcCB8fCBn
bHlwaE92ZXJmbG93LmJvdHRvbSB8fCBnbHlwaE92ZXJmbG93LmxlZnQgfHwgZ2x5cGhPdmVyZmxv
dy5yaWdodCkKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAgICAgICAgICAgICAmJiAhaXNTVkdU
ZXh0KCkKKyNlbmRpZgorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHIt
Pm1fYm94LT5pc1RleHQoKSk7CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4
dEJveCo+KHItPm1fYm94KS0+c2V0R2x5cGhPdmVyZmxvdyhnbHlwaE92ZXJmbG93KTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghci0+bV9vYmplY3QtPmlzUmVuZGVySW5saW5l
KCkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5kZXJCb3goci0+
bV9vYmplY3QpOwogICAgICAgICAgICAgcmVuZGVyQm94LT5jYWxjV2lkdGgoKTsKQEAgLTEwMzIs
NiArMTA0MSw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIKICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBwb3NpdGlvbiBvdXIgdGV4dCBydW5zIHZlcnRp
Y2FsbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlVmVydGljYWxQb3NpdGlvbnNG
b3JMaW5lKGxpbmVCb3gsIHJlc29sdmVyLmZpcnN0UnVuKCkpOwogCisgICAgICAgICAgICAgICAg
ICAgICAgICBJbmxpbmVUZXh0Qm94OjpjbGVhckdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRN
YXAoKTsKKwogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGVj
aWFsIFNWRyB0ZXh0IGxheW91dCBjb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQm94
LT5jb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3JtYXRpb24oKTsKSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIFJlbmRlclRleHQ6
OlJlbmRlclRleHQoTm9kZSogbm9kZSwgUGFzc1IKICAgICAgLCBtX2xpbmVzRGlydHkoZmFsc2Up
CiAgICAgICwgbV9jb250YWluc1JldmVyc2VkVGV4dChmYWxzZSkKICAgICAgLCBtX2lzQWxsQVND
SUkoY2hhcmFjdGVyc0FyZUFsbEFTQ0lJKG1fdGV4dC5nZXQoKSkpCi0gICAgICwgbV9rbm93bk5v
dFRvVXNlRmFsbGJhY2tGb250cyhmYWxzZSkKKyAgICAgLCBtX2tub3duVG9IYXZlTm9PdmVyZmxv
d0FuZE5vRmFsbGJhY2tGb250cyhmYWxzZSkKIHsKICAgICBBU1NFUlQobV90ZXh0KTsKIApAQCAt
MTEwLDcgKzExMCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWYK
ICAgICAvLyBuZWVkIHRvIHJlbGF5b3V0LgogICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZUxheW91dCkgewogICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsK
LSAgICAgICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9IGZhbHNlOworICAgICAgICBt
X2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IGZhbHNlOwogICAgIH0K
IAogICAgIEVUZXh0VHJhbnNmb3JtIG9sZFRyYW5zZm9ybSA9IG9sZFN0eWxlID8gb2xkU3R5bGUt
PnRleHRUcmFuc2Zvcm0oKSA6IFRUTk9ORTsKQEAgLTQyNyw3ICs0MjcsNyBAQCBJbnRSZWN0IFJl
bmRlclRleHQ6OmxvY2FsQ2FyZXRSZWN0KElubGluCiAgICAgcmV0dXJuIEludFJlY3QobGVmdCwg
dG9wLCBjYXJldFdpZHRoLCBoZWlnaHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIGludCBSZW5kZXJU
ZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGlu
dCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNv
bnN0CitBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBG
b250JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cp
IGNvbnN0CiB7CiAgICAgaWYgKGYuaXNGaXhlZFBpdGNoKCkgJiYgIWYuaXNTbWFsbENhcHMoKSAm
JiBtX2lzQWxsQVNDSUkpIHsKICAgICAgICAgaW50IG1vbm9zcGFjZUNoYXJhY3RlcldpZHRoID0g
Zi5zcGFjZVdpZHRoKCk7CkBAIC00NTcsNyArNDU3LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVu
ZGVyVGV4dDo6d2lkdGhGcm9tQwogICAgICAgICByZXR1cm4gdzsKICAgICB9CiAKLSAgICByZXR1
cm4gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwgYWxs
b3dUYWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzKTsKKyAgICByZXR1cm4gZi53aWR0aChUZXh0
UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwgYWxsb3dUYWJzKCksIHhQb3Mp
LCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Ojp0
cmltbWVkUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLApAQCAtNTI2LDcgKzUyNiw3IEBAIHZvaWQg
UmVuZGVyVGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGwKICAgICAgICAgICAgICAgICBsaW5l
bGVuKys7CiAKICAgICAgICAgICAgIGlmIChsaW5lbGVuKSB7Ci0gICAgICAgICAgICAgICAgZW5k
TWF4VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4sIGxlYWRXaWR0aCArIGVuZE1heFcs
IDApOworICAgICAgICAgICAgICAgIGVuZE1heFcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCBsaW5l
bGVuLCBsZWFkV2lkdGggKyBlbmRNYXhXLCAwLCAwKTsKICAgICAgICAgICAgICAgICBpZiAoZmly
c3RMaW5lKSB7CiAgICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZSA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgICAgICBsZWFkV2lkdGggPSAwOwpAQCAtNTcxLDE0ICs1NzEsMTUgQEAgaW50IFJl
bmRlclRleHQ6Om1heFByZWZXaWR0aCgpIGNvbnN0CiB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVm
V2lkdGhzKGludCBsZWFkV2lkdGgpCiB7CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+IGZhbGxiYWNrRm9udHM7Ci0gICAgY2FsY1ByZWZXaWR0aHMobGVhZFdpZHRoLCBmYWxsYmFj
a0ZvbnRzKTsKLSAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5KCkpCi0gICAgICAgIG1fa25v
d25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVlOworICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhP
dmVyZmxvdzsKKyAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOworICAgIGlmIChmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSAmJiAhZ2x5cGhP
dmVyZmxvdy5sZWZ0ICYmICFnbHlwaE92ZXJmbG93LnJpZ2h0ICYmICFnbHlwaE92ZXJmbG93LnRv
cCAmJiAhZ2x5cGhPdmVyZmxvdy5ib3R0b20pCisgICAgICAgIG1fa25vd25Ub0hhdmVOb092ZXJm
bG93QW5kTm9GYWxsYmFja0ZvbnRzID0gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0OjpjYWxj
UHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4m
IGZhbGxiYWNrRm9udHMpCit2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFk
V2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5
cGhPdmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKLSAgICBBU1NFUlQobV9oYXNUYWIgfHwgcHJl
ZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMpOworICAgIEFT
U0VSVChtX2hhc1RhYiB8fCBwcmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93blRvSGF2ZU5vT3Zl
cmZsb3dBbmROb0ZhbGxiYWNrRm9udHMpOwogCiAgICAgbV9taW5XaWR0aCA9IDA7CiAgICAgbV9i
ZWdpbk1pbldpZHRoID0gMDsKQEAgLTYwOCw2ICs2MDksOCBAQCB2b2lkIFJlbmRlclRleHQ6OmNh
bGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgaW50IG5leHRCcmVha2FibGUgPSAtMTsKICAgICBp
bnQgbGFzdFdvcmRCb3VuZGFyeSA9IDA7CiAKKyAgICBpbnQgZmlyc3RHbHlwaExlZnRPdmVyZmxv
dyA9IC0xOworCiAgICAgYm9vbCBicmVha05CU1AgPSBzdHlsZSgpLT5hdXRvV3JhcCgpICYmIHN0
eWxlKCktPm5ic3BNb2RlKCkgPT0gU1BBQ0U7CiAgICAgYm9vbCBicmVha0FsbCA9IChzdHlsZSgp
LT53b3JkQnJlYWsoKSA9PSBCcmVha0FsbFdvcmRCcmVhayB8fCBzdHlsZSgpLT53b3JkQnJlYWso
KSA9PSBCcmVha1dvcmRCcmVhaykgJiYgc3R5bGUoKS0+YXV0b1dyYXAoKTsKIApAQCAtNjUwLDcg
KzY1Myw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKICAgICAg
ICAgICAgIGxhc3RXb3JkQm91bmRhcnkrKzsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9IGVsc2UgaWYgKGMgPT0gc29mdEh5cGhlbikgewotICAgICAgICAgICAgY3Vyck1heFdpZHRo
ICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkgLSBsYXN0V29yZEJvdW5k
YXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAg
ICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBp
IC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tG
b250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3Zl
cmZsb3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPSBnbHlw
aE92ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5ID0gaSArIDE7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNjczLDEzICs2NzgsMTUgQEAgdm9p
ZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogCiAgICAgICAgIGludCB3b3Jk
TGVuID0gaiAtIGk7CiAgICAgICAgIGlmICh3b3JkTGVuKSB7Ci0gICAgICAgICAgICBpbnQgdyA9
IHdpZHRoRnJvbUNhY2hlKGYsIGksIHdvcmRMZW4sIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwg
JmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgaW50IHcgPSB3aWR0aEZyb21DYWNoZShmLCBp
LCB3b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5
cGhPdmVyZmxvdyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA8IDAp
CisgICAgICAgICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGdseXBoT3ZlcmZsb3cu
bGVmdDsKICAgICAgICAgICAgIGN1cnJNaW5XaWR0aCArPSB3OwogICAgICAgICAgICAgaWYgKGJl
dHdlZW5Xb3JkcykgewogICAgICAgICAgICAgICAgIGlmIChsYXN0V29yZEJvdW5kYXJ5ID09IGkp
CiAgICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3OwogICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hl
KGYsIGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBj
dXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyck1h
eFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29y
ZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5
cGhPdmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgbGFzdFdvcmRCb3VuZGFyeSA9IGo7CiAgICAg
ICAgICAgICB9CiAKQEAgLTczMiw2ICs3MzksNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVm
V2lkdGhzKGludCBsZWFkCiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoID0gMDsKICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IGYud2lkdGgo
VGV4dFJ1bih0eHQgKyBpLCAxLCBhbGxvd1RhYnMoKSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRo
KSk7CisgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5yaWdodCA9IDA7CiAgICAgICAgICAg
ICAgICAgbmVlZHNXb3JkU3BhY2luZyA9IGlzU3BhY2UgJiYgIXByZXZpb3VzQ2hhcmFjdGVySXNT
cGFjZSAmJiBpID09IGxlbiAtIDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQo
bGFzdFdvcmRCb3VuZGFyeSA9PSBpKTsKQEAgLTczOSw2ICs3NDcsOSBAQCB2b2lkIFJlbmRlclRl
eHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAo
Zmlyc3RHbHlwaExlZnRPdmVyZmxvdyA+IDApCisgICAgICAgIGdseXBoT3ZlcmZsb3cubGVmdCA9
IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CisKICAgICBpZiAoKG5lZWRzV29yZFNwYWNpbmcgJiYg
bGVuID4gMSkgfHwgKGlnbm9yaW5nU3BhY2VzICYmICFmaXJzdFdvcmQpKQogICAgICAgICBjdXJy
TWF4V2lkdGggKz0gd29yZFNwYWNpbmc7CiAKQEAgLTEwMDAsNyArMTAxMSw3IEBAIHZvaWQgUmVu
ZGVyVGV4dDo6c2V0VGV4dChQYXNzUmVmUHRyPFN0cmkKIAogICAgIHNldFRleHRJbnRlcm5hbCh0
ZXh0KTsKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICBtX2tu
b3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgbV9rbm93blRvSGF2ZU5vT3Zl
cmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsKIH0KIAogaW50IFJlbmRlclRleHQ6Omxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wpIGNvbnN0CkBAIC0xMDU1LDcgKzEwNjYsNyBA
QCB2b2lkIFJlbmRlclRleHQ6OnBvc2l0aW9uTGluZUJveChJbmxpbmVCCiAgICAgbV9jb250YWlu
c1JldmVyc2VkVGV4dCB8PSBzLT5kaXJlY3Rpb24oKSA9PSBSVEw7CiB9CiAKLXVuc2lnbmVkIFJl
bmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJv
b2wgZmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBj
b25zdAogewogICAgIGlmIChmcm9tID49IHRleHRMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0xMDYzLDEwICsxMDc0LDEwIEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2ln
bmVkIGZyb20KICAgICBpZiAoZnJvbSArIGxlbiA+IHRleHRMZW5ndGgoKSkKICAgICAgICAgbGVu
ID0gdGV4dExlbmd0aCgpIC0gZnJvbTsKIAotICAgIHJldHVybiB3aWR0aChmcm9tLCBsZW4sIHN0
eWxlKGZpcnN0TGluZSktPmZvbnQoKSwgeFBvcywgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJu
IHdpZHRoKGZyb20sIGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4UG9zLCBmYWxsYmFj
a0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAotdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgo
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAordW5zaWdu
ZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBG
b250JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIEFTU0VS
VChmcm9tICsgbGVuIDw9IHRleHRMZW5ndGgoKSk7CiAgICAgaWYgKCFjaGFyYWN0ZXJzKCkpCkBA
IC0xMDc2LDE4ICsxMDg3LDE5IEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVk
IGZyb20KICAgICBpZiAoJmYgPT0gJnN0eWxlKCktPmZvbnQoKSkgewogICAgICAgICBpZiAoIXN0
eWxlKCktPnByZXNlcnZlTmV3bGluZSgpICYmICFmcm9tICYmIGxlbiA9PSB0ZXh0TGVuZ3RoKCkp
IHsKICAgICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRoaXMpLT5jYWxjUHJl
ZldpZHRocygwLCAqZmFsbGJhY2tGb250cyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmYWxs
YmFja0ZvbnRzLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2tub3duTm90
VG9Vc2VGYWxsYmFja0ZvbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZ2x5cGhP
dmVyZmxvdyk7CisgICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tu
b3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cykgeworICAgICAgICAgICAgICAg
ICAgICBjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZXaWR0aHMoMCwgKmZh
bGxiYWNrRm9udHMsICpnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZh
bGxiYWNrRm9udHMtPmlzRW1wdHkoKSAmJiAhZ2x5cGhPdmVyZmxvdy0+bGVmdCAmJiAhZ2x5cGhP
dmVyZmxvdy0+cmlnaHQgJiYgIWdseXBoT3ZlcmZsb3ctPnRvcCAmJiAhZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dB
bmROb0ZhbGxiYWNrRm9udHMgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB3ID0gbV9tYXhXaWR0aDsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAg
IHcgPSBtYXhQcmVmV2lkdGgoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB3ID0gd2lk
dGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAg
ICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMs
IGdseXBoT3ZlcmZsb3cpOwogICAgIH0gZWxzZQotICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVu
KHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZh
bGxiYWNrRm9udHMpOworICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFj
dGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOwogCiAgICAgcmV0dXJuIHc7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5oCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAko
d29ya2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdGV4
dExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC0+bGVuZ3RoKCk7IH0gLy8gbm9uIHZpcnR1
YWwgaW1wbGVtZW50YXRpb24gb2YgbGVuZ3RoKCkKICAgICB2b2lkIHBvc2l0aW9uTGluZUJveChJ
bmxpbmVCb3gqKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbGVuLCBjb25zdCBGb250JiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWdu
ZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJz
dExpbmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9t
LCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxl
biwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9v
dExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCBJbmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7IC8vIFN1YmNsYXNz
ZWQgYnkgU1ZHLgogCiBwcml2YXRlOgotICAgIHZvaWQgY2FsY1ByZWZXaWR0aHMoaW50IGxlYWRX
aWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKTsKKyAg
ICB2b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYpOwogCiAgICAgLy8gTWFr
ZSBsZW5ndGgoKSBwcml2YXRlIHNvIHRoYXQgY2FsbGVycyB0aGF0IGhhdmUgYSBSZW5kZXJUZXh0
KgogICAgIC8vIHdpbGwgdXNlIHRoZSBtb3JlIGVmZmljaWVudCB0ZXh0TGVuZ3RoKCkgaW5zdGVh
ZCwgd2hpbGUKQEAgLTE0NSw3ICsxNDUsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVU
ZXh0Qm94ZXMoKTsKICAgICBib29sIGNvbnRhaW5zT25seVdoaXRlc3BhY2UodW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbGVuKSBjb25zdDsKLSAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9u
dCYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3Q7CisgICAgaW50IHdpZHRoRnJvbUNhY2hlKGNv
bnN0IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqKSBjb25zdDsKICAg
ICBib29sIGlzQWxsQVNDSUkoKSBjb25zdCB7IHJldHVybiBtX2lzQWxsQVNDSUk7IH0KIAogICAg
IGludCBtX21pbldpZHRoOyAvLyBoZXJlIHRvIG1pbmltaXplIHBhZGRpbmcgaW4gNjQtYml0LgpA
QCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBvciByZW1vdmVkKS4KICAgICBib29sIG1fY29udGFpbnNSZXZlcnNlZFRleHQgOiAxOwogICAg
IGJvb2wgbV9pc0FsbEFTQ0lJIDogMTsKLSAgICBtdXRhYmxlIGJvb2wgbV9rbm93bk5vdFRvVXNl
RmFsbGJhY2tGb250cyA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fa25vd25Ub0hhdmVOb092ZXJm
bG93QW5kTm9GYWxsYmFja0ZvbnRzIDogMTsKIH07CiAKIGlubGluZSBSZW5kZXJUZXh0KiB0b1Jl
bmRlclRleHQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38779</attachid>
            <date>2009-08-29 18:44:52 -0700</date>
            <delta_ts>2009-08-29 19:59:27 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>glyph-overflow_r7.diff</filename>
            <type>text/plain</type>
            <size>49867</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsMTEgKzMxMiwxMSBAQCBfX1pON1dlYkNvcmUxNFJl
c291cmNlSGFuZGxlMTJyZWxlYXNlUHJvCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjBm
b3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5j
ZWxsZWRFcnJvckV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTlzZXRTaG91bGRCdWZm
ZXJEYXRhRWIKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxF
CiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTZjcmVhdGVGcm9tU3RyaW5nRVJLTlNfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNHJlZ2lzdGVyVVJMU2NoZW1lQXNM
b2NhbEVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjV3aGl0ZUxp
c3RBY2Nlc3NGcm9tT3JpZ2luRVJLUzBfUktOU182U3RyaW5nRVM1X2IKIF9fWk43V2ViQ29yZTE0
U2VjdXJpdHlPcmlnaW4yN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0c0V2CitfX1pON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlMTVBcmNo
aXZlUmVzb3VyY2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2hhcmVkQnVmZmVyRUVF
UktOU180S1VSTEVSS05TXzZTdHJpbmdFU0FfU0FfUktOU18xNlJlc291cmNlUmVzcG9uc2VFCiBf
X1pON1dlYkNvcmUxNUJhY2tGb3J3YXJkTGlzdDEwcmVtb3ZlSXRlbUVQTlNfMTFIaXN0b3J5SXRl
bUUKIF9fWk43V2ViQ29yZTE1QmFja0ZvcndhcmRMaXN0MTBzZXRFbmFibGVkRWIKQEAgLTg3Myw3
ICs4NzMsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c3VnCiBfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTN1cmxFdgogX19aTks3V2ViQ29yZTIwUmVz
b3VyY2VSZXNwb25zZUJhc2U4bWltZVR5cGVFdgogX19aTks3V2ViQ29yZTI2TmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXI2aXNEb25lRXYKLV9fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVS
S05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0
ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUUKK19fWk5LN1dlYkNvcmU0Rm9udDEw
ZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250
RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUVQTlNfMTNHbHlw
aE92ZXJmbG93RQogX19aTks3V2ViQ29yZTRGb250MTFwcmltYXJ5Rm9udEV2CiBfX1pOSzdXZWJD
b3JlNEZvbnQ4ZHJhd1RleHRFUE5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN1RleHRSdW5FUktO
U18xMEZsb2F0UG9pbnRFaWkKIF9fWk5LN1dlYkNvcmU0S1VSTDExaXNMb2NhbEZpbGVFdgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsx
ODMsNyBAQCB2b2lkIEZvbnQ6OmRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCogY29uCiAgICAgcmV0
dXJuIGRyYXdDb21wbGV4VGV4dChjb250ZXh0LCBydW4sIHBvaW50LCBmcm9tLCB0byk7CiB9CiAK
LWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0CitmbG9hdCBGb250OjpmbG9h
dFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgp
KQpAQCAtMTk1LDExICsxOTUsMTEgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0
UnVuJiBydQogICAgICAgICAvLyBJZiB0aGUgY29tcGxleCB0ZXh0IGltcGxlbWVudGF0aW9uIGNh
bm5vdCByZXR1cm4gZmFsbGJhY2sgZm9udHMsIGF2b2lkCiAgICAgICAgIC8vIHJldHVybmluZyB0
aGVtIGZvciBzaW1wbGUgdGV4dCBhcyB3ZWxsLgogICAgICAgICBzdGF0aWMgYm9vbCByZXR1cm5G
YWxsYmFja0ZvbnRzID0gY2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7Ci0g
ICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxi
YWNrRm9udHMgPyBmYWxsYmFja0ZvbnRzIDogMCk7CisgICAgICAgIHJldHVybiBmbG9hdFdpZHRo
Rm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9udHMgPyBmYWxsYmFja0ZvbnRz
IDogMCwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
fQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGV4dHJh
Q2hhcnNBdmFpbGFibGUsIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNv
bnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNDc4ODEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsMjEgQEAgc3RydWN0IEdseXBoRGF0YTsKIAogY29uc3QgdW5zaWduZWQgZGVmYXVsdFVuaXRz
UGVyRW0gPSAxMDAwOwogCitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgR2x5cGhPdmVyZmxv
dygpCisgICAgICAgIDogbGVmdCgwKQorICAgICAgICAsIHJpZ2h0KDApCisgICAgICAgICwgdG9w
KDApCisgICAgICAgICwgYm90dG9tKDApCisgICAgeworICAgIH0KKworICAgIGludCBsZWZ0Owor
ICAgIGludCByaWdodDsKKyAgICBpbnQgdG9wOworICAgIGludCBib3R0b207Cit9OworCiBjbGFz
cyBGb250IHsKIHB1YmxpYzoKICAgICBGb250KCk7CkBAIC03OCw4ICs5Myw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAotICAg
IGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0
aChydW4sIGZhbGxiYWNrRm9udHMpKTsgfQotICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAp
IGNvbnN0OworICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBo
T3ZlcmZsb3cgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxs
YmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KSk7IH0KKyAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0
IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CiAgICAgZmxvYXQg
ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBp
bnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKIAogICAgIGludCBv
ZmZzZXRGb3JQb3NpdGlvbihjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE0Miw3ICsxNTcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdH
bHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlw
aEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAg
ICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgZmxvYXQg
ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVmZmVyKiwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Cisg
ICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVm
ZmVyKiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
R2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JT
aW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0
bykgY29uc3Q7CiAKQEAgLTE1MCw3ICsxNjUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2
b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0
aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAg
IGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQg
cG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVj
dCBzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBv
aW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzE3LDEwICszMTcsMTggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3ND
b250ZQogICAgIGRyYXdHbHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0
RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250
OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVy
KiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykg
Y29uc3QKIHsKICAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cyk7
CiAgICAgaXQuYWR2YW5jZShydW4ubGVuZ3RoKCksIGdseXBoQnVmZmVyKTsKKworICAgIGlmIChn
bHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGds
eXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWl0Lm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0gYXNj
ZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50PihnbHlwaE92
ZXJmbG93LT5ib3R0b20sIGNlaWxmKGl0Lm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0gZGVzY2Vu
dCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IGNlaWxmKGl0LmZpcnN0R2x5cGhP
dmVyZmxvdygpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+cmlnaHQgPSBjZWlsZihpdC5sYXN0
R2x5cGhPdmVyZmxvdygpKTsKKyAgICB9CisKICAgICByZXR1cm4gaXQubV9ydW5XaWR0aFNvRmFy
OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5j
cHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdp
ZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsMTIgQEAgR2x5cGhXaWR0aE1h
cDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdAogICAgICAgICBtX3BhZ2VzLT5zZXQocGFnZU51
bWJlciwgcGFnZSk7CiAgICAgfQogCisgICAgR2x5cGhNZXRyaWNzIHVua25vd25NZXRyaWNzOwor
ICAgIHVua25vd25NZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gY0dseXBoV2lkdGhVbmtub3du
OworCiAgICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBo
IHdpZHRoIHZhbHVlLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRoUGFn
ZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlwaFdp
ZHRoVW5rbm93bik7CisgICAgICAgIHBhZ2UtPnNldE1ldHJpY3NGb3JJbmRleChpLCB1bmtub3du
TWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFnZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWZuZGVmIEdseXBoV2lkdGhNYXBfaAogI2RlZmluZSBHbHlwaFdpZHRoTWFwX2gK
IAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAg
LTM5LDM0ICs0MCw0NCBAQCB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOwogCiBjb25zdCBm
bG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAtMTsKIAorc3RydWN0IEdseXBoTWV0cmljcyB7Cisg
ICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94Owor
fTsKKwogY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6
CiAgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxsZWRQcmltYXJ5UGFnZShmYWxzZSkgeyB9CiAg
ICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3BhZ2VzKSB7IGRlbGV0ZUFsbFZhbHVlcygqbV9w
YWdlcyk7IH0gfQogCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlw
aCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBh
Z2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgIH0KKwogICAgIGZsb2F0IHdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCiAgICAgewotICAgICAgICByZXR1cm4gbG9jYXRlUGFn
ZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7Cisg
ICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5t
ZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwogICAgIH0KIAotICAgIHZv
aWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgdm9pZCBz
ZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmlj
cykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6
ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAgICAgbG9jYXRlUGFnZShn
bHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBt
ZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsK
ICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVy
cyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVd
OworICAgICAgICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3NpemVdOwogCi0gICAgICAgIGZsb2F0
IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2dseXBo
ICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBm
bG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBn
bHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBoICUgc2l6ZV07IH0KKyAgICAgICAg
dm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYg
bWV0cmljcykKICAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlwaCAl
IHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJpY3NGb3JJbmRleChnbHlwaCAlIHNp
emUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJbmRleCh1
bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAgIHZvaWQgc2V0TWV0cmljc0Zvcklu
ZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRoOworICAgICAgICAgICAgbV9t
ZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0KICAgICB9OwogICAgIApAQCAtODQs
NiArOTUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBh
Z2UqPiA+IG1fcGFnZXM7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJ
KHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw5ICsxNTUsMTEgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpF
Uk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGds
eXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVy
b1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBt
X3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckds
eXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh6
ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAgR2x5cGhN
ZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0g
MDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlwaCh6ZXJv
V2lkdGhTcGFjZUdseXBoLCBtZXRyaWNzKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBM
T0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0aGUgc2Ft
ZSBnbHlwaC4gR2x5cGggd2lkdGggbm90IG92ZXJyaWRkZW4uIik7CiAgICAgfQogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA0Nzg4
MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsNyArNTUsNiBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBG
b250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERhdGE7
Ci1jbGFzcyBXaWR0aE1hcDsKIAogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQaXRj
aCwgVmFyaWFibGVQaXRjaCB9OwogCkBAIC03OCw4ICs3Nyw5IEBAIHB1YmxpYzoKICAgICBmbG9h
dCB4SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWduZWQgdW5p
dHNQZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxvYXQgd2lk
dGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZvckdseXBo
KEdseXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25z
dCB7IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOyB9Cisg
ICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCkgY29uc3Q7CisgICAgR2x5cGhN
ZXRyaWNzIHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEdseXBoKSBjb25zdDsKIAogICAgIGZsb2F0
IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlV2lkdGg7IH0KICAgICBmbG9hdCBh
ZGp1c3RlZFNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkU3BhY2VXaWR0aDsg
fQpAQCAtMTYyLDcgKzE2Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZv
aWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lkIHBsYXRmb3JtQ29tbW9uRGVzdHJveSgpOwotICAg
IGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OworICAgIEdseXBoTWV0
cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OwogI2VuZGlmCiAKICAg
ICBpbnQgbV9hc2NlbnQ7CkBAIC0yMzEsMTYgKzIzMSwxNiBAQCBwcml2YXRlOgogICAgIAogICAg
IAogI2lmICFQTEFURk9STShRVCkKLUFMV0FZU19JTkxJTkUgZmxvYXQgU2ltcGxlRm9udERhdGE6
OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitBTFdBWVNfSU5MSU5FIEdseXBoTWV0
cmljcyBTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAog
ewotICAgIGZsb2F0IHdpZHRoID0gbV9nbHlwaFRvV2lkdGhNYXAud2lkdGhGb3JHbHlwaChnbHlw
aCk7Ci0gICAgaWYgKHdpZHRoICE9IGNHbHlwaFdpZHRoVW5rbm93bikKLSAgICAgICAgcmV0dXJu
IHdpZHRoOwotICAgIAotICAgIHdpZHRoID0gcGxhdGZvcm1XaWR0aEZvckdseXBoKGdseXBoKTsK
LSAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7Ci0g
ICAgCi0gICAgcmV0dXJuIHdpZHRoOworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzID0gbV9nbHlw
aFRvV2lkdGhNYXAubWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICBpZiAobWV0cmljcy5ob3Jp
em9udGFsQWR2YW5jZSAhPSBjR2x5cGhXaWR0aFVua25vd24pCisgICAgICAgIHJldHVybiBtZXRy
aWNzOworCisgICAgbWV0cmljcyA9IHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAg
ICBtX2dseXBoVG9XaWR0aE1hcC5zZXRNZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3MpOwor
CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBV
bmljb2RlOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Nyw2ICs0OCwxMCBAQCBXaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQq
CiAgICAgLCBtX3J1bldpZHRoU29GYXIoMCkKICAgICAsIG1fZmluYWxSb3VuZGluZ1dpZHRoKDAp
CiAgICAgLCBtX2ZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cykKKyAgICAsIG1fbWF4R2x5cGhC
b3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fbWluR2x5
cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fZmly
c3RHbHlwaE92ZXJmbG93KDApCisgICAgLCBtX2xhc3RHbHlwaE92ZXJmbG93KDApCiB7CiAgICAg
Ly8gSWYgdGhlIHBhZGRpbmcgaXMgbm9uLXplcm8sIGNvdW50IHRoZSBudW1iZXIgb2Ygc3BhY2Vz
IGluIHRoZSBydW4KICAgICAvLyBhbmQgZGl2aWRlIHRoYXQgYnkgdGhlIHBhZGRpbmcgZm9yIHBl
ciBzcGFjZSBhZGRpdGlvbi4KQEAgLTEyMCwxMiArMTI1LDE0IEBAIHZvaWQgV2lkdGhJdGVyYXRv
cjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgQVNTRVJUKGZvbnREYXRhKTsKIAogICAg
ICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGEgZ2x5cGggYW5kIGZvbnQgZGF0YSwgZ2V0IGl0cyB3
aWR0aC4KKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljczsKICAgICAgICAgZmxvYXQg
d2lkdGg7CiAgICAgICAgIGlmIChjID09ICdcdCcgJiYgbV9ydW4uYWxsb3dUYWJzKCkpIHsKICAg
ICAgICAgICAgIGZsb2F0IHRhYldpZHRoID0gbV9mb250LT50YWJXaWR0aCgpOwogICAgICAgICAg
ICAgd2lkdGggPSB0YWJXaWR0aCAtIGZtb2RmKG1fcnVuLnhQb3MoKSArIHJ1bldpZHRoU29GYXIs
IHRhYldpZHRoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdpZHRoID0gZm9udERh
dGEtPndpZHRoRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICAgICAgZ2x5cGhNZXRyaWNzID0gZm9u
dERhdGEtPm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICB3aWR0aCA9IGdseXBo
TWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZTsKICAgICAgICAgICAgIC8vIFdlIHNwZWNpYWwgY2Fz
ZSBzcGFjZXMgaW4gdHdvIHdheXMgd2hlbiBhcHBseWluZyB3b3JkIHJvdW5kaW5nLgogICAgICAg
ICAgICAgLy8gRmlyc3QsIHdlIHJvdW5kIHNwYWNlcyB0byBhbiBhZGp1c3RlZCB3aWR0aCBpbiBh
bGwgZm9udHMuCiAgICAgICAgICAgICAvLyBTZWNvbmQsIGluIGZpeGVkLXBpdGNoIGZvbnRzIHdl
IGVuc3VyZSB0aGF0IGFsbCBjaGFyYWN0ZXJzIHRoYXQKQEAgLTE3NSw2ICsxODIsOSBAQCB2b2lk
IFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAoIWN1cnJlbnRDaGFyYWN0ZXIpCisgICAgICAgICAgICBtX2Zp
cnN0R2x5cGhPdmVyZmxvdyA9IG1heDxmbG9hdD4oMCwgLWdseXBoTWV0cmljcy5ib3VuZGluZ0Jv
eC54KCkpOworCiAgICAgICAgIC8vIEFkdmFuY2UgcGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3Qg
ZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVu
dENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpAQCAtMjA1LDYgKzIxNSwxMCBAQCB2b2lkIFdp
ZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICBnbHlwaEJ1ZmZl
ci0+YWRkKGdseXBoLCBmb250RGF0YSwgKHJ0bCA/IG9sZFdpZHRoICsgbGFzdFJvdW5kaW5nV2lk
dGggOiB3aWR0aCkpOwogCiAgICAgICAgIGxhc3RSb3VuZGluZ1dpZHRoID0gd2lkdGggLSBvbGRX
aWR0aDsKKworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhC
b3VuZGluZ0JveFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAg
IG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WSwgZ2x5
cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAgIG1fbGFzdEdseXBoT3ZlcmZsb3cg
PSBtYXg8ZmxvYXQ+KDAsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgpIC0gd2lkdGgp
OwogICAgIH0KIAogICAgIG1fY3VycmVudENoYXJhY3RlciA9IGN1cnJlbnRDaGFyYWN0ZXI7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkocmV2aXNpb24g
NDc4ODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogICAg
IHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2YW5j
ZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwogCisgICAgZmxv
YXQgbWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRp
bmdCb3hZOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVy
biBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgZmlyc3RHbHlwaE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdEdseXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBsYXN0
R2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7IH0KKwog
ICAgIGNvbnN0IEZvbnQqIG1fZm9udDsKIAogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwpAQCAt
NTEsNyArNTYsMTIgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogCiBwcml2YXRlOgogICAgIFVD
aGFyMzIgbm9ybWFsaXplVm9pY2luZ01hcmtzKGludCBjdXJyZW50Q2hhcmFjdGVyKTsKKwogICAg
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOworICAgIGZs
b2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5n
Qm94WTsKKyAgICBmbG9hdCBtX2ZpcnN0R2x5cGhPdmVyZmxvdzsKKyAgICBmbG9hdCBtX2xhc3RH
bHlwaE92ZXJmbG93OwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvQ29yZVRleHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db3JlVGV4dENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvcmVUZXh0Q29udHJvbGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExMyw2ICsxMTMsMTAgQEAgQ29yZVRleHRDb250cm9sbGVyOjpDb3Jl
VGV4dENvbnRyb2xsZXIoYwogICAgICwgbV9nbHlwaEluQ3VycmVudFJ1bigwKQogICAgICwgbV9m
aW5hbFJvdW5kaW5nV2lkdGgoMCkKICAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRz
KQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1h
eCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46
Om1pbigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9h
dD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxm
bG9hdD46Om1pbigpKQogICAgICwgbV9sYXN0Um91bmRpbmdHbHlwaCgwKQogewogICAgIG1fcGFk
ZGluZyA9IG1fcnVuLnBhZGRpbmcoKTsKQEAgLTQzMyw3ICs0MzcsNyBAQCB2b2lkIENvcmVUZXh0
Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kCiAgICAgICAgIENHRmxvYXQgcm91bmRlZFNwYWNl
V2lkdGggPSByb3VuZENHRmxvYXQoZm9udERhdGEtPnNwYWNlV2lkdGgoKSk7CiAgICAgICAgIGJv
b2wgcm91bmRzQWR2YW5jZXMgPSAhbV9mb250LmlzUHJpbnRlckZvbnQoKSAmJiBmb250RGF0YS0+
cGxhdGZvcm1EYXRhKCkucm91bmRzR2x5cGhBZHZhbmNlcygpOwogICAgICAgICBib29sIGhhc0V4
dHJhU3BhY2luZyA9IChtX2ZvbnQubGV0dGVyU3BhY2luZygpIHx8IG1fZm9udC53b3JkU3BhY2lu
ZygpIHx8IG1fcGFkZGluZykgJiYgIW1fcnVuLnNwYWNpbmdEaXNhYmxlZCgpOwotCisgICAgICAg
IENHUG9pbnQgZ2x5cGhPcmlnaW4gPSBDR1BvaW50WmVybzsKIAogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZ2x5cGhDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBDRkluZGV4IGNo
YXJhY3RlckluZGV4ID0gY29yZVRleHRSdW4uaW5kZXhBdChpKTsKQEAgLTUyOCw2ICs1MzIsMTUg
QEAgdm9pZCBDb3JlVGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBoc0FuZAogICAgICAgICAgICAg
YWR2YW5jZS5oZWlnaHQgKj0gLTE7CiAgICAgICAgICAgICBtX2FkanVzdGVkQWR2YW5jZXMuYXBw
ZW5kKGFkdmFuY2UpOwogICAgICAgICAgICAgbV9hZGp1c3RlZEdseXBocy5hcHBlbmQoZ2x5cGgp
OworCisgICAgICAgICAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRyaWNzID0gZm9udERhdGEtPm1l
dHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdC
b3gubW92ZShnbHlwaE9yaWdpbi54LCBnbHlwaE9yaWdpbi55KTsKKyAgICAgICAgICAgIG1fbWlu
R2x5cGhCb3VuZGluZ0JveFggPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WCwgZ2x5cGhNZXRy
aWNzLmJvdW5kaW5nQm94LngoKSk7CisgICAgICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hY
ID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5y
aWdodCgpKTsKKyAgICAgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5H
bHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAg
ICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFks
IGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAgICAgICBnbHlwaE9y
aWdpbi54ICs9IGFkdmFuY2Uud2lkdGg7CisgICAgICAgICAgICBnbHlwaE9yaWdpbi55ICs9IGFk
dmFuY2UuaGVpZ2h0OwogICAgICAgICB9CiAgICAgfQogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvQ29yZVRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29yZVRleHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDQ3
ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29yZVRleHRDb250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDExIEBAIHB1YmxpYzoKICAgICAvLyBFeHRy
YSB3aWR0aCB0byB0aGUgbGVmdCBvZiB0aGUgbGVmdG1vc3QgZ2x5cGguCiAgICAgZmxvYXQgZmlu
YWxSb3VuZGluZ1dpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9maW5hbFJvdW5kaW5nV2lkdGg7IH0K
IAorICAgIGZsb2F0IG1pbkdseXBoQm91bmRpbmdCb3hYKCkgY29uc3QgeyByZXR1cm4gbV9taW5H
bHlwaEJvdW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1heEdseXBoQm91bmRpbmdCb3hYKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1pbkdseXBo
Qm91bmRpbmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9taW5HbHlwaEJvdW5kaW5nQm94WTsgfQor
ICAgIGZsb2F0IG1heEdseXBoQm91bmRpbmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlw
aEJvdW5kaW5nQm94WTsgfQorCiBwcml2YXRlOgogICAgIGNsYXNzIENvcmVUZXh0UnVuIHsKICAg
ICBwdWJsaWM6CkBAIC0xMDcsNiArMTEyLDEwIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9wYWRQ
ZXJTcGFjZTsKIAogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFj
a0ZvbnRzOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9t
YXhHbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOwor
ICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CiAKICAgICB1bnNpZ25lZCBtX2xhc3RS
b3VuZGluZ0dseXBoOwogfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRNYWNDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udE1hY0NvcmVUZXh0LmNwcAkocmV2aXNpb24gNDc4ODEpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjQ29yZVRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29u
c3QgVGV4dFJ1biYgcnVuLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGludCBoLApAQCAtODYsOSAr
ODgsMTUgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRy
YXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0K
IAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAor
ZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIENvcmVUZXh0Q29udHJvbGxlciBjb250
cm9sbGVyKHRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250cyk7CisgICAgaWYgKGdseXBoT3Zl
cmZsb3cpIHsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gbWF4PGludD4oZ2x5cGhPdmVy
Zmxvdy0+dG9wLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WSgpKSAtIGFz
Y2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gbWF4PGludD4oZ2x5cGhP
dmVyZmxvdy0+Ym90dG9tLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBoQm91bmRpbmdCb3hZKCkp
IC0gZGVzY2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IG1heDxpbnQ+KDAs
IGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hYKCkpKTsKKyAgICAgICAgZ2x5
cGhPdmVyZmxvdy0+cmlnaHQgPSBtYXg8aW50PigwLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBo
Qm91bmRpbmdCb3hYKCkgLSBjb250cm9sbGVyLnRvdGFsV2lkdGgoKSkpOworICAgIH0KICAgICBy
ZXR1cm4gY29udHJvbGxlci50b3RhbFdpZHRoKCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA0
Nzg4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTEsMTcgKzM5MSwyNSBAQCB2b2lkIFNpbXBsZUZvbnRE
YXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgICAgIFtuYW1lIGNhc2VJbnNlbnNpdGl2ZUNv
bXBhcmU6QCJNb25vdHlwZUNvcnNpdmEiXSAhPSBOU09yZGVyZWRTYW1lOwogfQogCi1mbG9hdCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAor
R2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlw
aCBnbHlwaCkgY29uc3QKIHsKLSAgICBOU0ZvbnQqIGZvbnQgPSBtX3BsYXRmb3JtRGF0YS5mb250
KCk7Ci0gICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURhdGEubV9zaXplOworICAgIE5T
Rm9udCogZm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKKyAgICBmbG9hdCBwb2ludFNpemUg
PSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZm
aW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUg
YWR2YW5jZTsKLSAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKG1fcGxhdGZv
cm1EYXRhLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKKyAgICBpZiAo
IXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBm
b250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUg
dG8gY2FjaGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9p
bnRTaXplKTsKICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7CiAgICAgfQotICAgIHJldHVybiBh
ZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBt
ZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsg
bV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICBDR0Zv
bnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm91
bmRpbmdCb3gpOworICAgIENHRmxvYXQgc2NhbGUgPSBwb2ludFNpemUgLyB1bml0c1BlckVtKCk7
CisgICAgbWV0cmljcy5ib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJv
dW5kaW5nQm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7Cisg
ICAgaWYgKG1fc3ludGhldGljQm9sZE9mZnNldCkKKyAgICAgICAgbWV0cmljcy5ib3VuZGluZ0Jv
eC5zZXRXaWR0aChtZXRyaWNzLmJvdW5kaW5nQm94LndpZHRoKCkgKyBtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQpOworICAgIHJldHVybiBtZXRyaWNzOwogfQogCiAjaWYgVVNFKEFUU1VJKQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDQ3ODgx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBz
dGFydFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0
IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzLCBHbHlwaE92ZXJmbG93KikgY29uc3QKIHsKICAgICBVbmlzY3JpYmVDb250cm9sbGVyIGNv
bnRyb2xsZXIodGhpcywgcnVuLCBmYWxsYmFja0ZvbnRzKTsKICAgICBjb250cm9sbGVyLmFkdmFu
Y2UocnVuLmxlbmd0aCgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Np
bXBsZUZvbnREYXRhQ0dXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjYsMTAgKzEyNiwxMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybUNoYXJXaWR0aEluCiAgICAgfQogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBsZUZv
bnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAg
ICBpZiAobV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpCi0gICAgICAgcmV0dXJuIHdpZHRoRm9yR0RJ
R2x5cGgoZ2x5cGgpOworICAgICAgIHJldHVybiBtZXRyaWNzRm9yR0RJR2x5cGgoZ2x5cGgpOwog
CiAgICAgQ0dGb250UmVmIGZvbnQgPSBtX3BsYXRmb3JtRGF0YS5jZ0ZvbnQoKTsKICAgICBmbG9h
dCBwb2ludFNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCk7CkBAIC0xMzksOCArMTM5LDE1IEBA
IGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2wKICAgICAvLyBGSVhNRTog
TmVlZCB0byBhZGQgcmVhbCBzdXBwb3J0IGZvciBwcmludGVyIGZvbnRzLgogICAgIGJvb2wgaXNQ
cmludGVyRm9udCA9IGZhbHNlOwogICAgIHdrR2V0R2x5cGhBZHZhbmNlcyhmb250LCBtLCBtX2lz
U3lzdGVtRm9udCwgaXNQcmludGVyRm9udCwgZ2x5cGgsIGFkdmFuY2UpOwotCi0gICAgcmV0dXJu
IGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisgICAgR2x5cGhNZXRyaWNz
IG1ldHJpY3M7CisgICAgbWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGFkdmFuY2Uud2lkdGgg
KyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisgICAgQ0dSZWN0IGJvdW5kaW5nQm94OworICAgIENH
Rm9udEdldEdseXBoQkJveGVzKGZvbnQsICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsKKyAgICBD
R0Zsb2F0IHNjYWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgIG1ldHJpY3MuYm91
bmRpbmdCb3ggPSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShib3VuZGluZ0JveCwgQ0dBZmZp
bmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOworICAgIGlmIChtX3N5bnRoZXRp
Y0JvbGRPZmZzZXQpCisgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0cmlj
cy5ib3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICByZXR1
cm4gbWV0cmljczsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
U2ltcGxlRm9udERhdGFXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAkocmV2aXNpb24gNDc4ODEpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3OSwxNiArMTc5LDI1IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OmRldGVybWlu
ZVBpdGNoKCkKICAgICBSZWxlYXNlREMoMCwgZGMpOwogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0
YTo6d2lkdGhGb3JHRElHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1w
bGVGb250RGF0YTo6bWV0cmljc0ZvckdESUdseXBoKEdseXBoIGdseXBoKSBjb25zdAogewogICAg
IEhEQyBoZGMgPSBHZXREQygwKTsKICAgICBTZXRHcmFwaGljc01vZGUoaGRjLCBHTV9BRFZBTkNF
RCk7CiAgICAgSEdESU9CSiBvbGRGb250ID0gU2VsZWN0T2JqZWN0KGhkYywgbV9wbGF0Zm9ybURh
dGEuaGZvbnQoKSk7Ci0gICAgaW50IHdpZHRoOwotICAgIEdldENoYXJXaWR0aEkoaGRjLCBnbHlw
aCwgMSwgMCwgJndpZHRoKTsKKworICAgIEdMWVBITUVUUklDUyBnZGlNZXRyaWNzOworICAgIHN0
YXRpYyBjb25zdCBNQVQyIGlkZW50aXR5ID0geyAwLCAxLCAgMCwgMCwgIDAsIDAsICAwLCAxIH07
CisgICAgR2V0R2x5cGhPdXRsaW5lKGhkYywgZ2x5cGgsIEdHT19NRVRSSUNTIHwgR0dPX0dMWVBI
X0lOREVYLCAmZ2RpTWV0cmljcywgMCwgMCwgJmlkZW50aXR5KTsKKwogICAgIFNlbGVjdE9iamVj
dChoZGMsIG9sZEZvbnQpOwogICAgIFJlbGVhc2VEQygwLCBoZGMpOwotICAgIHJldHVybiB3aWR0
aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKworICAgIEdseXBoTWV0cmljcyBnbHlwaE1ldHJp
Y3M7CisgICAgZ2x5cGhNZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gZ2RpTWV0cmljcy5nbUNl
bGxJbmNYICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIGdseXBoTWV0cmljcy5ib3VuZGlu
Z0JveCA9IEZsb2F0UmVjdChnZGlNZXRyaWNzLmdtcHRHbHlwaE9yaWdpbi54LCAtZ2RpTWV0cmlj
cy5nbXB0R2x5cGhPcmlnaW4ueSwKKyAgICAgICAgZ2RpTWV0cmljcy5nbUJsYWNrQm94WCArIG1f
c3ludGhldGljQm9sZE9mZnNldCwgZ2RpTWV0cmljcy5nbUJsYWNrQm94WSk7CisKKyAgICByZXR1
cm4gZ2x5cGhNZXRyaWNzOwogfQogCiBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIFNpbXBsZUZvbnRE
YXRhOjpzY3JpcHRGb250UHJvcGVydGllcygpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAkocmV2aXNpb24gNDc4ODEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQgSW5s
aW5lRmxvd0JveDo6cGxhY2VCb3hlc0hvcml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0dGVy
U3BhY2luZyA9IG1pbigwLCAoaW50KXJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5sZXR0
ZXJTcGFjaW5nKCkpOwogICAgICAgICAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4UG9z
ICsgdGV4dC0+d2lkdGgoKSAtIGxldHRlclNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cpOwog
Ci0gICAgICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0g
ICAgICAgICAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0
ZXJTcGFjaW5nOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0
YXRpY19jYXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAg
ICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhP
dmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCByaWdo
dEdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5cGhP
dmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGludCBjaGlsZE92ZXJmbG93TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAgICAg
ICAgICAgaW50IGNoaWxkT3ZlcmZsb3dSaWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAgLTQx
MiwzNSArNDE0LDM1IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkK
IAogICAgICAgICBpbnQgbGluZUhlaWdodDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAgICAg
ICBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZlY3Rv
cjxjb25zdCBTaW1wbGVGb250RGF0YSo+KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAoY3Vy
ci0+aXNJbmxpbmVUZXh0Qm94KCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0
Qm94Kj4oY3VyciktPnRha2VGYWxsYmFja0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAgICB1
c2VkRm9udHMgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNrRm9u
dHMoKTsKIAotICAgICAgICBpZiAoIXVzZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IHVzZWRGb250cy5hcHBlbmQoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5m
b250KCkucHJpbWFyeUZvbnQoKSk7CisgICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAgICAg
ICAgIHVzZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5l
KS0+Zm9udCgpLnByaW1hcnlGb250KCkpOwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExpbmVI
ZWlnaHQgPSBjdXJyLT5yZW5kZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdodCgp
OwogICAgICAgICAgICAgaWYgKHBhcmVudExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAgICAg
ICAgICAgICAgICAgaW50IGJhc2VsaW5lVG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAgIGJh
c2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRG
b250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcg
PSAodXNlZEZvbnRzW2ldLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAt
IHVzZWRGb250c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2Vs
aW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkp
OwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9C
b3R0b20sIHVzZWRGb250c1tpXS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50
KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSktPmxp
bmVTcGFjaW5nKCkgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQo
aSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChi
YXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CisgICAg
ICAgICAgICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwg
dXNlZEZvbnRzLT5hdChpKS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2Vu
dCgpIC0gdXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBiYXNl
bGluZVRvQm90dG9tOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0Lmlz
UGVyY2VudCgpKSB7CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVIZWln
aHQuY2FsY01pblZhbHVlKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkpOwog
ICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAg
ICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkg
LSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNl
bGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgp
KTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVI
ZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRl
c2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGlu
ZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0
ID0gcGFyZW50TGluZUhlaWdodC52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0g
MDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXpl
KCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhl
aWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkg
LyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxl
YWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5h
c2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAg
ICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMt
PmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgewpAQCAtNTY1LDEwICs1NjcsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpj
b21wdXRlVmVydGljYWxPdmVyZgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
ICAgICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5zdHls
ZSgpLT50ZXh0U3Ryb2tlV2lkdGgoKSAvIDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgaW50IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBp
bnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgCisK
KyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxJ
bmxpbmVUZXh0Qm94Kj4oY3VyciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAgaW50
IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGds
eXBoT3ZlcmZsb3ctPnRvcCA6IDApOworICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZs
b3cgPSBzdHJva2VPdmVyZmxvdyArIChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+Ym90
dG9tIDogMCk7CisKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhP
dmVyZmxvdzsKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5
cGhPdmVyZmxvdzsKICAgICAgICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0
eWxlKCktPnRleHRTaGFkb3coKTsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5o
IgogCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05OTQsMzAgKzk5NSw1
MyBAQCBib29sIElubGluZVRleHRCb3g6OmNvbnRhaW5zQ2FyZXRPZmZzZXQoCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxJbmxpbmVUZXh0Qm94KiwgVmVjdG9yPGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4gPiBGYWxsYmFja0ZvbnRzTWFwOwotc3RhdGljIEZhbGxiYWNrRm9u
dHNNYXAqIGdGYWxsYmFja0ZvbnRzTWFwOwotCiB2b2lkIElubGluZVRleHRCb3g6OnNldEZhbGxi
YWNrRm9udHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0Zv
bnRzKQogewotICAgIGlmICghZ0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIGdGYWxsYmFja0Zv
bnRzTWFwID0gbmV3IEZhbGxiYWNrRm9udHNNYXA7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOwogCi0gICAgRmFs
bGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBnRmFsbGJhY2tGb250c01hcC0+c2V0KHRoaXMs
IFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCkpLmZpcnN0OwotICAgIEFTU0VSVChpdC0+
c2Vjb25kLmlzRW1wdHkoKSk7Ci0gICAgY29weVRvVmVjdG9yKGZhbGxiYWNrRm9udHMsIGl0LT5z
ZWNvbmQpOworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBp
dCA9IHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmFkZCh0aGlzLCBtYWtlX3Bh
aXIoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4oKSwgR2x5cGhPdmVyZmxvdygpKSkuZmly
c3Q7CisgICAgQVNTRVJUKGl0LT5zZWNvbmQuZmlyc3QuaXNFbXB0eSgpKTsKKyAgICBjb3B5VG9W
ZWN0b3IoZmFsbGJhY2tGb250cywgaXQtPnNlY29uZC5maXJzdCk7CiB9CiAKLXZvaWQgSW5saW5l
VGV4dEJveDo6dGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4m
IGZhbGxiYWNrRm9udHMpCitWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogSW5saW5lVGV4
dEJveDo6ZmFsbGJhY2tGb250cygpIGNvbnN0CiB7Ci0gICAgaWYgKCFnRmFsbGJhY2tGb250c01h
cCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tG
b250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVy
YXRvciBpdCA9IGdGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOwotICAgIGlmIChpdCA9PSBn
RmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBHbHlwaE92ZXJm
bG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBy
ZXR1cm4gJml0LT5zZWNvbmQuZmlyc3Q7Cit9CisKK0lubGluZVRleHRCb3g6OkdseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwKiBJbmxpbmVUZXh0Qm94OjpzX2dseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwID0gMDsKKwordm9pZCBJbmxpbmVUZXh0Qm94OjpzZXRHbHlwaE92ZXJm
bG93KGNvbnN0IEdseXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZsb3cpCit7CisgICAgaWYgKCFzX2ds
eXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFw
OworCisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0g
c19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMsIG1ha2VfcGFpcihW
ZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93KCkpKS5maXJzdDsK
KyAgICBpdC0+c2Vjb25kLnNlY29uZCA9IGdseXBoT3ZlcmZsb3c7CisjaWYgMAorICAgIHByaW50
ZigiR2x5cGggb3ZlcmZsb3c6ICVkICVkICVkICVkICVzICVkIFwiJXNcIlxuIiwgZ2x5cGhPdmVy
Zmxvdy50b3AsIGdseXBoT3ZlcmZsb3cuYm90dG9tLCBnbHlwaE92ZXJmbG93LmxlZnQsIGdseXBo
T3ZlcmZsb3cucmlnaHQsCisgICAgICAgIHJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnQoKS5mYW1p
bHkoKS5mYW1pbHkoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZW5kZXJlcigpLT5zdHlsZSgp
LT5mb250KCkucGl4ZWxTaXplKCksCisgICAgICAgIFN0cmluZyh0ZXh0UmVuZGVyZXIoKS0+Y2hh
cmFjdGVycygpICsgbV9zdGFydCwgbV9sZW4pLnV0ZjgoKS5kYXRhKCkpOworI2VuZGlmCit9CisK
K0dseXBoT3ZlcmZsb3cqIElubGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3coKSBjb25zdAorewor
ICAgIGlmICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0
ID0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZmluZCh0aGlzKTsKKyAgICBp
ZiAoaXQgPT0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCisgICAg
ICAgIHJldHVybiAwOwogCi0gICAgZmFsbGJhY2tGb250cy5zd2FwKGl0LT5zZWNvbmQpOwotICAg
IGdGYWxsYmFja0ZvbnRzTWFwLT5yZW1vdmUoaXQpOworICAgIHJldHVybiAmaXQtPnNlY29uZC5z
ZWNvbmQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL0lubGluZVRleHRCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmgJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCwxNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBvZmZzZXRSdW4oaW50IGQpIHsgbV9zdGFydCArPSBkOyB9CiAKICAgICB2b2lkIHNldEZh
bGxiYWNrRm9udHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7Ci0gICAg
dm9pZCB0YWtlRmFsbGJhY2tGb250cyhWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYpOwor
ICAgIFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKCkgY29uc3Q7
CisKKyAgICB2b2lkIHNldEdseXBoT3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYpOworICAg
IEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3coKSBjb25zdDsKKworICAgIHN0YXRpYyB2b2lk
IGNsZWFyR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCgpCisgICAgeworICAgICAgICBp
ZiAoc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgICAgIHNfZ2x5
cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmNsZWFyKCk7CisgICAgfQogCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgaW50IHNlbGVjdGlvblRvcCgpOwpAQCAtMTIwLDYgKzEyOSw5IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgc2hvcnQgbV90cnVuY2F0aW9uOyAvLyBXaGVyZSB0byB0cnVu
Y2F0ZSB3aGVuIHRleHQgb3ZlcmZsb3cgaXMgYXBwbGllZC4gIFdlIHVzZSBzcGVjaWFsIGNvbnN0
YW50cyB0bwogICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbm90ZSBubyB0cnVuY2F0aW9uICh0
aGUgd2hvbGUgcnVuIHBhaW50cykgYW5kIGZ1bGwgdHJ1bmNhdGlvbiAobm90aGluZyBwYWludHMg
YXQgYWxsKS4KIAorICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBJbmxpbmVUZXh0Qm94KiwgcGFp
cjxWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiwgR2x5cGhPdmVyZmxvdz4gPiBHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDsKKyAgICBzdGF0aWMgR2x5cGhPdmVyZmxvd0FuZEZh
bGxiYWNrRm9udHNNYXAqIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisKIHBy
b3RlY3RlZDoKICAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29u
dGV4dCosIGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHlsZSosIGNvbnN0IEZvbnQmLCBpbnQgc3Rh
cnRQb3MsIGludCBlbmRQb3MpOwogICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtlcnMoR3JhcGhp
Y3NDb250ZXh0KiwgaW50IHR4LCBpbnQgdHksIFJlbmRlclN0eWxlKiwgY29uc3QgRm9udCYsIGJv
b2wgYmFja2dyb3VuZCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQwLDcgKzY0MCw4IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVIb3Jpem9udGFsUG9zaXQKICAgICAgICAgICAgICAgICBu
ZWVkc1dvcmRTcGFjaW5nID0gIWlzU3BhY2VPck5ld2xpbmUocnQtPmNoYXJhY3RlcnMoKVtyLT5t
X3N0b3AgLSAxXSkgJiYgci0+bV9zdG9wID09IGxlbmd0aDsgICAgICAgICAgCiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gZmFsbGJhY2tG
b250czsKLSAgICAgICAgICAgIHItPm1fYm94LT5zZXRXaWR0aChydC0+d2lkdGgoci0+bV9zdGFy
dCwgci0+bV9zdG9wIC0gci0+bV9zdGFydCwgdG90V2lkdGgsIGZpcnN0TGluZSwgJmZhbGxiYWNr
Rm9udHMpKTsKKyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdzsKKyAgICAg
ICAgICAgIHItPm1fYm94LT5zZXRXaWR0aChydC0+d2lkdGgoci0+bV9zdGFydCwgci0+bV9zdG9w
IC0gci0+bV9zdGFydCwgdG90V2lkdGgsIGZpcnN0TGluZSwgJmZhbGxiYWNrRm9udHMsICZnbHlw
aE92ZXJmbG93KSk7CiAgICAgICAgICAgICBpZiAoIWZhbGxiYWNrRm9udHMuaXNFbXB0eSgpCiAj
aWYgRU5BQkxFKFNWRykKICAgICAgICAgICAgICAgICAgICAgJiYgIWlzU1ZHVGV4dCgpCkBAIC02
NDksNiArNjUwLDE0IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVIb3Jpem9udGFsUG9zaXQK
ICAgICAgICAgICAgICAgICBBU1NFUlQoci0+bV9ib3gtPmlzVGV4dCgpKTsKICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oci0+bV9ib3gpLT5zZXRGYWxsYmFja0Zv
bnRzKGZhbGxiYWNrRm9udHMpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChnbHlw
aE92ZXJmbG93LnRvcCB8fCBnbHlwaE92ZXJmbG93LmJvdHRvbSB8fCBnbHlwaE92ZXJmbG93Lmxl
ZnQgfHwgZ2x5cGhPdmVyZmxvdy5yaWdodCkKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAgICAg
ICAgICAgICAmJiAhaXNTVkdUZXh0KCkKKyNlbmRpZgorICAgICAgICAgICAgKSB7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CisgICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0R2x5cGhPdmVyZmxvdyhnbHlw
aE92ZXJmbG93KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghci0+bV9vYmpl
Y3QtPmlzUmVuZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94
ID0gdG9SZW5kZXJCb3goci0+bV9vYmplY3QpOwogICAgICAgICAgICAgcmVuZGVyQm94LT5jYWxj
V2lkdGgoKTsKQEAgLTEwMzIsNiArMTA0MSw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElu
bGluZUNoaWxkcmVuKGIKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBwb3NpdGlvbiBv
dXIgdGV4dCBydW5zIHZlcnRpY2FsbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRl
VmVydGljYWxQb3NpdGlvbnNGb3JMaW5lKGxpbmVCb3gsIHJlc29sdmVyLmZpcnN0UnVuKCkpOwog
CisgICAgICAgICAgICAgICAgICAgICAgICBJbmxpbmVUZXh0Qm94OjpjbGVhckdseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRNYXAoKTsKKwogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBTcGVjaWFsIFNWRyB0ZXh0IGxheW91dCBjb2RlCiAgICAgICAgICAgICAg
ICAgICAgICAgICBsaW5lQm94LT5jb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3JtYXRpb24o
KTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2
NSw3IEBAIFJlbmRlclRleHQ6OlJlbmRlclRleHQoTm9kZSogbm9kZSwgUGFzc1IKICAgICAgLCBt
X2xpbmVzRGlydHkoZmFsc2UpCiAgICAgICwgbV9jb250YWluc1JldmVyc2VkVGV4dChmYWxzZSkK
ICAgICAgLCBtX2lzQWxsQVNDSUkoY2hhcmFjdGVyc0FyZUFsbEFTQ0lJKG1fdGV4dC5nZXQoKSkp
Ci0gICAgICwgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyhmYWxzZSkKKyAgICAgLCBtX2tu
b3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyhmYWxzZSkKIHsKICAgICBBU1NF
UlQobV90ZXh0KTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWYKICAgICAvLyBuZWVkIHRvIHJlbGF5b3V0LgogICAgIGlmIChkaWZm
ID09IFN0eWxlRGlmZmVyZW5jZUxheW91dCkgewogICAgICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZXaWR0aHNSZWNhbGMoKTsKLSAgICAgICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9
IGZhbHNlOworICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250
cyA9IGZhbHNlOwogICAgIH0KIAogICAgIEVUZXh0VHJhbnNmb3JtIG9sZFRyYW5zZm9ybSA9IG9s
ZFN0eWxlID8gb2xkU3R5bGUtPnRleHRUcmFuc2Zvcm0oKSA6IFRUTk9ORTsKQEAgLTQyNyw3ICs0
MjcsNyBAQCBJbnRSZWN0IFJlbmRlclRleHQ6OmxvY2FsQ2FyZXRSZWN0KElubGluCiAgICAgcmV0
dXJuIEludFJlY3QobGVmdCwgdG9wLCBjYXJldFdpZHRoLCBoZWlnaHQpOwogfQogCi1BTFdBWVNf
SU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiBmLCBpbnQg
c3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMpIGNvbnN0CitBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0
aEZyb21DYWNoZShjb25zdCBGb250JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBI
YXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZs
b3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKGYuaXNGaXhlZFBpdGNoKCkgJiYg
IWYuaXNTbWFsbENhcHMoKSAmJiBtX2lzQWxsQVNDSUkpIHsKICAgICAgICAgaW50IG1vbm9zcGFj
ZUNoYXJhY3RlcldpZHRoID0gZi5zcGFjZVdpZHRoKCk7CkBAIC00NTcsNyArNDU3LDcgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVuZGVyVGV4dDo6d2lkdGhGcm9tQwogICAgICAgICByZXR1cm4gdzsK
ICAgICB9CiAKLSAgICByZXR1cm4gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygp
ICsgc3RhcnQsIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzKTsKKyAgICBy
ZXR1cm4gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwg
YWxsb3dUYWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAog
dm9pZCBSZW5kZXJUZXh0Ojp0cmltbWVkUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLApAQCAtNTI2
LDcgKzUyNiw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGwKICAg
ICAgICAgICAgICAgICBsaW5lbGVuKys7CiAKICAgICAgICAgICAgIGlmIChsaW5lbGVuKSB7Ci0g
ICAgICAgICAgICAgICAgZW5kTWF4VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4sIGxl
YWRXaWR0aCArIGVuZE1heFcsIDApOworICAgICAgICAgICAgICAgIGVuZE1heFcgPSB3aWR0aEZy
b21DYWNoZShmLCBpLCBsaW5lbGVuLCBsZWFkV2lkdGggKyBlbmRNYXhXLCAwLCAwKTsKICAgICAg
ICAgICAgICAgICBpZiAoZmlyc3RMaW5lKSB7CiAgICAgICAgICAgICAgICAgICAgIGZpcnN0TGlu
ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBsZWFkV2lkdGggPSAwOwpAQCAtNTcxLDE0
ICs1NzEsMTUgQEAgaW50IFJlbmRlclRleHQ6Om1heFByZWZXaWR0aCgpIGNvbnN0CiB2b2lkIFJl
bmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgpCiB7CiAgICAgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+IGZhbGxiYWNrRm9udHM7Ci0gICAgY2FsY1ByZWZXaWR0aHMo
bGVhZFdpZHRoLCBmYWxsYmFja0ZvbnRzKTsKLSAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5
KCkpCi0gICAgICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVlOworICAgIEds
eXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdzsKKyAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgs
IGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOworICAgIGlmIChmYWxsYmFja0ZvbnRzLmlz
RW1wdHkoKSAmJiAhZ2x5cGhPdmVyZmxvdy5sZWZ0ICYmICFnbHlwaE92ZXJmbG93LnJpZ2h0ICYm
ICFnbHlwaE92ZXJmbG93LnRvcCAmJiAhZ2x5cGhPdmVyZmxvdy5ib3R0b20pCisgICAgICAgIG1f
a25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzID0gdHJ1ZTsKIH0KIAotdm9p
ZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCit2b2lkIFJlbmRlclRleHQ6OmNhbGNQ
cmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYg
ZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKLSAgICBBU1NF
UlQobV9oYXNUYWIgfHwgcHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ob3RUb1VzZUZhbGxi
YWNrRm9udHMpOworICAgIEFTU0VSVChtX2hhc1RhYiB8fCBwcmVmV2lkdGhzRGlydHkoKSB8fCAh
bV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMpOwogCiAgICAgbV9taW5X
aWR0aCA9IDA7CiAgICAgbV9iZWdpbk1pbldpZHRoID0gMDsKQEAgLTYwOCw2ICs2MDksOCBAQCB2
b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgaW50IG5leHRCcmVh
a2FibGUgPSAtMTsKICAgICBpbnQgbGFzdFdvcmRCb3VuZGFyeSA9IDA7CiAKKyAgICBpbnQgZmly
c3RHbHlwaExlZnRPdmVyZmxvdyA9IC0xOworCiAgICAgYm9vbCBicmVha05CU1AgPSBzdHlsZSgp
LT5hdXRvV3JhcCgpICYmIHN0eWxlKCktPm5ic3BNb2RlKCkgPT0gU1BBQ0U7CiAgICAgYm9vbCBi
cmVha0FsbCA9IChzdHlsZSgpLT53b3JkQnJlYWsoKSA9PSBCcmVha0FsbFdvcmRCcmVhayB8fCBz
dHlsZSgpLT53b3JkQnJlYWsoKSA9PSBCcmVha1dvcmRCcmVhaykgJiYgc3R5bGUoKS0+YXV0b1dy
YXAoKTsKIApAQCAtNjUwLDcgKzY1Myw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0
aHMoaW50IGxlYWQKICAgICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkrKzsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9IGVsc2UgaWYgKGMgPT0gc29mdEh5cGhlbikgewotICAgICAg
ICAgICAgY3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnks
IGkgLSBsYXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFj
a0ZvbnRzKTsKKyAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBs
YXN0V29yZEJvdW5kYXJ5LCBpIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1h
eFdpZHRoLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYg
KGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhM
ZWZ0T3ZlcmZsb3cgPSBnbHlwaE92ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBsYXN0V29yZEJv
dW5kYXJ5ID0gaSArIDE7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNjcz
LDEzICs2NzgsMTUgQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAog
CiAgICAgICAgIGludCB3b3JkTGVuID0gaiAtIGk7CiAgICAgICAgIGlmICh3b3JkTGVuKSB7Ci0g
ICAgICAgICAgICBpbnQgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIHdvcmRMZW4sIGxlYWRXaWR0
aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgaW50IHcgPSB3
aWR0aEZyb21DYWNoZShmLCBpLCB3b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZm
YWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlw
aExlZnRPdmVyZmxvdyA8IDApCisgICAgICAgICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxv
dyA9IGdseXBoT3ZlcmZsb3cubGVmdDsKICAgICAgICAgICAgIGN1cnJNaW5XaWR0aCArPSB3Owog
ICAgICAgICAgICAgaWYgKGJldHdlZW5Xb3JkcykgewogICAgICAgICAgICAgICAgIGlmIChsYXN0
V29yZEJvdW5kYXJ5ID09IGkpCiAgICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3
OwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRo
ICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29yZEJvdW5k
YXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91
bmRhcnksIGogLSBsYXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZm
YWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgbGFzdFdvcmRC
b3VuZGFyeSA9IGo7CiAgICAgICAgICAgICB9CiAKQEAgLTczMiw2ICs3MzksNyBAQCB2b2lkIFJl
bmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgICAgICAgICAgY3Vyck1h
eFdpZHRoID0gMDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY3Vyck1h
eFdpZHRoICs9IGYud2lkdGgoVGV4dFJ1bih0eHQgKyBpLCAxLCBhbGxvd1RhYnMoKSwgbGVhZFdp
ZHRoICsgY3Vyck1heFdpZHRoKSk7CisgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5yaWdo
dCA9IDA7CiAgICAgICAgICAgICAgICAgbmVlZHNXb3JkU3BhY2luZyA9IGlzU3BhY2UgJiYgIXBy
ZXZpb3VzQ2hhcmFjdGVySXNTcGFjZSAmJiBpID09IGxlbiAtIDE7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBBU1NFUlQobGFzdFdvcmRCb3VuZGFyeSA9PSBpKTsKQEAgLTczOSw2ICs3NDcs
OSBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA+IDApCisgICAgICAgIGds
eXBoT3ZlcmZsb3cubGVmdCA9IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CisKICAgICBpZiAoKG5l
ZWRzV29yZFNwYWNpbmcgJiYgbGVuID4gMSkgfHwgKGlnbm9yaW5nU3BhY2VzICYmICFmaXJzdFdv
cmQpKQogICAgICAgICBjdXJyTWF4V2lkdGggKz0gd29yZFNwYWNpbmc7CiAKQEAgLTEwMDAsNyAr
MTAxMSw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6c2V0VGV4dChQYXNzUmVmUHRyPFN0cmkKIAogICAg
IHNldFRleHRJbnRlcm5hbCh0ZXh0KTsKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNS
ZWNhbGMoKTsKLSAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAg
bV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsKIH0KIAog
aW50IFJlbmRlclRleHQ6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wpIGNvbnN0CkBA
IC0xMDU1LDcgKzEwNjYsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnBvc2l0aW9uTGluZUJveChJbmxp
bmVCCiAgICAgbV9jb250YWluc1JldmVyc2VkVGV4dCB8PSBzLT5kaXJlY3Rpb24oKSA9PSBSVEw7
CiB9CiAKLXVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93
KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIGlmIChmcm9tID49IHRleHRMZW5ndGgoKSkK
ICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMDYzLDEwICsxMDc0LDEwIEBAIHVuc2lnbmVkIFJlbmRl
clRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20KICAgICBpZiAoZnJvbSArIGxlbiA+IHRleHRMZW5n
dGgoKSkKICAgICAgICAgbGVuID0gdGV4dExlbmd0aCgpIC0gZnJvbTsKIAotICAgIHJldHVybiB3
aWR0aChmcm9tLCBsZW4sIHN0eWxlKGZpcnN0TGluZSktPmZvbnQoKSwgeFBvcywgZmFsbGJhY2tG
b250cyk7CisgICAgcmV0dXJuIHdpZHRoKGZyb20sIGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9u
dCgpLCB4UG9zLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAotdW5zaWduZWQg
UmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250
JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAordW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5z
aWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBj
b25zdAogewogICAgIEFTU0VSVChmcm9tICsgbGVuIDw9IHRleHRMZW5ndGgoKSk7CiAgICAgaWYg
KCFjaGFyYWN0ZXJzKCkpCkBAIC0xMDc2LDE4ICsxMDg3LDE5IEBAIHVuc2lnbmVkIFJlbmRlclRl
eHQ6OndpZHRoKHVuc2lnbmVkIGZyb20KICAgICBpZiAoJmYgPT0gJnN0eWxlKCktPmZvbnQoKSkg
ewogICAgICAgICBpZiAoIXN0eWxlKCktPnByZXNlcnZlTmV3bGluZSgpICYmICFmcm9tICYmIGxl
biA9PSB0ZXh0TGVuZ3RoKCkpIHsKICAgICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90VG9Vc2VG
YWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4
dCo+KHRoaXMpLT5jYWxjUHJlZldpZHRocygwLCAqZmFsbGJhY2tGb250cyk7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICBBU1NFUlQoZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0
aHNEaXJ0eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cykg
eworICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKS0+Y2Fs
Y1ByZWZXaWR0aHMoMCwgKmZhbGxiYWNrRm9udHMsICpnbHlwaE92ZXJmbG93KTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGZhbGxiYWNrRm9udHMtPmlzRW1wdHkoKSAmJiAhZ2x5cGhPdmVyZmxv
dy0+bGVmdCAmJiAhZ2x5cGhPdmVyZmxvdy0+cmlnaHQgJiYgIWdseXBoT3ZlcmZsb3ctPnRvcCAm
JiAhZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9rbm93
blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgPSB0cnVlOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB3ID0gbV9tYXhXaWR0aDsKICAgICAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgICAgIHcgPSBtYXhQcmVmV2lkdGgoKTsKICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFj
a0ZvbnRzKTsKKyAgICAgICAgICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQ
b3MsIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogICAgIH0gZWxzZQotICAgICAgICB3
ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBhbGxv
d1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMpOworICAgICAgICB3ID0gZi53aWR0aChUZXh0
UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyks
IGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogCiAgICAgcmV0dXJuIHc7CiB9CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5oCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6
CiAgICAgdW5zaWduZWQgdGV4dExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC0+bGVuZ3Ro
KCk7IH0gLy8gbm9uIHZpcnR1YWwgaW1wbGVtZW50YXRpb24gb2YgbGVuZ3RoKCkKICAgICB2b2lk
IHBvc2l0aW9uTGluZUJveChJbmxpbmVCb3gqKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lk
dGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiwgaW50IHhQb3MsIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0Owot
ICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBp
bnQgeFBvcywgYm9vbCBmaXJzdExpbmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3
aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmLCBpbnQgeFBvcywg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhP
dmVyZmxvdyogPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lID0gZmFsc2UsIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3Zl
cmZsb3cqID0gMCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgZmly
c3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAKQEAgLTEzMiw3ICsx
MzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJbmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0
Qm94KCk7IC8vIFN1YmNsYXNzZWQgYnkgU1ZHLgogCiBwcml2YXRlOgotICAgIHZvaWQgY2FsY1By
ZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBm
YWxsYmFja0ZvbnRzKTsKKyAgICB2b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxv
dyYpOwogCiAgICAgLy8gTWFrZSBsZW5ndGgoKSBwcml2YXRlIHNvIHRoYXQgY2FsbGVycyB0aGF0
IGhhdmUgYSBSZW5kZXJUZXh0KgogICAgIC8vIHdpbGwgdXNlIHRoZSBtb3JlIGVmZmljaWVudCB0
ZXh0TGVuZ3RoKCkgaW5zdGVhZCwgd2hpbGUKQEAgLTE0NSw3ICsxNDUsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBkZWxldGVUZXh0Qm94ZXMoKTsKICAgICBib29sIGNvbnRhaW5zT25seVdoaXRl
c3BhY2UodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuKSBjb25zdDsKLSAgICBpbnQgd2lkdGhG
cm9tQ2FjaGUoY29uc3QgRm9udCYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3Q7CisgICAgaW50
IHdpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9z
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3Zl
cmZsb3cqKSBjb25zdDsKICAgICBib29sIGlzQWxsQVNDSUkoKSBjb25zdCB7IHJldHVybiBtX2lz
QWxsQVNDSUk7IH0KIAogICAgIGludCBtX21pbldpZHRoOyAvLyBoZXJlIHRvIG1pbmltaXplIHBh
ZGRpbmcgaW4gNjQtYml0LgpAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBvciByZW1vdmVkKS4KICAgICBib29sIG1fY29udGFpbnNSZXZl
cnNlZFRleHQgOiAxOwogICAgIGJvb2wgbV9pc0FsbEFTQ0lJIDogMTsKLSAgICBtdXRhYmxlIGJv
b2wgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA6IDE7CisgICAgbXV0YWJsZSBib29sIG1f
a25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzIDogMTsKIH07CiAKIGlubGlu
ZSBSZW5kZXJUZXh0KiB0b1JlbmRlclRleHQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38783</attachid>
            <date>2009-08-29 19:59:27 -0700</date>
            <delta_ts>2025-10-24 15:13:06 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>glyph-overflow_r8.diff</filename>
            <type>text/plain</type>
            <size>54193</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsMTEgKzMxMiwxMSBAQCBfX1pON1dlYkNvcmUxNFJl
c291cmNlSGFuZGxlMTJyZWxlYXNlUHJvCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjBm
b3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5j
ZWxsZWRFcnJvckV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTlzZXRTaG91bGRCdWZm
ZXJEYXRhRWIKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxF
CiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTZjcmVhdGVGcm9tU3RyaW5nRVJLTlNfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNHJlZ2lzdGVyVVJMU2NoZW1lQXNM
b2NhbEVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjV3aGl0ZUxp
c3RBY2Nlc3NGcm9tT3JpZ2luRVJLUzBfUktOU182U3RyaW5nRVM1X2IKIF9fWk43V2ViQ29yZTE0
U2VjdXJpdHlPcmlnaW4yN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0c0V2CitfX1pON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlMTVBcmNo
aXZlUmVzb3VyY2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2hhcmVkQnVmZmVyRUVF
UktOU180S1VSTEVSS05TXzZTdHJpbmdFU0FfU0FfUktOU18xNlJlc291cmNlUmVzcG9uc2VFCiBf
X1pON1dlYkNvcmUxNUJhY2tGb3J3YXJkTGlzdDEwcmVtb3ZlSXRlbUVQTlNfMTFIaXN0b3J5SXRl
bUUKIF9fWk43V2ViQ29yZTE1QmFja0ZvcndhcmRMaXN0MTBzZXRFbmFibGVkRWIKQEAgLTg3Myw3
ICs4NzMsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c3VnCiBfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTN1cmxFdgogX19aTks3V2ViQ29yZTIwUmVz
b3VyY2VSZXNwb25zZUJhc2U4bWltZVR5cGVFdgogX19aTks3V2ViQ29yZTI2TmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXI2aXNEb25lRXYKLV9fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVS
S05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0
ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUUKK19fWk5LN1dlYkNvcmU0Rm9udDEw
ZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250
RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUVQTlNfMTNHbHlw
aE92ZXJmbG93RQogX19aTks3V2ViQ29yZTRGb250MTFwcmltYXJ5Rm9udEV2CiBfX1pOSzdXZWJD
b3JlNEZvbnQ4ZHJhd1RleHRFUE5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN1RleHRSdW5FUktO
U18xMEZsb2F0UG9pbnRFaWkKIF9fWk5LN1dlYkNvcmU0S1VSTDExaXNMb2NhbEZpbGVFdgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsx
ODMsNyBAQCB2b2lkIEZvbnQ6OmRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCogY29uCiAgICAgcmV0
dXJuIGRyYXdDb21wbGV4VGV4dChjb250ZXh0LCBydW4sIHBvaW50LCBmcm9tLCB0byk7CiB9CiAK
LWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0CitmbG9hdCBGb250OjpmbG9h
dFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgp
KQpAQCAtMTk1LDExICsxOTUsMTEgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0
UnVuJiBydQogICAgICAgICAvLyBJZiB0aGUgY29tcGxleCB0ZXh0IGltcGxlbWVudGF0aW9uIGNh
bm5vdCByZXR1cm4gZmFsbGJhY2sgZm9udHMsIGF2b2lkCiAgICAgICAgIC8vIHJldHVybmluZyB0
aGVtIGZvciBzaW1wbGUgdGV4dCBhcyB3ZWxsLgogICAgICAgICBzdGF0aWMgYm9vbCByZXR1cm5G
YWxsYmFja0ZvbnRzID0gY2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7Ci0g
ICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxi
YWNrRm9udHMgPyBmYWxsYmFja0ZvbnRzIDogMCk7CisgICAgICAgIHJldHVybiBmbG9hdFdpZHRo
Rm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9udHMgPyBmYWxsYmFja0ZvbnRz
IDogMCwgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
fQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGV4dHJh
Q2hhcnNBdmFpbGFibGUsIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNv
bnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNDc4ODEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsMjEgQEAgc3RydWN0IEdseXBoRGF0YTsKIAogY29uc3QgdW5zaWduZWQgZGVmYXVsdFVuaXRz
UGVyRW0gPSAxMDAwOwogCitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgR2x5cGhPdmVyZmxv
dygpCisgICAgICAgIDogbGVmdCgwKQorICAgICAgICAsIHJpZ2h0KDApCisgICAgICAgICwgdG9w
KDApCisgICAgICAgICwgYm90dG9tKDApCisgICAgeworICAgIH0KKworICAgIGludCBsZWZ0Owor
ICAgIGludCByaWdodDsKKyAgICBpbnQgdG9wOworICAgIGludCBib3R0b207Cit9OworCiBjbGFz
cyBGb250IHsKIHB1YmxpYzoKICAgICBGb250KCk7CkBAIC03OCw4ICs5Myw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAotICAg
IGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0
aChydW4sIGZhbGxiYWNrRm9udHMpKTsgfQotICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAp
IGNvbnN0OworICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBo
T3ZlcmZsb3cgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxs
YmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KSk7IH0KKyAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0
IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CiAgICAgZmxvYXQg
ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBp
bnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKIAogICAgIGludCBv
ZmZzZXRGb3JQb3NpdGlvbihjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE0Miw3ICsxNTcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdH
bHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlw
aEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAg
ICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgZmxvYXQg
ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVmZmVyKiwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Cisg
ICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVm
ZmVyKiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
R2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JT
aW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0
bykgY29uc3Q7CiAKQEAgLTE1MCw3ICsxNjUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2
b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0
aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAg
IGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQg
cG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVj
dCBzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBv
aW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzE3LDEwICszMTcsMTggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3ND
b250ZQogICAgIGRyYXdHbHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0
RnJvbSwgbmV4dEdseXBoIC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250
OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVy
KiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykg
Y29uc3QKIHsKICAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cyk7
CiAgICAgaXQuYWR2YW5jZShydW4ubGVuZ3RoKCksIGdseXBoQnVmZmVyKTsKKworICAgIGlmIChn
bHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGds
eXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWl0Lm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0gYXNj
ZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50PihnbHlwaE92
ZXJmbG93LT5ib3R0b20sIGNlaWxmKGl0Lm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0gZGVzY2Vu
dCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IGNlaWxmKGl0LmZpcnN0R2x5cGhP
dmVyZmxvdygpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+cmlnaHQgPSBjZWlsZihpdC5sYXN0
R2x5cGhPdmVyZmxvdygpKTsKKyAgICB9CisKICAgICByZXR1cm4gaXQubV9ydW5XaWR0aFNvRmFy
OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5j
cHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdp
ZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsMTIgQEAgR2x5cGhXaWR0aE1h
cDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdAogICAgICAgICBtX3BhZ2VzLT5zZXQocGFnZU51
bWJlciwgcGFnZSk7CiAgICAgfQogCisgICAgR2x5cGhNZXRyaWNzIHVua25vd25NZXRyaWNzOwor
ICAgIHVua25vd25NZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gY0dseXBoV2lkdGhVbmtub3du
OworCiAgICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBo
IHdpZHRoIHZhbHVlLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRoUGFn
ZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlwaFdp
ZHRoVW5rbm93bik7CisgICAgICAgIHBhZ2UtPnNldE1ldHJpY3NGb3JJbmRleChpLCB1bmtub3du
TWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFnZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWZuZGVmIEdseXBoV2lkdGhNYXBfaAogI2RlZmluZSBHbHlwaFdpZHRoTWFwX2gK
IAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAg
LTM5LDM0ICs0MCw0NCBAQCB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOwogCiBjb25zdCBm
bG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAtMTsKIAorc3RydWN0IEdseXBoTWV0cmljcyB7Cisg
ICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94Owor
fTsKKwogY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6
CiAgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxsZWRQcmltYXJ5UGFnZShmYWxzZSkgeyB9CiAg
ICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3BhZ2VzKSB7IGRlbGV0ZUFsbFZhbHVlcygqbV9w
YWdlcyk7IH0gfQogCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlw
aCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBh
Z2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgIH0KKwogICAgIGZsb2F0IHdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCiAgICAgewotICAgICAgICByZXR1cm4gbG9jYXRlUGFn
ZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7Cisg
ICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5t
ZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwogICAgIH0KIAotICAgIHZv
aWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgdm9pZCBz
ZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmlj
cykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6
ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAgICAgbG9jYXRlUGFnZShn
bHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBt
ZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsK
ICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVy
cyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVd
OworICAgICAgICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3NpemVdOwogCi0gICAgICAgIGZsb2F0
IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2dseXBo
ICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBm
bG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBn
bHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBoICUgc2l6ZV07IH0KKyAgICAgICAg
dm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYg
bWV0cmljcykKICAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlwaCAl
IHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJpY3NGb3JJbmRleChnbHlwaCAlIHNp
emUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJbmRleCh1
bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAgIHZvaWQgc2V0TWV0cmljc0Zvcklu
ZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRoOworICAgICAgICAgICAgbV9t
ZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0KICAgICB9OwogICAgIApAQCAtODQs
NiArOTUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBh
Z2UqPiA+IG1fcGFnZXM7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJ
KHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw5ICsxNTUsMTEgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpF
Uk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGds
eXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVy
b1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBt
X3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckds
eXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh6
ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAgR2x5cGhN
ZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0g
MDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlwaCh6ZXJv
V2lkdGhTcGFjZUdseXBoLCBtZXRyaWNzKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBM
T0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0aGUgc2Ft
ZSBnbHlwaC4gR2x5cGggd2lkdGggbm90IG92ZXJyaWRkZW4uIik7CiAgICAgfQogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA0Nzg4
MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsNyArNTUsNiBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBG
b250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERhdGE7
Ci1jbGFzcyBXaWR0aE1hcDsKIAogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQaXRj
aCwgVmFyaWFibGVQaXRjaCB9OwogCkBAIC03OCw4ICs3Nyw5IEBAIHB1YmxpYzoKICAgICBmbG9h
dCB4SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWduZWQgdW5p
dHNQZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxvYXQgd2lk
dGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZvckdseXBo
KEdseXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25z
dCB7IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOyB9Cisg
ICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCkgY29uc3Q7CisgICAgR2x5cGhN
ZXRyaWNzIHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEdseXBoKSBjb25zdDsKIAogICAgIGZsb2F0
IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlV2lkdGg7IH0KICAgICBmbG9hdCBh
ZGp1c3RlZFNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkU3BhY2VXaWR0aDsg
fQpAQCAtMTYyLDcgKzE2Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZv
aWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lkIHBsYXRmb3JtQ29tbW9uRGVzdHJveSgpOwotICAg
IGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OworICAgIEdseXBoTWV0
cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OwogI2VuZGlmCiAKICAg
ICBpbnQgbV9hc2NlbnQ7CkBAIC0yMzEsMTYgKzIzMSwxNiBAQCBwcml2YXRlOgogICAgIAogICAg
IAogI2lmICFQTEFURk9STShRVCkKLUFMV0FZU19JTkxJTkUgZmxvYXQgU2ltcGxlRm9udERhdGE6
OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitBTFdBWVNfSU5MSU5FIEdseXBoTWV0
cmljcyBTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAog
ewotICAgIGZsb2F0IHdpZHRoID0gbV9nbHlwaFRvV2lkdGhNYXAud2lkdGhGb3JHbHlwaChnbHlw
aCk7Ci0gICAgaWYgKHdpZHRoICE9IGNHbHlwaFdpZHRoVW5rbm93bikKLSAgICAgICAgcmV0dXJu
IHdpZHRoOwotICAgIAotICAgIHdpZHRoID0gcGxhdGZvcm1XaWR0aEZvckdseXBoKGdseXBoKTsK
LSAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7Ci0g
ICAgCi0gICAgcmV0dXJuIHdpZHRoOworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzID0gbV9nbHlw
aFRvV2lkdGhNYXAubWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICBpZiAobWV0cmljcy5ob3Jp
em9udGFsQWR2YW5jZSAhPSBjR2x5cGhXaWR0aFVua25vd24pCisgICAgICAgIHJldHVybiBtZXRy
aWNzOworCisgICAgbWV0cmljcyA9IHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAg
ICBtX2dseXBoVG9XaWR0aE1hcC5zZXRNZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3MpOwor
CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBV
bmljb2RlOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Nyw2ICs0OCwxMCBAQCBXaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQq
CiAgICAgLCBtX3J1bldpZHRoU29GYXIoMCkKICAgICAsIG1fZmluYWxSb3VuZGluZ1dpZHRoKDAp
CiAgICAgLCBtX2ZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cykKKyAgICAsIG1fbWF4R2x5cGhC
b3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fbWluR2x5
cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fZmly
c3RHbHlwaE92ZXJmbG93KDApCisgICAgLCBtX2xhc3RHbHlwaE92ZXJmbG93KDApCiB7CiAgICAg
Ly8gSWYgdGhlIHBhZGRpbmcgaXMgbm9uLXplcm8sIGNvdW50IHRoZSBudW1iZXIgb2Ygc3BhY2Vz
IGluIHRoZSBydW4KICAgICAvLyBhbmQgZGl2aWRlIHRoYXQgYnkgdGhlIHBhZGRpbmcgZm9yIHBl
ciBzcGFjZSBhZGRpdGlvbi4KQEAgLTEyMCwxMiArMTI1LDE0IEBAIHZvaWQgV2lkdGhJdGVyYXRv
cjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgQVNTRVJUKGZvbnREYXRhKTsKIAogICAg
ICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGEgZ2x5cGggYW5kIGZvbnQgZGF0YSwgZ2V0IGl0cyB3
aWR0aC4KKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljczsKICAgICAgICAgZmxvYXQg
d2lkdGg7CiAgICAgICAgIGlmIChjID09ICdcdCcgJiYgbV9ydW4uYWxsb3dUYWJzKCkpIHsKICAg
ICAgICAgICAgIGZsb2F0IHRhYldpZHRoID0gbV9mb250LT50YWJXaWR0aCgpOwogICAgICAgICAg
ICAgd2lkdGggPSB0YWJXaWR0aCAtIGZtb2RmKG1fcnVuLnhQb3MoKSArIHJ1bldpZHRoU29GYXIs
IHRhYldpZHRoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdpZHRoID0gZm9udERh
dGEtPndpZHRoRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICAgICAgZ2x5cGhNZXRyaWNzID0gZm9u
dERhdGEtPm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICB3aWR0aCA9IGdseXBo
TWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZTsKICAgICAgICAgICAgIC8vIFdlIHNwZWNpYWwgY2Fz
ZSBzcGFjZXMgaW4gdHdvIHdheXMgd2hlbiBhcHBseWluZyB3b3JkIHJvdW5kaW5nLgogICAgICAg
ICAgICAgLy8gRmlyc3QsIHdlIHJvdW5kIHNwYWNlcyB0byBhbiBhZGp1c3RlZCB3aWR0aCBpbiBh
bGwgZm9udHMuCiAgICAgICAgICAgICAvLyBTZWNvbmQsIGluIGZpeGVkLXBpdGNoIGZvbnRzIHdl
IGVuc3VyZSB0aGF0IGFsbCBjaGFyYWN0ZXJzIHRoYXQKQEAgLTE3NSw2ICsxODIsOSBAQCB2b2lk
IFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAoIWN1cnJlbnRDaGFyYWN0ZXIpCisgICAgICAgICAgICBtX2Zp
cnN0R2x5cGhPdmVyZmxvdyA9IG1heDxmbG9hdD4oMCwgLWdseXBoTWV0cmljcy5ib3VuZGluZ0Jv
eC54KCkpOworCiAgICAgICAgIC8vIEFkdmFuY2UgcGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3Qg
ZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVu
dENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpAQCAtMjA1LDYgKzIxNSwxMCBAQCB2b2lkIFdp
ZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICBnbHlwaEJ1ZmZl
ci0+YWRkKGdseXBoLCBmb250RGF0YSwgKHJ0bCA/IG9sZFdpZHRoICsgbGFzdFJvdW5kaW5nV2lk
dGggOiB3aWR0aCkpOwogCiAgICAgICAgIGxhc3RSb3VuZGluZ1dpZHRoID0gd2lkdGggLSBvbGRX
aWR0aDsKKworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhC
b3VuZGluZ0JveFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAg
IG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WSwgZ2x5
cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAgIG1fbGFzdEdseXBoT3ZlcmZsb3cg
PSBtYXg8ZmxvYXQ+KDAsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgpIC0gd2lkdGgp
OwogICAgIH0KIAogICAgIG1fY3VycmVudENoYXJhY3RlciA9IGN1cnJlbnRDaGFyYWN0ZXI7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkocmV2aXNpb24g
NDc4ODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogICAg
IHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2YW5j
ZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwogCisgICAgZmxv
YXQgbWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRp
bmdCb3hZOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVy
biBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgZmlyc3RHbHlwaE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdEdseXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBsYXN0
R2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7IH0KKwog
ICAgIGNvbnN0IEZvbnQqIG1fZm9udDsKIAogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwpAQCAt
NTEsNyArNTYsMTIgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogCiBwcml2YXRlOgogICAgIFVD
aGFyMzIgbm9ybWFsaXplVm9pY2luZ01hcmtzKGludCBjdXJyZW50Q2hhcmFjdGVyKTsKKwogICAg
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOworICAgIGZs
b2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5n
Qm94WTsKKyAgICBmbG9hdCBtX2ZpcnN0R2x5cGhPdmVyZmxvdzsKKyAgICBmbG9hdCBtX2xhc3RH
bHlwaE92ZXJmbG93OwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvQ29yZVRleHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db3JlVGV4dENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvcmVUZXh0Q29udHJvbGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExMyw2ICsxMTMsMTAgQEAgQ29yZVRleHRDb250cm9sbGVyOjpDb3Jl
VGV4dENvbnRyb2xsZXIoYwogICAgICwgbV9nbHlwaEluQ3VycmVudFJ1bigwKQogICAgICwgbV9m
aW5hbFJvdW5kaW5nV2lkdGgoMCkKICAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRz
KQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1h
eCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46
Om1pbigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9h
dD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxm
bG9hdD46Om1pbigpKQogICAgICwgbV9sYXN0Um91bmRpbmdHbHlwaCgwKQogewogICAgIG1fcGFk
ZGluZyA9IG1fcnVuLnBhZGRpbmcoKTsKQEAgLTQzMyw3ICs0MzcsNyBAQCB2b2lkIENvcmVUZXh0
Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kCiAgICAgICAgIENHRmxvYXQgcm91bmRlZFNwYWNl
V2lkdGggPSByb3VuZENHRmxvYXQoZm9udERhdGEtPnNwYWNlV2lkdGgoKSk7CiAgICAgICAgIGJv
b2wgcm91bmRzQWR2YW5jZXMgPSAhbV9mb250LmlzUHJpbnRlckZvbnQoKSAmJiBmb250RGF0YS0+
cGxhdGZvcm1EYXRhKCkucm91bmRzR2x5cGhBZHZhbmNlcygpOwogICAgICAgICBib29sIGhhc0V4
dHJhU3BhY2luZyA9IChtX2ZvbnQubGV0dGVyU3BhY2luZygpIHx8IG1fZm9udC53b3JkU3BhY2lu
ZygpIHx8IG1fcGFkZGluZykgJiYgIW1fcnVuLnNwYWNpbmdEaXNhYmxlZCgpOwotCisgICAgICAg
IENHUG9pbnQgZ2x5cGhPcmlnaW4gPSBDR1BvaW50WmVybzsKIAogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZ2x5cGhDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBDRkluZGV4IGNo
YXJhY3RlckluZGV4ID0gY29yZVRleHRSdW4uaW5kZXhBdChpKTsKQEAgLTUyOCw2ICs1MzIsMTUg
QEAgdm9pZCBDb3JlVGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBoc0FuZAogICAgICAgICAgICAg
YWR2YW5jZS5oZWlnaHQgKj0gLTE7CiAgICAgICAgICAgICBtX2FkanVzdGVkQWR2YW5jZXMuYXBw
ZW5kKGFkdmFuY2UpOwogICAgICAgICAgICAgbV9hZGp1c3RlZEdseXBocy5hcHBlbmQoZ2x5cGgp
OworCisgICAgICAgICAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRyaWNzID0gZm9udERhdGEtPm1l
dHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdC
b3gubW92ZShnbHlwaE9yaWdpbi54LCBnbHlwaE9yaWdpbi55KTsKKyAgICAgICAgICAgIG1fbWlu
R2x5cGhCb3VuZGluZ0JveFggPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WCwgZ2x5cGhNZXRy
aWNzLmJvdW5kaW5nQm94LngoKSk7CisgICAgICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hY
ID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5y
aWdodCgpKTsKKyAgICAgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5H
bHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAg
ICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFks
IGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAgICAgICBnbHlwaE9y
aWdpbi54ICs9IGFkdmFuY2Uud2lkdGg7CisgICAgICAgICAgICBnbHlwaE9yaWdpbi55ICs9IGFk
dmFuY2UuaGVpZ2h0OwogICAgICAgICB9CiAgICAgfQogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvQ29yZVRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29yZVRleHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDQ3
ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29yZVRleHRDb250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDExIEBAIHB1YmxpYzoKICAgICAvLyBFeHRy
YSB3aWR0aCB0byB0aGUgbGVmdCBvZiB0aGUgbGVmdG1vc3QgZ2x5cGguCiAgICAgZmxvYXQgZmlu
YWxSb3VuZGluZ1dpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9maW5hbFJvdW5kaW5nV2lkdGg7IH0K
IAorICAgIGZsb2F0IG1pbkdseXBoQm91bmRpbmdCb3hYKCkgY29uc3QgeyByZXR1cm4gbV9taW5H
bHlwaEJvdW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1heEdseXBoQm91bmRpbmdCb3hYKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1pbkdseXBo
Qm91bmRpbmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9taW5HbHlwaEJvdW5kaW5nQm94WTsgfQor
ICAgIGZsb2F0IG1heEdseXBoQm91bmRpbmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlw
aEJvdW5kaW5nQm94WTsgfQorCiBwcml2YXRlOgogICAgIGNsYXNzIENvcmVUZXh0UnVuIHsKICAg
ICBwdWJsaWM6CkBAIC0xMDcsNiArMTEyLDEwIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9wYWRQ
ZXJTcGFjZTsKIAogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFj
a0ZvbnRzOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9t
YXhHbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOwor
ICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CiAKICAgICB1bnNpZ25lZCBtX2xhc3RS
b3VuZGluZ0dseXBoOwogfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRNYWNDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udE1hY0NvcmVUZXh0LmNwcAkocmV2aXNpb24gNDc4ODEpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjQ29yZVRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29u
c3QgVGV4dFJ1biYgcnVuLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGludCBoLApAQCAtODYsOSAr
ODgsMTUgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRy
YXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0K
IAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAor
ZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIENvcmVUZXh0Q29udHJvbGxlciBjb250
cm9sbGVyKHRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250cyk7CisgICAgaWYgKGdseXBoT3Zl
cmZsb3cpIHsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gbWF4PGludD4oZ2x5cGhPdmVy
Zmxvdy0+dG9wLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WSgpKSAtIGFz
Y2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gbWF4PGludD4oZ2x5cGhP
dmVyZmxvdy0+Ym90dG9tLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBoQm91bmRpbmdCb3hZKCkp
IC0gZGVzY2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IG1heDxpbnQ+KDAs
IGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hYKCkpKTsKKyAgICAgICAgZ2x5
cGhPdmVyZmxvdy0+cmlnaHQgPSBtYXg8aW50PigwLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBo
Qm91bmRpbmdCb3hYKCkgLSBjb250cm9sbGVyLnRvdGFsV2lkdGgoKSkpOworICAgIH0KICAgICBy
ZXR1cm4gY29udHJvbGxlci50b3RhbFdpZHRoKCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA0
Nzg4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTEsMTcgKzM5MSwyNSBAQCB2b2lkIFNpbXBsZUZvbnRE
YXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgICAgIFtuYW1lIGNhc2VJbnNlbnNpdGl2ZUNv
bXBhcmU6QCJNb25vdHlwZUNvcnNpdmEiXSAhPSBOU09yZGVyZWRTYW1lOwogfQogCi1mbG9hdCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAor
R2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlw
aCBnbHlwaCkgY29uc3QKIHsKLSAgICBOU0ZvbnQqIGZvbnQgPSBtX3BsYXRmb3JtRGF0YS5mb250
KCk7Ci0gICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURhdGEubV9zaXplOworICAgIE5T
Rm9udCogZm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKKyAgICBmbG9hdCBwb2ludFNpemUg
PSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZm
aW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUg
YWR2YW5jZTsKLSAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKG1fcGxhdGZv
cm1EYXRhLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKKyAgICBpZiAo
IXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBm
b250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUg
dG8gY2FjaGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9p
bnRTaXplKTsKICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7CiAgICAgfQotICAgIHJldHVybiBh
ZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBt
ZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsg
bV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICBDR0Zv
bnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm91
bmRpbmdCb3gpOworICAgIENHRmxvYXQgc2NhbGUgPSBwb2ludFNpemUgLyB1bml0c1BlckVtKCk7
CisgICAgbWV0cmljcy5ib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJv
dW5kaW5nQm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7Cisg
ICAgaWYgKG1fc3ludGhldGljQm9sZE9mZnNldCkKKyAgICAgICAgbWV0cmljcy5ib3VuZGluZ0Jv
eC5zZXRXaWR0aChtZXRyaWNzLmJvdW5kaW5nQm94LndpZHRoKCkgKyBtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQpOworICAgIHJldHVybiBtZXRyaWNzOwogfQogCiAjaWYgVVNFKEFUU1VJKQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDQ3ODgx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJVbmlzY3JpYmVDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIEZvbnQ6OmNhblJldHVybkZhbGxiYWNrRm9udHNG
b3JDb21wbGV4VGV4dCgpCkBAIC04OSwxMCArOTEsMTYgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxl
eFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1
ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNv
bXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBs
ZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewog
ICAgIFVuaXNjcmliZUNvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9u
dHMpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZShydW4ubGVuZ3RoKCkpOworICAgIGlmIChnbHlw
aE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGdseXBo
T3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFkoKSkg
LSBhc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IG1heDxpbnQ+KGds
eXBoT3ZlcmZsb3ctPmJvdHRvbSwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94
WSgpKSAtIGRlc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQgPSBtYXg8aW50
PigwLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WCgpKSk7CisgICAgICAg
IGdseXBoT3ZlcmZsb3ctPnJpZ2h0ID0gbWF4PGludD4oMCwgY2VpbGYoY29udHJvbGxlci5tYXhH
bHlwaEJvdW5kaW5nQm94WCgpIC0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkpKTsKKyAgICB9
CiAgICAgcmV0dXJuIGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogfQogCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2lu
LmNwcAkocmV2aXNpb24gNDc4ODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9T
aW1wbGVGb250RGF0YUNHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDEwICsxMjYsMTAg
QEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbgogICAgIH0KIH0KIAot
ZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkg
Y29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5
cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLnVzZUdESSgp
KQotICAgICAgIHJldHVybiB3aWR0aEZvckdESUdseXBoKGdseXBoKTsKKyAgICAgICByZXR1cm4g
bWV0cmljc0ZvckdESUdseXBoKGdseXBoKTsKIAogICAgIENHRm9udFJlZiBmb250ID0gbV9wbGF0
Zm9ybURhdGEuY2dGb250KCk7CiAgICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURhdGEu
c2l6ZSgpOwpAQCAtMTM5LDggKzEzOSwxNSBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1XaWR0aEZvckdsCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHJlYWwgc3VwcG9ydCBmb3Ig
cHJpbnRlciBmb250cy4KICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZTsKICAgICB3a0dl
dEdseXBoQWR2YW5jZXMoZm9udCwgbSwgbV9pc1N5c3RlbUZvbnQsIGlzUHJpbnRlckZvbnQsIGds
eXBoLCBhZHZhbmNlKTsKLQotICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNC
b2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpv
bnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAg
IENHUmVjdCBib3VuZGluZ0JveDsKKyAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhmb250LCAmZ2x5
cGgsIDEsICZib3VuZGluZ0JveCk7CisgICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6ZSAvIHVu
aXRzUGVyRW0oKTsKKyAgICBtZXRyaWNzLmJvdW5kaW5nQm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVU
cmFuc2Zvcm0oYm91bmRpbmdCb3gsIENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHNjYWxlLCAt
c2NhbGUpKTsKKyAgICBpZiAobV9zeW50aGV0aWNCb2xkT2Zmc2V0KQorICAgICAgICBtZXRyaWNz
LmJvdW5kaW5nQm94LnNldFdpZHRoKG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgoKSArIG1fc3lu
dGhldGljQm9sZE9mZnNldCk7CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKIH0KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5j
cHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2lt
cGxlRm9udERhdGFXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzksMTYgKzE3OSwyNSBAQCB2
b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgUmVsZWFzZURDKDAsIGRj
KTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OndpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5
cGgpIGNvbnN0CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHRElHbHlw
aChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAgICBIREMgaGRjID0gR2V0REMoMCk7CiAgICAgU2V0
R3JhcGhpY3NNb2RlKGhkYywgR01fQURWQU5DRUQpOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNl
bGVjdE9iamVjdChoZGMsIG1fcGxhdGZvcm1EYXRhLmhmb250KCkpOwotICAgIGludCB3aWR0aDsK
LSAgICBHZXRDaGFyV2lkdGhJKGhkYywgZ2x5cGgsIDEsIDAsICZ3aWR0aCk7CisKKyAgICBHTFlQ
SE1FVFJJQ1MgZ2RpTWV0cmljczsKKyAgICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsg
MCwgMSwgIDAsIDAsICAwLCAwLCAgMCwgMSB9OworICAgIEdldEdseXBoT3V0bGluZShoZGMsIGds
eXBoLCBHR09fTUVUUklDUyB8IEdHT19HTFlQSF9JTkRFWCwgJmdkaU1ldHJpY3MsIDAsIDAsICZp
ZGVudGl0eSk7CisKICAgICBTZWxlY3RPYmplY3QoaGRjLCBvbGRGb250KTsKICAgICBSZWxlYXNl
REMoMCwgaGRjKTsKLSAgICByZXR1cm4gd2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisK
KyAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRyaWNzOworICAgIGdseXBoTWV0cmljcy5ob3Jpem9u
dGFsQWR2YW5jZSA9IGdkaU1ldHJpY3MuZ21DZWxsSW5jWCArIG1fc3ludGhldGljQm9sZE9mZnNl
dDsKKyAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoZ2RpTWV0cmljcy5n
bXB0R2x5cGhPcmlnaW4ueCwgLWdkaU1ldHJpY3MuZ21wdEdseXBoT3JpZ2luLnksCisgICAgICAg
IGdkaU1ldHJpY3MuZ21CbGFja0JveFggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQsIGdkaU1ldHJp
Y3MuZ21CbGFja0JveFkpOworCisgICAgcmV0dXJuIGdseXBoTWV0cmljczsKIH0KIAogU0NSSVBU
X0ZPTlRQUk9QRVJUSUVTKiBTaW1wbGVGb250RGF0YTo6c2NyaXB0Rm9udFByb3BlcnRpZXMoKSBj
b25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5p
c2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogLy8gRklYTUU6IFJlYXJjaGl0ZWN0IHRoaXMgdG8gYmUgbW9yZSBsaWtlIFdpZHRo
SXRlcmF0b3IgaW4gRm9udC5jcHAuICBIYXZlIGFuIGFkdmFuY2UoKSBtZXRob2QKQEAgLTM5LDE2
ICs0MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyB0YWtlIHRoZSBHbHlwaEJ1ZmZlciBh
cyBhbiBhcmcgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHBvcHVsYXRlIHRoZSBnbHlwaCBidWZm
ZXIgd2hlbgogLy8gbWVhc3VyaW5nLgogVW5pc2NyaWJlQ29udHJvbGxlcjo6VW5pc2NyaWJlQ29u
dHJvbGxlcihjb25zdCBGb250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykKLTogbV9mb250KCpmb250KQotLCBt
X3J1bihydW4pCi0sIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQotLCBtX2VuZChydW4u
bGVuZ3RoKCkpCi0sIG1fY3VycmVudENoYXJhY3RlcigwKQotLCBtX3J1bldpZHRoU29GYXIoMCkK
LSwgbV9jb21wdXRpbmdPZmZzZXRQb3NpdGlvbihmYWxzZSkKLSwgbV9pbmNsdWRlUGFydGlhbEds
eXBocyhmYWxzZSkKLSwgbV9vZmZzZXRYKDApCi0sIG1fb2Zmc2V0UG9zaXRpb24oMCkKKyAgICA6
IG1fZm9udCgqZm9udCkKKyAgICAsIG1fcnVuKHJ1bikKKyAgICAsIG1fZmFsbGJhY2tGb250cyhm
YWxsYmFja0ZvbnRzKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0
czxmbG9hdD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xp
bWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmlj
X2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1l
cmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQorICAg
ICwgbV9jdXJyZW50Q2hhcmFjdGVyKDApCisgICAgLCBtX3J1bldpZHRoU29GYXIoMCkKKyAgICAs
IG1fY29tcHV0aW5nT2Zmc2V0UG9zaXRpb24oZmFsc2UpCisgICAgLCBtX2luY2x1ZGVQYXJ0aWFs
R2x5cGhzKGZhbHNlKQorICAgICwgbV9vZmZzZXRYKDApCisgICAgLCBtX29mZnNldFBvc2l0aW9u
KDApCiB7CiAgICAgbV9wYWRkaW5nID0gbV9ydW4ucGFkZGluZygpOwogICAgIGlmICghbV9wYWRk
aW5nKQpAQCAtMzc0LDYgKzM4MCwxNCBAQCBib29sIFVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBl
QW5kUGxhY2VJCiAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwg
YWR2YW5jZSwgJnNpemUpOwogICAgICAgICB9CiAKKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBo
TWV0cmljcyA9IGZvbnREYXRhLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICBnbHlw
aE1ldHJpY3MuYm91bmRpbmdCb3gubW92ZShtX2dseXBoT3JpZ2luLngoKSwgbV9nbHlwaE9yaWdp
bi55KCkpOworICAgICAgICBtX21pbkdseXBoQm91bmRpbmdCb3hYID0gbWluKG1fbWluR2x5cGhC
b3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC54KCkpOworICAgICAgICBtX21h
eEdseXBoQm91bmRpbmdCb3hYID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0
cmljcy5ib3VuZGluZ0JveC5yaWdodCgpKTsKKyAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94
WSA9IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gu
eSgpKTsKKyAgICAgICAgbV9tYXhHbHlwaEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91
bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICBt
X2dseXBoT3JpZ2luLm1vdmUoYWR2YW5jZSArIG9mZnNldFgsIC1vZmZzZXRZKTsKKwogICAgICAg
ICAvLyBNdXRhdGUgdGhlIGdseXBoIGFycmF5IHRvIGNvbnRhaW4gb3VyIGFsdGVyZWQgYWR2YW5j
ZXMuCiAgICAgICAgIGlmIChtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKQogICAgICAgICAgICAg
YWR2YW5jZXNba10gPSBhZHZhbmNlOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuaAkocmV2aXNpb24gNDc4ODEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ5LDYgKzQ5LDExIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSB3
aWR0aCBvZiBldmVyeXRoaW5nIHdlJ3ZlIGNvbnN1bWVkIHNvIGZhci4KICAgICBmbG9hdCBydW5X
aWR0aFNvRmFyKCkgY29uc3QgeyByZXR1cm4gbV9ydW5XaWR0aFNvRmFyOyB9CiAKKyAgICBmbG9h
dCBtaW5HbHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGlu
Z0JveFg7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJu
IG1fbWF4R2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94
WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBt
YXhHbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0Jv
eFk7IH0KKwogcHJpdmF0ZTogICAgCiAgICAgdm9pZCByZXNldENvbnRyb2xBbmRTdGF0ZSgpOwog
CkBAIC02MSw2ICs2NiwxMSBAQCBwcml2YXRlOiAgICAKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7
CiAgICAgY29uc3QgVGV4dFJ1biYgbV9ydW47CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBtX2ZhbGxiYWNrRm9udHM7CisgICAgRmxvYXRQb2ludCBtX2dseXBoT3JpZ2luOwor
ICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0
IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CiAKICAgICBTQ1JJUFRfQ09OVFJPTCBtX2NvbnRyb2w7
CiAgICAgU0NSSVBUX1NUQVRFIG1fc3RhdGU7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAkocmV2aXNpb24gNDc4ODEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQgSW5saW5lRmxv
d0JveDo6cGxhY2VCb3hlc0hvcml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0dGVyU3BhY2lu
ZyA9IG1pbigwLCAoaW50KXJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5sZXR0ZXJTcGFj
aW5nKCkpOwogICAgICAgICAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4UG9zICsgdGV4
dC0+d2lkdGgoKSAtIGxldHRlclNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cpOwogCi0gICAg
ICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAg
ICAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFj
aW5nOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19j
YXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAg
ICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxv
dyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCByaWdodEdseXBo
T3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5cGhPdmVyZmxv
dyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGludCBjaGlsZE92ZXJmbG93TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAgICAgICAgICAg
aW50IGNoaWxkT3ZlcmZsb3dSaWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAgLTQxMiwzNSAr
NDE0LDM1IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKIAogICAg
ICAgICBpbnQgbGluZUhlaWdodDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAgICAgICBWZWN0
b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZlY3Rvcjxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAoY3Vyci0+aXNJ
bmxpbmVUZXh0Qm94KCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4o
Y3VyciktPnRha2VGYWxsYmFja0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAgICB1c2VkRm9u
dHMgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNrRm9udHMoKTsK
IAotICAgICAgICBpZiAoIXVzZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZWRG
b250cy5hcHBlbmQoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCku
cHJpbWFyeUZvbnQoKSk7CisgICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAgICAgICAgIHVz
ZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9u
dCgpLnByaW1hcnlGb250KCkpOwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExpbmVIZWlnaHQg
PSBjdXJyLT5yZW5kZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdodCgpOwogICAg
ICAgICAgICAgaWYgKHBhcmVudExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAgICAgICAgICAg
ICAgICAgaW50IGJhc2VsaW5lVG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAgIGJhc2VsaW5l
ID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5z
aXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNl
ZEZvbnRzW2ldLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRG
b250c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0g
bWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOwotICAg
ICAgICAgICAgICAgICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20s
IHVzZWRGb250c1tpXS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1
c2VkRm9udHNbaV0tPmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSktPmxpbmVTcGFj
aW5nKCkgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRl
c2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGlu
ZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwgdXNlZEZv
bnRzLT5hdChpKS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0g
dXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBiYXNlbGluZVRv
Qm90dG9tOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzUGVyY2Vu
dCgpKSB7CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVIZWlnaHQuY2Fs
Y01pblZhbHVlKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkpOwogICAgICAg
ICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQg
aGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2Vk
Rm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9
IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAg
ICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQg
LSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQo
KSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFs
ZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gcGFy
ZW50TGluZUhlaWdodC52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAg
ICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsr
aSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAt
IHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwot
ICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcg
KyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAg
aW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQo
KSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAg
ICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkp
LT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
IGVsc2UgewpAQCAtNTY1LDEwICs1NjcsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRl
VmVydGljYWxPdmVyZgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBp
bnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5zdHlsZSgpLT50
ZXh0U3Ryb2tlV2lkdGgoKSAvIDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaW50
IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgYm90
dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgCisKKyAgICAg
ICAgICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVU
ZXh0Qm94Kj4oY3VyciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAgaW50IHRvcEds
eXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3Zl
cmZsb3ctPnRvcCA6IDApOworICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBz
dHJva2VPdmVyZmxvdyArIChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDog
MCk7CisKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhPdmVyZmxv
dzsKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5cGhPdmVy
ZmxvdzsKICAgICAgICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0eWxlKCkt
PnRleHRTaGFkb3coKTsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgogCisj
aW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05OTQsMzAgKzk5NSw1MyBAQCBi
b29sIElubGluZVRleHRCb3g6OmNvbnRhaW5zQ2FyZXRPZmZzZXQoCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxJbmxpbmVUZXh0Qm94KiwgVmVjdG9yPGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4gPiBGYWxsYmFja0ZvbnRzTWFwOwotc3RhdGljIEZhbGxiYWNrRm9udHNNYXAq
IGdGYWxsYmFja0ZvbnRzTWFwOwotCiB2b2lkIElubGluZVRleHRCb3g6OnNldEZhbGxiYWNrRm9u
dHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQog
ewotICAgIGlmICghZ0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIGdGYWxsYmFja0ZvbnRzTWFw
ID0gbmV3IEZhbGxiYWNrRm9udHNNYXA7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFw
ID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOwogCi0gICAgRmFsbGJhY2tG
b250c01hcDo6aXRlcmF0b3IgaXQgPSBnRmFsbGJhY2tGb250c01hcC0+c2V0KHRoaXMsIFZlY3Rv
cjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCkpLmZpcnN0OwotICAgIEFTU0VSVChpdC0+c2Vjb25k
LmlzRW1wdHkoKSk7Ci0gICAgY29weVRvVmVjdG9yKGZhbGxiYWNrRm9udHMsIGl0LT5zZWNvbmQp
OworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IHNf
Z2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmFkZCh0aGlzLCBtYWtlX3BhaXIoVmVj
dG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4oKSwgR2x5cGhPdmVyZmxvdygpKSkuZmlyc3Q7Cisg
ICAgQVNTRVJUKGl0LT5zZWNvbmQuZmlyc3QuaXNFbXB0eSgpKTsKKyAgICBjb3B5VG9WZWN0b3Io
ZmFsbGJhY2tGb250cywgaXQtPnNlY29uZC5maXJzdCk7CiB9CiAKLXZvaWQgSW5saW5lVGV4dEJv
eDo6dGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxi
YWNrRm9udHMpCitWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogSW5saW5lVGV4dEJveDo6
ZmFsbGJhY2tGb250cygpIGNvbnN0CiB7Ci0gICAgaWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAg
ICAgICAgcmV0dXJuOworICAgIGlmICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01h
cCkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBp
dCA9IGdGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOwotICAgIGlmIChpdCA9PSBnRmFsbGJh
Y2tGb250c01hcC0+ZW5kKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFj
a0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4g
Jml0LT5zZWNvbmQuZmlyc3Q7Cit9CisKK0lubGluZVRleHRCb3g6OkdseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwKiBJbmxpbmVUZXh0Qm94OjpzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFj
a0ZvbnRzTWFwID0gMDsKKwordm9pZCBJbmxpbmVUZXh0Qm94OjpzZXRHbHlwaE92ZXJmbG93KGNv
bnN0IEdseXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZsb3cpCit7CisgICAgaWYgKCFzX2dseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworCisg
ICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19nbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMsIG1ha2VfcGFpcihWZWN0b3I8
Y29uc3QgU2ltcGxlRm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93KCkpKS5maXJzdDsKKyAgICBp
dC0+c2Vjb25kLnNlY29uZCA9IGdseXBoT3ZlcmZsb3c7CisjaWYgMAorICAgIHByaW50ZigiR2x5
cGggb3ZlcmZsb3c6ICVkICVkICVkICVkICVzICVkIFwiJXNcIlxuIiwgZ2x5cGhPdmVyZmxvdy50
b3AsIGdseXBoT3ZlcmZsb3cuYm90dG9tLCBnbHlwaE92ZXJmbG93LmxlZnQsIGdseXBoT3ZlcmZs
b3cucmlnaHQsCisgICAgICAgIHJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnQoKS5mYW1pbHkoKS5m
YW1pbHkoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZW5kZXJlcigpLT5zdHlsZSgpLT5mb250
KCkucGl4ZWxTaXplKCksCisgICAgICAgIFN0cmluZyh0ZXh0UmVuZGVyZXIoKS0+Y2hhcmFjdGVy
cygpICsgbV9zdGFydCwgbV9sZW4pLnV0ZjgoKS5kYXRhKCkpOworI2VuZGlmCit9CisKK0dseXBo
T3ZlcmZsb3cqIElubGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3coKSBjb25zdAoreworICAgIGlm
ICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19n
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZmluZCh0aGlzKTsKKyAgICBpZiAoaXQg
PT0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCisgICAgICAgIHJl
dHVybiAwOwogCi0gICAgZmFsbGJhY2tGb250cy5zd2FwKGl0LT5zZWNvbmQpOwotICAgIGdGYWxs
YmFja0ZvbnRzTWFwLT5yZW1vdmUoaXQpOworICAgIHJldHVybiAmaXQtPnNlY29uZC5zZWNvbmQ7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmgJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBv
ZmZzZXRSdW4oaW50IGQpIHsgbV9zdGFydCArPSBkOyB9CiAKICAgICB2b2lkIHNldEZhbGxiYWNr
Rm9udHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7Ci0gICAgdm9pZCB0
YWtlRmFsbGJhY2tGb250cyhWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYpOworICAgIFZl
Y3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKCkgY29uc3Q7CisKKyAg
ICB2b2lkIHNldEdseXBoT3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYpOworICAgIEdseXBo
T3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3coKSBjb25zdDsKKworICAgIHN0YXRpYyB2b2lkIGNsZWFy
R2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCgpCisgICAgeworICAgICAgICBpZiAoc19n
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgICAgIHNfZ2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmNsZWFyKCk7CisgICAgfQogCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgaW50IHNlbGVjdGlvblRvcCgpOwpAQCAtMTIwLDYgKzEyOSw5IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgc2hvcnQgbV90cnVuY2F0aW9uOyAvLyBXaGVyZSB0byB0cnVuY2F0ZSB3
aGVuIHRleHQgb3ZlcmZsb3cgaXMgYXBwbGllZC4gIFdlIHVzZSBzcGVjaWFsIGNvbnN0YW50cyB0
bwogICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbm90ZSBubyB0cnVuY2F0aW9uICh0aGUgd2hv
bGUgcnVuIHBhaW50cykgYW5kIGZ1bGwgdHJ1bmNhdGlvbiAobm90aGluZyBwYWludHMgYXQgYWxs
KS4KIAorICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBJbmxpbmVUZXh0Qm94KiwgcGFpcjxWZWN0
b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiwgR2x5cGhPdmVyZmxvdz4gPiBHbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcDsKKyAgICBzdGF0aWMgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNr
Rm9udHNNYXAqIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisKIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCos
IGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHlsZSosIGNvbnN0IEZvbnQmLCBpbnQgc3RhcnRQb3Ms
IGludCBlbmRQb3MpOwogICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtlcnMoR3JhcGhpY3NDb250
ZXh0KiwgaW50IHR4LCBpbnQgdHksIFJlbmRlclN0eWxlKiwgY29uc3QgRm9udCYsIGJvb2wgYmFj
a2dyb3VuZCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAJKHJldmlzaW9uIDQ3ODgxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQwLDcgKzY0MCw4IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVIb3Jpem9udGFsUG9zaXQKICAgICAgICAgICAgICAgICBuZWVkc1dv
cmRTcGFjaW5nID0gIWlzU3BhY2VPck5ld2xpbmUocnQtPmNoYXJhY3RlcnMoKVtyLT5tX3N0b3Ag
LSAxXSkgJiYgci0+bV9zdG9wID09IGxlbmd0aDsgICAgICAgICAgCiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gZmFsbGJhY2tGb250czsK
LSAgICAgICAgICAgIHItPm1fYm94LT5zZXRXaWR0aChydC0+d2lkdGgoci0+bV9zdGFydCwgci0+
bV9zdG9wIC0gci0+bV9zdGFydCwgdG90V2lkdGgsIGZpcnN0TGluZSwgJmZhbGxiYWNrRm9udHMp
KTsKKyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdzsKKyAgICAgICAgICAg
IHItPm1fYm94LT5zZXRXaWR0aChydC0+d2lkdGgoci0+bV9zdGFydCwgci0+bV9zdG9wIC0gci0+
bV9zdGFydCwgdG90V2lkdGgsIGZpcnN0TGluZSwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJm
bG93KSk7CiAgICAgICAgICAgICBpZiAoIWZhbGxiYWNrRm9udHMuaXNFbXB0eSgpCiAjaWYgRU5B
QkxFKFNWRykKICAgICAgICAgICAgICAgICAgICAgJiYgIWlzU1ZHVGV4dCgpCkBAIC02NDksNiAr
NjUwLDE0IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVIb3Jpem9udGFsUG9zaXQKICAgICAg
ICAgICAgICAgICBBU1NFUlQoci0+bV9ib3gtPmlzVGV4dCgpKTsKICAgICAgICAgICAgICAgICBz
dGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oci0+bV9ib3gpLT5zZXRGYWxsYmFja0ZvbnRzKGZh
bGxiYWNrRm9udHMpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChnbHlwaE92ZXJm
bG93LnRvcCB8fCBnbHlwaE92ZXJmbG93LmJvdHRvbSB8fCBnbHlwaE92ZXJmbG93LmxlZnQgfHwg
Z2x5cGhPdmVyZmxvdy5yaWdodCkKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAgICAgICAgICAg
ICAmJiAhaXNTVkdUZXh0KCkKKyNlbmRpZgorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CisgICAgICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0R2x5cGhPdmVyZmxvdyhnbHlwaE92ZXJm
bG93KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghci0+bV9vYmplY3QtPmlz
UmVuZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9S
ZW5kZXJCb3goci0+bV9vYmplY3QpOwogICAgICAgICAgICAgcmVuZGVyQm94LT5jYWxjV2lkdGgo
KTsKQEAgLTEwMzIsNiArMTA0MSw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNo
aWxkcmVuKGIKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBwb3NpdGlvbiBvdXIgdGV4
dCBydW5zIHZlcnRpY2FsbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlVmVydGlj
YWxQb3NpdGlvbnNGb3JMaW5lKGxpbmVCb3gsIHJlc29sdmVyLmZpcnN0UnVuKCkpOwogCisgICAg
ICAgICAgICAgICAgICAgICAgICBJbmxpbmVUZXh0Qm94OjpjbGVhckdseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRNYXAoKTsKKwogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBTcGVjaWFsIFNWRyB0ZXh0IGxheW91dCBjb2RlCiAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lQm94LT5jb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3JtYXRpb24oKTsKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBA
IFJlbmRlclRleHQ6OlJlbmRlclRleHQoTm9kZSogbm9kZSwgUGFzc1IKICAgICAgLCBtX2xpbmVz
RGlydHkoZmFsc2UpCiAgICAgICwgbV9jb250YWluc1JldmVyc2VkVGV4dChmYWxzZSkKICAgICAg
LCBtX2lzQWxsQVNDSUkoY2hhcmFjdGVyc0FyZUFsbEFTQ0lJKG1fdGV4dC5nZXQoKSkpCi0gICAg
ICwgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyhmYWxzZSkKKyAgICAgLCBtX2tub3duVG9I
YXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyhmYWxzZSkKIHsKICAgICBBU1NFUlQobV90
ZXh0KTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6c3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWYKICAgICAvLyBuZWVkIHRvIHJlbGF5b3V0LgogICAgIGlmIChkaWZmID09IFN0
eWxlRGlmZmVyZW5jZUxheW91dCkgewogICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0
aHNSZWNhbGMoKTsKLSAgICAgICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9IGZhbHNl
OworICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IGZh
bHNlOwogICAgIH0KIAogICAgIEVUZXh0VHJhbnNmb3JtIG9sZFRyYW5zZm9ybSA9IG9sZFN0eWxl
ID8gb2xkU3R5bGUtPnRleHRUcmFuc2Zvcm0oKSA6IFRUTk9ORTsKQEAgLTQyNyw3ICs0MjcsNyBA
QCBJbnRSZWN0IFJlbmRlclRleHQ6OmxvY2FsQ2FyZXRSZWN0KElubGluCiAgICAgcmV0dXJuIElu
dFJlY3QobGVmdCwgdG9wLCBjYXJldFdpZHRoLCBoZWlnaHQpOwogfQogCi1BTFdBWVNfSU5MSU5F
IGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiBmLCBpbnQgc3RhcnQs
IGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxi
YWNrRm9udHMpIGNvbnN0CitBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21D
YWNoZShjb25zdCBGb250JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGds
eXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKGYuaXNGaXhlZFBpdGNoKCkgJiYgIWYuaXNT
bWFsbENhcHMoKSAmJiBtX2lzQWxsQVNDSUkpIHsKICAgICAgICAgaW50IG1vbm9zcGFjZUNoYXJh
Y3RlcldpZHRoID0gZi5zcGFjZVdpZHRoKCk7CkBAIC00NTcsNyArNDU3LDcgQEAgQUxXQVlTX0lO
TElORSBpbnQgUmVuZGVyVGV4dDo6d2lkdGhGcm9tQwogICAgICAgICByZXR1cm4gdzsKICAgICB9
CiAKLSAgICByZXR1cm4gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3Rh
cnQsIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzKTsKKyAgICByZXR1cm4g
Zi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwgYWxsb3dU
YWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogdm9pZCBS
ZW5kZXJUZXh0Ojp0cmltbWVkUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLApAQCAtNTI2LDcgKzUy
Niw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGwKICAgICAgICAg
ICAgICAgICBsaW5lbGVuKys7CiAKICAgICAgICAgICAgIGlmIChsaW5lbGVuKSB7Ci0gICAgICAg
ICAgICAgICAgZW5kTWF4VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4sIGxlYWRXaWR0
aCArIGVuZE1heFcsIDApOworICAgICAgICAgICAgICAgIGVuZE1heFcgPSB3aWR0aEZyb21DYWNo
ZShmLCBpLCBsaW5lbGVuLCBsZWFkV2lkdGggKyBlbmRNYXhXLCAwLCAwKTsKICAgICAgICAgICAg
ICAgICBpZiAoZmlyc3RMaW5lKSB7CiAgICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZSA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICBsZWFkV2lkdGggPSAwOwpAQCAtNTcxLDE0ICs1NzEs
MTUgQEAgaW50IFJlbmRlclRleHQ6Om1heFByZWZXaWR0aCgpIGNvbnN0CiB2b2lkIFJlbmRlclRl
eHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgpCiB7CiAgICAgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+IGZhbGxiYWNrRm9udHM7Ci0gICAgY2FsY1ByZWZXaWR0aHMobGVhZFdp
ZHRoLCBmYWxsYmFja0ZvbnRzKTsKLSAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5KCkpCi0g
ICAgICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVlOworICAgIEdseXBoT3Zl
cmZsb3cgZ2x5cGhPdmVyZmxvdzsKKyAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxi
YWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOworICAgIGlmIChmYWxsYmFja0ZvbnRzLmlzRW1wdHko
KSAmJiAhZ2x5cGhPdmVyZmxvdy5sZWZ0ICYmICFnbHlwaE92ZXJmbG93LnJpZ2h0ICYmICFnbHlw
aE92ZXJmbG93LnRvcCAmJiAhZ2x5cGhPdmVyZmxvdy5ib3R0b20pCisgICAgICAgIG1fa25vd25U
b0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzID0gdHJ1ZTsKIH0KIAotdm9pZCBSZW5k
ZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCit2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lk
dGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJh
Y2tGb250cywgR2x5cGhPdmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKLSAgICBBU1NFUlQobV9o
YXNUYWIgfHwgcHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9u
dHMpOworICAgIEFTU0VSVChtX2hhc1RhYiB8fCBwcmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93
blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMpOwogCiAgICAgbV9taW5XaWR0aCA9
IDA7CiAgICAgbV9iZWdpbk1pbldpZHRoID0gMDsKQEAgLTYwOCw2ICs2MDksOCBAQCB2b2lkIFJl
bmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgaW50IG5leHRCcmVha2FibGUg
PSAtMTsKICAgICBpbnQgbGFzdFdvcmRCb3VuZGFyeSA9IDA7CiAKKyAgICBpbnQgZmlyc3RHbHlw
aExlZnRPdmVyZmxvdyA9IC0xOworCiAgICAgYm9vbCBicmVha05CU1AgPSBzdHlsZSgpLT5hdXRv
V3JhcCgpICYmIHN0eWxlKCktPm5ic3BNb2RlKCkgPT0gU1BBQ0U7CiAgICAgYm9vbCBicmVha0Fs
bCA9IChzdHlsZSgpLT53b3JkQnJlYWsoKSA9PSBCcmVha0FsbFdvcmRCcmVhayB8fCBzdHlsZSgp
LT53b3JkQnJlYWsoKSA9PSBCcmVha1dvcmRCcmVhaykgJiYgc3R5bGUoKS0+YXV0b1dyYXAoKTsK
IApAQCAtNjUwLDcgKzY1Myw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50
IGxlYWQKICAgICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkrKzsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9IGVsc2UgaWYgKGMgPT0gc29mdEh5cGhlbikgewotICAgICAgICAgICAg
Y3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkgLSBs
YXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRz
KTsKKyAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29y
ZEJvdW5kYXJ5LCBpIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRo
LCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYgKGZpcnN0
R2x5cGhMZWZ0T3ZlcmZsb3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhMZWZ0T3Zl
cmZsb3cgPSBnbHlwaE92ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5
ID0gaSArIDE7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNjczLDEzICs2
NzgsMTUgQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogCiAgICAg
ICAgIGludCB3b3JkTGVuID0gaiAtIGk7CiAgICAgICAgIGlmICh3b3JkTGVuKSB7Ci0gICAgICAg
ICAgICBpbnQgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIHdvcmRMZW4sIGxlYWRXaWR0aCArIGN1
cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgaW50IHcgPSB3aWR0aEZy
b21DYWNoZShmLCBpLCB3b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFj
a0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRP
dmVyZmxvdyA8IDApCisgICAgICAgICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGds
eXBoT3ZlcmZsb3cubGVmdDsKICAgICAgICAgICAgIGN1cnJNaW5XaWR0aCArPSB3OwogICAgICAg
ICAgICAgaWYgKGJldHdlZW5Xb3JkcykgewogICAgICAgICAgICAgICAgIGlmIChsYXN0V29yZEJv
dW5kYXJ5ID09IGkpCiAgICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3OwogICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IHdp
ZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29yZEJvdW5kYXJ5LCBs
ZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgY3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnks
IGogLSBsYXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFj
a0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgbGFzdFdvcmRCb3VuZGFy
eSA9IGo7CiAgICAgICAgICAgICB9CiAKQEAgLTczMiw2ICs3MzksNyBAQCB2b2lkIFJlbmRlclRl
eHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRo
ID0gMDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRo
ICs9IGYud2lkdGgoVGV4dFJ1bih0eHQgKyBpLCAxLCBhbGxvd1RhYnMoKSwgbGVhZFdpZHRoICsg
Y3Vyck1heFdpZHRoKSk7CisgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5yaWdodCA9IDA7
CiAgICAgICAgICAgICAgICAgbmVlZHNXb3JkU3BhY2luZyA9IGlzU3BhY2UgJiYgIXByZXZpb3Vz
Q2hhcmFjdGVySXNTcGFjZSAmJiBpID09IGxlbiAtIDE7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBBU1NFUlQobGFzdFdvcmRCb3VuZGFyeSA9PSBpKTsKQEAgLTczOSw2ICs3NDcsOSBAQCB2
b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgIH0KICAgICB9
CiAKKyAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA+IDApCisgICAgICAgIGdseXBoT3Zl
cmZsb3cubGVmdCA9IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CisKICAgICBpZiAoKG5lZWRzV29y
ZFNwYWNpbmcgJiYgbGVuID4gMSkgfHwgKGlnbm9yaW5nU3BhY2VzICYmICFmaXJzdFdvcmQpKQog
ICAgICAgICBjdXJyTWF4V2lkdGggKz0gd29yZFNwYWNpbmc7CiAKQEAgLTEwMDAsNyArMTAxMSw3
IEBAIHZvaWQgUmVuZGVyVGV4dDo6c2V0VGV4dChQYXNzUmVmUHRyPFN0cmkKIAogICAgIHNldFRl
eHRJbnRlcm5hbCh0ZXh0KTsKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMo
KTsKLSAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgbV9rbm93
blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsKIH0KIAogaW50IFJl
bmRlclRleHQ6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wpIGNvbnN0CkBAIC0xMDU1
LDcgKzEwNjYsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnBvc2l0aW9uTGluZUJveChJbmxpbmVCCiAg
ICAgbV9jb250YWluc1JldmVyc2VkVGV4dCB8PSBzLT5kaXJlY3Rpb24oKSA9PSBSVEw7CiB9CiAK
LXVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwg
aW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlw
aE92ZXJmbG93KSBjb25zdAogewogICAgIGlmIChmcm9tID49IHRleHRMZW5ndGgoKSkKICAgICAg
ICAgcmV0dXJuIDA7CkBAIC0xMDYzLDEwICsxMDc0LDEwIEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6
OndpZHRoKHVuc2lnbmVkIGZyb20KICAgICBpZiAoZnJvbSArIGxlbiA+IHRleHRMZW5ndGgoKSkK
ICAgICAgICAgbGVuID0gdGV4dExlbmd0aCgpIC0gZnJvbTsKIAotICAgIHJldHVybiB3aWR0aChm
cm9tLCBsZW4sIHN0eWxlKGZpcnN0TGluZSktPmZvbnQoKSwgeFBvcywgZmFsbGJhY2tGb250cyk7
CisgICAgcmV0dXJuIHdpZHRoKGZyb20sIGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4
UG9zLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAotdW5zaWduZWQgUmVuZGVy
VGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBp
bnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBj
b25zdAordW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQg
bGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAog
ewogICAgIEFTU0VSVChmcm9tICsgbGVuIDw9IHRleHRMZW5ndGgoKSk7CiAgICAgaWYgKCFjaGFy
YWN0ZXJzKCkpCkBAIC0xMDc2LDE4ICsxMDg3LDE5IEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6Ondp
ZHRoKHVuc2lnbmVkIGZyb20KICAgICBpZiAoJmYgPT0gJnN0eWxlKCktPmZvbnQoKSkgewogICAg
ICAgICBpZiAoIXN0eWxlKCktPnByZXNlcnZlTmV3bGluZSgpICYmICFmcm9tICYmIGxlbiA9PSB0
ZXh0TGVuZ3RoKCkpIHsKICAgICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFj
a0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRo
aXMpLT5jYWxjUHJlZldpZHRocygwLCAqZmFsbGJhY2tGb250cyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChmYWxsYmFja0ZvbnRzLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0
eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cykgeworICAg
ICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZX
aWR0aHMoMCwgKmZhbGxiYWNrRm9udHMsICpnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGZhbGxiYWNrRm9udHMtPmlzRW1wdHkoKSAmJiAhZ2x5cGhPdmVyZmxvdy0+bGVm
dCAmJiAhZ2x5cGhPdmVyZmxvdy0+cmlnaHQgJiYgIWdseXBoT3ZlcmZsb3ctPnRvcCAmJiAhZ2x5
cGhPdmVyZmxvdy0+Ym90dG9tKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9rbm93blRvSGF2
ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB3ID0gbV9tYXhXaWR0aDsKICAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIHcgPSBtYXhQcmVmV2lkdGgoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRz
KTsKKyAgICAgICAgICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZh
bGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogICAgIH0gZWxzZQotICAgICAgICB3ID0gZi53
aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMo
KSwgeFBvcyksIGZhbGxiYWNrRm9udHMpOworICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRl
eHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxi
YWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogCiAgICAgcmV0dXJuIHc7CiB9CkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dC5oCShyZXZpc2lvbiA0Nzg4MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgdGV4dExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC0+bGVuZ3RoKCk7IH0g
Ly8gbm9uIHZpcnR1YWwgaW1wbGVtZW50YXRpb24gb2YgbGVuZ3RoKCkKICAgICB2b2lkIHBvc2l0
aW9uTGluZUJveChJbmxpbmVCb3gqKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5z
aWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiwgaW50IHhQb3MsIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OwotICAgIHZp
cnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBv
cywgYm9vbCBmaXJzdExpbmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxv
dyogPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cq
ID0gMCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5l
LCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAKQEAgLTEzMiw3ICsxMzIsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJbmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7
IC8vIFN1YmNsYXNzZWQgYnkgU1ZHLgogCiBwcml2YXRlOgotICAgIHZvaWQgY2FsY1ByZWZXaWR0
aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFj
a0ZvbnRzKTsKKyAgICB2b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYpOwog
CiAgICAgLy8gTWFrZSBsZW5ndGgoKSBwcml2YXRlIHNvIHRoYXQgY2FsbGVycyB0aGF0IGhhdmUg
YSBSZW5kZXJUZXh0KgogICAgIC8vIHdpbGwgdXNlIHRoZSBtb3JlIGVmZmljaWVudCB0ZXh0TGVu
Z3RoKCkgaW5zdGVhZCwgd2hpbGUKQEAgLTE0NSw3ICsxNDUsNyBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkZWxldGVUZXh0Qm94ZXMoKTsKICAgICBib29sIGNvbnRhaW5zT25seVdoaXRlc3BhY2Uo
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuKSBjb25zdDsKLSAgICBpbnQgd2lkdGhGcm9tQ2Fj
aGUoY29uc3QgRm9udCYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3Q7CisgICAgaW50IHdpZHRo
RnJvbUNhY2hlKGNvbnN0IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cq
KSBjb25zdDsKICAgICBib29sIGlzQWxsQVNDSUkoKSBjb25zdCB7IHJldHVybiBtX2lzQWxsQVND
SUk7IH0KIAogICAgIGludCBtX21pbldpZHRoOyAvLyBoZXJlIHRvIG1pbmltaXplIHBhZGRpbmcg
aW4gNjQtYml0LgpAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBvciByZW1vdmVkKS4KICAgICBib29sIG1fY29udGFpbnNSZXZlcnNlZFRl
eHQgOiAxOwogICAgIGJvb2wgbV9pc0FsbEFTQ0lJIDogMTsKLSAgICBtdXRhYmxlIGJvb2wgbV9r
bm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fa25vd25U
b0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzIDogMTsKIH07CiAKIGlubGluZSBSZW5k
ZXJUZXh0KiB0b1JlbmRlclRleHQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52574</attachid>
            <date>2010-04-05 14:26:49 -0700</date>
            <delta_ts>2010-04-05 14:59:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug6649734.txt</filename>
            <type>text/plain</type>
            <size>57350</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzA5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA0IEBACisyMDEwLTA0LTA1ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBwYXRjaCBoYXMgYmVlbiB3cml0dGVuIGJ5
IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgVGVzdDogd29ya2luZyBvbiBpdCBub3cuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZmxvYXRXaWR0aCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhPdmVyZmxv
dzo6R2x5cGhPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojp3aWR0aCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OmNhblVzZUdseXBoQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zmxv
YXRXaWR0aEZvclNpbXBsZVRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBo
V2lkdGhNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhXaWR0aE1hcDo6bG9jYXRlUGFn
ZVNsb3dDYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmg6
CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFdpZHRoTWFwOjptZXRyaWNzRm9yR2x5cGgpOgorICAg
ICAgICAoV2ViQ29yZTo6R2x5cGhXaWR0aE1hcDo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChX
ZWJDb3JlOjpHbHlwaFdpZHRoTWFwOjpzZXRNZXRyaWNzRm9yR2x5cGgpOgorICAgICAgICAoV2Vi
Q29yZTo6R2x5cGhXaWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2U6Om1ldHJpY3NGb3JHbHlwaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHbHlwaFdpZHRoTWFwOjpHbHlwaFdpZHRoUGFnZTo6c2V0TWV0cmlj
c0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQ
YWdlOjpzZXRNZXRyaWNzRm9ySW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Np
bXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERh
dGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250
RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJh
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6YWR2YW5jZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6V2lk
dGhJdGVyYXRvcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6V2lk
dGhJdGVyYXRvcjo6bWluR2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6V2lk
dGhJdGVyYXRvcjo6Zmlyc3RHbHlwaE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OldpZHRo
SXRlcmF0b3I6Omxhc3RHbHlwaE92ZXJmbG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBs
ZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWluR2x5cGhCb3VuZGluZ0Jv
eFgpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjptYXhHbHlwaEJv
dW5kaW5nQm94WCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1p
bkdseXBoQm91bmRpbmdCb3hZKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJv
bGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
U2ltcGxlRm9udERhdGFNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9Gb250V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21w
bGV4VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRh
Q0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0
cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9u
dERhdGFXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6Om1ldHJpY3NG
b3JHRElHbHlwaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6VW5p
c2NyaWJlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVDb250cm9sbGVy
OjpzaGFwZUFuZFBsYWNlSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Vu
aXNjcmliZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xs
ZXI6Om1pbkdseXBoQm91bmRpbmdCb3hYKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNv
bnRyb2xsZXI6Om1heEdseXBoQm91bmRpbmdCb3hYKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNj
cmliZUNvbnRyb2xsZXI6Om1pbkdseXBoQm91bmRpbmdCb3hZKToKKyAgICAgICAgKFdlYkNvcmU6
OlVuaXNjcmliZUNvbnRyb2xsZXI6Om1heEdseXBoQm91bmRpbmdCb3hZKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93
Qm94OjpwbGFjZUJveGVzSG9yaXpvbnRhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZs
b3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVGbG93Qm94Ojpjb21wdXRlVmVydGljYWxPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6c2V0
RmFsbGJhY2tGb250cyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpmYWxsYmFj
a0ZvbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnNldEdseXBoT3ZlcmZs
b3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Z2x5cGhPdmVyZmxvdyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZVRleHRCb3g6OmNsZWFyR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUhvcml6b250YWxQb3NpdGlvbnNGb3JMaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVMaW5lQm94ZXNGb3JSZXNvbHZlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dDo6UmVuZGVyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpz
dHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWR0aEZyb21D
YWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp0cmltbWVkUHJlZldpZHRocyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0OjpzZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRleHQ6OndpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorCiAyMDEw
LTA0LTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lvbiA1NzA5MSkK
KysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtOTA3LDcgKzkw
Nyw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWcKIF9fWk5LN1dl
YkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlM3VybEV2CiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJj
ZVJlc3BvbnNlQmFzZThtaW1lVHlwZUV2CiBfX1pOSzdXZWJDb3JlMjZOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlcjZpc0RvbmVFdgotX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNf
N1RleHRSdW5FUE4zV1RGN0hhc2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFz
aElTOF9FRU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVFRQorX19aTks3V2ViQ29yZTRGb250MTBmbG9h
dFdpZHRoRVJLTlNfN1RleHRSdW5FUE4zV1RGN0hhc2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRh
RU5TNF83UHRySGFzaElTOF9FRU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVFRVBOU18xM0dseXBoT3Zl
cmZsb3dFCiBfX1pOSzdXZWJDb3JlNEZvbnQxMXByaW1hcnlGb250RXYKIF9fWk5LN1dlYkNvcmU0
Rm9udDhkcmF3VGV4dEVQTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183VGV4dFJ1bkVSS05TXzEw
RmxvYXRQb2ludEVpaQogX19aTks3V2ViQ29yZTRLVVJMMTFjcmVhdGVDRlVSTEV2CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDcgKzE4Miw3
IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAgICByZXR1cm4g
ZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsKIH0KIAotZmxv
YXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAjaWYg
RU5BQkxFKFNWR19GT05UUykKICAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCkBA
IC0xOTgsNyArMTk4LDcgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBy
dQogICAgIH0KICNlbmRpZgogCi0gICAgcmV0dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChy
dW4sIGZhbGxiYWNrRm9udHMpOworICAgIHJldHVybiBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQo
cnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBpbnQm
IGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdApJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDIxIEBAIHN0cnVjdCBHbHlw
aERhdGE7CiAKIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRVbml0c1BlckVtID0gMTAwMDsKIAorc3Ry
dWN0IEdseXBoT3ZlcmZsb3cgeworICAgIEdseXBoT3ZlcmZsb3coKQorICAgICAgICA6IGxlZnQo
MCkKKyAgICAgICAgLCByaWdodCgwKQorICAgICAgICAsIHRvcCgwKQorICAgICAgICAsIGJvdHRv
bSgwKQorICAgIHsKKyAgICB9CisKKyAgICBpbnQgbGVmdDsKKyAgICBpbnQgcmlnaHQ7CisgICAg
aW50IHRvcDsKKyAgICBpbnQgYm90dG9tOworfTsKKwogY2xhc3MgRm9udCB7CiBwdWJsaWM6CiAg
ICAgRm9udCgpOwpAQCAtODEsOCArOTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRyYXdUZXh0
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50
IGZyb20gPSAwLCBpbnQgdG8gPSAtMSkgY29uc3Q7CiAKLSAgICBpbnQgd2lkdGgoY29uc3QgVGV4
dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRz
KSk7IH0KLSAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdDsKKyAgICBpbnQgd2lk
dGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Qg
eyByZXR1cm4gbHJvdW5kZihmbG9hdFdpZHRoKHJ1biwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVy
ZmxvdykpOyB9CisgICAgZmxvYXQgZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyog
Z2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0OwogICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4
dFJ1biYgcnVuLCBpbnQgZXh0cmFDaGFyc0F2YWlsYWJsZSwgaW50JiBjaGFyc0NvbnN1bWVkLCBT
dHJpbmcmIGdseXBoTmFtZSkgY29uc3Q7CiAKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb24oY29u
c3QgVGV4dFJ1biYsIGludCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29u
c3Q7CkBAIC0xNTksNyArMTc0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBkcmF3
Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0
UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKLSAgICBmbG9hdCBmbG9hdFdpZHRoRm9y
Q29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OworICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JDb21w
bGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBm
YWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zm
c2V0Rm9yUG9zaXRpb25Gb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9u
LCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0
aW9uUmVjdEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGlu
dCBoLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmFzdFBhdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw2
ICsyMzQsMTEgQEAgYm9vbCBGb250OjpjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRleHRSdQogICAg
ICAgICBpZiAoYyA8PSAweDE5NEYpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAg
ICAgaWYgKGMgPCAweDFFMDApCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGMg
PD0gMHgyMDAwKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCiAgICAg
ICAgIGlmIChjIDwgMHgyMEQwKSAgICAgLy8gVSsyMEQwIHRocm91Z2ggVSsyMEZGIENvbWJpbmlu
ZyBtYXJrcyBmb3Igc3ltYm9scwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChj
IDw9IDB4MjBGRikKQEAgLTMxOCw2ICszMjMsNyBAQCBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9y
U2ltcGxlVGV4dChjb25zCiB7CiAgICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4sIGZhbGxi
YWNrRm9udHMpOwogICAgIGl0LmFkdmFuY2UocnVuLmxlbmd0aCgpLCBnbHlwaEJ1ZmZlcik7CisK
ICAgICByZXR1cm4gaXQubV9ydW5XaWR0aFNvRmFyOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDgsOSArNDgsMTIgQEAgR2x5cGhXaWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lk
dAogICAgICAgICBtX3BhZ2VzLT5zZXQocGFnZU51bWJlciwgcGFnZSk7CiAgICAgfQogCisgICAg
R2x5cGhNZXRyaWNzIHVua25vd25NZXRyaWNzOworICAgIHVua25vd25NZXRyaWNzLmhvcml6b250
YWxBZHZhbmNlID0gY0dseXBoV2lkdGhVbmtub3duOworCiAgICAgLy8gRmlsbCBpbiB0aGUgd2hv
bGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBoIHdpZHRoIHZhbHVlLgogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRoUGFnZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdl
LT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlwaFdpZHRoVW5rbm93bik7CisgICAgICAgIHBhZ2Ut
PnNldE1ldHJpY3NGb3JJbmRleChpLCB1bmtub3duTWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFn
ZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShy
ZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1h
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWZuZGVmIEdseXBoV2lkdGhN
YXBfaAogI2RlZmluZSBHbHlwaFdpZHRoTWFwX2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAgLTM5LDM0ICs0MCw0NCBAQCB0eXBlZGVmIHVu
c2lnbmVkIHNob3J0IEdseXBoOwogCiBjb25zdCBmbG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAt
MTsKIAorc3RydWN0IEdseXBoTWV0cmljcyB7CisgICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7
CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OworfTsKKwogY2xhc3MgR2x5cGhXaWR0aE1hcCA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9m
aWxsZWRQcmltYXJ5UGFnZShmYWxzZSkgeyB9CiAgICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmICht
X3BhZ2VzKSB7IGRlbGV0ZUFsbFZhbHVlcygqbV9wYWdlcyk7IH0gfQogCisgICAgR2x5cGhNZXRy
aWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkKKyAgICB7CisgICAgICAgIHJldHVybiBs
b2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgo
Z2x5cGgpOworICAgIH0KKwogICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCiAg
ICAgewotICAgICAgICByZXR1cm4gbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpz
aXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGds
eXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6
b250YWxBZHZhbmNlOwogICAgIH0KIAotICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBn
bHlwaCwgZmxvYXQgd2lkdGgpCisgICAgdm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5
cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmljcykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBh
Z2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgs
IHdpZHRoKTsKKyAgICAgICAgbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXpl
KS0+c2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6
CiAgICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVycyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2Uu
Ci0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVdOworICAgICAgICBHbHlwaE1ldHJpY3MgbV9t
ZXRyaWNzW3NpemVdOwogCi0gICAgICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgp
IGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2dseXBoICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBz
ZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhN
ZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRy
aWNzW2dseXBoICUgc2l6ZV07IH0KKyAgICAgICAgdm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5
cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmljcykKICAgICAgICAgewotICAgICAg
ICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlwaCAlIHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAg
IHNldE1ldHJpY3NGb3JJbmRleChnbHlwaCAlIHNpemUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0g
ICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJbmRleCh1bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgp
CisgICAgICAgIHZvaWQgc2V0TWV0cmljc0ZvckluZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBH
bHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2lu
ZGV4XSA9IHdpZHRoOworICAgICAgICAgICAgbV9tZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAg
ICAgICAgIH0KICAgICB9OwogICAgIApAQCAtODQsNiArOTUsNiBAQCBwcml2YXRlOgogICAgIE93
blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPiA+IG1fcGFnZXM7CiB9OwogCi19Cit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE1Nyw5ICsxNTcsMTEgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQo
KQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpFUk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAg
R2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGdseXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNo
YXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAg
ICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBtX3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBt
X2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDAp
OwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh6ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3Bh
Y2VHbHlwaCkgeworICAgICAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAg
ICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gMDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb1dp
ZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlwaCh6ZXJvV2lkdGhTcGFjZUdseXBoLCBtZXRyaWNzKTsK
KyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBMT0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBh
bmQgWkVSTyBXSURUSCBTUEFDRSB0byB0aGUgc2FtZSBnbHlwaC4gR2x5cGggd2lkdGggbm90IG92
ZXJyaWRkZW4uIik7CiAgICAgfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Np
bXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsOSArNTgsOSBAQCBj
bGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hh
cmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERhdGE7Ci1jbGFzcyBXaWR0aE1hcDsKIAogZW51bSBQ
aXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQaXRjaCwgVmFyaWFibGVQaXRjaCB9OworZW51bSBH
bHlwaE1ldHJpY3NNb2RlIHsgR2x5cGhCb3VuZGluZ0JveCwgR2x5cGhXaWR0aE9ubHkgfTsKIAog
Y2xhc3MgU2ltcGxlRm9udERhdGEgOiBwdWJsaWMgRm9udERhdGEgewogcHVibGljOgpAQCAtODEs
OCArODEsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgeEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1f
eEhlaWdodDsgfQogICAgIHVuc2lnbmVkIHVuaXRzUGVyRW0oKSBjb25zdCB7IHJldHVybiBtX3Vu
aXRzUGVyRW07IH0KIAotICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwotICAg
IGZsb2F0IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7CisgICAgZmxvYXQgd2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QgeyByZXR1cm4gbWV0cmljc0ZvckdseXBoKGds
eXBoLCBHbHlwaFdpZHRoT25seSkuaG9yaXpvbnRhbEFkdmFuY2U7IH0KKyAgICBHbHlwaE1ldHJp
Y3MgbWV0cmljc0ZvckdseXBoKEdseXBoLCBHbHlwaE1ldHJpY3NNb2RlID0gR2x5cGhCb3VuZGlu
Z0JveCkgY29uc3Q7CisgICAgR2x5cGhNZXRyaWNzIHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEds
eXBoLCBHbHlwaE1ldHJpY3NNb2RlKSBjb25zdDsKIAogICAgIGZsb2F0IHNwYWNlV2lkdGgoKSBj
b25zdCB7IHJldHVybiBtX3NwYWNlV2lkdGg7IH0KICAgICBmbG9hdCBhZGp1c3RlZFNwYWNlV2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX2FkanVzdGVkU3BhY2VXaWR0aDsgfQpAQCAtMTY3LDcgKzE2
OCw3IEBAIHByaXZhdGU6CiAgICAgfHwgKE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKFdYKSkKICAg
ICB2b2lkIGluaXRHRElGb250KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNvbW1vbkRlc3Ryb3koKTsK
LSAgICBmbG9hdCB3aWR0aEZvckdESUdseXBoKEdseXBoIGdseXBoKSBjb25zdDsKKyAgICBHbHlw
aE1ldHJpY3MgbWV0cmljc0ZvckdESUdseXBoKEdseXBoIGdseXBoKSBjb25zdDsKICNlbmRpZgog
CiAgICAgaW50IG1fYXNjZW50OwpAQCAtMjM3LDE2ICsyMzgsMTYgQEAgcHJpdmF0ZToKICAgICAK
ICAgICAKICNpZiAhUExBVEZPUk0oUVQpCi1BTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnRE
YXRhOjp3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlw
aE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5
cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkgY29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IG1f
Z2x5cGhUb1dpZHRoTWFwLndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAgIGlmICh3aWR0aCAhPSBj
R2x5cGhXaWR0aFVua25vd24pCi0gICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAKLSAgICB3aWR0
aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChnbHlwaCk7Ci0gICAgbV9nbHlwaFRvV2lkdGhNYXAu
c2V0V2lkdGhGb3JHbHlwaChnbHlwaCwgd2lkdGgpOwotICAgIAotICAgIHJldHVybiB3aWR0aDsK
KyAgICBHbHlwaE1ldHJpY3MgbWV0cmljcyA9IG1fZ2x5cGhUb1dpZHRoTWFwLm1ldHJpY3NGb3JH
bHlwaChnbHlwaCk7CisgICAgaWYgKG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgIT0gY0dseXBo
V2lkdGhVbmtub3duKQorICAgICAgICByZXR1cm4gbWV0cmljczsKKworICAgIG1ldHJpY3MgPSBw
bGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChnbHlwaCwgbWV0cmljc01vZGUpOworICAgIG1fZ2x5cGhU
b1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlwaChnbHlwaCwgbWV0cmljcyk7CisKKyAgICByZXR1
cm4gbWV0cmljczsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1dpZHRoSXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvV2lkdGhJdGVyYXRvci5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMs
NyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7Cit1
c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4
LDEwIEBAIFdpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3IoY29uc3QgRm9udCoKICAgICAsIG1f
cnVuV2lkdGhTb0ZhcigwKQogICAgICwgbV9maW5hbFJvdW5kaW5nV2lkdGgoMCkKICAgICAsIG1f
ZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94
WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5n
Qm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9maXJzdEdseXBoT3Zl
cmZsb3coMCkKKyAgICAsIG1fbGFzdEdseXBoT3ZlcmZsb3coMCkKIHsKICAgICAvLyBJZiB0aGUg
cGFkZGluZyBpcyBub24temVybywgY291bnQgdGhlIG51bWJlciBvZiBzcGFjZXMgaW4gdGhlIHJ1
bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBieSB0aGUgcGFkZGluZyBmb3IgcGVyIHNwYWNlIGFk
ZGl0aW9uLgpAQCAtMTIwLDEyICsxMjUsMTQgQEAgdm9pZCBXaWR0aEl0ZXJhdG9yOjphZHZhbmNl
KGludCBvZmZzZXQsIAogICAgICAgICBBU1NFUlQoZm9udERhdGEpOwogCiAgICAgICAgIC8vIE5v
dyB0aGF0IHdlIGhhdmUgYSBnbHlwaCBhbmQgZm9udCBkYXRhLCBnZXQgaXRzIHdpZHRoLgorICAg
ICAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRyaWNzOwogICAgICAgICBmbG9hdCB3aWR0aDsKICAg
ICAgICAgaWYgKGMgPT0gJ1x0JyAmJiBtX3J1bi5hbGxvd1RhYnMoKSkgewogICAgICAgICAgICAg
ZmxvYXQgdGFiV2lkdGggPSBtX2ZvbnQtPnRhYldpZHRoKCk7CiAgICAgICAgICAgICB3aWR0aCA9
IHRhYldpZHRoIC0gZm1vZGYobV9ydW4ueFBvcygpICsgcnVuV2lkdGhTb0ZhciwgdGFiV2lkdGgp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgd2lkdGggPSBmb250RGF0YS0+d2lkdGhG
b3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICBnbHlwaE1ldHJpY3MgPSBmb250RGF0YS0+bWV0
cmljc0ZvckdseXBoKGdseXBoLCBHbHlwaFdpZHRoT25seSk7CisgICAgICAgICAgICB3aWR0aCA9
IGdseXBoTWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZTsKICAgICAgICAgICAgIC8vIFdlIHNwZWNp
YWwgY2FzZSBzcGFjZXMgaW4gdHdvIHdheXMgd2hlbiBhcHBseWluZyB3b3JkIHJvdW5kaW5nLgog
ICAgICAgICAgICAgLy8gRmlyc3QsIHdlIHJvdW5kIHNwYWNlcyB0byBhbiBhZGp1c3RlZCB3aWR0
aCBpbiBhbGwgZm9udHMuCiAgICAgICAgICAgICAvLyBTZWNvbmQsIGluIGZpeGVkLXBpdGNoIGZv
bnRzIHdlIGVuc3VyZSB0aGF0IGFsbCBjaGFyYWN0ZXJzIHRoYXQKQEAgLTE3NSw2ICsxODIsOSBA
QCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoIWN1cnJlbnRDaGFyYWN0ZXIpCisgICAgICAgICAg
ICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IG1heDxmbG9hdD4oMCwgLWdseXBoTWV0cmljcy5ib3Vu
ZGluZ0JveC54KCkpOworCiAgICAgICAgIC8vIEFkdmFuY2UgcGFzdCB0aGUgY2hhcmFjdGVyIHdl
IGp1c3QgZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1c3Rlckxlbmd0aDsKICAgICAgICAg
Y3VycmVudENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpAQCAtMjA1LDYgKzIxNSwxMCBAQCB2
b2lkIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICBnbHlw
aEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwgKHJ0bCA/IG9sZFdpZHRoICsgbGFzdFJvdW5k
aW5nV2lkdGggOiB3aWR0aCkpOwogCiAgICAgICAgIGxhc3RSb3VuZGluZ1dpZHRoID0gd2lkdGgg
LSBvbGRXaWR0aDsKKworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4
R2x5cGhCb3VuZGluZ0JveFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7Cisg
ICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94
WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAgIG1fbGFzdEdseXBoT3Zl
cmZsb3cgPSBtYXg8ZmxvYXQ+KDAsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgpIC0g
d2lkdGgpOwogICAgIH0KIAogICAgIG1fY3VycmVudENoYXJhY3RlciA9IGN1cnJlbnRDaGFyYWN0
ZXI7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkocmV2
aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3Ig
ewogICAgIHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wg
YWR2YW5jZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwogCisg
ICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBo
Qm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7
IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgZmlyc3RHbHlwaE92
ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdEdseXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9h
dCBsYXN0R2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7
IH0KKwogICAgIGNvbnN0IEZvbnQqIG1fZm9udDsKIAogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVu
OwpAQCAtNTEsNyArNTYsMTIgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogCiBwcml2YXRlOgog
ICAgIFVDaGFyMzIgbm9ybWFsaXplVm9pY2luZ01hcmtzKGludCBjdXJyZW50Q2hhcmFjdGVyKTsK
KwogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOwor
ICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CisgICAgZmxvYXQgbV9taW5HbHlwaEJv
dW5kaW5nQm94WTsKKyAgICBmbG9hdCBtX2ZpcnN0R2x5cGhPdmVyZmxvdzsKKyAgICBmbG9hdCBt
X2xhc3RHbHlwaE92ZXJmbG93OwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCShyZXZpc2lv
biA1NzA5MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29u
dHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDEwIEBAIENvbXBsZXhUZXh0
Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm8KICAgICAsIG1fY2hhcmFjdGVySW5DdXJyZW50
R2x5cGgoMCkKICAgICAsIG1fZmluYWxSb3VuZGluZ1dpZHRoKDApCiAgICAgLCBtX2ZhbGxiYWNr
Rm9udHMoZmFsbGJhY2tGb250cykKKyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFgobnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFgobnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFko
bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0Jv
eFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKICAgICAsIG1fbGFzdFJvdW5kaW5nR2x5
cGgoMCkKIHsKICAgICBtX3BhZGRpbmcgPSBtX3J1bi5wYWRkaW5nKCk7CkBAIC00MzgsNiArNDQy
LDcgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBocwogICAgICAgICBD
R0Zsb2F0IHJvdW5kZWRTcGFjZVdpZHRoID0gcm91bmRDR0Zsb2F0KGZvbnREYXRhLT5zcGFjZVdp
ZHRoKCkpOwogICAgICAgICBib29sIHJvdW5kc0FkdmFuY2VzID0gIW1fZm9udC5pc1ByaW50ZXJG
b250KCkgJiYgZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLnJvdW5kc0dseXBoQWR2YW5jZXMoKTsK
ICAgICAgICAgYm9vbCBoYXNFeHRyYVNwYWNpbmcgPSAobV9mb250LmxldHRlclNwYWNpbmcoKSB8
fCBtX2ZvbnQud29yZFNwYWNpbmcoKSB8fCBtX3BhZGRpbmcpICYmICFtX3J1bi5zcGFjaW5nRGlz
YWJsZWQoKTsKKyAgICAgICAgQ0dQb2ludCBnbHlwaE9yaWdpbiA9IENHUG9pbnRaZXJvOwogICAg
ICAgICBDRkluZGV4IGxhc3RDaGFyYWN0ZXJJbmRleCA9IG1fcnVuLmx0cigpID8gbnVtZXJpY19s
aW1pdHM8Q0ZJbmRleD46Om1pbigpIDogbnVtZXJpY19saW1pdHM8Q0ZJbmRleD46Om1heCgpOwog
ICAgICAgICBib29sIGlzTW9ub3RvbmljID0gdHJ1ZTsKIApAQCAtNTQxLDYgKzU0NiwxNiBAQCB2
b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzCiAgICAgICAgICAgICBhZHZh
bmNlLmhlaWdodCAqPSAtMTsKICAgICAgICAgICAgIG1fYWRqdXN0ZWRBZHZhbmNlcy5hcHBlbmQo
YWR2YW5jZSk7CiAgICAgICAgICAgICBtX2FkanVzdGVkR2x5cGhzLmFwcGVuZChnbHlwaCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIEdseXBoTWV0cmljcyBnbHlwaE1ldHJpY3MgPSBmb250
RGF0YS0+bWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAgICAgIGdseXBoTWV0cmljcy5i
b3VuZGluZ0JveC5tb3ZlKGdseXBoT3JpZ2luLngsIGdseXBoT3JpZ2luLnkpOworICAgICAgICAg
ICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WCA9IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hYLCBn
bHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueCgpKTsKKyAgICAgICAgICAgIG1fbWF4R2x5cGhCb3Vu
ZGluZ0JveFggPSBtYXgobV9tYXhHbHlwaEJvdW5kaW5nQm94WCwgZ2x5cGhNZXRyaWNzLmJvdW5k
aW5nQm94LnJpZ2h0KCkpOworICAgICAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1p
bihtX21pbkdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsK
KyAgICAgICAgICAgIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkgPSBtYXgobV9tYXhHbHlwaEJvdW5k
aW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LmJvdHRvbSgpKTsKKyAgICAgICAgICAg
IGdseXBoT3JpZ2luLnggKz0gYWR2YW5jZS53aWR0aDsKKyAgICAgICAgICAgIGdseXBoT3JpZ2lu
LnkgKz0gYWR2YW5jZS5oZWlnaHQ7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGxhc3RDaGFy
YWN0ZXJJbmRleCA9IGNoYXJhY3RlckluZGV4OwogICAgICAgICB9CiAgICAgICAgIGlmICghaXNN
b25vdG9uaWMpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4
dENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNjIsNiArNjIsMTEgQEAgcHVibGljOgogICAgIC8vIEV4dHJhIHdpZHRoIHRvIHRoZSBs
ZWZ0IG9mIHRoZSBsZWZ0bW9zdCBnbHlwaC4KICAgICBmbG9hdCBmaW5hbFJvdW5kaW5nV2lkdGgo
KSBjb25zdCB7IHJldHVybiBtX2ZpbmFsUm91bmRpbmdXaWR0aDsgfQogCisgICAgZmxvYXQgbWlu
R2x5cGhCb3VuZGluZ0JveFgoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hY
OyB9CisgICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0JveFgoKSBjb25zdCB7IHJldHVybiBtX21h
eEdseXBoQm91bmRpbmdCb3hYOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFkoKSBj
b25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgbWF4R2x5
cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRpbmdCb3hZOyB9
CisgICAgCiBwcml2YXRlOgogICAgIGNsYXNzIENvbXBsZXhUZXh0UnVuIDogcHVibGljIFJlZkNv
dW50ZWQ8Q29tcGxleFRleHRSdW4+IHsKICAgICBwdWJsaWM6CkBAIC0xNzMsNiArMTc4LDExIEBA
IHByaXZhdGU6CiAKICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIG1fZmFsbGJh
Y2tGb250czsKIAorICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQg
bV9tYXhHbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZ
OworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CisgICAgCiAgICAgdW5zaWduZWQg
bV9sYXN0Um91bmRpbmdHbHlwaDsKIH07CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkocmV2aXNpb24gNTcwOTEp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERh
dGEuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3Rk
OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0
Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBJbnRQb2ludCYgcG9pbnQs
IGludCBoLApAQCAtODMsOSArODUsMTUgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3Jh
cGhpY3NDb250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVu
LCBzdGFydFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0
KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIENvbXBs
ZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKHRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250
cyk7CisgICAgaWYgKGdseXBoT3ZlcmZsb3cpIHsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9w
ID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlw
aEJvdW5kaW5nQm94WSgpKSAtIGFzY2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90
dG9tID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBjZWlsZihjb250cm9sbGVyLm1h
eEdseXBoQm91bmRpbmdCb3hZKCkpIC0gZGVzY2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxv
dy0+bGVmdCA9IG1heDxpbnQ+KDAsIGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdC
b3hYKCkpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+cmlnaHQgPSBtYXg8aW50PigwLCBjZWls
Zihjb250cm9sbGVyLm1heEdseXBoQm91bmRpbmdCb3hYKCkgLSBjb250cm9sbGVyLnRvdGFsV2lk
dGgoKSkpOworICAgIH0KICAgICByZXR1cm4gY29udHJvbGxlci50b3RhbFdpZHRoKCk7CiB9CiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnRE
YXRhTWFjLm1tCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDcsMTcgKzQwNywy
NyBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgICAgIFtu
YW1lIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJNb25vdHlwZUNvcnNpdmEiXSAhPSBOU09yZGVy
ZWRTYW1lOwogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBo
KEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bU1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9k
ZSkgY29uc3QKIHsKLSAgICBOU0ZvbnQqIGZvbnQgPSBtX3BsYXRmb3JtRGF0YS5mb250KCk7Ci0g
ICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURhdGEubV9zaXplOworICAgIE5TRm9udCog
Zm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQoKTsKKyAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0
Zm9ybURhdGEoKS5tX3NpemU7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5lVHJh
bnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUgYWR2YW5j
ZTsKLSAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKG1fcGxhdGZvcm1EYXRh
LmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKKyAgICBpZiAoIXdrR2V0
R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBmb250LCAm
bSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY2Fj
aGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXpl
KTsKICAgICAgICAgYWR2YW5jZS53aWR0aCA9IDA7CiAgICAgfQotICAgIHJldHVybiBhZHZhbmNl
LndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNz
OworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50
aGV0aWNCb2xkT2Zmc2V0OworICAgIGlmIChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94
KSB7CisgICAgICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICAgICAgQ0dGb250R2V0R2x5cGhC
Qm94ZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCksICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsK
KyAgICAgICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6ZSAvIHVuaXRzUGVyRW0oKTsKKyAgICAg
ICAgbWV0cmljcy5ib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJvdW5k
aW5nQm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAg
ICAgIGlmIChtX3N5bnRoZXRpY0JvbGRPZmZzZXQpCisgICAgICAgICAgICBtZXRyaWNzLmJvdW5k
aW5nQm94LnNldFdpZHRoKG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgoKSArIG1fc3ludGhldGlj
Qm9sZE9mZnNldCk7CisgICAgfQorICAgIHJldHVybiBtZXRyaWNzOwogfQogCiAjaWYgVVNFKEFU
U1VJKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHJl
dmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJVbmlzY3JpYmVD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAordXNpbmcgbmFtZXNw
YWNlIHN0ZDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIEZvbnQ6OmNhblJldHVybkZh
bGxiYWNrRm9udHNGb3JDb21wbGV4VGV4dCgpCkBAIC04OSwxMCArOTEsMTYgQEAgdm9pZCBGb250
OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250
ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93
KSBjb25zdAogewogICAgIFVuaXNjcmliZUNvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4s
IGZhbGxiYWNrRm9udHMpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZShydW4ubGVuZ3RoKCkpOwor
ICAgIGlmIChnbHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1h
eDxpbnQ+KGdseXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3Vu
ZGluZ0JveFkoKSkgLSBhc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9
IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlw
aEJvdW5kaW5nQm94WSgpKSAtIGRlc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmxl
ZnQgPSBtYXg8aW50PigwLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WCgp
KSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnJpZ2h0ID0gbWF4PGludD4oMCwgY2VpbGYoY29u
dHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WCgpIC0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFy
KCkpKTsKKyAgICB9CiAgICAgcmV0dXJuIGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogfQog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVG
b250RGF0YUNHV2luLmNwcAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2
LDEwICsxMjYsMTAgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbgog
ICAgIH0KIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChH
bHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1N
ZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUgbWV0cmljc01vZGUp
IGNvbnN0CiB7CiAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpKQotICAgICAgIHJldHVy
biB3aWR0aEZvckdESUdseXBoKGdseXBoKTsKKyAgICAgICByZXR1cm4gbWV0cmljc0ZvckdESUds
eXBoKGdseXBoKTsKIAogICAgIENHRm9udFJlZiBmb250ID0gbV9wbGF0Zm9ybURhdGEuY2dGb250
KCk7CiAgICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgpOwpAQCAtMTM5
LDggKzEzOSwxOCBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAg
ICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHJlYWwgc3VwcG9ydCBmb3IgcHJpbnRlciBmb250cy4K
ICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZTsKICAgICB3a0dldEdseXBoQWR2YW5jZXMo
Zm9udCwgbSwgbV9pc1N5c3RlbUZvbnQsIGlzUHJpbnRlckZvbnQsIGdseXBoLCBhZHZhbmNlKTsK
LQotICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAg
IEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBh
ZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIAorICAgIGlmIChtZXRy
aWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94KSB7CisgICAgICAgIENHUmVjdCBib3VuZGluZ0Jv
eDsKKyAgICAgICAgQ0dGb250R2V0R2x5cGhCQm94ZXMoZm9udCwgJmdseXBoLCAxLCAmYm91bmRp
bmdCb3gpOworICAgICAgICBDR0Zsb2F0IHNjYWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgp
OworICAgICAgICBtZXRyaWNzLmJvdW5kaW5nQm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zv
cm0oYm91bmRpbmdCb3gsIENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHNjYWxlLCAtc2NhbGUp
KTsKKyAgICAgICAgaWYgKG1fc3ludGhldGljQm9sZE9mZnNldCkKKyAgICAgICAgICAgIG1ldHJp
Y3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0cmljcy5ib3VuZGluZ0JveC53aWR0aCgpICsgbV9z
eW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250
RGF0YVdpbi5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzksMTYgKzE3
OSwyNSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgUmVsZWFz
ZURDKDAsIGRjKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OndpZHRoRm9yR0RJR2x5cGgo
R2x5cGggZ2x5cGgpIGNvbnN0CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NG
b3JHRElHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAgICBIREMgaGRjID0gR2V0REMoMCk7
CiAgICAgU2V0R3JhcGhpY3NNb2RlKGhkYywgR01fQURWQU5DRUQpOwogICAgIEhHRElPQkogb2xk
Rm9udCA9IFNlbGVjdE9iamVjdChoZGMsIG1fcGxhdGZvcm1EYXRhLmhmb250KCkpOwotICAgIGlu
dCB3aWR0aDsKLSAgICBHZXRDaGFyV2lkdGhJKGhkYywgZ2x5cGgsIDEsIDAsICZ3aWR0aCk7CisK
KyAgICBHTFlQSE1FVFJJQ1MgZ2RpTWV0cmljczsKKyAgICBzdGF0aWMgY29uc3QgTUFUMiBpZGVu
dGl0eSA9IHsgMCwgMSwgIDAsIDAsICAwLCAwLCAgMCwgMSB9OworICAgIEdldEdseXBoT3V0bGlu
ZShoZGMsIGdseXBoLCBHR09fTUVUUklDUyB8IEdHT19HTFlQSF9JTkRFWCwgJmdkaU1ldHJpY3Ms
IDAsIDAsICZpZGVudGl0eSk7CisKICAgICBTZWxlY3RPYmplY3QoaGRjLCBvbGRGb250KTsKICAg
ICBSZWxlYXNlREMoMCwgaGRjKTsKLSAgICByZXR1cm4gd2lkdGggKyBtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQ7CisKKyAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRyaWNzOworICAgIGdseXBoTWV0cmlj
cy5ob3Jpem9udGFsQWR2YW5jZSA9IGdkaU1ldHJpY3MuZ21DZWxsSW5jWCArIG1fc3ludGhldGlj
Qm9sZE9mZnNldDsKKyAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoZ2Rp
TWV0cmljcy5nbXB0R2x5cGhPcmlnaW4ueCwgLWdkaU1ldHJpY3MuZ21wdEdseXBoT3JpZ2luLnks
CisgICAgICAgIGdkaU1ldHJpY3MuZ21CbGFja0JveFggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQs
IGdkaU1ldHJpY3MuZ21CbGFja0JveFkpOworCisgICAgcmV0dXJuIGdseXBoTWV0cmljczsKIH0K
IAogU0NSSVBUX0ZPTlRQUk9QRVJUSUVTKiBTaW1wbGVGb250RGF0YTo6c2NyaXB0Rm9udFByb3Bl
cnRpZXMoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2Ny
aWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IFJlYXJjaGl0ZWN0IHRoaXMgdG8gYmUgbW9yZSBs
aWtlIFdpZHRoSXRlcmF0b3IgaW4gRm9udC5jcHAuICBIYXZlIGFuIGFkdmFuY2UoKSBtZXRob2QK
QEAgLTM5LDE2ICs0MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyB0YWtlIHRoZSBHbHlw
aEJ1ZmZlciBhcyBhbiBhcmcgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHBvcHVsYXRlIHRoZSBn
bHlwaCBidWZmZXIgd2hlbgogLy8gbWVhc3VyaW5nLgogVW5pc2NyaWJlQ29udHJvbGxlcjo6VW5p
c2NyaWJlQ29udHJvbGxlcihjb25zdCBGb250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykKLTogbV9mb250KCpm
b250KQotLCBtX3J1bihydW4pCi0sIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQotLCBt
X2VuZChydW4ubGVuZ3RoKCkpCi0sIG1fY3VycmVudENoYXJhY3RlcigwKQotLCBtX3J1bldpZHRo
U29GYXIoMCkKLSwgbV9jb21wdXRpbmdPZmZzZXRQb3NpdGlvbihmYWxzZSkKLSwgbV9pbmNsdWRl
UGFydGlhbEdseXBocyhmYWxzZSkKLSwgbV9vZmZzZXRYKDApCi0sIG1fb2Zmc2V0UG9zaXRpb24o
MCkKKyAgICA6IG1fZm9udCgqZm9udCkKKyAgICAsIG1fcnVuKHJ1bikKKyAgICAsIG1fZmFsbGJh
Y2tGb250cyhmYWxsYmFja0ZvbnRzKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1l
cmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94
WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5n
Qm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9lbmQocnVuLmxlbmd0
aCgpKQorICAgICwgbV9jdXJyZW50Q2hhcmFjdGVyKDApCisgICAgLCBtX3J1bldpZHRoU29GYXIo
MCkKKyAgICAsIG1fY29tcHV0aW5nT2Zmc2V0UG9zaXRpb24oZmFsc2UpCisgICAgLCBtX2luY2x1
ZGVQYXJ0aWFsR2x5cGhzKGZhbHNlKQorICAgICwgbV9vZmZzZXRYKDApCisgICAgLCBtX29mZnNl
dFBvc2l0aW9uKDApCiB7CiAgICAgbV9wYWRkaW5nID0gbV9ydW4ucGFkZGluZygpOwogICAgIGlm
ICghbV9wYWRkaW5nKQpAQCAtMzc0LDYgKzM4MCwxNCBAQCBib29sIFVuaXNjcmliZUNvbnRyb2xs
ZXI6OnNoYXBlQW5kUGxhY2VJCiAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBm
b250RGF0YSwgYWR2YW5jZSwgJnNpemUpOwogICAgICAgICB9CiAKKyAgICAgICAgR2x5cGhNZXRy
aWNzIGdseXBoTWV0cmljcyA9IGZvbnREYXRhLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAg
ICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gubW92ZShtX2dseXBoT3JpZ2luLngoKSwgbV9n
bHlwaE9yaWdpbi55KCkpOworICAgICAgICBtX21pbkdseXBoQm91bmRpbmdCb3hYID0gbWluKG1f
bWluR2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC54KCkpOworICAg
ICAgICBtX21heEdseXBoQm91bmRpbmdCb3hYID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgs
IGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgpKTsKKyAgICAgICAgbV9taW5HbHlwaEJv
dW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91
bmRpbmdCb3gueSgpKTsKKyAgICAgICAgbV9tYXhHbHlwaEJvdW5kaW5nQm94WSA9IG1heChtX21h
eEdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3guYm90dG9tKCkpOwor
ICAgICAgICBtX2dseXBoT3JpZ2luLm1vdmUoYWR2YW5jZSArIG9mZnNldFgsIC1vZmZzZXRZKTsK
KwogICAgICAgICAvLyBNdXRhdGUgdGhlIGdseXBoIGFycmF5IHRvIGNvbnRhaW4gb3VyIGFsdGVy
ZWQgYWR2YW5jZXMuCiAgICAgICAgIGlmIChtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKQogICAg
ICAgICAgICAgYWR2YW5jZXNba10gPSBhZHZhbmNlOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuaAkocmV2aXNpb24gNTcw
OTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDExIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1
cm5zIHRoZSB3aWR0aCBvZiBldmVyeXRoaW5nIHdlJ3ZlIGNvbnN1bWVkIHNvIGZhci4KICAgICBm
bG9hdCBydW5XaWR0aFNvRmFyKCkgY29uc3QgeyByZXR1cm4gbV9ydW5XaWR0aFNvRmFyOyB9CiAK
KyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5
cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtaW5HbHlwaEJv
dW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFk7IH0KKyAg
ICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhC
b3VuZGluZ0JveFk7IH0KKwogcHJpdmF0ZTogICAgCiAgICAgdm9pZCByZXNldENvbnRyb2xBbmRT
dGF0ZSgpOwogCkBAIC02MSw2ICs2NiwxMSBAQCBwcml2YXRlOiAgICAKICAgICBjb25zdCBGb250
JiBtX2ZvbnQ7CiAgICAgY29uc3QgVGV4dFJ1biYgbV9ydW47CiAgICAgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBtX2ZhbGxiYWNrRm9udHM7CisgICAgRmxvYXRQb2ludCBtX2dseXBo
T3JpZ2luOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9t
YXhHbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOwor
ICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CiAKICAgICBTQ1JJUFRfQ09OVFJPTCBt
X2NvbnRyb2w7CiAgICAgU0NSSVBUX1NUQVRFIG1fc3RhdGU7CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQg
SW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0hvcml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0
dGVyU3BhY2luZyA9IG1pbigwLCAoaW50KXJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5s
ZXR0ZXJTcGFjaW5nKCkpOwogICAgICAgICAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4
UG9zICsgdGV4dC0+d2lkdGgoKSAtIGxldHRlclNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cp
OwogCi0gICAgICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7
Ci0gICAgICAgICAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBs
ZXR0ZXJTcGFjaW5nOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9
IHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisg
ICAgICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5
cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCBy
aWdodEdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5
cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAg
ICAgICAgICAgaW50IGNoaWxkT3ZlcmZsb3dSaWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAg
LTQxMiwzNSArNDE0LDM1IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hI
ZWkKIAogICAgICAgICBpbnQgbGluZUhlaWdodDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAg
ICAgICBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZl
Y3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAo
Y3Vyci0+aXNJbmxpbmVUZXh0Qm94KCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVU
ZXh0Qm94Kj4oY3VyciktPnRha2VGYWxsYmFja0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAg
ICB1c2VkRm9udHMgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNr
Rm9udHMoKTsKIAotICAgICAgICBpZiAoIXVzZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgIHVzZWRGb250cy5hcHBlbmQoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUp
LT5mb250KCkucHJpbWFyeUZvbnQoKSk7CisgICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAg
ICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RM
aW5lKS0+Zm9udCgpLnByaW1hcnlGb250KCkpOwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExp
bmVIZWlnaHQgPSBjdXJyLT5yZW5kZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdo
dCgpOwogICAgICAgICAgICAgaWYgKHBhcmVudExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAg
ICAgICAgICAgICAgICAgaW50IGJhc2VsaW5lVG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAg
IGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVz
ZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRp
bmcgPSAodXNlZEZvbnRzW2ldLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQo
KSAtIHVzZWRGb250c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJh
c2VsaW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50
KCkpOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5l
VG9Cb3R0b20sIHVzZWRGb250c1tpXS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNj
ZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSkt
PmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+
YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1h
eChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRv
bSwgdXNlZEZvbnRzLT5hdChpKS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFz
Y2VudCgpIC0gdXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBi
YXNlbGluZVRvQm90dG9tOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0
LmlzUGVyY2VudCgpKSB7CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVI
ZWlnaHQuY2FsY01pblZhbHVlKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkp
OwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAg
ICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50
KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBi
YXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2Vu
dCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxp
bmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSkt
PmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNl
bGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVp
Z2h0ID0gcGFyZW50TGluZUhlaWdodC52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5l
ID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5z
aXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGlu
ZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQo
KSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFs
ZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkp
LT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAg
ICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9u
dHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgewpAQCAtNTYyLDEwICs1NjQsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94
Ojpjb21wdXRlVmVydGljYWxPdmVyZgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg
ICAgICAgICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5z
dHlsZSgpLT50ZXh0U3Ryb2tlV2lkdGgoKSAvIDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgaW50IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAg
ICBpbnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAg
CisKKyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2Fz
dDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAg
aW50IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/
IGdseXBoT3ZlcmZsb3ctPnRvcCA6IDApOworICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3Zl
cmZsb3cgPSBzdHJva2VPdmVyZmxvdyArIChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tIDogMCk7CisKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5
cGhPdmVyZmxvdzsKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9t
R2x5cGhPdmVyZmxvdzsKICAgICAgICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQt
PnN0eWxlKCktPnRleHRTaGFkb3coKTsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsK
SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA1NzA5MSkKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDI5LDMwICsxMDI5LDQ4IEBAIGJvb2wgSW5saW5lVGV4dEJveDo6Y29udGFpbnNDYXJldE9mZnNl
dCgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPElubGluZVRleHRCb3gq
LCBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiA+IEZhbGxiYWNrRm9udHNNYXA7Ci1zdGF0
aWMgRmFsbGJhY2tGb250c01hcCogZ0ZhbGxiYWNrRm9udHNNYXA7Ci0KIHZvaWQgSW5saW5lVGV4
dEJveDo6c2V0RmFsbGJhY2tGb250cyhjb25zdCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4mIGZhbGxiYWNrRm9udHMpCiB7Ci0gICAgaWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAgICAg
ICAgZ0ZhbGxiYWNrRm9udHNNYXAgPSBuZXcgRmFsbGJhY2tGb250c01hcDsKKyAgICBpZiAoIXNf
Z2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAgPSBuZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNN
YXA7CisKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQg
PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWly
KFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0
OworICAgIEFTU0VSVChpdC0+c2Vjb25kLmZpcnN0LmlzRW1wdHkoKSk7CisgICAgY29weVRvVmVj
dG9yKGZhbGxiYWNrRm9udHMsIGl0LT5zZWNvbmQuZmlyc3QpOworfQorCitWZWN0b3I8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogSW5saW5lVGV4dEJveDo6ZmFsbGJhY2tGb250cygpIGNvbnN0Cit7
CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gZ0ZhbGxiYWNr
Rm9udHNNYXAtPnNldCh0aGlzLCBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpKS5maXJz
dDsKLSAgICBBU1NFUlQoaXQtPnNlY29uZC5pc0VtcHR5KCkpOwotICAgIGNvcHlUb1ZlY3Rvcihm
YWxsYmFja0ZvbnRzLCBpdC0+c2Vjb25kKTsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tG
b250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFw
LT5maW5kKHRoaXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gJml0LT5zZWNv
bmQuZmlyc3Q7CiB9CiAKLXZvaWQgSW5saW5lVGV4dEJveDo6dGFrZUZhbGxiYWNrRm9udHMoVmVj
dG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCitJbmxpbmVUZXh0Qm94
OjpHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCogSW5saW5lVGV4dEJveDo6c19nbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCA9IDA7CisKK3ZvaWQgSW5saW5lVGV4dEJveDo6
c2V0R2x5cGhPdmVyZmxvdyhjb25zdCBHbHlwaE92ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewot
ICAgIGlmICghZ0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIXNf
Z2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAgPSBuZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNN
YXA7CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IGdGYWxsYmFja0ZvbnRz
TWFwLT5maW5kKHRoaXMpOwotICAgIGlmIChpdCA9PSBnRmFsbGJhY2tGb250c01hcC0+ZW5kKCkp
Ci0gICAgICAgIHJldHVybjsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6
aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhp
cywgbWFrZV9wYWlyKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZs
b3coKSkpLmZpcnN0OworICAgIGl0LT5zZWNvbmQuc2Vjb25kID0gZ2x5cGhPdmVyZmxvdzsKK30K
KworR2x5cGhPdmVyZmxvdyogSW5saW5lVGV4dEJveDo6Z2x5cGhPdmVyZmxvdygpIGNvbnN0Cit7
CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3Ig
aXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAg
IGlmIChpdCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBmYWxsYmFja0ZvbnRzLnN3YXAoaXQtPnNlY29uZCk7Ci0g
ICAgZ0ZhbGxiYWNrRm9udHNNYXAtPnJlbW92ZShpdCk7CisgICAgcmV0dXJuICZpdC0+c2Vjb25k
LnNlY29uZDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDE2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG9mZnNldFJ1bihpbnQgZCkgeyBtX3N0YXJ0ICs9IGQ7IH0KIAogICAgIHZvaWQgc2V0
RmFsbGJhY2tGb250cyhjb25zdCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mKTsKLSAg
ICB2b2lkIHRha2VGYWxsYmFja0ZvbnRzKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7
CisgICAgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMoKSBjb25z
dDsKKworICAgIHZvaWQgc2V0R2x5cGhPdmVyZmxvdyhjb25zdCBHbHlwaE92ZXJmbG93Jik7Cisg
ICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdygpIGNvbnN0OworCisgICAgc3RhdGljIHZv
aWQgY2xlYXJHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKCkKKyAgICB7CisgICAgICAg
IGlmIChzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICAgICAgc19n
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+Y2xlYXIoKTsKKyAgICB9CiAKICAgICB1
bnNpZ25lZCBzaG9ydCB0cnVuY2F0aW9uKCkgeyByZXR1cm4gbV90cnVuY2F0aW9uOyB9CiAKQEAg
LTEyOSw2ICsxMzgsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNob3J0IG1fdHJ1bmNhdGlv
bjsgLy8gV2hlcmUgdG8gdHJ1bmNhdGUgd2hlbiB0ZXh0IG92ZXJmbG93IGlzIGFwcGxpZWQuICBX
ZSB1c2Ugc3BlY2lhbCBjb25zdGFudHMgdG8KICAgICAgICAgICAgICAgICAgICAgICAvLyBkZW5v
dGUgbm8gdHJ1bmNhdGlvbiAodGhlIHdob2xlIHJ1biBwYWludHMpIGFuZCBmdWxsIHRydW5jYXRp
b24gKG5vdGhpbmcgcGFpbnRzIGF0IGFsbCkuCiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3Qg
SW5saW5lVGV4dEJveCosIHBhaXI8VmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4sIEdseXBo
T3ZlcmZsb3c+ID4gR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisgICAgc3RhdGlj
IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKiBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludENvbXBvc2l0aW9uQmFj
a2dyb3VuZChHcmFwaGljc0NvbnRleHQqLCBpbnQgdHgsIGludCB0eSwgUmVuZGVyU3R5bGUqLCBj
b25zdCBGb250JiwgaW50IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9j
dW1lbnRNYXJrZXJzKEdyYXBoaWNzQ29udGV4dCosIGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHls
ZSosIGNvbnN0IEZvbnQmLCBib29sIGJhY2tncm91bmQpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0Miw3ICszNDIsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0
CiAgICAgICAgICAgICAgICAgbmVlZHNXb3JkU3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJ0
LT5jaGFyYWN0ZXJzKClbci0+bV9zdG9wIC0gMV0pICYmIHItPm1fc3RvcCA9PSBsZW5ndGg7ICAg
ICAgICAgIAogICAgICAgICAgICAgfQogICAgICAgICAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+IGZhbGxiYWNrRm9udHM7Ci0gICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgo
cnQtPndpZHRoKHItPm1fc3RhcnQsIHItPm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBm
aXJzdExpbmUsICZmYWxsYmFja0ZvbnRzKSk7CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGds
eXBoT3ZlcmZsb3c7CisgICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHIt
Pm1fc3RhcnQsIHItPm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZm
YWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdykpOwogICAgICAgICAgICAgaWYgKCFmYWxsYmFj
a0ZvbnRzLmlzRW1wdHkoKQogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICAgICAgICAgICYm
ICFpc1NWR1RleHQoKQpAQCAtMzUxLDYgKzM1MiwxNSBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21w
dXRlSG9yaXpvbnRhbFBvc2l0CiAgICAgICAgICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1Rl
eHQoKSk7CiAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1f
Ym94KS0+c2V0RmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKTsKICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmICgoZ2x5cGhPdmVyZmxvdy50b3AgfHwgZ2x5cGhPdmVyZmxvdy5ib3R0b20g
fHwgZ2x5cGhPdmVyZmxvdy5sZWZ0IHx8IGdseXBoT3ZlcmZsb3cucmlnaHQpCisjaWYgRU5BQkxF
KFNWRykKKyAgICAgICAgICAgICAgICAgICAgJiYgIWlzU1ZHVGV4dCgpCisjZW5kaWYKKyAgICAg
ICAgICAgICkgeworICAgICAgICAgICAgICAgIEFTU0VSVChyLT5tX2JveC0+aXNUZXh0KCkpOwor
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihyLT5tX2JveCktPnNl
dEdseXBoT3ZlcmZsb3coZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAKICAgICAgICAgfSBlbHNlIGlmICghci0+bV9vYmplY3QtPmlzUmVuZGVySW5saW5lKCkpIHsK
ICAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5kZXJCb3goci0+bV9vYmpl
Y3QpOwogICAgICAgICAgICAgcmVuZGVyQm94LT5jYWxjV2lkdGgoKTsKQEAgLTU4MCw2ICs1OTAs
NyBAQCBSb290SW5saW5lQm94KiBSZW5kZXJCbG9jazo6Y3JlYXRlTGluZUJvCiAgICAgICAgICAg
ICBsaW5lQm94LT5jb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3JtYXRpb24oKTsKICNlbmRp
ZgogCisgICAgICAgICAgICBJbmxpbmVUZXh0Qm94OjpjbGVhckdseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRNYXAoKTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAvLyBIaWdobGln
aHQgYWN0cyBhcyBhbiBvdmVyZmxvdyBpbmZsYXRpb24uCiAgICAgICAgICAgICBpZiAoc3R5bGUo
KS0+aGlnaGxpZ2h0KCkgIT0gbnVsbEF0b20pCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5v
ZGUqIG5vZGUsIFBhc3NSCiAgICAgICwgbV9saW5lc0RpcnR5KGZhbHNlKQogICAgICAsIG1fY29u
dGFpbnNSZXZlcnNlZFRleHQoZmFsc2UpCiAgICAgICwgbV9pc0FsbEFTQ0lJKG1fdGV4dC5jb250
YWluc09ubHlBU0NJSSgpKQotICAgICAsIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMoZmFs
c2UpCisgICAgICwgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMoZmFs
c2UpCiB7CiAgICAgQVNTRVJUKG1fdGV4dCk7CiAKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIFJl
bmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmCiAgICAgLy8gbmVlZCB0byByZWxheW91
dC4KICAgICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQpIHsKICAgICAgICAgc2V0
TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Ci0gICAgICAgIG1fa25vd25Ob3RUb1Vz
ZUZhbGxiYWNrRm9udHMgPSBmYWxzZTsKKyAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dB
bmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsKICAgICB9CiAKICAgICBFVGV4dFRyYW5zZm9ybSBv
bGRUcmFuc2Zvcm0gPSBvbGRTdHlsZSA/IG9sZFN0eWxlLT50ZXh0VHJhbnNmb3JtKCkgOiBUVE5P
TkU7CkBAIC00NjUsNyArNDY1LDcgQEAgSW50UmVjdCBSZW5kZXJUZXh0Ojpsb2NhbENhcmV0UmVj
dChJbmxpbgogICAgIHJldHVybiBJbnRSZWN0KGxlZnQsIHRvcCwgY2FyZXRXaWR0aCwgaGVpZ2h0
KTsKIH0KIAotQUxXQVlTX0lOTElORSBpbnQgUmVuZGVyVGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29u
c3QgRm9udCYgZiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorQUxXQVlTX0lOTElORSBpbnQg
UmVuZGVyVGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYgZiwgaW50IHN0YXJ0LCBpbnQg
bGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIGlmIChmLmlz
Rml4ZWRQaXRjaCgpICYmICFmLmlzU21hbGxDYXBzKCkgJiYgbV9pc0FsbEFTQ0lJKSB7CiAgICAg
ICAgIGludCBtb25vc3BhY2VDaGFyYWN0ZXJXaWR0aCA9IGYuc3BhY2VXaWR0aCgpOwpAQCAtNDk3
LDcgKzQ5Nyw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUMKICAg
ICAgICAgcmV0dXJuIHc7CiAgICAgfQogCi0gICAgcmV0dXJuIGYud2lkdGgoVGV4dFJ1bih0ZXh0
KCktPmNoYXJhY3RlcnMoKSArIHN0YXJ0LCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJh
Y2tGb250cyk7CisgICAgcmV0dXJuIGYud2lkdGgoVGV4dFJ1bih0ZXh0KCktPmNoYXJhY3RlcnMo
KSArIHN0YXJ0LCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cywgZ2x5cGhP
dmVyZmxvdyk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGxl
YWRXaWR0aCwKQEAgLTU2OCw3ICs1NjgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnRyaW1tZWRQcmVm
V2lkdGhzKGludCBsCiAgICAgICAgICAgICAgICAgbGluZWxlbisrOwogCiAgICAgICAgICAgICBp
ZiAobGluZWxlbikgewotICAgICAgICAgICAgICAgIGVuZE1heFcgPSB3aWR0aEZyb21DYWNoZShm
LCBpLCBsaW5lbGVuLCBsZWFkV2lkdGggKyBlbmRNYXhXLCAwKTsKKyAgICAgICAgICAgICAgICBl
bmRNYXhXID0gd2lkdGhGcm9tQ2FjaGUoZiwgaSwgbGluZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4
VywgMCwgMCk7CiAgICAgICAgICAgICAgICAgaWYgKGZpcnN0TGluZSkgewogICAgICAgICAgICAg
ICAgICAgICBmaXJzdExpbmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgbGVhZFdpZHRo
ID0gMDsKQEAgLTYxMywxNCArNjEzLDE1IEBAIGludCBSZW5kZXJUZXh0OjptYXhQcmVmV2lkdGgo
KSBjb25zdAogdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoKQog
ewogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOwotICAg
IGNhbGNQcmVmV2lkdGhzKGxlYWRXaWR0aCwgZmFsbGJhY2tGb250cyk7Ci0gICAgaWYgKGZhbGxi
YWNrRm9udHMuaXNFbXB0eSgpKQotICAgICAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRz
ID0gdHJ1ZTsKKyAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7CisgICAgY2FsY1ByZWZX
aWR0aHMobGVhZFdpZHRoLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKKyAgICBpZiAo
ZmFsbGJhY2tGb250cy5pc0VtcHR5KCkgJiYgIWdseXBoT3ZlcmZsb3cubGVmdCAmJiAhZ2x5cGhP
dmVyZmxvdy5yaWdodCAmJiAhZ2x5cGhPdmVyZmxvdy50b3AgJiYgIWdseXBoT3ZlcmZsb3cuYm90
dG9tKQorICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9
IHRydWU7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0
aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQordm9pZCBS
ZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZs
b3cpCiB7Ci0gICAgQVNTRVJUKG1faGFzVGFiIHx8IHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tu
b3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKTsKKyAgICBBU1NFUlQobV9oYXNUYWIgfHwgcHJlZldp
ZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRz
KTsKIAogICAgIG1fbWluV2lkdGggPSAwOwogICAgIG1fYmVnaW5NaW5XaWR0aCA9IDA7CkBAIC02
NTAsNiArNjUxLDggQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAog
ICAgIGludCBuZXh0QnJlYWthYmxlID0gLTE7CiAgICAgaW50IGxhc3RXb3JkQm91bmRhcnkgPSAw
OwogCisgICAgaW50IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPSAtMTsKKwogICAgIGJvb2wgYnJl
YWtOQlNQID0gc3R5bGUoKS0+YXV0b1dyYXAoKSAmJiBzdHlsZSgpLT5uYnNwTW9kZSgpID09IFNQ
QUNFOwogICAgIGJvb2wgYnJlYWtBbGwgPSAoc3R5bGUoKS0+d29yZEJyZWFrKCkgPT0gQnJlYWtB
bGxXb3JkQnJlYWsgfHwgc3R5bGUoKS0+d29yZEJyZWFrKCkgPT0gQnJlYWtXb3JkQnJlYWspICYm
IHN0eWxlKCktPmF1dG9XcmFwKCk7CiAKQEAgLTY5Miw3ICs2OTUsOSBAQCB2b2lkIFJlbmRlclRl
eHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5
Kys7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfSBlbHNlIGlmIChjID09IHNvZnRI
eXBoZW4pIHsKLSAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBs
YXN0V29yZEJvdW5kYXJ5LCBpIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1h
eFdpZHRoLCAmZmFsbGJhY2tGb250cyk7CisgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lk
dGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaSAtIGxhc3RXb3JkQm91bmRhcnksIGxl
YWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsK
KyAgICAgICAgICAgIGlmIChmaXJzdEdseXBoTGVmdE92ZXJmbG93IDwgMCkKKyAgICAgICAgICAg
ICAgICBmaXJzdEdseXBoTGVmdE92ZXJmbG93ID0gZ2x5cGhPdmVyZmxvdy5sZWZ0OwogICAgICAg
ICAgICAgbGFzdFdvcmRCb3VuZGFyeSA9IGkgKyAxOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KQEAgLTcxNSwxMyArNzIwLDE1IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZX
aWR0aHMoaW50IGxlYWQKIAogICAgICAgICBpbnQgd29yZExlbiA9IGogLSBpOwogICAgICAgICBp
ZiAod29yZExlbikgewotICAgICAgICAgICAgaW50IHcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCB3
b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAg
ICAgICAgIGludCB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgaSwgd29yZExlbiwgbGVhZFdpZHRoICsg
Y3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAg
ICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0
R2x5cGhMZWZ0T3ZlcmZsb3cgPSBnbHlwaE92ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBjdXJy
TWluV2lkdGggKz0gdzsKICAgICAgICAgICAgIGlmIChiZXR3ZWVuV29yZHMpIHsKICAgICAgICAg
ICAgICAgICBpZiAobGFzdFdvcmRCb3VuZGFyeSA9PSBpKQogICAgICAgICAgICAgICAgICAgICBj
dXJyTWF4V2lkdGggKz0gdzsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
ICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBq
IC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tG
b250cyk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNo
ZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBqIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsg
Y3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwogICAgICAgICAg
ICAgICAgIGxhc3RXb3JkQm91bmRhcnkgPSBqOwogICAgICAgICAgICAgfQogCkBAIC03NzQsNiAr
NzgxLDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAg
ICAgICAgICAgIGN1cnJNYXhXaWR0aCA9IDA7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSBmLndpZHRoKFRleHRSdW4odHh0ICsgaSwgMSwgYWxs
b3dUYWJzKCksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCkpOworICAgICAgICAgICAgICAgIGds
eXBoT3ZlcmZsb3cucmlnaHQgPSAwOwogICAgICAgICAgICAgICAgIG5lZWRzV29yZFNwYWNpbmcg
PSBpc1NwYWNlICYmICFwcmV2aW91c0NoYXJhY3RlcklzU3BhY2UgJiYgaSA9PSBsZW4gLSAxOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJUKGxhc3RXb3JkQm91bmRhcnkgPT0gaSk7
CkBAIC03ODEsNiArNzg5LDkgQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQg
bGVhZAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cg
PiAwKQorICAgICAgICBnbHlwaE92ZXJmbG93LmxlZnQgPSBmaXJzdEdseXBoTGVmdE92ZXJmbG93
OworCiAgICAgaWYgKChuZWVkc1dvcmRTcGFjaW5nICYmIGxlbiA+IDEpIHx8IChpZ25vcmluZ1Nw
YWNlcyAmJiAhZmlyc3RXb3JkKSkKICAgICAgICAgY3Vyck1heFdpZHRoICs9IHdvcmRTcGFjaW5n
OwogCkBAIC0xMDU2LDcgKzEwNjcsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnNldFRleHQoUGFzc1Jl
ZlB0cjxTdHJpCiAKICAgICBzZXRUZXh0SW50ZXJuYWwodGV4dCk7CiAgICAgc2V0TmVlZHNMYXlv
dXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Ci0gICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250
cyA9IGZhbHNlOworICAgIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRz
ID0gZmFsc2U7CiAgICAgCiAgICAgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSA9IGRvY3Vt
ZW50KCktPmF4T2JqZWN0Q2FjaGUoKTsKICAgICBpZiAoYXhPYmplY3RDYWNoZS0+YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKQEAgLTExMjIsNyArMTEzMyw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6cG9z
aXRpb25MaW5lQm94KElubGluZUIKICAgICBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0IHw9IHMtPmRp
cmVjdGlvbigpID09IFJUTDsKIH0KIAotdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExpbmUsIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK3Vuc2lnbmVkIFJl
bmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJv
b2wgZmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKGZyb20g
Pj0gdGV4dExlbmd0aCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTExMzAsMTAgKzExNDEsMTAg
QEAgdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbQogICAgIGlmIChmcm9t
ICsgbGVuID4gdGV4dExlbmd0aCgpKQogICAgICAgICBsZW4gPSB0ZXh0TGVuZ3RoKCkgLSBmcm9t
OwogCi0gICAgcmV0dXJuIHdpZHRoKGZyb20sIGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgp
LCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICByZXR1cm4gd2lkdGgoZnJvbSwgbGVuLCBzdHls
ZShmaXJzdExpbmUpLT5mb250KCksIHhQb3MsIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cp
OwogfQogCi11bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCBsZW4sIGNvbnN0IEZvbnQmIGYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmIGYsIGludCB4UG9zLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cq
IGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGZyb20gKyBsZW4gPD0gdGV4dExl
bmd0aCgpKTsKICAgICBpZiAoIWNoYXJhY3RlcnMoKSkKQEAgLTExNDMsMTggKzExNTQsMTkgQEAg
dW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbQogICAgIGlmICgmZiA9PSAm
c3R5bGUoKS0+Zm9udCgpKSB7CiAgICAgICAgIGlmICghc3R5bGUoKS0+cHJlc2VydmVOZXdsaW5l
KCkgJiYgIWZyb20gJiYgbGVuID09IHRleHRMZW5ndGgoKSkgewogICAgICAgICAgICAgaWYgKGZh
bGxiYWNrRm9udHMpIHsKLSAgICAgICAgICAgICAgICBpZiAocHJlZldpZHRoc0RpcnR5KCkgfHwg
IW1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMpIHsKLSAgICAgICAgICAgICAgICAgICAgY29u
c3RfY2FzdDxSZW5kZXJUZXh0Kj4odGhpcyktPmNhbGNQcmVmV2lkdGhzKDAsICpmYWxsYmFja0Zv
bnRzKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrRm9udHMtPmlzRW1wdHkoKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0
cnVlOworICAgICAgICAgICAgICAgIEFTU0VSVChnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAg
ICAgICBpZiAocHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5k
Tm9GYWxsYmFja0ZvbnRzKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVy
VGV4dCo+KHRoaXMpLT5jYWxjUHJlZldpZHRocygwLCAqZmFsbGJhY2tGb250cywgKmdseXBoT3Zl
cmZsb3cpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tGb250cy0+aXNFbXB0eSgp
ICYmICFnbHlwaE92ZXJmbG93LT5sZWZ0ICYmICFnbHlwaE92ZXJmbG93LT5yaWdodCAmJiAhZ2x5
cGhPdmVyZmxvdy0+dG9wICYmICFnbHlwaE92ZXJmbG93LT5ib3R0b20pCisgICAgICAgICAgICAg
ICAgICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IHRy
dWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHcgPSBtX21heFdpZHRoOwog
ICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdyA9IG1heFByZWZXaWR0aCgpOwog
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBs
ZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgdyA9IHdpZHRoRnJvbUNhY2hl
KGYsIGZyb20sIGxlbiwgeFBvcywgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiAgICAg
fSBlbHNlCi0gICAgICAgIHcgPSBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkg
KyBmcm9tLCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cyk7CisgICAgICAg
IHcgPSBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBmcm9tLCBsZW4sIGFs
bG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiAKICAgICBy
ZXR1cm4gdzsKIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHJldmlzaW9uIDU3MDkxKQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw4
ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV90ZXh0Lmxlbmd0aCgpOyB9IC8vIG5vbiB2aXJ0dWFsIGltcGxlbWVudGF0aW9uIG9mIGxl
bmd0aCgpCiAgICAgdm9pZCBwb3NpdGlvbkxpbmVCb3goSW5saW5lQm94Kik7CiAKLSAgICB2aXJ0
dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9u
dCYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMgPSAwKSBjb25zdDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OworICAgIHZp
cnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBG
b250JiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25l
ZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0
TGluZSA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbGlu
ZUhlaWdodChib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0
OwogCkBAIC0xMzMsNyArMTMzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgSW5saW5lVGV4
dEJveCogY3JlYXRlVGV4dEJveCgpOyAvLyBTdWJjbGFzc2VkIGJ5IFNWRy4KIAogcHJpdmF0ZToK
LSAgICB2b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cyk7CisgICAgdm9pZCBjYWxjUHJlZldpZHRocyhp
bnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9u
dHMsIEdseXBoT3ZlcmZsb3cmKTsKIAogICAgIC8vIE1ha2UgbGVuZ3RoKCkgcHJpdmF0ZSBzbyB0
aGF0IGNhbGxlcnMgdGhhdCBoYXZlIGEgUmVuZGVyVGV4dCoKICAgICAvLyB3aWxsIHVzZSB0aGUg
bW9yZSBlZmZpY2llbnQgdGV4dExlbmd0aCgpIGluc3RlYWQsIHdoaWxlCkBAIC0xNDYsNyArMTQ2
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlVGV4dEJveGVzKCk7CiAgICAgYm9vbCBj
b250YWluc09ubHlXaGl0ZXNwYWNlKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbikgY29uc3Q7
Ci0gICAgaW50IHdpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4s
IGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMp
IGNvbnN0OworICAgIGludCB3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiwgaW50IHN0YXJ0LCBp
bnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93KikgY29uc3Q7CiAgICAgYm9vbCBpc0FsbEFTQ0lJKCkgY29u
c3QgeyByZXR1cm4gbV9pc0FsbEFTQ0lJOyB9CiAKICAgICBpbnQgbV9taW5XaWR0aDsgLy8gaGVy
ZSB0byBtaW5pbWl6ZSBwYWRkaW5nIGluIDY0LWJpdC4KQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3IgcmVtb3ZlZCkuCiAgICAgYm9v
bCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0IDogMTsKICAgICBib29sIG1faXNBbGxBU0NJSSA6IDE7
Ci0gICAgbXV0YWJsZSBib29sIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgOiAxOworICAg
IG11dGFibGUgYm9vbCBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA6
IDE7CiB9OwogCiBpbmxpbmUgUmVuZGVyVGV4dCogdG9SZW5kZXJUZXh0KFJlbmRlck9iamVjdCog
b2JqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52577</attachid>
            <date>2010-04-05 14:59:16 -0700</date>
            <delta_ts>2010-04-06 14:39:14 -0700</delta_ts>
            <desc>Patch2</desc>
            <filename>bug6649734.txt</filename>
            <type>text/plain</type>
            <size>103494</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzA5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA0IEBACisyMDEwLTA0LTA1ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBwYXRjaCBoYXMgYmVlbiB3cml0dGVuIGJ5
IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgVGVzdDogZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlh
Y3JpdGljcy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZmxvYXRX
aWR0aCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2Vi
Q29yZTo6R2x5cGhPdmVyZmxvdzo6R2x5cGhPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpG
b250Ojp3aWR0aCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmNhblVzZUdseXBoQ2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhX
aWR0aE1hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HbHlwaFdpZHRoTWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFdpZHRoTWFwOjptZXRy
aWNzRm9yR2x5cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhXaWR0aE1hcDo6d2lkdGhGb3JH
bHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFdpZHRoTWFwOjpzZXRNZXRyaWNzRm9yR2x5
cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhXaWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2U6Om1l
dHJpY3NGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFdpZHRoTWFwOjpHbHlwaFdp
ZHRoUGFnZTo6c2V0TWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoV2lk
dGhNYXA6OkdseXBoV2lkdGhQYWdlOjpzZXRNZXRyaWNzRm9ySW5kZXgpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0
b3I6OldpZHRoSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6YWR2
YW5jZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAg
ICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6bWluR2x5cGhCb3VuZGluZ0JveFkpOgorICAg
ICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6Zmlyc3RHbHlwaE92ZXJmbG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6Omxhc3RHbHlwaE92ZXJmbG93KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm9sbGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhz
QW5kQWR2YW5jZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6
bWluR2x5cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250
cm9sbGVyOjptYXhHbHlwaEJvdW5kaW5nQm94WCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4
VGV4dENvbnRyb2xsZXI6Om1pbkdseXBoQm91bmRpbmdCb3hZKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6
OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxl
Rm9udERhdGE6Om1ldHJpY3NGb3JHRElHbHlwaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2Ny
aWJlQ29udHJvbGxlcjo6VW5pc2NyaWJlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpV
bmlzY3JpYmVDb250cm9sbGVyOjpzaGFwZUFuZFBsYWNlSXRlbSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlVuaXNjcmliZUNvbnRyb2xsZXI6Om1pbkdseXBoQm91bmRpbmdCb3hYKToKKyAgICAgICAgKFdl
YkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6Om1heEdseXBoQm91bmRpbmdCb3hYKToKKyAgICAg
ICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6Om1pbkdseXBoQm91bmRpbmdCb3hZKToK
KyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6Om1heEdseXBoQm91bmRpbmdC
b3hZKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSG9yaXpvbnRhbGx5KToKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlVmVydGljYWxPdmVyZmxvdyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lVGV4dEJveDo6c2V0RmFsbGJhY2tGb250cyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVUZXh0Qm94OjpmYWxsYmFja0ZvbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRC
b3g6OnNldEdseXBoT3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6
Z2x5cGhPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDoKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNsZWFyR2x5cGhPdmVyZmxvd0FuZEZhbGxi
YWNrRm9udE1hcCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUhvcml6b250YWxQb3Np
dGlvbnNGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVMaW5l
Qm94ZXNGb3JSZXNvbHZlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6UmVuZGVyVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Ojp3aWR0aEZyb21DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp0
cmltbWVkUHJlZldpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpjYWxjUHJl
ZldpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpzZXRUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dC5oOgorCiAyMDEwLTA0LTA1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNTcwMzAuCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmJhc2UuZXhwCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4
cAkod29ya2luZyBjb3B5KQpAQCAtOTA3LDcgKzkwNyw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291
cmNlUmVzcG9uc2VCYXNlMTdzdWcKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
M3VybEV2CiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZThtaW1lVHlwZUV2CiBf
X1pOSzdXZWJDb3JlMjZOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjZpc0RvbmVFdgotX19aTks3
V2ViQ29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRSdW5FUE4zV1RGN0hhc2hTZXRJUEtO
U18xNFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9FRU5TNF8xMEhhc2hUcmFpdHNJUzhf
RUVFRQorX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRSdW5FUE4zV1RG
N0hhc2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9FRU5TNF8xMEhh
c2hUcmFpdHNJUzhfRUVFRVBOU18xM0dseXBoT3ZlcmZsb3dFCiBfX1pOSzdXZWJDb3JlNEZvbnQx
MXByaW1hcnlGb250RXYKIF9fWk5LN1dlYkNvcmU0Rm9udDhkcmF3VGV4dEVQTlNfMTVHcmFwaGlj
c0NvbnRleHRFUktOU183VGV4dFJ1bkVSS05TXzEwRmxvYXRQb2ludEVpaQogX19aTks3V2ViQ29y
ZTRLVVJMMTFjcmVhdGVDRlVSTEV2CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJ
KHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3Jh
cGhpY3NDb250ZXh0KiBjb24KICAgICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1
biwgcG9pbnQsIGZyb20sIHRvKTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBU
ZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250
cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cq
IGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAgICBpZiAo
cHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCkBAIC0xOTgsNyArMTk4LDcgQEAgZmxvYXQgRm9u
dDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydQogICAgIH0KICNlbmRpZgogCi0gICAgcmV0
dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMpOworICAgIHJl
dHVybiBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92
ZXJmbG93KTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4s
IGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBpbnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5
cGhOYW1lKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHJldmlzaW9uIDU3
MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU2LDYgKzU2LDIxIEBAIHN0cnVjdCBHbHlwaERhdGE7CiAKIGNvbnN0IHVuc2lnbmVkIGRl
ZmF1bHRVbml0c1BlckVtID0gMTAwMDsKIAorc3RydWN0IEdseXBoT3ZlcmZsb3cgeworICAgIEds
eXBoT3ZlcmZsb3coKQorICAgICAgICA6IGxlZnQoMCkKKyAgICAgICAgLCByaWdodCgwKQorICAg
ICAgICAsIHRvcCgwKQorICAgICAgICAsIGJvdHRvbSgwKQorICAgIHsKKyAgICB9CisKKyAgICBp
bnQgbGVmdDsKKyAgICBpbnQgcmlnaHQ7CisgICAgaW50IHRvcDsKKyAgICBpbnQgYm90dG9tOwor
fTsKKwogY2xhc3MgRm9udCB7CiBwdWJsaWM6CiAgICAgRm9udCgpOwpAQCAtODEsOCArOTYsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSkgY29u
c3Q7CiAKLSAgICBpbnQgd2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRm
KGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzKSk7IH0KLSAgICBmbG9hdCBmbG9hdFdpZHRo
KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNr
Rm9udHMgPSAwKSBjb25zdDsKKyAgICBpbnQgd2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3QgeyByZXR1cm4gbHJvdW5kZihmbG9hdFdpZHRo
KHJ1biwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdykpOyB9CisgICAgZmxvYXQgZmxvYXRX
aWR0aChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0Owog
ICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBpbnQgZXh0cmFDaGFyc0F2
YWlsYWJsZSwgaW50JiBjaGFyc0NvbnN1bWVkLCBTdHJpbmcmIGdseXBoTmFtZSkgY29uc3Q7CiAK
ICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb24oY29uc3QgVGV4dFJ1biYsIGludCBwb3NpdGlvbiwg
Ym9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CkBAIC0xNTksNyArMTc0LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBj
b25zdDsKLSAgICBmbG9hdCBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYs
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0
OworICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVy
ZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JDb21wbGV4VGV4
dChjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhz
KSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUZXh0KGNvbnN0
IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGludCBoLCBpbnQgZnJvbSwgaW50IHRvKSBjb25z
dDsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAko
cmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0
aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw2ICsyMzQsMTEgQEAgYm9vbCBGb250OjpjYW5V
c2VHbHlwaENhY2hlKGNvbnN0IFRleHRSdQogICAgICAgICBpZiAoYyA8PSAweDE5NEYpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgaWYgKGMgPCAweDFFMDApCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGMgPD0gMHgyMDAwKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgCiAgICAgICAgIGlmIChjIDwgMHgyMEQwKSAgICAgLy8g
VSsyMEQwIHRocm91Z2ggVSsyMEZGIENvbWJpbmluZyBtYXJrcyBmb3Igc3ltYm9scwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChjIDw9IDB4MjBGRikKQEAgLTMxOCw2ICszMjMs
NyBAQCBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zCiB7CiAgICAgV2lk
dGhJdGVyYXRvciBpdCh0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMpOwogICAgIGl0LmFkdmFuY2Uo
cnVuLmxlbmd0aCgpLCBnbHlwaEJ1ZmZlcik7CisKICAgICByZXR1cm4gaXQubV9ydW5XaWR0aFNv
RmFyOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1h
cC5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsMTIgQEAgR2x5cGhXaWR0
aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdAogICAgICAgICBtX3BhZ2VzLT5zZXQocGFn
ZU51bWJlciwgcGFnZSk7CiAgICAgfQogCisgICAgR2x5cGhNZXRyaWNzIHVua25vd25NZXRyaWNz
OworICAgIHVua25vd25NZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gY0dseXBoV2lkdGhVbmtu
b3duOworCiAgICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGds
eXBoIHdpZHRoIHZhbHVlLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRo
UGFnZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlw
aFdpZHRoVW5rbm93bik7CisgICAgICAgIHBhZ2UtPnNldE1ldHJpY3NGb3JJbmRleChpLCB1bmtu
b3duTWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFnZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWZuZGVmIEdseXBoV2lkdGhNYXBfaAogI2RlZmluZSBHbHlwaFdpZHRoTWFw
X2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4K
QEAgLTM5LDM0ICs0MCw0NCBAQCB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOwogCiBjb25z
dCBmbG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAtMTsKIAorc3RydWN0IEdseXBoTWV0cmljcyB7
CisgICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94
OworfTsKKwogY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJs
aWM6CiAgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxsZWRQcmltYXJ5UGFnZShmYWxzZSkgeyB9
CiAgICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3BhZ2VzKSB7IGRlbGV0ZUFsbFZhbHVlcygq
bV9wYWdlcyk7IH0gfQogCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBn
bHlwaCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0
aFBhZ2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgIH0KKwogICAgIGZsb2F0
IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCiAgICAgewotICAgICAgICByZXR1cm4gbG9jYXRl
UGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7
CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUp
LT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwogICAgIH0KIAotICAg
IHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgdm9p
ZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0
cmljcykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6
c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAgICAgbG9jYXRlUGFn
ZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGdseXBo
LCBtZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdseXBoV2lkdGhQYWdl
IHsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNv
dmVycyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3Np
emVdOworICAgICAgICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3NpemVdOwogCi0gICAgICAgIGZs
b2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2ds
eXBoICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBo
LCBmbG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlw
aCBnbHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBoICUgc2l6ZV07IH0KKyAgICAg
ICAgdm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmlj
cyYgbWV0cmljcykKICAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlw
aCAlIHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJpY3NGb3JJbmRleChnbHlwaCAl
IHNpemUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJbmRl
eCh1bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAgIHZvaWQgc2V0TWV0cmljc0Zv
ckluZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRoOworICAgICAgICAgICAg
bV9tZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0KICAgICB9OwogICAgIApAQCAt
ODQsNiArOTUsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0
aFBhZ2UqPiA+IG1fcGFnZXM7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5j
cHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVG
b250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw5ICsxNTcsMTEgQEAgdm9pZCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhl
IFpFUk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9
IGdseXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAo
emVyb1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAh
PSBtX3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZv
ckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAgIGlm
ICh6ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAgR2x5
cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNl
ID0gMDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlwaCh6
ZXJvV2lkdGhTcGFjZUdseXBoLCBtZXRyaWNzKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICBMT0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0aGUg
c2FtZSBnbHlwaC4gR2x5cGggd2lkdGggbm90IG92ZXJyaWRkZW4uIik7CiAgICAgfQogCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA1
NzA5MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29y
a2luZyBjb3B5KQpAQCAtNTgsOSArNTgsOSBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFz
cyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERh
dGE7Ci1jbGFzcyBXaWR0aE1hcDsKIAogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQ
aXRjaCwgVmFyaWFibGVQaXRjaCB9OworZW51bSBHbHlwaE1ldHJpY3NNb2RlIHsgR2x5cGhCb3Vu
ZGluZ0JveCwgR2x5cGhXaWR0aE9ubHkgfTsKIAogY2xhc3MgU2ltcGxlRm9udERhdGEgOiBwdWJs
aWMgRm9udERhdGEgewogcHVibGljOgpAQCAtODEsOCArODEsOSBAQCBwdWJsaWM6CiAgICAgZmxv
YXQgeEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1feEhlaWdodDsgfQogICAgIHVuc2lnbmVkIHVu
aXRzUGVyRW0oKSBjb25zdCB7IHJldHVybiBtX3VuaXRzUGVyRW07IH0KIAotICAgIGZsb2F0IHdp
ZHRoRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwotICAgIGZsb2F0IHBsYXRmb3JtV2lkdGhGb3JHbHlw
aChHbHlwaCkgY29uc3Q7CisgICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29u
c3QgeyByZXR1cm4gbWV0cmljc0ZvckdseXBoKGdseXBoLCBHbHlwaFdpZHRoT25seSkuaG9yaXpv
bnRhbEFkdmFuY2U7IH0KKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljc0ZvckdseXBoKEdseXBoLCBH
bHlwaE1ldHJpY3NNb2RlID0gR2x5cGhCb3VuZGluZ0JveCkgY29uc3Q7CisgICAgR2x5cGhNZXRy
aWNzIHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEdseXBoLCBHbHlwaE1ldHJpY3NNb2RlKSBjb25z
dDsKIAogICAgIGZsb2F0IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlV2lkdGg7
IH0KICAgICBmbG9hdCBhZGp1c3RlZFNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2FkanVz
dGVkU3BhY2VXaWR0aDsgfQpAQCAtMTY3LDcgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgfHwgKE9T
KFdJTkRPV1MpICYmIFBMQVRGT1JNKFdYKSkKICAgICB2b2lkIGluaXRHRElGb250KCk7CiAgICAg
dm9pZCBwbGF0Zm9ybUNvbW1vbkRlc3Ryb3koKTsKLSAgICBmbG9hdCB3aWR0aEZvckdESUdseXBo
KEdseXBoIGdseXBoKSBjb25zdDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljc0ZvckdESUdseXBo
KEdseXBoIGdseXBoKSBjb25zdDsKICNlbmRpZgogCiAgICAgaW50IG1fYXNjZW50OwpAQCAtMjM3
LDE2ICsyMzgsMTYgQEAgcHJpdmF0ZToKICAgICAKICAgICAKICNpZiAhUExBVEZPUk0oUVQpCi1B
TFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnREYXRhOjp3aWR0aEZvckdseXBoKEdseXBoIGds
eXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1l
dHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkg
Y29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IG1fZ2x5cGhUb1dpZHRoTWFwLndpZHRoRm9yR2x5
cGgoZ2x5cGgpOwotICAgIGlmICh3aWR0aCAhPSBjR2x5cGhXaWR0aFVua25vd24pCi0gICAgICAg
IHJldHVybiB3aWR0aDsKLSAgICAKLSAgICB3aWR0aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChn
bHlwaCk7Ci0gICAgbV9nbHlwaFRvV2lkdGhNYXAuc2V0V2lkdGhGb3JHbHlwaChnbHlwaCwgd2lk
dGgpOwotICAgIAotICAgIHJldHVybiB3aWR0aDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljcyA9
IG1fZ2x5cGhUb1dpZHRoTWFwLm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgaWYgKG1ldHJp
Y3MuaG9yaXpvbnRhbEFkdmFuY2UgIT0gY0dseXBoV2lkdGhVbmtub3duKQorICAgICAgICByZXR1
cm4gbWV0cmljczsKKworICAgIG1ldHJpY3MgPSBwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChnbHlw
aCwgbWV0cmljc01vZGUpOworICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldE1ldHJpY3NGb3JHbHlw
aChnbHlwaCwgbWV0cmljcyk7CisKKyAgICByZXR1cm4gbWV0cmljczsKIH0KICNlbmRpZgogCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAJKHJldmlz
aW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV1RG
OwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7Cit1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4LDEwIEBAIFdpZHRoSXRlcmF0b3I6OldpZHRo
SXRlcmF0b3IoY29uc3QgRm9udCoKICAgICAsIG1fcnVuV2lkdGhTb0ZhcigwKQogICAgICwgbV9m
aW5hbFJvdW5kaW5nV2lkdGgoMCkKICAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRz
KQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1p
bigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46
Om1heCgpKQorICAgICwgbV9maXJzdEdseXBoT3ZlcmZsb3coMCkKKyAgICAsIG1fbGFzdEdseXBo
T3ZlcmZsb3coMCkKIHsKICAgICAvLyBJZiB0aGUgcGFkZGluZyBpcyBub24temVybywgY291bnQg
dGhlIG51bWJlciBvZiBzcGFjZXMgaW4gdGhlIHJ1bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBi
eSB0aGUgcGFkZGluZyBmb3IgcGVyIHNwYWNlIGFkZGl0aW9uLgpAQCAtMTIwLDEyICsxMjUsMTQg
QEAgdm9pZCBXaWR0aEl0ZXJhdG9yOjphZHZhbmNlKGludCBvZmZzZXQsIAogICAgICAgICBBU1NF
UlQoZm9udERhdGEpOwogCiAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgYSBnbHlwaCBhbmQg
Zm9udCBkYXRhLCBnZXQgaXRzIHdpZHRoLgorICAgICAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRy
aWNzOwogICAgICAgICBmbG9hdCB3aWR0aDsKICAgICAgICAgaWYgKGMgPT0gJ1x0JyAmJiBtX3J1
bi5hbGxvd1RhYnMoKSkgewogICAgICAgICAgICAgZmxvYXQgdGFiV2lkdGggPSBtX2ZvbnQtPnRh
YldpZHRoKCk7CiAgICAgICAgICAgICB3aWR0aCA9IHRhYldpZHRoIC0gZm1vZGYobV9ydW4ueFBv
cygpICsgcnVuV2lkdGhTb0ZhciwgdGFiV2lkdGgpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgd2lkdGggPSBmb250RGF0YS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAg
ICBnbHlwaE1ldHJpY3MgPSBmb250RGF0YS0+bWV0cmljc0ZvckdseXBoKGdseXBoLCBHbHlwaFdp
ZHRoT25seSk7CisgICAgICAgICAgICB3aWR0aCA9IGdseXBoTWV0cmljcy5ob3Jpem9udGFsQWR2
YW5jZTsKICAgICAgICAgICAgIC8vIFdlIHNwZWNpYWwgY2FzZSBzcGFjZXMgaW4gdHdvIHdheXMg
d2hlbiBhcHBseWluZyB3b3JkIHJvdW5kaW5nLgogICAgICAgICAgICAgLy8gRmlyc3QsIHdlIHJv
dW5kIHNwYWNlcyB0byBhbiBhZGp1c3RlZCB3aWR0aCBpbiBhbGwgZm9udHMuCiAgICAgICAgICAg
ICAvLyBTZWNvbmQsIGluIGZpeGVkLXBpdGNoIGZvbnRzIHdlIGVuc3VyZSB0aGF0IGFsbCBjaGFy
YWN0ZXJzIHRoYXQKQEAgLTE3NSw2ICsxODIsOSBAQCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFkdmFu
Y2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICBpZiAo
IWN1cnJlbnRDaGFyYWN0ZXIpCisgICAgICAgICAgICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IG1h
eDxmbG9hdD4oMCwgLWdseXBoTWV0cmljcy5ib3VuZGluZ0JveC54KCkpOworCiAgICAgICAgIC8v
IEFkdmFuY2UgcGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3QgZGVhbHQgd2l0aC4KICAgICAgICAg
Y3AgKz0gY2x1c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVudENoYXJhY3RlciArPSBjbHVzdGVy
TGVuZ3RoOwpAQCAtMjA1LDYgKzIxNSwxMCBAQCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2Uo
aW50IG9mZnNldCwgCiAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0
YSwgKHJ0bCA/IG9sZFdpZHRoICsgbGFzdFJvdW5kaW5nV2lkdGggOiB3aWR0aCkpOwogCiAgICAg
ICAgIGxhc3RSb3VuZGluZ1dpZHRoID0gd2lkdGggLSBvbGRXaWR0aDsKKworICAgICAgICBtX21h
eEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFksIGdseXBoTWV0
cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0Jv
eFkgPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94
LnkoKSk7CisgICAgICAgIG1fbGFzdEdseXBoT3ZlcmZsb3cgPSBtYXg8ZmxvYXQ+KDAsIGdseXBo
TWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgpIC0gd2lkdGgpOwogICAgIH0KIAogICAgIG1fY3Vy
cmVudENoYXJhY3RlciA9IGN1cnJlbnRDaGFyYWN0ZXI7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiAr
MzgsMTEgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogICAgIHZvaWQgYWR2YW5jZShpbnQgdG8s
IEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2YW5jZU9uZUNoYXJhY3RlcihmbG9hdCYg
d2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwogCisgICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0Jv
eFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQg
bWluR2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdC
b3hZOyB9CisgICAgZmxvYXQgZmlyc3RHbHlwaE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9m
aXJzdEdseXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBsYXN0R2x5cGhPdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7IH0KKwogICAgIGNvbnN0IEZvbnQqIG1fZm9u
dDsKIAogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwpAQCAtNTEsNyArNTYsMTIgQEAgc3RydWN0
IFdpZHRoSXRlcmF0b3IgewogCiBwcml2YXRlOgogICAgIFVDaGFyMzIgbm9ybWFsaXplVm9pY2lu
Z01hcmtzKGludCBjdXJyZW50Q2hhcmFjdGVyKTsKKwogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGlu
Z0JveFk7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WTsKKyAgICBmbG9hdCBtX2Zp
cnN0R2x5cGhPdmVyZmxvdzsKKyAgICBmbG9hdCBtX2xhc3RHbHlwaE92ZXJmbG93OwogfTsKIAog
fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY4LDYgKzY4LDEwIEBAIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250
cm8KICAgICAsIG1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGgoMCkKICAgICAsIG1fZmluYWxSb3Vu
ZGluZ1dpZHRoKDApCiAgICAgLCBtX2ZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cykKKyAgICAs
IG1fbWluR2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAg
ICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkK
KyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgo
KSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpt
aW4oKSkKICAgICAsIG1fbGFzdFJvdW5kaW5nR2x5cGgoMCkKIHsKICAgICBtX3BhZGRpbmcgPSBt
X3J1bi5wYWRkaW5nKCk7CkBAIC00MzgsNiArNDQyLDcgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmFkanVzdEdseXBocwogICAgICAgICBDR0Zsb2F0IHJvdW5kZWRTcGFjZVdpZHRoID0g
cm91bmRDR0Zsb2F0KGZvbnREYXRhLT5zcGFjZVdpZHRoKCkpOwogICAgICAgICBib29sIHJvdW5k
c0FkdmFuY2VzID0gIW1fZm9udC5pc1ByaW50ZXJGb250KCkgJiYgZm9udERhdGEtPnBsYXRmb3Jt
RGF0YSgpLnJvdW5kc0dseXBoQWR2YW5jZXMoKTsKICAgICAgICAgYm9vbCBoYXNFeHRyYVNwYWNp
bmcgPSAobV9mb250LmxldHRlclNwYWNpbmcoKSB8fCBtX2ZvbnQud29yZFNwYWNpbmcoKSB8fCBt
X3BhZGRpbmcpICYmICFtX3J1bi5zcGFjaW5nRGlzYWJsZWQoKTsKKyAgICAgICAgQ0dQb2ludCBn
bHlwaE9yaWdpbiA9IENHUG9pbnRaZXJvOwogICAgICAgICBDRkluZGV4IGxhc3RDaGFyYWN0ZXJJ
bmRleCA9IG1fcnVuLmx0cigpID8gbnVtZXJpY19saW1pdHM8Q0ZJbmRleD46Om1pbigpIDogbnVt
ZXJpY19saW1pdHM8Q0ZJbmRleD46Om1heCgpOwogICAgICAgICBib29sIGlzTW9ub3RvbmljID0g
dHJ1ZTsKIApAQCAtNTQxLDYgKzU0NiwxNiBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6
YWRqdXN0R2x5cGhzCiAgICAgICAgICAgICBhZHZhbmNlLmhlaWdodCAqPSAtMTsKICAgICAgICAg
ICAgIG1fYWRqdXN0ZWRBZHZhbmNlcy5hcHBlbmQoYWR2YW5jZSk7CiAgICAgICAgICAgICBtX2Fk
anVzdGVkR2x5cGhzLmFwcGVuZChnbHlwaCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEds
eXBoTWV0cmljcyBnbHlwaE1ldHJpY3MgPSBmb250RGF0YS0+bWV0cmljc0ZvckdseXBoKGdseXBo
KTsKKyAgICAgICAgICAgIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5tb3ZlKGdseXBoT3JpZ2lu
LngsIGdseXBoT3JpZ2luLnkpOworICAgICAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WCA9
IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hYLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueCgp
KTsKKyAgICAgICAgICAgIG1fbWF4R2x5cGhCb3VuZGluZ0JveFggPSBtYXgobV9tYXhHbHlwaEJv
dW5kaW5nQm94WCwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LnJpZ2h0KCkpOworICAgICAgICAg
ICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hZLCBn
bHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsKKyAgICAgICAgICAgIG1fbWF4R2x5cGhCb3Vu
ZGluZ0JveFkgPSBtYXgobV9tYXhHbHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5k
aW5nQm94LmJvdHRvbSgpKTsKKyAgICAgICAgICAgIGdseXBoT3JpZ2luLnggKz0gYWR2YW5jZS53
aWR0aDsKKyAgICAgICAgICAgIGdseXBoT3JpZ2luLnkgKz0gYWR2YW5jZS5oZWlnaHQ7CisgICAg
ICAgICAgICAKICAgICAgICAgICAgIGxhc3RDaGFyYWN0ZXJJbmRleCA9IGNoYXJhY3RlckluZGV4
OwogICAgICAgICB9CiAgICAgICAgIGlmICghaXNNb25vdG9uaWMpCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAko
cmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgcHVibGlj
OgogICAgIC8vIEV4dHJhIHdpZHRoIHRvIHRoZSBsZWZ0IG9mIHRoZSBsZWZ0bW9zdCBnbHlwaC4K
ICAgICBmbG9hdCBmaW5hbFJvdW5kaW5nV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2ZpbmFsUm91
bmRpbmdXaWR0aDsgfQogCisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFgoKSBjb25zdCB7
IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hYOyB9CisgICAgZmxvYXQgbWF4R2x5cGhCb3Vu
ZGluZ0JveFgoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRpbmdCb3hYOyB9CisgICAg
ZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91
bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJl
dHVybiBtX21heEdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgCiBwcml2YXRlOgogICAgIGNsYXNz
IENvbXBsZXhUZXh0UnVuIDogcHVibGljIFJlZkNvdW50ZWQ8Q29tcGxleFRleHRSdW4+IHsKICAg
ICBwdWJsaWM6CkBAIC0xNzMsNiArMTc4LDExIEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIG1fZmFsbGJhY2tGb250czsKIAorICAgIGZsb2F0IG1fbWlu
R2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsKKyAg
ICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3Vu
ZGluZ0JveFk7CisgICAgCiAgICAgdW5zaWduZWQgbV9sYXN0Um91bmRpbmdHbHlwaDsKIH07CiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBs
ZXhUZXh0TWFjLmNwcAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
Myw4IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1
biYgcnVuLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGludCBoLApAQCAtODMsOSArODUsMTUgQEAg
dm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRyYXdHbHlwaEJ1
ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0KIAotZmxvYXQg
Rm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9u
dDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlw
aE92ZXJmbG93KSBjb25zdAogewogICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVy
KHRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250cyk7CisgICAgaWYgKGdseXBoT3ZlcmZsb3cp
IHsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+
dG9wLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WSgpKSAtIGFzY2VudCgp
KTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gbWF4PGludD4oZ2x5cGhPdmVyZmxv
dy0+Ym90dG9tLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0gZGVz
Y2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IG1heDxpbnQ+KDAsIGNlaWxm
KC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hYKCkpKTsKKyAgICAgICAgZ2x5cGhPdmVy
Zmxvdy0+cmlnaHQgPSBtYXg8aW50PigwLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBoQm91bmRp
bmdCb3hYKCkgLSBjb250cm9sbGVyLnRvdGFsV2lkdGgoKSkpOworICAgIH0KICAgICByZXR1cm4g
Y29udHJvbGxlci50b3RhbFdpZHRoKCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA1NzA5MSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC00MDcsMTcgKzQwNywyNyBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpk
ZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgICAgIFtuYW1lIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6
QCJNb25vdHlwZUNvcnNpdmEiXSAhPSBOU09yZGVyZWRTYW1lOwogfQogCi1mbG9hdCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhN
ZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlw
aCwgR2x5cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkgY29uc3QKIHsKLSAgICBOU0ZvbnQqIGZv
bnQgPSBtX3BsYXRmb3JtRGF0YS5mb250KCk7Ci0gICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0
Zm9ybURhdGEubV9zaXplOworICAgIE5TRm9udCogZm9udCA9IHBsYXRmb3JtRGF0YSgpLmZvbnQo
KTsKKyAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7CiAgICAgQ0dB
ZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwg
cG9pbnRTaXplKTsKICAgICBDR1NpemUgYWR2YW5jZTsKLSAgICBpZiAoIXdrR2V0R2x5cGhUcmFu
c2Zvcm1lZEFkdmFuY2VzKG1fcGxhdGZvcm1EYXRhLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBo
LCAmYWR2YW5jZSkpIHsKKyAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2VzKHBs
YXRmb3JtRGF0YSgpLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsKICAg
ICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY2FjaGUgZ2x5cGggd2lkdGhzIGZvciAlQCAlZiIs
IFtmb250IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXplKTsKICAgICAgICAgYWR2YW5jZS53aWR0aCA9
IDA7CiAgICAgfQotICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zm
c2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFk
dmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIGlmICht
ZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94KSB7CisgICAgICAgIENHUmVjdCBib3VuZGlu
Z0JveDsKKyAgICAgICAgQ0dGb250R2V0R2x5cGhCQm94ZXMocGxhdGZvcm1EYXRhKCkuY2dGb250
KCksICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsKKyAgICAgICAgQ0dGbG9hdCBzY2FsZSA9IHBv
aW50U2l6ZSAvIHVuaXRzUGVyRW0oKTsKKyAgICAgICAgbWV0cmljcy5ib3VuZGluZ0JveCA9IENH
UmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJvdW5kaW5nQm94LCBDR0FmZmluZVRyYW5zZm9ybU1h
a2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAgICAgIGlmIChtX3N5bnRoZXRpY0JvbGRPZmZz
ZXQpCisgICAgICAgICAgICBtZXRyaWNzLmJvdW5kaW5nQm94LnNldFdpZHRoKG1ldHJpY3MuYm91
bmRpbmdCb3gud2lkdGgoKSArIG1fc3ludGhldGljQm9sZE9mZnNldCk7CisgICAgfQorICAgIHJl
dHVybiBtZXRyaWNzOwogfQogCiAjaWYgVVNFKEFUU1VJKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYg
KzM0LDggQEAKICNpbmNsdWRlICJVbmlzY3JpYmVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBib29sIEZvbnQ6OmNhblJldHVybkZhbGxiYWNrRm9udHNGb3JDb21wbGV4VGV4dCgp
CkBAIC04OSwxMCArOTEsMTYgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFy
dFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0
IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
LCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIFVuaXNjcmliZUNv
bnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMpOwogICAgIGNvbnRy
b2xsZXIuYWR2YW5jZShydW4ubGVuZ3RoKCkpOworICAgIGlmIChnbHlwaE92ZXJmbG93KSB7Cisg
ICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPnRvcCwg
Y2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFkoKSkgLSBhc2NlbnQoKSk7Cisg
ICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPmJv
dHRvbSwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WSgpKSAtIGRlc2NlbnQo
KSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQgPSBtYXg8aW50PigwLCBjZWlsZigtY29u
dHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WCgpKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ct
PnJpZ2h0ID0gbWF4PGludD4oMCwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94
WCgpIC0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkpKTsKKyAgICB9CiAgICAgcmV0dXJuIGNv
bnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAkocmV2aXNpb24g
NTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNH
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDEwICsxMjYsMTAgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbgogICAgIH0KIH0KIAotZmxvYXQgU2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0
cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgs
IEdseXBoTWV0cmljc01vZGUgbWV0cmljc01vZGUpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGxhdGZv
cm1EYXRhLnVzZUdESSgpKQotICAgICAgIHJldHVybiB3aWR0aEZvckdESUdseXBoKGdseXBoKTsK
KyAgICAgICByZXR1cm4gbWV0cmljc0ZvckdESUdseXBoKGdseXBoKTsKIAogICAgIENHRm9udFJl
ZiBmb250ID0gbV9wbGF0Zm9ybURhdGEuY2dGb250KCk7CiAgICAgZmxvYXQgcG9pbnRTaXplID0g
bV9wbGF0Zm9ybURhdGEuc2l6ZSgpOwpAQCAtMTM5LDggKzEzOSwxOCBAQCBmbG9hdCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHJl
YWwgc3VwcG9ydCBmb3IgcHJpbnRlciBmb250cy4KICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBm
YWxzZTsKICAgICB3a0dldEdseXBoQWR2YW5jZXMoZm9udCwgbSwgbV9pc1N5c3RlbUZvbnQsIGlz
UHJpbnRlckZvbnQsIGdseXBoLCBhZHZhbmNlKTsKLQotICAgIHJldHVybiBhZHZhbmNlLndpZHRo
ICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAg
IG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNC
b2xkT2Zmc2V0OworICAgIAorICAgIGlmIChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94
KSB7CisgICAgICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICAgICAgQ0dGb250R2V0R2x5cGhC
Qm94ZXMoZm9udCwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgICAgICBDR0Zsb2F0IHNj
YWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgICAgICBtZXRyaWNzLmJvdW5kaW5n
Qm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm91bmRpbmdCb3gsIENHQWZmaW5lVHJh
bnNmb3JtTWFrZVNjYWxlKHNjYWxlLCAtc2NhbGUpKTsKKyAgICAgICAgaWYgKG1fc3ludGhldGlj
Qm9sZE9mZnNldCkKKyAgICAgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0
cmljcy5ib3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICB9
CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHJldmlzaW9uIDU3MDkx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzksMTYgKzE3OSwyNSBAQCB2b2lkIFNpbXBsZUZvbnREYXRh
OjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgUmVsZWFzZURDKDAsIGRjKTsKIH0KIAotZmxvYXQgU2lt
cGxlRm9udERhdGE6OndpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitHbHlwaE1l
dHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHRElHbHlwaChHbHlwaCBnbHlwaCkgY29u
c3QKIHsKICAgICBIREMgaGRjID0gR2V0REMoMCk7CiAgICAgU2V0R3JhcGhpY3NNb2RlKGhkYywg
R01fQURWQU5DRUQpOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChoZGMsIG1f
cGxhdGZvcm1EYXRhLmhmb250KCkpOwotICAgIGludCB3aWR0aDsKLSAgICBHZXRDaGFyV2lkdGhJ
KGhkYywgZ2x5cGgsIDEsIDAsICZ3aWR0aCk7CisKKyAgICBHTFlQSE1FVFJJQ1MgZ2RpTWV0cmlj
czsKKyAgICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsgMCwgMSwgIDAsIDAsICAwLCAw
LCAgMCwgMSB9OworICAgIEdldEdseXBoT3V0bGluZShoZGMsIGdseXBoLCBHR09fTUVUUklDUyB8
IEdHT19HTFlQSF9JTkRFWCwgJmdkaU1ldHJpY3MsIDAsIDAsICZpZGVudGl0eSk7CisKICAgICBT
ZWxlY3RPYmplY3QoaGRjLCBvbGRGb250KTsKICAgICBSZWxlYXNlREMoMCwgaGRjKTsKLSAgICBy
ZXR1cm4gd2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisKKyAgICBHbHlwaE1ldHJpY3Mg
Z2x5cGhNZXRyaWNzOworICAgIGdseXBoTWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGdkaU1l
dHJpY3MuZ21DZWxsSW5jWCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBnbHlwaE1ldHJp
Y3MuYm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoZ2RpTWV0cmljcy5nbXB0R2x5cGhPcmlnaW4ueCwg
LWdkaU1ldHJpY3MuZ21wdEdseXBoT3JpZ2luLnksCisgICAgICAgIGdkaU1ldHJpY3MuZ21CbGFj
a0JveFggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQsIGdkaU1ldHJpY3MuZ21CbGFja0JveFkpOwor
CisgICAgcmV0dXJuIGdseXBoTWV0cmljczsKIH0KIAogU0NSSVBUX0ZPTlRQUk9QRVJUSUVTKiBT
aW1wbGVGb250RGF0YTo6c2NyaXB0Rm9udFByb3BlcnRpZXMoKSBjb25zdApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5p
c2NyaWJlQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKICNp
bmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAK
K3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6
IFJlYXJjaGl0ZWN0IHRoaXMgdG8gYmUgbW9yZSBsaWtlIFdpZHRoSXRlcmF0b3IgaW4gRm9udC5j
cHAuICBIYXZlIGFuIGFkdmFuY2UoKSBtZXRob2QKQEAgLTM5LDE2ICs0MSwyMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAvLyB0YWtlIHRoZSBHbHlwaEJ1ZmZlciBhcyBhbiBhcmcgc28gdGhhdCB3
ZSBkb24ndCBoYXZlIHRvIHBvcHVsYXRlIHRoZSBnbHlwaCBidWZmZXIgd2hlbgogLy8gbWVhc3Vy
aW5nLgogVW5pc2NyaWJlQ29udHJvbGxlcjo6VW5pc2NyaWJlQ29udHJvbGxlcihjb25zdCBGb250
KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cykKLTogbV9mb250KCpmb250KQotLCBtX3J1bihydW4pCi0sIG1fZmFs
bGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQotLCBtX2VuZChydW4ubGVuZ3RoKCkpCi0sIG1fY3Vy
cmVudENoYXJhY3RlcigwKQotLCBtX3J1bldpZHRoU29GYXIoMCkKLSwgbV9jb21wdXRpbmdPZmZz
ZXRQb3NpdGlvbihmYWxzZSkKLSwgbV9pbmNsdWRlUGFydGlhbEdseXBocyhmYWxzZSkKLSwgbV9v
ZmZzZXRYKDApCi0sIG1fb2Zmc2V0UG9zaXRpb24oMCkKKyAgICA6IG1fZm9udCgqZm9udCkKKyAg
ICAsIG1fcnVuKHJ1bikKKyAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQorICAg
ICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQor
ICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigp
KQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1h
eCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46
Om1pbigpKQorICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQorICAgICwgbV9jdXJyZW50Q2hhcmFj
dGVyKDApCisgICAgLCBtX3J1bldpZHRoU29GYXIoMCkKKyAgICAsIG1fY29tcHV0aW5nT2Zmc2V0
UG9zaXRpb24oZmFsc2UpCisgICAgLCBtX2luY2x1ZGVQYXJ0aWFsR2x5cGhzKGZhbHNlKQorICAg
ICwgbV9vZmZzZXRYKDApCisgICAgLCBtX29mZnNldFBvc2l0aW9uKDApCiB7CiAgICAgbV9wYWRk
aW5nID0gbV9ydW4ucGFkZGluZygpOwogICAgIGlmICghbV9wYWRkaW5nKQpAQCAtMzc0LDYgKzM4
MCwxNCBAQCBib29sIFVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5kUGxhY2VJCiAgICAgICAg
ICAgICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwgYWR2YW5jZSwgJnNpemUpOwog
ICAgICAgICB9CiAKKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljcyA9IGZvbnREYXRh
LT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdC
b3gubW92ZShtX2dseXBoT3JpZ2luLngoKSwgbV9nbHlwaE9yaWdpbi55KCkpOworICAgICAgICBt
X21pbkdseXBoQm91bmRpbmdCb3hYID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFgsIGdseXBo
TWV0cmljcy5ib3VuZGluZ0JveC54KCkpOworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hY
ID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5y
aWdodCgpKTsKKyAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBo
Qm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsKKyAgICAgICAgbV9t
YXhHbHlwaEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1l
dHJpY3MuYm91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICBtX2dseXBoT3JpZ2luLm1vdmUo
YWR2YW5jZSArIG9mZnNldFgsIC1vZmZzZXRZKTsKKwogICAgICAgICAvLyBNdXRhdGUgdGhlIGds
eXBoIGFycmF5IHRvIGNvbnRhaW4gb3VyIGFsdGVyZWQgYWR2YW5jZXMuCiAgICAgICAgIGlmICht
X2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKQogICAgICAgICAgICAgYWR2YW5jZXNba10gPSBhZHZh
bmNlOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJv
bGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNj
cmliZUNvbnRyb2xsZXIuaAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYg
KzQ5LDExIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSB3aWR0aCBvZiBldmVyeXRoaW5n
IHdlJ3ZlIGNvbnN1bWVkIHNvIGZhci4KICAgICBmbG9hdCBydW5XaWR0aFNvRmFyKCkgY29uc3Qg
eyByZXR1cm4gbV9ydW5XaWR0aFNvRmFyOyB9CiAKKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5n
Qm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9h
dCBtYXhHbHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGlu
Z0JveFg7IH0KKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94
WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7IH0KKwogcHJpdmF0ZTog
ICAgCiAgICAgdm9pZCByZXNldENvbnRyb2xBbmRTdGF0ZSgpOwogCkBAIC02MSw2ICs2NiwxMSBA
QCBwcml2YXRlOiAgICAKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7CiAgICAgY29uc3QgVGV4dFJ1
biYgbV9ydW47CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBtX2ZhbGxiYWNr
Rm9udHM7CisgICAgRmxvYXRQb2ludCBtX2dseXBoT3JpZ2luOworICAgIGZsb2F0IG1fbWluR2x5
cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsKKyAgICBm
bG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGlu
Z0JveFk7CiAKICAgICBTQ1JJUFRfQ09OVFJPTCBtX2NvbnRyb2w7CiAgICAgU0NSSVBUX1NUQVRF
IG1fc3RhdGU7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24g
NTcwOTEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0hv
cml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0dGVyU3BhY2luZyA9IG1pbigwLCAoaW50KXJ0
LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5sZXR0ZXJTcGFjaW5nKCkpOwogICAgICAgICAg
ICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4UG9zICsgdGV4dC0+d2lkdGgoKSAtIGxldHRl
clNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cpOwogCi0gICAgICAgICAgICBpbnQgbGVmdEds
eXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgcmlnaHRHbHlw
aE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFjaW5nOworICAgICAgICAgICAg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19jYXN0PElubGluZVRleHRCb3gq
PihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAgICBpbnQgbGVmdEdseXBoT3Zl
cmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ct
PmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCByaWdodEdseXBoT3ZlcmZsb3cgPSBzdHJva2VP
dmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ct
PnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93
TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAgICAgICAgICAgaW50IGNoaWxkT3ZlcmZsb3dS
aWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAgLTQxMiwzNSArNDE0LDM1IEBAIHZvaWQgSW5s
aW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKIAogICAgICAgICBpbnQgbGluZUhlaWdo
dDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAgICAgICBWZWN0b3I8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAoY3Vyci0+aXNJbmxpbmVUZXh0Qm94KCkpCi0g
ICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPnRha2VGYWxsYmFj
a0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAgICB1c2VkRm9udHMgPSBzdGF0aWNfY2FzdDxJ
bmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNrRm9udHMoKTsKIAotICAgICAgICBpZiAoIXVz
ZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZWRGb250cy5hcHBlbmQoY3Vyci0+
cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkucHJpbWFyeUZvbnQoKSk7Cisg
ICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGN1
cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLnByaW1hcnlGb250KCkp
OwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExpbmVIZWlnaHQgPSBjdXJyLT5yZW5kZXJlcigp
LT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdodCgpOwogICAgICAgICAgICAgaWYgKHBhcmVu
dExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAgICAgICAgICAgICAgICAgaW50IGJhc2VsaW5l
VG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAg
ICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNlZEZvbnRzW2ldLT5saW5lU3Bh
Y2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRGb250c1tpXS0+ZGVzY2VudCgp
KSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBoYWxm
TGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOwotICAgICAgICAgICAgICAgICAgICBi
YXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20sIHVzZWRGb250c1tpXS0+bGlu
ZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2Nl
bnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhh
bGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSktPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHMt
PmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAg
ICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1
c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5l
VG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwgdXNlZEZvbnRzLT5hdChpKS0+bGluZVNw
YWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0gdXNlZEZvbnRzLT5hdChpKS0+
ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBiYXNlbGluZVRvQm90dG9tOwogICAgICAgICAg
ICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzUGVyY2VudCgpKSB7CiAgICAgICAgICAg
ICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVIZWlnaHQuY2FsY01pblZhbHVlKGN1cnItPnJl
bmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5l
ID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5z
aXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGlu
ZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQo
KSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFs
ZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkp
LT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAg
ICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9u
dHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gcGFyZW50TGluZUhlaWdodC52YWx1
ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAg
ICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNj
ZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAg
ICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFz
Y2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250
cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0g
KGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQo
aSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChi
YXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewpAQCAtNTYyLDEw
ICs1NjQsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlVmVydGljYWxPdmVyZgogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBpbnQgc3Ryb2tlT3ZlcmZsb3cg
PSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5zdHlsZSgpLT50ZXh0U3Ryb2tlV2lkdGgoKSAv
IDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaW50IHRvcEdseXBoT3ZlcmZsb3cg
PSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9
IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgCisKKyAgICAgICAgICAgIEdseXBoT3ZlcmZs
b3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmds
eXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAgaW50IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ry
b2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IDApOwor
ICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyArIChn
bHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDogMCk7CisKICAgICAgICAgICAg
IGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhPdmVyZmxvdzsKICAgICAgICAgICAgIGlu
dCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5cGhPdmVyZmxvdzsKICAgICAgICAgICAg
IGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0eWxlKCktPnRleHRTaGFkb3coKTsgc2hh
ZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDI5LDMwICsxMDI5LDQ4IEBAIGJvb2wgSW5s
aW5lVGV4dEJveDo6Y29udGFpbnNDYXJldE9mZnNldCgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dHlwZWRlZiBIYXNoTWFwPElubGluZVRleHRCb3gqLCBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiA+IEZhbGxiYWNrRm9udHNNYXA7Ci1zdGF0aWMgRmFsbGJhY2tGb250c01hcCogZ0ZhbGxi
YWNrRm9udHNNYXA7Ci0KIHZvaWQgSW5saW5lVGV4dEJveDo6c2V0RmFsbGJhY2tGb250cyhjb25z
dCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCiB7Ci0gICAg
aWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAgICAgICAgZ0ZhbGxiYWNrRm9udHNNYXAgPSBuZXcg
RmFsbGJhY2tGb250c01hcDsKKyAgICBpZiAoIXNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9u
dHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAgPSBuZXcg
R2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisKKyAgICBHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFj
a0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWlyKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0
YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0OworICAgIEFTU0VSVChpdC0+c2Vjb25kLmZp
cnN0LmlzRW1wdHkoKSk7CisgICAgY29weVRvVmVjdG9yKGZhbGxiYWNrRm9udHMsIGl0LT5zZWNv
bmQuZmlyc3QpOworfQorCitWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogSW5saW5lVGV4
dEJveDo6ZmFsbGJhY2tGb250cygpIGNvbnN0Cit7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4gMDsKIAotICAgIEZhbGxiYWNrRm9u
dHNNYXA6Oml0ZXJhdG9yIGl0ID0gZ0ZhbGxiYWNrRm9udHNNYXAtPnNldCh0aGlzLCBWZWN0b3I8
Y29uc3QgU2ltcGxlRm9udERhdGEqPigpKS5maXJzdDsKLSAgICBBU1NFUlQoaXQtPnNlY29uZC5p
c0VtcHR5KCkpOwotICAgIGNvcHlUb1ZlY3RvcihmYWxsYmFja0ZvbnRzLCBpdC0+c2Vjb25kKTsK
KyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2ds
eXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChpdCA9
PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gJml0LT5zZWNvbmQuZmlyc3Q7CiB9CiAKLXZvaWQgSW5saW5l
VGV4dEJveDo6dGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4m
IGZhbGxiYWNrRm9udHMpCitJbmxpbmVUZXh0Qm94OjpHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tG
b250c01hcCogSW5saW5lVGV4dEJveDo6c19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01h
cCA9IDA7CisKK3ZvaWQgSW5saW5lVGV4dEJveDo6c2V0R2x5cGhPdmVyZmxvdyhjb25zdCBHbHlw
aE92ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewotICAgIGlmICghZ0ZhbGxiYWNrRm9udHNNYXAp
Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIXNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9u
dHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAgPSBuZXcg
R2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFw
OjppdGVyYXRvciBpdCA9IGdGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOwotICAgIGlmIChp
dCA9PSBnRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBHbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWlyKFZlY3Rvcjxjb25zdCBT
aW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0OworICAgIGl0LT5zZWNv
bmQuc2Vjb25kID0gZ2x5cGhPdmVyZmxvdzsKK30KKworR2x5cGhPdmVyZmxvdyogSW5saW5lVGV4
dEJveDo6Z2x5cGhPdmVyZmxvdygpIGNvbnN0Cit7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4gMDsKKyAgICBHbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBmYWxs
YmFja0ZvbnRzLnN3YXAoaXQtPnNlY29uZCk7Ci0gICAgZ0ZhbGxiYWNrRm9udHNNYXAtPnJlbW92
ZShpdCk7CisgICAgcmV0dXJuICZpdC0+c2Vjb25kLnNlY29uZDsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAkocmV2aXNpb24gNTcw
OTEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDcgKzY0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIG9mZnNldFJ1bihpbnQgZCkgeyBt
X3N0YXJ0ICs9IGQ7IH0KIAogICAgIHZvaWQgc2V0RmFsbGJhY2tGb250cyhjb25zdCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mKTsKLSAgICB2b2lkIHRha2VGYWxsYmFja0ZvbnRzKFZl
Y3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7CisgICAgVmVjdG9yPGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMoKSBjb25zdDsKKworICAgIHZvaWQgc2V0R2x5cGhPdmVy
Zmxvdyhjb25zdCBHbHlwaE92ZXJmbG93Jik7CisgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVy
ZmxvdygpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgY2xlYXJHbHlwaE92ZXJmbG93QW5kRmFs
bGJhY2tGb250TWFwKCkKKyAgICB7CisgICAgICAgIGlmIChzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwKQorICAgICAgICAgICAgc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcC0+Y2xlYXIoKTsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBzaG9ydCB0cnVuY2F0aW9uKCkg
eyByZXR1cm4gbV90cnVuY2F0aW9uOyB9CiAKQEAgLTEyOSw2ICsxMzgsOSBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIHNob3J0IG1fdHJ1bmNhdGlvbjsgLy8gV2hlcmUgdG8gdHJ1bmNhdGUgd2hl
biB0ZXh0IG92ZXJmbG93IGlzIGFwcGxpZWQuICBXZSB1c2Ugc3BlY2lhbCBjb25zdGFudHMgdG8K
ICAgICAgICAgICAgICAgICAgICAgICAvLyBkZW5vdGUgbm8gdHJ1bmNhdGlvbiAodGhlIHdob2xl
IHJ1biBwYWludHMpIGFuZCBmdWxsIHRydW5jYXRpb24gKG5vdGhpbmcgcGFpbnRzIGF0IGFsbCku
CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSW5saW5lVGV4dEJveCosIHBhaXI8VmVjdG9y
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4sIEdseXBoT3ZlcmZsb3c+ID4gR2x5cGhPdmVyZmxvd0Fu
ZEZhbGxiYWNrRm9udHNNYXA7CisgICAgc3RhdGljIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwKiBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworCiBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBwYWludENvbXBvc2l0aW9uQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqLCBp
bnQgdHgsIGludCB0eSwgUmVuZGVyU3R5bGUqLCBjb25zdCBGb250JiwgaW50IHN0YXJ0UG9zLCBp
bnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1lbnRNYXJrZXJzKEdyYXBoaWNzQ29udGV4
dCosIGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHlsZSosIGNvbnN0IEZvbnQmLCBib29sIGJhY2tn
cm91bmQpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCShyZXZpc2lvbiA1NzA5MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw3ICszNDIsOCBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0CiAgICAgICAgICAgICAgICAgbmVlZHNXb3Jk
U3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJ0LT5jaGFyYWN0ZXJzKClbci0+bV9zdG9wIC0g
MV0pICYmIHItPm1fc3RvcCA9PSBsZW5ndGg7ICAgICAgICAgIAogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+IGZhbGxiYWNrRm9udHM7Ci0g
ICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1fc3RhcnQsIHItPm1f
c3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxsYmFja0ZvbnRzKSk7
CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7CisgICAgICAgICAgICBy
LT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1fc3RhcnQsIHItPm1fc3RvcCAtIHItPm1f
c3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxv
dykpOwogICAgICAgICAgICAgaWYgKCFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKQogI2lmIEVOQUJM
RShTVkcpCiAgICAgICAgICAgICAgICAgICAgICYmICFpc1NWR1RleHQoKQpAQCAtMzUxLDYgKzM1
MiwxNSBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0CiAgICAgICAg
ICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CiAgICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0RmFsbGJhY2tGb250cyhmYWxs
YmFja0ZvbnRzKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZ2x5cGhPdmVyZmxv
dy50b3AgfHwgZ2x5cGhPdmVyZmxvdy5ib3R0b20gfHwgZ2x5cGhPdmVyZmxvdy5sZWZ0IHx8IGds
eXBoT3ZlcmZsb3cucmlnaHQpCisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgICAgICAgICAg
JiYgIWlzU1ZHVGV4dCgpCisjZW5kaWYKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAg
IEFTU0VSVChyLT5tX2JveC0+aXNUZXh0KCkpOworICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0
PElubGluZVRleHRCb3gqPihyLT5tX2JveCktPnNldEdseXBoT3ZlcmZsb3coZ2x5cGhPdmVyZmxv
dyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKICAgICAgICAgfSBlbHNlIGlmICghci0+
bV9vYmplY3QtPmlzUmVuZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCogcmVu
ZGVyQm94ID0gdG9SZW5kZXJCb3goci0+bV9vYmplY3QpOwogICAgICAgICAgICAgcmVuZGVyQm94
LT5jYWxjV2lkdGgoKTsKQEAgLTU4MCw2ICs1OTAsNyBAQCBSb290SW5saW5lQm94KiBSZW5kZXJC
bG9jazo6Y3JlYXRlTGluZUJvCiAgICAgICAgICAgICBsaW5lQm94LT5jb21wdXRlUGVyQ2hhcmFj
dGVyTGF5b3V0SW5mb3JtYXRpb24oKTsKICNlbmRpZgogCisgICAgICAgICAgICBJbmxpbmVUZXh0
Qm94OjpjbGVhckdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRNYXAoKTsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgICAgICAgICAvLyBIaWdobGlnaHQgYWN0cyBhcyBhbiBvdmVyZmxvdyBpbmZs
YXRpb24uCiAgICAgICAgICAgICBpZiAoc3R5bGUoKS0+aGlnaGxpZ2h0KCkgIT0gbnVsbEF0b20p
CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgs
NyBAQCBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUqIG5vZGUsIFBhc3NSCiAgICAgICwgbV9s
aW5lc0RpcnR5KGZhbHNlKQogICAgICAsIG1fY29udGFpbnNSZXZlcnNlZFRleHQoZmFsc2UpCiAg
ICAgICwgbV9pc0FsbEFTQ0lJKG1fdGV4dC5jb250YWluc09ubHlBU0NJSSgpKQotICAgICAsIG1f
a25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMoZmFsc2UpCisgICAgICwgbV9rbm93blRvSGF2ZU5v
T3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fdGV4dCk7
CiAKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKFN0
eWxlRGlmCiAgICAgLy8gbmVlZCB0byByZWxheW91dC4KICAgICBpZiAoZGlmZiA9PSBTdHlsZURp
ZmZlcmVuY2VMYXlvdXQpIHsKICAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVj
YWxjKCk7Ci0gICAgICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSBmYWxzZTsKKyAg
ICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsK
ICAgICB9CiAKICAgICBFVGV4dFRyYW5zZm9ybSBvbGRUcmFuc2Zvcm0gPSBvbGRTdHlsZSA/IG9s
ZFN0eWxlLT50ZXh0VHJhbnNmb3JtKCkgOiBUVE5PTkU7CkBAIC00NjUsNyArNDY1LDcgQEAgSW50
UmVjdCBSZW5kZXJUZXh0Ojpsb2NhbENhcmV0UmVjdChJbmxpbgogICAgIHJldHVybiBJbnRSZWN0
KGxlZnQsIHRvcCwgY2FyZXRXaWR0aCwgaGVpZ2h0KTsKIH0KIAotQUxXQVlTX0lOTElORSBpbnQg
UmVuZGVyVGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYgZiwgaW50IHN0YXJ0LCBpbnQg
bGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdAorQUxXQVlTX0lOTElORSBpbnQgUmVuZGVyVGV4dDo6d2lkdGhGcm9tQ2FjaGUo
Y29uc3QgRm9udCYgZiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92
ZXJmbG93KSBjb25zdAogewogICAgIGlmIChmLmlzRml4ZWRQaXRjaCgpICYmICFmLmlzU21hbGxD
YXBzKCkgJiYgbV9pc0FsbEFTQ0lJKSB7CiAgICAgICAgIGludCBtb25vc3BhY2VDaGFyYWN0ZXJX
aWR0aCA9IGYuc3BhY2VXaWR0aCgpOwpAQCAtNDk3LDcgKzQ5Nyw3IEBAIEFMV0FZU19JTkxJTkUg
aW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUMKICAgICAgICAgcmV0dXJuIHc7CiAgICAgfQogCi0g
ICAgcmV0dXJuIGYud2lkdGgoVGV4dFJ1bih0ZXh0KCktPmNoYXJhY3RlcnMoKSArIHN0YXJ0LCBs
ZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGYud2lk
dGgoVGV4dFJ1bih0ZXh0KCktPmNoYXJhY3RlcnMoKSArIHN0YXJ0LCBsZW4sIGFsbG93VGFicygp
LCB4UG9zKSwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiB9CiAKIHZvaWQgUmVuZGVy
VGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwKQEAgLTU2OCw3ICs1NjgsNyBA
QCB2b2lkIFJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKGludCBsCiAgICAgICAgICAgICAg
ICAgbGluZWxlbisrOwogCiAgICAgICAgICAgICBpZiAobGluZWxlbikgewotICAgICAgICAgICAg
ICAgIGVuZE1heFcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCBsaW5lbGVuLCBsZWFkV2lkdGggKyBl
bmRNYXhXLCAwKTsKKyAgICAgICAgICAgICAgICBlbmRNYXhXID0gd2lkdGhGcm9tQ2FjaGUoZiwg
aSwgbGluZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4VywgMCwgMCk7CiAgICAgICAgICAgICAgICAg
aWYgKGZpcnN0TGluZSkgewogICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmUgPSBmYWxzZTsK
ICAgICAgICAgICAgICAgICAgICAgbGVhZFdpZHRoID0gMDsKQEAgLTYxMywxNCArNjEzLDE1IEBA
IGludCBSZW5kZXJUZXh0OjptYXhQcmVmV2lkdGgoKSBjb25zdAogdm9pZCBSZW5kZXJUZXh0Ojpj
YWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoKQogewogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOwotICAgIGNhbGNQcmVmV2lkdGhzKGxlYWRXaWR0aCwg
ZmFsbGJhY2tGb250cyk7Ci0gICAgaWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eSgpKQotICAgICAg
ICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gdHJ1ZTsKKyAgICBHbHlwaE92ZXJmbG93
IGdseXBoT3ZlcmZsb3c7CisgICAgY2FsY1ByZWZXaWR0aHMobGVhZFdpZHRoLCBmYWxsYmFja0Zv
bnRzLCBnbHlwaE92ZXJmbG93KTsKKyAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5KCkgJiYg
IWdseXBoT3ZlcmZsb3cubGVmdCAmJiAhZ2x5cGhPdmVyZmxvdy5yaWdodCAmJiAhZ2x5cGhPdmVy
Zmxvdy50b3AgJiYgIWdseXBoT3ZlcmZsb3cuYm90dG9tKQorICAgICAgICBtX2tub3duVG9IYXZl
Tm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IHRydWU7CiB9CiAKLXZvaWQgUmVuZGVyVGV4
dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQordm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhp
bnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9u
dHMsIEdseXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZsb3cpCiB7Ci0gICAgQVNTRVJUKG1faGFzVGFi
IHx8IHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKTsK
KyAgICBBU1NFUlQobV9oYXNUYWIgfHwgcHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ub0hh
dmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzKTsKIAogICAgIG1fbWluV2lkdGggPSAwOwog
ICAgIG1fYmVnaW5NaW5XaWR0aCA9IDA7CkBAIC02NTAsNiArNjUxLDggQEAgdm9pZCBSZW5kZXJU
ZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgIGludCBuZXh0QnJlYWthYmxlID0gLTE7
CiAgICAgaW50IGxhc3RXb3JkQm91bmRhcnkgPSAwOwogCisgICAgaW50IGZpcnN0R2x5cGhMZWZ0
T3ZlcmZsb3cgPSAtMTsKKwogICAgIGJvb2wgYnJlYWtOQlNQID0gc3R5bGUoKS0+YXV0b1dyYXAo
KSAmJiBzdHlsZSgpLT5uYnNwTW9kZSgpID09IFNQQUNFOwogICAgIGJvb2wgYnJlYWtBbGwgPSAo
c3R5bGUoKS0+d29yZEJyZWFrKCkgPT0gQnJlYWtBbGxXb3JkQnJlYWsgfHwgc3R5bGUoKS0+d29y
ZEJyZWFrKCkgPT0gQnJlYWtXb3JkQnJlYWspICYmIHN0eWxlKCktPmF1dG9XcmFwKCk7CiAKQEAg
LTY5Miw3ICs2OTUsOSBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFk
CiAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5Kys7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfSBlbHNlIGlmIChjID09IHNvZnRIeXBoZW4pIHsKLSAgICAgICAgICAgIGN1cnJN
YXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBpIC0gbGFzdFdv
cmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cyk7Cisg
ICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3Vu
ZGFyeSwgaSAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZh
bGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgIGlmIChmaXJzdEdseXBo
TGVmdE92ZXJmbG93IDwgMCkKKyAgICAgICAgICAgICAgICBmaXJzdEdseXBoTGVmdE92ZXJmbG93
ID0gZ2x5cGhPdmVyZmxvdy5sZWZ0OwogICAgICAgICAgICAgbGFzdFdvcmRCb3VuZGFyeSA9IGkg
KyAxOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTcxNSwxMyArNzIwLDE1
IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKIAogICAgICAgICBp
bnQgd29yZExlbiA9IGogLSBpOwogICAgICAgICBpZiAod29yZExlbikgewotICAgICAgICAgICAg
aW50IHcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCB3b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4
V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgIGludCB3ID0gd2lkdGhGcm9tQ2Fj
aGUoZiwgaSwgd29yZExlbiwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250
cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3ZlcmZs
b3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPSBnbHlwaE92
ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBjdXJyTWluV2lkdGggKz0gdzsKICAgICAgICAgICAg
IGlmIChiZXR3ZWVuV29yZHMpIHsKICAgICAgICAgICAgICAgICBpZiAobGFzdFdvcmRCb3VuZGFy
eSA9PSBpKQogICAgICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gdzsKICAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZy
b21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBqIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdp
ZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cyk7CisgICAgICAgICAgICAgICAgICAg
IGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBqIC0g
bGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250
cywgJmdseXBoT3ZlcmZsb3cpOwogICAgICAgICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkgPSBq
OwogICAgICAgICAgICAgfQogCkBAIC03NzQsNiArNzgxLDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpj
YWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCA9IDA7
CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSBm
LndpZHRoKFRleHRSdW4odHh0ICsgaSwgMSwgYWxsb3dUYWJzKCksIGxlYWRXaWR0aCArIGN1cnJN
YXhXaWR0aCkpOworICAgICAgICAgICAgICAgIGdseXBoT3ZlcmZsb3cucmlnaHQgPSAwOwogICAg
ICAgICAgICAgICAgIG5lZWRzV29yZFNwYWNpbmcgPSBpc1NwYWNlICYmICFwcmV2aW91c0NoYXJh
Y3RlcklzU3BhY2UgJiYgaSA9PSBsZW4gLSAxOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
QVNTRVJUKGxhc3RXb3JkQm91bmRhcnkgPT0gaSk7CkBAIC03ODEsNiArNzg5LDkgQEAgdm9pZCBS
ZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAgICB9CiAgICAgfQogCisg
ICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPiAwKQorICAgICAgICBnbHlwaE92ZXJmbG93
LmxlZnQgPSBmaXJzdEdseXBoTGVmdE92ZXJmbG93OworCiAgICAgaWYgKChuZWVkc1dvcmRTcGFj
aW5nICYmIGxlbiA+IDEpIHx8IChpZ25vcmluZ1NwYWNlcyAmJiAhZmlyc3RXb3JkKSkKICAgICAg
ICAgY3Vyck1heFdpZHRoICs9IHdvcmRTcGFjaW5nOwogCkBAIC0xMDU2LDcgKzEwNjcsNyBAQCB2
b2lkIFJlbmRlclRleHQ6OnNldFRleHQoUGFzc1JlZlB0cjxTdHJpCiAKICAgICBzZXRUZXh0SW50
ZXJuYWwodGV4dCk7CiAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Ci0g
ICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9IGZhbHNlOworICAgIG1fa25vd25Ub0hh
dmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzID0gZmFsc2U7CiAgICAgCiAgICAgQVhPYmpl
Y3RDYWNoZSogYXhPYmplY3RDYWNoZSA9IGRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKTsKICAg
ICBpZiAoYXhPYmplY3RDYWNoZS0+YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKQEAgLTExMjIsNyAr
MTEzMyw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6cG9zaXRpb25MaW5lQm94KElubGluZUIKICAgICBt
X2NvbnRhaW5zUmV2ZXJzZWRUZXh0IHw9IHMtPmRpcmVjdGlvbigpID09IFJUTDsKIH0KIAotdW5z
aWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQg
eFBvcywgYm9vbCBmaXJzdExpbmUsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cykgY29uc3QKK3Vuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3Zl
cmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKGZyb20gPj0gdGV4dExlbmd0aCgpKQogICAgICAgICBy
ZXR1cm4gMDsKQEAgLTExMzAsMTAgKzExNDEsMTAgQEAgdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lk
dGgodW5zaWduZWQgZnJvbQogICAgIGlmIChmcm9tICsgbGVuID4gdGV4dExlbmd0aCgpKQogICAg
ICAgICBsZW4gPSB0ZXh0TGVuZ3RoKCkgLSBmcm9tOwogCi0gICAgcmV0dXJuIHdpZHRoKGZyb20s
IGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAg
ICByZXR1cm4gd2lkdGgoZnJvbSwgbGVuLCBzdHlsZShmaXJzdExpbmUpLT5mb250KCksIHhQb3Ms
IGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogfQogCi11bnNpZ25lZCBSZW5kZXJUZXh0
Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmIGYsIGludCB4
UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0
Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4s
IGNvbnN0IEZvbnQmIGYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGZyb20gKyBsZW4gPD0gdGV4dExlbmd0aCgpKTsKICAgICBpZiAoIWNoYXJhY3Rl
cnMoKSkKQEAgLTExNDMsMTggKzExNTQsMTkgQEAgdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgo
dW5zaWduZWQgZnJvbQogICAgIGlmICgmZiA9PSAmc3R5bGUoKS0+Zm9udCgpKSB7CiAgICAgICAg
IGlmICghc3R5bGUoKS0+cHJlc2VydmVOZXdsaW5lKCkgJiYgIWZyb20gJiYgbGVuID09IHRleHRM
ZW5ndGgoKSkgewogICAgICAgICAgICAgaWYgKGZhbGxiYWNrRm9udHMpIHsKLSAgICAgICAgICAg
ICAgICBpZiAocHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9u
dHMpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJUZXh0Kj4odGhpcykt
PmNhbGNQcmVmV2lkdGhzKDAsICpmYWxsYmFja0ZvbnRzKTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGZhbGxiYWNrRm9udHMtPmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1f
a25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVlOworICAgICAgICAgICAgICAgIEFTU0VS
VChnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICBpZiAocHJlZldpZHRoc0RpcnR5KCkg
fHwgIW1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzKSB7CisgICAgICAg
ICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRoaXMpLT5jYWxjUHJlZldpZHRo
cygwLCAqZmFsbGJhY2tGb250cywgKmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoZmFsbGJhY2tGb250cy0+aXNFbXB0eSgpICYmICFnbHlwaE92ZXJmbG93LT5sZWZ0ICYm
ICFnbHlwaE92ZXJmbG93LT5yaWdodCAmJiAhZ2x5cGhPdmVyZmxvdy0+dG9wICYmICFnbHlwaE92
ZXJmbG93LT5ib3R0b20pCisgICAgICAgICAgICAgICAgICAgICAgICBtX2tub3duVG9IYXZlTm9P
dmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIHcgPSBtX21heFdpZHRoOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICAgICAgdyA9IG1heFByZWZXaWR0aCgpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMpOwor
ICAgICAgICAgICAgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGZyb20sIGxlbiwgeFBvcywgZmFsbGJh
Y2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfSBlbHNlCi0gICAgICAgIHcgPSBmLndpZHRo
KFRleHRSdW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBmcm9tLCBsZW4sIGFsbG93VGFicygpLCB4
UG9zKSwgZmFsbGJhY2tGb250cyk7CisgICAgICAgIHcgPSBmLndpZHRoKFRleHRSdW4odGV4dCgp
LT5jaGFyYWN0ZXJzKCkgKyBmcm9tLCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tG
b250cywgZ2x5cGhPdmVyZmxvdyk7CiAKICAgICByZXR1cm4gdzsKIH0KSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmgJKHJldmlzaW9uIDU3MDkxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw4ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB1bnNp
Z25lZCB0ZXh0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Lmxlbmd0aCgpOyB9IC8vIG5v
biB2aXJ0dWFsIGltcGxlbWVudGF0aW9uIG9mIGxlbmd0aCgpCiAgICAgdm9pZCBwb3NpdGlvbkxp
bmVCb3goSW5saW5lQm94Kik7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9udCYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdDsKLSAgICB2aXJ0dWFs
IHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJv
b2wgZmlyc3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cyA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0g
MCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDAp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgYm9v
bCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OwogCkBAIC0xMzMsNyArMTMzLDcgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgSW5saW5lVGV4dEJveCogY3JlYXRlVGV4dEJveCgpOyAvLyBT
dWJjbGFzc2VkIGJ5IFNWRy4KIAogcHJpdmF0ZToKLSAgICB2b2lkIGNhbGNQcmVmV2lkdGhzKGlu
dCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250
cyk7CisgICAgdm9pZCBjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cmKTsKIAogICAg
IC8vIE1ha2UgbGVuZ3RoKCkgcHJpdmF0ZSBzbyB0aGF0IGNhbGxlcnMgdGhhdCBoYXZlIGEgUmVu
ZGVyVGV4dCoKICAgICAvLyB3aWxsIHVzZSB0aGUgbW9yZSBlZmZpY2llbnQgdGV4dExlbmd0aCgp
IGluc3RlYWQsIHdoaWxlCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
ZGVsZXRlVGV4dEJveGVzKCk7CiAgICAgYm9vbCBjb250YWluc09ubHlXaGl0ZXNwYWNlKHVuc2ln
bmVkIGZyb20sIHVuc2lnbmVkIGxlbikgY29uc3Q7Ci0gICAgaW50IHdpZHRoRnJvbUNhY2hlKGNv
bnN0IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0OworICAgIGludCB3aWR0aEZyb21D
YWNoZShjb25zdCBGb250JiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KikgY29u
c3Q7CiAgICAgYm9vbCBpc0FsbEFTQ0lJKCkgY29uc3QgeyByZXR1cm4gbV9pc0FsbEFTQ0lJOyB9
CiAKICAgICBpbnQgbV9taW5XaWR0aDsgLy8gaGVyZSB0byBtaW5pbWl6ZSBwYWRkaW5nIGluIDY0
LWJpdC4KQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gb3IgcmVtb3ZlZCkuCiAgICAgYm9vbCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0IDog
MTsKICAgICBib29sIG1faXNBbGxBU0NJSSA6IDE7Ci0gICAgbXV0YWJsZSBib29sIG1fa25vd25O
b3RUb1VzZUZhbGxiYWNrRm9udHMgOiAxOworICAgIG11dGFibGUgYm9vbCBtX2tub3duVG9IYXZl
Tm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA6IDE7CiB9OwogCiBpbmxpbmUgUmVuZGVyVGV4
dCogdG9SZW5kZXJUZXh0KFJlbmRlck9iamVjdCogb2JqZWN0KQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
NTcwOTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMC0wNC0wNSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRleHQgcmVw
YWludGluZyBkb2VzIG5vdCBhY2NvdW50IGZvciBnbHlwaHMgd2hpY2ggZHJhdyBvdXRzaWRlIHRo
ZSB0eXBvZ3JhcGhpYyBib3VuZHMgb2YgdGhlIGZvbnQgKDYyNzQpLgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjY0OTczND4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mjc0PgorCisgICAgICAgICogZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3Jp
dGljcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0
YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3Jp
dGljcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTA0LTA1ICBDaHJpcyBGbGVpemFjaCAg
PGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKKyAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RS
L2h0bWw0L3N0cmljdC5kdGQiPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorICAgIGRpdi50ZXN0IHsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDEyMHB4
OyBib3JkZXI6IDFweCBzb2xpZCBibHVlOyBwYWRkaW5nOiAxMHB4OyB9Cis8L3N0eWxlPgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAg
ZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgICAgIHsKKyAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3N0YWNrZWQnKS5pbm5lclRleHQgPSAiIjsKKyAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCk7Ij4KKzxwPjxi
PkJVRyBJRDo8L2I+IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Mjc0Ij4gQnVnemlsbGEgYnVnIDYyNzQ8L2E+VGV4dCByZXBhaW50aW5nIGRvZXMgbm90
IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJv
dW5kcyBvZiB0aGUgZm9udC48L3A+CisKKzxwIGlkPSJzdWNjZXNzIiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjpwYWxlZ3JlZW47IHBhZGRpbmc6M3B4OyI+PGI+VEVTVCBQQVNTOjwvYj4gCitUaGUg
dGV4dCB3aWxsIGVudGlyZWx5IGRpc2FwcGVhci4KKzwvcD4KKworPHAgaWQ9ImZhaWx1cmUiIHN0
eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNGRjMzMDA7IHBhZGRpbmc6M3B4OyI+PGI+VEVTVCBGQUlM
OjwvYj4gIAorTW9zdCBvZiB0aGUgdGV4dCB3aWxsIGJlIGdvbmUsIGJ1dCBzb21lIGFydGlmYWN0
cyB3aWxsIGJlIGxlZnQgYmVoaW5kIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UuCis8L3A+CisKKzxk
aXYgY2xhc3M9InRlc3QiPgorICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzZweDsiIGlkPSJz
dGFja2VkIj4mI3gxRUE2OyYjeDFFQTQ7JiN4MUVBQTsmI3gxRUE4OyYjeDFFQjA7PC9kaXY+Cis8
L2Rpdj4KKzxicj4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFj
a2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3Rl
ZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorY2U5YmU4NmNmYjk0MzNhNjRm
YzY1Zjg3MTBiMDIwNTYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWlu
dC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDMxNgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
MzE2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDI5MgorICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDM2CisgICAgICAgIFJlbmRlcklubGlu
ZSB7Qn0gYXQgKDAsMCkgc2l6ZSA2MngxOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDYyeDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA2
MjogIkJVRyBJRDoiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjIsMCkgc2l6ZSA0
eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDYyLDApIHdpZHRoIDQ6ICIgIgorICAgICAgICBS
ZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTE3eDE4IFtjb2xvcj0jMDAwMEVFXQorICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjYsMCkgc2l6ZSAxMTd4MTgKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg2NiwwKSB3aWR0aCAxMTc6ICJCdWd6aWxsYSBidWcgNjI3NCIKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxODMsMCkgc2l6ZSA3Nzd4MzYKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTgzLDApIHdpZHRoIDU5NDogIlRleHQgcmVwYWludGluZyBkb2VzIG5v
dCBhY2NvdW50IGZvciBnbHlwaHMgd2hpY2ggZHJhdyBvdXRzaWRlIHRoZSB0eXBvZ3JhcGhpYyBi
b3VuZHMgb2YgdGhlIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAyOTogImZv
bnQuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDUyKSBzaXplIDc4NHgyNCBbYmdjb2xv
cj0jOThGQjk4XQorICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNpemUgOTF4MTgK
KyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMykgc2l6ZSA5MXgxOAorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDMsMykgd2lkdGggOTE6ICJURVNUIFBBU1M6IgorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDk0LDMpIHNpemUgMjAzeDE4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDk0LDMpIHdpZHRoIDQ6ICIgIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg5OCwzKSB3
aWR0aCAxOTk6ICJUaGUgdGV4dCB3aWxsIGVudGlyZWx5IGRpc2FwcGVhci4iCisgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsOTIpIHNpemUgNzg0eDI0IFtiZ2NvbG9yPSNGRjMzMDBdCisgICAg
ICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA5MHgxOAorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMywzKSBzaXplIDkweDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMywzKSB3aWR0aCA5MDogIlRFU1QgRkFJTDoiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoOTMsMykgc2l6ZSA1NjF4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoOTMsMykgd2lk
dGggNDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDk3LDMpIHdpZHRoIDU1NzogIk1vc3Qg
b2YgdGhlIHRleHQgd2lsbCBiZSBnb25lLCBidXQgc29tZSBhcnRpZmFjdHMgd2lsbCBiZSBsZWZ0
IGJlaGluZCBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDEzMikgc2l6ZSAyMjJ4MTQyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDBGRildCisg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMSwxMSkgc2l6ZSAyMDB4MAorICAgICAgUmVu
ZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjc0KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgxOApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQucG5nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1l
LXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4
cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRp
b24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFD
YWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFBZUFHRgpWTTlyRTBFVS9qWnVxZEFpQ0Zw
ckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6U2RadU51dnVKcldsaU9UaTBTcmVSZTJo
CkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVNdHFYcXdNNSs4OTQzNzMxdmR0OEFEWExT
TlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFsVmR2c1RpUUdRWU56K1h2bjJIb1BnVnRX
dzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhDbGtTQW9nOAozNkVweDNRSTMrUFk4dXlQ
T1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRRSU5JT0pUMWNWSStuTmVMbE5jZEIybHVa
c2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9zOTQrd2lIQ0N4bXRQMGE0alo3MWpOVS80
bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFUU2VpVkhIWkxnM3htSzc5VnZKS2duQ1FP
TXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1VlRjVqeE5uM3RUZAo3MFhhQXE4d0RoME1H
Z3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJodVRlekoxSkdxN2RHSkVzVUY3TnR3OXQx
R2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkxeXcyRmIzbEsyYm1ycnk0RHZGNVptNUdo
N1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAreFhsekhtZ2pXUHhIT3crL0V0WDVYTWx5
bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJYV2M2MkppemRXbTVkbgovV3BJKys2cXZK
UG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3eGt0aExxd3ZpWUczSENKMlZoaW5TYlpI
NkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxTSjkzL0NLbVEwbmJrT2IvcVAyOGY4RitU
M2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJWHY5Rjk4TFp1YTZOK09Qd0VXRHlyRnEx
U05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82NmNwaVVzeFEyME5TVXRjbAoxMlZMRnJP
WlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3L2JCUytmbXNVdGwrVGhyV2daZjZiOEM4
L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWV6ZFo3Y2t4MzBuNkd3RDd4M2hDTzlKa0FTTmFDV0tYSEYw
Vm1lMFhKN1ZDK2pqNk9NTXo1eDVNM08wUnl2dGpIWkUKa1VPS0l1Z0pBb1FudlBlMnplWXZiMGQz
ZHFJcU0rcm12YmVycTU4Z0crVWlJeU9laU15S2Y1cTYrKzYvLy82ampVU0FBQUVDQkFnUQpJRUNB
QUlFOUVOaS9CK3V3Q2dJRUNCQWdRSUFBQVFJRUNIUUNBaEFEZ1FBQkFnUUlFQ0JBZ0FDQlBSTVFn
T3dadFJVUklFQ0FBQUVDCkJBZ1FJQ0FBTVFZSUVDQkFnQUFCQWdRSUVOZ3pBUUhJbmxGYkVRRUNC
QWdRSUVDQUFBRUNBaEJqZ0FBQkFnUUlFQ0JBZ0FDQlBSTVEKZ093WnRSVVJJRUNBQUFFQ0JBZ1FJ
Q0FBTVFZSUVDQkFnQUFCQWdRSUVOZ3pBUUhJbmxGYkVRRUNCQWdRSUVDQUFBRUNBaEJqZ0FBQgpB
Z1FJRUNCQWdBQ0JQUk1RZ093WnRSVVJJRUNBQUFFQ0JBZ1FJQ0FBTVFZSUVDQkFnQUFCQWdRSUVO
Z3pBUUhJbmxGYkVRRUNCQWdRCklFQ0FBQUVDQWhCamdBQUJBZ1FJRUNCQWdBQ0JQUk1RZ093WnRS
VVJJRUNBQUFFQ0JBZ1FJQ0FBTVFZSUVDQkFnQUFCQWdRSUVOZ3oKQVFISW5sRmJFUUVDQkFnUUlF
Q0FBQUVDYXhlQWZQREJCODNiYjcvZEhEMTY5SGp2dlAvKys4ZWZlOUkwSDN4d3RIbnJyU1BIS1E0
ZgpQdHE4L1BMeTE4Y3pWano1NktPanpidnZuckN2V0dSSHMyVDlhY3VoUXlmWElXM092N25wVkxa
dGJ0MTNZdmxzWDIrOTlkYTJpNXE3Ci9Lb3JQbkxrU1BQbW0yK3V1cGo4cDBnZysrb1hYbmloM1ZZ
LzJKTWFIRDU4dU4xZnZMeGo2L3JvbzQvYS9kKzdPMVplYlVGVDYxMWwKdTVzcWE2cE9aOG8yTjJX
Nmt3NXorMlNxenpicDh5bXJxWDRiczVncWUyelozZmhzSjhmWW92cXRzajgrRlRZSEYxVzYvOTZU
VHo3WgovUHJYdjI3ZWVlZWQ3dTFQZk9JVHpYbm5uZGU4OGNZYnpTV1hYTkxjZSsrOXpZVVhYdGg5
OXRoamp6Vy8rYzF2bXZmZWU2OTdmY1VWClZ6UjMzMzEzODhsUGZySUxLbjcxcTE4MWYvempINXZy
cnJ1dStkS1h2dFNWazR6cGhOLy8vdmZONDQ4LzNuMTI4Y1VYTjYrLy9ucTMKekFVWFhOQ2NmZmJa
eldjLys5bXV6UDUvVXJmZi92YTN4eWRVNTU5L2ZuUFBQZmMwKy9mdmI3S3U4aVY0NVpWWGRuVk5H
MUwzNUxubwpvb3Y2UlUwK2YrNjVJODFERHgxdXYxeVBObTMxbXNzdTI5L3MyOWQwL3k2OWRGOXor
KzM3Mi9XMmIreEIrczF2RGpjdnZuaWsrYXUvCk9ydDU1WlVqelU5L2VxaEpqUGE5NzMzODlTclZl
ZVNSdzgzUGYzNjR0VDdRM0hYWGdWVVduWjMzalRlT3RPUHNjUE9KVCt4dmJyaGgKZjNQdzRKYmxx
NjhlYWZzeTdUM2FCcVZOKzltKzVpdGZPZGdjT0xDdkhUZEhtLy82WHo5cSsvbmpxLy91ZDg5cSsv
cmsvbmorK1NQTgpqMzk4cUhQS0V2L3lMLy9TVFY0eVRzODY2Nnh1YkdZTVhYNzU1YTNuKzkxblgv
N3lsNXRiYnJubDR5czRUZC9KOXZuaWl5KzJZK2V2CnR0V0N1Y3V2c3RKWFhubWxIZHMvN2ZybUwv
N2lMMVpaVk41VElQRG9vNDgyQ1FpeTMvM3hqMy9jL1BWZi8zVzduZTdlZnFTTWoyeXIKMy92ZTky
YTNPTjhuR1crZit0U251bit6QzZ3c29HYTl0ZHRkVFZsajFTcW0yUjl1K2pZM1pycVREblA3Wkt5
L051MnpHcXV4Zmh2egplT1NSUjlyNXpjKzd1ZVJkZDkwMWxuVlBQdHZKTWJhb3dxdnNqMnZjRjYx
ajdudVRBY2hOTjkzVUpETDYyYzkrMXEzck01LzVUSk1KCi9TOS8rY3N1YUhqNjZhZWI3MzczdTEy
UWNPdXR0M2FCeXU5Kzk3c3U3eGUrOElWdU1wY1hDVksrL3ZXdk4zLy85My9mZk8xclgyc24KbUZ1
clBuVG9VUE0vLytmLzdDWjdmL3FuZjlwY2YvMzEzYkw1ejdQUFB0djg4SWMvYkNmRGl3ZEw2cGFV
TDd1a0JEdTMzMzU3OXp4SApzUktjSlAzSm4veEpHelJjM0xYakgvL3hINXRnSjZCWlZtNjMwT0Ev
MTE2N3YvMHliZG9BNUZCejY2MG5KdWl2dlhhaytlLy8vVkFiCmtCMXQxelBKT1NoMWV5L3Z2ZmRB
OCtHSFd5ZXZycmhpZjNQenpRZmF2ampjRlRaOHZjb2Fici85UUJ0QWJwV3p5bkp6OHo3NjZPSG0K
ZDc4NzNIejcyd2ZiY1hMaXBGek9oaVFvdWVPTy9XM1FzYi81d3g4T053OCtlS1R0eThOdDRIdXdE
UmlPZEo5ZGM4MVczNlFlNlllSApIejd5c2VEand3K1Bkb0ZNNzhSYUYvais1Vi8rNWZFQStqLy81
Ly9jQmtDZmFOZjFsYTVKRHozMFVKZG5idnZLVWRxcnI3NTZibEd6Cmw4OEJndzgvL0xDNm5HSGRW
MTIrZWtVTE1pWXd2T3FxcTA2N015QkRzd1ZOTyszZW1tcFQ5dVA1Y3YrYnYvbWI5cURNdnViYWE2
L2QKMWVBamdCa2ZOOTk4Yy9jOXRCT2crVDRwM3hrN1VWNXRHVFhycmQzdWFzb2FxOWZwdXMzMTJ6
UTFWa3ZlTWRPNUR2MDZ6TzJUVXQveQoyQys3dkxjcGp6VldZLzAyNXBDNVlZS1hkVWx6eDloWU8y
cjJ4LzF4Vk9NK3RyN3RmblppdGpkU3dqbm5uSFA4MDN5NUpGMTY2YVhkCll4cVJzeFVsOWZPZWUr
NjU1ZTNqanpuelVJS1B2Smt6RlRtRm5nQ2hIM3prczV3cHlXQWJTems3VWxML2VZN2dsSlF6SWts
NUw4RkkKenJqODRoZS82QzRWS0hscUhrdVJ4d2k2UlhJbTVQTEw5M1ZuSkdyS0dPYnBYMm8yL0d6
WjYzUE8yZGVld1RuUmRXbGV2MDdEMTZXYwpuREdZU3N1V25WcHUrSGx0dTE1NjZVZ2IzQjV1ZzlL
VGc0K1U5OG9yUjVzdmYvbGdPeTRPZEFIRlp6NXpvQTBXbW5hOGJMWGp5aXYzCk41Lys5TUYySXJL
L0hZOWIvOTU2NjJpYi8rUXpIeWtyQWM1dHQ1MHd5M3NKUU12WnU3d2VwdHR1dTYwYmw4UDNWM21k
c2ZhVG4veWsKRytPckxGZWJkOHc1Nng2bWJKKzFaLzhXMVgyVjVmdnJIcXRuUDE5NVh2Sm4yeTM3
blBMWjNNZFM5dHh5RmkyL3lHeFJ2cnkzcUgrVwo1VDJWNzllMEtkOEJ5VmY2S2dlcGRqSXQ2N001
NDJOUm1lVzdZcXJ1aTVhZFdtYnM4Nm4xcnJMZFRaVzFyQjZsVGF1WXJ0c1lIaHVyCnBYMmwvY3RN
Uzc1VkhFcVplVnhVaCszMlNiL2NaV1VQODR5OUxtMGJ5N1Bzcyswc096VStGcFU1WmJXczM1YlZ1
Ly8rZHZ1MFg4Wk8KUEMvdFhsYWY4dmwyMXpXMVA5N05NYnBLbmJkOXlMNWNkNXNKWEk1U2JpZmwx
UGtmL3ZDSGJ0RmxSNGR6Vm1NbnJ3Ry83TExMamxjMQpaMnJLZXA5Ly92bm0zLy85MzdzektGbG5i
Y3E5Q20rK2ViUTlLM0ppY3Z2VVUxdVhNdDF6ejRIbXpqc1B0R2RjRG5kbkZxNitlbjk3CjZWazU4
M08wUFl0MHVFbU05dEpMUjlzelNGdVhkVjE1NWI1MlVyeXZ2VHpvVUh1bWFWOGJyRFh0V2FXajNa
SDkrKzQ3MkU2MDl6VlAKUEhHa2VlYVpJODEzdm5NaXlCcXI3d3N2SEdsZWZYVnIwcDdsdnZTbEE5
MkVmZGt5YWRNdmZuR29XOC81NSs5cnZ2clZBKzFFZkg4egp0MTFYWFhYQ3FLejdmLzJ2UTIwQXNh
Kzd2T3JoaHcrM2w4cnRhL3RrSzEvT2JQUlRKamNYWDd6ditObU5DeTc0ZUtEeHpETkh1L3IyCmw0
dC95c29abFg3S1VkcXhsRUM1ak8yTTFRY2ZmTEI1N2JYWDJ2dFREalU1dTVkSjFxdXZ2dG9GMGJu
czhJdGYvR0lYWFAvYnYvMWIKRjl6azBxMkhIMzY0N2F0bnVzc0VjMjlUeVZQV20rVnpxalE3MWF3
dloxMisrYzF2TnJuMGNOSDZNazV6cVdLMnUreEU4anc3c1Z3cQpkczAxMTNURjVocjhsSnVVZGVk
eXh4d3dTQjJmZU9LSjdyM3ZmT2M3WFFDZWRlZXlzeHdBeVBhUXNyTCtsRCtzKzZjLy9lbnVNcldV
CldiTjgxaCtybkMzTndZaVhYbnFwTzFPYWJUQjJ4VGI1U2tyK0hCeklwWktwYnk3MTdGL0drN094
T1dpUmVzWXpUam1iV1E1cUxPdW4KbFAvVVUwOTFaMzlTUm1sRFdXOTVqTjJZU2ZLTjFXRm9OdXp2
TEwrc2YvSloycDkreU1HU2pMVmNEbGoyUjJPZmpkVXA3YzdaaVZ4NgpldWVkZDNabmdITWtNUHUr
akkycE5rKzFLVjQ1RTU0dnpad3BUMy9kZDk5OW8wN0x4bjJPQ3ZiVEt1TW5aN1pqbHpHUjlaZExl
Yk5mCno1bjcxRzlxMnlucnptWEh5WnQrK0xNLys3UGpCeXBxeGxBc2NpbFh4bmUyeTR5MWpPbU0r
NHlISEFESWRwNTgzL3JXdDA0YTM0dlcKTzl4dVU4ZXhzVERWaHZKNWVVeFp5N2E1WmYyVVpSYnRZ
K2EwdmRSbnpsaGVORlp6SlVYTyt2YTMrMldteXh4U3Q3RjlTNmw3SGhmVgpvWHkrcUgvejJYYkx6
aGpMV0pvejVzZThVN2V4YlREYitxTHZyMlhqbytiN0srdE1XbVMxck4rVzdUTzNTanI1djJXODU3
c3czMzFmCi9lcFh1MzFGY28xWnpOMlBwdnl5N21YZmJ6WDdsNmw2THRzZlo3bVNkbk9NbG5YVVBK
NDh3NnRZSXRlUFoyS1VuZjBkZDl6UlhTZGEKam5wVkxINVNsa3d1U3NvRWJGRksyYm5YWktkU3Zs
QXk2Skw2Z1UzYWszdEVTa0EwdHI3WFhqdmFUY1lmZlBCdzh6Lyt4NkZ1d3B4QQpvNlFiYnp6UW5a
RW9OMUxmZE5PQmRnZXhyOTBKbnBnQVAvNzRrZmFMcCttTzROOTMzNEYyWXJmMVdhcVdtOHJ2dm50
LysyVjFzTHNmCm81MW50Uk9zZmUwRWMxOVhiZ0tTSE9tdlNTbnJKejg1MUoybFNVQ1VNbjc3Mi9I
THJKNTg4a2o3NWJtdk95dVJHNzhUREIxcHo1N00KYmRld3ZtKy9mYVNkWkc2OW0wdW5jb040MXZY
QUE0ZUdXYnZYbVVDOC92ckp3VjQvWThxTCtTV1huQmpXS1RNQjRqQ1k2UzgzOWJ3YwpMY2padUc5
Lys5dmRwUEJmLy9WZnV5KzFUQkF6c2N0WXl0bkFYUCtld0tQY041TEpZeWJmTjl4d1EzZHBWNWtv
bDNXbTdOd1g5ZHh6CnozVVRrK1RMR00xWmswWHJ5K1FsRThhTTE1d2h6R1dOMlhZUzlDU2xEbG0y
MUN0QlNibXNKTnRTeG5pNUNUM2JWU2E1K1lKT0hkTzIKcEd6ZlNZdnF2c3J5S1NPVHVIeEpKWGpK
cERCdFRTcmJZUGVpOTU4Zi9laEgzV1Z3eVovSldvS01mdnJCRDM3UVhYcnorYzkvdnZuRwpONzdS
bmlWN3Bja3lTV1A5bE05eW4xbE93NmUvTXRGZGRKUnB5aVRyR2F2RElyTXNVOUpZL3lSUExqbE52
NmFPS1N2Qlc1bm9qWDAyClZxY2JiN3l4T3pPUkw3K2tuRzdQaEtWY2lqZlY1cWsyNVV4aExyOU5T
cCtsbjVQRzZyUm8zUGZQWUhjRnRQOVpaZnlrWGRrV1VuYUMKajZRODVzcyt3ZGJVdHRNdDBQNG5Z
elNYWWliSXpoZ3AyMFB0R01vOWovRk5lL0l2KzRJWVo4eVhzNDk1akZrL3VGNjIzdUYybTNxTwpq
WVY4dnF5c2ZEWk1ZOXZjb243S1BtelpQbWE3YmUvWGFXemNUSTNsNFZqTmdZcEYyLzBpMHltSFpm
dmtmdDN6ZkZpSHNzOWYxaWN4CjNtN1pHVU56eC95WWQ5b3p0ZzJ1T2o3bWJvT0wrbTFxVzBnYitp
bmZuUW5jY2l0QXZxOXpMMmpha1RSbU1UWDJwdmFqS1g5cWpDMGEKcTFsdW1NYnF1V3gvM0M5ak44
ZG9mejFUejAvTTFLWnk5ajdQVGptVHBCenRlS0tOSXJlYityODIwdDhSYjdlODJ1WHloWlNVd1Zj
bQpJZG1RYzRRcVgveFRxVzErZDlQMzY2OGZhUitQZHBQemZuQ1I1Uk5jOUZQT1pQUlR6bUtVcThk
eStWRDd2ZG1sQ3k3WTMwNEc5N1dYCkVXMTF6V09QSFdrbmlVZmJML1lFTmZ1NnozS1dvRGExKzkv
MlJ3QnllZExXTXJsOEt4UHlzWlI3U25MWlU4NUVmTzV6QjlwSmE0N2EKYmkwenAxM0RkYVpkU1Fu
QWN2OUp6dkRjYzAvdTlUalNCaG9mdjN6bzZhZVB0TmVXNTVLM3hjUDI2YWR6K2RXSno5SzN1ZlFx
Z2RlYwpsQytPcEJ6QlQ2Q1F5WHJHVGw0blpYS1R3Q0ZINXJNOUpEQWZwdlRkb3BRekFaa2s1Vi9L
eUJIcEJBVkppOWFYaVUwbU1wbWtaaWVhCmlWSjJwRGt5bENBb1g3aVpCSlJMSlBQbFZBTHQxRHM3
eVpMeU9tYzZramZscGV5VVZ3S1VrcS9VZlR2THg2Tk1MTE9lMUNjcDZ4cW0KbkZXTmJ6bVRrL1dt
WGlYbHM1amtpeUFwYmMza0x1OW4yYkYreXBHdG5KWk9zSldVblhUWjlyczNqdjFueW1TcURxV3NZ
bFplbDhleAova2xnbWI0dlp3RVNSR1pDSDZ1eHoycnFOTnkvbGtsUjZqWFY1bEwzWlcwcW4vY2Zw
K3EwYU55WHlYbS9uRlhHVDViTEdaNVlsY0ExCjQ2S2M2WnphZHNwNmt6L2JkTGF6YkE5bCs2a2RR
eWtuNHpKSGU4c1l5NWpPbVpBeTBVa2RzNzMzMDdMMURyZTdzYkZReWx0V1Z2bTgKUEU1dGM0djZL
ZnVxWmZ1WWxMdWR0cGY2VEkyYjVCc2J5NldjTWxhWDlkblFkTXBoYk45UzFqbDhMSFVvN3kvcms3
bGx6eG56TmQ1agoyK0NxNDJQdU5qanN0NXB0b2ZpWHg1dHZ2cm1kSjF6ZmJlT2YrOXpudW9OeUth
ZkdZbXpzVGUxSHA4YllzckZhNmwwZWErcFo4azQ5Cjd1WVluVnAzUGo4eFc2dkozZWJKRGptL0Vw
SWJ4alBweVJHNm5BTGNUc3JrcDZUK3BDZGZ3am1GblJ2R3k3OGM0YzNSdzUxSW1Ud20KWldNb0ha
REpYRzVJTGpleGo2MG45M3prak1mWHZuWlc4eC8vNDFudGtmdW0rZWQvM2pwTE1MWmMvN01FSkxu
SG9hUUVIYmtVS1NsbgpPL0l2WngveUMxRDVoYTMrcEh2SlhMWVVkZEpqMnZlRkx4eHNUeTNtU043
V3IyZTFjN0hSMU1hV3gxT3BVKzBabDdGMkhTLzAySk55CkwvUkZGNTJZbk9jWHNKTEtKV1BIc25a
bmozTFQrZWMvdnp5WXlPVmwvUURra1VlT05EZmZmT0lYdFVwWnF6N21LSHNtenBrODVsOTIKdW4v
KzUzL2VCYXlsckJ6MXpSaE9FSnM4cTZUczFNckVQTXZWcksrTTIrVFBoQ0FIQkRMaDJlcnZMM1Nu
a25Qa05tY3NzMk1ycWI5YwozaHUrVGpsajI5a3cvL0QxY1BsTWROT2VrcktUTGhQczhsNTVUSENS
U1dnSldQSitmNktjTXdHbEg4b3lwYXpzTThiY3Nsd21UVGx5CmxNdUVNcmxjMWs5amJacXFRNm5Y
c3NlVW5jdjMwaWZEL2tuN003YjY2OC8rS0hVZisyeHVuVkxYL2pyemV0aVBlVytWVkZPbjRiaGYK
VlA0cTR5ZkxKMkJOMytZeWhLUUVuT24zZnVxM3RiL3RsRHo5enpNV3k1bWpWY1pRZ3VUK1FZcWM3
YzkybFlsT0hoT1k5TWQyMXIxcwp2Y1BQeHNiQ1ZCdks1K1Z4YXB0THZtRS9wWjdMeG5EeWI2ZnRX
UzZwWnR4czVhejc3MWlmOWIybkhNYjJMWFUxV2Q2L2M4dWVNK1pyCnZLZTJ3VlhIUjd6NjlxdHNn
OE5sYTdhRllmOWszMVpTK2Y3SWQzZU5SVmx1MldPL1hjblQzNDlPamJHeHNkcGYzMDdVczE5ZS8z
bS8KL3YxOTM5d3gybDlILy9uZ3VIei9vL0hubVdobFlHYm5uRk5hNVJlbCtwMjdhQ0pUamdpbDlB
eThrdnFYWTZYczdPRCsyMy83YjkxTwpQSUZDcnFYZHFWUUNrSHpaejAzNU9kaE1tbk0vUjM2cU4y
Y09hbEorNWphWFJ1VklmODRxNUY5K2dyYWZFbnkwKy9yMit1VzZNdnZMCjlwL241M1Z6NC9hWHYz
eWdhWDhwdWQzUTZnTzVuSkZKVU5IYlp2dEZmK3g1VGJ2S1F1VWVqbHdtZGZiWlcwRkk3bjlKbTQ5
ZExWS3kKZHIrR2xUTWs4VjZVY2licTdiZVB0aE80RTUvbjdGSGVLeWxuV2ZQdnYveVhEN3Rmei9y
c1ordUdmOFpMTnN4eVpMNlUxMy9NWkRZNwprSnhDemRtMC9pUzZuNi9tZWMzNmh1V2tmbVZDblo4
YnpOR1diRFA1YWV6c3NFNVZ5bjRobHhmazdFTytxUEl2QnpFV3Bad1JMWmNGCjlUOHZPOFhzYThx
MTNHVS9rek02K1R6N21pbTNYT3ViczUrNS9qVUJTNExJVWs1L2ZXUFBwK293dG16NWJGbi81RHJ3
L242dzVNL2oKMkdjN1VhZit1bmJpK1U3VmFaWHhrM3BuRzBqUWxvTml1WVF4NDJKcVcreHZPMU50
cngxRDJSZmtpSGUrR3pQRzhwMldsR3U4RTN3TwpnNktwOWZZL0h4c0wvWHcxejZlMnVXVmxMQnZE
eVQrbjdUczFidnIxcnVtektZZXBmVXQvZmFzK24xdjJuREZmNDczcU5wajJqNDJQClJUNnJiSVA5
NWVkdUM1bGJaaDZiYlRRSDFNZStYL3JyM2M3enFUR1dNbXZHYWsyZmJhZCtZOHZNSGFQTHlqNTV4
cnNzMTRMM2N5cTUKQkJPWlZKUlVJc3E4THFmQnkyZjlaZkplZGxTNUZDSXBYN3lsdkx4T21UbVNs
ZFFQVkxvM1p2d25VV2krQUZKKy94ZTJNdkJ5LzBmLwpURXp0YWpKaFRzcWxXYlhwMm12M2RiL0s5
UHp6UjlzSjR0SHVKMmo3eStidmUyUUNuY3VUeXVROFowUldUZm43R3ZtVnFaU3puYjlUCjh0NTdS
N3Rnb0Z6Q05iWCtxWGIxbDcvc3NuMXRQelRkSldibC9RUWVjY3pONWlYbEo0WnZ1V1YvT3g1T3ZK
ZUFvNTl5OWlPWFo1WEoKYWo3N3lsY09OTi82MXNIai8vTHp4UW1rOHQ1dHQ1MFlzLzF5RmozUFRx
b2N1U3lmWjZ6bTdFSkp1V0V1RTlxa1BKK1RhdGJYTHo5agpOdU0zazV4c1J6bkNuek15SlNEcDU5
M3I1NW1FWlJ2UDJaa0VRdVUrazBYMVNIQ1FIZDJ5YlREN2diajNBNnJrejN2NWJNd3RYeTdKCm0z
dEgwazhKaURJWlhEVk4xV0dxdkxIK1NmMnp6K3p2TjlPMkJFdGpuODJ0MDFTZHQvUDVUdFZwbGZG
VDZwa0RBTm5IWnp2TW1lMngKMU45Mnh2TGxzMVhIMEMzdFpWaTV2Q1lIQVZLbnZNNWxXTm1YVE5W
cnJDNWpZMkZzdVVXZlRXMXppNVlaRzhNbC8zYmJ2bFBqcHRTagp0cyttSE1iMkxXVmQyMzNjaWJL
M08rWnJ2RmZkQm12R1I5OXFsVzJ3djF5ZXo5MFdNajR5b2MvbHdUVVd3L1d2OG5wcWpOV08xZDJ1
CjU2STI3Y1FZWFZSdVZRQ1NMKzZTeWpXc09jS2FvMHVaOE9XR2xwS0NVd0tIM0NQU1Q0bUtzMlBx
cC93NlNScVhRVERNWDliVnp6OTgKbm9sWFNmblNLYW4vdkp5SlNkNWNwNTlvTjBlSHM5NlM4cXN3
RHp6d1FIZHpYM2x2K0ZoV2xhUG9KZVdtNTl5MDNjWlM3WmZLQ2M3YwpwNUZMckhJVGVDYnh1WmUy
eDlqZENKNUxqL0kzTG5LVGV2bkRleWszazQ0SEhqamNscmV2eWYwWTViM2N1SjZVU1hwTDMrWEw2
OVNuClg2Zis2M0svUjI3eXpvM2srUU9HWmRtc1oxSHF2NTFmME1yUDJ1Ym5ocFBtdEd1NHJ0eVBj
dWVkKzl2SjZRblFtT1hFMk5WWGJ3VWIKano5K3VKMWNwKzc1K2QwajNiLzhQWkJ5LzBncE0vZUhE
SDkrTi9mVzVDZDZ5Ny8yNnA1MnZPYnZCK3h2Ky81RU1KTXlZcEh4MWg5UApwZXpjM0pvakxmazFu
WHllNTdteHUxeENtR3N5YytsUXhuNnVLYzNsSDVrMGxwUWpzTm01SkMwcVArc3VZelI1cHRZM0xD
Y1RtcHpOClMvQmZybGZQbDBEYWt5QXBaV2NkK1pmdHJMeE9PY21UOTB2SzUvM1h3N3F2dW55Y1lw
UDdZdEt1NFdVblpiMTVMRGY1WlQ5UlV0cVQKL1UvcW1Xdm1zeE5QZTB0S01KTHljM1pxekMzdUpl
QkkzbHdEdkt3dVl5WlRkVWk5aG1hbHJua2M2NStVbmFBeFo0eVNMLzl5aVd2MgpwMU9mamJsa3ZU
bFRsTlBvNmZ1TXhRUTV3LzE2djkrbnhrSEs3S2V5djgxeVNUVk9XVjkvM1BmTEs4K254ay82S3Yv
NktRZTJNcGF5CkhmYnZJU3A1K3R0Z2Y5dko1NmxQYVVONVhlcTR5aGpLc3BtNHBUL3pIWmt4a2Z0
S011WnlHV0wvUUVsWno3TDE1dk44bG5yRWJHd3MKMUpTVlBDVk5iWFBKTit5bnNURmN4dEFxYlM5
MXlXUE51SmtheS8zdEx6K2FzV3k3NzV0T09ZenRXL3IxTDgvN2RjaTRHUnRYYzh2TwpPcmM3NW11
OHA3YkI3WXlQN1c2RGFXdS8zNmEyaGVRZnBqSkc4MzYyLzN3WDVPQmRqY1hVMkJ2NzdwZ2FZN1g3
bDVwNkR2ZkhRNE84CjNzMHh1bWg5aTk0NzBKNEYrTHRGSDVUM2NnbzVBN0EwS0JPclRHcXljOCts
RlBtN0dzTkxVd0tVQUNYWDMyYUNrS09OT2J1UW5XOXUKbU9ydmZQTmVncExnNS9LVnNxRm1wNUdB
SkpPcVRGNHl1UnVtMUMyQlF4bk0yVEdtN0R6bSt1cnl4WkgxcHg1UHREZkVadEtZbTNhSApsMTls
bVJ5bHpmcXlReGltVEpKekpENDNaT2QraUV6b014SE9mUWFaMkg3akd5Zi81ZTFNcmg5NmFPc3NS
dUtpM09QUk5yRTdpcC9MCmpITEUvbGUvT3RMZUpKMS9oN3V5OHV0V21YZ24wSGowMGZ3UzFmNTJQ
VWZhamVSSWU5bkkxazNyTFZmM1BQVTQ2Nnl0bjYvTmV2SzYKL1Y1cjI5eDA2eTJ2YzA5RXpyS2tu
bmt2djJTVmdLazlhTjUrT1gvOHI3Zm5YcEVubnp6YTl2ZlczOXRJVzNNUFNibjBhVTY3RnAyQgpT
WkNWTTBEeFRWQ1JtL1B6TjBIT09XZC9GeXo5NkVlSDIrdmY4L09aK2NuWnJYL0o5NFV2Yk4yVW4z
NUtnSkpMNFBJVHg0dldVZm95CndkaXp6eDc5MkUzcG1heG5IR1ZzSjdqSXBDRTdtbkptTHhPRy9N
dGxIUmxYR1VjNTRwU3hraDFZSm96NTFhWk1Bck5NSnRCbExHWHkKbUZPdldUYVAyV2I2RTkrTTRX
eEwrU3g1czk2eDlhVXR5Wjk2WmlLWjdTenJ5cTlocGR3RTFRbUlVb2Q4K1dhbmwzWGtLRlBLelhh
WQo5eE9FWi92STVVZ3BLOXRESnFScFh5YW5hVnUybFg3ZHMweld2Y3J5T2VLYm9EOC9rNWgvWmYy
WmpBM1AwR1NIbUhWbWZ4UGpuSzFNCnlrNDliY3ROMmZFcjIzYjJTV2xiYnR3dlpzdjZLVzNMVDlH
bWYrS1dmN20wb0w4dnlycXliMHRmTFRQSmZtaXNEaW1qYnpiczc3SCsKeVg0blIrTFM5dXdMcy8v
TS9YWlpaMnd5TmhaOUZzZXBPbVdDa25ibGFIemM0cFQ5Wm45OExtdnpjQndNMjVUQUp2Vk51OU5Y
eVoveQp4K3EwYU56SGJwakd4aysyMTZ3MzR6SHJpMDhaVS9IS1JHVzRMeC9iZG5LMklwL0hKOXRE
UE1yMmtINUptVFZqcUxRaFl5dGw1UHNyCnkrWjF6UE45bDljbFRhMDM5Y2wyV3JhN2JEdkx4c2xV
V2NQdjBkUmpiSnZMdmpFbS9mM1QyQmhPd0pjK3FHMTdNU2lQYzhmeWNLeG0KVE9STTJIQzd6M3hn
YUJxYlpmdWVtQy9idDVTNjl4LzcrNENNdzJ5M3k4WlZ6b1p0dCt6K3RwaStYSFhNMTNpUGJZTmx2
SzB5UHZLcgpXdGt1Rm4xL2xmS1dXYTJ5TGZUN296elA4dG4zNURIZm5mbGV6T1grR1I4MUZuUDJv
L24rR3R2V01nWnE5aTlUOVZ5MFArN3ZiNHJGCmJvN1JzbzZweDMzMzMzLy9pY09mVTdsWC9EeGYr
dG1CQlN4SEtkTjVZeWxmWHBuOGxNR2NMOGYrWkcxczJaMzRMRHY0ckhNNEtkbHUKMlRuN2tZUExP
YnVSc3cvOXlmSHZmbmVvamJqM2R3RkREaG9tT01sTjFqZmR0TDhONkU2Y1NkbnV1b2ZMNVV4Tk9j
c3lyTXN3YjE3bgpyRTI2cTEvbmttODMycFV5WTNEZWVTZWZtU2pySEh2TXN1Mys3R05uTmNhVzJj
NW5tYkJucDVreGtqRzlTc3EyTURYK2grVXRXMTkrCm1DRmZXamw3bUMrYzdMaUdLZStYYlNmYjFh
cjE3WmUzbmJxWDVSTjA1SUJFMnBJNlpRS1dMNWxNREljSExzb3lxVysrSU9LVjVmTGwKMEU4NWdw
WDlSTGJUN05DSGFaRmJsaWtUd0ZnVW0rR3l0YStuNmpCbE50WS9LVHZMTCtyWHFjK21YTEo4MnI2
ZE1USFZwa1YyVTA2TApsdW0vdDUzeGsrVXphYzVFZVRqR2FyYWQvdnI3ejlPV1ZjZlFjUHdPWC9m
TFgvWDUyRmhZdGF5cGJXNVJlV05qT1BtSGJSMitYbFJtCmVXOXEzS1NzNUZrMmxzdFlYYlhQcGh5
eTN0cnZnRktIMHFhcHg3bGx6eG56WTk3YjNRYVhqWTg1MitBeXc5Ui8yVDV6MFRMcHczeS8KTFBw
ZUhMTklXVk5qYjlINit1OHRHMk9yanRXcGV2Ylh1ZXo1Ym83UlpldnN2MTkzRjI1L2lSV2VwNE1U
b2RlbURJWWNoUmdlcGFsZApmbTYrZkdFdFM5Ly8vb2xMdlpibFdmWDlYLy82NUVzSHNuek9BSnp1
NlhScDEvMzNuemdLV1dPZWlmQ2lDVy9Oc3FzR0h5bHphbjM1CjhsMDJrZTYvdjJnblcxUG5rbWM3
ZGMreStVTE1HYUljeGUrblRPTEd0clhVdDZ4ekdIeWtuQ3lmQXhyTDBpSzNMSk8wNkVqUXNuTEcK
M3ArcVE2bi9zakxHK2lkbEx3bytVdGJVWjFNdXBUN2JHUk5UYlNwbDl4K25uUHA1aDgrM00zNFN1
S1p0NWF6Z3NNenllbXpiS1htRwpqMmxMMGlwamFEaCtoNitINjFqbDlkaFlXS1djNUozYTVoYVZO
emFHazMvWTF1SHJSV1dXOTZiR1RiK3NSV081ak5WVisyektJZXV0Ci9RNG9kU2h0bW5yY2J0azdN
ZWFYZVc5bkd5enRuQm9mMjlrR1M5bkR4MVczaFZ5dHNDd3RzeWo1cDhaZXliZnNjZGtZVzNXc1R0
VnoKMmZyNzcrL21HTzJ2WjluelhRMUFscTMwZEh4LzFjbnFXQnZ6eTFmLzlFK0gya3VnOW5VL3I1
dXpFKzBCeis3MWRkZWRmTFIzckp4MQorMnhUMjdWT3pqbnFrYU0zT2RLOTdpbVhjWlg3cW5MNk9V
ZkVjc1FsbDJtTVRaVFh2VjNxdHpjQ3E0NmZYRC8vMENBQUFDQUFTVVJCClZONlg4WmJKUmU3eEsx
L29wYmFuMDdaVDZ1eVJ3SmpBYm8vNVZiZkJzYnJtTTl2Z2xOQ1o5Zm11WG9KMVpsR3UxdHJjdC9E
U1MvbEQKaHZuNTNSelJYZTJTbnRYV3RuZTVON1ZkZXljNHZxWmNQNXNBSkNsbkVZYlh1STh2dmZl
ZjVwS3IzTXVSYTM1ek5sVGdzZmQ5Y0RxdgpjWlh4aytBMmwvZmxwdEpGUnpoUHQyM25kTzQzZGQ4
YmdiMFk4NnRzZzFPdHRnMU9DWjFabnd0QXpxeisxbG9DQkFnUUlFQ0FBQUVDCnAxUmdNdzY3bjFK
Q0t5ZEFnQUFCQWdRSUVDQkFvRlpncFFBa2wxSGtwdEtjOXBNSUVDQkFnQUFCQWdRSUVDQ3dxa0Ix
QUpKZlE4amYKNXNqdjVQL0RQL3hEOTFOa3E2NU1mZ0lFQ0JBZ1FJQUFBUUlFem15QnFsL0J5cS9Y
NUEray9NM2YvRTMzeXlMNUs2ZjlueUxiRG1GKwpTemwvQ0NaLzRFY2lRSUFBQVFJRUNCQWdRT0RN
RUtnNkE1Sy9KSjQvbmxKKzFuRDRWOFJYcFVwWitldlJDVUFrQWdRSUVDQkFnQUFCCkFnVE9ISUhK
TXlDNTlPcnBwNS91ZnIvNVp6LzdXWGZtNDc3Nzd1ditVdkd2ZnZXcjdnOFk1VzhTNUNkQlAvdlp6
M1ovR0MzM2lXUzUKL01Yby9GSEIvQ1hOL1BHVmIzN3ptOTBmOFhuNDRZZWJaNTU1cG5ucnJiZTZ2
MmZ3eFM5K2Nla2ZWRHR6dWtKTENSQWdRSUFBQVFJRQpDR3krd09RWmtOdHV1NjI1OWRaYk80a0VD
Z2sra243d2d4ODArU00xbi8vODU1dHZmT01ielN1dnZOTDg2RWMvNmo2NzVKSkxtdGRlCmU2MTU5
dGxudTcvbysrMXZmN3Q3LzhFSEgrd2U3Nzc3N3U3OUcyNjRvZm5LVjc0aStPaFUvSWNBQVFJRUNC
QWdRSURBNWd0TUJpQ0wKQ0o1NzdybnVqNHZkZU9PTjNjYzV1M0hMTGJjMGVUK1hWWjE3N3JuZG1Z
NUxMNzIwKzZ2SE9UdVNQMEtXTXg3OVZDN3A2ci9uT1FFQwpCQWdRSUVDQUFBRUNteXV3clFEazFW
ZGZiYzQ1NTV6dXNxcENrN01oU1RuemtUUU1MczQ2Nnl5L25OWEorQThCQWdRSUVDQkFnQUNCCk0x
ZGdXd0ZJZmhYcnd3OC83TzRES1hTNTdDcEJSMzdkU2lKQWdBQUJBZ1FJRUNCQWdNQWlnVzBGSUxt
eC9PalJvMDNPaEpTVVAwNlkKOS9LWlJJQUFBUUlFQ0JBZ1FJQUFnVVVDVlFISVJ4OTkxQzJiTXg5
SnVYbjh2UFBPNi80cWV2ZEcrNThFSXhkZGRGRnp6VFhYZEcvbApwM1lUa0pTVVpmdXZ6ejc3N09h
OTk5N3JQczdabEp3NXlhOWx2ZnZ1dTJVUmp3UUlFQ0JBZ0FBQkFnUUliSmpBZ1h2dnZmZnZ4dHFV
Clg3ZjYvZTkvM3dVR0NTb3V2UERDN2liejNGU2VYN1ZLNEpBQTVja25uMnkrOUtVdmRaL2xyNlUv
OU5CRHpmdnZ2OS9rYjRiazdFankKNXVkNmM2OUl5a2lna1R4NVRGbkorOE1mL3JESmpldVhYWGJa
V0pWOFJvQUFBUUlFQ0JBZ1FJREFhU3F3Ny83Nzd6OXhtbUxGUnVTTQpSb0tLM1B1Um9HTFZsTUFr
TjdPWGxDQWt2NkFsRVNCQWdBQUJBZ1FJRUNDd21RS1RmNGh3ck5rSlBITFoxWFpUUC9oSUdZS1A3
VXBhCmpnQUJBZ1FJRUNCQWdNRHBJVkIxRDhqcDBSUzFKRUNBQUFFQ0JBZ1FJRUJnM1FVRUlPdmVR
K3BIZ0FBQkFnUUlFQ0JBWUlNRUJDQWIKMUptYVFvQUFBUUlFQ0JBZ1FHRGRCUVFnNjk1RDZrZUFB
QUVDQkFnUUlFQmdnd1FFSUJ2VW1acENnQUFCQWdRSUVDQkFZTjBGQkNEcgoza1BxUjRBQUFRSUVD
QkFnUUdDREJBUWdHOVNabWtLQUFBRUNCQWdRSUVCZzNRVUVJT3ZlUStwSGdBQUJBZ1FJRUNCQVlJ
TUVCQ0FiCjFKbWFRb0FBQVFJRUNCQWdRR0RkQlFRZzY5NUQ2a2VBQUFFQ0JBZ1FJRUJnZ3dRRUlC
dlVtWnBDZ0FBQkFnUUlFQ0JBWU4wRkJDRHIKM2tQcVI0QUFBUUlFQ0JBZ1FHQ0RCQVFnRzlTWm1r
S0FBQUVDQkFnUUlFQmczUVVFSU92ZVErcEhnQUFCQWdRSUVDQkFZSU1FQkNBYgoxSm1hUW9BQUFR
SUVDQkFnUUdEZEJRUWc2OTVENmtlQUFBRUNCQWdRSUVCZ2d3UUVJQnZVbVpwQ2dBQUJBZ1FJRUNC
QVlOMEZCQ0RyCjNrUHFSNEFBQVFJRUNCQWdRR0NEQkE1T3RlV1JJNDlNWmZFNUFRSUVDQkFnUUlB
QUFRSUVPb0hiOTk4K0t1RU15Q2lQRHdrUUlFQ0EKQUFFQ0JBZ1EyRWtCQWNoT2FpcUxBQUVDQkFn
UUlFQ0FBSUZSQVFISUtJOFBDUkFnUUlBQUFRSUVDQkRZU1FFQnlFNXFLb3NBQVFJRQpDQkFnUUlB
QWdWR0J0UXBBamg0NTJyejN4bnZOdTYrOTJ4dzVkS1NyK1B0dnZqL2FnTjMrOE1OM1A1eGNSVTI5
YS9KTXJxZ3lRK3hxCjZsMVozTnBtTy9UaG9lYUR0ejg0WHI4WXYvM3kyMHRmSC85Z0Y1NE02N0xx
S29aMVgzWDVqK1UvMmpUOWJXZHUvVDVXdmpjSUVDQkEKZ0FBQkF0c1VtUHdWckg2NVR6M3dWUFBT
b3k4MTUxNThiblArWmVjM3J6NzVhdmR4bmg4NCswRHp6c3Z2TkVjT0gybnUrOTU5elJ2UAp2ZEU4
ODV0bm1nL2YyWnJBSjgrRlYxellIUHJvVVBQMlMyOTNFK1RyN3IydXVmYWVhN3N5TW5GODh0K2Zi
SzY0K1lybXZFdk9hMTc4Cnc0dk5PNisrMDV4OS90bk5IZCs4bzFsbDNRZk9PdEN2ZHZQeTR5ODN6
LzdtMmVhajl6L3Ezci9vcW91YW8rMy8zbi9yL2ViOFM4NXYKcnI3ejZ1YmlheTQrYVpueTR1SC83
K0htdG0vYzF0V3B2TmQvbktwMzh0Yms2WmU1NlBralAzaWtlZnVWdDVzTExyK2dTZnRlZS9xMQp6
aWF1YWRjN3I3elQzUHduTnpmNzl1OXJudmozSnpyWFlydW92RTE0TDMzNjFvdHZOWi8rM3ovZHRU
L3RQdlRCb2VaejMvM2N4MTd2CmRudjdkVmwxWGVtN2Z0MVhYWDZZUDl2TkV6OTlvamw0OXNIbXJt
L2YxWDA4cDM3RDhyMG1RSUFBQVFJRUNNd1JXQ2tBeVlxdXZ1dnEKNXBPZi9XUVhhSlFBSkpQMzYr
Kzl2anZpK3Z0Ly9uMVhuOHR2dkx3N2kvSGt6NTdzWGwvL21ldWJpNjgrTnNsdmo4NCsvQzhQZCsv
bgpQemxpLytpUEhtMHV1K0d5NXBxN3IrbmV2K1RhUzVvczJ6L0NYYnZ1NHdVZmUzTGxMVmQyQWM5
enYzdXVlK2VHKzI1b3pydjB2T2JaCjN6N2I1TDAzWDNpem02aGRlT1dGSnkyYXllMEg3M3pRQlYw
M2Z1SEdrejdMaTVwNjErVDVXTUVMM2poeTlFanpxZi93cWVic0M4N3UKUG4zZ3Z6elFYUFNKaTdx
Z0kyKzg4UEFMVFk2aUo0QXI3VnhRek1wdmxTUHpXZGZjdEpObHBTNEpZQTkvZUxpcjFnVlhYTkJj
ZWZPVgp6Zk1QUGIvd2RmZm1EdjVuMkpaK1hWWmR6YkR1cXk0L3pKOGdOZjMxL2hzbnpoN09xZCt3
Zks4SkVDQkFnQUFCQW5NRVZyb0VLMGZYCnIvdlVkVXZYbHpNam1RQzNKeGU2ZFBDY0UvSE52bjM3
dXZkeVJ1U0RkejlvUHZtNVR6Ymx2UnpaejVIcm5DbkloTDJrVDM3bWs4M1oKNTIxTnVGZGRkeW1q
UEo1MTdsbmxhZE5zVmVWRVFOUis4c2J6YjV6NC9OaXpuTzFKZXVXSlY1ckRIMjFOZEk5OTFEM1Ux
THNtVDcvTQpaYyt2dWZPYTQ4SEhvanhYM1hwVmQyWXFuOFZxSjFJbTJZLy81UEhtclpmZW1sM2NU
cFpWS3BNai9PZGNlRTU1K2JGMjc1VEQ4UlVjCmU3S29MY082REplWmVyMWpkVDIyN1hYYlZtOFly
RnEvbzBlUEZUUlY4UjMrL0ZTdGQ0ZWJvVGdDQkFnUUlFQmdST0JFaERDU3FYeVUKTXdkVDZZYlBq
ZWQ1NFpFWG1rdXZ2YlE3UW52K3BlZDN4ZVV5cUtUM1huK3YrYzAvL0tZN20zTEZUVmQwbDNYZC9P
V2J1ODkyWXQxZApRYjMvWkNKWjBya1huRnVlZG84SmlFclFrc3ZLWG5ueWxlWVR0My9pcER3MTlh
N0prMEp6RmlabmZLNjY3YXJtbXJ1MnpnTDFWN2JzCkVyR1NaLy9CL2Mzd0RFNHV1M241aVplN1M3
YnUrTk03amdjd2g5NC8xRHozKytlNmUyME9IenJjM1BTRm01b2NoUittRi83d1F2UDYKczY4MzU3
NTlibmNwWGM0Q0pVQmN0R3p1MjNuNlYwODNINzMzVVhQakYyOXNEaHc4MEYwR2xNdmJFcFF1S2l0
MUx1bjFaMTd2TGtPNgo2TXIyckU3YjUzbjl4MS8rc2NrWXVlbUxOM1dCUnM3eXZQYk1hODFkMzd5
cnU1UXZnV0h5M2YwWGQ1ZGlWbnBjNXBBelh5ODk5bElYCi9DYW9mdTdCNTdwZytjNXYzdGtaRHR0
eTdhZXU3UzZKSzNXSlJaWlBBTDcvd1A3dTdOUWRmM1pIYzg3NTV5eTBHMWI2MWFkZTdjNWkKblhQ
Qk9WMmduanJrM3FoY29wZ3ppWXZPUm1XTVB2M0xwN3QxNXBLODk5NThyOW0vZjhzM3I0ZFdyLzN4
dFNiM2hTU3dUaC9mL2I5dApHYWJ0dVlRcktlL0hQcGRFWm56bVVzWUVmTmx1VWw2Q3BsejJsek9i
VTUrbnZHWGUrV3paZXBkWjVpeVBSSUFBQVFJRUNKeWVBaWRtCmdMdGMvOXdVblVuUEs0Ky84ckUx
SFR6M1lIUEpOWmQwNzJjQ20rdlhmL3RQdisydTQvOVk1aDE4NDlVL2J0M0Rrc3V4THIzKzBwTksK
enNROWwzemxVckNrRng5NThhVFA4NkttM2pWNVVsWXVaOHZab2R6N3NoTXAxcG1vM3ZNWDl6UTVx
cHhKZEpmYW1PdnhuejdlQlhsMwpmZXV1N3A2U1IvNzFrWVZuZUJJSUpRaTc3Sk9YZFVGQkp0UExs
czI5S0xubkpQZlZIRDE4dFBub2c0KzZ3S003STlhdStHTmw5WUtQCjFDdit1ZDhuOXhMbEhwY3Ns
NGx2M2l0bk9jNjk2TnptcWx1dWF2WWQyTmNGQkxrODd2MjNUMXhtMUxXdjlqOGpEdWRkZkY0WG5M
MysKM090ZCsrT1VWQXlIYlVsOSszWEpCRDMrdVE4cWRZNWZBckpsZHNNcTUvTEZCQzlIamh3NWZs
WXJkVHJydkxNV0JoOVovckVmUGRiawozcWJyUG4xZEYxQisrUGFKSDAvSTJaQ1Q2dGVPaDF5cTFn
Vzc3U1dQM1dTKzlTaG5kdkk2bDBJbXNNaGxpa25uWG5odUZ5UmtuRjU2CjNhWE5iVis3cmJ2SEpO
dHF6ZWM1Szdxcy9XUHJYV1Nac3prU0FRSUVDQkFnY1BvSzdGa0E4dWJ6VzBkUUYxM0tGTDVidjNa
ck4xRXIKbExsK1BmZVRaQ0szMHlsbkJ2N3dMMy9vSnBtWmFOMzk3YnU3aVc5L1BSKzg5VUUzK2Mz
OUkwbDVuYU8wdzFSVDc1bzhWOTU2WlhkagovMDdkT0g3SmRaZDBrOVZNV2kvK3hNWE5lMis5MTFX
OUM3cmF5V0F1cThwbFp3a3djaVI4N0RLcmNxbmMxTElKZUhJZno5Ty9mcnA1CjlZbFhtNnZ2dUhy
SWRmeXl1NDk5MEw0UjY0eVRjZ2xmSnNBNUNsOHV5OGxSOWt6bWt6SkJMMmVYdWpkVy9NOVlXeEkw
SnVoSitRbEEKRXdTbExnbXUrcW00RE91U3MwazVhM0hlUmVkMTljMVpoSGRmZjdkclY2MTd6aHhs
dkpVZmNYanI1YmVPQjhQOU91UjVibUpQWHg0LwpTOVplZWxVQzUzdytyRi91bTBsOUVpQWw1Zks5
cEp6UnVQU1RsM1pubmZJNnk1VmYwc3E5UjNGSW9KZ3piUmRlZFdGejYxZHY3YzU0CkpjL1U1MlBl
WSt0ZFpGa0MwdFJSSWtDQUFBRUNCRTQvZ1QwTFFETEJ6cTlaNWRLcVJTbVg0MlNpbmt0VmN1UzdT
KzFFK2NrSG5qdysKSVYyMDNIYmV5dzI1cWNzOTM3bW51NlNsZnlsUXlzdkVyMXlTbElsY0ptSkpp
ODVPMU5TN0prOG1kYWxQamtydmRNb1Irbkp2VGU1SgpTWHN5NmN1L3JEY1dGMXcyZlVsTHpiSzVC
Qy9CV3M2SWxIdHRhdHVUSS8rNTlDMlQ3YVJjZHBSNnYvWENXOTFabGJ4M1VsLzE3bkhJClo2dWtx
YmEwT2ljVmwvWG1qTVRTZEhMMjd2S25NbTZ5ek5UNmh1WG1MRU9DeDF6S2xmVEdzMjhjRDc2R2VS
UFU1RXhMK3Jta3pxbGYKcDk3ejFPdXk2eTlyY3VZcnZ5N1gvYkRCc2M5di9QeU4zZVZ0ei8vKytl
YnRGOTl1Y29uZVNhbFhUb0tzckRPQjRmRzA1UE9wOW8rdApONWVTOVMyUHI4c1RBZ1FJRUNCQTRM
UVUyUE5yR1RMSkxDbS9jSldKVWlaWEYxMTlVWk5yM25NVTkxTlhmNnA1OW5kYnYxQ1ZvN1c1CmZH
UXZqM3JtOHF1c3R4d2h6aVVmbVJqbmFId3VKY3VSNEtTWEgzdDVzdDRKWnRhcGJZYy9hQ2VVYmRp
WkkvcXJwcHBsYzFZZ2s4VmMKNHBPZ3N6OHBubHBmbkhQbUpwZjVaTGtFUlNrdlI4OXo1bXg0bWR4
VWVXT2YxN1JsYlBsVlAxdDVmZTFFUHZjYzViNlhYRmFWZXp5VwpXV1pNWm53TzB6Q0k2bitlc3hl
NXh5WkJkZTZ6U0JDYTh2UERDL2t4aU56YmtYcyszbjcxN2Y1aUgzL2Uxak9CN05KMDdQT3A5cSs4
CjNxVXI5QUVCQWdRSUVDQ3c3Z0o3ZGdha1FPUXluWEoyNFk4Ly8yTTN3Y3hSMXZ4ZGkrT3BuYlJr
MGxVbStudDU5RE1UdVZ4M2Z2dWYKM3Q3Yzl2WGJ1bjg1TTFOUytXV3N2SzZwZDAyZXJxeDJndjNT
SXkrZDlMUERaWjA3K1ppajNibk1LZmRwOU5QWUpWZ2xYODJ5K2RzdgpPWXVWbE9lcnB2eVVic1pD
Z3JzRU1Ma1hKSzl6bEQzM09PeFVxbW5MVHEwcjVXeG5mYmtrTFlIWE03OStaclR0T1ZQUy9hSEI5
c3hUClRjcE42YmxISnovc2tNQWpaNXB5cVdOdVhNOFprWnpGR2cwcWpxMGtaN29TcUpjZmt4aXV1
Ly81V1B0WFhlOXdQVjRUSUVDQUFBRUMKcDVmQXRnT1EzQ3hlVXY5NWVTK1BtUlNWVkM1ZnljUW1s
MVRrNXRaY2gxNkNpK2NmZkw2N25yemtUeENReTI5eVQ4SHd5RzkvZmYzbgpaZGxGajVsMGxUUzJU
SDdoYUhoMklKZUU1UktYcEZ3U1V5NW55dXVhZXRma3lXVDlxWjgvMVR6eW8wZFM3SGhxWTRmNExE
cnFuUVZUCnZ4d3hMeW5QUzUwdnYybnJNcWY4NGxZbWp5a2pmWkdiakJlbDNCVCs0WHRiTnpUbjdF
VHlMMXMyZ2MwNUY1M1QzZitRdnhXVGdDcEgKMTB2cWw1VjFMMG9YWDN2eDF1Vmg3Wm1QOUh2dVg4
bGpKdG5EbERiMUE2bVlsUHRGa25mNHVyLzhsRU0zWG5zeFd1ZlplejFzeThmcQowdDdvM2UrRHFm
VXRxbXUyamN0dnVMd2JjN0ZmbHBJblY0eTkrT2lKSHpESWZSbmQ5bmVzenYzNnBROWZlMm9yNE05
WXo1bWxuSWtzCjkzc2tJTWg5T0FsS1U2OSs2czVrSEh2anpSZmY3QzdoS3djVTh2YXl6OGZhUDdY
ZTlHbmZNdXRKdmZLakFHUGJjdkpKQkFnUUlFQ0EKd1BvSkhMajMzbnYvYnF4YXJ4N2QrcVdvZnA1
TU5KLzVWZnRYenR0TFA1SnlvMndtTmJtZm9CdzV6VStKNWpLcWN0TjVqckxtSnQ1YwpVcEtKZHE3
cnowK3VabUtTbTJpemZJNTZKMy95NWlkRk03SEpUOFRtMTVkS3FsbDN5VnNlY3luSkN3KzljSHdT
bm5yazdNcHcwcDNMClVmSkgvREp4eTgveTVxaHRVcTZINzg0YVpJTGJuam5JOWV6NUtlSFVjNnJl
dFcxTG5YS1VQMzh0dm4rWldtbERlY3c2dStDdG5kZ24KcUlwTmZpR3BHSld6QjVuZ3B6OHlRVXZi
Y3huYkJaZGUwTDJYRzgvVEQybFhmcFVzTnlFdisxblQ5UEdMRDcvWTlYVW11cmxNYnRHeQp1ZFFz
ZnpNa1o2NVNmb0xNbkMyS1crcVJ2K2ZTTHlzVDMrNCtoZEt3WTQrNTVDby8xNXJMajdwZk8yb24x
bWxMem9UMGYvMG9QeFdiCllERmo3K0JaQjd2QUkvWEs2NncvRTlUKzZ4eWxMemVOWjFWbm5YTlds
MjlSVzk1KzZlMXUyZmltN2hrUENTSnp5V0RHWkM0SDdMY2wKd1VnQzAxS1g5R1hHWFA3ZVRYNTZO
d0hzMlByU2xseXlWdXJlcjJ2YW5PQ2hDeklHVnVWbDhtUXNaK3ptOHJYVVB5a0dNYzdrdlcrVgpj
WjNMcnc0YzJBb3VNMGJ5aTI5cFZ5NDc3TTdFdGVNbDQvQ1ZwMTdwQXBQY2s1STJkV2RQMnZ3SlRq
SmViL3ZxYmNmN01kdnZzcy9ICjJwOHh0V3k5YWZ2UU1tM0wyWlhIL3Rkam5lMnlNekRKSnhFZ1FJ
QUFBUUo3TDNENXZoTzNYQ3hhKzc3Nzc3Ly81RU9jZzF5UEhLazQKSWo5WVp0V1htYlJrZ3BLVXlW
dU9lR1l5VkNiVnE1YTNWL2xyNmwyVHA5UTNrOXB5MlZsNWI3Y2VNem50MXRkT1J2c1Q4MFhyUzVC
Vgp6bFRsODFXV0haWTNMR3Y0ZVNtL0JMS0xYaTlhWnJ2djdYWmJodlZhZFgyWjFDZGdHSjZWRzVi
YnZXNjM1QVJMNmFzRXl2bTU0b1VwClczd0N1emJZVDk4UEE4RUVMR1hiUzMxTFh6ejQvejdZL2Zy
VjlaKyt2Z3RxK21NaTY1bjZQSG5HMnI5c3ZWbHVVYW9aUzR1Vzh4NEIKQWdRSUVDQ3d1d0szNzc5
OWRBVjdmaFA2b3Rya2lIVkorV1dkMHlYVjFMc21UMm52WGdVZldWOG1sYlUzOWc4bm1xc3NXOXBX
SG9kbApsZmY3ajJYQ1c5NGJ2aTd2NzhUamJyZGxXTWZhOWVYSWYvTG1ETkt0WHo5eEQ5S3d2Sk5l
dDBGRjhWMGFmR1NCWTNISjhOTEdVbFlKClBycXNDMjR3VDhBeURGcktzbmtjKzN5cy9WUHI3YThq
ejB0YmgrOTdUWUFBQVFJRUNLeTN3Rm9FSU90TnBIWUU5bFlnbDBEbE1zWGMKOTVKZm8xcUwxSjQx
eWFWYS9UOXdlRks5cGo0L0tiTVhCQWdRSUVDQXdKa3NJQUE1azN0ZjI5ZFNvTHNIcUQxTFVmNFd5
RHBVOHBVbgoyM3VGYnQvNkd6VzV2MnQ0bjlMVTUrdlFCblVnUUlBQUFRSUUxa05BQUxJZS9hQVdC
STRMNUtiMjNmaURsTWRYc0kwbitSR0FzVFQxCitkaXlQaU5BZ0FBQkFnVE9MSUVUUHk5MVpyVmJh
d2tRSUVDQUFBRUNCQWdRT0FVQ0FwQlRnRzZWQkFnUUlFQ0FBQUVDQk01VWdjbEwKc0taK1J1dE1o
ZE51QWdRSUVDQkFnQUFCQWdSV0YzQUdaSFV6U3hBZ1FJQUFBUUlFQ0JBZ3NFMEJBY2cyNFN4R2dB
QUJBZ1FJRUNCQQpnTURxQWdLUTFjMHNRWUFBQVFJRUNCQWdRSURBTmdVRUlOdUVzeGdCQWdRSUVD
QkFnQUFCQXFzTENFQldON01FQVFJRUNCQWdRSUFBCkFRTGJGQkNBYkJQT1lnUUlFQ0JBZ0FBQkFn
UUlyQzRnQUZuZHpCSUVDQkFnUUlBQUFRSUVDR3hUUUFDeVRUaUxFU0JBZ0FBQkFnUUkKRUNDd3Vv
QUFaSFV6U3hBZ1FJQUFBUUlFQ0JBZ3NFMEJBY2cyNFN4R2dBQUJBZ1FJRUNCQWdNRHFBZ0tRMWMw
c1FZQUFBUUlFQ0JBZwpRSURBTmdVRUlOdUVzeGdCQWdRSUVDQkFnQUFCQXFzTENFQldON01FQVFJ
RUNCQWdRSUFBQVFMYkZCQ0FiQlBPWWdRSUVDQkFnQUFCCkFnUUlyQzRnQUZuZHpCSUVDQkFnUUlB
QUFRSUVDR3hUNE9Ea2N2LzQvY2tzTWhBZ1FJQUFBUUlFQ0JBZ1FLQVQrTXY3UnlHY0FSbmwKOFNF
QkFnUUlFQ0JBZ0FBQkFqc3BJQURaU1UxbEVTQkFnQUFCQWdRSUVDQXdLaUFBR2VYeElRRUNCQWdR
SUVDQUFBRUNPeWtnQU5sSgpUV1VSSUVDQUFBRUNCQWdRSURBcXNGWUJ5SkcycW04Y2JwcFhEelhO
UjBlMzZ2MW0rL3BVcG5kVEtXbmJBdSszZmk5ODFEUWZIT3ZQCnNZTFM1MmVDZHl6ZTZvM3J3KzNy
bDlzeFg5THdkWG0vUEo0cFRtZEtPMHUvN3NUamNHeVZNbGZaRHNzeXArcHgySWJoOWpCOFBhem4K
VG82YnFYVU4xNTNYcTFqUHFldlVza1BIUlhVZGV5OWZmWHYxL1R2VmxyRjZydXRuZXpVTzFyWDk2
a1ZnU21ENlY3QjZKZnpzM2FaNQo1SU9tdWJnTld5NXJsM3p5dzYwUEx6dlFOR2Z2YTVwWDJrbFU1
bEgvMTZWTjgydzc2ZnoxZTAzenpyRUovT1Z0bml2YVpUNXNKMXN2CnRaa3kwZnpNdVUzenFmTzJ5
c2g3UDMybmFXNDVwMmt1YWN2L1E3dWVCQ0xudDgvLy9LS21XV1hkWjdWMTZhY24yckorOC83SDY1
SWQKZEprY2YvMkNwcm5oN1A1U1RkTiszUHp6VzAzenB4ZTJkV3JyUDB4cC8yL2JOcjUxckkycDZ6
MXRtMktSdHI5OTdQMTQzZHEyNjY3MgpzKzJrWjlyMVBOalcvNVYyMG5wclc4Yy9hZXU2S1AxNzJ6
K1B0bTI5cUYzZloxclhZWHNXTGJPYjc2VXUrUUtQODQvYnZ2M3JTNXJtCndLQnZ5dnBqbWY3L1ZH
OU1sTTgyN2ZFMzdkaDRzZDArL3FyMXlEYVRkci9mR24ydjNXNkdyNGR0ei9iMzg3YWZQOXYyNzNi
SDA3RE0KZFh4OXByUnpwKzM3WTZ1VXZjcDJXSlk1bFkvOU5neTNoK0hyWVQxM2N0eE1yV3U0N3J4
ZXhYcE9YV3YybDMzSFJYVWRlNiswL2F6Mgp1K1F2MnUvZjNVdzFiZG5OOWU5RzJhdU1nMDFzLzI2
WUtuUHpCTnJkUzMzS2hQenVkaUtkaWRPWHpqK3gzTFZuTmMyMzJwM1VmN2g0CmEvS2RmRGUxRStW
TXhrdktoUGdMN1RKZmJTZlBtWWgrb2hmNjVPakhEOTl1bW12YWNyTE1kZTJ5WDJuelhkbm1PVGFI
NzRLQjJuV1gKZFpiSG05czZaMkpiVXFuTDE5cDEvQjl0WFM1Y29wQkpZb0tJZkZFc1NtbmpwNDhG
VVBrODlidTkvWGRqM3UrdEwyMmFNMW04dmkydgpMUDlFTzFIUGhINllZdmhzKzFsU2dyaTV3VWND
aHdSbjIwMkgydVV6VWI2amJYdTh2OUVHY2NQZ283K09XQ2FBMjZuVUwzdHVtVHRaClZ1cHliK3VS
b0RZcFFYbkdaMG5EMStYOThwanhOUXl3eTJlYjlMZ1Q3ZHpwZmx0SDMyRWIrMk1yOWEzWkRtdmJO
VnhYN1hLcjV1dTMKWWJnOURGOFB5OTZKY1ZQS25GcFh5VmNlRjFubnMyWDcwVGwxcmRsZjloMUxI
V3NmMC9hcjJ1L2o3ZTZTcDhaSy8vT2F0dFRXTy9uNgpaYSt5M0U3bFhUUU85dks3YjZmYW9Sd0N1
eTJ3MHY0bEp3SEtHWXRGRmJ1NHpYQnpPNUVzNlp6ZTBlN3lOQlA2bkJXNXI1MkU3VHYyClpvNjJa
Rktkc3lEWmVFdjZYQnV3bEVucHF1c3VaWlRIbkpVb3FUek5HWllFT0RtYVhONHJlZktZb3hoSk9Z
T1NDZjZpMUMvMzdKNW0KLy9sNXZmY1hsVkh6WHRhVFFDLzFmYVE5R3pKTWo3ZDFMRUhIZGlhby9l
WmxIVDlwajhyM0x3c2FybS9xOWV2dDJacVVVMXdUVFBiVApvblhzTDVuN0diZnhmRkhaMnlpbVcy
UW55eXAxeUhaeFVlK01Xb1pIdituRDEyVzU4amoxZWNtM3ltTy8vMWRaYmpmenptbm5LdjIyCmpt
MVAvYWZTb2pZT3g5YllkbGl6amxLSFJlc3FuKzIwMzdBTnczRXdmRjNxVVI2blBpLzVhaDVYS1d0
b2ZYbTd6NXZhajY1Uy9yQysKVS92TG9lTncrV1d2UzMvVzFtMDRqc2JHU3RhNTZQT3B0aXlyNi9E
OVJXVVA4NHk5TG0wZnl6UDEyWEFjN09WMzM3QnVZKzBaOWx0LwoyYkhsK3ZrOEp6QkhZREF0SEMv
cTg3MnpIc3R5VHVYNVF6dDV2cTZkU0YvZC9zdGxYRW1YSHB1TVpjUDl2OS9ZT21LZW84S1pkT2RN
ClNOSlV1YlY1dXNLTy9lZDNiVjF5VnFaTTNQdWY1ZnJOYzlzOWNDYUdiWnpTQlNFNW1yOGI2Zm4y
VEVNdW44b1JzYnRIMW5GMTY1VkwKMTNKR0p2bktVWlhzTEo1cHk4aFpsNGVQQlUybG5nbWNmdFZl
OHBNdmt3Ui9GN1JQRW5BZFBEYmpmYW85YTVMTDRwSXZsM3A5cHoyTAo5WERya3ZKeWFWbVcrV0py
VlBMWGxKdkE3ZW0yck5Rcmw4NmxlKzhiakoxRjZ5aGw1L0sxQkZRSnBQNnNQYk5XemxDbFQzSXAy
bXZ0Ck9FbWdtcjRiN3R4VHhxS3lrMy9Sc2dsQzQvTmVyNTMvMXRiNXJyWXZjaVpwVVZsOWk3VHpw
MjMrcTlxKytYSTdWbVA0aTdhOFhKWVkKdHdRYUQ3VjFmcnIxL0ZaNzFpUFdPWXRWckV1YlYzMU1l
MzdScmpkbEpValBtY1VjQUVpcWRVcmVsUFBMdHI3bnR0WTVBSkJ0THR2bApsVzFaT1FJNk5uNXla
RGQ5bmZWbjNkbWVNczYrdVkwK1MxMFdwV1h0ekxqTkdiYWNYYnl6L1pmTEdITEpTYmFSTDdVV1Uv
MldkUzBhCiszbC9yTTI1ZHlkdGJ0bTZzN2k1dERPYlVzWml4a1V1eVV6Z2ZrYzdkc3JCbWxYNkk2
YXZ0dXRJeWhoSlc3Si96RGpOZXM5cGdkc20KTmcrMXozT210YitkWnZ2L1k3dDhHVnZMdHNObDY4
ZzY0NTErekxiM1dydk9US0t6cjFua21jdHNoL3VPbE5GUHAvdjIwVzlMbmkvcgp5MFhXK2Y3bzk4
K2kvV2pLWERiR3g5YVh6MHBhdEwvTS9xeS9uNm5aVnJ0NnRPUDN2TGJ2cy93YjdiOWp1NVN5cXBN
ZWw0MmpSV09sCnY4OWM5SGtwZUZGYjh0a3k5N0pjZVZ4VWRyYlZaZCtCK2U3TmQ4MkZiVU9QdEJr
ZmI3ZTU3TU95TDg4VkdZdlMyUDVoMFRqWXkrKysKbXZZczY3ZTBOV05nN1B1Z3RoOFd1WG1Qd0ZB
ZzI5cWVwRXljLzlodTNObkFoeWs3Nm12enJkcW05OW9OSUJQQS8rZk5lVWZndDBwYgovTi9VNWJG
MnA1TXYwR1VwTys5YzlsUjJRcmtuWmJkU0prODVLelMxamt4MDdtd25OcmxmSUpPbmtySkR5Y1Jy
MFZHa0g3U1h0bDNSCjdsd1R3T1V5cUp4dCtsRjdkaU9wWFdYeiszYXlrY0FuRTdtY2RtK0w3aVlj
NlpNYjJoMXdBc0QrbDBlV1N4b3I5N2Eydk56emtwUXYKM2VFT09POW5Vck5vSFpsQTVmSzhCRUtw
eTRQdEYySlM2cHFqaWJtczROdnRCRGYzRlAxcjI3Wk1nSVpwV0haY2xpMmJDVmJhL21hNwpnc3o3
Y2lidWxuWmlsK0FqYVZqVzBPS1RiZDRFZFptNDUxOTNEMU5idDB6S3kxbU9QT2JlblFTTTNIdzZj
UUFBSUFCSlJFRlU3ZitiCmQ5b1ZsZnVHdXBWczR6OFpNd2w2Y2hsaDZ2d3ZyVVdNVm5IS2F2UGwy
MWF2dTVRdy9SVC9wUFB6WnB2RytqbjNSU1VZekhhVUFDYjkKa3JTZFB0dGE4dVAvWGRiT1RMNWpt
Uy9NcEZ6R2tYNG80MkdxMytLMGFPeW5yTEUyNTZ6dEMrMDJsSWxseXNqMThRbVFNNzV5Q1dRQwpo
b3ovWDdmYlZlcXlTbi9rMHBHVWs3R2RNWmw5VHdLYXBKU1R2bm11L1pmeGxHMHorNExoTnRRZlc0
dTJ3N0YxWkQyNUZEWUhpTEwrCkdHWXlrdUJuNkpsdGFwbGZ5aW5wZE44K1NqdnlPTmFYaTZ5SFpz
TjlSeWw3MlJnZlcxOVpkdG4rTXR0R2Z5eE1iYXNwTDk4TDJmZm0Kc3VJdnR1UDQ3V09CY0ZsWC8z
RnNIRTIxZTlubnk5cFM0MURxdHFqc3NlMDUyMUsyNS9SQkx2M092YUFKOHYrdHRWaVd4c3BiTkE2
Rwo1U3lxWS9Mc1JQdW4yalBXYjZuRDJQZkJLdjJRc2lRQ1V3THRwclkzS1pGNUp2MDVlckFvZmEy
ZEhPZEx0YVQ4R3RiL2FHOEE3MCswCnkyZHpIMU5tam9nc3FVcjNmbzUwWmtLVGlXTlNKb3laNk85
R3ltUTlSOHp6cFQrVk10SEtxZlgrbVk2NDNyWmcyVXhXY2xUN3htT1QKNlhSMkpzaDVQMGRwMHhj
NTYxUUNzZXc4K3libEVybGhuYWJLSGVZZmV6MWNSeTR6eTlteFRPQS8wVDRtTUVoSzhKcVU5bVQ5
bVhoMQpsKzJOOUVrcGUyclpyQzlqTDJNaWw5c3RPdE5WeXRxcXhjbi9UY0NTOFYzc3JtbS94TXNF
TlRremJzcFp0dFI3MFE4YW5Gemk5S3ViCjI3N0t2VUdwKytmYUNVTUMyS3hucXEzRGtoTm9KM0JL
eXBIMmpLMmtqUDJwZms1Yk12bk9jdm55empMcHN4SmNyVnFYclRXZi9OOWwKN1V5dWNnYXdMTEZv
Z3JlczM1YU4vYWsycDczWlZuUEdKMzJhZGFZZjRwOHpIdkhMR1pta1RBQlhNY2lrUGhQMlM5dnhr
NVN5eXE4UQo1VXhmZnN3aS83TGVCRHFaYkNTVk50YU1yYkYxWlB3a29NeUJpS1FFNXptQWNNR3g5
ZVM5c3E1bGZza3pUS2Z6OXRGdnl5cDkyVit1Cm1QWGY2ejlmTnNacjFyZHNmemtjQzFQYmFyNFBN
dmJMQWJkMjZIV0JhTCtlL2VkajQ2amttMnIzOFBObGJhbHhLT3NzajZYc3FlMDUKKzZ4ODF5VG96
Z0dkN0w5eVVDY0hRc3UyVjhyTTQxUjUvYnhUejBzZFM3NmRhUDlVZTZiNmJlejdZRHY5VU5ybWtj
QWlnWGJUMjV1VQpTWForemFwL2owaC96VG5sLy9VMkNQbG0rNjlNMERLaHl5VTh4K2FnL2V5em51
Y0l4SGZiWHh6S2wvbWlsSnZQeTVkd0psWmxValoxCmhtSlJXVFh2WmNmM2wrMFIvNXlKbUVxWmRD
VlFTT0NRQ1VNdWtZcGRxV04vK1J5NXpQdjladVpzU0ZJdXI4aG5uMngzdURtaUUrZnMKaVB0NXQz
SisvTDlUNVg1OGlmcDMyaW9kVDVrWWx5UGNPWE9USTFPcFgvNWxRdmJuN1ZncGwvRWRYMmpCazVw
bGMvUS9RV2ZLcXpIbwpyeVlCWGo4WVN2Q2NJMDNwbnp4bUhQY254OE12bm41WnRjL1Q1eVdWc1py
NjE3UzFMSmZIMUN1L3JsWlNKaXBsak5UMGM2OGFYUkh0CmNPcmFuQmVyMXFVcllQQ2ZaZTBjWkZ2
NTViS3hYOVBtNGNyYUlYTlNLblhPbUZqRklKYTVsQ3VUKzF3dStHSTc1dk84cEd6NzJRYkcKMHRU
WUdsdEhndnRzVi8wK3pUNXAwYjVsbWQraXVwM08yMGUvUGF2MFpYKzVxZWRsdkNUZnF0dHl2Ni82
Kzh1VU5Sd0wvYno1dkwrdApwdS96NjRubFlFUSs3Kyt6OHJxZnhzWlJQOThxei92MTY3ZGxqbnZ0
OXR4ZmR3NHVwRTl5VUdtWWFzc2JMbGZ6dWwrSHVlM3ZsOVZ2ClQ5NGYyOGVNZlIvTTZZZWE5c3R6
NWdrTXZ6dDNYU0NYVHBTVUNWTUdmSTdBNTBodWppNldvd0M1akNQWFYrY3loaHhKTEVmN3lySnoK
SC9NOW5xT05pMUl1RThzWGZ6a3prQy9iVENieU9wZHZaYUkrTitXVWIwNTNiK2NHOVV3S2N2bER6
b0xrUzJOWjRKTEplL3pTbHZJbApkOG14Q1VhWmMzNjFuY1NmMXdZZktTdEJTWUxFa25kWkcydktY
YmJzZHQvL29IWFBGMm81UXJkS09UWExwa3N6dVl0cmd1WCtGL0hVCnVqSStNbTdUcDdIcmdxTDJN
V2ZhWXA4Z2J6ZFRqbnBsUTg2NmE5cmFyMHN1TTh4bFB3bG9FNXZtWDQ0Q0pzM3Q1MVhyc3JYVzVm
L3QKdDNONXJ2cFBGbzM5N2JRNTQ3TDkvOEswcWtIdTc4clI2RnlEbmpPYjVYNlFoWVZ2ODgxbDY4
ajEzUW1lYTlNaXYwWDdqdE41KytoYgpyTnFYL1dWcm4vZkgrRjZzcjlRcjMydmw4c1h5WGg2WGpl
dDh0bXdjNWJPZFRITWN0ck05cCs1cGQ4NFdETk4yeXh1V3M4cnJPZTB2CjYrbTNaNnpmeHI0UGRx
SWVwVDRlQ1VRZzg2NDlUWmwwbDZNOHVZazBHM2syNnR5c1dGSXFsY3Nac2pOT21qcnF0NVZyOWYv
bWtxY2MKOGUybmZBbm5aclEvYXlmbSthblUvTXZsWVVudDIwdC9rcmZMVVBtZmRoWGRkZktsWGRu
eDUrYjhCR1RMVXRhZGYwa0pXbklaUmdLaQpYS0swN0N4QWpueGttUnkxS1NrN2tieVhzeis1MFRD
dmMzOUl6aVprRWxwenlkdFV1V1ZkTy9tWXkwREtHWVZTYnRxUnMxVlRxV2JaCjNQd1lnNlE4WHpY
bE1wTmN3L3RZTzQ0VHdPUjFMc05LblhNejkyNm05R082T0pkQzFiUzFYNWNFVGptamxxTjltZXlX
K3ppU1oyNC8KcjFxWGZyMFdQZSszYzlIbnE3eTNiT3pQYmZPd0Rxc1laUEtmTTVINWhjREJibWxZ
N0xaZmo2MGpkYzBaMWZ3cktkdFlEa3dNMHpLLwpZYjd5K25UZFBrcjk4N2hLWC9hWFcrVjVmNHp2
eGZwSzNYTGplUTZ5algwSGxieDVIQnRIL1h3NzhYeU93M2EyNXhqa096bVhXZzdUCmRzb2Jsckhx
NnpudHo3cjY3Wm5xdDdIdmc3bjFXTFhkOG0rK3dMYS81N0tqTEtuL3ZMeVh4LzRSbFpJOWx4RWs2
TWd2MW1UQ202TmoKU2Jua0lFZGhTc29YWHdLVEc5c0owdkJvZEg5OS9lZGwyVVdQL2JxVXl4cHk5
bVVJa011c2hrZlpNN0VybDJ2bFZ5N0s4bG5Qb25MegpmaWIySmZXZWRwZW41QS9QNWFocFdYY3NI
bWovL1hEa3hyZXNKemVmbDVRYlVKUHl4VjVTV1dlcFg0S1VmTEhrSnJ1U0VvemtyTWsxCjdXY3Bz
d1FjYVhPdVpTK24zV05lYlB0dFREbFQ1U1pQcVVQNmNGa2FyaU9YSy9YejUzWCtKZVhlbDdRL3Z4
YldXYlNvdVVFM3YxNnkKS1BYTHp2VzlZOHZtdXQ2Y1ljdVhTKzZuU0IvM0oxMzlzb1lXWmQzWHR2
VkxmN1pzM1hqTkdiMmNsVWlBbS9mNktXMHNsMmJsL1l5UAovaGdadnU0dlc1NGZQZWFTMXdseXJt
L1hsMEIwVmFjWVpqemtWNXV5Yk9uL2xGdlR6NmxycnlwZElGUmVUOVVsWXlUQlhqOUF6bnI3CmFW
azdreWVYYXVieXNWaG1yR2JpbkVsVVNXUDl0bXpzVjdlNXQ1NGNzTWpMV0NTVmovSTRaZEF0Y093
LzVacnpUQkpTVm9Mck1rNVMKVnY2VjdlSFlJdDFZNjIrbnc3RTEzQTdIMXBIN29ES0djMFlzK2ZM
dmwrMzJWbjZRb08rWmUxNlc3VHRLM2ZxUHArdjJrWDRvL1RyVgpsMFBydEw5dnRtemZzV3lNVDYw
dlkySFovakxySG82RnRDTmpxS1I4TFpUWHVVd3UrNmtjSFM4cC9aL3RxYlMvdkovSHNYR1VNcWZh
ClBmeDhyQzFURHYxNjVYbS83T3lIeDc0RHk3TDl2c24zWlM1RkxBZEtTNTQ4MXV3ZkZvMkRmaGw1
M3E5ajFyMlQ3VS81eTlvejFXOWoKM3dkVC9aQTIvSzdkbi9mbmNhbUxSR0Nad0lGNzc3MzM3NVo5
MkwzLzZHOC85bkVtYkxsaE4xOUNTWG5NNURjYmJUbHRtY3RSZnRzRwpGV1ZqekpkcUl2SDhKT2tE
N1pkYU52SWNHYzZnenJXRldiNU03aE9ZNUl1dnV3bXl2UlNoZjdOcHpicTNhblhpdjhPNlpDUE1C
bnBsCnUvNys1REEvNFpjNjU3T2NmVW5FbjVUZzZMbTJqbWx1dTJoM2lVVHVEY2tSN2dRUFpXTlB1
U2t2RzJDNWZLeDkyUjB0U3R0emVVK08KY09aR3ord1l5eVZnV2U3NXR2enM4T0l4VExreE9qK05H
YWRNRU9PU3N5Q1pjTjNUVHBpenpreENIMnp6WmQzNWw0bHZKcVE1NDVUNgp0NnZvK2lJV3VZRTFu
K2ZMNWVkdC9lT2JTVXh1dk1zcDJOS0cvTlJueWtvWi9ZbHArbmlzM05Uejk4ZVd6ZVFzUVVKMnVN
T1Vzc3M2CjhtV1pHK0F5WGpLT3lzLzlwWTBKQUROV1V1ZU1uN1FuZVhPbVlkR1hSTmJUTHp0Zkdx
bkRvbVhqbGdsWGZzSTBwckhJbDNEcGoxeHUKMXk5cmFGSGFsT2FsenJtQlBXM042NHlMM1BUZmIz
dHNNczdlYVQvTDVTcVpmTVFnMjFEYWw1MTQvM1VtMldXYkt1dUswWk50dmZPWQp5M1Z5MDNldTYw
M2RVOFlxVGhuRHYycnJrL0dWZnduQVU1ZjhxbHI2Zkt5Zk0wRk9YZFB1OUZtMjRmUk4raXo5a3Zm
RzZwSngvK04yCmU4ajJuck13d3pUV3p1VE53WXVzUDJlZGtqZS94Qlh6OUZuNmU2emZsbzM5R0k2
MU9kNXBZN2FWL0ZwVk9qcHU2WVAyYVhjRGVmbzMKOTI5azdDZW9UM0M3YU95bERmMlVmVTcyYnhs
LzZZTk1Dck85cHV4c0g3a2tLMjFLKzhwOWN2MDJaanhsSHpvY1c4bFR0c01jMVYyMgpqdXg3c3Ex
bDI4cjJtek9zT1JPZHdEeXB2NjZzUDcvMHRXamZzWlg3NVAvRzVuVGJQcnI5V052R3NtMW1tOGcr
WWxGZkx0dm45YzBXCjdUdkd4dmpZdHB3YmdoODlOdTRYN1M5VGJuOC9rLzFLTHJOZHRxM21PeVhi
VENhZzZmL2NFNUlCblhHVC9VREdSVCtOamRVYzhNbjIKa1cwejdWL1U3cjdMYnU3N2MyQXQ5Vm4y
SFpnMlpadkpBYXA4QjJiN3p0bmcvQnBXL3p1dnRQMTArTzRiYTg5VXYzWHpxM2JNTC9vKwp5Tmdm
MjU5bnY1K0RxQmtyeTY3S0tJNGV6eENCMis0ZGJlaSsrKysvdjkzMFJ0SS9mbi9rdzUzNUtCdCtM
a2ZLbDFRbTZ1M0w3bjZRClJUdUFuVm5qK3BXU0w3bE1MR0t3MHlrZG5KOVV6Rm1YM0dkVFV0N1Ar
akpweTl0RDcwelN5aG1xc2t6L2NWbTUvVHhUejZmV01WdysKWDZUNWNvdFZyeW5EYk4zcllkbXJM
RHNzY0ZqVzhQTzhUdm1aa0pVMGZGM2UzNm5Ic3Qwc2NxaHRhNDVZSlVCcmgwYzN5YzFZeU9RbQpr
OUZ5SnJCOWErSDRxVzNIV0YyeXZreVU4dlBLeTlKVU8xTy9qTjNzTjRZV3kvb3R5NHlOL2JsdEhy
Wmx6R0NZTnhPeXNpMHVhdE13Ci83STJEdlAxWDQrdEkyMVBNSm5KeGpDVmRVMzVEWmZMNitIMk1I
eTlhSms1NzAyTm05cjl5TEFPcS9SbGxpMW13M0w2cjNlcnJ2MTEKMUR6UGVFdndrdjErVGYrTWph
T3Bkazk5UHF6dkt1N0Rzak5lRjMwSFpoMy8yUDdrZjM0STVqUHRQaWp0V1RUdWgzVVpLMitZZDlu
cgpZUjJYNVN2djE3YS9wajNMK3EzbSsyQ3NIZ2x3YS94S216eHV1TUJmM2ovYXdIYXpPL1Vwa1hW
SjVXaGJlWDJtUE9iSXhHNmxUTFFXCjNjU2Y5NVA2UitpMzN0bjY3MWp3a1J6THl1MlhNZlY4YWgz
RDVUUEJ2N0JVZlBqaDRQV3c3RldXSFJRMUdvaVZ2UDNnSSs4Tlg1ZDgKTy9YWTMyNkdaZGEwTlVm
S2NpYXkvTUc4VWtaNCsrTnhiaitQMVNYM2ZwVXpnV1g5dzhlcGRwYjhpemFoNFJnb2Vjc1FXamIy
NTdhNQpyS2M4amhtVVBPV3hCQjk1dmFoTkpWOTVYTmJHOHZtaXg3RjFwTzNMSmhGbFhWTitpOVk1
M0I2R3J4Y3RNK2U5cVhGVHV4OFoxbUdWCnZzeXl4V3hZVHYvMWJ0VzF2NDZhNXhsdnBiNDEvVE0y
amtvNXk5WTc5Zmx3dVZYY2gyWFhiTTlwUzc4OXcvWDNYOWVVMTgrLzZQbXcKam92eTlOOWJwZjFa
YnF3OS9YYVdmVXp0OThGWVBaYnROL3J0OEp4QUVWaUxBS1JVeGlNQkFuc25rTXVrY2psay92aGNM
c0hJVWJFYworYzRsQzRzQzF0Mm9XWUtQWlVIQWJxeFBtUVFJRUNnQ09aT1JzMCs1ZkdnVDBwejJy
TVAzd1NiMGdUYlVDd2hBNnEza0pMQlJBcmxXCjkvOXMveDdPUyswMXo3a0dPajhYdkZlQlI0RVVm
QlFKandRSTdMVkE5NGRuajkxL2x2dXRGdDJEdWRkMW1yTytPZTFaaCsrRE9XMjMKN09rbklBQTUv
ZnBNalFuc21FQUNnTndvTFJFZ1FPQk1FOGlQaEd4U210c2Uzd2ViTkJyV3Z5M2w4ci8xcjZrYUVp
QkFnQUFCQWdRSQpFQ0J3MmdzSVFFNzdMdFFBQWdRSUVDQkFnQUFCQXFlUHdQUWxXQk0vbzNYNk5G
Vk5DUkFnUUlBQUFRSUVDQkE0MVFMT2dKenFIckIrCkFnUUlFQ0JBZ0FBQkFtZVFnQURrRE9wc1RT
VkFnQUFCQWdRSUVDQndxZ1VFSUtlNkI2eWZBQUVDQkFnUUlFQ0F3QmtrSUFBNWd6cGIKVXdrUUlF
Q0FBQUVDQkFpY2FnRUJ5S251QWVzblFJQUFBUUlFQ0JBZ2NBWUpDRURPb003V1ZBSUVDQkFnUUlB
QUFRS25Xa0FBY3FwNwp3UG9KRUNCQWdBQUJBZ1FJbkVFQ0FwQXpxTE0xbFFBQkFnUUlFQ0JBZ01D
cEZoQ0FuT29lc0g0Q0JBZ1FJRUNBQUFFQ1o1Q0FBT1FNCjZteE5KVUNBQUFFQ0JBZ1FJSENxQlFR
Z3A3b0hySjhBQVFJRUNCQWdRSURBR1NRZ0FEbURPbHRUQ1JBZ1FJQUFBUUlFQ0p4cUFRSEkKcWU0
QjZ5ZEFnQUFCQWdRSUVDQndCZ2tJUU02Z3p0WlVBZ1FJRUNCQWdBQUJBcWRhUUFCeXFudkErZ2tR
SUVDQUFBRUNCQWljUVFJSApwOXI2L2U5UDVmQTVBUUk3TFhELy9UdGRvdklJRUNCQWdBQUJBdXNo
TUJtQXBKb21RK3ZSV1dweFpnZ0krcytNZnRaS0FnUUlFQ0J3CnBncTRCT3RNN1hudEprQ0FBQUVD
QkFnUUlIQUtCQVFncHdEZEtna1FJRUNBQUFFQ0JBaWNxUUlDa0RPMTU3V2JBQUVDQkFnUUlFQ0EK
d0NrUXFMb0hwTFplLytrLy9hZmFyUElST09NRS92WnYvL2FNYTdNR0V5QkFnQUFCQWdTR0FzNkFE
RVc4SmtDQUFBRUNCQWdRSUVCZwoxd1FFSUx0R3EyQUNCQWdRSUVDQUFBRUNCSVlDQXBDaGlOY0VD
QkFnUUlBQUFRSUVDT3lhZ0FCazEyZ1ZUSUFBQVFJRUNCQWdRSURBClVFQUFNaFR4bWdBQkFnUUlF
Q0JBZ0FDQlhSTVFnT3dhcllJSkVDQkFnQUFCQWdRSUVCZ0tDRUNHSWw0VElFQ0FBQUVDQkFnUUlM
QnIKQWdLUVhhTlZNQUVDQkFnUUlFQ0FBQUVDUXdFQnlGREVhd0lFQ0JBZ1FJQUFBUUlFZGsxQUFM
SnJ0QW9tUUlBQUFRSUVDQkFnUUdBbwpJQUFaaW5oTmdBQUJBZ1FJRUNCQWdNQ3VDUWhBZG8xV3dR
UUlFQ0JBZ0FBQkFnUUlEQVVFSUVNUnJ3a1FJRUNBQUFFQ0JBZ1EyRFVCCkFjaXUwU3FZQUFFQ0JB
Z1FJRUNBQUlHaGdBQmtLT0kxQVFJRUNCQWdRSUFBQVFLN0ppQUEyVFZhQlJNZ1FJQUFBUUlFQ0JB
Z01CUVEKZ0F4RnZDWkFnQUFCQWdRSUVDQkFZTmNFQkNDN1JxdGdBZ1FJRUNCQWdBQUJBZ1NHQWdL
UW9ZalhCQWdRSUVDQUFBRUNCQWpzbW9BQQpaTmRvRlV5QUFBRUNCQWdRSUVDQXdGQkFBRElVOFpv
QUFRSUVDQkFnUUlBQWdWMFRFSURzR3EyQ0NSQWdRSUFBQVFJRUNCQVlDZ2hBCmhpSmVFeUJBZ0FB
QkFnUUlFQ0N3YXdJQ2tGMmpWVEFCQWdRSUVDQkFnQUFCQWtNQkFjaFF4R3NDQkFnUUlFQ0FBQUVD
QkhaTlFBQ3kKYTdRS0prQ0FBQUVDQkFnUUlFQmdLQ0FBR1lwNFRZQUFBUUlFQ0JBZ1FJREFyZ2tJ
UUhhTlZzRUVDQkFnUUlBQUFRSUVDQXdGQkNCRApFYThKRUNCQWdBQUJBZ1FJRU5nMUFRSElydEVx
bUFBQkFnUUlFQ0JBZ0FDQm9ZQUFaQ2ppTlFFQ0JBZ1FJRUNBQUFFQ3V5WWdBTmsxCldnVVRJRUNB
QUFFQ0JBZ1FJREFVRUlBTVJid21RSUFBQVFJRUNCQWdRR0RYQkFRZ3UwYXJZQUlFQ0JBZ1FJQUFB
UUlFaGdJQ2tLR0kKMXdRSUVDQkFnQUFCQWdRSTdKcUFBR1RYYUJWTWdBQUJBZ1FJRUNCQWdNQlFR
QUF5RlBHYUFBRUNCQWdRSUVDQUFJRmRFeENBN0JxdApnZ2tRSUVDQUFBRUNCQWdRR0FvSVFJWWlY
aE1nUUlBQUFRSUVDQkFnc0dzQ0FwQmRvMVV3QVFJRUNCQWdRSUFBQVFKREFRSElVTVJyCkFnUUlF
Q0JBZ0FBQkFnUjJUVUFBc211MENpWkFnQUFCQWdRSUVDQkFZQ2dnQUJtS2VFMkFBQUVDQkFnUUlF
Q0F3SzRKQ0VCMmpWYkIKQkFnUUlFQ0FBQUVDQkFnTUJRUWdReEd2Q1JBZ1FJQUFBUUlFQ0JEWU5R
RUJ5SzdSS3BnQUFRSUVDQkFnUUlBQWdhSEF3ZUViYzE3Lwo3ZC8rN1p6RkxVdUFBQUVDQkFnUUlF
Q0F3SVlMT0FPeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5s
eEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VF
ZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFR
SUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVD
QUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlF
CjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFB
c2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJo
TGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdR
SUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFB
UUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJY
RUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0
UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVC
QWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJ
QUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFn
VFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFB
Q3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3Zh
RXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JB
Z1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FB
QkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRa
Y1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxM
aEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtF
Q0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JB
Z0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVD
Qk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xB
QUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlv
UzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlF
Q0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FB
QUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpO
bHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1
RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VR
UUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlF
Q0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJ
RQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VB
QXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIy
aExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFn
UUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFB
QVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1Ey
WEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5
NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1
QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhPQmdUZnUrLy8yYVhQSVFJ
RUNBQUFFQwpCQWdRSUVCZ1hHQXlBTG4vL3ZFQ2ZFcUFBQUVDQkFnUUlFQ0FBSUZhQVpkZzFVckpS
NEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnClFJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVD
QkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUUKQ0JBZ1FJQUFB
UUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFH
WVRLb0FBQVFJRQpDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFR
SUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBCkFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJ
QUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUEKQVFJRUNO
UUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVy
SlI0QUFBUUlFQ0JBZwpRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJ
RUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnClFLQldRQUJTS3lVZkFRSUVDQkFnUUlB
QUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUUKWmdz
SVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFB
QVFJRUNCQWdRSUFBQVFLMQpBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFn
UUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBCkFES2JVQUVFQ0JBZ1FJQUFBUUlF
Q05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0EK
MUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFB
UUlFQ0JBZ1FJQUFnZGtDQXBEWgpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdR
SUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLClBnSUVDQkFnUUlBQUFRSUVa
Z3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUps
UUEKQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNC
QWdRSUFBQVFJRWFnVUVJTFZTOGhFZwpRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFR
SUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnClFJQUFBUUlFQ0JDb0ZS
Q0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284
QUFRSUUKQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JB
Z1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRQpDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJ
RVpnc0lRR1lUS29BQUFRSUVDQkJpdmtqbEFBQVNPMGxFUVZRZ1FJQUFnVm9CCkFVaXRsSHdFQ0JB
Z1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlF
Q0JDWUxTQUEKbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRB
QURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcQpwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVD
Q0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDCkJSQWdRSUFB
QVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdR
S0JXUUFCU0t5VWYKQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFw
RlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQQpBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VD
QkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnClFJQUFB
UUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01G
dEFBREtiVUFFRUNCQWcKUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05x
RUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRQpDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJ
QUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFCkNC
QWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllB
QXBGWktQZ0lFQ0JBZ1FJQUEKQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3
RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQQpBUUsxQWdLUVdpbjVDQkFnUUlB
QUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFn
Ck1GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJr
TnFFQ0NCQWdRSUFBQVFJRUNCQ28KRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFn
UUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQwpBcERaaEFvZ1FJQUFBUUlF
Q0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFy
WUFBCnBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRs
SHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE0KSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdR
SUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUwo4aEVnUUlBQUFRSUVD
QkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdB
QmtOcUVDCkNCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JS
QWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEEKQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFR
SUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQQpBUUlFQ0JBZ1FJ
QkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVp
dGxId0VDQkFnClFJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JB
Z1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWcKUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJ
RUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRQpDQkFnUUdD
MmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hD
QlJBZ1FJQUFBUUlFCkNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFB
QVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUEKQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFn
UUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQQpnVm9C
QVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVD
QkFnUUlBQUFRSUVDQkNZCkxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFB
UUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUsKQ0VCcXBlUWpRSUFBQVFJRUNCQWdR
R0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQgp5
R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJ
QUFBUUlFQ0JBZ1FLQldRQUJTCkt5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNC
QWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVQKS29BQUFRSUVDQkFnUUlBQWdW
b0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2lu
NQpDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlB
QUFRSUVDQkFnTUZ0QUFES2JVQUVFCkNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JB
Z1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUEKQVFJRUNCQWdRSURBYkFF
QnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9n
UUlBQQpBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlF
Q0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnClFJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFB
Z1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWcKUUlBQUFRSzFBZ0tR
V2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdR
SUFBQVFJRQpDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVD
QkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFCkNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFi
QUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUEKZ2RrQ0FwRFpo
QW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFR
SUVDQkFnUUlCQQpyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJ
QUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXCkVJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFn
S1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUUKSUxWUzho
RWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJ
RUNCQWdRR0MyZ0FCawpOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlE
QWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21WCmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBE
WmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1YKUUlB
QUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFn
UUlBQWdWb0JBVWl0bEh3RQpDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsx
QWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFCkNCQWdRSUFBQVFJRWFnVUVJTFZT
OGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUEK
QVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdR
SURBYkFFQnlHeENCUkFnUUlBQQpBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NB
cERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnClFJQUFBUUt6QlFRZ3N3a1ZR
SUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNC
QWcKUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFR
SzFBZ0tRV2luNUNCQWdRSUFBQVFJRQpDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlM
VlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFCkNOUUtDRUJxcGVRalFJ
QUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JB
Z1FJREEKYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2Rr
Q0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCVwpRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3dr
VlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJClFHWVRLb0FBQVFJ
RUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFB
QVFLMUFnS1EKV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VF
SUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYgpVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFq
UUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKClI0QUFBUUlF
Q0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFn
ZGtDQXBEWmhBb2cKUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdz
d2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRQpDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFB
UUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFCkNCQWdR
SUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFn
VUVJTFZTOGhFZ1FJQUEKQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBl
UWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQQpBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFR
SUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnClFJ
QUFnZGtDQXBEWmhBb2c4UCszWDRjMkFBQUFDTVArLzVvWGxtRHJDYUp1QkFnUUlFQ0FBQUVDQktx
QUFLbFNkZ1FJRUNCQWdBQUIKQWdRSTNBSUM1Q1owUUlBQUFRSUVDQkFnUUlCQUZSQWdWY3FPQUFF
Q0JBZ1FJRUNBQUlGYlFJRGNoQTRJRUNCQWdBQUJBZ1FJRUtnQwpBcVJLMlJFZ1FJQUFBUUlFQ0JB
Z2NBc0lrSnZRQVFFQ0JBZ1FJRUNBQUFFQ1ZVQ0FWQ2s3QWdRSUVDQkFnQUFCQWdSdUFRRnlFem9n
ClFJQUFBUUlFQ0JBZ1FLQUtDSkFxWlVlQUFBRUNCQWdRSUVDQXdDMGdRRzVDQndRSUVDQkFnQUFC
QWdRSVZBRUJVcVhzQ0JBZ1FJQUEKQVFJRUNCQzRCUVRJVGVpQUFBRUNCQWdRSUVDQUFJRXFJRUNx
bEIwQkFnUUlFQ0JBZ0FBQkFyZUFBTGtKSFJBZ1FJQUFBUUlFQ0JBZwpVQVVFU0pXeUkwQ0FBQUVD
QkFnUUlFRGdGaEFnTjZFREFnUUlFQ0JBZ0FBQkFnU3FnQUNwVW5ZRUNCQWdRSUFBQVFJRUNOd0NB
dVFtCmRFQ0FBQUVDQkFnUUlFQ0FRQlVRSUZYS2pnQUJBZ1FJRUNCQWdBQ0JXMENBM0lRT0NCQWdR
SUFBQVFJRUNCQ29BZ0trU3RrUklFQ0EKQUFFQ0JBZ1FJSEFMQ0pDYjBBRUJBZ1FJRUNCQWdBQUJB
bFZBZ0ZRcE93SUVDQkFnUUlBQUFRSUViZ0VCY2hNNklFQ0FBQUVDQkFnUQpJRUNnQ2dpUUttVkhn
QUFCQWdRSUVDQkFnTUF0SUVCdVFnY0VDQkFnUUlBQUFRSUVDRlFCQVZLbDdBZ1FJRUNBQUFFQ0JB
Z1F1QVVFCnlFM29nQUFCQWdRSUVDQkFnQUNCS2lCQXFwUWRBUUlFQ0JBZ1FJQUFBUUszZ0FDNUNS
MFFJRUNBQUFFQ0JBZ1FJRkFGQkVpVnNpTkEKZ0FBQkFnUUlFQ0JBNEJZUUlEZWhBd0lFQ0JBZ1FJ
QUFBUUlFcW9BQXFWSjJCQWdRSUVDQUFBRUNCQWpjQWdMa0puUkFnQUFCQWdRSQpFQ0JBZ0VBVkVD
QlZ5bzRBQVFJRUNCQWdRSUFBZ1Z0QWdOeUVEZ2dRSUVDQUFBRUNCQWdRcUFJQ3BFclpFU0JBZ0FB
QkFnUUlFQ0J3CkN3aVFtOUFCQVFJRUNCQWdRSUFBQVFKVlFJQlVLVHNDQkFnUUlFQ0FBQUVDQkc0
QkFYSVRPaUJBZ0FBQkFnUUlFQ0JBb0FvSWtDcGwKUjRBQUFRSUVDQkFnUUlEQUxTQkFia0lIQkFn
UUlFQ0FBQUVDQkFoVUFRRlNwZXdJRUNCQWdBQUJBZ1FJRUxnRkJNaE42SUFBQVFJRQpDQkFnUUlB
QWdTb2dRS3FVSFFFQ0JBZ1FJRUNBQUFFQ3Q0QUF1UWtkRUNCQWdBQUJBZ1FJRUNCUUJRUklsYklq
UUlBQUFRSUVDQkFnClFPQVdFQ0Ezb1FNQ0JBZ1FJRUNBQUFFQ0JLcUFBS2xTZGdRSUVDQkFnQUFC
QWdRSTNBSURCMGlvSVJBdU4rb0FBQUFBU1VWT1JLNUMKWUlJPQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52670</attachid>
            <date>2010-04-06 14:39:14 -0700</date>
            <delta_ts>2010-04-06 15:46:59 -0700</delta_ts>
            <desc>Patch3</desc>
            <filename>bug6649734-3.txt</filename>
            <type>text/plain</type>
            <size>129352</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzE2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEzIEBACisyMDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICBUaGUgZ2x5
cGggY2FjaGUgaGFzIGJlZW4gYWxzbyB1cGRhdGVkIHRvIGFsbG93IHN0b3JpbmcgdGhlIGdseXBo
IGJvdW5kaW5nIGJveCB0b2dldGhlciB3aXRoIHRoZQorICAgICAgICBob3Jpem9udGFsIHdpZHRo
LiBUaGUgYm91bmRpbmcgYm94IGlzIHBvcHVsYXRlZCBvbmx5IGZvciBjb21wbGV4IHRleHQuCisg
ICAgICAgIAorICAgICAgICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhcyBi
ZWVuIHdyaXR0ZW4gYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IEZpbGUg
bmFtZSBjaGFuZ2UuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEZpbGUgbmFtZSBjaGFuZ2Uu
CisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogQWRkZWQgcGFyYW1ldGVyIGluIGV4cG9ydGVk
IGZ1bmN0aW9uLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRmlsZSBuYW1lIGNoYW5nZS4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRmlsZSBuYW1lIGNoYW5nZS4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEZpbGUgbmFtZSBj
aGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogQWRkZWQgZ2x5cGhPdmVyZmxvdyBwYXJhbWV0ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhPdmVyZmxvdzo6R2x5cGhPdmVyZmxvdyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6d2lkdGgpOiBBZGRlZCBnbHlwaE92ZXJmbG93IHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6Y2FuVXNlR2x5cGhDYWNoZSk6IE1vZGlmaWVkIHRvIHJlbmRlciBjaGFyYWN0ZXJzIHdpdGgg
c3RhY2tlZCBkaWFjcml0aWNzIHdpdGggY29tcGxleCB0ZXh0IHBhdGguCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcDogQ29waWVkIGZyb20gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Okds
eXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKTogQ2xhc3MgbmFtZSBjaGFuZ2VkIHRv
IHJlZmxlY3QgbmV3IHNlbWFudGljcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aE1ldHJpY3NNYXAuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmguCisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6OkdseXBoTWV0
cmljc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6On5HbHlwaE1ldHJp
Y3NNYXApOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjptZXRyaWNzRm9yR2x5
cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjp3aWR0aEZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6c2V0TWV0cmljc0ZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6bWV0
cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhN
ZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
TWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9XaWR0aEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6
OmFkdmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQp
OiBBZGRlZCBuZXcgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6IEFkZGVkIG5ldyBwYXJhbWV0ZXIuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEds
eXBoc0FuZEFkdmFuY2VzKTogTW9kaWZpZWQgdG8gdXNlIEdseXBoT3ZlcmZsb3cuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjptaW5HbHlwaEJvdW5kaW5nQm94WCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1heEdseXBoQm91bmRp
bmdCb3hYKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVy
OjptYXhHbHlwaEJvdW5kaW5nQm94WSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDb21wbGV4VGV4dE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdp
ZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9h
dFdpZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKTogQWRkZWQgcGFyYW1l
dGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdESUdseXBo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVDb250cm9sbGVyOjpVbmlzY3JpYmVDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5k
UGxhY2VJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6
bWF4R2x5cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJv
bGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJl
Q29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNl
Qm94ZXNIb3Jpem9udGFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29t
cHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OmNvbXB1dGVWZXJ0aWNhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpzZXRGYWxsYmFja0Zv
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmZhbGxiYWNrRm9udHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6c2V0R2x5cGhPdmVyZmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpnbHlwaE92ZXJmbG93KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJv
eDo6Y2xlYXJHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpSZW5k
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKTogQWRkZWQgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Ojp3aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDogUmVuYW1l
ZCBtZW1iZXIgdmFyaWFibGUuCisKIDIwMTAtMDQtMDYgIEphbWVzIFJvYmluc29uICA8amFtZXNy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4
OiBXZWJDb3JlL0FuZHJvaWQubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLm1rCShy
ZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvQW5kcm9pZC5tawkod29ya2luZyBjb3B5KQpAQCAt
NDM2LDcgKzQzNiw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAog
CXBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAgXAogCXBsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRlZEltYWdlLmNwcCBcCiAJcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5v
ZGUuY3BwIFwKLQlwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcCBcCisJcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcCBcCiAJcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuY3BwIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIFwKIAlw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBcCkluZGV4OiBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9u
IDU3MTY1KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTYx
MSw4ICsxNjExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoQnVmZmVyLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQ
YWdlVHJlZU5vZGUuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRy
ZWVOb2RlLmggXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAg
XAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oIFwKKwlXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAgXAorCVdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50Lmgg
XAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LmJhc2UuZXhwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAko
d29ya2luZyBjb3B5KQpAQCAtOTA4LDcgKzkwOCw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlMTdzdWcKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlM3Vy
bEV2CiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZThtaW1lVHlwZUV2CiBfX1pO
SzdXZWJDb3JlMjZOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjZpc0RvbmVFdgotX19aTks3V2Vi
Q29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRSdW5FUE4zV1RGN0hhc2hTZXRJUEtOU18x
NFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9FRU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVF
RQorX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRSdW5FUE4zV1RGN0hh
c2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9FRU5TNF8xMEhhc2hU
cmFpdHNJUzhfRUVFRVBOU18xM0dseXBoT3ZlcmZsb3dFCiBfX1pOSzdXZWJDb3JlNEZvbnQxMXBy
aW1hcnlGb250RXYKIF9fWk5LN1dlYkNvcmU0Rm9udDhkcmF3VGV4dEVQTlNfMTVHcmFwaGljc0Nv
bnRleHRFUktOU183VGV4dFJ1bkVSS05TXzEwRmxvYXRQb2ludEVpaQogX19aTks3V2ViQ29yZTRL
VVJMMTFjcmVhdGVDRlVSTEV2CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjMyMiw4ICsyMzIyLDggQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaFdpZHRoTWFwLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoTWV0cmljc01hcC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
TWV0cmljc01hcC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAnLApJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTIyNzc2
LDExICsyMjc3NiwxMSBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhXaWR0aE1hcC5jcHAiDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoTWV0cmljc01hcC5j
cHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhXaWR0aE1hcC5oIg0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHbHlwaE1ldHJpY3NNYXAuaCINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zODk4LDggKzM4OTgsNiBA
QAogCQlCMkMzREE2QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhCdWZmZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVCMEQwMDZDRDYwMEVG
NkYyNiAvKiBHbHlwaEJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUIyQzNEQTZEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVl
Tm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MkMzREE1QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICovOyB9Owog
CQlCMkMzREE2RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVEMEQwMDZDRDYw
MEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUIyQzNEQTZGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlw
aFdpZHRoTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEQTVFMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmNwcCAqLzsgfTsK
LQkJQjJDM0RBNzAwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lkdGhNYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVGMEQwMDZDRDYwMEVG
NkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQjJDOTZEOEQwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNl
Z0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCAqLzsg
fTsKIAkJQjJDQjkyNDIwQjVCRDk2NjAwOUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjNC
MEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAgKi87IH07CiAJCUIy
Q0I5MjQ0MEI1QkQ5NzAwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJDQjkyM0MwQjVCRDk0MTAw
OUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlLmggKi87IH07CkBAIC00NzAwLDYgKzQ2OTgs
OCBAQAogCQlDNTE2MEVFQjEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE2MEVFOTEwMDQ1
NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmggKi87IH07CiAJCUM1NUUzOEJGMTAwNDBE
NUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4QkIxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0
b3JhZ2VOYW1lc3BhY2VJbXBsLmggKi87IH07CiAJCUM1NUUzOEMwMTAwNDBENUQwMEE1NkJEQiAv
KiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwICovOyB9OworCQlDNUQ0QUE3OTExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhN
ZXRyaWNzTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1RDRBQTc3MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuY3BwICovOyB9
OworCQlDNUQ0QUE3QTExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUQ0QUE3ODExNkJBRkI2
MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzVFOUI2NzcxMDY5N0UxMzAwQzdCQjFBIC8qIFN0b3Jh
Z2VFdmVudERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzVFOUI2NzYxMDY5N0UxMzAwQzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3Bh
dGNoZXIuY3BwICovOyB9OwogCQlDNUVCREQ4NDEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2
ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIu
aCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICov
OyB9OwpAQCAtOTIyMiw4ICs5MjIyLDYgQEAKIAkJQjJDM0RBNUIwRDAwNkNENjAwRUY2RjI2IC8q
IEdseXBoQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaEJ1
ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkMzREE1QzBEMDA2Q0Q2MDBF
RjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdseXBoUGFnZVRyZWVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjJDM0RBNUQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkMzREE1RTBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhXaWR0aE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R2x5cGhXaWR0aE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyQzNEQTVG
MEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHbHlwaFdpZHRoTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIyQzk2RDhDMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhTZWdDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHUGF0aFNlZ0N1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQ0I5MjNCMEI1QkQ5NDEwMDlCQUE3
OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMkNCOTIzQzBCNUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFu
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHRWxlbWVudEluc3Rh
bmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDA2MSw2ICsxMDA1OSw4IEBA
CiAJCUM1MTYwRUU5MTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM1NUUzOEJCMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTVFMzhCQzEwMDQw
RDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDNUQ0QUE3NzExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRy
aWNzTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdseXBoTWV0
cmljc01hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1RDRBQTc4MTE2QkFG
QjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR2x5cGhNZXRyaWNzTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNUVCREQ4MTEwNUVEREVDMDA1
NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9u
TGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDY0NCwxMCArMTQ2
NDQsMTAgQEAKIAkJCQlCQzIzRjBEQTBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2Uu
aCAqLywKIAkJCQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8sCiAJ
CQkJQjJDM0RBNUIwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoQnVmZmVyLmggKi8sCisJCQkJQzVE
NEFBNzcxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5jcHAgKi8sCisJCQkJQzVE
NEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oICovLAogCQkJCUIyQzNE
QTVDMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgKi8sCiAJCQkJQjJD
M0RBNUQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggKi8sCi0JCQkJQjJD
M0RBNUUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lkdGhNYXAuY3BwICovLAotCQkJCUIyQzNE
QTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi8sCiAJCQkJQkM1M0M2MDcw
REE1NkM1NzAwMjFFQjVEIC8qIEdyYWRpZW50LmNwcCAqLywKIAkJCQlCQzUzQzVGNDBEQTU2Qjky
MDAyMUVCNUQgLyogR3JhZGllbnQuaCAqLywKIAkJCQlCMkEwMTU5MjBBRjZDRDUzMDA2QkNFMEUg
LyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKQEAgLTE3MzkyLDcgKzE3MzkyLDYgQEAKIAkJCQlG
RTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyQzNEQTZDMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJDM0RBNkUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCMkMzREE3MDBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0
aE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0M1RjUwREE1NkI5MjAwMjFFQjVEIC8qIEdy
YWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk2NDBEMDBCRjIyMDA3MUI3ODIgLyog
R3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUz
MDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTE4ODE0LDYg
KzE4ODEzLDcgQEAKIAkJCQk4OTUyNTM1MzExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRy
ZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI1NDJGNERCMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2Vy
R2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzVENEFBN0ExMTZCQUZCNjAw
NjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xOTYzMSw3ICsx
OTYzMSw2IEBACiAJCQkJNTlDNzdGMkExMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2Vy
dmljZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNkQwRDAwNkNENjAwRUY2RjI2
IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlCMkMzREE2RjBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzUzQzYwODBEQTU2QzU3MDAyMUVCNUQgLyogR3JhZGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM1M0M2MEIwREE1NkNGMTAwMjFFQjVEIC8qIEdyYWRpZW50Q0cu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMDE1QTgwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBo
aWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIxMDM0LDYgKzIxMDMzLDcgQEAKIAkJ
CQkyRTNCQkYwNzExNjJEQTExMDBCOTQwOUEgLyogVVVJRC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4OTUyNTM1MjExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzVENEFBNzkxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBo
TWV0cmljc01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBGb250OjpkcmF3
VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbgogICAgIHJldHVybiBkcmF3Q29tcGxleFRleHQoY29u
dGV4dCwgcnVuLCBwb2ludCwgZnJvbSwgdG8pOwogfQogCi1mbG9hdCBGb250OjpmbG9hdFdpZHRo
KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBy
dW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhP
dmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQog
ICAgIGlmIChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQoKSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBm
bG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1CiAgICAgfQogI2VuZGlmCiAK
LSAgICByZXR1cm4gZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7
CisgICAgcmV0dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMs
IGdseXBoT3ZlcmZsb3cpOwogfQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRS
dW4mIHJ1biwgaW50IGV4dHJhQ2hhcnNBdmFpbGFibGUsIGludCYgY2hhcnNDb25zdW1lZCwgU3Ry
aW5nJiBnbHlwaE5hbWUpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2
aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNiArNTYsMjEgQEAgc3RydWN0IEdseXBoRGF0YTsKIAogY29uc3QgdW5z
aWduZWQgZGVmYXVsdFVuaXRzUGVyRW0gPSAxMDAwOwogCitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7
CisgICAgR2x5cGhPdmVyZmxvdygpCisgICAgICAgIDogbGVmdCgwKQorICAgICAgICAsIHJpZ2h0
KDApCisgICAgICAgICwgdG9wKDApCisgICAgICAgICwgYm90dG9tKDApCisgICAgeworICAgIH0K
KworICAgIGludCBsZWZ0OworICAgIGludCByaWdodDsKKyAgICBpbnQgdG9wOworICAgIGludCBi
b3R0b207Cit9OworCiBjbGFzcyBGb250IHsKIHB1YmxpYzoKICAgICBGb250KCk7CkBAIC04MSw4
ICs5Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9
IC0xKSBjb25zdDsKIAotICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0IHsgcmV0dXJu
IGxyb3VuZGYoZmxvYXRXaWR0aChydW4sIGZhbGxiYWNrRm9udHMpKTsgfQotICAgIGZsb2F0IGZs
b2F0V2lkdGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiog
ZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OworICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBy
dW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEds
eXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZs
b2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KSk7IH0KKyAgICBmbG9h
dCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkg
Y29uc3Q7CiAgICAgZmxvYXQgZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRy
YUNoYXJzQXZhaWxhYmxlLCBpbnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBj
b25zdDsKIAogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbihjb25zdCBUZXh0UnVuJiwgaW50IHBv
c2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE1OSw3ICsxNzQs
NyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBp
bnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBU
ZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0g
MCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRS
dW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBH
bHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNv
bXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRl
eHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBvaW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQg
dG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBh
dGguY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM0LDYgKzIzNCwxMSBAQCBib29sIEZv
bnQ6OmNhblVzZUdseXBoQ2FjaGUoY29uc3QgVGV4dFJ1CiAgICAgICAgIGlmIChjIDw9IDB4MTk0
RikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgICAgICBpZiAoYyA8IDB4MUUwMCkg
ICAgIC8vIFUrMUUwMCB0aHJvdWdoIFUrMjAwMCBjaGFyYWN0ZXJzIHdpdGggZGlhY3JpdGljcyBh
bmQgc3RhY2tlZCBkaWFjcml0aWNzCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYg
KGMgPD0gMHgyMDAwKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgICAgIGlmIChj
IDwgMHgyMEQwKSAgICAgLy8gVSsyMEQwIHRocm91Z2ggVSsyMEZGIENvbWJpbmluZyBtYXJrcyBm
b3Igc3ltYm9scwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChjIDw9IDB4MjBG
RikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5j
cHAJKHJldmlzaW9uIDU3MDkxKQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
V2lkdGhNYXAuY3BwOjU3MDkxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1l
dHJpY3NNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHbHlwaFdpZHRoTWFwLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworR2x5cGhXaWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdGhN
YXA6OmxvY2F0ZVBhZ2VTbG93Q2FzZSh1bnNpZ25lZCBwYWdlTnVtYmVyKQoreworICAgIEdseXBo
V2lkdGhQYWdlKiBwYWdlOworICAgIGlmIChwYWdlTnVtYmVyID09IDApIHsKKyAgICAgICAgQVNT
RVJUKCFtX2ZpbGxlZFByaW1hcnlQYWdlKTsKKyAgICAgICAgcGFnZSA9ICZtX3ByaW1hcnlQYWdl
OworICAgICAgICBtX2ZpbGxlZFByaW1hcnlQYWdlID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBpZiAobV9wYWdlcykgeworICAgICAgICAgICAgaWYgKChwYWdlID0gbV9wYWdlcy0+Z2V0
KHBhZ2VOdW1iZXIpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFnZTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBtX3BhZ2VzLnNldChuZXcgSGFzaE1hcDxpbnQsIEdseXBoV2lkdGhQ
YWdlKj4pOworICAgICAgICBwYWdlID0gbmV3IEdseXBoV2lkdGhQYWdlOworICAgICAgICBtX3Bh
Z2VzLT5zZXQocGFnZU51bWJlciwgcGFnZSk7CisgICAgfQorCisgICAgLy8gRmlsbCBpbiB0aGUg
d2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBoIHdpZHRoIHZhbHVlLgorICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRoUGFnZTo6c2l6ZTsgaSsrKQorICAgICAgICBw
YWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlwaFdpZHRoVW5rbm93bik7CisKKyAgICByZXR1
cm4gcGFnZTsKK30KKworfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1l
dHJpY3NNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhNZXRyaWNzTWFwLmNwcAkocmV2aXNpb24gNTcwOTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEzICsyNywx
MyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHbHlwaFdpZHRoTWFw
LmgiCisjaW5jbHVkZSAiR2x5cGhNZXRyaWNzTWFwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotR2x5cGhXaWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdGhNYXA6OmxvY2F0ZVBh
Z2VTbG93Q2FzZSh1bnNpZ25lZCBwYWdlTnVtYmVyKQorR2x5cGhNZXRyaWNzTWFwOjpHbHlwaE1l
dHJpY3NQYWdlKiBHbHlwaE1ldHJpY3NNYXA6OmxvY2F0ZVBhZ2VTbG93Q2FzZSh1bnNpZ25lZCBw
YWdlTnVtYmVyKQogewotICAgIEdseXBoV2lkdGhQYWdlKiBwYWdlOworICAgIEdseXBoTWV0cmlj
c1BhZ2UqIHBhZ2U7CiAgICAgaWYgKHBhZ2VOdW1iZXIgPT0gMCkgewogICAgICAgICBBU1NFUlQo
IW1fZmlsbGVkUHJpbWFyeVBhZ2UpOwogICAgICAgICBwYWdlID0gJm1fcHJpbWFyeVBhZ2U7CkBA
IC00MywxNCArNDMsMTggQEAgR2x5cGhXaWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lk
dAogICAgICAgICAgICAgaWYgKChwYWdlID0gbV9wYWdlcy0+Z2V0KHBhZ2VOdW1iZXIpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gcGFnZTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBt
X3BhZ2VzLnNldChuZXcgSGFzaE1hcDxpbnQsIEdseXBoV2lkdGhQYWdlKj4pOwotICAgICAgICBw
YWdlID0gbmV3IEdseXBoV2lkdGhQYWdlOworICAgICAgICAgICAgbV9wYWdlcy5zZXQobmV3IEhh
c2hNYXA8aW50LCBHbHlwaE1ldHJpY3NQYWdlKj4pOworICAgICAgICBwYWdlID0gbmV3IEdseXBo
TWV0cmljc1BhZ2U7CiAgICAgICAgIG1fcGFnZXMtPnNldChwYWdlTnVtYmVyLCBwYWdlKTsKICAg
ICB9CiAKLSAgICAvLyBGaWxsIGluIHRoZSB3aG9sZSBwYWdlIHdpdGggdGhlIHVua25vd24gZ2x5
cGggd2lkdGggdmFsdWUuCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdseXBoV2lkdGhQ
YWdlOjpzaXplOyBpKyspCi0gICAgICAgIHBhZ2UtPnNldFdpZHRoRm9ySW5kZXgoaSwgY0dseXBo
V2lkdGhVbmtub3duKTsKKyAgICBHbHlwaE1ldHJpY3MgdW5rbm93bk1ldHJpY3M7CisgICAgdW5r
bm93bk1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBjR2x5cGhTaXplVW5rbm93bjsKKyAgICB1
bmtub3duTWV0cmljcy5ib3VuZGluZ0JveC5zZXRXaWR0aChjR2x5cGhTaXplVW5rbm93bik7Cisg
ICAgdW5rbm93bk1ldHJpY3MuYm91bmRpbmdCb3guc2V0SGVpZ2h0KGNHbHlwaFNpemVVbmtub3du
KTsKKyAgICAvLyBGaWxsIGluIHRoZSB3aG9sZSBwYWdlIHdpdGggdGhlIHVua25vd24gZ2x5cGgg
aW5mb3JtYXRpb24uCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdseXBoTWV0cmljc1Bh
Z2U6OnNpemU7IGkrKykKKyAgICAgICAgcGFnZS0+c2V0TWV0cmljc0ZvckluZGV4KGksIHVua25v
d25NZXRyaWNzKTsKIAogICAgIHJldHVybiBwYWdlOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCShyZXZpc2lvbiA1NzA5MSkJKGZyb20gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmg6NTcwOTEpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0
aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2x5cGhXaWR0aE1hcF9oCisjZGVmaW5lIEds
eXBoV2lkdGhNYXBfaAorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgR2x5cGg7CisKK2NvbnN0IGZsb2F0
IGNHbHlwaFdpZHRoVW5rbm93biA9IC0xOworCitjbGFzcyBHbHlwaFdpZHRoTWFwIDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBHbHlwaFdpZHRoTWFwKCkgOiBtX2ZpbGxlZFBy
aW1hcnlQYWdlKGZhbHNlKSB7IH0KKyAgICB+R2x5cGhXaWR0aE1hcCgpIHsgaWYgKG1fcGFnZXMp
IHsgZGVsZXRlQWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9CisKKyAgICBmbG9hdCB3aWR0aEZvckds
eXBoKEdseXBoIGdseXBoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGgg
LyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPndpZHRoRm9yR2x5cGgoZ2x5cGgpOworICAgIH0KKwor
ICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAg
eworICAgICAgICBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5zZXRX
aWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0cnVj
dCBHbHlwaFdpZHRoUGFnZSB7CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2l6ZSA9IDI1
NjsgLy8gVXN1YWxseSBjb3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBwYWdlLgorICAgICAgICBm
bG9hdCBtX3dpZHRoc1tzaXplXTsKKworICAgICAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBo
IGdseXBoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNpemVdOyB9CisgICAgICAg
IHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBzaXplLCB3aWR0aCk7Cisg
ICAgICAgIH0KKyAgICAgICAgdm9pZCBzZXRXaWR0aEZvckluZGV4KHVuc2lnbmVkIGluZGV4LCBm
bG9hdCB3aWR0aCkKKyAgICAgICAgeworICAgICAgICAgICAgbV93aWR0aHNbaW5kZXhdID0gd2lk
dGg7CisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQ
YWdlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpCisgICAgeworICAgICAgICBpZiAoIXBhZ2VOdW1iZXIg
JiYgbV9maWxsZWRQcmltYXJ5UGFnZSkKKyAgICAgICAgICAgIHJldHVybiAmbV9wcmltYXJ5UGFn
ZTsKKyAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2VTbG93Q2FzZShwYWdlTnVtYmVyKTsKKyAgICB9
CisKKyAgICBHbHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VO
dW1iZXIpOworICAgIAorICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5UGFnZTsKKyAgICBHbHlwaFdp
ZHRoUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBj
b250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1LgorICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5
cGhXaWR0aFBhZ2UqPiA+IG1fcGFnZXM7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCShyZXZpc2lvbiA1NzA5MSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDkgKzI2LDEwIEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgR2x5
cGhXaWR0aE1hcF9oCi0jZGVmaW5lIEdseXBoV2lkdGhNYXBfaAorI2lmbmRlZiBHbHlwaE1ldHJp
Y3NNYXBfaAorI2RlZmluZSBHbHlwaE1ldHJpY3NNYXBfaAogCisjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgpAQCAtMzcsNTMgKzM4LDYzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBHbHlwaDsKIAotY29uc3Qg
ZmxvYXQgY0dseXBoV2lkdGhVbmtub3duID0gLTE7Citjb25zdCBmbG9hdCBjR2x5cGhTaXplVW5r
bm93biA9IC0xOwogCi1jbGFzcyBHbHlwaFdpZHRoTWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsK
K3N0cnVjdCBHbHlwaE1ldHJpY3MgeworICAgIGZsb2F0IGhvcml6b250YWxBZHZhbmNlOworICAg
IEZsb2F0UmVjdCBib3VuZGluZ0JveDsKK307CisKK2NsYXNzIEdseXBoTWV0cmljc01hcCA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxs
ZWRQcmltYXJ5UGFnZShmYWxzZSkgeyB9Ci0gICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3Bh
Z2VzKSB7IGRlbGV0ZUFsbFZhbHVlcygqbV9wYWdlcyk7IH0gfQorICAgIEdseXBoTWV0cmljc01h
cCgpIDogbV9maWxsZWRQcmltYXJ5UGFnZShmYWxzZSkgeyB9CisgICAgfkdseXBoTWV0cmljc01h
cCgpIHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9CisKKyAg
ICBHbHlwaE1ldHJpY3MgbWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+bWV0
cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICB9CiAKICAgICBmbG9hdCB3aWR0aEZvckdseXBoKEds
eXBoIGdseXBoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlw
aFdpZHRoUGFnZTo6c2l6ZSktPndpZHRoRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICByZXR1cm4g
bG9jYXRlUGFnZShnbHlwaCAvIEdseXBoTWV0cmljc1BhZ2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5
cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwogICAgIH0KIAotICAgIHZvaWQgc2V0V2lkdGhG
b3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgdm9pZCBzZXRNZXRyaWNzRm9y
R2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmljcykKICAgICB7Ci0g
ICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPnNldFdpZHRo
Rm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAgICAgbG9jYXRlUGFnZShnbHlwaCAvIEdseXBo
TWV0cmljc1BhZ2U6OnNpemUpLT5zZXRNZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3MpOwog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3QgR2x5cGhXaWR0aFBhZ2UgeworICAgIHN0cnVj
dCBHbHlwaE1ldHJpY3NQYWdlIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0g
MjU2OyAvLyBVc3VhbGx5IGNvdmVycyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAg
IGZsb2F0IG1fd2lkdGhzW3NpemVdOworICAgICAgICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3Np
emVdOwogCi0gICAgICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsg
cmV0dXJuIG1fd2lkdGhzW2dseXBoICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZv
ckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1l
dHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBo
ICUgc2l6ZV07IH0KKyAgICAgICAgdm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgs
IGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmljcykKICAgICAgICAgewotICAgICAgICAgICAgc2V0
V2lkdGhGb3JJbmRleChnbHlwaCAlIHNpemUsIHdpZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJp
Y3NGb3JJbmRleChnbHlwaCAlIHNpemUsIG1ldHJpY3MpOwogICAgICAgICB9Ci0gICAgICAgIHZv
aWQgc2V0V2lkdGhGb3JJbmRleCh1bnNpZ25lZCBpbmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAg
IHZvaWQgc2V0TWV0cmljc0ZvckluZGV4KHVuc2lnbmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJp
Y3MmIG1ldHJpY3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdp
ZHRoOworICAgICAgICAgICAgbV9tZXRyaWNzW2luZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0K
ICAgICB9OwogICAgIAotICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQYWdlKHVuc2lnbmVkIHBh
Z2VOdW1iZXIpCisgICAgR2x5cGhNZXRyaWNzUGFnZSogbG9jYXRlUGFnZSh1bnNpZ25lZCBwYWdl
TnVtYmVyKQogICAgIHsKICAgICAgICAgaWYgKCFwYWdlTnVtYmVyICYmIG1fZmlsbGVkUHJpbWFy
eVBhZ2UpCiAgICAgICAgICAgICByZXR1cm4gJm1fcHJpbWFyeVBhZ2U7CiAgICAgICAgIHJldHVy
biBsb2NhdGVQYWdlU2xvd0Nhc2UocGFnZU51bWJlcik7CiAgICAgfQogCi0gICAgR2x5cGhXaWR0
aFBhZ2UqIGxvY2F0ZVBhZ2VTbG93Q2FzZSh1bnNpZ25lZCBwYWdlTnVtYmVyKTsKKyAgICBHbHlw
aE1ldHJpY3NQYWdlKiBsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcik7CiAg
ICAgCiAgICAgYm9vbCBtX2ZpbGxlZFByaW1hcnlQYWdlOwotICAgIEdseXBoV2lkdGhQYWdlIG1f
cHJpbWFyeVBhZ2U7IC8vIFdlIG9wdGltaXplIGZvciB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGds
eXBoIGluZGljZXMgMC0yNTUuCi0gICAgT3duUHRyPEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFn
ZSo+ID4gbV9wYWdlczsKKyAgICBHbHlwaE1ldHJpY3NQYWdlIG1fcHJpbWFyeVBhZ2U7IC8vIFdl
IG9wdGltaXplIGZvciB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGdseXBoIGluZGljZXMgMC0yNTUu
CisgICAgT3duUHRyPEhhc2hNYXA8aW50LCBHbHlwaE1ldHJpY3NQYWdlKj4gPiBtX3BhZ2VzOwog
fTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcAkocmV2aXNpb24gNTcxNjUpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJHbHlwaFdpZHRoTWFwLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotR2x5cGhXaWR0
aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lkdGhNYXA6OmxvY2F0ZVBhZ2VTbG93Q2FzZSh1
bnNpZ25lZCBwYWdlTnVtYmVyKQotewotICAgIEdseXBoV2lkdGhQYWdlKiBwYWdlOwotICAgIGlm
IChwYWdlTnVtYmVyID09IDApIHsKLSAgICAgICAgQVNTRVJUKCFtX2ZpbGxlZFByaW1hcnlQYWdl
KTsKLSAgICAgICAgcGFnZSA9ICZtX3ByaW1hcnlQYWdlOwotICAgICAgICBtX2ZpbGxlZFByaW1h
cnlQYWdlID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobV9wYWdlcykgewotICAg
ICAgICAgICAgaWYgKChwYWdlID0gbV9wYWdlcy0+Z2V0KHBhZ2VOdW1iZXIpKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gcGFnZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX3BhZ2Vz
LnNldChuZXcgSGFzaE1hcDxpbnQsIEdseXBoV2lkdGhQYWdlKj4pOwotICAgICAgICBwYWdlID0g
bmV3IEdseXBoV2lkdGhQYWdlOwotICAgICAgICBtX3BhZ2VzLT5zZXQocGFnZU51bWJlciwgcGFn
ZSk7Ci0gICAgfQotCi0gICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtu
b3duIGdseXBoIHdpZHRoIHZhbHVlLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlw
aFdpZHRoUGFnZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGks
IGNHbHlwaFdpZHRoVW5rbm93bik7Ci0KLSAgICByZXR1cm4gcGFnZTsKLX0KLQotfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmgJKHJldmlzaW9uIDU3MTY1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKLSAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBHbHlwaFdpZHRoTWFwX2gK
LSNkZWZpbmUgR2x5cGhXaWR0aE1hcF9oCi0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBHbHlwaDsKLQot
Y29uc3QgZmxvYXQgY0dseXBoV2lkdGhVbmtub3duID0gLTE7Ci0KLWNsYXNzIEdseXBoV2lkdGhN
YXAgOiBwdWJsaWMgTm9uY29weWFibGUgewotcHVibGljOgotICAgIEdseXBoV2lkdGhNYXAoKSA6
IG1fZmlsbGVkUHJpbWFyeVBhZ2UoZmFsc2UpIHsgfQotICAgIH5HbHlwaFdpZHRoTWFwKCkgeyBp
ZiAobV9wYWdlcykgeyBkZWxldGVBbGxWYWx1ZXMoKm1fcGFnZXMpOyB9IH0KLQotICAgIGZsb2F0
IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCi0gICAgewotICAgICAgICByZXR1cm4gbG9jYXRl
UGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7
Ci0gICAgfQotCi0gICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3
aWR0aCkKLSAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6
c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKLSAgICB9Ci0KLXByaXZhdGU6
Ci0gICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVycyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2Uu
Ci0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVdOwotCi0gICAgICAgIGZsb2F0IHdpZHRoRm9y
R2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2dseXBoICUgc2l6ZV07
IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0
aCkKLSAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlwaCAlIHNpemUs
IHdpZHRoKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIHNldFdpZHRoRm9ySW5kZXgodW5zaWdu
ZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX3dpZHRoc1tp
bmRleF0gPSB3aWR0aDsKLSAgICAgICAgfQotICAgIH07Ci0gICAgCi0gICAgR2x5cGhXaWR0aFBh
Z2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQgcGFnZU51bWJlcikKLSAgICB7Ci0gICAgICAgIGlmICgh
cGFnZU51bWJlciAmJiBtX2ZpbGxlZFByaW1hcnlQYWdlKQotICAgICAgICAgICAgcmV0dXJuICZt
X3ByaW1hcnlQYWdlOwotICAgICAgICByZXR1cm4gbG9jYXRlUGFnZVNsb3dDYXNlKHBhZ2VOdW1i
ZXIpOwotICAgIH0KLQotICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQYWdlU2xvd0Nhc2UodW5z
aWduZWQgcGFnZU51bWJlcik7Ci0gICAgCi0gICAgYm9vbCBtX2ZpbGxlZFByaW1hcnlQYWdlOwot
ICAgIEdseXBoV2lkdGhQYWdlIG1fcHJpbWFyeVBhZ2U7IC8vIFdlIG9wdGltaXplIGZvciB0aGUg
cGFnZSB0aGF0IGNvbnRhaW5zIGdseXBoIGluZGljZXMgMC0yNTUuCi0gICAgT3duUHRyPEhhc2hN
YXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+ID4gbV9wYWdlczsKLX07Ci0KLX0KLQotI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAkocmV2
aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDkgKzE1NywxMSBAQCB2b2lkIFNpbXBsZUZvbnRE
YXRhOjpwbGF0Zm9ybUdseXBoSW5pdCgpCiAgICAgLy8gYXJlIG1hcHBlZCB0byB0aGUgWkVSTyBX
SURUSCBTUEFDRSBnbHlwaC4KICAgICBHbHlwaCB6ZXJvV2lkdGhTcGFjZUdseXBoID0gZ2x5cGhQ
YWdlWmVyby0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKDApLmdseXBoOwogICAgIGlmICh6ZXJvV2lk
dGhTcGFjZUdseXBoKSB7Ci0gICAgICAgIGlmICh6ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3Bh
Y2VHbHlwaCkKLSAgICAgICAgICAgIG1fZ2x5cGhUb1dpZHRoTWFwLnNldFdpZHRoRm9yR2x5cGgo
emVyb1dpZHRoU3BhY2VHbHlwaCwgMCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKHplcm9X
aWR0aFNwYWNlR2x5cGggIT0gbV9zcGFjZUdseXBoKSB7CisgICAgICAgICAgICBHbHlwaE1ldHJp
Y3MgbWV0cmljczsKKyAgICAgICAgICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSAwOwor
ICAgICAgICAgICAgbV9nbHlwaFRvTWV0cmljc01hcC5zZXRNZXRyaWNzRm9yR2x5cGgoemVyb1dp
ZHRoU3BhY2VHbHlwaCwgbWV0cmljcyk7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgTE9H
X0VSUk9SKCJGb250IG1hcHMgU1BBQ0UgYW5kIFpFUk8gV0lEVEggU1BBQ0UgdG8gdGhlIHNhbWUg
Z2x5cGguIEdseXBoIHdpZHRoIG5vdCBvdmVycmlkZGVuLiIpOwogICAgIH0KIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkocmV2aXNpb24gNTcxNjUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJGb250RGF0YS5oIgogI2luY2x1ZGUg
IkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgotI2lu
Y2x1ZGUgIkdseXBoV2lkdGhNYXAuaCIKKyNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKICNp
bmNsdWRlICJUeXBlc2V0dGluZ0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgog
CkBAIC01OCw5ICs1OCw5IEBAIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBTVkdGb250RGF0YTsKLWNsYXNz
IFdpZHRoTWFwOwogCiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJp
YWJsZVBpdGNoIH07CitlbnVtIEdseXBoTWV0cmljc01vZGUgeyBHbHlwaEJvdW5kaW5nQm94LCBH
bHlwaFdpZHRoT25seSB9OwogCiBjbGFzcyBTaW1wbGVGb250RGF0YSA6IHB1YmxpYyBGb250RGF0
YSB7CiBwdWJsaWM6CkBAIC04MSw4ICs4MSw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB4SGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWduZWQgdW5pdHNQZXJFbSgp
IGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxvYXQgd2lkdGhGb3JHbHlw
aChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoKSBj
b25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVy
biBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIEdseXBoV2lkdGhPbmx5KS5ob3Jpem9udGFsQWR2YW5j
ZTsgfQorICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBoTWV0cmlj
c01vZGUgPSBHbHlwaEJvdW5kaW5nQm94KSBjb25zdDsKKyAgICBHbHlwaE1ldHJpY3MgcGxhdGZv
cm1NZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0OwogCiAgICAg
ZmxvYXQgc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2VXaWR0aDsgfQogICAgIGZs
b2F0IGFkanVzdGVkU3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRTcGFjZVdp
ZHRoOyB9CkBAIC0xNjcsNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB8fCAoT1MoV0lORE9XUykg
JiYgUExBVEZPUk0oV1gpKQogICAgIHZvaWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lkIHBsYXRm
b3JtQ29tbW9uRGVzdHJveSgpOwotICAgIGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5
cGgpIGNvbnN0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5cGggZ2x5
cGgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBpbnQgbV9hc2NlbnQ7CkBAIC0xODEsNyArMTgyLDcg
QEAgcHJpdmF0ZToKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEgbV9wbGF0Zm9ybURhdGE7CiAKLSAg
ICBtdXRhYmxlIEdseXBoV2lkdGhNYXAgbV9nbHlwaFRvV2lkdGhNYXA7CisgICAgbXV0YWJsZSBH
bHlwaE1ldHJpY3NNYXAgbV9nbHlwaFRvTWV0cmljc01hcDsKIAogICAgIGJvb2wgbV90cmVhdEFz
Rml4ZWRQaXRjaDsKIApAQCAtMjM3LDE2ICsyMzgsMTYgQEAgcHJpdmF0ZToKICAgICAKICAgICAK
ICNpZiAhUExBVEZPUk0oUVQpCi1BTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnREYXRhOjp3
aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlwaE1ldHJp
Y3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5cGhNZXRy
aWNzTW9kZSBtZXRyaWNzTW9kZSkgY29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IG1fZ2x5cGhU
b1dpZHRoTWFwLndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAgIGlmICh3aWR0aCAhPSBjR2x5cGhX
aWR0aFVua25vd24pCi0gICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAKLSAgICB3aWR0aCA9IHBs
YXRmb3JtV2lkdGhGb3JHbHlwaChnbHlwaCk7Ci0gICAgbV9nbHlwaFRvV2lkdGhNYXAuc2V0V2lk
dGhGb3JHbHlwaChnbHlwaCwgd2lkdGgpOwotICAgIAotICAgIHJldHVybiB3aWR0aDsKKyAgICBH
bHlwaE1ldHJpY3MgbWV0cmljcyA9IG1fZ2x5cGhUb01ldHJpY3NNYXAubWV0cmljc0ZvckdseXBo
KGdseXBoKTsKKyAgICBpZiAoKG1ldHJpY3NNb2RlID09IEdseXBoV2lkdGhPbmx5ICYmIG1ldHJp
Y3MuaG9yaXpvbnRhbEFkdmFuY2UgIT0gY0dseXBoU2l6ZVVua25vd24pIHx8IChtZXRyaWNzTW9k
ZSA9PSBHbHlwaEJvdW5kaW5nQm94ICYmIG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgoKSAhPSBj
R2x5cGhTaXplVW5rbm93biAmJiBtZXRyaWNzLmJvdW5kaW5nQm94LmhlaWdodCgpICE9IGNHbHlw
aFNpemVVbmtub3duKSkKKyAgICAgICAgcmV0dXJuIG1ldHJpY3M7CisKKyAgICBtZXRyaWNzID0g
cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3NNb2RlKTsKKyAgICBtX2dseXBo
VG9NZXRyaWNzTWFwLnNldE1ldHJpY3NGb3JHbHlwaChnbHlwaCwgbWV0cmljcyk7CisKKyAgICBy
ZXR1cm4gbWV0cmljczsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1dpZHRoSXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvV2lkdGhJdGVyYXRvci5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDcg
KzEyNSw3IEBAIHZvaWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAg
ICAgICAgIGZsb2F0IHRhYldpZHRoID0gbV9mb250LT50YWJXaWR0aCgpOwogICAgICAgICAgICAg
d2lkdGggPSB0YWJXaWR0aCAtIGZtb2RmKG1fcnVuLnhQb3MoKSArIHJ1bldpZHRoU29GYXIsIHRh
YldpZHRoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdpZHRoID0gZm9udERhdGEt
PndpZHRoRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICAgICAgd2lkdGggPSBmb250RGF0YS0+bWV0
cmljc0ZvckdseXBoKGdseXBoLCBHbHlwaFdpZHRoT25seSkuaG9yaXpvbnRhbEFkdmFuY2U7CiAg
ICAgICAgICAgICAvLyBXZSBzcGVjaWFsIGNhc2Ugc3BhY2VzIGluIHR3byB3YXlzIHdoZW4gYXBw
bHlpbmcgd29yZCByb3VuZGluZy4KICAgICAgICAgICAgIC8vIEZpcnN0LCB3ZSByb3VuZCBzcGFj
ZXMgdG8gYW4gYWRqdXN0ZWQgd2lkdGggaW4gYWxsIGZvbnRzLgogICAgICAgICAgICAgLy8gU2Vj
b25kLCBpbiBmaXhlZC1waXRjaCBmb250cyB3ZSBlbnN1cmUgdGhhdCBhbGwgY2hhcmFjdGVycyB0
aGF0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250
TGludXguY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udExpbnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIxLDcgKzUyMSw3IEBA
IHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKLWZs
b2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLykgY29uc3QK
K2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4s
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5
cGhPdmVyZmxvdyogLyogZ2x5cGhPdmVyZmxvdyAqLykgY29uc3QKIHsKICAgICBUZXh0UnVuV2Fs
a2VyIHdhbGtlcihydW4sIDAsIHRoaXMpOwogICAgIHJldHVybiB3YWxrZXIud2lkdGhPZkZ1bGxS
dW4oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9u
dERhdGFMaW51eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0
ZXJtaW5lUGl0Y2goKQogICAgIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPSBwbGF0Zm9ybURhdGEoKS5p
c0ZpeGVkUGl0Y2goKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhG
b3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK2Zsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUgLyogbWV0cmljc01v
ZGUgKi8pIGNvbnN0CiB7CiAgICAgU2tBU1NFUlQoc2l6ZW9mKGdseXBoKSA9PSAyKTsgICAvLyBj
b21waWxlLXRpbWUgYXNzZXJ0CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNTcxNjUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxMCBAQCBDb21wbGV4VGV4dENvbnRyb2xs
ZXI6OkNvbXBsZXhUZXh0Q29udHJvCiAgICAgLCBtX2NoYXJhY3RlckluQ3VycmVudEdseXBoKDAp
CiAgICAgLCBtX2ZpbmFsUm91bmRpbmdXaWR0aCgwKQogICAgICwgbV9mYWxsYmFja0ZvbnRzKGZh
bGxiYWNrRm9udHMpCisgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hYKG51bWVyaWNfbGltaXRz
PGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdCb3hYKG51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bWluKCkpCisgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hZKG51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdCb3hZKG51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6bWluKCkpCiAgICAgLCBtX2xhc3RSb3VuZGluZ0dseXBoKDApCiB7
CiAgICAgbV9wYWRkaW5nID0gbV9ydW4ucGFkZGluZygpOwpAQCAtNDM4LDYgKzQ0Miw3IEBAIHZv
aWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHMKICAgICAgICAgQ0dGbG9hdCBy
b3VuZGVkU3BhY2VXaWR0aCA9IHJvdW5kQ0dGbG9hdChmb250RGF0YS0+c3BhY2VXaWR0aCgpKTsK
ICAgICAgICAgYm9vbCByb3VuZHNBZHZhbmNlcyA9ICFtX2ZvbnQuaXNQcmludGVyRm9udCgpICYm
IGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5yb3VuZHNHbHlwaEFkdmFuY2VzKCk7CiAgICAgICAg
IGJvb2wgaGFzRXh0cmFTcGFjaW5nID0gKG1fZm9udC5sZXR0ZXJTcGFjaW5nKCkgfHwgbV9mb250
LndvcmRTcGFjaW5nKCkgfHwgbV9wYWRkaW5nKSAmJiAhbV9ydW4uc3BhY2luZ0Rpc2FibGVkKCk7
CisgICAgICAgIENHUG9pbnQgZ2x5cGhPcmlnaW4gPSBDR1BvaW50WmVybzsKICAgICAgICAgQ0ZJ
bmRleCBsYXN0Q2hhcmFjdGVySW5kZXggPSBtX3J1bi5sdHIoKSA/IG51bWVyaWNfbGltaXRzPENG
SW5kZXg+OjptaW4oKSA6IG51bWVyaWNfbGltaXRzPENGSW5kZXg+OjptYXgoKTsKICAgICAgICAg
Ym9vbCBpc01vbm90b25pYyA9IHRydWU7CiAKQEAgLTU0MSw2ICs1NDYsMTYgQEAgdm9pZCBDb21w
bGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBocwogICAgICAgICAgICAgYWR2YW5jZS5oZWln
aHQgKj0gLTE7CiAgICAgICAgICAgICBtX2FkanVzdGVkQWR2YW5jZXMuYXBwZW5kKGFkdmFuY2Up
OwogICAgICAgICAgICAgbV9hZGp1c3RlZEdseXBocy5hcHBlbmQoZ2x5cGgpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRyaWNzID0gZm9udERhdGEtPm1l
dHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdC
b3gubW92ZShnbHlwaE9yaWdpbi54LCBnbHlwaE9yaWdpbi55KTsKKyAgICAgICAgICAgIG1fbWlu
R2x5cGhCb3VuZGluZ0JveFggPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WCwgZ2x5cGhNZXRy
aWNzLmJvdW5kaW5nQm94LngoKSk7CisgICAgICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hY
ID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5y
aWdodCgpKTsKKyAgICAgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5H
bHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAg
ICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFks
IGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAgICAgICBnbHlwaE9y
aWdpbi54ICs9IGFkdmFuY2Uud2lkdGg7CisgICAgICAgICAgICBnbHlwaE9yaWdpbi55ICs9IGFk
dmFuY2UuaGVpZ2h0OworICAgICAgICAgICAgCiAgICAgICAgICAgICBsYXN0Q2hhcmFjdGVySW5k
ZXggPSBjaGFyYWN0ZXJJbmRleDsKICAgICAgICAgfQogICAgICAgICBpZiAoIWlzTW9ub3Rvbmlj
KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYy
LDYgKzYyLDExIEBAIHB1YmxpYzoKICAgICAvLyBFeHRyYSB3aWR0aCB0byB0aGUgbGVmdCBvZiB0
aGUgbGVmdG1vc3QgZ2x5cGguCiAgICAgZmxvYXQgZmluYWxSb3VuZGluZ1dpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV9maW5hbFJvdW5kaW5nV2lkdGg7IH0KIAorICAgIGZsb2F0IG1pbkdseXBoQm91
bmRpbmdCb3hYKCkgY29uc3QgeyByZXR1cm4gbV9taW5HbHlwaEJvdW5kaW5nQm94WDsgfQorICAg
IGZsb2F0IG1heEdseXBoQm91bmRpbmdCb3hYKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlwaEJv
dW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1pbkdseXBoQm91bmRpbmdCb3hZKCkgY29uc3QgeyBy
ZXR1cm4gbV9taW5HbHlwaEJvdW5kaW5nQm94WTsgfQorICAgIGZsb2F0IG1heEdseXBoQm91bmRp
bmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlwaEJvdW5kaW5nQm94WTsgfQorICAgIAog
cHJpdmF0ZToKICAgICBjbGFzcyBDb21wbGV4VGV4dFJ1biA6IHB1YmxpYyBSZWZDb3VudGVkPENv
bXBsZXhUZXh0UnVuPiB7CiAgICAgcHVibGljOgpAQCAtMTczLDYgKzE3OCwxMSBAQCBwcml2YXRl
OgogCiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBtX2ZhbGxiYWNrRm9udHM7
CiAKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hYOworICAgIGZsb2F0IG1fbWF4R2x5
cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WTsKKyAgICBm
bG9hdCBtX21heEdseXBoQm91bmRpbmdCb3hZOworICAgIAogICAgIHVuc2lnbmVkIG1fbGFzdFJv
dW5kaW5nR2x5cGg7CiB9OwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q29tcGxleFRleHRNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBs
ZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBpbnQgaCwK
QEAgLTgzLDkgKzg1LDE1IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29u
dGUKICAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQ
b2ludCk7CiB9CiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBU
ZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250
cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0
UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICAgICBDb21wbGV4VGV4dENv
bnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIHRydWUsIGZhbGxiYWNrRm9udHMpOworICAg
IGlmIChnbHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxp
bnQ+KGdseXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGlu
Z0JveFkoKSkgLSBhc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IG1h
eDxpbnQ+KGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJv
dW5kaW5nQm94WSgpKSAtIGRlc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQg
PSBtYXg8aW50PigwLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WCgpKSk7
CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnJpZ2h0ID0gbWF4PGludD4oMCwgY2VpbGYoY29udHJv
bGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WCgpIC0gY29udHJvbGxlci50b3RhbFdpZHRoKCkpKTsK
KyAgICB9CiAgICAgcmV0dXJuIGNvbnRyb2xsZXIudG90YWxXaWR0aCgpOwogfQogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5t
bQkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1w
bGVGb250RGF0YU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDA3LDE3ICs0MDcsMjcgQEAgdm9p
ZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAgICAgICAgICBbbmFtZSBjYXNl
SW5zZW5zaXRpdmVDb21wYXJlOkAiTW9ub3R5cGVDb3JzaXZhIl0gIT0gTlNPcmRlcmVkU2FtZTsK
IH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBn
bHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNz
Rm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUgbWV0cmljc01vZGUpIGNvbnN0
CiB7Ci0gICAgTlNGb250KiBmb250ID0gbV9wbGF0Zm9ybURhdGEuZm9udCgpOwotICAgIGZsb2F0
IHBvaW50U2l6ZSA9IG1fcGxhdGZvcm1EYXRhLm1fc2l6ZTsKKyAgICBOU0ZvbnQqIGZvbnQgPSBw
bGF0Zm9ybURhdGEoKS5mb250KCk7CisgICAgZmxvYXQgcG9pbnRTaXplID0gcGxhdGZvcm1EYXRh
KCkubV9zaXplOwogICAgIENHQWZmaW5lVHJhbnNmb3JtIG0gPSBDR0FmZmluZVRyYW5zZm9ybU1h
a2VTY2FsZShwb2ludFNpemUsIHBvaW50U2l6ZSk7CiAgICAgQ0dTaXplIGFkdmFuY2U7Ci0gICAg
aWYgKCF3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZhbmNlcyhtX3BsYXRmb3JtRGF0YS5jZ0ZvbnQo
KSwgZm9udCwgJm0sICZnbHlwaCwgJmFkdmFuY2UpKSB7CisgICAgaWYgKCF3a0dldEdseXBoVHJh
bnNmb3JtZWRBZHZhbmNlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgZm9udCwgJm0sICZnbHlw
aCwgJmFkdmFuY2UpKSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNhY2hlIGdseXBo
IHdpZHRocyBmb3IgJUAgJWYiLCBbZm9udCBkaXNwbGF5TmFtZV0sIHBvaW50U2l6ZSk7CiAgICAg
ICAgIGFkdmFuY2Uud2lkdGggPSAwOwogICAgIH0KLSAgICByZXR1cm4gYWR2YW5jZS53aWR0aCAr
IG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljczsKKyAgICBt
ZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gYWR2YW5jZS53aWR0aCArIG1fc3ludGhldGljQm9s
ZE9mZnNldDsKKyAgICBpZiAobWV0cmljc01vZGUgPT0gR2x5cGhCb3VuZGluZ0JveCkgeworICAg
ICAgICBDR1JlY3QgYm91bmRpbmdCb3g7CisgICAgICAgIENHRm9udEdldEdseXBoQkJveGVzKHBs
YXRmb3JtRGF0YSgpLmNnRm9udCgpLCAmZ2x5cGgsIDEsICZib3VuZGluZ0JveCk7CisgICAgICAg
IENHRmxvYXQgc2NhbGUgPSBwb2ludFNpemUgLyB1bml0c1BlckVtKCk7CisgICAgICAgIG1ldHJp
Y3MuYm91bmRpbmdCb3ggPSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShib3VuZGluZ0JveCwg
Q0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOworICAgICAgICBpZiAo
bV9zeW50aGV0aWNCb2xkT2Zmc2V0KQorICAgICAgICAgICAgbWV0cmljcy5ib3VuZGluZ0JveC5z
ZXRXaWR0aChtZXRyaWNzLmJvdW5kaW5nQm94LndpZHRoKCkgKyBtX3N5bnRoZXRpY0JvbGRPZmZz
ZXQpOworICAgIH0KKyAgICByZXR1cm4gbWV0cmljczsKIH0KIAogI2lmIFVTRShBVFNVSSkKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCShyZXZpc2lvbiA1
NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiVW5pc2NyaWJlQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBGb250OjpjYW5SZXR1cm5GYWxsYmFja0Zv
bnRzRm9yQ29tcGxleFRleHQoKQpAQCAtODksMTAgKzkxLDE2IEBAIHZvaWQgRm9udDo6ZHJhd0Nv
bXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5
cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CiB9CiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QK
IHsKICAgICBVbmlzY3JpYmVDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCBmYWxsYmFj
a0ZvbnRzKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UocnVuLmxlbmd0aCgpKTsKKyAgICBpZiAo
Z2x5cGhPdmVyZmxvdykgeworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBtYXg8aW50Pihn
bHlwaE92ZXJmbG93LT50b3AsIGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hZ
KCkpIC0gYXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50
PihnbHlwaE92ZXJmbG93LT5ib3R0b20sIGNlaWxmKGNvbnRyb2xsZXIubWF4R2x5cGhCb3VuZGlu
Z0JveFkoKSkgLSBkZXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5sZWZ0ID0gbWF4
PGludD4oMCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFgoKSkpOworICAg
ICAgICBnbHlwaE92ZXJmbG93LT5yaWdodCA9IG1heDxpbnQ+KDAsIGNlaWxmKGNvbnRyb2xsZXIu
bWF4R2x5cGhCb3VuZGluZ0JveFgoKSAtIGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpKSk7Cisg
ICAgfQogICAgIHJldHVybiBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsKIH0KIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDR1dpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFD
R1dpbi5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vU2ltcGxlRm9udERhdGFDR1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiwxMCArMTI2
LDEwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQ2hhcldpZHRoSW4KICAgICB9CiB9
CiAKLWZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5
cGgpIGNvbnN0CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0Zv
ckdseXBoKEdseXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlIG1ldHJpY3NNb2RlKSBjb25zdAog
ewogICAgIGlmIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkKLSAgICAgICByZXR1cm4gd2lkdGhG
b3JHRElHbHlwaChnbHlwaCk7CisgICAgICAgcmV0dXJuIG1ldHJpY3NGb3JHRElHbHlwaChnbHlw
aCk7CiAKICAgICBDR0ZvbnRSZWYgZm9udCA9IG1fcGxhdGZvcm1EYXRhLmNnRm9udCgpOwogICAg
IGZsb2F0IHBvaW50U2l6ZSA9IG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKQEAgLTEzOSw4ICsxMzks
MTggQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbAogICAgIC8vIEZJ
WE1FOiBOZWVkIHRvIGFkZCByZWFsIHN1cHBvcnQgZm9yIHByaW50ZXIgZm9udHMuCiAgICAgYm9v
bCBpc1ByaW50ZXJGb250ID0gZmFsc2U7CiAgICAgd2tHZXRHbHlwaEFkdmFuY2VzKGZvbnQsIG0s
IG1faXNTeXN0ZW1Gb250LCBpc1ByaW50ZXJGb250LCBnbHlwaCwgYWR2YW5jZSk7Ci0KLSAgICBy
ZXR1cm4gYWR2YW5jZS53aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBHbHlwaE1l
dHJpY3MgbWV0cmljczsKKyAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gYWR2YW5jZS53
aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICAKKyAgICBpZiAobWV0cmljc01vZGUg
PT0gR2x5cGhCb3VuZGluZ0JveCkgeworICAgICAgICBDR1JlY3QgYm91bmRpbmdCb3g7CisgICAg
ICAgIENHRm9udEdldEdseXBoQkJveGVzKGZvbnQsICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsK
KyAgICAgICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6ZSAvIHVuaXRzUGVyRW0oKTsKKyAgICAg
ICAgbWV0cmljcy5ib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJvdW5k
aW5nQm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAg
ICAgIGlmIChtX3N5bnRoZXRpY0JvbGRPZmZzZXQpCisgICAgICAgICAgICBtZXRyaWNzLmJvdW5k
aW5nQm94LnNldFdpZHRoKG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgoKSArIG1fc3ludGhldGlj
Qm9sZE9mZnNldCk7CisgICAgfQorICAgIHJldHVybiBtZXRyaWNzOwogfQogCiB9CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4u
Y3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Np
bXBsZUZvbnREYXRhV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDE2ICsxNzksMjUgQEAg
dm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAgIFJlbGVhc2VEQygwLCBk
Yyk7CiB9CiAKLWZsb2F0IFNpbXBsZUZvbnREYXRhOjp3aWR0aEZvckdESUdseXBoKEdseXBoIGds
eXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjptZXRyaWNzRm9yR0RJR2x5
cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7CiAgICAgSERDIGhkYyA9IEdldERDKDApOwogICAgIFNl
dEdyYXBoaWNzTW9kZShoZGMsIEdNX0FEVkFOQ0VEKTsKICAgICBIR0RJT0JKIG9sZEZvbnQgPSBT
ZWxlY3RPYmplY3QoaGRjLCBtX3BsYXRmb3JtRGF0YS5oZm9udCgpKTsKLSAgICBpbnQgd2lkdGg7
Ci0gICAgR2V0Q2hhcldpZHRoSShoZGMsIGdseXBoLCAxLCAwLCAmd2lkdGgpOworCisgICAgR0xZ
UEhNRVRSSUNTIGdkaU1ldHJpY3M7CisgICAgc3RhdGljIGNvbnN0IE1BVDIgaWRlbnRpdHkgPSB7
IDAsIDEsICAwLCAwLCAgMCwgMCwgIDAsIDEgfTsKKyAgICBHZXRHbHlwaE91dGxpbmUoaGRjLCBn
bHlwaCwgR0dPX01FVFJJQ1MgfCBHR09fR0xZUEhfSU5ERVgsICZnZGlNZXRyaWNzLCAwLCAwLCAm
aWRlbnRpdHkpOworCiAgICAgU2VsZWN0T2JqZWN0KGhkYywgb2xkRm9udCk7CiAgICAgUmVsZWFz
ZURDKDAsIGhkYyk7Ci0gICAgcmV0dXJuIHdpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0Owor
CisgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljczsKKyAgICBnbHlwaE1ldHJpY3MuaG9yaXpv
bnRhbEFkdmFuY2UgPSBnZGlNZXRyaWNzLmdtQ2VsbEluY1ggKyBtX3N5bnRoZXRpY0JvbGRPZmZz
ZXQ7CisgICAgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94ID0gRmxvYXRSZWN0KGdkaU1ldHJpY3Mu
Z21wdEdseXBoT3JpZ2luLngsIC1nZGlNZXRyaWNzLmdtcHRHbHlwaE9yaWdpbi55LAorICAgICAg
ICBnZGlNZXRyaWNzLmdtQmxhY2tCb3hYICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0LCBnZGlNZXRy
aWNzLmdtQmxhY2tCb3hZKTsKKworICAgIHJldHVybiBnbHlwaE1ldHJpY3M7CiB9CiAKIFNDUklQ
VF9GT05UUFJPUEVSVElFUyogU2ltcGxlRm9udERhdGE6OnNjcmlwdEZvbnRQcm9wZXJ0aWVzKCkg
Y29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Vu
aXNjcmliZUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIEZJWE1FOiBSZWFyY2hpdGVjdCB0aGlzIHRvIGJlIG1vcmUgbGlrZSBXaWR0
aEl0ZXJhdG9yIGluIEZvbnQuY3BwLiAgSGF2ZSBhbiBhZHZhbmNlKCkgbWV0aG9kCkBAIC0zOSwx
NiArNDEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gdGFrZSB0aGUgR2x5cGhCdWZmZXIg
YXMgYW4gYXJnIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBwb3B1bGF0ZSB0aGUgZ2x5cGggYnVm
ZmVyIHdoZW4KIC8vIG1lYXN1cmluZy4KIFVuaXNjcmliZUNvbnRyb2xsZXI6OlVuaXNjcmliZUNv
bnRyb2xsZXIoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpCi06IG1fZm9udCgqZm9udCkKLSwg
bV9ydW4ocnVuKQotLCBtX2ZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cykKLSwgbV9lbmQocnVu
Lmxlbmd0aCgpKQotLCBtX2N1cnJlbnRDaGFyYWN0ZXIoMCkKLSwgbV9ydW5XaWR0aFNvRmFyKDAp
Ci0sIG1fY29tcHV0aW5nT2Zmc2V0UG9zaXRpb24oZmFsc2UpCi0sIG1faW5jbHVkZVBhcnRpYWxH
bHlwaHMoZmFsc2UpCi0sIG1fb2Zmc2V0WCgwKQotLCBtX29mZnNldFBvc2l0aW9uKDApCisgICAg
OiBtX2ZvbnQoKmZvbnQpCisgICAgLCBtX3J1bihydW4pCisgICAgLCBtX2ZhbGxiYWNrRm9udHMo
ZmFsbGJhY2tGb250cykKKyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19s
aW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFkobnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkobnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKKyAg
ICAsIG1fY3VycmVudENoYXJhY3RlcigwKQorICAgICwgbV9ydW5XaWR0aFNvRmFyKDApCisgICAg
LCBtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKGZhbHNlKQorICAgICwgbV9pbmNsdWRlUGFydGlh
bEdseXBocyhmYWxzZSkKKyAgICAsIG1fb2Zmc2V0WCgwKQorICAgICwgbV9vZmZzZXRQb3NpdGlv
bigwKQogewogICAgIG1fcGFkZGluZyA9IG1fcnVuLnBhZGRpbmcoKTsKICAgICBpZiAoIW1fcGFk
ZGluZykKQEAgLTM3NCw2ICszODAsMTQgQEAgYm9vbCBVbmlzY3JpYmVDb250cm9sbGVyOjpzaGFw
ZUFuZFBsYWNlSQogICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChnbHlwaCwgZm9udERhdGEs
IGFkdmFuY2UsICZzaXplKTsKICAgICAgICAgfQogCisgICAgICAgIEdseXBoTWV0cmljcyBnbHlw
aE1ldHJpY3MgPSBmb250RGF0YS0+bWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAgZ2x5
cGhNZXRyaWNzLmJvdW5kaW5nQm94Lm1vdmUobV9nbHlwaE9yaWdpbi54KCksIG1fZ2x5cGhPcmln
aW4ueSgpKTsKKyAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WCA9IG1pbihtX21pbkdseXBo
Qm91bmRpbmdCb3hYLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueCgpKTsKKyAgICAgICAgbV9t
YXhHbHlwaEJvdW5kaW5nQm94WCA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hYLCBnbHlwaE1l
dHJpY3MuYm91bmRpbmdCb3gucmlnaHQoKSk7CisgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0Jv
eFkgPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94
LnkoKSk7CisgICAgICAgIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkgPSBtYXgobV9tYXhHbHlwaEJv
dW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LmJvdHRvbSgpKTsKKyAgICAgICAg
bV9nbHlwaE9yaWdpbi5tb3ZlKGFkdmFuY2UgKyBvZmZzZXRYLCAtb2Zmc2V0WSk7CisKICAgICAg
ICAgLy8gTXV0YXRlIHRoZSBnbHlwaCBhcnJheSB0byBjb250YWluIG91ciBhbHRlcmVkIGFkdmFu
Y2VzLgogICAgICAgICBpZiAobV9jb21wdXRpbmdPZmZzZXRQb3NpdGlvbikKICAgICAgICAgICAg
IGFkdmFuY2VzW2tdID0gYWR2YW5jZTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1VuaXNjcmliZUNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmgJKHJldmlzaW9uIDU3MTY1KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSw2ICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUg
d2lkdGggb2YgZXZlcnl0aGluZyB3ZSd2ZSBjb25zdW1lZCBzbyBmYXIuCiAgICAgZmxvYXQgcnVu
V2lkdGhTb0ZhcigpIGNvbnN0IHsgcmV0dXJuIG1fcnVuV2lkdGhTb0ZhcjsgfQogCisgICAgZmxv
YXQgbWluR2x5cGhCb3VuZGluZ0JveFgoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRp
bmdCb3hYOyB9CisgICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0JveFgoKSBjb25zdCB7IHJldHVy
biBtX21heEdseXBoQm91bmRpbmdCb3hYOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0Jv
eFkoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQg
bWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRpbmdC
b3hZOyB9CisKIHByaXZhdGU6ICAgIAogICAgIHZvaWQgcmVzZXRDb250cm9sQW5kU3RhdGUoKTsK
IApAQCAtNjEsNiArNjYsMTEgQEAgcHJpdmF0ZTogICAgCiAgICAgY29uc3QgRm9udCYgbV9mb250
OwogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOworICAgIEZsb2F0UG9pbnQgbV9nbHlwaE9yaWdpbjsK
KyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hYOworICAgIGZsb2F0IG1fbWF4R2x5cGhC
b3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WTsKKyAgICBmbG9h
dCBtX21heEdseXBoQm91bmRpbmdCb3hZOwogCiAgICAgU0NSSVBUX0NPTlRST0wgbV9jb250cm9s
OwogICAgIFNDUklQVF9TVEFURSBtX3N0YXRlOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4OCw4ICsyODgsMTAgQEAgaW50IElubGluZUZs
b3dCb3g6OnBsYWNlQm94ZXNIb3Jpem9udGFsbAogICAgICAgICAgICAgaW50IGxldHRlclNwYWNp
bmcgPSBtaW4oMCwgKGludClydC0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkubGV0dGVyU3Bh
Y2luZygpKTsKICAgICAgICAgICAgIHJpZ2h0TGF5b3V0T3ZlcmZsb3cgPSBtYXgoeFBvcyArIHRl
eHQtPndpZHRoKCkgLSBsZXR0ZXJTcGFjaW5nLCByaWdodExheW91dE92ZXJmbG93KTsKIAotICAg
ICAgICAgICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93OwotICAgICAg
ICAgICAgaW50IHJpZ2h0R2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93IC0gbGV0dGVyU3Bh
Y2luZzsKKyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNf
Y2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAg
ICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gKGdseXBoT3ZlcmZs
b3cgPyBnbHlwaE92ZXJmbG93LT5sZWZ0IDogMCk7CisgICAgICAgICAgICBpbnQgcmlnaHRHbHlw
aE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFjaW5nICsgKGdseXBoT3ZlcmZs
b3cgPyBnbHlwaE92ZXJmbG93LT5yaWdodCA6IDApOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpbnQgY2hpbGRPdmVyZmxvd0xlZnQgPSBsZWZ0R2x5cGhPdmVyZmxvdzsKICAgICAgICAgICAg
IGludCBjaGlsZE92ZXJmbG93UmlnaHQgPSByaWdodEdseXBoT3ZlcmZsb3c7CkBAIC00MTIsMzUg
KzQxNCwzNSBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpCiAKICAg
ICAgICAgaW50IGxpbmVIZWlnaHQ7CiAgICAgICAgIGludCBiYXNlbGluZTsKLSAgICAgICAgVmVj
dG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gdXNlZEZvbnRzOworICAgICAgICBWZWN0b3I8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogdXNlZEZvbnRzID0gMDsKICAgICAgICAgaWYgKGN1cnItPmlz
SW5saW5lVGV4dEJveCgpKQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+
KGN1cnIpLT50YWtlRmFsbGJhY2tGb250cyh1c2VkRm9udHMpOworICAgICAgICAgICAgdXNlZEZv
bnRzID0gc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KGN1cnIpLT5mYWxsYmFja0ZvbnRzKCk7
CiAKLSAgICAgICAgaWYgKCF1c2VkRm9udHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICB1c2Vk
Rm9udHMuYXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgp
LnByaW1hcnlGb250KCkpOworICAgICAgICBpZiAodXNlZEZvbnRzKSB7CisgICAgICAgICAgICB1
c2VkRm9udHMtPmFwcGVuZChjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZv
bnQoKS5wcmltYXJ5Rm9udCgpKTsKICAgICAgICAgICAgIExlbmd0aCBwYXJlbnRMaW5lSGVpZ2h0
ID0gY3Vyci0+cmVuZGVyZXIoKS0+cGFyZW50KCktPnN0eWxlKCktPmxpbmVIZWlnaHQoKTsKICAg
ICAgICAgICAgIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzTmVnYXRpdmUoKSkgewogICAgICAgICAg
ICAgICAgIGludCBiYXNlbGluZVRvQm90dG9tID0gMDsKICAgICAgICAgICAgICAgICBiYXNlbGlu
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKHVz
ZWRGb250c1tpXS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2Vk
Rm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9
IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgYmFzZWxpbmVUb0JvdHRvbSA9IG1heChiYXNlbGluZVRvQm90dG9t
LCB1c2VkRm9udHNbaV0tPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0g
dXNlZEZvbnRzW2ldLT5kZXNjZW50KCkgLSBoYWxmTGVhZGluZyk7CisgICAgICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMtPnNpemUoKTsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9ICh1c2VkRm9udHMtPmF0KGkpLT5saW5lU3Bh
Y2luZygpIC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkgLSB1c2VkRm9udHMtPmF0KGkpLT5k
ZXNjZW50KCkpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxp
bmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkpOworICAgICAgICAg
ICAgICAgICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20sIHVzZWRG
b250cy0+YXQoaSktPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAt
IHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IGJhc2VsaW5lICsgYmFzZWxpbmVU
b0JvdHRvbTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50TGluZUhlaWdodC5pc1BlcmNl
bnQoKSkgewogICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBwYXJlbnRMaW5lSGVpZ2h0LmNh
bGNNaW5WYWx1ZShjdXJyLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5mb250U2l6ZSgpKTsKICAgICAg
ICAgICAgICAgICBiYXNlbGluZSA9IDA7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB1c2VkRm9udHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50
IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0gdXNl
ZEZvbnRzW2ldLT5kZXNjZW50KCkpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUg
PSBtYXgoYmFzZWxpbmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSk7Cisg
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMtPnNpemUoKTsg
KytpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9IChsaW5lSGVpZ2h0
IC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkgLSB1c2VkRm9udHMtPmF0KGkpLT5kZXNjZW50
KCkpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxpbmUsIGhh
bGZMZWFkaW5nICsgdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IHBh
cmVudExpbmVIZWlnaHQudmFsdWUoKTsKICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IDA7Ci0g
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMuc2l6ZSgpOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQg
LSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0gdXNlZEZvbnRzW2ldLT5kZXNjZW50KCkpIC8gMjsK
LSAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxpbmUsIGhhbGZMZWFkaW5n
ICsgdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB1c2VkRm9udHMtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAg
IGludCBoYWxmTGVhZGluZyA9IChsaW5lSGVpZ2h0IC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50
KCkgLSB1c2VkRm9udHMtPmF0KGkpLT5kZXNjZW50KCkpIC8gMjsKKyAgICAgICAgICAgICAgICAg
ICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxpbmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzLT5hdChp
KS0+YXNjZW50KCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fSBlbHNlIHsKQEAgLTU2MiwxMCArNTY0LDEyIEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0
ZVZlcnRpY2FsT3ZlcmYKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAg
aW50IHN0cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihydC0+c3R5bGUoKS0+
dGV4dFN0cm9rZVdpZHRoKCkgLyAyLjBmKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlu
dCB0b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgaW50IGJv
dHRvbUdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdzsKLSAgICAgICAgICAgIAorCisgICAg
ICAgICAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8SW5saW5l
VGV4dEJveCo+KGN1cnIpLT5nbHlwaE92ZXJmbG93KCk7CisKKyAgICAgICAgICAgIGludCB0b3BH
bHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gKGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92
ZXJmbG93LT50b3AgOiAwKTsKKyAgICAgICAgICAgIGludCBib3R0b21HbHlwaE92ZXJmbG93ID0g
c3Ryb2tlT3ZlcmZsb3cgKyAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6
IDApOworCiAgICAgICAgICAgICBpbnQgY2hpbGRPdmVyZmxvd1RvcCA9IHRvcEdseXBoT3ZlcmZs
b3c7CiAgICAgICAgICAgICBpbnQgY2hpbGRPdmVyZmxvd0JvdHRvbSA9IGJvdHRvbUdseXBoT3Zl
cmZsb3c7CiAgICAgICAgICAgICBmb3IgKFNoYWRvd0RhdGEqIHNoYWRvdyA9IHJ0LT5zdHlsZSgp
LT50ZXh0U2hhZG93KCk7IHNoYWRvdzsgc2hhZG93ID0gc2hhZG93LT5uZXh0KSB7CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyOSwzMCAr
MTAyOSw0OCBAQCBib29sIElubGluZVRleHRCb3g6OmNvbnRhaW5zQ2FyZXRPZmZzZXQoCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxJbmxpbmVUZXh0Qm94KiwgVmVjdG9y
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gPiBGYWxsYmFja0ZvbnRzTWFwOwotc3RhdGljIEZhbGxi
YWNrRm9udHNNYXAqIGdGYWxsYmFja0ZvbnRzTWFwOwotCiB2b2lkIElubGluZVRleHRCb3g6OnNl
dEZhbGxiYWNrRm9udHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxs
YmFja0ZvbnRzKQogewotICAgIGlmICghZ0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIGdGYWxs
YmFja0ZvbnRzTWFwID0gbmV3IEZhbGxiYWNrRm9udHNNYXA7CisgICAgaWYgKCFzX2dseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworCisg
ICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19nbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMsIG1ha2VfcGFpcihWZWN0b3I8
Y29uc3QgU2ltcGxlRm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93KCkpKS5maXJzdDsKKyAgICBB
U1NFUlQoaXQtPnNlY29uZC5maXJzdC5pc0VtcHR5KCkpOworICAgIGNvcHlUb1ZlY3RvcihmYWxs
YmFja0ZvbnRzLCBpdC0+c2Vjb25kLmZpcnN0KTsKK30KKworVmVjdG9yPGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIElubGluZVRleHRCb3g6OmZhbGxiYWNrRm9udHMoKSBjb25zdAoreworICAgIGlm
ICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IGdGYWxsYmFja0ZvbnRzTWFw
LT5zZXQodGhpcywgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4oKSkuZmlyc3Q7Ci0gICAg
QVNTRVJUKGl0LT5zZWNvbmQuaXNFbXB0eSgpKTsKLSAgICBjb3B5VG9WZWN0b3IoZmFsbGJhY2tG
b250cywgaXQtPnNlY29uZCk7CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6
Oml0ZXJhdG9yIGl0ID0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZmluZCh0
aGlzKTsKKyAgICBpZiAoaXQgPT0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+
ZW5kKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuICZpdC0+c2Vjb25kLmZpcnN0
OwogfQogCi12b2lkIElubGluZVRleHRCb3g6OnRha2VGYWxsYmFja0ZvbnRzKFZlY3Rvcjxjb25z
dCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQorSW5saW5lVGV4dEJveDo6R2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAqIElubGluZVRleHRCb3g6OnNfZ2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAgPSAwOworCit2b2lkIElubGluZVRleHRCb3g6OnNldEdseXBo
T3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKLSAgICBpZiAo
IWdGYWxsYmFja0ZvbnRzTWFwKQotICAgICAgICByZXR1cm47CisgICAgaWYgKCFzX2dseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOwogCi0g
ICAgRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBnRmFsbGJhY2tGb250c01hcC0+Zmlu
ZCh0aGlzKTsKLSAgICBpZiAoaXQgPT0gZ0ZhbGxiYWNrRm9udHNNYXAtPmVuZCgpKQotICAgICAg
ICByZXR1cm47CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9y
IGl0ID0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMsIG1ha2Vf
cGFpcihWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93KCkpKS5m
aXJzdDsKKyAgICBpdC0+c2Vjb25kLnNlY29uZCA9IGdseXBoT3ZlcmZsb3c7Cit9CisKK0dseXBo
T3ZlcmZsb3cqIElubGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3coKSBjb25zdAoreworICAgIGlm
ICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19n
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZmluZCh0aGlzKTsKKyAgICBpZiAoaXQg
PT0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCisgICAgICAgIHJl
dHVybiAwOwogCi0gICAgZmFsbGJhY2tGb250cy5zd2FwKGl0LT5zZWNvbmQpOwotICAgIGdGYWxs
YmFja0ZvbnRzTWFwLT5yZW1vdmUoaXQpOworICAgIHJldHVybiAmaXQtPnNlY29uZC5zZWNvbmQ7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmgJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBv
ZmZzZXRSdW4oaW50IGQpIHsgbV9zdGFydCArPSBkOyB9CiAKICAgICB2b2lkIHNldEZhbGxiYWNr
Rm9udHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7Ci0gICAgdm9pZCB0
YWtlRmFsbGJhY2tGb250cyhWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYpOworICAgIFZl
Y3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKCkgY29uc3Q7CisKKyAg
ICB2b2lkIHNldEdseXBoT3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYpOworICAgIEdseXBo
T3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3coKSBjb25zdDsKKworICAgIHN0YXRpYyB2b2lkIGNsZWFy
R2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCgpCisgICAgeworICAgICAgICBpZiAoc19n
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgICAgIHNfZ2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmNsZWFyKCk7CisgICAgfQogCiAgICAgdW5zaWduZWQg
c2hvcnQgdHJ1bmNhdGlvbigpIHsgcmV0dXJuIG1fdHJ1bmNhdGlvbjsgfQogCkBAIC0xMjksNiAr
MTM4LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBzaG9ydCBtX3RydW5jYXRpb247IC8vIFdo
ZXJlIHRvIHRydW5jYXRlIHdoZW4gdGV4dCBvdmVyZmxvdyBpcyBhcHBsaWVkLiAgV2UgdXNlIHNw
ZWNpYWwgY29uc3RhbnRzIHRvCiAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVub3RlIG5vIHRy
dW5jYXRpb24gKHRoZSB3aG9sZSBydW4gcGFpbnRzKSBhbmQgZnVsbCB0cnVuY2F0aW9uIChub3Ro
aW5nIHBhaW50cyBhdCBhbGwpLgogCisgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IElubGluZVRl
eHRCb3gqLCBwYWlyPFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+LCBHbHlwaE92ZXJmbG93
PiA+IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworICAgIHN0YXRpYyBHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCogc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcDsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgcGFpbnRDb21wb3NpdGlvbkJhY2tncm91bmQo
R3JhcGhpY3NDb250ZXh0KiwgaW50IHR4LCBpbnQgdHksIFJlbmRlclN0eWxlKiwgY29uc3QgRm9u
dCYsIGludCBzdGFydFBvcywgaW50IGVuZFBvcyk7CiAgICAgdm9pZCBwYWludERvY3VtZW50TWFy
a2VycyhHcmFwaGljc0NvbnRleHQqLCBpbnQgdHgsIGludCB0eSwgUmVuZGVyU3R5bGUqLCBjb25z
dCBGb250JiwgYm9vbCBiYWNrZ3JvdW5kKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIsNyAr
MzQyLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUhvcml6b250YWxQb3NpdAogICAgICAg
ICAgICAgICAgIG5lZWRzV29yZFNwYWNpbmcgPSAhaXNTcGFjZU9yTmV3bGluZShydC0+Y2hhcmFj
dGVycygpW3ItPm1fc3RvcCAtIDFdKSAmJiByLT5tX3N0b3AgPT0gbGVuZ3RoOyAgICAgICAgICAK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiBmYWxsYmFja0ZvbnRzOwotICAgICAgICAgICAgci0+bV9ib3gtPnNldFdpZHRoKHJ0LT53aWR0
aChyLT5tX3N0YXJ0LCByLT5tX3N0b3AgLSByLT5tX3N0YXJ0LCB0b3RXaWR0aCwgZmlyc3RMaW5l
LCAmZmFsbGJhY2tGb250cykpOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJm
bG93OworICAgICAgICAgICAgci0+bV9ib3gtPnNldFdpZHRoKHJ0LT53aWR0aChyLT5tX3N0YXJ0
LCByLT5tX3N0b3AgLSByLT5tX3N0YXJ0LCB0b3RXaWR0aCwgZmlyc3RMaW5lLCAmZmFsbGJhY2tG
b250cywgJmdseXBoT3ZlcmZsb3cpKTsKICAgICAgICAgICAgIGlmICghZmFsbGJhY2tGb250cy5p
c0VtcHR5KCkKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICAgICAgICAgICAgICAmJiAhaXNTVkdU
ZXh0KCkKQEAgLTM1MSw2ICszNTIsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUhvcml6
b250YWxQb3NpdAogICAgICAgICAgICAgICAgIEFTU0VSVChyLT5tX2JveC0+aXNUZXh0KCkpOwog
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihyLT5tX2JveCktPnNl
dEZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoKGdseXBoT3ZlcmZsb3cudG9wIHx8IGdseXBoT3ZlcmZsb3cuYm90dG9tIHx8IGdseXBo
T3ZlckZsb3cubGVmdCB8fCBnbHlwaE92ZXJmbG93LnJpZ2h0KQorI2lmIEVOQUJMRShTVkcpCisg
ICAgICAgICAgICAgICAgJiYgIWlzU1ZHVGV4dCgpCisjZW5kaWYKKyAgICAgICAgICAgICkgewor
ICAgICAgICAgICAgICAgIEFTU0VSVChyLT5tX2JveC0+aXNUZXh0KCkpOworICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihyLT5tX2JveCktPnNldEdseXBoT3ZlcmZs
b3coZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoIXIt
Pm1fb2JqZWN0LT5pc1JlbmRlcklubGluZSgpKSB7CiAgICAgICAgICAgICBSZW5kZXJCb3gqIHJl
bmRlckJveCA9IHRvUmVuZGVyQm94KHItPm1fb2JqZWN0KTsKICAgICAgICAgICAgIHJlbmRlckJv
eC0+Y2FsY1dpZHRoKCk7CkBAIC03MzQsNiArNzQzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0SW5saW5lQ2hpbGRyZW4oYgogCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgcG9z
aXRpb24gb3VyIHRleHQgcnVucyB2ZXJ0aWNhbGx5LgogICAgICAgICAgICAgICAgICAgICAgICAg
Y29tcHV0ZVZlcnRpY2FsUG9zaXRpb25zRm9yTGluZShsaW5lQm94LCByZXNvbHZlci5maXJzdFJ1
bigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIElubGluZVRleHRCb3g6OmNsZWFyR2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCgpOwogCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFNwZWNpYWwgU1ZHIHRleHQgbGF5b3V0IGNvZGUKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIFJlbmRl
clRleHQ6OlJlbmRlclRleHQoTm9kZSogbm9kZSwgUGFzc1IKICAgICAgLCBtX2xpbmVzRGlydHko
ZmFsc2UpCiAgICAgICwgbV9jb250YWluc1JldmVyc2VkVGV4dChmYWxzZSkKICAgICAgLCBtX2lz
QWxsQVNDSUkobV90ZXh0LmNvbnRhaW5zT25seUFTQ0lJKCkpCi0gICAgICwgbV9rbm93bk5vdFRv
VXNlRmFsbGJhY2tGb250cyhmYWxzZSkKKyAgICAgLCBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0Fu
ZE5vRmFsbGJhY2tGb250cyhmYWxzZSkKIHsKICAgICBBU1NFUlQobV90ZXh0KTsKIApAQCAtMTQz
LDcgKzE0Myw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWYKICAg
ICAvLyBuZWVkIHRvIHJlbGF5b3V0LgogICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxh
eW91dCkgewogICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAg
ICAgICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9IGZhbHNlOworICAgICAgICBtX2tu
b3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IGZhbHNlOwogICAgIH0KIAog
ICAgIEVUZXh0VHJhbnNmb3JtIG9sZFRyYW5zZm9ybSA9IG9sZFN0eWxlID8gb2xkU3R5bGUtPnRl
eHRUcmFuc2Zvcm0oKSA6IFRUTk9ORTsKQEAgLTQ2NSw3ICs0NjUsNyBAQCBJbnRSZWN0IFJlbmRl
clRleHQ6OmxvY2FsQ2FyZXRSZWN0KElubGluCiAgICAgcmV0dXJuIEludFJlY3QobGVmdCwgdG9w
LCBjYXJldFdpZHRoLCBoZWlnaHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0
Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4
UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0
CitBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250
JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNv
bnN0CiB7CiAgICAgaWYgKGYuaXNGaXhlZFBpdGNoKCkgJiYgIWYuaXNTbWFsbENhcHMoKSAmJiBt
X2lzQWxsQVNDSUkpIHsKICAgICAgICAgaW50IG1vbm9zcGFjZUNoYXJhY3RlcldpZHRoID0gZi5z
cGFjZVdpZHRoKCk7CkBAIC00OTcsNyArNDk3LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVuZGVy
VGV4dDo6d2lkdGhGcm9tQwogICAgICAgICByZXR1cm4gdzsKICAgICB9CiAKLSAgICByZXR1cm4g
Zi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwgYWxsb3dU
YWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzKTsKKyAgICByZXR1cm4gZi53aWR0aChUZXh0UnVu
KHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBm
YWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Ojp0cmlt
bWVkUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLApAQCAtNTY4LDcgKzU2OCw3IEBAIHZvaWQgUmVu
ZGVyVGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGwKICAgICAgICAgICAgICAgICBsaW5lbGVu
Kys7CiAKICAgICAgICAgICAgIGlmIChsaW5lbGVuKSB7Ci0gICAgICAgICAgICAgICAgZW5kTWF4
VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4sIGxlYWRXaWR0aCArIGVuZE1heFcsIDAp
OworICAgICAgICAgICAgICAgIGVuZE1heFcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCBsaW5lbGVu
LCBsZWFkV2lkdGggKyBlbmRNYXhXLCAwLCAwKTsKICAgICAgICAgICAgICAgICBpZiAoZmlyc3RM
aW5lKSB7CiAgICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZSA9IGZhbHNlOwogICAgICAgICAg
ICAgICAgICAgICBsZWFkV2lkdGggPSAwOwpAQCAtNjEzLDE0ICs2MTMsMTUgQEAgaW50IFJlbmRl
clRleHQ6Om1heFByZWZXaWR0aCgpIGNvbnN0CiB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lk
dGhzKGludCBsZWFkV2lkdGgpCiB7CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
IGZhbGxiYWNrRm9udHM7Ci0gICAgY2FsY1ByZWZXaWR0aHMobGVhZFdpZHRoLCBmYWxsYmFja0Zv
bnRzKTsKLSAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5KCkpCi0gICAgICAgIG1fa25vd25O
b3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVlOworICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVy
ZmxvdzsKKyAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxiYWNrRm9udHMsIGdseXBo
T3ZlcmZsb3cpOworICAgIGlmIChmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSAmJiAhZ2x5cGhPdmVy
Zmxvdy5sZWZ0ICYmICFnbHlwaE92ZXJmbG93LnJpZ2h0ICYmICFnbHlwaE92ZXJmbG93LnRvcCAm
JiAhZ2x5cGhPdmVyZmxvdy5ib3R0b20pCisgICAgICAgIG1fa25vd25Ub0hhdmVOb092ZXJmbG93
QW5kTm9GYWxsYmFja0ZvbnRzID0gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJl
ZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZh
bGxiYWNrRm9udHMpCit2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lk
dGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhP
dmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKLSAgICBBU1NFUlQobV9oYXNUYWIgfHwgcHJlZldp
ZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMpOworICAgIEFTU0VS
VChtX2hhc1RhYiB8fCBwcmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93blRvSGF2ZU5vT3ZlcmZs
b3dBbmROb0ZhbGxiYWNrRm9udHMpOwogCiAgICAgbV9taW5XaWR0aCA9IDA7CiAgICAgbV9iZWdp
bk1pbldpZHRoID0gMDsKQEAgLTY1MCw2ICs2NTEsOCBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQ
cmVmV2lkdGhzKGludCBsZWFkCiAgICAgaW50IG5leHRCcmVha2FibGUgPSAtMTsKICAgICBpbnQg
bGFzdFdvcmRCb3VuZGFyeSA9IDA7CiAKKyAgICBpbnQgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9
IC0xOworCiAgICAgYm9vbCBicmVha05CU1AgPSBzdHlsZSgpLT5hdXRvV3JhcCgpICYmIHN0eWxl
KCktPm5ic3BNb2RlKCkgPT0gU1BBQ0U7CiAgICAgYm9vbCBicmVha0FsbCA9IChzdHlsZSgpLT53
b3JkQnJlYWsoKSA9PSBCcmVha0FsbFdvcmRCcmVhayB8fCBzdHlsZSgpLT53b3JkQnJlYWsoKSA9
PSBCcmVha1dvcmRCcmVhaykgJiYgc3R5bGUoKS0+YXV0b1dyYXAoKTsKIApAQCAtNjkyLDcgKzY5
NSw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKICAgICAgICAg
ICAgIGxhc3RXb3JkQm91bmRhcnkrKzsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
IGVsc2UgaWYgKGMgPT0gc29mdEh5cGhlbikgewotICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9
IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkgLSBsYXN0V29yZEJvdW5kYXJ5
LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAg
IGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBpIC0g
bGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250
cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3ZlcmZs
b3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPSBnbHlwaE92
ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5ID0gaSArIDE7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNzE1LDEzICs3MjAsMTUgQEAgdm9pZCBS
ZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogCiAgICAgICAgIGludCB3b3JkTGVu
ID0gaiAtIGk7CiAgICAgICAgIGlmICh3b3JkTGVuKSB7Ci0gICAgICAgICAgICBpbnQgdyA9IHdp
ZHRoRnJvbUNhY2hlKGYsIGksIHdvcmRMZW4sIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZh
bGxiYWNrRm9udHMpOworICAgICAgICAgICAgaW50IHcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCB3
b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhP
dmVyZmxvdyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA8IDApCisg
ICAgICAgICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGdseXBoT3ZlcmZsb3cubGVm
dDsKICAgICAgICAgICAgIGN1cnJNaW5XaWR0aCArPSB3OwogICAgICAgICAgICAgaWYgKGJldHdl
ZW5Xb3JkcykgewogICAgICAgICAgICAgICAgIGlmIChsYXN0V29yZEJvdW5kYXJ5ID09IGkpCiAg
ICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3OwogICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYs
IGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJy
TWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdp
ZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29yZEJv
dW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhP
dmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgbGFzdFdvcmRCb3VuZGFyeSA9IGo7CiAgICAgICAg
ICAgICB9CiAKQEAgLTc3NCw2ICs3ODEsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lk
dGhzKGludCBsZWFkCiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoID0gMDsKICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IGYud2lkdGgoVGV4
dFJ1bih0eHQgKyBpLCAxLCBhbGxvd1RhYnMoKSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoKSk7
CisgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5yaWdodCA9IDA7CiAgICAgICAgICAgICAg
ICAgbmVlZHNXb3JkU3BhY2luZyA9IGlzU3BhY2UgJiYgIXByZXZpb3VzQ2hhcmFjdGVySXNTcGFj
ZSAmJiBpID09IGxlbiAtIDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQobGFz
dFdvcmRCb3VuZGFyeSA9PSBpKTsKQEAgLTc4MSw2ICs3ODksOSBAQCB2b2lkIFJlbmRlclRleHQ6
OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoZmly
c3RHbHlwaExlZnRPdmVyZmxvdyA+IDApCisgICAgICAgIGdseXBoT3ZlcmZsb3cubGVmdCA9IGZp
cnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CisKICAgICBpZiAoKG5lZWRzV29yZFNwYWNpbmcgJiYgbGVu
ID4gMSkgfHwgKGlnbm9yaW5nU3BhY2VzICYmICFmaXJzdFdvcmQpKQogICAgICAgICBjdXJyTWF4
V2lkdGggKz0gd29yZFNwYWNpbmc7CiAKQEAgLTEwNTYsNyArMTA2Nyw3IEBAIHZvaWQgUmVuZGVy
VGV4dDo6c2V0VGV4dChQYXNzUmVmUHRyPFN0cmkKIAogICAgIHNldFRleHRJbnRlcm5hbCh0ZXh0
KTsKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICBtX2tub3du
Tm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZs
b3dBbmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsKICAgICAKICAgICBBWE9iamVjdENhY2hlKiBh
eE9iamVjdENhY2hlID0gZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpOwogICAgIGlmIChheE9i
amVjdENhY2hlLT5hY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQpAQCAtMTEyMiw3ICsxMTMzLDcgQEAg
dm9pZCBSZW5kZXJUZXh0Ojpwb3NpdGlvbkxpbmVCb3goSW5saW5lQgogICAgIG1fY29udGFpbnNS
ZXZlcnNlZFRleHQgfD0gcy0+ZGlyZWN0aW9uKCkgPT0gUlRMOwogfQogCi11bnNpZ25lZCBSZW5k
ZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29s
IGZpcnN0TGluZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
KSBjb25zdAordW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExpbmUsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29u
c3QKIHsKICAgICBpZiAoZnJvbSA+PSB0ZXh0TGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMTEzMCwxMCArMTE0MSwxMCBAQCB1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25l
ZCBmcm9tCiAgICAgaWYgKGZyb20gKyBsZW4gPiB0ZXh0TGVuZ3RoKCkpCiAgICAgICAgIGxlbiA9
IHRleHRMZW5ndGgoKSAtIGZyb207CiAKLSAgICByZXR1cm4gd2lkdGgoZnJvbSwgbGVuLCBzdHls
ZShmaXJzdExpbmUpLT5mb250KCksIHhQb3MsIGZhbGxiYWNrRm9udHMpOworICAgIHJldHVybiB3
aWR0aChmcm9tLCBsZW4sIHN0eWxlKGZpcnN0TGluZSktPmZvbnQoKSwgeFBvcywgZmFsbGJhY2tG
b250cywgZ2x5cGhPdmVyZmxvdyk7CiB9CiAKLXVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVu
c2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9udCYgZiwgaW50IHhQb3MsIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK3Vuc2lnbmVk
IFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9u
dCYgZiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICAgICBBU1NFUlQo
ZnJvbSArIGxlbiA8PSB0ZXh0TGVuZ3RoKCkpOwogICAgIGlmICghY2hhcmFjdGVycygpKQpAQCAt
MTE0MywxOCArMTE1NCwxOSBAQCB1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBm
cm9tCiAgICAgaWYgKCZmID09ICZzdHlsZSgpLT5mb250KCkpIHsKICAgICAgICAgaWYgKCFzdHls
ZSgpLT5wcmVzZXJ2ZU5ld2xpbmUoKSAmJiAhZnJvbSAmJiBsZW4gPT0gdGV4dExlbmd0aCgpKSB7
CiAgICAgICAgICAgICBpZiAoZmFsbGJhY2tGb250cykgewotICAgICAgICAgICAgICAgIGlmIChw
cmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cykgewotICAg
ICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZX
aWR0aHMoMCwgKmZhbGxiYWNrRm9udHMpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJh
Y2tGb250cy0+aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgbV9rbm93bk5vdFRv
VXNlRmFsbGJhY2tGb250cyA9IHRydWU7CisgICAgICAgICAgICAgICAgQVNTRVJUKGdseXBoT3Zl
cmZsb3cpOworICAgICAgICAgICAgICAgIGlmIChwcmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93
blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3RfY2FzdDxSZW5kZXJUZXh0Kj4odGhpcyktPmNhbGNQcmVmV2lkdGhzKDAsICpmYWxs
YmFja0ZvbnRzLCAqZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmYWxs
YmFja0ZvbnRzLT5pc0VtcHR5KCkgJiYgIWdseXBoT3ZlcmZsb3ctPmxlZnQgJiYgIWdseXBoT3Zl
cmZsb3ctPnJpZ2h0ICYmICFnbHlwaE92ZXJmbG93LT50b3AgJiYgIWdseXBoT3ZlcmZsb3ctPmJv
dHRvbSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5k
Tm9GYWxsYmFja0ZvbnRzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgdyA9IG1fbWF4V2lkdGg7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICB3
ID0gbWF4UHJlZldpZHRoKCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdyA9IHdpZHRo
RnJvbUNhY2hlKGYsIGZyb20sIGxlbiwgeFBvcywgZmFsbGJhY2tGb250cyk7CisgICAgICAgICAg
ICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzLCBn
bHlwaE92ZXJmbG93KTsKICAgICB9IGVsc2UKLSAgICAgICAgdyA9IGYud2lkdGgoVGV4dFJ1bih0
ZXh0KCktPmNoYXJhY3RlcnMoKSArIGZyb20sIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBmYWxs
YmFja0ZvbnRzKTsKKyAgICAgICAgdyA9IGYud2lkdGgoVGV4dFJ1bih0ZXh0KCktPmNoYXJhY3Rl
cnMoKSArIGZyb20sIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzLCBnbHlw
aE92ZXJmbG93KTsKIAogICAgIHJldHVybiB3OwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
aAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTY3LDggKzY3LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHRleHRM
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3RleHQubGVuZ3RoKCk7IH0gLy8gbm9uIHZpcnR1YWwg
aW1wbGVtZW50YXRpb24gb2YgbGVuZ3RoKCkKICAgICB2b2lkIHBvc2l0aW9uTGluZUJveChJbmxp
bmVCb3gqKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5z
aWduZWQgbGVuLCBjb25zdCBGb250JiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQg
d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExp
bmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
ID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwg
aW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExp
bmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAKQEAgLTEzMyw3ICsxMzMsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBJbmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7IC8vIFN1YmNsYXNzZWQg
YnkgU1ZHLgogCiBwcml2YXRlOgotICAgIHZvaWQgY2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0
aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKTsKKyAgICB2
b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYpOwogCiAgICAgLy8gTWFrZSBs
ZW5ndGgoKSBwcml2YXRlIHNvIHRoYXQgY2FsbGVycyB0aGF0IGhhdmUgYSBSZW5kZXJUZXh0Kgog
ICAgIC8vIHdpbGwgdXNlIHRoZSBtb3JlIGVmZmljaWVudCB0ZXh0TGVuZ3RoKCkgaW5zdGVhZCwg
d2hpbGUKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVUZXh0
Qm94ZXMoKTsKICAgICBib29sIGNvbnRhaW5zT25seVdoaXRlc3BhY2UodW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbGVuKSBjb25zdDsKLSAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYs
IGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cykgY29uc3Q7CisgICAgaW50IHdpZHRoRnJvbUNhY2hlKGNvbnN0
IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqKSBjb25zdDsKICAgICBi
b29sIGlzQWxsQVNDSUkoKSBjb25zdCB7IHJldHVybiBtX2lzQWxsQVNDSUk7IH0KIAogICAgIGlu
dCBtX21pbldpZHRoOyAvLyBoZXJlIHRvIG1pbmltaXplIHBhZGRpbmcgaW4gNjQtYml0LgpAQCAt
MTcxLDcgKzE3MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBv
ciByZW1vdmVkKS4KICAgICBib29sIG1fY29udGFpbnNSZXZlcnNlZFRleHQgOiAxOwogICAgIGJv
b2wgbV9pc0FsbEFTQ0lJIDogMTsKLSAgICBtdXRhYmxlIGJvb2wgbV9rbm93bk5vdFRvVXNlRmFs
bGJhY2tGb250cyA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fa25vd25Ub0hhdmVOb092ZXJmbG93
QW5kTm9GYWxsYmFja0ZvbnRzIDogMTsKIH07CiAKIGlubGluZSBSZW5kZXJUZXh0KiB0b1JlbmRl
clRleHQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NzE2NikKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisy
MDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dCByZXBhaW50aW5nIGRv
ZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91dHNpZGUgdGhlIHR5cG9ncmFw
aGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYyNzQ+CisKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFj
cml0aWNzLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDQtMDYgIEFuZHJldyBTY2hlcmt1cyAgPHNjaGVya3Vz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBjbGVhbmluZyB1cCBtZWRpYSBs
YXlvdXQgdGVzdCBleHBlY3RhdGlvbnMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDMzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4w
MS8vRU4iCisgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4K
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICBk
aXYudGVzdCB7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAxMjBweDsgYm9yZGVyOiAxcHggc29saWQg
Ymx1ZTsgcGFkZGluZzogMTBweDsgfQorPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0
KCkKKyAgICAgICB7CisgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGFja2Vk
JykuaW5uZXJUZXh0ID0gIiI7CisgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpOyI+Cis8cD48Yj5CVUcgSUQ6PC9iPiA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NCI+IEJ1Z3ppbGxh
IGJ1ZyA2Mjc0PC9hPlRleHQgcmVwYWludGluZyBkb2VzIG5vdCBhY2NvdW50IGZvciBnbHlwaHMg
d2hpY2ggZHJhdyBvdXRzaWRlIHRoZSB0eXBvZ3JhcGhpYyBib3VuZHMgb2YgdGhlIGZvbnQuPC9w
PgorCis8cCBpZD0ic3VjY2VzcyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cGFsZWdyZWVuOyBw
YWRkaW5nOjNweDsiPjxiPlRFU1QgUEFTUzo8L2I+IAorVGhlIHRleHQgd2lsbCBlbnRpcmVseSBk
aXNhcHBlYXIuCis8L3A+CisKKzxwIGlkPSJmYWlsdXJlIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xv
cjojRkYzMzAwOyBwYWRkaW5nOjNweDsiPjxiPlRFU1QgRkFJTDo8L2I+ICAKK01vc3Qgb2YgdGhl
IHRleHQgd2lsbCBiZSBnb25lLCBidXQgc29tZSBhcnRpZmFjdHMgd2lsbCBiZSBsZWZ0IGJlaGlu
ZCBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLgorPC9wPgorCis8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAg
ICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDM2cHg7IiBpZD0ic3RhY2tlZCI+JiN4MUVBNjsmI3gx
RUE0OyYjeDFFQUE7JiN4MUVBODsmI3gxRUIwOzwvZGl2PgorPC9kaXY+Cis8YnI+CisKKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQv
c3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVj
dGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEgQEAKK2NlOWJlODZjZmI5NDMzYTY0ZmM2NWY4NzEwYjAyMDU2ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgzMTYKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDMxNgorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgyOTIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAo
MCwwKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNpemUg
NjJ4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2MngxOAor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjI6ICJCVUcgSUQ6IgorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYyLDApIHNpemUgNHgxOAorICAgICAgICAgIHRleHQg
cnVuIGF0ICg2MiwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAo
MCwwKSBzaXplIDExN3gxOCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDY2LDApIHNpemUgMTE3eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjYs
MCkgd2lkdGggMTE3OiAiQnVnemlsbGEgYnVnIDYyNzQiCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTgzLDApIHNpemUgNzc3eDM2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE4Myww
KSB3aWR0aCA1OTQ6ICJUZXh0IHJlcGFpbnRpbmcgZG9lcyBub3QgYWNjb3VudCBmb3IgZ2x5cGhz
IHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBoaWMgYm91bmRzIG9mIHRoZSIKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMjk6ICJmb250LiIKKyAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MjQgW2JnY29sb3I9Izk4RkI5OF0KKyAgICAgICAg
UmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDkxeDE4CisgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgzLDMpIHNpemUgOTF4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgz
LDMpIHdpZHRoIDkxOiAiVEVTVCBQQVNTOiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICg5NCwzKSBzaXplIDIwM3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg5NCwzKSB3aWR0aCA0
OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoOTgsMykgd2lkdGggMTk5OiAiVGhlIHRleHQg
d2lsbCBlbnRpcmVseSBkaXNhcHBlYXIuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDky
KSBzaXplIDc4NHgyNCBbYmdjb2xvcj0jRkYzMzAwXQorICAgICAgICBSZW5kZXJJbmxpbmUge0J9
IGF0ICgwLDApIHNpemUgOTB4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMs
Mykgc2l6ZSA5MHgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMykgd2lkdGggOTA6ICJU
RVNUIEZBSUw6IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDkzLDMpIHNpemUgNTYx
eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDkzLDMpIHdpZHRoIDQ6ICIgIgorICAgICAgICAg
IHRleHQgcnVuIGF0ICg5NywzKSB3aWR0aCA1NTc6ICJNb3N0IG9mIHRoZSB0ZXh0IHdpbGwgYmUg
Z29uZSwgYnV0IHNvbWUgYXJ0aWZhY3RzIHdpbGwgYmUgbGVmdCBiZWhpbmQgYXQgdGhlIHRvcCBv
ZiB0aGUgcGFnZS4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMzIpIHNpemUgMjIy
eDE0MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwRkYpXQorICAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMTEsMTEpIHNpemUgMjAweDAKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgwLDI3NCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBz
aXplIDB4MTgKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3Rh
Y2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBm
aWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5wbmcKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlW
Qk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQzdtbERRMUJKUTBN
Z1VISnZabWxzWlFBQWVBR0YKVk05ckUwRVUvalp1cWRBaUNGcHJEcko0a0NKSldhdG9SZFEyL1JG
aWF3emJIN1pGa0dRelNkWnVOdXZ1SnJXbGlPVGkwU3JlUmUyaApCLytBSG5yd1pDOUtoVnBGS042
cktHS2hGeTN4elc1TXRxWHF3TTUrODk0MzczMXZkdDhBRFhMU05QV0FCT1FOeDFLaUVXbHNmRUpx
Ci9JZ0FqcUlKUVRRbFZkdnNUaVFHUVlOeitYdm4ySG9QZ1Z0V3czdjdkN0ozclpyU3Rwb0hoUDFB
NEVlYTJTcXc3eGR4Q2xrU0FvZzgKMzZFcHgzUUkzK1BZOHV5UE9VNTVlTUcxRHlzOXhGa2lmRUEx
TGM1L1RiaFR6U1hUUUlOSU9KVDFjVkkrbk5lTGxOY2RCMmx1WnNiSQpFTDFQa0thN3pPNnJZcUdj
VHZZT2tMMmQ5SDVPczk0K3dpSENDeG10UDBhNGpaNzFqTlUvNG1IaHBPYkVoajBjR0RYMCtHQVZ0
eHFwCitEWENGRjhRVFNlaVZISFpMZzN4bUs3OVZ2SktnbkNRT01wa1lZQnpXa2hQMTB4dStMcUhC
WDBtMXhPdjRuZFdVZUY1anhObjN0VGQKNzBYYUFxOHdEaDBNR2d5YURVaFFFRVVFWVppd1VFQ0dQ
Qm94TkxKeVB5T3JCaHVUZXpKMUpHcTdkR0pFc1VGN050dzl0MUdrM1R6KwpLQ0p4bEVPMUNKTDhR
ZjRxcjhsUDVYbjV5MXl3MkZiM2xLMmJtcnJ5NER2RjVabTVHaDdYMDhqamMwMWVmSlhVZHBOWFI1
YXNlWHE4Cm11d2FQK3hYbHpIbWdqV1B4SE93Ky9FdFg1WE1seW1NRk1YalZmUHFTNFIxV2pFMzM1
OXNmenM5NGk3UExyWFdjNjJKaXpkV201ZG4KL1dwSSsrNnF2SlBtVmZsUFh2WHgvR2ZOeEdQaUtU
RW1kb3JuSVltWHhTN3hrdGhMcXd2aVlHM0hDSjJWaGluU2JaSDZKTlZnWUpxOAo5UzlkUDF0NHZV
Wi9EUFZSbEJuTTBsU0o5My9DS21RMG5ia09iL3FQMjhmOEYrVDNpdWVmS0FJdmJPREltYnB0VTNI
dkVLRmxwVzV6CnJnSVh2OUY5OExadWE2TitPUHdFV0R5ckZxMVNOWjhndkFFY2RvZDZIdWdwbU5P
V2xzMDVVb2NzbjVPNjZjcGlVc3hRMjBOU1V0Y2wKMTJWTEZyT1pWV0xwZHRpWjB4MXVIS0U1UXZm
RXAwcGxrL3F2OFJHdy9iQlMrZm1zVXRsK1RocldnWmY2YjhDOC9VWEFlSXVKQUFBZwpBRWxFUVZS
NEFlemRaN2NreDMwbjZHd0Q3eDNoQ085SmtBU05hQ1dLWEhGMFZtZTBYSjdWQytqajZPTU16NXg1
TTNPMFJ5dnRqSFpFCmtVT0tJdWdKQW9RbnZQZTJ6ZVl2YjBkM2RxSXFNK3JtdmJlcnE1OGdHK1Vp
SXlPZWlNeUtmNXE2Kys2Ly8vNmpqVVNBQUFFQ0JBZ1EKSUVDQUFJRTlFTmkvQit1d0NnSUVDQkFn
UUlBQUFRSUVDSFFDQWhBRGdRQUJBZ1FJRUNCQWdBQ0JQUk1RZ093WnRSVVJJRUNBQUFFQwpCQWdR
SUNBQU1RWUlFQ0JBZ0FBQkFnUUlFTmd6QVFISW5sRmJFUUVDQkFnUUlFQ0FBQUVDQWhCamdBQUJB
Z1FJRUNCQWdBQ0JQUk1RCmdPd1p0UlVSSUVDQUFBRUNCQWdRSUNBQU1RWUlFQ0JBZ0FBQkFnUUlF
Tmd6QVFISW5sRmJFUUVDQkFnUUlFQ0FBQUVDQWhCamdBQUIKQWdRSUVDQkFnQUNCUFJNUWdPd1p0
UlVSSUVDQUFBRUNCQWdRSUNBQU1RWUlFQ0JBZ0FBQkFnUUlFTmd6QVFISW5sRmJFUUVDQkFnUQpJ
RUNBQUFFQ0FoQmpnQUFCQWdRSUVDQkFnQUNCUFJNUWdPd1p0UlVSSUVDQUFBRUNCQWdRSUNBQU1R
WUlFQ0JBZ0FBQkFnUUlFTmd6CkFRSElubEZiRVFFQ0JBZ1FJRUNBQUFFQ2F4ZUFmUERCQjgzYmI3
L2RIRDE2OUhqdnZQLysrOGVmZTlJMEgzeHd0SG5yclNQSEtRNGYKUHRxOC9QTHkxOGN6Vmp6NTZL
T2p6YnZ2bnJDdldHUkhzMlQ5YWN1aFF5ZlhJVzNPdjducFZMWnRidDEzWXZsc1gyKzk5ZGEyaTVx
NwovS29yUG5Ma1NQUG1tMit1dXBqOHAwZ2crK29YWG5paDNWWS8ySk1hSEQ1OHVOMWZ2THhqNi9y
b280L2EvZCs3TzFaZWJVRlQ2MTFsCnU1c3FhNnBPWjhvMk4yVzZrdzV6KzJTcXp6YnA4eW1ycVg0
YnM1Z3FlMnpaM2Zoc0o4ZllvdnF0c2o4K0ZUWUhGMVc2Lzk2VFR6N1oKL1ByWHYyN2VlZWVkN3Ux
UGZPSVR6WG5ubmRlODhjWWJ6U1dYWE5MY2UrKzl6WVVYWHRoOTl0aGpqelcvK2Mxdm12ZmVlNjk3
ZmNVVgpWelIzMzMxMzg4bFBmcklMS243MXExODFmL3pqSDV2cnJydXUrZEtYdnRTVms0enBoTi8v
L3ZmTjQ0OC8zbjEyOGNVWE42Ky8vbnEzCnpBVVhYTkNjZmZiWnpXYy8rOW11elA1L1VyZmYvdmEz
eHlkVTU1OS9mblBQUGZjMCsvZnZiN0t1OGlWNDVaVlhkblZORzFMMzVMbm8Kb292NlJVMCtmKzY1
STgxRER4MXV2MXlQTm0zMW1zc3UyOS9zMjlkMC95NjlkRjl6KyszNzIvVzJiK3hCK3MxdkRqY3Z2
bmlrK2F1LwpPcnQ1NVpVanpVOS9lcWhKalBhOTczMzg5U3JWZWVTUnc4M1BmMzY0dFQ3UTNIWFhn
VlVXblozM2pUZU90T1BzY1BPSlQreHZicmhoCmYzUHc0SmJscTY4ZWFmc3k3VDNhQnFWTis5bSs1
aXRmT2RnY09MQ3ZIVGRIbS8vNlh6OXErL25qcS8vdWQ4OXErL3JrL25qKytTUE4KajM5OHFIUEtF
di95TC8vU1RWNHlUczg2NjZ4dWJHWU1YWDc1NWEzbis5MW5YLzd5bDV0YmJybmw0eXM0VGQvSjl2
bmlpeSsyWStldgp0dFdDdWN1dnN0SlhYbm1sSGRzLzdmcm1MLzdpTDFaWlZONVRJUERvbzQ4MkNR
aXkzLzN4ajMvYy9QVmYvM1c3bmU3ZWZxU01qMnlyCjMvdmU5MmEzT044bkdXK2YrdFNudW4rekM2
d3NvR2E5dGR0ZFRWbGoxU3FtMlI5dStqWTNacnFURG5QN1pLeS9OdTJ6R3F1eGZodnoKZU9TUlI5
cjV6Yys3dWVSZGQ5MDFsblZQUHR2Sk1iYW93cXZzajJ2Y0Y2MWo3bnVUQWNoTk45M1VKREw2MmM5
KzFxM3JNNS81VEpNSgovUzkvK2NzdWFIajY2YWViNzM3M3UxMlFjT3V0dDNhQnl1OSs5N3N1N3hl
KzhJVnVNcGNYQ1ZLKy92V3ZOMy8vOTMvZmZPMXJYMnNuCm1GdXJQblRvVVBNLy8rZi83Q1o3Zi9x
bmY5cGNmLzMxM2JMNXo3UFBQdHY4OEljL2JDZkRpd2RMNnBhVUw3dWtCRHUzMzM1Nzl6eEgKc1JL
Y0pQM0puL3hKR3pSYzNMWGpILy94SDV0Z0o2QlpWbTYzME9BLzExNjd2LzB5YmRvQTVGQno2NjBu
SnVpdnZYYWsrZS8vL1ZBYgprQjF0MXpQSk9TaDFleS92dmZkQTgrR0hXeWV2cnJoaWYzUHp6UWZh
dmpqY0ZUWjh2Y29hYnIvOVFCdEFicFd6eW5Kejh6NzY2T0htCmQ3ODczSHo3MndmYmNYTGlwRnpP
aGlRb3VlT08vVzNRc2IvNXd4OE9OdzgrZUtUdHk4TnQ0SHV3RFJpT2RKOWRjODFXMzZRZTZZZUgK
SHo3eXNlRGp3dytQZG9GTTc4UmFGL2orNVYvKzVmRUErai8vNS8vY0JrQ2ZhTmYxbGE1SkR6MzBV
SmRuYnZ2S1VkcXJyNzU2YmxHegpsODhCZ3c4Ly9MQzZuR0hkVjEyK2VrVUxNaVl3dk9xcXEwNjdN
eUJEc3dWTk8rM2VtbXBUOXVQNWN2K2J2L21iOXFETXZ1YmFhNi9kCjFlQWpnQmtmTjk5OGMvYzl0
Qk9nK1Q0cDN4azdVVjV0R1RYcnJkM3Vhc29hcTlmcHVzMzEyelExVmt2ZU1kTzVEdjA2ek8yVFV0
L3kKMkMrN3ZMY3BqelZXWS8wMjVwQzVZWUtYZFVseng5aFlPMnIyeC8xeFZPTSt0cjd0Zm5aaXRq
ZFN3am5ubkhQODAzeTVKRjE2NmFYZApZeHFSc3hVbDlmT2VlKzY1NWUzamp6bnpVSUtQdkprekZU
bUZuZ0NoSDN6a3M1d3B5V0FiU3prN1VsTC9lWTdnbEpReklrbDVMOEZJCnpyajg0aGUvNkM0VktI
bHFIa3VSeHdpNlJYSW01UExMOTNWbkpHcktHT2JwWDJvMi9Helo2M1BPMmRlZXdUblJkV2xldjA3
RDE2V2MKbkRHWVNzdVduVnB1K0hsdHUxNTY2VWdiM0I1dWc5S1RnNCtVOThvclI1c3ZmL2xnT3k0
T2RBSEZaejV6b0EwV21uYThiTFhqeWl2MwpONS8rOU1GMklySy9IWTliLzk1NjYyaWIvK1F6SHlr
ckFjNXR0NTB3eTNzSlFNdlp1N3dlcHR0dXU2MGJsOFAzVjNtZHNmYVRuL3lrCkcrT3JMRmViZDh3
NTZ4Nm1iSisxWi84VzFYMlY1ZnZySHF0blAxOTVYdkpuMnkzN25QTFozTWRTOXR4eUZpMi95R3hS
dnJ5M3FIK1cKNVQyVjc5ZTBLZDhCeVZmNktnZXBkakl0NjdNNTQyTlJtZVc3WXFydWk1YWRXbWJz
ODZuMXJyTGRUWlcxckI2bFRhdVlydHNZSGh1cgpwWDJsL2N0TVM3NVZIRXFaZVZ4VWgrMzJTYi9j
WldVUDg0eTlMbTBieTdQc3MrMHNPelUrRnBVNVpiV3MzNWJWdS8vK2R2dTBYOFpPClBDL3RYbGFm
OHZsMjF6VzFQOTdOTWJwS25iZDl5TDVjZDVzSlhJNVNiaWZsMVBrZi92Q0hidEZsUjRkelZtTW5y
d0cvN0xMTGpsYzEKWjJyS2VwOS8vdm5tMy8vOTM3c3pLRmxuYmNxOUNtKytlYlE5SzNKaWN2dlVV
MXVYTXQxeno0SG16anNQdEdkY0RuZG5GcTYrZW45Nwo2Vms1ODNPMFBZdDB1RW1NOXRKTFI5c3pT
RnVYZFYxNTViNTJVcnl2dlR6b1VIdW1hVjhickRYdFdhV2ozWkg5Kys0NzJFNjA5elZQClBIR2tl
ZWFaSTgxM3ZuTWl5QnFyN3dzdkhHbGVmWFZyMHA3bHZ2U2xBOTJFZmRreWFkTXZmbkdvVzgvNTUr
OXJ2dnJWQSsxRWZIOHoKdDExWFhYWENxS3o3Zi8ydlEyMEFzYSs3dk9yaGh3KzNsOHJ0YS90a0sx
L09iUFJUSmpjWFg3enYrTm1OQ3k3NGVLRHh6RE5IdS9yMgpsNHQveXNvWmxYN0tVZHF4bEVDNWpP
Mk0xUWNmZkxCNTdiWFgydnRURGpVNXU1ZEoxcXV2dnRvRjBibnM4SXRmL0dJWFhQL2J2LzFiCkY5
emswcTJISDM2NDdhdG51c3NFYzI5VHlWUFdtK1Z6cWpRNzFhd3ZaMTIrK2Mxdk5ybjBjTkg2TWs1
enFXSzJ1K3hFOGp3N3NWd3EKZHMwMTEzVEY1aHI4bEp1VWRlZHl4eHd3U0IyZmVPS0o3cjN2Zk9j
N1hRQ2VkZWV5c3h3QXlQYVFzckwrbEQrcys2Yy8vZW51TXJXVQpXYk44MWgrcm5DM053WWlYWG5x
cE8xT2FiVEIyeFRiNVNrcitIQnpJcFpLcGJ5NzE3Ri9HazdPeE9XaVJlc1l6VGptYldRNXFMT3Vu
CmxQL1VVMDkxWjM5U1JtbERXVzk1ak4yWVNmS04xV0ZvTnV6dkxMK3NmL0paMnA5K3lNR1NqTFZj
RGxqMlIyT2ZqZFVwN2M3WmlWeDYKZXVlZGQzWm5nSE1rTVB1K2pJMnBOaysxS1Y0NUU1NHZ6Wndw
VDMvZGQ5OTlvMDdMeG4yT0N2YlRLdU1uWjdaamx6R1I5WmRMZWJOZgp6NW43MUc5cTJ5bnJ6bVhI
eVp0KytMTS8rN1BqQnlwcXhsQXNjaWxYeG5lMnk0eTFqT21NKzR5SEhBRElkcDU4My9yV3QwNGEz
NHZXCk85eHVVOGV4c1REVmh2SjVlVXhaeTdhNVpmMlVaUmJ0WSthMHZkUm56bGhlTkZaekpVWE8r
dmEzKzJXbXl4eFN0N0Y5UzZsN0hoZlYKb1h5K3FIL3oyWGJMemhqTFdKb3o1c2U4VTdleGJURGIr
cUx2cjJYam8rYjdLK3RNV21TMXJOK1c3VE8zU2pyNXYyVzg1N3N3MzMxZgovZXBYdTMxRmNvMVp6
TjJQcHZ5eTdtWGZielg3bDZsNkx0c2ZaN21TZG5PTWxuWFVQSjQ4dzZ0WUl0ZVBaMktVbmYwZGQ5
elJYU2RhCmpucFZMSDVTbGt3dVNzb0ViRkZLMmJuWFpLZFN2bEF5NkpMNmdVM2FrM3RFU2tBMHRy
N1hYanZhVGNZZmZQQnc4ei8reDZGdXdweEEKbzZRYmJ6elFuWkVvTjFMZmROT0JkZ2V4cjkwSm5w
Z0FQLzc0a2ZhTHArbU80TjkzMzRGMllyZjFXYXFXbThydnZudC8rMlYxc0xzZgpvNTFudFJPc2Zl
MEVjMTlYYmdLU0hPbXZTU25ySno4NTFKMmxTVUNVTW43NzIvSExySjU4OGtqNzVibXZPeXVSRzc4
VERCMXB6NTdNCmJkZXd2bSsvZmFTZFpHNjltMHVuY29ONDF2WEFBNGVHV2J2WG1VQzgvdnJKd1Y0
L1k4cUwrU1dYbkJqV0tUTUI0akNZNlM4Mzlid2MKTGNqWnVHOS8rOXZkcFBCZi8vVmZ1eSsxVEJB
enNjdFl5dG5BWFArZXdLUGNONUxKWXliZk45eHdRM2RwVjVrb2wzV203TndYOWR4egp6M1VUaytU
TEdNMVprMFhyeStRbEU4YU0xNXdoekdXTjJYWVM5Q1NsRGxtMjFDdEJTYm1zSk50U3huaTVDVDNi
VlNhNStZSk9IZE8yCnBHemZTWXZxdnNyeUtTT1R1SHhKSlhqSnBEQnRUU3JiWVBlaTk1OGYvZWhI
M1dWd3laL0pXb0tNZnZyQkQzN1FYWHJ6K2M5L3Z2bkcKTjc3Um5pVjdwY2t5U1dQOWxNOXluMWxP
dzZlL010RmRkSlJweWlUckdhdkRJck1zVTlKWS95UlBMamxOdjZhT0tTdkJXNW5valgwMgpWcWNi
Yjd5eE96T1JMNytrbkc3UGhLVmNpamZWNXFrMjVVeGhMcjlOU3ArbG41UEc2clJvM1BmUFlIY0Z0
UDlaWmZ5a1hka1dVbmFDCmo2UTg1c3Mrd2RiVXR0TXQwUDRuWXpTWFlpYkl6aGdwMjBQdEdNbzlq
L0ZOZS9Jdis0SVlaOHlYczQ5NWpGay91RjYyM3VGMm0zcU8KallWOHZxeXNmRFpNWTl2Y29uN0tQ
bXpaUG1hN2JlL1hhV3pjVEkzbDRWak5nWXBGMi8waTB5bUhaZnZrZnQzemZGaUhzczlmMWljeAoz
bTdaR1VOengveVlkOW96dGcydU9qN21ib09MK20xcVcwZ2IraW5mblFuY2NpdEF2cTl6TDJqYWtU
Um1NVFgycHZhaktYOXFqQzBhCnExbHVtTWJxdVd4LzNDOWpOOGRvZnoxVHowL00xS1p5OWo3UFRq
bVRwQnp0ZUtLTklyZWIrcjgyMHQ4UmI3ZTgydVh5aFpTVXdWY20KSWRtUWM0UXFYL3hUcVcxK2Q5
UDM2NjhmYVIrUGRwUHpmbkNSNVJOYzlGUE9aUFJUem1LVXE4ZHkrVkQ3dmRtbEN5N1kzMDRHOTdX
WApFVzExeldPUEhXa25pVWZiTC9ZRU5mdTZ6M0tXb0RhMSs5LzJSd0J5ZWRMV01ybDhLeFB5c1pS
N1NuTFpVODVFZk81ekI5cEphNDdhCmJpMHpwMTNEZGFaZFNRbkFjdjlKenZEY2MwL3U5VGpTQmhv
ZnYzem82YWVQdE5lVzU1SzN4Y1AyNmFkeitkV0p6OUszdWZRcWdkZWMKbEMrT3BCekJUNkNReVhy
R1RsNG5aWEtUd0NGSDVyTTlKREFmcHZUZG9wUXpBWmtrNVYvS3lCSHBCQVZKaTlhWGlVMG1NcG1r
WmllYQppVkoycERreWxDQW9YN2laQkpSTEpQUGxWQUx0MURzN3laTHlPbWM2a2pmbHBleVVWd0tV
a3EvVWZUdkx4Nk5NTExPZTFDY3A2eHFtCm5GV05iem1Uay9XbVhpWGxzNWpraXlBcGJjM2tMdTlu
MmJGK3lwR3RuSlpPc0pXVW5YVFo5cnMzanYxbnltU3FEcVdzWWxaZWw4ZXgKL2tsZ21iNHZad0VT
UkdaQ0g2dXh6MnJxTk55L2xrbFI2alhWNWxMM1pXMHFuL2NmcCtxMGFOeVh5WG0vbkZYR1Q1YkxH
WjVZbGNBMQo0NktjNlp6YWRzcDZrei9iZExhemJBOWwrNmtkUXlrbjR6SkhlOHNZeTVqT21aQXkw
VWtkczczMzA3TDFEcmU3c2JGUXlsdFdWdm04ClBFNXRjNHY2S2Z1cVpmdVlsTHVkdHBmNlRJMmI1
QnNieTZXY01sYVg5ZG5RZE1waGJOOVMxamw4TEhVbzd5L3JrN2xsenhuek5kNWoKMitDcTQyUHVO
ampzdDVwdG9maVh4NXR2dnJtZEoxemZiZU9mKzl6bnVvTnlLYWZHWW16c1RlMUhwOGJZc3JGYTZs
MGVhK3BaOGs0OQo3dVlZblZwM1BqOHhXNnZKM2ViSkRqbS9FcElieGpQcHlSRzZuQUxjVHNya3A2
VCtwQ2Rmd2ptRm5Sdkd5NzhjNGMzUnc1MUltVHdtClpXTW9IWkRKWEc1SUxqZXhqNjBuOTN6a2pN
Zlh2blpXOHgvLzQxbnRrZnVtK2VkLzNqcExNTFpjLzdNRUpMbkhvYVFFSGJrVUtTbG4KTy9Jdlp4
L3lDMUQ1aGEzK3BIdkpYTFlVZGRKajJ2ZUZMeHhzVHkzbVNON1dyMmUxYzdIUjFNYVd4MU9wVSsw
Wmw3RjJIUy8wMkpOeQpML1JGRjUyWW5PY1hzSkxLSldQSHNuWm5qM0xUK2VjL3Z6eVl5T1ZsL1FE
a2tVZU9ORGZmZk9JWHRVcFpxejdtS0hzbXpwazg1bDkyCnVuLys1My9lQmF5bHJCejF6UmhPRUpz
OHE2VHMxTXJFUE12VnJLK00yK1RQaENBSEJETGgyZXJ2TDNTbmtuUGtObWNzczJNcnFiOWMKM2h1
K1RqbGoyOWt3Ly9EMWNQbE1kTk9la3JLVExoUHM4bDU1VEhDUlNXZ0pXUEorZjZLY013R2xIOG95
cGF6c004YmNzbHdtVFRseQpsTXVFTXJsYzFrOWpiWnFxUTZuWHNzZVVuY3YzMGlmRC9rbjdNN2I2
NjgvK0tIVWYrMnh1blZMWC9qcnpldGlQZVcrVlZGT240YmhmClZQNHE0eWZMSjJCTjMrWXloS1FF
bk9uM2Z1cTN0Yi90bER6OXp6TVd5NW1qVmNaUWd1VCtRWXFjN2M5MmxZbE9IaE9ZOU1kMjFyMXMK
dmNQUHhzYkNWQnZLNStWeGFwdEx2bUUvcFo3THhuRHliNmZ0V1M2cFp0eHM1YXo3NzFpZjliMm5I
TWIyTFhVMVdkNi9jOHVlTStacgp2S2Uyd1ZYSFI3ejY5cXRzZzhObGE3YUZZZjlrMzFaUytmN0lk
M2VOUlZsdTJXTy9YY25UMzQ5T2piR3hzZHBmMzA3VXMxOWUvM20vCi92MTkzOXd4Mmw5SC8vbmd1
SHovby9Ibm1XaGxZR2JubkZOYTVSZWwrcDI3YUNKVGpnaWw5QXk4a3ZxWFk2WHM3T0QrMjMvN2I5
MU8KUElGQ3JxWGRxVlFDa0h6WnowMzVPZGhNbW5NL1IzNnFOMmNPYWxKKzVqYVhSdVZJZjg0cTVG
OStncmFmRW55MCsvcjIrdVc2TXZ2TAo5cC9uNTNWejQvYVh2M3lnYVg4cHVkM1E2Z081bkpGSlVO
SGJadnRGZit4NVRidktRdVVlamx3bWRmYlpXMEZJN245Sm00OWRMVkt5CmRyK0dsVE1rOFY2VWNp
YnE3YmVQdGhPNEU1L243RkhlS3lsbldmUHZ2L3lYRDd0ZnovcnNaK3VHZjhaTE5zeHlaTDZVMTMv
TVpEWTcKa0p4Q3pkbTAvaVM2bjYvbWVjMzZodVdrZm1WQ25aOGJ6TkdXYkRQNWFlenNzRTVWeW40
aGx4Zms3RU8rcVBJdkJ6RVdwWndSTFpjRgo5VDh2TzhYc2E4cTEzR1Uva3pNNitUejdtaW0zWE91
YnM1KzUvalVCUzRMSVVrNS9mV1BQcCtvd3RtejViRm4vNURydy9uNnc1TS9qCjJHYzdVYWYrdW5i
aStVN1ZhWlh4azNwbkcwalFsb05pdVlReDQySnFXK3h2TzFOdHJ4MUQyUmZraUhlK0d6UEc4cDJX
bEd1OEUzd08KZzZLcDlmWS9IeHNML1h3MXo2ZTJ1V1ZsTEJ2RHlUK243VHMxYnZyMXJ1bXpLWWVw
ZlV0L2ZhcytuMXYybkRGZjQ3M3FOcGoyajQyUApSVDZyYklQOTVlZHVDNWxiWmg2YmJUUUgxTWUr
WC9ycjNjN3pxVEdXTW12R2FrMmZiYWQrWTh2TUhhUEx5ajU1eHJzczE0TDNjeXE1CkJCT1pWSlJV
SXNxOExxZkJ5MmY5WmZKZWRsUzVGQ0lwWDd5bHZMeE9tVG1TbGRRUFZMbzNadnduVVdpK0FGSisv
eGUyTXZCeS8wZi8KVEV6dGFqSmhUc3FsV2JYcDJtdjNkYi9LOVB6elI5c0o0dEh1SjJqN3krYnZl
MlFDbmN1VHl1UThaMFJXVGZuN0d2bVZxWlN6bmI5VAo4dDU3Ujd0Z29GekNOYlgrcVhiMWw3L3Nz
bjF0UHpUZEpXYmwvUVFlY2N6TjVpWGxKNFp2dVdWL094NU92SmVBbzU5eTlpT1haNVhKCmFqNzd5
bGNPTk4vNjFzSGovL0x6eFFtazh0NXR0NTBZcy8xeUZqM1BUcW9jdVN5Zlo2em03RUpKdVdFdUU5
cWtQSitUYXRiWEx6OWoKTnVNM2s1eHNSem5DbnpNeUpTRHA1OTNyNTVtRVpSdlAyWmtFUXVVK2sw
WDFTSENRSGQyeWJURDdnYmozQTZya3ozdjViTXd0WHk3SgptM3RIMGs4SmlESVpYRFZOMVdHcXZM
SCtTZjJ6eit6dk45TzJCRXRqbjgydDAxU2R0L1A1VHRWcGxmRlQ2cGtEQU5uSFp6dk1tZTJ4CjFO
OTJ4dkxsczFYSDBDM3RaVmk1dkNZSEFWS252TTVsV05tWFROVnJyQzVqWTJGc3VVV2ZUVzF6aTVZ
Wkc4TWwvM2JidmxQanB0U2oKdHMrbUhNYjJMV1ZkMjMzY2liSzNPK1pydkZmZEJtdkdSOTlxbFcy
d3YxeWV6OTBXTWo0eW9jL2x3VFVXdy9XdjhucHFqTldPMWQydQo1NkkyN2NRWVhWUnVWUUNTTCs2
U3lqV3NPY0thbzB1WjhPV0dscEtDVXdLSDNDUFNUNG1LczJQcXAvdzZTUnFYUVRETVg5YlZ6ejk4
Cm5vbFhTZm5TS2FuL3ZKeUpTZDVjcDU5b04wZUhzOTZTOHFzd0R6endRSGR6WDNsditGaFdsYVBv
SmVXbTU5eTAzY1pTN1pmS0NjN2MKcDVGTHJISVRlQ2J4dVplMng5amRDSjVMai9JM0xuS1Rldm5E
ZXlrM2s0NEhIampjbHJldnlmMFk1YjNjdUo2VVNYcEwzK1hMNjlTbgpYNmYrNjNLL1IyN3l6bzNr
K1FPR1pkbXNaMUhxdjUxZjBNclAydWJuaHBQbXRHdTRydHlQY3VlZCs5dko2UW5RbU9YRTJOVlhi
d1ViCmp6OSt1SjFjcCs3NStkMGozYi84UFpCeS8wZ3BNL2VIREg5K04vZlc1Q2Q2eTcvMjZwNTJ2
T2J2Qit4disvNUVNSk15WXBIeDFoOVAKcGV6YzNKb2pMZmsxblh5ZTU3bXh1MXhDbUdzeWMrbFF4
bjZ1S2MzbEg1azBscFFqc05tNUpDMHFQK3N1WXpSNXB0WTNMQ2NUbXB6TgpTL0JmcmxmUGwwRGFr
eUFwWldjZCtaZnRyTHhPT2NtVDkwdks1LzNYdzdxdnVueWNZcFA3WXRLdTRXVW5aYjE1TERmNVpU
OVJVdHFUCi9VL3FtV3Ztc3hOUGUwdEtNSkx5YzNacXpDM3VKZUJJM2x3RHZLd3VZeVpUZFVpOWht
YWxybmtjNjUrVW5hQXhaNHlTTC85eWlXdjIKcDFPZmpibGt2VGxUbE5QbzZmdU14UVE1dy8xNnY5
K254a0hLN0tleXY4MXlTVFZPV1Y5LzNQZkxLOCtueGsvNkt2LzZLUWUyTXBheQpIZmJ2SVNwNSt0
dGdmOXZKNTZsUGFVTjVYZXE0eWhqS3NwbTRwVC96SFpreGtmdEtNdVp5R1dML1FFbFp6N0wxNXZO
OGxuckViR3dzCjFKU1ZQQ1ZOYlhQSk4reW5zVEZjeHRBcWJTOTF5V1BOdUprYXkvM3RMeithc1d5
Nzc1dE9PWXp0Vy9yMUw4LzdkY2k0R1J0WGM4dk8KT3JjNzVtdThwN2JCN1l5UDdXNkRhV3UvMzZh
MmhlUWZwakpHODM2Mi8zd1g1T0JkamNYVTJCdjc3cGdhWTdYN2w1cDZEdmZIUTRPOAozczB4dW1o
OWk5NDcwSjRGK0x0Rkg1VDNjZ281QTdBMEtCT3JUR3F5YzgrbEZQbTdHc05MVXdLVUFDWFgzMmFD
a0tPTk9idVFuVzl1Cm1PcnZmUE5lZ3BMZzUvS1ZzcUZtcDVHQUpKT3FURjR5dVJ1bTFDMkJReG5N
MlRHbTdEem0rdXJ5eFpIMXB4NVB0RGZFWnRLWW0zYUgKbDE5bG1SeWx6ZnF5UXhpbVRKSnpKRDQz
Wk9kK2lFem9NeEhPZlFhWjJIN2pHeWYvNWUxTXJoOTZhT3NzUnVLaTNPUFJOckU3aXAvTApqSExF
L2xlL090TGVKSjEvaDd1eTh1dFdtWGduMEhqMDBmd1MxZjUyUFVmYWplUkllOW5JMWszckxWZjNQ
UFU0NjZ5dG42L05ldks2Ci9WNXIyOXgwNnkydmMwOUV6cktrbm5rdnYyU1ZnS2s5YU41K09YLzhy
N2ZuWHBFbm56emE5dmZXMzl0SVczTVBTYm4wYVU2N0ZwMkIKU1pDVk0wRHhUVkNSbS9Qek4wSE9P
V2QvRnl6OTZFZUgyK3ZmOC9PWitjblpyWC9KOTRVdmJOMlVuMzVLZ0pKTDRQSVR4NHZXVWZveQp3
ZGl6eng3OTJFM3BtYXhuSEdWc0o3aklwQ0U3bW5KbUx4T0cvTXRsSFJsWEdVYzU0cFN4a2gxWUpv
ejUxYVpNQXJOTUp0QmxMR1h5Cm1GT3ZXVGFQMldiNkU5K000V3hMK1N4NXM5Nng5YVV0eVo5Nlpp
S1o3U3pyeXE5aHBkd0UxUW1JVW9kOCtXYW5sM1hrS0ZQS3pYYVkKOXhPRVovdkk1VWdwSzl0REpx
UnBYeWFuYVZ1MmxYN2RzMHpXdmNyeU9lS2JvRDgvazVoL1pmMlpqQTNQMEdTSG1IVm1meFBqbksx
TQp5azQ5YmN0TjJmRXIyM2IyU1dsYmJ0d3Zac3Y2S1czTFQ5R21mK0tXZjdtMG9MOHZ5cnF5YjB0
ZkxUUEpmbWlzRGltamJ6YnM3N0grCnlYNG5SK0xTOXV3THMvL00vWFpaWjJ3eU5oWjlGc2VwT21X
Q2tuYmxhSHpjNHBUOVpuOThMbXZ6Y0J3TTI1VEFKdlZOdTlOWHlaL3kKeCtxMGFOekhicGpHeGsr
MjE2dzM0ekhyaTA4WlUvSEtSR1c0THgvYmRuSzJJcC9ISjl0RFBNcjJrSDVKbVRWanFMUWhZeXRs
NVBzcgp5K1oxelBOOWw5Y2xUYTAzOWNsMldyYTdiRHZMeHNsVVdjUHYwZFJqYkp2THZqRW0vZjNU
MkJoT3dKYytxRzE3TVNpUGM4ZnljS3htClRPUk0ySEM3ejN4Z2FCcWJaZnVlbUMvYnQ1UzY5eC83
KzRDTXcyeTN5OFpWem9adHQreit0cGkrWEhYTTEzaVBiWU5sdksweVB2S3IKV3RrdUZuMS9sZktX
V2EyeUxmVDdvenpQOHRuMzVESGZuZmxlek9YK0dSODFGblAyby9uK0d0dldNZ1pxOWk5VDlWeTBQ
Kzd2YjRyRgpibzdSc282cHgzMzMzMy8vaWNPZlU3bFgvRHhmK3RtQkJTeEhLZE41WXlsZlhwbjhs
TUdjTDhmK1pHMXMyWjM0TER2NHJITTRLZGx1CjJUbjdrWVBMT2J1UnN3Lzl5Zkh2Zm5lb2piajNk
d0ZERGhvbU9NbE4xamZkdEw4TjZFNmNTZG51dW9mTDVVeE5PY3N5ck1zd2IxN24KckUyNnExL25r
bTgzMnBVeVkzRGVlU2VmbVNqckhIdk1zdTMrN0dObk5jYVcyYzVubWJCbnA1a3hrakc5U3NxMk1E
WCtoK1V0VzE5KwptQ0ZmV2psN21DK2M3TGlHS2UrWGJTZmIxYXIxN1plM25icVg1Uk4wNUlCRTJw
STZaUUtXTDVsTURJY0hMc295cVcrK0lPS1Y1ZkxsCjBFODVncFg5UkxiVDdOQ0hhWkZibGlrVHdG
Z1VtK0d5dGErbjZqQmxOdFkvS1R2TEwrclhxYyttWExKODJyNmRNVEhWcGtWMlUwNkwKbHVtL3Q1
M3hrK1V6YWM1RWVUakdhcmFkL3ZyN3o5T1dWY2ZRY1B3T1gvZkxYL1g1MkZoWXRheXBiVzVSZVdO
ak9QbUhiUjIrWGxSbQplVzlxM0tTczVGazJsc3RZWGJYUHBoeXkzdHJ2Z0ZLSDBxYXB4N2xsenhu
elk5N2IzUWFYalk4NTIrQXl3OVIvMlQ1ejBUTHB3M3kvCkxQcGVITE5JV1ZOamI5SDYrdTh0RzJP
cmp0V3BldmJYdWV6NWJvN1JaZXZzdjE5M0YyNS9pUldlcDRNVG9kZW1ESVljaFJnZXBhbGQKZm02
K2ZHRXRTOS8vL29sTHZaYmxXZlg5WC8vNjVFc0hzbnpPQUp6dTZYUnAxLzMzbnpnS1dXT2VpZkNp
Q1cvTnNxc0dIeWx6YW4zNQo4bDAya2U2L3YyZ25XMVBua21jN2RjK3krVUxNR2FJY3hlK25UT0xH
dHJYVXQ2eHpHSHlrbkN5ZkF4ckwwaUszTEpPMDZFalFzbkxHCjNwK3FRNm4vc2pMRytpZGxMd28r
VXRiVVoxTXVwVDdiR1JOVGJTcGw5eCtublBwNWg4KzNNMzRTdUtadDVhemdzTXp5ZW16YktYbUcK
ajJsTDBpcGphRGgraDYrSDYxamw5ZGhZV0tXYzVKM2E1aGFWTnphR2szL1kxdUhyUldXVzk2YkdU
YitzUldPNWpOVlYrMnpLSWV1dAovUTRvZFNodG1ucmNidGs3TWVhWGVXOW5HeXp0bkJvZjI5a0dT
OW5EeDFXM2hWeXRzQ3d0c3lqNXA4WmV5YmZzY2RrWVczV3NUdFZ6CjJmcjc3Ky9tR08ydlo5bnpY
UTFBbHEzMGRIeC8xY25xV0J2enkxZi85RStIMmt1ZzluVS9yNXV6RSswQnorNzFkZGVkZkxSM3JK
eDEKKzJ4VDI3Vk96am5xa2FNM09kSzk3aW1YY1pYN3FuTDZPVWZFY3NRbGwybU1UWlRYdlYzcXR6
Y0NxNDZmWEQvLzBDQUFBQ0FBU1VSQgpWTjZYOFpiSlJlN3hLMS9vcGJhbjA3WlQ2dXlSd0pqQWJv
LzVWYmZCc2JybU05dmdsTkNaOWZtdVhvSjFabEd1MXRyY3QvRFNTL2xECmh2bjUzUnpSWGUyU250
WFd0bmU1TjdWZGV5YzR2cVpjUDVzQUpDbG5FWWJYdUk4dnZmZWY1cEtyM011UmEzNXpObFRnc2Zk
OWNEcXYKY1pYeGsrQTJsL2ZscHRKRlJ6aFB0MjNuZE80M2RkOGJnYjBZODZ0c2cxT3R0ZzFPQ1ox
Wm53dEF6cXorMWxvQ0JBZ1FJRUNBQUFFQwpwMVJnTXc2N24xSkNLeWRBZ0FBQkFnUUlFQ0JBb0Za
Z3BRQWtsMUhrcHRLYzlwTUlFQ0JBZ0FBQkFnUUlFQ0N3cWtCMUFKSmZROGpmCjVzanY1UC9EUC94
RDkxTmtxNjVNZmdJRUNCQWdRSUFBQVFJRXpteUJxbC9CeXEvWDVBK2svTTNmL0UzM3l5TDVLNmY5
bnlMYkRtRisKU3psL0NDWi80RWNpUUlBQUFRSUVDQkFnUU9ETUVLZzZBNUsvSko0L25sSisxbkQ0
VjhSWHBVcForZXZSQ1VBa0FnUUlFQ0JBZ0FBQgpBZ1RPSElISk15QzU5T3JwcDUvdWZyLzVaei83
V1hmbTQ3Nzc3dXYrVXZHdmZ2V3I3ZzhZNVc4UzVDZEJQL3ZaejNaL0dDMzNpV1M1Ci9NWG8vRkhC
L0NYTi9QR1ZiMzd6bTkwZjhYbjQ0WWViWjU1NXBubnJyYmU2djJmd3hTOStjZWtmVkR0enVrSkxD
UkFnUUlBQUFRSUUKQ0d5K3dPUVprTnR1dTYyNTlkWmJPNGtFQ2drK2tuN3dneDgwK1NNMW4vLzg1
NXR2Zk9NYnpTdXZ2Tkw4NkVjLzZqNjc1SkpMbXRkZQplNjE1OXRsbnU3L28rKzF2Zjd0Ny84RUhI
K3dlNzc3Nzd1NzlHMjY0b2ZuS1Y3NGkrT2hVL0ljQUFRSUVDQkFnUUlEQTVndE1CaUNMCkNKNTc3
cm51ajR2ZGVPT04zY2M1dTNITExiYzBlVCtYVloxNzdybmRtWTVMTDcyMCs2dkhPVHVTUDBLV014
NzlWQzdwNnIvbk9RRUMKQkFnUUlFQ0FBQUVDbXl1d3JRRGsxVmRmYmM0NTU1enVzcXBDazdNaFNU
bnprVFFNTHM0NjZ5eS9uTlhKK0E4QkFnUUlFQ0JBZ0FDQgpNMWRnV3dGSWZoWHJ3dzgvN080REtY
UzU3Q3BCUjM3ZFNpSkFnQUFCQWdRSUVDQkFnTUFpZ1cwRklMbXgvT2pSbzAzT2hKU1VQMDZZCjkv
S1pSSUFBQVFJRUNCQWdRSUFBZ1VVQ1ZRSElSeDk5MUMyYk14OUp1WG44dlBQTzYvNHFldmRHKzU4
RUl4ZGRkRkZ6elRYWGRHL2wKcDNZVGtKU1VaZnV2eno3NzdPYTk5OTdyUHM3WmxKdzV5YTlsdmZ2
dXUyVVJqd1FJRUNCQWdBQUJBZ1FJYkpqQWdYdnZ2ZmZ2eHRxVQpYN2Y2L2U5LzN3VUdDU291dlBE
QzdpYnozRlNlWDdWSzRKQUE1Y2tubjJ5KzlLVXZkWi9scjZVLzlOQkR6ZnZ2djkva2I0Yms3RWp5
CjV1ZDZjNjlJeWtpZ2tUeDVURm5KKzhNZi9yREpqZXVYWFhiWldKVjhSb0FBQVFJRUNCQWdRSURB
YVNxdzcvNzc3ejl4bW1MRlJ1U00KUm9LSzNQdVJvR0xWbE1Ba043T1hsQ0FrdjZBbEVTQkFnQUFC
QWdRSUVDQ3dtUUtUZjRod3JOa0pQSExaMVhaVFAvaElHWUtQN1VwYQpqZ0FCQWdRSUVDQkFnTURw
SVZCMUQ4anAwUlMxSkVDQUFBRUNCQWdRSUVCZzNRVUVJT3ZlUStwSGdBQUJBZ1FJRUNCQVlJTUVC
Q0FiCjFKbWFRb0FBQVFJRUNCQWdRR0RkQlFRZzY5NUQ2a2VBQUFFQ0JBZ1FJRUJnZ3dRRUlCdlVt
WnBDZ0FBQkFnUUlFQ0JBWU4wRkJDRHIKM2tQcVI0QUFBUUlFQ0JBZ1FHQ0RCQVFnRzlTWm1rS0FB
QUVDQkFnUUlFQmczUVVFSU92ZVErcEhnQUFCQWdRSUVDQkFZSU1FQkNBYgoxSm1hUW9BQUFRSUVD
QkFnUUdEZEJRUWc2OTVENmtlQUFBRUNCQWdRSUVCZ2d3UUVJQnZVbVpwQ2dBQUJBZ1FJRUNCQVlO
MEZCQ0RyCjNrUHFSNEFBQVFJRUNCQWdRR0NEQkFRZ0c5U1pta0tBQUFFQ0JBZ1FJRUJnM1FVRUlP
dmVRK3BIZ0FBQkFnUUlFQ0JBWUlNRUJDQWIKMUptYVFvQUFBUUlFQ0JBZ1FHRGRCUVFnNjk1RDZr
ZUFBQUVDQkFnUUlFQmdnd1FFSUJ2VW1acENnQUFCQWdRSUVDQkFZTjBGQkNEcgoza1BxUjRBQUFR
SUVDQkFnUUdDREJBNU90ZVdSSTQ5TVpmRTVBUUlFQ0JBZ1FJQUFBUUlFT29IYjk5OCtLdUVNeUNp
UER3a1FJRUNBCkFBRUNCQWdRMkVrQkFjaE9haXFMQUFFQ0JBZ1FJRUNBQUlGUkFRSElLSThQQ1JB
Z1FJQUFBUUlFQ0JEWVNRRUJ5RTVxS29zQUFRSUUKQ0JBZ1FJQUFnVkdCdFFwQWpoNDUycnozeG52
TnU2KzkyeHc1ZEtTcitQdHZ2ai9hZ04zKzhNTjNQNXhjUlUyOWEvSk1ycWd5USt4cQo2bDFaM05w
bU8vVGhvZWFEdHo4NFhyOFl2LzN5MjB0ZkgvOWdGNTRNNjdMcUtvWjFYM1g1aitVLzJqVDliV2R1
L1Q1V3ZqY0lFQ0JBCmdBQUJBdHNVbVB3VnJINjVUejN3VlBQU295ODE1MTU4Ym5QK1plYzNyejc1
YXZkeG5oODQrMER6enN2dk5FY09IMm51Kzk1OXpSdlAKdmRFODg1dG5tZy9mMlpyQUo4K0ZWMXpZ
SFByb1VQUDJTMjkzRStUcjdyMnV1ZmFlYTdzeU1uRjg4dCtmYks2NCtZcm12RXZPYTE3OAp3NHZO
TzYrKzA1eDkvdG5OSGQrOG8xbGwzUWZPT3RDdmR2UHk0eTgzei83bTJlYWo5ei9xM3Ivb3FvdWFv
KzMvM24vci9lYjhTODV2CnJyN3o2dWJpYXk0K2Fabnk0dUgvNytIbXRtL2MxdFdwdk5kL25LcDM4
dGJrNlplNTZQa2pQM2lrZWZ1VnQ1c0xMcitnU2Z0ZWUvcTEKemlhdWFkYzdyN3pUM1B3bk56Zjc5
dTlybnZqM0p6clhZcnVvdkUxNEwzMzYxb3R2TlovKzN6L2R0VC90UHZUQm9lWnozLzNjeDE3dgpk
bnY3ZFZsMVhlbTdmdDFYWFg2WVA5dk5Fejk5b2psNDlzSG1ybS9mMVgwOHAzN0Q4cjBtUUlBQUFR
SUVDTXdSV0NrQXlZcXV2dXZxCjVwT2YvV1FYYUpRQUpKUDM2Kys5dmp2aSt2dC8vbjFYbjh0dnZM
dzdpL0hrejU3c1hsLy9tZXViaTY4K05zbHZqODQrL0M4UGQrL24KUHpsaS8raVBIbTB1dStHeTVw
cTdyK25lditUYVM1b3Myei9DWGJ2dTR3VWZlM0xsTFZkMkFjOXp2M3V1ZStlRysyNW96cnYwdk9i
WgozejdiNUwwM1gzaXptNmhkZU9XRkp5MmF5ZTBINzN6UUJWMDNmdUhHa3o3TGk1cDYxK1Q1V01F
TDNqaHk5RWp6cWYvd3FlYnNDODd1ClBuM2d2enpRWFBTSmk3cWdJMis4OFBBTFRZNmlKNEFyN1Z4
UXpNcHZsU1B6V2RmY3RKTmxwUzRKWUE5L2VMaXIxZ1ZYWE5CY2VmT1YKemZNUFBiL3dkZmZtRHY1
bjJKWitYVlpkemJEdXF5NC96SjhnTmYzMS9oc256aDdPcWQrd2ZLOEpFQ0JBZ0FBQkFuTUVWcm9F
SzBmWApyL3ZVZFV2WGx6TWptUUMzSnhlNmRQQ2NFL0hOdm4zN3V2ZHlSdVNEZHo5b1B2bTVUemJs
dlJ6Wno1SHJuQ25JaEwya1QzN21rODNaCjUyMU51RmRkZHltalBKNTE3bG5sYWROc1ZlVkVRTlIr
OHNiemI1ejQvTml6bk8xSmV1V0pWNXJESDIxTmRJOTkxRDNVMUxzbVQ3L00KWmMrdnVmT2E0OEhI
b2p4WDNYcFZkMllxbjhWcUoxSW0yWS8vNVBIbXJaZmVtbDNjVHBaVktwTWovT2RjZUU1NStiRjI3
NVREOFJVYwplN0tvTGNPNkRKZVplcjFqZFQyMjdYWGJWbThZckZxL28wZVBGVFJWOFIzKy9GU3Rk
NGVib1RnQ0JBZ1FJRUJnUk9CRWhEQ1NxWHlVCk13ZFQ2WWJQamVkNTRaRVhta3V2dmJRN1Fuditw
ZWQzeGVVeXFLVDNYbit2K2MwLy9LWTdtM0xGVFZkMGwzWGQvT1didTg5Mll0MWQKUWIzL1pDSlow
cmtYbkZ1ZWRvOEppRXJRa3N2S1hubnlsZVlUdDMvaXBEdzE5YTdKazBKekZpWm5mSzY2N2FybW1y
dTJ6Z0wxVjdicwpFckdTWi8vQi9jM3dERTR1dTNuNWlaZTdTN2J1K05NN2pnY3doOTQvMUR6Mysr
ZTZlMjBPSHpyYzNQU0ZtNW9jaFIrbUYvN3dRdlA2CnM2ODM1NzU5Ym5jcFhjNENKVUJjdEd6dTIz
bjZWMDgzSDczM1VYUGpGMjlzRGh3ODBGMEdsTXZiRXBRdUtpdDFMdW4xWjE3dkxrTzYKNk1yMnJF
N2I1M245eDEvK3Nja1l1ZW1MTjNXQlJzN3l2UGJNYTgxZDM3eXJ1NVF2Z1dIeTNmMFhkNWRpVm5w
YzVwQXpYeTg5OWxJWAovQ2FvZnU3QjU3cGcrYzV2M3RrWkR0dHk3YWV1N1M2SkszV0pSWlpQQUw3
L3dQN3U3TlFkZjNaSGM4NzU1eXkwRzFiNjFhZGU3YzVpCm5YUEJPVjJnbmpyazNxaGNvcGd6aVl2
T1JtV01QdjNMcDd0MTVwSzg5OTU4cjltL2Y4czNyNGRXci8zeHRTYjNoU1N3VGgvZi9iOXQKR2Fi
dHVZUXJLZS9IUHBkRVpuem1Vc1lFZk5sdVVsNkNwbHoybHpPYlU1K252R1hlK1d6WmVwZFo1aXlQ
UklBQUFRSUVDSnllQWlkbQpnTHRjLzl3VW5VblBLNCsvOHJFMUhUejNZSFBKTlpkMDcyY0NtK3ZY
Zi90UHYrMnU0LzlZNWgxODQ5VS9idDNEa3N1eExyMyswcE5LCnpzUTlsM3psVXJDa0Z4OTU4YVRQ
ODZLbTNqVjVVbFl1Wjh2Wm9kejdzaE1wMXBtbzN2TVg5elE1cXB4SmRKZmFtT3Z4bno3ZUJYbDMK
ZmV1dTdwNlNSLzcxa1lWbmVCSUlKUWk3N0pPWGRVRkJKdFBMbHMyOUtMbm5KUGZWSEQxOHRQbm9n
NCs2d0tNN0k5YXUrR05sOVlLUAoxQ3YrdWQ4bjl4TGxIcGNzbDRsdjNpdG5PYzY5Nk56bXFsdXVh
dllkMk5jRkJMazg3djIzVDF4bTFMV3Y5ajhqRHVkZGZGNFhuTDMrCjNPdGQrK09VVkF5SGJVbDkr
M1hKQkQzK3VROHFkWTVmQXJKbGRzTXE1L0xGQkM5SGpodzVmbFlyZFRycnZMTVdCaDlaL3JFZlBk
YmsKM3FiclBuMWRGMUIrK1BhSkgwL0kyWkNUNnRlT2gxeXExZ1c3N1NXUDNXUys5U2huZHZJNmww
SW1zTWhsaWtublhuaHVGeVJrbkY1NgozYVhOYlYrN3JidkhKTnRxemVjNUs3cXMvV1ByWFdTWnN6
a1NBUUlFQ0JBZ2NQb0s3RmtBOHVielcwZFFGMTNLRkw1YnYzWnJOMUVyCmxMbCtQZmVUWkNLMzB5
bG5Cdjd3TDMvb0pwbVphTjM5N2J1N2lXOS9QUis4OVVFMytjMzlJMGw1bmFPMHcxUlQ3NW84Vjk1
NlpYZGoKLzA3ZE9IN0pkWmQwazlWTVdpLyt4TVhOZTIrOTExVzlDN3JheVdBdXE4cGxad2t3Y2lS
ODdES3JjcW5jMUxJSmVISWZ6OU8vZnJwNQo5WWxYbTZ2dnVIcklkZnl5dTQ5OTBMNFI2NHlUY2ds
ZkpzQTVDbDh1eThsUjlrem1rekpCTDJlWHVqZFcvTTlZV3hJMEp1aEorUWxBCkV3U2xMZ211K3Ft
NERPdVNzMGs1YTNIZVJlZDE5YzFaaEhkZmY3ZHJWNjE3emh4bHZKVWZjWGpyNWJlT0I4UDlPdVI1
Ym1KUFh4NC8KUzlaZWVsVUM1M3crckYvdW0wbDlFaUFsNWZLOXBKelJ1UFNUbDNabm5mSTZ5NVZm
MHNxOVIzRklvSmd6YlJkZWRXRno2MWR2N2M1NApKYy9VNTJQZVkrdGRaRmtDMHRSUklrQ0FBQUVD
QkU0L2dUMExRRExCenE5WjVkS3FSU21YNDJTaW5rdFZjdVM3UysxRStja0huancrCklWMjAzSGJl
eXcyNXFjczkzN21udTZTbGZ5bFF5c3ZFcjF5U2xJbGNKbUpKaTg1TzFOUzdKazhtZGFsUGprcnZk
TW9SK25KdlRlNUoKU1hzeTZjdS9yRGNXRjF3MmZVbEx6Yks1QkMvQldzNklsSHR0YXR1VEkvKzU5
QzJUN2FSY2RwUjZ2L1hDVzkxWmxieDNVbC8xN25ISQpaNnVrcWJhME9pY1ZsL1htak1UU2RITDI3
dktuTW02eXpOVDZodVhtTEVPQ3gxektsZlRHczI4Y0Q3NkdlUlBVNUV4TCtybWt6cWxmCnA5N3ox
T3V5Nnk5cmN1WXJ2eTdYL2JEQnNjOXYvUHlOM2VWdHovLysrZWJ0Rjk5dWNvbmVTYWxYVG9Lc3JE
T0I0ZkcwNVBPcDlvK3QKTjVlUzlTMlByOHNUQWdRSUVDQkE0TFFVMlBOckdUTEpMQ20vY0pXSlVp
WlhGMTE5VVpOcjNuTVU5MU5YZjZwNTluZGJ2MUNWbzdXNQpmR1F2ajNybThxdXN0eHdoemlVZm1S
am5hSHd1SmN1UjRLU1hIM3Q1c3Q0Slp0YXBiWWMvYUNlVWJkaVpJL3FycHBwbGMxWWdrOFZjCjRw
T2dzejhwbmxwZm5IUG1KcGY1WkxrRVJTa3ZSODl6NW14NG1keFVlV09mMTdSbGJQbFZQMXQ1ZmUx
RVB2Y2M1YjZYWEZhVmV6eVcKV1daTVpud08wekNJNm4rZXN4ZTV4eVpCZGU2elNCQ2E4dlBEQy9r
eGlOemJrWHMrM243MTdmNWlIMy9lMWpPQjdOSjA3UE9wOXErOAozcVVyOUFFQkFnUUlFQ0N3N2dK
N2RnYWtRT1F5blhKMjRZOC8vMk0zd2N4UjF2eGRpK09wbmJSazBsVW0rbnQ1OURNVHVWeDNmdnVm
CjN0N2M5dlhidW44NU0xTlMrV1dzdks2cGQwMmVycXgyZ3YzU0l5K2Q5TFBEWlowNytaaWozYm5N
S2ZkcDlOUFlKVmdsWDgyeStkc3YKT1l1VmxPZXJwdnlVYnNaQ2dyc0VNTGtYSks5emxEMzNPT3hV
cW1uTFRxMHI1V3huZmJra0xZSFhNNzkrWnJUdE9WUFMvYUhCOXN4VApUY3BONmJsSEp6L3NrTUFq
WjVweXFXTnVYTThaa1p6RkdnMHFqcTBrWjdvU3FKY2ZreGl1dS8vNVdQdFhYZTl3UFY0VElFQ0FB
QUVDCnA1ZkF0Z09RM0N4ZVV2OTVlUytQbVJTVlZDNWZ5Y1FtbDFUazV0WmNoMTZDaStjZmZMNjdu
cnprVHhDUXkyOXlUOEh3eUc5L2ZmM24KWmRsRmo1bDBsVFMyVEg3aGFIaDJJSmVFNVJLWHBGd1NV
eTVueXV1YWV0Zmt5V1Q5cVo4LzFUenlvMGRTN0hocVk0ZjRMRHJxblFWVAp2eHd4THluUFM1MHZ2
Mm5yTXFmODRsWW1qeWtqZlpHYmpCZWwzQlQrNFh0Yk56VG43RVR5TDFzMmdjMDVGNTNUM2YrUXZ4
V1RnQ3BICjEwdnFsNVYxTDBvWFgzdngxdVZoN1ptUDlIdnVYOGxqSnRuRGxEYjFBNm1ZbFB0Rmtu
ZjR1ci84bEVNM1huc3hXdWZaZXoxc3k4ZnEKMHQ3bzNlK0RxZlV0cW11MmpjdHZ1THdiYzdGZmxw
SW5WNHk5K09pSkh6RElmUm5kOW5lc3p2MzZwUTlmZTJvcjRNOVl6NW1sbklrcwo5M3NrSU1oOU9B
bEtVNjkrNnM1a0hIdmp6UmZmN0M3aEt3Y1U4dmF5ejhmYVA3WGU5R25mTXV0SnZmS2pBR1BiY3ZK
SkJBZ1FJRUNBCndQb0pITGozM252L2JxeGFyeDdkK3FXb2ZwNU1OSi81VmZ0WHp0dExQNUp5bzJ3
bU5ibWZvQnc1elUrSjVqS3FjdE41anJMbUp0NWMKVXBLSmRxN3J6MCt1Wm1LU20yaXpmSTU2SjMv
eTVpZEZNN0hKVDhUbTE1ZEtxbGwzeVZzZWN5bkpDdys5Y0h3U25ucms3TXB3MHAzTApVZkpIL0RK
eHk4L3k1cWh0VXE2SDc4NGFaSUxibmpuSTllejVLZUhVYzZyZXRXMUxuWEtVUDM4dHZuK1pXbWxE
ZWN3NnUrQ3RuZGduCnFJcE5maUdwR0pXekI1bmdwejh5UVV2YmN4bmJCWmRlMEwyWEc4L1REMmxY
ZnBVc055RXYrMW5UOVBHTEQ3L1k5WFVtdXJsTWJ0R3kKdWRRc2Z6TWtaNjVTZm9MTW5DMktXK3FS
ditmU0x5c1QzKzQraGRLd1k0KzU1Q28vMTVyTGo3cGZPMm9uMW1sTHpvVDBmLzBvUHhXYgpZREZq
NytCWkI3dkFJL1hLNjZ3L0U5VCs2eHlsTHplTloxVm5uWE5XbDI5Ulc5NSs2ZTF1MmZpbTdoa1BD
U0p6eVdER1pDNEg3TGNsCndVZ0MwMUtYOUdYR1hQN2VUWDU2TndIczJQclNsbHl5VnVyZXIydmFu
T0NoQ3pJR1Z1Vmw4bVFzWit6bThyWFVQeWtHTWM3a3ZXK1YKY1ozTHJ3NGMyQW91TTBieWkyOXBW
eTQ3N003RXRlTWw0L0NWcDE3cEFwUGNrNUkyZFdkUDJ2d0pUakplYi92cWJjZjdNZHZ2c3MvSAoy
cDh4dFd5OWFmdlFNbTNMMlpYSC90ZGpuZTJ5TXpESkp4RWdRSUFBQVFKN0wzRDV2aE8zWEN4YSs3
Nzc3Ny8vNUVPY2cxeVBIS2s0CklqOVladFdYbWJSa2dwS1V5VnVPZUdZeVZDYlZxNWEzVi9scjZs
MlRwOVEzazlweTJWbDViN2NlTXpudDF0ZE9SdnNUODBYclM1QlYKemxUbDgxV1dIWlkzTEd2NGVT
bS9CTEtMWGk5YVpydnY3WFpiaHZWYWRYMloxQ2RnR0o2Vkc1YmJ2VzYzNUFSTDZhc0V5dm01NG9V
cApXM3dDdXpiWVQ5OFBBOEVFTEdYYlMzMUxYeno0L3o3WS9mclY5Wisrdmd0cSttTWk2NW42UEhu
RzJyOXN2Vmx1VWFvWlM0dVc4eDRCCkFnUUlFQ0N3dXdLMzc3OTlkQVY3ZmhQNm90cmtpSFZKK1dX
ZDB5WFYxTHNtVDJudlhnVWZXVjhtbGJVMzlnOG5tcXNzVzlwV0hvZGwKbGZmN2oyWENXOTRidmk3
djc4VGpicmRsV01mYTllWElmL0xtRE5LdFh6OXhEOUt3dkpOZXQwRkY4VjBhZkdTQlkzSEo4TkxH
VWxZSgpQcnFzQzI0d1Q4QXlERnJLc25rYyszeXMvVlByN2E4anowdGJoKzk3VFlBQUFRSUVDS3kz
d0ZvRUlPdE5wSFlFOWxZZ2wwRGxNc1hjCjk1SmZvMXFMMUo0MXlhVmEvVDl3ZUZLOXBqNC9LYk1Y
QkFnUUlFQ0F3SmtzSUFBNWszdGYyOWRTb0xzSHFEMUxVZjRXeURwVThwVW4KMjN1RmJ0LzZHelc1
djJ0NG45TFU1K3ZRQm5VZ1FJQUFBUUlFMWtOQUFMSWUvYUFXQkk0TDVLYjIzZmlEbE1kWHNJMG4r
UkdBc1RUMQorZGl5UGlOQWdBQUJBZ1RPTElFVFB5OTFaclZiYXdrUUlFQ0FBQUVDQkFnUU9BVUNB
cEJUZ0c2VkJBZ1FJRUNBQUFFQ0JNNVVnY2xMCnNLWitSdXRNaGROdUFnUUlFQ0JBZ0FBQkFnUldG
M0FHWkhVelN4QWdRSUFBQVFJRUNCQWdzRTBCQWNnMjRTeEdnQUFCQWdRSUVDQkEKZ01EcUFnS1Ex
YzBzUVlBQUFRSUVDQkFnUUlEQU5nVUVJTnVFc3hnQkFnUUlFQ0JBZ0FBQkFxc0xDRUJXTjdNRUFR
SUVDQkFnUUlBQQpBUUxiRkJDQWJCUE9ZZ1FJRUNCQWdBQUJBZ1FJckM0Z0FGbmR6QklFQ0JBZ1FJ
QUFBUUlFQ0d4VFFBQ3lUVGlMRVNCQWdBQUJBZ1FJCkVDQ3d1b0FBWkhVelN4QWdRSUFBQVFJRUNC
QWdzRTBCQWNnMjRTeEdnQUFCQWdRSUVDQkFnTURxQWdLUTFjMHNRWUFBQVFJRUNCQWcKUUlEQU5n
VUVJTnVFc3hnQkFnUUlFQ0JBZ0FBQkFxc0xDRUJXTjdNRUFRSUVDQkFnUUlBQUFRTGJGQkNBYkJQ
T1lnUUlFQ0JBZ0FBQgpBZ1FJckM0Z0FGbmR6QklFQ0JBZ1FJQUFBUUlFQ0d4VDRPRGtjdi80L2Nr
c01oQWdRSUFBQVFJRUNCQWdRS0FUK012N1J5R2NBUm5sCjhTRUJBZ1FJRUNCQWdBQUJBanNwSUFE
WlNVMWxFU0JBZ0FBQkFnUUlFQ0F3S2lBQUdlWHhJUUVDQkFnUUlFQ0FBQUVDT3lrZ0FObEoKVFdV
UklFQ0FBQUVDQkFnUUlEQXFzRllCeUpHMnFtOGNicHBYRHpYTlIwZTM2djFtKy9wVXBuZFRLV25i
QXUrM2ZpOTgxRFFmSE92UApzWUxTNTJlQ2R5emU2bzNydyszcmw5c3hYOUx3ZFhtL1BKNHBUbWRL
TzB1LzdzVGpjR3lWTWxmWkRzc3lwK3B4MkliaDlqQjhQYXpuClRvNmJxWFVOMTUzWHExalBxZXZV
c2tQSFJYVWRleTlmZlh2MS9UdlZsckY2cnV0bmV6VU8xclg5NmtWZ1NtRDZWN0I2SmZ6czNhWjUK
NUlPbXViZ05XeTVybDN6eXc2MFBMenZRTkdmdmE1cFgya2xVNWxILzE2Vk44Mnc3NmZ6MWUwM3p6
ckVKL09WdG5pdmFaVDVzSjFzdgp0Wmt5MGZ6TXVVM3pxZk8yeXNoN1AzMm5hVzQ1cDJrdWFjdi9R
N3VlQkNMbnQ4Ly8vS0ttV1dYZFo3VjE2YWNuMnJKKzgvN0g2NUlkCmRKa2NmLzJDcHJuaDdQNVNU
ZE4rM1B6elcwM3pweGUyZFdyclAweHAvMi9iTnI1MXJJMnA2ejF0bTJLUnRyOTk3UDE0M2RxMjY2
NzIKcysya1o5cjFQTmpXLzVWMjBucHJXOGMvYWV1NktQMTcyeitQdG0yOXFGM2ZaMXJYWVhzV0xi
T2I3NlV1K1FLUDg0L2J2djNyUzVybQp3S0J2eXZwam1mNy9WRzlNbE04MjdmRTM3ZGg0c2QwKy9x
cjF5RGFUZHIvZkduMnYzVzZHcjRkdHovYjM4N2FmUDl2MjczYkgwN0RNCmRYeDlwclJ6cCszN1k2
dVV2Y3AyV0pZNWxZLzlOZ3kzaCtIcllUMTNjdHhNcld1NDdyeGV4WHBPWFd2MmwzM0hSWFVkZTYr
MC9hejIKdStRdjJ1L2YzVXcxYmRuTjllOUcyYXVNZzAxcy8yNllLblB6Qk5yZFMzM0toUHp1ZGlL
ZGlkT1h6ait4M0xWbk5jMjMycDNVZjdoNAphL0tkZkRlMUUrVk14a3ZLaFBnTDdUSmZiU2ZQbVlo
K29oZjY1T2pIRDk5dW1tdmFjckxNZGUyeVgybnpYZG5tT1RhSDc0S0IybldYCmRaYkhtOXM2WjJK
YlVxbkwxOXAxL0I5dFhTNWNvcEJKWW9LSWZGRXNTbW5qcDQ4RlVQazg5YnU5L1hkajN1K3RMMjJh
TTFtOHZpMnYKTFA5RU8xSFBoSDZZWXZocysxbFNncmk1d1VjQ2h3Um4yMDJIMnVVelViNmpiWHU4
djlFR2NjUGdvNytPV0NhQTI2blVMM3R1bVR0WgpWdXB5Yit1Um9EWXBRWG5HWjBuRDErWDk4cGp4
TlF5d3kyZWI5TGdUN2R6cGZsdEgzMkViKzJNcjlhM1pEbXZiTlZ4WDdYS3I1dXUzClliZzlERjhQ
eTk2SmNWUEtuRnBYeVZjZUYxbm5zMlg3MFRsMXJkbGY5aDFMSFdzZjAvYXIydS9qN2U2U3A4Wksv
L09hdHRUV08vbjYKWmEreTNFN2xYVFFPOXZLN2I2ZmFvUndDdXkydzB2NGxKd0hLR1l0RkZidTR6
WEJ6TzVFczZaemUwZTd5TkJQNm5CVzVyNTJFN1R2MgpabzYyWkZLZHN5RFplRXY2WEJ1d2xFbnBx
dXN1WlpUSG5KVW9xVHpOR1pZRU9EbWFYTjRyZWZLWW94aEpPWU9TQ2Y2aTFDLzM3SjVtCi8vbDV2
ZmNYbFZIelh0YVRRQy8xZmFROUd6Sk1qN2QxTEVISGRpYW8vZVpsSFQ5cGo4cjNMd3Nhcm0vcTll
dnQyWnFVVTF3VFRQYlQKb25Yc0w1bjdHYmZ4ZkZIWjJ5aW1XMlFueXlwMXlIWnhVZStNV29aSHYr
bkQxMlc1OGpqMWVjbTN5bU8vLzFkWmJqZnp6bW5uS3YyMgpqbTFQL2FmU29qWU94OWJZZGxpemps
S0hSZXNxbisyMDM3QU53M0V3ZkYzcVVSNm5QaS81YWg1WEtXdG9mWG03ejV2YWo2NVMvckMrClUv
dkxvZU53K1dXdlMzL1cxbTA0anNiR1N0YTU2UE9wdGl5cjYvRDlSV1VQODR5OUxtMGZ5elAxMlhB
YzdPVjMzN0J1WSswWjlsdC8KMmJIbCt2azhKekJIWURBdEhDL3E4NzJ6SHN0eVR1WDVRenQ1dnE2
ZFNGL2Qvc3RsWEVtWEhwdU1aY1A5djkvWU9tS2VvOEtaZE9kTQpTTkpVdWJWNXVzS08vZWQzYlYx
eVZxWk0zUHVmNWZyTmM5czljQ2FHYlp6U0JTRTVtcjhiNmZuMlRFTXVuOG9Sc2J0SDFuRjE2NVZM
CjEzSkdKdm5LVVpYc0xKNXB5OGhabDRlUEJVMmxuZ21jZnRWZThwTXZrd1IvRjdSUEVuQWRQRGJq
ZmFvOWE1TEw0cEl2bDNwOXB6MkwKOVhEcmt2SnlhVm1XK1dKclZQTFhsSnZBN2VtMnJOUXJsODZs
ZSs4YmpKMUY2eWhsNS9LMUJGUUpwUDZzUGJOV3psQ2xUM0lwMm12dApPRW1nbXI0Yjd0eFR4cUt5
azMvUnNnbEM0L05lcjUzLzF0YjVycll2Y2lacFVWbDlpN1R6cDIzK3E5cSsrWEk3Vm1QNGk3YThY
SllZCnR3UWFEN1YxZnJyMS9GWjcxaVBXT1l0VnJFdWJWMzFNZTM3UnJqZGxKVWpQbWNVY0FFaXFk
VXJlbFBQTHRyN250dFk1QUpCdEx0dmwKbFcxWk9RSTZObjV5WkRkOW5mVm4zZG1lTXM2K3VZMCtT
MTBXcFdYdHpMak5HYmFjWGJ5ei9aZkxHSExKU2JhUkw3VVdVLzJXZFMwYQorM2wvck0yNWR5ZHRi
dG02czdpNXRET2JVc1ppeGtVdXlVemdma2M3ZHNyQm1sWDZJNmF2dHV0SXloaEpXN0ovekRqTmVz
OXBnZHNtCk5nKzF6M09tdGIrZFp2di9ZN3Q4R1Z2THRzTmw2OGc2NDUxK3pMYjNXcnZPVEtLenIx
bmttY3RzaC91T2xORlBwL3YyMFc5TG5pL3IKeTBYVytmN285OCtpL1dqS1hEYkd4OWFYejBwYXRM
L00vcXkvbjZuWlZydDZ0T1AzdkxidnMvd2I3YjlqdTVTeXFwTWVsNDJqUldPbAp2ODljOUhrcGVG
RmI4dGt5OTdKY2VWeFVkcmJWWmQrQitlN05kODJGYlVPUHRCa2ZiN2U1N01PeUw4OFZHWXZTMlA1
aDBUall5KysrCm12WXM2N2UwTldOZzdQdWd0aDhXdVhtUHdGQWcyOXFlcEV5Yy85aHUzTm5BaHlr
NzZtdnpyZHFtOTlvTklCUEEvK2ZOZVVmZ3QwcGIKL04vVTViRjJwNU12MEdVcE8rOWM5bFIyUXJr
blpiZFNKazg1S3pTMWpreDA3bXduTnJsZklKT25rckpEeWNScjBWR2tIN1NYdGwzUgo3bHdUd09V
eXFKeHQrbEY3ZGlPcFhXWHorM2F5a2NBbkU3bWNkbStMN2lZYzZaTWIyaDF3QXNEK2wwZVdTeG9y
OTdhMnZOenprcFF2CjNlRU9PTzluVXJOb0habEE1Zks4QkVLcHk0UHRGMkpTNnBxamlibXM0TnZ0
QkRmM0ZQMXIyN1pNZ0lacFdIWmNsaTJiQ1ZiYS9tYTcKZ3N6N2NpYnVsblppbCtBamFWalcwT0tU
YmQ0RWRabTQ1MTkzRDFOYnQwekt5MW1PUE9iZW5RU00zSHc2Y1FBQUlBQkpSRUZVN2YrYgpkOW9W
bGZ1R3VwVnM0ejhaTXdsNmNobGg2dnd2clVXTVZuSEthdlBsMjFhdnU1UXcvUlQvcFBQelpwdkcr
am4zUlNVWXpIYVVBQ2I5CmtyU2RQdHRhOHVQL1hkYk9UTDVqbVMvTXBGekdrWDRvNDJHcTMrSzBh
T3luckxFMjU2enRDKzAybElsbHlzajE4UW1RTTc1eUNXUUMKaG96L1g3ZmJWZXF5U24vazBwR1Vr
N0dkTVpsOVR3S2FwSlNUdm5tdS9aZnhsRzB6KzRMaE50UWZXNHUydzdGMVpEMjVGRFlIaUxMKwpH
R1l5a3VCbjZKbHRhcGxmeWlucGROOCtTanZ5T05hWGk2eUhac045UnlsNzJSZ2ZXMTlaZHRuK010
dEdmeXhNYmFzcEw5OEwyZmZtCnN1SXZ0dVA0N1dPQmNGbFgvM0ZzSEUyMWU5bm55OXBTNDFEcXRx
anNzZTA1MjFLMjUvUkJMdjNPdmFBSjh2K3R0VmlXeHNwYk5BNkcKNVN5cVkvTHNSUHVuMmpQV2I2
bkQyUGZCS3YyUXNpUUNVd0x0cHJZM0taRjVKdjA1ZXJBb2ZhMmRIT2RMdGFUOEd0Yi9hRzhBNzAr
MAp5MmR6SDFObWpvZ3NxVXIzZm81MFprS1RpV05TSm95WjZPOUd5bVE5Ujh6enBUK1ZNdEhLcWZY
K21ZNjQzclpnMlV4V2NsVDd4bU9UCjZYUjJKc2g1UDBkcDB4YzU2MVFDc2V3OCt5YmxFcmxobmFi
S0hlWWZlejFjUnk0enk5bXhUT0EvMFQ0bU1FaEs4SnFVOW1UOW1YaDEKbCsyTjlFa3BlMnJackM5
akwyTWlsOXN0T3ROVnl0cXF4Y24vVGNDUzhWM3NybW0veE1zRU5Ua3pic3BadHRSNzBROGFuRnpp
OUt1YgoyNzdLdlVHcCsrZmFDVU1DMkt4bnFxM0RraE5vSjNCS3lwSDJqSzJralAycGZrNWJNdm5P
Y3ZueXpqTHBzeEpjclZxWHJUV2YvTjlsCjdVeXVjZ2F3TExGb2dyZXMzNWFOL2FrMnA3M1pWblBH
SjMyYWRhWWY0cDh6SHZITEdabWtUQUJYTWNpa1BoUDJTOXZ4azVTeXlxOFEKNVV4ZmZzd2kvN0xl
QkRxWmJDU1ZOdGFNcmJGMVpQd2tvTXlCaUtRRTV6bUFjTUd4OWVTOXNxNWxmc2t6VEtmejl0RnZ5
eXA5MlYrdQptUFhmNno5Zk5zWnIxcmRzZnprY0MxUGJhcjRQTXZiTEFiZDI2SFdCYUwrZS9lZGo0
NmprbTJyMzhQTmxiYWx4S09zc2o2WHNxZTA1Cis2eDgxeVRvemdHZDdMOXlVQ2NIUXN1MlY4ck00
MVI1L2J4VHowc2RTNzZkYVA5VWU2YjZiZXo3WUR2OVVOcm1rY0FpZ1hiVDI1dVUKU1haK3phcC9q
MGgvelRubC8vVTJDUGxtKzY5TTBES2h5eVU4eCthZy9leXpudWNJeEhmYlh4ektsL21pbEp2UHk1
ZHdKbFpsVWpaMQpobUpSV1RYdlpjZjNsKzBSLzV5Sm1FcVpkQ1ZRU09DUUNVTXVrWXBkcVdOLytS
eTV6UHY5WnVac1NGSXVyOGhubjJ4M3VEbWlFK2ZzCmlQdDV0M0orL0w5VDVYNThpZnAzMmlvZFQ1
a1lseVBjT1hPVEkxT3BYLzVsUXZibjdWZ3BsL0VkWDJqQms1cGxjL1EvUVdmS3F6SG8KcnlZQlhq
OFlTdkNjSTAzcG56eG1IUGNueDhNdm5uNVp0Yy9UNXlXVnNacjYxN1MxTEpmSDFDdS9ybFpTSmlw
bGpOVDBjNjhhWFJIdApjT3JhbkJlcjFxVXJZUENmWmUwY1pGdjU1Ykt4WDlQbTRjcmFJWE5TS25Y
T21GakZJSmE1bEN1VCsxd3UrR0k3NXZPOHBHejcyUWJHCjB0VFlHbHRIZ3Z0c1YvMCt6VDVwMGI1
bG1kK2l1cDNPMjBlL1BhdjBaWCs1cWVkbHZDVGZxdHR5djYvNis4dVVOUndML2J6NXZMK3QKcHUv
ejY0bmxZRVErNysrejhycWZ4c1pSUDk4cXovdjE2N2Rsam52dDl0eGZkdzR1cEU5eVVHbVlhc3Ni
TGxmenVsK0h1ZTN2bDlWdgpUOTRmMjhlTWZSL002WWVhOXN0ejVna012enQzWFNDWFRwU1VDVk1H
Zkk3QTUwaHVqaTZXb3dDNWpDUFhWK2N5aGh4SkxFZjd5ckp6CkgvTTlucU9OaTFJdUU4c1hmemt6
a0MvYlRDYnlPcGR2WmFJK04rV1ViMDUzYitjRzlVd0tjdmxEem9Ma1MyTlo0SkxKZS96U2x2SWwK
ZDhteENVYVpjMzYxbmNTZjF3WWZLU3RCU1lMRWtuZFpHMnZLWGJic2R0Ly9vSFhQRjJvNVFyZEtP
VFhMcGtzenVZdHJndVgrRi9IVQp1akkrTW03VHA3SHJncUwyTVdmYVlwOGdiemRUam5wbFE4NjZh
OXJhcjBzdU04eGxQd2xvRTV2bVg0NENKczN0NTFYcnNyWFc1Zi90CnQzTjVydnBQRm8zOTdiUTU0
N0w5LzhLMHFrSHU3OHJSNkZ5RG5qT2I1WDZRaFlWdjg4MWw2OGoxM1FtZWE5TWl2MFg3anRONSsr
aGIKck5xWC9XVnJuL2ZIK0Y2c3I5UXIzMnZsOHNYeVhoNlhqZXQ4dG13YzViT2RUSE1jdHJNOXAr
NXBkODRXRE5OMnl4dVdzOHJyT2Uwdgo2K20zWjZ6ZnhyNFBkcUllcFQ0ZUNVUWc4NjQ5VFpsMGw2
TTh1WWswRzNrMjZ0eXNXRklxbGNzWnNqTk9tanJxdDVWcjlmL21rcWNjCjhlMm5mQW5uWnJRL2F5
Zm0rYW5VL012bFlVbnQyMHQva3JmTFVQbWZkaFhkZGZLbFhkbng1K2I4QkdUTFV0YWRmMGtKV25J
WlJnS2kKWEtLMDdDeEFqbnhrbVJ5MUtTazdrYnlYc3orNTBUQ3ZjMzlJemlaa0VscHp5ZHRVdVdW
ZE8vbVl5MERLR1lWU2J0cVJzMVZUcVdiWgozUHdZZzZROFh6WGxNcE5jdy90WU80NFR3T1IxTHNO
S25YTXo5MjZtOUdPNk9KZEMxYlMxWDVjRVRqbWpscU45bWV5Vyt6aVNaMjQvCnIxcVhmcjBXUGUr
M2M5SG5xN3kzYk96UGJmT3dEcXNZWlBLZk01SDVoY0RCYm1sWTdMWmZqNjBqZGMwWjFmd3JLZHRZ
RGt3TTB6Sy8KWWI3eStuVGRQa3I5ODdoS1gvYVhXK1Y1ZjR6dnhmcEszWExqZVE2eWpYMEhsYng1
SEJ0SC9Ydzc4WHlPdzNhMjV4amtPem1YV2c3VApkc29ibHJIcTZ6bnR6N3I2N1pucXQ3SHZnN24x
V0xYZDhtKyt3TGEvNTdLakxLbi92THlYeC80UmxaSTlseEVrNk1ndjFtVENtNk5qClNibmtJRWRo
U3NvWFh3S1RHOXNKMHZCb2RIOTkvZWRsMlVXUC9icVV5eHB5OW1VSWtNdXNoa2ZaTTdFcmwydmxW
eTdLOGxuUG9uTHoKZmliMkpmV2VkcGVuNUEvUDVhaHBXWGNzSG1qLy9YRGt4cmVzSnplZmw1UWJV
SlB5eFY1U1dXZXBYNEtVZkxIa0pydVNFb3prck1rMQo3V2Nwc3dRY2FYT3VaUytuM1dOZWJQdHRU
RGxUNVNaUHFVUDZjRmthcmlPWEsvWHo1M1grSmVYZWw3US92eGJXV2JTb3VVRTN2MTZ5CktQWEx6
dlc5WTh2bXV0NmNZY3VYUys2blNCLzNKMTM5c29ZV1pkM1h0dlZMZjdaczNYak5HYjJjbFVpQW0v
ZjZLVzBzbDJibC9ZeVAKL2hnWnZ1NHZXNTRmUGVhUzF3bHlybS9YbDBCMFZhY1laanprVjV1eWJP
bi9sRnZUejZscnJ5cGRJRlJlVDlVbFl5VEJYajlBem5yNwphVms3a3llWGF1YnlzVmhtckdiaW5F
bFVTV1A5dG16c1Y3ZTV0NTRjc01qTFdDU1ZqL0k0WmRBdGNPdy81WnJ6VEJKU1ZvTHJNazVTClZ2
NlY3ZUhZSXQxWTYyK253N0UxM0E3SDFwSDdvREtHYzBZcytmTHZsKzMyVm42UW9PK1plMTZXN1R0
SzNmcVBwK3Yya1g0by9UclYKbDBQcnRMOXZ0bXpmc1d5TVQ2MHZZMkhaL2pMckhvNkZ0Q05qcUtS
OExaVFh1VXd1KzZrY0hTOHAvWi90cWJTL3ZKL0hzWEdVTXFmYQpQZng4ckMxVER2MTY1WG0vN095
SHg3NER5N0w5dnNuM1pTNUZMQWRLUzU0ODF1d2ZGbzJEZmhsNTNxOWoxcjJUN1UvNXk5b3oxVzlq
CjN3ZFQvWkEyL0s3ZG4vZm5jYW1MUkdDWndJRjc3NzMzNzVaOTJMMy82RzgvOW5FbWJMbGhOMTlD
U1huTTVEY2JiVGx0bWN0UmZ0c0cKRldWanpKZHFJdkg4Sk9rRDdaZGFOdkljR2M2Z3pyV0ZXYjVN
N2hPWTVJdXZ1d215dlJTaGY3TnB6YnEzYW5YaXY4TzZaQ1BNQm5wbAp1LzcrNURBLzRaYzY1N09j
ZlVuRW41VGc2TG0yam1sdXUyaDNpVVR1RGNrUjdnUVBaV05QdVNrdkcyQzVmS3g5MlIwdFN0dHpl
VStPCmNPWkd6K3dZeXlWZ1dlNzV0dnpzOE9JeFRMa3hPaitOR2FkTUVPT1NzeUNaY04zVFRwaXp6
a3hDSDJ6elpkMzVsNGx2SnFRNTQ1VDYKdDZ2bytpSVd1WUUxbitmTDVlZHQvZU9iU1V4dXZNc3Ay
TktHL05Sbnlrb1ovWWxwK25pczNOVHo5OGVXemVRc1FVSjJ1TU9Vc3NzNgo4bVdaRytBeVhqS095
cy85cFkwSkFETldVdWVNbjdRbmVYT21ZZEdYUk5iVEx6dGZHcW5Eb21YamxnbFhmc0kwcHJISWwz
RHBqMXh1CjF5OXJhRkhhbE9hbHpybUJQVzNONjR5TDNQVGZiM3RzTXM3ZWFUL0w1U3FaZk1RZzIx
RGFsNTE0LzNVbTJXV2JLdXVLMFpOdHZmT1kKeTNWeTAzZXU2MDNkVThZcVRobkR2MnJyay9HVmZ3
bkFVNWY4cWxyNmZLeWZNMEZPWGRQdTlGbTI0ZlJOK2l6OWt2Zkc2cEp4LytOMgplOGoybnJNd3d6
VFd6dVROd1l1c1AyZWRramUveEJYejlGbjZlNnpmbG8zOUdJNjFPZDVwWTdhVi9GcFZPanB1NllQ
MmFYY0RlZm8zCjkyOWs3Q2VvVDNDN2FPeWxEZjJVZlU3MmJ4bC82WU5NQ3JPOXB1eHNIN2trSzIx
Sys4cDljdjAyWmp4bEh6b2NXOGxUdHNNYzFWMjIKanV4N3NxMWwyOHIybXpPc09ST2R3RHlwdjY2
c1A3LzB0V2pmc1pYNzVQL0c1blRiUHJyOVdOdkdzbTFtbThnK1lsRmZMdHZuOWMwVwo3VHZHeHZq
WXRwd2JnaDg5TnU0WDdTOVRibjgvay8xS0xyTmR0cTNtT3lYYlRDYWc2Zi9jRTVJQm5YR1QvVURH
UlQrTmpkVWM4TW4yCmtXMHo3Vi9VN3I3TGJ1NzdjMkF0OVZuMkhaZzJaWnZKQWFwOEIyYjd6dG5n
L0JwVy96dXZ0UDEwK080YmE4OVV2M1h6cTNiTUwvbysKeU5nZjI1OW52NStEcUJrcnk2N0tLSTRl
enhDQjIrNGRiZWkrKysrL3Y5MzBSdEkvZm4va3c1MzVLQnQrTGtmS2wxUW02dTNMN242UQpSVHVB
blZuaitwV1NMN2xNTEdLdzB5a2RuSjlVekZtWDNHZFRVdDdQK2pKcHk5dEQ3MHpTeWhtcXNrei9j
Vm01L1R4VHo2ZldNVncrClg2VDVjb3RWcnluRGJOM3JZZG1yTERzc2NGalc4UE84VHZtWmtKVTBm
RjNlMzZuSHN0MHNjcWh0YTQ1WUpVQnJoMGMzeWMxWXlPUW0KazlGeUpyQjlhK0g0cVczSFdGMnl2
a3lVOHZQS3k5SlVPMU8vak4zc040WVd5L290eTR5Ti9ibHRIclpsekdDWU54T3lzaTB1YXRNdwov
N0kyRHZQMVg0K3RJMjFQTUpuSnhqQ1ZkVTM1RFpmTDYrSDJNSHk5YUprNTcwMk5tOXI5eUxBT3Ev
UmxsaTFtdzNMNnIzZXJydjExCjFEelBlRXZ3a3YxK1RmK01qYU9wZGs5OVBxenZLdTdEc2pOZUYz
MEhaaDMvMlA3a2YzNEk1alB0UGlqdFdUVHVoM1VaSzIrWWQ5bnIKWVIyWDVTdnYxN2EvcGozTCtx
M20rMkNzSGdsd2EveEttenh1dU1CZjNqL2F3SGF6Ty9VcGtYVko1V2hiZVgybVBPYkl4RzZsVExR
VwozY1NmOTVQNlIraTMzdG42NzFqd2tSekx5dTJYTWZWOGFoM0Q1VFBCdjdCVWZQamg0UFd3N0ZX
V0hSUTFHb2lWdlAzZ0krOE5YNWQ4Ck8vWFkzMjZHWmRhME5VZktjaWF5L01HOFVrWjQrK054Ymor
UDFTWDNmcFV6Z1dYOXc4ZXBkcGI4aXphaDRSZ29lY3NRV2piMjU3YTUKcktjOGpobVVQT1d4QkI5
NXZhaE5KVjk1WE5iRzh2bWl4N0YxcE8zTEpoRmxYVk4raTlZNTNCNkdyeGN0TStlOXFYRlR1eDha
MW1HVgp2c3l5eFd4WVR2LzFidFcxdjQ2YTV4bHZwYjQxL1RNMmprbzV5OVk3OWZsd3VWWGNoMlhY
Yk05cFM3ODl3L1gzWDllVTE4Ky82UG13Cmpvdnk5TjlicGYxWmJxdzkvWGFXZlV6dDk4RllQWmJ0
Ti9ydDhKeEFFVmlMQUtSVXhpTUJBbnNua011a2NqbGsvdmhjTHNISVViRWMKK2M0bEM0c0MxdDJv
V1lLUFpVSEFicXhQbVFRSUVDZ0NPWk9SczArNWZHZ1QwcHoyck1QM3dTYjBnVGJVQ3doQTZxM2tK
TEJSQXJsVwo5LzlzL3g3T1MrMDF6N2tHT2o4WHZGZUJSNEVVZkJRSmp3UUk3TFZBOTRkbmo5MS9s
dnV0RnQyRHVkZDFtck8rT2UxWmgrK0RPVzIzCjdPa25JQUE1L2ZwTWpRbnNtRUFDZ053b0xSRWdR
T0JNRThpUGhHeFNtdHNlM3dlYk5Ccld2eTNsOHIvMXI2a2FFaUJBZ0FBQkFnUUkKRUNCdzJnc0lR
RTc3THRRQUFnUUlFQ0JBZ0FBQkFxZVB3UFFsV0JNL28zWDZORlZOQ1JBZ1FJQUFBUUlFQ0JBNDFR
TE9nSnpxSHJCKwpBZ1FJRUNCQWdBQUJBbWVRZ0FEa0RPcHNUU1ZBZ0FBQkFnUUlFQ0J3cWdVRUlL
ZTZCNnlmQUFFQ0JBZ1FJRUNBd0Jra0lBQTVnenBiClV3a1FJRUNBQUFFQ0JBaWNhZ0VCeUtudUFl
c25RSUFBQVFJRUNCQWdjQVlKQ0VET29NN1dWQUlFQ0JBZ1FJQUFBUUtuV2tBQWNxcDcKd1BvSkVD
QkFnQUFCQWdRSW5FRUNBcEF6cUxNMWxRQUJBZ1FJRUNCQWdNQ3BGaENBbk9vZXNINENCQWdRSUVD
QUFBRUNaNUNBQU9RTQo2bXhOSlVDQUFBRUNCQWdRSUhDcUJRUWdwN29Icko4QUFRSUVDQkFnUUlE
QUdTUWdBRG1ET2x0VENSQWdRSUFBQVFJRUNKeHFBUUhJCnFlNEI2eWRBZ0FBQkFnUUlFQ0J3Qmdr
SVFNNmd6dFpVQWdRSUVDQkFnQUFCQXFkYVFBQnlxbnZBK2drUUlFQ0FBQUVDQkFpY1FRSUgKcDly
Ni9lOVA1ZkE1QVFJN0xYRC8vVHRkb3ZJSUVDQkFnQUFCQXVzaE1CbUFwSm9tUSt2UldXcHhaZ2dJ
K3MrTWZ0WktBZ1FJRUNCdwpwZ3E0Qk90TTdYbnRKa0NBQUFFQ0JBZ1FJSEFLQkFRZ3B3RGRLZ2tR
SUVDQUFBRUNCQWljcVFJQ2tETzE1N1diQUFFQ0JBZ1FJRUNBCndDa1FxTG9IcExaZS8ray8vYWZh
clBJUk9PTUUvdlp2Ly9hTWE3TUdFeUJBZ0FBQkFnU0dBczZBREVXOEprQ0FBQUVDQkFnUUlFQmcK
MXdRRUlMdEdxMkFDQkFnUUlFQ0FBQUVDQklZQ0FwQ2hpTmNFQ0JBZ1FJQUFBUUlFQ095YWdBQmsx
MmdWVElBQUFRSUVDQkFnUUlEQQpVRUFBTWhUeG1nQUJBZ1FJRUNCQWdBQ0JYUk1RZ093YXJZSUpF
Q0JBZ0FBQkFnUUlFQmdLQ0VDR0lsNFRJRUNBQUFFQ0JBZ1FJTEJyCkFnS1FYYU5WTUFFQ0JBZ1FJ
RUNBQUFFQ1F3RUJ5RkRFYXdJRUNCQWdRSUFBQVFJRWRrMUFBTEpydEFvbVFJQUFBUUlFQ0JBZ1FH
QW8KSUFBWmluaE5nQUFCQWdRSUVDQkFnTUN1Q1FoQWRvMVd3UVFJRUNCQWdBQUJBZ1FJREFVRUlF
TVJyd2tRSUVDQUFBRUNCQWdRMkRVQgpBY2l1MFNxWUFBRUNCQWdRSUVDQUFJR2hnQUJrS09JMUFR
SUVDQkFnUUlBQUFRSzdKaUFBMlRWYUJSTWdRSUFBQVFJRUNCQWdNQlFRCmdBeEZ2Q1pBZ0FBQkFn
UUlFQ0JBWU5jRUJDQzdScXRnQWdRSUVDQkFnQUFCQWdTR0FnS1FvWWpYQkFnUUlFQ0FBQUVDQkFq
c21vQUEKWk5kb0ZVeUFBQUVDQkFnUUlFQ0F3RkJBQURJVThab0FBUUlFQ0JBZ1FJQUFnVjBURUlE
c0dxMkNDUkFnUUlBQUFRSUVDQkFZQ2doQQpoaUplRXlCQWdBQUJBZ1FJRUNDd2F3SUNrRjJqVlRB
QkFnUUlFQ0JBZ0FBQkFrTUJBY2hReEdzQ0JBZ1FJRUNBQUFFQ0JIWk5RQUN5CmE3UUtKa0NBQUFF
Q0JBZ1FJRUJnS0NBQUdZcDRUWUFBQVFJRUNCQWdRSURBcmdrSVFIYU5Wc0VFQ0JBZ1FJQUFBUUlF
Q0F3RkJDQkQKRWE4SkVDQkFnQUFCQWdRSUVOZzFBUUhJcnRFcW1BQUJBZ1FJRUNCQWdBQ0JvWUFB
WkNqaU5RRUNCQWdRSUVDQUFBRUN1eVlnQU5rMQpXZ1VUSUVDQUFBRUNCQWdRSURBVUVJQU1SYndt
UUlBQUFRSUVDQkFnUUdEWEJBUWd1MGFyWUFJRUNCQWdRSUFBQVFJRWhnSUNrS0dJCjF3UUlFQ0JB
Z0FBQkFnUUk3SnFBQUdUWGFCVk1nQUFCQWdRSUVDQkFnTUJRUUFBeUZQR2FBQUVDQkFnUUlFQ0FB
SUZkRXhDQTdCcXQKZ2drUUlFQ0FBQUVDQkFnUUdBb0lRSVlpWGhNZ1FJQUFBUUlFQ0JBZ3NHc0NB
cEJkbzFVd0FRSUVDQkFnUUlBQUFRSkRBUUhJVU1ScgpBZ1FJRUNCQWdBQUJBZ1IyVFVBQXNtdTBD
aVpBZ0FBQkFnUUlFQ0JBWUNnZ0FCbUtlRTJBQUFFQ0JBZ1FJRUNBd0s0SkNFQjJqVmJCCkJBZ1FJ
RUNBQUFFQ0JBZ01CUVFnUXhHdkNSQWdRSUFBQVFJRUNCRFlOUUVCeUs3UktwZ0FBUUlFQ0JBZ1FJ
QUFnYUhBd2VFYmMxNy8KN2QvKzdaekZMVXVBQUFFQ0JBZ1FJRUNBd0lZTE9BT3k0UjJzZVFRSUVD
QkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFB
RUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFr
bEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2
OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdR
SUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVD
QUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlF
Ck5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFB
c3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJz
ZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdR
SUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFB
UUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdT
VUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lU
cjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVC
QWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJ
QUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFn
UTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FB
Q3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhh
eDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JB
Z1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FB
QkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5a
SlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxK
T3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRF
Q0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JB
Z0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVD
QkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhB
QUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRy
SGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlF
Q0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FB
QUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQox
a2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNr
NjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExn
UUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlF
Q0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJ
RQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVB
QXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIy
c2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFn
UUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFB
QVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RX
U1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5
VHIyaExnUUlFQ0JBZ0FBQkFnUTJYT0JnVGZ1Ky8vMmFYUElRSUVDQUFBRUMKQkFnUUlFQmdYR0F5
QUxuLy92RUNmRXFBQUFFQ0JBZ1FJRUNBQUlGYUFaZGcxVXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5
R3hDQlJBZwpRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dR
SUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFCkNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVD
QkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUUKQ0JBZ1FJQUFn
Vm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdp
bjVDQkFnUUlBQQpBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJ
QUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBCkFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNC
QWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWcKUUlEQWJB
RUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFv
Z1FJQUFBUUlFQ0JBZwpRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJ
RUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFClpnc0lRR1lUS29BQUFRSUVDQkFnUUlB
QWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzEKQWdL
UVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVn
UUlBQUFRSUVDQkFnTUZ0QQpBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlF
Q0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBCjFFckpSNEFBQVFJRUNCQWdRSURB
YkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFoK
aEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFB
UUlFQ0JBZ1FJQkFyWUFBcEZaSwpQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdR
SUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBCkFRSUVDQkFnUUlBQUFRSzFB
Z0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzho
RWcKUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFR
SUVDQkFnUUdDMmdBQmtOcUVDQ0JBZwpRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJ
REFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFCkNCQWdRSUFBZ2RrQ0Fw
RFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlB
QUFRSUUKQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JC
aXZramxBQUFTTzBsRVFWUWdRSUFBZ1ZvQgpBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxR
QUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBCm1VMm9BQUlFQ0JB
Z1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlF
Q05RS0NFQnEKcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNB
MUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4QwpCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhB
QVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmCkFRSUVDQkFn
UUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVa
Z3NJUUdZVEtvQUEKQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1K
bFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZwpRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVD
QkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnClFJQUFB
UUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZS
Q0ExRXJKUjRBQUFRSUUKQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtv
OEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRQpDQkFnUUtCV1FBQlNLeVVmQVFJRUNC
QWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBCkFR
SUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlE
TUpsUUFBUUlFQ0JBZ1FJQUEKQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJ
RUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZwpNRnRBQURLYlVBRUVDQkFnUUlB
QUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNv
CkZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21W
a284QUFRSUVDQkFnUUlBQWdka0MKQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlF
Q0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQQpwRlpLUGdJRUNCQWdRSUFB
QVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dF
SURNCkpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9B
QUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlMKOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdR
SUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQwpDQkFnUUlBQUFRSUVD
QkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FL
bVZrbzhBCkFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFR
SUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUEKQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJ
QUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZwpRSUFBQVFJRUNN
d1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUy
b0FBSUVDQkFnClFJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JB
Z1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUUKQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJ
RUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRQpDQkFnVUNz
Z0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVm
QVFJRUNCQWdRSUFBCkFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFn
UUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUEKZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlF
Q013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWQpMU0FB
bVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVD
QkFnUUlBQUFRSUVDTlFLCkNFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFB
UUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUIKeUd4Q0JSQWdRSUFBQVFJRUNCQWdV
Q3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCUwpL
eVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNC
QWdRSUFBQVFJRVpnc0lRR1lUCktvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFR
SUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjUKQ0JBZ1FJQUFBUUlFQ0JDWUxT
QUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFF
RQpDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlB
QUFRSUVDQkNvRlJDQTFFckpSNEFBCkFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JB
Z1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUEKQVFJRUNCQWdRS0JXUUFC
U0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lF
Q0JBZwpRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFB
QVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnClFJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZ
TFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUUKQ0JBZ01GdEFBREti
VUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdR
SUFBQVFJRQpDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVD
QkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBCmdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldR
QUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkEKcllBQXBGWktQ
Z0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJ
QUFBUUlFQ013VwpFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNC
Q1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFCklMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFE
S2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmsKTnFFQ0NC
QWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJ
RUNCQWdVQ3NnQUttVgprbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtC
V1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWClFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZa
S1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0UKQ0JB
Z1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlF
Q0JDWUxTQUFtVTJvQUFJRQpDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRB
QURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBCkFRSUVDQkFnUUdDMmdBQmtOcUVD
Q0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUEK
QVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdR
S0JXUUFCU0t5VWZBUUlFQ0JBZwpRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFw
RlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnClFJQUFnVm9CQVVpdGxId0VD
QkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFR
SUUKQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01G
dEFBREtiVUFFRUNCQWdRSUFBQVFJRQpDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05x
RUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBCmJBRUJ5R3hDQlJBZ1FJ
QUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JB
Z1FLQlcKUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllB
QXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSQpRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3
RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRCldpbjVDQkFnUUlB
QUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFn
TUZ0QUFES2IKVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJr
TnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySgpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFn
UUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nClFJQUFBUUlF
Q0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFy
WUFBcEZaS1BnSUUKQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRs
SHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRQpDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdR
SUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBCkFRSUVD
QkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdB
QmtOcUVDQ0JBZ1FJQUEKQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JS
QWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZwpRSUFBZ2RrQ0FwRFpoQW9nOFArM1g0
YzJBQUFBQ01QKy81b1hsbURyQ2FKdUJBZ1FJRUNBQUFFQ0JLcUFBS2xTZGdRSUVDQkFnQUFCCkFn
UUkzQUlDNUNaMFFJQUFBUUlFQ0JBZ1FJQkFGUkFnVmNxT0FBRUNCQWdRSUVDQUFJRmJRSURjaEE0
SUVDQkFnQUFCQWdRSUVLZ0MKQXFSSzJSRWdRSUFBQVFJRUNCQWdjQXNJa0p2UUFRRUNCQWdRSUVD
QUFBRUNWVUNBVkNrN0FnUUlFQ0JBZ0FBQkFnUnVBUUZ5RXpvZwpRSUFBQVFJRUNCQWdRS0FLQ0pB
cVpVZUFBQUVDQkFnUUlFQ0F3QzBnUUc1Q0J3UUlFQ0JBZ0FBQkFnUUlWQUVCVXFYc0NCQWdRSUFB
CkFRSUVDQkM0QlFUSVRlaUFBQUVDQkFnUUlFQ0FBSUVxSUVDcWxCMEJBZ1FJRUNCQWdBQUJBcmVB
QUxrSkhSQWdRSUFBQVFJRUNCQWcKVUFVRVNKV3lJMENBQUFFQ0JBZ1FJRURnRmhBZ042RURBZ1FJ
RUNCQWdBQUJBZ1NxZ0FDcFVuWUVDQkFnUUlBQUFRSUVDTndDQXVRbQpkRUNBQUFFQ0JBZ1FJRUNB
UUJVUUlGWEtqZ0FCQWdRSUVDQkFnQUNCVzBDQTNJUU9DQkFnUUlBQUFRSUVDQkNvQWdLa1N0a1JJ
RUNBCkFBRUNCQWdRSUhBTENKQ2IwQUVCQWdRSUVDQkFnQUFCQWxWQWdGUXBPd0lFQ0JBZ1FJQUFB
UUlFYmdFQmNoTTZJRUNBQUFFQ0JBZ1EKSUVDZ0NnaVFLbVZIZ0FBQkFnUUlFQ0JBZ01BdElFQnVR
Z2NFQ0JBZ1FJQUFBUUlFQ0ZRQkFWS2w3QWdRSUVDQUFBRUNCQWdRdUFVRQp5RTNvZ0FBQkFnUUlF
Q0JBZ0FDQktpQkFxcFFkQVFJRUNCQWdRSUFBQVFLM2dBQzVDUjBRSUVDQUFBRUNCQWdRSUZBRkJF
aVZzaU5BCmdBQUJBZ1FJRUNCQTRCWVFJRGVoQXdJRUNCQWdRSUFBQVFJRXFvQUFxVkoyQkFnUUlF
Q0FBQUVDQkFqY0FnTGtKblJBZ0FBQkFnUUkKRUNCQWdFQVZFQ0JWeW80QUFRSUVDQkFnUUlBQWdW
dEFnTnlFRGdnUUlFQ0FBQUVDQkFnUXFBSUNwRXJaRVNCQWdBQUJBZ1FJRUNCdwpDd2lRbTlBQkFR
SUVDQkFnUUlBQUFRSlZRSUJVS1RzQ0JBZ1FJRUNBQUFFQ0JHNEJBWElUT2lCQWdBQUJBZ1FJRUNC
QW9Bb0lrQ3BsClI0QUFBUUlFQ0JBZ1FJREFMU0JBYmtJSEJBZ1FJRUNBQUFFQ0JBaFVBUUZTcGV3
SUVDQkFnQUFCQWdRSUVMZ0ZCTWhONklBQUFRSUUKQ0JBZ1FJQUFnU29nUUtxVUhRRUNCQWdRSUVD
QUFBRUN0NEFBdVFrZEVDQkFnQUFCQWdRSUVDQlFCUVJJbGJJalFJQUFBUUlFQ0JBZwpRT0FXRUNB
M29RTUNCQWdRSUVDQUFBRUNCS3FBQUtsU2RnUUlFQ0JBZ0FBQkFnUUkzQUlEQjBpb0lSQXVOK29B
QUFBQVNVVk9SSzVDCllJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52676</attachid>
            <date>2010-04-06 15:46:59 -0700</date>
            <delta_ts>2010-04-06 16:33:56 -0700</delta_ts>
            <desc>Patch4</desc>
            <filename>bug6649734-4.txt</filename>
            <type>text/plain</type>
            <size>128484</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzE2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEzIEBACisyMDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICBUaGUgZ2x5
cGggY2FjaGUgaGFzIGJlZW4gYWxzbyB1cGRhdGVkIHRvIGFsbG93IHN0b3JpbmcgdGhlIGdseXBo
IGJvdW5kaW5nIGJveCB0b2dldGhlciB3aXRoIHRoZQorICAgICAgICBob3Jpem9udGFsIHdpZHRo
LiBUaGUgYm91bmRpbmcgYm94IGlzIHBvcHVsYXRlZCBvbmx5IGZvciBjb21wbGV4IHRleHQuCisg
ICAgICAgIAorICAgICAgICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhcyBi
ZWVuIHdyaXR0ZW4gYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IEZpbGUg
bmFtZSBjaGFuZ2UuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEZpbGUgbmFtZSBjaGFuZ2Uu
CisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogQWRkZWQgcGFyYW1ldGVyIGluIGV4cG9ydGVk
IGZ1bmN0aW9uLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRmlsZSBuYW1lIGNoYW5nZS4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRmlsZSBuYW1lIGNoYW5nZS4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEZpbGUgbmFtZSBj
aGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogQWRkZWQgZ2x5cGhPdmVyZmxvdyBwYXJhbWV0ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhPdmVyZmxvdzo6R2x5cGhPdmVyZmxvdyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6d2lkdGgpOiBBZGRlZCBnbHlwaE92ZXJmbG93IHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6Y2FuVXNlR2x5cGhDYWNoZSk6IE1vZGlmaWVkIHRvIHJlbmRlciBjaGFyYWN0ZXJzIHdpdGgg
c3RhY2tlZCBkaWFjcml0aWNzIHdpdGggY29tcGxleCB0ZXh0IHBhdGguCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcDogQ29waWVkIGZyb20gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Okds
eXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKTogQ2xhc3MgbmFtZSBjaGFuZ2VkIHRv
IHJlZmxlY3QgbmV3IHNlbWFudGljcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aE1ldHJpY3NNYXAuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmguCisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6OkdseXBoTWV0
cmljc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6On5HbHlwaE1ldHJp
Y3NNYXApOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjptZXRyaWNzRm9yR2x5
cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjp3aWR0aEZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6c2V0TWV0cmljc0ZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6bWV0
cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhN
ZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
TWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9XaWR0aEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6
OmFkdmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQp
OiBBZGRlZCBuZXcgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6IEFkZGVkIG5ldyBwYXJhbWV0ZXIuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEds
eXBoc0FuZEFkdmFuY2VzKTogTW9kaWZpZWQgdG8gdXNlIEdseXBoT3ZlcmZsb3cuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjptaW5HbHlwaEJvdW5kaW5nQm94WCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1heEdseXBoQm91bmRp
bmdCb3hYKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVy
OjptYXhHbHlwaEJvdW5kaW5nQm94WSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDb21wbGV4VGV4dE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdp
ZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9h
dFdpZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKTogQWRkZWQgcGFyYW1l
dGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdESUdseXBo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVDb250cm9sbGVyOjpVbmlzY3JpYmVDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5k
UGxhY2VJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6
bWF4R2x5cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJv
bGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJl
Q29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNl
Qm94ZXNIb3Jpem9udGFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29t
cHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OmNvbXB1dGVWZXJ0aWNhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpzZXRGYWxsYmFja0Zv
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmZhbGxiYWNrRm9udHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6c2V0R2x5cGhPdmVyZmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpnbHlwaE92ZXJmbG93KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJv
eDo6Y2xlYXJHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpSZW5k
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKTogQWRkZWQgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Ojp3aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDogUmVuYW1l
ZCBtZW1iZXIgdmFyaWFibGUuCisKIDIwMTAtMDQtMDYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6
YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpJbmRleDog
V2ViQ29yZS9BbmRyb2lkLm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5tawkocmV2
aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL0FuZHJvaWQubWsJKHdvcmtpbmcgY29weSkKQEAgLTQz
Niw3ICs0MzYsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0ZWRJbWFnZS5jcHAgXAogCXBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2Rl
LmNwcCBcCi0JcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAgXAorCXBsYXRmb3Jt
L2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAgXAogCXBsYXRmb3JtL2dyYXBoaWNzL0dyYWRp
ZW50LmNwcCBcCiAJcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCiAJcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgXApJbmRleDogV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA1
NzE2OSkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTE2MTEs
OCArMTYxMSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaEJ1ZmZlci5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFn
ZVRyZWVOb2RlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVl
Tm9kZS5oIFwKLQlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwIFwK
LQlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuaCBcCisJV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwIFwKKwlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYWRpZW50LmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgXApJbmRleDog
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5i
YXNlLmV4cAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHdv
cmtpbmcgY29weSkKQEAgLTkwOCw3ICs5MDgsNyBAQCBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJl
c3BvbnNlQmFzZTE3c3VnCiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTN1cmxF
dgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2U4bWltZVR5cGVFdgogX19aTks3
V2ViQ29yZTI2TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI2aXNEb25lRXYKLV9fWk5LN1dlYkNv
cmU0Rm9udDEwZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNoU2V0SVBLTlNfMTRT
aW1wbGVGb250RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJhaXRzSVM4X0VFRUUK
K19fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNo
U2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJh
aXRzSVM4X0VFRUVQTlNfMTNHbHlwaE92ZXJmbG93RQogX19aTks3V2ViQ29yZTRGb250MTFwcmlt
YXJ5Rm9udEV2CiBfX1pOSzdXZWJDb3JlNEZvbnQ4ZHJhd1RleHRFUE5TXzE1R3JhcGhpY3NDb250
ZXh0RVJLTlNfN1RleHRSdW5FUktOU18xMEZsb2F0UG9pbnRFaWkKIF9fWk5LN1dlYkNvcmU0S1VS
TDExY3JlYXRlQ0ZVUkxFdgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTIzMjIsOCArMjMyMiw4IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvR2x5cGhXaWR0aE1hcC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aE1ldHJpY3NNYXAuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1l
dHJpY3NNYXAuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwJywKSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMjc3Niwx
MSArMjI3NzYsMTEgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoV2lkdGhNYXAuY3BwIg0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHbHlwaE1ldHJpY3NNYXAuY3Bw
Ig0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoV2lkdGhNYXAuaCINCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhNZXRyaWNzTWFwLmgiDQogCQkJCQk+DQogCQkJ
CTwvRmlsZT4NCiAJCQkJPEZpbGUNCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzg5OCw4ICszODk4LDYgQEAK
IAkJQjJDM0RBNkMwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoQnVmZmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1QjBEMDA2Q0Q2MDBFRjZG
MjYgLyogR2x5cGhCdWZmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCMkMzREE2RDBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5v
ZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJD
M0RBNUMwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCAqLzsgfTsKIAkJ
QjJDM0RBNkUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1RDBEMDA2Q0Q2MDBF
RjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlCMkMzREE2RjBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhX
aWR0aE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkMzREE1RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5jcHAgKi87IH07Ci0J
CUIyQzNEQTcwMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1RjBEMDA2Q0Q2MDBFRjZG
MjYgLyogR2x5cGhXaWR0aE1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUIyQzk2RDhEMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhTZWdD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJDOTZEOEMwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgKi87IH07
CiAJCUIyQ0I5MjQyMEI1QkQ5NjYwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkNCOTIzQjBC
NUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2UuY3BwICovOyB9OwogCQlCMkNC
OTI0NDBCNUJEOTcwMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjNDMEI1QkQ5NDEwMDlC
QUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5oICovOyB9OwpAQCAtNDcwMCw2ICs0Njk4LDgg
QEAKIAkJQzUxNjBFRUIxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxNjBFRTkxMDA0NTQz
QTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVhSW1wbC5oICovOyB9OwogCQlDNTVFMzhCRjEwMDQwRDVE
MDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NUUzOEJCMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9y
YWdlTmFtZXNwYWNlSW1wbC5oICovOyB9OwogCQlDNTVFMzhDMDEwMDQwRDVEMDBBNTZCREIgLyog
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzU1RTM4QkMxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmNwcCAqLzsgfTsKKwkJQzVENEFBNzkxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0
cmljc01hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNUQ0QUE3NzExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmNwcCAqLzsgfTsK
KwkJQzVENEFBN0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVENEFBNzgxMTZCQUZCNjAw
NjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUM1RTlCNjc3MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdl
RXZlbnREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNwYXRj
aGVyLmNwcCAqLzsgfTsKIAkJQzVFQkREODQxMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVu
dERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1RUJERDgxMTA1RURERUMwMDU2ODE2RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmgg
Ki87IH07CiAJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2
RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLzsg
fTsKQEAgLTkyMjIsOCArOTIyMiw2IEBACiAJCUIyQzNEQTVCMEQwMDZDRDYwMEVGNkYyNiAvKiBH
bHlwaEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhCdWZm
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDM0RBNUMwRDAwNkNENjAwRUY2
RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUIyQzNEQTVEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhQYWdlVHJlZU5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJDM0RBNUUwRDAwNkNENjAwRUY2RjI2IC8qIEds
eXBoV2lkdGhNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEds
eXBoV2lkdGhNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkMzREE1RjBE
MDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR2x5cGhXaWR0aE1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1BhdGhTZWdDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkNCOTIzQjBCNUJEOTQxMDA5QkFBNzgg
LyogSlNTVkdFbGVtZW50SW5zdGFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU1ZHRWxlbWVudEluc3RhbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjJDQjkyM0MwQjVCRDk0MTAwOUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0VsZW1lbnRJbnN0YW5j
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNjEsNiArMTAwNTksOCBAQAog
CQlDNTE2MEVFOTEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSW1wbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDNTVFMzhCQjEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVz
cGFjZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZU5hbWVz
cGFjZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU1RTM4QkMxMDA0MEQ1
RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzVENEFBNzcxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmlj
c01hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHbHlwaE1ldHJp
Y3NNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNUQ0QUE3ODExNkJBRkI2
MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdseXBoTWV0cmljc01hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
NUU5QjY3NjEwNjk3RTEzMDBDN0JCMUEgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVFQkREODExMDVFRERFQzAwNTY4
MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExl
dmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ2NDQsMTAgKzE0NjQ0
LDEwIEBACiAJCQkJQkMyM0YwREEwREFGRjRBNDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmgg
Ki8sCiAJCQkJQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oICovLAogCQkJ
CUIyQzNEQTVCMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oICovLAorCQkJCUM1RDRB
QTc3MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuY3BwICovLAorCQkJCUM1RDRB
QTc4MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAqLywKIAkJCQlCMkMzREE1
QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICovLAogCQkJCUIyQzNE
QTVEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oICovLAotCQkJCUIyQzNE
QTVFMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmNwcCAqLywKLQkJCQlCMkMzREE1
RjBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5oICovLAogCQkJCUJDNTNDNjA3MERB
NTZDNTcwMDIxRUI1RCAvKiBHcmFkaWVudC5jcHAgKi8sCiAJCQkJQkM1M0M1RjQwREE1NkI5MjAw
MjFFQjVEIC8qIEdyYWRpZW50LmggKi8sCiAJCQkJQjJBMDE1OTIwQUY2Q0Q1MzAwNkJDRTBFIC8q
IEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCkBAIC0xNzM5Miw3ICsxNzM5Miw2IEBACiAJCQkJRkU4
MEQ3QzkwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE2QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhCdWZmZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQzNEQTZFMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQjJDM0RBNzAwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lkdGhN
YXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNDNUY1MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFk
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NjQwRDAwQkYyMjAwNzFCNzgyIC8qIEdy
YWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMDE1QTkwQUY2Q0Q1MzAw
NkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODgxNCw2ICsx
ODgxMyw3IEBACiAJCQkJODk1MjUzNTMxMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3QzA3ODUwMTE2NUQ1QkUwMDNBMzJFRiAvKiBTdWZmaXhUcmVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNTQyRjREQjExNjZDMjVBMDBFODlBODYgLyogVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1RDRBQTdBMTE2QkFGQjYwMDY5
Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTk2MzEsNyArMTk2
MzEsNiBAQAogCQkJCTU5Qzc3RjJBMTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTZEMEQwMDZDRDYwMEVGNkYyNiAv
KiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM4MzBEMDBB
NUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQjJDM0RBNkYwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lkdGhNYXAuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM1M0M2MDgwREE1NkM1NzAwMjFFQjVEIC8qIEdyYWRpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNTNDNjBCMERBNTZDRjEwMDIxRUI1RCAvKiBHcmFkaWVudENHLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTAxNUE4MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGlj
c0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMTAzNCw2ICsyMTAzMyw3IEBACiAJCQkJ
MkUzQkJGMDcxMTYyREExMTAwQjk0MDlBIC8qIFVVSUQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODk1MjUzNTIxMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUM1RDRBQTc5MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1l
dHJpY3NNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dC5jcHAJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgRm9udDo6ZHJhd1Rl
eHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAgICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRl
eHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChj
b25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVu
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3Zl
cmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAg
ICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCkBAIC0xOTgsNyArMTk4LDcgQEAgZmxv
YXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydQogICAgIH0KICNlbmRpZgogCi0g
ICAgcmV0dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMpOwor
ICAgIHJldHVybiBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQocnVuLCBmYWxsYmFja0ZvbnRzLCBn
bHlwaE92ZXJmbG93KTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVu
JiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBpbnQmIGNoYXJzQ29uc3VtZWQsIFN0cmlu
ZyYgZ2x5cGhOYW1lKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHJldmlz
aW9uIDU3MTY5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDYgKzU2LDIxIEBAIHN0cnVjdCBHbHlwaERhdGE7CiAKIGNvbnN0IHVuc2ln
bmVkIGRlZmF1bHRVbml0c1BlckVtID0gMTAwMDsKIAorc3RydWN0IEdseXBoT3ZlcmZsb3cgewor
ICAgIEdseXBoT3ZlcmZsb3coKQorICAgICAgICA6IGxlZnQoMCkKKyAgICAgICAgLCByaWdodCgw
KQorICAgICAgICAsIHRvcCgwKQorICAgICAgICAsIGJvdHRvbSgwKQorICAgIHsKKyAgICB9CisK
KyAgICBpbnQgbGVmdDsKKyAgICBpbnQgcmlnaHQ7CisgICAgaW50IHRvcDsKKyAgICBpbnQgYm90
dG9tOworfTsKKwogY2xhc3MgRm9udCB7CiBwdWJsaWM6CiAgICAgRm9udCgpOwpAQCAtODEsOCAr
OTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAt
MSkgY29uc3Q7CiAKLSAgICBpbnQgd2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdCB7IHJldHVybiBs
cm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzKSk7IH0KLSAgICBmbG9hdCBmbG9h
dFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMgPSAwKSBjb25zdDsKKyAgICBpbnQgd2lkdGgoY29uc3QgVGV4dFJ1biYgcnVu
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlw
aE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3QgeyByZXR1cm4gbHJvdW5kZihmbG9h
dFdpZHRoKHJ1biwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdykpOyB9CisgICAgZmxvYXQg
ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IDApIGNv
bnN0OwogICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBpbnQgZXh0cmFD
aGFyc0F2YWlsYWJsZSwgaW50JiBjaGFyc0NvbnN1bWVkLCBTdHJpbmcmIGdseXBoTmFtZSkgY29u
c3Q7CiAKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb24oY29uc3QgVGV4dFJ1biYsIGludCBwb3Np
dGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CkBAIC0xNTksNyArMTc0LDcg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50
IHRvKSBjb25zdDsKLSAgICBmbG9hdCBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAp
IGNvbnN0OworICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVu
JiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5
cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JDb21w
bGV4VGV4dChjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFs
R2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUZXh0
KGNvbnN0IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGludCBoLCBpbnQgZnJvbSwgaW50IHRv
KSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGgu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRo
LmNwcAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRG
YXN0UGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw2ICsyMzQsMTEgQEAgYm9vbCBGb250
OjpjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRleHRSdQogICAgICAgICBpZiAoYyA8PSAweDE5NEYp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgaWYgKGMgPCAweDFFMDApICAg
ICAvLyBVKzFFMDAgdGhyb3VnaCBVKzIwMDAgY2hhcmFjdGVycyB3aXRoIGRpYWNyaXRpY3MgYW5k
IHN0YWNrZWQgZGlhY3JpdGljcworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChj
IDw9IDB4MjAwMCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBpZiAoYyA8
IDB4MjBEMCkgICAgIC8vIFUrMjBEMCB0aHJvdWdoIFUrMjBGRiBDb21iaW5pbmcgbWFya3MgZm9y
IHN5bWJvbHMKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYyA8PSAweDIwRkYp
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3Bw
CShyZXZpc2lvbiA1NzE2OSkJKGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdp
ZHRoTWFwLmNwcDo1NzE2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRy
aWNzTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0dseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHRoTWFw
Ojpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikKK3sKKyAgICBHbHlwaFdp
ZHRoUGFnZSogcGFnZTsKKyAgICBpZiAocGFnZU51bWJlciA9PSAwKSB7CisgICAgICAgIEFTU0VS
VCghbV9maWxsZWRQcmltYXJ5UGFnZSk7CisgICAgICAgIHBhZ2UgPSAmbV9wcmltYXJ5UGFnZTsK
KyAgICAgICAgbV9maWxsZWRQcmltYXJ5UGFnZSA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgaWYgKG1fcGFnZXMpIHsKKyAgICAgICAgICAgIGlmICgocGFnZSA9IG1fcGFnZXMtPmdldChw
YWdlTnVtYmVyKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2U7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgbV9wYWdlcy5zZXQobmV3IEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFn
ZSo+KTsKKyAgICAgICAgcGFnZSA9IG5ldyBHbHlwaFdpZHRoUGFnZTsKKyAgICAgICAgbV9wYWdl
cy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOworICAgIH0KKworICAgIC8vIEZpbGwgaW4gdGhlIHdo
b2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKKyAgICAgICAgcGFn
ZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5cGhXaWR0aFVua25vd24pOworCisgICAgcmV0dXJu
IHBhZ2U7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRy
aWNzTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
TWV0cmljc01hcC5jcHAJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyArMjcsMTMg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5o
IgorI2luY2x1ZGUgIkdseXBoTWV0cmljc01hcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdl
U2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikKK0dseXBoTWV0cmljc01hcDo6R2x5cGhNZXRy
aWNzUGFnZSogR2x5cGhNZXRyaWNzTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFn
ZU51bWJlcikKIHsKLSAgICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKKyAgICBHbHlwaE1ldHJpY3NQ
YWdlKiBwYWdlOwogICAgIGlmIChwYWdlTnVtYmVyID09IDApIHsKICAgICAgICAgQVNTRVJUKCFt
X2ZpbGxlZFByaW1hcnlQYWdlKTsKICAgICAgICAgcGFnZSA9ICZtX3ByaW1hcnlQYWdlOwpAQCAt
NDMsMTQgKzQzLDE4IEBAIEdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHQK
ICAgICAgICAgICAgIGlmICgocGFnZSA9IG1fcGFnZXMtPmdldChwYWdlTnVtYmVyKSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhZ2U7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9w
YWdlcy5zZXQobmV3IEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+KTsKLSAgICAgICAgcGFn
ZSA9IG5ldyBHbHlwaFdpZHRoUGFnZTsKKyAgICAgICAgICAgIG1fcGFnZXMuc2V0KG5ldyBIYXNo
TWFwPGludCwgR2x5cGhNZXRyaWNzUGFnZSo+KTsKKyAgICAgICAgcGFnZSA9IG5ldyBHbHlwaE1l
dHJpY3NQYWdlOwogICAgICAgICBtX3BhZ2VzLT5zZXQocGFnZU51bWJlciwgcGFnZSk7CiAgICAg
fQogCi0gICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBo
IHdpZHRoIHZhbHVlLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRoUGFn
ZTo6c2l6ZTsgaSsrKQotICAgICAgICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlwaFdp
ZHRoVW5rbm93bik7CisgICAgR2x5cGhNZXRyaWNzIHVua25vd25NZXRyaWNzOworICAgIHVua25v
d25NZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gY0dseXBoU2l6ZVVua25vd247CisgICAgdW5r
bm93bk1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgoY0dseXBoU2l6ZVVua25vd24pOworICAg
IHVua25vd25NZXRyaWNzLmJvdW5kaW5nQm94LnNldEhlaWdodChjR2x5cGhTaXplVW5rbm93bik7
CisgICAgLy8gRmlsbCBpbiB0aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBoIGlu
Zm9ybWF0aW9uLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaE1ldHJpY3NQYWdl
OjpzaXplOyBpKyspCisgICAgICAgIHBhZ2UtPnNldE1ldHJpY3NGb3JJbmRleChpLCB1bmtub3du
TWV0cmljcyk7CiAKICAgICByZXR1cm4gcGFnZTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAkocmV2aXNpb24gNTcxNjkpCShmcm9tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oOjU3MTY5KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdseXBoV2lkdGhNYXBfaAorI2RlZmluZSBHbHlw
aFdpZHRoTWFwX2gKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOworCitjb25zdCBmbG9hdCBj
R2x5cGhXaWR0aFVua25vd24gPSAtMTsKKworY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBO
b25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgR2x5cGhXaWR0aE1hcCgpIDogbV9maWxsZWRQcmlt
YXJ5UGFnZShmYWxzZSkgeyB9CisgICAgfkdseXBoV2lkdGhNYXAoKSB7IGlmIChtX3BhZ2VzKSB7
IGRlbGV0ZUFsbFZhbHVlcygqbV9wYWdlcyk7IH0gfQorCisgICAgZmxvYXQgd2lkdGhGb3JHbHlw
aChHbHlwaCBnbHlwaCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8g
R2x5cGhXaWR0aFBhZ2U6OnNpemUpLT53aWR0aEZvckdseXBoKGdseXBoKTsKKyAgICB9CisKKyAg
ICB2b2lkIHNldFdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGZsb2F0IHdpZHRoKQorICAgIHsK
KyAgICAgICAgbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+c2V0V2lk
dGhGb3JHbHlwaChnbHlwaCwgd2lkdGgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdHJ1Y3Qg
R2x5cGhXaWR0aFBhZ2UgeworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNpemUgPSAyNTY7
IC8vIFVzdWFsbHkgY292ZXJzIExhdGluLTEgaW4gYSBzaW5nbGUgcGFnZS4KKyAgICAgICAgZmxv
YXQgbV93aWR0aHNbc2l6ZV07CisKKyAgICAgICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCBn
bHlwaCkgY29uc3QgeyByZXR1cm4gbV93aWR0aHNbZ2x5cGggJSBzaXplXTsgfQorICAgICAgICB2
b2lkIHNldFdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGZsb2F0IHdpZHRoKQorICAgICAgICB7
CisgICAgICAgICAgICBzZXRXaWR0aEZvckluZGV4KGdseXBoICUgc2l6ZSwgd2lkdGgpOworICAg
ICAgICB9CisgICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJbmRleCh1bnNpZ25lZCBpbmRleCwgZmxv
YXQgd2lkdGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRo
OworICAgICAgICB9CisgICAgfTsKKyAgICAKKyAgICBHbHlwaFdpZHRoUGFnZSogbG9jYXRlUGFn
ZSh1bnNpZ25lZCBwYWdlTnVtYmVyKQorICAgIHsKKyAgICAgICAgaWYgKCFwYWdlTnVtYmVyICYm
IG1fZmlsbGVkUHJpbWFyeVBhZ2UpCisgICAgICAgICAgICByZXR1cm4gJm1fcHJpbWFyeVBhZ2U7
CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlU2xvd0Nhc2UocGFnZU51bWJlcik7CisgICAgfQor
CisgICAgR2x5cGhXaWR0aFBhZ2UqIGxvY2F0ZVBhZ2VTbG93Q2FzZSh1bnNpZ25lZCBwYWdlTnVt
YmVyKTsKKyAgICAKKyAgICBib29sIG1fZmlsbGVkUHJpbWFyeVBhZ2U7CisgICAgR2x5cGhXaWR0
aFBhZ2UgbV9wcmltYXJ5UGFnZTsgLy8gV2Ugb3B0aW1pemUgZm9yIHRoZSBwYWdlIHRoYXQgY29u
dGFpbnMgZ2x5cGggaW5kaWNlcyAwLTI1NS4KKyAgICBPd25QdHI8SGFzaE1hcDxpbnQsIEdseXBo
V2lkdGhQYWdlKj4gPiBtX3BhZ2VzOworfTsKKworfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAkocmV2aXNpb24gNTcxNjkpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw5ICsyNiwxMCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEdseXBo
V2lkdGhNYXBfaAotI2RlZmluZSBHbHlwaFdpZHRoTWFwX2gKKyNpZm5kZWYgR2x5cGhNZXRyaWNz
TWFwX2gKKyNkZWZpbmUgR2x5cGhNZXRyaWNzTWFwX2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAgLTM3LDUzICszOCw2NyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR2x5cGg7CiAKLWNvbnN0IGZs
b2F0IGNHbHlwaFdpZHRoVW5rbm93biA9IC0xOworY29uc3QgZmxvYXQgY0dseXBoU2l6ZVVua25v
d24gPSAtMTsKIAotY2xhc3MgR2x5cGhXaWR0aE1hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Citz
dHJ1Y3QgR2x5cGhNZXRyaWNzIHsKKyAgICBmbG9hdCBob3Jpem9udGFsQWR2YW5jZTsKKyAgICBG
bG9hdFJlY3QgYm91bmRpbmdCb3g7Cit9OworCitjbGFzcyBHbHlwaE1ldHJpY3NNYXAgOiBwdWJs
aWMgTm9uY29weWFibGUgewogcHVibGljOgotICAgIEdseXBoV2lkdGhNYXAoKSA6IG1fZmlsbGVk
UHJpbWFyeVBhZ2UoZmFsc2UpIHsgfQotICAgIH5HbHlwaFdpZHRoTWFwKCkgeyBpZiAobV9wYWdl
cykgeyBkZWxldGVBbGxWYWx1ZXMoKm1fcGFnZXMpOyB9IH0KKyAgICBHbHlwaE1ldHJpY3NNYXAo
KSA6IG1fZmlsbGVkUHJpbWFyeVBhZ2UoZmFsc2UpIHsgfQorICAgIH5HbHlwaE1ldHJpY3NNYXAo
KQorICAgIHsgCisgICAgICAgIGlmIChtX3BhZ2VzKQorICAgICAgICAgICAgZGVsZXRlQWxsVmFs
dWVzKCptX3BhZ2VzKTsKKyAgICB9CisKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljc0ZvckdseXBo
KEdseXBoIGdseXBoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBH
bHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+bWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICB9CiAK
ICAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPndpZHRoRm9yR2x5
cGgoZ2x5cGgpOworICAgICAgICByZXR1cm4gbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoTWV0cmlj
c1BhZ2U6OnNpemUpLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpLmhvcml6b250YWxBZHZhbmNlOwog
ICAgIH0KIAotICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lk
dGgpCisgICAgdm9pZCBzZXRNZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBo
TWV0cmljcyYgbWV0cmljcykKICAgICB7Ci0gICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlw
aFdpZHRoUGFnZTo6c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICAg
ICAgbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoTWV0cmljc1BhZ2U6OnNpemUpLT5zZXRNZXRyaWNz
Rm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3MpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3Qg
R2x5cGhXaWR0aFBhZ2UgeworICAgIHN0cnVjdCBHbHlwaE1ldHJpY3NQYWdlIHsKICAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVycyBMYXRpbi0x
IGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVdOworICAgICAg
ICBHbHlwaE1ldHJpY3MgbV9tZXRyaWNzW3NpemVdOwogCi0gICAgICAgIGZsb2F0IHdpZHRoRm9y
R2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2dseXBoICUgc2l6ZV07
IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0
aCkKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29u
c3QgeyByZXR1cm4gbV9tZXRyaWNzW2dseXBoICUgc2l6ZV07IH0KKyAgICAgICAgdm9pZCBzZXRN
ZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGNvbnN0IEdseXBoTWV0cmljcyYgbWV0cmljcykK
ICAgICAgICAgewotICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlwaCAlIHNpemUsIHdp
ZHRoKTsKKyAgICAgICAgICAgIHNldE1ldHJpY3NGb3JJbmRleChnbHlwaCAlIHNpemUsIG1ldHJp
Y3MpOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JJbmRleCh1bnNpZ25lZCBp
bmRleCwgZmxvYXQgd2lkdGgpCisgICAgICAgIHZvaWQgc2V0TWV0cmljc0ZvckluZGV4KHVuc2ln
bmVkIGluZGV4LCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIG1fd2lkdGhzW2luZGV4XSA9IHdpZHRoOworICAgICAgICAgICAgbV9tZXRyaWNzW2lu
ZGV4XSA9IG1ldHJpY3M7CiAgICAgICAgIH0KICAgICB9OwogICAgIAotICAgIEdseXBoV2lkdGhQ
YWdlKiBsb2NhdGVQYWdlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpCisgICAgR2x5cGhNZXRyaWNzUGFn
ZSogbG9jYXRlUGFnZSh1bnNpZ25lZCBwYWdlTnVtYmVyKQogICAgIHsKICAgICAgICAgaWYgKCFw
YWdlTnVtYmVyICYmIG1fZmlsbGVkUHJpbWFyeVBhZ2UpCiAgICAgICAgICAgICByZXR1cm4gJm1f
cHJpbWFyeVBhZ2U7CiAgICAgICAgIHJldHVybiBsb2NhdGVQYWdlU2xvd0Nhc2UocGFnZU51bWJl
cik7CiAgICAgfQogCi0gICAgR2x5cGhXaWR0aFBhZ2UqIGxvY2F0ZVBhZ2VTbG93Q2FzZSh1bnNp
Z25lZCBwYWdlTnVtYmVyKTsKKyAgICBHbHlwaE1ldHJpY3NQYWdlKiBsb2NhdGVQYWdlU2xvd0Nh
c2UodW5zaWduZWQgcGFnZU51bWJlcik7CiAgICAgCiAgICAgYm9vbCBtX2ZpbGxlZFByaW1hcnlQ
YWdlOwotICAgIEdseXBoV2lkdGhQYWdlIG1fcHJpbWFyeVBhZ2U7IC8vIFdlIG9wdGltaXplIGZv
ciB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGdseXBoIGluZGljZXMgMC0yNTUuCi0gICAgT3duUHRy
PEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+ID4gbV9wYWdlczsKKyAgICBHbHlwaE1ldHJp
Y3NQYWdlIG1fcHJpbWFyeVBhZ2U7IC8vIFdlIG9wdGltaXplIGZvciB0aGUgcGFnZSB0aGF0IGNv
bnRhaW5zIGdseXBoIGluZGljZXMgMC0yNTUuCisgICAgT3duUHRyPEhhc2hNYXA8aW50LCBHbHlw
aE1ldHJpY3NQYWdlKj4gPiBtX3BhZ2VzOwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1h
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRo
TWFwLmNwcAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoV2lkdGhNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHbHlwaFdpZHRoTWFwLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotR2x5cGhXaWR0aE1hcDo6R2x5cGhXaWR0aFBhZ2UqIEdseXBoV2lk
dGhNYXA6OmxvY2F0ZVBhZ2VTbG93Q2FzZSh1bnNpZ25lZCBwYWdlTnVtYmVyKQotewotICAgIEds
eXBoV2lkdGhQYWdlKiBwYWdlOwotICAgIGlmIChwYWdlTnVtYmVyID09IDApIHsKLSAgICAgICAg
QVNTRVJUKCFtX2ZpbGxlZFByaW1hcnlQYWdlKTsKLSAgICAgICAgcGFnZSA9ICZtX3ByaW1hcnlQ
YWdlOwotICAgICAgICBtX2ZpbGxlZFByaW1hcnlQYWdlID0gdHJ1ZTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBpZiAobV9wYWdlcykgewotICAgICAgICAgICAgaWYgKChwYWdlID0gbV9wYWdlcy0+
Z2V0KHBhZ2VOdW1iZXIpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcGFnZTsKLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICBtX3BhZ2VzLnNldChuZXcgSGFzaE1hcDxpbnQsIEdseXBoV2lk
dGhQYWdlKj4pOwotICAgICAgICBwYWdlID0gbmV3IEdseXBoV2lkdGhQYWdlOwotICAgICAgICBt
X3BhZ2VzLT5zZXQocGFnZU51bWJlciwgcGFnZSk7Ci0gICAgfQotCi0gICAgLy8gRmlsbCBpbiB0
aGUgd2hvbGUgcGFnZSB3aXRoIHRoZSB1bmtub3duIGdseXBoIHdpZHRoIHZhbHVlLgotICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFdpZHRoUGFnZTo6c2l6ZTsgaSsrKQotICAgICAg
ICBwYWdlLT5zZXRXaWR0aEZvckluZGV4KGksIGNHbHlwaFdpZHRoVW5rbm93bik7Ci0KLSAgICBy
ZXR1cm4gcGFnZTsKLX0KLQotfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmgJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HbHlwaFdpZHRoTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLiAKLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLiAKLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4gCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBHbHlwaFdpZHRoTWFwX2gKLSNkZWZpbmUgR2x5cGhXaWR0aE1hcF9oCi0KLSNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRl
ZiB1bnNpZ25lZCBzaG9ydCBHbHlwaDsKLQotY29uc3QgZmxvYXQgY0dseXBoV2lkdGhVbmtub3du
ID0gLTE7Ci0KLWNsYXNzIEdseXBoV2lkdGhNYXAgOiBwdWJsaWMgTm9uY29weWFibGUgewotcHVi
bGljOgotICAgIEdseXBoV2lkdGhNYXAoKSA6IG1fZmlsbGVkUHJpbWFyeVBhZ2UoZmFsc2UpIHsg
fQotICAgIH5HbHlwaFdpZHRoTWFwKCkgeyBpZiAobV9wYWdlcykgeyBkZWxldGVBbGxWYWx1ZXMo
Km1fcGFnZXMpOyB9IH0KLQotICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCi0g
ICAgewotICAgICAgICByZXR1cm4gbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpz
aXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7Ci0gICAgfQotCi0gICAgdm9pZCBzZXRXaWR0aEZv
ckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKLSAgICB7Ci0gICAgICAgIGxvY2F0ZVBh
Z2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgs
IHdpZHRoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsK
LSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVy
cyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCi0gICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVd
OwotCi0gICAgICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0
dXJuIG1fd2lkdGhzW2dseXBoICUgc2l6ZV07IH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckds
eXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKLSAgICAgICAgewotICAgICAgICAgICAgc2V0
V2lkdGhGb3JJbmRleChnbHlwaCAlIHNpemUsIHdpZHRoKTsKLSAgICAgICAgfQotICAgICAgICB2
b2lkIHNldFdpZHRoRm9ySW5kZXgodW5zaWduZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBtX3dpZHRoc1tpbmRleF0gPSB3aWR0aDsKLSAgICAgICAgfQotICAg
IH07Ci0gICAgCi0gICAgR2x5cGhXaWR0aFBhZ2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQgcGFnZU51
bWJlcikKLSAgICB7Ci0gICAgICAgIGlmICghcGFnZU51bWJlciAmJiBtX2ZpbGxlZFByaW1hcnlQ
YWdlKQotICAgICAgICAgICAgcmV0dXJuICZtX3ByaW1hcnlQYWdlOwotICAgICAgICByZXR1cm4g
bG9jYXRlUGFnZVNsb3dDYXNlKHBhZ2VOdW1iZXIpOwotICAgIH0KLQotICAgIEdseXBoV2lkdGhQ
YWdlKiBsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcik7Ci0gICAgCi0gICAg
Ym9vbCBtX2ZpbGxlZFByaW1hcnlQYWdlOwotICAgIEdseXBoV2lkdGhQYWdlIG1fcHJpbWFyeVBh
Z2U7IC8vIFdlIG9wdGltaXplIGZvciB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGdseXBoIGluZGlj
ZXMgMC0yNTUuCi0gICAgT3duUHRyPEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+ID4gbV9w
YWdlczsKLX07Ci0KLX0KLQotI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmNwcAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDkg
KzE1NywxMSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCgpCiAgICAg
Ly8gYXJlIG1hcHBlZCB0byB0aGUgWkVSTyBXSURUSCBTUEFDRSBnbHlwaC4KICAgICBHbHlwaCB6
ZXJvV2lkdGhTcGFjZUdseXBoID0gZ2x5cGhQYWdlWmVyby0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KDApLmdseXBoOwogICAgIGlmICh6ZXJvV2lkdGhTcGFjZUdseXBoKSB7Ci0gICAgICAgIGlmICh6
ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkKLSAgICAgICAgICAgIG1fZ2x5cGhU
b1dpZHRoTWFwLnNldFdpZHRoRm9yR2x5cGgoemVyb1dpZHRoU3BhY2VHbHlwaCwgMCk7Ci0gICAg
ICAgIGVsc2UKKyAgICAgICAgaWYgKHplcm9XaWR0aFNwYWNlR2x5cGggIT0gbV9zcGFjZUdseXBo
KSB7CisgICAgICAgICAgICBHbHlwaE1ldHJpY3MgbWV0cmljczsKKyAgICAgICAgICAgIG1ldHJp
Y3MuaG9yaXpvbnRhbEFkdmFuY2UgPSAwOworICAgICAgICAgICAgbV9nbHlwaFRvTWV0cmljc01h
cC5zZXRNZXRyaWNzRm9yR2x5cGgoemVyb1dpZHRoU3BhY2VHbHlwaCwgbWV0cmljcyk7CisgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJGb250IG1hcHMgU1BBQ0UgYW5kIFpF
Uk8gV0lEVEggU1BBQ0UgdG8gdGhlIHNhbWUgZ2x5cGguIEdseXBoIHdpZHRoIG5vdCBvdmVycmlk
ZGVuLiIpOwogICAgIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVG
b250RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxl
Rm9udERhdGEuaAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDggQEAKIAogI2lu
Y2x1ZGUgIkZvbnREYXRhLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgorI2luY2x1
ZGUgIkdseXBoTWV0cmljc01hcC5oIgogI2luY2x1ZGUgIkdseXBoUGFnZVRyZWVOb2RlLmgiCi0j
aW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgogI2luY2x1ZGUgIlR5cGVzZXR0aW5nRmVhdHVyZXMu
aCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTU4LDkgKzU4LDkgQEAgY2xhc3MgRm9u
dERlc2NyaXB0aW9uOwogY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIFNoYXJlZEJ1ZmZl
cjsKIGNsYXNzIFNWR0ZvbnREYXRhOwotY2xhc3MgV2lkdGhNYXA7CiAKIGVudW0gUGl0Y2ggeyBV
bmtub3duUGl0Y2gsIEZpeGVkUGl0Y2gsIFZhcmlhYmxlUGl0Y2ggfTsKK2VudW0gR2x5cGhNZXRy
aWNzTW9kZSB7IEdseXBoQm91bmRpbmdCb3gsIEdseXBoV2lkdGhPbmx5IH07CiAKIGNsYXNzIFNp
bXBsZUZvbnREYXRhIDogcHVibGljIEZvbnREYXRhIHsKIHB1YmxpYzoKQEAgLTgxLDggKzgxLDkg
QEAgcHVibGljOgogICAgIGZsb2F0IHhIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3hIZWlnaHQ7
IH0KICAgICB1bnNpZ25lZCB1bml0c1BlckVtKCkgY29uc3QgeyByZXR1cm4gbV91bml0c1BlckVt
OyB9CiAKLSAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoKSBjb25zdDsKLSAgICBmbG9hdCBw
bGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGgpIGNvbnN0OworICAgIGZsb2F0IHdpZHRoRm9yR2x5
cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1ldHJpY3NGb3JHbHlwaChnbHlwaCwgR2x5
cGhXaWR0aE9ubHkpLmhvcml6b250YWxBZHZhbmNlOyB9CisgICAgR2x5cGhNZXRyaWNzIG1ldHJp
Y3NGb3JHbHlwaChHbHlwaCwgR2x5cGhNZXRyaWNzTW9kZSA9IEdseXBoQm91bmRpbmdCb3gpIGNv
bnN0OworICAgIEdseXBoTWV0cmljcyBwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlwaCwgR2x5
cGhNZXRyaWNzTW9kZSkgY29uc3Q7CiAKICAgICBmbG9hdCBzcGFjZVdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9zcGFjZVdpZHRoOyB9CiAgICAgZmxvYXQgYWRqdXN0ZWRTcGFjZVdpZHRoKCkgY29u
c3QgeyByZXR1cm4gbV9hZGp1c3RlZFNwYWNlV2lkdGg7IH0KQEAgLTE2Nyw3ICsxNjgsNyBAQCBw
cml2YXRlOgogICAgIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShXWCkpCiAgICAgdm9pZCBp
bml0R0RJRm9udCgpOwogICAgIHZvaWQgcGxhdGZvcm1Db21tb25EZXN0cm95KCk7Ci0gICAgZmxv
YXQgd2lkdGhGb3JHRElHbHlwaChHbHlwaCBnbHlwaCkgY29uc3Q7CisgICAgR2x5cGhNZXRyaWNz
IG1ldHJpY3NGb3JHRElHbHlwaChHbHlwaCBnbHlwaCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIGlu
dCBtX2FzY2VudDsKQEAgLTE4MSw3ICsxODIsNyBAQCBwcml2YXRlOgogCiAgICAgRm9udFBsYXRm
b3JtRGF0YSBtX3BsYXRmb3JtRGF0YTsKIAotICAgIG11dGFibGUgR2x5cGhXaWR0aE1hcCBtX2ds
eXBoVG9XaWR0aE1hcDsKKyAgICBtdXRhYmxlIEdseXBoTWV0cmljc01hcCBtX2dseXBoVG9NZXRy
aWNzTWFwOwogCiAgICAgYm9vbCBtX3RyZWF0QXNGaXhlZFBpdGNoOwogCkBAIC0yMzcsMTYgKzIz
OCwxNiBAQCBwcml2YXRlOgogICAgIAogICAgIAogI2lmICFQTEFURk9STShRVCkKLUFMV0FZU19J
TkxJTkUgZmxvYXQgU2ltcGxlRm9udERhdGE6OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNv
bnN0CitBTFdBWVNfSU5MSU5FIEdseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6bWV0cmljc0Zv
ckdseXBoKEdseXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlIG1ldHJpY3NNb2RlKSBjb25zdAog
ewotICAgIGZsb2F0IHdpZHRoID0gbV9nbHlwaFRvV2lkdGhNYXAud2lkdGhGb3JHbHlwaChnbHlw
aCk7Ci0gICAgaWYgKHdpZHRoICE9IGNHbHlwaFdpZHRoVW5rbm93bikKLSAgICAgICAgcmV0dXJu
IHdpZHRoOwotICAgIAotICAgIHdpZHRoID0gcGxhdGZvcm1XaWR0aEZvckdseXBoKGdseXBoKTsK
LSAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7Ci0g
ICAgCi0gICAgcmV0dXJuIHdpZHRoOworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzID0gbV9nbHlw
aFRvTWV0cmljc01hcC5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgIGlmICgobWV0cmljc01v
ZGUgPT0gR2x5cGhXaWR0aE9ubHkgJiYgbWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSAhPSBjR2x5
cGhTaXplVW5rbm93bikgfHwgKG1ldHJpY3NNb2RlID09IEdseXBoQm91bmRpbmdCb3ggJiYgbWV0
cmljcy5ib3VuZGluZ0JveC53aWR0aCgpICE9IGNHbHlwaFNpemVVbmtub3duKSkKKyAgICAgICAg
cmV0dXJuIG1ldHJpY3M7CisKKyAgICBtZXRyaWNzID0gcGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgo
Z2x5cGgsIG1ldHJpY3NNb2RlKTsKKyAgICBtX2dseXBoVG9NZXRyaWNzTWFwLnNldE1ldHJpY3NG
b3JHbHlwaChnbHlwaCwgbWV0cmljcyk7CisKKyAgICByZXR1cm4gbWV0cmljczsKIH0KICNlbmRp
ZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250
TGludXguY3BwCShyZXZpc2lvbiA1NzE2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udExpbnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIxLDcgKzUyMSw3IEBA
IHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKLWZs
b2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLykgY29uc3QK
K2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4s
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5
cGhPdmVyZmxvdyogLyogZ2x5cGhPdmVyZmxvdyAqLykgY29uc3QKIHsKICAgICBUZXh0UnVuV2Fs
a2VyIHdhbGtlcihydW4sIDAsIHRoaXMpOwogICAgIHJldHVybiB3YWxrZXIud2lkdGhPZkZ1bGxS
dW4oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9u
dERhdGFMaW51eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0
ZXJtaW5lUGl0Y2goKQogICAgIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPSBwbGF0Zm9ybURhdGEoKS5p
c0ZpeGVkUGl0Y2goKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhG
b3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK2Zsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUgLyogbWV0cmljc01v
ZGUgKi8pIGNvbnN0CiB7CiAgICAgU2tBU1NFUlQoc2l6ZW9mKGdseXBoKSA9PSAyKTsgICAvLyBj
b21waWxlLXRpbWUgYXNzZXJ0CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNTcxNjkp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxMCBAQCBDb21wbGV4VGV4dENvbnRyb2xs
ZXI6OkNvbXBsZXhUZXh0Q29udHJvCiAgICAgLCBtX2NoYXJhY3RlckluQ3VycmVudEdseXBoKDAp
CiAgICAgLCBtX2ZpbmFsUm91bmRpbmdXaWR0aCgwKQogICAgICwgbV9mYWxsYmFja0ZvbnRzKGZh
bGxiYWNrRm9udHMpCisgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hYKG51bWVyaWNfbGltaXRz
PGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdCb3hYKG51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bWluKCkpCisgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hZKG51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdCb3hZKG51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6bWluKCkpCiAgICAgLCBtX2xhc3RSb3VuZGluZ0dseXBoKDApCiB7
CiAgICAgbV9wYWRkaW5nID0gbV9ydW4ucGFkZGluZygpOwpAQCAtNDM4LDYgKzQ0Miw3IEBAIHZv
aWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHMKICAgICAgICAgQ0dGbG9hdCBy
b3VuZGVkU3BhY2VXaWR0aCA9IHJvdW5kQ0dGbG9hdChmb250RGF0YS0+c3BhY2VXaWR0aCgpKTsK
ICAgICAgICAgYm9vbCByb3VuZHNBZHZhbmNlcyA9ICFtX2ZvbnQuaXNQcmludGVyRm9udCgpICYm
IGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5yb3VuZHNHbHlwaEFkdmFuY2VzKCk7CiAgICAgICAg
IGJvb2wgaGFzRXh0cmFTcGFjaW5nID0gKG1fZm9udC5sZXR0ZXJTcGFjaW5nKCkgfHwgbV9mb250
LndvcmRTcGFjaW5nKCkgfHwgbV9wYWRkaW5nKSAmJiAhbV9ydW4uc3BhY2luZ0Rpc2FibGVkKCk7
CisgICAgICAgIENHUG9pbnQgZ2x5cGhPcmlnaW4gPSBDR1BvaW50WmVybzsKICAgICAgICAgQ0ZJ
bmRleCBsYXN0Q2hhcmFjdGVySW5kZXggPSBtX3J1bi5sdHIoKSA/IG51bWVyaWNfbGltaXRzPENG
SW5kZXg+OjptaW4oKSA6IG51bWVyaWNfbGltaXRzPENGSW5kZXg+OjptYXgoKTsKICAgICAgICAg
Ym9vbCBpc01vbm90b25pYyA9IHRydWU7CiAKQEAgLTU0MSw2ICs1NDYsMTYgQEAgdm9pZCBDb21w
bGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBocwogICAgICAgICAgICAgYWR2YW5jZS5oZWln
aHQgKj0gLTE7CiAgICAgICAgICAgICBtX2FkanVzdGVkQWR2YW5jZXMuYXBwZW5kKGFkdmFuY2Up
OwogICAgICAgICAgICAgbV9hZGp1c3RlZEdseXBocy5hcHBlbmQoZ2x5cGgpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRyaWNzID0gZm9udERhdGEtPm1l
dHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdC
b3gubW92ZShnbHlwaE9yaWdpbi54LCBnbHlwaE9yaWdpbi55KTsKKyAgICAgICAgICAgIG1fbWlu
R2x5cGhCb3VuZGluZ0JveFggPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WCwgZ2x5cGhNZXRy
aWNzLmJvdW5kaW5nQm94LngoKSk7CisgICAgICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hY
ID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5y
aWdodCgpKTsKKyAgICAgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0JveFkgPSBtaW4obV9taW5H
bHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LnkoKSk7CisgICAgICAg
ICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFks
IGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAgICAgICAgICBnbHlwaE9y
aWdpbi54ICs9IGFkdmFuY2Uud2lkdGg7CisgICAgICAgICAgICBnbHlwaE9yaWdpbi55ICs9IGFk
dmFuY2UuaGVpZ2h0OworICAgICAgICAgICAgCiAgICAgICAgICAgICBsYXN0Q2hhcmFjdGVySW5k
ZXggPSBjaGFyYWN0ZXJJbmRleDsKICAgICAgICAgfQogICAgICAgICBpZiAoIWlzTW9ub3Rvbmlj
KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYy
LDYgKzYyLDExIEBAIHB1YmxpYzoKICAgICAvLyBFeHRyYSB3aWR0aCB0byB0aGUgbGVmdCBvZiB0
aGUgbGVmdG1vc3QgZ2x5cGguCiAgICAgZmxvYXQgZmluYWxSb3VuZGluZ1dpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV9maW5hbFJvdW5kaW5nV2lkdGg7IH0KIAorICAgIGZsb2F0IG1pbkdseXBoQm91
bmRpbmdCb3hYKCkgY29uc3QgeyByZXR1cm4gbV9taW5HbHlwaEJvdW5kaW5nQm94WDsgfQorICAg
IGZsb2F0IG1heEdseXBoQm91bmRpbmdCb3hYKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlwaEJv
dW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1pbkdseXBoQm91bmRpbmdCb3hZKCkgY29uc3QgeyBy
ZXR1cm4gbV9taW5HbHlwaEJvdW5kaW5nQm94WTsgfQorICAgIGZsb2F0IG1heEdseXBoQm91bmRp
bmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlwaEJvdW5kaW5nQm94WTsgfQorICAgIAog
cHJpdmF0ZToKICAgICBjbGFzcyBDb21wbGV4VGV4dFJ1biA6IHB1YmxpYyBSZWZDb3VudGVkPENv
bXBsZXhUZXh0UnVuPiB7CiAgICAgcHVibGljOgpAQCAtMTczLDYgKzE3OCwxMSBAQCBwcml2YXRl
OgogCiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBtX2ZhbGxiYWNrRm9udHM7
CiAKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hYOworICAgIGZsb2F0IG1fbWF4R2x5
cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WTsKKyAgICBm
bG9hdCBtX21heEdseXBoQm91bmRpbmdCb3hZOworICAgIAogICAgIHVuc2lnbmVkIG1fbGFzdFJv
dW5kaW5nR2x5cGg7CiB9OwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q29tcGxleFRleHRNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHJldmlzaW9uIDU3MTY5KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBs
ZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBpbnQgaCwK
QEAgLTgzLDkgKzg1LDE1IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29u
dGUKICAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQ
b2ludCk7CiB9CiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBU
ZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250
cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0
UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICAgICBDb21wbGV4VGV4dENv
bnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIHRydWUsIGZhbGxiYWNrRm9udHMpOworICAg
IGlmIChnbHlwaE92ZXJmbG93KSB7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxp
bnQ+KGdseXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGlu
Z0JveFkoKSkgLSBhc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IG1h
eDxpbnQ+KGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJv
dW5kaW5nQm94WSgpKSAtIGRlc2NlbnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQg
PSBtYXg8aW50PigwLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WCgpKSk7
CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnJpZ2h0ID0gbWF4PGludD4oMCwgY2VpbGYoY29udHJv
bGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WCgpIC0gY29udHJvbGxlci50b3RhbFdpZHRoKCkpKTsK
KyAgICB9CiAgICAgcmV0dXJuIGNvbnRyb2xsZXIudG90YWxXaWR0aCgpOwogfQogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5t
bQkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1w
bGVGb250RGF0YU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDA3LDE3ICs0MDcsMjcgQEAgdm9p
ZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAgICAgICAgICBbbmFtZSBjYXNl
SW5zZW5zaXRpdmVDb21wYXJlOkAiTW9ub3R5cGVDb3JzaXZhIl0gIT0gTlNPcmRlcmVkU2FtZTsK
IH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBn
bHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNz
Rm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUgbWV0cmljc01vZGUpIGNvbnN0
CiB7Ci0gICAgTlNGb250KiBmb250ID0gbV9wbGF0Zm9ybURhdGEuZm9udCgpOwotICAgIGZsb2F0
IHBvaW50U2l6ZSA9IG1fcGxhdGZvcm1EYXRhLm1fc2l6ZTsKKyAgICBOU0ZvbnQqIGZvbnQgPSBw
bGF0Zm9ybURhdGEoKS5mb250KCk7CisgICAgZmxvYXQgcG9pbnRTaXplID0gcGxhdGZvcm1EYXRh
KCkubV9zaXplOwogICAgIENHQWZmaW5lVHJhbnNmb3JtIG0gPSBDR0FmZmluZVRyYW5zZm9ybU1h
a2VTY2FsZShwb2ludFNpemUsIHBvaW50U2l6ZSk7CiAgICAgQ0dTaXplIGFkdmFuY2U7Ci0gICAg
aWYgKCF3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZhbmNlcyhtX3BsYXRmb3JtRGF0YS5jZ0ZvbnQo
KSwgZm9udCwgJm0sICZnbHlwaCwgJmFkdmFuY2UpKSB7CisgICAgaWYgKCF3a0dldEdseXBoVHJh
bnNmb3JtZWRBZHZhbmNlcyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgZm9udCwgJm0sICZnbHlw
aCwgJmFkdmFuY2UpKSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNhY2hlIGdseXBo
IHdpZHRocyBmb3IgJUAgJWYiLCBbZm9udCBkaXNwbGF5TmFtZV0sIHBvaW50U2l6ZSk7CiAgICAg
ICAgIGFkdmFuY2Uud2lkdGggPSAwOwogICAgIH0KLSAgICByZXR1cm4gYWR2YW5jZS53aWR0aCAr
IG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljczsKKyAgICBt
ZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gYWR2YW5jZS53aWR0aCArIG1fc3ludGhldGljQm9s
ZE9mZnNldDsKKyAgICBpZiAobWV0cmljc01vZGUgPT0gR2x5cGhCb3VuZGluZ0JveCkgeworICAg
ICAgICBDR1JlY3QgYm91bmRpbmdCb3g7CisgICAgICAgIENHRm9udEdldEdseXBoQkJveGVzKHBs
YXRmb3JtRGF0YSgpLmNnRm9udCgpLCAmZ2x5cGgsIDEsICZib3VuZGluZ0JveCk7CisgICAgICAg
IENHRmxvYXQgc2NhbGUgPSBwb2ludFNpemUgLyB1bml0c1BlckVtKCk7CisgICAgICAgIG1ldHJp
Y3MuYm91bmRpbmdCb3ggPSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShib3VuZGluZ0JveCwg
Q0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOworICAgICAgICBpZiAo
bV9zeW50aGV0aWNCb2xkT2Zmc2V0KQorICAgICAgICAgICAgbWV0cmljcy5ib3VuZGluZ0JveC5z
ZXRXaWR0aChtZXRyaWNzLmJvdW5kaW5nQm94LndpZHRoKCkgKyBtX3N5bnRoZXRpY0JvbGRPZmZz
ZXQpOworICAgIH0KKyAgICByZXR1cm4gbWV0cmljczsKIH0KIAogI2lmIFVTRShBVFNVSSkKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCShyZXZpc2lvbiA1
NzE2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiVW5pc2NyaWJlQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBGb250OjpjYW5SZXR1cm5GYWxsYmFja0Zv
bnRzRm9yQ29tcGxleFRleHQoKQpAQCAtODksMTAgKzkxLDE2IEBAIHZvaWQgRm9udDo6ZHJhd0Nv
bXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5
cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CiB9CiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QK
IHsKICAgICBVbmlzY3JpYmVDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCBmYWxsYmFj
a0ZvbnRzKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UocnVuLmxlbmd0aCgpKTsKKyAgICBpZiAo
Z2x5cGhPdmVyZmxvdykgeworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBtYXg8aW50Pihn
bHlwaE92ZXJmbG93LT50b3AsIGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hZ
KCkpIC0gYXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50
PihnbHlwaE92ZXJmbG93LT5ib3R0b20sIGNlaWxmKGNvbnRyb2xsZXIubWF4R2x5cGhCb3VuZGlu
Z0JveFkoKSkgLSBkZXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5sZWZ0ID0gbWF4
PGludD4oMCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFgoKSkpOworICAg
ICAgICBnbHlwaE92ZXJmbG93LT5yaWdodCA9IG1heDxpbnQ+KDAsIGNlaWxmKGNvbnRyb2xsZXIu
bWF4R2x5cGhCb3VuZGluZ0JveFgoKSAtIGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpKSk7Cisg
ICAgfQogICAgIHJldHVybiBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsKIH0KIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDR1dpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFD
R1dpbi5jcHAJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vU2ltcGxlRm9udERhdGFDR1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiwxMCArMTI2
LDEwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQ2hhcldpZHRoSW4KICAgICB9CiB9
CiAKLWZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5
cGgpIGNvbnN0CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0Zv
ckdseXBoKEdseXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlIG1ldHJpY3NNb2RlKSBjb25zdAog
ewogICAgIGlmIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkKLSAgICAgICByZXR1cm4gd2lkdGhG
b3JHRElHbHlwaChnbHlwaCk7CisgICAgICAgcmV0dXJuIG1ldHJpY3NGb3JHRElHbHlwaChnbHlw
aCk7CiAKICAgICBDR0ZvbnRSZWYgZm9udCA9IG1fcGxhdGZvcm1EYXRhLmNnRm9udCgpOwogICAg
IGZsb2F0IHBvaW50U2l6ZSA9IG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKQEAgLTEzOSw4ICsxMzks
MTggQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbAogICAgIC8vIEZJ
WE1FOiBOZWVkIHRvIGFkZCByZWFsIHN1cHBvcnQgZm9yIHByaW50ZXIgZm9udHMuCiAgICAgYm9v
bCBpc1ByaW50ZXJGb250ID0gZmFsc2U7CiAgICAgd2tHZXRHbHlwaEFkdmFuY2VzKGZvbnQsIG0s
IG1faXNTeXN0ZW1Gb250LCBpc1ByaW50ZXJGb250LCBnbHlwaCwgYWR2YW5jZSk7Ci0KLSAgICBy
ZXR1cm4gYWR2YW5jZS53aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBHbHlwaE1l
dHJpY3MgbWV0cmljczsKKyAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gYWR2YW5jZS53
aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICAKKyAgICBpZiAobWV0cmljc01vZGUg
PT0gR2x5cGhCb3VuZGluZ0JveCkgeworICAgICAgICBDR1JlY3QgYm91bmRpbmdCb3g7CisgICAg
ICAgIENHRm9udEdldEdseXBoQkJveGVzKGZvbnQsICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsK
KyAgICAgICAgQ0dGbG9hdCBzY2FsZSA9IHBvaW50U2l6ZSAvIHVuaXRzUGVyRW0oKTsKKyAgICAg
ICAgbWV0cmljcy5ib3VuZGluZ0JveCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJvdW5k
aW5nQm94LCBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAg
ICAgIGlmIChtX3N5bnRoZXRpY0JvbGRPZmZzZXQpCisgICAgICAgICAgICBtZXRyaWNzLmJvdW5k
aW5nQm94LnNldFdpZHRoKG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgoKSArIG1fc3ludGhldGlj
Qm9sZE9mZnNldCk7CisgICAgfQorICAgIHJldHVybiBtZXRyaWNzOwogfQogCiB9CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4u
Y3BwCShyZXZpc2lvbiA1NzE2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Np
bXBsZUZvbnREYXRhV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDE2ICsxNzksMjUgQEAg
dm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAgIFJlbGVhc2VEQygwLCBk
Yyk7CiB9CiAKLWZsb2F0IFNpbXBsZUZvbnREYXRhOjp3aWR0aEZvckdESUdseXBoKEdseXBoIGds
eXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjptZXRyaWNzRm9yR0RJR2x5
cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7CiAgICAgSERDIGhkYyA9IEdldERDKDApOwogICAgIFNl
dEdyYXBoaWNzTW9kZShoZGMsIEdNX0FEVkFOQ0VEKTsKICAgICBIR0RJT0JKIG9sZEZvbnQgPSBT
ZWxlY3RPYmplY3QoaGRjLCBtX3BsYXRmb3JtRGF0YS5oZm9udCgpKTsKLSAgICBpbnQgd2lkdGg7
Ci0gICAgR2V0Q2hhcldpZHRoSShoZGMsIGdseXBoLCAxLCAwLCAmd2lkdGgpOworCisgICAgR0xZ
UEhNRVRSSUNTIGdkaU1ldHJpY3M7CisgICAgc3RhdGljIGNvbnN0IE1BVDIgaWRlbnRpdHkgPSB7
IDAsIDEsICAwLCAwLCAgMCwgMCwgIDAsIDEgfTsKKyAgICBHZXRHbHlwaE91dGxpbmUoaGRjLCBn
bHlwaCwgR0dPX01FVFJJQ1MgfCBHR09fR0xZUEhfSU5ERVgsICZnZGlNZXRyaWNzLCAwLCAwLCAm
aWRlbnRpdHkpOworCiAgICAgU2VsZWN0T2JqZWN0KGhkYywgb2xkRm9udCk7CiAgICAgUmVsZWFz
ZURDKDAsIGhkYyk7Ci0gICAgcmV0dXJuIHdpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0Owor
CisgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljczsKKyAgICBnbHlwaE1ldHJpY3MuaG9yaXpv
bnRhbEFkdmFuY2UgPSBnZGlNZXRyaWNzLmdtQ2VsbEluY1ggKyBtX3N5bnRoZXRpY0JvbGRPZmZz
ZXQ7CisgICAgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94ID0gRmxvYXRSZWN0KGdkaU1ldHJpY3Mu
Z21wdEdseXBoT3JpZ2luLngsIC1nZGlNZXRyaWNzLmdtcHRHbHlwaE9yaWdpbi55LAorICAgICAg
ICBnZGlNZXRyaWNzLmdtQmxhY2tCb3hYICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0LCBnZGlNZXRy
aWNzLmdtQmxhY2tCb3hZKTsKKworICAgIHJldHVybiBnbHlwaE1ldHJpY3M7CiB9CiAKIFNDUklQ
VF9GT05UUFJPUEVSVElFUyogU2ltcGxlRm9udERhdGE6OnNjcmlwdEZvbnRQcm9wZXJ0aWVzKCkg
Y29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Vu
aXNjcmliZUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NzE2OSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIEZJWE1FOiBSZWFyY2hpdGVjdCB0aGlzIHRvIGJlIG1vcmUgbGlrZSBXaWR0
aEl0ZXJhdG9yIGluIEZvbnQuY3BwLiAgSGF2ZSBhbiBhZHZhbmNlKCkgbWV0aG9kCkBAIC0zOSwx
NiArNDEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gdGFrZSB0aGUgR2x5cGhCdWZmZXIg
YXMgYW4gYXJnIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBwb3B1bGF0ZSB0aGUgZ2x5cGggYnVm
ZmVyIHdoZW4KIC8vIG1lYXN1cmluZy4KIFVuaXNjcmliZUNvbnRyb2xsZXI6OlVuaXNjcmliZUNv
bnRyb2xsZXIoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpCi06IG1fZm9udCgqZm9udCkKLSwg
bV9ydW4ocnVuKQotLCBtX2ZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cykKLSwgbV9lbmQocnVu
Lmxlbmd0aCgpKQotLCBtX2N1cnJlbnRDaGFyYWN0ZXIoMCkKLSwgbV9ydW5XaWR0aFNvRmFyKDAp
Ci0sIG1fY29tcHV0aW5nT2Zmc2V0UG9zaXRpb24oZmFsc2UpCi0sIG1faW5jbHVkZVBhcnRpYWxH
bHlwaHMoZmFsc2UpCi0sIG1fb2Zmc2V0WCgwKQotLCBtX29mZnNldFBvc2l0aW9uKDApCisgICAg
OiBtX2ZvbnQoKmZvbnQpCisgICAgLCBtX3J1bihydW4pCisgICAgLCBtX2ZhbGxiYWNrRm9udHMo
ZmFsbGJhY2tGb250cykKKyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19s
aW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFkobnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkobnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKKyAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKKyAg
ICAsIG1fY3VycmVudENoYXJhY3RlcigwKQorICAgICwgbV9ydW5XaWR0aFNvRmFyKDApCisgICAg
LCBtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKGZhbHNlKQorICAgICwgbV9pbmNsdWRlUGFydGlh
bEdseXBocyhmYWxzZSkKKyAgICAsIG1fb2Zmc2V0WCgwKQorICAgICwgbV9vZmZzZXRQb3NpdGlv
bigwKQogewogICAgIG1fcGFkZGluZyA9IG1fcnVuLnBhZGRpbmcoKTsKICAgICBpZiAoIW1fcGFk
ZGluZykKQEAgLTM3NCw2ICszODAsMTQgQEAgYm9vbCBVbmlzY3JpYmVDb250cm9sbGVyOjpzaGFw
ZUFuZFBsYWNlSQogICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChnbHlwaCwgZm9udERhdGEs
IGFkdmFuY2UsICZzaXplKTsKICAgICAgICAgfQogCisgICAgICAgIEdseXBoTWV0cmljcyBnbHlw
aE1ldHJpY3MgPSBmb250RGF0YS0+bWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAgZ2x5
cGhNZXRyaWNzLmJvdW5kaW5nQm94Lm1vdmUobV9nbHlwaE9yaWdpbi54KCksIG1fZ2x5cGhPcmln
aW4ueSgpKTsKKyAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WCA9IG1pbihtX21pbkdseXBo
Qm91bmRpbmdCb3hYLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueCgpKTsKKyAgICAgICAgbV9t
YXhHbHlwaEJvdW5kaW5nQm94WCA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hYLCBnbHlwaE1l
dHJpY3MuYm91bmRpbmdCb3gucmlnaHQoKSk7CisgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0Jv
eFkgPSBtaW4obV9taW5HbHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94
LnkoKSk7CisgICAgICAgIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkgPSBtYXgobV9tYXhHbHlwaEJv
dW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LmJvdHRvbSgpKTsKKyAgICAgICAg
bV9nbHlwaE9yaWdpbi5tb3ZlKGFkdmFuY2UgKyBvZmZzZXRYLCAtb2Zmc2V0WSk7CisKICAgICAg
ICAgLy8gTXV0YXRlIHRoZSBnbHlwaCBhcnJheSB0byBjb250YWluIG91ciBhbHRlcmVkIGFkdmFu
Y2VzLgogICAgICAgICBpZiAobV9jb21wdXRpbmdPZmZzZXRQb3NpdGlvbikKICAgICAgICAgICAg
IGFkdmFuY2VzW2tdID0gYWR2YW5jZTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1VuaXNjcmliZUNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmgJKHJldmlzaW9uIDU3MTY5KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSw2ICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUg
d2lkdGggb2YgZXZlcnl0aGluZyB3ZSd2ZSBjb25zdW1lZCBzbyBmYXIuCiAgICAgZmxvYXQgcnVu
V2lkdGhTb0ZhcigpIGNvbnN0IHsgcmV0dXJuIG1fcnVuV2lkdGhTb0ZhcjsgfQogCisgICAgZmxv
YXQgbWluR2x5cGhCb3VuZGluZ0JveFgoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRp
bmdCb3hYOyB9CisgICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0JveFgoKSBjb25zdCB7IHJldHVy
biBtX21heEdseXBoQm91bmRpbmdCb3hYOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0Jv
eFkoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQg
bWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRpbmdC
b3hZOyB9CisKIHByaXZhdGU6ICAgIAogICAgIHZvaWQgcmVzZXRDb250cm9sQW5kU3RhdGUoKTsK
IApAQCAtNjEsNiArNjYsMTEgQEAgcHJpdmF0ZTogICAgCiAgICAgY29uc3QgRm9udCYgbV9mb250
OwogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOworICAgIEZsb2F0UG9pbnQgbV9nbHlwaE9yaWdpbjsK
KyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hYOworICAgIGZsb2F0IG1fbWF4R2x5cGhC
b3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WTsKKyAgICBmbG9h
dCBtX21heEdseXBoQm91bmRpbmdCb3hZOwogCiAgICAgU0NSSVBUX0NPTlRST0wgbV9jb250cm9s
OwogICAgIFNDUklQVF9TVEFURSBtX3N0YXRlOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4OCw4ICsyODgsMTAgQEAgaW50IElubGluZUZs
b3dCb3g6OnBsYWNlQm94ZXNIb3Jpem9udGFsbAogICAgICAgICAgICAgaW50IGxldHRlclNwYWNp
bmcgPSBtaW4oMCwgKGludClydC0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkubGV0dGVyU3Bh
Y2luZygpKTsKICAgICAgICAgICAgIHJpZ2h0TGF5b3V0T3ZlcmZsb3cgPSBtYXgoeFBvcyArIHRl
eHQtPndpZHRoKCkgLSBsZXR0ZXJTcGFjaW5nLCByaWdodExheW91dE92ZXJmbG93KTsKIAotICAg
ICAgICAgICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93OwotICAgICAg
ICAgICAgaW50IHJpZ2h0R2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93IC0gbGV0dGVyU3Bh
Y2luZzsKKyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNf
Y2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAg
ICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gKGdseXBoT3ZlcmZs
b3cgPyBnbHlwaE92ZXJmbG93LT5sZWZ0IDogMCk7CisgICAgICAgICAgICBpbnQgcmlnaHRHbHlw
aE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFjaW5nICsgKGdseXBoT3ZlcmZs
b3cgPyBnbHlwaE92ZXJmbG93LT5yaWdodCA6IDApOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpbnQgY2hpbGRPdmVyZmxvd0xlZnQgPSBsZWZ0R2x5cGhPdmVyZmxvdzsKICAgICAgICAgICAg
IGludCBjaGlsZE92ZXJmbG93UmlnaHQgPSByaWdodEdseXBoT3ZlcmZsb3c7CkBAIC00MTIsMzUg
KzQxNCwzNSBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpCiAKICAg
ICAgICAgaW50IGxpbmVIZWlnaHQ7CiAgICAgICAgIGludCBiYXNlbGluZTsKLSAgICAgICAgVmVj
dG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gdXNlZEZvbnRzOworICAgICAgICBWZWN0b3I8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogdXNlZEZvbnRzID0gMDsKICAgICAgICAgaWYgKGN1cnItPmlz
SW5saW5lVGV4dEJveCgpKQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+
KGN1cnIpLT50YWtlRmFsbGJhY2tGb250cyh1c2VkRm9udHMpOworICAgICAgICAgICAgdXNlZEZv
bnRzID0gc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KGN1cnIpLT5mYWxsYmFja0ZvbnRzKCk7
CiAKLSAgICAgICAgaWYgKCF1c2VkRm9udHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICB1c2Vk
Rm9udHMuYXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgp
LnByaW1hcnlGb250KCkpOworICAgICAgICBpZiAodXNlZEZvbnRzKSB7CisgICAgICAgICAgICB1
c2VkRm9udHMtPmFwcGVuZChjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZv
bnQoKS5wcmltYXJ5Rm9udCgpKTsKICAgICAgICAgICAgIExlbmd0aCBwYXJlbnRMaW5lSGVpZ2h0
ID0gY3Vyci0+cmVuZGVyZXIoKS0+cGFyZW50KCktPnN0eWxlKCktPmxpbmVIZWlnaHQoKTsKICAg
ICAgICAgICAgIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzTmVnYXRpdmUoKSkgewogICAgICAgICAg
ICAgICAgIGludCBiYXNlbGluZVRvQm90dG9tID0gMDsKICAgICAgICAgICAgICAgICBiYXNlbGlu
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKHVz
ZWRGb250c1tpXS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2Vk
Rm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9
IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgYmFzZWxpbmVUb0JvdHRvbSA9IG1heChiYXNlbGluZVRvQm90dG9t
LCB1c2VkRm9udHNbaV0tPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0g
dXNlZEZvbnRzW2ldLT5kZXNjZW50KCkgLSBoYWxmTGVhZGluZyk7CisgICAgICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMtPnNpemUoKTsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9ICh1c2VkRm9udHMtPmF0KGkpLT5saW5lU3Bh
Y2luZygpIC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkgLSB1c2VkRm9udHMtPmF0KGkpLT5k
ZXNjZW50KCkpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxp
bmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkpOworICAgICAgICAg
ICAgICAgICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20sIHVzZWRG
b250cy0+YXQoaSktPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAt
IHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IGJhc2VsaW5lICsgYmFzZWxpbmVU
b0JvdHRvbTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50TGluZUhlaWdodC5pc1BlcmNl
bnQoKSkgewogICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBwYXJlbnRMaW5lSGVpZ2h0LmNh
bGNNaW5WYWx1ZShjdXJyLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5mb250U2l6ZSgpKTsKICAgICAg
ICAgICAgICAgICBiYXNlbGluZSA9IDA7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB1c2VkRm9udHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50
IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0gdXNl
ZEZvbnRzW2ldLT5kZXNjZW50KCkpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUg
PSBtYXgoYmFzZWxpbmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSk7Cisg
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMtPnNpemUoKTsg
KytpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9IChsaW5lSGVpZ2h0
IC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkgLSB1c2VkRm9udHMtPmF0KGkpLT5kZXNjZW50
KCkpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxpbmUsIGhh
bGZMZWFkaW5nICsgdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IHBh
cmVudExpbmVIZWlnaHQudmFsdWUoKTsKICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IDA7Ci0g
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkRm9udHMuc2l6ZSgpOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQg
LSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0gdXNlZEZvbnRzW2ldLT5kZXNjZW50KCkpIC8gMjsK
LSAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxpbmUsIGhhbGZMZWFkaW5n
ICsgdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB1c2VkRm9udHMtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAg
IGludCBoYWxmTGVhZGluZyA9IChsaW5lSGVpZ2h0IC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50
KCkgLSB1c2VkRm9udHMtPmF0KGkpLT5kZXNjZW50KCkpIC8gMjsKKyAgICAgICAgICAgICAgICAg
ICAgYmFzZWxpbmUgPSBtYXgoYmFzZWxpbmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzLT5hdChp
KS0+YXNjZW50KCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fSBlbHNlIHsKQEAgLTU2MiwxMCArNTY0LDEyIEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0
ZVZlcnRpY2FsT3ZlcmYKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAg
aW50IHN0cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihydC0+c3R5bGUoKS0+
dGV4dFN0cm9rZVdpZHRoKCkgLyAyLjBmKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlu
dCB0b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgaW50IGJv
dHRvbUdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdzsKLSAgICAgICAgICAgIAorCisgICAg
ICAgICAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8SW5saW5l
VGV4dEJveCo+KGN1cnIpLT5nbHlwaE92ZXJmbG93KCk7CisKKyAgICAgICAgICAgIGludCB0b3BH
bHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gKGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92
ZXJmbG93LT50b3AgOiAwKTsKKyAgICAgICAgICAgIGludCBib3R0b21HbHlwaE92ZXJmbG93ID0g
c3Ryb2tlT3ZlcmZsb3cgKyAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6
IDApOworCiAgICAgICAgICAgICBpbnQgY2hpbGRPdmVyZmxvd1RvcCA9IHRvcEdseXBoT3ZlcmZs
b3c7CiAgICAgICAgICAgICBpbnQgY2hpbGRPdmVyZmxvd0JvdHRvbSA9IGJvdHRvbUdseXBoT3Zl
cmZsb3c7CiAgICAgICAgICAgICBmb3IgKFNoYWRvd0RhdGEqIHNoYWRvdyA9IHJ0LT5zdHlsZSgp
LT50ZXh0U2hhZG93KCk7IHNoYWRvdzsgc2hhZG93ID0gc2hhZG93LT5uZXh0KSB7CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyOSwzMCAr
MTAyOSw0OCBAQCBib29sIElubGluZVRleHRCb3g6OmNvbnRhaW5zQ2FyZXRPZmZzZXQoCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxJbmxpbmVUZXh0Qm94KiwgVmVjdG9y
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gPiBGYWxsYmFja0ZvbnRzTWFwOwotc3RhdGljIEZhbGxi
YWNrRm9udHNNYXAqIGdGYWxsYmFja0ZvbnRzTWFwOwotCiB2b2lkIElubGluZVRleHRCb3g6OnNl
dEZhbGxiYWNrRm9udHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxs
YmFja0ZvbnRzKQogewotICAgIGlmICghZ0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIGdGYWxs
YmFja0ZvbnRzTWFwID0gbmV3IEZhbGxiYWNrRm9udHNNYXA7CisgICAgaWYgKCFzX2dseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworCisg
ICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19nbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMsIG1ha2VfcGFpcihWZWN0b3I8
Y29uc3QgU2ltcGxlRm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93KCkpKS5maXJzdDsKKyAgICBB
U1NFUlQoaXQtPnNlY29uZC5maXJzdC5pc0VtcHR5KCkpOworICAgIGNvcHlUb1ZlY3RvcihmYWxs
YmFja0ZvbnRzLCBpdC0+c2Vjb25kLmZpcnN0KTsKK30KKworVmVjdG9yPGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIElubGluZVRleHRCb3g6OmZhbGxiYWNrRm9udHMoKSBjb25zdAoreworICAgIGlm
ICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IGdGYWxsYmFja0ZvbnRzTWFw
LT5zZXQodGhpcywgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4oKSkuZmlyc3Q7Ci0gICAg
QVNTRVJUKGl0LT5zZWNvbmQuaXNFbXB0eSgpKTsKLSAgICBjb3B5VG9WZWN0b3IoZmFsbGJhY2tG
b250cywgaXQtPnNlY29uZCk7CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6
Oml0ZXJhdG9yIGl0ID0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZmluZCh0
aGlzKTsKKyAgICBpZiAoaXQgPT0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+
ZW5kKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuICZpdC0+c2Vjb25kLmZpcnN0
OwogfQogCi12b2lkIElubGluZVRleHRCb3g6OnRha2VGYWxsYmFja0ZvbnRzKFZlY3Rvcjxjb25z
dCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKQorSW5saW5lVGV4dEJveDo6R2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAqIElubGluZVRleHRCb3g6OnNfZ2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAgPSAwOworCit2b2lkIElubGluZVRleHRCb3g6OnNldEdseXBo
T3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKLSAgICBpZiAo
IWdGYWxsYmFja0ZvbnRzTWFwKQotICAgICAgICByZXR1cm47CisgICAgaWYgKCFzX2dseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwID0gbmV3IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOwogCi0g
ICAgRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBnRmFsbGJhY2tGb250c01hcC0+Zmlu
ZCh0aGlzKTsKLSAgICBpZiAoaXQgPT0gZ0ZhbGxiYWNrRm9udHNNYXAtPmVuZCgpKQotICAgICAg
ICByZXR1cm47CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9y
IGl0ID0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+YWRkKHRoaXMsIG1ha2Vf
cGFpcihWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpLCBHbHlwaE92ZXJmbG93KCkpKS5m
aXJzdDsKKyAgICBpdC0+c2Vjb25kLnNlY29uZCA9IGdseXBoT3ZlcmZsb3c7Cit9CisKK0dseXBo
T3ZlcmZsb3cqIElubGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3coKSBjb25zdAoreworICAgIGlm
ICghc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gc19n
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZmluZCh0aGlzKTsKKyAgICBpZiAoaXQg
PT0gc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCisgICAgICAgIHJl
dHVybiAwOwogCi0gICAgZmFsbGJhY2tGb250cy5zd2FwKGl0LT5zZWNvbmQpOwotICAgIGdGYWxs
YmFja0ZvbnRzTWFwLT5yZW1vdmUoaXQpOworICAgIHJldHVybiAmaXQtPnNlY29uZC5zZWNvbmQ7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmgJKHJldmlzaW9uIDU3MTY5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBv
ZmZzZXRSdW4oaW50IGQpIHsgbV9zdGFydCArPSBkOyB9CiAKICAgICB2b2lkIHNldEZhbGxiYWNr
Rm9udHMoY29uc3QgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7Ci0gICAgdm9pZCB0
YWtlRmFsbGJhY2tGb250cyhWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYpOworICAgIFZl
Y3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKCkgY29uc3Q7CisKKyAg
ICB2b2lkIHNldEdseXBoT3ZlcmZsb3coY29uc3QgR2x5cGhPdmVyZmxvdyYpOworICAgIEdseXBo
T3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3coKSBjb25zdDsKKworICAgIHN0YXRpYyB2b2lkIGNsZWFy
R2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCgpCisgICAgeworICAgICAgICBpZiAoc19n
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgICAgIHNfZ2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmNsZWFyKCk7CisgICAgfQogCiAgICAgdW5zaWduZWQg
c2hvcnQgdHJ1bmNhdGlvbigpIHsgcmV0dXJuIG1fdHJ1bmNhdGlvbjsgfQogCkBAIC0xMjksNiAr
MTM4LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBzaG9ydCBtX3RydW5jYXRpb247IC8vIFdo
ZXJlIHRvIHRydW5jYXRlIHdoZW4gdGV4dCBvdmVyZmxvdyBpcyBhcHBsaWVkLiAgV2UgdXNlIHNw
ZWNpYWwgY29uc3RhbnRzIHRvCiAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVub3RlIG5vIHRy
dW5jYXRpb24gKHRoZSB3aG9sZSBydW4gcGFpbnRzKSBhbmQgZnVsbCB0cnVuY2F0aW9uIChub3Ro
aW5nIHBhaW50cyBhdCBhbGwpLgogCisgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IElubGluZVRl
eHRCb3gqLCBwYWlyPFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+LCBHbHlwaE92ZXJmbG93
PiA+IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworICAgIHN0YXRpYyBHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCogc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcDsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgcGFpbnRDb21wb3NpdGlvbkJhY2tncm91bmQo
R3JhcGhpY3NDb250ZXh0KiwgaW50IHR4LCBpbnQgdHksIFJlbmRlclN0eWxlKiwgY29uc3QgRm9u
dCYsIGludCBzdGFydFBvcywgaW50IGVuZFBvcyk7CiAgICAgdm9pZCBwYWludERvY3VtZW50TWFy
a2VycyhHcmFwaGljc0NvbnRleHQqLCBpbnQgdHgsIGludCB0eSwgUmVuZGVyU3R5bGUqLCBjb25z
dCBGb250JiwgYm9vbCBiYWNrZ3JvdW5kKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIsNyAr
MzQyLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUhvcml6b250YWxQb3NpdAogICAgICAg
ICAgICAgICAgIG5lZWRzV29yZFNwYWNpbmcgPSAhaXNTcGFjZU9yTmV3bGluZShydC0+Y2hhcmFj
dGVycygpW3ItPm1fc3RvcCAtIDFdKSAmJiByLT5tX3N0b3AgPT0gbGVuZ3RoOyAgICAgICAgICAK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiBmYWxsYmFja0ZvbnRzOwotICAgICAgICAgICAgci0+bV9ib3gtPnNldFdpZHRoKHJ0LT53aWR0
aChyLT5tX3N0YXJ0LCByLT5tX3N0b3AgLSByLT5tX3N0YXJ0LCB0b3RXaWR0aCwgZmlyc3RMaW5l
LCAmZmFsbGJhY2tGb250cykpOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJm
bG93OworICAgICAgICAgICAgci0+bV9ib3gtPnNldFdpZHRoKHJ0LT53aWR0aChyLT5tX3N0YXJ0
LCByLT5tX3N0b3AgLSByLT5tX3N0YXJ0LCB0b3RXaWR0aCwgZmlyc3RMaW5lLCAmZmFsbGJhY2tG
b250cywgJmdseXBoT3ZlcmZsb3cpKTsKICAgICAgICAgICAgIGlmICghZmFsbGJhY2tGb250cy5p
c0VtcHR5KCkKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICAgICAgICAgICAgICAmJiAhaXNTVkdU
ZXh0KCkKQEAgLTM1MSw2ICszNTIsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUhvcml6
b250YWxQb3NpdAogICAgICAgICAgICAgICAgIEFTU0VSVChyLT5tX2JveC0+aXNUZXh0KCkpOwog
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihyLT5tX2JveCktPnNl
dEZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoKGdseXBoT3ZlcmZsb3cudG9wIHx8IGdseXBoT3ZlcmZsb3cuYm90dG9tIHx8IGdseXBo
T3ZlcmZsb3cubGVmdCB8fCBnbHlwaE92ZXJmbG93LnJpZ2h0KQorI2lmIEVOQUJMRShTVkcpCisg
ICAgICAgICAgICAgICAgJiYgIWlzU1ZHVGV4dCgpCisjZW5kaWYKKyAgICAgICAgICAgICkgewor
ICAgICAgICAgICAgICAgIEFTU0VSVChyLT5tX2JveC0+aXNUZXh0KCkpOworICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihyLT5tX2JveCktPnNldEdseXBoT3ZlcmZs
b3coZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoIXIt
Pm1fb2JqZWN0LT5pc1JlbmRlcklubGluZSgpKSB7CiAgICAgICAgICAgICBSZW5kZXJCb3gqIHJl
bmRlckJveCA9IHRvUmVuZGVyQm94KHItPm1fb2JqZWN0KTsKICAgICAgICAgICAgIHJlbmRlckJv
eC0+Y2FsY1dpZHRoKCk7CkBAIC03MzQsNiArNzQzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0SW5saW5lQ2hpbGRyZW4oYgogCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgcG9z
aXRpb24gb3VyIHRleHQgcnVucyB2ZXJ0aWNhbGx5LgogICAgICAgICAgICAgICAgICAgICAgICAg
Y29tcHV0ZVZlcnRpY2FsUG9zaXRpb25zRm9yTGluZShsaW5lQm94LCByZXNvbHZlci5maXJzdFJ1
bigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIElubGluZVRleHRCb3g6OmNsZWFyR2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udE1hcCgpOwogCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFNwZWNpYWwgU1ZHIHRleHQgbGF5b3V0IGNvZGUKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA1NzE2OSkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIFJlbmRl
clRleHQ6OlJlbmRlclRleHQoTm9kZSogbm9kZSwgUGFzc1IKICAgICAgLCBtX2xpbmVzRGlydHko
ZmFsc2UpCiAgICAgICwgbV9jb250YWluc1JldmVyc2VkVGV4dChmYWxzZSkKICAgICAgLCBtX2lz
QWxsQVNDSUkobV90ZXh0LmNvbnRhaW5zT25seUFTQ0lJKCkpCi0gICAgICwgbV9rbm93bk5vdFRv
VXNlRmFsbGJhY2tGb250cyhmYWxzZSkKKyAgICAgLCBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0Fu
ZE5vRmFsbGJhY2tGb250cyhmYWxzZSkKIHsKICAgICBBU1NFUlQobV90ZXh0KTsKIApAQCAtMTQz
LDcgKzE0Myw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWYKICAg
ICAvLyBuZWVkIHRvIHJlbGF5b3V0LgogICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxh
eW91dCkgewogICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAg
ICAgICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9IGZhbHNlOworICAgICAgICBtX2tu
b3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IGZhbHNlOwogICAgIH0KIAog
ICAgIEVUZXh0VHJhbnNmb3JtIG9sZFRyYW5zZm9ybSA9IG9sZFN0eWxlID8gb2xkU3R5bGUtPnRl
eHRUcmFuc2Zvcm0oKSA6IFRUTk9ORTsKQEAgLTQ2NSw3ICs0NjUsNyBAQCBJbnRSZWN0IFJlbmRl
clRleHQ6OmxvY2FsQ2FyZXRSZWN0KElubGluCiAgICAgcmV0dXJuIEludFJlY3QobGVmdCwgdG9w
LCBjYXJldFdpZHRoLCBoZWlnaHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0
Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4
UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0
CitBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250
JiBmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNv
bnN0CiB7CiAgICAgaWYgKGYuaXNGaXhlZFBpdGNoKCkgJiYgIWYuaXNTbWFsbENhcHMoKSAmJiBt
X2lzQWxsQVNDSUkpIHsKICAgICAgICAgaW50IG1vbm9zcGFjZUNoYXJhY3RlcldpZHRoID0gZi5z
cGFjZVdpZHRoKCk7CkBAIC00OTcsNyArNDk3LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVuZGVy
VGV4dDo6d2lkdGhGcm9tQwogICAgICAgICByZXR1cm4gdzsKICAgICB9CiAKLSAgICByZXR1cm4g
Zi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwgYWxsb3dU
YWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzKTsKKyAgICByZXR1cm4gZi53aWR0aChUZXh0UnVu
KHRleHQoKS0+Y2hhcmFjdGVycygpICsgc3RhcnQsIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBm
YWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Ojp0cmlt
bWVkUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLApAQCAtNTY4LDcgKzU2OCw3IEBAIHZvaWQgUmVu
ZGVyVGV4dDo6dHJpbW1lZFByZWZXaWR0aHMoaW50IGwKICAgICAgICAgICAgICAgICBsaW5lbGVu
Kys7CiAKICAgICAgICAgICAgIGlmIChsaW5lbGVuKSB7Ci0gICAgICAgICAgICAgICAgZW5kTWF4
VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4sIGxlYWRXaWR0aCArIGVuZE1heFcsIDAp
OworICAgICAgICAgICAgICAgIGVuZE1heFcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCBsaW5lbGVu
LCBsZWFkV2lkdGggKyBlbmRNYXhXLCAwLCAwKTsKICAgICAgICAgICAgICAgICBpZiAoZmlyc3RM
aW5lKSB7CiAgICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZSA9IGZhbHNlOwogICAgICAgICAg
ICAgICAgICAgICBsZWFkV2lkdGggPSAwOwpAQCAtNjEzLDE0ICs2MTMsMTUgQEAgaW50IFJlbmRl
clRleHQ6Om1heFByZWZXaWR0aCgpIGNvbnN0CiB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lk
dGhzKGludCBsZWFkV2lkdGgpCiB7CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
IGZhbGxiYWNrRm9udHM7Ci0gICAgY2FsY1ByZWZXaWR0aHMobGVhZFdpZHRoLCBmYWxsYmFja0Zv
bnRzKTsKLSAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5KCkpCi0gICAgICAgIG1fa25vd25O
b3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVlOworICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVy
ZmxvdzsKKyAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxiYWNrRm9udHMsIGdseXBo
T3ZlcmZsb3cpOworICAgIGlmIChmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSAmJiAhZ2x5cGhPdmVy
Zmxvdy5sZWZ0ICYmICFnbHlwaE92ZXJmbG93LnJpZ2h0ICYmICFnbHlwaE92ZXJmbG93LnRvcCAm
JiAhZ2x5cGhPdmVyZmxvdy5ib3R0b20pCisgICAgICAgIG1fa25vd25Ub0hhdmVOb092ZXJmbG93
QW5kTm9GYWxsYmFja0ZvbnRzID0gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJl
ZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZh
bGxiYWNrRm9udHMpCit2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lk
dGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhP
dmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKLSAgICBBU1NFUlQobV9oYXNUYWIgfHwgcHJlZldp
ZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMpOworICAgIEFTU0VS
VChtX2hhc1RhYiB8fCBwcmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93blRvSGF2ZU5vT3ZlcmZs
b3dBbmROb0ZhbGxiYWNrRm9udHMpOwogCiAgICAgbV9taW5XaWR0aCA9IDA7CiAgICAgbV9iZWdp
bk1pbldpZHRoID0gMDsKQEAgLTY1MCw2ICs2NTEsOCBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQ
cmVmV2lkdGhzKGludCBsZWFkCiAgICAgaW50IG5leHRCcmVha2FibGUgPSAtMTsKICAgICBpbnQg
bGFzdFdvcmRCb3VuZGFyeSA9IDA7CiAKKyAgICBpbnQgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9
IC0xOworCiAgICAgYm9vbCBicmVha05CU1AgPSBzdHlsZSgpLT5hdXRvV3JhcCgpICYmIHN0eWxl
KCktPm5ic3BNb2RlKCkgPT0gU1BBQ0U7CiAgICAgYm9vbCBicmVha0FsbCA9IChzdHlsZSgpLT53
b3JkQnJlYWsoKSA9PSBCcmVha0FsbFdvcmRCcmVhayB8fCBzdHlsZSgpLT53b3JkQnJlYWsoKSA9
PSBCcmVha1dvcmRCcmVhaykgJiYgc3R5bGUoKS0+YXV0b1dyYXAoKTsKIApAQCAtNjkyLDcgKzY5
NSw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKICAgICAgICAg
ICAgIGxhc3RXb3JkQm91bmRhcnkrKzsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
IGVsc2UgaWYgKGMgPT0gc29mdEh5cGhlbikgewotICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9
IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkgLSBsYXN0V29yZEJvdW5kYXJ5
LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAg
IGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBpIC0g
bGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250
cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3ZlcmZs
b3cgPCAwKQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPSBnbHlwaE92
ZXJmbG93LmxlZnQ7CiAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5ID0gaSArIDE7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNzE1LDEzICs3MjAsMTUgQEAgdm9pZCBS
ZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogCiAgICAgICAgIGludCB3b3JkTGVu
ID0gaiAtIGk7CiAgICAgICAgIGlmICh3b3JkTGVuKSB7Ci0gICAgICAgICAgICBpbnQgdyA9IHdp
ZHRoRnJvbUNhY2hlKGYsIGksIHdvcmRMZW4sIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZh
bGxiYWNrRm9udHMpOworICAgICAgICAgICAgaW50IHcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCB3
b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhP
dmVyZmxvdyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA8IDApCisg
ICAgICAgICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGdseXBoT3ZlcmZsb3cubGVm
dDsKICAgICAgICAgICAgIGN1cnJNaW5XaWR0aCArPSB3OwogICAgICAgICAgICAgaWYgKGJldHdl
ZW5Xb3JkcykgewogICAgICAgICAgICAgICAgIGlmIChsYXN0V29yZEJvdW5kYXJ5ID09IGkpCiAg
ICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3OwogICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYs
IGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJy
TWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdp
ZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGogLSBsYXN0V29yZEJv
dW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhP
dmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgbGFzdFdvcmRCb3VuZGFyeSA9IGo7CiAgICAgICAg
ICAgICB9CiAKQEAgLTc3NCw2ICs3ODEsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lk
dGhzKGludCBsZWFkCiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoID0gMDsKICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IGYud2lkdGgoVGV4
dFJ1bih0eHQgKyBpLCAxLCBhbGxvd1RhYnMoKSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoKSk7
CisgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5yaWdodCA9IDA7CiAgICAgICAgICAgICAg
ICAgbmVlZHNXb3JkU3BhY2luZyA9IGlzU3BhY2UgJiYgIXByZXZpb3VzQ2hhcmFjdGVySXNTcGFj
ZSAmJiBpID09IGxlbiAtIDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQobGFz
dFdvcmRCb3VuZGFyeSA9PSBpKTsKQEAgLTc4MSw2ICs3ODksOSBAQCB2b2lkIFJlbmRlclRleHQ6
OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoZmly
c3RHbHlwaExlZnRPdmVyZmxvdyA+IDApCisgICAgICAgIGdseXBoT3ZlcmZsb3cubGVmdCA9IGZp
cnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CisKICAgICBpZiAoKG5lZWRzV29yZFNwYWNpbmcgJiYgbGVu
ID4gMSkgfHwgKGlnbm9yaW5nU3BhY2VzICYmICFmaXJzdFdvcmQpKQogICAgICAgICBjdXJyTWF4
V2lkdGggKz0gd29yZFNwYWNpbmc7CiAKQEAgLTEwNTYsNyArMTA2Nyw3IEBAIHZvaWQgUmVuZGVy
VGV4dDo6c2V0VGV4dChQYXNzUmVmUHRyPFN0cmkKIAogICAgIHNldFRleHRJbnRlcm5hbCh0ZXh0
KTsKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICBtX2tub3du
Tm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZs
b3dBbmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsKICAgICAKICAgICBBWE9iamVjdENhY2hlKiBh
eE9iamVjdENhY2hlID0gZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpOwogICAgIGlmIChheE9i
amVjdENhY2hlLT5hY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQpAQCAtMTEyMiw3ICsxMTMzLDcgQEAg
dm9pZCBSZW5kZXJUZXh0Ojpwb3NpdGlvbkxpbmVCb3goSW5saW5lQgogICAgIG1fY29udGFpbnNS
ZXZlcnNlZFRleHQgfD0gcy0+ZGlyZWN0aW9uKCkgPT0gUlRMOwogfQogCi11bnNpZ25lZCBSZW5k
ZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29s
IGZpcnN0TGluZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
KSBjb25zdAordW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExpbmUsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29u
c3QKIHsKICAgICBpZiAoZnJvbSA+PSB0ZXh0TGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMTEzMCwxMCArMTE0MSwxMCBAQCB1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25l
ZCBmcm9tCiAgICAgaWYgKGZyb20gKyBsZW4gPiB0ZXh0TGVuZ3RoKCkpCiAgICAgICAgIGxlbiA9
IHRleHRMZW5ndGgoKSAtIGZyb207CiAKLSAgICByZXR1cm4gd2lkdGgoZnJvbSwgbGVuLCBzdHls
ZShmaXJzdExpbmUpLT5mb250KCksIHhQb3MsIGZhbGxiYWNrRm9udHMpOworICAgIHJldHVybiB3
aWR0aChmcm9tLCBsZW4sIHN0eWxlKGZpcnN0TGluZSktPmZvbnQoKSwgeFBvcywgZmFsbGJhY2tG
b250cywgZ2x5cGhPdmVyZmxvdyk7CiB9CiAKLXVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVu
c2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9udCYgZiwgaW50IHhQb3MsIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK3Vuc2lnbmVk
IFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9u
dCYgZiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICAgICBBU1NFUlQo
ZnJvbSArIGxlbiA8PSB0ZXh0TGVuZ3RoKCkpOwogICAgIGlmICghY2hhcmFjdGVycygpKQpAQCAt
MTE0MywxOCArMTE1NCwxOSBAQCB1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBm
cm9tCiAgICAgaWYgKCZmID09ICZzdHlsZSgpLT5mb250KCkpIHsKICAgICAgICAgaWYgKCFzdHls
ZSgpLT5wcmVzZXJ2ZU5ld2xpbmUoKSAmJiAhZnJvbSAmJiBsZW4gPT0gdGV4dExlbmd0aCgpKSB7
CiAgICAgICAgICAgICBpZiAoZmFsbGJhY2tGb250cykgewotICAgICAgICAgICAgICAgIGlmIChw
cmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cykgewotICAg
ICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZX
aWR0aHMoMCwgKmZhbGxiYWNrRm9udHMpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJh
Y2tGb250cy0+aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgbV9rbm93bk5vdFRv
VXNlRmFsbGJhY2tGb250cyA9IHRydWU7CisgICAgICAgICAgICAgICAgQVNTRVJUKGdseXBoT3Zl
cmZsb3cpOworICAgICAgICAgICAgICAgIGlmIChwcmVmV2lkdGhzRGlydHkoKSB8fCAhbV9rbm93
blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3RfY2FzdDxSZW5kZXJUZXh0Kj4odGhpcyktPmNhbGNQcmVmV2lkdGhzKDAsICpmYWxs
YmFja0ZvbnRzLCAqZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmYWxs
YmFja0ZvbnRzLT5pc0VtcHR5KCkgJiYgIWdseXBoT3ZlcmZsb3ctPmxlZnQgJiYgIWdseXBoT3Zl
cmZsb3ctPnJpZ2h0ICYmICFnbHlwaE92ZXJmbG93LT50b3AgJiYgIWdseXBoT3ZlcmZsb3ctPmJv
dHRvbSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5k
Tm9GYWxsYmFja0ZvbnRzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgdyA9IG1fbWF4V2lkdGg7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICB3
ID0gbWF4UHJlZldpZHRoKCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdyA9IHdpZHRo
RnJvbUNhY2hlKGYsIGZyb20sIGxlbiwgeFBvcywgZmFsbGJhY2tGb250cyk7CisgICAgICAgICAg
ICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzLCBn
bHlwaE92ZXJmbG93KTsKICAgICB9IGVsc2UKLSAgICAgICAgdyA9IGYud2lkdGgoVGV4dFJ1bih0
ZXh0KCktPmNoYXJhY3RlcnMoKSArIGZyb20sIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBmYWxs
YmFja0ZvbnRzKTsKKyAgICAgICAgdyA9IGYud2lkdGgoVGV4dFJ1bih0ZXh0KCktPmNoYXJhY3Rl
cnMoKSArIGZyb20sIGxlbiwgYWxsb3dUYWJzKCksIHhQb3MpLCBmYWxsYmFja0ZvbnRzLCBnbHlw
aE92ZXJmbG93KTsKIAogICAgIHJldHVybiB3OwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
aAkocmV2aXNpb24gNTcxNjkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTY3LDggKzY3LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHRleHRM
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3RleHQubGVuZ3RoKCk7IH0gLy8gbm9uIHZpcnR1YWwg
aW1wbGVtZW50YXRpb24gb2YgbGVuZ3RoKCkKICAgICB2b2lkIHBvc2l0aW9uTGluZUJveChJbmxp
bmVCb3gqKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5z
aWduZWQgbGVuLCBjb25zdCBGb250JiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQg
d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBmaXJzdExp
bmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
ID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwg
aW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExp
bmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAKQEAgLTEzMyw3ICsxMzMsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBJbmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7IC8vIFN1YmNsYXNzZWQg
YnkgU1ZHLgogCiBwcml2YXRlOgotICAgIHZvaWQgY2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0
aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzKTsKKyAgICB2
b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYpOwogCiAgICAgLy8gTWFrZSBs
ZW5ndGgoKSBwcml2YXRlIHNvIHRoYXQgY2FsbGVycyB0aGF0IGhhdmUgYSBSZW5kZXJUZXh0Kgog
ICAgIC8vIHdpbGwgdXNlIHRoZSBtb3JlIGVmZmljaWVudCB0ZXh0TGVuZ3RoKCkgaW5zdGVhZCwg
d2hpbGUKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVUZXh0
Qm94ZXMoKTsKICAgICBib29sIGNvbnRhaW5zT25seVdoaXRlc3BhY2UodW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbGVuKSBjb25zdDsKLSAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYs
IGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cykgY29uc3Q7CisgICAgaW50IHdpZHRoRnJvbUNhY2hlKGNvbnN0
IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqKSBjb25zdDsKICAgICBi
b29sIGlzQWxsQVNDSUkoKSBjb25zdCB7IHJldHVybiBtX2lzQWxsQVNDSUk7IH0KIAogICAgIGlu
dCBtX21pbldpZHRoOyAvLyBoZXJlIHRvIG1pbmltaXplIHBhZGRpbmcgaW4gNjQtYml0LgpAQCAt
MTcxLDcgKzE3MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBv
ciByZW1vdmVkKS4KICAgICBib29sIG1fY29udGFpbnNSZXZlcnNlZFRleHQgOiAxOwogICAgIGJv
b2wgbV9pc0FsbEFTQ0lJIDogMTsKLSAgICBtdXRhYmxlIGJvb2wgbV9rbm93bk5vdFRvVXNlRmFs
bGJhY2tGb250cyA6IDE7CisgICAgbXV0YWJsZSBib29sIG1fa25vd25Ub0hhdmVOb092ZXJmbG93
QW5kTm9GYWxsYmFja0ZvbnRzIDogMTsKIH07CiAKIGlubGluZSBSZW5kZXJUZXh0KiB0b1JlbmRl
clRleHQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NzE2OSkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisy
MDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dCByZXBhaW50aW5nIGRv
ZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91dHNpZGUgdGhlIHR5cG9ncmFw
aGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYyNzQ+CisKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFj
cml0aWNzLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDQtMDYgIEFuZHJldyBTY2hlcmt1cyAgPHNjaGVya3Vz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBtZWRpYSB0ZXN0IGV4cGVjdGF0
aW9ucyB0d2Vhay4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNy
aXRpY3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc3RhY2tl
ZC1kaWFjcml0aWNzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKKyAgICAg
ICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgIGRpdi50ZXN0IHsgd2lk
dGg6IDIwMHB4OyBoZWlnaHQ6IDEyMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibHVlOyBwYWRkaW5n
OiAxMHB4OyB9Cis8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVwYWludC5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgICAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgICAgIHsK
KyAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YWNrZWQnKS5pbm5lclRleHQg
PSAiIjsKKyAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blJlcGFpbnRUZXN0KCk7Ij4KKzxwPjxiPkJVRyBJRDo8L2I+IDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc0Ij4gQnVnemlsbGEgYnVnIDYyNzQ8L2E+
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udC48L3A+CisKKzxwIGlkPSJz
dWNjZXNzIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpwYWxlZ3JlZW47IHBhZGRpbmc6M3B4OyI+
PGI+VEVTVCBQQVNTOjwvYj4gCitUaGUgdGV4dCB3aWxsIGVudGlyZWx5IGRpc2FwcGVhci4KKzwv
cD4KKworPHAgaWQ9ImZhaWx1cmUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNGRjMzMDA7IHBh
ZGRpbmc6M3B4OyI+PGI+VEVTVCBGQUlMOjwvYj4gIAorTW9zdCBvZiB0aGUgdGV4dCB3aWxsIGJl
IGdvbmUsIGJ1dCBzb21lIGFydGlmYWN0cyB3aWxsIGJlIGxlZnQgYmVoaW5kIGF0IHRoZSB0b3Ag
b2YgdGhlIHBhZ2UuCis8L3A+CisKKzxkaXYgY2xhc3M9InRlc3QiPgorICAgIDxkaXYgc3R5bGU9
ImZvbnQtc2l6ZTogMzZweDsiIGlkPSJzdGFja2VkIj4mI3gxRUE2OyYjeDFFQTQ7JiN4MUVBQTsm
I3gxRUE4OyYjeDFFQjA7PC9kaXY+Cis8L2Rpdj4KKzxicj4KKworPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNy
aXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0J
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0
YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSBAQAorY2U5YmU4NmNmYjk0MzNhNjRmYzY1Zjg3MTBiMDIwNTYKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0
YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9z
dGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1
IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDMxNgorICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MzE2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
MTYpIHNpemUgNzg0eDI5MgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0
eDM2CisgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA2MngxOAorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDYyeDE4CisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA2MjogIkJVRyBJRDoiCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoNjIsMCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDYyLDAp
IHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTE3
eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjYs
MCkgc2l6ZSAxMTd4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2NiwwKSB3aWR0aCAxMTc6
ICJCdWd6aWxsYSBidWcgNjI3NCIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxODMs
MCkgc2l6ZSA3Nzd4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTgzLDApIHdpZHRoIDU5NDog
IlRleHQgcmVwYWludGluZyBkb2VzIG5vdCBhY2NvdW50IGZvciBnbHlwaHMgd2hpY2ggZHJhdyBv
dXRzaWRlIHRoZSB0eXBvZ3JhcGhpYyBib3VuZHMgb2YgdGhlIgorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDE4KSB3aWR0aCAyOTogImZvbnQuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDUyKSBzaXplIDc4NHgyNCBbYmdjb2xvcj0jOThGQjk4XQorICAgICAgICBSZW5kZXJJbmxpbmUg
e0J9IGF0ICgwLDApIHNpemUgOTF4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDMsMykgc2l6ZSA5MXgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMykgd2lkdGggOTE6
ICJURVNUIFBBU1M6IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDk0LDMpIHNpemUg
MjAzeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDk0LDMpIHdpZHRoIDQ6ICIgIgorICAgICAg
ICAgIHRleHQgcnVuIGF0ICg5OCwzKSB3aWR0aCAxOTk6ICJUaGUgdGV4dCB3aWxsIGVudGlyZWx5
IGRpc2FwcGVhci4iCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsOTIpIHNpemUgNzg0eDI0
IFtiZ2NvbG9yPSNGRjMzMDBdCisgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6
ZSA5MHgxOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywzKSBzaXplIDkweDE4
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCA5MDogIlRFU1QgRkFJTDoiCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOTMsMykgc2l6ZSA1NjF4MTgKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoOTMsMykgd2lkdGggNDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDk3LDMpIHdpZHRoIDU1NzogIk1vc3Qgb2YgdGhlIHRleHQgd2lsbCBiZSBnb25lLCBidXQgc29t
ZSBhcnRpZmFjdHMgd2lsbCBiZSBsZWZ0IGJlaGluZCBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLiIK
KyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEzMikgc2l6ZSAyMjJ4MTQyIFtib3JkZXI6
ICgxcHggc29saWQgIzAwMDBGRildCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMSwx
MSkgc2l6ZSAyMDB4MAorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjc0KSBz
aXplIDc4NHgxOAorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgxOApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRp
Y3MtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFB
TlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFB
ZUFHRgpWTTlyRTBFVS9qWnVxZEFpQ0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6
U2RadU51dnVKcldsaU9UaTBTcmVSZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVN
dHFYcXdNNSs4OTQzNzMxdmR0OEFEWExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFs
VmR2c1RpUUdRWU56K1h2bjJIb1BnVnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhD
bGtTQW9nOAozNkVweDNRSTMrUFk4dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRR
SU5JT0pUMWNWSStuTmVMbE5jZEIybHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9z
OTQrd2lIQ0N4bXRQMGE0alo3MWpOVS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFU
U2VpVkhIWkxnM3htSzc5VnZKS2duQ1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1Vl
RjVqeE5uM3RUZAo3MFhhQXE4d0RoME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJo
dVRlekoxSkdxN2RHSkVzVUY3TnR3OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkx
eXcyRmIzbEsyYm1ycnk0RHZGNVptNUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAr
eFhsekhtZ2pXUHhIT3crL0V0WDVYTWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJY
V2M2MkppemRXbTVkbgovV3BJKys2cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3
eGt0aExxd3ZpWUczSENKMlZoaW5TYlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxT
SjkzL0NLbVEwbmJrT2IvcVAyOGY4RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJ
WHY5Rjk4TFp1YTZOK09Qd0VXRHlyRnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82
NmNwaVVzeFEyME5TVXRjbAoxMlZMRnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3
L2JCUytmbXNVdGwrVGhyV2daZjZiOEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWV6ZFo3Y2t4MzBu
Nkd3RDd4M2hDTzlKa0FTTmFDV0tYSEYwVm1lMFhKN1ZDK2pqNk9NTXo1eDVNM08wUnl2dGpIWkUK
a1VPS0l1Z0pBb1FudlBlMnplWXZiMGQzZHFJcU0rcm12YmVycTU4Z0crVWlJeU9laU15S2Y1cTYr
KzYvLy82ampVU0FBQUVDQkFnUQpJRUNBQUlFOUVOaS9CK3V3Q2dJRUNCQWdRSUFBQVFJRUNIUUNB
aEFEZ1FBQkFnUUlFQ0JBZ0FDQlBSTVFnT3dadFJVUklFQ0FBQUVDCkJBZ1FJQ0FBTVFZSUVDQkFn
QUFCQWdRSUVOZ3pBUUhJbmxGYkVRRUNCQWdRSUVDQUFBRUNBaEJqZ0FBQkFnUUlFQ0JBZ0FDQlBS
TVEKZ093WnRSVVJJRUNBQUFFQ0JBZ1FJQ0FBTVFZSUVDQkFnQUFCQWdRSUVOZ3pBUUhJbmxGYkVR
RUNCQWdRSUVDQUFBRUNBaEJqZ0FBQgpBZ1FJRUNCQWdBQ0JQUk1RZ093WnRSVVJJRUNBQUFFQ0JB
Z1FJQ0FBTVFZSUVDQkFnQUFCQWdRSUVOZ3pBUUhJbmxGYkVRRUNCQWdRCklFQ0FBQUVDQWhCamdB
QUJBZ1FJRUNCQWdBQ0JQUk1RZ093WnRSVVJJRUNBQUFFQ0JBZ1FJQ0FBTVFZSUVDQkFnQUFCQWdR
SUVOZ3oKQVFISW5sRmJFUUVDQkFnUUlFQ0FBQUVDYXhlQWZQREJCODNiYjcvZEhEMTY5SGp2dlAv
Kys4ZWZlOUkwSDN4d3RIbnJyU1BIS1E0ZgpQdHE4L1BMeTE4Y3pWano1NktPanpidnZuckN2V0dS
SHMyVDlhY3VoUXlmWElXM092N25wVkxadGJ0MTNZdmxzWDIrOTlkYTJpNXE3Ci9Lb3JQbkxrU1BQ
bW0yK3V1cGo4cDBnZysrb1hYbmloM1ZZLzJKTWFIRDU4dU4xZnZMeGo2L3JvbzQvYS9kKzdPMVpl
YlVGVDYxMWwKdTVzcWE2cE9aOG8yTjJXNmt3NXorMlNxenpicDh5bXJxWDRiczVncWUyelozZmhz
SjhmWW92cXRzajgrRlRZSEYxVzYvOTZUVHo3WgovUHJYdjI3ZWVlZWQ3dTFQZk9JVHpYbm5uZGU4
OGNZYnpTV1hYTkxjZSsrOXpZVVhYdGg5OXRoamp6Vy8rYzF2bXZmZWU2OTdmY1VWClZ6UjMzMzEz
ODhsUGZySUxLbjcxcTE4MWYvempINXZycnJ1dStkS1h2dFNWazR6cGhOLy8vdmZONDQ4LzNuMTI4
Y1VYTjYrLy9ucTMKekFVWFhOQ2NmZmJaeldjLys5bXV6UDUvVXJmZi92YTN4eWRVNTU5L2ZuUFBQ
ZmMwKy9mdmI3S3U4aVY0NVpWWGRuVk5HMUwzNUxubwpvb3Y2UlUwK2YrNjVJODFERHgxdXYxeVBO
bTMxbXNzdTI5L3MyOWQwL3k2OWRGOXorKzM3Mi9XMmIreEIrczF2RGpjdnZuaWsrYXUvCk9ydDU1
WlVqelU5L2VxaEpqUGE5NzMzODlTclZlZVNSdzgzUGYzNjR0VDdRM0hYWGdWVVduWjMzalRlT3RP
UHNjUE9KVCt4dmJyaGgKZjNQdzRKYmxxNjhlYWZzeTdUM2FCcVZOKzltKzVpdGZPZGdjT0xDdkhU
ZEhtLy82WHo5cSsvbmpxLy91ZDg5cSsvcmsvbmorK1NQTgpqMzk4cUhQS0V2L3lMLy9TVFY0eVRz
ODY2Nnh1YkdZTVhYNzU1YTNuKzkxblgvN3lsNXRiYnJubDR5czRUZC9KOXZuaWl5KzJZK2V2CnR0
V0N1Y3V2c3RKWFhubWxIZHMvN2ZybUwvN2lMMVpaVk41VElQRG9vNDgyQ1FpeTMvM3hqMy9jL1BW
Zi8zVzduZTdlZnFTTWoyeXIKMy92ZTkyYTNPTjhuR1crZit0U251bit6QzZ3c29HYTl0ZHRkVFZs
ajFTcW0yUjl1K2pZM1pycVREblA3Wkt5L051MnpHcXV4Zmh2egplT1NSUjlyNXpjKzd1ZVJkZDkw
MWxuVlBQdHZKTWJhb3dxdnNqMnZjRjYxajdudVRBY2hOTjkzVUpETDYyYzkrMXEzck01LzVUSk1K
Ci9TOS8rY3N1YUhqNjZhZWI3MzczdTEyUWNPdXR0M2FCeXU5Kzk3c3U3eGUrOElWdU1wY1hDVksr
L3ZXdk4zLy85My9mZk8xclgyc24KbUZ1clBuVG9VUE0vLytmLzdDWjdmL3FuZjlwY2YvMzEzYkw1
ejdQUFB0djg4SWMvYkNmRGl3ZEw2cGFVTDd1a0JEdTMzMzU3OXp4SApzUktjSlAzSm4veEpHelJj
M0xYakgvL3hINXRnSjZCWlZtNjMwT0EvMTE2N3YvMHliZG9BNUZCejY2MG5KdWl2dlhhaytlLy8v
VkFiCmtCMXQxelBKT1NoMWV5L3Z2ZmRBOCtHSFd5ZXZycmhpZjNQenpRZmF2ampjRlRaOHZjb2Fi
ci85UUJ0QWJwV3p5bkp6OHo3NjZPSG0KZDc4NzNIejcyd2ZiY1hMaXBGek9oaVFvdWVPTy9XM1Fz
Yi81d3g4T053OCtlS1R0eThOdDRIdXdEUmlPZEo5ZGM4MVczNlFlNlllSApIejd5c2VEand3K1Bk
b0ZNNzhSYUYvais1Vi8rNWZFQStqLy81Ly9jQmtDZmFOZjFsYTVKRHozMFVKZG5idnZLVWRxcnI3
NTZibEd6Cmw4OEJndzgvL0xDNm5HSGRWMTIrZWtVTE1pWXd2T3FxcTA2N015QkRzd1ZOTyszZW1t
cFQ5dVA1Y3YrYnYvbWI5cURNdnViYWE2L2QKMWVBamdCa2ZOOTk4Yy9jOXRCT2crVDRwM3hrN1VW
NXRHVFhycmQzdWFzb2FxOWZwdXMzMTJ6UTFWa3ZlTWRPNUR2MDZ6TzJUVXQveQoyQys3dkxjcGp6
VldZLzAyNXBDNVlZS1hkVWx6eDloWU8ycjJ4LzF4Vk9NK3RyN3RmblppdGpkU3dqbm5uSFA4MDN5
NUpGMTY2YVhkCll4cVJzeFVsOWZPZWUrNjU1ZTNqanpuelVJS1B2Smt6RlRtRm5nQ2hIM3prczV3
cHlXQWJTems3VWxML2VZN2dsSlF6SWtsNUw4RkkKenJqODRoZS82QzRWS0hscUhrdVJ4d2k2UlhJ
bTVQTEw5M1ZuSkdyS0dPYnBYMm8yL0d6WjYzUE8yZGVld1RuUmRXbGV2MDdEMTZXYwpuREdZU3N1
V25WcHUrSGx0dTE1NjZVZ2IzQjV1ZzlLVGc0K1U5OG9yUjVzdmYvbGdPeTRPZEFIRlp6NXpvQTBX
bW5hOGJMWGp5aXYzCk41Lys5TUYySXJLL0hZOWIvOTU2NjJpYi8rUXpIeWtyQWM1dHQ1MHd5M3NK
UU12WnU3d2VwdHR1dTYwYmw4UDNWM21kc2ZhVG4veWsKRytPckxGZWJkOHc1Nng2bWJKKzFaLzhX
MVgyVjVmdnJIcXRuUDE5NVh2Sm4yeTM3blBMWjNNZFM5dHh5RmkyL3lHeFJ2cnkzcUgrVwo1VDJW
NzllMEtkOEJ5VmY2S2dlcGRqSXQ2N001NDJOUm1lVzdZcXJ1aTVhZFdtYnM4Nm4xcnJMZFRaVzFy
QjZsVGF1WXJ0c1lIaHVyCnBYMmwvY3RNUzc1VkhFcVplVnhVaCszMlNiL2NaV1VQODR5OUxtMGJ5
N1Bzcyswc096VStGcFU1WmJXczM1YlZ1Ly8rZHZ1MFg4Wk8KUEMvdFhsYWY4dmwyMXpXMVA5N05N
YnBLbmJkOXlMNWNkNXNKWEk1U2JpZmwxUGtmL3ZDSGJ0RmxSNGR6Vm1NbnJ3Ry83TExMamxjMQpa
MnJLZXA5Ly92bm0zLy85MzdzektGbG5iY3E5Q20rK2ViUTlLM0ppY3Z2VVUxdVhNdDF6ejRIbXpq
c1B0R2RjRG5kbkZxNitlbjk3CjZWazU4M08wUFl0MHVFbU05dEpMUjlzelNGdVhkVjE1NWI1MlVy
eXZ2VHpvVUh1bWFWOGJyRFh0V2FXajNaSDkrKzQ3MkU2MDl6VlAKUEhHa2VlYVpJODEzdm5NaXlC
cXI3d3N2SEdsZWZYVnIwcDdsdnZTbEE5MkVmZGt5YWRNdmZuR29XOC81NSs5cnZ2clZBKzFFZkg4
egp0MTFYWFhYQ3FLejdmLzJ2UTIwQXNhKzd2T3JoaHcrM2w4cnRhL3RrSzEvT2JQUlRKamNYWDd6
ditObU5DeTc0ZUtEeHpETkh1L3IyCmw0dC95c29abFg3S1VkcXhsRUM1ak8yTTFRY2ZmTEI1N2JY
WDJ2dFREalU1dTVkSjFxdXZ2dG9GMGJuczhJdGYvR0lYWFAvYnYvMWIKRjl6azBxMkhIMzY0N2F0
bnVzc0VjMjlUeVZQV20rVnpxalE3MWF3dloxMisrYzF2TnJuMGNOSDZNazV6cVdLMnUreEU4anc3
c1Z3cQpkczAxMTNURjVocjhsSnVVZGVkeXh4d3dTQjJmZU9LSjdyM3ZmT2M3WFFDZWRlZXlzeHdB
eVBhUXNyTCtsRCtzKzZjLy9lbnVNcldVCldiTjgxaCtybkMzTndZaVhYbnFwTzFPYWJUQjJ4VGI1
U2tyK0hCeklwWktwYnk3MTdGL0drN094T1dpUmVzWXpUam1iV1E1cUxPdW4KbFAvVVUwOTFaMzlT
Um1sRFdXOTVqTjJZU2ZLTjFXRm9OdXp2TEwrc2YvSloycDkreU1HU2pMVmNEbGoyUjJPZmpkVXA3
YzdaaVZ4NgpldWVkZDNabmdITWtNUHUrakkycE5rKzFLVjQ1RTU0dnpad3BUMy9kZDk5OW8wN0x4
bjJPQ3ZiVEt1TW5aN1pqbHpHUjlaZExlYk5mCno1bjcxRzlxMnlucnptWEh5WnQrK0xNLys3UGpC
eXBxeGxBc2NpbFh4bmUyeTR5MWpPbU0rNHlISEFESWRwNTgzL3JXdDA0YTM0dlcKTzl4dVU4ZXhz
VERWaHZKNWVVeFp5N2E1WmYyVVpSYnRZK2EwdmRSbnpsaGVORlp6SlVYTyt2YTMrMldteXh4U3Q3
RjlTNmw3SGhmVgpvWHkrcUgvejJYYkx6aGpMV0pvejVzZThVN2V4YlREYitxTHZyMlhqbytiN0sr
dE1XbVMxck4rVzdUTzNTanI1djJXODU3c3czMzFmCi9lcFh1MzFGY28xWnpOMlBwdnl5N21YZmJ6
WDdsNmw2THRzZlo3bVNkbk9NbG5YVVBKNDh3NnRZSXRlUFoyS1VuZjBkZDl6UlhTZGEKam5wVkxI
NVNsa3d1U3NvRWJGRksyYm5YWktkU3ZsQXk2Skw2Z1UzYWszdEVTa0EwdHI3WFhqdmFUY1lmZlBC
dzh6Lyt4NkZ1d3B4QQpvNlFiYnp6UW5aRW9OMUxmZE5PQmRnZXhyOTBKbnBnQVAvNzRrZmFMcCtt
TzROOTMzNEYyWXJmMVdhcVdtOHJ2dm50LysyVjFzTHNmCm81MW50Uk9zZmUwRWMxOVhiZ0tTSE9t
dlNTbnJKejg1MUoybFNVQ1VNbjc3Mi9ITHJKNTg4a2o3NWJtdk95dVJHNzhUREIxcHo1N00KYmRl
d3ZtKy9mYVNkWkc2OW0wdW5jb040MXZYQUE0ZUdXYnZYbVVDOC92ckp3VjQvWThxTCtTV1huQmpX
S1RNQjRqQ1k2UzgzOWJ3YwpMY2padUc5Lys5dmRwUEJmLy9WZnV5KzFUQkF6c2N0WXl0bkFYUCtl
d0tQY041TEpZeWJmTjl4d1EzZHBWNWtvbDNXbTdOd1g5ZHh6CnozVVRrK1RMR00xWmswWHJ5K1Fs
RThhTTE1d2h6R1dOMlhZUzlDU2xEbG0yMUN0QlNibXNKTnRTeG5pNUNUM2JWU2E1K1lKT0hkTzIK
cEd6ZlNZdnF2c3J5S1NPVHVIeEpKWGpKcERCdFRTcmJZUGVpOTU4Zi9laEgzV1Z3eVovSldvS01m
dnJCRDM3UVhYcnorYzkvdnZuRwpONzdSbmlWN3Bja3lTV1A5bE05eW4xbE93NmUvTXRGZGRKUnB5
aVRyR2F2RElyTXNVOUpZL3lSUExqbE52NmFPS1N2Qlc1bm9qWDAyClZxY2JiN3l4T3pPUkw3K2tu
RzdQaEtWY2lqZlY1cWsyNVV4aExyOU5TcCtsbjVQRzZyUm8zUGZQWUhjRnRQOVpaZnlrWGRrV1Vu
YUMKajZRODVzcyt3ZGJVdHRNdDBQNG5ZelNYWWliSXpoZ3AyMFB0R01vOWovRk5lL0l2KzRJWVo4
eVhzNDk1akZrL3VGNjIzdUYybTNxTwpqWVY4dnF5c2ZEWk1ZOXZjb243S1BtelpQbWE3YmUvWGFX
emNUSTNsNFZqTmdZcEYyLzBpMHltSFpmdmtmdDN6ZkZpSHNzOWYxaWN4CjNtN1pHVU56eC95WWQ5
b3p0ZzJ1T2o3bWJvT0wrbTFxVzBnYitpbmZuUW5jY2l0QXZxOXpMMmpha1RSbU1UWDJwdmFqS1g5
cWpDMGEKcTFsdW1NYnF1V3gvM0M5ak44ZG9mejFUejAvTTFLWnk5ajdQVGptVHBCenRlS0tOSXJl
YityODIwdDhSYjdlODJ1WHloWlNVd1ZjbQpJZG1RYzRRcVgveFRxVzErZDlQMzY2OGZhUitQZHBQ
emZuQ1I1Uk5jOUZQT1pQUlR6bUtVcThkeStWRDd2ZG1sQ3k3WTMwNEc5N1dYCkVXMTF6V09QSFdr
bmlVZmJML1lFTmZ1NnozS1dvRGExKzkvMlJ3QnllZExXTXJsOEt4UHlzWlI3U25MWlU4NUVmTzV6
QjlwSmE0N2EKYmkwenAxM0RkYVpkU1FuQWN2OUp6dkRjYzAvdTlUalNCaG9mdjN6bzZhZVB0TmVX
NTVLM3hjUDI2YWR6K2RXSno5SzN1ZlFxZ2RlYwpsQytPcEJ6QlQ2Q1F5WHJHVGw0blpYS1R3Q0ZI
NXJNOUpEQWZwdlRkb3BRekFaa2s1Vi9LeUJIcEJBVkppOWFYaVUwbU1wbWtaaWVhCmlWSjJwRGt5
bENBb1g3aVpCSlJMSlBQbFZBTHQxRHM3eVpMeU9tYzZramZscGV5VVZ3S1VrcS9VZlR2THg2Tk1M
TE9lMUNjcDZ4cW0KbkZXTmJ6bVRrL1dtWGlYbHM1amtpeUFwYmMza0x1OW4yYkYreXBHdG5KWk9z
SldVblhUWjlyczNqdjFueW1TcURxV3NZbFplbDhleAova2xnbWI0dlp3RVNSR1pDSDZ1eHoycnFO
TnkvbGtsUjZqWFY1bEwzWlcwcW4vY2ZwK3EwYU55WHlYbS9uRlhHVDViTEdaNVlsY0ExCjQ2S2M2
WnphZHNwNmt6L2JkTGF6YkE5bCs2a2RReWtuNHpKSGU4c1l5NWpPbVpBeTBVa2RzNzMzMDdMMURy
ZTdzYkZReWx0V1Z2bTgKUEU1dGM0djZLZnVxWmZ1WWxMdWR0cGY2VEkyYjVCc2J5NldjTWxhWDlk
blFkTXBoYk45UzFqbDhMSFVvN3kvcms3bGx6eG56TmQ1agoyK0NxNDJQdU5qanN0NXB0b2ZpWHg1
dHZ2cm1kSjF6ZmJlT2YrOXpudW9OeUthZkdZbXpzVGUxSHA4YllzckZhNmwwZWErcFo4azQ5Cjd1
WVluVnAzUGo4eFc2dkozZWJKRGptL0VwSWJ4alBweVJHNm5BTGNUc3JrcDZUK3BDZGZ3am1GblJ2
R3k3OGM0YzNSdzUxSW1Ud20KWldNb0haREpYRzVJTGpleGo2MG45M3prak1mWHZuWlc4eC8vNDFu
dGtmdW0rZWQvM2pwTE1MWmMvN01FSkxuSG9hUUVIYmtVS1NsbgpPL0l2WngveUMxRDVoYTMrcEh2
SlhMWVVkZEpqMnZlRkx4eHNUeTNtU043V3IyZTFjN0hSMU1hV3gxT3BVKzBabDdGMkhTLzAySk55
CkwvUkZGNTJZbk9jWHNKTEtKV1BIc25abmozTFQrZWMvdnp5WXlPVmwvUURra1VlT05EZmZmT0lY
dFVwWnF6N21LSHNtenBrODVsOTIKdW4vKzUzL2VCYXlsckJ6MXpSaE9FSnM4cTZUczFNckVQTXZW
cksrTTIrVFBoQ0FIQkRMaDJlcnZMM1Nua25Qa05tY3NzMk1ycWI5YwozaHUrVGpsajI5a3cvL0Qx
Y1BsTWROT2VrcktUTGhQczhsNTVUSENSU1dnSldQSitmNktjTXdHbEg4b3lwYXpzTThiY3Nsd21U
VGx5CmxNdUVNcmxjMWs5amJacXFRNm5Yc3NlVW5jdjMwaWZEL2tuN003YjY2OC8rS0hVZisyeHVu
VkxYL2pyemV0aVBlVytWVkZPbjRiaGYKVlA0cTR5ZkxKMkJOMytZeWhLUUVuT24zZnVxM3RiL3Rs
RHo5enpNV3k1bWpWY1pRZ3VUK1FZcWM3YzkybFlsT0hoT1k5TWQyMXIxcwp2Y1BQeHNiQ1ZCdks1
K1Z4YXB0THZtRS9wWjdMeG5EeWI2ZnRXUzZwWnR4czVhejc3MWlmOWIybkhNYjJMWFUxV2Q2L2M4
dWVNK1pyCnZLZTJ3VlhIUjd6NjlxdHNnOE5sYTdhRllmOWszMVpTK2Y3SWQzZU5SVmx1MldPL1hj
blQzNDlPamJHeHNkcGYzMDdVczE5ZS8zbS8KL3YxOTM5d3gybDlILy9uZ3VIei9vL0hubVdobFlH
Ym5uRk5hNVJlbCtwMjdhQ0pUamdpbDlBeThrdnFYWTZYczdPRCsyMy83YjkxTwpQSUZDcnFYZHFW
UUNrSHpaejAzNU9kaE1tbk0vUjM2cU4yY09hbEorNWphWFJ1VklmODRxNUY5K2dyYWZFbnkwKy9y
Mit1VzZNdnZMCjlwL241M1Z6NC9hWHYzeWdhWDhwdWQzUTZnTzVuSkZKVU5IYlp2dEZmK3g1VGJ2
S1F1VWVqbHdtZGZiWlcwRkk3bjlKbTQ5ZExWS3kKZHIrR2xUTWs4VjZVY2licTdiZVB0aE80RTUv
bjdGSGVLeWxuV2ZQdnYveVhEN3Rmei9yc1ordUdmOFpMTnN4eVpMNlUxMy9NWkRZNwprSnhDemRt
MC9pUzZuNi9tZWMzNmh1V2tmbVZDblo4YnpOR1diRFA1YWV6c3NFNVZ5bjRobHhmazdFTytxUEl2
QnpFV3Bad1JMWmNGCjlUOHZPOFhzYThxMTNHVS9rek02K1R6N21pbTNYT3ViczUrNS9qVUJTNExJ
VWs1L2ZXUFBwK293dG16NWJGbi81RHJ3L242dzVNL2oKMkdjN1VhZit1bmJpK1U3VmFaWHhrM3Bu
RzBqUWxvTml1WVF4NDJKcVcreHZPMU50cngxRDJSZmtpSGUrR3pQRzhwMldsR3U4RTN3TwpnNktw
OWZZL0h4c0wvWHcxejZlMnVXVmxMQnZEeVQrbjdUczFidnIxcnVtektZZXBmVXQvZmFzK24xdjJu
REZmNDczcU5wajJqNDJQClJUNnJiSVA5NWVkdUM1bGJaaDZiYlRRSDFNZStYL3JyM2M3enFUR1dN
bXZHYWsyZmJhZCtZOHZNSGFQTHlqNTV4cnNzMTRMM2N5cTUKQkJPWlZKUlVJc3E4THFmQnkyZjla
ZkplZGxTNUZDSXBYN3lsdkx4T21UbVNsZFFQVkxvM1p2d25VV2krQUZKKy94ZTJNdkJ5LzBmLwpU
RXp0YWpKaFRzcWxXYlhwMm12M2RiL0s5UHp6UjlzSjR0SHVKMmo3eStidmUyUUNuY3VUeXVROFow
UldUZm43R3ZtVnFaU3puYjlUCjh0NTdSN3Rnb0Z6Q05iWCtxWGIxbDcvc3NuMXRQelRkSldibC9R
UWVjY3pONWlYbEo0WnZ1V1YvT3g1T3ZKZUFvNTl5OWlPWFo1WEoKYWo3N3lsY09OTi82MXNIai8v
THp4UW1rOHQ1dHQ1MFlzLzF5RmozUFRxb2N1U3lmWjZ6bTdFSkp1V0V1RTlxa1BKK1RhdGJYTHo5
agpOdU0zazV4c1J6bkNuek15SlNEcDU5M3I1NW1FWlJ2UDJaa0VRdVUrazBYMVNIQ1FIZDJ5YlRE
N2diajNBNnJrejN2NWJNd3RYeTdKCm0zdEgwazhKaURJWlhEVk4xV0dxdkxIK1NmMnp6K3p2TjlP
MkJFdGpuODJ0MDFTZHQvUDVUdFZwbGZGVDZwa0RBTm5IWnp2TW1lMngKMU45Mnh2TGxzMVhIMEMz
dFpWaTV2Q1lIQVZLbnZNNWxXTm1YVE5WcnJDNWpZMkZzdVVXZlRXMXppNVlaRzhNbC8zYmJ2bFBq
cHRTagp0cyttSE1iMkxXVmQyMzNjaWJLM08rWnJ2RmZkQm12R1I5OXFsVzJ3djF5ZXo5MFdNajR5
b2MvbHdUVVd3L1d2OG5wcWpOV08xZDJ1CjU2STI3Y1FZWFZSdVZRQ1NMKzZTeWpXc09jS2FvMHVa
OE9XR2xwS0NVd0tIM0NQU1Q0bUtzMlBxcC93NlNScVhRVERNWDliVnp6OTgKbm9sWFNmblNLYW4v
dkp5SlNkNWNwNTlvTjBlSHM5NlM4cXN3RHp6d1FIZHpYM2x2K0ZoV2xhUG9KZVdtNTl5MDNjWlM3
WmZLQ2M3YwpwNUZMckhJVGVDYnh1WmUyeDlqZENKNUxqL0kzTG5LVGV2bkRleWszazQ0SEhqamNs
cmV2eWYwWTViM2N1SjZVU1hwTDMrWEw2OVNuClg2Zis2M0svUjI3eXpvM2srUU9HWmRtc1oxSHF2
NTFmME1yUDJ1Ym5ocFBtdEd1NHJ0eVBjdWVkKzl2SjZRblFtT1hFMk5WWGJ3VWIKano5K3VKMWNw
Kzc1K2QwajNiLzhQWkJ5LzBncE0vZUhESDkrTi9mVzVDZDZ5Ny8yNnA1MnZPYnZCK3h2Ky81RU1K
TXlZcEh4MWg5UApwZXpjM0pvakxmazFuWHllNTdteHUxeENtR3N5YytsUXhuNnVLYzNsSDVrMGxw
UWpzTm01SkMwcVArc3VZelI1cHRZM0xDY1RtcHpOClMvQmZybGZQbDBEYWt5QXBaV2NkK1pmdHJM
eE9PY21UOTB2SzUvM1h3N3F2dW55Y1lwUDdZdEt1NFdVblpiMTVMRGY1WlQ5UlV0cVQKL1UvcW1X
dm1zeE5QZTB0S01KTHljM1pxekMzdUplQkkzbHdEdkt3dVl5WlRkVWk5aG1hbHJua2M2NStVbmFB
eFo0eVNMLzl5aVd2MgpwMU9mamJsa3ZUbFRsTlBvNmZ1TXhRUTV3LzE2djkrbnhrSEs3S2V5djgx
eVNUVk9XVjkvM1BmTEs4K254ay82S3YvNktRZTJNcGF5CkhmYnZJU3A1K3R0Z2Y5dko1NmxQYVVO
NVhlcTR5aGpLc3BtNHBUL3pIWmt4a2Z0S011WnlHV0wvUUVsWno3TDE1dk44bG5yRWJHd3MKMUpT
VlBDVk5iWFBKTit5bnNURmN4dEFxYlM5MXlXUE51SmtheS8zdEx6K2FzV3k3NzV0T09ZenRXL3Ix
TDgvN2RjaTRHUnRYYzh2TwpPcmM3NW11OHA3YkI3WXlQN1c2RGFXdS8zNmEyaGVRZnBqSkc4MzYy
LzN3WDVPQmRqY1hVMkJ2NzdwZ2FZN1g3bDVwNkR2ZkhRNE84CjNzMHh1bWg5aTk0NzBKNEYrTHRG
SDVUM2NnbzVBN0EwS0JPclRHcXljOCtsRlBtN0dzTkxVd0tVQUNYWDMyYUNrS09OT2J1UW5XOXUK
bU9ydmZQTmVncExnNS9LVnNxRm1wNUdBSkpPcVRGNHl1UnVtMUMyQlF4bk0yVEdtN0R6bSt1cnl4
WkgxcHg1UHREZkVadEtZbTNhSApsMTlsbVJ5bHpmcXlReGltVEpKekpENDNaT2QraUV6b014SE9m
UWFaMkg3akd5Zi81ZTFNcmg5NmFPc3NSdUtpM09QUk5yRTdpcC9MCmpITEUvbGUvT3RMZUpKMS9o
N3V5OHV0V21YZ24wSGowMGZ3UzFmNTJQVWZhamVSSWU5bkkxazNyTFZmM1BQVTQ2Nnl0bjYvTmV2
SzYKL1Y1cjI5eDA2eTJ2YzA5RXpyS2tubmt2djJTVmdLazlhTjUrT1gvOHI3Zm5YcEVubnp6YTl2
ZlczOXRJVzNNUFNibjBhVTY3RnAyQgpTWkNWTTBEeFRWQ1JtL1B6TjBIT09XZC9GeXo5NkVlSDIr
dmY4L09aK2NuWnJYL0o5NFV2Yk4yVW4zNUtnSkpMNFBJVHg0dldVZm95CndkaXp6eDc5MkUzcG1h
eG5IR1ZzSjdqSXBDRTdtbkptTHhPRy9NdGxIUmxYR1VjNTRwU3hraDFZSm96NTFhWk1Bck5NSnRC
bExHWHkKbUZPdldUYVAyV2I2RTkrTTRXeEwrU3g1czk2eDlhVXR5Wjk2WmlLWjdTenJ5cTlocGR3
RTFRbUlVb2Q4K1dhbmwzWGtLRlBLelhhWQo5eE9FWi92STVVZ3BLOXRESnFScFh5YW5hVnUybFg3
ZHMweld2Y3J5T2VLYm9EOC9rNWgvWmYyWmpBM1AwR1NIbUhWbWZ4UGpuSzFNCnlrNDliY3ROMmZF
cjIzYjJTV2xiYnR3dlpzdjZLVzNMVDlHbWYrS1dmN20wb0w4dnlycXliMHRmTFRQSmZtaXNEaW1q
Ynpiczc3SCsKeVg0blIrTFM5dXdMcy8vTS9YWlpaMnd5TmhaOUZzZXBPbVdDa25ibGFIemM0cFQ5
Wm45OExtdnpjQndNMjVUQUp2Vk51OU5YeVoveQp4K3EwYU56SGJwakd4aysyMTZ3MzR6SHJpMDha
VS9IS1JHVzRMeC9iZG5LMklwL0hKOXREUE1yMmtINUptVFZqcUxRaFl5dGw1UHNyCnkrWjF6UE45
bDljbFRhMDM5Y2wyV3JhN2JEdkx4c2xVV2NQdjBkUmpiSnZMdmpFbS9mM1QyQmhPd0pjK3FHMTdN
U2lQYzhmeWNLeG0KVE9STTJIQzd6M3hnYUJxYlpmdWVtQy9idDVTNjl4LzcrNENNdzJ5M3k4WlZ6
b1p0dCt6K3RwaStYSFhNMTNpUGJZTmx2SzB5UHZLcgpXdGt1Rm4xL2xmS1dXYTJ5TGZUN296elA4
dG4zNURIZm5mbGV6T1grR1I4MUZuUDJvL24rR3R2V01nWnE5aTlUOVZ5MFArN3ZiNHJGCmJvN1Jz
bzZweDMzMzMzLy9pY09mVTdsWC9EeGYrdG1CQlN4SEtkTjVZeWxmWHBuOGxNR2NMOGYrWkcxczJa
MzRMRHY0ckhNNEtkbHUKMlRuN2tZUExPYnVSc3cvOXlmSHZmbmVvamJqM2R3RkREaG9tT01sTjFq
ZmR0TDhONkU2Y1NkbnV1b2ZMNVV4Tk9jc3lyTXN3YjE3bgpyRTI2cTEvbmttODMycFV5WTNEZWVT
ZWZtU2pySEh2TXN1Mys3R05uTmNhVzJjNW5tYkJucDVreGtqRzlTc3EyTURYK2grVXRXMTkrCm1D
RmZXamw3bUMrYzdMaUdLZStYYlNmYjFhcjE3WmUzbmJxWDVSTjA1SUJFMnBJNlpRS1dMNWxNRElj
SExzb3lxVysrSU9LVjVmTGwKMEU4NWdwWDlSTGJUN05DSGFaRmJsaWtUd0ZnVW0rR3l0YStuNmpC
bE50WS9LVHZMTCtyWHFjK21YTEo4MnI2ZE1USFZwa1YyVTA2TApsdW0vdDUzeGsrVXphYzVFZVRq
R2FyYWQvdnI3ejlPV1ZjZlFjUHdPWC9mTFgvWDUyRmhZdGF5cGJXNVJlV05qT1BtSGJSMitYbFJt
CmVXOXEzS1NzNUZrMmxzdFlYYlhQcGh5eTN0cnZnRktIMHFhcHg3bGx6eG56WTk3YjNRYVhqWTg1
MitBeXc5Ui8yVDV6MFRMcHczeS8KTFBwZUhMTklXVk5qYjlINit1OHRHMk9yanRXcGV2Ylh1ZXo1
Ym83UlpldnN2MTkzRjI1L2lSV2VwNE1Ub2RlbURJWWNoUmdlcGFsZApmbTYrZkdFdFM5Ly8vb2xM
dlpibFdmWDlYLy82NUVzSHNuek9BSnp1NlhScDEvMzNuemdLV1dPZWlmQ2lDVy9Oc3FzR0h5bHph
bjM1CjhsMDJrZTYvdjJnblcxUG5rbWM3ZGMreStVTE1HYUljeGUrblRPTEd0clhVdDZ4ekdIeWtu
Q3lmQXhyTDBpSzNMSk8wNkVqUXNuTEcKM3ArcVE2bi9zakxHK2lkbEx3bytVdGJVWjFNdXBUN2JH
Uk5UYlNwbDl4K25uUHA1aDgrM00zNFN1S1p0NWF6Z3NNenllbXpiS1htRwpqMmxMMGlwamFEaCto
NitINjFqbDlkaFlXS1djNUozYTVoYVZOemFHazMvWTF1SHJSV1dXOTZiR1RiK3NSV081ak5WVisy
ektJZXV0Ci9RNG9kU2h0bW5yY2J0azdNZWFYZVc5bkd5enRuQm9mMjlrR1M5bkR4MVczaFZ5dHND
d3RzeWo1cDhaZXliZnNjZGtZVzNXc1R0VnoKMmZyNzcrL21HTzJ2WjluelhRMUFscTMwZEh4LzFj
bnFXQnZ6eTFmLzlFK0gya3VnOW5VL3I1dXpFKzBCeis3MWRkZWRmTFIzckp4MQorMnhUMjdWT3pq
bnFrYU0zT2RLOTdpbVhjWlg3cW5MNk9VZkVjc1FsbDJtTVRaVFh2VjNxdHpjQ3E0NmZYRC8vMENB
QUFDQUFTVVJCClZONlg4WmJKUmU3eEsxL29wYmFuMDdaVDZ1eVJ3SmpBYm8vNVZiZkJzYnJtTTl2
Z2xOQ1o5Zm11WG9KMVpsR3UxdHJjdC9EU1MvbEQKaHZuNTNSelJYZTJTbnRYV3RuZTVON1ZkZXlj
NHZxWmNQNXNBSkNsbkVZYlh1STh2dmZlZjVwS3IzTXVSYTM1ek5sVGdzZmQ5Y0RxdgpjWlh4aytB
MmwvZmxwdEpGUnpoUHQyM25kTzQzZGQ4YmdiMFk4NnRzZzFPdHRnMU9DWjFabnd0QXpxeisxbG9D
QkFnUUlFQ0FBQUVDCnAxUmdNdzY3bjFKQ0t5ZEFnQUFCQWdRSUVDQkFvRlpncFFBa2wxSGtwdEtj
OXBNSUVDQkFnQUFCQWdRSUVDQ3dxa0IxQUpKZlE4amYKNXNqdjVQL0RQL3hEOTFOa3E2NU1mZ0lF
Q0JBZ1FJQUFBUUlFem15QnFsL0J5cS9YNUEray9NM2YvRTMzeXlMNUs2ZjlueUxiRG1GKwpTemwv
Q0NaLzRFY2lRSUFBQVFJRUNCQWdRT0RNRUtnNkE1Sy9KSjQvbmxKKzFuRDRWOFJYcFVwWitldlJD
VUFrQWdRSUVDQkFnQUFCCkFnVE9ISUhKTXlDNTlPcnBwNS91ZnIvNVp6LzdXWGZtNDc3Nzd1ditV
dkd2ZnZXcjdnOFk1VzhTNUNkQlAvdlp6M1ovR0MzM2lXUzUKL01Yby9GSEIvQ1hOL1BHVmIzN3pt
OTBmOFhuNDRZZWJaNTU1cG5ucnJiZTZ2MmZ3eFM5K2Nla2ZWRHR6dWtKTENSQWdRSUFBQVFJRQpD
R3krd09RWmtOdHV1NjI1OWRaYk80a0VDZ2sra243d2d4ODArU00xbi8vODU1dHZmT01ielN1dnZO
TDg2RWMvNmo2NzVKSkxtdGRlCmU2MTU5dGxudTcvbysrMXZmN3Q3LzhFSEgrd2U3Nzc3N3U3OUcy
NjRvZm5LVjc0aStPaFUvSWNBQVFJRUNCQWdRSURBNWd0TUJpQ0wKQ0o1NzdybnVqNHZkZU9PTjNj
YzV1M0hMTGJjMGVUK1hWWjE3N3JuZG1ZNUxMNzIwKzZ2SE9UdVNQMEtXTXg3OVZDN3A2ci9uT1FF
QwpCQWdRSUVDQUFBRUNteXV3clFEazFWZGZiYzQ1NTV6dXNxcENrN01oU1RuemtUUU1MczQ2Nnl5
L25OWEorQThCQWdRSUVDQkFnQUNCCk0xZGdXd0ZJZmhYcnd3OC83TzRES1hTNTdDcEJSMzdkU2lK
QWdBQUJBZ1FJRUNCQWdNQWlnVzBGSUxteC9PalJvMDNPaEpTVVAwNlkKOS9LWlJJQUFBUUlFQ0JB
Z1FJQUFnVVVDVlFISVJ4OTkxQzJiTXg5SnVYbjh2UFBPNi80cWV2ZEcrNThFSXhkZGRGRnp6VFhY
ZEcvbApwM1lUa0pTVVpmdXZ6ejc3N09hOTk5N3JQczdabEp3NXlhOWx2ZnZ1dTJVUmp3UUlFQ0JB
Z0FBQkFnUUliSmpBZ1h2dnZmZnZ4dHFVClg3ZjYvZTkvM3dVR0NTb3V2UERDN2liejNGU2VYN1ZL
NEpBQTVja25uMnkrOUtVdmRaL2xyNlUvOU5CRHpmdnZ2OS9rYjRiazdFankKNXVkNmM2OUl5a2ln
a1R4NVRGbkorOE1mL3JESmpldVhYWGJaV0pWOFJvQUFBUUlFQ0JBZ1FJREFhU3F3Ny83Nzd6OXht
bUxGUnVTTQpSb0tLM1B1Um9HTFZsTUFrTjdPWGxDQWt2NkFsRVNCQWdBQUJBZ1FJRUNDd21RS1Rm
NGh3ck5rSlBITFoxWFpUUC9oSUdZS1A3VXBhCmpnQUJBZ1FJRUNCQWdNRHBJVkIxRDhqcDBSUzFK
RUNBQUFFQ0JBZ1FJRUJnM1FVRUlPdmVRK3BIZ0FBQkFnUUlFQ0JBWUlNRUJDQWIKMUptYVFvQUFB
UUlFQ0JBZ1FHRGRCUVFnNjk1RDZrZUFBQUVDQkFnUUlFQmdnd1FFSUJ2VW1acENnQUFCQWdRSUVD
QkFZTjBGQkNEcgoza1BxUjRBQUFRSUVDQkFnUUdDREJBUWdHOVNabWtLQUFBRUNCQWdRSUVCZzNR
VUVJT3ZlUStwSGdBQUJBZ1FJRUNCQVlJTUVCQ0FiCjFKbWFRb0FBQVFJRUNCQWdRR0RkQlFRZzY5
NUQ2a2VBQUFFQ0JBZ1FJRUJnZ3dRRUlCdlVtWnBDZ0FBQkFnUUlFQ0JBWU4wRkJDRHIKM2tQcVI0
QUFBUUlFQ0JBZ1FHQ0RCQVFnRzlTWm1rS0FBQUVDQkFnUUlFQmczUVVFSU92ZVErcEhnQUFCQWdR
SUVDQkFZSU1FQkNBYgoxSm1hUW9BQUFRSUVDQkFnUUdEZEJRUWc2OTVENmtlQUFBRUNCQWdRSUVC
Z2d3UUVJQnZVbVpwQ2dBQUJBZ1FJRUNCQVlOMEZCQ0RyCjNrUHFSNEFBQVFJRUNCQWdRR0NEQkE1
T3RlV1JJNDlNWmZFNUFRSUVDQkFnUUlBQUFRSUVPb0hiOTk4K0t1RU15Q2lQRHdrUUlFQ0EKQUFF
Q0JBZ1EyRWtCQWNoT2FpcUxBQUVDQkFnUUlFQ0FBSUZSQVFISUtJOFBDUkFnUUlBQUFRSUVDQkRZ
U1FFQnlFNXFLb3NBQVFJRQpDQkFnUUlBQWdWR0J0UXBBamg0NTJyejN4bnZOdTYrOTJ4dzVkS1Ny
K1B0dnZqL2FnTjMrOE1OM1A1eGNSVTI5YS9KTXJxZ3lRK3hxCjZsMVozTnBtTy9UaG9lYUR0ejg0
WHI4WXYvM3kyMHRmSC85Z0Y1NE02N0xxS29aMVgzWDVqK1UvMmpUOWJXZHUvVDVXdmpjSUVDQkEK
Z0FBQkF0c1VtUHdWckg2NVR6M3dWUFBTb3k4MTUxNThiblArWmVjM3J6NzVhdmR4bmg4NCswRHp6
c3Z2TkVjT0gybnUrOTU5elJ2UAp2ZEU4ODV0bm1nL2YyWnJBSjgrRlYxellIUHJvVVBQMlMyOTNF
K1RyN3IydXVmYWVhN3N5TW5GODh0K2ZiSzY0K1lybXZFdk9hMTc4Cnc0dk5PNisrMDV4OS90bk5I
ZCs4bzFsbDNRZk9PdEN2ZHZQeTR5ODN6LzdtMmVhajl6L3Ezci9vcW91YW8rMy8zbi9yL2ViOFM4
NXYKcnI3ejZ1YmlheTQrYVpueTR1SC83K0htdG0vYzF0V3B2TmQvbktwMzh0Yms2WmU1NlBralAz
aWtlZnVWdDVzTExyK2dTZnRlZS9xMQp6aWF1YWRjN3I3elQzUHduTnpmNzl1OXJudmozSnpyWFly
dW92RTE0TDMzNjFvdHZOWi8rM3ovZHRUL3RQdlRCb2VaejMvM2N4MTd2CmRudjdkVmwxWGVtN2Z0
MVhYWDZZUDl2TkV6OTlvamw0OXNIbXJtL2YxWDA4cDM3RDhyMG1RSUFBQVFJRUNNd1JXQ2tBeVlx
dXZ1dnEKNXBPZi9XUVhhSlFBSkpQMzYrKzl2anZpK3Z0Ly9uMVhuOHR2dkx3N2kvSGt6NTdzWGwv
L21ldWJpNjgrTnNsdmo4NCsvQzhQZCsvbgpQemxpLytpUEhtMHV1K0d5NXBxN3IrbmV2K1RhUzVv
czJ6L0NYYnZ1NHdVZmUzTGxMVmQyQWM5enYzdXVlK2VHKzI1b3pydjB2T2JaCjN6N2I1TDAzWDNp
em02aGRlT1dGSnkyYXllMEg3M3pRQlYwM2Z1SEdrejdMaTVwNjErVDVXTUVMM2poeTlFanpxZi93
cWVic0M4N3UKUG4zZ3Z6elFYUFNKaTdxZ0kyKzg4UEFMVFk2aUo0QXI3VnhRek1wdmxTUHpXZGZj
dEpObHBTNEpZQTkvZUxpcjFnVlhYTkJjZWZPVgp6Zk1QUGIvd2RmZm1EdjVuMkpaK1hWWmR6YkR1
cXk0L3pKOGdOZjMxL2hzbnpoN09xZCt3Zks4SkVDQkFnQUFCQW5NRVZyb0VLMGZYCnIvdlVkVXZY
bHpNam1RQzNKeGU2ZFBDY0UvSE52bjM3dXZkeVJ1U0RkejlvUHZtNVR6Ymx2UnpaejVIcm5Dbklo
TDJrVDM3bWs4M1oKNTIxTnVGZGRkeW1qUEo1MTdsbmxhZE5zVmVWRVFOUis4c2J6YjV6NC9OaXpu
TzFKZXVXSlY1ckRIMjFOZEk5OTFEM1UxTHNtVDcvTQpaYyt2dWZPYTQ4SEhvanhYM1hwVmQyWXFu
OFZxSjFJbTJZLy81UEhtclpmZW1sM2NUcFpWS3BNai9PZGNlRTU1K2JGMjc1VEQ4UlVjCmU3S29M
Y082REplWmVyMWpkVDIyN1hYYlZtOFlyRnEvbzBlUEZUUlY4UjMrL0ZTdGQ0ZWJvVGdDQkFnUUlF
QmdST0JFaERDU3FYeVUKTXdkVDZZYlBqZWQ1NFpFWG1rdXZ2YlE3UW52K3BlZDN4ZVV5cUtUM1hu
K3YrYzAvL0tZN20zTEZUVmQwbDNYZC9PV2J1ODkyWXQxZApRYjMvWkNKWjBya1huRnVlZG84SmlF
clFrc3ZLWG5ueWxlWVR0My9pcER3MTlhN0prMEp6RmlabmZLNjY3YXJtbXJ1MnpnTDFWN2JzCkVy
R1NaLy9CL2Mzd0RFNHV1M241aVplN1M3YnUrTk03amdjd2g5NC8xRHozKytlNmUyME9IenJjM1BT
Rm01b2NoUittRi83d1F2UDYKczY4MzU3NTlibmNwWGM0Q0pVQmN0R3p1MjNuNlYwODNINzMzVVhQ
akYyOXNEaHc4MEYwR2xNdmJFcFF1S2l0MUx1bjFaMTd2TGtPNgo2TXIyckU3YjUzbjl4MS8rc2Nr
WXVlbUxOM1dCUnM3eXZQYk1hODFkMzd5cnU1UXZnV0h5M2YwWGQ1ZGlWbnBjNXBBelh5ODk5bElY
Ci9DYW9mdTdCNTdwZytjNXYzdGtaRHR0eTdhZXU3UzZKSzNXSlJaWlBBTDcvd1A3dTdOUWRmM1pI
Yzg3NTV5eTBHMWI2MWFkZTdjNWkKblhQQk9WMmduanJrM3FoY29wZ3ppWXZPUm1XTVB2M0xwN3Qx
NXBLODk5NThyOW0vZjhzM3I0ZFdyLzN4dFNiM2hTU3dUaC9mL2I5dApHYWJ0dVlRcktlL0hQcGRF
Wm56bVVzWUVmTmx1VWw2Q3BsejJsek9iVTUrbnZHWGUrV3paZXBkWjVpeVBSSUFBQVFJRUNKeWVB
aWRtCmdMdGMvOXdVblVuUEs0Ky84ckUxSFR6M1lIUEpOWmQwNzJjQ20rdlhmL3RQdisydTQvOVk1
aDE4NDlVL2J0M0Rrc3V4THIzKzBwTksKenNROWwzemxVckNrRng5NThhVFA4NkttM2pWNVVsWXVa
OHZab2R6N3NoTXAxcG1vM3ZNWDl6UTVxcHhKZEpmYW1PdnhuejdlQlhsMwpmZXV1N3A2U1IvNzFr
WVZuZUJJSUpRaTc3Sk9YZFVGQkp0UExsczI5S0xubkpQZlZIRDE4dFBub2c0KzZ3S003STlhdStH
Tmw5WUtQCjFDdit1ZDhuOXhMbEhwY3NsNGx2M2l0bk9jNjk2TnptcWx1dWF2WWQyTmNGQkxrODd2
MjNUMXhtMUxXdjlqOGpEdWRkZkY0WG5MMysKM090ZCsrT1VWQXlIYlVsOSszWEpCRDMrdVE4cWRZ
NWZBckpsZHNNcTUvTEZCQzlIamh3NWZsWXJkVHJydkxNV0JoOVovckVmUGRiawozcWJyUG4xZEYx
QisrUGFKSDAvSTJaQ1Q2dGVPaDF5cTFnVzc3U1dQM1dTKzlTaG5kdkk2bDBJbXNNaGxpa25uWG5o
dUZ5UmtuRjU2CjNhWE5iVis3cmJ2SEpOdHF6ZWM1Szdxcy9XUHJYV1Nac3prU0FRSUVDQkFnY1Bv
SzdGa0E4dWJ6VzBkUUYxM0tGTDVidjNack4xRXIKbExsK1BmZVRaQ0szMHlsbkJ2N3dMMy9vSnBt
WmFOMzk3YnU3aVc5L1BSKzg5VUUzK2MzOUkwbDVuYU8wdzFSVDc1bzhWOTU2WlhkagovMDdkT0g3
SmRaZDBrOVZNV2kvK3hNWE5lMis5MTFXOUM3cmF5V0F1cThwbFp3a3djaVI4N0RLcmNxbmMxTElK
ZUhJZno5Ty9mcnA1CjlZbFhtNnZ2dUhySWRmeXl1NDk5MEw0UjY0eVRjZ2xmSnNBNUNsOHV5OGxS
OWt6bWt6SkJMMmVYdWpkVy9NOVlXeEkwSnVoSitRbEEKRXdTbExnbXUrcW00RE91U3MwazVhM0hl
UmVkMTljMVpoSGRmZjdkclY2MTd6aHhsdkpVZmNYanI1YmVPQjhQOU91UjVibUpQWHg0LwpTOVpl
ZWxVQzUzdytyRi91bTBsOUVpQWw1Zks5cEp6UnVQU1RsM1pubmZJNnk1VmYwc3E5UjNGSW9KZ3pi
UmRlZFdGejYxZHY3YzU0CkpjL1U1MlBlWSt0ZFpGa0MwdFJSSWtDQUFBRUNCRTQvZ1QwTFFETEJ6
cTlaNWRLcVJTbVg0MlNpbmt0VmN1UzdTKzFFK2NrSG5qdysKSVYyMDNIYmV5dzI1cWNzOTM3bW51
NlNsZnlsUXlzdkVyMXlTbElsY0ptSkppODVPMU5TN0prOG1kYWxQamtydmRNb1Irbkp2VGU1SgpT
WHN5NmN1L3JEY1dGMXcyZlVsTHpiSzVCQy9CV3M2SWxIdHRhdHVUSS8rNTlDMlQ3YVJjZHBSNnYv
WENXOTFabGJ4M1VsLzE3bkhJClo2dWtxYmEwT2ljVmwvWG1qTVRTZEhMMjd2S25NbTZ5ek5UNmh1
WG1MRU9DeDF6S2xmVEdzMjhjRDc2R2VSUFU1RXhMK3Jta3pxbGYKcDk3ejFPdXk2eTlyY3VZcnZ5
N1gvYkRCc2M5di9QeU4zZVZ0ei8vKytlYnRGOTl1Y29uZVNhbFhUb0tzckRPQjRmRzA1UE9wOW8r
dApONWVTOVMyUHI4c1RBZ1FJRUNCQTRMUVUyUE5yR1RMSkxDbS9jSldKVWlaWEYxMTlVWk5yM25N
VTkxTlhmNnA1OW5kYnYxQ1ZvN1c1CmZHUXZqM3JtOHF1c3R4d2h6aVVmbVJqbmFId3VKY3VSNEtT
WEgzdDVzdDRKWnRhcGJZYy9hQ2VVYmRpWkkvcXJwcHBsYzFZZ2s4VmMKNHBPZ3N6OHBubHBmbkhQ
bUpwZjVaTGtFUlNrdlI4OXo1bXg0bWR4VWVXT2YxN1JsYlBsVlAxdDVmZTFFUHZjYzViNlhYRmFW
ZXp5VwpXV1pNWm53TzB6Q0k2bitlc3hlNXh5WkJkZTZ6U0JDYTh2UERDL2t4aU56YmtYcyszbjcx
N2Y1aUgzL2Uxak9CN05KMDdQT3A5cSs4CjNxVXI5QUVCQWdRSUVDQ3c3Z0o3ZGdha1FPUXluWEoy
NFk4Ly8yTTN3Y3hSMXZ4ZGkrT3BuYlJrMGxVbStudDU5RE1UdVZ4M2Z2dWYKM3Q3Yzl2WGJ1bjg1
TTFOUytXV3N2SzZwZDAyZXJxeDJndjNTSXkrZDlMUERaWjA3K1ppajNibk1LZmRwOU5QWUpWZ2xY
ODJ5K2RzdgpPWXVWbE9lcnB2eVVic1pDZ3JzRU1Ma1hKSzl6bEQzM09PeFVxbW5MVHEwcjVXeG5m
YmtrTFlIWE03OStaclR0T1ZQUy9hSEI5c3hUClRjcE42YmxISnovc2tNQWpaNXB5cVdOdVhNOFpr
WnpGR2cwcWpxMGtaN29TcUpjZmt4aXV1Ly81V1B0WFhlOXdQVjRUSUVDQUFBRUMKcDVmQXRnT1Ez
Q3hlVXY5NWVTK1BtUlNWVkM1ZnljUW1sMVRrNXRaY2gxNkNpK2NmZkw2N25yemtUeENReTI5eVQ4
SHd5RzkvZmYzbgpaZGxGajVsMGxUUzJUSDdoYUhoMklKZUU1UktYcEZ3U1V5NW55dXVhZXRma3lX
VDlxWjgvMVR6eW8wZFM3SGhxWTRmNExEcnFuUVZUCnZ4d3hMeW5QUzUwdnYybnJNcWY4NGxZbWp5
a2pmWkdiakJlbDNCVCs0WHRiTnpUbjdFVHlMMXMyZ2MwNUY1M1QzZitRdnhXVGdDcEgKMTB2cWw1
VjFMMG9YWDN2eDF1Vmg3Wm1QOUh2dVg4bGpKdG5EbERiMUE2bVlsUHRGa25mNHVyLzhsRU0zWG5z
eFd1ZlplejFzeThmcQowdDdvM2UrRHFmVXRxbXUyamN0dnVMd2JjN0ZmbHBJblY0eTkrT2lKSHpE
SWZSbmQ5bmVzenYzNnBROWZlMm9yNE05WXo1bWxuSWtzCjkzc2tJTWg5T0FsS1U2OSs2czVrSEh2
anpSZmY3QzdoS3djVTh2YXl6OGZhUDdYZTlHbmZNdXRKdmZLakFHUGJjdkpKQkFnUUlFQ0EKd1Bv
SkhMajMzbnYvYnF4YXJ4N2QrcVdvZnA1TU5KLzVWZnRYenR0TFA1SnlvMndtTmJtZm9CdzV6VStK
NWpLcWN0TjVqckxtSnQ1YwpVcEtKZHE3cnowK3VabUtTbTJpemZJNTZKMy95NWlkRk03SEpUOFRt
MTVkS3FsbDN5VnNlY3luSkN3KzljSHdTbm5yazdNcHcwcDNMClVmSkgvREp4eTgveTVxaHRVcTZI
Nzg0YVpJTGJuam5JOWV6NUtlSFVjNnJldFcxTG5YS1VQMzh0dm4rWldtbERlY3c2dStDdG5kZ24K
cUlwTmZpR3BHSld6QjVuZ3B6OHlRVXZiY3huYkJaZGUwTDJYRzgvVEQybFhmcFVzTnlFdisxblQ5
UEdMRDcvWTlYVW11cmxNYnRHeQp1ZFFzZnpNa1o2NVNmb0xNbkMyS1crcVJ2K2ZTTHlzVDMrNCto
ZEt3WTQrNTVDby8xNXJMajdwZk8yb24xbWxMem9UMGYvMG9QeFdiCllERmo3K0JaQjd2QUkvWEs2
NncvRTlUKzZ4eWxMemVOWjFWbm5YTldsMjlSVzk1KzZlMXUyZmltN2hrUENTSnp5V0RHWkM0SDdM
Y2wKd1VnQzAxS1g5R1hHWFA3ZVRYNTZOd0hzMlByU2xseXlWdXJlcjJ2YW5PQ2hDeklHVnVWbDht
UXNaK3ptOHJYVVB5a0dNYzdrdlcrVgpjWjNMcnc0YzJBb3VNMGJ5aTI5cFZ5NDc3TTdFdGVNbDQv
Q1ZwMTdwQXBQY2s1STJkV2RQMnZ3SlRqSmViL3ZxYmNmN01kdnZzcy9ICjJwOHh0V3k5YWZ2UU1t
M0wyWlhIL3Rkam5lMnlNekRKSnhFZ1FJQUFBUUo3TDNENXZoTzNYQ3hhKzc3Nzc3Ly81RU9jZzF5
UEhLazQKSWo5WVp0V1htYlJrZ3BLVXlWdU9lR1l5VkNiVnE1YTNWL2xyNmwyVHA5UTNrOXB5MlZs
NWI3Y2VNem50MXRkT1J2c1Q4MFhyUzVCVgp6bFRsODFXV0haWTNMR3Y0ZVNtL0JMS0xYaTlhWnJ2
djdYWmJodlZhZFgyWjFDZGdHSjZWRzViYnZXNjM1QVJMNmFzRXl2bTU0b1VwClczd0N1emJZVDk4
UEE4RUVMR1hiUzMxTFh6ejQvejdZL2ZyVjlaKyt2Z3RxK21NaTY1bjZQSG5HMnI5c3ZWbHVVYW9a
UzR1Vzh4NEIKQWdRSUVDQ3d1d0szNzc5OWRBVjdmaFA2b3Rya2lIVkorV1dkMHlYVjFMc21UMm52
WGdVZldWOG1sYlUzOWc4bm1xc3NXOXBXSG9kbApsZmY3ajJYQ1c5NGJ2aTd2NzhUamJyZGxXTWZh
OWVYSWYvTG1ETkt0WHo5eEQ5S3d2Sk5ldDBGRjhWMGFmR1NCWTNISjhOTEdVbFlKClBycXNDMjR3
VDhBeURGcktzbmtjKzN5cy9WUHI3YThqejB0YmgrOTdUWUFBQVFJRUNLeTN3Rm9FSU90TnBIWUU5
bFlnbDBEbE1zWGMKOTVKZm8xcUwxSjQxeWFWYS9UOXdlRks5cGo0L0tiTVhCQWdRSUVDQXdKa3NJ
QUE1azN0ZjI5ZFNvTHNIcUQxTFVmNFd5RHBVOHBVbgoyM3VGYnQvNkd6VzV2MnQ0bjlMVTUrdlFC
blVnUUlBQUFRSUUxa05BQUxJZS9hQVdCSTRMNUtiMjNmaURsTWRYc0kwbitSR0FzVFQxCitkaXlQ
aU5BZ0FBQkFnVE9MSUVUUHk5MVpyVmJhd2tRSUVDQUFBRUNCQWdRT0FVQ0FwQlRnRzZWQkFnUUlF
Q0FBQUVDQk01VWdjbEwKc0taK1J1dE1oZE51QWdRSUVDQkFnQUFCQWdSV0YzQUdaSFV6U3hBZ1FJ
QUFBUUlFQ0JBZ3NFMEJBY2cyNFN4R2dBQUJBZ1FJRUNCQQpnTURxQWdLUTFjMHNRWUFBQVFJRUNC
QWdRSURBTmdVRUlOdUVzeGdCQWdRSUVDQkFnQUFCQXFzTENFQldON01FQVFJRUNCQWdRSUFBCkFR
TGJGQkNBYkJQT1lnUUlFQ0JBZ0FBQkFnUUlyQzRnQUZuZHpCSUVDQkFnUUlBQUFRSUVDR3hUUUFD
eVRUaUxFU0JBZ0FBQkFnUUkKRUNDd3VvQUFaSFV6U3hBZ1FJQUFBUUlFQ0JBZ3NFMEJBY2cyNFN4
R2dBQUJBZ1FJRUNCQWdNRHFBZ0tRMWMwc1FZQUFBUUlFQ0JBZwpRSURBTmdVRUlOdUVzeGdCQWdR
SUVDQkFnQUFCQXFzTENFQldON01FQVFJRUNCQWdRSUFBQVFMYkZCQ0FiQlBPWWdRSUVDQkFnQUFC
CkFnUUlyQzRnQUZuZHpCSUVDQkFnUUlBQUFRSUVDR3hUNE9Ea2N2LzQvY2tzTWhBZ1FJQUFBUUlF
Q0JBZ1FLQVQrTXY3UnlHY0FSbmwKOFNFQkFnUUlFQ0JBZ0FBQkFqc3BJQURaU1UxbEVTQkFnQUFC
QWdRSUVDQXdLaUFBR2VYeElRRUNCQWdRSUVDQUFBRUNPeWtnQU5sSgpUV1VSSUVDQUFBRUNCQWdR
SURBcXNGWUJ5SkcycW04Y2JwcFhEelhOUjBlMzZ2MW0rL3BVcG5kVEtXbmJBdSszZmk5ODFEUWZI
T3ZQCnNZTFM1MmVDZHl6ZTZvM3J3KzNybDlzeFg5THdkWG0vUEo0cFRtZEtPMHUvN3NUamNHeVZN
bGZaRHNzeXArcHgySWJoOWpCOFBhem4KVG82YnFYVU4xNTNYcTFqUHFldlVza1BIUlhVZGV5OWZm
WHYxL1R2VmxyRjZydXRuZXpVTzFyWDk2a1ZnU21ENlY3QjZKZnpzM2FaNQo1SU9tdWJnTld5NXJs
M3p5dzYwUEx6dlFOR2Z2YTVwWDJrbFU1bEgvMTZWTjgydzc2ZnoxZTAzenpyRUovT1Z0bml2YVpU
NXNKMXN2CnRaa3kwZnpNdVUzenFmTzJ5c2g3UDMybmFXNDVwMmt1YWN2L1E3dWVCQ0xudDgvLy9L
S21XV1hkWjdWMTZhY24yckorOC83SDY1SWQKZEprY2YvMkNwcm5oN1A1U1RkTiszUHp6VzAzenB4
ZTJkV3JyUDB4cC8yL2JOcjUxckkycDZ6MXRtMktSdHI5OTdQMTQzZHEyNjY3MgpzKzJrWjlyMVBO
alcvNVYyMG5wclc4Yy9hZXU2S1AxNzJ6K1B0bTI5cUYzZloxclhZWHNXTGJPYjc2VXUrUUtQODQv
YnZ2M3JTNXJtCndLQnZ5dnBqbWY3L1ZHOU1sTTgyN2ZFMzdkaDRzZDArL3FyMXlEYVRkci9mR24y
djNXNkdyNGR0ei9iMzg3YWZQOXYyNzNiSDA3RE0KZFh4OXByUnpwKzM3WTZ1VXZjcDJXSlk1bFkv
OU5neTNoK0hyWVQxM2N0eE1yV3U0N3J4ZXhYcE9YV3YybDMzSFJYVWRlNiswL2F6Mgp1K1F2MnUv
ZjNVdzFiZG5OOWU5RzJhdU1nMDFzLzI2WUtuUHpCTnJkUzMzS2hQenVkaUtkaWRPWHpqK3gzTFZu
TmMyMzJwM1VmN2g0CmEvS2RmRGUxRStWTXhrdktoUGdMN1RKZmJTZlBtWWgrb2hmNjVPakhEOTl1
bW12YWNyTE1kZTJ5WDJuelhkbm1PVGFINzRLQjJuV1gKZFpiSG05czZaMkpiVXFuTDE5cDEvQjl0
WFM1Y29wQkpZb0tJZkZFc1NtbmpwNDhGVVBrODlidTkvWGRqM3UrdEwyMmFNMW04dmkydgpMUDlF
TzFIUGhINllZdmhzKzFsU2dyaTV3VWNDaHdSbjIwMkgydVV6VWI2amJYdTh2OUVHY2NQZ283K09X
Q2FBMjZuVUwzdHVtVHRaClZ1cHliK3VSb0RZcFFYbkdaMG5EMStYOThwanhOUXl3eTJlYjlMZ1Q3
ZHpwZmx0SDMyRWIrMk1yOWEzWkRtdmJOVnhYN1hLcjV1dTMKWWJnOURGOFB5OTZKY1ZQS25GcFh5
VmNlRjFubnMyWDcwVGwxcmRsZjloMUxIV3NmMC9hcjJ1L2o3ZTZTcDhaSy8vT2F0dFRXTy9uNgpa
YSt5M0U3bFhUUU85dks3YjZmYW9Sd0N1eTJ3MHY0bEp3SEtHWXRGRmJ1NHpYQnpPNUVzNlp6ZTBl
N3lOQlA2bkJXNXI1MkU3VHYyClpvNjJaRktkc3lEWmVFdjZYQnV3bEVucHF1c3VaWlRIbkpVb3FU
ek5HWllFT0RtYVhONHJlZktZb3hoSk9ZT1NDZjZpMUMvMzdKNW0KLy9sNXZmY1hsVkh6WHRhVFFD
LzFmYVE5R3pKTWo3ZDFMRUhIZGlhby9lWmxIVDlwajhyM0x3c2FybS9xOWV2dDJacVVVMXdUVFBi
VApvblhzTDVuN0diZnhmRkhaMnlpbVcyUW55eXAxeUhaeFVlK01Xb1pIdituRDEyVzU4amoxZWNt
M3ltTy8vMWRaYmpmenptbm5LdjIyCmptMVAvYWZTb2pZT3g5YllkbGl6amxLSFJlc3FuKzIwMzdB
TnczRXdmRjNxVVI2blBpLzVhaDVYS1d0b2ZYbTd6NXZhajY1Uy9yQysKVS92TG9lTncrV1d2UzMv
VzFtMDRqc2JHU3RhNTZQT3B0aXlyNi9EOVJXVVA4NHk5TG0wZnl6UDEyWEFjN09WMzM3QnVZKzBa
OWx0LwoyYkhsK3ZrOEp6QkhZREF0SEMvcTg3MnpIc3R5VHVYNVF6dDV2cTZkU0YvZC9zdGxYRW1Y
SHB1TVpjUDl2OS9ZT21LZW84S1pkT2RNClNOSlV1YlY1dXNLTy9lZDNiVjF5VnFaTTNQdWY1ZnJO
YzlzOWNDYUdiWnpTQlNFNW1yOGI2Zm4yVEVNdW44b1JzYnRIMW5GMTY1VkwKMTNKR0p2bktVWlhz
TEo1cHk4aFpsNGVQQlUybG5nbWNmdFZlOHBNdmt3Ui9GN1JQRW5BZFBEYmpmYW85YTVMTDRwSXZs
M3A5cHoyTAo5WERya3ZKeWFWbVcrV0pyVlBMWGxKdkE3ZW0yck5Rcmw4NmxlKzhiakoxRjZ5aGw1
L0sxQkZRSnBQNnNQYk5XemxDbFQzSXAybXZ0Ck9FbWdtcjRiN3R4VHhxS3lrMy9Sc2dsQzQvTmVy
NTMvMXRiNXJyWXZjaVpwVVZsOWk3VHpwMjMrcTlxKytYSTdWbVA0aTdhOFhKWVkKdHdRYUQ3VjFm
cnIxL0ZaNzFpUFdPWXRWckV1YlYzMU1lMzdScmpkbEpValBtY1VjQUVpcWRVcmVsUFBMdHI3bnR0
WTVBSkJ0THR2bApsVzFaT1FJNk5uNXlaRGQ5bmZWbjNkbWVNczYrdVkwK1MxMFdwV1h0ekxqTkdi
YWNYYnl6L1pmTEdITEpTYmFSTDdVV1UvMldkUzBhCiszbC9yTTI1ZHlkdGJ0bTZzN2k1dERPYlVz
Wml4a1V1eVV6Z2ZrYzdkc3JCbWxYNkk2YXZ0dXRJeWhoSlc3Si96RGpOZXM5cGdkc20KTmcrMXoz
T210YitkWnZ2L1k3dDhHVnZMdHNObDY4ZzY0NTErekxiM1dydk9US0t6cjFua21jdHNoL3VPbE5G
UHAvdjIwVzlMbmkvcgp5MFhXK2Y3bzk4K2kvV2pLWERiR3g5YVh6MHBhdEwvTS9xeS9uNm5aVnJ0
NnRPUDN2TGJ2cy93YjdiOWp1NVN5cXBNZWw0MmpSV09sCnY4OWM5SGtwZUZGYjh0a3k5N0pjZVZ4
VWRyYlZaZCtCK2U3TmQ4MkZiVU9QdEJrZmI3ZTU3TU95TDg4VkdZdlMyUDVoMFRqWXkrKysKbXZZ
czY3ZTBOV05nN1B1Z3RoOFd1WG1Qd0ZBZzI5cWVwRXljLzlodTNObkFoeWs3Nm12enJkcW05OW9O
SUJQQS8rZk5lVWZndDBwYgovTi9VNWJGMnA1TXYwR1VwTys5YzlsUjJRcmtuWmJkU0prODVLelMx
amt4MDdtd25OcmxmSUpPbmtySkR5Y1JyMFZHa0g3U1h0bDNSCjdsd1R3T1V5cUp4dCtsRjdkaU9w
WFdYeiszYXlrY0FuRTdtY2RtK0w3aVljNlpNYjJoMXdBc0QrbDBlV1N4b3I5N2Eydk56emtwUXYK
M2VFT09POW5Vck5vSFpsQTVmSzhCRUtweTRQdEYySlM2cHFqaWJtczROdnRCRGYzRlAxcjI3Wk1n
SVpwV0haY2xpMmJDVmJhL21hNwpnc3o3Y2lidWxuWmlsK0FqYVZqVzBPS1RiZDRFZFptNDUxOTNE
MU5idDB6S3kxbU9QT2JlblFTTTNIdzZjUUFBSUFCSlJFRlU3ZitiCmQ5b1ZsZnVHdXBWczR6OFpN
d2w2Y2hsaDZ2d3ZyVVdNVm5IS2F2UGwyMWF2dTVRdy9SVC9wUFB6WnB2RytqbjNSU1VZekhhVUFD
YjkKa3JTZFB0dGE4dVAvWGRiT1RMNWptUy9NcEZ6R2tYNG80MkdxMytLMGFPeW5yTEUyNTZ6dEMr
MDJsSWxseXNqMThRbVFNNzV5Q1dRQwpob3ovWDdmYlZlcXlTbi9rMHBHVWs3R2RNWmw5VHdLYXBK
U1R2bm11L1pmeGxHMHorNExoTnRRZlc0dTJ3N0YxWkQyNUZEWUhpTEwrCkdHWXlrdUJuNkpsdGFw
bGZ5aW5wZE44K1NqdnlPTmFYaTZ5SFpzTjlSeWw3MlJnZlcxOVpkdG4rTXR0R2Z5eE1iYXNwTDk4
TDJmZm0Kc3VJdnR1UDQ3V09CY0ZsWC8zRnNIRTIxZTlubnk5cFM0MURxdHFqc3NlMDUyMUsyNS9S
Qkx2M092YUFKOHYrdHRWaVd4c3BiTkE2Rwo1U3lxWS9Mc1JQdW4yalBXYjZuRDJQZkJLdjJRc2lR
Q1V3THRwclkzS1pGNUp2MDVlckFvZmEyZEhPZEx0YVQ4R3RiL2FHOEE3MCswCnkyZHpIMU5tam9n
c3FVcjNmbzUwWmtLVGlXTlNKb3laNk85R3ltUTlSOHp6cFQrVk10SEtxZlgrbVk2NDNyWmcyVXhX
Y2xUN3htT1QKNlhSMkpzaDVQMGRwMHhjNTYxUUNzZXc4K3libEVybGhuYWJLSGVZZmV6MWNSeTR6
eTlteFRPQS8wVDRtTUVoSzhKcVU5bVQ5bVhoMQpsKzJOOUVrcGUyclpyQzlqTDJNaWw5c3RPdE5W
eXRxcXhjbi9UY0NTOFYzc3JtbS94TXNFTlRremJzcFp0dFI3MFE4YW5Gemk5S3ViCjI3N0t2VUdw
KytmYUNVTUMyS3hucXEzRGtoTm9KM0JLeXBIMmpLMmtqUDJwZms1Yk12bk9jdm55empMcHN4SmNy
VnFYclRXZi9OOWwKN1V5dWNnYXdMTEZvZ3JlczM1YU4vYWsycDczWlZuUEdKMzJhZGFZZjRwOHpI
dkhMR1pta1RBQlhNY2lrUGhQMlM5dnhrNVN5eXE4UQo1VXhmZnN3aS83TGVCRHFaYkNTVk50YU1y
YkYxWlB3a29NeUJpS1FFNXptQWNNR3g5ZVM5c3E1bGZza3pUS2Z6OXRGdnl5cDkyVit1Cm1QWGY2
ejlmTnNacjFyZHNmemtjQzFQYmFyNFBNdmJMQWJkMjZIV0JhTCtlL2VkajQ2amttMnIzOFBObGJh
bHhLT3NzajZYc3FlMDUKKzZ4ODF5VG96Z0dkN0w5eVVDY0hRc3UyVjhyTTQxUjUvYnhUejBzZFM3
NmRhUDlVZTZiNmJlejdZRHY5VU5ybWtjQWlnWGJUMjV1VQpTWForemFwL2owaC96VG5sLy9VMkNQ
bG0rNjlNMERLaHl5VTh4K2FnL2V5em51Y0l4SGZiWHh6S2wvbWlsSnZQeTVkd0psWmxValoxCmht
SlJXVFh2WmNmM2wrMFIvNXlKbUVxWmRDVlFTT0NRQ1VNdWtZcGRxV04vK1J5NXpQdjladVpzU0ZJ
dXI4aG5uMngzdURtaUUrZnMKaVB0NXQzSisvTDlUNVg1OGlmcDMyaW9kVDVrWWx5UGNPWE9USTFP
cFgvNWxRdmJuN1ZncGwvRWRYMmpCazVwbGMvUS9RV2ZLcXpIbwpyeVlCWGo4WVN2Q2NJMDNwbnp4
bUhQY254OE12bm41WnRjL1Q1eVdWc1pyNjE3UzFMSmZIMUN1L3JsWlNKaXBsak5UMGM2OGFYUkh0
CmNPcmFuQmVyMXFVcllQQ2ZaZTBjWkZ2NTViS3hYOVBtNGNyYUlYTlNLblhPbUZqRklKYTVsQ3VU
KzF3dStHSTc1dk84cEd6NzJRYkcKMHRUWUdsdEhndnRzVi8wK3pUNXAwYjVsbWQraXVwM08yMGUv
UGF2MFpYKzVxZWRsdkNUZnF0dHl2Ni82Kzh1VU5Sd0wvYno1dkwrdApwdS96NjRubFlFUSs3Kyt6
OHJxZnhzWlJQOThxei92MTY3ZGxqbnZ0OXR4ZmR3NHVwRTl5VUdtWWFzc2JMbGZ6dWwrSHVlM3Zs
OVZ2ClQ5NGYyOGVNZlIvTTZZZWE5c3R6NWdrTXZ6dDNYU0NYVHBTVUNWTUdmSTdBNTBodWppNldv
d0M1akNQWFYrY3loaHhKTEVmN3lySnoKSC9NOW5xT05pMUl1RThzWGZ6a3prQy9iVENieU9wZHZa
YUkrTitXVWIwNTNiK2NHOVV3S2N2bER6b0xrUzJOWjRKTEplL3pTbHZJbApkOG14Q1VhWmMzNjFu
Y1NmMXdZZktTdEJTWUxFa25kWkcydktYYmJzZHQvL29IWFBGMm81UXJkS09UWExwa3N6dVl0cmd1
WCtGL0hVCnVqSStNbTdUcDdIcmdxTDJNV2ZhWXA4Z2J6ZFRqbnBsUTg2NmE5cmFyMHN1TTh4bFB3
bG9FNXZtWDQ0Q0pzM3Q1MVhyc3JYVzVmL3QKdDNONXJ2cFBGbzM5N2JRNTQ3TDkvOEswcWtIdTc4
clI2RnlEbmpPYjVYNlFoWVZ2ODgxbDY4ajEzUW1lYTlNaXYwWDdqdE41KytoYgpyTnFYL1dWcm4v
ZkgrRjZzcjlRcjMydmw4c1h5WGg2WGpldDh0bXdjNWJPZFRITWN0ck05cCs1cGQ4NFdETk4yeXh1
V3M4cnJPZTB2CjYrbTNaNnpmeHI0UGRxSWVwVDRlQ1VRZzg2NDlUWmwwbDZNOHVZazBHM2syNnR5
c1dGSXFsY3Nac2pOT21qcnF0NVZyOWYvbWtxY2MKOGUybmZBbm5aclEvYXlmbSthblUvTXZsWVVu
dDIwdC9rcmZMVVBtZmRoWGRkZktsWGRueDUrYjhCR1RMVXRhZGYwa0pXbklaUmdLaQpYS0swN0N4
QWpueGttUnkxS1NrN2tieVhzeis1MFRDdmMzOUl6aVprRWxwenlkdFV1V1ZkTy9tWXkwREtHWVZT
YnRxUnMxVlRxV2JaCjNQd1lnNlE4WHpYbE1wTmN3L3RZTzQ0VHdPUjFMc05LblhNejkyNm05R082
T0pkQzFiUzFYNWNFVGptamxxTjltZXlXK3ppU1oyNC8KcjFxWGZyMFdQZSszYzlIbnE3eTNiT3pQ
YmZPd0Rxc1laUEtmTTVINWhjREJibWxZN0xaZmo2MGpkYzBaMWZ3cktkdFlEa3dNMHpLLwpZYjd5
K25UZFBrcjk4N2hLWC9hWFcrVjVmNHp2eGZwSzNYTGplUTZ5algwSGxieDVIQnRIL1h3NzhYeU93
M2EyNXhqa096bVhXZzdUCmRzb2JsckhxNnpudHo3cjY3Wm5xdDdIdmc3bjFXTFhkOG0rK3dMYS81
N0tqTEtuL3ZMeVh4LzRSbFpJOWx4RWs2TWd2MW1UQ202TmoKU2Jua0lFZGhTc29YWHdLVEc5c0ow
dkJvZEg5OS9lZGwyVVdQL2JxVXl4cHk5bVVJa011c2hrZlpNN0VybDJ2bFZ5N0s4bG5Qb25Megpm
aWIySmZXZWRwZW41QS9QNWFocFdYY3NIbWovL1hEa3hyZXNKemVmbDVRYlVKUHl4VjVTV1dlcFg0
S1VmTEhrSnJ1U0VvemtyTWsxCjdXY3Bzd1FjYVhPdVpTK24zV05lYlB0dFREbFQ1U1pQcVVQNmNG
a2FyaU9YSy9YejUzWCtKZVhlbDdRL3Z4YldXYlNvdVVFM3YxNnkKS1BYTHp2VzlZOHZtdXQ2Y1lj
dVhTKzZuU0IvM0oxMzlzb1lXWmQzWHR2VkxmN1pzM1hqTkdiMmNsVWlBbS9mNktXMHNsMmJsL1l5
UAovaGdadnU0dlc1NGZQZWFTMXdseXJtL1hsMEIwVmFjWVpqemtWNXV5Yk9uL2xGdlR6Nmxycnlw
ZElGUmVUOVVsWXlUQlhqOUF6bnI3CmFWazdreWVYYXVieXNWaG1yR2JpbkVsVVNXUDl0bXpzVjdl
NXQ1NGNzTWpMV0NTVmovSTRaZEF0Y093LzVacnpUQkpTVm9Mck1rNVMKVnY2VjdlSFlJdDFZNjIr
bnc3RTEzQTdIMXBIN29ES0djMFlzK2ZMdmwrMzJWbjZRb08rWmUxNlc3VHRLM2ZxUHArdjJrWDRv
L1RyVgpsMFBydEw5dnRtemZzV3lNVDYwdlkySFovakxySG82RnRDTmpxS1I4TFpUWHVVd3UrNmtj
SFM4cC9aL3RxYlMvdkovSHNYR1VNcWZhClBmeDhyQzFURHYxNjVYbS83T3lIeDc0RHk3TDl2c24z
WlM1RkxBZEtTNTQ4MXV3ZkZvMkRmaGw1M3E5ajFyMlQ3VS81eTlvejFXOWoKM3dkVC9aQTIvSzdk
bi9mbmNhbUxSR0Nad0lGNzc3MzM3NVo5MkwzLzZHOC85bkVtYkxsaE4xOUNTWG5NNURjYmJUbHRt
Y3RSZnRzRwpGV1ZqekpkcUl2SDhKT2tEN1pkYU52SWNHYzZnenJXRldiNU03aE9ZNUl1dnV3bXl2
UlNoZjdOcHpicTNhblhpdjhPNlpDUE1CbnBsCnUvNys1REEvNFpjNjU3T2NmVW5FbjVUZzZMbTJq
bWx1dTJoM2lVVHVEY2tSN2dRUFpXTlB1U2t2RzJDNWZLeDkyUjB0U3R0emVVK08KY09aR3ord1l5
eVZnV2U3NXR2enM4T0l4VExreE9qK05HYWRNRU9PU3N5Q1pjTjNUVHBpenpreENIMnp6WmQzNWw0
bHZKcVE1NDVUNgp0NnZvK2lJV3VZRTFuK2ZMNWVkdC9lT2JTVXh1dk1zcDJOS0cvTlJueWtvWi9Z
bHArbmlzM05Uejk4ZVd6ZVFzUVVKMnVNT1Vzc3M2CjhtV1pHK0F5WGpLT3lzLzlwWTBKQUROV1V1
ZU1uN1FuZVhPbVlkR1hSTmJUTHp0ZkdxbkRvbVhqbGdsWGZzSTBwckhJbDNEcGoxeHUKMXk5cmFG
SGFsT2FsenJtQlBXM042NHlMM1BUZmIzdHNNczdlYVQvTDVTcVpmTVFnMjFEYWw1MTQvM1VtMldX
Ykt1dUswWk50dmZPWQp5M1Z5MDNldTYwM2RVOFlxVGhuRHYycnJrL0dWZnduQVU1ZjhxbHI2Zkt5
Zk0wRk9YZFB1OUZtMjRmUk4raXo5a3ZmRzZwSngvK04yCmU4ajJuck13d3pUV3p1VE53WXVzUDJl
ZGtqZS94Qlh6OUZuNmU2emZsbzM5R0k2MU9kNXBZN2FWL0ZwVk9qcHU2WVAyYVhjRGVmbzMKOTI5
azdDZW9UM0M3YU95bERmMlVmVTcyYnhsLzZZTk1Dck85cHV4c0g3a2tLMjFLKzhwOWN2MDJaanhs
SHpvY1c4bFR0c01jMVYyMgpqdXg3c3ExbDI4cjJtek9zT1JPZHdEeXB2NjZzUDcvMHRXamZzWlg3
NVAvRzVuVGJQcnI5V052R3NtMW1tOGcrWWxGZkx0dm45YzBXCjdUdkd4dmpZdHB3YmdoODlOdTRY
N1M5VGJuOC9rLzFLTHJOZHRxM21PeVhiVENhZzZmL2NFNUlCblhHVC9VREdSVCtOamRVYzhNbjIK
a1cwejdWL1U3cjdMYnU3N2MyQXQ5Vm4ySFpnMlpadkpBYXA4QjJiN3p0bmcvQnBXL3p1dnRQMTAr
TzRiYTg5VXYzWHpxM2JNTC9vKwp5TmdmMjU5bnY1K0RxQmtyeTY3S0tJNGV6eENCMis0ZGJlaSsr
KysvdjkzMFJ0SS9mbi9rdzUzNUtCdCtMa2ZLbDFRbTZ1M0w3bjZRClJUdUFuVm5qK3BXU0w3bE1M
R0t3MHlrZG5KOVV6Rm1YM0dkVFV0N1ArakpweTl0RDcwelN5aG1xc2t6L2NWbTUvVHhUejZmV01W
dysKWDZUNWNvdFZyeW5EYk4zcllkbXJMRHNzY0ZqVzhQTzhUdm1aa0pVMGZGM2UzNm5Ic3Qwc2Nx
aHRhNDVZSlVCcmgwYzN5YzFZeU9RbQprOUZ5SnJCOWErSDRxVzNIV0YyeXZreVU4dlBLeTlKVU8x
Ty9qTjNzTjRZV3kvb3R5NHlOL2JsdEhyWmx6R0NZTnhPeXNpMHVhdE13Ci83STJEdlAxWDQrdEky
MVBNSm5KeGpDVmRVMzVEWmZMNitIMk1IeTlhSms1NzAyTm05cjl5TEFPcS9SbGxpMW13M0w2cjNl
cnJ2MTEKMUR6UGVFdndrdjErVGYrTWphT3Bkazk5UHF6dkt1N0Rzak5lRjMwSFpoMy8yUDdrZjM0
STVqUHRQaWp0V1RUdWgzVVpLMitZZDlucgpZUjJYNVN2djE3YS9wajNMK3EzbSsyQ3NIZ2x3YS94
S216eHV1TUJmM2ovYXdIYXpPL1Vwa1hWSjVXaGJlWDJtUE9iSXhHNmxUTFFXCjNjU2Y5NVA2Uitp
MzN0bjY3MWp3a1J6THl1MlhNZlY4YWgzRDVUUEJ2N0JVZlBqaDRQV3c3RldXSFJRMUdvaVZ2UDNn
SSs4Tlg1ZDgKTy9YWTMyNkdaZGEwTlVmS2NpYXkvTUc4VWtaNCsrTnhiaitQMVNYM2ZwVXpnV1g5
dzhlcGRwYjhpemFoNFJnb2Vjc1FXamIyNTdhNQpyS2M4amhtVVBPV3hCQjk1dmFoTkpWOTVYTmJH
OHZtaXg3RjFwTzNMSmhGbFhWTitpOVk1M0I2R3J4Y3RNK2U5cVhGVHV4OFoxbUdWCnZzeXl4V3hZ
VHYvMWJ0VzF2NDZhNXhsdnBiNDEvVE0yamtvNXk5WTc5Zmx3dVZYY2gyWFhiTTlwUzc4OXcvWDNY
OWVVMTgrLzZQbXcKam92eTlOOWJwZjFaYnF3OS9YYVdmVXp0OThGWVBaYnROL3J0OEp4QUVWaUxB
S1JVeGlNQkFuc25rTXVrY2psay92aGNMc0hJVWJFYworYzRsQzRzQzF0Mm9XWUtQWlVIQWJxeFBt
UVFJRUNnQ09aT1JzMCs1ZkdnVDBwejJyTVAzd1NiMGdUYlVDd2hBNnEza0pMQlJBcmxXCjkvOXMv
eDdPUyswMXo3a0dPajhYdkZlQlI0RVVmQlFKandRSTdMVkE5NGRuajkxL2x2dXRGdDJEdWRkMW1y
TytPZTFaaCsrRE9XMjMKN09rbklBQTUvZnBNalFuc21FQUNnTndvTFJFZ1FPQk1FOGlQaEd4U210
c2Uzd2ViTkJyV3Z5M2w4ci8xcjZrYUVpQkFnQUFCQWdRSQpFQ0J3MmdzSVFFNzdMdFFBQWdRSUVD
QkFnQUFCQXFlUHdQUWxXQk0vbzNYNk5GVk5DUkFnUUlBQUFRSUVDQkE0MVFMT2dKenFIckIrCkFn
UUlFQ0JBZ0FBQkFtZVFnQURrRE9wc1RTVkFnQUFCQWdRSUVDQndxZ1VFSUtlNkI2eWZBQUVDQkFn
UUlFQ0F3QmtrSUFBNWd6cGIKVXdrUUlFQ0FBQUVDQkFpY2FnRUJ5S251QWVzblFJQUFBUUlFQ0JB
Z2NBWUpDRURPb003V1ZBSUVDQkFnUUlBQUFRS25Xa0FBY3FwNwp3UG9KRUNCQWdBQUJBZ1FJbkVF
Q0FwQXpxTE0xbFFBQkFnUUlFQ0JBZ01DcEZoQ0FuT29lc0g0Q0JBZ1FJRUNBQUFFQ1o1Q0FBT1FN
CjZteE5KVUNBQUFFQ0JBZ1FJSENxQlFRZ3A3b0hySjhBQVFJRUNCQWdRSURBR1NRZ0FEbURPbHRU
Q1JBZ1FJQUFBUUlFQ0p4cUFRSEkKcWU0QjZ5ZEFnQUFCQWdRSUVDQndCZ2tJUU02Z3p0WlVBZ1FJ
RUNCQWdBQUJBcWRhUUFCeXFudkErZ2tRSUVDQUFBRUNCQWljUVFJSApwOXI2L2U5UDVmQTVBUUk3
TFhELy9UdGRvdklJRUNCQWdBQUJBdXNoTUJtQXBKb21RK3ZSV1dweFpnZ0krcytNZnRaS0FnUUlF
Q0J3CnBncTRCT3RNN1hudEprQ0FBQUVDQkFnUUlIQUtCQVFncHdEZEtna1FJRUNBQUFFQ0JBaWNx
UUlDa0RPMTU3V2JBQUVDQkFnUUlFQ0EKd0NrUXFMb0hwTFplLytrLy9hZmFyUElST09NRS92WnYv
L2FNYTdNR0V5QkFnQUFCQWdTR0FzNkFERVc4SmtDQUFBRUNCQWdRSUVCZwoxd1FFSUx0R3EyQUNC
QWdRSUVDQUFBRUNCSVlDQXBDaGlOY0VDQkFnUUlBQUFRSUVDT3lhZ0FCazEyZ1ZUSUFBQVFJRUNC
QWdRSURBClVFQUFNaFR4bWdBQkFnUUlFQ0JBZ0FDQlhSTVFnT3dhcllJSkVDQkFnQUFCQWdRSUVC
Z0tDRUNHSWw0VElFQ0FBQUVDQkFnUUlMQnIKQWdLUVhhTlZNQUVDQkFnUUlFQ0FBQUVDUXdFQnlG
REVhd0lFQ0JBZ1FJQUFBUUlFZGsxQUFMSnJ0QW9tUUlBQUFRSUVDQkFnUUdBbwpJQUFaaW5oTmdB
QUJBZ1FJRUNCQWdNQ3VDUWhBZG8xV3dRUUlFQ0JBZ0FBQkFnUUlEQVVFSUVNUnJ3a1FJRUNBQUFF
Q0JBZ1EyRFVCCkFjaXUwU3FZQUFFQ0JBZ1FJRUNBQUlHaGdBQmtLT0kxQVFJRUNCQWdRSUFBQVFL
N0ppQUEyVFZhQlJNZ1FJQUFBUUlFQ0JBZ01CUVEKZ0F4RnZDWkFnQUFCQWdRSUVDQkFZTmNFQkND
N1JxdGdBZ1FJRUNCQWdBQUJBZ1NHQWdLUW9ZalhCQWdRSUVDQUFBRUNCQWpzbW9BQQpaTmRvRlV5
QUFBRUNCQWdRSUVDQXdGQkFBRElVOFpvQUFRSUVDQkFnUUlBQWdWMFRFSURzR3EyQ0NSQWdRSUFB
QVFJRUNCQVlDZ2hBCmhpSmVFeUJBZ0FBQkFnUUlFQ0N3YXdJQ2tGMmpWVEFCQWdRSUVDQkFnQUFC
QWtNQkFjaFF4R3NDQkFnUUlFQ0FBQUVDQkhaTlFBQ3kKYTdRS0prQ0FBQUVDQkFnUUlFQmdLQ0FB
R1lwNFRZQUFBUUlFQ0JBZ1FJREFyZ2tJUUhhTlZzRUVDQkFnUUlBQUFRSUVDQXdGQkNCRApFYThK
RUNCQWdBQUJBZ1FJRU5nMUFRSElydEVxbUFBQkFnUUlFQ0JBZ0FDQm9ZQUFaQ2ppTlFFQ0JBZ1FJ
RUNBQUFFQ3V5WWdBTmsxCldnVVRJRUNBQUFFQ0JBZ1FJREFVRUlBTVJid21RSUFBQVFJRUNCQWdR
R0RYQkFRZ3UwYXJZQUlFQ0JBZ1FJQUFBUUlFaGdJQ2tLR0kKMXdRSUVDQkFnQUFCQWdRSTdKcUFB
R1RYYUJWTWdBQUJBZ1FJRUNCQWdNQlFRQUF5RlBHYUFBRUNCQWdRSUVDQUFJRmRFeENBN0JxdApn
Z2tRSUVDQUFBRUNCQWdRR0FvSVFJWWlYaE1nUUlBQUFRSUVDQkFnc0dzQ0FwQmRvMVV3QVFJRUNC
QWdRSUFBQVFKREFRSElVTVJyCkFnUUlFQ0JBZ0FBQkFnUjJUVUFBc211MENpWkFnQUFCQWdRSUVD
QkFZQ2dnQUJtS2VFMkFBQUVDQkFnUUlFQ0F3SzRKQ0VCMmpWYkIKQkFnUUlFQ0FBQUVDQkFnTUJR
UWdReEd2Q1JBZ1FJQUFBUUlFQ0JEWU5RRUJ5SzdSS3BnQUFRSUVDQkFnUUlBQWdhSEF3ZUViYzE3
Lwo3ZC8rN1p6RkxVdUFBQUVDQkFnUUlFQ0F3SVlMT0FPeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VB
QXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIy
aExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFn
UUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFB
QVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1Ey
WEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5
NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1
QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdR
SUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJB
Z1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpR
QUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92
YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNC
QWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdB
QUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JE
WmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFM
TGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhr
RUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNC
QWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFF
Q0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWts
QUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5
b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJ
RUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNB
QUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUK
Tmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFz
dUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNl
UVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJ
RUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFR
SUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NV
QUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRy
MmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJB
Z1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlB
QUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdR
MlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFD
eTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4
NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFn
UUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFC
QWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpK
UUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpP
dmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVD
QkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFn
QUFCQWdRMlhPQmdUZnUrLy8yYVhQSVFJRUNBQUFFQwpCQWdRSUVCZ1hHQXlBTG4vL3ZFQ2ZFcUFB
QUVDQkFnUUlFQ0FBSUZhQVpkZzFVckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnClFJQUFB
UUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FL
QldRQUJTS3lVZkFRSUUKQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBG
WktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRQpDQkFnUUlBQWdWb0JBVWl0bEh3RUNC
QWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBCkFR
SUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0
QUFES2JVQUVFQ0JBZ1FJQUEKQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFF
Q0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZwpRSURBYkFFQnlHeENCUkFnUUlB
QUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFn
ClFLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFB
cEZaS1BnSUVDQkFnUUlBQUFRSUUKWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdF
Q0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMQpBZ0tRV2luNUNCQWdRSUFB
QVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdN
RnRBCkFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtO
cUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0EKMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdR
SUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWgpoQW9nUUlBQUFRSUVD
QkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZ
QUFwRlpLClBnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxI
d0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUEKQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJ
QUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZwpRSUFBQVFJRUNC
QWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FC
a05xRUNDQkFnClFJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJB
Z1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUUKQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJ
RUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRQpDQkFnUUlC
QXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkJpdmtqbEFBQVNPMGxF
UVZRZ1FJQUFnVm9CCkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFB
QVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUEKbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VF
SUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcQpwZVFq
UUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVD
QkFnUUlEQWJBRUJ5R3hDCkJSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFn
ZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWYKQVFJRUNCQWdRSUFBQVFLekJRUWdz
d2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQQpB
UUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJ
QUFBUUsxQWdLUVdpbjVDQkFnClFJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFn
VUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWcKUUlBQUFRSUVDTlFLQ0VCcXBl
UWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJ
RQpDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlB
QWdka0NBcERaaEFvZ1FJQUFBUUlFCkNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFR
Z3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUEKQVFJRVpnc0lRR1lUS29B
QUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFn
UUlBQQpBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlF
YWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnCk1GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJx
cGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ28KRlJDQTFFckpSNEFB
QVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdR
SUFBZ2RrQwpBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pC
UVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBCnBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRL
b0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE0KSmxRQUFRSUVD
QkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFR
SUVhZ1VFSUxWUwo4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NF
QnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDCkNCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0
QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEEKQVFJRUNC
QWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFL
ekJRUWdzd2tWUUlBQQpBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZ
VEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnClFJQUFBUUlFQ013V0VJRE1KbFFBQVFJ
RUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWcKUUlB
QUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFL
Q0VCcXBlUWpRSUFBQVFJRQpDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJK
UjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFCkNCQWdVQ3NnQUttVmtvOEFBUUlF
Q0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUEK
QVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lR
R1lUS29BQUFRSUVDQkFnUUlBQQpnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFB
UUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZCkxTQUFtVTJvQUFJRUNCQWdR
SUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNO
UUsKQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFF
ckpSNEFBQVFJRUNCQWdRSURBYkFFQgp5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFR
SUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTCkt5VWZBUUlFQ0JBZ1FJ
QUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdz
SVFHWVQKS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxR
QUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNQpDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JB
Z1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFCkNCQWdRSUFBQVFJ
RUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNB
MUVySlI0QUEKQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhB
QVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQQpBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFn
UUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnClFJQUFBUUlF
WmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1K
bFFBQVFJRUNCQWcKUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVD
QkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRQpDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFB
UUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFCkNCQ29G
UkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtv
OEFBUUlFQ0JBZ1FJQUEKZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNC
QWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQQpyWUFBcEZaS1BnSUVDQkFnUUlBQUFR
SUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXCkVJ
RE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJ
RUNCQWdRSUFBQVFJRWFnVUUKSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlB
QUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCawpOcUVDQ0JBZ1FJQUFBUUlFQ0JD
b0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21W
CmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlF
Q0JBZ1FJQUFBUUt6QlFRZ3N3a1YKUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFB
QVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RQpDQkFnUUlBQUFRSUVDTXdX
RUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9B
QUlFCkNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdR
SUFBQVFJRUNOUUtDRUJxcGVRalFJQUEKQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVD
QkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQQpBUUlFQ0JBZ1VDc2dB
S21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFR
SUVDQkFnClFJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJ
QUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWcKUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNN
d1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRQpDQkNZTFNBQW1V
Mm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JB
Z1FJQUFBUUlFCkNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJ
RUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREEKYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNz
Z0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCVwpRQUJTS3lV
ZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFn
UUlBQUFRSUVaZ3NJClFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlF
Q013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1EKV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FB
bVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYgpVQUVF
Q0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFB
UUlFQ0JDb0ZSQ0ExRXJKClI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdV
Q3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2cKUUlBQUFRSUVDQkFnUUtCV1FBQlNL
eVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRQpD
QkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFR
SUVDTXdXRUlETUpsUUFBUUlFCkNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxT
QUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUEKQVFJRUNCQWdNRnRBQURLYlVB
RUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlB
QQpBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JB
Z1VDc2dBS21Wa284QUFRSUVDQkFnClFJQUFnZGtDQXBEWmhBb2c4UCszWDRjMkFBQUFDTVArLzVv
WGxtRHJDYUp1QkFnUUlFQ0FBQUVDQktxQUFLbFNkZ1FJRUNCQWdBQUIKQWdRSTNBSUM1Q1owUUlB
QUFRSUVDQkFnUUlCQUZSQWdWY3FPQUFFQ0JBZ1FJRUNBQUlGYlFJRGNoQTRJRUNCQWdBQUJBZ1FJ
RUtnQwpBcVJLMlJFZ1FJQUFBUUlFQ0JBZ2NBc0lrSnZRQVFFQ0JBZ1FJRUNBQUFFQ1ZVQ0FWQ2s3
QWdRSUVDQkFnQUFCQWdSdUFRRnlFem9nClFJQUFBUUlFQ0JBZ1FLQUtDSkFxWlVlQUFBRUNCQWdR
SUVDQXdDMGdRRzVDQndRSUVDQkFnQUFCQWdRSVZBRUJVcVhzQ0JBZ1FJQUEKQVFJRUNCQzRCUVRJ
VGVpQUFBRUNCQWdRSUVDQUFJRXFJRUNxbEIwQkFnUUlFQ0JBZ0FBQkFyZUFBTGtKSFJBZ1FJQUFB
UUlFQ0JBZwpVQVVFU0pXeUkwQ0FBQUVDQkFnUUlFRGdGaEFnTjZFREFnUUlFQ0JBZ0FBQkFnU3Fn
QUNwVW5ZRUNCQWdRSUFBQVFJRUNOd0NBdVFtCmRFQ0FBQUVDQkFnUUlFQ0FRQlVRSUZYS2pnQUJB
Z1FJRUNCQWdBQ0JXMENBM0lRT0NCQWdRSUFBQVFJRUNCQ29BZ0trU3RrUklFQ0EKQUFFQ0JBZ1FJ
SEFMQ0pDYjBBRUJBZ1FJRUNCQWdBQUJBbFZBZ0ZRcE93SUVDQkFnUUlBQUFRSUViZ0VCY2hNNklF
Q0FBQUVDQkFnUQpJRUNnQ2dpUUttVkhnQUFCQWdRSUVDQkFnTUF0SUVCdVFnY0VDQkFnUUlBQUFR
SUVDRlFCQVZLbDdBZ1FJRUNBQUFFQ0JBZ1F1QVVFCnlFM29nQUFCQWdRSUVDQkFnQUNCS2lCQXFw
UWRBUUlFQ0JBZ1FJQUFBUUszZ0FDNUNSMFFJRUNBQUFFQ0JBZ1FJRkFGQkVpVnNpTkEKZ0FBQkFn
UUlFQ0JBNEJZUUlEZWhBd0lFQ0JBZ1FJQUFBUUlFcW9BQXFWSjJCQWdRSUVDQUFBRUNCQWpjQWdM
a0puUkFnQUFCQWdRSQpFQ0JBZ0VBVkVDQlZ5bzRBQVFJRUNCQWdRSUFBZ1Z0QWdOeUVEZ2dRSUVD
QUFBRUNCQWdRcUFJQ3BFclpFU0JBZ0FBQkFnUUlFQ0J3CkN3aVFtOUFCQVFJRUNCQWdRSUFBQVFK
VlFJQlVLVHNDQkFnUUlFQ0FBQUVDQkc0QkFYSVRPaUJBZ0FBQkFnUUlFQ0JBb0FvSWtDcGwKUjRB
QUFRSUVDQkFnUUlEQUxTQkFia0lIQkFnUUlFQ0FBQUVDQkFoVUFRRlNwZXdJRUNCQWdBQUJBZ1FJ
RUxnRkJNaE42SUFBQVFJRQpDQkFnUUlBQWdTb2dRS3FVSFFFQ0JBZ1FJRUNBQUFFQ3Q0QUF1UWtk
RUNCQWdBQUJBZ1FJRUNCUUJRUklsYklqUUlBQUFRSUVDQkFnClFPQVdFQ0Ezb1FNQ0JBZ1FJRUNB
QUFFQ0JLcUFBS2xTZGdRSUVDQkFnQUFCQWdRSTNBSURCMGlvSVJBdU4rb0FBQUFBU1VWT1JLNUMK
WUlJPQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52682</attachid>
            <date>2010-04-06 16:33:56 -0700</date>
            <delta_ts>2010-04-06 17:17:14 -0700</delta_ts>
            <desc>Patch5</desc>
            <filename>bug6649734-5.txt</filename>
            <type>text/plain</type>
            <size>129058</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEzIEBACisyMDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICBUaGUgZ2x5
cGggY2FjaGUgaGFzIGJlZW4gYWxzbyB1cGRhdGVkIHRvIGFsbG93IHN0b3JpbmcgdGhlIGdseXBo
IGJvdW5kaW5nIGJveCB0b2dldGhlciB3aXRoIHRoZQorICAgICAgICBob3Jpem9udGFsIHdpZHRo
LiBUaGUgYm91bmRpbmcgYm94IGlzIHBvcHVsYXRlZCBvbmx5IGZvciBjb21wbGV4IHRleHQuCisg
ICAgICAgIAorICAgICAgICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhcyBi
ZWVuIHdyaXR0ZW4gYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IEZpbGUg
bmFtZSBjaGFuZ2UuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEZpbGUgbmFtZSBjaGFuZ2Uu
CisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogQWRkZWQgcGFyYW1ldGVyIGluIGV4cG9ydGVk
IGZ1bmN0aW9uLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRmlsZSBuYW1lIGNoYW5nZS4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRmlsZSBuYW1lIGNoYW5nZS4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEZpbGUgbmFtZSBj
aGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogQWRkZWQgZ2x5cGhPdmVyZmxvdyBwYXJhbWV0ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhPdmVyZmxvdzo6R2x5cGhPdmVyZmxvdyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6d2lkdGgpOiBBZGRlZCBnbHlwaE92ZXJmbG93IHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6Y2FuVXNlR2x5cGhDYWNoZSk6IE1vZGlmaWVkIHRvIHJlbmRlciBjaGFyYWN0ZXJzIHdpdGgg
c3RhY2tlZCBkaWFjcml0aWNzIHdpdGggY29tcGxleCB0ZXh0IHBhdGguCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcDogQ29waWVkIGZyb20gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Okds
eXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKTogQ2xhc3MgbmFtZSBjaGFuZ2VkIHRv
IHJlZmxlY3QgbmV3IHNlbWFudGljcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aE1ldHJpY3NNYXAuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmguCisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6OkdseXBoTWV0
cmljc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6On5HbHlwaE1ldHJp
Y3NNYXApOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjptZXRyaWNzRm9yR2x5
cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjp3aWR0aEZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6c2V0TWV0cmljc0ZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6bWV0
cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhN
ZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
TWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9XaWR0aEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6
OmFkdmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQp
OiBBZGRlZCBuZXcgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6IEFkZGVkIG5ldyBwYXJhbWV0ZXIuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEds
eXBoc0FuZEFkdmFuY2VzKTogTW9kaWZpZWQgdG8gdXNlIEdseXBoT3ZlcmZsb3cuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjptaW5HbHlwaEJvdW5kaW5nQm94WCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1heEdseXBoQm91bmRp
bmdCb3hYKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVy
OjptYXhHbHlwaEJvdW5kaW5nQm94WSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDb21wbGV4VGV4dE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdp
ZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9h
dFdpZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKTogQWRkZWQgcGFyYW1l
dGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdESUdseXBo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVDb250cm9sbGVyOjpVbmlzY3JpYmVDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5k
UGxhY2VJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6
bWF4R2x5cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJv
bGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJl
Q29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNl
Qm94ZXNIb3Jpem9udGFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29t
cHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OmNvbXB1dGVWZXJ0aWNhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpzZXRGYWxsYmFja0Zv
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmZhbGxiYWNrRm9udHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6c2V0R2x5cGhPdmVyZmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpnbHlwaE92ZXJmbG93KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJv
eDo6Y2xlYXJHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpSZW5k
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKTogQWRkZWQgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Ojp3aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDogUmVuYW1l
ZCBtZW1iZXIgdmFyaWFibGUuCisKIDIwMTAtMDQtMDYgIEphcmtrbyBTYWtraW5lbiAgPGphcmtr
by5qLnNha2tpbmVuQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBMYXN6bG8gR29t
Ym9zLgpJbmRleDogV2ViQ29yZS9BbmRyb2lkLm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5k
cm9pZC5tawkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL0FuZHJvaWQubWsJKHdvcmtpbmcg
Y29weSkKQEAgLTQzNiw3ICs0MzYsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNf
RklMRVMpIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwIFwKIAlwbGF0Zm9y
bS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAgXAogCXBsYXRmb3JtL2dyYXBoaWNzL0dseXBo
UGFnZVRyZWVOb2RlLmNwcCBcCi0JcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAg
XAorCXBsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAgXAogCXBsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmNwcCBcCiAJcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcCBcCiAJcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgXApJbmRleDogV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTE2MTEsOCArMTYxMSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
bHlwaFBhZ2VUcmVlTm9kZS5oIFwKLQlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lk
dGhNYXAuY3BwIFwKLQlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuaCBc
CisJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwIFwKKwlXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5iYXNlLmV4cAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL1dlYkNvcmUu
YmFzZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTkwOCw3ICs5MDgsNyBAQCBfX1pOSzdXZWJDb3Jl
MjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c3VnCiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTN1cmxFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2U4bWltZVR5
cGVFdgogX19aTks3V2ViQ29yZTI2TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI2aXNEb25lRXYK
LV9fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVuRVBOM1dURjdIYXNo
U2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVOUzRfMTBIYXNoVHJh
aXRzSVM4X0VFRUUKK19fWk5LN1dlYkNvcmU0Rm9udDEwZmxvYXRXaWR0aEVSS05TXzdUZXh0UnVu
RVBOM1dURjdIYXNoU2V0SVBLTlNfMTRTaW1wbGVGb250RGF0YUVOUzRfN1B0ckhhc2hJUzhfRUVO
UzRfMTBIYXNoVHJhaXRzSVM4X0VFRUVQTlNfMTNHbHlwaE92ZXJmbG93RQogX19aTks3V2ViQ29y
ZTRGb250MTFwcmltYXJ5Rm9udEV2CiBfX1pOSzdXZWJDb3JlNEZvbnQ4ZHJhd1RleHRFUE5TXzE1
R3JhcGhpY3NDb250ZXh0RVJLTlNfN1RleHRSdW5FUktOU18xMEZsb2F0UG9pbnRFaWkKIF9fWk5L
N1dlYkNvcmU0S1VSTDExY3JlYXRlQ0ZVUkxFdgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDU3MTc0KQorKysg
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTIzMjIsOCArMjMyMiw4IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5oJywKLSAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcCcsCi0gICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaE1ldHJpY3NNYXAuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwJywK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNTcxNzQp
CisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjc3NiwxMSArMjI3NzYsMTEgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxG
aWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoV2lkdGhN
YXAuY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHbHlwaE1l
dHJpY3NNYXAuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoV2lkdGhNYXAuaCINCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhNZXRyaWNzTWFwLmgiDQog
CQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzg5OCw4
ICszODk4LDYgQEAKIAkJQjJDM0RBNkMwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoQnVmZmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1QjBE
MDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhCdWZmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMkMzREE2RDBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5
cGhQYWdlVHJlZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjJDM0RBNUMwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNw
cCAqLzsgfTsKIAkJQjJDM0RBNkUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1
RDBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMkMzREE2RjBEMDA2Q0Q2MDBFRjZG
MjYgLyogR2x5cGhXaWR0aE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMkMzREE1RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5j
cHAgKi87IH07Ci0JCUIyQzNEQTcwMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1RjBE
MDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQzk2RDhEMEIzQUYyQjcwMDVFODBFQyAvKiBK
U1NWR1BhdGhTZWdDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjJDOTZEOEMwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3Rv
bS5jcHAgKi87IH07CiAJCUIyQ0I5MjQyMEI1QkQ5NjYwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJ
bnN0YW5jZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkNCOTIzQjBCNUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2UuY3BwICov
OyB9OwogCQlCMkNCOTI0NDBCNUJEOTcwMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjND
MEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5oICovOyB9OwpAQCAtNDcw
MCw2ICs0Njk4LDggQEAKIAkJQzUxNjBFRUIxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVh
SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUx
NjBFRTkxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVhSW1wbC5oICovOyB9OwogCQlDNTVF
MzhCRjEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NUUzOEJCMTAwNDBENUQwMEE1
NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oICovOyB9OwogCQlDNTVFMzhDMDEwMDQwRDVE
MDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4QkMxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0
b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCAqLzsgfTsKKwkJQzVENEFBNzkxMTZCQUZCNjAwNjlDQTkz
IC8qIEdseXBoTWV0cmljc01hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDNUQ0QUE3NzExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFw
LmNwcCAqLzsgfTsKKwkJQzVENEFBN0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01h
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVENEFB
NzgxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUM1RTlCNjc3MTA2OTdFMTMwMEM3QkIx
QSAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdl
RXZlbnREaXNwYXRjaGVyLmNwcCAqLzsgfTsKIAkJQzVFQkREODQxMDVFRERFQzAwNTY4MTZGIC8q
IFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM1RUJERDgxMTA1RURERUMwMDU2ODE2RiAvKiBTdG9yYWdlRXZlbnRE
aXNwYXRjaGVyLmggKi87IH07CiAJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlT
ZWxlY3Rpb25MaXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuaCAqLzsgfTsKQEAgLTkyMjIsOCArOTIyMiw2IEBACiAJCUIyQzNEQTVCMEQwMDZDRDYw
MEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR2x5cGhCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDM0RBNUMw
RDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUIyQzNEQTVEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VU
cmVlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhQYWdlVHJl
ZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJDM0RBNUUwRDAwNkNENjAw
RUY2RjI2IC8qIEdseXBoV2lkdGhNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdseXBoV2lkdGhNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCMkMzREE1RjBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhXaWR0aE1hcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2VnQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1BhdGhT
ZWdDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkNCOTIzQjBCNUJE
OTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHRWxlbWVudEluc3RhbmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDQjkyM0MwQjVCRDk0MTAwOUJBQTc4IC8qIEpTU1ZHRWxl
bWVudEluc3RhbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0Vs
ZW1lbnRJbnN0YW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNjEsNiAr
MTAwNTksOCBAQAogCQlDNTE2MEVFOTEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSW1wbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTVFMzhCQjEwMDQwRDVEMDBBNTZCREIgLyog
U3RvcmFnZU5hbWVzcGFjZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RvcmFnZU5hbWVzcGFjZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU1
RTM4QkMxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzVENEFBNzcxMTZCQUZCNjAwNjlDQTkzIC8q
IEdseXBoTWV0cmljc01hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHbHlwaE1ldHJpY3NNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNUQ0
QUE3ODExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdseXBoTWV0cmljc01hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNUU5QjY3NjEwNjk3RTEzMDBDN0JCMUEgLyogU3RvcmFnZUV2ZW50RGlzcGF0
Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlRXZl
bnREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVFQkREODEx
MDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2Vs
ZWN0aW9uTGlzdExldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGlm
eVNlbGVjdGlvbkxpc3RMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ2
NDQsMTAgKzE0NjQ0LDEwIEBACiAJCQkJQkMyM0YwREEwREFGRjRBNDAwOUZEQzkxIC8qIEdlbmVy
YXRlZEltYWdlLmggKi8sCiAJCQkJQkNFMDRDODkwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRv
ci5oICovLAogCQkJCUIyQzNEQTVCMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oICov
LAorCQkJCUM1RDRBQTc3MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuY3BwICov
LAorCQkJCUM1RDRBQTc4MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAqLywK
IAkJCQlCMkMzREE1QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICov
LAogCQkJCUIyQzNEQTVEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oICov
LAotCQkJCUIyQzNEQTVFMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmNwcCAqLywK
LQkJCQlCMkMzREE1RjBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5oICovLAogCQkJ
CUJDNTNDNjA3MERBNTZDNTcwMDIxRUI1RCAvKiBHcmFkaWVudC5jcHAgKi8sCiAJCQkJQkM1M0M1
RjQwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggKi8sCiAJCQkJQjJBMDE1OTIwQUY2Q0Q1
MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCkBAIC0xNzM5Miw3ICsxNzM5Miw2
IEBACiAJCQkJRkU4MEQ3QzkwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREE2QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhCdWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZFMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VU
cmVlTm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjJDM0RBNzAwRDAwNkNENjAwRUY2RjI2IC8q
IEdseXBoV2lkdGhNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNDNUY1MERBNTZCOTIwMDIx
RUI1RCAvKiBHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NjQwRDAwQkYyMjAw
NzFCNzgyIC8qIEdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMDE1
QTkwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xODgxNCw2ICsxODgxMyw3IEBACiAJCQkJODk1MjUzNTMxMTY0MUIzNDAwQ0FCRjAwIC8qIEZp
bGVUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QzA3ODUwMTE2NUQ1QkUwMDNBMzJFRiAv
KiBTdWZmaXhUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNTQyRjREQjExNjZDMjVBMDBFODlB
ODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1RDRBQTdB
MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
MTk2MzEsNyArMTk2MzEsNiBAQAogCQkJCTU5Qzc3RjJBMTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTZEMEQwMDZD
RDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkFGRkM4MzBEMDBBNUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlVHJlZU5vZGVNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQjJDM0RBNkYwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lkdGhNYXAu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1M0M2MDgwREE1NkM1NzAwMjFFQjVEIC8qIEdyYWRp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTNDNjBCMERBNTZDRjEwMDIxRUI1RCAvKiBH
cmFkaWVudENHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTAxNUE4MEFGNkNENTMwMDZCQ0Uw
RSAvKiBHcmFwaGljc0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMTAzNCw2ICsyMTAz
Myw3IEBACiAJCQkJMkUzQkJGMDcxMTYyREExMTAwQjk0MDlBIC8qIFVVSUQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODk1MjUzNTIxMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJl
SW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM1RDRBQTc5MTE2QkFGQjYwMDY5Q0E5
MyAvKiBHbHlwaE1ldHJpY3NNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQg
Rm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAgICByZXR1cm4gZHJhd0NvbXBs
ZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsKIH0KIAotZmxvYXQgRm9udDo6
ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGgoY29uc3Qg
VGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFNW
R19GT05UUykKICAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCkBAIC0xOTgsNyAr
MTk4LDcgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydQogICAgIH0K
ICNlbmRpZgogCi0gICAgcmV0dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxi
YWNrRm9udHMpOworICAgIHJldHVybiBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQocnVuLCBmYWxs
YmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChj
b25zdCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBpbnQmIGNoYXJzQ29u
c3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmgJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDIxIEBAIHN0cnVjdCBHbHlwaERhdGE7CiAK
IGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRVbml0c1BlckVtID0gMTAwMDsKIAorc3RydWN0IEdseXBo
T3ZlcmZsb3cgeworICAgIEdseXBoT3ZlcmZsb3coKQorICAgICAgICA6IGxlZnQoMCkKKyAgICAg
ICAgLCByaWdodCgwKQorICAgICAgICAsIHRvcCgwKQorICAgICAgICAsIGJvdHRvbSgwKQorICAg
IHsKKyAgICB9CisKKyAgICBpbnQgbGVmdDsKKyAgICBpbnQgcmlnaHQ7CisgICAgaW50IHRvcDsK
KyAgICBpbnQgYm90dG9tOworfTsKKwogY2xhc3MgRm9udCB7CiBwdWJsaWM6CiAgICAgRm9udCgp
OwpAQCAtODEsOCArOTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRyYXdUZXh0KEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20gPSAw
LCBpbnQgdG8gPSAtMSkgY29uc3Q7CiAKLSAgICBpbnQgd2lkdGgoY29uc3QgVGV4dFJ1biYgcnVu
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25z
dCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzKSk7IH0KLSAg
ICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdDsKKyAgICBpbnQgd2lkdGgoY29uc3Qg
VGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMgPSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3QgeyByZXR1cm4g
bHJvdW5kZihmbG9hdFdpZHRoKHJ1biwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdykpOyB9
CisgICAgZmxvYXQgZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVy
ZmxvdyA9IDApIGNvbnN0OwogICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnVu
LCBpbnQgZXh0cmFDaGFyc0F2YWlsYWJsZSwgaW50JiBjaGFyc0NvbnN1bWVkLCBTdHJpbmcmIGds
eXBoTmFtZSkgY29uc3Q7CiAKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb24oY29uc3QgVGV4dFJ1
biYsIGludCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CkBAIC0x
NTksNyArMTc0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBkcmF3Q29tcGxleFRl
eHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdDsKLSAgICBmbG9hdCBmbG9hdFdpZHRoRm9yQ29tcGxleFRl
eHQoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cyA9IDApIGNvbnN0OworICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChj
b25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9z
aXRpb25Gb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGlu
Y2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGludCBoLCBpbnQg
ZnJvbSwgaW50IHRvKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250RmFzdFBhdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEZhc3RQYXRoLmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDE3ICsyNCwxNyBA
QAogI2luY2x1ZGUgIkZvbnQuaCIKIAogI2luY2x1ZGUgIkNoYXJhY3Rlck5hbWVzLmgiCisjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRm9u
dEZhbGxiYWNrTGlzdC5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdseXBo
QnVmZmVyLmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKICNpbmNsdWRlICJJbnRQ
b2ludC5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW5jbHVkZSAiV2lkdGhJdGVy
YXRvci5oIgogCi0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7CkBAIC0yMzQsNiArMjM0
LDExIEBAIGJvb2wgRm9udDo6Y2FuVXNlR2x5cGhDYWNoZShjb25zdCBUZXh0UnUKICAgICAgICAg
aWYgKGMgPD0gMHgxOTRGKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgICAgIGlm
IChjIDwgMHgxRTAwKSAgICAgLy8gVSsxRTAwIHRocm91Z2ggVSsyMDAwIGNoYXJhY3RlcnMgd2l0
aCBkaWFjcml0aWNzIGFuZCBzdGFja2VkIGRpYWNyaXRpY3MKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBpZiAoYyA8PSAweDIwMDApCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICAgICAgaWYgKGMgPCAweDIwRDApICAgICAvLyBVKzIwRDAgdGhyb3VnaCBVKzIwRkYgQ29t
YmluaW5nIG1hcmtzIGZvciBzeW1ib2xzCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
aWYgKGMgPD0gMHgyMEZGKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1l
dHJpY3NNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhNZXRyaWNzTWFwLmNwcAkocmV2aXNpb24gNTcxNjkpCShmcm9tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHA6NTcxNjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdseXBoV2lkdGhNYXAu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHbHlwaFdpZHRoTWFwOjpHbHlwaFdpZHRoUGFn
ZSogR2x5cGhXaWR0aE1hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIp
Cit7CisgICAgR2x5cGhXaWR0aFBhZ2UqIHBhZ2U7CisgICAgaWYgKHBhZ2VOdW1iZXIgPT0gMCkg
eworICAgICAgICBBU1NFUlQoIW1fZmlsbGVkUHJpbWFyeVBhZ2UpOworICAgICAgICBwYWdlID0g
Jm1fcHJpbWFyeVBhZ2U7CisgICAgICAgIG1fZmlsbGVkUHJpbWFyeVBhZ2UgPSB0cnVlOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChtX3BhZ2VzKSB7CisgICAgICAgICAgICBpZiAoKHBhZ2Ug
PSBtX3BhZ2VzLT5nZXQocGFnZU51bWJlcikpKQorICAgICAgICAgICAgICAgIHJldHVybiBwYWdl
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcGFnZXMuc2V0KG5ldyBIYXNoTWFwPGlu
dCwgR2x5cGhXaWR0aFBhZ2UqPik7CisgICAgICAgIHBhZ2UgPSBuZXcgR2x5cGhXaWR0aFBhZ2U7
CisgICAgICAgIG1fcGFnZXMtPnNldChwYWdlTnVtYmVyLCBwYWdlKTsKKyAgICB9CisKKyAgICAv
LyBGaWxsIGluIHRoZSB3aG9sZSBwYWdlIHdpdGggdGhlIHVua25vd24gZ2x5cGggd2lkdGggdmFs
dWUuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdseXBoV2lkdGhQYWdlOjpzaXplOyBp
KyspCisgICAgICAgIHBhZ2UtPnNldFdpZHRoRm9ySW5kZXgoaSwgY0dseXBoV2lkdGhVbmtub3du
KTsKKworICAgIHJldHVybiBwYWdlOworfQorCit9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwCShyZXZpc2lvbiA1NzE2OSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsMTQgKzI3LDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkdseXBoV2lkdGhNYXAuaCIKKyNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1HbHlwaFdpZHRoTWFwOjpHbHlwaFdpZHRoUGFnZSogR2x5cGhXaWR0
aE1hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpCitHbHlwaE1ldHJp
Y3NNYXA6OkdseXBoTWV0cmljc1BhZ2UqIEdseXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZVNsb3dD
YXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpCiB7Ci0gICAgR2x5cGhXaWR0aFBhZ2UqIHBhZ2U7Ci0g
ICAgaWYgKHBhZ2VOdW1iZXIgPT0gMCkgeworICAgIEdseXBoTWV0cmljc1BhZ2UqIHBhZ2U7Cisg
ICAgaWYgKCFwYWdlTnVtYmVyKSB7CiAgICAgICAgIEFTU0VSVCghbV9maWxsZWRQcmltYXJ5UGFn
ZSk7CiAgICAgICAgIHBhZ2UgPSAmbV9wcmltYXJ5UGFnZTsKICAgICAgICAgbV9maWxsZWRQcmlt
YXJ5UGFnZSA9IHRydWU7CkBAIC00MywxNCArNDMsMTggQEAgR2x5cGhXaWR0aE1hcDo6R2x5cGhX
aWR0aFBhZ2UqIEdseXBoV2lkdAogICAgICAgICAgICAgaWYgKChwYWdlID0gbV9wYWdlcy0+Z2V0
KHBhZ2VOdW1iZXIpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcGFnZTsKICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICBtX3BhZ2VzLnNldChuZXcgSGFzaE1hcDxpbnQsIEdseXBoV2lkdGhQ
YWdlKj4pOwotICAgICAgICBwYWdlID0gbmV3IEdseXBoV2lkdGhQYWdlOworICAgICAgICAgICAg
bV9wYWdlcy5zZXQobmV3IEhhc2hNYXA8aW50LCBHbHlwaE1ldHJpY3NQYWdlKj4pOworICAgICAg
ICBwYWdlID0gbmV3IEdseXBoTWV0cmljc1BhZ2U7CiAgICAgICAgIG1fcGFnZXMtPnNldChwYWdl
TnVtYmVyLCBwYWdlKTsKICAgICB9CiAKLSAgICAvLyBGaWxsIGluIHRoZSB3aG9sZSBwYWdlIHdp
dGggdGhlIHVua25vd24gZ2x5cGggd2lkdGggdmFsdWUuCi0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IEdseXBoV2lkdGhQYWdlOjpzaXplOyBpKyspCi0gICAgICAgIHBhZ2UtPnNldFdpZHRo
Rm9ySW5kZXgoaSwgY0dseXBoV2lkdGhVbmtub3duKTsKKyAgICBHbHlwaE1ldHJpY3MgdW5rbm93
bk1ldHJpY3M7CisgICAgdW5rbm93bk1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBjR2x5cGhT
aXplVW5rbm93bjsKKyAgICB1bmtub3duTWV0cmljcy5ib3VuZGluZ0JveC5zZXRXaWR0aChjR2x5
cGhTaXplVW5rbm93bik7CisgICAgdW5rbm93bk1ldHJpY3MuYm91bmRpbmdCb3guc2V0SGVpZ2h0
KGNHbHlwaFNpemVVbmtub3duKTsKKyAgICAvLyBGaWxsIGluIHRoZSB3aG9sZSBwYWdlIHdpdGgg
dGhlIHVua25vd24gZ2x5cGggaW5mb3JtYXRpb24uCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IEdseXBoTWV0cmljc1BhZ2U6OnNpemU7IGkrKykKKyAgICAgICAgcGFnZS0+c2V0TWV0cmlj
c0ZvckluZGV4KGksIHVua25vd25NZXRyaWNzKTsKIAogICAgIHJldHVybiBwYWdlOwogfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCShyZXZpc2lv
biA1NzE2OSkJKGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmg6
NTcxNjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4g
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4g
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2x5cGhXaWR0
aE1hcF9oCisjZGVmaW5lIEdseXBoV2lkdGhNYXBfaAorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29k
ZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgR2x5
cGg7CisKK2NvbnN0IGZsb2F0IGNHbHlwaFdpZHRoVW5rbm93biA9IC0xOworCitjbGFzcyBHbHlw
aFdpZHRoTWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBHbHlwaFdpZHRo
TWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0KKyAgICB+R2x5cGhXaWR0aE1h
cCgpIHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9CisKKyAg
ICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPndpZHRoRm9yR2x5cGgo
Z2x5cGgpOworICAgIH0KKworICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwg
ZmxvYXQgd2lkdGgpCisgICAgeworICAgICAgICBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0
aFBhZ2U6OnNpemUpLT5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7CisgICAgfQorCitw
cml2YXRlOgorICAgIHN0cnVjdCBHbHlwaFdpZHRoUGFnZSB7CisgICAgICAgIHN0YXRpYyBjb25z
dCBzaXplX3Qgc2l6ZSA9IDI1NjsgLy8gVXN1YWxseSBjb3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmds
ZSBwYWdlLgorICAgICAgICBmbG9hdCBtX3dpZHRoc1tzaXplXTsKKworICAgICAgICBmbG9hdCB3
aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAl
IHNpemVdOyB9CisgICAgICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxv
YXQgd2lkdGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldFdpZHRoRm9ySW5kZXgoZ2x5cGgg
JSBzaXplLCB3aWR0aCk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBzZXRXaWR0aEZvckluZGV4
KHVuc2lnbmVkIGluZGV4LCBmbG9hdCB3aWR0aCkKKyAgICAgICAgeworICAgICAgICAgICAgbV93
aWR0aHNbaW5kZXhdID0gd2lkdGg7CisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIEdseXBo
V2lkdGhQYWdlKiBsb2NhdGVQYWdlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpCisgICAgeworICAgICAg
ICBpZiAoIXBhZ2VOdW1iZXIgJiYgbV9maWxsZWRQcmltYXJ5UGFnZSkKKyAgICAgICAgICAgIHJl
dHVybiAmbV9wcmltYXJ5UGFnZTsKKyAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2VTbG93Q2FzZShw
YWdlTnVtYmVyKTsKKyAgICB9CisKKyAgICBHbHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZVNsb3dD
YXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpOworICAgIAorICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5
UGFnZTsKKyAgICBHbHlwaFdpZHRoUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBm
b3IgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1LgorICAgIE93blB0
cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPiA+IG1fcGFnZXM7Cit9OworCit9CisKKyNl
bmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5o
CShyZXZpc2lvbiA1NzE2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRy
aWNzTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDEwIEBACiAgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpZm5kZWYgR2x5cGhXaWR0aE1hcF9oCi0jZGVmaW5lIEdseXBoV2lkdGhNYXBfaAor
I2lmbmRlZiBHbHlwaE1ldHJpY3NNYXBfaAorI2RlZmluZSBHbHlwaE1ldHJpY3NNYXBfaAogCisj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgpAQCAtMzcs
NTMgKzM4LDY3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRlZiB1bnNpZ25lZCBzaG9y
dCBHbHlwaDsKIAotY29uc3QgZmxvYXQgY0dseXBoV2lkdGhVbmtub3duID0gLTE7CisgICAgY29u
c3QgZmxvYXQgY0dseXBoU2l6ZVVua25vd24gPSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6
cXVpZXRfTmFOKCk7CiAKLWNsYXNzIEdseXBoV2lkdGhNYXAgOiBwdWJsaWMgTm9uY29weWFibGUg
eworc3RydWN0IEdseXBoTWV0cmljcyB7CisgICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7Cisg
ICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OworfTsKKworY2xhc3MgR2x5cGhNZXRyaWNzTWFwIDog
cHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBHbHlwaFdpZHRoTWFwKCkgOiBtX2Zp
bGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0KLSAgICB+R2x5cGhXaWR0aE1hcCgpIHsgaWYgKG1f
cGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9CisgICAgR2x5cGhNZXRyaWNz
TWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0KKyAgICB+R2x5cGhNZXRyaWNz
TWFwKCkKKyAgICB7IAorICAgICAgICBpZiAobV9wYWdlcykKKyAgICAgICAgICAgIGRlbGV0ZUFs
bFZhbHVlcygqbV9wYWdlcyk7CisgICAgfQorCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JH
bHlwaChHbHlwaCBnbHlwaCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBo
IC8gR2x5cGhNZXRyaWNzUGFnZTo6c2l6ZSktPm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAg
fQogCiAgICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT53aWR0aEZv
ckdseXBoKGdseXBoKTsKKyAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaE1l
dHJpY3NQYWdlOjpzaXplKS0+bWV0cmljc0ZvckdseXBoKGdseXBoKS5ob3Jpem9udGFsQWR2YW5j
ZTsKICAgICB9CiAKLSAgICB2b2lkIHNldFdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGZsb2F0
IHdpZHRoKQorICAgIHZvaWQgc2V0TWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoLCBjb25zdCBH
bHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgewotICAgICAgICBsb2NhdGVQYWdlKGdseXBoIC8g
R2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7Cisg
ICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+c2V0TWV0
cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgc3Ry
dWN0IEdseXBoV2lkdGhQYWdlIHsKKyAgICBzdHJ1Y3QgR2x5cGhNZXRyaWNzUGFnZSB7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2l6ZSA9IDI1NjsgLy8gVXN1YWxseSBjb3ZlcnMgTGF0
aW4tMSBpbiBhIHNpbmdsZSBwYWdlLgotICAgICAgICBmbG9hdCBtX3dpZHRoc1tzaXplXTsKKyAg
ICAgICAgR2x5cGhNZXRyaWNzIG1fbWV0cmljc1tzaXplXTsKIAotICAgICAgICBmbG9hdCB3aWR0
aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNp
emVdOyB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQg
d2lkdGgpCisgICAgICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgp
IGNvbnN0IHsgcmV0dXJuIG1fbWV0cmljc1tnbHlwaCAlIHNpemVdOyB9CisgICAgICAgIHZvaWQg
c2V0TWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoLCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJp
Y3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBzaXpl
LCB3aWR0aCk7CisgICAgICAgICAgICBzZXRNZXRyaWNzRm9ySW5kZXgoZ2x5cGggJSBzaXplLCBt
ZXRyaWNzKTsKICAgICAgICAgfQotICAgICAgICB2b2lkIHNldFdpZHRoRm9ySW5kZXgodW5zaWdu
ZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQorICAgICAgICB2b2lkIHNldE1ldHJpY3NGb3JJbmRleCh1
bnNpZ25lZCBpbmRleCwgY29uc3QgR2x5cGhNZXRyaWNzJiBtZXRyaWNzKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBtX3dpZHRoc1tpbmRleF0gPSB3aWR0aDsKKyAgICAgICAgICAgIG1fbWV0cmlj
c1tpbmRleF0gPSBtZXRyaWNzOwogICAgICAgICB9CiAgICAgfTsKICAgICAKLSAgICBHbHlwaFdp
ZHRoUGFnZSogbG9jYXRlUGFnZSh1bnNpZ25lZCBwYWdlTnVtYmVyKQorICAgIEdseXBoTWV0cmlj
c1BhZ2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQgcGFnZU51bWJlcikKICAgICB7CiAgICAgICAgIGlm
ICghcGFnZU51bWJlciAmJiBtX2ZpbGxlZFByaW1hcnlQYWdlKQogICAgICAgICAgICAgcmV0dXJu
ICZtX3ByaW1hcnlQYWdlOwogICAgICAgICByZXR1cm4gbG9jYXRlUGFnZVNsb3dDYXNlKHBhZ2VO
dW1iZXIpOwogICAgIH0KIAotICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQYWdlU2xvd0Nhc2Uo
dW5zaWduZWQgcGFnZU51bWJlcik7CisgICAgR2x5cGhNZXRyaWNzUGFnZSogbG9jYXRlUGFnZVNs
b3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpOwogICAgIAogICAgIGJvb2wgbV9maWxsZWRQcmlt
YXJ5UGFnZTsKLSAgICBHbHlwaFdpZHRoUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6
ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1LgotICAgIE93
blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPiA+IG1fcGFnZXM7CisgICAgR2x5cGhN
ZXRyaWNzUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhh
dCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1LgorICAgIE93blB0cjxIYXNoTWFwPGludCwg
R2x5cGhNZXRyaWNzUGFnZSo+ID4gbV9wYWdlczsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lk
dGhNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhX
aWR0aE1hcC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HbHlwaFdpZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1OCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAot
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlw
aFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikKLXsKLSAg
ICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKLSAgICBpZiAocGFnZU51bWJlciA9PSAwKSB7Ci0gICAg
ICAgIEFTU0VSVCghbV9maWxsZWRQcmltYXJ5UGFnZSk7Ci0gICAgICAgIHBhZ2UgPSAmbV9wcmlt
YXJ5UGFnZTsKLSAgICAgICAgbV9maWxsZWRQcmltYXJ5UGFnZSA9IHRydWU7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgaWYgKG1fcGFnZXMpIHsKLSAgICAgICAgICAgIGlmICgocGFnZSA9IG1fcGFn
ZXMtPmdldChwYWdlTnVtYmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2U7Ci0gICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgbV9wYWdlcy5zZXQobmV3IEhhc2hNYXA8aW50LCBHbHlw
aFdpZHRoUGFnZSo+KTsKLSAgICAgICAgcGFnZSA9IG5ldyBHbHlwaFdpZHRoUGFnZTsKLSAgICAg
ICAgbV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOwotICAgIH0KLQotICAgIC8vIEZpbGwg
aW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKLSAg
ICAgICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5cGhXaWR0aFVua25vd24pOwotCi0g
ICAgcmV0dXJuIHBhZ2U7Ci19Ci0KLX0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgR2x5cGhXaWR0aE1hcF9oCi0jZGVmaW5lIEdseXBoV2lkdGhNYXBfaAot
Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5
cGVkZWYgdW5zaWduZWQgc2hvcnQgR2x5cGg7Ci0KLWNvbnN0IGZsb2F0IGNHbHlwaFdpZHRoVW5r
bm93biA9IC0xOwotCi1jbGFzcyBHbHlwaFdpZHRoTWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsK
LXB1YmxpYzoKLSAgICBHbHlwaFdpZHRoTWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNl
KSB7IH0KLSAgICB+R2x5cGhXaWR0aE1hcCgpIHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFs
dWVzKCptX3BhZ2VzKTsgfSB9Ci0KLSAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFn
ZTo6c2l6ZSktPndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAgIH0KLQotICAgIHZvaWQgc2V0V2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCi0gICAgewotICAgICAgICBsb2Nh
dGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5zZXRXaWR0aEZvckdseXBoKGds
eXBoLCB3aWR0aCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHN0cnVjdCBHbHlwaFdpZHRoUGFn
ZSB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2l6ZSA9IDI1NjsgLy8gVXN1YWxseSBj
b3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBwYWdlLgotICAgICAgICBmbG9hdCBtX3dpZHRoc1tz
aXplXTsKLQotICAgICAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7
IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNpemVdOyB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhG
b3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBzaXplLCB3aWR0aCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgdm9pZCBzZXRXaWR0aEZvckluZGV4KHVuc2lnbmVkIGluZGV4LCBmbG9hdCB3aWR0aCkKLSAg
ICAgICAgewotICAgICAgICAgICAgbV93aWR0aHNbaW5kZXhdID0gd2lkdGg7Ci0gICAgICAgIH0K
LSAgICB9OwotICAgIAotICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQYWdlKHVuc2lnbmVkIHBh
Z2VOdW1iZXIpCi0gICAgewotICAgICAgICBpZiAoIXBhZ2VOdW1iZXIgJiYgbV9maWxsZWRQcmlt
YXJ5UGFnZSkKLSAgICAgICAgICAgIHJldHVybiAmbV9wcmltYXJ5UGFnZTsKLSAgICAgICAgcmV0
dXJuIGxvY2F0ZVBhZ2VTbG93Q2FzZShwYWdlTnVtYmVyKTsKLSAgICB9Ci0KLSAgICBHbHlwaFdp
ZHRoUGFnZSogbG9jYXRlUGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpOwotICAgIAot
ICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5UGFnZTsKLSAgICBHbHlwaFdpZHRoUGFnZSBtX3ByaW1h
cnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBp
bmRpY2VzIDAtMjU1LgotICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPiA+
IG1fcGFnZXM7Ci19OwotCi19Ci0KLSNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
Nyw5ICsxNTcsMTEgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQog
ICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpFUk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5
cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGdseXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJh
Y3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBp
ZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBtX3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2ds
eXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwot
ICAgICAgICBlbHNlCisgICAgICAgIGlmICh6ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VH
bHlwaCkgeworICAgICAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBt
ZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gMDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb01ldHJp
Y3NNYXAuc2V0TWV0cmljc0ZvckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIG1ldHJpY3MpOwor
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIExPR19FUlJPUigiRm9udCBtYXBzIFNQQUNFIGFu
ZCBaRVJPIFdJRFRIIFNQQUNFIHRvIHRoZSBzYW1lIGdseXBoLiBHbHlwaCB3aWR0aCBub3Qgb3Zl
cnJpZGRlbi4iKTsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2lt
cGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Np
bXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBACiAK
ICNpbmNsdWRlICJGb250RGF0YS5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKKyNp
bmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5o
IgotI2luY2x1ZGUgIkdseXBoV2lkdGhNYXAuaCIKICNpbmNsdWRlICJUeXBlc2V0dGluZ0ZlYXR1
cmVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBAIC01OCw5ICs1OCw5IEBAIGNsYXNz
IEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBTaGFyZWRC
dWZmZXI7CiBjbGFzcyBTVkdGb250RGF0YTsKLWNsYXNzIFdpZHRoTWFwOwogCiBlbnVtIFBpdGNo
IHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNoIH07CitlbnVtIEdseXBo
TWV0cmljc01vZGUgeyBHbHlwaEJvdW5kaW5nQm94LCBHbHlwaFdpZHRoT25seSB9OwogCiBjbGFz
cyBTaW1wbGVGb250RGF0YSA6IHB1YmxpYyBGb250RGF0YSB7CiBwdWJsaWM6CkBAIC04MSw4ICs4
MSw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB4SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVp
Z2h0OyB9CiAgICAgdW5zaWduZWQgdW5pdHNQZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQ
ZXJFbTsgfQogCi0gICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxv
YXQgcGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZv
ckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgs
IEdseXBoV2lkdGhPbmx5KS5ob3Jpem9udGFsQWR2YW5jZTsgfQorICAgIEdseXBoTWV0cmljcyBt
ZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBoTWV0cmljc01vZGUgPSBHbHlwaEJvdW5kaW5nQm94
KSBjb25zdDsKKyAgICBHbHlwaE1ldHJpY3MgcGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGgs
IEdseXBoTWV0cmljc01vZGUpIGNvbnN0OwogCiAgICAgZmxvYXQgc3BhY2VXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3BhY2VXaWR0aDsgfQogICAgIGZsb2F0IGFkanVzdGVkU3BhY2VXaWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRTcGFjZVdpZHRoOyB9CkBAIC0xNjcsNyArMTY4LDcg
QEAgcHJpdmF0ZToKICAgICB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgIHZv
aWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lkIHBsYXRmb3JtQ29tbW9uRGVzdHJveSgpOwotICAg
IGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OworICAgIEdseXBoTWV0
cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OwogI2VuZGlmCiAKICAg
ICBpbnQgbV9hc2NlbnQ7CkBAIC0xODEsNyArMTgyLDcgQEAgcHJpdmF0ZToKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEgbV9wbGF0Zm9ybURhdGE7CiAKLSAgICBtdXRhYmxlIEdseXBoV2lkdGhNYXAg
bV9nbHlwaFRvV2lkdGhNYXA7CisgICAgbXV0YWJsZSBHbHlwaE1ldHJpY3NNYXAgbV9nbHlwaFRv
TWV0cmljc01hcDsKIAogICAgIGJvb2wgbV90cmVhdEFzRml4ZWRQaXRjaDsKIApAQCAtMjM3LDE2
ICsyMzgsMTYgQEAgcHJpdmF0ZToKICAgICAKICAgICAKICNpZiAhUExBVEZPUk0oUVQpCi1BTFdB
WVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnREYXRhOjp3aWR0aEZvckdseXBoKEdseXBoIGdseXBo
KSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJp
Y3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkgY29u
c3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IG1fZ2x5cGhUb1dpZHRoTWFwLndpZHRoRm9yR2x5cGgo
Z2x5cGgpOwotICAgIGlmICh3aWR0aCAhPSBjR2x5cGhXaWR0aFVua25vd24pCi0gICAgICAgIHJl
dHVybiB3aWR0aDsKLSAgICAKLSAgICB3aWR0aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChnbHlw
aCk7Ci0gICAgbV9nbHlwaFRvV2lkdGhNYXAuc2V0V2lkdGhGb3JHbHlwaChnbHlwaCwgd2lkdGgp
OwotICAgIAotICAgIHJldHVybiB3aWR0aDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmljcyA9IG1f
Z2x5cGhUb01ldHJpY3NNYXAubWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICBpZiAoKG1ldHJp
Y3NNb2RlID09IEdseXBoV2lkdGhPbmx5ICYmIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgIT0g
Y0dseXBoU2l6ZVVua25vd24pIHx8IChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94ICYm
IG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgoKSAhPSBjR2x5cGhTaXplVW5rbm93bikpCisgICAg
ICAgIHJldHVybiBtZXRyaWNzOworCisgICAgbWV0cmljcyA9IHBsYXRmb3JtTWV0cmljc0Zvckds
eXBoKGdseXBoLCBtZXRyaWNzTW9kZSk7CisgICAgbV9nbHlwaFRvTWV0cmljc01hcC5zZXRNZXRy
aWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3MpOworCisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAj
ZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGlu
dXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udExpbnV4LmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMSw3ICs1MjEs
NyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgfQogfQog
Ci1mbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIC8qIGZhbGxiYWNrRm9udHMgKi8pIGNv
bnN0CitmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYg
cnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIC8qIGZhbGxiYWNrRm9udHMgKi8s
IEdseXBoT3ZlcmZsb3cqIC8qIGdseXBoT3ZlcmZsb3cgKi8pIGNvbnN0CiB7CiAgICAgVGV4dFJ1
bldhbGtlciB3YWxrZXIocnVuLCAwLCB0aGlzKTsKICAgICByZXR1cm4gd2Fsa2VyLndpZHRoT2ZG
dWxsUnVuKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBs
ZUZvbnREYXRhTGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6
OmRldGVybWluZVBpdGNoKCkKICAgICBtX3RyZWF0QXNGaXhlZFBpdGNoID0gcGxhdGZvcm1EYXRh
KCkuaXNGaXhlZFBpdGNoKCk7CiB9CiAKLWZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxh
dGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlIC8qIG1ldHJp
Y3NNb2RlICovKSBjb25zdAogewogICAgIFNrQVNTRVJUKHNpemVvZihnbHlwaCkgPT0gMik7ICAg
Ly8gY29tcGlsZS10aW1lIGFzc2VydAogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU3
MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsMTAgQEAgQ29tcGxleFRleHRDb250
cm9sbGVyOjpDb21wbGV4VGV4dENvbnRybwogICAgICwgbV9jaGFyYWN0ZXJJbkN1cnJlbnRHbHlw
aCgwKQogICAgICwgbV9maW5hbFJvdW5kaW5nV2lkdGgoMCkKICAgICAsIG1fZmFsbGJhY2tGb250
cyhmYWxsYmFja0ZvbnRzKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xp
bWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmlj
X2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1l
cmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQogICAgICwgbV9sYXN0Um91bmRpbmdHbHlwaCgw
KQogewogICAgIG1fcGFkZGluZyA9IG1fcnVuLnBhZGRpbmcoKTsKQEAgLTQzOCw2ICs0NDIsNyBA
QCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzCiAgICAgICAgIENHRmxv
YXQgcm91bmRlZFNwYWNlV2lkdGggPSByb3VuZENHRmxvYXQoZm9udERhdGEtPnNwYWNlV2lkdGgo
KSk7CiAgICAgICAgIGJvb2wgcm91bmRzQWR2YW5jZXMgPSAhbV9mb250LmlzUHJpbnRlckZvbnQo
KSAmJiBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkucm91bmRzR2x5cGhBZHZhbmNlcygpOwogICAg
ICAgICBib29sIGhhc0V4dHJhU3BhY2luZyA9IChtX2ZvbnQubGV0dGVyU3BhY2luZygpIHx8IG1f
Zm9udC53b3JkU3BhY2luZygpIHx8IG1fcGFkZGluZykgJiYgIW1fcnVuLnNwYWNpbmdEaXNhYmxl
ZCgpOworICAgICAgICBDR1BvaW50IGdseXBoT3JpZ2luID0gQ0dQb2ludFplcm87CiAgICAgICAg
IENGSW5kZXggbGFzdENoYXJhY3RlckluZGV4ID0gbV9ydW4ubHRyKCkgPyBudW1lcmljX2xpbWl0
czxDRkluZGV4Pjo6bWluKCkgOiBudW1lcmljX2xpbWl0czxDRkluZGV4Pjo6bWF4KCk7CiAgICAg
ICAgIGJvb2wgaXNNb25vdG9uaWMgPSB0cnVlOwogCkBAIC01NDEsNiArNTQ2LDE2IEBAIHZvaWQg
Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHMKICAgICAgICAgICAgIGFkdmFuY2Uu
aGVpZ2h0ICo9IC0xOwogICAgICAgICAgICAgbV9hZGp1c3RlZEFkdmFuY2VzLmFwcGVuZChhZHZh
bmNlKTsKICAgICAgICAgICAgIG1fYWRqdXN0ZWRHbHlwaHMuYXBwZW5kKGdseXBoKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljcyA9IGZvbnREYXRh
LT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICAgICAgZ2x5cGhNZXRyaWNzLmJvdW5k
aW5nQm94Lm1vdmUoZ2x5cGhPcmlnaW4ueCwgZ2x5cGhPcmlnaW4ueSk7CisgICAgICAgICAgICBt
X21pbkdseXBoQm91bmRpbmdCb3hYID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFgsIGdseXBo
TWV0cmljcy5ib3VuZGluZ0JveC54KCkpOworICAgICAgICAgICAgbV9tYXhHbHlwaEJvdW5kaW5n
Qm94WCA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hYLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdC
b3gucmlnaHQoKSk7CisgICAgICAgICAgICBtX21pbkdseXBoQm91bmRpbmdCb3hZID0gbWluKG1f
bWluR2x5cGhCb3VuZGluZ0JveFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC55KCkpOworICAg
ICAgICAgICAgbV9tYXhHbHlwaEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdC
b3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICAgICAgZ2x5
cGhPcmlnaW4ueCArPSBhZHZhbmNlLndpZHRoOworICAgICAgICAgICAgZ2x5cGhPcmlnaW4ueSAr
PSBhZHZhbmNlLmhlaWdodDsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgbGFzdENoYXJhY3Rl
ckluZGV4ID0gY2hhcmFjdGVySW5kZXg7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFpc01vbm90
b25pYykKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5oCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC02Miw2ICs2MiwxMSBAQCBwdWJsaWM6CiAgICAgLy8gRXh0cmEgd2lkdGggdG8gdGhlIGxlZnQg
b2YgdGhlIGxlZnRtb3N0IGdseXBoLgogICAgIGZsb2F0IGZpbmFsUm91bmRpbmdXaWR0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fZmluYWxSb3VuZGluZ1dpZHRoOyB9CiAKKyAgICBmbG9hdCBtaW5HbHlw
aEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFg7IH0K
KyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5
cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJv
dW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7IH0KKyAg
ICAKIHByaXZhdGU6CiAgICAgY2xhc3MgQ29tcGxleFRleHRSdW4gOiBwdWJsaWMgUmVmQ291bnRl
ZDxDb21wbGV4VGV4dFJ1bj4gewogICAgIHB1YmxpYzoKQEAgLTE3Myw2ICsxNzgsMTEgQEAgcHJp
dmF0ZToKIAogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0Zv
bnRzOwogCisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21h
eEdseXBoQm91bmRpbmdCb3hYOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7Cisg
ICAgZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WTsKKyAgICAKICAgICB1bnNpZ25lZCBtX2xh
c3RSb3VuZGluZ0dseXBoOwogfTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5o
IgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmxvYXRSZWN0IEZvbnQ6OnNlbGVjdGlvblJlY3RGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEludFBvaW50JiBwb2ludCwgaW50
IGgsCkBAIC04Myw5ICs4NSwxNSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGlj
c0NvbnRlCiAgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBydW4sIHN0
YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29u
c3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNr
Rm9udHMpIGNvbnN0CitmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3Qg
VGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQ29tcGxleFRl
eHRDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCB0cnVlLCBmYWxsYmFja0ZvbnRzKTsK
KyAgICBpZiAoZ2x5cGhPdmVyZmxvdykgeworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBt
YXg8aW50PihnbHlwaE92ZXJmbG93LT50b3AsIGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91
bmRpbmdCb3hZKCkpIC0gYXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20g
PSBtYXg8aW50PihnbHlwaE92ZXJmbG93LT5ib3R0b20sIGNlaWxmKGNvbnRyb2xsZXIubWF4R2x5
cGhCb3VuZGluZ0JveFkoKSkgLSBkZXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5s
ZWZ0ID0gbWF4PGludD4oMCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFgo
KSkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5yaWdodCA9IG1heDxpbnQ+KDAsIGNlaWxmKGNv
bnRyb2xsZXIubWF4R2x5cGhCb3VuZGluZ0JveFgoKSAtIGNvbnRyb2xsZXIudG90YWxXaWR0aCgp
KSk7CisgICAgfQogICAgIHJldHVybiBjb250cm9sbGVyLnRvdGFsV2lkdGgoKTsKIH0KIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFN
YWMubW0JKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
U2ltcGxlRm9udERhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNywxNyArNDA3LDI3IEBA
IHZvaWQgU2ltcGxlRm9udERhdGE6OmRldGVybWluZVBpdGNoKCkKICAgICAgICAgICAgW25hbWUg
Y2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAIk1vbm90eXBlQ29yc2l2YSJdICE9IE5TT3JkZXJlZFNh
bWU7CiB9CiAKLWZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0
cmljc0ZvckdseXBoKEdseXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlIG1ldHJpY3NNb2RlKSBj
b25zdAogewotICAgIE5TRm9udCogZm9udCA9IG1fcGxhdGZvcm1EYXRhLmZvbnQoKTsKLSAgICBm
bG9hdCBwb2ludFNpemUgPSBtX3BsYXRmb3JtRGF0YS5tX3NpemU7CisgICAgTlNGb250KiBmb250
ID0gcGxhdGZvcm1EYXRhKCkuZm9udCgpOworICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3Jt
RGF0YSgpLm1fc2l6ZTsKICAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zv
cm1NYWtlU2NhbGUocG9pbnRTaXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwot
ICAgIGlmICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMobV9wbGF0Zm9ybURhdGEuY2dG
b250KCksIGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkgeworICAgIGlmICghd2tHZXRHbHlw
aFRyYW5zZm9ybWVkQWR2YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGZvbnQsICZtLCAm
Z2x5cGgsICZhZHZhbmNlKSkgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjYWNoZSBn
bHlwaCB3aWR0aHMgZm9yICVAICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVdLCBwb2ludFNpemUpOwog
ICAgICAgICBhZHZhbmNlLndpZHRoID0gMDsKICAgICB9Ci0gICAgcmV0dXJuIGFkdmFuY2Uud2lk
dGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7Cisg
ICAgbWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRp
Y0JvbGRPZmZzZXQ7CisgICAgaWYgKG1ldHJpY3NNb2RlID09IEdseXBoQm91bmRpbmdCb3gpIHsK
KyAgICAgICAgQ0dSZWN0IGJvdW5kaW5nQm94OworICAgICAgICBDR0ZvbnRHZXRHbHlwaEJCb3hl
cyhwbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAg
ICAgICBDR0Zsb2F0IHNjYWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgICAgICBt
ZXRyaWNzLmJvdW5kaW5nQm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm91bmRpbmdC
b3gsIENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHNjYWxlLCAtc2NhbGUpKTsKKyAgICAgICAg
aWYgKG1fc3ludGhldGljQm9sZE9mZnNldCkKKyAgICAgICAgICAgIG1ldHJpY3MuYm91bmRpbmdC
b3guc2V0V2lkdGgobWV0cmljcy5ib3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xk
T2Zmc2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKICNpZiBVU0UoQVRTVUkp
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAkocmV2aXNp
b24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgIlVuaXNjcmliZUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ug
c3RkOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGJvb2wgRm9udDo6Y2FuUmV0dXJuRmFsbGJh
Y2tGb250c0ZvckNvbXBsZXhUZXh0KCkKQEAgLTg5LDEwICs5MSwxNiBAQCB2b2lkIEZvbnQ6OmRy
YXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQs
IGdseXBoQnVmZmVyLCBydW4sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250OjpmbG9hdFdp
ZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0CitmbG9hdCBGb250OjpmbG9hdFdpZHRo
Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNv
bnN0CiB7CiAgICAgVW5pc2NyaWJlQ29udHJvbGxlciBjb250cm9sbGVyKHRoaXMsIHJ1biwgZmFs
bGJhY2tGb250cyk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKHJ1bi5sZW5ndGgoKSk7CisgICAg
aWYgKGdseXBoT3ZlcmZsb3cpIHsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gbWF4PGlu
dD4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5n
Qm94WSgpKSAtIGFzY2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gbWF4
PGludD4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBoQm91
bmRpbmdCb3hZKCkpIC0gZGVzY2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9
IG1heDxpbnQ+KDAsIGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hYKCkpKTsK
KyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+cmlnaHQgPSBtYXg8aW50PigwLCBjZWlsZihjb250cm9s
bGVyLm1heEdseXBoQm91bmRpbmdCb3hYKCkgLSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSkp
OworICAgIH0KICAgICByZXR1cm4gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCk7CiB9CiAKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnRE
YXRhQ0dXaW4uY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsMTAg
KzEyNiwxMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUNoYXJXaWR0aEluCiAgICAg
fQogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBo
IGdseXBoKSBjb25zdAorR2x5cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJp
Y3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkgY29u
c3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpCi0gICAgICAgcmV0dXJuIHdp
ZHRoRm9yR0RJR2x5cGgoZ2x5cGgpOworICAgICAgIHJldHVybiBtZXRyaWNzRm9yR0RJR2x5cGgo
Z2x5cGgpOwogCiAgICAgQ0dGb250UmVmIGZvbnQgPSBtX3BsYXRmb3JtRGF0YS5jZ0ZvbnQoKTsK
ICAgICBmbG9hdCBwb2ludFNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCk7CkBAIC0xMzksOCAr
MTM5LDE4IEBAIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2wKICAgICAv
LyBGSVhNRTogTmVlZCB0byBhZGQgcmVhbCBzdXBwb3J0IGZvciBwcmludGVyIGZvbnRzLgogICAg
IGJvb2wgaXNQcmludGVyRm9udCA9IGZhbHNlOwogICAgIHdrR2V0R2x5cGhBZHZhbmNlcyhmb250
LCBtLCBtX2lzU3lzdGVtRm9udCwgaXNQcmludGVyRm9udCwgZ2x5cGgsIGFkdmFuY2UpOwotCi0g
ICAgcmV0dXJuIGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisgICAgR2x5
cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgbWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGFkdmFu
Y2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisgICAgCisgICAgaWYgKG1ldHJpY3NN
b2RlID09IEdseXBoQm91bmRpbmdCb3gpIHsKKyAgICAgICAgQ0dSZWN0IGJvdW5kaW5nQm94Owor
ICAgICAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhmb250LCAmZ2x5cGgsIDEsICZib3VuZGluZ0Jv
eCk7CisgICAgICAgIENHRmxvYXQgc2NhbGUgPSBwb2ludFNpemUgLyB1bml0c1BlckVtKCk7Cisg
ICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3ggPSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShi
b3VuZGluZ0JveCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoc2NhbGUsIC1zY2FsZSkpOwor
ICAgICAgICBpZiAobV9zeW50aGV0aWNCb2xkT2Zmc2V0KQorICAgICAgICAgICAgbWV0cmljcy5i
b3VuZGluZ0JveC5zZXRXaWR0aChtZXRyaWNzLmJvdW5kaW5nQm94LndpZHRoKCkgKyBtX3N5bnRo
ZXRpY0JvbGRPZmZzZXQpOworICAgIH0KKyAgICByZXR1cm4gbWV0cmljczsKIH0KIAogfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRh
V2luLmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OSwxNiArMTc5LDI1
IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OmRldGVybWluZVBpdGNoKCkKICAgICBSZWxlYXNlREMo
MCwgZGMpOwogfQogCi1mbG9hdCBTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHRElHbHlwaChHbHlw
aCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdE
SUdseXBoKEdseXBoIGdseXBoKSBjb25zdAogewogICAgIEhEQyBoZGMgPSBHZXREQygwKTsKICAg
ICBTZXRHcmFwaGljc01vZGUoaGRjLCBHTV9BRFZBTkNFRCk7CiAgICAgSEdESU9CSiBvbGRGb250
ID0gU2VsZWN0T2JqZWN0KGhkYywgbV9wbGF0Zm9ybURhdGEuaGZvbnQoKSk7Ci0gICAgaW50IHdp
ZHRoOwotICAgIEdldENoYXJXaWR0aEkoaGRjLCBnbHlwaCwgMSwgMCwgJndpZHRoKTsKKworICAg
IEdMWVBITUVUUklDUyBnZGlNZXRyaWNzOworICAgIHN0YXRpYyBjb25zdCBNQVQyIGlkZW50aXR5
ID0geyAwLCAxLCAgMCwgMCwgIDAsIDAsICAwLCAxIH07CisgICAgR2V0R2x5cGhPdXRsaW5lKGhk
YywgZ2x5cGgsIEdHT19NRVRSSUNTIHwgR0dPX0dMWVBIX0lOREVYLCAmZ2RpTWV0cmljcywgMCwg
MCwgJmlkZW50aXR5KTsKKwogICAgIFNlbGVjdE9iamVjdChoZGMsIG9sZEZvbnQpOwogICAgIFJl
bGVhc2VEQygwLCBoZGMpOwotICAgIHJldHVybiB3aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNl
dDsKKworICAgIEdseXBoTWV0cmljcyBnbHlwaE1ldHJpY3M7CisgICAgZ2x5cGhNZXRyaWNzLmhv
cml6b250YWxBZHZhbmNlID0gZ2RpTWV0cmljcy5nbUNlbGxJbmNYICsgbV9zeW50aGV0aWNCb2xk
T2Zmc2V0OworICAgIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChnZGlNZXRy
aWNzLmdtcHRHbHlwaE9yaWdpbi54LCAtZ2RpTWV0cmljcy5nbXB0R2x5cGhPcmlnaW4ueSwKKyAg
ICAgICAgZ2RpTWV0cmljcy5nbUJsYWNrQm94WCArIG1fc3ludGhldGljQm9sZE9mZnNldCwgZ2Rp
TWV0cmljcy5nbUJsYWNrQm94WSk7CisKKyAgICByZXR1cm4gZ2x5cGhNZXRyaWNzOwogfQogCiBT
Q1JJUFRfRk9OVFBST1BFUlRJRVMqIFNpbXBsZUZvbnREYXRhOjpzY3JpcHRGb250UHJvcGVydGll
cygpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVD
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAvLyBGSVhNRTogUmVhcmNoaXRlY3QgdGhpcyB0byBiZSBtb3JlIGxpa2Ug
V2lkdGhJdGVyYXRvciBpbiBGb250LmNwcC4gIEhhdmUgYW4gYWR2YW5jZSgpIG1ldGhvZApAQCAt
MzksMTYgKzQxLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIHRha2UgdGhlIEdseXBoQnVm
ZmVyIGFzIGFuIGFyZyBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gcG9wdWxhdGUgdGhlIGdseXBo
IGJ1ZmZlciB3aGVuCiAvLyBtZWFzdXJpbmcuCiBVbmlzY3JpYmVDb250cm9sbGVyOjpVbmlzY3Jp
YmVDb250cm9sbGVyKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKQotOiBtX2ZvbnQoKmZvbnQp
Ci0sIG1fcnVuKHJ1bikKLSwgbV9mYWxsYmFja0ZvbnRzKGZhbGxiYWNrRm9udHMpCi0sIG1fZW5k
KHJ1bi5sZW5ndGgoKSkKLSwgbV9jdXJyZW50Q2hhcmFjdGVyKDApCi0sIG1fcnVuV2lkdGhTb0Zh
cigwKQotLCBtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKGZhbHNlKQotLCBtX2luY2x1ZGVQYXJ0
aWFsR2x5cGhzKGZhbHNlKQotLCBtX29mZnNldFgoMCkKLSwgbV9vZmZzZXRQb3NpdGlvbigwKQor
ICAgIDogbV9mb250KCpmb250KQorICAgICwgbV9ydW4ocnVuKQorICAgICwgbV9mYWxsYmFja0Zv
bnRzKGZhbGxiYWNrRm9udHMpCisgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hYKG51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdCb3hYKG51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6bWluKCkpCisgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hZKG51
bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCisgICAgLCBtX21heEdseXBoQm91bmRpbmdCb3hZ
KG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWluKCkpCisgICAgLCBtX2VuZChydW4ubGVuZ3RoKCkp
CisgICAgLCBtX2N1cnJlbnRDaGFyYWN0ZXIoMCkKKyAgICAsIG1fcnVuV2lkdGhTb0ZhcigwKQor
ICAgICwgbV9jb21wdXRpbmdPZmZzZXRQb3NpdGlvbihmYWxzZSkKKyAgICAsIG1faW5jbHVkZVBh
cnRpYWxHbHlwaHMoZmFsc2UpCisgICAgLCBtX29mZnNldFgoMCkKKyAgICAsIG1fb2Zmc2V0UG9z
aXRpb24oMCkKIHsKICAgICBtX3BhZGRpbmcgPSBtX3J1bi5wYWRkaW5nKCk7CiAgICAgaWYgKCFt
X3BhZGRpbmcpCkBAIC0zNzQsNiArMzgwLDE0IEBAIGJvb2wgVW5pc2NyaWJlQ29udHJvbGxlcjo6
c2hhcGVBbmRQbGFjZUkKICAgICAgICAgICAgIGdseXBoQnVmZmVyLT5hZGQoZ2x5cGgsIGZvbnRE
YXRhLCBhZHZhbmNlLCAmc2l6ZSk7CiAgICAgICAgIH0KIAorICAgICAgICBHbHlwaE1ldHJpY3Mg
Z2x5cGhNZXRyaWNzID0gZm9udERhdGEtPm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgICAg
IGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5tb3ZlKG1fZ2x5cGhPcmlnaW4ueCgpLCBtX2dseXBo
T3JpZ2luLnkoKSk7CisgICAgICAgIG1fbWluR2x5cGhCb3VuZGluZ0JveFggPSBtaW4obV9taW5H
bHlwaEJvdW5kaW5nQm94WCwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LngoKSk7CisgICAgICAg
IG1fbWF4R2x5cGhCb3VuZGluZ0JveFggPSBtYXgobV9tYXhHbHlwaEJvdW5kaW5nQm94WCwgZ2x5
cGhNZXRyaWNzLmJvdW5kaW5nQm94LnJpZ2h0KCkpOworICAgICAgICBtX21pbkdseXBoQm91bmRp
bmdCb3hZID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFksIGdseXBoTWV0cmljcy5ib3VuZGlu
Z0JveC55KCkpOworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hZID0gbWF4KG1fbWF4R2x5
cGhCb3VuZGluZ0JveFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5ib3R0b20oKSk7CisgICAg
ICAgIG1fZ2x5cGhPcmlnaW4ubW92ZShhZHZhbmNlICsgb2Zmc2V0WCwgLW9mZnNldFkpOworCiAg
ICAgICAgIC8vIE11dGF0ZSB0aGUgZ2x5cGggYXJyYXkgdG8gY29udGFpbiBvdXIgYWx0ZXJlZCBh
ZHZhbmNlcy4KICAgICAgICAgaWYgKG1fY29tcHV0aW5nT2Zmc2V0UG9zaXRpb24pCiAgICAgICAg
ICAgICBhZHZhbmNlc1trXSA9IGFkdmFuY2U7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oCShyZXZpc2lvbiA1NzE3NCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksMTEgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMg
dGhlIHdpZHRoIG9mIGV2ZXJ5dGhpbmcgd2UndmUgY29uc3VtZWQgc28gZmFyLgogICAgIGZsb2F0
IHJ1bldpZHRoU29GYXIoKSBjb25zdCB7IHJldHVybiBtX3J1bldpZHRoU29GYXI7IH0KIAorICAg
IGZsb2F0IG1pbkdseXBoQm91bmRpbmdCb3hYKCkgY29uc3QgeyByZXR1cm4gbV9taW5HbHlwaEJv
dW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1heEdseXBoQm91bmRpbmdCb3hYKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsgfQorICAgIGZsb2F0IG1pbkdseXBoQm91bmRp
bmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9taW5HbHlwaEJvdW5kaW5nQm94WTsgfQorICAgIGZs
b2F0IG1heEdseXBoQm91bmRpbmdCb3hZKCkgY29uc3QgeyByZXR1cm4gbV9tYXhHbHlwaEJvdW5k
aW5nQm94WTsgfQorCiBwcml2YXRlOiAgICAKICAgICB2b2lkIHJlc2V0Q29udHJvbEFuZFN0YXRl
KCk7CiAKQEAgLTYxLDYgKzY2LDExIEBAIHByaXZhdGU6ICAgIAogICAgIGNvbnN0IEZvbnQmIG1f
Zm9udDsKICAgICBjb25zdCBUZXh0UnVuJiBtX3J1bjsKICAgICBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIG1fZmFsbGJhY2tGb250czsKKyAgICBGbG9hdFBvaW50IG1fZ2x5cGhPcmln
aW47CisgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21heEds
eXBoQm91bmRpbmdCb3hYOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7CisgICAg
ZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WTsKIAogICAgIFNDUklQVF9DT05UUk9MIG1fY29u
dHJvbDsKICAgICBTQ1JJUFRfU1RBVEUgbV9zdGF0ZTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUZsb3dCb3guY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODgsOCArMjg4LDEwIEBAIGludCBJbmxp
bmVGbG93Qm94OjpwbGFjZUJveGVzSG9yaXpvbnRhbGwKICAgICAgICAgICAgIGludCBsZXR0ZXJT
cGFjaW5nID0gbWluKDAsIChpbnQpcnQtPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLmxldHRl
clNwYWNpbmcoKSk7CiAgICAgICAgICAgICByaWdodExheW91dE92ZXJmbG93ID0gbWF4KHhQb3Mg
KyB0ZXh0LT53aWR0aCgpIC0gbGV0dGVyU3BhY2luZywgcmlnaHRMYXlvdXRPdmVyZmxvdyk7CiAK
LSAgICAgICAgICAgIGludCBsZWZ0R2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdzsKLSAg
ICAgICAgICAgIGludCByaWdodEdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAtIGxldHRl
clNwYWNpbmc7CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gc3Rh
dGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KGN1cnIpLT5nbHlwaE92ZXJmbG93KCk7CisKKyAgICAg
ICAgICAgIGludCBsZWZ0R2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIChnbHlwaE92
ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+bGVmdCA6IDApOworICAgICAgICAgICAgaW50IHJpZ2h0
R2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93IC0gbGV0dGVyU3BhY2luZyArIChnbHlwaE92
ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+cmlnaHQgOiAwKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgaW50IGNoaWxkT3ZlcmZsb3dMZWZ0ID0gbGVmdEdseXBoT3ZlcmZsb3c7CiAgICAgICAg
ICAgICBpbnQgY2hpbGRPdmVyZmxvd1JpZ2h0ID0gcmlnaHRHbHlwaE92ZXJmbG93OwpAQCAtNDEy
LDM1ICs0MTQsMzUgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaQog
CiAgICAgICAgIGludCBsaW5lSGVpZ2h0OwogICAgICAgICBpbnQgYmFzZWxpbmU7Ci0gICAgICAg
IFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+IHVzZWRGb250czsKKyAgICAgICAgVmVjdG9y
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIHVzZWRGb250cyA9IDA7CiAgICAgICAgIGlmIChjdXJy
LT5pc0lubGluZVRleHRCb3goKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZVRleHRC
b3gqPihjdXJyKS0+dGFrZUZhbGxiYWNrRm9udHModXNlZEZvbnRzKTsKKyAgICAgICAgICAgIHVz
ZWRGb250cyA9IHN0YXRpY19jYXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+ZmFsbGJhY2tGb250
cygpOwogCi0gICAgICAgIGlmICghdXNlZEZvbnRzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
dXNlZEZvbnRzLmFwcGVuZChjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZv
bnQoKS5wcmltYXJ5Rm9udCgpKTsKKyAgICAgICAgaWYgKHVzZWRGb250cykgeworICAgICAgICAg
ICAgdXNlZEZvbnRzLT5hcHBlbmQoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUp
LT5mb250KCkucHJpbWFyeUZvbnQoKSk7CiAgICAgICAgICAgICBMZW5ndGggcGFyZW50TGluZUhl
aWdodCA9IGN1cnItPnJlbmRlcmVyKCktPnBhcmVudCgpLT5zdHlsZSgpLT5saW5lSGVpZ2h0KCk7
CiAgICAgICAgICAgICBpZiAocGFyZW50TGluZUhlaWdodC5pc05lZ2F0aXZlKCkpIHsKICAgICAg
ICAgICAgICAgICBpbnQgYmFzZWxpbmVUb0JvdHRvbSA9IDA7CiAgICAgICAgICAgICAgICAgYmFz
ZWxpbmUgPSAwOwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZv
bnRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9
ICh1c2VkRm9udHNbaV0tPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udHNbaV0tPmFzY2VudCgpIC0g
dXNlZEZvbnRzW2ldLT5kZXNjZW50KCkpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAgYmFzZWxp
bmUgPSBtYXgoYmFzZWxpbmUsIGhhbGZMZWFkaW5nICsgdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSk7
Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0Jv
dHRvbSwgdXNlZEZvbnRzW2ldLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQo
KSAtIHVzZWRGb250c1tpXS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOworICAgICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLT5zaXplKCk7ICsraSkgeworICAg
ICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNlZEZvbnRzLT5hdChpKS0+bGlu
ZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0gdXNlZEZvbnRzLT5hdChp
KS0+ZGVzY2VudCgpKSAvIDI7CisgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJh
c2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgYmFzZWxpbmVUb0JvdHRvbSA9IG1heChiYXNlbGluZVRvQm90dG9tLCB1
c2VkRm9udHMtPmF0KGkpLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50
KCkgLSB1c2VkRm9udHMtPmF0KGkpLT5kZXNjZW50KCkgLSBoYWxmTGVhZGluZyk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBiYXNlbGluZSArIGJhc2Vs
aW5lVG9Cb3R0b207CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudExpbmVIZWlnaHQuaXNQ
ZXJjZW50KCkpIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gcGFyZW50TGluZUhlaWdo
dC5jYWxjTWluVmFsdWUoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+Zm9udFNpemUoKSk7CiAg
ICAgICAgICAgICAgICAgYmFzZWxpbmUgPSAwOwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgdXNlZEZvbnRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGludCBoYWxmTGVhZGluZyA9IChsaW5lSGVpZ2h0IC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAt
IHVzZWRGb250c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2Vs
aW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkp
OworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLT5zaXpl
KCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhl
aWdodCAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0gdXNlZEZvbnRzLT5hdChpKS0+ZGVz
Y2VudCgpKSAvIDI7CisgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5l
LCBoYWxmTGVhZGluZyArIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQg
PSBwYXJlbnRMaW5lSGVpZ2h0LnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSAw
OwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9IChsaW5lSGVp
Z2h0IC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRGb250c1tpXS0+ZGVzY2VudCgpKSAv
IDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVh
ZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOworICAgICAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgdXNlZEZvbnRzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAg
ICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250cy0+YXQoaSktPmFz
Y2VudCgpIC0gdXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpKSAvIDI7CisgICAgICAgICAgICAg
ICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250cy0+
YXQoaSktPmFzY2VudCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZSB7CkBAIC01NjIsMTAgKzU2NCwxMiBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNv
bXB1dGVWZXJ0aWNhbE92ZXJmCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAg
ICAgIGludCBzdHJva2VPdmVyZmxvdyA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocnQtPnN0eWxl
KCktPnRleHRTdHJva2VXaWR0aCgpIC8gMi4wZikpOwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBpbnQgdG9wR2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdzsKLSAgICAgICAgICAgIGlu
dCBib3R0b21HbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICAKKwor
ICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19jYXN0PElu
bGluZVRleHRCb3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAgICBpbnQg
dG9wR2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIChnbHlwaE92ZXJmbG93ID8gZ2x5
cGhPdmVyZmxvdy0+dG9wIDogMCk7CisgICAgICAgICAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxv
dyA9IHN0cm9rZU92ZXJmbG93ICsgKGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5ib3R0
b20gOiAwKTsKKwogICAgICAgICAgICAgaW50IGNoaWxkT3ZlcmZsb3dUb3AgPSB0b3BHbHlwaE92
ZXJmbG93OwogICAgICAgICAgICAgaW50IGNoaWxkT3ZlcmZsb3dCb3R0b20gPSBib3R0b21HbHlw
aE92ZXJmbG93OwogICAgICAgICAgICAgZm9yIChTaGFkb3dEYXRhKiBzaGFkb3cgPSBydC0+c3R5
bGUoKS0+dGV4dFNoYWRvdygpOyBzaGFkb3c7IHNoYWRvdyA9IHNoYWRvdy0+bmV4dCkgewpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjks
MzAgKzEwMjksNDggQEAgYm9vbCBJbmxpbmVUZXh0Qm94Ojpjb250YWluc0NhcmV0T2Zmc2V0KAog
ICAgIHJldHVybiB0cnVlOwogfQogCi10eXBlZGVmIEhhc2hNYXA8SW5saW5lVGV4dEJveCosIFZl
Y3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+ID4gRmFsbGJhY2tGb250c01hcDsKLXN0YXRpYyBG
YWxsYmFja0ZvbnRzTWFwKiBnRmFsbGJhY2tGb250c01hcDsKLQogdm9pZCBJbmxpbmVUZXh0Qm94
OjpzZXRGYWxsYmFja0ZvbnRzKGNvbnN0IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYg
ZmFsbGJhY2tGb250cykKIHsKLSAgICBpZiAoIWdGYWxsYmFja0ZvbnRzTWFwKQotICAgICAgICBn
RmFsbGJhY2tGb250c01hcCA9IG5ldyBGYWxsYmFja0ZvbnRzTWFwOworICAgIGlmICghc19nbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgc19nbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcCA9IG5ldyBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDsK
KworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IHNf
Z2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmFkZCh0aGlzLCBtYWtlX3BhaXIoVmVj
dG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4oKSwgR2x5cGhPdmVyZmxvdygpKSkuZmlyc3Q7Cisg
ICAgQVNTRVJUKGl0LT5zZWNvbmQuZmlyc3QuaXNFbXB0eSgpKTsKKyAgICBjb3B5VG9WZWN0b3Io
ZmFsbGJhY2tGb250cywgaXQtPnNlY29uZC5maXJzdCk7Cit9CisKK1ZlY3Rvcjxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBJbmxpbmVUZXh0Qm94OjpmYWxsYmFja0ZvbnRzKCkgY29uc3QKK3sKKyAg
ICBpZiAoIXNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHJldHVy
biAwOwogCi0gICAgRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBnRmFsbGJhY2tGb250
c01hcC0+c2V0KHRoaXMsIFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCkpLmZpcnN0Owot
ICAgIEFTU0VSVChpdC0+c2Vjb25kLmlzRW1wdHkoKSk7Ci0gICAgY29weVRvVmVjdG9yKGZhbGxi
YWNrRm9udHMsIGl0LT5zZWNvbmQpOworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwOjppdGVyYXRvciBpdCA9IHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmZp
bmQodGhpcyk7CisgICAgaWYgKGl0ID09IHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNN
YXAtPmVuZCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiAmaXQtPnNlY29uZC5m
aXJzdDsKIH0KIAotdm9pZCBJbmxpbmVUZXh0Qm94Ojp0YWtlRmFsbGJhY2tGb250cyhWZWN0b3I8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cykKK0lubGluZVRleHRCb3g6Okds
eXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKiBJbmxpbmVUZXh0Qm94OjpzX2dseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwID0gMDsKKwordm9pZCBJbmxpbmVUZXh0Qm94OjpzZXRH
bHlwaE92ZXJmbG93KGNvbnN0IEdseXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZsb3cpCiB7Ci0gICAg
aWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmICghc19nbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCkKKyAgICAgICAgc19nbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcCA9IG5ldyBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDsK
IAotICAgIEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gZ0ZhbGxiYWNrRm9udHNNYXAt
PmZpbmQodGhpcyk7Ci0gICAgaWYgKGl0ID09IGdGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKLSAg
ICAgICAgcmV0dXJuOworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjppdGVy
YXRvciBpdCA9IHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmFkZCh0aGlzLCBt
YWtlX3BhaXIoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4oKSwgR2x5cGhPdmVyZmxvdygp
KSkuZmlyc3Q7CisgICAgaXQtPnNlY29uZC5zZWNvbmQgPSBnbHlwaE92ZXJmbG93OworfQorCitH
bHlwaE92ZXJmbG93KiBJbmxpbmVUZXh0Qm94OjpnbHlwaE92ZXJmbG93KCkgY29uc3QKK3sKKyAg
ICBpZiAoIXNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHJldHVy
biAwOworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9
IHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmZpbmQodGhpcyk7CisgICAgaWYg
KGl0ID09IHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAtPmVuZCgpKQorICAgICAg
ICByZXR1cm4gMDsKIAotICAgIGZhbGxiYWNrRm9udHMuc3dhcChpdC0+c2Vjb25kKTsKLSAgICBn
RmFsbGJhY2tGb250c01hcC0+cmVtb3ZlKGl0KTsKKyAgICByZXR1cm4gJml0LT5zZWNvbmQuc2Vj
b25kOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5oCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsMTYgQEAgcHVibGljOgogICAgIHZv
aWQgb2Zmc2V0UnVuKGludCBkKSB7IG1fc3RhcnQgKz0gZDsgfQogCiAgICAgdm9pZCBzZXRGYWxs
YmFja0ZvbnRzKGNvbnN0IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYpOwotICAgIHZv
aWQgdGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mKTsKKyAg
ICBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cygpIGNvbnN0Owor
CisgICAgdm9pZCBzZXRHbHlwaE92ZXJmbG93KGNvbnN0IEdseXBoT3ZlcmZsb3cmKTsKKyAgICBH
bHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KCkgY29uc3Q7CisKKyAgICBzdGF0aWMgdm9pZCBj
bGVhckdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRNYXAoKQorICAgIHsKKyAgICAgICAgaWYg
KHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgICAgICBzX2dseXBo
T3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5jbGVhcigpOworICAgIH0KIAogICAgIHVuc2ln
bmVkIHNob3J0IHRydW5jYXRpb24oKSB7IHJldHVybiBtX3RydW5jYXRpb247IH0KIApAQCAtMTI5
LDYgKzEzOCw5IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgc2hvcnQgbV90cnVuY2F0aW9uOyAv
LyBXaGVyZSB0byB0cnVuY2F0ZSB3aGVuIHRleHQgb3ZlcmZsb3cgaXMgYXBwbGllZC4gIFdlIHVz
ZSBzcGVjaWFsIGNvbnN0YW50cyB0bwogICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbm90ZSBu
byB0cnVuY2F0aW9uICh0aGUgd2hvbGUgcnVuIHBhaW50cykgYW5kIGZ1bGwgdHJ1bmNhdGlvbiAo
bm90aGluZyBwYWludHMgYXQgYWxsKS4KIAorICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBJbmxp
bmVUZXh0Qm94KiwgcGFpcjxWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiwgR2x5cGhPdmVy
Zmxvdz4gPiBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDsKKyAgICBzdGF0aWMgR2x5
cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAqIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNr
Rm9udHNNYXA7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3Jv
dW5kKEdyYXBoaWNzQ29udGV4dCosIGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHlsZSosIGNvbnN0
IEZvbnQmLCBpbnQgc3RhcnRQb3MsIGludCBlbmRQb3MpOwogICAgIHZvaWQgcGFpbnREb2N1bWVu
dE1hcmtlcnMoR3JhcGhpY3NDb250ZXh0KiwgaW50IHR4LCBpbnQgdHksIFJlbmRlclN0eWxlKiwg
Y29uc3QgRm9udCYsIGJvb2wgYmFja2dyb3VuZCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQy
LDcgKzM0Miw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVIb3Jpem9udGFsUG9zaXQKICAg
ICAgICAgICAgICAgICBuZWVkc1dvcmRTcGFjaW5nID0gIWlzU3BhY2VPck5ld2xpbmUocnQtPmNo
YXJhY3RlcnMoKVtyLT5tX3N0b3AgLSAxXSkgJiYgci0+bV9zdG9wID09IGxlbmd0aDsgICAgICAg
ICAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4gZmFsbGJhY2tGb250czsKLSAgICAgICAgICAgIHItPm1fYm94LT5zZXRXaWR0aChydC0+
d2lkdGgoci0+bV9zdGFydCwgci0+bV9zdG9wIC0gci0+bV9zdGFydCwgdG90V2lkdGgsIGZpcnN0
TGluZSwgJmZhbGxiYWNrRm9udHMpKTsKKyAgICAgICAgICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhP
dmVyZmxvdzsKKyAgICAgICAgICAgIHItPm1fYm94LT5zZXRXaWR0aChydC0+d2lkdGgoci0+bV9z
dGFydCwgci0+bV9zdG9wIC0gci0+bV9zdGFydCwgdG90V2lkdGgsIGZpcnN0TGluZSwgJmZhbGxi
YWNrRm9udHMsICZnbHlwaE92ZXJmbG93KSk7CiAgICAgICAgICAgICBpZiAoIWZhbGxiYWNrRm9u
dHMuaXNFbXB0eSgpCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgICAgICAgICAgICAgJiYgIWlz
U1ZHVGV4dCgpCkBAIC0zNTEsNiArMzUyLDE0IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVI
b3Jpem9udGFsUG9zaXQKICAgICAgICAgICAgICAgICBBU1NFUlQoci0+bV9ib3gtPmlzVGV4dCgp
KTsKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oci0+bV9ib3gp
LT5zZXRGYWxsYmFja0ZvbnRzKGZhbGxiYWNrRm9udHMpOwogICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKChnbHlwaE92ZXJmbG93LnRvcCB8fCBnbHlwaE92ZXJmbG93LmJvdHRvbSB8fCBn
bHlwaE92ZXJmbG93LmxlZnQgfHwgZ2x5cGhPdmVyZmxvdy5yaWdodCkKKyNpZiBFTkFCTEUoU1ZH
KQorICAgICAgICAgICAgICAgICYmICFpc1NWR1RleHQoKQorI2VuZGlmCisgICAgICAgICAgICAp
IHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoci0+bV9ib3gtPmlzVGV4dCgpKTsKKyAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oci0+bV9ib3gpLT5zZXRHbHlwaE92
ZXJmbG93KGdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYg
KCFyLT5tX29iamVjdC0+aXNSZW5kZXJJbmxpbmUoKSkgewogICAgICAgICAgICAgUmVuZGVyQm94
KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChyLT5tX29iamVjdCk7CiAgICAgICAgICAgICByZW5k
ZXJCb3gtPmNhbGNXaWR0aCgpOwpAQCAtNzM0LDYgKzc0Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmxheW91dElubGluZUNoaWxkcmVuKGIKIAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93
IHBvc2l0aW9uIG91ciB0ZXh0IHJ1bnMgdmVydGljYWxseS4KICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uc0ZvckxpbmUobGluZUJveCwgcmVzb2x2ZXIuZmly
c3RSdW4oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBJbmxpbmVUZXh0Qm94OjpjbGVhckds
eXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRNYXAoKTsKIAogI2lmIEVOQUJMRShTVkcpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWFsIFNWRyB0ZXh0IGxheW91dCBjb2RlCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBS
ZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUqIG5vZGUsIFBhc3NSCiAgICAgICwgbV9saW5lc0Rp
cnR5KGZhbHNlKQogICAgICAsIG1fY29udGFpbnNSZXZlcnNlZFRleHQoZmFsc2UpCiAgICAgICwg
bV9pc0FsbEFTQ0lJKG1fdGV4dC5jb250YWluc09ubHlBU0NJSSgpKQotICAgICAsIG1fa25vd25O
b3RUb1VzZUZhbGxiYWNrRm9udHMoZmFsc2UpCisgICAgICwgbV9rbm93blRvSGF2ZU5vT3ZlcmZs
b3dBbmROb0ZhbGxiYWNrRm9udHMoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fdGV4dCk7CiAKQEAg
LTE0Myw3ICsxNDMsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
CiAgICAgLy8gbmVlZCB0byByZWxheW91dC4KICAgICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVu
Y2VMYXlvdXQpIHsKICAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7
Ci0gICAgICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSBmYWxzZTsKKyAgICAgICAg
bV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMgPSBmYWxzZTsKICAgICB9
CiAKICAgICBFVGV4dFRyYW5zZm9ybSBvbGRUcmFuc2Zvcm0gPSBvbGRTdHlsZSA/IG9sZFN0eWxl
LT50ZXh0VHJhbnNmb3JtKCkgOiBUVE5PTkU7CkBAIC00NjUsNyArNDY1LDcgQEAgSW50UmVjdCBS
ZW5kZXJUZXh0Ojpsb2NhbENhcmV0UmVjdChJbmxpbgogICAgIHJldHVybiBJbnRSZWN0KGxlZnQs
IHRvcCwgY2FyZXRXaWR0aCwgaGVpZ2h0KTsKIH0KIAotQUxXQVlTX0lOTElORSBpbnQgUmVuZGVy
VGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYgZiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBp
bnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBj
b25zdAorQUxXQVlTX0lOTElORSBpbnQgUmVuZGVyVGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3Qg
Rm9udCYgZiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93
KSBjb25zdAogewogICAgIGlmIChmLmlzRml4ZWRQaXRjaCgpICYmICFmLmlzU21hbGxDYXBzKCkg
JiYgbV9pc0FsbEFTQ0lJKSB7CiAgICAgICAgIGludCBtb25vc3BhY2VDaGFyYWN0ZXJXaWR0aCA9
IGYuc3BhY2VXaWR0aCgpOwpAQCAtNDk3LDcgKzQ5Nyw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJl
bmRlclRleHQ6OndpZHRoRnJvbUMKICAgICAgICAgcmV0dXJuIHc7CiAgICAgfQogCi0gICAgcmV0
dXJuIGYud2lkdGgoVGV4dFJ1bih0ZXh0KCktPmNoYXJhY3RlcnMoKSArIHN0YXJ0LCBsZW4sIGFs
bG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGYud2lkdGgoVGV4
dFJ1bih0ZXh0KCktPmNoYXJhY3RlcnMoKSArIHN0YXJ0LCBsZW4sIGFsbG93VGFicygpLCB4UG9z
KSwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dDo6
dHJpbW1lZFByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwKQEAgLTU2OCw3ICs1NjgsNyBAQCB2b2lk
IFJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKGludCBsCiAgICAgICAgICAgICAgICAgbGlu
ZWxlbisrOwogCiAgICAgICAgICAgICBpZiAobGluZWxlbikgewotICAgICAgICAgICAgICAgIGVu
ZE1heFcgPSB3aWR0aEZyb21DYWNoZShmLCBpLCBsaW5lbGVuLCBsZWFkV2lkdGggKyBlbmRNYXhX
LCAwKTsKKyAgICAgICAgICAgICAgICBlbmRNYXhXID0gd2lkdGhGcm9tQ2FjaGUoZiwgaSwgbGlu
ZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4VywgMCwgMCk7CiAgICAgICAgICAgICAgICAgaWYgKGZp
cnN0TGluZSkgewogICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmUgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICAgICAgbGVhZFdpZHRoID0gMDsKQEAgLTYxMywxNCArNjEzLDE1IEBAIGludCBS
ZW5kZXJUZXh0OjptYXhQcmVmV2lkdGgoKSBjb25zdAogdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJl
ZldpZHRocyhpbnQgbGVhZFdpZHRoKQogewogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiBmYWxsYmFja0ZvbnRzOwotICAgIGNhbGNQcmVmV2lkdGhzKGxlYWRXaWR0aCwgZmFsbGJh
Y2tGb250cyk7Ci0gICAgaWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eSgpKQotICAgICAgICBtX2tu
b3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gdHJ1ZTsKKyAgICBHbHlwaE92ZXJmbG93IGdseXBo
T3ZlcmZsb3c7CisgICAgY2FsY1ByZWZXaWR0aHMobGVhZFdpZHRoLCBmYWxsYmFja0ZvbnRzLCBn
bHlwaE92ZXJmbG93KTsKKyAgICBpZiAoZmFsbGJhY2tGb250cy5pc0VtcHR5KCkgJiYgIWdseXBo
T3ZlcmZsb3cubGVmdCAmJiAhZ2x5cGhPdmVyZmxvdy5yaWdodCAmJiAhZ2x5cGhPdmVyZmxvdy50
b3AgJiYgIWdseXBoT3ZlcmZsb3cuYm90dG9tKQorICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVy
Zmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IHRydWU7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dDo6Y2Fs
Y1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
JiBmYWxsYmFja0ZvbnRzKQordm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVh
ZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMsIEds
eXBoT3ZlcmZsb3cmIGdseXBoT3ZlcmZsb3cpCiB7Ci0gICAgQVNTRVJUKG1faGFzVGFiIHx8IHBy
ZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKTsKKyAgICBB
U1NFUlQobV9oYXNUYWIgfHwgcHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ub0hhdmVOb092
ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzKTsKIAogICAgIG1fbWluV2lkdGggPSAwOwogICAgIG1f
YmVnaW5NaW5XaWR0aCA9IDA7CkBAIC02NTAsNiArNjUxLDggQEAgdm9pZCBSZW5kZXJUZXh0Ojpj
YWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgIGludCBuZXh0QnJlYWthYmxlID0gLTE7CiAgICAg
aW50IGxhc3RXb3JkQm91bmRhcnkgPSAwOwogCisgICAgaW50IGZpcnN0R2x5cGhMZWZ0T3ZlcmZs
b3cgPSAtMTsKKwogICAgIGJvb2wgYnJlYWtOQlNQID0gc3R5bGUoKS0+YXV0b1dyYXAoKSAmJiBz
dHlsZSgpLT5uYnNwTW9kZSgpID09IFNQQUNFOwogICAgIGJvb2wgYnJlYWtBbGwgPSAoc3R5bGUo
KS0+d29yZEJyZWFrKCkgPT0gQnJlYWtBbGxXb3JkQnJlYWsgfHwgc3R5bGUoKS0+d29yZEJyZWFr
KCkgPT0gQnJlYWtXb3JkQnJlYWspICYmIHN0eWxlKCktPmF1dG9XcmFwKCk7CiAKQEAgLTY5Miw3
ICs2OTUsOSBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAgICAg
ICAgICAgICBsYXN0V29yZEJvdW5kYXJ5Kys7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfSBlbHNlIGlmIChjID09IHNvZnRIeXBoZW4pIHsKLSAgICAgICAgICAgIGN1cnJNYXhXaWR0
aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBpIC0gbGFzdFdvcmRCb3Vu
ZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cyk7CisgICAgICAg
ICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwg
aSAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNr
Rm9udHMsICZnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgIGlmIChmaXJzdEdseXBoTGVmdE92
ZXJmbG93IDwgMCkKKyAgICAgICAgICAgICAgICBmaXJzdEdseXBoTGVmdE92ZXJmbG93ID0gZ2x5
cGhPdmVyZmxvdy5sZWZ0OwogICAgICAgICAgICAgbGFzdFdvcmRCb3VuZGFyeSA9IGkgKyAxOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTcxNSwxMyArNzIwLDE1IEBAIHZv
aWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKIAogICAgICAgICBpbnQgd29y
ZExlbiA9IGogLSBpOwogICAgICAgICBpZiAod29yZExlbikgewotICAgICAgICAgICAgaW50IHcg
PSB3aWR0aEZyb21DYWNoZShmLCBpLCB3b3JkTGVuLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgs
ICZmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgIGludCB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwg
aSwgd29yZExlbiwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cywgJmds
eXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgaWYgKGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPCAw
KQorICAgICAgICAgICAgICAgIGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPSBnbHlwaE92ZXJmbG93
LmxlZnQ7CiAgICAgICAgICAgICBjdXJyTWluV2lkdGggKz0gdzsKICAgICAgICAgICAgIGlmIChi
ZXR3ZWVuV29yZHMpIHsKICAgICAgICAgICAgICAgICBpZiAobGFzdFdvcmRCb3VuZGFyeSA9PSBp
KQogICAgICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gdzsKICAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3aWR0aEZyb21DYWNo
ZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBqIC0gbGFzdFdvcmRCb3VuZGFyeSwgbGVhZFdpZHRoICsg
Y3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cyk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJN
YXhXaWR0aCArPSB3aWR0aEZyb21DYWNoZShmLCBsYXN0V29yZEJvdW5kYXJ5LCBqIC0gbGFzdFdv
cmRCb3VuZGFyeSwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cywgJmds
eXBoT3ZlcmZsb3cpOwogICAgICAgICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkgPSBqOwogICAg
ICAgICAgICAgfQogCkBAIC03NzQsNiArNzgxLDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJl
ZldpZHRocyhpbnQgbGVhZAogICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCA9IDA7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSBmLndpZHRo
KFRleHRSdW4odHh0ICsgaSwgMSwgYWxsb3dUYWJzKCksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0
aCkpOworICAgICAgICAgICAgICAgIGdseXBoT3ZlcmZsb3cucmlnaHQgPSAwOwogICAgICAgICAg
ICAgICAgIG5lZWRzV29yZFNwYWNpbmcgPSBpc1NwYWNlICYmICFwcmV2aW91c0NoYXJhY3Rlcklz
U3BhY2UgJiYgaSA9PSBsZW4gLSAxOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJU
KGxhc3RXb3JkQm91bmRhcnkgPT0gaSk7CkBAIC03ODEsNiArNzg5LDkgQEAgdm9pZCBSZW5kZXJU
ZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYg
KGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3cgPiAwKQorICAgICAgICBnbHlwaE92ZXJmbG93LmxlZnQg
PSBmaXJzdEdseXBoTGVmdE92ZXJmbG93OworCiAgICAgaWYgKChuZWVkc1dvcmRTcGFjaW5nICYm
IGxlbiA+IDEpIHx8IChpZ25vcmluZ1NwYWNlcyAmJiAhZmlyc3RXb3JkKSkKICAgICAgICAgY3Vy
ck1heFdpZHRoICs9IHdvcmRTcGFjaW5nOwogCkBAIC0xMDU2LDcgKzEwNjcsNyBAQCB2b2lkIFJl
bmRlclRleHQ6OnNldFRleHQoUGFzc1JlZlB0cjxTdHJpCiAKICAgICBzZXRUZXh0SW50ZXJuYWwo
dGV4dCk7CiAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Ci0gICAgbV9r
bm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9IGZhbHNlOworICAgIG1fa25vd25Ub0hhdmVOb092
ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzID0gZmFsc2U7CiAgICAgCiAgICAgQVhPYmplY3RDYWNo
ZSogYXhPYmplY3RDYWNoZSA9IGRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKTsKICAgICBpZiAo
YXhPYmplY3RDYWNoZS0+YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKQEAgLTExMjIsNyArMTEzMyw3
IEBAIHZvaWQgUmVuZGVyVGV4dDo6cG9zaXRpb25MaW5lQm94KElubGluZUIKICAgICBtX2NvbnRh
aW5zUmV2ZXJzZWRUZXh0IHw9IHMtPmRpcmVjdGlvbigpID09IFJUTDsKIH0KIAotdW5zaWduZWQg
UmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywg
Ym9vbCBmaXJzdExpbmUsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cykgY29uc3QKK3Vuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cp
IGNvbnN0CiB7CiAgICAgaWYgKGZyb20gPj0gdGV4dExlbmd0aCgpKQogICAgICAgICByZXR1cm4g
MDsKQEAgLTExMzAsMTAgKzExNDEsMTAgQEAgdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5z
aWduZWQgZnJvbQogICAgIGlmIChmcm9tICsgbGVuID4gdGV4dExlbmd0aCgpKQogICAgICAgICBs
ZW4gPSB0ZXh0TGVuZ3RoKCkgLSBmcm9tOwogCi0gICAgcmV0dXJuIHdpZHRoKGZyb20sIGxlbiwg
c3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICByZXR1
cm4gd2lkdGgoZnJvbSwgbGVuLCBzdHlsZShmaXJzdExpbmUpLT5mb250KCksIHhQb3MsIGZhbGxi
YWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogfQogCi11bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0
aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmIGYsIGludCB4UG9zLCBI
YXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0Cit1bnNp
Z25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0
IEZvbnQmIGYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxi
YWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGZyb20gKyBsZW4gPD0gdGV4dExlbmd0aCgpKTsKICAgICBpZiAoIWNoYXJhY3RlcnMoKSkK
QEAgLTExNDMsMTggKzExNTQsMTkgQEAgdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWdu
ZWQgZnJvbQogICAgIGlmICgmZiA9PSAmc3R5bGUoKS0+Zm9udCgpKSB7CiAgICAgICAgIGlmICgh
c3R5bGUoKS0+cHJlc2VydmVOZXdsaW5lKCkgJiYgIWZyb20gJiYgbGVuID09IHRleHRMZW5ndGgo
KSkgewogICAgICAgICAgICAgaWYgKGZhbGxiYWNrRm9udHMpIHsKLSAgICAgICAgICAgICAgICBp
ZiAocHJlZldpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ob3RUb1VzZUZhbGxiYWNrRm9udHMpIHsK
LSAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxSZW5kZXJUZXh0Kj4odGhpcyktPmNhbGNQ
cmVmV2lkdGhzKDAsICpmYWxsYmFja0ZvbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZh
bGxiYWNrRm9udHMtPmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fa25vd25O
b3RUb1VzZUZhbGxiYWNrRm9udHMgPSB0cnVlOworICAgICAgICAgICAgICAgIEFTU0VSVChnbHlw
aE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICBpZiAocHJlZldpZHRoc0RpcnR5KCkgfHwgIW1f
a25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRoaXMpLT5jYWxjUHJlZldpZHRocygwLCAq
ZmFsbGJhY2tGb250cywgKmdseXBoT3ZlcmZsb3cpOworICAgICAgICAgICAgICAgICAgICBpZiAo
ZmFsbGJhY2tGb250cy0+aXNFbXB0eSgpICYmICFnbHlwaE92ZXJmbG93LT5sZWZ0ICYmICFnbHlw
aE92ZXJmbG93LT5yaWdodCAmJiAhZ2x5cGhPdmVyZmxvdy0+dG9wICYmICFnbHlwaE92ZXJmbG93
LT5ib3R0b20pCisgICAgICAgICAgICAgICAgICAgICAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxv
d0FuZE5vRmFsbGJhY2tGb250cyA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIHcgPSBtX21heFdpZHRoOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAg
ICAgdyA9IG1heFByZWZXaWR0aCgpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHcgPSB3
aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMpOworICAgICAg
ICAgICAgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGZyb20sIGxlbiwgeFBvcywgZmFsbGJhY2tGb250
cywgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfSBlbHNlCi0gICAgICAgIHcgPSBmLndpZHRoKFRleHRS
dW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBmcm9tLCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwg
ZmFsbGJhY2tGb250cyk7CisgICAgICAgIHcgPSBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFy
YWN0ZXJzKCkgKyBmcm9tLCBsZW4sIGFsbG93VGFicygpLCB4UG9zKSwgZmFsbGJhY2tGb250cywg
Z2x5cGhPdmVyZmxvdyk7CiAKICAgICByZXR1cm4gdzsKIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmgJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Nyw4ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0
ZXh0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Lmxlbmd0aCgpOyB9IC8vIG5vbiB2aXJ0
dWFsIGltcGxlbWVudGF0aW9uIG9mIGxlbmd0aCgpCiAgICAgdm9pZCBwb3NpdGlvbkxpbmVCb3go
SW5saW5lQm94Kik7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIGxlbiwgY29uc3QgRm9udCYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdDsKLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmly
c3RMaW5lID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cyA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29u
c3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBs
ZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0
OwogCiAgICAgdmlydHVhbCBpbnQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jv
b3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OwogCkBAIC0xMzMsNyArMTMzLDcgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgSW5saW5lVGV4dEJveCogY3JlYXRlVGV4dEJveCgpOyAvLyBTdWJjbGFz
c2VkIGJ5IFNWRy4KIAogcHJpdmF0ZToKLSAgICB2b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFk
V2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cyk7Cisg
ICAgdm9pZCBjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cmKTsKIAogICAgIC8vIE1h
a2UgbGVuZ3RoKCkgcHJpdmF0ZSBzbyB0aGF0IGNhbGxlcnMgdGhhdCBoYXZlIGEgUmVuZGVyVGV4
dCoKICAgICAvLyB3aWxsIHVzZSB0aGUgbW9yZSBlZmZpY2llbnQgdGV4dExlbmd0aCgpIGluc3Rl
YWQsIHdoaWxlCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRl
VGV4dEJveGVzKCk7CiAgICAgYm9vbCBjb250YWluc09ubHlXaGl0ZXNwYWNlKHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIGxlbikgY29uc3Q7Ci0gICAgaW50IHdpZHRoRnJvbUNhY2hlKGNvbnN0IEZv
bnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0OworICAgIGludCB3aWR0aEZyb21DYWNoZShj
b25zdCBGb250JiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KikgY29uc3Q7CiAg
ICAgYm9vbCBpc0FsbEFTQ0lJKCkgY29uc3QgeyByZXR1cm4gbV9pc0FsbEFTQ0lJOyB9CiAKICAg
ICBpbnQgbV9taW5XaWR0aDsgLy8gaGVyZSB0byBtaW5pbWl6ZSBwYWRkaW5nIGluIDY0LWJpdC4K
QEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gb3IgcmVtb3ZlZCkuCiAgICAgYm9vbCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0IDogMTsKICAg
ICBib29sIG1faXNBbGxBU0NJSSA6IDE7Ci0gICAgbXV0YWJsZSBib29sIG1fa25vd25Ob3RUb1Vz
ZUZhbGxiYWNrRm9udHMgOiAxOworICAgIG11dGFibGUgYm9vbCBtX2tub3duVG9IYXZlTm9PdmVy
Zmxvd0FuZE5vRmFsbGJhY2tGb250cyA6IDE7CiB9OwogCiBpbmxpbmUgUmVuZGVyVGV4dCogdG9S
ZW5kZXJUZXh0KFJlbmRlck9iamVjdCogb2JqZWN0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTcxNzQp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBA
QAorMjAxMC0wNC0wNiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRleHQgcmVwYWludGlu
ZyBkb2VzIG5vdCBhY2NvdW50IGZvciBnbHlwaHMgd2hpY2ggZHJhdyBvdXRzaWRlIHRoZSB0eXBv
Z3JhcGhpYyBib3VuZHMgb2YgdGhlIGZvbnQgKDYyNzQpLgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNjY0OTczND4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Mjc0PgorCisgICAgICAgICogZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQt
ZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTA0LTA2ICBBbmRyZXcgU2NoZXJrdXMgIDxzY2hl
cmt1c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbWVkaWEgdGVzdCBleHBl
Y3RhdGlvbnMgdHdlYWsuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1k
aWFjcml0aWNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3N0
YWNrZWQtZGlhY3JpdGljcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisg
ICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICBkaXYudGVzdCB7
IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAxMjBweDsgYm9yZGVyOiAxcHggc29saWQgYmx1ZTsgcGFk
ZGluZzogMTBweDsgfQorPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlcGFp
bnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICAg
ICB7CisgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGFja2VkJykuaW5uZXJU
ZXh0ID0gIiI7CisgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5SZXBhaW50VGVzdCgpOyI+Cis8cD48Yj5CVUcgSUQ6PC9iPiA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NCI+IEJ1Z3ppbGxhIGJ1ZyA2Mjc0
PC9hPlRleHQgcmVwYWludGluZyBkb2VzIG5vdCBhY2NvdW50IGZvciBnbHlwaHMgd2hpY2ggZHJh
dyBvdXRzaWRlIHRoZSB0eXBvZ3JhcGhpYyBib3VuZHMgb2YgdGhlIGZvbnQuPC9wPgorCis8cCBp
ZD0ic3VjY2VzcyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cGFsZWdyZWVuOyBwYWRkaW5nOjNw
eDsiPjxiPlRFU1QgUEFTUzo8L2I+IAorVGhlIHRleHQgd2lsbCBlbnRpcmVseSBkaXNhcHBlYXIu
Cis8L3A+CisKKzxwIGlkPSJmYWlsdXJlIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojRkYzMzAw
OyBwYWRkaW5nOjNweDsiPjxiPlRFU1QgRkFJTDo8L2I+ICAKK01vc3Qgb2YgdGhlIHRleHQgd2ls
bCBiZSBnb25lLCBidXQgc29tZSBhcnRpZmFjdHMgd2lsbCBiZSBsZWZ0IGJlaGluZCBhdCB0aGUg
dG9wIG9mIHRoZSBwYWdlLgorPC9wPgorCis8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICA8ZGl2IHN0
eWxlPSJmb250LXNpemU6IDM2cHg7IiBpZD0ic3RhY2tlZCI+JiN4MUVBNjsmI3gxRUE0OyYjeDFF
QUE7JiN4MUVBODsmI3gxRUIwOzwvZGl2PgorPC9kaXY+Cis8YnI+CisKKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1k
aWFjcml0aWNzLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLmNoZWNr
c3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWlu
dC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEgQEAKK2NlOWJlODZjZmI5NDMzYTY0ZmM2NWY4NzEwYjAyMDU2ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWlu
dC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgzMTYKKyAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDMxNgorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDE2KSBzaXplIDc4NHgyOTIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXpl
IDc4NHgzNgorICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNpemUgNjJ4MTgKKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2MngxOAorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjI6ICJCVUcgSUQ6IgorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDYyLDApIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg2
MiwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXpl
IDExN3gxOCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDY2LDApIHNpemUgMTE3eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjYsMCkgd2lkdGgg
MTE3OiAiQnVnemlsbGEgYnVnIDYyNzQiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MTgzLDApIHNpemUgNzc3eDM2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE4MywwKSB3aWR0aCA1
OTQ6ICJUZXh0IHJlcGFpbnRpbmcgZG9lcyBub3QgYWNjb3VudCBmb3IgZ2x5cGhzIHdoaWNoIGRy
YXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBoaWMgYm91bmRzIG9mIHRoZSIKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwxOCkgd2lkdGggMjk6ICJmb250LiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCw1Mikgc2l6ZSA3ODR4MjQgW2JnY29sb3I9Izk4RkI5OF0KKyAgICAgICAgUmVuZGVySW5s
aW5lIHtCfSBhdCAoMCwwKSBzaXplIDkxeDE4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgzLDMpIHNpemUgOTF4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDMpIHdpZHRo
IDkxOiAiVEVTVCBQQVNTOiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg5NCwzKSBz
aXplIDIwM3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg5NCwzKSB3aWR0aCA0OiAiICIKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoOTgsMykgd2lkdGggMTk5OiAiVGhlIHRleHQgd2lsbCBlbnRp
cmVseSBkaXNhcHBlYXIuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDkyKSBzaXplIDc4
NHgyNCBbYmdjb2xvcj0jRkYzMzAwXQorICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDAp
IHNpemUgOTB4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMykgc2l6ZSA5
MHgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMykgd2lkdGggOTA6ICJURVNUIEZBSUw6
IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDkzLDMpIHNpemUgNTYxeDE4CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDkzLDMpIHdpZHRoIDQ6ICIgIgorICAgICAgICAgIHRleHQgcnVu
IGF0ICg5NywzKSB3aWR0aCA1NTc6ICJNb3N0IG9mIHRoZSB0ZXh0IHdpbGwgYmUgZ29uZSwgYnV0
IHNvbWUgYXJ0aWZhY3RzIHdpbGwgYmUgbGVmdCBiZWhpbmQgYXQgdGhlIHRvcCBvZiB0aGUgcGFn
ZS4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMzIpIHNpemUgMjIyeDE0MiBbYm9y
ZGVyOiAoMXB4IHNvbGlkICMwMDAwRkYpXQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MTEsMTEpIHNpemUgMjAweDAKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDI3
NCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4MTgK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFj
cml0aWNzLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtl
ZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9y
ZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDog
c3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dv
QUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQzdtbERRMUJKUTBNZ1VISnZabWxz
WlFBQWVBR0YKVk05ckUwRVUvalp1cWRBaUNGcHJEcko0a0NKSldhdG9SZFEyL1JGaWF3emJIN1pG
a0dRelNkWnVOdXZ1SnJXbGlPVGkwU3JlUmUyaApCLytBSG5yd1pDOUtoVnBGS042cktHS2hGeTN4
elc1TXRxWHF3TTUrODk0MzczMXZkdDhBRFhMU05QV0FCT1FOeDFLaUVXbHNmRUpxCi9JZ0FqcUlK
UVRRbFZkdnNUaVFHUVlOeitYdm4ySG9QZ1Z0V3czdjdkN0ozclpyU3Rwb0hoUDFBNEVlYTJTcXc3
eGR4Q2xrU0FvZzgKMzZFcHgzUUkzK1BZOHV5UE9VNTVlTUcxRHlzOXhGa2lmRUExTGM1L1RiaFR6
U1hUUUlOSU9KVDFjVkkrbk5lTGxOY2RCMmx1WnNiSQpFTDFQa0thN3pPNnJZcUdjVHZZT2tMMmQ5
SDVPczk0K3dpSENDeG10UDBhNGpaNzFqTlUvNG1IaHBPYkVoajBjR0RYMCtHQVZ0eHFwCitEWENG
RjhRVFNlaVZISFpMZzN4bUs3OVZ2SktnbkNRT01wa1lZQnpXa2hQMTB4dStMcUhCWDBtMXhPdjRu
ZFdVZUY1anhObjN0VGQKNzBYYUFxOHdEaDBNR2d5YURVaFFFRVVFWVppd1VFQ0dQQm94TkxKeVB5
T3JCaHVUZXpKMUpHcTdkR0pFc1VGN050dzl0MUdrM1R6KwpLQ0p4bEVPMUNKTDhRZjRxcjhsUDVY
bjV5MXl3MkZiM2xLMmJtcnJ5NER2RjVabTVHaDdYMDhqamMwMWVmSlhVZHBOWFI1YXNlWHE4Cm11
d2FQK3hYbHpIbWdqV1B4SE93Ky9FdFg1WE1seW1NRk1YalZmUHFTNFIxV2pFMzM1OXNmenM5NGk3
UExyWFdjNjJKaXpkV201ZG4KL1dwSSsrNnF2SlBtVmZsUFh2WHgvR2ZOeEdQaUtURW1kb3JuSVlt
WHhTN3hrdGhMcXd2aVlHM0hDSjJWaGluU2JaSDZKTlZnWUpxOAo5UzlkUDF0NHZVWi9EUFZSbEJu
TTBsU0o5My9DS21RMG5ia09iL3FQMjhmOEYrVDNpdWVmS0FJdmJPREltYnB0VTNIdkVLRmxwVzV6
CnJnSVh2OUY5OExadWE2TitPUHdFV0R5ckZxMVNOWjhndkFFY2RvZDZIdWdwbU5PV2xzMDVVb2Nz
bjVPNjZjcGlVc3hRMjBOU1V0Y2wKMTJWTEZyT1pWV0xwZHRpWjB4MXVIS0U1UXZmRXAwcGxrL3F2
OFJHdy9iQlMrZm1zVXRsK1RocldnWmY2YjhDOC9VWEFlSXVKQUFBZwpBRWxFUVZSNEFlemRaN2Nr
eDMwbjZHd0Q3eDNoQ085SmtBU05hQ1dLWEhGMFZtZTBYSjdWQytqajZPTU16NXg1TTNPMFJ5dnRq
SFpFCmtVT0tJdWdKQW9RbnZQZTJ6ZVl2YjBkM2RxSXFNK3JtdmJlcnE1OGdHK1VpSXlPZWlNeUtm
NXE2Kys2Ly8vNmpqVVNBQUFFQ0JBZ1EKSUVDQUFJRTlFTmkvQit1d0NnSUVDQkFnUUlBQUFRSUVD
SFFDQWhBRGdRQUJBZ1FJRUNCQWdBQ0JQUk1RZ093WnRSVVJJRUNBQUFFQwpCQWdRSUNBQU1RWUlF
Q0JBZ0FBQkFnUUlFTmd6QVFISW5sRmJFUUVDQkFnUUlFQ0FBQUVDQWhCamdBQUJBZ1FJRUNCQWdB
Q0JQUk1RCmdPd1p0UlVSSUVDQUFBRUNCQWdRSUNBQU1RWUlFQ0JBZ0FBQkFnUUlFTmd6QVFISW5s
RmJFUUVDQkFnUUlFQ0FBQUVDQWhCamdBQUIKQWdRSUVDQkFnQUNCUFJNUWdPd1p0UlVSSUVDQUFB
RUNCQWdRSUNBQU1RWUlFQ0JBZ0FBQkFnUUlFTmd6QVFISW5sRmJFUUVDQkFnUQpJRUNBQUFFQ0Fo
QmpnQUFCQWdRSUVDQkFnQUNCUFJNUWdPd1p0UlVSSUVDQUFBRUNCQWdRSUNBQU1RWUlFQ0JBZ0FB
QkFnUUlFTmd6CkFRSElubEZiRVFFQ0JBZ1FJRUNBQUFFQ2F4ZUFmUERCQjgzYmI3L2RIRDE2OUhq
dnZQLysrOGVmZTlJMEgzeHd0SG5yclNQSEtRNGYKUHRxOC9QTHkxOGN6Vmp6NTZLT2p6YnZ2bnJD
dldHUkhzMlQ5YWN1aFF5ZlhJVzNPdjducFZMWnRidDEzWXZsc1gyKzk5ZGEyaTVxNwovS29yUG5M
a1NQUG1tMit1dXBqOHAwZ2crK29YWG5paDNWWS8ySk1hSEQ1OHVOMWZ2THhqNi9yb280L2EvZCs3
TzFaZWJVRlQ2MTFsCnU1c3FhNnBPWjhvMk4yVzZrdzV6KzJTcXp6YnA4eW1ycVg0YnM1Z3FlMnpa
M2Zoc0o4ZllvdnF0c2o4K0ZUWUhGMVc2Lzk2VFR6N1oKL1ByWHYyN2VlZWVkN3UxUGZPSVR6WG5u
bmRlODhjWWJ6U1dYWE5MY2UrKzl6WVVYWHRoOTl0aGpqelcvK2Mxdm12ZmVlNjk3ZmNVVgpWelIz
MzMxMzg4bFBmcklMS243MXExODFmL3pqSDV2cnJydXUrZEtYdnRTVms0enBoTi8vL3ZmTjQ0OC8z
bjEyOGNVWE42Ky8vbnEzCnpBVVhYTkNjZmZiWnpXYy8rOW11elA1L1VyZmYvdmEzeHlkVTU1OS9m
blBQUGZjMCsvZnZiN0t1OGlWNDVaVlhkblZORzFMMzVMbm8Kb292NlJVMCtmKzY1STgxRER4MXV2
MXlQTm0zMW1zc3UyOS9zMjlkMC95NjlkRjl6KyszNzIvVzJiK3hCK3MxdkRqY3Z2bmlrK2F1LwpP
cnQ1NVpVanpVOS9lcWhKalBhOTczMzg5U3JWZWVTUnc4M1BmMzY0dFQ3UTNIWFhnVlVXblozM2pU
ZU90T1BzY1BPSlQreHZicmhoCmYzUHc0SmJscTY4ZWFmc3k3VDNhQnFWTis5bSs1aXRmT2RnY09M
Q3ZIVGRIbS8vNlh6OXErL25qcS8vdWQ4OXErL3JrL25qKytTUE4KajM5OHFIUEtFdi95TC8vU1RW
NHlUczg2NjZ4dWJHWU1YWDc1NWEzbis5MW5YLzd5bDV0YmJybmw0eXM0VGQvSjl2bmlpeSsyWStl
dgp0dFdDdWN1dnN0SlhYbm1sSGRzLzdmcm1MLzdpTDFaWlZONVRJUERvbzQ4MkNRaXkzLzN4ajMv
Yy9QVmYvM1c3bmU3ZWZxU01qMnlyCjMvdmU5MmEzT044bkdXK2YrdFNudW4rekM2d3NvR2E5dGR0
ZFRWbGoxU3FtMlI5dStqWTNacnFURG5QN1pLeS9OdTJ6R3F1eGZodnoKZU9TUlI5cjV6Yys3dWVS
ZGQ5MDFsblZQUHR2Sk1iYW93cXZzajJ2Y0Y2MWo3bnVUQWNoTk45M1VKREw2MmM5KzFxM3JNNS81
VEpNSgovUzkvK2NzdWFIajY2YWViNzM3M3UxMlFjT3V0dDNhQnl1OSs5N3N1N3hlKzhJVnVNcGNY
Q1ZLKy92V3ZOMy8vOTMvZmZPMXJYMnNuCm1GdXJQblRvVVBNLy8rZi83Q1o3Zi9xbmY5cGNmLzMx
M2JMNXo3UFBQdHY4OEljL2JDZkRpd2RMNnBhVUw3dWtCRHUzMzM1Nzl6eEgKc1JLY0pQM0puL3hK
R3pSYzNMWGpILy94SDV0Z0o2QlpWbTYzME9BLzExNjd2LzB5YmRvQTVGQno2NjBuSnVpdnZYYWsr
ZS8vL1ZBYgprQjF0MXpQSk9TaDFleS92dmZkQTgrR0hXeWV2cnJoaWYzUHp6UWZhdmpqY0ZUWjh2
Y29hYnIvOVFCdEFicFd6eW5Kejh6NzY2T0htCmQ3ODczSHo3MndmYmNYTGlwRnpPaGlRb3VlT08v
VzNRc2IvNXd4OE9OdzgrZUtUdHk4TnQ0SHV3RFJpT2RKOWRjODFXMzZRZTZZZUgKSHo3eXNlRGp3
dytQZG9GTTc4UmFGL2orNVYvKzVmRUErai8vNS8vY0JrQ2ZhTmYxbGE1SkR6MzBVSmRuYnZ2S1Vk
cXJyNzU2YmxHegpsODhCZ3c4Ly9MQzZuR0hkVjEyK2VrVUxNaVl3dk9xcXEwNjdNeUJEc3dWTk8r
M2VtbXBUOXVQNWN2K2J2L21iOXFETXZ1YmFhNi9kCjFlQWpnQmtmTjk5OGMvYzl0Qk9nK1Q0cDN4
azdVVjV0R1RYcnJkM3Vhc29hcTlmcHVzMzEyelExVmt2ZU1kTzVEdjA2ek8yVFV0L3kKMkMrN3ZM
Y3BqelZXWS8wMjVwQzVZWUtYZFVseng5aFlPMnIyeC8xeFZPTSt0cjd0Zm5aaXRqZFN3am5ubkhQ
ODAzeTVKRjE2NmFYZApZeHFSc3hVbDlmT2VlKzY1NWUzamp6bnpVSUtQdkprekZUbUZuZ0NoSDN6
a3M1d3B5V0FiU3prN1VsTC9lWTdnbEpReklrbDVMOEZJCnpyajg0aGUvNkM0VktIbHFIa3VSeHdp
NlJYSW01UExMOTNWbkpHcktHT2JwWDJvMi9Helo2M1BPMmRlZXdUblJkV2xldjA3RDE2V2MKbkRH
WVNzdVduVnB1K0hsdHUxNTY2VWdiM0I1dWc5S1RnNCtVOThvclI1c3ZmL2xnT3k0T2RBSEZaejV6
b0EwV21uYThiTFhqeWl2MwpONS8rOU1GMklySy9IWTliLzk1NjYyaWIvK1F6SHlrckFjNXR0NTB3
eTNzSlFNdlp1N3dlcHR0dXU2MGJsOFAzVjNtZHNmYVRuL3lrCkcrT3JMRmViZDh3NTZ4Nm1iSisx
Wi84VzFYMlY1ZnZySHF0blAxOTVYdkpuMnkzN25QTFozTWRTOXR4eUZpMi95R3hSdnJ5M3FIK1cK
NVQyVjc5ZTBLZDhCeVZmNktnZXBkakl0NjdNNTQyTlJtZVc3WXFydWk1YWRXbWJzODZuMXJyTGRU
WlcxckI2bFRhdVlydHNZSGh1cgpwWDJsL2N0TVM3NVZIRXFaZVZ4VWgrMzJTYi9jWldVUDg0eTlM
bTBieTdQc3MrMHNPelUrRnBVNVpiV3MzNWJWdS8vK2R2dTBYOFpPClBDL3RYbGFmOHZsMjF6VzFQ
OTdOTWJwS25iZDl5TDVjZDVzSlhJNVNiaWZsMVBrZi92Q0hidEZsUjRkelZtTW5yd0cvN0xMTGps
YzEKWjJyS2VwOS8vdm5tMy8vOTM3c3pLRmxuYmNxOUNtKytlYlE5SzNKaWN2dlVVMXVYTXQxeno0
SG16anNQdEdkY0RuZG5GcTYrZW45Nwo2Vms1ODNPMFBZdDB1RW1NOXRKTFI5c3pTRnVYZFYxNTVi
NTJVcnl2dlR6b1VIdW1hVjhickRYdFdhV2ozWkg5Kys0NzJFNjA5elZQClBIR2tlZWFaSTgxM3Zu
TWl5QnFyN3dzdkhHbGVmWFZyMHA3bHZ2U2xBOTJFZmRreWFkTXZmbkdvVzgvNTUrOXJ2dnJWQSsx
RWZIOHoKdDExWFhYWENxS3o3Zi8ydlEyMEFzYSs3dk9yaGh3KzNsOHJ0YS90a0sxL09iUFJUSmpj
WFg3enYrTm1OQ3k3NGVLRHh6RE5IdS9yMgpsNHQveXNvWmxYN0tVZHF4bEVDNWpPMk0xUWNmZkxC
NTdiWFgydnRURGpVNXU1ZEoxcXV2dnRvRjBibnM4SXRmL0dJWFhQL2J2LzFiCkY5emswcTJISDM2
NDdhdG51c3NFYzI5VHlWUFdtK1Z6cWpRNzFhd3ZaMTIrK2Mxdk5ybjBjTkg2TWs1enFXSzJ1K3hF
OGp3N3NWd3EKZHMwMTEzVEY1aHI4bEp1VWRlZHl4eHd3U0IyZmVPS0o3cjN2Zk9jN1hRQ2VkZWV5
c3h3QXlQYVFzckwrbEQrcys2Yy8vZW51TXJXVQpXYk44MWgrcm5DM053WWlYWG5xcE8xT2FiVEIy
eFRiNVNrcitIQnpJcFpLcGJ5NzE3Ri9HazdPeE9XaVJlc1l6VGptYldRNXFMT3VuCmxQL1VVMDkx
WjM5U1JtbERXVzk1ak4yWVNmS04xV0ZvTnV6dkxMK3NmL0paMnA5K3lNR1NqTFZjRGxqMlIyT2Zq
ZFVwN2M3WmlWeDYKZXVlZGQzWm5nSE1rTVB1K2pJMnBOaysxS1Y0NUU1NHZ6WndwVDMvZGQ5OTlv
MDdMeG4yT0N2YlRLdU1uWjdaamx6R1I5WmRMZWJOZgp6NW43MUc5cTJ5bnJ6bVhIeVp0KytMTS8r
N1BqQnlwcXhsQXNjaWxYeG5lMnk0eTFqT21NKzR5SEhBRElkcDU4My9yV3QwNGEzNHZXCk85eHVV
OGV4c1REVmh2SjVlVXhaeTdhNVpmMlVaUmJ0WSthMHZkUm56bGhlTkZaekpVWE8rdmEzKzJXbXl4
eFN0N0Y5UzZsN0hoZlYKb1h5K3FIL3oyWGJMemhqTFdKb3o1c2U4VTdleGJURGIrcUx2cjJYam8r
YjdLK3RNV21TMXJOK1c3VE8zU2pyNXYyVzg1N3N3MzMxZgovZXBYdTMxRmNvMVp6TjJQcHZ5eTdt
WGZielg3bDZsNkx0c2ZaN21TZG5PTWxuWFVQSjQ4dzZ0WUl0ZVBaMktVbmYwZGQ5elJYU2RhCmpu
cFZMSDVTbGt3dVNzb0ViRkZLMmJuWFpLZFN2bEF5NkpMNmdVM2FrM3RFU2tBMHRyN1hYanZhVGNZ
ZmZQQnc4ei8reDZGdXdweEEKbzZRYmJ6elFuWkVvTjFMZmROT0JkZ2V4cjkwSm5wZ0FQLzc0a2Zh
THArbU80TjkzMzRGMllyZjFXYXFXbThydnZudC8rMlYxc0xzZgpvNTFudFJPc2ZlMEVjMTlYYmdL
U0hPbXZTU25ySno4NTFKMmxTVUNVTW43NzIvSExySjU4OGtqNzVibXZPeXVSRzc4VERCMXB6NTdN
CmJkZXd2bSsvZmFTZFpHNjltMHVuY29ONDF2WEFBNGVHV2J2WG1VQzgvdnJKd1Y0L1k4cUwrU1dY
bkJqV0tUTUI0akNZNlM4Mzlid2MKTGNqWnVHOS8rOXZkcFBCZi8vVmZ1eSsxVEJBenNjdFl5dG5B
WFArZXdLUGNONUxKWXliZk45eHdRM2RwVjVrb2wzV203TndYOWR4egp6M1VUaytUTEdNMVprMFhy
eStRbEU4YU0xNXdoekdXTjJYWVM5Q1NsRGxtMjFDdEJTYm1zSk50U3huaTVDVDNiVlNhNStZSk9I
ZE8yCnBHemZTWXZxdnNyeUtTT1R1SHhKSlhqSnBEQnRUU3JiWVBlaTk1OGYvZWhIM1dWd3laL0pX
b0tNZnZyQkQzN1FYWHJ6K2M5L3Z2bkcKTjc3Um5pVjdwY2t5U1dQOWxNOXluMWxPdzZlL010RmRk
SlJweWlUckdhdkRJck1zVTlKWS95UlBMamxOdjZhT0tTdkJXNW5valgwMgpWcWNiYjd5eE96T1JM
Nytrbkc3UGhLVmNpamZWNXFrMjVVeGhMcjlOU3ArbG41UEc2clJvM1BmUFlIY0Z0UDlaWmZ5a1hk
a1dVbmFDCmo2UTg1c3Mrd2RiVXR0TXQwUDRuWXpTWFlpYkl6aGdwMjBQdEdNbzlqL0ZOZS9Jdis0
SVlaOHlYczQ5NWpGay91RjYyM3VGMm0zcU8KallWOHZxeXNmRFpNWTl2Y29uN0tQbXpaUG1hN2Jl
L1hhV3pjVEkzbDRWak5nWXBGMi8waTB5bUhaZnZrZnQzemZGaUhzczlmMWljeAozbTdaR1VOengv
eVlkOW96dGcydU9qN21ib09MK20xcVcwZ2IraW5mblFuY2NpdEF2cTl6TDJqYWtUUm1NVFgycHZh
aktYOXFqQzBhCnExbHVtTWJxdVd4LzNDOWpOOGRvZnoxVHowL00xS1p5OWo3UFRqbVRwQnp0ZUtL
TklyZWIrcjgyMHQ4UmI3ZTgydVh5aFpTVXdWY20KSWRtUWM0UXFYL3hUcVcxK2Q5UDM2NjhmYVIr
UGRwUHpmbkNSNVJOYzlGUE9aUFJUem1LVXE4ZHkrVkQ3dmRtbEN5N1kzMDRHOTdXWApFVzExeldP
UEhXa25pVWZiTC9ZRU5mdTZ6M0tXb0RhMSs5LzJSd0J5ZWRMV01ybDhLeFB5c1pSN1NuTFpVODVF
Zk81ekI5cEphNDdhCmJpMHpwMTNEZGFaZFNRbkFjdjlKenZEY2MwL3U5VGpTQmhvZnYzem82YWVQ
dE5lVzU1SzN4Y1AyNmFkeitkV0p6OUszdWZRcWdkZWMKbEMrT3BCekJUNkNReVhyR1RsNG5aWEtU
d0NGSDVyTTlKREFmcHZUZG9wUXpBWmtrNVYvS3lCSHBCQVZKaTlhWGlVMG1NcG1rWmllYQppVkoy
cERreWxDQW9YN2laQkpSTEpQUGxWQUx0MURzN3laTHlPbWM2a2pmbHBleVVWd0tVa3EvVWZUdkx4
Nk5NTExPZTFDY3A2eHFtCm5GV05iem1Uay9XbVhpWGxzNWpraXlBcGJjM2tMdTluMmJGK3lwR3Ru
SlpPc0pXVW5YVFo5cnMzanYxbnltU3FEcVdzWWxaZWw4ZXgKL2tsZ21iNHZad0VTUkdaQ0g2dXh6
MnJxTk55L2xrbFI2alhWNWxMM1pXMHFuL2NmcCtxMGFOeVh5WG0vbkZYR1Q1YkxHWjVZbGNBMQo0
NktjNlp6YWRzcDZrei9iZExhemJBOWwrNmtkUXlrbjR6SkhlOHNZeTVqT21aQXkwVWtkczczMzA3
TDFEcmU3c2JGUXlsdFdWdm04ClBFNXRjNHY2S2Z1cVpmdVlsTHVkdHBmNlRJMmI1QnNieTZXY01s
YVg5ZG5RZE1waGJOOVMxamw4TEhVbzd5L3JrN2xsenhuek5kNWoKMitDcTQyUHVOampzdDVwdG9m
aVh4NXR2dnJtZEoxemZiZU9mKzl6bnVvTnlLYWZHWW16c1RlMUhwOGJZc3JGYTZsMGVhK3BaOGs0
OQo3dVlZblZwM1BqOHhXNnZKM2ViSkRqbS9FcElieGpQcHlSRzZuQUxjVHNya3A2VCtwQ2Rmd2pt
Rm5Sdkd5NzhjNGMzUnc1MUltVHdtClpXTW9IWkRKWEc1SUxqZXhqNjBuOTN6a2pNZlh2blpXOHgv
LzQxbnRrZnVtK2VkLzNqcExNTFpjLzdNRUpMbkhvYVFFSGJrVUtTbG4KTy9Jdlp4L3lDMUQ1aGEz
K3BIdkpYTFlVZGRKajJ2ZUZMeHhzVHkzbVNON1dyMmUxYzdIUjFNYVd4MU9wVSswWmw3RjJIUy8w
MkpOeQpML1JGRjUyWW5PY1hzSkxLSldQSHNuWm5qM0xUK2VjL3Z6eVl5T1ZsL1FEa2tVZU9ORGZm
Zk9JWHRVcFpxejdtS0hzbXpwazg1bDkyCnVuLys1My9lQmF5bHJCejF6UmhPRUpzOHE2VHMxTXJF
UE12VnJLK00yK1RQaENBSEJETGgyZXJ2TDNTbmtuUGtObWNzczJNcnFiOWMKM2h1K1RqbGoyOWt3
Ly9EMWNQbE1kTk9la3JLVExoUHM4bDU1VEhDUlNXZ0pXUEorZjZLY013R2xIOG95cGF6c004YmNz
bHdtVFRseQpsTXVFTXJsYzFrOWpiWnFxUTZuWHNzZVVuY3YzMGlmRC9rbjdNN2I2NjgvK0tIVWYr
Mnh1blZMWC9qcnpldGlQZVcrVlZGT240YmhmClZQNHE0eWZMSjJCTjMrWXloS1FFbk9uM2Z1cTN0
Yi90bER6OXp6TVd5NW1qVmNaUWd1VCtRWXFjN2M5MmxZbE9IaE9ZOU1kMjFyMXMKdmNQUHhzYkNW
QnZLNStWeGFwdEx2bUUvcFo3THhuRHliNmZ0V1M2cFp0eHM1YXo3NzFpZjliMm5ITWIyTFhVMVdk
Ni9jOHVlTStacgp2S2Uyd1ZYSFI3ejY5cXRzZzhObGE3YUZZZjlrMzFaUytmN0lkM2VOUlZsdTJX
Ty9YY25UMzQ5T2piR3hzZHBmMzA3VXMxOWUvM20vCi92MTkzOXd4Mmw5SC8vbmd1SHovby9Ibm1X
aGxZR2JubkZOYTVSZWwrcDI3YUNKVGpnaWw5QXk4a3ZxWFk2WHM3T0QrMjMvN2I5MU8KUElGQ3Jx
WGRxVlFDa0h6WnowMzVPZGhNbW5NL1IzNnFOMmNPYWxKKzVqYVhSdVZJZjg0cTVGOStncmFmRW55
MCsvcjIrdVc2TXZ2TAo5cC9uNTNWejQvYVh2M3lnYVg4cHVkM1E2Z081bkpGSlVOSGJadnRGZit4
NVRidktRdVVlamx3bWRmYlpXMEZJN245Sm00OWRMVkt5CmRyK0dsVE1rOFY2VWNpYnE3YmVQdGhP
NEU1L243RkhlS3lsbldmUHZ2L3lYRDd0ZnovcnNaK3VHZjhaTE5zeHlaTDZVMTMvTVpEWTcKa0p4
Q3pkbTAvaVM2bjYvbWVjMzZodVdrZm1WQ25aOGJ6TkdXYkRQNWFlenNzRTVWeW40aGx4Zms3RU8r
cVBJdkJ6RVdwWndSTFpjRgo5VDh2TzhYc2E4cTEzR1Uva3pNNitUejdtaW0zWE91YnM1KzUvalVC
UzRMSVVrNS9mV1BQcCtvd3RtejViRm4vNURydy9uNnc1TS9qCjJHYzdVYWYrdW5iaStVN1ZhWlh4
azNwbkcwalFsb05pdVlReDQySnFXK3h2TzFOdHJ4MUQyUmZraUhlK0d6UEc4cDJXbEd1OEUzd08K
ZzZLcDlmWS9IeHNML1h3MXo2ZTJ1V1ZsTEJ2RHlUK243VHMxYnZyMXJ1bXpLWWVwZlV0L2Zhcytu
MXYybkRGZjQ3M3FOcGoyajQyUApSVDZyYklQOTVlZHVDNWxiWmg2YmJUUUgxTWUrWC9ycjNjN3px
VEdXTW12R2FrMmZiYWQrWTh2TUhhUEx5ajU1eHJzczE0TDNjeXE1CkJCT1pWSlJVSXNxOExxZkJ5
MmY5WmZKZWRsUzVGQ0lwWDd5bHZMeE9tVG1TbGRRUFZMbzNadnduVVdpK0FGSisveGUyTXZCeS8w
Zi8KVEV6dGFqSmhUc3FsV2JYcDJtdjNkYi9LOVB6elI5c0o0dEh1SjJqN3krYnZlMlFDbmN1VHl1
UThaMFJXVGZuN0d2bVZxWlN6bmI5VAo4dDU3Ujd0Z29GekNOYlgrcVhiMWw3L3NzbjF0UHpUZEpX
YmwvUVFlY2N6TjVpWGxKNFp2dVdWL094NU92SmVBbzU5eTlpT1haNVhKCmFqNzd5bGNPTk4vNjFz
SGovL0x6eFFtazh0NXR0NTBZcy8xeUZqM1BUcW9jdVN5Zlo2em03RUpKdVdFdUU5cWtQSitUYXRi
WEx6OWoKTnVNM2s1eHNSem5DbnpNeUpTRHA1OTNyNTVtRVpSdlAyWmtFUXVVK2swWDFTSENRSGQy
eWJURDdnYmozQTZya3ozdjViTXd0WHk3SgptM3RIMGs4SmlESVpYRFZOMVdHcXZMSCtTZjJ6eit6
dk45TzJCRXRqbjgydDAxU2R0L1A1VHRWcGxmRlQ2cGtEQU5uSFp6dk1tZTJ4CjFOOTJ4dkxsczFY
SDBDM3RaVmk1dkNZSEFWS252TTVsV05tWFROVnJyQzVqWTJGc3VVV2ZUVzF6aTVZWkc4TWwvM2Ji
dmxQanB0U2oKdHMrbUhNYjJMV1ZkMjMzY2liSzNPK1pydkZmZEJtdkdSOTlxbFcyd3YxeWV6OTBX
TWo0eW9jL2x3VFVXdy9XdjhucHFqTldPMWQydQo1NkkyN2NRWVhWUnVWUUNTTCs2U3lqV3NPY0th
bzB1WjhPV0dscEtDVXdLSDNDUFNUNG1LczJQcXAvdzZTUnFYUVRETVg5YlZ6ejk4Cm5vbFhTZm5T
S2FuL3ZKeUpTZDVjcDU5b04wZUhzOTZTOHFzd0R6endRSGR6WDNsditGaFdsYVBvSmVXbTU5eTAz
Y1pTN1pmS0NjN2MKcDVGTHJISVRlQ2J4dVplMng5amRDSjVMai9JM0xuS1Rldm5EZXlrM2s0NEhI
ampjbHJldnlmMFk1YjNjdUo2VVNYcEwzK1hMNjlTbgpYNmYrNjNLL1IyN3l6bzNrK1FPR1pkbXNa
MUhxdjUxZjBNclAydWJuaHBQbXRHdTRydHlQY3VlZCs5dko2UW5RbU9YRTJOVlhid1ViCmp6OSt1
SjFjcCs3NStkMGozYi84UFpCeS8wZ3BNL2VIREg5K04vZlc1Q2Q2eTcvMjZwNTJ2T2J2Qit4disv
NUVNSk15WXBIeDFoOVAKcGV6YzNKb2pMZmsxblh5ZTU3bXh1MXhDbUdzeWMrbFF4bjZ1S2MzbEg1
azBscFFqc05tNUpDMHFQK3N1WXpSNXB0WTNMQ2NUbXB6TgpTL0JmcmxmUGwwRGFreUFwWldjZCta
ZnRyTHhPT2NtVDkwdks1LzNYdzdxdnVueWNZcFA3WXRLdTRXVW5aYjE1TERmNVpUOVJVdHFUCi9V
L3FtV3Ztc3hOUGUwdEtNSkx5YzNacXpDM3VKZUJJM2x3RHZLd3VZeVpUZFVpOWhtYWxybmtjNjUr
VW5hQXhaNHlTTC85eWlXdjIKcDFPZmpibGt2VGxUbE5QbzZmdU14UVE1dy8xNnY5K254a0hLN0tl
eXY4MXlTVFZPV1Y5LzNQZkxLOCtueGsvNkt2LzZLUWUyTXBheQpIZmJ2SVNwNSt0dGdmOXZKNTZs
UGFVTjVYZXE0eWhqS3NwbTRwVC96SFpreGtmdEtNdVp5R1dML1FFbFp6N0wxNXZOOGxuckViR3dz
CjFKU1ZQQ1ZOYlhQSk4reW5zVEZjeHRBcWJTOTF5V1BOdUprYXkvM3RMeithc1d5Nzc1dE9PWXp0
Vy9yMUw4LzdkY2k0R1J0WGM4dk8KT3JjNzVtdThwN2JCN1l5UDdXNkRhV3UvMzZhMmhlUWZwakpH
ODM2Mi8zd1g1T0JkamNYVTJCdjc3cGdhWTdYN2w1cDZEdmZIUTRPOAozczB4dW1oOWk5NDcwSjRG
K0x0Rkg1VDNjZ281QTdBMEtCT3JUR3F5YzgrbEZQbTdHc05MVXdLVUFDWFgzMmFDa0tPTk9idVFu
Vzl1Cm1PcnZmUE5lZ3BMZzUvS1ZzcUZtcDVHQUpKT3FURjR5dVJ1bTFDMkJReG5NMlRHbTdEem0r
dXJ5eFpIMXB4NVB0RGZFWnRLWW0zYUgKbDE5bG1SeWx6ZnF5UXhpbVRKSnpKRDQzWk9kK2lFem9N
eEhPZlFhWjJIN2pHeWYvNWUxTXJoOTZhT3NzUnVLaTNPUFJOckU3aXAvTApqSExFL2xlL090TGVK
SjEvaDd1eTh1dFdtWGduMEhqMDBmd1MxZjUyUFVmYWplUkllOW5JMWszckxWZjNQUFU0NjZ5dG42
L05ldks2Ci9WNXIyOXgwNnkydmMwOUV6cktrbm5rdnYyU1ZnS2s5YU41K09YLzhyN2ZuWHBFbm56
emE5dmZXMzl0SVczTVBTYm4wYVU2N0ZwMkIKU1pDVk0wRHhUVkNSbS9Qek4wSE9PV2QvRnl6OTZF
ZUgyK3ZmOC9PWitjblpyWC9KOTRVdmJOMlVuMzVLZ0pKTDRQSVR4NHZXVWZveQp3ZGl6eng3OTJF
M3BtYXhuSEdWc0o3aklwQ0U3bW5KbUx4T0cvTXRsSFJsWEdVYzU0cFN4a2gxWUpvejUxYVpNQXJO
TUp0QmxMR1h5Cm1GT3ZXVGFQMldiNkU5K000V3hMK1N4NXM5Nng5YVV0eVo5NlppS1o3U3pyeXE5
aHBkd0UxUW1JVW9kOCtXYW5sM1hrS0ZQS3pYYVkKOXhPRVovdkk1VWdwSzl0REpxUnBYeWFuYVZ1
MmxYN2RzMHpXdmNyeU9lS2JvRDgvazVoL1pmMlpqQTNQMEdTSG1IVm1meFBqbksxTQp5azQ5YmN0
TjJmRXIyM2IyU1dsYmJ0d3Zac3Y2S1czTFQ5R21mK0tXZjdtMG9MOHZ5cnF5YjB0ZkxUUEpmbWlz
RGltamJ6YnM3N0grCnlYNG5SK0xTOXV3THMvL00vWFpaWjJ3eU5oWjlGc2VwT21XQ2tuYmxhSHpj
NHBUOVpuOThMbXZ6Y0J3TTI1VEFKdlZOdTlOWHlaL3kKeCtxMGFOekhicGpHeGsrMjE2dzM0ekhy
aTA4WlUvSEtSR1c0THgvYmRuSzJJcC9ISjl0RFBNcjJrSDVKbVRWanFMUWhZeXRsNVBzcgp5K1ox
elBOOWw5Y2xUYTAzOWNsMldyYTdiRHZMeHNsVVdjUHYwZFJqYkp2THZqRW0vZjNUMkJoT3dKYytx
RzE3TVNpUGM4ZnljS3htClRPUk0ySEM3ejN4Z2FCcWJaZnVlbUMvYnQ1UzY5eC83KzRDTXcyeTN5
OFpWem9adHQreit0cGkrWEhYTTEzaVBiWU5sdksweVB2S3IKV3RrdUZuMS9sZktXV2EyeUxmVDdv
enpQOHRuMzVESGZuZmxlek9YK0dSODFGblAyby9uK0d0dldNZ1pxOWk5VDlWeTBQKzd2YjRyRgpi
bzdSc282cHgzMzMzMy8vaWNPZlU3bFgvRHhmK3RtQkJTeEhLZE41WXlsZlhwbjhsTUdjTDhmK1pH
MXMyWjM0TER2NHJITTRLZGx1CjJUbjdrWVBMT2J1UnN3Lzl5Zkh2Zm5lb2piajNkd0ZERGhvbU9N
bE4xamZkdEw4TjZFNmNTZG51dW9mTDVVeE5PY3N5ck1zd2IxN24KckUyNnExL25rbTgzMnBVeVkz
RGVlU2VmbVNqckhIdk1zdTMrN0dObk5jYVcyYzVubWJCbnA1a3hrakc5U3NxMk1EWCtoK1V0VzE5
KwptQ0ZmV2psN21DK2M3TGlHS2UrWGJTZmIxYXIxN1plM25icVg1Uk4wNUlCRTJwSTZaUUtXTDVs
TURJY0hMc295cVcrK0lPS1Y1ZkxsCjBFODVncFg5UkxiVDdOQ0hhWkZibGlrVHdGZ1VtK0d5dGEr
bjZqQmxOdFkvS1R2TEwrclhxYyttWExKODJyNmRNVEhWcGtWMlUwNkwKbHVtL3Q1M3hrK1V6YWM1
RWVUakdhcmFkL3ZyN3o5T1dWY2ZRY1B3T1gvZkxYL1g1MkZoWXRheXBiVzVSZVdOak9QbUhiUjIr
WGxSbQplVzlxM0tTczVGazJsc3RZWGJYUHBoeXkzdHJ2Z0ZLSDBxYXB4N2xsenhuelk5N2IzUWFY
alk4NTIrQXl3OVIvMlQ1ejBUTHB3M3kvCkxQcGVITE5JV1ZOamI5SDYrdTh0RzJPcmp0V3BldmJY
dWV6NWJvN1JaZXZzdjE5M0YyNS9pUldlcDRNVG9kZW1ESVljaFJnZXBhbGQKZm02K2ZHRXRTOS8v
L29sTHZaYmxXZlg5WC8vNjVFc0hzbnpPQUp6dTZYUnAxLzMzbnpnS1dXT2VpZkNpQ1cvTnNxc0dI
eWx6YW4zNQo4bDAya2U2L3YyZ25XMVBua21jN2RjK3krVUxNR2FJY3hlK25UT0xHdHJYVXQ2eHpH
SHlrbkN5ZkF4ckwwaUszTEpPMDZFalFzbkxHCjNwK3FRNm4vc2pMRytpZGxMd28rVXRiVVoxTXVw
VDdiR1JOVGJTcGw5eCtublBwNWg4KzNNMzRTdUtadDVhemdzTXp5ZW16YktYbUcKajJsTDBpcGph
RGgraDYrSDYxamw5ZGhZV0tXYzVKM2E1aGFWTnphR2szL1kxdUhyUldXVzk2YkdUYitzUldPNWpO
VlYrMnpLSWV1dAovUTRvZFNodG1ucmNidGs3TWVhWGVXOW5HeXp0bkJvZjI5a0dTOW5EeDFXM2hW
eXRzQ3d0c3lqNXA4WmV5YmZzY2RrWVczV3NUdFZ6CjJmcjc3Ky9tR08ydlo5bnpYUTFBbHEzMGRI
eC8xY25xV0J2enkxZi85RStIMmt1ZzluVS9yNXV6RSswQnorNzFkZGVkZkxSM3JKeDEKKzJ4VDI3
Vk96am5xa2FNM09kSzk3aW1YY1pYN3FuTDZPVWZFY3NRbGwybU1UWlRYdlYzcXR6Y0NxNDZmWEQv
LzBDQUFBQ0FBU1VSQgpWTjZYOFpiSlJlN3hLMS9vcGJhbjA3WlQ2dXlSd0pqQWJvLzVWYmZCc2Jy
bU05dmdsTkNaOWZtdVhvSjFabEd1MXRyY3QvRFNTL2xECmh2bjUzUnpSWGUyU250WFd0bmU1TjdW
ZGV5YzR2cVpjUDVzQUpDbG5FWWJYdUk4dnZmZWY1cEtyM011UmEzNXpObFRnc2ZkOWNEcXYKY1pY
eGsrQTJsL2ZscHRKRlJ6aFB0MjNuZE80M2RkOGJnYjBZODZ0c2cxT3R0ZzFPQ1oxWm53dEF6cXor
MWxvQ0JBZ1FJRUNBQUFFQwpwMVJnTXc2N24xSkNLeWRBZ0FBQkFnUUlFQ0JBb0ZaZ3BRQWtsMUhr
cHRLYzlwTUlFQ0JBZ0FBQkFnUUlFQ0N3cWtCMUFKSmZROGpmCjVzanY1UC9EUC94RDkxTmtxNjVN
ZmdJRUNCQWdRSUFBQVFJRXpteUJxbC9CeXEvWDVBK2svTTNmL0UzM3l5TDVLNmY5bnlMYkRtRisK
U3psL0NDWi80RWNpUUlBQUFRSUVDQkFnUU9ETUVLZzZBNUsvSko0L25sSisxbkQ0VjhSWHBVcFor
ZXZSQ1VBa0FnUUlFQ0JBZ0FBQgpBZ1RPSElISk15QzU5T3JwcDUvdWZyLzVaei83V1hmbTQ3Nzc3
dXYrVXZHdmZ2V3I3ZzhZNVc4UzVDZEJQL3ZaejNaL0dDMzNpV1M1Ci9NWG8vRkhCL0NYTi9QR1Zi
Mzd6bTkwZjhYbjQ0WWViWjU1NXBubnJyYmU2djJmd3hTOStjZWtmVkR0enVrSkxDUkFnUUlBQUFR
SUUKQ0d5K3dPUVprTnR1dTYyNTlkWmJPNGtFQ2drK2tuN3dneDgwK1NNMW4vLzg1NXR2Zk9NYnpT
dXZ2Tkw4NkVjLzZqNjc1SkpMbXRkZQplNjE1OXRsbnU3L28rKzF2Zjd0Ny84RUhIK3dlNzc3Nzd1
NzlHMjY0b2ZuS1Y3NGkrT2hVL0ljQUFRSUVDQkFnUUlEQTVndE1CaUNMCkNKNTc3cm51ajR2ZGVP
T04zY2M1dTNITExiYzBlVCtYVloxNzdybmRtWTVMTDcyMCs2dkhPVHVTUDBLV014NzlWQzdwNnIv
bk9RRUMKQkFnUUlFQ0FBQUVDbXl1d3JRRGsxVmRmYmM0NTU1enVzcXBDazdNaFNUbnprVFFNTHM0
NjZ5eS9uTlhKK0E4QkFnUUlFQ0JBZ0FDQgpNMWRnV3dGSWZoWHJ3dzgvN080REtYUzU3Q3BCUjM3
ZFNpSkFnQUFCQWdRSUVDQkFnTUFpZ1cwRklMbXgvT2pSbzAzT2hKU1VQMDZZCjkvS1pSSUFBQVFJ
RUNCQWdRSUFBZ1VVQ1ZRSElSeDk5MUMyYk14OUp1WG44dlBQTzYvNHFldmRHKzU4RUl4ZGRkRkZ6
elRYWGRHL2wKcDNZVGtKU1VaZnV2eno3NzdPYTk5OTdyUHM3WmxKdzV5YTlsdmZ2dXUyVVJqd1FJ
RUNCQWdBQUJBZ1FJYkpqQWdYdnZ2ZmZ2eHRxVQpYN2Y2L2U5LzN3VUdDU291dlBEQzdpYnozRlNl
WDdWSzRKQUE1Y2tubjJ5KzlLVXZkWi9scjZVLzlOQkR6ZnZ2djkva2I0Yms3RWp5CjV1ZDZjNjlJ
eWtpZ2tUeDVURm5KKzhNZi9yREpqZXVYWFhiWldKVjhSb0FBQVFJRUNCQWdRSURBYVNxdzcvNzc3
ejl4bW1MRlJ1U00KUm9LSzNQdVJvR0xWbE1Ba043T1hsQ0FrdjZBbEVTQkFnQUFCQWdRSUVDQ3dt
UUtUZjRod3JOa0pQSExaMVhaVFAvaElHWUtQN1VwYQpqZ0FCQWdRSUVDQkFnTURwSVZCMUQ4anAw
UlMxSkVDQUFBRUNCQWdRSUVCZzNRVUVJT3ZlUStwSGdBQUJBZ1FJRUNCQVlJTUVCQ0FiCjFKbWFR
b0FBQVFJRUNCQWdRR0RkQlFRZzY5NUQ2a2VBQUFFQ0JBZ1FJRUJnZ3dRRUlCdlVtWnBDZ0FBQkFn
UUlFQ0JBWU4wRkJDRHIKM2tQcVI0QUFBUUlFQ0JBZ1FHQ0RCQVFnRzlTWm1rS0FBQUVDQkFnUUlF
QmczUVVFSU92ZVErcEhnQUFCQWdRSUVDQkFZSU1FQkNBYgoxSm1hUW9BQUFRSUVDQkFnUUdEZEJR
UWc2OTVENmtlQUFBRUNCQWdRSUVCZ2d3UUVJQnZVbVpwQ2dBQUJBZ1FJRUNCQVlOMEZCQ0RyCjNr
UHFSNEFBQVFJRUNCQWdRR0NEQkFRZ0c5U1pta0tBQUFFQ0JBZ1FJRUJnM1FVRUlPdmVRK3BIZ0FB
QkFnUUlFQ0JBWUlNRUJDQWIKMUptYVFvQUFBUUlFQ0JBZ1FHRGRCUVFnNjk1RDZrZUFBQUVDQkFn
UUlFQmdnd1FFSUJ2VW1acENnQUFCQWdRSUVDQkFZTjBGQkNEcgoza1BxUjRBQUFRSUVDQkFnUUdD
REJBNU90ZVdSSTQ5TVpmRTVBUUlFQ0JBZ1FJQUFBUUlFT29IYjk5OCtLdUVNeUNpUER3a1FJRUNB
CkFBRUNCQWdRMkVrQkFjaE9haXFMQUFFQ0JBZ1FJRUNBQUlGUkFRSElLSThQQ1JBZ1FJQUFBUUlF
Q0JEWVNRRUJ5RTVxS29zQUFRSUUKQ0JBZ1FJQUFnVkdCdFFwQWpoNDUycnozeG52TnU2KzkyeHc1
ZEtTcitQdHZ2ai9hZ04zKzhNTjNQNXhjUlUyOWEvSk1ycWd5USt4cQo2bDFaM05wbU8vVGhvZWFE
dHo4NFhyOFl2LzN5MjB0ZkgvOWdGNTRNNjdMcUtvWjFYM1g1aitVLzJqVDliV2R1L1Q1V3ZqY0lF
Q0JBCmdBQUJBdHNVbVB3VnJINjVUejN3VlBQU295ODE1MTU4Ym5QK1plYzNyejc1YXZkeG5oODQr
MER6enN2dk5FY09IMm51Kzk1OXpSdlAKdmRFODg1dG5tZy9mMlpyQUo4K0ZWMXpZSFByb1VQUDJT
MjkzRStUcjdyMnV1ZmFlYTdzeU1uRjg4dCtmYks2NCtZcm12RXZPYTE3OAp3NHZOTzYrKzA1eDkv
dG5OSGQrOG8xbGwzUWZPT3RDdmR2UHk0eTgzei83bTJlYWo5ei9xM3Ivb3FvdWFvKzMvM24vci9l
YjhTODV2CnJyN3o2dWJpYXk0K2Fabnk0dUgvNytIbXRtL2MxdFdwdk5kL25LcDM4dGJrNlplNTZQ
a2pQM2lrZWZ1VnQ1c0xMcitnU2Z0ZWUvcTEKemlhdWFkYzdyN3pUM1B3bk56Zjc5dTlybnZqM0p6
clhZcnVvdkUxNEwzMzYxb3R2TlovKzN6L2R0VC90UHZUQm9lWnozLzNjeDE3dgpkbnY3ZFZsMVhl
bTdmdDFYWFg2WVA5dk5Fejk5b2psNDlzSG1ybS9mMVgwOHAzN0Q4cjBtUUlBQUFRSUVDTXdSV0Nr
QXlZcXV2dXZxCjVwT2YvV1FYYUpRQUpKUDM2Kys5dmp2aSt2dC8vbjFYbjh0dnZMdzdpL0hrejU3
c1hsLy9tZXViaTY4K05zbHZqODQrL0M4UGQrL24KUHpsaS8raVBIbTB1dStHeTVwcTdyK25lditU
YVM1b3Myei9DWGJ2dTR3VWZlM0xsTFZkMkFjOXp2M3V1ZStlRysyNW96cnYwdk9iWgozejdiNUww
M1gzaXptNmhkZU9XRkp5MmF5ZTBINzN6UUJWMDNmdUhHa3o3TGk1cDYxK1Q1V01FTDNqaHk5RWp6
cWYvd3FlYnNDODd1ClBuM2d2enpRWFBTSmk3cWdJMis4OFBBTFRZNmlKNEFyN1Z4UXpNcHZsU1B6
V2RmY3RKTmxwUzRKWUE5L2VMaXIxZ1ZYWE5CY2VmT1YKemZNUFBiL3dkZmZtRHY1bjJKWitYVlpk
emJEdXF5NC96SjhnTmYzMS9oc256aDdPcWQrd2ZLOEpFQ0JBZ0FBQkFuTUVWcm9FSzBmWApyL3ZV
ZFV2WGx6TWptUUMzSnhlNmRQQ2NFL0hOdm4zN3V2ZHlSdVNEZHo5b1B2bTVUemJsdlJ6Wno1SHJu
Q25JaEwya1QzN21rODNaCjUyMU51RmRkZHltalBKNTE3bG5sYWROc1ZlVkVRTlIrOHNiemI1ejQv
Tml6bk8xSmV1V0pWNXJESDIxTmRJOTkxRDNVMUxzbVQ3L00KWmMrdnVmT2E0OEhIb2p4WDNYcFZk
MllxbjhWcUoxSW0yWS8vNVBIbXJaZmVtbDNjVHBaVktwTWovT2RjZUU1NStiRjI3NVREOFJVYwpl
N0tvTGNPNkRKZVplcjFqZFQyMjdYWGJWbThZckZxL28wZVBGVFJWOFIzKy9GU3RkNGVib1RnQ0JB
Z1FJRUJnUk9CRWhEQ1NxWHlVCk13ZFQ2WWJQamVkNTRaRVhta3V2dmJRN1FuditwZWQzeGVVeXFL
VDNYbit2K2MwLy9LWTdtM0xGVFZkMGwzWGQvT1didTg5Mll0MWQKUWIzL1pDSlowcmtYbkZ1ZWRv
OEppRXJRa3N2S1hubnlsZVlUdDMvaXBEdzE5YTdKazBKekZpWm5mSzY2N2FybW1ydTJ6Z0wxVjdi
cwpFckdTWi8vQi9jM3dERTR1dTNuNWlaZTdTN2J1K05NN2pnY3doOTQvMUR6MysrZTZlMjBPSHpy
YzNQU0ZtNW9jaFIrbUYvN3dRdlA2CnM2ODM1NzU5Ym5jcFhjNENKVUJjdEd6dTIzbjZWMDgzSDcz
M1VYUGpGMjlzRGh3ODBGMEdsTXZiRXBRdUtpdDFMdW4xWjE3dkxrTzYKNk1yMnJFN2I1M245eDEv
K3Nja1l1ZW1MTjNXQlJzN3l2UGJNYTgxZDM3eXJ1NVF2Z1dIeTNmMFhkNWRpVm5wYzVwQXpYeTg5
OWxJWAovQ2FvZnU3QjU3cGcrYzV2M3RrWkR0dHk3YWV1N1M2SkszV0pSWlpQQUw3L3dQN3U3TlFk
ZjNaSGM4NzU1eXkwRzFiNjFhZGU3YzVpCm5YUEJPVjJnbmpyazNxaGNvcGd6aVl2T1JtV01QdjNM
cDd0MTVwSzg5OTU4cjltL2Y4czNyNGRXci8zeHRTYjNoU1N3VGgvZi9iOXQKR2FidHVZUXJLZS9I
UHBkRVpuem1Vc1lFZk5sdVVsNkNwbHoybHpPYlU1K252R1hlK1d6WmVwZFo1aXlQUklBQUFRSUVD
SnllQWlkbQpnTHRjLzl3VW5VblBLNCsvOHJFMUhUejNZSFBKTlpkMDcyY0NtK3ZYZi90UHYrMnU0
LzlZNWgxODQ5VS9idDNEa3N1eExyMyswcE5LCnpzUTlsM3psVXJDa0Z4OTU4YVRQODZLbTNqVjVV
bFl1Wjh2Wm9kejdzaE1wMXBtbzN2TVg5elE1cXB4SmRKZmFtT3Z4bno3ZUJYbDMKZmV1dTdwNlNS
Lzcxa1lWbmVCSUlKUWk3N0pPWGRVRkJKdFBMbHMyOUtMbm5KUGZWSEQxOHRQbm9nNCs2d0tNN0k5
YXUrR05sOVlLUAoxQ3YrdWQ4bjl4TGxIcGNzbDRsdjNpdG5PYzY5Nk56bXFsdXVhdllkMk5jRkJM
azg3djIzVDF4bTFMV3Y5ajhqRHVkZGZGNFhuTDMrCjNPdGQrK09VVkF5SGJVbDkrM1hKQkQzK3VR
OHFkWTVmQXJKbGRzTXE1L0xGQkM5SGpodzVmbFlyZFRycnZMTVdCaDlaL3JFZlBkYmsKM3FiclBu
MWRGMUIrK1BhSkgwL0kyWkNUNnRlT2gxeXExZ1c3N1NXUDNXUys5U2huZHZJNmwwSW1zTWhsaWtu
blhuaHVGeVJrbkY1NgozYVhOYlYrN3JidkhKTnRxemVjNUs3cXMvV1ByWFdTWnN6a1NBUUlFQ0JB
Z2NQb0s3RmtBOHVielcwZFFGMTNLRkw1YnYzWnJOMUVyCmxMbCtQZmVUWkNLMzB5bG5Cdjd3TDMv
b0pwbVphTjM5N2J1N2lXOS9QUis4OVVFMytjMzlJMGw1bmFPMHcxUlQ3NW84Vjk1NlpYZGoKLzA3
ZE9IN0pkWmQwazlWTVdpLyt4TVhOZTIrOTExVzlDN3JheVdBdXE4cGxad2t3Y2lSODdES3JjcW5j
MUxJSmVISWZ6OU8vZnJwNQo5WWxYbTZ2dnVIcklkZnl5dTQ5OTBMNFI2NHlUY2dsZkpzQTVDbDh1
eThsUjlrem1rekpCTDJlWHVqZFcvTTlZV3hJMEp1aEorUWxBCkV3U2xMZ211K3FtNERPdVNzMGs1
YTNIZVJlZDE5YzFaaEhkZmY3ZHJWNjE3emh4bHZKVWZjWGpyNWJlT0I4UDlPdVI1Ym1KUFh4NC8K
UzlaZWVsVUM1M3crckYvdW0wbDlFaUFsNWZLOXBKelJ1UFNUbDNabm5mSTZ5NVZmMHNxOVIzRklv
Smd6YlJkZWRXRno2MWR2N2M1NApKYy9VNTJQZVkrdGRaRmtDMHRSUklrQ0FBQUVDQkU0L2dUMExR
RExCenE5WjVkS3FSU21YNDJTaW5rdFZjdVM3UysxRStja0huancrCklWMjAzSGJleXcyNXFjczkz
N21udTZTbGZ5bFF5c3ZFcjF5U2xJbGNKbUpKaTg1TzFOUzdKazhtZGFsUGprcnZkTW9SK25KdlRl
NUoKU1hzeTZjdS9yRGNXRjF3MmZVbEx6Yks1QkMvQldzNklsSHR0YXR1VEkvKzU5QzJUN2FSY2Rw
UjZ2L1hDVzkxWmxieDNVbC8xN25ISQpaNnVrcWJhME9pY1ZsL1htak1UU2RITDI3dktuTW02eXpO
VDZodVhtTEVPQ3gxektsZlRHczI4Y0Q3NkdlUlBVNUV4TCtybWt6cWxmCnA5N3oxT3V5Nnk5cmN1
WXJ2eTdYL2JEQnNjOXYvUHlOM2VWdHovLysrZWJ0Rjk5dWNvbmVTYWxYVG9Lc3JET0I0ZkcwNVBP
cDlvK3QKTjVlUzlTMlByOHNUQWdRSUVDQkE0TFFVMlBOckdUTEpMQ20vY0pXSlVpWlhGMTE5VVpO
cjNuTVU5MU5YZjZwNTluZGJ2MUNWbzdXNQpmR1F2ajNybThxdXN0eHdoemlVZm1Sam5hSHd1SmN1
UjRLU1hIM3Q1c3Q0Slp0YXBiWWMvYUNlVWJkaVpJL3FycHBwbGMxWWdrOFZjCjRwT2dzejhwbmxw
Zm5IUG1KcGY1WkxrRVJTa3ZSODl6NW14NG1keFVlV09mMTdSbGJQbFZQMXQ1ZmUxRVB2Y2M1YjZY
WEZhVmV6eVcKV1daTVpud08wekNJNm4rZXN4ZTV4eVpCZGU2elNCQ2E4dlBEQy9reGlOemJrWHMr
M243MTdmNWlIMy9lMWpPQjdOSjA3UE9wOXErOAozcVVyOUFFQkFnUUlFQ0N3N2dKN2RnYWtRT1F5
blhKMjRZOC8vMk0zd2N4UjF2eGRpK09wbmJSazBsVW0rbnQ1OURNVHVWeDNmdnVmCjN0N2M5dlhi
dW44NU0xTlMrV1dzdks2cGQwMmVycXgyZ3YzU0l5K2Q5TFBEWlowNytaaWozYm5NS2ZkcDlOUFlK
VmdsWDgyeStkc3YKT1l1VmxPZXJwdnlVYnNaQ2dyc0VNTGtYSks5emxEMzNPT3hVcW1uTFRxMHI1
V3huZmJra0xZSFhNNzkrWnJUdE9WUFMvYUhCOXN4VApUY3BONmJsSEp6L3NrTUFqWjVweXFXTnVY
TThaa1p6RkdnMHFqcTBrWjdvU3FKY2ZreGl1dS8vNVdQdFhYZTl3UFY0VElFQ0FBQUVDCnA1ZkF0
Z09RM0N4ZVV2OTVlUytQbVJTVlZDNWZ5Y1FtbDFUazV0WmNoMTZDaStjZmZMNjducnprVHhDUXky
OXlUOEh3eUc5L2ZmM24KWmRsRmo1bDBsVFMyVEg3aGFIaDJJSmVFNVJLWHBGd1NVeTVueXV1YWV0
Zmt5V1Q5cVo4LzFUenlvMGRTN0hocVk0ZjRMRHJxblFWVAp2eHd4THluUFM1MHZ2Mm5yTXFmODRs
WW1qeWtqZlpHYmpCZWwzQlQrNFh0Yk56VG43RVR5TDFzMmdjMDVGNTNUM2YrUXZ4V1RnQ3BICjEw
dnFsNVYxTDBvWFgzdngxdVZoN1ptUDlIdnVYOGxqSnRuRGxEYjFBNm1ZbFB0RmtuZjR1ci84bEVN
M1huc3hXdWZaZXoxc3k4ZnEKMHQ3bzNlK0RxZlV0cW11MmpjdHZ1THdiYzdGZmxwSW5WNHk5K09p
Skh6RElmUm5kOW5lc3p2MzZwUTlmZTJvcjRNOVl6NW1sbklrcwo5M3NrSU1oOU9BbEtVNjkrNnM1
a0hIdmp6UmZmN0M3aEt3Y1U4dmF5ejhmYVA3WGU5R25mTXV0SnZmS2pBR1BiY3ZKSkJBZ1FJRUNB
CndQb0pITGozM252L2JxeGFyeDdkK3FXb2ZwNU1OSi81VmZ0WHp0dExQNUp5bzJ3bU5ibWZvQnc1
elUrSjVqS3FjdE41anJMbUp0NWMKVXBLSmRxN3J6MCt1Wm1LU20yaXpmSTU2SjMveTVpZEZNN0hK
VDhUbTE1ZEtxbGwzeVZzZWN5bkpDdys5Y0h3U25ucms3TXB3MHAzTApVZkpIL0RKeHk4L3k1cWh0
VXE2SDc4NGFaSUxibmpuSTllejVLZUhVYzZyZXRXMUxuWEtVUDM4dHZuK1pXbWxEZWN3NnUrQ3Ru
ZGduCnFJcE5maUdwR0pXekI1bmdwejh5UVV2YmN4bmJCWmRlMEwyWEc4L1REMmxYZnBVc055RXYr
MW5UOVBHTEQ3L1k5WFVtdXJsTWJ0R3kKdWRRc2Z6TWtaNjVTZm9MTW5DMktXK3FSditmU0x5c1Qz
KzQraGRLd1k0KzU1Q28vMTVyTGo3cGZPMm9uMW1sTHpvVDBmLzBvUHhXYgpZREZqNytCWkI3dkFJ
L1hLNjZ3L0U5VCs2eHlsTHplTloxVm5uWE5XbDI5Ulc5NSs2ZTF1MmZpbTdoa1BDU0p6eVdER1pD
NEg3TGNsCndVZ0MwMUtYOUdYR1hQN2VUWDU2TndIczJQclNsbHl5VnVyZXIydmFuT0NoQ3pJR1Z1
Vmw4bVFzWit6bThyWFVQeWtHTWM3a3ZXK1YKY1ozTHJ3NGMyQW91TTBieWkyOXBWeTQ3N003RXRl
TWw0L0NWcDE3cEFwUGNrNUkyZFdkUDJ2d0pUakplYi92cWJjZjdNZHZ2c3MvSAoycDh4dFd5OWFm
dlFNbTNMMlpYSC90ZGpuZTJ5TXpESkp4RWdRSUFBQVFKN0wzRDV2aE8zWEN4YSs3Nzc3Ny8vNUVP
Y2cxeVBIS2s0CklqOVladFdYbWJSa2dwS1V5VnVPZUdZeVZDYlZxNWEzVi9scjZsMlRwOVEzazlw
eTJWbDViN2NlTXpudDF0ZE9SdnNUODBYclM1QlYKemxUbDgxV1dIWlkzTEd2NGVTbS9CTEtMWGk5
YVpydnY3WFpiaHZWYWRYMloxQ2RnR0o2Vkc1YmJ2VzYzNUFSTDZhc0V5dm01NG9VcApXM3dDdXpi
WVQ5OFBBOEVFTEdYYlMzMUxYeno0L3o3WS9mclY5Wisrdmd0cSttTWk2NW42UEhuRzJyOXN2Vmx1
VWFvWlM0dVc4eDRCCkFnUUlFQ0N3dXdLMzc3OTlkQVY3ZmhQNm90cmtpSFZKK1dXZDB5WFYxTHNt
VDJudlhnVWZXVjhtbGJVMzlnOG5tcXNzVzlwV0hvZGwKbGZmN2oyWENXOTRidmk3djc4VGpicmRs
V01mYTllWElmL0xtRE5LdFh6OXhEOUt3dkpOZXQwRkY4VjBhZkdTQlkzSEo4TkxHVWxZSgpQcnFz
QzI0d1Q4QXlERnJLc25rYyszeXMvVlByN2E4anowdGJoKzk3VFlBQUFRSUVDS3kzd0ZvRUlPdE5w
SFlFOWxZZ2wwRGxNc1hjCjk1SmZvMXFMMUo0MXlhVmEvVDl3ZUZLOXBqNC9LYk1YQkFnUUlFQ0F3
SmtzSUFBNWszdGYyOWRTb0xzSHFEMUxVZjRXeURwVThwVW4KMjN1RmJ0LzZHelc1djJ0NG45TFU1
K3ZRQm5VZ1FJQUFBUUlFMWtOQUFMSWUvYUFXQkk0TDVLYjIzZmlEbE1kWHNJMG4rUkdBc1RUMQor
ZGl5UGlOQWdBQUJBZ1RPTElFVFB5OTFaclZiYXdrUUlFQ0FBQUVDQkFnUU9BVUNBcEJUZ0c2VkJB
Z1FJRUNBQUFFQ0JNNVVnY2xMCnNLWitSdXRNaGROdUFnUUlFQ0JBZ0FBQkFnUldGM0FHWkhVelN4
QWdRSUFBQVFJRUNCQWdzRTBCQWNnMjRTeEdnQUFCQWdRSUVDQkEKZ01EcUFnS1ExYzBzUVlBQUFR
SUVDQkFnUUlEQU5nVUVJTnVFc3hnQkFnUUlFQ0JBZ0FBQkFxc0xDRUJXTjdNRUFRSUVDQkFnUUlB
QQpBUUxiRkJDQWJCUE9ZZ1FJRUNCQWdBQUJBZ1FJckM0Z0FGbmR6QklFQ0JBZ1FJQUFBUUlFQ0d4
VFFBQ3lUVGlMRVNCQWdBQUJBZ1FJCkVDQ3d1b0FBWkhVelN4QWdRSUFBQVFJRUNCQWdzRTBCQWNn
MjRTeEdnQUFCQWdRSUVDQkFnTURxQWdLUTFjMHNRWUFBQVFJRUNCQWcKUUlEQU5nVUVJTnVFc3hn
QkFnUUlFQ0JBZ0FBQkFxc0xDRUJXTjdNRUFRSUVDQkFnUUlBQUFRTGJGQkNBYkJQT1lnUUlFQ0JB
Z0FBQgpBZ1FJckM0Z0FGbmR6QklFQ0JBZ1FJQUFBUUlFQ0d4VDRPRGtjdi80L2Nrc01oQWdRSUFB
QVFJRUNCQWdRS0FUK012N1J5R2NBUm5sCjhTRUJBZ1FJRUNCQWdBQUJBanNwSUFEWlNVMWxFU0JB
Z0FBQkFnUUlFQ0F3S2lBQUdlWHhJUUVDQkFnUUlFQ0FBQUVDT3lrZ0FObEoKVFdVUklFQ0FBQUVD
QkFnUUlEQXFzRllCeUpHMnFtOGNicHBYRHpYTlIwZTM2djFtKy9wVXBuZFRLV25iQXUrM2ZpOTgx
RFFmSE92UApzWUxTNTJlQ2R5emU2bzNydyszcmw5c3hYOUx3ZFhtL1BKNHBUbWRLTzB1LzdzVGpj
R3lWTWxmWkRzc3lwK3B4MkliaDlqQjhQYXpuClRvNmJxWFVOMTUzWHExalBxZXZVc2tQSFJYVWRl
eTlmZlh2MS9UdlZsckY2cnV0bmV6VU8xclg5NmtWZ1NtRDZWN0I2SmZ6czNhWjUKNUlPbXViZ05X
eTVybDN6eXc2MFBMenZRTkdmdmE1cFgya2xVNWxILzE2Vk44Mnc3NmZ6MWUwM3p6ckVKL09WdG5p
dmFaVDVzSjFzdgp0Wmt5MGZ6TXVVM3pxZk8yeXNoN1AzMm5hVzQ1cDJrdWFjdi9RN3VlQkNMbnQ4
Ly8vS0ttV1dYZFo3VjE2YWNuMnJKKzgvN0g2NUlkCmRKa2NmLzJDcHJuaDdQNVNUZE4rM1B6elcw
M3pweGUyZFdyclAweHAvMi9iTnI1MXJJMnA2ejF0bTJLUnRyOTk3UDE0M2RxMjY2NzIKcysya1o5
cjFQTmpXLzVWMjBucHJXOGMvYWV1NktQMTcyeitQdG0yOXFGM2ZaMXJYWVhzV0xiT2I3NlV1K1FL
UDg0L2J2djNyUzVybQp3S0J2eXZwam1mNy9WRzlNbE04MjdmRTM3ZGg0c2QwKy9xcjF5RGFUZHIv
ZkduMnYzVzZHcjRkdHovYjM4N2FmUDl2MjczYkgwN0RNCmRYeDlwclJ6cCszN1k2dVV2Y3AyV0pZ
NWxZLzlOZ3kzaCtIcllUMTNjdHhNcld1NDdyeGV4WHBPWFd2MmwzM0hSWFVkZTYrMC9hejIKdStR
djJ1L2YzVXcxYmRuTjllOUcyYXVNZzAxcy8yNllLblB6Qk5yZFMzM0toUHp1ZGlLZGlkT1h6ait4
M0xWbk5jMjMycDNVZjdoNAphL0tkZkRlMUUrVk14a3ZLaFBnTDdUSmZiU2ZQbVloK29oZjY1T2pI
RDk5dW1tdmFjckxNZGUyeVgybnpYZG5tT1RhSDc0S0IybldYCmRaYkhtOXM2WjJKYlVxbkwxOXAx
L0I5dFhTNWNvcEJKWW9LSWZGRXNTbW5qcDQ4RlVQazg5YnU5L1hkajN1K3RMMjJhTTFtOHZpMnYK
TFA5RU8xSFBoSDZZWXZocysxbFNncmk1d1VjQ2h3Um4yMDJIMnVVelViNmpiWHU4djlFR2NjUGdv
NytPV0NhQTI2blVMM3R1bVR0WgpWdXB5Yit1Um9EWXBRWG5HWjBuRDErWDk4cGp4TlF5d3kyZWI5
TGdUN2R6cGZsdEgzMkViKzJNcjlhM1pEbXZiTlZ4WDdYS3I1dXUzClliZzlERjhQeTk2SmNWUEtu
RnBYeVZjZUYxbm5zMlg3MFRsMXJkbGY5aDFMSFdzZjAvYXIydS9qN2U2U3A4WksvL09hdHRUV08v
bjYKWmEreTNFN2xYVFFPOXZLN2I2ZmFvUndDdXkydzB2NGxKd0hLR1l0RkZidTR6WEJ6TzVFczZa
emUwZTd5TkJQNm5CVzVyNTJFN1R2MgpabzYyWkZLZHN5RFplRXY2WEJ1d2xFbnBxdXN1WlpUSG5K
VW9xVHpOR1pZRU9EbWFYTjRyZWZLWW94aEpPWU9TQ2Y2aTFDLzM3SjVtCi8vbDV2ZmNYbFZIelh0
YVRRQy8xZmFROUd6Sk1qN2QxTEVISGRpYW8vZVpsSFQ5cGo4cjNMd3Nhcm0vcTlldnQyWnFVVTF3
VFRQYlQKb25Yc0w1bjdHYmZ4ZkZIWjJ5aW1XMlFueXlwMXlIWnhVZStNV29aSHYrbkQxMlc1OGpq
MWVjbTN5bU8vLzFkWmJqZnp6bW5uS3YyMgpqbTFQL2FmU29qWU94OWJZZGxpempsS0hSZXNxbisy
MDM3QU53M0V3ZkYzcVVSNm5QaS81YWg1WEtXdG9mWG03ejV2YWo2NVMvckMrClUvdkxvZU53K1dX
dlMzL1cxbTA0anNiR1N0YTU2UE9wdGl5cjYvRDlSV1VQODR5OUxtMGZ5elAxMlhBYzdPVjMzN0J1
WSswWjlsdC8KMmJIbCt2azhKekJIWURBdEhDL3E4NzJ6SHN0eVR1WDVRenQ1dnE2ZFNGL2Qvc3Rs
WEVtWEhwdU1aY1A5djkvWU9tS2VvOEtaZE9kTQpTTkpVdWJWNXVzS08vZWQzYlYxeVZxWk0zUHVm
NWZyTmM5czljQ2FHYlp6U0JTRTVtcjhiNmZuMlRFTXVuOG9Sc2J0SDFuRjE2NVZMCjEzSkdKdm5L
VVpYc0xKNXB5OGhabDRlUEJVMmxuZ21jZnRWZThwTXZrd1IvRjdSUEVuQWRQRGJqZmFvOWE1TEw0
cEl2bDNwOXB6MkwKOVhEcmt2SnlhVm1XK1dKclZQTFhsSnZBN2VtMnJOUXJsODZsZSs4YmpKMUY2
eWhsNS9LMUJGUUpwUDZzUGJOV3psQ2xUM0lwMm12dApPRW1nbXI0Yjd0eFR4cUt5azMvUnNnbEM0
L05lcjUzLzF0YjVycll2Y2lacFVWbDlpN1R6cDIzK3E5cSsrWEk3Vm1QNGk3YThYSllZCnR3UWFE
N1YxZnJyMS9GWjcxaVBXT1l0VnJFdWJWMzFNZTM3UnJqZGxKVWpQbWNVY0FFaXFkVXJlbFBQTHRy
N250dFk1QUpCdEx0dmwKbFcxWk9RSTZObjV5WkRkOW5mVm4zZG1lTXM2K3VZMCtTMTBXcFdYdHpM
ak5HYmFjWGJ5ei9aZkxHSExKU2JhUkw3VVdVLzJXZFMwYQorM2wvck0yNWR5ZHRidG02czdpNXRE
T2JVc1ppeGtVdXlVemdma2M3ZHNyQm1sWDZJNmF2dHV0SXloaEpXN0ovekRqTmVzOXBnZHNtCk5n
KzF6M09tdGIrZFp2di9ZN3Q4R1Z2THRzTmw2OGc2NDUxK3pMYjNXcnZPVEtLenIxbmttY3RzaC91
T2xORlBwL3YyMFc5TG5pL3IKeTBYVytmN285OCtpL1dqS1hEYkd4OWFYejBwYXRML00vcXkvbjZu
WlZydDZ0T1AzdkxidnMvd2I3YjlqdTVTeXFwTWVsNDJqUldPbAp2ODljOUhrcGVGRmI4dGt5OTdK
Y2VWeFVkcmJWWmQrQitlN05kODJGYlVPUHRCa2ZiN2U1N01PeUw4OFZHWXZTMlA1aDBUall5Kysr
Cm12WXM2N2UwTldOZzdQdWd0aDhXdVhtUHdGQWcyOXFlcEV5Yy85aHUzTm5BaHlrNzZtdnpyZHFt
OTlvTklCUEEvK2ZOZVVmZ3QwcGIKL04vVTViRjJwNU12MEdVcE8rOWM5bFIyUXJrblpiZFNKazg1
S3pTMWpreDA3bXduTnJsZklKT25rckpEeWNScjBWR2tIN1NYdGwzUgo3bHdUd09VeXFKeHQrbEY3
ZGlPcFhXWHorM2F5a2NBbkU3bWNkbStMN2lZYzZaTWIyaDF3QXNEK2wwZVdTeG9yOTdhMnZOenpr
cFF2CjNlRU9PTzluVXJOb0habEE1Zks4QkVLcHk0UHRGMkpTNnBxamlibXM0TnZ0QkRmM0ZQMXIy
N1pNZ0lacFdIWmNsaTJiQ1ZiYS9tYTcKZ3N6N2NpYnVsblppbCtBamFWalcwT0tUYmQ0RWRabTQ1
MTkzRDFOYnQwekt5MW1PUE9iZW5RU00zSHc2Y1FBQUlBQkpSRUZVN2YrYgpkOW9WbGZ1R3VwVnM0
ejhaTXdsNmNobGg2dnd2clVXTVZuSEthdlBsMjFhdnU1UXcvUlQvcFBQelpwdkcram4zUlNVWXpI
YVVBQ2I5CmtyU2RQdHRhOHVQL1hkYk9UTDVqbVMvTXBGekdrWDRvNDJHcTMrSzBhT3luckxFMjU2
enRDKzAybElsbHlzajE4UW1RTTc1eUNXUUMKaG96L1g3ZmJWZXF5U24vazBwR1VrN0dkTVpsOVR3
S2FwSlNUdm5tdS9aZnhsRzB6KzRMaE50UWZXNHUydzdGMVpEMjVGRFlIaUxMKwpHR1l5a3VCbjZK
bHRhcGxmeWlucGROOCtTanZ5T05hWGk2eUhac045UnlsNzJSZ2ZXMTlaZHRuK010dEdmeXhNYmFz
cEw5OEwyZmZtCnN1SXZ0dVA0N1dPQmNGbFgvM0ZzSEUyMWU5bm55OXBTNDFEcXRxanNzZTA1MjFL
MjUvUkJMdjNPdmFBSjh2K3R0VmlXeHNwYk5BNkcKNVN5cVkvTHNSUHVuMmpQV2I2bkQyUGZCS3Yy
UXNpUUNVd0x0cHJZM0taRjVKdjA1ZXJBb2ZhMmRIT2RMdGFUOEd0Yi9hRzhBNzArMAp5MmR6SDFO
bWpvZ3NxVXIzZm81MFprS1RpV05TSm95WjZPOUd5bVE5Ujh6enBUK1ZNdEhLcWZYK21ZNjQzclpn
MlV4V2NsVDd4bU9UCjZYUjJKc2g1UDBkcDB4YzU2MVFDc2V3OCt5YmxFcmxobmFiS0hlWWZlejFj
Unk0enk5bXhUT0EvMFQ0bU1FaEs4SnFVOW1UOW1YaDEKbCsyTjlFa3BlMnJackM5akwyTWlsOXN0
T3ROVnl0cXF4Y24vVGNDUzhWM3NybW0veE1zRU5Ua3pic3BadHRSNzBROGFuRnppOUt1YgoyNzdL
dlVHcCsrZmFDVU1DMkt4bnFxM0RraE5vSjNCS3lwSDJqSzJralAycGZrNWJNdm5PY3ZueXpqTHBz
eEpjclZxWHJUV2YvTjlsCjdVeXVjZ2F3TExGb2dyZXMzNWFOL2FrMnA3M1pWblBHSjMyYWRhWWY0
cDh6SHZITEdabWtUQUJYTWNpa1BoUDJTOXZ4azVTeXlxOFEKNVV4ZmZzd2kvN0xlQkRxWmJDU1ZO
dGFNcmJGMVpQd2tvTXlCaUtRRTV6bUFjTUd4OWVTOXNxNWxmc2t6VEtmejl0RnZ5eXA5MlYrdQpt
UFhmNno5Zk5zWnIxcmRzZnprY0MxUGJhcjRQTXZiTEFiZDI2SFdCYUwrZS9lZGo0NmprbTJyMzhQ
TmxiYWx4S09zc2o2WHNxZTA1Cis2eDgxeVRvemdHZDdMOXlVQ2NIUXN1MlY4ck00MVI1L2J4VHow
c2RTNzZkYVA5VWU2YjZiZXo3WUR2OVVOcm1rY0FpZ1hiVDI1dVUKU1haK3phcC9qMGgvelRubC8v
VTJDUGxtKzY5TTBES2h5eVU4eCthZy9leXpudWNJeEhmYlh4ektsL21pbEp2UHk1ZHdKbFpsVWpa
MQpobUpSV1RYdlpjZjNsKzBSLzV5Sm1FcVpkQ1ZRU09DUUNVTXVrWXBkcVdOLytSeTV6UHY5WnVa
c1NGSXVyOGhubjJ4M3VEbWlFK2ZzCmlQdDV0M0orL0w5VDVYNThpZnAzMmlvZFQ1a1lseVBjT1hP
VEkxT3BYLzVsUXZibjdWZ3BsL0VkWDJqQms1cGxjL1EvUVdmS3F6SG8KcnlZQlhqOFlTdkNjSTAz
cG56eG1IUGNueDhNdm5uNVp0Yy9UNXlXVnNacjYxN1MxTEpmSDFDdS9ybFpTSmlwbGpOVDBjNjhh
WFJIdApjT3JhbkJlcjFxVXJZUENmWmUwY1pGdjU1Ykt4WDlQbTRjcmFJWE5TS25YT21GakZJSmE1
bEN1VCsxd3UrR0k3NXZPOHBHejcyUWJHCjB0VFlHbHRIZ3Z0c1YvMCt6VDVwMGI1bG1kK2l1cDNP
MjBlL1BhdjBaWCs1cWVkbHZDVGZxdHR5djYvNis4dVVOUndML2J6NXZMK3QKcHUvejY0bmxZRVEr
NysrejhycWZ4c1pSUDk4cXovdjE2N2Rsam52dDl0eGZkdzR1cEU5eVVHbVlhc3NiTGxmenVsK0h1
ZTN2bDlWdgpUOTRmMjhlTWZSL002WWVhOXN0ejVna012enQzWFNDWFRwU1VDVk1HZkk3QTUwaHVq
aTZXb3dDNWpDUFhWK2N5aGh4SkxFZjd5ckp6CkgvTTlucU9OaTFJdUU4c1hmemt6a0MvYlRDYnlP
cGR2WmFJK04rV1ViMDUzYitjRzlVd0tjdmxEem9Ma1MyTlo0SkxKZS96U2x2SWwKZDhteENVYVpj
MzYxbmNTZjF3WWZLU3RCU1lMRWtuZFpHMnZLWGJic2R0Ly9vSFhQRjJvNVFyZEtPVFhMcGtzenVZ
dHJndVgrRi9IVQp1akkrTW03VHA3SHJncUwyTVdmYVlwOGdiemRUam5wbFE4NjZhOXJhcjBzdU04
eGxQd2xvRTV2bVg0NENKczN0NTFYcnNyWFc1Zi90CnQzTjVydnBQRm8zOTdiUTU0N0w5LzhLMHFr
SHU3OHJSNkZ5RG5qT2I1WDZRaFlWdjg4MWw2OGoxM1FtZWE5TWl2MFg3anRONSsraGIKck5xWC9X
VnJuL2ZIK0Y2c3I5UXIzMnZsOHNYeVhoNlhqZXQ4dG13YzViT2RUSE1jdHJNOXArNXBkODRXRE5O
Mnl4dVdzOHJyT2Uwdgo2K20zWjZ6ZnhyNFBkcUllcFQ0ZUNVUWc4NjQ5VFpsMGw2TTh1WWswRzNr
MjZ0eXNXRklxbGNzWnNqTk9tanJxdDVWcjlmL21rcWNjCjhlMm5mQW5uWnJRL2F5Zm0rYW5VL012
bFlVbnQyMHQva3JmTFVQbWZkaFhkZGZLbFhkbng1K2I4QkdUTFV0YWRmMGtKV25JWlJnS2kKWEtL
MDdDeEFqbnhrbVJ5MUtTazdrYnlYc3orNTBUQ3ZjMzlJemlaa0VscHp5ZHRVdVdWZE8vbVl5MERL
R1lWU2J0cVJzMVZUcVdiWgozUHdZZzZROFh6WGxNcE5jdy90WU80NFR3T1IxTHNOS25YTXo5MjZt
OUdPNk9KZEMxYlMxWDVjRVRqbWpscU45bWV5Vyt6aVNaMjQvCnIxcVhmcjBXUGUrM2M5SG5xN3kz
Yk96UGJmT3dEcXNZWlBLZk01SDVoY0RCYm1sWTdMWmZqNjBqZGMwWjFmd3JLZHRZRGt3TTB6Sy8K
WWI3eStuVGRQa3I5ODdoS1gvYVhXK1Y1ZjR6dnhmcEszWExqZVE2eWpYMEhsYng1SEJ0SC9Ydzc4
WHlPdzNhMjV4amtPem1YV2c3VApkc29ibHJIcTZ6bnR6N3I2N1pucXQ3SHZnN24xV0xYZDhtKyt3
TGEvNTdLakxLbi92THlYeC80UmxaSTlseEVrNk1ndjFtVENtNk5qClNibmtJRWRoU3NvWFh3S1RH
OXNKMHZCb2RIOTkvZWRsMlVXUC9icVV5eHB5OW1VSWtNdXNoa2ZaTTdFcmwydmxWeTdLOGxuUG9u
THoKZmliMkpmV2VkcGVuNUEvUDVhaHBXWGNzSG1qLy9YRGt4cmVzSnplZmw1UWJVSlB5eFY1U1dX
ZXBYNEtVZkxIa0pydVNFb3prck1rMQo3V2Nwc3dRY2FYT3VaUytuM1dOZWJQdHRURGxUNVNaUHFV
UDZjRmthcmlPWEsvWHo1M1grSmVYZWw3US92eGJXV2JTb3VVRTN2MTZ5CktQWEx6dlc5WTh2bXV0
NmNZY3VYUys2blNCLzNKMTM5c29ZV1pkM1h0dlZMZjdaczNYak5HYjJjbFVpQW0vZjZLVzBzbDJi
bC9ZeVAKL2hnWnZ1NHZXNTRmUGVhUzF3bHlybS9YbDBCMFZhY1laanprVjV1eWJPbi9sRnZUejZs
cnJ5cGRJRlJlVDlVbFl5VEJYajlBem5yNwphVms3a3llWGF1YnlzVmhtckdiaW5FbFVTV1A5dG16
c1Y3ZTV0NTRjc01qTFdDU1ZqL0k0WmRBdGNPdy81WnJ6VEJKU1ZvTHJNazVTClZ2NlY3ZUhZSXQx
WTYyK253N0UxM0E3SDFwSDdvREtHYzBZcytmTHZsKzMyVm42UW9PK1plMTZXN1R0SzNmcVBwK3Yy
a1g0by9UclYKbDBQcnRMOXZ0bXpmc1d5TVQ2MHZZMkhaL2pMckhvNkZ0Q05qcUtSOExaVFh1VXd1
KzZrY0hTOHAvWi90cWJTL3ZKL0hzWEdVTXFmYQpQZng4ckMxVER2MTY1WG0vN095SHg3NER5N0w5
dnNuM1pTNUZMQWRLUzU0ODF1d2ZGbzJEZmhsNTNxOWoxcjJUN1UvNXk5b3oxVzlqCjN3ZFQvWkEy
L0s3ZG4vZm5jYW1MUkdDWndJRjc3NzMzNzVaOTJMMy82RzgvOW5FbWJMbGhOMTlDU1huTTVEY2Ji
VGx0bWN0UmZ0c0cKRldWanpKZHFJdkg4Sk9rRDdaZGFOdkljR2M2Z3pyV0ZXYjVNN2hPWTVJdXZ1
d215dlJTaGY3TnB6YnEzYW5YaXY4TzZaQ1BNQm5wbAp1LzcrNURBLzRaYzY1N09jZlVuRW41VGc2
TG0yam1sdXUyaDNpVVR1RGNrUjdnUVBaV05QdVNrdkcyQzVmS3g5MlIwdFN0dHplVStPCmNPWkd6
K3dZeXlWZ1dlNzV0dnpzOE9JeFRMa3hPaitOR2FkTUVPT1NzeUNaY04zVFRwaXp6a3hDSDJ6elpk
MzVsNGx2SnFRNTQ1VDYKdDZ2bytpSVd1WUUxbitmTDVlZHQvZU9iU1V4dXZNc3AyTktHL05Sbnlr
b1ovWWxwK25pczNOVHo5OGVXemVRc1FVSjJ1TU9Vc3NzNgo4bVdaRytBeVhqS095cy85cFkwSkFE
TldVdWVNbjdRbmVYT21ZZEdYUk5iVEx6dGZHcW5Eb21YamxnbFhmc0kwcHJISWwzRHBqMXh1CjF5
OXJhRkhhbE9hbHpybUJQVzNONjR5TDNQVGZiM3RzTXM3ZWFUL0w1U3FaZk1RZzIxRGFsNTE0LzNV
bTJXV2JLdXVLMFpOdHZmT1kKeTNWeTAzZXU2MDNkVThZcVRobkR2MnJyay9HVmZ3bkFVNWY4cWxy
NmZLeWZNMEZPWGRQdTlGbTI0ZlJOK2l6OWt2Zkc2cEp4LytOMgplOGoybnJNd3d6VFd6dVROd1l1
c1AyZWRramUveEJYejlGbjZlNnpmbG8zOUdJNjFPZDVwWTdhVi9GcFZPanB1NllQMmFYY0RlZm8z
CjkyOWs3Q2VvVDNDN2FPeWxEZjJVZlU3MmJ4bC82WU5NQ3JPOXB1eHNIN2trSzIxSys4cDljdjAy
Wmp4bEh6b2NXOGxUdHNNYzFWMjIKanV4N3NxMWwyOHIybXpPc09ST2R3RHlwdjY2c1A3LzB0V2pm
c1pYNzVQL0c1blRiUHJyOVdOdkdzbTFtbThnK1lsRmZMdHZuOWMwVwo3VHZHeHZqWXRwd2JnaDg5
TnU0WDdTOVRibjgvay8xS0xyTmR0cTNtT3lYYlRDYWc2Zi9jRTVJQm5YR1QvVURHUlQrTmpkVWM4
TW4yCmtXMHo3Vi9VN3I3TGJ1NzdjMkF0OVZuMkhaZzJaWnZKQWFwOEIyYjd6dG5nL0JwVy96dXZ0
UDEwK080YmE4OVV2M1h6cTNiTUwvbysKeU5nZjI1OW52NStEcUJrcnk2N0tLSTRlenhDQjIrNGRi
ZWkrKysrL3Y5MzBSdEkvZm4va3c1MzVLQnQrTGtmS2wxUW02dTNMN242UQpSVHVBblZuaitwV1NM
N2xNTEdLdzB5a2RuSjlVekZtWDNHZFRVdDdQK2pKcHk5dEQ3MHpTeWhtcXNrei9jVm01L1R4VHo2
ZldNVncrClg2VDVjb3RWcnluRGJOM3JZZG1yTERzc2NGalc4UE84VHZtWmtKVTBmRjNlMzZuSHN0
MHNjcWh0YTQ1WUpVQnJoMGMzeWMxWXlPUW0KazlGeUpyQjlhK0g0cVczSFdGMnl2a3lVOHZQS3k5
SlVPMU8vak4zc040WVd5L290eTR5Ti9ibHRIclpsekdDWU54T3lzaTB1YXRNdwovN0kyRHZQMVg0
K3RJMjFQTUpuSnhqQ1ZkVTM1RFpmTDYrSDJNSHk5YUprNTcwMk5tOXI5eUxBT3EvUmxsaTFtdzNM
NnIzZXJydjExCjFEelBlRXZ3a3YxK1RmK01qYU9wZGs5OVBxenZLdTdEc2pOZUYzMEhaaDMvMlA3
a2YzNEk1alB0UGlqdFdUVHVoM1VaSzIrWWQ5bnIKWVIyWDVTdnYxN2EvcGozTCtxM20rMkNzSGds
d2EveEttenh1dU1CZjNqL2F3SGF6Ty9VcGtYVko1V2hiZVgybVBPYkl4RzZsVExRVwozY1NmOTVQ
NlIraTMzdG42NzFqd2tSekx5dTJYTWZWOGFoM0Q1VFBCdjdCVWZQamg0UFd3N0ZXV0hSUTFHb2lW
dlAzZ0krOE5YNWQ4Ck8vWFkzMjZHWmRhME5VZktjaWF5L01HOFVrWjQrK054YmorUDFTWDNmcFV6
Z1dYOXc4ZXBkcGI4aXphaDRSZ29lY3NRV2piMjU3YTUKcktjOGpobVVQT1d4QkI5NXZhaE5KVjk1
WE5iRzh2bWl4N0YxcE8zTEpoRmxYVk4raTlZNTNCNkdyeGN0TStlOXFYRlR1eDhaMW1HVgp2c3l5
eFd4WVR2LzFidFcxdjQ2YTV4bHZwYjQxL1RNMmprbzV5OVk3OWZsd3VWWGNoMlhYYk05cFM3ODl3
L1gzWDllVTE4Ky82UG13Cmpvdnk5TjlicGYxWmJxdzkvWGFXZlV6dDk4RllQWmJ0Ti9ydDhKeEFF
VmlMQUtSVXhpTUJBbnNua011a2NqbGsvdmhjTHNISVViRWMKK2M0bEM0c0MxdDJvV1lLUFpVSEFi
cXhQbVFRSUVDZ0NPWk9SczArNWZHZ1QwcHoyck1QM3dTYjBnVGJVQ3doQTZxM2tKTEJSQXJsVwo5
LzlzL3g3T1MrMDF6N2tHT2o4WHZGZUJSNEVVZkJRSmp3UUk3TFZBOTRkbmo5MS9sdnV0RnQyRHVk
ZDFtck8rT2UxWmgrK0RPVzIzCjdPa25JQUE1L2ZwTWpRbnNtRUFDZ053b0xSRWdRT0JNRThpUGhH
eFNtdHNlM3dlYk5Ccld2eTNsOHIvMXI2a2FFaUJBZ0FBQkFnUUkKRUNCdzJnc0lRRTc3THRRQUFn
UUlFQ0JBZ0FBQkFxZVB3UFFsV0JNL28zWDZORlZOQ1JBZ1FJQUFBUUlFQ0JBNDFRTE9nSnpxSHJC
KwpBZ1FJRUNCQWdBQUJBbWVRZ0FEa0RPcHNUU1ZBZ0FBQkFnUUlFQ0J3cWdVRUlLZTZCNnlmQUFF
Q0JBZ1FJRUNBd0Jra0lBQTVnenBiClV3a1FJRUNBQUFFQ0JBaWNhZ0VCeUtudUFlc25RSUFBQVFJ
RUNCQWdjQVlKQ0VET29NN1dWQUlFQ0JBZ1FJQUFBUUtuV2tBQWNxcDcKd1BvSkVDQkFnQUFCQWdR
SW5FRUNBcEF6cUxNMWxRQUJBZ1FJRUNCQWdNQ3BGaENBbk9vZXNINENCQWdRSUVDQUFBRUNaNUNB
QU9RTQo2bXhOSlVDQUFBRUNCQWdRSUhDcUJRUWdwN29Icko4QUFRSUVDQkFnUUlEQUdTUWdBRG1E
T2x0VENSQWdRSUFBQVFJRUNKeHFBUUhJCnFlNEI2eWRBZ0FBQkFnUUlFQ0J3QmdrSVFNNmd6dFpV
QWdRSUVDQkFnQUFCQXFkYVFBQnlxbnZBK2drUUlFQ0FBQUVDQkFpY1FRSUgKcDlyNi9lOVA1ZkE1
QVFJN0xYRC8vVHRkb3ZJSUVDQkFnQUFCQXVzaE1CbUFwSm9tUSt2UldXcHhaZ2dJK3MrTWZ0WktB
Z1FJRUNCdwpwZ3E0Qk90TTdYbnRKa0NBQUFFQ0JBZ1FJSEFLQkFRZ3B3RGRLZ2tRSUVDQUFBRUNC
QWljcVFJQ2tETzE1N1diQUFFQ0JBZ1FJRUNBCndDa1FxTG9IcExaZS8ray8vYWZhclBJUk9PTUUv
dlp2Ly9hTWE3TUdFeUJBZ0FBQkFnU0dBczZBREVXOEprQ0FBQUVDQkFnUUlFQmcKMXdRRUlMdEdx
MkFDQkFnUUlFQ0FBQUVDQklZQ0FwQ2hpTmNFQ0JBZ1FJQUFBUUlFQ095YWdBQmsxMmdWVElBQUFR
SUVDQkFnUUlEQQpVRUFBTWhUeG1nQUJBZ1FJRUNCQWdBQ0JYUk1RZ093YXJZSUpFQ0JBZ0FBQkFn
UUlFQmdLQ0VDR0lsNFRJRUNBQUFFQ0JBZ1FJTEJyCkFnS1FYYU5WTUFFQ0JBZ1FJRUNBQUFFQ1F3
RUJ5RkRFYXdJRUNCQWdRSUFBQVFJRWRrMUFBTEpydEFvbVFJQUFBUUlFQ0JBZ1FHQW8KSUFBWmlu
aE5nQUFCQWdRSUVDQkFnTUN1Q1FoQWRvMVd3UVFJRUNCQWdBQUJBZ1FJREFVRUlFTVJyd2tRSUVD
QUFBRUNCQWdRMkRVQgpBY2l1MFNxWUFBRUNCQWdRSUVDQUFJR2hnQUJrS09JMUFRSUVDQkFnUUlB
QUFRSzdKaUFBMlRWYUJSTWdRSUFBQVFJRUNCQWdNQlFRCmdBeEZ2Q1pBZ0FBQkFnUUlFQ0JBWU5j
RUJDQzdScXRnQWdRSUVDQkFnQUFCQWdTR0FnS1FvWWpYQkFnUUlFQ0FBQUVDQkFqc21vQUEKWk5k
b0ZVeUFBQUVDQkFnUUlFQ0F3RkJBQURJVThab0FBUUlFQ0JBZ1FJQUFnVjBURUlEc0dxMkNDUkFn
UUlBQUFRSUVDQkFZQ2doQQpoaUplRXlCQWdBQUJBZ1FJRUNDd2F3SUNrRjJqVlRBQkFnUUlFQ0JB
Z0FBQkFrTUJBY2hReEdzQ0JBZ1FJRUNBQUFFQ0JIWk5RQUN5CmE3UUtKa0NBQUFFQ0JBZ1FJRUJn
S0NBQUdZcDRUWUFBQVFJRUNCQWdRSURBcmdrSVFIYU5Wc0VFQ0JBZ1FJQUFBUUlFQ0F3RkJDQkQK
RWE4SkVDQkFnQUFCQWdRSUVOZzFBUUhJcnRFcW1BQUJBZ1FJRUNCQWdBQ0JvWUFBWkNqaU5RRUNC
QWdRSUVDQUFBRUN1eVlnQU5rMQpXZ1VUSUVDQUFBRUNCQWdRSURBVUVJQU1SYndtUUlBQUFRSUVD
QkFnUUdEWEJBUWd1MGFyWUFJRUNCQWdRSUFBQVFJRWhnSUNrS0dJCjF3UUlFQ0JBZ0FBQkFnUUk3
SnFBQUdUWGFCVk1nQUFCQWdRSUVDQkFnTUJRUUFBeUZQR2FBQUVDQkFnUUlFQ0FBSUZkRXhDQTdC
cXQKZ2drUUlFQ0FBQUVDQkFnUUdBb0lRSVlpWGhNZ1FJQUFBUUlFQ0JBZ3NHc0NBcEJkbzFVd0FR
SUVDQkFnUUlBQUFRSkRBUUhJVU1ScgpBZ1FJRUNCQWdBQUJBZ1IyVFVBQXNtdTBDaVpBZ0FBQkFn
UUlFQ0JBWUNnZ0FCbUtlRTJBQUFFQ0JBZ1FJRUNBd0s0SkNFQjJqVmJCCkJBZ1FJRUNBQUFFQ0JB
Z01CUVFnUXhHdkNSQWdRSUFBQVFJRUNCRFlOUUVCeUs3UktwZ0FBUUlFQ0JBZ1FJQUFnYUhBd2VF
YmMxNy8KN2QvKzdaekZMVXVBQUFFQ0JBZ1FJRUNBd0lZTE9BT3k0UjJzZVFRSUVDQkFnQUFCQWdU
V1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFD
eVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFF
dUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFn
UUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFC
QWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpj
UUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExo
SGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VD
QkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFn
QUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNC
TlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFB
TEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9T
NEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVD
QkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFB
RUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5s
eEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VF
ZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFR
SUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVD
QUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlF
CjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFB
c2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJo
TGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdR
SUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFB
UUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJY
RUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0
UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVC
QWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJ
QUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFn
VFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFB
Q3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3Zh
RXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JB
Z1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FB
QkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRa
Y1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxM
aEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtF
Q0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JB
Z0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVD
Qk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xB
QUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlv
UzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlF
Q0JBZ0FBQkFnUTJYT0JnVGZ1Ky8vMmFYUElRSUVDQUFBRUMKQkFnUUlFQmdYR0F5QUxuLy92RUNm
RXFBQUFFQ0JBZ1FJRUNBQUlGYUFaZGcxVXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZwpR
SUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNC
QWdRS0JXUUFCU0t5VWZBUUlFCkNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZ
QUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUUKQ0JBZ1FJQUFnVm9CQVVpdGxI
d0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlB
QQpBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JB
Z01GdEFBREtiVUFFRUNCQWdRSUFBCkFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FC
a05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWcKUUlEQWJBRUJ5R3hDQlJB
Z1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlF
Q0JBZwpRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJB
cllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFClpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0
bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzEKQWdLUVdpbjVDQkFn
UUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVD
QkFnTUZ0QQpBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJn
QUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBCjFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENC
UkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFoKaEFvZ1FJQUFB
UUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJ
QkFyWUFBcEZaSwpQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFV
aXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBCkFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNC
QWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWcKUUlBQUFR
SUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdD
MmdBQmtOcUVDQ0JBZwpRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4
Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFCkNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlB
QUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUUKQ0JB
Z1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JCaXZramxBQUFT
TzBsRVFWUWdRSUFBZ1ZvQgpBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFn
UUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBCm1VMm9BQUlFQ0JBZ1FJQUFBUUlF
YWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnEK
cGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFB
UUlFQ0JBZ1FJREFiQUVCeUd4QwpCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdR
SUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmCkFRSUVDQkFnUUlBQUFRS3pC
UVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtv
QUEKQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNC
QWdRSUFBQVFLMUFnS1FXaW41Q0JBZwpRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFR
SUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnClFJQUFBUUlFQ05RS0NF
QnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRB
QUFRSUUKQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JB
Z1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRQpDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFL
ekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBCkFRSUVaZ3NJUUdZ
VEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlF
Q0JBZ1FJQUEKQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFB
QVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZwpNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFL
Q0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvCkZSQ0ExRXJK
UjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVD
QkFnUUlBQWdka0MKQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFB
UUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQQpwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lR
R1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNCkpsUUFB
UUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJ
QUFBUUlFYWdVRUlMVlMKOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNO
UUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQwpDQkFnUUlBQUFRSUVDQkNvRlJDQTFF
ckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBCkFR
SUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlB
QUFRS3pCUVFnc3drVlFJQUEKQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdz
SVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZwpRSUFBQVFJRUNNd1dFSURNSmxR
QUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFn
ClFJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlF
Q05RS0NFQnFwZVFqUUlBQUFRSUUKQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNB
MUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRQpDQkFnVUNzZ0FLbVZrbzhB
QVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdR
SUFBCkFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVa
Z3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUEKZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1K
bFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWQpMU0FBbVUyb0FBSUVD
QkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFR
SUVDTlFLCkNFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZS
Q0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUIKeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtv
OEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCUwpLeVVmQVFJRUNC
QWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJ
RVpnc0lRR1lUCktvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlE
TUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjUKQ0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJ
RUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRQpDQkFnUUlB
QUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNv
RlJDQTFFckpSNEFBCkFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21W
a284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUEKQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlF
Q0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZwpRSUFB
QVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dF
SURNSmxRQUFRSUVDQkFnClFJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9B
QUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUUKQ0JBZ01GdEFBREtiVUFFRUNCQWdR
SUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRQpD
QkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FL
bVZrbzhBQVFJRUNCQWdRSUFBCmdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFR
SUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkEKcllBQXBGWktQZ0lFQ0JBZ1FJ
QUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013
VwpFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUy
b0FBSUVDQkFnUUlBQUFRSUVhZ1VFCklMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JB
Z1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmsKTnFFQ0NCQWdRSUFBQVFJ
RUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3Nn
QUttVgprbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVm
QVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWClFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFn
UUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0UKQ0JBZ1FJQUFBUUlF
Q013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFt
VTJvQUFJRQpDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVD
QkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBCkFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFB
UUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUEKQVFJRUNCQWdV
Q3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5
VWZBUUlFQ0JBZwpRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNC
QWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnClFJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFR
SUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUUKQ0JDWUxT
QUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFF
RUNCQWdRSUFBQVFJRQpDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlB
QUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBCmJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JB
Z1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQlcKUUFC
U0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lF
Q0JBZ1FJQUFBUUlFWmdzSQpRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFB
QVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRCldpbjVDQkFnUUlBQUFRSUVDQkNZ
TFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2IK
VUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdR
SUFBQVFJRUNCQ29GUkNBMUVySgpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVD
QkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nClFJQUFBUUlFQ0JBZ1FLQldR
QUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1Bn
SUUKQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJ
QUFBUUlFQ013V0VJRE1KbFFBQVFJRQpDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNC
Q1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBCkFRSUVDQkFnTUZ0QUFE
S2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JB
Z1FJQUEKQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJ
RUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZwpRSUFBZ2RrQ0FwRFpoQW9nOFArM1g0YzJBQUFBQ01Q
Ky81b1hsbURyQ2FKdUJBZ1FJRUNBQUFFQ0JLcUFBS2xTZGdRSUVDQkFnQUFCCkFnUUkzQUlDNUNa
MFFJQUFBUUlFQ0JBZ1FJQkFGUkFnVmNxT0FBRUNCQWdRSUVDQUFJRmJRSURjaEE0SUVDQkFnQUFC
QWdRSUVLZ0MKQXFSSzJSRWdRSUFBQVFJRUNCQWdjQXNJa0p2UUFRRUNCQWdRSUVDQUFBRUNWVUNB
VkNrN0FnUUlFQ0JBZ0FBQkFnUnVBUUZ5RXpvZwpRSUFBQVFJRUNCQWdRS0FLQ0pBcVpVZUFBQUVD
QkFnUUlFQ0F3QzBnUUc1Q0J3UUlFQ0JBZ0FBQkFnUUlWQUVCVXFYc0NCQWdRSUFBCkFRSUVDQkM0
QlFUSVRlaUFBQUVDQkFnUUlFQ0FBSUVxSUVDcWxCMEJBZ1FJRUNCQWdBQUJBcmVBQUxrSkhSQWdR
SUFBQVFJRUNCQWcKVUFVRVNKV3lJMENBQUFFQ0JBZ1FJRURnRmhBZ042RURBZ1FJRUNCQWdBQUJB
Z1NxZ0FDcFVuWUVDQkFnUUlBQUFRSUVDTndDQXVRbQpkRUNBQUFFQ0JBZ1FJRUNBUUJVUUlGWEtq
Z0FCQWdRSUVDQkFnQUNCVzBDQTNJUU9DQkFnUUlBQUFRSUVDQkNvQWdLa1N0a1JJRUNBCkFBRUNC
QWdRSUhBTENKQ2IwQUVCQWdRSUVDQkFnQUFCQWxWQWdGUXBPd0lFQ0JBZ1FJQUFBUUlFYmdFQmNo
TTZJRUNBQUFFQ0JBZ1EKSUVDZ0NnaVFLbVZIZ0FBQkFnUUlFQ0JBZ01BdElFQnVRZ2NFQ0JBZ1FJ
QUFBUUlFQ0ZRQkFWS2w3QWdRSUVDQUFBRUNCQWdRdUFVRQp5RTNvZ0FBQkFnUUlFQ0JBZ0FDQktp
QkFxcFFkQVFJRUNCQWdRSUFBQVFLM2dBQzVDUjBRSUVDQUFBRUNCQWdRSUZBRkJFaVZzaU5BCmdB
QUJBZ1FJRUNCQTRCWVFJRGVoQXdJRUNCQWdRSUFBQVFJRXFvQUFxVkoyQkFnUUlFQ0FBQUVDQkFq
Y0FnTGtKblJBZ0FBQkFnUUkKRUNCQWdFQVZFQ0JWeW80QUFRSUVDQkFnUUlBQWdWdEFnTnlFRGdn
UUlFQ0FBQUVDQkFnUXFBSUNwRXJaRVNCQWdBQUJBZ1FJRUNCdwpDd2lRbTlBQkFRSUVDQkFnUUlB
QUFRSlZRSUJVS1RzQ0JBZ1FJRUNBQUFFQ0JHNEJBWElUT2lCQWdBQUJBZ1FJRUNCQW9Bb0lrQ3Bs
ClI0QUFBUUlFQ0JBZ1FJREFMU0JBYmtJSEJBZ1FJRUNBQUFFQ0JBaFVBUUZTcGV3SUVDQkFnQUFC
QWdRSUVMZ0ZCTWhONklBQUFRSUUKQ0JBZ1FJQUFnU29nUUtxVUhRRUNCQWdRSUVDQUFBRUN0NEFB
dVFrZEVDQkFnQUFCQWdRSUVDQlFCUVJJbGJJalFJQUFBUUlFQ0JBZwpRT0FXRUNBM29RTUNCQWdR
SUVDQUFBRUNCS3FBQUtsU2RnUUlFQ0JBZ0FBQkFnUUkzQUlEQjBpb0lSQXVOK29BQUFBQVNVVk9S
SzVDCllJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52684</attachid>
            <date>2010-04-06 17:17:14 -0700</date>
            <delta_ts>2010-04-06 23:56:24 -0700</delta_ts>
            <desc>Patch6</desc>
            <filename>bug6649734-6.txt</filename>
            <type>text/plain</type>
            <size>129450</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzE2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEzIEBACisyMDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICBUaGUgZ2x5
cGggY2FjaGUgaGFzIGJlZW4gYWxzbyB1cGRhdGVkIHRvIGFsbG93IHN0b3JpbmcgdGhlIGdseXBo
IGJvdW5kaW5nIGJveCB0b2dldGhlciB3aXRoIHRoZQorICAgICAgICBob3Jpem9udGFsIHdpZHRo
LiBUaGUgYm91bmRpbmcgYm94IGlzIHBvcHVsYXRlZCBvbmx5IGZvciBjb21wbGV4IHRleHQuCisg
ICAgICAgIAorICAgICAgICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhcyBi
ZWVuIHdyaXR0ZW4gYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IEZpbGUg
bmFtZSBjaGFuZ2UuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEZpbGUgbmFtZSBjaGFuZ2Uu
CisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogQWRkZWQgcGFyYW1ldGVyIGluIGV4cG9ydGVk
IGZ1bmN0aW9uLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRmlsZSBuYW1lIGNoYW5nZS4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRmlsZSBuYW1lIGNoYW5nZS4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEZpbGUgbmFtZSBj
aGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogQWRkZWQgZ2x5cGhPdmVyZmxvdyBwYXJhbWV0ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhPdmVyZmxvdzo6R2x5cGhPdmVyZmxvdyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6d2lkdGgpOiBBZGRlZCBnbHlwaE92ZXJmbG93IHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6Y2FuVXNlR2x5cGhDYWNoZSk6IE1vZGlmaWVkIHRvIHJlbmRlciBjaGFyYWN0ZXJzIHdpdGgg
c3RhY2tlZCBkaWFjcml0aWNzIHdpdGggY29tcGxleCB0ZXh0IHBhdGguCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcDogQ29waWVkIGZyb20gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Okds
eXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKTogQ2xhc3MgbmFtZSBjaGFuZ2VkIHRv
IHJlZmxlY3QgbmV3IHNlbWFudGljcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aE1ldHJpY3NNYXAuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmguCisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6OkdseXBoTWV0
cmljc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6On5HbHlwaE1ldHJp
Y3NNYXApOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjptZXRyaWNzRm9yR2x5
cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjp3aWR0aEZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6c2V0TWV0cmljc0ZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6bWV0
cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhN
ZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
TWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9XaWR0aEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6
OmFkdmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQp
OiBBZGRlZCBuZXcgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6IEFkZGVkIG5ldyBwYXJhbWV0ZXIuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEds
eXBoc0FuZEFkdmFuY2VzKTogTW9kaWZpZWQgdG8gdXNlIEdseXBoT3ZlcmZsb3cuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjptaW5HbHlwaEJvdW5kaW5nQm94WCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1heEdseXBoQm91bmRp
bmdCb3hYKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVy
OjptYXhHbHlwaEJvdW5kaW5nQm94WSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDb21wbGV4VGV4dE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdp
ZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9h
dFdpZHRoRm9yQ29tcGxleFRleHQpOiBBZGRlZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKTogQWRkZWQgcGFyYW1l
dGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdESUdseXBo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVDb250cm9sbGVyOjpVbmlzY3JpYmVDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5k
UGxhY2VJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5
cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6
bWF4R2x5cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJv
bGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJl
Q29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFkpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNl
Qm94ZXNIb3Jpem9udGFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29t
cHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OmNvbXB1dGVWZXJ0aWNhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpzZXRGYWxsYmFja0Zv
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmZhbGxiYWNrRm9udHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6c2V0R2x5cGhPdmVyZmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpnbHlwaE92ZXJmbG93KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJv
eDo6Y2xlYXJHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpSZW5k
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKTogQWRkZWQgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Ojp3aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDogUmVuYW1l
ZCBtZW1iZXIgdmFyaWFibGUuCisKIDIwMTAtMDQtMDYgIEphbWVzIFJvYmluc29uICA8amFtZXNy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4
OiBXZWJDb3JlL0FuZHJvaWQubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLm1rCShy
ZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvQW5kcm9pZC5tawkod29ya2luZyBjb3B5KQpAQCAt
NDM2LDcgKzQzNiw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAog
CXBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAgXAogCXBsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRlZEltYWdlLmNwcCBcCiAJcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5v
ZGUuY3BwIFwKLQlwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcCBcCisJcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcCBcCiAJcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuY3BwIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIFwKIAlw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBcCkluZGV4OiBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9u
IDU3MTY1KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTYx
MSw4ICsxNjExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoQnVmZmVyLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQ
YWdlVHJlZU5vZGUuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRy
ZWVOb2RlLmggXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAg
XAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oIFwKKwlXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAgXAorCVdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50Lmgg
XAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBcCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LmJhc2UuZXhwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAko
d29ya2luZyBjb3B5KQpAQCAtOTA4LDcgKzkwOCw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlMTdzdWcKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlM3Vy
bEV2CiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZThtaW1lVHlwZUV2CiBfX1pO
SzdXZWJDb3JlMjZOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjZpc0RvbmVFdgotX19aTks3V2Vi
Q29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRSdW5FUE4zV1RGN0hhc2hTZXRJUEtOU18x
NFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9FRU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVF
RQorX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRSdW5FUE4zV1RGN0hh
c2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9FRU5TNF8xMEhhc2hU
cmFpdHNJUzhfRUVFRVBOU18xM0dseXBoT3ZlcmZsb3dFCiBfX1pOSzdXZWJDb3JlNEZvbnQxMXBy
aW1hcnlGb250RXYKIF9fWk5LN1dlYkNvcmU0Rm9udDhkcmF3VGV4dEVQTlNfMTVHcmFwaGljc0Nv
bnRleHRFUktOU183VGV4dFJ1bkVSS05TXzEwRmxvYXRQb2ludEVpaQogX19aTks3V2ViQ29yZTRL
VVJMMTFjcmVhdGVDRlVSTEV2CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjMyMiw4ICsyMzIyLDggQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaFdpZHRoTWFwLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoTWV0cmljc01hcC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
TWV0cmljc01hcC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAnLApJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTIyNzc2
LDExICsyMjc3NiwxMSBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhXaWR0aE1hcC5jcHAiDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdseXBoTWV0cmljc01hcC5j
cHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhXaWR0aE1hcC5oIg0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHbHlwaE1ldHJpY3NNYXAuaCINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zODk4LDggKzM4OTgsNiBA
QAogCQlCMkMzREE2QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhCdWZmZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVCMEQwMDZDRDYwMEVG
NkYyNiAvKiBHbHlwaEJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUIyQzNEQTZEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVl
Tm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MkMzREE1QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICovOyB9Owog
CQlCMkMzREE2RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVEMEQwMDZDRDYw
MEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUIyQzNEQTZGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlw
aFdpZHRoTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEQTVFMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmNwcCAqLzsgfTsK
LQkJQjJDM0RBNzAwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lkdGhNYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVGMEQwMDZDRDYwMEVG
NkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQjJDOTZEOEQwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNl
Z0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCAqLzsg
fTsKIAkJQjJDQjkyNDIwQjVCRDk2NjAwOUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjNC
MEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAgKi87IH07CiAJCUIy
Q0I5MjQ0MEI1QkQ5NzAwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJDQjkyM0MwQjVCRDk0MTAw
OUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlLmggKi87IH07CkBAIC00NzAwLDYgKzQ2OTgs
OCBAQAogCQlDNTE2MEVFQjEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE2MEVFOTEwMDQ1
NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmggKi87IH07CiAJCUM1NUUzOEJGMTAwNDBE
NUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4QkIxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0
b3JhZ2VOYW1lc3BhY2VJbXBsLmggKi87IH07CiAJCUM1NUUzOEMwMTAwNDBENUQwMEE1NkJEQiAv
KiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwICovOyB9OworCQlDNUQ0QUE3OTExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhN
ZXRyaWNzTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1RDRBQTc3MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuY3BwICovOyB9
OworCQlDNUQ0QUE3QTExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUQ0QUE3ODExNkJBRkI2
MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzVFOUI2NzcxMDY5N0UxMzAwQzdCQjFBIC8qIFN0b3Jh
Z2VFdmVudERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzVFOUI2NzYxMDY5N0UxMzAwQzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3Bh
dGNoZXIuY3BwICovOyB9OwogCQlDNUVCREQ4NDEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2
ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIu
aCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICov
OyB9OwpAQCAtOTIyMiw4ICs5MjIyLDYgQEAKIAkJQjJDM0RBNUIwRDAwNkNENjAwRUY2RjI2IC8q
IEdseXBoQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaEJ1
ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkMzREE1QzBEMDA2Q0Q2MDBF
RjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdseXBoUGFnZVRyZWVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjJDM0RBNUQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkMzREE1RTBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhXaWR0aE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R2x5cGhXaWR0aE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyQzNEQTVG
MEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHbHlwaFdpZHRoTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIyQzk2RDhDMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhTZWdDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHUGF0aFNlZ0N1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQ0I5MjNCMEI1QkQ5NDEwMDlCQUE3
OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMkNCOTIzQzBCNUJEOTQxMDA5QkFBNzggLyogSlNTVkdFbGVtZW50SW5zdGFu
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHRWxlbWVudEluc3Rh
bmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDA2MSw2ICsxMDA1OSw4IEBA
CiAJCUM1MTYwRUU5MTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM1NUUzOEJCMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTVFMzhCQzEwMDQw
RDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDNUQ0QUE3NzExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRy
aWNzTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdseXBoTWV0
cmljc01hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1RDRBQTc4MTE2QkFG
QjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR2x5cGhNZXRyaWNzTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNUVCREQ4MTEwNUVEREVDMDA1
NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9u
TGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDY0NCwxMCArMTQ2
NDQsMTAgQEAKIAkJCQlCQzIzRjBEQTBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2Uu
aCAqLywKIAkJCQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8sCiAJ
CQkJQjJDM0RBNUIwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoQnVmZmVyLmggKi8sCisJCQkJQzVE
NEFBNzcxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5jcHAgKi8sCisJCQkJQzVE
NEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oICovLAogCQkJCUIyQzNE
QTVDMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgKi8sCiAJCQkJQjJD
M0RBNUQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggKi8sCi0JCQkJQjJD
M0RBNUUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lkdGhNYXAuY3BwICovLAotCQkJCUIyQzNE
QTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi8sCiAJCQkJQkM1M0M2MDcw
REE1NkM1NzAwMjFFQjVEIC8qIEdyYWRpZW50LmNwcCAqLywKIAkJCQlCQzUzQzVGNDBEQTU2Qjky
MDAyMUVCNUQgLyogR3JhZGllbnQuaCAqLywKIAkJCQlCMkEwMTU5MjBBRjZDRDUzMDA2QkNFMEUg
LyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKQEAgLTE3MzkyLDcgKzE3MzkyLDYgQEAKIAkJCQlG
RTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyQzNEQTZDMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJDM0RBNkUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCMkMzREE3MDBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0
aE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0M1RjUwREE1NkI5MjAwMjFFQjVEIC8qIEdy
YWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk2NDBEMDBCRjIyMDA3MUI3ODIgLyog
R3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUz
MDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTE4ODE0LDYg
KzE4ODEzLDcgQEAKIAkJCQk4OTUyNTM1MzExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRy
ZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI1NDJGNERCMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2Vy
R2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzVENEFBN0ExMTZCQUZCNjAw
NjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xOTYzMSw3ICsx
OTYzMSw2IEBACiAJCQkJNTlDNzdGMkExMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2Vy
dmljZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNkQwRDAwNkNENjAwRUY2RjI2
IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlCMkMzREE2RjBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzUzQzYwODBEQTU2QzU3MDAyMUVCNUQgLyogR3JhZGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM1M0M2MEIwREE1NkNGMTAwMjFFQjVEIC8qIEdyYWRpZW50Q0cu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMDE1QTgwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBo
aWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIxMDM0LDYgKzIxMDMzLDcgQEAKIAkJ
CQkyRTNCQkYwNzExNjJEQTExMDBCOTQwOUEgLyogVVVJRC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4OTUyNTM1MjExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzVENEFBNzkxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBo
TWV0cmljc01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBGb250OjpkcmF3
VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbgogICAgIHJldHVybiBkcmF3Q29tcGxleFRleHQoY29u
dGV4dCwgcnVuLCBwb2ludCwgZnJvbSwgdG8pOwogfQogCi1mbG9hdCBGb250OjpmbG9hdFdpZHRo
KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBy
dW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhP
dmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQog
ICAgIGlmIChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQoKSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBm
bG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1CiAgICAgfQogI2VuZGlmCiAK
LSAgICByZXR1cm4gZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7
CisgICAgcmV0dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNrRm9udHMs
IGdseXBoT3ZlcmZsb3cpOwogfQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRS
dW4mIHJ1biwgaW50IGV4dHJhQ2hhcnNBdmFpbGFibGUsIGludCYgY2hhcnNDb25zdW1lZCwgU3Ry
aW5nJiBnbHlwaE5hbWUpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2
aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNiArNTYsMjEgQEAgc3RydWN0IEdseXBoRGF0YTsKIAogY29uc3QgdW5z
aWduZWQgZGVmYXVsdFVuaXRzUGVyRW0gPSAxMDAwOwogCitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7
CisgICAgR2x5cGhPdmVyZmxvdygpCisgICAgICAgIDogbGVmdCgwKQorICAgICAgICAsIHJpZ2h0
KDApCisgICAgICAgICwgdG9wKDApCisgICAgICAgICwgYm90dG9tKDApCisgICAgeworICAgIH0K
KworICAgIGludCBsZWZ0OworICAgIGludCByaWdodDsKKyAgICBpbnQgdG9wOworICAgIGludCBi
b3R0b207Cit9OworCiBjbGFzcyBGb250IHsKIHB1YmxpYzoKICAgICBGb250KCk7CkBAIC04MSw4
ICs5Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9
IC0xKSBjb25zdDsKIAotICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0IHsgcmV0dXJu
IGxyb3VuZGYoZmxvYXRXaWR0aChydW4sIGZhbGxiYWNrRm9udHMpKTsgfQotICAgIGZsb2F0IGZs
b2F0V2lkdGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiog
ZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OworICAgIGludCB3aWR0aChjb25zdCBUZXh0UnVuJiBy
dW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEds
eXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBjb25zdCB7IHJldHVybiBscm91bmRmKGZs
b2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KSk7IH0KKyAgICBmbG9h
dCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gMCkg
Y29uc3Q7CiAgICAgZmxvYXQgZmxvYXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIGludCBleHRy
YUNoYXJzQXZhaWxhYmxlLCBpbnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBj
b25zdDsKIAogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbihjb25zdCBUZXh0UnVuJiwgaW50IHBv
c2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE1OSw3ICsxNzQs
NyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBp
bnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBU
ZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0g
MCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRS
dW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBH
bHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNv
bXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRl
eHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBvaW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQg
dG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBh
dGguY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTcgKzI0LDE3IEBACiAjaW5jbHVk
ZSAiRm9udC5oIgogCiAjaW5jbHVkZSAiQ2hhcmFjdGVyTmFtZXMuaCIKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250RmFsbGJhY2tM
aXN0LmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIK
ICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAj
aW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlICJXaWR0aEl0ZXJhdG9yLmgiCiAK
LSNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKQEAgLTIzNCw2ICsyMzQsMTEgQEAgYm9v
bCBGb250OjpjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRleHRSdQogICAgICAgICBpZiAoYyA8PSAw
eDE5NEYpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgaWYgKGMgPCAweDFF
MDApICAgICAvLyBVKzFFMDAgdGhyb3VnaCBVKzIwMDAgY2hhcmFjdGVycyB3aXRoIGRpYWNyaXRp
Y3MgYW5kIHN0YWNrZWQgZGlhY3JpdGljcworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGlmIChjIDw9IDB4MjAwMCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBp
ZiAoYyA8IDB4MjBEMCkgICAgIC8vIFUrMjBEMCB0aHJvdWdoIFUrMjBGRiBDb21iaW5pbmcgbWFy
a3MgZm9yIHN5bWJvbHMKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYyA8PSAw
eDIwRkYpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NN
YXAuY3BwCShyZXZpc2lvbiA1NzE2NSkJKGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
bHlwaFdpZHRoTWFwLmNwcDo1NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhNZXRyaWNzTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0dseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdp
ZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikKK3sKKyAgICBH
bHlwaFdpZHRoUGFnZSogcGFnZTsKKyAgICBpZiAocGFnZU51bWJlciA9PSAwKSB7CisgICAgICAg
IEFTU0VSVCghbV9maWxsZWRQcmltYXJ5UGFnZSk7CisgICAgICAgIHBhZ2UgPSAmbV9wcmltYXJ5
UGFnZTsKKyAgICAgICAgbV9maWxsZWRQcmltYXJ5UGFnZSA9IHRydWU7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYgKG1fcGFnZXMpIHsKKyAgICAgICAgICAgIGlmICgocGFnZSA9IG1fcGFnZXMt
PmdldChwYWdlTnVtYmVyKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2U7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgbV9wYWdlcy5zZXQobmV3IEhhc2hNYXA8aW50LCBHbHlwaFdp
ZHRoUGFnZSo+KTsKKyAgICAgICAgcGFnZSA9IG5ldyBHbHlwaFdpZHRoUGFnZTsKKyAgICAgICAg
bV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOworICAgIH0KKworICAgIC8vIEZpbGwgaW4g
dGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKKyAgICAg
ICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5cGhXaWR0aFVua25vd24pOworCisgICAg
cmV0dXJuIHBhZ2U7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhNZXRyaWNzTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dseXBoTWV0cmljc01hcC5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNCAr
MjcsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR2x5cGhXaWR0
aE1hcC5oIgorI2luY2x1ZGUgIkdseXBoTWV0cmljc01hcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHRoTWFwOjpsb2Nh
dGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikKK0dseXBoTWV0cmljc01hcDo6R2x5
cGhNZXRyaWNzUGFnZSogR2x5cGhNZXRyaWNzTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWdu
ZWQgcGFnZU51bWJlcikKIHsKLSAgICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKLSAgICBpZiAocGFn
ZU51bWJlciA9PSAwKSB7CisgICAgR2x5cGhNZXRyaWNzUGFnZSogcGFnZTsKKyAgICBpZiAoIXBh
Z2VOdW1iZXIpIHsKICAgICAgICAgQVNTRVJUKCFtX2ZpbGxlZFByaW1hcnlQYWdlKTsKICAgICAg
ICAgcGFnZSA9ICZtX3ByaW1hcnlQYWdlOwogICAgICAgICBtX2ZpbGxlZFByaW1hcnlQYWdlID0g
dHJ1ZTsKQEAgLTQzLDE0ICs0MywxOCBAQCBHbHlwaFdpZHRoTWFwOjpHbHlwaFdpZHRoUGFnZSog
R2x5cGhXaWR0CiAgICAgICAgICAgICBpZiAoKHBhZ2UgPSBtX3BhZ2VzLT5nZXQocGFnZU51bWJl
cikpKQogICAgICAgICAgICAgICAgIHJldHVybiBwYWdlOwogICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIG1fcGFnZXMuc2V0KG5ldyBIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPik7Ci0g
ICAgICAgIHBhZ2UgPSBuZXcgR2x5cGhXaWR0aFBhZ2U7CisgICAgICAgICAgICBtX3BhZ2VzLnNl
dChuZXcgSGFzaE1hcDxpbnQsIEdseXBoTWV0cmljc1BhZ2UqPik7CisgICAgICAgIHBhZ2UgPSBu
ZXcgR2x5cGhNZXRyaWNzUGFnZTsKICAgICAgICAgbV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBh
Z2UpOwogICAgIH0KIAotICAgIC8vIEZpbGwgaW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5r
bm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5
cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKLSAgICAgICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRleChp
LCBjR2x5cGhXaWR0aFVua25vd24pOworICAgIEdseXBoTWV0cmljcyB1bmtub3duTWV0cmljczsK
KyAgICB1bmtub3duTWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGNHbHlwaFNpemVVbmtub3du
OworICAgIHVua25vd25NZXRyaWNzLmJvdW5kaW5nQm94LnNldFdpZHRoKGNHbHlwaFNpemVVbmtu
b3duKTsKKyAgICB1bmtub3duTWV0cmljcy5ib3VuZGluZ0JveC5zZXRIZWlnaHQoY0dseXBoU2l6
ZVVua25vd24pOworICAgIC8vIEZpbGwgaW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93
biBnbHlwaCBpbmZvcm1hdGlvbi4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhN
ZXRyaWNzUGFnZTo6c2l6ZTsgaSsrKQorICAgICAgICBwYWdlLT5zZXRNZXRyaWNzRm9ySW5kZXgo
aSwgdW5rbm93bk1ldHJpY3MpOwogCiAgICAgcmV0dXJuIHBhZ2U7CiB9CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmgJKHJldmlzaW9uIDU3MTY1KQko
ZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuaDo1NzE2NSkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHbHlwaFdpZHRoTWFwX2gKKyNk
ZWZpbmUgR2x5cGhXaWR0aE1hcF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBHbHlwaDsKKworY29u
c3QgZmxvYXQgY0dseXBoV2lkdGhVbmtub3duID0gLTE7CisKK2NsYXNzIEdseXBoV2lkdGhNYXAg
OiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIEdseXBoV2lkdGhNYXAoKSA6IG1f
ZmlsbGVkUHJpbWFyeVBhZ2UoZmFsc2UpIHsgfQorICAgIH5HbHlwaFdpZHRoTWFwKCkgeyBpZiAo
bV9wYWdlcykgeyBkZWxldGVBbGxWYWx1ZXMoKm1fcGFnZXMpOyB9IH0KKworICAgIGZsb2F0IHdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCisgICAgeworICAgICAgICByZXR1cm4gbG9jYXRlUGFn
ZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+d2lkdGhGb3JHbHlwaChnbHlwaCk7Cisg
ICAgfQorCisgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0
aCkKKyAgICB7CisgICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6
ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRoKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBz
aXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVycyBMYXRpbi0xIGluIGEgc2luZ2xlIHBhZ2UuCisg
ICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVdOworCisgICAgICAgIGZsb2F0IHdpZHRoRm9yR2x5
cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGhzW2dseXBoICUgc2l6ZV07IH0K
KyAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEdseXBoIGdseXBoLCBmbG9hdCB3aWR0aCkK
KyAgICAgICAgeworICAgICAgICAgICAgc2V0V2lkdGhGb3JJbmRleChnbHlwaCAlIHNpemUsIHdp
ZHRoKTsKKyAgICAgICAgfQorICAgICAgICB2b2lkIHNldFdpZHRoRm9ySW5kZXgodW5zaWduZWQg
aW5kZXgsIGZsb2F0IHdpZHRoKQorICAgICAgICB7CisgICAgICAgICAgICBtX3dpZHRoc1tpbmRl
eF0gPSB3aWR0aDsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgR2x5cGhXaWR0aFBhZ2Uq
IGxvY2F0ZVBhZ2UodW5zaWduZWQgcGFnZU51bWJlcikKKyAgICB7CisgICAgICAgIGlmICghcGFn
ZU51bWJlciAmJiBtX2ZpbGxlZFByaW1hcnlQYWdlKQorICAgICAgICAgICAgcmV0dXJuICZtX3By
aW1hcnlQYWdlOworICAgICAgICByZXR1cm4gbG9jYXRlUGFnZVNsb3dDYXNlKHBhZ2VOdW1iZXIp
OworICAgIH0KKworICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWdu
ZWQgcGFnZU51bWJlcik7CisgICAgCisgICAgYm9vbCBtX2ZpbGxlZFByaW1hcnlQYWdlOworICAg
IEdseXBoV2lkdGhQYWdlIG1fcHJpbWFyeVBhZ2U7IC8vIFdlIG9wdGltaXplIGZvciB0aGUgcGFn
ZSB0aGF0IGNvbnRhaW5zIGdseXBoIGluZGljZXMgMC0yNTUuCisgICAgT3duUHRyPEhhc2hNYXA8
aW50LCBHbHlwaFdpZHRoUGFnZSo+ID4gbV9wYWdlczsKK307CisKK30KKworI2VuZGlmCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmgJKHJldmlzaW9u
IDU3MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsOSArMjYsMTAgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lm
bmRlZiBHbHlwaFdpZHRoTWFwX2gKLSNkZWZpbmUgR2x5cGhXaWR0aE1hcF9oCisjaWZuZGVmIEds
eXBoTWV0cmljc01hcF9oCisjZGVmaW5lIEdseXBoTWV0cmljc01hcF9oCiAKKyNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CkBAIC0zNyw1MyArMzgsNjcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IEdseXBoOwog
Ci1jb25zdCBmbG9hdCBjR2x5cGhXaWR0aFVua25vd24gPSAtMTsKK2NvbnN0IGZsb2F0IGNHbHlw
aFNpemVVbmtub3duID0gLTE7CiAKLWNsYXNzIEdseXBoV2lkdGhNYXAgOiBwdWJsaWMgTm9uY29w
eWFibGUgeworc3RydWN0IEdseXBoTWV0cmljcyB7CisgICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFu
Y2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OworfTsKKworY2xhc3MgR2x5cGhNZXRyaWNz
TWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBHbHlwaFdpZHRoTWFwKCkg
OiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0KLSAgICB+R2x5cGhXaWR0aE1hcCgpIHsg
aWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9CisgICAgR2x5cGhN
ZXRyaWNzTWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0KKyAgICB+R2x5cGhN
ZXRyaWNzTWFwKCkKKyAgICB7IAorICAgICAgICBpZiAobV9wYWdlcykKKyAgICAgICAgICAgIGRl
bGV0ZUFsbFZhbHVlcygqbV9wYWdlcyk7CisgICAgfQorCisgICAgR2x5cGhNZXRyaWNzIG1ldHJp
Y3NGb3JHbHlwaChHbHlwaCBnbHlwaCkKKyAgICB7CisgICAgICAgIHJldHVybiBsb2NhdGVQYWdl
KGdseXBoIC8gR2x5cGhNZXRyaWNzUGFnZTo6c2l6ZSktPm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7
CisgICAgfQogCiAgICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT53
aWR0aEZvckdseXBoKGdseXBoKTsKKyAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBH
bHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+bWV0cmljc0ZvckdseXBoKGdseXBoKS5ob3Jpem9udGFs
QWR2YW5jZTsKICAgICB9CiAKLSAgICB2b2lkIHNldFdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgs
IGZsb2F0IHdpZHRoKQorICAgIHZvaWQgc2V0TWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoLCBj
b25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgewotICAgICAgICBsb2NhdGVQYWdlKGds
eXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0
aCk7CisgICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+
c2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNzKTsKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKKyAgICBzdHJ1Y3QgR2x5cGhNZXRyaWNzUGFnZSB7
CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2l6ZSA9IDI1NjsgLy8gVXN1YWxseSBjb3Zl
cnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBwYWdlLgotICAgICAgICBmbG9hdCBtX3dpZHRoc1tzaXpl
XTsKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1fbWV0cmljc1tzaXplXTsKIAotICAgICAgICBmbG9h
dCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoc1tnbHlw
aCAlIHNpemVdOyB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwg
ZmxvYXQgd2lkdGgpCisgICAgICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR2x5cGgoR2x5cGgg
Z2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0cmljc1tnbHlwaCAlIHNpemVdOyB9CisgICAgICAg
IHZvaWQgc2V0TWV0cmljc0ZvckdseXBoKEdseXBoIGdseXBoLCBjb25zdCBHbHlwaE1ldHJpY3Mm
IG1ldHJpY3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHNldFdpZHRoRm9ySW5kZXgoZ2x5cGgg
JSBzaXplLCB3aWR0aCk7CisgICAgICAgICAgICBzZXRNZXRyaWNzRm9ySW5kZXgoZ2x5cGggJSBz
aXplLCBtZXRyaWNzKTsKICAgICAgICAgfQotICAgICAgICB2b2lkIHNldFdpZHRoRm9ySW5kZXgo
dW5zaWduZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQorICAgICAgICB2b2lkIHNldE1ldHJpY3NGb3JJ
bmRleCh1bnNpZ25lZCBpbmRleCwgY29uc3QgR2x5cGhNZXRyaWNzJiBtZXRyaWNzKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBtX3dpZHRoc1tpbmRleF0gPSB3aWR0aDsKKyAgICAgICAgICAgIG1f
bWV0cmljc1tpbmRleF0gPSBtZXRyaWNzOwogICAgICAgICB9CiAgICAgfTsKICAgICAKLSAgICBH
bHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZSh1bnNpZ25lZCBwYWdlTnVtYmVyKQorICAgIEdseXBo
TWV0cmljc1BhZ2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQgcGFnZU51bWJlcikKICAgICB7CiAgICAg
ICAgIGlmICghcGFnZU51bWJlciAmJiBtX2ZpbGxlZFByaW1hcnlQYWdlKQogICAgICAgICAgICAg
cmV0dXJuICZtX3ByaW1hcnlQYWdlOwogICAgICAgICByZXR1cm4gbG9jYXRlUGFnZVNsb3dDYXNl
KHBhZ2VOdW1iZXIpOwogICAgIH0KIAotICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQYWdlU2xv
d0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcik7CisgICAgR2x5cGhNZXRyaWNzUGFnZSogbG9jYXRl
UGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpOwogICAgIAogICAgIGJvb2wgbV9maWxs
ZWRQcmltYXJ5UGFnZTsKLSAgICBHbHlwaFdpZHRoUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBv
cHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1Lgot
ICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPiA+IG1fcGFnZXM7CisgICAg
R2x5cGhNZXRyaWNzUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBh
Z2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1LgorICAgIE93blB0cjxIYXNoTWFw
PGludCwgR2x5cGhNZXRyaWNzUGFnZSo+ID4gbV9wYWdlczsKIH07CiAKLX0KK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoV2lkdGhNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2x5cGhXaWR0aE1hcC5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1OCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQYWdl
KiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikK
LXsKLSAgICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKLSAgICBpZiAocGFnZU51bWJlciA9PSAwKSB7
Ci0gICAgICAgIEFTU0VSVCghbV9maWxsZWRQcmltYXJ5UGFnZSk7Ci0gICAgICAgIHBhZ2UgPSAm
bV9wcmltYXJ5UGFnZTsKLSAgICAgICAgbV9maWxsZWRQcmltYXJ5UGFnZSA9IHRydWU7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgaWYgKG1fcGFnZXMpIHsKLSAgICAgICAgICAgIGlmICgocGFnZSA9
IG1fcGFnZXMtPmdldChwYWdlTnVtYmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2U7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9wYWdlcy5zZXQobmV3IEhhc2hNYXA8aW50
LCBHbHlwaFdpZHRoUGFnZSo+KTsKLSAgICAgICAgcGFnZSA9IG5ldyBHbHlwaFdpZHRoUGFnZTsK
LSAgICAgICAgbV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOwotICAgIH0KLQotICAgIC8v
IEZpbGwgaW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCB3aWR0aCB2YWx1
ZS4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkr
KykKLSAgICAgICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5cGhXaWR0aFVua25vd24p
OwotCi0gICAgcmV0dXJuIHBhZ2U7Ci19Ci0KLX0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgR2x5cGhXaWR0aE1hcF9oCi0jZGVmaW5lIEdseXBoV2lkdGhN
YXBfaAotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR2x5cGg7Ci0KLWNvbnN0IGZsb2F0IGNHbHlwaFdp
ZHRoVW5rbm93biA9IC0xOwotCi1jbGFzcyBHbHlwaFdpZHRoTWFwIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKLXB1YmxpYzoKLSAgICBHbHlwaFdpZHRoTWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdl
KGZhbHNlKSB7IH0KLSAgICB+R2x5cGhXaWR0aE1hcCgpIHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRl
QWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9Ci0KLSAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBo
IGdseXBoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdp
ZHRoUGFnZTo6c2l6ZSktPndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAgIH0KLQotICAgIHZvaWQg
c2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCi0gICAgewotICAgICAg
ICBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5zZXRXaWR0aEZvckds
eXBoKGdseXBoLCB3aWR0aCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHN0cnVjdCBHbHlwaFdp
ZHRoUGFnZSB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2l6ZSA9IDI1NjsgLy8gVXN1
YWxseSBjb3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBwYWdlLgotICAgICAgICBmbG9hdCBtX3dp
ZHRoc1tzaXplXTsKLQotICAgICAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBj
b25zdCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNpemVdOyB9Ci0gICAgICAgIHZvaWQgc2V0
V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBzaXplLCB3aWR0aCk7Ci0gICAgICAgIH0K
LSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckluZGV4KHVuc2lnbmVkIGluZGV4LCBmbG9hdCB3aWR0
aCkKLSAgICAgICAgewotICAgICAgICAgICAgbV93aWR0aHNbaW5kZXhdID0gd2lkdGg7Ci0gICAg
ICAgIH0KLSAgICB9OwotICAgIAotICAgIEdseXBoV2lkdGhQYWdlKiBsb2NhdGVQYWdlKHVuc2ln
bmVkIHBhZ2VOdW1iZXIpCi0gICAgewotICAgICAgICBpZiAoIXBhZ2VOdW1iZXIgJiYgbV9maWxs
ZWRQcmltYXJ5UGFnZSkKLSAgICAgICAgICAgIHJldHVybiAmbV9wcmltYXJ5UGFnZTsKLSAgICAg
ICAgcmV0dXJuIGxvY2F0ZVBhZ2VTbG93Q2FzZShwYWdlTnVtYmVyKTsKLSAgICB9Ci0KLSAgICBH
bHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpOwot
ICAgIAotICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5UGFnZTsKLSAgICBHbHlwaFdpZHRoUGFnZSBt
X3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBn
bHlwaCBpbmRpY2VzIDAtMjU1LgotICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0aFBh
Z2UqPiA+IG1fcGFnZXM7Ci19OwotCi19Ci0KLSNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE1Nyw5ICsxNTcsMTEgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1HbHlwaElu
aXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpFUk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAg
ICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGdseXBoUGFnZVplcm8tPmdseXBoRGF0YUZv
ckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCkgewotICAg
ICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBtX3NwYWNlR2x5cGgpCi0gICAgICAgICAg
ICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgs
IDApOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh6ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1f
c3BhY2VHbHlwaCkgeworICAgICAgICAgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgICAg
ICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gMDsKKyAgICAgICAgICAgIG1fZ2x5cGhU
b01ldHJpY3NNYXAuc2V0TWV0cmljc0ZvckdseXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIG1ldHJp
Y3MpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIExPR19FUlJPUigiRm9udCBtYXBzIFNQ
QUNFIGFuZCBaRVJPIFdJRFRIIFNQQUNFIHRvIHRoZSBzYW1lIGdseXBoLiBHbHlwaCB3aWR0aCBu
b3Qgb3ZlcnJpZGRlbi4iKTsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4
IEBACiAKICNpbmNsdWRlICJGb250RGF0YS5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEu
aCIKKyNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVl
Tm9kZS5oIgotI2luY2x1ZGUgIkdseXBoV2lkdGhNYXAuaCIKICNpbmNsdWRlICJUeXBlc2V0dGlu
Z0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBAIC01OCw5ICs1OCw5IEBA
IGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBT
aGFyZWRCdWZmZXI7CiBjbGFzcyBTVkdGb250RGF0YTsKLWNsYXNzIFdpZHRoTWFwOwogCiBlbnVt
IFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNoIH07CitlbnVt
IEdseXBoTWV0cmljc01vZGUgeyBHbHlwaEJvdW5kaW5nQm94LCBHbHlwaFdpZHRoT25seSB9Owog
CiBjbGFzcyBTaW1wbGVGb250RGF0YSA6IHB1YmxpYyBGb250RGF0YSB7CiBwdWJsaWM6CkBAIC04
MSw4ICs4MSw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB4SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bV94SGVpZ2h0OyB9CiAgICAgdW5zaWduZWQgdW5pdHNQZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1f
dW5pdHNQZXJFbTsgfQogCi0gICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0g
ICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoKSBjb25zdDsKKyAgICBmbG9hdCB3
aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVybiBtZXRyaWNzRm9yR2x5cGgo
Z2x5cGgsIEdseXBoV2lkdGhPbmx5KS5ob3Jpem9udGFsQWR2YW5jZTsgfQorICAgIEdseXBoTWV0
cmljcyBtZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBoTWV0cmljc01vZGUgPSBHbHlwaEJvdW5k
aW5nQm94KSBjb25zdDsKKyAgICBHbHlwaE1ldHJpY3MgcGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgo
R2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0OwogCiAgICAgZmxvYXQgc3BhY2VXaWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3BhY2VXaWR0aDsgfQogICAgIGZsb2F0IGFkanVzdGVkU3BhY2VX
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRTcGFjZVdpZHRoOyB9CkBAIC0xNjcsNyAr
MTY4LDcgQEAgcHJpdmF0ZToKICAgICB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQog
ICAgIHZvaWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lkIHBsYXRmb3JtQ29tbW9uRGVzdHJveSgp
OwotICAgIGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OworICAgIEds
eXBoTWV0cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OwogI2VuZGlm
CiAKICAgICBpbnQgbV9hc2NlbnQ7CkBAIC0xODEsNyArMTgyLDcgQEAgcHJpdmF0ZToKIAogICAg
IEZvbnRQbGF0Zm9ybURhdGEgbV9wbGF0Zm9ybURhdGE7CiAKLSAgICBtdXRhYmxlIEdseXBoV2lk
dGhNYXAgbV9nbHlwaFRvV2lkdGhNYXA7CisgICAgbXV0YWJsZSBHbHlwaE1ldHJpY3NNYXAgbV9n
bHlwaFRvTWV0cmljc01hcDsKIAogICAgIGJvb2wgbV90cmVhdEFzRml4ZWRQaXRjaDsKIApAQCAt
MjM3LDE2ICsyMzgsMTYgQEAgcHJpdmF0ZToKICAgICAKICAgICAKICNpZiAhUExBVEZPUk0oUVQp
Ci1BTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnREYXRhOjp3aWR0aEZvckdseXBoKEdseXBo
IGdseXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6
Om1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9k
ZSkgY29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IG1fZ2x5cGhUb1dpZHRoTWFwLndpZHRoRm9y
R2x5cGgoZ2x5cGgpOwotICAgIGlmICh3aWR0aCAhPSBjR2x5cGhXaWR0aFVua25vd24pCi0gICAg
ICAgIHJldHVybiB3aWR0aDsKLSAgICAKLSAgICB3aWR0aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlw
aChnbHlwaCk7Ci0gICAgbV9nbHlwaFRvV2lkdGhNYXAuc2V0V2lkdGhGb3JHbHlwaChnbHlwaCwg
d2lkdGgpOwotICAgIAotICAgIHJldHVybiB3aWR0aDsKKyAgICBHbHlwaE1ldHJpY3MgbWV0cmlj
cyA9IG1fZ2x5cGhUb01ldHJpY3NNYXAubWV0cmljc0ZvckdseXBoKGdseXBoKTsKKyAgICBpZiAo
KG1ldHJpY3NNb2RlID09IEdseXBoV2lkdGhPbmx5ICYmIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFu
Y2UgIT0gY0dseXBoU2l6ZVVua25vd24pIHx8IChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5n
Qm94ICYmIG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgoKSAhPSBjR2x5cGhTaXplVW5rbm93bikp
CisgICAgICAgIHJldHVybiBtZXRyaWNzOworCisgICAgbWV0cmljcyA9IHBsYXRmb3JtTWV0cmlj
c0ZvckdseXBoKGdseXBoLCBtZXRyaWNzTW9kZSk7CisgICAgbV9nbHlwaFRvTWV0cmljc01hcC5z
ZXRNZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3MpOworCisgICAgcmV0dXJuIG1ldHJpY3M7
CiB9CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250TGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRm9udExpbnV4LmNwcAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMSw3
ICs1MjEsNyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAg
fQogfQogCi1mbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1
biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIC8qIGZhbGxiYWNrRm9udHMg
Ki8pIGNvbnN0CitmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIC8qIGZhbGxiYWNrRm9u
dHMgKi8sIEdseXBoT3ZlcmZsb3cqIC8qIGdseXBoT3ZlcmZsb3cgKi8pIGNvbnN0CiB7CiAgICAg
VGV4dFJ1bldhbGtlciB3YWxrZXIocnVuLCAwLCB0aGlzKTsKICAgICByZXR1cm4gd2Fsa2VyLndp
ZHRoT2ZGdWxsUnVuKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1NpbXBsZUZvbnREYXRhTGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHJldmlzaW9uIDU3MTY1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxp
bnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgU2ltcGxlRm9u
dERhdGE6OmRldGVybWluZVBpdGNoKCkKICAgICBtX3RyZWF0QXNGaXhlZFBpdGNoID0gcGxhdGZv
cm1EYXRhKCkuaXNGaXhlZFBpdGNoKCk7CiB9CiAKLWZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitHbHlwaE1ldHJpY3MgU2ltcGxl
Rm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5cGhNZXRyaWNz
TW9kZSAvKiBtZXRyaWNzTW9kZSAqLykgY29uc3QKIHsKICAgICBTa0FTU0VSVChzaXplb2YoZ2x5
cGgpID09IDIpOyAgIC8vIGNvbXBpbGUtdGltZSBhc3NlcnQKIApAQCAtMTg2LDcgKzE4Niw5IEBA
IGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2wKICAgICAvLyBUaG91Z2gg
V2ViS2l0IHN1cHBvcnRzIG5vbi1pbnRlZ3JhbCBhZHZhbmNlcywgU2tpYSBvbmx5IHN1cHBvcnRz
IHRoZW0KICAgICAvLyBmb3IgInN1YnBpeGVsIiAoZGlzdGluY3QgZnJvbSBMQ0Qgc3VicGl4ZWwg
YW50aWFsaWFzaW5nKSB0ZXh0LCB3aGljaAogICAgIC8vIHdlIGRvbid0IHVzZS4KLSAgICByZXR1
cm4gcm91bmQoU2tTY2FsYXJUb0Zsb2F0KHdpZHRoKSk7CisgICAgR2x5cGhNZXRyaWNzIG1ldHJp
Y3M7CisgICAgbWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IHJvdW5kKFNrU2NhbGFyVG9GbG9h
dCh3aWR0aCkpOworICAgIHJldHVybiBtZXRyaWNzOwogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY4LDYgKzY4LDEwIEBAIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRD
b250cm8KICAgICAsIG1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGgoMCkKICAgICAsIG1fZmluYWxS
b3VuZGluZ1dpZHRoKDApCiAgICAgLCBtX2ZhbGxiYWNrRm9udHMoZmFsbGJhY2tGb250cykKKyAg
ICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkK
KyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4o
KSkKKyAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpt
YXgoKSkKKyAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+
OjptaW4oKSkKICAgICAsIG1fbGFzdFJvdW5kaW5nR2x5cGgoMCkKIHsKICAgICBtX3BhZGRpbmcg
PSBtX3J1bi5wYWRkaW5nKCk7CkBAIC00MzgsNiArNDQyLDcgQEAgdm9pZCBDb21wbGV4VGV4dENv
bnRyb2xsZXI6OmFkanVzdEdseXBocwogICAgICAgICBDR0Zsb2F0IHJvdW5kZWRTcGFjZVdpZHRo
ID0gcm91bmRDR0Zsb2F0KGZvbnREYXRhLT5zcGFjZVdpZHRoKCkpOwogICAgICAgICBib29sIHJv
dW5kc0FkdmFuY2VzID0gIW1fZm9udC5pc1ByaW50ZXJGb250KCkgJiYgZm9udERhdGEtPnBsYXRm
b3JtRGF0YSgpLnJvdW5kc0dseXBoQWR2YW5jZXMoKTsKICAgICAgICAgYm9vbCBoYXNFeHRyYVNw
YWNpbmcgPSAobV9mb250LmxldHRlclNwYWNpbmcoKSB8fCBtX2ZvbnQud29yZFNwYWNpbmcoKSB8
fCBtX3BhZGRpbmcpICYmICFtX3J1bi5zcGFjaW5nRGlzYWJsZWQoKTsKKyAgICAgICAgQ0dQb2lu
dCBnbHlwaE9yaWdpbiA9IENHUG9pbnRaZXJvOwogICAgICAgICBDRkluZGV4IGxhc3RDaGFyYWN0
ZXJJbmRleCA9IG1fcnVuLmx0cigpID8gbnVtZXJpY19saW1pdHM8Q0ZJbmRleD46Om1pbigpIDog
bnVtZXJpY19saW1pdHM8Q0ZJbmRleD46Om1heCgpOwogICAgICAgICBib29sIGlzTW9ub3Rvbmlj
ID0gdHJ1ZTsKIApAQCAtNTQxLDYgKzU0NiwxNiBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxl
cjo6YWRqdXN0R2x5cGhzCiAgICAgICAgICAgICBhZHZhbmNlLmhlaWdodCAqPSAtMTsKICAgICAg
ICAgICAgIG1fYWRqdXN0ZWRBZHZhbmNlcy5hcHBlbmQoYWR2YW5jZSk7CiAgICAgICAgICAgICBt
X2FkanVzdGVkR2x5cGhzLmFwcGVuZChnbHlwaCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IEdseXBoTWV0cmljcyBnbHlwaE1ldHJpY3MgPSBmb250RGF0YS0+bWV0cmljc0ZvckdseXBoKGds
eXBoKTsKKyAgICAgICAgICAgIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5tb3ZlKGdseXBoT3Jp
Z2luLngsIGdseXBoT3JpZ2luLnkpOworICAgICAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94
WCA9IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hYLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gu
eCgpKTsKKyAgICAgICAgICAgIG1fbWF4R2x5cGhCb3VuZGluZ0JveFggPSBtYXgobV9tYXhHbHlw
aEJvdW5kaW5nQm94WCwgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94LnJpZ2h0KCkpOworICAgICAg
ICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91bmRpbmdCb3hZ
LCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsKKyAgICAgICAgICAgIG1fbWF4R2x5cGhC
b3VuZGluZ0JveFkgPSBtYXgobV9tYXhHbHlwaEJvdW5kaW5nQm94WSwgZ2x5cGhNZXRyaWNzLmJv
dW5kaW5nQm94LmJvdHRvbSgpKTsKKyAgICAgICAgICAgIGdseXBoT3JpZ2luLnggKz0gYWR2YW5j
ZS53aWR0aDsKKyAgICAgICAgICAgIGdseXBoT3JpZ2luLnkgKz0gYWR2YW5jZS5oZWlnaHQ7Cisg
ICAgICAgICAgICAKICAgICAgICAgICAgIGxhc3RDaGFyYWN0ZXJJbmRleCA9IGNoYXJhY3Rlcklu
ZGV4OwogICAgICAgICB9CiAgICAgICAgIGlmICghaXNNb25vdG9uaWMpCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
aAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgcHVi
bGljOgogICAgIC8vIEV4dHJhIHdpZHRoIHRvIHRoZSBsZWZ0IG9mIHRoZSBsZWZ0bW9zdCBnbHlw
aC4KICAgICBmbG9hdCBmaW5hbFJvdW5kaW5nV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2ZpbmFs
Um91bmRpbmdXaWR0aDsgfQogCisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFgoKSBjb25z
dCB7IHJldHVybiBtX21pbkdseXBoQm91bmRpbmdCb3hYOyB9CisgICAgZmxvYXQgbWF4R2x5cGhC
b3VuZGluZ0JveFgoKSBjb25zdCB7IHJldHVybiBtX21heEdseXBoQm91bmRpbmdCb3hYOyB9Cisg
ICAgZmxvYXQgbWluR2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7IHJldHVybiBtX21pbkdseXBo
Qm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgbWF4R2x5cGhCb3VuZGluZ0JveFkoKSBjb25zdCB7
IHJldHVybiBtX21heEdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgCiBwcml2YXRlOgogICAgIGNs
YXNzIENvbXBsZXhUZXh0UnVuIDogcHVibGljIFJlZkNvdW50ZWQ8Q29tcGxleFRleHRSdW4+IHsK
ICAgICBwdWJsaWM6CkBAIC0xNzMsNiArMTc4LDExIEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIG1fZmFsbGJhY2tGb250czsKIAorICAgIGZsb2F0IG1f
bWluR2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsK
KyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0IG1fbWF4R2x5cGhC
b3VuZGluZ0JveFk7CisgICAgCiAgICAgdW5zaWduZWQgbV9sYXN0Um91bmRpbmdHbHlwaDsKIH07
CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1h
Yy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENv
bXBsZXhUZXh0TWFjLmNwcAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw4IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGludCBoLApAQCAtODMsOSArODUsMTUg
QEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGRyYXdHbHlw
aEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKIH0KIAotZmxv
YXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQg
Rm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBn
bHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9s
bGVyKHRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250cyk7CisgICAgaWYgKGdseXBoT3ZlcmZs
b3cpIHsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gbWF4PGludD4oZ2x5cGhPdmVyZmxv
dy0+dG9wLCBjZWlsZigtY29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WSgpKSAtIGFzY2Vu
dCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gbWF4PGludD4oZ2x5cGhPdmVy
Zmxvdy0+Ym90dG9tLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0g
ZGVzY2VudCgpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+bGVmdCA9IG1heDxpbnQ+KDAsIGNl
aWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hYKCkpKTsKKyAgICAgICAgZ2x5cGhP
dmVyZmxvdy0+cmlnaHQgPSBtYXg8aW50PigwLCBjZWlsZihjb250cm9sbGVyLm1heEdseXBoQm91
bmRpbmdCb3hYKCkgLSBjb250cm9sbGVyLnRvdGFsV2lkdGgoKSkpOworICAgIH0KICAgICByZXR1
cm4gY29udHJvbGxlci50b3RhbFdpZHRoKCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA1NzE2
NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC00MDcsMTcgKzQwNywyNyBAQCB2b2lkIFNpbXBsZUZvbnREYXRh
OjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgICAgIFtuYW1lIGNhc2VJbnNlbnNpdGl2ZUNvbXBh
cmU6QCJNb25vdHlwZUNvcnNpdmEiXSAhPSBOU09yZGVyZWRTYW1lOwogfQogCi1mbG9hdCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5
cGhNZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlwaCBn
bHlwaCwgR2x5cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkgY29uc3QKIHsKLSAgICBOU0ZvbnQq
IGZvbnQgPSBtX3BsYXRmb3JtRGF0YS5mb250KCk7Ci0gICAgZmxvYXQgcG9pbnRTaXplID0gbV9w
bGF0Zm9ybURhdGEubV9zaXplOworICAgIE5TRm9udCogZm9udCA9IHBsYXRmb3JtRGF0YSgpLmZv
bnQoKTsKKyAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0Zm9ybURhdGEoKS5tX3NpemU7CiAgICAg
Q0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6
ZSwgcG9pbnRTaXplKTsKICAgICBDR1NpemUgYWR2YW5jZTsKLSAgICBpZiAoIXdrR2V0R2x5cGhU
cmFuc2Zvcm1lZEFkdmFuY2VzKG1fcGxhdGZvcm1EYXRhLmNnRm9udCgpLCBmb250LCAmbSwgJmds
eXBoLCAmYWR2YW5jZSkpIHsKKyAgICBpZiAoIXdrR2V0R2x5cGhUcmFuc2Zvcm1lZEFkdmFuY2Vz
KHBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBmb250LCAmbSwgJmdseXBoLCAmYWR2YW5jZSkpIHsK
ICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY2FjaGUgZ2x5cGggd2lkdGhzIGZvciAlQCAl
ZiIsIFtmb250IGRpc3BsYXlOYW1lXSwgcG9pbnRTaXplKTsKICAgICAgICAgYWR2YW5jZS53aWR0
aCA9IDA7CiAgICAgfQotICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xk
T2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRh
bEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIGlm
IChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94KSB7CisgICAgICAgIENHUmVjdCBib3Vu
ZGluZ0JveDsKKyAgICAgICAgQ0dGb250R2V0R2x5cGhCQm94ZXMocGxhdGZvcm1EYXRhKCkuY2dG
b250KCksICZnbHlwaCwgMSwgJmJvdW5kaW5nQm94KTsKKyAgICAgICAgQ0dGbG9hdCBzY2FsZSA9
IHBvaW50U2l6ZSAvIHVuaXRzUGVyRW0oKTsKKyAgICAgICAgbWV0cmljcy5ib3VuZGluZ0JveCA9
IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKGJvdW5kaW5nQm94LCBDR0FmZmluZVRyYW5zZm9y
bU1ha2VTY2FsZShzY2FsZSwgLXNjYWxlKSk7CisgICAgICAgIGlmIChtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQpCisgICAgICAgICAgICBtZXRyaWNzLmJvdW5kaW5nQm94LnNldFdpZHRoKG1ldHJpY3Mu
Ym91bmRpbmdCb3gud2lkdGgoKSArIG1fc3ludGhldGljQm9sZE9mZnNldCk7CisgICAgfQorICAg
IHJldHVybiBtZXRyaWNzOwogfQogCiAjaWYgVVNFKEFUU1VJKQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDYgKzM0LDggQEAKICNpbmNsdWRlICJVbmlzY3JpYmVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBib29sIEZvbnQ6OmNhblJldHVybkZhbGxiYWNrRm9udHNGb3JDb21wbGV4VGV4
dCgpCkBAIC04OSwxMCArOTEsMTYgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZQogICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBz
dGFydFBvaW50KTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0
IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIFVuaXNjcmli
ZUNvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMpOwogICAgIGNv
bnRyb2xsZXIuYWR2YW5jZShydW4ubGVuZ3RoKCkpOworICAgIGlmIChnbHlwaE92ZXJmbG93KSB7
CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPnRv
cCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFkoKSkgLSBhc2NlbnQoKSk7
CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ct
PmJvdHRvbSwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WSgpKSAtIGRlc2Nl
bnQoKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQgPSBtYXg8aW50PigwLCBjZWlsZigt
Y29udHJvbGxlci5taW5HbHlwaEJvdW5kaW5nQm94WCgpKSk7CisgICAgICAgIGdseXBoT3ZlcmZs
b3ctPnJpZ2h0ID0gbWF4PGludD4oMCwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5n
Qm94WCgpIC0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkpKTsKKyAgICB9CiAgICAgcmV0dXJu
IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAkocmV2aXNp
b24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0
YUNHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDEwICsxMjYsMTAgQEAgdm9pZCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbgogICAgIH0KIH0KIAotZmxvYXQgU2ltcGxl
Rm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBo
TWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5
cGgsIEdseXBoTWV0cmljc01vZGUgbWV0cmljc01vZGUpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGxh
dGZvcm1EYXRhLnVzZUdESSgpKQotICAgICAgIHJldHVybiB3aWR0aEZvckdESUdseXBoKGdseXBo
KTsKKyAgICAgICByZXR1cm4gbWV0cmljc0ZvckdESUdseXBoKGdseXBoKTsKIAogICAgIENHRm9u
dFJlZiBmb250ID0gbV9wbGF0Zm9ybURhdGEuY2dGb250KCk7CiAgICAgZmxvYXQgcG9pbnRTaXpl
ID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgpOwpAQCAtMTM5LDggKzEzOSwxOCBAQCBmbG9hdCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRk
IHJlYWwgc3VwcG9ydCBmb3IgcHJpbnRlciBmb250cy4KICAgICBib29sIGlzUHJpbnRlckZvbnQg
PSBmYWxzZTsKICAgICB3a0dldEdseXBoQWR2YW5jZXMoZm9udCwgbSwgbV9pc1N5c3RlbUZvbnQs
IGlzUHJpbnRlckZvbnQsIGdseXBoLCBhZHZhbmNlKTsKLQotICAgIHJldHVybiBhZHZhbmNlLndp
ZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOwor
ICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0
aWNCb2xkT2Zmc2V0OworICAgIAorICAgIGlmIChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5n
Qm94KSB7CisgICAgICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICAgICAgQ0dGb250R2V0R2x5
cGhCQm94ZXMoZm9udCwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgICAgICBDR0Zsb2F0
IHNjYWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgICAgICBtZXRyaWNzLmJvdW5k
aW5nQm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm91bmRpbmdCb3gsIENHQWZmaW5l
VHJhbnNmb3JtTWFrZVNjYWxlKHNjYWxlLCAtc2NhbGUpKTsKKyAgICAgICAgaWYgKG1fc3ludGhl
dGljQm9sZE9mZnNldCkKKyAgICAgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgo
bWV0cmljcy5ib3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAg
ICB9CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHJldmlzaW9uIDU3
MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzksMTYgKzE3OSwyNSBAQCB2b2lkIFNpbXBsZUZvbnRE
YXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgUmVsZWFzZURDKDAsIGRjKTsKIH0KIAotZmxvYXQg
U2ltcGxlRm9udERhdGE6OndpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitHbHlw
aE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHRElHbHlwaChHbHlwaCBnbHlwaCkg
Y29uc3QKIHsKICAgICBIREMgaGRjID0gR2V0REMoMCk7CiAgICAgU2V0R3JhcGhpY3NNb2RlKGhk
YywgR01fQURWQU5DRUQpOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChoZGMs
IG1fcGxhdGZvcm1EYXRhLmhmb250KCkpOwotICAgIGludCB3aWR0aDsKLSAgICBHZXRDaGFyV2lk
dGhJKGhkYywgZ2x5cGgsIDEsIDAsICZ3aWR0aCk7CisKKyAgICBHTFlQSE1FVFJJQ1MgZ2RpTWV0
cmljczsKKyAgICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsgMCwgMSwgIDAsIDAsICAw
LCAwLCAgMCwgMSB9OworICAgIEdldEdseXBoT3V0bGluZShoZGMsIGdseXBoLCBHR09fTUVUUklD
UyB8IEdHT19HTFlQSF9JTkRFWCwgJmdkaU1ldHJpY3MsIDAsIDAsICZpZGVudGl0eSk7CisKICAg
ICBTZWxlY3RPYmplY3QoaGRjLCBvbGRGb250KTsKICAgICBSZWxlYXNlREMoMCwgaGRjKTsKLSAg
ICByZXR1cm4gd2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisKKyAgICBHbHlwaE1ldHJp
Y3MgZ2x5cGhNZXRyaWNzOworICAgIGdseXBoTWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGdk
aU1ldHJpY3MuZ21DZWxsSW5jWCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBnbHlwaE1l
dHJpY3MuYm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoZ2RpTWV0cmljcy5nbXB0R2x5cGhPcmlnaW4u
eCwgLWdkaU1ldHJpY3MuZ21wdEdseXBoT3JpZ2luLnksCisgICAgICAgIGdkaU1ldHJpY3MuZ21C
bGFja0JveFggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQsIGdkaU1ldHJpY3MuZ21CbGFja0JveFkp
OworCisgICAgcmV0dXJuIGdseXBoTWV0cmljczsKIH0KIAogU0NSSVBUX0ZPTlRQUk9QRVJUSUVT
KiBTaW1wbGVGb250RGF0YTo6c2NyaXB0Rm9udFByb3BlcnRpZXMoKSBjb25zdApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
VW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAK
ICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklY
TUU6IFJlYXJjaGl0ZWN0IHRoaXMgdG8gYmUgbW9yZSBsaWtlIFdpZHRoSXRlcmF0b3IgaW4gRm9u
dC5jcHAuICBIYXZlIGFuIGFkdmFuY2UoKSBtZXRob2QKQEAgLTM5LDE2ICs0MSwyMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAvLyB0YWtlIHRoZSBHbHlwaEJ1ZmZlciBhcyBhbiBhcmcgc28gdGhh
dCB3ZSBkb24ndCBoYXZlIHRvIHBvcHVsYXRlIHRoZSBnbHlwaCBidWZmZXIgd2hlbgogLy8gbWVh
c3VyaW5nLgogVW5pc2NyaWJlQ29udHJvbGxlcjo6VW5pc2NyaWJlQ29udHJvbGxlcihjb25zdCBG
b250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cykKLTogbV9mb250KCpmb250KQotLCBtX3J1bihydW4pCi0sIG1f
ZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQotLCBtX2VuZChydW4ubGVuZ3RoKCkpCi0sIG1f
Y3VycmVudENoYXJhY3RlcigwKQotLCBtX3J1bldpZHRoU29GYXIoMCkKLSwgbV9jb21wdXRpbmdP
ZmZzZXRQb3NpdGlvbihmYWxzZSkKLSwgbV9pbmNsdWRlUGFydGlhbEdseXBocyhmYWxzZSkKLSwg
bV9vZmZzZXRYKDApCi0sIG1fb2Zmc2V0UG9zaXRpb24oMCkKKyAgICA6IG1fZm9udCgqZm9udCkK
KyAgICAsIG1fcnVuKHJ1bikKKyAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQor
ICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgp
KQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1p
bigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46
Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9h
dD46Om1pbigpKQorICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQorICAgICwgbV9jdXJyZW50Q2hh
cmFjdGVyKDApCisgICAgLCBtX3J1bldpZHRoU29GYXIoMCkKKyAgICAsIG1fY29tcHV0aW5nT2Zm
c2V0UG9zaXRpb24oZmFsc2UpCisgICAgLCBtX2luY2x1ZGVQYXJ0aWFsR2x5cGhzKGZhbHNlKQor
ICAgICwgbV9vZmZzZXRYKDApCisgICAgLCBtX29mZnNldFBvc2l0aW9uKDApCiB7CiAgICAgbV9w
YWRkaW5nID0gbV9ydW4ucGFkZGluZygpOwogICAgIGlmICghbV9wYWRkaW5nKQpAQCAtMzc0LDYg
KzM4MCwxNCBAQCBib29sIFVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5kUGxhY2VJCiAgICAg
ICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwgYWR2YW5jZSwgJnNpemUp
OwogICAgICAgICB9CiAKKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljcyA9IGZvbnRE
YXRhLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRp
bmdCb3gubW92ZShtX2dseXBoT3JpZ2luLngoKSwgbV9nbHlwaE9yaWdpbi55KCkpOworICAgICAg
ICBtX21pbkdseXBoQm91bmRpbmdCb3hYID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFgsIGds
eXBoTWV0cmljcy5ib3VuZGluZ0JveC54KCkpOworICAgICAgICBtX21heEdseXBoQm91bmRpbmdC
b3hYID0gbWF4KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0Jv
eC5yaWdodCgpKTsKKyAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkds
eXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsKKyAgICAgICAg
bV9tYXhHbHlwaEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBnbHlw
aE1ldHJpY3MuYm91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICBtX2dseXBoT3JpZ2luLm1v
dmUoYWR2YW5jZSArIG9mZnNldFgsIC1vZmZzZXRZKTsKKwogICAgICAgICAvLyBNdXRhdGUgdGhl
IGdseXBoIGFycmF5IHRvIGNvbnRhaW4gb3VyIGFsdGVyZWQgYWR2YW5jZXMuCiAgICAgICAgIGlm
IChtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKQogICAgICAgICAgICAgYWR2YW5jZXNba10gPSBh
ZHZhbmNlOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Vu
aXNjcmliZUNvbnRyb2xsZXIuaAkocmV2aXNpb24gNTcxNjUpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDYgKzQ5LDExIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSB3aWR0aCBvZiBldmVyeXRo
aW5nIHdlJ3ZlIGNvbnN1bWVkIHNvIGZhci4KICAgICBmbG9hdCBydW5XaWR0aFNvRmFyKCkgY29u
c3QgeyByZXR1cm4gbV9ydW5XaWR0aFNvRmFyOyB9CiAKKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5k
aW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBm
bG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3Vu
ZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5n
Qm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7IH0KKwogcHJpdmF0
ZTogICAgCiAgICAgdm9pZCByZXNldENvbnRyb2xBbmRTdGF0ZSgpOwogCkBAIC02MSw2ICs2Niwx
MSBAQCBwcml2YXRlOiAgICAKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7CiAgICAgY29uc3QgVGV4
dFJ1biYgbV9ydW47CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBtX2ZhbGxi
YWNrRm9udHM7CisgICAgRmxvYXRQb2ludCBtX2dseXBoT3JpZ2luOworICAgIGZsb2F0IG1fbWlu
R2x5cGhCb3VuZGluZ0JveFg7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsKKyAg
ICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3Vu
ZGluZ0JveFk7CiAKICAgICBTQ1JJUFRfQ09OVFJPTCBtX2NvbnRyb2w7CiAgICAgU0NSSVBUX1NU
QVRFIG1fc3RhdGU7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNp
b24gNTcxNjUpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hl
c0hvcml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0dGVyU3BhY2luZyA9IG1pbigwLCAoaW50
KXJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5sZXR0ZXJTcGFjaW5nKCkpOwogICAgICAg
ICAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4UG9zICsgdGV4dC0+d2lkdGgoKSAtIGxl
dHRlclNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cpOwogCi0gICAgICAgICAgICBpbnQgbGVm
dEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgcmlnaHRH
bHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFjaW5nOworICAgICAgICAg
ICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19jYXN0PElubGluZVRleHRC
b3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAgICBpbnQgbGVmdEdseXBo
T3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZs
b3ctPmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCByaWdodEdseXBoT3ZlcmZsb3cgPSBzdHJv
a2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZs
b3ctPnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJm
bG93TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAgICAgICAgICAgaW50IGNoaWxkT3ZlcmZs
b3dSaWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAgLTQxMiwzNSArNDE0LDM1IEBAIHZvaWQg
SW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKIAogICAgICAgICBpbnQgbGluZUhl
aWdodDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAgICAgICBWZWN0b3I8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAoY3Vyci0+aXNJbmxpbmVUZXh0Qm94KCkp
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPnRha2VGYWxs
YmFja0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAgICB1c2VkRm9udHMgPSBzdGF0aWNfY2Fz
dDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNrRm9udHMoKTsKIAotICAgICAgICBpZiAo
IXVzZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZWRGb250cy5hcHBlbmQoY3Vy
ci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkucHJpbWFyeUZvbnQoKSk7
CisgICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5k
KGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLnByaW1hcnlGb250
KCkpOwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExpbmVIZWlnaHQgPSBjdXJyLT5yZW5kZXJl
cigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdodCgpOwogICAgICAgICAgICAgaWYgKHBh
cmVudExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAgICAgICAgICAgICAgICAgaW50IGJhc2Vs
aW5lVG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewot
ICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNlZEZvbnRzW2ldLT5saW5l
U3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRGb250c1tpXS0+ZGVzY2Vu
dCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBo
YWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOwotICAgICAgICAgICAgICAgICAg
ICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20sIHVzZWRGb250c1tpXS0+
bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRl
c2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50
IGhhbGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSktPmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9u
dHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOwor
ICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcg
KyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIGJhc2Vs
aW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwgdXNlZEZvbnRzLT5hdChpKS0+bGlu
ZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0gdXNlZEZvbnRzLT5hdChp
KS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBiYXNlbGluZVRvQm90dG9tOwogICAgICAg
ICAgICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzUGVyY2VudCgpKSB7CiAgICAgICAg
ICAgICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVIZWlnaHQuY2FsY01pblZhbHVlKGN1cnIt
PnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkpOwogICAgICAgICAgICAgICAgIGJhc2Vs
aW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250
cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAo
bGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2Nl
bnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwg
aGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0
KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAg
ICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2Vk
Rm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gcGFyZW50TGluZUhlaWdodC52
YWx1ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+
YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAg
ICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0t
PmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRG
b250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5n
ID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+
YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1h
eChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewpAQCAtNTYy
LDEwICs1NjQsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlVmVydGljYWxPdmVyZgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBpbnQgc3Ryb2tlT3ZlcmZs
b3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5zdHlsZSgpLT50ZXh0U3Ryb2tlV2lkdGgo
KSAvIDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaW50IHRvcEdseXBoT3ZlcmZs
b3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxv
dyA9IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgCisKKyAgICAgICAgICAgIEdseXBoT3Zl
cmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3Vycikt
PmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAgaW50IHRvcEdseXBoT3ZlcmZsb3cgPSAt
c3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IDAp
OworICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAr
IChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDogMCk7CisKICAgICAgICAg
ICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhPdmVyZmxvdzsKICAgICAgICAgICAg
IGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5cGhPdmVyZmxvdzsKICAgICAgICAg
ICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0eWxlKCktPnRleHRTaGFkb3coKTsg
c2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDI5LDMwICsxMDI5LDQ4IEBAIGJvb2wg
SW5saW5lVGV4dEJveDo6Y29udGFpbnNDYXJldE9mZnNldCgKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdHlwZWRlZiBIYXNoTWFwPElubGluZVRleHRCb3gqLCBWZWN0b3I8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiA+IEZhbGxiYWNrRm9udHNNYXA7Ci1zdGF0aWMgRmFsbGJhY2tGb250c01hcCogZ0Zh
bGxiYWNrRm9udHNNYXA7Ci0KIHZvaWQgSW5saW5lVGV4dEJveDo6c2V0RmFsbGJhY2tGb250cyhj
b25zdCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCiB7Ci0g
ICAgaWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAgICAgICAgZ0ZhbGxiYWNrRm9udHNNYXAgPSBu
ZXcgRmFsbGJhY2tGb250c01hcDsKKyAgICBpZiAoIXNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNr
Rm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAgPSBu
ZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisKKyAgICBHbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWlyKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250
RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0OworICAgIEFTU0VSVChpdC0+c2Vjb25k
LmZpcnN0LmlzRW1wdHkoKSk7CisgICAgY29weVRvVmVjdG9yKGZhbGxiYWNrRm9udHMsIGl0LT5z
ZWNvbmQuZmlyc3QpOworfQorCitWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogSW5saW5l
VGV4dEJveDo6ZmFsbGJhY2tGb250cygpIGNvbnN0Cit7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4gMDsKIAotICAgIEZhbGxiYWNr
Rm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gZ0ZhbGxiYWNrRm9udHNNYXAtPnNldCh0aGlzLCBWZWN0
b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpKS5maXJzdDsKLSAgICBBU1NFUlQoaXQtPnNlY29u
ZC5pc0VtcHR5KCkpOwotICAgIGNvcHlUb1ZlY3RvcihmYWxsYmFja0ZvbnRzLCBpdC0+c2Vjb25k
KTsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBz
X2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChp
dCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICByZXR1cm4gJml0LT5zZWNvbmQuZmlyc3Q7CiB9CiAKLXZvaWQgSW5s
aW5lVGV4dEJveDo6dGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4mIGZhbGxiYWNrRm9udHMpCitJbmxpbmVUZXh0Qm94OjpHbHlwaE92ZXJmbG93QW5kRmFsbGJh
Y2tGb250c01hcCogSW5saW5lVGV4dEJveDo6c19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcCA9IDA7CisKK3ZvaWQgSW5saW5lVGV4dEJveDo6c2V0R2x5cGhPdmVyZmxvdyhjb25zdCBH
bHlwaE92ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewotICAgIGlmICghZ0ZhbGxiYWNrRm9udHNN
YXApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIXNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNr
Rm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAgPSBu
ZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CiAKLSAgICBGYWxsYmFja0ZvbnRz
TWFwOjppdGVyYXRvciBpdCA9IGdGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOwotICAgIGlm
IChpdCA9PSBnRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBH
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWlyKFZlY3Rvcjxjb25z
dCBTaW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0OworICAgIGl0LT5z
ZWNvbmQuc2Vjb25kID0gZ2x5cGhPdmVyZmxvdzsKK30KKworR2x5cGhPdmVyZmxvdyogSW5saW5l
VGV4dEJveDo6Z2x5cGhPdmVyZmxvdygpIGNvbnN0Cit7CisgICAgaWYgKCFzX2dseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4gMDsKKyAgICBHbHlwaE92ZXJm
bG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBm
YWxsYmFja0ZvbnRzLnN3YXAoaXQtPnNlY29uZCk7Ci0gICAgZ0ZhbGxiYWNrRm9udHNNYXAtPnJl
bW92ZShpdCk7CisgICAgcmV0dXJuICZpdC0+c2Vjb25kLnNlY29uZDsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAkocmV2aXNpb24g
NTcxNjUpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY0LDcgKzY0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIG9mZnNldFJ1bihpbnQgZCkg
eyBtX3N0YXJ0ICs9IGQ7IH0KIAogICAgIHZvaWQgc2V0RmFsbGJhY2tGb250cyhjb25zdCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mKTsKLSAgICB2b2lkIHRha2VGYWxsYmFja0ZvbnRz
KFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7CisgICAgVmVjdG9yPGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMoKSBjb25zdDsKKworICAgIHZvaWQgc2V0R2x5cGhP
dmVyZmxvdyhjb25zdCBHbHlwaE92ZXJmbG93Jik7CisgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhP
dmVyZmxvdygpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgY2xlYXJHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250TWFwKCkKKyAgICB7CisgICAgICAgIGlmIChzX2dseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwKQorICAgICAgICAgICAgc19nbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tG
b250c01hcC0+Y2xlYXIoKTsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBzaG9ydCB0cnVuY2F0aW9u
KCkgeyByZXR1cm4gbV90cnVuY2F0aW9uOyB9CiAKQEAgLTEyOSw2ICsxMzgsOSBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIHNob3J0IG1fdHJ1bmNhdGlvbjsgLy8gV2hlcmUgdG8gdHJ1bmNhdGUg
d2hlbiB0ZXh0IG92ZXJmbG93IGlzIGFwcGxpZWQuICBXZSB1c2Ugc3BlY2lhbCBjb25zdGFudHMg
dG8KICAgICAgICAgICAgICAgICAgICAgICAvLyBkZW5vdGUgbm8gdHJ1bmNhdGlvbiAodGhlIHdo
b2xlIHJ1biBwYWludHMpIGFuZCBmdWxsIHRydW5jYXRpb24gKG5vdGhpbmcgcGFpbnRzIGF0IGFs
bCkuCiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSW5saW5lVGV4dEJveCosIHBhaXI8VmVj
dG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4sIEdseXBoT3ZlcmZsb3c+ID4gR2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXA7CisgICAgc3RhdGljIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFj
a0ZvbnRzTWFwKiBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOworCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBwYWludENvbXBvc2l0aW9uQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQq
LCBpbnQgdHgsIGludCB0eSwgUmVuZGVyU3R5bGUqLCBjb25zdCBGb250JiwgaW50IHN0YXJ0UG9z
LCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1lbnRNYXJrZXJzKEdyYXBoaWNzQ29u
dGV4dCosIGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHlsZSosIGNvbnN0IEZvbnQmLCBib29sIGJh
Y2tncm91bmQpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCShyZXZpc2lvbiA1NzE2NSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw3ICszNDIsOCBAQCB2b2lkIFJl
bmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0CiAgICAgICAgICAgICAgICAgbmVlZHNX
b3JkU3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJ0LT5jaGFyYWN0ZXJzKClbci0+bV9zdG9w
IC0gMV0pICYmIHItPm1fc3RvcCA9PSBsZW5ndGg7ICAgICAgICAgIAogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+IGZhbGxiYWNrRm9udHM7
Ci0gICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1fc3RhcnQsIHIt
Pm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxsYmFja0ZvbnRz
KSk7CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZsb3c7CisgICAgICAgICAg
ICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1fc3RhcnQsIHItPm1fc3RvcCAtIHIt
Pm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVy
ZmxvdykpOwogICAgICAgICAgICAgaWYgKCFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKQogI2lmIEVO
QUJMRShTVkcpCiAgICAgICAgICAgICAgICAgICAgICYmICFpc1NWR1RleHQoKQpAQCAtMzUxLDYg
KzM1MiwxNCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CiAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0RmFsbGJhY2tGb250cyhm
YWxsYmFja0ZvbnRzKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZ2x5cGhPdmVy
Zmxvdy50b3AgfHwgZ2x5cGhPdmVyZmxvdy5ib3R0b20gfHwgZ2x5cGhPdmVyZmxvdy5sZWZ0IHx8
IGdseXBoT3ZlcmZsb3cucmlnaHQpCisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgICAgICAm
JiAhaXNTVkdUZXh0KCkKKyNlbmRpZgorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAg
QVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0R2x5cGhPdmVyZmxvdyhnbHlwaE92ZXJmbG93
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghci0+bV9vYmplY3QtPmlzUmVu
ZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5k
ZXJCb3goci0+bV9vYmplY3QpOwogICAgICAgICAgICAgcmVuZGVyQm94LT5jYWxjV2lkdGgoKTsK
QEAgLTczNCw2ICs3NDMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJl
bihiCiAKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBwb3NpdGlvbiBvdXIgdGV4dCBy
dW5zIHZlcnRpY2FsbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlVmVydGljYWxQ
b3NpdGlvbnNGb3JMaW5lKGxpbmVCb3gsIHJlc29sdmVyLmZpcnN0UnVuKCkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgSW5saW5lVGV4dEJveDo6Y2xlYXJHbHlwaE92ZXJmbG93QW5kRmFsbGJh
Y2tGb250TWFwKCk7CiAKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gU3BlY2lhbCBTVkcgdGV4dCBsYXlvdXQgY29kZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAJKHJldmlzaW9uIDU3MTY1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgUmVuZGVyVGV4dDo6UmVuZGVyVGV4
dChOb2RlKiBub2RlLCBQYXNzUgogICAgICAsIG1fbGluZXNEaXJ0eShmYWxzZSkKICAgICAgLCBt
X2NvbnRhaW5zUmV2ZXJzZWRUZXh0KGZhbHNlKQogICAgICAsIG1faXNBbGxBU0NJSShtX3RleHQu
Y29udGFpbnNPbmx5QVNDSUkoKSkKLSAgICAgLCBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRz
KGZhbHNlKQorICAgICAsIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRz
KGZhbHNlKQogewogICAgIEFTU0VSVChtX3RleHQpOwogCkBAIC0xNDMsNyArMTQzLDcgQEAgdm9p
ZCBSZW5kZXJUZXh0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZgogICAgIC8vIG5lZWQgdG8gcmVs
YXlvdXQuCiAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0KSB7CiAgICAgICAg
IHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAgICAgICBtX2tub3duTm90
VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgICAgIG1fa25vd25Ub0hhdmVOb092ZXJm
bG93QW5kTm9GYWxsYmFja0ZvbnRzID0gZmFsc2U7CiAgICAgfQogCiAgICAgRVRleHRUcmFuc2Zv
cm0gb2xkVHJhbnNmb3JtID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+dGV4dFRyYW5zZm9ybSgpIDog
VFROT05FOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIEludFJlY3QgUmVuZGVyVGV4dDo6bG9jYWxDYXJl
dFJlY3QoSW5saW4KICAgICByZXR1cm4gSW50UmVjdChsZWZ0LCB0b3AsIGNhcmV0V2lkdGgsIGhl
aWdodCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgaW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hl
KGNvbnN0IEZvbnQmIGYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK0FMV0FZU19JTkxJTkUg
aW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQmIGYsIGludCBzdGFydCwg
aW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICAgICBpZiAo
Zi5pc0ZpeGVkUGl0Y2goKSAmJiAhZi5pc1NtYWxsQ2FwcygpICYmIG1faXNBbGxBU0NJSSkgewog
ICAgICAgICBpbnQgbW9ub3NwYWNlQ2hhcmFjdGVyV2lkdGggPSBmLnNwYWNlV2lkdGgoKTsKQEAg
LTQ5Nyw3ICs0OTcsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21D
CiAgICAgICAgIHJldHVybiB3OwogICAgIH0KIAotICAgIHJldHVybiBmLndpZHRoKFRleHRSdW4o
dGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZh
bGxiYWNrRm9udHMpOworICAgIHJldHVybiBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0
ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOwogfQogCiB2b2lkIFJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKGlu
dCBsZWFkV2lkdGgsCkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojp0cmltbWVk
UHJlZldpZHRocyhpbnQgbAogICAgICAgICAgICAgICAgIGxpbmVsZW4rKzsKIAogICAgICAgICAg
ICAgaWYgKGxpbmVsZW4pIHsKLSAgICAgICAgICAgICAgICBlbmRNYXhXID0gd2lkdGhGcm9tQ2Fj
aGUoZiwgaSwgbGluZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4VywgMCk7CisgICAgICAgICAgICAg
ICAgZW5kTWF4VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4sIGxlYWRXaWR0aCArIGVu
ZE1heFcsIDAsIDApOwogICAgICAgICAgICAgICAgIGlmIChmaXJzdExpbmUpIHsKICAgICAgICAg
ICAgICAgICAgICAgZmlyc3RMaW5lID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGxlYWRX
aWR0aCA9IDA7CkBAIC02MTMsMTQgKzYxMywxNSBAQCBpbnQgUmVuZGVyVGV4dDo6bWF4UHJlZldp
ZHRoKCkgY29uc3QKIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0
aCkKIHsKICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4gZmFsbGJhY2tGb250czsK
LSAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxiYWNrRm9udHMpOwotICAgIGlmIChm
YWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tG
b250cyA9IHRydWU7CisgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJmbG93OworICAgIGNhbGNQ
cmVmV2lkdGhzKGxlYWRXaWR0aCwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CisgICAg
aWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFnbHlwaE92ZXJmbG93LmxlZnQgJiYgIWds
eXBoT3ZlcmZsb3cucmlnaHQgJiYgIWdseXBoT3ZlcmZsb3cudG9wICYmICFnbHlwaE92ZXJmbG93
LmJvdHRvbSkKKyAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9u
dHMgPSB0cnVlOwogfQogCi12b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFk
V2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cykKK3Zv
aWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93JiBnbHlwaE92
ZXJmbG93KQogewotICAgIEFTU0VSVChtX2hhc1RhYiB8fCBwcmVmV2lkdGhzRGlydHkoKSB8fCAh
bV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyk7CisgICAgQVNTRVJUKG1faGFzVGFiIHx8IHBy
ZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tG
b250cyk7CiAKICAgICBtX21pbldpZHRoID0gMDsKICAgICBtX2JlZ2luTWluV2lkdGggPSAwOwpA
QCAtNjUwLDYgKzY1MSw4IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxl
YWQKICAgICBpbnQgbmV4dEJyZWFrYWJsZSA9IC0xOwogICAgIGludCBsYXN0V29yZEJvdW5kYXJ5
ID0gMDsKIAorICAgIGludCBmaXJzdEdseXBoTGVmdE92ZXJmbG93ID0gLTE7CisKICAgICBib29s
IGJyZWFrTkJTUCA9IHN0eWxlKCktPmF1dG9XcmFwKCkgJiYgc3R5bGUoKS0+bmJzcE1vZGUoKSA9
PSBTUEFDRTsKICAgICBib29sIGJyZWFrQWxsID0gKHN0eWxlKCktPndvcmRCcmVhaygpID09IEJy
ZWFrQWxsV29yZEJyZWFrIHx8IHN0eWxlKCktPndvcmRCcmVhaygpID09IEJyZWFrV29yZEJyZWFr
KSAmJiBzdHlsZSgpLT5hdXRvV3JhcCgpOwogCkBAIC02OTIsNyArNjk1LDkgQEAgdm9pZCBSZW5k
ZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAgICAgICAgbGFzdFdvcmRCb3Vu
ZGFyeSsrOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSBz
b2Z0SHlwaGVuKSB7Ci0gICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUo
ZiwgbGFzdFdvcmRCb3VuZGFyeSwgaSAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1
cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9
IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkgLSBsYXN0V29yZEJvdW5kYXJ5
LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxv
dyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA8IDApCisgICAgICAg
ICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGdseXBoT3ZlcmZsb3cubGVmdDsKICAg
ICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkgPSBpICsgMTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CkBAIC03MTUsMTMgKzcyMCwxNSBAQCB2b2lkIFJlbmRlclRleHQ6OmNhbGNQ
cmVmV2lkdGhzKGludCBsZWFkCiAKICAgICAgICAgaW50IHdvcmRMZW4gPSBqIC0gaTsKICAgICAg
ICAgaWYgKHdvcmRMZW4pIHsKLSAgICAgICAgICAgIGludCB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwg
aSwgd29yZExlbiwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFsbGJhY2tGb250cyk7Cisg
ICAgICAgICAgICBpbnQgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIHdvcmRMZW4sIGxlYWRXaWR0
aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKKyAgICAg
ICAgICAgIGlmIChmaXJzdEdseXBoTGVmdE92ZXJmbG93IDwgMCkKKyAgICAgICAgICAgICAgICBm
aXJzdEdseXBoTGVmdE92ZXJmbG93ID0gZ2x5cGhPdmVyZmxvdy5sZWZ0OwogICAgICAgICAgICAg
Y3Vyck1pbldpZHRoICs9IHc7CiAgICAgICAgICAgICBpZiAoYmV0d2VlbldvcmRzKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKGxhc3RXb3JkQm91bmRhcnkgPT0gaSkKICAgICAgICAgICAgICAgICAg
ICAgY3Vyck1heFdpZHRoICs9IHc7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFy
eSwgaiAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxi
YWNrRm9udHMpOworICAgICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9t
Q2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaiAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0
aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKICAgICAg
ICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5ID0gajsKICAgICAgICAgICAgIH0KIApAQCAtNzc0
LDYgKzc4MSw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKICAg
ICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggPSAwOwogICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gZi53aWR0aChUZXh0UnVuKHR4dCArIGksIDEs
IGFsbG93VGFicygpLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgpKTsKKyAgICAgICAgICAgICAg
ICBnbHlwaE92ZXJmbG93LnJpZ2h0ID0gMDsKICAgICAgICAgICAgICAgICBuZWVkc1dvcmRTcGFj
aW5nID0gaXNTcGFjZSAmJiAhcHJldmlvdXNDaGFyYWN0ZXJJc1NwYWNlICYmIGkgPT0gbGVuIC0g
MTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEFTU0VSVChsYXN0V29yZEJvdW5kYXJ5ID09
IGkpOwpAQCAtNzgxLDYgKzc4OSw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMo
aW50IGxlYWQKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChmaXJzdEdseXBoTGVmdE92ZXJm
bG93ID4gMCkKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy5sZWZ0ID0gZmlyc3RHbHlwaExlZnRPdmVy
ZmxvdzsKKwogICAgIGlmICgobmVlZHNXb3JkU3BhY2luZyAmJiBsZW4gPiAxKSB8fCAoaWdub3Jp
bmdTcGFjZXMgJiYgIWZpcnN0V29yZCkpCiAgICAgICAgIGN1cnJNYXhXaWR0aCArPSB3b3JkU3Bh
Y2luZzsKIApAQCAtMTA1Niw3ICsxMDY3LDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpzZXRUZXh0KFBh
c3NSZWZQdHI8U3RyaQogCiAgICAgc2V0VGV4dEludGVybmFsKHRleHQpOwogICAgIHNldE5lZWRz
TGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAgIG1fa25vd25Ob3RUb1VzZUZhbGxiYWNr
Rm9udHMgPSBmYWxzZTsKKyAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tG
b250cyA9IGZhbHNlOwogICAgIAogICAgIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUgPSBk
b2N1bWVudCgpLT5heE9iamVjdENhY2hlKCk7CiAgICAgaWYgKGF4T2JqZWN0Q2FjaGUtPmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCkBAIC0xMTIyLDcgKzExMzMsNyBAQCB2b2lkIFJlbmRlclRleHQ6
OnBvc2l0aW9uTGluZUJveChJbmxpbmVCCiAgICAgbV9jb250YWluc1JldmVyc2VkVGV4dCB8PSBz
LT5kaXJlY3Rpb24oKSA9PSBSVEw7CiB9CiAKLXVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVu
c2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wgZmlyc3RMaW5lLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0Cit1bnNpZ25l
ZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9z
LCBib29sIGZpcnN0TGluZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIGlmIChm
cm9tID49IHRleHRMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMTMwLDEwICsxMTQx
LDEwIEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20KICAgICBpZiAo
ZnJvbSArIGxlbiA+IHRleHRMZW5ndGgoKSkKICAgICAgICAgbGVuID0gdGV4dExlbmd0aCgpIC0g
ZnJvbTsKIAotICAgIHJldHVybiB3aWR0aChmcm9tLCBsZW4sIHN0eWxlKGZpcnN0TGluZSktPmZv
bnQoKSwgeFBvcywgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIHdpZHRoKGZyb20sIGxlbiwg
c3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4UG9zLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJm
bG93KTsKIH0KIAotdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5z
aWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAordW5zaWduZWQgUmVuZGVyVGV4dDo6d2lk
dGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIEFTU0VSVChmcm9tICsgbGVuIDw9IHRl
eHRMZW5ndGgoKSk7CiAgICAgaWYgKCFjaGFyYWN0ZXJzKCkpCkBAIC0xMTQzLDE4ICsxMTU0LDE5
IEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20KICAgICBpZiAoJmYg
PT0gJnN0eWxlKCktPmZvbnQoKSkgewogICAgICAgICBpZiAoIXN0eWxlKCktPnByZXNlcnZlTmV3
bGluZSgpICYmICFmcm9tICYmIGxlbiA9PSB0ZXh0TGVuZ3RoKCkpIHsKICAgICAgICAgICAgIGlm
IChmYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgp
IHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRoaXMpLT5jYWxjUHJlZldpZHRocygwLCAqZmFsbGJh
Y2tGb250cyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzLT5pc0VtcHR5
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRz
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZ2x5cGhPdmVyZmxvdyk7CisgICAgICAg
ICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVyZmxv
d0FuZE5vRmFsbGJhY2tGb250cykgeworICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PFJl
bmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZXaWR0aHMoMCwgKmZhbGxiYWNrRm9udHMsICpnbHlw
aE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrRm9udHMtPmlzRW1w
dHkoKSAmJiAhZ2x5cGhPdmVyZmxvdy0+bGVmdCAmJiAhZ2x5cGhPdmVyZmxvdy0+cmlnaHQgJiYg
IWdseXBoT3ZlcmZsb3ctPnRvcCAmJiAhZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMg
PSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB3ID0gbV9tYXhXaWR0
aDsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHcgPSBtYXhQcmVmV2lkdGgo
KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgZnJv
bSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAgIHcgPSB3aWR0aEZyb21D
YWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwog
ICAgIH0gZWxzZQotICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVy
cygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMpOworICAg
ICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVu
LCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogCiAg
ICAgcmV0dXJuIHc7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCShyZXZpc2lvbiA1NzE2
NSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkod29ya2luZyBjb3B5KQpAQCAt
NjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdGV4dExlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fdGV4dC5sZW5ndGgoKTsgfSAvLyBub24gdmlydHVhbCBpbXBsZW1lbnRhdGlvbiBv
ZiBsZW5ndGgoKQogICAgIHZvaWQgcG9zaXRpb25MaW5lQm94KElubGluZUJveCopOwogCi0gICAg
dmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0
IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzID0gMCkgY29uc3Q7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSA9IGZhbHNlLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29u
c3QgRm9udCYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxi
YWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgdW5z
aWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBpbnQgeFBvcywgYm9vbCBm
aXJzdExpbmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50
IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBj
b25zdDsKIApAQCAtMTMzLDcgKzEzMyw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIElubGlu
ZVRleHRCb3gqIGNyZWF0ZVRleHRCb3goKTsgLy8gU3ViY2xhc3NlZCBieSBTVkcuCiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpOworICAgIHZvaWQgY2FsY1ByZWZXaWR0
aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93Jik7CiAKICAgICAvLyBNYWtlIGxlbmd0aCgpIHByaXZhdGUg
c28gdGhhdCBjYWxsZXJzIHRoYXQgaGF2ZSBhIFJlbmRlclRleHQqCiAgICAgLy8gd2lsbCB1c2Ug
dGhlIG1vcmUgZWZmaWNpZW50IHRleHRMZW5ndGgoKSBpbnN0ZWFkLCB3aGlsZQpAQCAtMTQ2LDcg
KzE0Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZVRleHRCb3hlcygpOwogICAgIGJv
b2wgY29udGFpbnNPbmx5V2hpdGVzcGFjZSh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4pIGNv
bnN0OwotICAgIGludCB3aWR0aEZyb21DYWNoZShjb25zdCBGb250JiwgaW50IHN0YXJ0LCBpbnQg
bGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKSBjb25zdDsKKyAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udCYsIGludCBzdGFy
dCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyopIGNvbnN0OwogICAgIGJvb2wgaXNBbGxBU0NJSSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNBbGxBU0NJSTsgfQogCiAgICAgaW50IG1fbWluV2lkdGg7IC8v
IGhlcmUgdG8gbWluaW1pemUgcGFkZGluZyBpbiA2NC1iaXQuCkBAIC0xNzEsNyArMTcxLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9yIHJlbW92ZWQpLgogICAg
IGJvb2wgbV9jb250YWluc1JldmVyc2VkVGV4dCA6IDE7CiAgICAgYm9vbCBtX2lzQWxsQVNDSUkg
OiAxOwotICAgIG11dGFibGUgYm9vbCBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzIDogMTsK
KyAgICBtdXRhYmxlIGJvb2wgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9u
dHMgOiAxOwogfTsKIAogaW5saW5lIFJlbmRlclRleHQqIHRvUmVuZGVyVGV4dChSZW5kZXJPYmpl
Y3QqIG9iamVjdCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU3MTY2KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDQtMDYgIEVucmlj
YSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0IHJlcGFpbnRpbmcgZG9lcyBub3QgYWNjb3VudCBm
b3IgZ2x5cGhzIHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBoaWMgYm91bmRzIG9mIHRo
ZSBmb250ICg2Mjc0KS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY2NDk3MzQ+CisgICAgICAg
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3ND4KKworICAgICAg
ICAqIGZhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQu
Y2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3Rh
Y2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KwogMjAxMC0wNC0wNiAgQW5kcmV3IFNjaGVya3VzICA8c2NoZXJrdXNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIGNsZWFuaW5nIHVwIG1lZGlhIGxheW91dCB0ZXN0IGV4cGVj
dGF0aW9ucy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRp
Y3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1k
aWFjcml0aWNzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c3RhY2tlZC1kaWFjcml0aWNzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKKyAgICAgICAg
Imh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgIGRpdi50ZXN0IHsgd2lkdGg6
IDIwMHB4OyBoZWlnaHQ6IDEyMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibHVlOyBwYWRkaW5nOiAx
MHB4OyB9Cis8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVwYWludC5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisgICAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgICAgIHsKKyAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YWNrZWQnKS5pbm5lclRleHQgPSAi
IjsKKyAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blJl
cGFpbnRUZXN0KCk7Ij4KKzxwPjxiPkJVRyBJRDo8L2I+IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc0Ij4gQnVnemlsbGEgYnVnIDYyNzQ8L2E+VGV4
dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91dHNp
ZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udC48L3A+CisKKzxwIGlkPSJzdWNj
ZXNzIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpwYWxlZ3JlZW47IHBhZGRpbmc6M3B4OyI+PGI+
VEVTVCBQQVNTOjwvYj4gCitUaGUgdGV4dCB3aWxsIGVudGlyZWx5IGRpc2FwcGVhci4KKzwvcD4K
KworPHAgaWQ9ImZhaWx1cmUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNGRjMzMDA7IHBhZGRp
bmc6M3B4OyI+PGI+VEVTVCBGQUlMOjwvYj4gIAorTW9zdCBvZiB0aGUgdGV4dCB3aWxsIGJlIGdv
bmUsIGJ1dCBzb21lIGFydGlmYWN0cyB3aWxsIGJlIGxlZnQgYmVoaW5kIGF0IHRoZSB0b3Agb2Yg
dGhlIHBhZ2UuCis8L3A+CisKKzxkaXYgY2xhc3M9InRlc3QiPgorICAgIDxkaXYgc3R5bGU9ImZv
bnQtc2l6ZTogMzZweDsiIGlkPSJzdGFja2VkIj4mI3gxRUE2OyYjeDFFQTQ7JiN4MUVBQTsmI3gx
RUE4OyYjeDFFQjA7PC9kaXY+Cis8L2Rpdj4KKzxicj4KKworPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRp
Y3MtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0JKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNr
ZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBA
QAorY2U5YmU4NmNmYjk0MzNhNjRmYzY1Zjg3MTBiMDIwNTYKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNr
ZWQtZGlhY3JpdGljcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFj
a2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBA
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDMxNgorICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4MzE2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYp
IHNpemUgNzg0eDI5MgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDM2
CisgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA2MngxOAorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDYyeDE4CisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA2MjogIkJVRyBJRDoiCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoNjIsMCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDYyLDApIHdp
ZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTE3eDE4
IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjYsMCkg
c2l6ZSAxMTd4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2NiwwKSB3aWR0aCAxMTc6ICJC
dWd6aWxsYSBidWcgNjI3NCIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxODMsMCkg
c2l6ZSA3Nzd4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTgzLDApIHdpZHRoIDU5NDogIlRl
eHQgcmVwYWludGluZyBkb2VzIG5vdCBhY2NvdW50IGZvciBnbHlwaHMgd2hpY2ggZHJhdyBvdXRz
aWRlIHRoZSB0eXBvZ3JhcGhpYyBib3VuZHMgb2YgdGhlIgorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDE4KSB3aWR0aCAyOTogImZvbnQuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDUy
KSBzaXplIDc4NHgyNCBbYmdjb2xvcj0jOThGQjk4XQorICAgICAgICBSZW5kZXJJbmxpbmUge0J9
IGF0ICgwLDApIHNpemUgOTF4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMs
Mykgc2l6ZSA5MXgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMykgd2lkdGggOTE6ICJU
RVNUIFBBU1M6IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDk0LDMpIHNpemUgMjAz
eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDk0LDMpIHdpZHRoIDQ6ICIgIgorICAgICAgICAg
IHRleHQgcnVuIGF0ICg5OCwzKSB3aWR0aCAxOTk6ICJUaGUgdGV4dCB3aWxsIGVudGlyZWx5IGRp
c2FwcGVhci4iCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsOTIpIHNpemUgNzg0eDI0IFti
Z2NvbG9yPSNGRjMzMDBdCisgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA5
MHgxOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywzKSBzaXplIDkweDE4Cisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCA5MDogIlRFU1QgRkFJTDoiCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOTMsMykgc2l6ZSA1NjF4MTgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoOTMsMykgd2lkdGggNDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDk3
LDMpIHdpZHRoIDU1NzogIk1vc3Qgb2YgdGhlIHRleHQgd2lsbCBiZSBnb25lLCBidXQgc29tZSBh
cnRpZmFjdHMgd2lsbCBiZSBsZWZ0IGJlaGluZCBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLiIKKyAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEzMikgc2l6ZSAyMjJ4MTQyIFtib3JkZXI6ICgx
cHggc29saWQgIzAwMDBGRildCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMSwxMSkg
c2l6ZSAyMDB4MAorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMjc0KSBzaXpl
IDc4NHgxOAorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgxOApJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3Mt
ZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEg
YmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQv
c3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWlt
ZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNV
aEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFBZUFH
RgpWTTlyRTBFVS9qWnVxZEFpQ0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6U2Ra
dU51dnVKcldsaU9UaTBTcmVSZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVNdHFY
cXdNNSs4OTQzNzMxdmR0OEFEWExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFsVmR2
c1RpUUdRWU56K1h2bjJIb1BnVnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhDbGtT
QW9nOAozNkVweDNRSTMrUFk4dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRRSU5J
T0pUMWNWSStuTmVMbE5jZEIybHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9zOTQr
d2lIQ0N4bXRQMGE0alo3MWpOVS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFUU2Vp
VkhIWkxnM3htSzc5VnZKS2duQ1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1VlRjVq
eE5uM3RUZAo3MFhhQXE4d0RoME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJodVRl
ekoxSkdxN2RHSkVzVUY3TnR3OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkxeXcy
RmIzbEsyYm1ycnk0RHZGNVptNUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAreFhs
ekhtZ2pXUHhIT3crL0V0WDVYTWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJYV2M2
MkppemRXbTVkbgovV3BJKys2cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3eGt0
aExxd3ZpWUczSENKMlZoaW5TYlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxTSjkz
L0NLbVEwbmJrT2IvcVAyOGY4RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJWHY5
Rjk4TFp1YTZOK09Qd0VXRHlyRnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82NmNw
aVVzeFEyME5TVXRjbAoxMlZMRnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3L2JC
UytmbXNVdGwrVGhyV2daZjZiOEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWV6ZFo3Y2t4MzBuNkd3
RDd4M2hDTzlKa0FTTmFDV0tYSEYwVm1lMFhKN1ZDK2pqNk9NTXo1eDVNM08wUnl2dGpIWkUKa1VP
S0l1Z0pBb1FudlBlMnplWXZiMGQzZHFJcU0rcm12YmVycTU4Z0crVWlJeU9laU15S2Y1cTYrKzYv
Ly82ampVU0FBQUVDQkFnUQpJRUNBQUlFOUVOaS9CK3V3Q2dJRUNCQWdRSUFBQVFJRUNIUUNBaEFE
Z1FBQkFnUUlFQ0JBZ0FDQlBSTVFnT3dadFJVUklFQ0FBQUVDCkJBZ1FJQ0FBTVFZSUVDQkFnQUFC
QWdRSUVOZ3pBUUhJbmxGYkVRRUNCQWdRSUVDQUFBRUNBaEJqZ0FBQkFnUUlFQ0JBZ0FDQlBSTVEK
Z093WnRSVVJJRUNBQUFFQ0JBZ1FJQ0FBTVFZSUVDQkFnQUFCQWdRSUVOZ3pBUUhJbmxGYkVRRUNC
QWdRSUVDQUFBRUNBaEJqZ0FBQgpBZ1FJRUNCQWdBQ0JQUk1RZ093WnRSVVJJRUNBQUFFQ0JBZ1FJ
Q0FBTVFZSUVDQkFnQUFCQWdRSUVOZ3pBUUhJbmxGYkVRRUNCQWdRCklFQ0FBQUVDQWhCamdBQUJB
Z1FJRUNCQWdBQ0JQUk1RZ093WnRSVVJJRUNBQUFFQ0JBZ1FJQ0FBTVFZSUVDQkFnQUFCQWdRSUVO
Z3oKQVFISW5sRmJFUUVDQkFnUUlFQ0FBQUVDYXhlQWZQREJCODNiYjcvZEhEMTY5SGp2dlAvKys4
ZWZlOUkwSDN4d3RIbnJyU1BIS1E0ZgpQdHE4L1BMeTE4Y3pWano1NktPanpidnZuckN2V0dSSHMy
VDlhY3VoUXlmWElXM092N25wVkxadGJ0MTNZdmxzWDIrOTlkYTJpNXE3Ci9Lb3JQbkxrU1BQbW0y
K3V1cGo4cDBnZysrb1hYbmloM1ZZLzJKTWFIRDU4dU4xZnZMeGo2L3JvbzQvYS9kKzdPMVplYlVG
VDYxMWwKdTVzcWE2cE9aOG8yTjJXNmt3NXorMlNxenpicDh5bXJxWDRiczVncWUyelozZmhzSjhm
WW92cXRzajgrRlRZSEYxVzYvOTZUVHo3WgovUHJYdjI3ZWVlZWQ3dTFQZk9JVHpYbm5uZGU4OGNZ
YnpTV1hYTkxjZSsrOXpZVVhYdGg5OXRoamp6Vy8rYzF2bXZmZWU2OTdmY1VWClZ6UjMzMzEzODhs
UGZySUxLbjcxcTE4MWYvempINXZycnJ1dStkS1h2dFNWazR6cGhOLy8vdmZONDQ4LzNuMTI4Y1VY
TjYrLy9ucTMKekFVWFhOQ2NmZmJaeldjLys5bXV6UDUvVXJmZi92YTN4eWRVNTU5L2ZuUFBQZmMw
Ky9mdmI3S3U4aVY0NVpWWGRuVk5HMUwzNUxubwpvb3Y2UlUwK2YrNjVJODFERHgxdXYxeVBObTMx
bXNzdTI5L3MyOWQwL3k2OWRGOXorKzM3Mi9XMmIreEIrczF2RGpjdnZuaWsrYXUvCk9ydDU1WlVq
elU5L2VxaEpqUGE5NzMzODlTclZlZVNSdzgzUGYzNjR0VDdRM0hYWGdWVVduWjMzalRlT3RPUHNj
UE9KVCt4dmJyaGgKZjNQdzRKYmxxNjhlYWZzeTdUM2FCcVZOKzltKzVpdGZPZGdjT0xDdkhUZEht
Ly82WHo5cSsvbmpxLy91ZDg5cSsvcmsvbmorK1NQTgpqMzk4cUhQS0V2L3lMLy9TVFY0eVRzODY2
Nnh1YkdZTVhYNzU1YTNuKzkxblgvN3lsNXRiYnJubDR5czRUZC9KOXZuaWl5KzJZK2V2CnR0V0N1
Y3V2c3RKWFhubWxIZHMvN2ZybUwvN2lMMVpaVk41VElQRG9vNDgyQ1FpeTMvM3hqMy9jL1BWZi8z
VzduZTdlZnFTTWoyeXIKMy92ZTkyYTNPTjhuR1crZit0U251bit6QzZ3c29HYTl0ZHRkVFZsajFT
cW0yUjl1K2pZM1pycVREblA3Wkt5L051MnpHcXV4Zmh2egplT1NSUjlyNXpjKzd1ZVJkZDkwMWxu
VlBQdHZKTWJhb3dxdnNqMnZjRjYxajdudVRBY2hOTjkzVUpETDYyYzkrMXEzck01LzVUSk1KCi9T
OS8rY3N1YUhqNjZhZWI3MzczdTEyUWNPdXR0M2FCeXU5Kzk3c3U3eGUrOElWdU1wY1hDVksrL3ZX
dk4zLy85My9mZk8xclgyc24KbUZ1clBuVG9VUE0vLytmLzdDWjdmL3FuZjlwY2YvMzEzYkw1ejdQ
UFB0djg4SWMvYkNmRGl3ZEw2cGFVTDd1a0JEdTMzMzU3OXp4SApzUktjSlAzSm4veEpHelJjM0xY
akgvL3hINXRnSjZCWlZtNjMwT0EvMTE2N3YvMHliZG9BNUZCejY2MG5KdWl2dlhhaytlLy8vVkFi
CmtCMXQxelBKT1NoMWV5L3Z2ZmRBOCtHSFd5ZXZycmhpZjNQenpRZmF2ampjRlRaOHZjb2Fici85
UUJ0QWJwV3p5bkp6OHo3NjZPSG0KZDc4NzNIejcyd2ZiY1hMaXBGek9oaVFvdWVPTy9XM1FzYi81
d3g4T053OCtlS1R0eThOdDRIdXdEUmlPZEo5ZGM4MVczNlFlNlllSApIejd5c2VEand3K1Bkb0ZN
NzhSYUYvais1Vi8rNWZFQStqLy81Ly9jQmtDZmFOZjFsYTVKRHozMFVKZG5idnZLVWRxcnI3NTZi
bEd6Cmw4OEJndzgvL0xDNm5HSGRWMTIrZWtVTE1pWXd2T3FxcTA2N015QkRzd1ZOTyszZW1tcFQ5
dVA1Y3YrYnYvbWI5cURNdnViYWE2L2QKMWVBamdCa2ZOOTk4Yy9jOXRCT2crVDRwM3hrN1VWNXRH
VFhycmQzdWFzb2FxOWZwdXMzMTJ6UTFWa3ZlTWRPNUR2MDZ6TzJUVXQveQoyQys3dkxjcGp6VldZ
LzAyNXBDNVlZS1hkVWx6eDloWU8ycjJ4LzF4Vk9NK3RyN3RmblppdGpkU3dqbm5uSFA4MDN5NUpG
MTY2YVhkCll4cVJzeFVsOWZPZWUrNjU1ZTNqanpuelVJS1B2Smt6RlRtRm5nQ2hIM3prczV3cHlX
QWJTems3VWxML2VZN2dsSlF6SWtsNUw4RkkKenJqODRoZS82QzRWS0hscUhrdVJ4d2k2UlhJbTVQ
TEw5M1ZuSkdyS0dPYnBYMm8yL0d6WjYzUE8yZGVld1RuUmRXbGV2MDdEMTZXYwpuREdZU3N1V25W
cHUrSGx0dTE1NjZVZ2IzQjV1ZzlLVGc0K1U5OG9yUjVzdmYvbGdPeTRPZEFIRlp6NXpvQTBXbW5h
OGJMWGp5aXYzCk41Lys5TUYySXJLL0hZOWIvOTU2NjJpYi8rUXpIeWtyQWM1dHQ1MHd5M3NKUU12
WnU3d2VwdHR1dTYwYmw4UDNWM21kc2ZhVG4veWsKRytPckxGZWJkOHc1Nng2bWJKKzFaLzhXMVgy
VjVmdnJIcXRuUDE5NVh2Sm4yeTM3blBMWjNNZFM5dHh5RmkyL3lHeFJ2cnkzcUgrVwo1VDJWNzll
MEtkOEJ5VmY2S2dlcGRqSXQ2N001NDJOUm1lVzdZcXJ1aTVhZFdtYnM4Nm4xcnJMZFRaVzFyQjZs
VGF1WXJ0c1lIaHVyCnBYMmwvY3RNUzc1VkhFcVplVnhVaCszMlNiL2NaV1VQODR5OUxtMGJ5N1Bz
cyswc096VStGcFU1WmJXczM1YlZ1Ly8rZHZ1MFg4Wk8KUEMvdFhsYWY4dmwyMXpXMVA5N05NYnBL
bmJkOXlMNWNkNXNKWEk1U2JpZmwxUGtmL3ZDSGJ0RmxSNGR6Vm1NbnJ3Ry83TExMamxjMQpaMnJL
ZXA5Ly92bm0zLy85MzdzektGbG5iY3E5Q20rK2ViUTlLM0ppY3Z2VVUxdVhNdDF6ejRIbXpqc1B0
R2RjRG5kbkZxNitlbjk3CjZWazU4M08wUFl0MHVFbU05dEpMUjlzelNGdVhkVjE1NWI1MlVyeXZ2
VHpvVUh1bWFWOGJyRFh0V2FXajNaSDkrKzQ3MkU2MDl6VlAKUEhHa2VlYVpJODEzdm5NaXlCcXI3
d3N2SEdsZWZYVnIwcDdsdnZTbEE5MkVmZGt5YWRNdmZuR29XOC81NSs5cnZ2clZBKzFFZkg4egp0
MTFYWFhYQ3FLejdmLzJ2UTIwQXNhKzd2T3JoaHcrM2w4cnRhL3RrSzEvT2JQUlRKamNYWDd6ditO
bU5DeTc0ZUtEeHpETkh1L3IyCmw0dC95c29abFg3S1VkcXhsRUM1ak8yTTFRY2ZmTEI1N2JYWDJ2
dFREalU1dTVkSjFxdXZ2dG9GMGJuczhJdGYvR0lYWFAvYnYvMWIKRjl6azBxMkhIMzY0N2F0bnVz
c0VjMjlUeVZQV20rVnpxalE3MWF3dloxMisrYzF2TnJuMGNOSDZNazV6cVdLMnUreEU4anc3c1Z3
cQpkczAxMTNURjVocjhsSnVVZGVkeXh4d3dTQjJmZU9LSjdyM3ZmT2M3WFFDZWRlZXlzeHdBeVBh
UXNyTCtsRCtzKzZjLy9lbnVNcldVCldiTjgxaCtybkMzTndZaVhYbnFwTzFPYWJUQjJ4VGI1U2ty
K0hCeklwWktwYnk3MTdGL0drN094T1dpUmVzWXpUam1iV1E1cUxPdW4KbFAvVVUwOTFaMzlTUm1s
RFdXOTVqTjJZU2ZLTjFXRm9OdXp2TEwrc2YvSloycDkreU1HU2pMVmNEbGoyUjJPZmpkVXA3Yzda
aVZ4NgpldWVkZDNabmdITWtNUHUrakkycE5rKzFLVjQ1RTU0dnpad3BUMy9kZDk5OW8wN0x4bjJP
Q3ZiVEt1TW5aN1pqbHpHUjlaZExlYk5mCno1bjcxRzlxMnlucnptWEh5WnQrK0xNLys3UGpCeXBx
eGxBc2NpbFh4bmUyeTR5MWpPbU0rNHlISEFESWRwNTgzL3JXdDA0YTM0dlcKTzl4dVU4ZXhzVERW
aHZKNWVVeFp5N2E1WmYyVVpSYnRZK2EwdmRSbnpsaGVORlp6SlVYTyt2YTMrMldteXh4U3Q3RjlT
Nmw3SGhmVgpvWHkrcUgvejJYYkx6aGpMV0pvejVzZThVN2V4YlREYitxTHZyMlhqbytiN0srdE1X
bVMxck4rVzdUTzNTanI1djJXODU3c3czMzFmCi9lcFh1MzFGY28xWnpOMlBwdnl5N21YZmJ6WDds
Nmw2THRzZlo3bVNkbk9NbG5YVVBKNDh3NnRZSXRlUFoyS1VuZjBkZDl6UlhTZGEKam5wVkxINVNs
a3d1U3NvRWJGRksyYm5YWktkU3ZsQXk2Skw2Z1UzYWszdEVTa0EwdHI3WFhqdmFUY1lmZlBCdzh6
Lyt4NkZ1d3B4QQpvNlFiYnp6UW5aRW9OMUxmZE5PQmRnZXhyOTBKbnBnQVAvNzRrZmFMcCttTzRO
OTMzNEYyWXJmMVdhcVdtOHJ2dm50LysyVjFzTHNmCm81MW50Uk9zZmUwRWMxOVhiZ0tTSE9tdlNT
bnJKejg1MUoybFNVQ1VNbjc3Mi9ITHJKNTg4a2o3NWJtdk95dVJHNzhUREIxcHo1N00KYmRld3Zt
Ky9mYVNkWkc2OW0wdW5jb040MXZYQUE0ZUdXYnZYbVVDOC92ckp3VjQvWThxTCtTV1huQmpXS1RN
QjRqQ1k2UzgzOWJ3YwpMY2padUc5Lys5dmRwUEJmLy9WZnV5KzFUQkF6c2N0WXl0bkFYUCtld0tQ
Y041TEpZeWJmTjl4d1EzZHBWNWtvbDNXbTdOd1g5ZHh6CnozVVRrK1RMR00xWmswWHJ5K1FsRThh
TTE1d2h6R1dOMlhZUzlDU2xEbG0yMUN0QlNibXNKTnRTeG5pNUNUM2JWU2E1K1lKT0hkTzIKcEd6
ZlNZdnF2c3J5S1NPVHVIeEpKWGpKcERCdFRTcmJZUGVpOTU4Zi9laEgzV1Z3eVovSldvS01mdnJC
RDM3UVhYcnorYzkvdnZuRwpONzdSbmlWN3Bja3lTV1A5bE05eW4xbE93NmUvTXRGZGRKUnB5aVRy
R2F2RElyTXNVOUpZL3lSUExqbE52NmFPS1N2Qlc1bm9qWDAyClZxY2JiN3l4T3pPUkw3K2tuRzdQ
aEtWY2lqZlY1cWsyNVV4aExyOU5TcCtsbjVQRzZyUm8zUGZQWUhjRnRQOVpaZnlrWGRrV1VuYUMK
ajZRODVzcyt3ZGJVdHRNdDBQNG5ZelNYWWliSXpoZ3AyMFB0R01vOWovRk5lL0l2KzRJWVo4eVhz
NDk1akZrL3VGNjIzdUYybTNxTwpqWVY4dnF5c2ZEWk1ZOXZjb243S1BtelpQbWE3YmUvWGFXemNU
STNsNFZqTmdZcEYyLzBpMHltSFpmdmtmdDN6ZkZpSHNzOWYxaWN4CjNtN1pHVU56eC95WWQ5b3p0
ZzJ1T2o3bWJvT0wrbTFxVzBnYitpbmZuUW5jY2l0QXZxOXpMMmpha1RSbU1UWDJwdmFqS1g5cWpD
MGEKcTFsdW1NYnF1V3gvM0M5ak44ZG9mejFUejAvTTFLWnk5ajdQVGptVHBCenRlS0tOSXJlYity
ODIwdDhSYjdlODJ1WHloWlNVd1ZjbQpJZG1RYzRRcVgveFRxVzErZDlQMzY2OGZhUitQZHBQemZu
Q1I1Uk5jOUZQT1pQUlR6bUtVcThkeStWRDd2ZG1sQ3k3WTMwNEc5N1dYCkVXMTF6V09QSFdrbmlV
ZmJML1lFTmZ1NnozS1dvRGExKzkvMlJ3QnllZExXTXJsOEt4UHlzWlI3U25MWlU4NUVmTzV6Qjlw
SmE0N2EKYmkwenAxM0RkYVpkU1FuQWN2OUp6dkRjYzAvdTlUalNCaG9mdjN6bzZhZVB0TmVXNTVL
M3hjUDI2YWR6K2RXSno5SzN1ZlFxZ2RlYwpsQytPcEJ6QlQ2Q1F5WHJHVGw0blpYS1R3Q0ZINXJN
OUpEQWZwdlRkb3BRekFaa2s1Vi9LeUJIcEJBVkppOWFYaVUwbU1wbWtaaWVhCmlWSjJwRGt5bENB
b1g3aVpCSlJMSlBQbFZBTHQxRHM3eVpMeU9tYzZramZscGV5VVZ3S1VrcS9VZlR2THg2Tk1MTE9l
MUNjcDZ4cW0KbkZXTmJ6bVRrL1dtWGlYbHM1amtpeUFwYmMza0x1OW4yYkYreXBHdG5KWk9zSldV
blhUWjlyczNqdjFueW1TcURxV3NZbFplbDhleAova2xnbWI0dlp3RVNSR1pDSDZ1eHoycnFOTnkv
bGtsUjZqWFY1bEwzWlcwcW4vY2ZwK3EwYU55WHlYbS9uRlhHVDViTEdaNVlsY0ExCjQ2S2M2Wnph
ZHNwNmt6L2JkTGF6YkE5bCs2a2RReWtuNHpKSGU4c1l5NWpPbVpBeTBVa2RzNzMzMDdMMURyZTdz
YkZReWx0V1Z2bTgKUEU1dGM0djZLZnVxWmZ1WWxMdWR0cGY2VEkyYjVCc2J5NldjTWxhWDlkblFk
TXBoYk45UzFqbDhMSFVvN3kvcms3bGx6eG56TmQ1agoyK0NxNDJQdU5qanN0NXB0b2ZpWHg1dHZ2
cm1kSjF6ZmJlT2YrOXpudW9OeUthZkdZbXpzVGUxSHA4YllzckZhNmwwZWErcFo4azQ5Cjd1WVlu
VnAzUGo4eFc2dkozZWJKRGptL0VwSWJ4alBweVJHNm5BTGNUc3JrcDZUK3BDZGZ3am1GblJ2R3k3
OGM0YzNSdzUxSW1Ud20KWldNb0haREpYRzVJTGpleGo2MG45M3prak1mWHZuWlc4eC8vNDFudGtm
dW0rZWQvM2pwTE1MWmMvN01FSkxuSG9hUUVIYmtVS1NsbgpPL0l2WngveUMxRDVoYTMrcEh2SlhM
WVVkZEpqMnZlRkx4eHNUeTNtU043V3IyZTFjN0hSMU1hV3gxT3BVKzBabDdGMkhTLzAySk55Ckwv
UkZGNTJZbk9jWHNKTEtKV1BIc25abmozTFQrZWMvdnp5WXlPVmwvUURra1VlT05EZmZmT0lYdFVw
WnF6N21LSHNtenBrODVsOTIKdW4vKzUzL2VCYXlsckJ6MXpSaE9FSnM4cTZUczFNckVQTXZWcksr
TTIrVFBoQ0FIQkRMaDJlcnZMM1Nua25Qa05tY3NzMk1ycWI5YwozaHUrVGpsajI5a3cvL0QxY1Bs
TWROT2VrcktUTGhQczhsNTVUSENSU1dnSldQSitmNktjTXdHbEg4b3lwYXpzTThiY3Nsd21UVGx5
CmxNdUVNcmxjMWs5amJacXFRNm5Yc3NlVW5jdjMwaWZEL2tuN003YjY2OC8rS0hVZisyeHVuVkxY
L2pyemV0aVBlVytWVkZPbjRiaGYKVlA0cTR5ZkxKMkJOMytZeWhLUUVuT24zZnVxM3RiL3RsRHo5
enpNV3k1bWpWY1pRZ3VUK1FZcWM3YzkybFlsT0hoT1k5TWQyMXIxcwp2Y1BQeHNiQ1ZCdks1K1Z4
YXB0THZtRS9wWjdMeG5EeWI2ZnRXUzZwWnR4czVhejc3MWlmOWIybkhNYjJMWFUxV2Q2L2M4dWVN
K1pyCnZLZTJ3VlhIUjd6NjlxdHNnOE5sYTdhRllmOWszMVpTK2Y3SWQzZU5SVmx1MldPL1hjblQz
NDlPamJHeHNkcGYzMDdVczE5ZS8zbS8KL3YxOTM5d3gybDlILy9uZ3VIei9vL0hubVdobFlHYm5u
Rk5hNVJlbCtwMjdhQ0pUamdpbDlBeThrdnFYWTZYczdPRCsyMy83YjkxTwpQSUZDcnFYZHFWUUNr
SHpaejAzNU9kaE1tbk0vUjM2cU4yY09hbEorNWphWFJ1VklmODRxNUY5K2dyYWZFbnkwKy9yMit1
VzZNdnZMCjlwL241M1Z6NC9hWHYzeWdhWDhwdWQzUTZnTzVuSkZKVU5IYlp2dEZmK3g1VGJ2S1F1
VWVqbHdtZGZiWlcwRkk3bjlKbTQ5ZExWS3kKZHIrR2xUTWs4VjZVY2licTdiZVB0aE80RTUvbjdG
SGVLeWxuV2ZQdnYveVhEN3Rmei9yc1ordUdmOFpMTnN4eVpMNlUxMy9NWkRZNwprSnhDemRtMC9p
UzZuNi9tZWMzNmh1V2tmbVZDblo4YnpOR1diRFA1YWV6c3NFNVZ5bjRobHhmazdFTytxUEl2QnpF
V3Bad1JMWmNGCjlUOHZPOFhzYThxMTNHVS9rek02K1R6N21pbTNYT3ViczUrNS9qVUJTNExJVWs1
L2ZXUFBwK293dG16NWJGbi81RHJ3L242dzVNL2oKMkdjN1VhZit1bmJpK1U3VmFaWHhrM3BuRzBq
UWxvTml1WVF4NDJKcVcreHZPMU50cngxRDJSZmtpSGUrR3pQRzhwMldsR3U4RTN3TwpnNktwOWZZ
L0h4c0wvWHcxejZlMnVXVmxMQnZEeVQrbjdUczFidnIxcnVtektZZXBmVXQvZmFzK24xdjJuREZm
NDczcU5wajJqNDJQClJUNnJiSVA5NWVkdUM1bGJaaDZiYlRRSDFNZStYL3JyM2M3enFUR1dNbXZH
YWsyZmJhZCtZOHZNSGFQTHlqNTV4cnNzMTRMM2N5cTUKQkJPWlZKUlVJc3E4THFmQnkyZjlaZkpl
ZGxTNUZDSXBYN3lsdkx4T21UbVNsZFFQVkxvM1p2d25VV2krQUZKKy94ZTJNdkJ5LzBmLwpURXp0
YWpKaFRzcWxXYlhwMm12M2RiL0s5UHp6UjlzSjR0SHVKMmo3eStidmUyUUNuY3VUeXVROFowUldU
Zm43R3ZtVnFaU3puYjlUCjh0NTdSN3Rnb0Z6Q05iWCtxWGIxbDcvc3NuMXRQelRkSldibC9RUWVj
Y3pONWlYbEo0WnZ1V1YvT3g1T3ZKZUFvNTl5OWlPWFo1WEoKYWo3N3lsY09OTi82MXNIai8vTHp4
UW1rOHQ1dHQ1MFlzLzF5RmozUFRxb2N1U3lmWjZ6bTdFSkp1V0V1RTlxa1BKK1RhdGJYTHo5agpO
dU0zazV4c1J6bkNuek15SlNEcDU5M3I1NW1FWlJ2UDJaa0VRdVUrazBYMVNIQ1FIZDJ5YlREN2di
ajNBNnJrejN2NWJNd3RYeTdKCm0zdEgwazhKaURJWlhEVk4xV0dxdkxIK1NmMnp6K3p2TjlPMkJF
dGpuODJ0MDFTZHQvUDVUdFZwbGZGVDZwa0RBTm5IWnp2TW1lMngKMU45Mnh2TGxzMVhIMEMzdFpW
aTV2Q1lIQVZLbnZNNWxXTm1YVE5WcnJDNWpZMkZzdVVXZlRXMXppNVlaRzhNbC8zYmJ2bFBqcHRT
agp0cyttSE1iMkxXVmQyMzNjaWJLM08rWnJ2RmZkQm12R1I5OXFsVzJ3djF5ZXo5MFdNajR5b2Mv
bHdUVVd3L1d2OG5wcWpOV08xZDJ1CjU2STI3Y1FZWFZSdVZRQ1NMKzZTeWpXc09jS2FvMHVaOE9X
R2xwS0NVd0tIM0NQU1Q0bUtzMlBxcC93NlNScVhRVERNWDliVnp6OTgKbm9sWFNmblNLYW4vdkp5
SlNkNWNwNTlvTjBlSHM5NlM4cXN3RHp6d1FIZHpYM2x2K0ZoV2xhUG9KZVdtNTl5MDNjWlM3WmZL
Q2M3YwpwNUZMckhJVGVDYnh1WmUyeDlqZENKNUxqL0kzTG5LVGV2bkRleWszazQ0SEhqamNscmV2
eWYwWTViM2N1SjZVU1hwTDMrWEw2OVNuClg2Zis2M0svUjI3eXpvM2srUU9HWmRtc1oxSHF2NTFm
ME1yUDJ1Ym5ocFBtdEd1NHJ0eVBjdWVkKzl2SjZRblFtT1hFMk5WWGJ3VWIKano5K3VKMWNwKzc1
K2QwajNiLzhQWkJ5LzBncE0vZUhESDkrTi9mVzVDZDZ5Ny8yNnA1MnZPYnZCK3h2Ky81RU1KTXlZ
cEh4MWg5UApwZXpjM0pvakxmazFuWHllNTdteHUxeENtR3N5YytsUXhuNnVLYzNsSDVrMGxwUWpz
Tm01SkMwcVArc3VZelI1cHRZM0xDY1RtcHpOClMvQmZybGZQbDBEYWt5QXBaV2NkK1pmdHJMeE9P
Y21UOTB2SzUvM1h3N3F2dW55Y1lwUDdZdEt1NFdVblpiMTVMRGY1WlQ5UlV0cVQKL1UvcW1Xdm1z
eE5QZTB0S01KTHljM1pxekMzdUplQkkzbHdEdkt3dVl5WlRkVWk5aG1hbHJua2M2NStVbmFBeFo0
eVNMLzl5aVd2MgpwMU9mamJsa3ZUbFRsTlBvNmZ1TXhRUTV3LzE2djkrbnhrSEs3S2V5djgxeVNU
Vk9XVjkvM1BmTEs4K254ay82S3YvNktRZTJNcGF5CkhmYnZJU3A1K3R0Z2Y5dko1NmxQYVVONVhl
cTR5aGpLc3BtNHBUL3pIWmt4a2Z0S011WnlHV0wvUUVsWno3TDE1dk44bG5yRWJHd3MKMUpTVlBD
Vk5iWFBKTit5bnNURmN4dEFxYlM5MXlXUE51SmtheS8zdEx6K2FzV3k3NzV0T09ZenRXL3IxTDgv
N2RjaTRHUnRYYzh2TwpPcmM3NW11OHA3YkI3WXlQN1c2RGFXdS8zNmEyaGVRZnBqSkc4MzYyLzN3
WDVPQmRqY1hVMkJ2NzdwZ2FZN1g3bDVwNkR2ZkhRNE84CjNzMHh1bWg5aTk0NzBKNEYrTHRGSDVU
M2NnbzVBN0EwS0JPclRHcXljOCtsRlBtN0dzTkxVd0tVQUNYWDMyYUNrS09OT2J1UW5XOXUKbU9y
dmZQTmVncExnNS9LVnNxRm1wNUdBSkpPcVRGNHl1UnVtMUMyQlF4bk0yVEdtN0R6bSt1cnl4Wkgx
cHg1UHREZkVadEtZbTNhSApsMTlsbVJ5bHpmcXlReGltVEpKekpENDNaT2QraUV6b014SE9mUWFa
Mkg3akd5Zi81ZTFNcmg5NmFPc3NSdUtpM09QUk5yRTdpcC9MCmpITEUvbGUvT3RMZUpKMS9oN3V5
OHV0V21YZ24wSGowMGZ3UzFmNTJQVWZhamVSSWU5bkkxazNyTFZmM1BQVTQ2Nnl0bjYvTmV2SzYK
L1Y1cjI5eDA2eTJ2YzA5RXpyS2tubmt2djJTVmdLazlhTjUrT1gvOHI3Zm5YcEVubnp6YTl2Zlcz
OXRJVzNNUFNibjBhVTY3RnAyQgpTWkNWTTBEeFRWQ1JtL1B6TjBIT09XZC9GeXo5NkVlSDIrdmY4
L09aK2NuWnJYL0o5NFV2Yk4yVW4zNUtnSkpMNFBJVHg0dldVZm95CndkaXp6eDc5MkUzcG1heG5I
R1ZzSjdqSXBDRTdtbkptTHhPRy9NdGxIUmxYR1VjNTRwU3hraDFZSm96NTFhWk1Bck5NSnRCbExH
WHkKbUZPdldUYVAyV2I2RTkrTTRXeEwrU3g1czk2eDlhVXR5Wjk2WmlLWjdTenJ5cTlocGR3RTFR
bUlVb2Q4K1dhbmwzWGtLRlBLelhhWQo5eE9FWi92STVVZ3BLOXRESnFScFh5YW5hVnUybFg3ZHMw
eld2Y3J5T2VLYm9EOC9rNWgvWmYyWmpBM1AwR1NIbUhWbWZ4UGpuSzFNCnlrNDliY3ROMmZFcjIz
YjJTV2xiYnR3dlpzdjZLVzNMVDlHbWYrS1dmN20wb0w4dnlycXliMHRmTFRQSmZtaXNEaW1qYnpi
czc3SCsKeVg0blIrTFM5dXdMcy8vTS9YWlpaMnd5TmhaOUZzZXBPbVdDa25ibGFIemM0cFQ5Wm45
OExtdnpjQndNMjVUQUp2Vk51OU5YeVoveQp4K3EwYU56SGJwakd4aysyMTZ3MzR6SHJpMDhaVS9I
S1JHVzRMeC9iZG5LMklwL0hKOXREUE1yMmtINUptVFZqcUxRaFl5dGw1UHNyCnkrWjF6UE45bDlj
bFRhMDM5Y2wyV3JhN2JEdkx4c2xVV2NQdjBkUmpiSnZMdmpFbS9mM1QyQmhPd0pjK3FHMTdNU2lQ
YzhmeWNLeG0KVE9STTJIQzd6M3hnYUJxYlpmdWVtQy9idDVTNjl4LzcrNENNdzJ5M3k4WlZ6b1p0
dCt6K3RwaStYSFhNMTNpUGJZTmx2SzB5UHZLcgpXdGt1Rm4xL2xmS1dXYTJ5TGZUN296elA4dG4z
NURIZm5mbGV6T1grR1I4MUZuUDJvL24rR3R2V01nWnE5aTlUOVZ5MFArN3ZiNHJGCmJvN1JzbzZw
eDMzMzMzLy9pY09mVTdsWC9EeGYrdG1CQlN4SEtkTjVZeWxmWHBuOGxNR2NMOGYrWkcxczJaMzRM
RHY0ckhNNEtkbHUKMlRuN2tZUExPYnVSc3cvOXlmSHZmbmVvamJqM2R3RkREaG9tT01sTjFqZmR0
TDhONkU2Y1NkbnV1b2ZMNVV4Tk9jc3lyTXN3YjE3bgpyRTI2cTEvbmttODMycFV5WTNEZWVTZWZt
U2pySEh2TXN1Mys3R05uTmNhVzJjNW5tYkJucDVreGtqRzlTc3EyTURYK2grVXRXMTkrCm1DRmZX
amw3bUMrYzdMaUdLZStYYlNmYjFhcjE3WmUzbmJxWDVSTjA1SUJFMnBJNlpRS1dMNWxNREljSExz
b3lxVysrSU9LVjVmTGwKMEU4NWdwWDlSTGJUN05DSGFaRmJsaWtUd0ZnVW0rR3l0YStuNmpCbE50
WS9LVHZMTCtyWHFjK21YTEo4MnI2ZE1USFZwa1YyVTA2TApsdW0vdDUzeGsrVXphYzVFZVRqR2Fy
YWQvdnI3ejlPV1ZjZlFjUHdPWC9mTFgvWDUyRmhZdGF5cGJXNVJlV05qT1BtSGJSMitYbFJtCmVX
OXEzS1NzNUZrMmxzdFlYYlhQcGh5eTN0cnZnRktIMHFhcHg3bGx6eG56WTk3YjNRYVhqWTg1MitB
eXc5Ui8yVDV6MFRMcHczeS8KTFBwZUhMTklXVk5qYjlINit1OHRHMk9yanRXcGV2Ylh1ZXo1Ym83
UlpldnN2MTkzRjI1L2lSV2VwNE1Ub2RlbURJWWNoUmdlcGFsZApmbTYrZkdFdFM5Ly8vb2xMdlpi
bFdmWDlYLy82NUVzSHNuek9BSnp1NlhScDEvMzNuemdLV1dPZWlmQ2lDVy9Oc3FzR0h5bHphbjM1
CjhsMDJrZTYvdjJnblcxUG5rbWM3ZGMreStVTE1HYUljeGUrblRPTEd0clhVdDZ4ekdIeWtuQ3lm
QXhyTDBpSzNMSk8wNkVqUXNuTEcKM3ArcVE2bi9zakxHK2lkbEx3bytVdGJVWjFNdXBUN2JHUk5U
YlNwbDl4K25uUHA1aDgrM00zNFN1S1p0NWF6Z3NNenllbXpiS1htRwpqMmxMMGlwamFEaCtoNitI
NjFqbDlkaFlXS1djNUozYTVoYVZOemFHazMvWTF1SHJSV1dXOTZiR1RiK3NSV081ak5WVisyektJ
ZXV0Ci9RNG9kU2h0bW5yY2J0azdNZWFYZVc5bkd5enRuQm9mMjlrR1M5bkR4MVczaFZ5dHNDd3Rz
eWo1cDhaZXliZnNjZGtZVzNXc1R0VnoKMmZyNzcrL21HTzJ2WjluelhRMUFscTMwZEh4LzFjbnFX
QnZ6eTFmLzlFK0gya3VnOW5VL3I1dXpFKzBCeis3MWRkZWRmTFIzckp4MQorMnhUMjdWT3pqbnFr
YU0zT2RLOTdpbVhjWlg3cW5MNk9VZkVjc1FsbDJtTVRaVFh2VjNxdHpjQ3E0NmZYRC8vMENBQUFD
QUFTVVJCClZONlg4WmJKUmU3eEsxL29wYmFuMDdaVDZ1eVJ3SmpBYm8vNVZiZkJzYnJtTTl2Z2xO
Q1o5Zm11WG9KMVpsR3UxdHJjdC9EU1MvbEQKaHZuNTNSelJYZTJTbnRYV3RuZTVON1ZkZXljNHZx
WmNQNXNBSkNsbkVZYlh1STh2dmZlZjVwS3IzTXVSYTM1ek5sVGdzZmQ5Y0RxdgpjWlh4aytBMmwv
ZmxwdEpGUnpoUHQyM25kTzQzZGQ4YmdiMFk4NnRzZzFPdHRnMU9DWjFabnd0QXpxeisxbG9DQkFn
UUlFQ0FBQUVDCnAxUmdNdzY3bjFKQ0t5ZEFnQUFCQWdRSUVDQkFvRlpncFFBa2wxSGtwdEtjOXBN
SUVDQkFnQUFCQWdRSUVDQ3dxa0IxQUpKZlE4amYKNXNqdjVQL0RQL3hEOTFOa3E2NU1mZ0lFQ0JB
Z1FJQUFBUUlFem15QnFsL0J5cS9YNUEray9NM2YvRTMzeXlMNUs2ZjlueUxiRG1GKwpTemwvQ0Na
LzRFY2lRSUFBQVFJRUNCQWdRT0RNRUtnNkE1Sy9KSjQvbmxKKzFuRDRWOFJYcFVwWitldlJDVUFr
QWdRSUVDQkFnQUFCCkFnVE9ISUhKTXlDNTlPcnBwNS91ZnIvNVp6LzdXWGZtNDc3Nzd1ditVdkd2
ZnZXcjdnOFk1VzhTNUNkQlAvdlp6M1ovR0MzM2lXUzUKL01Yby9GSEIvQ1hOL1BHVmIzN3ptOTBm
OFhuNDRZZWJaNTU1cG5ucnJiZTZ2MmZ3eFM5K2Nla2ZWRHR6dWtKTENSQWdRSUFBQVFJRQpDR3kr
d09RWmtOdHV1NjI1OWRaYk80a0VDZ2sra243d2d4ODArU00xbi8vODU1dHZmT01ielN1dnZOTDg2
RWMvNmo2NzVKSkxtdGRlCmU2MTU5dGxudTcvbysrMXZmN3Q3LzhFSEgrd2U3Nzc3N3U3OUcyNjRv
Zm5LVjc0aStPaFUvSWNBQVFJRUNCQWdRSURBNWd0TUJpQ0wKQ0o1NzdybnVqNHZkZU9PTjNjYzV1
M0hMTGJjMGVUK1hWWjE3N3JuZG1ZNUxMNzIwKzZ2SE9UdVNQMEtXTXg3OVZDN3A2ci9uT1FFQwpC
QWdRSUVDQUFBRUNteXV3clFEazFWZGZiYzQ1NTV6dXNxcENrN01oU1RuemtUUU1MczQ2Nnl5L25O
WEorQThCQWdRSUVDQkFnQUNCCk0xZGdXd0ZJZmhYcnd3OC83TzRES1hTNTdDcEJSMzdkU2lKQWdB
QUJBZ1FJRUNCQWdNQWlnVzBGSUxteC9PalJvMDNPaEpTVVAwNlkKOS9LWlJJQUFBUUlFQ0JBZ1FJ
QUFnVVVDVlFISVJ4OTkxQzJiTXg5SnVYbjh2UFBPNi80cWV2ZEcrNThFSXhkZGRGRnp6VFhYZEcv
bApwM1lUa0pTVVpmdXZ6ejc3N09hOTk5N3JQczdabEp3NXlhOWx2ZnZ1dTJVUmp3UUlFQ0JBZ0FB
QkFnUUliSmpBZ1h2dnZmZnZ4dHFVClg3ZjYvZTkvM3dVR0NTb3V2UERDN2liejNGU2VYN1ZLNEpB
QTVja25uMnkrOUtVdmRaL2xyNlUvOU5CRHpmdnZ2OS9rYjRiazdFankKNXVkNmM2OUl5a2lna1R4
NVRGbkorOE1mL3JESmpldVhYWGJaV0pWOFJvQUFBUUlFQ0JBZ1FJREFhU3F3Ny83Nzd6OXhtbUxG
UnVTTQpSb0tLM1B1Um9HTFZsTUFrTjdPWGxDQWt2NkFsRVNCQWdBQUJBZ1FJRUNDd21RS1RmNGh3
ck5rSlBITFoxWFpUUC9oSUdZS1A3VXBhCmpnQUJBZ1FJRUNCQWdNRHBJVkIxRDhqcDBSUzFKRUNB
QUFFQ0JBZ1FJRUJnM1FVRUlPdmVRK3BIZ0FBQkFnUUlFQ0JBWUlNRUJDQWIKMUptYVFvQUFBUUlF
Q0JBZ1FHRGRCUVFnNjk1RDZrZUFBQUVDQkFnUUlFQmdnd1FFSUJ2VW1acENnQUFCQWdRSUVDQkFZ
TjBGQkNEcgoza1BxUjRBQUFRSUVDQkFnUUdDREJBUWdHOVNabWtLQUFBRUNCQWdRSUVCZzNRVUVJ
T3ZlUStwSGdBQUJBZ1FJRUNCQVlJTUVCQ0FiCjFKbWFRb0FBQVFJRUNCQWdRR0RkQlFRZzY5NUQ2
a2VBQUFFQ0JBZ1FJRUJnZ3dRRUlCdlVtWnBDZ0FBQkFnUUlFQ0JBWU4wRkJDRHIKM2tQcVI0QUFB
UUlFQ0JBZ1FHQ0RCQVFnRzlTWm1rS0FBQUVDQkFnUUlFQmczUVVFSU92ZVErcEhnQUFCQWdRSUVD
QkFZSU1FQkNBYgoxSm1hUW9BQUFRSUVDQkFnUUdEZEJRUWc2OTVENmtlQUFBRUNCQWdRSUVCZ2d3
UUVJQnZVbVpwQ2dBQUJBZ1FJRUNCQVlOMEZCQ0RyCjNrUHFSNEFBQVFJRUNCQWdRR0NEQkE1T3Rl
V1JJNDlNWmZFNUFRSUVDQkFnUUlBQUFRSUVPb0hiOTk4K0t1RU15Q2lQRHdrUUlFQ0EKQUFFQ0JB
Z1EyRWtCQWNoT2FpcUxBQUVDQkFnUUlFQ0FBSUZSQVFISUtJOFBDUkFnUUlBQUFRSUVDQkRZU1FF
QnlFNXFLb3NBQVFJRQpDQkFnUUlBQWdWR0J0UXBBamg0NTJyejN4bnZOdTYrOTJ4dzVkS1NyK1B0
dnZqL2FnTjMrOE1OM1A1eGNSVTI5YS9KTXJxZ3lRK3hxCjZsMVozTnBtTy9UaG9lYUR0ejg0WHI4
WXYvM3kyMHRmSC85Z0Y1NE02N0xxS29aMVgzWDVqK1UvMmpUOWJXZHUvVDVXdmpjSUVDQkEKZ0FB
QkF0c1VtUHdWckg2NVR6M3dWUFBTb3k4MTUxNThiblArWmVjM3J6NzVhdmR4bmg4NCswRHp6c3Z2
TkVjT0gybnUrOTU5elJ2UAp2ZEU4ODV0bm1nL2YyWnJBSjgrRlYxellIUHJvVVBQMlMyOTNFK1Ry
N3IydXVmYWVhN3N5TW5GODh0K2ZiSzY0K1lybXZFdk9hMTc4Cnc0dk5PNisrMDV4OS90bk5IZCs4
bzFsbDNRZk9PdEN2ZHZQeTR5ODN6LzdtMmVhajl6L3Ezci9vcW91YW8rMy8zbi9yL2ViOFM4NXYK
cnI3ejZ1YmlheTQrYVpueTR1SC83K0htdG0vYzF0V3B2TmQvbktwMzh0Yms2WmU1NlBralAzaWtl
ZnVWdDVzTExyK2dTZnRlZS9xMQp6aWF1YWRjN3I3elQzUHduTnpmNzl1OXJudmozSnpyWFlydW92
RTE0TDMzNjFvdHZOWi8rM3ovZHRUL3RQdlRCb2VaejMvM2N4MTd2CmRudjdkVmwxWGVtN2Z0MVhY
WDZZUDl2TkV6OTlvamw0OXNIbXJtL2YxWDA4cDM3RDhyMG1RSUFBQVFJRUNNd1JXQ2tBeVlxdXZ1
dnEKNXBPZi9XUVhhSlFBSkpQMzYrKzl2anZpK3Z0Ly9uMVhuOHR2dkx3N2kvSGt6NTdzWGwvL21l
dWJpNjgrTnNsdmo4NCsvQzhQZCsvbgpQemxpLytpUEhtMHV1K0d5NXBxN3IrbmV2K1RhUzVvczJ6
L0NYYnZ1NHdVZmUzTGxMVmQyQWM5enYzdXVlK2VHKzI1b3pydjB2T2JaCjN6N2I1TDAzWDNpem02
aGRlT1dGSnkyYXllMEg3M3pRQlYwM2Z1SEdrejdMaTVwNjErVDVXTUVMM2poeTlFanpxZi93cWVi
c0M4N3UKUG4zZ3Z6elFYUFNKaTdxZ0kyKzg4UEFMVFk2aUo0QXI3VnhRek1wdmxTUHpXZGZjdEpO
bHBTNEpZQTkvZUxpcjFnVlhYTkJjZWZPVgp6Zk1QUGIvd2RmZm1EdjVuMkpaK1hWWmR6YkR1cXk0
L3pKOGdOZjMxL2hzbnpoN09xZCt3Zks4SkVDQkFnQUFCQW5NRVZyb0VLMGZYCnIvdlVkVXZYbHpN
am1RQzNKeGU2ZFBDY0UvSE52bjM3dXZkeVJ1U0RkejlvUHZtNVR6Ymx2UnpaejVIcm5DbkloTDJr
VDM3bWs4M1oKNTIxTnVGZGRkeW1qUEo1MTdsbmxhZE5zVmVWRVFOUis4c2J6YjV6NC9OaXpuTzFK
ZXVXSlY1ckRIMjFOZEk5OTFEM1UxTHNtVDcvTQpaYyt2dWZPYTQ4SEhvanhYM1hwVmQyWXFuOFZx
SjFJbTJZLy81UEhtclpmZW1sM2NUcFpWS3BNai9PZGNlRTU1K2JGMjc1VEQ4UlVjCmU3S29MY082
REplWmVyMWpkVDIyN1hYYlZtOFlyRnEvbzBlUEZUUlY4UjMrL0ZTdGQ0ZWJvVGdDQkFnUUlFQmdS
T0JFaERDU3FYeVUKTXdkVDZZYlBqZWQ1NFpFWG1rdXZ2YlE3UW52K3BlZDN4ZVV5cUtUM1huK3Yr
YzAvL0tZN20zTEZUVmQwbDNYZC9PV2J1ODkyWXQxZApRYjMvWkNKWjBya1huRnVlZG84SmlFclFr
c3ZLWG5ueWxlWVR0My9pcER3MTlhN0prMEp6RmlabmZLNjY3YXJtbXJ1MnpnTDFWN2JzCkVyR1Na
Ly9CL2Mzd0RFNHV1M241aVplN1M3YnUrTk03amdjd2g5NC8xRHozKytlNmUyME9IenJjM1BTRm01
b2NoUittRi83d1F2UDYKczY4MzU3NTlibmNwWGM0Q0pVQmN0R3p1MjNuNlYwODNINzMzVVhQakYy
OXNEaHc4MEYwR2xNdmJFcFF1S2l0MUx1bjFaMTd2TGtPNgo2TXIyckU3YjUzbjl4MS8rc2NrWXVl
bUxOM1dCUnM3eXZQYk1hODFkMzd5cnU1UXZnV0h5M2YwWGQ1ZGlWbnBjNXBBelh5ODk5bElYCi9D
YW9mdTdCNTdwZytjNXYzdGtaRHR0eTdhZXU3UzZKSzNXSlJaWlBBTDcvd1A3dTdOUWRmM1pIYzg3
NTV5eTBHMWI2MWFkZTdjNWkKblhQQk9WMmduanJrM3FoY29wZ3ppWXZPUm1XTVB2M0xwN3QxNXBL
ODk5NThyOW0vZjhzM3I0ZFdyLzN4dFNiM2hTU3dUaC9mL2I5dApHYWJ0dVlRcktlL0hQcGRFWm56
bVVzWUVmTmx1VWw2Q3BsejJsek9iVTUrbnZHWGUrV3paZXBkWjVpeVBSSUFBQVFJRUNKeWVBaWRt
CmdMdGMvOXdVblVuUEs0Ky84ckUxSFR6M1lIUEpOWmQwNzJjQ20rdlhmL3RQdisydTQvOVk1aDE4
NDlVL2J0M0Rrc3V4THIzKzBwTksKenNROWwzemxVckNrRng5NThhVFA4NkttM2pWNVVsWXVaOHZa
b2R6N3NoTXAxcG1vM3ZNWDl6UTVxcHhKZEpmYW1PdnhuejdlQlhsMwpmZXV1N3A2U1IvNzFrWVZu
ZUJJSUpRaTc3Sk9YZFVGQkp0UExsczI5S0xubkpQZlZIRDE4dFBub2c0KzZ3S003STlhdStHTmw5
WUtQCjFDdit1ZDhuOXhMbEhwY3NsNGx2M2l0bk9jNjk2TnptcWx1dWF2WWQyTmNGQkxrODd2MjNU
MXhtMUxXdjlqOGpEdWRkZkY0WG5MMysKM090ZCsrT1VWQXlIYlVsOSszWEpCRDMrdVE4cWRZNWZB
ckpsZHNNcTUvTEZCQzlIamh3NWZsWXJkVHJydkxNV0JoOVovckVmUGRiawozcWJyUG4xZEYxQisr
UGFKSDAvSTJaQ1Q2dGVPaDF5cTFnVzc3U1dQM1dTKzlTaG5kdkk2bDBJbXNNaGxpa25uWG5odUZ5
UmtuRjU2CjNhWE5iVis3cmJ2SEpOdHF6ZWM1Szdxcy9XUHJYV1Nac3prU0FRSUVDQkFnY1BvSzdG
a0E4dWJ6VzBkUUYxM0tGTDVidjNack4xRXIKbExsK1BmZVRaQ0szMHlsbkJ2N3dMMy9vSnBtWmFO
Mzk3YnU3aVc5L1BSKzg5VUUzK2MzOUkwbDVuYU8wdzFSVDc1bzhWOTU2WlhkagovMDdkT0g3SmRa
ZDBrOVZNV2kvK3hNWE5lMis5MTFXOUM3cmF5V0F1cThwbFp3a3djaVI4N0RLcmNxbmMxTElKZUhJ
Zno5Ty9mcnA1CjlZbFhtNnZ2dUhySWRmeXl1NDk5MEw0UjY0eVRjZ2xmSnNBNUNsOHV5OGxSOWt6
bWt6SkJMMmVYdWpkVy9NOVlXeEkwSnVoSitRbEEKRXdTbExnbXUrcW00RE91U3MwazVhM0hlUmVk
MTljMVpoSGRmZjdkclY2MTd6aHhsdkpVZmNYanI1YmVPQjhQOU91UjVibUpQWHg0LwpTOVplZWxV
QzUzdytyRi91bTBsOUVpQWw1Zks5cEp6UnVQU1RsM1pubmZJNnk1VmYwc3E5UjNGSW9KZ3piUmRl
ZFdGejYxZHY3YzU0CkpjL1U1MlBlWSt0ZFpGa0MwdFJSSWtDQUFBRUNCRTQvZ1QwTFFETEJ6cTla
NWRLcVJTbVg0MlNpbmt0VmN1UzdTKzFFK2NrSG5qdysKSVYyMDNIYmV5dzI1cWNzOTM3bW51NlNs
ZnlsUXlzdkVyMXlTbElsY0ptSkppODVPMU5TN0prOG1kYWxQamtydmRNb1Irbkp2VGU1SgpTWHN5
NmN1L3JEY1dGMXcyZlVsTHpiSzVCQy9CV3M2SWxIdHRhdHVUSS8rNTlDMlQ3YVJjZHBSNnYvWENX
OTFabGJ4M1VsLzE3bkhJClo2dWtxYmEwT2ljVmwvWG1qTVRTZEhMMjd2S25NbTZ5ek5UNmh1WG1M
RU9DeDF6S2xmVEdzMjhjRDc2R2VSUFU1RXhMK3Jta3pxbGYKcDk3ejFPdXk2eTlyY3VZcnZ5N1gv
YkRCc2M5di9QeU4zZVZ0ei8vKytlYnRGOTl1Y29uZVNhbFhUb0tzckRPQjRmRzA1UE9wOW8rdApO
NWVTOVMyUHI4c1RBZ1FJRUNCQTRMUVUyUE5yR1RMSkxDbS9jSldKVWlaWEYxMTlVWk5yM25NVTkx
TlhmNnA1OW5kYnYxQ1ZvN1c1CmZHUXZqM3JtOHF1c3R4d2h6aVVmbVJqbmFId3VKY3VSNEtTWEgz
dDVzdDRKWnRhcGJZYy9hQ2VVYmRpWkkvcXJwcHBsYzFZZ2s4VmMKNHBPZ3N6OHBubHBmbkhQbUpw
ZjVaTGtFUlNrdlI4OXo1bXg0bWR4VWVXT2YxN1JsYlBsVlAxdDVmZTFFUHZjYzViNlhYRmFWZXp5
VwpXV1pNWm53TzB6Q0k2bitlc3hlNXh5WkJkZTZ6U0JDYTh2UERDL2t4aU56YmtYcyszbjcxN2Y1
aUgzL2Uxak9CN05KMDdQT3A5cSs4CjNxVXI5QUVCQWdRSUVDQ3c3Z0o3ZGdha1FPUXluWEoyNFk4
Ly8yTTN3Y3hSMXZ4ZGkrT3BuYlJrMGxVbStudDU5RE1UdVZ4M2Z2dWYKM3Q3Yzl2WGJ1bjg1TTFO
UytXV3N2SzZwZDAyZXJxeDJndjNTSXkrZDlMUERaWjA3K1ppajNibk1LZmRwOU5QWUpWZ2xYODJ5
K2RzdgpPWXVWbE9lcnB2eVVic1pDZ3JzRU1Ma1hKSzl6bEQzM09PeFVxbW5MVHEwcjVXeG5mYmtr
TFlIWE03OStaclR0T1ZQUy9hSEI5c3hUClRjcE42YmxISnovc2tNQWpaNXB5cVdOdVhNOFprWnpG
R2cwcWpxMGtaN29TcUpjZmt4aXV1Ly81V1B0WFhlOXdQVjRUSUVDQUFBRUMKcDVmQXRnT1EzQ3hl
VXY5NWVTK1BtUlNWVkM1ZnljUW1sMVRrNXRaY2gxNkNpK2NmZkw2N25yemtUeENReTI5eVQ4SHd5
RzkvZmYzbgpaZGxGajVsMGxUUzJUSDdoYUhoMklKZUU1UktYcEZ3U1V5NW55dXVhZXRma3lXVDlx
WjgvMVR6eW8wZFM3SGhxWTRmNExEcnFuUVZUCnZ4d3hMeW5QUzUwdnYybnJNcWY4NGxZbWp5a2pm
WkdiakJlbDNCVCs0WHRiTnpUbjdFVHlMMXMyZ2MwNUY1M1QzZitRdnhXVGdDcEgKMTB2cWw1VjFM
MG9YWDN2eDF1Vmg3Wm1QOUh2dVg4bGpKdG5EbERiMUE2bVlsUHRGa25mNHVyLzhsRU0zWG5zeFd1
ZlplejFzeThmcQowdDdvM2UrRHFmVXRxbXUyamN0dnVMd2JjN0ZmbHBJblY0eTkrT2lKSHpESWZS
bmQ5bmVzenYzNnBROWZlMm9yNE05WXo1bWxuSWtzCjkzc2tJTWg5T0FsS1U2OSs2czVrSEh2anpS
ZmY3QzdoS3djVTh2YXl6OGZhUDdYZTlHbmZNdXRKdmZLakFHUGJjdkpKQkFnUUlFQ0EKd1BvSkhM
ajMzbnYvYnF4YXJ4N2QrcVdvZnA1TU5KLzVWZnRYenR0TFA1SnlvMndtTmJtZm9CdzV6VStKNWpL
cWN0TjVqckxtSnQ1YwpVcEtKZHE3cnowK3VabUtTbTJpemZJNTZKMy95NWlkRk03SEpUOFRtMTVk
S3FsbDN5VnNlY3luSkN3KzljSHdTbm5yazdNcHcwcDNMClVmSkgvREp4eTgveTVxaHRVcTZINzg0
YVpJTGJuam5JOWV6NUtlSFVjNnJldFcxTG5YS1VQMzh0dm4rWldtbERlY3c2dStDdG5kZ24KcUlw
TmZpR3BHSld6QjVuZ3B6OHlRVXZiY3huYkJaZGUwTDJYRzgvVEQybFhmcFVzTnlFdisxblQ5UEdM
RDcvWTlYVW11cmxNYnRHeQp1ZFFzZnpNa1o2NVNmb0xNbkMyS1crcVJ2K2ZTTHlzVDMrNCtoZEt3
WTQrNTVDby8xNXJMajdwZk8yb24xbWxMem9UMGYvMG9QeFdiCllERmo3K0JaQjd2QUkvWEs2Nncv
RTlUKzZ4eWxMemVOWjFWbm5YTldsMjlSVzk1KzZlMXUyZmltN2hrUENTSnp5V0RHWkM0SDdMY2wK
d1VnQzAxS1g5R1hHWFA3ZVRYNTZOd0hzMlByU2xseXlWdXJlcjJ2YW5PQ2hDeklHVnVWbDhtUXNa
K3ptOHJYVVB5a0dNYzdrdlcrVgpjWjNMcnc0YzJBb3VNMGJ5aTI5cFZ5NDc3TTdFdGVNbDQvQ1Zw
MTdwQXBQY2s1STJkV2RQMnZ3SlRqSmViL3ZxYmNmN01kdnZzcy9ICjJwOHh0V3k5YWZ2UU1tM0wy
WlhIL3Rkam5lMnlNekRKSnhFZ1FJQUFBUUo3TDNENXZoTzNYQ3hhKzc3Nzc3Ly81RU9jZzF5UEhL
azQKSWo5WVp0V1htYlJrZ3BLVXlWdU9lR1l5VkNiVnE1YTNWL2xyNmwyVHA5UTNrOXB5MlZsNWI3
Y2VNem50MXRkT1J2c1Q4MFhyUzVCVgp6bFRsODFXV0haWTNMR3Y0ZVNtL0JMS0xYaTlhWnJ2djdY
WmJodlZhZFgyWjFDZGdHSjZWRzViYnZXNjM1QVJMNmFzRXl2bTU0b1VwClczd0N1emJZVDk4UEE4
RUVMR1hiUzMxTFh6ejQvejdZL2ZyVjlaKyt2Z3RxK21NaTY1bjZQSG5HMnI5c3ZWbHVVYW9aUzR1
Vzh4NEIKQWdRSUVDQ3d1d0szNzc5OWRBVjdmaFA2b3Rya2lIVkorV1dkMHlYVjFMc21UMm52WGdV
ZldWOG1sYlUzOWc4bm1xc3NXOXBXSG9kbApsZmY3ajJYQ1c5NGJ2aTd2NzhUamJyZGxXTWZhOWVY
SWYvTG1ETkt0WHo5eEQ5S3d2Sk5ldDBGRjhWMGFmR1NCWTNISjhOTEdVbFlKClBycXNDMjR3VDhB
eURGcktzbmtjKzN5cy9WUHI3YThqejB0YmgrOTdUWUFBQVFJRUNLeTN3Rm9FSU90TnBIWUU5bFln
bDBEbE1zWGMKOTVKZm8xcUwxSjQxeWFWYS9UOXdlRks5cGo0L0tiTVhCQWdRSUVDQXdKa3NJQUE1
azN0ZjI5ZFNvTHNIcUQxTFVmNFd5RHBVOHBVbgoyM3VGYnQvNkd6VzV2MnQ0bjlMVTUrdlFCblVn
UUlBQUFRSUUxa05BQUxJZS9hQVdCSTRMNUtiMjNmaURsTWRYc0kwbitSR0FzVFQxCitkaXlQaU5B
Z0FBQkFnVE9MSUVUUHk5MVpyVmJhd2tRSUVDQUFBRUNCQWdRT0FVQ0FwQlRnRzZWQkFnUUlFQ0FB
QUVDQk01VWdjbEwKc0taK1J1dE1oZE51QWdRSUVDQkFnQUFCQWdSV0YzQUdaSFV6U3hBZ1FJQUFB
UUlFQ0JBZ3NFMEJBY2cyNFN4R2dBQUJBZ1FJRUNCQQpnTURxQWdLUTFjMHNRWUFBQVFJRUNCQWdR
SURBTmdVRUlOdUVzeGdCQWdRSUVDQkFnQUFCQXFzTENFQldON01FQVFJRUNCQWdRSUFBCkFRTGJG
QkNBYkJQT1lnUUlFQ0JBZ0FBQkFnUUlyQzRnQUZuZHpCSUVDQkFnUUlBQUFRSUVDR3hUUUFDeVRU
aUxFU0JBZ0FBQkFnUUkKRUNDd3VvQUFaSFV6U3hBZ1FJQUFBUUlFQ0JBZ3NFMEJBY2cyNFN4R2dB
QUJBZ1FJRUNCQWdNRHFBZ0tRMWMwc1FZQUFBUUlFQ0JBZwpRSURBTmdVRUlOdUVzeGdCQWdRSUVD
QkFnQUFCQXFzTENFQldON01FQVFJRUNCQWdRSUFBQVFMYkZCQ0FiQlBPWWdRSUVDQkFnQUFCCkFn
UUlyQzRnQUZuZHpCSUVDQkFnUUlBQUFRSUVDR3hUNE9Ea2N2LzQvY2tzTWhBZ1FJQUFBUUlFQ0JB
Z1FLQVQrTXY3UnlHY0FSbmwKOFNFQkFnUUlFQ0JBZ0FBQkFqc3BJQURaU1UxbEVTQkFnQUFCQWdR
SUVDQXdLaUFBR2VYeElRRUNCQWdRSUVDQUFBRUNPeWtnQU5sSgpUV1VSSUVDQUFBRUNCQWdRSURB
cXNGWUJ5SkcycW04Y2JwcFhEelhOUjBlMzZ2MW0rL3BVcG5kVEtXbmJBdSszZmk5ODFEUWZIT3ZQ
CnNZTFM1MmVDZHl6ZTZvM3J3KzNybDlzeFg5THdkWG0vUEo0cFRtZEtPMHUvN3NUamNHeVZNbGZa
RHNzeXArcHgySWJoOWpCOFBhem4KVG82YnFYVU4xNTNYcTFqUHFldlVza1BIUlhVZGV5OWZmWHYx
L1R2VmxyRjZydXRuZXpVTzFyWDk2a1ZnU21ENlY3QjZKZnpzM2FaNQo1SU9tdWJnTld5NXJsM3p5
dzYwUEx6dlFOR2Z2YTVwWDJrbFU1bEgvMTZWTjgydzc2ZnoxZTAzenpyRUovT1Z0bml2YVpUNXNK
MXN2CnRaa3kwZnpNdVUzenFmTzJ5c2g3UDMybmFXNDVwMmt1YWN2L1E3dWVCQ0xudDgvLy9LS21X
V1hkWjdWMTZhY24yckorOC83SDY1SWQKZEprY2YvMkNwcm5oN1A1U1RkTiszUHp6VzAzenB4ZTJk
V3JyUDB4cC8yL2JOcjUxckkycDZ6MXRtMktSdHI5OTdQMTQzZHEyNjY3MgpzKzJrWjlyMVBOalcv
NVYyMG5wclc4Yy9hZXU2S1AxNzJ6K1B0bTI5cUYzZloxclhZWHNXTGJPYjc2VXUrUUtQODQvYnZ2
M3JTNXJtCndLQnZ5dnBqbWY3L1ZHOU1sTTgyN2ZFMzdkaDRzZDArL3FyMXlEYVRkci9mR24ydjNX
NkdyNGR0ei9iMzg3YWZQOXYyNzNiSDA3RE0KZFh4OXByUnpwKzM3WTZ1VXZjcDJXSlk1bFkvOU5n
eTNoK0hyWVQxM2N0eE1yV3U0N3J4ZXhYcE9YV3YybDMzSFJYVWRlNiswL2F6Mgp1K1F2MnUvZjNV
dzFiZG5OOWU5RzJhdU1nMDFzLzI2WUtuUHpCTnJkUzMzS2hQenVkaUtkaWRPWHpqK3gzTFZuTmMy
MzJwM1VmN2g0CmEvS2RmRGUxRStWTXhrdktoUGdMN1RKZmJTZlBtWWgrb2hmNjVPakhEOTl1bW12
YWNyTE1kZTJ5WDJuelhkbm1PVGFINzRLQjJuV1gKZFpiSG05czZaMkpiVXFuTDE5cDEvQjl0WFM1
Y29wQkpZb0tJZkZFc1NtbmpwNDhGVVBrODlidTkvWGRqM3UrdEwyMmFNMW04dmkydgpMUDlFTzFI
UGhINllZdmhzKzFsU2dyaTV3VWNDaHdSbjIwMkgydVV6VWI2amJYdTh2OUVHY2NQZ283K09XQ2FB
MjZuVUwzdHVtVHRaClZ1cHliK3VSb0RZcFFYbkdaMG5EMStYOThwanhOUXl3eTJlYjlMZ1Q3ZHpw
Zmx0SDMyRWIrMk1yOWEzWkRtdmJOVnhYN1hLcjV1dTMKWWJnOURGOFB5OTZKY1ZQS25GcFh5VmNl
RjFubnMyWDcwVGwxcmRsZjloMUxIV3NmMC9hcjJ1L2o3ZTZTcDhaSy8vT2F0dFRXTy9uNgpaYSt5
M0U3bFhUUU85dks3YjZmYW9Sd0N1eTJ3MHY0bEp3SEtHWXRGRmJ1NHpYQnpPNUVzNlp6ZTBlN3lO
QlA2bkJXNXI1MkU3VHYyClpvNjJaRktkc3lEWmVFdjZYQnV3bEVucHF1c3VaWlRIbkpVb3FUek5H
WllFT0RtYVhONHJlZktZb3hoSk9ZT1NDZjZpMUMvMzdKNW0KLy9sNXZmY1hsVkh6WHRhVFFDLzFm
YVE5R3pKTWo3ZDFMRUhIZGlhby9lWmxIVDlwajhyM0x3c2FybS9xOWV2dDJacVVVMXdUVFBiVApv
blhzTDVuN0diZnhmRkhaMnlpbVcyUW55eXAxeUhaeFVlK01Xb1pIdituRDEyVzU4amoxZWNtM3lt
Ty8vMWRaYmpmenptbm5LdjIyCmptMVAvYWZTb2pZT3g5YllkbGl6amxLSFJlc3FuKzIwMzdBTncz
RXdmRjNxVVI2blBpLzVhaDVYS1d0b2ZYbTd6NXZhajY1Uy9yQysKVS92TG9lTncrV1d2UzMvVzFt
MDRqc2JHU3RhNTZQT3B0aXlyNi9EOVJXVVA4NHk5TG0wZnl6UDEyWEFjN09WMzM3QnVZKzBaOWx0
LwoyYkhsK3ZrOEp6QkhZREF0SEMvcTg3MnpIc3R5VHVYNVF6dDV2cTZkU0YvZC9zdGxYRW1YSHB1
TVpjUDl2OS9ZT21LZW84S1pkT2RNClNOSlV1YlY1dXNLTy9lZDNiVjF5VnFaTTNQdWY1ZnJOYzlz
OWNDYUdiWnpTQlNFNW1yOGI2Zm4yVEVNdW44b1JzYnRIMW5GMTY1VkwKMTNKR0p2bktVWlhzTEo1
cHk4aFpsNGVQQlUybG5nbWNmdFZlOHBNdmt3Ui9GN1JQRW5BZFBEYmpmYW85YTVMTDRwSXZsM3A5
cHoyTAo5WERya3ZKeWFWbVcrV0pyVlBMWGxKdkE3ZW0yck5Rcmw4NmxlKzhiakoxRjZ5aGw1L0sx
QkZRSnBQNnNQYk5XemxDbFQzSXAybXZ0Ck9FbWdtcjRiN3R4VHhxS3lrMy9Sc2dsQzQvTmVyNTMv
MXRiNXJyWXZjaVpwVVZsOWk3VHpwMjMrcTlxKytYSTdWbVA0aTdhOFhKWVkKdHdRYUQ3VjFmcnIx
L0ZaNzFpUFdPWXRWckV1YlYzMU1lMzdScmpkbEpValBtY1VjQUVpcWRVcmVsUFBMdHI3bnR0WTVB
SkJ0THR2bApsVzFaT1FJNk5uNXlaRGQ5bmZWbjNkbWVNczYrdVkwK1MxMFdwV1h0ekxqTkdiYWNY
Ynl6L1pmTEdITEpTYmFSTDdVV1UvMldkUzBhCiszbC9yTTI1ZHlkdGJ0bTZzN2k1dERPYlVzWml4
a1V1eVV6Z2ZrYzdkc3JCbWxYNkk2YXZ0dXRJeWhoSlc3Si96RGpOZXM5cGdkc20KTmcrMXozT210
YitkWnZ2L1k3dDhHVnZMdHNObDY4ZzY0NTErekxiM1dydk9US0t6cjFua21jdHNoL3VPbE5GUHAv
djIwVzlMbmkvcgp5MFhXK2Y3bzk4K2kvV2pLWERiR3g5YVh6MHBhdEwvTS9xeS9uNm5aVnJ0NnRP
UDN2TGJ2cy93YjdiOWp1NVN5cXBNZWw0MmpSV09sCnY4OWM5SGtwZUZGYjh0a3k5N0pjZVZ4VWRy
YlZaZCtCK2U3TmQ4MkZiVU9QdEJrZmI3ZTU3TU95TDg4VkdZdlMyUDVoMFRqWXkrKysKbXZZczY3
ZTBOV05nN1B1Z3RoOFd1WG1Qd0ZBZzI5cWVwRXljLzlodTNObkFoeWs3Nm12enJkcW05OW9OSUJQ
QS8rZk5lVWZndDBwYgovTi9VNWJGMnA1TXYwR1VwTys5YzlsUjJRcmtuWmJkU0prODVLelMxamt4
MDdtd25OcmxmSUpPbmtySkR5Y1JyMFZHa0g3U1h0bDNSCjdsd1R3T1V5cUp4dCtsRjdkaU9wWFdY
eiszYXlrY0FuRTdtY2RtK0w3aVljNlpNYjJoMXdBc0QrbDBlV1N4b3I5N2Eydk56emtwUXYKM2VF
T09POW5Vck5vSFpsQTVmSzhCRUtweTRQdEYySlM2cHFqaWJtczROdnRCRGYzRlAxcjI3Wk1nSVpw
V0haY2xpMmJDVmJhL21hNwpnc3o3Y2lidWxuWmlsK0FqYVZqVzBPS1RiZDRFZFptNDUxOTNEMU5i
dDB6S3kxbU9QT2JlblFTTTNIdzZjUUFBSUFCSlJFRlU3ZitiCmQ5b1ZsZnVHdXBWczR6OFpNd2w2
Y2hsaDZ2d3ZyVVdNVm5IS2F2UGwyMWF2dTVRdy9SVC9wUFB6WnB2RytqbjNSU1VZekhhVUFDYjkK
a3JTZFB0dGE4dVAvWGRiT1RMNWptUy9NcEZ6R2tYNG80MkdxMytLMGFPeW5yTEUyNTZ6dEMrMDJs
SWxseXNqMThRbVFNNzV5Q1dRQwpob3ovWDdmYlZlcXlTbi9rMHBHVWs3R2RNWmw5VHdLYXBKU1R2
bm11L1pmeGxHMHorNExoTnRRZlc0dTJ3N0YxWkQyNUZEWUhpTEwrCkdHWXlrdUJuNkpsdGFwbGZ5
aW5wZE44K1NqdnlPTmFYaTZ5SFpzTjlSeWw3MlJnZlcxOVpkdG4rTXR0R2Z5eE1iYXNwTDk4TDJm
Zm0Kc3VJdnR1UDQ3V09CY0ZsWC8zRnNIRTIxZTlubnk5cFM0MURxdHFqc3NlMDUyMUsyNS9SQkx2
M092YUFKOHYrdHRWaVd4c3BiTkE2Rwo1U3lxWS9Mc1JQdW4yalBXYjZuRDJQZkJLdjJRc2lRQ1V3
THRwclkzS1pGNUp2MDVlckFvZmEyZEhPZEx0YVQ4R3RiL2FHOEE3MCswCnkyZHpIMU5tam9nc3FV
cjNmbzUwWmtLVGlXTlNKb3laNk85R3ltUTlSOHp6cFQrVk10SEtxZlgrbVk2NDNyWmcyVXhXY2xU
N3htT1QKNlhSMkpzaDVQMGRwMHhjNTYxUUNzZXc4K3libEVybGhuYWJLSGVZZmV6MWNSeTR6eTlt
eFRPQS8wVDRtTUVoSzhKcVU5bVQ5bVhoMQpsKzJOOUVrcGUyclpyQzlqTDJNaWw5c3RPdE5WeXRx
cXhjbi9UY0NTOFYzc3JtbS94TXNFTlRremJzcFp0dFI3MFE4YW5Gemk5S3ViCjI3N0t2VUdwKytm
YUNVTUMyS3hucXEzRGtoTm9KM0JLeXBIMmpLMmtqUDJwZms1Yk12bk9jdm55empMcHN4SmNyVnFY
clRXZi9OOWwKN1V5dWNnYXdMTEZvZ3JlczM1YU4vYWsycDczWlZuUEdKMzJhZGFZZjRwOHpIdkhM
R1pta1RBQlhNY2lrUGhQMlM5dnhrNVN5eXE4UQo1VXhmZnN3aS83TGVCRHFaYkNTVk50YU1yYkYx
WlB3a29NeUJpS1FFNXptQWNNR3g5ZVM5c3E1bGZza3pUS2Z6OXRGdnl5cDkyVit1Cm1QWGY2ejlm
TnNacjFyZHNmemtjQzFQYmFyNFBNdmJMQWJkMjZIV0JhTCtlL2VkajQ2amttMnIzOFBObGJhbHhL
T3NzajZYc3FlMDUKKzZ4ODF5VG96Z0dkN0w5eVVDY0hRc3UyVjhyTTQxUjUvYnhUejBzZFM3NmRh
UDlVZTZiNmJlejdZRHY5VU5ybWtjQWlnWGJUMjV1VQpTWForemFwL2owaC96VG5sLy9VMkNQbG0r
NjlNMERLaHl5VTh4K2FnL2V5em51Y0l4SGZiWHh6S2wvbWlsSnZQeTVkd0psWmxValoxCmhtSlJX
VFh2WmNmM2wrMFIvNXlKbUVxWmRDVlFTT0NRQ1VNdWtZcGRxV04vK1J5NXpQdjladVpzU0ZJdXI4
aG5uMngzdURtaUUrZnMKaVB0NXQzSisvTDlUNVg1OGlmcDMyaW9kVDVrWWx5UGNPWE9USTFPcFgv
NWxRdmJuN1ZncGwvRWRYMmpCazVwbGMvUS9RV2ZLcXpIbwpyeVlCWGo4WVN2Q2NJMDNwbnp4bUhQ
Y254OE12bm41WnRjL1Q1eVdWc1pyNjE3UzFMSmZIMUN1L3JsWlNKaXBsak5UMGM2OGFYUkh0CmNP
cmFuQmVyMXFVcllQQ2ZaZTBjWkZ2NTViS3hYOVBtNGNyYUlYTlNLblhPbUZqRklKYTVsQ3VUKzF3
dStHSTc1dk84cEd6NzJRYkcKMHRUWUdsdEhndnRzVi8wK3pUNXAwYjVsbWQraXVwM08yMGUvUGF2
MFpYKzVxZWRsdkNUZnF0dHl2Ni82Kzh1VU5Sd0wvYno1dkwrdApwdS96NjRubFlFUSs3Kyt6OHJx
ZnhzWlJQOThxei92MTY3ZGxqbnZ0OXR4ZmR3NHVwRTl5VUdtWWFzc2JMbGZ6dWwrSHVlM3ZsOVZ2
ClQ5NGYyOGVNZlIvTTZZZWE5c3R6NWdrTXZ6dDNYU0NYVHBTVUNWTUdmSTdBNTBodWppNldvd0M1
akNQWFYrY3loaHhKTEVmN3lySnoKSC9NOW5xT05pMUl1RThzWGZ6a3prQy9iVENieU9wZHZaYUkr
TitXVWIwNTNiK2NHOVV3S2N2bER6b0xrUzJOWjRKTEplL3pTbHZJbApkOG14Q1VhWmMzNjFuY1Nm
MXdZZktTdEJTWUxFa25kWkcydktYYmJzZHQvL29IWFBGMm81UXJkS09UWExwa3N6dVl0cmd1WCtG
L0hVCnVqSStNbTdUcDdIcmdxTDJNV2ZhWXA4Z2J6ZFRqbnBsUTg2NmE5cmFyMHN1TTh4bFB3bG9F
NXZtWDQ0Q0pzM3Q1MVhyc3JYVzVmL3QKdDNONXJ2cFBGbzM5N2JRNTQ3TDkvOEswcWtIdTc4clI2
RnlEbmpPYjVYNlFoWVZ2ODgxbDY4ajEzUW1lYTlNaXYwWDdqdE41KytoYgpyTnFYL1dWcm4vZkgr
RjZzcjlRcjMydmw4c1h5WGg2WGpldDh0bXdjNWJPZFRITWN0ck05cCs1cGQ4NFdETk4yeXh1V3M4
cnJPZTB2CjYrbTNaNnpmeHI0UGRxSWVwVDRlQ1VRZzg2NDlUWmwwbDZNOHVZazBHM2syNnR5c1dG
SXFsY3Nac2pOT21qcnF0NVZyOWYvbWtxY2MKOGUybmZBbm5aclEvYXlmbSthblUvTXZsWVVudDIw
dC9rcmZMVVBtZmRoWGRkZktsWGRueDUrYjhCR1RMVXRhZGYwa0pXbklaUmdLaQpYS0swN0N4QWpu
eGttUnkxS1NrN2tieVhzeis1MFRDdmMzOUl6aVprRWxwenlkdFV1V1ZkTy9tWXkwREtHWVZTYnRx
UnMxVlRxV2JaCjNQd1lnNlE4WHpYbE1wTmN3L3RZTzQ0VHdPUjFMc05LblhNejkyNm05R082T0pk
QzFiUzFYNWNFVGptamxxTjltZXlXK3ppU1oyNC8KcjFxWGZyMFdQZSszYzlIbnE3eTNiT3pQYmZP
d0Rxc1laUEtmTTVINWhjREJibWxZN0xaZmo2MGpkYzBaMWZ3cktkdFlEa3dNMHpLLwpZYjd5K25U
ZFBrcjk4N2hLWC9hWFcrVjVmNHp2eGZwSzNYTGplUTZ5algwSGxieDVIQnRIL1h3NzhYeU93M2Ey
NXhqa096bVhXZzdUCmRzb2JsckhxNnpudHo3cjY3Wm5xdDdIdmc3bjFXTFhkOG0rK3dMYS81N0tq
TEtuL3ZMeVh4LzRSbFpJOWx4RWs2TWd2MW1UQ202TmoKU2Jua0lFZGhTc29YWHdLVEc5c0owdkJv
ZEg5OS9lZGwyVVdQL2JxVXl4cHk5bVVJa011c2hrZlpNN0VybDJ2bFZ5N0s4bG5Qb25MegpmaWIy
SmZXZWRwZW41QS9QNWFocFdYY3NIbWovL1hEa3hyZXNKemVmbDVRYlVKUHl4VjVTV1dlcFg0S1Vm
TEhrSnJ1U0VvemtyTWsxCjdXY3Bzd1FjYVhPdVpTK24zV05lYlB0dFREbFQ1U1pQcVVQNmNGa2Fy
aU9YSy9YejUzWCtKZVhlbDdRL3Z4YldXYlNvdVVFM3YxNnkKS1BYTHp2VzlZOHZtdXQ2Y1ljdVhT
KzZuU0IvM0oxMzlzb1lXWmQzWHR2VkxmN1pzM1hqTkdiMmNsVWlBbS9mNktXMHNsMmJsL1l5UAov
aGdadnU0dlc1NGZQZWFTMXdseXJtL1hsMEIwVmFjWVpqemtWNXV5Yk9uL2xGdlR6NmxycnlwZElG
UmVUOVVsWXlUQlhqOUF6bnI3CmFWazdreWVYYXVieXNWaG1yR2JpbkVsVVNXUDl0bXpzVjdlNXQ1
NGNzTWpMV0NTVmovSTRaZEF0Y093LzVacnpUQkpTVm9Mck1rNVMKVnY2VjdlSFlJdDFZNjIrbnc3
RTEzQTdIMXBIN29ES0djMFlzK2ZMdmwrMzJWbjZRb08rWmUxNlc3VHRLM2ZxUHArdjJrWDRvL1Ry
VgpsMFBydEw5dnRtemZzV3lNVDYwdlkySFovakxySG82RnRDTmpxS1I4TFpUWHVVd3UrNmtjSFM4
cC9aL3RxYlMvdkovSHNYR1VNcWZhClBmeDhyQzFURHYxNjVYbS83T3lIeDc0RHk3TDl2c24zWlM1
RkxBZEtTNTQ4MXV3ZkZvMkRmaGw1M3E5ajFyMlQ3VS81eTlvejFXOWoKM3dkVC9aQTIvSzdkbi9m
bmNhbUxSR0Nad0lGNzc3MzM3NVo5MkwzLzZHOC85bkVtYkxsaE4xOUNTWG5NNURjYmJUbHRtY3RS
ZnRzRwpGV1ZqekpkcUl2SDhKT2tEN1pkYU52SWNHYzZnenJXRldiNU03aE9ZNUl1dnV3bXl2UlNo
ZjdOcHpicTNhblhpdjhPNlpDUE1CbnBsCnUvNys1REEvNFpjNjU3T2NmVW5FbjVUZzZMbTJqbWx1
dTJoM2lVVHVEY2tSN2dRUFpXTlB1U2t2RzJDNWZLeDkyUjB0U3R0emVVK08KY09aR3ord1l5eVZn
V2U3NXR2enM4T0l4VExreE9qK05HYWRNRU9PU3N5Q1pjTjNUVHBpenpreENIMnp6WmQzNWw0bHZK
cVE1NDVUNgp0NnZvK2lJV3VZRTFuK2ZMNWVkdC9lT2JTVXh1dk1zcDJOS0cvTlJueWtvWi9ZbHAr
bmlzM05Uejk4ZVd6ZVFzUVVKMnVNT1Vzc3M2CjhtV1pHK0F5WGpLT3lzLzlwWTBKQUROV1V1ZU1u
N1FuZVhPbVlkR1hSTmJUTHp0ZkdxbkRvbVhqbGdsWGZzSTBwckhJbDNEcGoxeHUKMXk5cmFGSGFs
T2FsenJtQlBXM042NHlMM1BUZmIzdHNNczdlYVQvTDVTcVpmTVFnMjFEYWw1MTQvM1VtMldXYkt1
dUswWk50dmZPWQp5M1Z5MDNldTYwM2RVOFlxVGhuRHYycnJrL0dWZnduQVU1ZjhxbHI2Zkt5Zk0w
Rk9YZFB1OUZtMjRmUk4raXo5a3ZmRzZwSngvK04yCmU4ajJuck13d3pUV3p1VE53WXVzUDJlZGtq
ZS94Qlh6OUZuNmU2emZsbzM5R0k2MU9kNXBZN2FWL0ZwVk9qcHU2WVAyYVhjRGVmbzMKOTI5azdD
ZW9UM0M3YU95bERmMlVmVTcyYnhsLzZZTk1Dck85cHV4c0g3a2tLMjFLKzhwOWN2MDJaanhsSHpv
Y1c4bFR0c01jMVYyMgpqdXg3c3ExbDI4cjJtek9zT1JPZHdEeXB2NjZzUDcvMHRXamZzWlg3NVAv
RzVuVGJQcnI5V052R3NtMW1tOGcrWWxGZkx0dm45YzBXCjdUdkd4dmpZdHB3YmdoODlOdTRYN1M5
VGJuOC9rLzFLTHJOZHRxM21PeVhiVENhZzZmL2NFNUlCblhHVC9VREdSVCtOamRVYzhNbjIKa1cw
ejdWL1U3cjdMYnU3N2MyQXQ5Vm4ySFpnMlpadkpBYXA4QjJiN3p0bmcvQnBXL3p1dnRQMTArTzRi
YTg5VXYzWHpxM2JNTC9vKwp5TmdmMjU5bnY1K0RxQmtyeTY3S0tJNGV6eENCMis0ZGJlaSsrKysv
djkzMFJ0SS9mbi9rdzUzNUtCdCtMa2ZLbDFRbTZ1M0w3bjZRClJUdUFuVm5qK3BXU0w3bE1MR0t3
MHlrZG5KOVV6Rm1YM0dkVFV0N1ArakpweTl0RDcwelN5aG1xc2t6L2NWbTUvVHhUejZmV01WdysK
WDZUNWNvdFZyeW5EYk4zcllkbXJMRHNzY0ZqVzhQTzhUdm1aa0pVMGZGM2UzNm5Ic3Qwc2NxaHRh
NDVZSlVCcmgwYzN5YzFZeU9RbQprOUZ5SnJCOWErSDRxVzNIV0YyeXZreVU4dlBLeTlKVU8xTy9q
TjNzTjRZV3kvb3R5NHlOL2JsdEhyWmx6R0NZTnhPeXNpMHVhdE13Ci83STJEdlAxWDQrdEkyMVBN
Sm5KeGpDVmRVMzVEWmZMNitIMk1IeTlhSms1NzAyTm05cjl5TEFPcS9SbGxpMW13M0w2cjNlcnJ2
MTEKMUR6UGVFdndrdjErVGYrTWphT3Bkazk5UHF6dkt1N0Rzak5lRjMwSFpoMy8yUDdrZjM0STVq
UHRQaWp0V1RUdWgzVVpLMitZZDlucgpZUjJYNVN2djE3YS9wajNMK3EzbSsyQ3NIZ2x3YS94S216
eHV1TUJmM2ovYXdIYXpPL1Vwa1hWSjVXaGJlWDJtUE9iSXhHNmxUTFFXCjNjU2Y5NVA2UitpMzN0
bjY3MWp3a1J6THl1MlhNZlY4YWgzRDVUUEJ2N0JVZlBqaDRQV3c3RldXSFJRMUdvaVZ2UDNnSSs4
Tlg1ZDgKTy9YWTMyNkdaZGEwTlVmS2NpYXkvTUc4VWtaNCsrTnhiaitQMVNYM2ZwVXpnV1g5dzhl
cGRwYjhpemFoNFJnb2Vjc1FXamIyNTdhNQpyS2M4amhtVVBPV3hCQjk1dmFoTkpWOTVYTmJHOHZt
aXg3RjFwTzNMSmhGbFhWTitpOVk1M0I2R3J4Y3RNK2U5cVhGVHV4OFoxbUdWCnZzeXl4V3hZVHYv
MWJ0VzF2NDZhNXhsdnBiNDEvVE0yamtvNXk5WTc5Zmx3dVZYY2gyWFhiTTlwUzc4OXcvWDNYOWVV
MTgrLzZQbXcKam92eTlOOWJwZjFaYnF3OS9YYVdmVXp0OThGWVBaYnROL3J0OEp4QUVWaUxBS1JV
eGlNQkFuc25rTXVrY2psay92aGNMc0hJVWJFYworYzRsQzRzQzF0Mm9XWUtQWlVIQWJxeFBtUVFJ
RUNnQ09aT1JzMCs1ZkdnVDBwejJyTVAzd1NiMGdUYlVDd2hBNnEza0pMQlJBcmxXCjkvOXMveDdP
UyswMXo3a0dPajhYdkZlQlI0RVVmQlFKandRSTdMVkE5NGRuajkxL2x2dXRGdDJEdWRkMW1yTytP
ZTFaaCsrRE9XMjMKN09rbklBQTUvZnBNalFuc21FQUNnTndvTFJFZ1FPQk1FOGlQaEd4U210c2Uz
d2ViTkJyV3Z5M2w4ci8xcjZrYUVpQkFnQUFCQWdRSQpFQ0J3MmdzSVFFNzdMdFFBQWdRSUVDQkFn
QUFCQXFlUHdQUWxXQk0vbzNYNk5GVk5DUkFnUUlBQUFRSUVDQkE0MVFMT2dKenFIckIrCkFnUUlF
Q0JBZ0FBQkFtZVFnQURrRE9wc1RTVkFnQUFCQWdRSUVDQndxZ1VFSUtlNkI2eWZBQUVDQkFnUUlF
Q0F3QmtrSUFBNWd6cGIKVXdrUUlFQ0FBQUVDQkFpY2FnRUJ5S251QWVzblFJQUFBUUlFQ0JBZ2NB
WUpDRURPb003V1ZBSUVDQkFnUUlBQUFRS25Xa0FBY3FwNwp3UG9KRUNCQWdBQUJBZ1FJbkVFQ0Fw
QXpxTE0xbFFBQkFnUUlFQ0JBZ01DcEZoQ0FuT29lc0g0Q0JBZ1FJRUNBQUFFQ1o1Q0FBT1FNCjZt
eE5KVUNBQUFFQ0JBZ1FJSENxQlFRZ3A3b0hySjhBQVFJRUNCQWdRSURBR1NRZ0FEbURPbHRUQ1JB
Z1FJQUFBUUlFQ0p4cUFRSEkKcWU0QjZ5ZEFnQUFCQWdRSUVDQndCZ2tJUU02Z3p0WlVBZ1FJRUNC
QWdBQUJBcWRhUUFCeXFudkErZ2tRSUVDQUFBRUNCQWljUVFJSApwOXI2L2U5UDVmQTVBUUk3TFhE
Ly9UdGRvdklJRUNCQWdBQUJBdXNoTUJtQXBKb21RK3ZSV1dweFpnZ0krcytNZnRaS0FnUUlFQ0J3
CnBncTRCT3RNN1hudEprQ0FBQUVDQkFnUUlIQUtCQVFncHdEZEtna1FJRUNBQUFFQ0JBaWNxUUlD
a0RPMTU3V2JBQUVDQkFnUUlFQ0EKd0NrUXFMb0hwTFplLytrLy9hZmFyUElST09NRS92WnYvL2FN
YTdNR0V5QkFnQUFCQWdTR0FzNkFERVc4SmtDQUFBRUNCQWdRSUVCZwoxd1FFSUx0R3EyQUNCQWdR
SUVDQUFBRUNCSVlDQXBDaGlOY0VDQkFnUUlBQUFRSUVDT3lhZ0FCazEyZ1ZUSUFBQVFJRUNCQWdR
SURBClVFQUFNaFR4bWdBQkFnUUlFQ0JBZ0FDQlhSTVFnT3dhcllJSkVDQkFnQUFCQWdRSUVCZ0tD
RUNHSWw0VElFQ0FBQUVDQkFnUUlMQnIKQWdLUVhhTlZNQUVDQkFnUUlFQ0FBQUVDUXdFQnlGREVh
d0lFQ0JBZ1FJQUFBUUlFZGsxQUFMSnJ0QW9tUUlBQUFRSUVDQkFnUUdBbwpJQUFaaW5oTmdBQUJB
Z1FJRUNCQWdNQ3VDUWhBZG8xV3dRUUlFQ0JBZ0FBQkFnUUlEQVVFSUVNUnJ3a1FJRUNBQUFFQ0JB
Z1EyRFVCCkFjaXUwU3FZQUFFQ0JBZ1FJRUNBQUlHaGdBQmtLT0kxQVFJRUNCQWdRSUFBQVFLN0pp
QUEyVFZhQlJNZ1FJQUFBUUlFQ0JBZ01CUVEKZ0F4RnZDWkFnQUFCQWdRSUVDQkFZTmNFQkNDN1Jx
dGdBZ1FJRUNCQWdBQUJBZ1NHQWdLUW9ZalhCQWdRSUVDQUFBRUNCQWpzbW9BQQpaTmRvRlV5QUFB
RUNCQWdRSUVDQXdGQkFBRElVOFpvQUFRSUVDQkFnUUlBQWdWMFRFSURzR3EyQ0NSQWdRSUFBQVFJ
RUNCQVlDZ2hBCmhpSmVFeUJBZ0FBQkFnUUlFQ0N3YXdJQ2tGMmpWVEFCQWdRSUVDQkFnQUFCQWtN
QkFjaFF4R3NDQkFnUUlFQ0FBQUVDQkhaTlFBQ3kKYTdRS0prQ0FBQUVDQkFnUUlFQmdLQ0FBR1lw
NFRZQUFBUUlFQ0JBZ1FJREFyZ2tJUUhhTlZzRUVDQkFnUUlBQUFRSUVDQXdGQkNCRApFYThKRUNC
QWdBQUJBZ1FJRU5nMUFRSElydEVxbUFBQkFnUUlFQ0JBZ0FDQm9ZQUFaQ2ppTlFFQ0JBZ1FJRUNB
QUFFQ3V5WWdBTmsxCldnVVRJRUNBQUFFQ0JBZ1FJREFVRUlBTVJid21RSUFBQVFJRUNCQWdRR0RY
QkFRZ3UwYXJZQUlFQ0JBZ1FJQUFBUUlFaGdJQ2tLR0kKMXdRSUVDQkFnQUFCQWdRSTdKcUFBR1RY
YUJWTWdBQUJBZ1FJRUNCQWdNQlFRQUF5RlBHYUFBRUNCQWdRSUVDQUFJRmRFeENBN0JxdApnZ2tR
SUVDQUFBRUNCQWdRR0FvSVFJWWlYaE1nUUlBQUFRSUVDQkFnc0dzQ0FwQmRvMVV3QVFJRUNCQWdR
SUFBQVFKREFRSElVTVJyCkFnUUlFQ0JBZ0FBQkFnUjJUVUFBc211MENpWkFnQUFCQWdRSUVDQkFZ
Q2dnQUJtS2VFMkFBQUVDQkFnUUlFQ0F3SzRKQ0VCMmpWYkIKQkFnUUlFQ0FBQUVDQkFnTUJRUWdR
eEd2Q1JBZ1FJQUFBUUlFQ0JEWU5RRUJ5SzdSS3BnQUFRSUVDQkFnUUlBQWdhSEF3ZUViYzE3Lwo3
ZC8rN1p6RkxVdUFBQUVDQkFnUUlFQ0F3SVlMT0FPeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNr
NjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExn
UUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlF
Q0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJ
RQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVB
QXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIy
c2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFn
UUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFB
QVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RX
U1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5
VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1
QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdR
SUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJB
Z1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNR
QUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhI
YXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNC
QWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdB
QUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JO
WkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFM
Sk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0
RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNC
QWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFF
Q0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4
QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVk
ckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJ
RUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNB
QUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUK
MWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFz
azY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhM
Z1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJ
RUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFR
SUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhF
QUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRS
MnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJB
Z1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlB
QUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdU
V1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFD
eVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFF
dUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFn
UUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFC
QWdRMlhPQmdUZnUrLy8yYVhQSVFJRUNBQUFFQwpCQWdRSUVCZ1hHQXlBTG4vL3ZFQ2ZFcUFBQUVD
QkFnUUlFQ0FBSUZhQVpkZzFVckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnClFJQUFBUUlF
Q0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldR
QUJTS3lVZkFRSUUKQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQ
Z0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRQpDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdR
SUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBCkFRSUVD
QkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFE
S2JVQUVFQ0JBZ1FJQUEKQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NC
QWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZwpRSURBYkFFQnlHeENCUkFnUUlBQUFR
SUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnClFL
QldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZa
S1BnSUVDQkFnUUlBQUFRSUUKWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JB
Z1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMQpBZ0tRV2luNUNCQWdRSUFBQVFJ
RUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRB
CkFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVD
Q0JBZ1FJQUFBUUlFQ0JDb0ZSQ0EKMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFB
QVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWgpoQW9nUUlBQUFRSUVDQkFn
UUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFw
RlpLClBnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VD
QkFnUUlBQUFRSUVDTXdXRUlETUpsUUEKQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFB
UUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZwpRSUFBQVFJRUNCQWdN
RnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05x
RUNDQkFnClFJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJ
QUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUUKQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNC
QWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRQpDQkFnUUlCQXJZ
QUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkJpdmtqbEFBQVNPMGxFUVZR
Z1FJQUFnVm9CCkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFL
MUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUEKbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxW
UzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcQpwZVFqUUlB
QUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFn
UUlEQWJBRUJ5R3hDCkJSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtD
QXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWYKQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tW
UUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQQpBUUlF
Q0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFB
UUsxQWdLUVdpbjVDQkFnClFJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJ
TFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWcKUUlBQUFRSUVDTlFLQ0VCcXBlUWpR
SUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRQpD
QkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdk
a0NBcERaaEFvZ1FJQUFBUUlFCkNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3
a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUEKQVFJRVpnc0lRR1lUS29BQUFR
SUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlB
QQpBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdV
RUlMVlM4aEVnUUlBQUFRSUVDQkFnCk1GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVR
alFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ28KRlJDQTFFckpSNEFBQVFJ
RUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFB
Z2RrQwpBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFn
c3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBCnBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FB
QVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE0KSmxRQUFRSUVDQkFn
UUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVh
Z1VFSUxWUwo4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFw
ZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDCkNCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFB
UUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEEKQVFJRUNCQWdR
SUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJR
UWdzd2tWUUlBQQpBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtv
QUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnClFJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNC
QWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWcKUUlBQUFR
SUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VC
cXBlUWpRSUFBQVFJRQpDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRB
QUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFCkNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JB
Z1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUEKQVFL
ekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lU
S29BQUFRSUVDQkFnUUlBQQpnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlF
Q0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZCkxTQUFtVTJvQUFJRUNCQWdRSUFB
QVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUsK
Q0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpS
NEFBQVFJRUNCQWdRSURBYkFFQgp5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVD
QkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTCkt5VWZBUUlFQ0JBZ1FJQUFB
UUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFH
WVQKS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFR
SUVDQkFnUUlBQUFRSzFBZ0tRV2luNQpDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJ
QUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFCkNCQWdRSUFBQVFJRUNO
UUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVy
SlI0QUEKQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJ
RUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQQpBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlB
QUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnClFJQUFBUUlFWmdz
SVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFB
QVFJRUNCQWcKUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFn
UUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRQpDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlF
Q05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFCkNCQ29GUkNB
MUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFB
UUlFQ0JBZ1FJQUEKZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdR
SUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQQpyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVa
Z3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXCkVJRE1K
bFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNC
QWdRSUFBQVFJRWFnVUUKSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFR
SUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCawpOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZS
Q0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21WCmtv
OEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JB
Z1FJQUFBUUt6QlFRZ3N3a1YKUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJ
RVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RQpDQkFnUUlBQUFRSUVDTXdXRUlE
TUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlF
CkNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFB
QVFJRUNOUUtDRUJxcGVRalFJQUEKQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNv
RlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQQpBUUlFQ0JBZ1VDc2dBS21W
a284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVD
QkFnClFJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFB
UUlFWmdzSVFHWVRLb0FBQVFJRUNCQWcKUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dF
SURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJRQpDQkNZTFNBQW1VMm9B
QUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJ
QUFBUUlFCkNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNC
Q29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREEKYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FL
bVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCVwpRQUJTS3lVZkFR
SUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlB
QUFRSUVaZ3NJClFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013
V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1EKV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUy
b0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYgpVQUVFQ0JB
Z1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlF
Q0JDb0ZSQ0ExRXJKClI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3Nn
QUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2cKUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVm
QVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRQpDQkFn
UUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVD
TXdXRUlETUpsUUFBUUlFCkNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFt
VTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUEKQVFJRUNCQWdNRnRBQURLYlVBRUVD
QkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQQpB
UUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VD
c2dBS21Wa284QUFRSUVDQkFnClFJQUFnZGtDQXBEWmhBb2c4UCszWDRjMkFBQUFDTVArLzVvWGxt
RHJDYUp1QkFnUUlFQ0FBQUVDQktxQUFLbFNkZ1FJRUNCQWdBQUIKQWdRSTNBSUM1Q1owUUlBQUFR
SUVDQkFnUUlCQUZSQWdWY3FPQUFFQ0JBZ1FJRUNBQUlGYlFJRGNoQTRJRUNCQWdBQUJBZ1FJRUtn
QwpBcVJLMlJFZ1FJQUFBUUlFQ0JBZ2NBc0lrSnZRQVFFQ0JBZ1FJRUNBQUFFQ1ZVQ0FWQ2s3QWdR
SUVDQkFnQUFCQWdSdUFRRnlFem9nClFJQUFBUUlFQ0JBZ1FLQUtDSkFxWlVlQUFBRUNCQWdRSUVD
QXdDMGdRRzVDQndRSUVDQkFnQUFCQWdRSVZBRUJVcVhzQ0JBZ1FJQUEKQVFJRUNCQzRCUVRJVGVp
QUFBRUNCQWdRSUVDQUFJRXFJRUNxbEIwQkFnUUlFQ0JBZ0FBQkFyZUFBTGtKSFJBZ1FJQUFBUUlF
Q0JBZwpVQVVFU0pXeUkwQ0FBQUVDQkFnUUlFRGdGaEFnTjZFREFnUUlFQ0JBZ0FBQkFnU3FnQUNw
VW5ZRUNCQWdRSUFBQVFJRUNOd0NBdVFtCmRFQ0FBQUVDQkFnUUlFQ0FRQlVRSUZYS2pnQUJBZ1FJ
RUNCQWdBQ0JXMENBM0lRT0NCQWdRSUFBQVFJRUNCQ29BZ0trU3RrUklFQ0EKQUFFQ0JBZ1FJSEFM
Q0pDYjBBRUJBZ1FJRUNCQWdBQUJBbFZBZ0ZRcE93SUVDQkFnUUlBQUFRSUViZ0VCY2hNNklFQ0FB
QUVDQkFnUQpJRUNnQ2dpUUttVkhnQUFCQWdRSUVDQkFnTUF0SUVCdVFnY0VDQkFnUUlBQUFRSUVD
RlFCQVZLbDdBZ1FJRUNBQUFFQ0JBZ1F1QVVFCnlFM29nQUFCQWdRSUVDQkFnQUNCS2lCQXFwUWRB
UUlFQ0JBZ1FJQUFBUUszZ0FDNUNSMFFJRUNBQUFFQ0JBZ1FJRkFGQkVpVnNpTkEKZ0FBQkFnUUlF
Q0JBNEJZUUlEZWhBd0lFQ0JBZ1FJQUFBUUlFcW9BQXFWSjJCQWdRSUVDQUFBRUNCQWpjQWdMa0pu
UkFnQUFCQWdRSQpFQ0JBZ0VBVkVDQlZ5bzRBQVFJRUNCQWdRSUFBZ1Z0QWdOeUVEZ2dRSUVDQUFB
RUNCQWdRcUFJQ3BFclpFU0JBZ0FBQkFnUUlFQ0J3CkN3aVFtOUFCQVFJRUNCQWdRSUFBQVFKVlFJ
QlVLVHNDQkFnUUlFQ0FBQUVDQkc0QkFYSVRPaUJBZ0FBQkFnUUlFQ0JBb0FvSWtDcGwKUjRBQUFR
SUVDQkFnUUlEQUxTQkFia0lIQkFnUUlFQ0FBQUVDQkFoVUFRRlNwZXdJRUNCQWdBQUJBZ1FJRUxn
RkJNaE42SUFBQVFJRQpDQkFnUUlBQWdTb2dRS3FVSFFFQ0JBZ1FJRUNBQUFFQ3Q0QUF1UWtkRUNC
QWdBQUJBZ1FJRUNCUUJRUklsYklqUUlBQUFRSUVDQkFnClFPQVdFQ0Ezb1FNQ0JBZ1FJRUNBQUFF
Q0JLcUFBS2xTZGdRSUVDQkFnQUFCQWdRSTNBSURCMGlvSVJBdU4rb0FBQUFBU1VWT1JLNUMKWUlJ
PQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52708</attachid>
            <date>2010-04-06 23:56:24 -0700</date>
            <delta_ts>2010-04-07 06:55:11 -0700</delta_ts>
            <desc>Patch7</desc>
            <filename>bug6649734-7.txt</filename>
            <type>text/plain</type>
            <size>139514</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzE5NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMzIEBACisyMDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICBUaGUgZ2x5
cGggY2FjaGUgaGFzIGJlZW4gYWxzbyB1cGRhdGVkIHRvIGFsbG93IHN0b3JpbmcgdGhlIGdseXBo
IGJvdW5kaW5nIGJveCB0b2dldGhlciB3aXRoIHRoZQorICAgICAgICBob3Jpem9udGFsIHdpZHRo
LiBUaGUgYm91bmRpbmcgYm94IGlzIHBvcHVsYXRlZCBvbmx5IGZvciBjb21wbGV4IHRleHQuCisg
ICAgICAgIAorICAgICAgICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhcyBi
ZWVuIHdyaXR0ZW4gYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IEZpbGUg
bmFtZSBjaGFuZ2UuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEZpbGUgbmFtZSBjaGFuZ2Uu
CisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogQWRkZWQgcGFyYW1ldGVyIGluIGV4cG9ydGVk
IGZ1bmN0aW9uLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRmlsZSBuYW1lIGNoYW5nZS4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRmlsZSBuYW1lIGNoYW5nZS4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEZpbGUgbmFtZSBj
aGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogQWRkZWQgZ2x5cGhPdmVyZmxvdyBwYXJhbWV0ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhPdmVyZmxvdzo6R2x5cGhPdmVyZmxvdyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6d2lkdGgpOiBBZGRlZCBnbHlwaE92ZXJmbG93IHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6Y2FuVXNlR2x5cGhDYWNoZSk6IE1vZGlmaWVkIHRvIHJlbmRlciBjaGFyYWN0ZXJzIHdpdGgg
c3RhY2tlZCBkaWFjcml0aWNzIHdpdGggY29tcGxleCB0ZXh0IHBhdGguCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcDogQ29waWVkIGZyb20gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Okds
eXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKTogQ2xhc3MgbmFtZSBjaGFuZ2VkIHRv
IHJlZmxlY3QgbmV3IHNlbWFudGljcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aE1ldHJpY3NNYXAuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmguCisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6OkdseXBoTWV0
cmljc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6On5HbHlwaE1ldHJp
Y3NNYXApOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjptZXRyaWNzRm9yR2x5
cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjp3aWR0aEZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6c2V0TWV0cmljc0ZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6bWV0
cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhN
ZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
TWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9TaW1wbGVGb250RGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVy
ZSBjaGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9t
aXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4
VGV4dCk6IEFkZGVkIHBhcmFtZXRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250TGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZmxvYXRXaWR0aEZv
ckNvbXBsZXhUZXh0KTogQWRkZWQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKTogTmFtZSBhbmQg
c2lnbmF0dXJlIGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9T
aW1wbGVGb250RGF0YUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOiBOYW1lIGFuZCBzaWduYXR1cmUgdmFjaGFuZ2UKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvRm9udEVmbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQpOiBOYW1lIGFuZCBzaWduYXR1cmUg
Y2hhbmdlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9TaW1wbGVGb250RGF0YVBh
bmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJp
Y3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVyZSBjaGFuZ2UuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaGFpa3UvRm9udEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6
OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaCk6IE5hbWUg
YW5kIHNpZ25hdHVyZSBjaGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENv
bnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21w
bGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBoc0FuZEFkdmFuY2VzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1pbkdseXBoQm91bmRpbmdCb3hYKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0Jv
eFgpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjptaW5HbHlwaEJv
dW5kaW5nQm94WSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1h
eEdseXBoQm91bmRpbmdCb3hZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENvbXBsZXhUZXh0TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtdGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZv
bnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVyZSBjaGFu
Z2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtdGVy
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtZXRl
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDR1dpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9y
R2x5cGgpOiBOYW1lIGFuZCBzaWduYXR1cmUgY2hhbmdlLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1w
bGVGb250RGF0YTo6bWV0cmljc0ZvckdESUdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlz
Y3JpYmVDb250cm9sbGVyOjpVbmlzY3JpYmVDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5kUGxhY2VJdGVtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAo
V2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFgpOgorICAg
ICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFkp
OgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGlu
Z0JveFkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5jZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQpOiBBZGRl
ZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFd4LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVk
IHBhcmFtZXRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0
YVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJp
Y3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVyZSBjaGFuZ2UuCisgICAgICAgICogcmVuZGVy
aW5nL0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6
cGxhY2VCb3hlc0hvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94
Ojpjb21wdXRlTG9naWNhbEJveEhlaWdodHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxv
d0JveDo6Y29tcHV0ZVZlcnRpY2FsT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnNldEZhbGxi
YWNrRm9udHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6ZmFsbGJhY2tGb250
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpzZXRHbHlwaE92ZXJmbG93KToK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3cpOgorICAgICAg
ICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVU
ZXh0Qm94OjpjbGVhckdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRNYXApOiBBZGRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0OjpSZW5kZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnN0eWxl
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHQ6OnNldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dDo6d2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisKIDIwMTAtMDQt
MDYgIEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL0FuZHJvaWQubWsKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9BbmRyb2lkLm1rCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvQW5kcm9p
ZC5tawkod29ya2luZyBjb3B5KQpAQCAtNDM2LDcgKzQzNiw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6
PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5j
cHAgXAogCXBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcCBcCiAJcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwIFwKLQlwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmNwcCBcCisJcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcCBc
CiAJcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuY3BwIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cCBcCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
R05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkod29ya2luZyBjb3B5KQpAQCAtMTYxMSw4ICsxNjExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggXAogCVdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmggXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAgXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhXaWR0aE1hcC5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01h
cC5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmggXAog
CVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYWRpZW50LmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdl
YkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtOTA4LDcgKzkwOCw3IEBA
IF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWcKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlM3VybEV2CiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZThtaW1lVHlwZUV2CiBfX1pOSzdXZWJDb3JlMjZOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlcjZpc0RvbmVFdgotX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRS
dW5FUE4zV1RGN0hhc2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9F
RU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVFRQorX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRo
RVJLTlNfN1RleHRSdW5FUE4zV1RGN0hhc2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83
UHRySGFzaElTOF9FRU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVFRVBOU18xM0dseXBoT3ZlcmZsb3dF
CiBfX1pOSzdXZWJDb3JlNEZvbnQxMXByaW1hcnlGb250RXYKIF9fWk5LN1dlYkNvcmU0Rm9udDhk
cmF3VGV4dEVQTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183VGV4dFJ1bkVSS05TXzEwRmxvYXRQ
b2ludEVpaQogX19aTks3V2ViQ29yZTRLVVJMMTFjcmVhdGVDRlVSTEV2CkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNp
b24gNTcxNzQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjMy
Miw4ICsyMzIyLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZl
ci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmgn
LAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwJywKLSAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShy
ZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNzc2LDExICsyMjc3NiwxMSBAQAogCQkJCQk+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcR2x5cGhXaWR0aE1hcC5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXEdseXBoTWV0cmljc01hcC5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJ
PEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhXaWR0
aE1hcC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHbHlwaE1l
dHJpY3NNYXAuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1NzE3NCkK
KysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zODk4LDggKzM4OTgsNiBAQAogCQlCMkMzREE2QzBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEQTVCMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQzNEQTZEMEQwMDZDRDYw
MEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQ
YWdlVHJlZU5vZGUuY3BwICovOyB9OwogCQlCMkMzREE2RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5
cGhQYWdlVHJlZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyQzNEQTVEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUIyQzNEQTZG
MEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVFMEQwMDZDRDYwMEVGNkYyNiAvKiBH
bHlwaFdpZHRoTWFwLmNwcCAqLzsgfTsKLQkJQjJDM0RBNzAwRDAwNkNENjAwRUY2RjI2IC8qIEds
eXBoV2lkdGhNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEQTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjJDOTZEOEQwQjNBRjJC
NzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNT
VkdQYXRoU2VnQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQjJDQjkyNDIwQjVCRDk2NjAwOUJBQTc4IC8q
IEpTU1ZHRWxlbWVudEluc3RhbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjNCMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJ
bnN0YW5jZS5jcHAgKi87IH07CiAJCUIyQ0I5MjQ0MEI1QkQ5NzAwMDlCQUE3OCAvKiBKU1NWR0Vs
ZW1lbnRJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJDQjkyM0MwQjVCRDk0MTAwOUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlLmgg
Ki87IH07CkBAIC00NzAwLDYgKzQ2OTgsOCBAQAogCQlDNTE2MEVFQjEwMDQ1NDNBMDBBN0NFRTIg
LyogU3RvcmFnZUFyZWFJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNTE2MEVFOTEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmgg
Ki87IH07CiAJCUM1NUUzOEJGMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1w
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4
QkIxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmggKi87IH07CiAJCUM1
NUUzOEMwMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQzEwMDQwRDVE
MDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovOyB9OworCQlDNUQ0QUE3OTEx
NkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RDRBQTc3MTE2QkFGQjYwMDY5Q0E5MyAvKiBH
bHlwaE1ldHJpY3NNYXAuY3BwICovOyB9OworCQlDNUQ0QUE3QTExNkJBRkI2MDA2OUNBOTMgLyog
R2x5cGhNZXRyaWNzTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNUQ0QUE3ODExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzVFOUI2Nzcx
MDY5N0UxMzAwQzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFOUI2NzYxMDY5N0UxMzAwQzdC
QjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwICovOyB9OwogCQlDNUVCREQ4NDEwNUVE
REVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8q
IFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIw
QTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlm
eVNlbGVjdGlvbkxpc3RMZXZlbC5oICovOyB9OwpAQCAtOTIyMiw4ICs5MjIyLDYgQEAKIAkJQjJD
M0RBNUIwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHbHlwaEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCMkMzREE1QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdseXBoUGFnZVRyZWVOb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDM0RBNUQwRDAwNkNENjAwRUY2RjI2
IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHbHlwaFBhZ2VUcmVlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkMz
REE1RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2x5cGhXaWR0aE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUIyQzNEQTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaFdpZHRoTWFwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQzk2RDhDMEIzQUYyQjcwMDVFODBFQyAvKiBK
U1NWR1BhdGhTZWdDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIyQ0I5MjNCMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFuY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkNCOTIzQzBCNUJEOTQxMDA5QkFB
NzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU1ZHRWxlbWVudEluc3RhbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDA2MSw2ICsxMDA1OSw4IEBACiAJCUM1MTYwRUU5MTAwNDU0M0EwMEE3Q0VFMiAvKiBT
dG9yYWdlQXJlYUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZUFyZWFJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NUUzOEJCMTAwNDBE
NUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNTVFMzhCQzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUlt
cGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNUQ0QUE3NzExNkJB
RkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEdseXBoTWV0cmljc01hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM1RDRBQTc4MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhNZXRyaWNzTWFwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9y
YWdlRXZlbnREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1
MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNDY0NCwxMCArMTQ2NDQsMTAgQEAKIAkJCQlCQzIzRjBEQTBEQUZGNEE0MDA5
RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBG
NDEgLyogR2VuZXJhdG9yLmggKi8sCiAJCQkJQjJDM0RBNUIwRDAwNkNENjAwRUY2RjI2IC8qIEds
eXBoQnVmZmVyLmggKi8sCisJCQkJQzVENEFBNzcxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0
cmljc01hcC5jcHAgKi8sCisJCQkJQzVENEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0
cmljc01hcC5oICovLAogCQkJCUIyQzNEQTVDMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VU
cmVlTm9kZS5jcHAgKi8sCiAJCQkJQjJDM0RBNUQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFn
ZVRyZWVOb2RlLmggKi8sCi0JCQkJQjJDM0RBNUUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lk
dGhNYXAuY3BwICovLAotCQkJCUIyQzNEQTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRo
TWFwLmggKi8sCiAJCQkJQkM1M0M2MDcwREE1NkM1NzAwMjFFQjVEIC8qIEdyYWRpZW50LmNwcCAq
LywKIAkJCQlCQzUzQzVGNDBEQTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCAqLywKIAkJCQlC
MkEwMTU5MjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKQEAgLTE3
MzkyLDcgKzE3MzkyLDYgQEAKIAkJCQlGRTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9z
aXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZDMEQwMDZDRDYwMEVGNkYyNiAvKiBH
bHlwaEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNkUwRDAwNkNENjAwRUY2RjI2
IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMkMzREE3MDBEMDA2
Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0M1
RjUwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
Nzk2NDBEMDBCRjIyMDA3MUI3ODIgLyogR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKQEAgLTE4ODE0LDYgKzE4ODEzLDcgQEAKIAkJCQk4OTUyNTM1MzExNjQxQjM0
MDBDQUJGMDAgLyogRmlsZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1
RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI1NDJGNERC
MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQzVENEFBN0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0xOTYzMSw3ICsxOTYzMSw2IEBACiAJCQkJNTlDNzdGMkExMDU0NUIzQjAw
NTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjJDM0RBNkQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9k
ZU1hYy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMkMzREE2RjBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhXaWR0aE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzUzQzYwODBEQTU2QzU3MDAy
MUVCNUQgLyogR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1M0M2MEIwREE1NkNG
MTAwMjFFQjVEIC8qIEdyYWRpZW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMDE1QTgw
QUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTIxMDM0LDYgKzIxMDMzLDcgQEAKIAkJCQkyRTNCQkYwNzExNjJEQTExMDBCOTQwOUEgLyogVVVJ
RC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTUyNTM1MjExNjQxQjM0MDBDQUJGMDAgLyogRmls
ZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYg
LyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzVENEFBNzkx
MTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNyAr
MTgyLDcgQEAgdm9pZCBGb250OjpkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbgogICAgIHJl
dHVybiBkcmF3Q29tcGxleFRleHQoY29udGV4dCwgcnVuLCBwb2ludCwgZnJvbSwgdG8pOwogfQog
Ci1mbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsK
ICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIGlmIChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQo
KSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRS
dW4mIHJ1CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gZmxvYXRXaWR0aEZvckNvbXBsZXhU
ZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4
VGV4dChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogfQogCiBmbG9hdCBGb250
OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGV4dHJhQ2hhcnNBdmFpbGFibGUs
IGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNvbnN0CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsMjEgQEAgc3RydWN0
IEdseXBoRGF0YTsKIAogY29uc3QgdW5zaWduZWQgZGVmYXVsdFVuaXRzUGVyRW0gPSAxMDAwOwog
CitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgR2x5cGhPdmVyZmxvdygpCisgICAgICAgIDog
bGVmdCgwKQorICAgICAgICAsIHJpZ2h0KDApCisgICAgICAgICwgdG9wKDApCisgICAgICAgICwg
Ym90dG9tKDApCisgICAgeworICAgIH0KKworICAgIGludCBsZWZ0OworICAgIGludCByaWdodDsK
KyAgICBpbnQgdG9wOworICAgIGludCBib3R0b207Cit9OworCiBjbGFzcyBGb250IHsKIHB1Ymxp
YzoKICAgICBGb250KCk7CkBAIC04MSw4ICs5Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJh
d1RleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQm
LCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAotICAgIGludCB3aWR0aChjb25z
dCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0aChydW4sIGZhbGxiYWNr
Rm9udHMpKTsgfQotICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OworICAgIGlu
dCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBj
b25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlw
aE92ZXJmbG93KSk7IH0KKyAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CiAgICAgZmxvYXQgZmxvYXRXaWR0aChjb25z
dCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBpbnQmIGNoYXJzQ29uc3Vt
ZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKIAogICAgIGludCBvZmZzZXRGb3JQb3NpdGlv
bihjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhz
KSBjb25zdDsKQEAgLTE1OSw3ICsxNzQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lk
IGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3Qg
RmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0V2lk
dGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0aEZv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAgIGlu
dCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9z
aXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBz
ZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBvaW50
JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsMTcgKzI0LDE3IEBACiAjaW5jbHVkZSAiRm9udC5oIgogCiAjaW5jbHVkZSAiQ2hhcmFjdGVy
TmFtZXMuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIK
ICNpbmNsdWRlICJGb250RmFsbGJhY2tMaXN0LmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgog
I2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNs
dWRlICJXaWR0aEl0ZXJhdG9yLmgiCiAKLSNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmlj
b2RlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsK
QEAgLTIzNCw2ICsyMzQsMTEgQEAgYm9vbCBGb250OjpjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRl
eHRSdQogICAgICAgICBpZiAoYyA8PSAweDE5NEYpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICAgICAgaWYgKGMgPCAweDFFMDApICAgICAvLyBVKzFFMDAgdGhyb3VnaCBVKzIwMDAg
Y2hhcmFjdGVycyB3aXRoIGRpYWNyaXRpY3MgYW5kIHN0YWNrZWQgZGlhY3JpdGljcworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGlmIChjIDw9IDB4MjAwMCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgICAgICBpZiAoYyA8IDB4MjBEMCkgICAgIC8vIFUrMjBEMCB0aHJv
dWdoIFUrMjBGRiBDb21iaW5pbmcgbWFya3MgZm9yIHN5bWJvbHMKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICBpZiAoYyA8PSAweDIwRkYpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwCShyZXZpc2lvbiA1NzE3NCkJKGZyb20gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcDo1NzE3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
R2x5cGhXaWR0aE1hcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dseXBoV2lkdGhNYXA6
OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWdu
ZWQgcGFnZU51bWJlcikKK3sKKyAgICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKKyAgICBpZiAocGFn
ZU51bWJlciA9PSAwKSB7CisgICAgICAgIEFTU0VSVCghbV9maWxsZWRQcmltYXJ5UGFnZSk7Cisg
ICAgICAgIHBhZ2UgPSAmbV9wcmltYXJ5UGFnZTsKKyAgICAgICAgbV9maWxsZWRQcmltYXJ5UGFn
ZSA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1fcGFnZXMpIHsKKyAgICAgICAg
ICAgIGlmICgocGFnZSA9IG1fcGFnZXMtPmdldChwYWdlTnVtYmVyKSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHBhZ2U7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9wYWdlcy5zZXQo
bmV3IEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+KTsKKyAgICAgICAgcGFnZSA9IG5ldyBH
bHlwaFdpZHRoUGFnZTsKKyAgICAgICAgbV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOwor
ICAgIH0KKworICAgIC8vIEZpbGwgaW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBn
bHlwaCB3aWR0aCB2YWx1ZS4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0
aFBhZ2U6OnNpemU7IGkrKykKKyAgICAgICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5
cGhXaWR0aFVua25vd24pOworCisgICAgcmV0dXJuIHBhZ2U7Cit9CisKK30KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAJKHJldmlzaW9uIDU3
MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNywxNCArMjcsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgorI2luY2x1ZGUgIkdseXBoTWV0cmljc01h
cC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQ
YWdlKiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJl
cikKK0dseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZSogR2x5cGhNZXRyaWNzTWFwOjps
b2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikKIHsKLSAgICBHbHlwaFdpZHRo
UGFnZSogcGFnZTsKLSAgICBpZiAocGFnZU51bWJlciA9PSAwKSB7CisgICAgR2x5cGhNZXRyaWNz
UGFnZSogcGFnZTsKKyAgICBpZiAoIXBhZ2VOdW1iZXIpIHsKICAgICAgICAgQVNTRVJUKCFtX2Zp
bGxlZFByaW1hcnlQYWdlKTsKICAgICAgICAgcGFnZSA9ICZtX3ByaW1hcnlQYWdlOwogICAgICAg
ICBtX2ZpbGxlZFByaW1hcnlQYWdlID0gdHJ1ZTsKQEAgLTQzLDE0ICs0MywxOCBAQCBHbHlwaFdp
ZHRoTWFwOjpHbHlwaFdpZHRoUGFnZSogR2x5cGhXaWR0CiAgICAgICAgICAgICBpZiAoKHBhZ2Ug
PSBtX3BhZ2VzLT5nZXQocGFnZU51bWJlcikpKQogICAgICAgICAgICAgICAgIHJldHVybiBwYWdl
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fcGFnZXMuc2V0KG5ldyBIYXNoTWFwPGlu
dCwgR2x5cGhXaWR0aFBhZ2UqPik7Ci0gICAgICAgIHBhZ2UgPSBuZXcgR2x5cGhXaWR0aFBhZ2U7
CisgICAgICAgICAgICBtX3BhZ2VzLnNldChuZXcgSGFzaE1hcDxpbnQsIEdseXBoTWV0cmljc1Bh
Z2UqPik7CisgICAgICAgIHBhZ2UgPSBuZXcgR2x5cGhNZXRyaWNzUGFnZTsKICAgICAgICAgbV9w
YWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOwogICAgIH0KIAotICAgIC8vIEZpbGwgaW4gdGhl
IHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKLSAgICAgICAg
cGFnZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5cGhXaWR0aFVua25vd24pOworICAgIEdseXBo
TWV0cmljcyB1bmtub3duTWV0cmljczsKKyAgICB1bmtub3duTWV0cmljcy5ob3Jpem9udGFsQWR2
YW5jZSA9IGNHbHlwaFNpemVVbmtub3duOworICAgIHVua25vd25NZXRyaWNzLmJvdW5kaW5nQm94
LnNldFdpZHRoKGNHbHlwaFNpemVVbmtub3duKTsKKyAgICB1bmtub3duTWV0cmljcy5ib3VuZGlu
Z0JveC5zZXRIZWlnaHQoY0dseXBoU2l6ZVVua25vd24pOworICAgIC8vIEZpbGwgaW4gdGhlIHdo
b2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCBpbmZvcm1hdGlvbi4KKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhNZXRyaWNzUGFnZTo6c2l6ZTsgaSsrKQorICAgICAgICBw
YWdlLT5zZXRNZXRyaWNzRm9ySW5kZXgoaSwgdW5rbm93bk1ldHJpY3MpOwogCiAgICAgcmV0dXJu
IHBhZ2U7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01h
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNz
TWFwLmgJKHJldmlzaW9uIDU3MTc0KQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoV2lkdGhNYXAuaDo1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhN
ZXRyaWNzTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBHbHlwaFdpZHRoTWFwX2gKKyNkZWZpbmUgR2x5cGhXaWR0aE1hcF9oCisKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dW5pY29kZS9Vbmljb2RlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiB1bnNp
Z25lZCBzaG9ydCBHbHlwaDsKKworY29uc3QgZmxvYXQgY0dseXBoV2lkdGhVbmtub3duID0gLTE7
CisKK2NsYXNzIEdseXBoV2lkdGhNYXAgOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgor
ICAgIEdseXBoV2lkdGhNYXAoKSA6IG1fZmlsbGVkUHJpbWFyeVBhZ2UoZmFsc2UpIHsgfQorICAg
IH5HbHlwaFdpZHRoTWFwKCkgeyBpZiAobV9wYWdlcykgeyBkZWxldGVBbGxWYWx1ZXMoKm1fcGFn
ZXMpOyB9IH0KKworICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCisgICAgewor
ICAgICAgICByZXR1cm4gbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+
d2lkdGhGb3JHbHlwaChnbHlwaCk7CisgICAgfQorCisgICAgdm9pZCBzZXRXaWR0aEZvckdseXBo
KEdseXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKKyAgICB7CisgICAgICAgIGxvY2F0ZVBhZ2UoZ2x5
cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRo
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVycyBMYXRp
bi0xIGluIGEgc2luZ2xlIHBhZ2UuCisgICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVdOworCisg
ICAgICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1f
d2lkdGhzW2dseXBoICUgc2l6ZV07IH0KKyAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEds
eXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0V2lkdGhG
b3JJbmRleChnbHlwaCAlIHNpemUsIHdpZHRoKTsKKyAgICAgICAgfQorICAgICAgICB2b2lkIHNl
dFdpZHRoRm9ySW5kZXgodW5zaWduZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBtX3dpZHRoc1tpbmRleF0gPSB3aWR0aDsKKyAgICAgICAgfQorICAgIH07Cisg
ICAgCisgICAgR2x5cGhXaWR0aFBhZ2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQgcGFnZU51bWJlcikK
KyAgICB7CisgICAgICAgIGlmICghcGFnZU51bWJlciAmJiBtX2ZpbGxlZFByaW1hcnlQYWdlKQor
ICAgICAgICAgICAgcmV0dXJuICZtX3ByaW1hcnlQYWdlOworICAgICAgICByZXR1cm4gbG9jYXRl
UGFnZVNsb3dDYXNlKHBhZ2VOdW1iZXIpOworICAgIH0KKworICAgIEdseXBoV2lkdGhQYWdlKiBs
b2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcik7CisgICAgCisgICAgYm9vbCBt
X2ZpbGxlZFByaW1hcnlQYWdlOworICAgIEdseXBoV2lkdGhQYWdlIG1fcHJpbWFyeVBhZ2U7IC8v
IFdlIG9wdGltaXplIGZvciB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGdseXBoIGluZGljZXMgMC0y
NTUuCisgICAgT3duUHRyPEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+ID4gbV9wYWdlczsK
K307CisKK30KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
TWV0cmljc01hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhNZXRyaWNzTWFwLmgJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaE1ldHJpY3NNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOSArMjYsMTAgQEAK
ICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBHbHlwaFdpZHRoTWFwX2gKLSNkZWZpbmUgR2x5
cGhXaWR0aE1hcF9oCisjaWZuZGVmIEdseXBoTWV0cmljc01hcF9oCisjZGVmaW5lIEdseXBoTWV0
cmljc01hcF9oCiAKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmlj
b2RlLmg+CkBAIC0zNyw1MyArMzgsNjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVm
IHVuc2lnbmVkIHNob3J0IEdseXBoOwogCi1jb25zdCBmbG9hdCBjR2x5cGhXaWR0aFVua25vd24g
PSAtMTsKK2NvbnN0IGZsb2F0IGNHbHlwaFNpemVVbmtub3duID0gLTE7CiAKLWNsYXNzIEdseXBo
V2lkdGhNYXAgOiBwdWJsaWMgTm9uY29weWFibGUgeworc3RydWN0IEdseXBoTWV0cmljcyB7Cisg
ICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94Owor
fTsKKworY2xhc3MgR2x5cGhNZXRyaWNzTWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1Ymxp
YzoKLSAgICBHbHlwaFdpZHRoTWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0K
LSAgICB+R2x5cGhXaWR0aE1hcCgpIHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCpt
X3BhZ2VzKTsgfSB9CisgICAgR2x5cGhNZXRyaWNzTWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdl
KGZhbHNlKSB7IH0KKyAgICB+R2x5cGhNZXRyaWNzTWFwKCkKKyAgICB7IAorICAgICAgICBpZiAo
bV9wYWdlcykKKyAgICAgICAgICAgIGRlbGV0ZUFsbFZhbHVlcygqbV9wYWdlcyk7CisgICAgfQor
CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhNZXRyaWNzUGFnZTo6c2l6ZSkt
Pm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgfQogCiAgICAgZmxvYXQgd2lkdGhGb3JHbHlw
aChHbHlwaCBnbHlwaCkKICAgICB7Ci0gICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8g
R2x5cGhXaWR0aFBhZ2U6OnNpemUpLT53aWR0aEZvckdseXBoKGdseXBoKTsKKyAgICAgICAgcmV0
dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+bWV0cmljc0Zv
ckdseXBoKGdseXBoKS5ob3Jpem9udGFsQWR2YW5jZTsKICAgICB9CiAKLSAgICB2b2lkIHNldFdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGZsb2F0IHdpZHRoKQorICAgIHZvaWQgc2V0TWV0cmlj
c0ZvckdseXBoKEdseXBoIGdseXBoLCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAg
ewotICAgICAgICBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5zZXRX
aWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7CisgICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBH
bHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNz
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKKyAgICBz
dHJ1Y3QgR2x5cGhNZXRyaWNzUGFnZSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2l6
ZSA9IDI1NjsgLy8gVXN1YWxseSBjb3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBwYWdlLgotICAg
ICAgICBmbG9hdCBtX3dpZHRoc1tzaXplXTsKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1fbWV0cmlj
c1tzaXplXTsKIAotICAgICAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25z
dCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNpemVdOyB9Ci0gICAgICAgIHZvaWQgc2V0V2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgICAgIEdseXBoTWV0cmlj
cyBtZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0cmljc1tn
bHlwaCAlIHNpemVdOyB9CisgICAgICAgIHZvaWQgc2V0TWV0cmljc0ZvckdseXBoKEdseXBoIGds
eXBoLCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBzaXplLCB3aWR0aCk7CisgICAgICAgICAgICBzZXRN
ZXRyaWNzRm9ySW5kZXgoZ2x5cGggJSBzaXplLCBtZXRyaWNzKTsKICAgICAgICAgfQotICAgICAg
ICB2b2lkIHNldFdpZHRoRm9ySW5kZXgodW5zaWduZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQorICAg
ICAgICB2b2lkIHNldE1ldHJpY3NGb3JJbmRleCh1bnNpZ25lZCBpbmRleCwgY29uc3QgR2x5cGhN
ZXRyaWNzJiBtZXRyaWNzKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX3dpZHRoc1tpbmRleF0g
PSB3aWR0aDsKKyAgICAgICAgICAgIG1fbWV0cmljc1tpbmRleF0gPSBtZXRyaWNzOwogICAgICAg
ICB9CiAgICAgfTsKICAgICAKLSAgICBHbHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZSh1bnNpZ25l
ZCBwYWdlTnVtYmVyKQorICAgIEdseXBoTWV0cmljc1BhZ2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQg
cGFnZU51bWJlcikKICAgICB7CiAgICAgICAgIGlmICghcGFnZU51bWJlciAmJiBtX2ZpbGxlZFBy
aW1hcnlQYWdlKQogICAgICAgICAgICAgcmV0dXJuICZtX3ByaW1hcnlQYWdlOwogICAgICAgICBy
ZXR1cm4gbG9jYXRlUGFnZVNsb3dDYXNlKHBhZ2VOdW1iZXIpOwogICAgIH0KIAotICAgIEdseXBo
V2lkdGhQYWdlKiBsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcik7CisgICAg
R2x5cGhNZXRyaWNzUGFnZSogbG9jYXRlUGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIp
OwogICAgIAogICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5UGFnZTsKLSAgICBHbHlwaFdpZHRoUGFn
ZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlu
cyBnbHlwaCBpbmRpY2VzIDAtMjU1LgotICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0
aFBhZ2UqPiA+IG1fcGFnZXM7CisgICAgR2x5cGhNZXRyaWNzUGFnZSBtX3ByaW1hcnlQYWdlOyAv
LyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAt
MjU1LgorICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhNZXRyaWNzUGFnZSo+ID4gbV9wYWdl
czsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAJKHJldmlzaW9uIDU3MTc0
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUdseXBo
V2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nh
c2UodW5zaWduZWQgcGFnZU51bWJlcikKLXsKLSAgICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKLSAg
ICBpZiAocGFnZU51bWJlciA9PSAwKSB7Ci0gICAgICAgIEFTU0VSVCghbV9maWxsZWRQcmltYXJ5
UGFnZSk7Ci0gICAgICAgIHBhZ2UgPSAmbV9wcmltYXJ5UGFnZTsKLSAgICAgICAgbV9maWxsZWRQ
cmltYXJ5UGFnZSA9IHRydWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1fcGFnZXMpIHsK
LSAgICAgICAgICAgIGlmICgocGFnZSA9IG1fcGFnZXMtPmdldChwYWdlTnVtYmVyKSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHBhZ2U7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9w
YWdlcy5zZXQobmV3IEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+KTsKLSAgICAgICAgcGFn
ZSA9IG5ldyBHbHlwaFdpZHRoUGFnZTsKLSAgICAgICAgbV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIs
IHBhZ2UpOwotICAgIH0KLQotICAgIC8vIEZpbGwgaW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUg
dW5rbm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
R2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKLSAgICAgICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRl
eChpLCBjR2x5cGhXaWR0aFVua25vd24pOwotCi0gICAgcmV0dXJuIHBhZ2U7Ci19Ci0KLX0KSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA1
NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0g
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgR2x5cGhXaWR0aE1h
cF9oCi0jZGVmaW5lIEdseXBoV2lkdGhNYXBfaAotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR2x5cGg7
Ci0KLWNvbnN0IGZsb2F0IGNHbHlwaFdpZHRoVW5rbm93biA9IC0xOwotCi1jbGFzcyBHbHlwaFdp
ZHRoTWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsKLXB1YmxpYzoKLSAgICBHbHlwaFdpZHRoTWFw
KCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0KLSAgICB+R2x5cGhXaWR0aE1hcCgp
IHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9Ci0KLSAgICBm
bG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxv
Y2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPndpZHRoRm9yR2x5cGgoZ2x5
cGgpOwotICAgIH0KLQotICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxv
YXQgd2lkdGgpCi0gICAgewotICAgICAgICBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBh
Z2U6OnNpemUpLT5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7Ci0gICAgfQotCi1wcml2
YXRlOgotICAgIHN0cnVjdCBHbHlwaFdpZHRoUGFnZSB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3Qgc2l6ZSA9IDI1NjsgLy8gVXN1YWxseSBjb3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBw
YWdlLgotICAgICAgICBmbG9hdCBtX3dpZHRoc1tzaXplXTsKLQotICAgICAgICBmbG9hdCB3aWR0
aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNp
emVdOyB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQg
d2lkdGgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBz
aXplLCB3aWR0aCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckluZGV4KHVu
c2lnbmVkIGluZGV4LCBmbG9hdCB3aWR0aCkKLSAgICAgICAgewotICAgICAgICAgICAgbV93aWR0
aHNbaW5kZXhdID0gd2lkdGg7Ci0gICAgICAgIH0KLSAgICB9OwotICAgIAotICAgIEdseXBoV2lk
dGhQYWdlKiBsb2NhdGVQYWdlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpCi0gICAgewotICAgICAgICBp
ZiAoIXBhZ2VOdW1iZXIgJiYgbV9maWxsZWRQcmltYXJ5UGFnZSkKLSAgICAgICAgICAgIHJldHVy
biAmbV9wcmltYXJ5UGFnZTsKLSAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2VTbG93Q2FzZShwYWdl
TnVtYmVyKTsKLSAgICB9Ci0KLSAgICBHbHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZVNsb3dDYXNl
KHVuc2lnbmVkIHBhZ2VOdW1iZXIpOwotICAgIAotICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5UGFn
ZTsKLSAgICBHbHlwaFdpZHRoUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3Ig
dGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1LgotICAgIE93blB0cjxI
YXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPiA+IG1fcGFnZXM7Ci19OwotCi19Ci0KLSNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJ
KHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw5ICsxNTcsMTEgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpF
Uk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGds
eXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVy
b1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBt
X3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckds
eXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh6
ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAgR2x5cGhN
ZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0g
MDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb01ldHJpY3NNYXAuc2V0TWV0cmljc0ZvckdseXBoKHpl
cm9XaWR0aFNwYWNlR2x5cGgsIG1ldHJpY3MpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IExPR19FUlJPUigiRm9udCBtYXBzIFNQQUNFIGFuZCBaRVJPIFdJRFRIIFNQQUNFIHRvIHRoZSBz
YW1lIGdseXBoLiBHbHlwaCB3aWR0aCBub3Qgb3ZlcnJpZGRlbi4iKTsKICAgICB9CiAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDU3
MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBACiAKICNpbmNsdWRlICJGb250RGF0YS5oIgogI2lu
Y2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKKyNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIK
ICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgotI2luY2x1ZGUgIkdseXBoV2lkdGhNYXAu
aCIKICNpbmNsdWRlICJUeXBlc2V0dGluZ0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogCkBAIC01OCw5ICs1OCw5IEBAIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZv
bnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBTVkdGb250RGF0YTsK
LWNsYXNzIFdpZHRoTWFwOwogCiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNo
LCBWYXJpYWJsZVBpdGNoIH07CitlbnVtIEdseXBoTWV0cmljc01vZGUgeyBHbHlwaEJvdW5kaW5n
Qm94LCBHbHlwaFdpZHRoT25seSB9OwogCiBjbGFzcyBTaW1wbGVGb250RGF0YSA6IHB1YmxpYyBG
b250RGF0YSB7CiBwdWJsaWM6CkBAIC04MSw4ICs4MSw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB4
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWduZWQgdW5pdHNQ
ZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxvYXQgd2lkdGhG
b3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZvckdseXBoKEds
eXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7
IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIEdseXBoV2lkdGhPbmx5KS5ob3Jpem9udGFs
QWR2YW5jZTsgfQorICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBo
TWV0cmljc01vZGUgPSBHbHlwaEJvdW5kaW5nQm94KSBjb25zdDsKKyAgICBHbHlwaE1ldHJpY3Mg
cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0Owog
CiAgICAgZmxvYXQgc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2VXaWR0aDsgfQog
ICAgIGZsb2F0IGFkanVzdGVkU3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRT
cGFjZVdpZHRoOyB9CkBAIC0xNjcsNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB8fCAoT1MoV0lO
RE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgIHZvaWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lk
IHBsYXRmb3JtQ29tbW9uRGVzdHJveSgpOwotICAgIGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBpbnQgbV9hc2NlbnQ7CkBAIC0xODEsNyAr
MTgyLDcgQEAgcHJpdmF0ZToKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEgbV9wbGF0Zm9ybURhdGE7
CiAKLSAgICBtdXRhYmxlIEdseXBoV2lkdGhNYXAgbV9nbHlwaFRvV2lkdGhNYXA7CisgICAgbXV0
YWJsZSBHbHlwaE1ldHJpY3NNYXAgbV9nbHlwaFRvTWV0cmljc01hcDsKIAogICAgIGJvb2wgbV90
cmVhdEFzRml4ZWRQaXRjaDsKIApAQCAtMjM3LDE2ICsyMzgsMTYgQEAgcHJpdmF0ZToKICAgICAK
ICAgICAKICNpZiAhUExBVEZPUk0oUVQpCi1BTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnRE
YXRhOjp3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlw
aE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5
cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkgY29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IG1f
Z2x5cGhUb1dpZHRoTWFwLndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAgIGlmICh3aWR0aCAhPSBj
R2x5cGhXaWR0aFVua25vd24pCi0gICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAKLSAgICB3aWR0
aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChnbHlwaCk7Ci0gICAgbV9nbHlwaFRvV2lkdGhNYXAu
c2V0V2lkdGhGb3JHbHlwaChnbHlwaCwgd2lkdGgpOwotICAgIAotICAgIHJldHVybiB3aWR0aDsK
KyAgICBHbHlwaE1ldHJpY3MgbWV0cmljcyA9IG1fZ2x5cGhUb01ldHJpY3NNYXAubWV0cmljc0Zv
ckdseXBoKGdseXBoKTsKKyAgICBpZiAoKG1ldHJpY3NNb2RlID09IEdseXBoV2lkdGhPbmx5ICYm
IG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgIT0gY0dseXBoU2l6ZVVua25vd24pIHx8IChtZXRy
aWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94ICYmIG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgo
KSAhPSBjR2x5cGhTaXplVW5rbm93bikpCisgICAgICAgIHJldHVybiBtZXRyaWNzOworCisgICAg
bWV0cmljcyA9IHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNzTW9kZSk7Cisg
ICAgbV9nbHlwaFRvTWV0cmljc01hcC5zZXRNZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3Mp
OworCisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9TaW1wbGVGb250RGF0YUNhaXJvLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZvbnREYXRhQ2Fpcm8uY3Bw
CShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vU2lt
cGxlRm9udERhdGFDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2
b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgbV90cmVhdEFzRml4ZWRQ
aXRjaCA9IG1fcGxhdGZvcm1EYXRhLmlzRml4ZWRQaXRjaCgpOwogfQogCi1mbG9hdCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhN
ZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlw
aCwgR2x5cGhNZXRyaWNzTW9kZSkgY29uc3QKIHsKICAgICBBU1NFUlQobV9wbGF0Zm9ybURhdGEu
bV9zY2FsZWRGb250KTsKIApAQCAtMTI1LDcgKzEyNSwxMCBAQCBmbG9hdCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAgICAgZmxvYXQgdyA9IChmbG9hdCltX3NwYWNlV2lkdGg7
CiAgICAgaWYgKGNhaXJvX3NjYWxlZF9mb250X3N0YXR1cyhtX3BsYXRmb3JtRGF0YS5tX3NjYWxl
ZEZvbnQpID09IENBSVJPX1NUQVRVU19TVUNDRVNTICYmIGV4dGVudHMueF9hZHZhbmNlICE9IDAp
CiAgICAgICAgIHcgPSAoZmxvYXQpZXh0ZW50cy54X2FkdmFuY2U7Ci0gICAgcmV0dXJuIHc7Cisg
ICAgCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgbWV0cmljcy5ob3Jpem9udGFsQWR2
YW5jZSA9IHc7CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAJ
KHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250Q2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDMsNyArNTAzLDcgQEAgdm9p
ZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGNvbnRleHQtPmNhbnZh
cygpLT5lbmRQbGF0Zm9ybVBhaW50KCk7CiB9CiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogLyogZmFsbGJhY2tGb250cyAqLykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVyZmxvdyogLyogZ2x5cGhPdmVy
ZmxvdyAqLykgY29uc3QKIHsKICAgICBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuIHN0YXRlKHJ1biwg
KnRoaXMpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oc3RhdGUud2lkdGgoKSk7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXgu
Y3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udExpbnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQg
Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKLWZsb2F0IEZv
bnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLykgY29uc3QKK2Zsb2F0
IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVy
ZmxvdyogLyogZ2x5cGhPdmVyZmxvdyAqLykgY29uc3QKIHsKICAgICBUZXh0UnVuV2Fsa2VyIHdh
bGtlcihydW4sIDAsIHRoaXMpOwogICAgIHJldHVybiB3YWxrZXIud2lkdGhPZkZ1bGxSdW4oKTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFD
aHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2luLmNwcAkocmV2aXNpb24gNTcxNzQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21p
dW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAgIFJlbGVhc2VEQygwLCBkYyk7CiB9CiAKLWZs
b2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNv
bnN0CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBo
KEdseXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlKSBjb25zdAogewogICAgIEhEQyBkYyA9IEdl
dERDKDApOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChkYywgbV9wbGF0Zm9y
bURhdGEuaGZvbnQoKSk7CkBAIC0xNzAsNyArMTcwLDkgQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtV2lkdGhGb3JHbAogICAgIFNlbGVjdE9iamVjdChkYywgb2xkRm9udCk7CiAgICAg
UmVsZWFzZURDKDAsIGRjKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4od2lkdGgp
OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFu
Y2UgPSBzdGF0aWNfY2FzdDxmbG9hdD4od2lkdGgpOworICAgIHJldHVybiBtZXRyaWNzOwogfQog
CiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwCShyZXZp
c2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxl
Rm9udERhdGFMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lk
IFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgbV90cmVhdEFzRml4ZWRQaXRj
aCA9IHBsYXRmb3JtRGF0YSgpLmlzRml4ZWRQaXRjaCgpOwogfQogCi1mbG9hdCBTaW1wbGVGb250
RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhNZXRy
aWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEds
eXBoTWV0cmljc01vZGUgLyogbWV0cmljc01vZGUgKi8pIGNvbnN0CiB7CiAgICAgU2tBU1NFUlQo
c2l6ZW9mKGdseXBoKSA9PSAyKTsgICAvLyBjb21waWxlLXRpbWUgYXNzZXJ0CiAKQEAgLTE4Niw3
ICsxODYsOSBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAgICAg
Ly8gVGhvdWdoIFdlYktpdCBzdXBwb3J0cyBub24taW50ZWdyYWwgYWR2YW5jZXMsIFNraWEgb25s
eSBzdXBwb3J0cyB0aGVtCiAgICAgLy8gZm9yICJzdWJwaXhlbCIgKGRpc3RpbmN0IGZyb20gTENE
IHN1YnBpeGVsIGFudGlhbGlhc2luZykgdGV4dCwgd2hpY2gKICAgICAvLyB3ZSBkb24ndCB1c2Uu
Ci0gICAgcmV0dXJuIHJvdW5kKFNrU2NhbGFyVG9GbG9hdCh3aWR0aCkpOworICAgIEdseXBoTWV0
cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSByb3VuZChTa1Nj
YWxhclRvRmxvYXQod2lkdGgpKTsKKyAgICByZXR1cm4gbWV0cmljczsKIH0KIAogfSAgLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRF
ZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRF
ZmwuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0ZvbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGJvb2wgRm9udDo6
Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWZs
b2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KikgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiwgR2x5cGhPdmVyZmxvdyopIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gMC4wZjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL1NpbXBs
ZUZvbnREYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5l
UGl0Y2goKQogICAgIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPSBtX3BsYXRmb3JtRGF0YS5pc0ZpeGVk
UGl0Y2goKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlw
aChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKG1fcGxhdGZvcm1EYXRhLm1fc2NhbGVkRm9udCk7CiAKQEAgLTEzMCw3ICsx
MzAsMTAgQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbAogICAgIGZs
b2F0IHcgPSAoZmxvYXQpbV9zcGFjZVdpZHRoOwogICAgIGlmIChjYWlyb19zY2FsZWRfZm9udF9z
dGF0dXMobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250KSA9PSBDQUlST19TVEFUVVNfU1VDQ0VT
UyAmJiBleHRlbnRzLnhfYWR2YW5jZSAhPSAwKQogICAgICAgICB3ID0gKGZsb2F0KWV4dGVudHMu
eF9hZHZhbmNlOwotICAgIHJldHVybiB3OworICAgIAorICAgIEdseXBoTWV0cmljcyBtZXRyaWNz
OworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSB3OworICAgIHJldHVybiBtZXRyaWNz
OwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRIYWlr
dS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250
SGFpa3UuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
aGFpa3UvRm9udEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCB2b2lk
IEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiB9CiAKIAotZmxvYXQgRm9udDo6
ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvU2ltcGxlRm9u
dERhdGFIYWlrdS5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMs
NyArOTMsNyBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgbV90
cmVhdEFzRml4ZWRQaXRjaCA9IG1fcGxhdGZvcm1EYXRhLmZvbnQoKSAmJiBtX3BsYXRmb3JtRGF0
YS5mb250KCktPklzRml4ZWQoKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3Jt
V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250
RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01v
ZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BsYXRmb3JtRGF0YS5mb250KCkpCiAgICAgICAgIHJl
dHVybiAwOwpAQCAtMTAzLDcgKzEwMyw5IEBAIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bVdpZHRoRm9yR2wKIAogICAgIGNoYXJVbmljb2RlVG9VVEY4SEFDSyhnbHlwaCwgY2hhckFycmF5
KTsKICAgICBtX3BsYXRmb3JtRGF0YS5mb250KCktPkdldEVzY2FwZW1lbnRzKGNoYXJBcnJheSwg
MSwgZXNjYXBlbWVudHMpOwotICAgIHJldHVybiBlc2NhcGVtZW50c1swXSAqIG1fcGxhdGZvcm1E
YXRhLmZvbnQoKS0+U2l6ZSgpOworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJp
Y3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBlc2NhcGVtZW50c1swXSAqIG1fcGxhdGZvcm1EYXRhLmZv
bnQoKS0+U2l6ZSgpOworICAgIHJldHVybiBtZXRyaWNzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjgsNiArNjgsMTAgQEAgQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4
dENvbnRybwogICAgICwgbV9jaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaCgwKQogICAgICwgbV9maW5h
bFJvdW5kaW5nV2lkdGgoMCkKICAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQor
ICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgp
KQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1p
bigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46
Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9h
dD46Om1pbigpKQogICAgICwgbV9sYXN0Um91bmRpbmdHbHlwaCgwKQogewogICAgIG1fcGFkZGlu
ZyA9IG1fcnVuLnBhZGRpbmcoKTsKQEAgLTQzOCw2ICs0NDIsNyBAQCB2b2lkIENvbXBsZXhUZXh0
Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzCiAgICAgICAgIENHRmxvYXQgcm91bmRlZFNwYWNlV2lk
dGggPSByb3VuZENHRmxvYXQoZm9udERhdGEtPnNwYWNlV2lkdGgoKSk7CiAgICAgICAgIGJvb2wg
cm91bmRzQWR2YW5jZXMgPSAhbV9mb250LmlzUHJpbnRlckZvbnQoKSAmJiBmb250RGF0YS0+cGxh
dGZvcm1EYXRhKCkucm91bmRzR2x5cGhBZHZhbmNlcygpOwogICAgICAgICBib29sIGhhc0V4dHJh
U3BhY2luZyA9IChtX2ZvbnQubGV0dGVyU3BhY2luZygpIHx8IG1fZm9udC53b3JkU3BhY2luZygp
IHx8IG1fcGFkZGluZykgJiYgIW1fcnVuLnNwYWNpbmdEaXNhYmxlZCgpOworICAgICAgICBDR1Bv
aW50IGdseXBoT3JpZ2luID0gQ0dQb2ludFplcm87CiAgICAgICAgIENGSW5kZXggbGFzdENoYXJh
Y3RlckluZGV4ID0gbV9ydW4ubHRyKCkgPyBudW1lcmljX2xpbWl0czxDRkluZGV4Pjo6bWluKCkg
OiBudW1lcmljX2xpbWl0czxDRkluZGV4Pjo6bWF4KCk7CiAgICAgICAgIGJvb2wgaXNNb25vdG9u
aWMgPSB0cnVlOwogCkBAIC01NDEsNiArNTQ2LDE2IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9s
bGVyOjphZGp1c3RHbHlwaHMKICAgICAgICAgICAgIGFkdmFuY2UuaGVpZ2h0ICo9IC0xOwogICAg
ICAgICAgICAgbV9hZGp1c3RlZEFkdmFuY2VzLmFwcGVuZChhZHZhbmNlKTsKICAgICAgICAgICAg
IG1fYWRqdXN0ZWRHbHlwaHMuYXBwZW5kKGdseXBoKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljcyA9IGZvbnREYXRhLT5tZXRyaWNzRm9yR2x5cGgo
Z2x5cGgpOworICAgICAgICAgICAgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94Lm1vdmUoZ2x5cGhP
cmlnaW4ueCwgZ2x5cGhPcmlnaW4ueSk7CisgICAgICAgICAgICBtX21pbkdseXBoQm91bmRpbmdC
b3hYID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0Jv
eC54KCkpOworICAgICAgICAgICAgbV9tYXhHbHlwaEJvdW5kaW5nQm94WCA9IG1heChtX21heEds
eXBoQm91bmRpbmdCb3hYLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gucmlnaHQoKSk7CisgICAg
ICAgICAgICBtX21pbkdseXBoQm91bmRpbmdCb3hZID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0Jv
eFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC55KCkpOworICAgICAgICAgICAgbV9tYXhHbHlw
aEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3Mu
Ym91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICAgICAgZ2x5cGhPcmlnaW4ueCArPSBhZHZh
bmNlLndpZHRoOworICAgICAgICAgICAgZ2x5cGhPcmlnaW4ueSArPSBhZHZhbmNlLmhlaWdodDsK
KyAgICAgICAgICAgIAogICAgICAgICAgICAgbGFzdENoYXJhY3RlckluZGV4ID0gY2hhcmFjdGVy
SW5kZXg7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFpc01vbm90b25pYykKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxl
ci5oCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2MiwxMSBAQCBw
dWJsaWM6CiAgICAgLy8gRXh0cmEgd2lkdGggdG8gdGhlIGxlZnQgb2YgdGhlIGxlZnRtb3N0IGds
eXBoLgogICAgIGZsb2F0IGZpbmFsUm91bmRpbmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlu
YWxSb3VuZGluZ1dpZHRoOyB9CiAKKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtYXhHbHlw
aEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFg7IH0K
KyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5
cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICAKIHByaXZhdGU6CiAgICAg
Y2xhc3MgQ29tcGxleFRleHRSdW4gOiBwdWJsaWMgUmVmQ291bnRlZDxDb21wbGV4VGV4dFJ1bj4g
ewogICAgIHB1YmxpYzoKQEAgLTE3Myw2ICsxNzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOwogCisgICAgZmxvYXQg
bV9taW5HbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21heEdseXBoQm91bmRpbmdCb3hY
OworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7CisgICAgZmxvYXQgbV9tYXhHbHlw
aEJvdW5kaW5nQm94WTsKKyAgICAKICAgICB1bnNpZ25lZCBtX2xhc3RSb3VuZGluZ0dseXBoOwog
fTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0
TWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q29tcGxleFRleHRNYWMuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDYgKzMzLDggQEAKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogRmxvYXRSZWN0IEZvbnQ6OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dChjb25zdCBU
ZXh0UnVuJiBydW4sIGNvbnN0IEludFBvaW50JiBwb2ludCwgaW50IGgsCkBAIC04Myw5ICs4NSwx
NSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgZHJhd0ds
eXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBydW4sIHN0YXJ0UG9pbnQpOwogfQogCi1m
bG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBI
YXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0CitmbG9h
dCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cq
IGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRy
b2xsZXIodGhpcywgcnVuLCB0cnVlLCBmYWxsYmFja0ZvbnRzKTsKKyAgICBpZiAoZ2x5cGhPdmVy
ZmxvdykgeworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBtYXg8aW50PihnbHlwaE92ZXJm
bG93LT50b3AsIGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0gYXNj
ZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50PihnbHlwaE92
ZXJmbG93LT5ib3R0b20sIGNlaWxmKGNvbnRyb2xsZXIubWF4R2x5cGhCb3VuZGluZ0JveFkoKSkg
LSBkZXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5sZWZ0ID0gbWF4PGludD4oMCwg
Y2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFgoKSkpOworICAgICAgICBnbHlw
aE92ZXJmbG93LT5yaWdodCA9IG1heDxpbnQ+KDAsIGNlaWxmKGNvbnRyb2xsZXIubWF4R2x5cGhC
b3VuZGluZ0JveFgoKSAtIGNvbnRyb2xsZXIudG90YWxXaWR0aCgpKSk7CisgICAgfQogICAgIHJl
dHVybiBjb250cm9sbGVyLnRvdGFsV2lkdGgoKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9uIDU3
MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNywxNyArNDA3LDI3IEBAIHZvaWQgU2ltcGxlRm9udERh
dGE6OmRldGVybWluZVBpdGNoKCkKICAgICAgICAgICAgW25hbWUgY2FzZUluc2Vuc2l0aXZlQ29t
cGFyZTpAIk1vbm90eXBlQ29yc2l2YSJdICE9IE5TT3JkZXJlZFNhbWU7CiB9CiAKLWZsb2F0IFNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitH
bHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEdseXBo
IGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlIG1ldHJpY3NNb2RlKSBjb25zdAogewotICAgIE5TRm9u
dCogZm9udCA9IG1fcGxhdGZvcm1EYXRhLmZvbnQoKTsKLSAgICBmbG9hdCBwb2ludFNpemUgPSBt
X3BsYXRmb3JtRGF0YS5tX3NpemU7CisgICAgTlNGb250KiBmb250ID0gcGxhdGZvcm1EYXRhKCku
Zm9udCgpOworICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsKICAg
ICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUocG9pbnRT
aXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwotICAgIGlmICghd2tHZXRHbHlw
aFRyYW5zZm9ybWVkQWR2YW5jZXMobV9wbGF0Zm9ybURhdGEuY2dGb250KCksIGZvbnQsICZtLCAm
Z2x5cGgsICZhZHZhbmNlKSkgeworICAgIGlmICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2YW5j
ZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNlKSkg
ewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9yICVA
ICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVdLCBwb2ludFNpemUpOwogICAgICAgICBhZHZhbmNlLndp
ZHRoID0gMDsKICAgICB9Ci0gICAgcmV0dXJuIGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0Jv
bGRPZmZzZXQ7CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgbWV0cmljcy5ob3Jpem9u
dGFsQWR2YW5jZSA9IGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisgICAg
aWYgKG1ldHJpY3NNb2RlID09IEdseXBoQm91bmRpbmdCb3gpIHsKKyAgICAgICAgQ0dSZWN0IGJv
dW5kaW5nQm94OworICAgICAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURhdGEoKS5j
Z0ZvbnQoKSwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgICAgICBDR0Zsb2F0IHNjYWxl
ID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgICAgICBtZXRyaWNzLmJvdW5kaW5nQm94
ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm91bmRpbmdCb3gsIENHQWZmaW5lVHJhbnNm
b3JtTWFrZVNjYWxlKHNjYWxlLCAtc2NhbGUpKTsKKyAgICAgICAgaWYgKG1fc3ludGhldGljQm9s
ZE9mZnNldCkKKyAgICAgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0cmlj
cy5ib3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICB9Cisg
ICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKICNpZiBVU0UoQVRTVUkpCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDcg
KzE2OSw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICAg
ICAgcC0+ZHJhd1RleHQocHQsIHN0cmluZywgZmxhZ3MsIHJ1bi5wYWRkaW5nKCkpOwogfQogCi1m
bG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBI
YXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qKSBjb25zdAorZmxvYXQgRm9udDo6ZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiwgR2x5cGhPdmVyZmxvdyopIGNvbnN0CiB7CiAgICAgaWYgKCFydW4ubGVu
Z3RoKCkpCiAgICAgICAgIHJldHVybiAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAK
ICNpbmNsdWRlICJVbmlzY3JpYmVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBi
b29sIEZvbnQ6OmNhblJldHVybkZhbGxiYWNrRm9udHNGb3JDb21wbGV4VGV4dCgpCkBAIC04OSwx
MCArOTEsMTYgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAg
IGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsK
IH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4m
IHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25z
dAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92
ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIFVuaXNjcmliZUNvbnRyb2xsZXIg
Y29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMpOwogICAgIGNvbnRyb2xsZXIuYWR2
YW5jZShydW4ubGVuZ3RoKCkpOworICAgIGlmIChnbHlwaE92ZXJmbG93KSB7CisgICAgICAgIGds
eXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWNv
bnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFkoKSkgLSBhc2NlbnQoKSk7CisgICAgICAgIGds
eXBoT3ZlcmZsb3ctPmJvdHRvbSA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgY2Vp
bGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WSgpKSAtIGRlc2NlbnQoKSk7CisgICAg
ICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQgPSBtYXg8aW50PigwLCBjZWlsZigtY29udHJvbGxlci5t
aW5HbHlwaEJvdW5kaW5nQm94WCgpKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnJpZ2h0ID0g
bWF4PGludD4oMCwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WCgpIC0gY29u
dHJvbGxlci5ydW5XaWR0aFNvRmFyKCkpKTsKKyAgICB9CiAgICAgcmV0dXJuIGNvbnRyb2xsZXIu
cnVuV2lkdGhTb0ZhcigpOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAkocmV2aXNpb24gNTcxNzQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTI2LDEwICsxMjYsMTAgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1DaGFyV2lkdGhJbgogICAgIH0KIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBs
YXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0
cmljc01vZGUgbWV0cmljc01vZGUpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLnVz
ZUdESSgpKQotICAgICAgIHJldHVybiB3aWR0aEZvckdESUdseXBoKGdseXBoKTsKKyAgICAgICBy
ZXR1cm4gbWV0cmljc0ZvckdESUdseXBoKGdseXBoKTsKIAogICAgIENHRm9udFJlZiBmb250ID0g
bV9wbGF0Zm9ybURhdGEuY2dGb250KCk7CiAgICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9y
bURhdGEuc2l6ZSgpOwpAQCAtMTM5LDggKzEzOSwxOCBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1XaWR0aEZvckdsCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHJlYWwgc3VwcG9y
dCBmb3IgcHJpbnRlciBmb250cy4KICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZTsKICAg
ICB3a0dldEdseXBoQWR2YW5jZXMoZm9udCwgbSwgbV9pc1N5c3RlbUZvbnQsIGlzUHJpbnRlckZv
bnQsIGdseXBoLCBhZHZhbmNlKTsKLQotICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9zeW50
aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3Mu
aG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0
OworICAgIAorICAgIGlmIChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94KSB7CisgICAg
ICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICAgICAgQ0dGb250R2V0R2x5cGhCQm94ZXMoZm9u
dCwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgICAgICBDR0Zsb2F0IHNjYWxlID0gcG9p
bnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgICAgICBtZXRyaWNzLmJvdW5kaW5nQm94ID0gQ0dS
ZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm91bmRpbmdCb3gsIENHQWZmaW5lVHJhbnNmb3JtTWFr
ZVNjYWxlKHNjYWxlLCAtc2NhbGUpKTsKKyAgICAgICAgaWYgKG1fc3ludGhldGljQm9sZE9mZnNl
dCkKKyAgICAgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0cmljcy5ib3Vu
ZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICB9CisgICAgcmV0
dXJuIG1ldHJpY3M7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L1NpbXBsZUZvbnREYXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzksMTYgKzE3OSwyNSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1p
bmVQaXRjaCgpCiAgICAgUmVsZWFzZURDKDAsIGRjKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERh
dGE6OndpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitHbHlwaE1ldHJpY3MgU2lt
cGxlRm9udERhdGE6Om1ldHJpY3NGb3JHRElHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAg
ICBIREMgaGRjID0gR2V0REMoMCk7CiAgICAgU2V0R3JhcGhpY3NNb2RlKGhkYywgR01fQURWQU5D
RUQpOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChoZGMsIG1fcGxhdGZvcm1E
YXRhLmhmb250KCkpOwotICAgIGludCB3aWR0aDsKLSAgICBHZXRDaGFyV2lkdGhJKGhkYywgZ2x5
cGgsIDEsIDAsICZ3aWR0aCk7CisKKyAgICBHTFlQSE1FVFJJQ1MgZ2RpTWV0cmljczsKKyAgICBz
dGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsgMCwgMSwgIDAsIDAsICAwLCAwLCAgMCwgMSB9
OworICAgIEdldEdseXBoT3V0bGluZShoZGMsIGdseXBoLCBHR09fTUVUUklDUyB8IEdHT19HTFlQ
SF9JTkRFWCwgJmdkaU1ldHJpY3MsIDAsIDAsICZpZGVudGl0eSk7CisKICAgICBTZWxlY3RPYmpl
Y3QoaGRjLCBvbGRGb250KTsKICAgICBSZWxlYXNlREMoMCwgaGRjKTsKLSAgICByZXR1cm4gd2lk
dGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisKKyAgICBHbHlwaE1ldHJpY3MgZ2x5cGhNZXRy
aWNzOworICAgIGdseXBoTWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGdkaU1ldHJpY3MuZ21D
ZWxsSW5jWCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBnbHlwaE1ldHJpY3MuYm91bmRp
bmdCb3ggPSBGbG9hdFJlY3QoZ2RpTWV0cmljcy5nbXB0R2x5cGhPcmlnaW4ueCwgLWdkaU1ldHJp
Y3MuZ21wdEdseXBoT3JpZ2luLnksCisgICAgICAgIGdkaU1ldHJpY3MuZ21CbGFja0JveFggKyBt
X3N5bnRoZXRpY0JvbGRPZmZzZXQsIGdkaU1ldHJpY3MuZ21CbGFja0JveFkpOworCisgICAgcmV0
dXJuIGdseXBoTWV0cmljczsKIH0KIAogU0NSSVBUX0ZPTlRQUk9QRVJUSUVTKiBTaW1wbGVGb250
RGF0YTo6c2NyaXB0Rm9udFByb3BlcnRpZXMoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlz
aW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJT
aW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IFJlYXJjaGl0
ZWN0IHRoaXMgdG8gYmUgbW9yZSBsaWtlIFdpZHRoSXRlcmF0b3IgaW4gRm9udC5jcHAuICBIYXZl
IGFuIGFkdmFuY2UoKSBtZXRob2QKQEAgLTM5LDE2ICs0MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAvLyB0YWtlIHRoZSBHbHlwaEJ1ZmZlciBhcyBhbiBhcmcgc28gdGhhdCB3ZSBkb24ndCBo
YXZlIHRvIHBvcHVsYXRlIHRoZSBnbHlwaCBidWZmZXIgd2hlbgogLy8gbWVhc3VyaW5nLgogVW5p
c2NyaWJlQ29udHJvbGxlcjo6VW5pc2NyaWJlQ29udHJvbGxlcihjb25zdCBGb250KiBmb250LCBj
b25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cykKLTogbV9mb250KCpmb250KQotLCBtX3J1bihydW4pCi0sIG1fZmFsbGJhY2tGb250
cyhmYWxsYmFja0ZvbnRzKQotLCBtX2VuZChydW4ubGVuZ3RoKCkpCi0sIG1fY3VycmVudENoYXJh
Y3RlcigwKQotLCBtX3J1bldpZHRoU29GYXIoMCkKLSwgbV9jb21wdXRpbmdPZmZzZXRQb3NpdGlv
bihmYWxzZSkKLSwgbV9pbmNsdWRlUGFydGlhbEdseXBocyhmYWxzZSkKLSwgbV9vZmZzZXRYKDAp
Ci0sIG1fb2Zmc2V0UG9zaXRpb24oMCkKKyAgICA6IG1fZm9udCgqZm9udCkKKyAgICAsIG1fcnVu
KHJ1bikKKyAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQorICAgICwgbV9taW5H
bHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9t
YXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwg
bV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAg
ICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQor
ICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQorICAgICwgbV9jdXJyZW50Q2hhcmFjdGVyKDApCisg
ICAgLCBtX3J1bldpZHRoU29GYXIoMCkKKyAgICAsIG1fY29tcHV0aW5nT2Zmc2V0UG9zaXRpb24o
ZmFsc2UpCisgICAgLCBtX2luY2x1ZGVQYXJ0aWFsR2x5cGhzKGZhbHNlKQorICAgICwgbV9vZmZz
ZXRYKDApCisgICAgLCBtX29mZnNldFBvc2l0aW9uKDApCiB7CiAgICAgbV9wYWRkaW5nID0gbV9y
dW4ucGFkZGluZygpOwogICAgIGlmICghbV9wYWRkaW5nKQpAQCAtMzc0LDYgKzM4MCwxNCBAQCBi
b29sIFVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5kUGxhY2VJCiAgICAgICAgICAgICBnbHlw
aEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwgYWR2YW5jZSwgJnNpemUpOwogICAgICAgICB9
CiAKKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljcyA9IGZvbnREYXRhLT5tZXRyaWNz
Rm9yR2x5cGgoZ2x5cGgpOworICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gubW92ZSht
X2dseXBoT3JpZ2luLngoKSwgbV9nbHlwaE9yaWdpbi55KCkpOworICAgICAgICBtX21pbkdseXBo
Qm91bmRpbmdCb3hYID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5i
b3VuZGluZ0JveC54KCkpOworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hYID0gbWF4KG1f
bWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgpKTsK
KyAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91bmRpbmdC
b3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsKKyAgICAgICAgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91
bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICBtX2dseXBoT3JpZ2luLm1vdmUoYWR2YW5jZSAr
IG9mZnNldFgsIC1vZmZzZXRZKTsKKwogICAgICAgICAvLyBNdXRhdGUgdGhlIGdseXBoIGFycmF5
IHRvIGNvbnRhaW4gb3VyIGFsdGVyZWQgYWR2YW5jZXMuCiAgICAgICAgIGlmIChtX2NvbXB1dGlu
Z09mZnNldFBvc2l0aW9uKQogICAgICAgICAgICAgYWR2YW5jZXNba10gPSBhZHZhbmNlOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRy
b2xsZXIuaAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9VbmlzY3JpYmVDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDExIEBA
IHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSB3aWR0aCBvZiBldmVyeXRoaW5nIHdlJ3ZlIGNv
bnN1bWVkIHNvIGZhci4KICAgICBmbG9hdCBydW5XaWR0aFNvRmFyKCkgY29uc3QgeyByZXR1cm4g
bV9ydW5XaWR0aFNvRmFyOyB9CiAKKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtYXhHbHlw
aEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFg7IH0K
KyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5
cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7IH0KKwogcHJpdmF0ZTogICAgCiAgICAg
dm9pZCByZXNldENvbnRyb2xBbmRTdGF0ZSgpOwogCkBAIC02MSw2ICs2NiwxMSBAQCBwcml2YXRl
OiAgICAKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7CiAgICAgY29uc3QgVGV4dFJ1biYgbV9ydW47
CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBtX2ZhbGxiYWNrRm9udHM7Cisg
ICAgRmxvYXRQb2ludCBtX2dseXBoT3JpZ2luOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGlu
Z0JveFg7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21p
bkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7CiAK
ICAgICBTQ1JJUFRfQ09OVFJPTCBtX2NvbnRyb2w7CiAgICAgU0NSSVBUX1NUQVRFIG1fc3RhdGU7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5jZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250V2luY2UuY3Bw
CShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9u
dFdpbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKLWZsb2F0IEZvbnQ6OmZs
b2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxv
dykgY29uc3QKIHsKICAgICBUZXh0UnVuQ29tcG9uZW50cyBjb21wb25lbnRzOwogICAgIGludCB3
ID0gZ2VuZXJhdGVDb21wb25lbnRzKCZjb21wb25lbnRzLCAqdGhpcywgcnVuKTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFd4LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRXeC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250V3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjEsNyArMTIxLDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250
ZQogfQogCiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0
UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykg
Y29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVu
JiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5
cGhPdmVyZmxvdyopIGNvbnN0CiB7CiAjaWYgT1MoV0lORE9XUykKICAgICBVbmlzY3JpYmVDb250
cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCBmYWxsYmFja0ZvbnRzKTsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0YVd4LmNwcAkocmV2
aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1NpbXBsZUZvbnRE
YXRhV3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsMTcgKzExMiwxOSBAQCB2b2lkIFNpbXBs
ZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgIG1fdHJlYXRBc0ZpeGVkUGl0Y2gg
PSBmYWxzZTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlw
aChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0CiB7
CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CiAjaWYgX19XWE1TV19fCiAgICAgLy8gdW5kZXIg
V2luZG93cyAvIHd4TVNXIHdlIGN1cnJlbnRseSBhbHdheXMgdXNlIEdESSBmb250cy4KLSAgICBy
ZXR1cm4gd2lkdGhGb3JHRElHbHlwaChnbHlwaCk7CisgICAgbWV0cmljcy5ob3Jpem9udGFsQWR2
YW5jZSA9IHdpZHRoRm9yR0RJR2x5cGgoZ2x5cGgpOwogI2Vsc2UKICAgICAvLyBUT0RPOiBmaXgg
dGhpcyEgTWFrZSBHZXRUZXh0RXh0ZW50cyBhIG1ldGhvZCBvZiB3eEZvbnQgaW4gMi45CiAgICAg
aW50IHdpZHRoID0gMTA7CiAgICAgR2V0VGV4dEV4dGVudCgqbV9wbGF0Zm9ybURhdGEuZm9udCgp
LCAod3hDaGFyKWdseXBoLCAmd2lkdGgsIE5VTEwpOwotICAgIHJldHVybiB3aWR0aDsKKyAgICBt
ZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gd2lkdGg7CiAjZW5kaWYKKyAgICByZXR1cm4gbWV0
cmljczsKIH0KIAogI2lmIE9TKFdJTkRPV1MpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQgSW5saW5lRmxv
d0JveDo6cGxhY2VCb3hlc0hvcml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0dGVyU3BhY2lu
ZyA9IG1pbigwLCAoaW50KXJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5sZXR0ZXJTcGFj
aW5nKCkpOwogICAgICAgICAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4UG9zICsgdGV4
dC0+d2lkdGgoKSAtIGxldHRlclNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cpOwogCi0gICAg
ICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAg
ICAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJTcGFj
aW5nOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRpY19j
YXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAgICAg
ICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxv
dyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCByaWdodEdseXBo
T3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5cGhPdmVyZmxv
dyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGludCBjaGlsZE92ZXJmbG93TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAgICAgICAgICAg
aW50IGNoaWxkT3ZlcmZsb3dSaWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAgLTQxMiwzNSAr
NDE0LDM1IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKIAogICAg
ICAgICBpbnQgbGluZUhlaWdodDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAgICAgICBWZWN0
b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZlY3Rvcjxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAoY3Vyci0+aXNJ
bmxpbmVUZXh0Qm94KCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4o
Y3VyciktPnRha2VGYWxsYmFja0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAgICB1c2VkRm9u
dHMgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNrRm9udHMoKTsK
IAotICAgICAgICBpZiAoIXVzZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZWRG
b250cy5hcHBlbmQoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCku
cHJpbWFyeUZvbnQoKSk7CisgICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAgICAgICAgIHVz
ZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9u
dCgpLnByaW1hcnlGb250KCkpOwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExpbmVIZWlnaHQg
PSBjdXJyLT5yZW5kZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdodCgpOwogICAg
ICAgICAgICAgaWYgKHBhcmVudExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAgICAgICAgICAg
ICAgICAgaW50IGJhc2VsaW5lVG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAgIGJhc2VsaW5l
ID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5z
aXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNl
ZEZvbnRzW2ldLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVzZWRG
b250c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lID0g
bWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOwotICAg
ICAgICAgICAgICAgICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20s
IHVzZWRGb250c1tpXS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1
c2VkRm9udHNbaV0tPmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSktPmxpbmVTcGFj
aW5nKCkgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRl
c2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGlu
ZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwgdXNlZEZv
bnRzLT5hdChpKS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgpIC0g
dXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBiYXNlbGluZVRv
Qm90dG9tOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzUGVyY2Vu
dCgpKSB7CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVIZWlnaHQuY2Fs
Y01pblZhbHVlKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkpOwogICAgICAg
ICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQg
aGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2Vk
Rm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9
IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAg
ICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQg
LSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQo
KSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFs
ZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gcGFy
ZW50TGluZUhlaWdodC52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAg
ICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsr
aSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAt
IHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwot
ICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcg
KyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAg
aW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQo
KSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAg
ICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkp
LT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
IGVsc2UgewpAQCAtNTYyLDEwICs1NjQsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRl
VmVydGljYWxPdmVyZgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBp
bnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5zdHlsZSgpLT50
ZXh0U3Ryb2tlV2lkdGgoKSAvIDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaW50
IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQgYm90
dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgCisKKyAgICAg
ICAgICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVU
ZXh0Qm94Kj4oY3VyciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAgaW50IHRvcEds
eXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3Zl
cmZsb3ctPnRvcCA6IDApOworICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBz
dHJva2VPdmVyZmxvdyArIChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDog
MCk7CisKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhPdmVyZmxv
dzsKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5cGhPdmVy
ZmxvdzsKICAgICAgICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0eWxlKCkt
PnRleHRTaGFkb3coKTsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDI5LDMwICsx
MDI5LDQ4IEBAIGJvb2wgSW5saW5lVGV4dEJveDo6Y29udGFpbnNDYXJldE9mZnNldCgKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPElubGluZVRleHRCb3gqLCBWZWN0b3I8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiA+IEZhbGxiYWNrRm9udHNNYXA7Ci1zdGF0aWMgRmFsbGJh
Y2tGb250c01hcCogZ0ZhbGxiYWNrRm9udHNNYXA7Ci0KIHZvaWQgSW5saW5lVGV4dEJveDo6c2V0
RmFsbGJhY2tGb250cyhjb25zdCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxi
YWNrRm9udHMpCiB7Ci0gICAgaWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAgICAgICAgZ0ZhbGxi
YWNrRm9udHNNYXAgPSBuZXcgRmFsbGJhY2tGb250c01hcDsKKyAgICBpZiAoIXNfZ2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxi
YWNrRm9udHNNYXAgPSBuZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisKKyAg
ICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2dseXBo
T3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWlyKFZlY3Rvcjxj
b25zdCBTaW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0OworICAgIEFT
U0VSVChpdC0+c2Vjb25kLmZpcnN0LmlzRW1wdHkoKSk7CisgICAgY29weVRvVmVjdG9yKGZhbGxi
YWNrRm9udHMsIGl0LT5zZWNvbmQuZmlyc3QpOworfQorCitWZWN0b3I8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogSW5saW5lVGV4dEJveDo6ZmFsbGJhY2tGb250cygpIGNvbnN0Cit7CisgICAgaWYg
KCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4gMDsK
IAotICAgIEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gZ0ZhbGxiYWNrRm9udHNNYXAt
PnNldCh0aGlzLCBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpKS5maXJzdDsKLSAgICBB
U1NFUlQoaXQtPnNlY29uZC5pc0VtcHR5KCkpOwotICAgIGNvcHlUb1ZlY3RvcihmYWxsYmFja0Zv
bnRzLCBpdC0+c2Vjb25kKTsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6
aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRo
aXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5l
bmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gJml0LT5zZWNvbmQuZmlyc3Q7
CiB9CiAKLXZvaWQgSW5saW5lVGV4dEJveDo6dGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCitJbmxpbmVUZXh0Qm94OjpHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCogSW5saW5lVGV4dEJveDo6c19nbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcCA9IDA7CisKK3ZvaWQgSW5saW5lVGV4dEJveDo6c2V0R2x5cGhP
dmVyZmxvdyhjb25zdCBHbHlwaE92ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewotICAgIGlmICgh
Z0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIXNfZ2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZhbGxi
YWNrRm9udHNNYXAgPSBuZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CiAKLSAg
ICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IGdGYWxsYmFja0ZvbnRzTWFwLT5maW5k
KHRoaXMpOwotICAgIGlmIChpdCA9PSBnRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCi0gICAgICAg
IHJldHVybjsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3Ig
aXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9w
YWlyKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZp
cnN0OworICAgIGl0LT5zZWNvbmQuc2Vjb25kID0gZ2x5cGhPdmVyZmxvdzsKK30KKworR2x5cGhP
dmVyZmxvdyogSW5saW5lVGV4dEJveDo6Z2x5cGhPdmVyZmxvdygpIGNvbnN0Cit7CisgICAgaWYg
KCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4gMDsK
KyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2ds
eXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChpdCA9
PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBmYWxsYmFja0ZvbnRzLnN3YXAoaXQtPnNlY29uZCk7Ci0gICAgZ0ZhbGxi
YWNrRm9udHNNYXAtPnJlbW92ZShpdCk7CisgICAgcmV0dXJuICZpdC0+c2Vjb25kLnNlY29uZDsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRC
b3guaAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIG9m
ZnNldFJ1bihpbnQgZCkgeyBtX3N0YXJ0ICs9IGQ7IH0KIAogICAgIHZvaWQgc2V0RmFsbGJhY2tG
b250cyhjb25zdCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mKTsKLSAgICB2b2lkIHRh
a2VGYWxsYmFja0ZvbnRzKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7CisgICAgVmVj
dG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMoKSBjb25zdDsKKworICAg
IHZvaWQgc2V0R2x5cGhPdmVyZmxvdyhjb25zdCBHbHlwaE92ZXJmbG93Jik7CisgICAgR2x5cGhP
dmVyZmxvdyogZ2x5cGhPdmVyZmxvdygpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgY2xlYXJH
bHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKCkKKyAgICB7CisgICAgICAgIGlmIChzX2ds
eXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICAgICAgc19nbHlwaE92ZXJm
bG93QW5kRmFsbGJhY2tGb250c01hcC0+Y2xlYXIoKTsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBz
aG9ydCB0cnVuY2F0aW9uKCkgeyByZXR1cm4gbV90cnVuY2F0aW9uOyB9CiAKQEAgLTEyOSw2ICsx
MzgsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNob3J0IG1fdHJ1bmNhdGlvbjsgLy8gV2hl
cmUgdG8gdHJ1bmNhdGUgd2hlbiB0ZXh0IG92ZXJmbG93IGlzIGFwcGxpZWQuICBXZSB1c2Ugc3Bl
Y2lhbCBjb25zdGFudHMgdG8KICAgICAgICAgICAgICAgICAgICAgICAvLyBkZW5vdGUgbm8gdHJ1
bmNhdGlvbiAodGhlIHdob2xlIHJ1biBwYWludHMpIGFuZCBmdWxsIHRydW5jYXRpb24gKG5vdGhp
bmcgcGFpbnRzIGF0IGFsbCkuCiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSW5saW5lVGV4
dEJveCosIHBhaXI8VmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4sIEdseXBoT3ZlcmZsb3c+
ID4gR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisgICAgc3RhdGljIEdseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKiBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludENvbXBvc2l0aW9uQmFja2dyb3VuZChH
cmFwaGljc0NvbnRleHQqLCBpbnQgdHgsIGludCB0eSwgUmVuZGVyU3R5bGUqLCBjb25zdCBGb250
JiwgaW50IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1lbnRNYXJr
ZXJzKEdyYXBoaWNzQ29udGV4dCosIGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHlsZSosIGNvbnN0
IEZvbnQmLCBib29sIGJhY2tncm91bmQpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw3ICsz
NDIsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0CiAgICAgICAg
ICAgICAgICAgbmVlZHNXb3JkU3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJ0LT5jaGFyYWN0
ZXJzKClbci0+bV9zdG9wIC0gMV0pICYmIHItPm1fc3RvcCA9PSBsZW5ndGg7ICAgICAgICAgIAog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+
IGZhbGxiYWNrRm9udHM7Ci0gICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRo
KHItPm1fc3RhcnQsIHItPm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUs
ICZmYWxsYmFja0ZvbnRzKSk7CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3ZlcmZs
b3c7CisgICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1fc3RhcnQs
IHItPm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxsYmFja0Zv
bnRzLCAmZ2x5cGhPdmVyZmxvdykpOwogICAgICAgICAgICAgaWYgKCFmYWxsYmFja0ZvbnRzLmlz
RW1wdHkoKQogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICAgICAgICAgICYmICFpc1NWR1Rl
eHQoKQpAQCAtMzUxLDYgKzM1MiwxNCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpv
bnRhbFBvc2l0CiAgICAgICAgICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CiAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0
RmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmICgoZ2x5cGhPdmVyZmxvdy50b3AgfHwgZ2x5cGhPdmVyZmxvdy5ib3R0b20gfHwgZ2x5cGhP
dmVyZmxvdy5sZWZ0IHx8IGdseXBoT3ZlcmZsb3cucmlnaHQpCisjaWYgRU5BQkxFKFNWRykKKyAg
ICAgICAgICAgICAgICAmJiAhaXNTVkdUZXh0KCkKKyNlbmRpZgorICAgICAgICAgICAgKSB7Cisg
ICAgICAgICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CisgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0R2x5cGhPdmVyZmxv
dyhnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghci0+
bV9vYmplY3QtPmlzUmVuZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCogcmVu
ZGVyQm94ID0gdG9SZW5kZXJCb3goci0+bV9vYmplY3QpOwogICAgICAgICAgICAgcmVuZGVyQm94
LT5jYWxjV2lkdGgoKTsKQEAgLTczNCw2ICs3NDMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlv
dXRJbmxpbmVDaGlsZHJlbihiCiAKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBwb3Np
dGlvbiBvdXIgdGV4dCBydW5zIHZlcnRpY2FsbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICBj
b21wdXRlVmVydGljYWxQb3NpdGlvbnNGb3JMaW5lKGxpbmVCb3gsIHJlc29sdmVyLmZpcnN0UnVu
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5saW5lVGV4dEJveDo6Y2xlYXJHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKCk7CiAKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gU3BlY2lhbCBTVkcgdGV4dCBsYXlvdXQgY29kZQpJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgUmVuZGVy
VGV4dDo6UmVuZGVyVGV4dChOb2RlKiBub2RlLCBQYXNzUgogICAgICAsIG1fbGluZXNEaXJ0eShm
YWxzZSkKICAgICAgLCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0KGZhbHNlKQogICAgICAsIG1faXNB
bGxBU0NJSShtX3RleHQuY29udGFpbnNPbmx5QVNDSUkoKSkKLSAgICAgLCBtX2tub3duTm90VG9V
c2VGYWxsYmFja0ZvbnRzKGZhbHNlKQorICAgICAsIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5k
Tm9GYWxsYmFja0ZvbnRzKGZhbHNlKQogewogICAgIEFTU0VSVChtX3RleHQpOwogCkBAIC0xNDMs
NyArMTQzLDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZgogICAg
IC8vIG5lZWQgdG8gcmVsYXlvdXQuCiAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5
b3V0KSB7CiAgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAg
ICAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgICAgIG1fa25v
d25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzID0gZmFsc2U7CiAgICAgfQogCiAg
ICAgRVRleHRUcmFuc2Zvcm0gb2xkVHJhbnNmb3JtID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+dGV4
dFRyYW5zZm9ybSgpIDogVFROT05FOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIEludFJlY3QgUmVuZGVy
VGV4dDo6bG9jYWxDYXJldFJlY3QoSW5saW4KICAgICByZXR1cm4gSW50UmVjdChsZWZ0LCB0b3As
IGNhcmV0V2lkdGgsIGhlaWdodCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgaW50IFJlbmRlclRleHQ6
OndpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQmIGYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQ
b3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QK
K0FMV0FZU19JTkxJTkUgaW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQm
IGYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29u
c3QKIHsKICAgICBpZiAoZi5pc0ZpeGVkUGl0Y2goKSAmJiAhZi5pc1NtYWxsQ2FwcygpICYmIG1f
aXNBbGxBU0NJSSkgewogICAgICAgICBpbnQgbW9ub3NwYWNlQ2hhcmFjdGVyV2lkdGggPSBmLnNw
YWNlV2lkdGgoKTsKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZW5kZXJU
ZXh0Ojp3aWR0aEZyb21DCiAgICAgICAgIHJldHVybiB3OwogICAgIH0KIAotICAgIHJldHVybiBm
LndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxvd1Rh
YnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMpOworICAgIHJldHVybiBmLndpZHRoKFRleHRSdW4o
dGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZh
bGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogfQogCiB2b2lkIFJlbmRlclRleHQ6OnRyaW1t
ZWRQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsCkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBSZW5k
ZXJUZXh0Ojp0cmltbWVkUHJlZldpZHRocyhpbnQgbAogICAgICAgICAgICAgICAgIGxpbmVsZW4r
KzsKIAogICAgICAgICAgICAgaWYgKGxpbmVsZW4pIHsKLSAgICAgICAgICAgICAgICBlbmRNYXhX
ID0gd2lkdGhGcm9tQ2FjaGUoZiwgaSwgbGluZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4VywgMCk7
CisgICAgICAgICAgICAgICAgZW5kTWF4VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVsZW4s
IGxlYWRXaWR0aCArIGVuZE1heFcsIDAsIDApOwogICAgICAgICAgICAgICAgIGlmIChmaXJzdExp
bmUpIHsKICAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lID0gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgICAgIGxlYWRXaWR0aCA9IDA7CkBAIC02MTMsMTQgKzYxMywxNSBAQCBpbnQgUmVuZGVy
VGV4dDo6bWF4UHJlZldpZHRoKCkgY29uc3QKIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0
aHMoaW50IGxlYWRXaWR0aCkKIHsKICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4g
ZmFsbGJhY2tGb250czsKLSAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxiYWNrRm9u
dHMpOwotICAgIGlmIChmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9rbm93bk5v
dFRvVXNlRmFsbGJhY2tGb250cyA9IHRydWU7CisgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92ZXJm
bG93OworICAgIGNhbGNQcmVmV2lkdGhzKGxlYWRXaWR0aCwgZmFsbGJhY2tGb250cywgZ2x5cGhP
dmVyZmxvdyk7CisgICAgaWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFnbHlwaE92ZXJm
bG93LmxlZnQgJiYgIWdseXBoT3ZlcmZsb3cucmlnaHQgJiYgIWdseXBoT3ZlcmZsb3cudG9wICYm
ICFnbHlwaE92ZXJmbG93LmJvdHRvbSkKKyAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dB
bmROb0ZhbGxiYWNrRm9udHMgPSB0cnVlOwogfQogCi12b2lkIFJlbmRlclRleHQ6OmNhbGNQcmVm
V2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFs
bGJhY2tGb250cykKK3ZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0
aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92
ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewotICAgIEFTU0VSVChtX2hhc1RhYiB8fCBwcmVmV2lk
dGhzRGlydHkoKSB8fCAhbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyk7CisgICAgQVNTRVJU
KG1faGFzVGFiIHx8IHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVyZmxv
d0FuZE5vRmFsbGJhY2tGb250cyk7CiAKICAgICBtX21pbldpZHRoID0gMDsKICAgICBtX2JlZ2lu
TWluV2lkdGggPSAwOwpAQCAtNjUwLDYgKzY1MSw4IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1By
ZWZXaWR0aHMoaW50IGxlYWQKICAgICBpbnQgbmV4dEJyZWFrYWJsZSA9IC0xOwogICAgIGludCBs
YXN0V29yZEJvdW5kYXJ5ID0gMDsKIAorICAgIGludCBmaXJzdEdseXBoTGVmdE92ZXJmbG93ID0g
LTE7CisKICAgICBib29sIGJyZWFrTkJTUCA9IHN0eWxlKCktPmF1dG9XcmFwKCkgJiYgc3R5bGUo
KS0+bmJzcE1vZGUoKSA9PSBTUEFDRTsKICAgICBib29sIGJyZWFrQWxsID0gKHN0eWxlKCktPndv
cmRCcmVhaygpID09IEJyZWFrQWxsV29yZEJyZWFrIHx8IHN0eWxlKCktPndvcmRCcmVhaygpID09
IEJyZWFrV29yZEJyZWFrKSAmJiBzdHlsZSgpLT5hdXRvV3JhcCgpOwogCkBAIC02OTIsNyArNjk1
LDkgQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAgICAg
ICAgbGFzdFdvcmRCb3VuZGFyeSsrOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0g
ZWxzZSBpZiAoYyA9PSBzb2Z0SHlwaGVuKSB7Ci0gICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0g
d2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaSAtIGxhc3RXb3JkQm91bmRhcnks
IGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAg
Y3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkgLSBs
YXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0ZvbnRz
LCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVyZmxv
dyA8IDApCisgICAgICAgICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGdseXBoT3Zl
cmZsb3cubGVmdDsKICAgICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkgPSBpICsgMTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC03MTUsMTMgKzcyMCwxNSBAQCB2b2lkIFJl
bmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAKICAgICAgICAgaW50IHdvcmRMZW4g
PSBqIC0gaTsKICAgICAgICAgaWYgKHdvcmRMZW4pIHsKLSAgICAgICAgICAgIGludCB3ID0gd2lk
dGhGcm9tQ2FjaGUoZiwgaSwgd29yZExlbiwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAmZmFs
bGJhY2tGb250cyk7CisgICAgICAgICAgICBpbnQgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIHdv
cmRMZW4sIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92
ZXJmbG93KTsKKyAgICAgICAgICAgIGlmIChmaXJzdEdseXBoTGVmdE92ZXJmbG93IDwgMCkKKyAg
ICAgICAgICAgICAgICBmaXJzdEdseXBoTGVmdE92ZXJmbG93ID0gZ2x5cGhPdmVyZmxvdy5sZWZ0
OwogICAgICAgICAgICAgY3Vyck1pbldpZHRoICs9IHc7CiAgICAgICAgICAgICBpZiAoYmV0d2Vl
bldvcmRzKSB7CiAgICAgICAgICAgICAgICAgaWYgKGxhc3RXb3JkQm91bmRhcnkgPT0gaSkKICAg
ICAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IHc7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUoZiwg
bGFzdFdvcmRCb3VuZGFyeSwgaiAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1cnJN
YXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgICAgICAgICBjdXJyTWF4V2lk
dGggKz0gd2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaiAtIGxhc3RXb3JkQm91
bmRhcnksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92
ZXJmbG93KTsKICAgICAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5ID0gajsKICAgICAgICAg
ICAgIH0KIApAQCAtNzc0LDYgKzc4MSw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0
aHMoaW50IGxlYWQKICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggPSAwOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gZi53aWR0aChUZXh0
UnVuKHR4dCArIGksIDEsIGFsbG93VGFicygpLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgpKTsK
KyAgICAgICAgICAgICAgICBnbHlwaE92ZXJmbG93LnJpZ2h0ID0gMDsKICAgICAgICAgICAgICAg
ICBuZWVkc1dvcmRTcGFjaW5nID0gaXNTcGFjZSAmJiAhcHJldmlvdXNDaGFyYWN0ZXJJc1NwYWNl
ICYmIGkgPT0gbGVuIC0gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEFTU0VSVChsYXN0
V29yZEJvdW5kYXJ5ID09IGkpOwpAQCAtNzgxLDYgKzc4OSw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6
Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChmaXJz
dEdseXBoTGVmdE92ZXJmbG93ID4gMCkKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy5sZWZ0ID0gZmly
c3RHbHlwaExlZnRPdmVyZmxvdzsKKwogICAgIGlmICgobmVlZHNXb3JkU3BhY2luZyAmJiBsZW4g
PiAxKSB8fCAoaWdub3JpbmdTcGFjZXMgJiYgIWZpcnN0V29yZCkpCiAgICAgICAgIGN1cnJNYXhX
aWR0aCArPSB3b3JkU3BhY2luZzsKIApAQCAtMTA1Niw3ICsxMDY3LDcgQEAgdm9pZCBSZW5kZXJU
ZXh0OjpzZXRUZXh0KFBhc3NSZWZQdHI8U3RyaQogCiAgICAgc2V0VGV4dEludGVybmFsKHRleHQp
OwogICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAgIG1fa25vd25O
b3RUb1VzZUZhbGxiYWNrRm9udHMgPSBmYWxzZTsKKyAgICBtX2tub3duVG9IYXZlTm9PdmVyZmxv
d0FuZE5vRmFsbGJhY2tGb250cyA9IGZhbHNlOwogICAgIAogICAgIEFYT2JqZWN0Q2FjaGUqIGF4
T2JqZWN0Q2FjaGUgPSBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCk7CiAgICAgaWYgKGF4T2Jq
ZWN0Q2FjaGUtPmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCkBAIC0xMTIyLDcgKzExMzMsNyBAQCB2
b2lkIFJlbmRlclRleHQ6OnBvc2l0aW9uTGluZUJveChJbmxpbmVCCiAgICAgbV9jb250YWluc1Jl
dmVyc2VkVGV4dCB8PSBzLT5kaXJlY3Rpb24oKSA9PSBSVEw7CiB9CiAKLXVuc2lnbmVkIFJlbmRl
clRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJvb2wg
Zmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMp
IGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25z
dAogewogICAgIGlmIChmcm9tID49IHRleHRMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIDA7CkBA
IC0xMTMwLDEwICsxMTQxLDEwIEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVk
IGZyb20KICAgICBpZiAoZnJvbSArIGxlbiA+IHRleHRMZW5ndGgoKSkKICAgICAgICAgbGVuID0g
dGV4dExlbmd0aCgpIC0gZnJvbTsKIAotICAgIHJldHVybiB3aWR0aChmcm9tLCBsZW4sIHN0eWxl
KGZpcnN0TGluZSktPmZvbnQoKSwgeFBvcywgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIHdp
ZHRoKGZyb20sIGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4UG9zLCBmYWxsYmFja0Zv
bnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAotdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5z
aWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAordW5zaWduZWQg
UmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250
JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIEFTU0VSVChm
cm9tICsgbGVuIDw9IHRleHRMZW5ndGgoKSk7CiAgICAgaWYgKCFjaGFyYWN0ZXJzKCkpCkBAIC0x
MTQzLDE4ICsxMTU0LDE5IEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZy
b20KICAgICBpZiAoJmYgPT0gJnN0eWxlKCktPmZvbnQoKSkgewogICAgICAgICBpZiAoIXN0eWxl
KCktPnByZXNlcnZlTmV3bGluZSgpICYmICFmcm9tICYmIGxlbiA9PSB0ZXh0TGVuZ3RoKCkpIHsK
ICAgICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBy
ZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRoaXMpLT5jYWxjUHJlZldp
ZHRocygwLCAqZmFsbGJhY2tGb250cyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFj
a0ZvbnRzLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2tub3duTm90VG9V
c2VGYWxsYmFja0ZvbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZ2x5cGhPdmVy
Zmxvdyk7CisgICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3du
VG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cykgeworICAgICAgICAgICAgICAgICAg
ICBjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZXaWR0aHMoMCwgKmZhbGxi
YWNrRm9udHMsICpnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxi
YWNrRm9udHMtPmlzRW1wdHkoKSAmJiAhZ2x5cGhPdmVyZmxvdy0+bGVmdCAmJiAhZ2x5cGhPdmVy
Zmxvdy0+cmlnaHQgJiYgIWdseXBoT3ZlcmZsb3ctPnRvcCAmJiAhZ2x5cGhPdmVyZmxvdy0+Ym90
dG9tKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmRO
b0ZhbGxiYWNrRm9udHMgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB3ID0gbV9tYXhXaWR0aDsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHcg
PSBtYXhQcmVmV2lkdGgoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB3ID0gd2lkdGhG
cm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAgICAg
IHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOwogICAgIH0gZWxzZQotICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRl
eHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxi
YWNrRm9udHMpOworICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFjdGVy
cygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMsIGdseXBo
T3ZlcmZsb3cpOwogCiAgICAgcmV0dXJuIHc7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5o
CShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdGV4dExl
bmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC5sZW5ndGgoKTsgfSAvLyBub24gdmlydHVhbCBp
bXBsZW1lbnRhdGlvbiBvZiBsZW5ndGgoKQogICAgIHZvaWQgcG9zaXRpb25MaW5lQm94KElubGlu
ZUJveCopOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCBsZW4sIGNvbnN0IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCB3
aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGlu
ZSA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIGxlbiwgY29uc3QgRm9udCYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0Owor
ICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBp
bnQgeFBvcywgYm9vbCBmaXJzdExpbmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGlu
ZUJveCA9IGZhbHNlKSBjb25zdDsKIApAQCAtMTMzLDcgKzEzMyw3IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIElubGluZVRleHRCb3gqIGNyZWF0ZVRleHRCb3goKTsgLy8gU3ViY2xhc3NlZCBi
eSBTVkcuCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdpZHRo
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpOworICAgIHZv
aWQgY2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93Jik7CiAKICAgICAvLyBNYWtlIGxl
bmd0aCgpIHByaXZhdGUgc28gdGhhdCBjYWxsZXJzIHRoYXQgaGF2ZSBhIFJlbmRlclRleHQqCiAg
ICAgLy8gd2lsbCB1c2UgdGhlIG1vcmUgZWZmaWNpZW50IHRleHRMZW5ndGgoKSBpbnN0ZWFkLCB3
aGlsZQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZVRleHRC
b3hlcygpOwogICAgIGJvb2wgY29udGFpbnNPbmx5V2hpdGVzcGFjZSh1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCBsZW4pIGNvbnN0OwotICAgIGludCB3aWR0aEZyb21DYWNoZShjb25zdCBGb250Jiwg
aW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdDsKKyAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29uc3Qg
Rm9udCYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyopIGNvbnN0OwogICAgIGJv
b2wgaXNBbGxBU0NJSSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBbGxBU0NJSTsgfQogCiAgICAgaW50
IG1fbWluV2lkdGg7IC8vIGhlcmUgdG8gbWluaW1pemUgcGFkZGluZyBpbiA2NC1iaXQuCkBAIC0x
NzEsNyArMTcxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9y
IHJlbW92ZWQpLgogICAgIGJvb2wgbV9jb250YWluc1JldmVyc2VkVGV4dCA6IDE7CiAgICAgYm9v
bCBtX2lzQWxsQVNDSUkgOiAxOwotICAgIG11dGFibGUgYm9vbCBtX2tub3duTm90VG9Vc2VGYWxs
YmFja0ZvbnRzIDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dB
bmROb0ZhbGxiYWNrRm9udHMgOiAxOwogfTsKIAogaW5saW5lIFJlbmRlclRleHQqIHRvUmVuZGVy
VGV4dChSZW5kZXJPYmplY3QqIG9iamVjdCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU3MTk1KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTAtMDQtMDYgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0IHJlcGFpbnRpbmcgZG9l
cyBub3QgYWNjb3VudCBmb3IgZ2x5cGhzIHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBo
aWMgYm91bmRzIG9mIHRoZSBmb250ICg2Mjc0KS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY2
NDk3MzQ+CisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjI3ND4KKworICAgICAgICAqIGZhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNy
aXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9m
YXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wNC0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvc3RyaWN0LmR0ZCI+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisgICAgZGl2LnRlc3QgeyB3aWR0aDogMjAwcHg7IGhlaWdodDogMTIwcHg7IGJv
cmRlcjogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmc6IDEwcHg7IH0KKzwvc3R5bGU+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICBmdW5j
dGlvbiByZXBhaW50VGVzdCgpCisgICAgICAgeworICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3RhY2tlZCcpLmlubmVyVGV4dCA9ICIiOworICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKTsiPgorPHA+PGI+QlVH
IElEOjwvYj4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYyNzQiPiBCdWd6aWxsYSBidWcgNjI3NDwvYT5UZXh0IHJlcGFpbnRpbmcgZG9lcyBub3QgYWNj
b3VudCBmb3IgZ2x5cGhzIHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBoaWMgYm91bmRz
IG9mIHRoZSBmb250LjwvcD4KKworPHAgaWQ9InN1Y2Nlc3MiIHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOnBhbGVncmVlbjsgcGFkZGluZzozcHg7Ij48Yj5URVNUIFBBU1M6PC9iPiAKK1RoZSB0ZXh0
IHdpbGwgZW50aXJlbHkgZGlzYXBwZWFyLgorPC9wPgorCis8cCBpZD0iZmFpbHVyZSIgc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6I0ZGMzMwMDsgcGFkZGluZzozcHg7Ij48Yj5URVNUIEZBSUw6PC9i
PiAgCitNb3N0IG9mIHRoZSB0ZXh0IHdpbGwgYmUgZ29uZSwgYnV0IHNvbWUgYXJ0aWZhY3RzIHdp
bGwgYmUgbGVmdCBiZWhpbmQgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZS4KKzwvcD4KKworPGRpdiBj
bGFzcz0idGVzdCI+CisgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzNnB4OyIgaWQ9InN0YWNr
ZWQiPiYjeDFFQTY7JiN4MUVBNDsmI3gxRUFBOyYjeDFFQTg7JiN4MUVCMDs8L2Rpdj4KKzwvZGl2
PgorPGJyPgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQt
ZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLmNo
ZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitjZTliZTg2Y2ZiOTQzM2E2NGZjNjVm
ODcxMGIwMjA1NgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0
YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4MzE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgzMTYK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjkyCisgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYKKyAgICAgICAgUmVuZGVySW5saW5lIHtC
fSBhdCAoMCwwKSBzaXplIDYyeDE4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNjJ4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYyOiAi
QlVHIElEOiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2MiwwKSBzaXplIDR4MTgK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjIsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRl
cklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxMTd4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2NiwwKSBzaXplIDExN3gxOAorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDY2LDApIHdpZHRoIDExNzogIkJ1Z3ppbGxhIGJ1ZyA2Mjc0IgorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE4MywwKSBzaXplIDc3N3gzNgorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxODMsMCkgd2lkdGggNTk0OiAiVGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFj
Y291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5k
cyBvZiB0aGUiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDI5OiAiZm9udC4i
CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNTIpIHNpemUgNzg0eDI0IFtiZ2NvbG9yPSM5
OEZCOThdCisgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA5MXgxOAorICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywzKSBzaXplIDkxeDE4CisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCA5MTogIlRFU1QgUEFTUzoiCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoOTQsMykgc2l6ZSAyMDN4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoOTQsMykgd2lkdGggNDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDk4LDMpIHdpZHRo
IDE5OTogIlRoZSB0ZXh0IHdpbGwgZW50aXJlbHkgZGlzYXBwZWFyLiIKKyAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMCw5Mikgc2l6ZSA3ODR4MjQgW2JnY29sb3I9I0ZGMzMwMF0KKyAgICAgICAg
UmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDkweDE4CisgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgzLDMpIHNpemUgOTB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgz
LDMpIHdpZHRoIDkwOiAiVEVTVCBGQUlMOiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICg5MywzKSBzaXplIDU2MXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg5MywzKSB3aWR0aCA0
OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoOTcsMykgd2lkdGggNTU3OiAiTW9zdCBvZiB0
aGUgdGV4dCB3aWxsIGJlIGdvbmUsIGJ1dCBzb21lIGFydGlmYWN0cyB3aWxsIGJlIGxlZnQgYmVo
aW5kIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMTMyKSBzaXplIDIyMngxNDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKV0KKyAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDExLDExKSBzaXplIDIwMHgwCisgICAgICBSZW5kZXJC
bG9jayAoYW5vbnltb3VzKSBhdCAoMCwyNzQpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDAsMCkgc2l6ZSAweDE4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpD
YW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlw
ZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0
ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9v
Y3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9K
d0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJK
NGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8r
QUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdB
Qk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3
ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1
ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkK
RUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhw
T2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZ
WUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFE
VWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNU
eisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4
ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZN
WGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZm
bFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5W
Z1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVl
ZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4
Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldM
cGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhB
ZUl1SkFBQWcKQUVsRVFWUjRBZXpkWjdja3gzMG42R3dEN3gzaENPOUprQVNOYUNXS1hIRjBWbWUw
WEo3VkMramo2T01NejV4NU0zTzBSeXZ0akhaRQprVU9LSXVnSkFvUW52UGUyemVZdmIwZDNkcUlx
TStybXZiZXJxNThnRytVaUl5T2VpTXlLZjVxNisrNi8vLzZqalVTQUFBRUNCQWdRCklFQ0FBSUU5
RU5pL0IrdXdDZ0lFQ0JBZ1FJQUFBUUlFQ0hRQ0FoQURnUUFCQWdRSUVDQkFnQUNCUFJNUWdPd1p0
UlVSSUVDQUFBRUMKQkFnUUlDQUFNUVlJRUNCQWdBQUJBZ1FJRU5nekFRSElubEZiRVFFQ0JBZ1FJ
RUNBQUFFQ0FoQmpnQUFCQWdRSUVDQkFnQUNCUFJNUQpnT3dadFJVUklFQ0FBQUVDQkFnUUlDQUFN
UVlJRUNCQWdBQUJBZ1FJRU5nekFRSElubEZiRVFFQ0JBZ1FJRUNBQUFFQ0FoQmpnQUFCCkFnUUlF
Q0JBZ0FDQlBSTVFnT3dadFJVUklFQ0FBQUVDQkFnUUlDQUFNUVlJRUNCQWdBQUJBZ1FJRU5nekFR
SElubEZiRVFFQ0JBZ1EKSUVDQUFBRUNBaEJqZ0FBQkFnUUlFQ0JBZ0FDQlBSTVFnT3dadFJVUklF
Q0FBQUVDQkFnUUlDQUFNUVlJRUNCQWdBQUJBZ1FJRU5negpBUUhJbmxGYkVRRUNCQWdRSUVDQUFB
RUNheGVBZlBEQkI4M2JiNy9kSEQxNjlIanZ2UC8rKzhlZmU5STBIM3h3dEhucnJTUEhLUTRmClB0
cTgvUEx5MThjelZqejU2S09qemJ2dm5yQ3ZXR1JIczJUOWFjdWhReWZYSVczT3Y3bnBWTFp0YnQx
M1l2bHNYMis5OWRhMmk1cTcKL0tvclBuTGtTUFBtbTIrdXVwajhwMGdnKytvWFhuaWgzVlkvMkpN
YUhENTh1TjFmdkx4ajYvcm9vNC9hL2QrN08xWmViVUZUNjExbAp1NXNxYTZwT1o4bzJOMlc2a3c1
eisyU3F6emJwOHltcnFYNGJzNWdxZTJ6WjNmaHNKOGZZb3ZxdHNqOCtGVFlIRjFXNi85NlRUejda
Ci9Qclh2MjdlZWVlZDd1MVBmT0lUelhubm5kZTg4Y1lielNXWFhOTGNlKys5ellVWFh0aDk5dGhq
anpXLytjMXZtdmZlZTY5N2ZjVVYKVnpSMzMzMTM4OGxQZnJJTEtuNzFxMTgxZi96akg1dnJycnV1
K2RLWHZ0U1ZrNHpwaE4vLy92Zk40NDgvM24xMjhjVVhONisvL25xMwp6QVVYWE5DY2ZmYlp6V2Mv
KzltdXpQNS9VcmZmL3ZhM3h5ZFU1NTkvZm5QUFBmYzArL2Z2YjdLdThpVjQ1WlZYZG5WTkcxTDM1
TG5vCm9vdjZSVTArZis2NUk4MUREeDF1djF5UE5tMzFtc3N1MjkvczI5ZDAveTY5ZEY5eisrMzcy
L1cyYit4QitzMXZEamN2dm5paythdS8KT3J0NTVaVWp6VTkvZXFoSmpQYTk3MzM4OVNyVmVlU1J3
ODNQZjM2NHRUN1EzSFhYZ1ZVV25aMzNqVGVPdE9Qc2NQT0pUK3h2YnJoaApmM1B3NEpibHE2OGVh
ZnN5N1QzYUJxVk4rOW0rNWl0Zk9kZ2NPTEN2SFRkSG0vLzZYejlxKy9uanEvL3VkODlxKy9yay9u
aisrU1BOCmozOThxSFBLRXYveUwvL1NUVjR5VHM4NjY2eHViR1lNWFg3NTVhM24rOTFuWC83eWw1
dGJicm5sNHlzNFRkL0o5dm5paXkrMlkrZXYKdHRXQ3VjdXZzdEpYWG5tbEhkcy83ZnJtTC83aUwx
WlpWTjVUSVBEb280ODJDUWl5My8zeGozL2MvUFZmLzNXN25lN2VmcVNNajJ5cgozL3ZlOTJhM09O
OG5HVytmK3RTbnVuK3pDNndzb0dhOXRkdGRUVmxqMVNxbTJSOXUralkzWnJxVERuUDdaS3kvTnUy
ekdxdXhmaHZ6CmVPU1JSOXI1emMrN3VlUmRkOTAxbG5WUFB0dkpNYmFvd3F2c2oydmNGNjFqN251
VEFjaE5OOTNVSkRMNjJjOSsxcTNyTTUvNVRKTUoKL1M5Lytjc3VhSGo2NmFlYjczNzN1MTJRY091
dHQzYUJ5dTkrOTdzdTd4ZSs4SVZ1TXBjWENWSysvdld2TjMvLzkzL2ZmTzFyWDJzbgptRnVyUG5U
b1VQTS8vK2YvN0NaN2YvcW5mOXBjZi8zMTNiTDV6N1BQUHR2ODhJYy9iQ2ZEaXdkTDZwYVVMN3Vr
QkR1MzMzNTc5enhICnNSS2NKUDNKbi94Skd6UmMzTFhqSC8veEg1dGdKNkJaVm02MzBPQS8xMTY3
di8weWJkb0E1RkJ6NjYwbkp1aXZ2WGFrK2UvLy9WQWIKa0IxdDF6UEpPU2gxZXkvdnZmZEE4K0dI
V3lldnJyaGlmM1B6elFmYXZqamNGVFo4dmNvYWJyLzlRQnRBYnBXenluSno4ejc2Nk9IbQpkNzg3
M0h6NzJ3ZmJjWExpcEZ6T2hpUW91ZU9PL1czUXNiLzV3eDhPTnc4K2VLVHR5OE50NEh1d0RSaU9k
SjlkYzgxVzM2UWU2WWVICkh6N3lzZURqd3crUGRvRk03OFJhRi9qKzVWLys1ZkVBK2ovLzUvL2NC
a0NmYU5mMWxhNUpEejMwVUpkbmJ2dktVZHFycjc1NmJsR3oKbDg4Qmd3OC8vTEM2bkdIZFYxMitl
a1VMTWlZd3ZPcXFxMDY3TXlCRHN3Vk5PKzNlbW1wVDl1UDVjditidi9tYjlxRE12dWJhYTYvZAox
ZUFqZ0JrZk45OThjL2M5dEJPZytUNHAzeGs3VVY1dEdUWHJyZDN1YXNvYXE5ZnB1czMxMnpRMVZr
dmVNZE81RHYwNnpPMlRVdC95CjJDKzd2TGNwanpWV1kvMDI1cEM1WVlLWGRVbHp4OWhZTzJyMngv
MXhWT00rdHI3dGZuWml0amRTd2pubm5IUDgwM3k1SkYxNjZhWGQKWXhxUnN4VWw5Zk9lZSs2NTVl
M2pqem56VUlLUHZKa3pGVG1GbmdDaEgzemtzNXdweVdBYlN6azdVbEwvZVk3Z2xKUXpJa2w1TDhG
SQp6cmo4NGhlLzZDNFZLSGxxSGt1Unh3aTZSWEltNVBMTDkzVm5KR3JLR09icFgybzIvR3paNjNQ
TzJkZWV3VG5SZFdsZXYwN0QxNldjCm5ER1lTc3VXblZwdStIbHR1MTU2NlVnYjNCNXVnOUtUZzQr
VTk4b3JSNXN2Zi9sZ095NE9kQUhGWno1em9BMFdtbmE4YkxYanlpdjMKTjUvKzlNRjJJcksvSFk5
Yi85NTY2MmliLytRekh5a3JBYzV0dDUwd3kzc0pRTXZadTd3ZXB0dHV1NjBibDhQM1YzbWRzZmFU
bi95awpHK09yTEZlYmQ4dzU2eDZtYkorMVovOFcxWDJWNWZ2ckhxdG5QMTk1WHZKbjJ5MzduUExa
M01kUzl0eHlGaTIveUd4UnZyeTNxSCtXCjVUMlY3OWUwS2Q4QnlWZjZLZ2VwZGpJdDY3TTU0Mk5S
bWVXN1lxcnVpNWFkV21iczg2bjFyckxkVFpXMXJCNmxUYXVZcnRzWUhodXIKcFgybC9jdE1TNzVW
SEVxWmVWeFVoKzMyU2IvY1pXVVA4NHk5TG0wYnk3UHNzKzBzT3pVK0ZwVTVaYldzMzViVnUvLytk
dnUwWDhaTwpQQy90WGxhZjh2bDIxelcxUDk3Tk1icEtuYmQ5eUw1Y2Q1c0pYSTVTYmlmbDFQa2Yv
dkNIYnRGbFI0ZHpWbU1ucndHLzdMTExqbGMxCloycktlcDkvL3ZubTMvLzkzN3N6S0ZsbmJjcTlD
bSsrZWJROUszSmljdnZVVTF1WE10MXp6NEhtempzUHRHZGNEbmRuRnE2K2VuOTcKNlZrNTgzTzBQ
WXQwdUVtTTl0SkxSOXN6U0Z1WGRWMTU1YjUyVXJ5dnZUem9VSHVtYVY4YnJEWHRXYVdqM1pIOSsr
NDcyRTYwOXpWUApQSEdrZWVhWkk4MTN2bk1peUJxcjd3c3ZIR2xlZlhWcjBwN2x2dlNsQTkyRWZk
a3lhZE12Zm5Hb1c4LzU1KzlydnZyVkErMUVmSDh6CnQxMVhYWFhDcUt6N2YvMnZRMjBBc2ErN3ZP
cmhodyszbDhydGEvdGtLMS9PYlBSVEpqY1hYN3p2K05tTkN5NzRlS0R4ekROSHUvcjIKbDR0L3lz
b1psWDdLVWRxeGxFQzVqTzJNMVFjZmZMQjU3YlhYMnZ0VERqVTV1NWRKMXF1dnZ0b0YwYm5zOEl0
Zi9HSVhYUC9idi8xYgpGOXprMHEySEgzNjQ3YXRudXNzRWMyOVR5VlBXbStWenFqUTcxYXd2WjEy
KytjMXZOcm4wY05INk1rNXpxV0sydSt4RThqdzdzVndxCmRzMDExM1RGNWhyOGxKdVVkZWR5eHh3
d1NCMmZlT0tKN3IzdmZPYzdYUUNlZGVleXN4d0F5UGFRc3JMK2xEK3MrNmMvL2VudU1yV1UKV2JO
ODFoK3JuQzNOd1lpWFhucXBPMU9hYlRCMnhUYjVTa3IrSEJ6SXBaS3BieTcxN0YvR2s3T3hPV2lS
ZXNZelRqbWJXUTVxTE91bgpsUC9VVTA5MVozOVNSbWxEV1c5NWpOMllTZktOMVdGb051enZMTCtz
Zi9KWjJwOSt5TUdTakxWY0RsajJSMk9mamRVcDdjN1ppVng2CmV1ZWRkM1puZ0hNa01QdStqSTJw
TmsrMUtWNDVFNTR2elp3cFQzL2RkOTk5bzA3THhuMk9DdmJUS3VNblo3WmpsekdSOVpkTGViTmYK
ejVuNzFHOXEyeW5yem1YSHladCsrTE0vKzdQakJ5cHF4bEFzY2lsWHhuZTJ5NHkxak9tTSs0eUhI
QURJZHA1ODMvcld0MDRhMzR2VwpPOXh1VThleHNURFZodko1ZVV4Wnk3YTVaZjJVWlJidFkrYTB2
ZFJuemxoZU5GWnpKVVhPK3ZhMysyV215eHhTdDdGOVM2bDdIaGZWCm9YeStxSC96MlhiTHpoakxX
Sm96NXNlOFU3ZXhiVERiK3FMdnIyWGpvK2I3Syt0TVdtUzFyTitXN1RPM1NqcjV2Mlc4NTdzdzMz
MWYKL2VwWHUzMUZjbzFaek4yUHB2eXk3bVhmYnpYN2w2bDZMdHNmWjdtU2RuT01sblhVUEo0OHc2
dFlJdGVQWjJLVW5mMGRkOXpSWFNkYQpqbnBWTEg1U2xrd3VTc29FYkZGSzJiblhaS2RTdmxBeTZK
TDZnVTNhazN0RVNrQTB0cjdYWGp2YVRjWWZmUEJ3OHovK3g2RnV3cHhBCm82UWJienpRblpFb04x
TGZkTk9CZGdleHI5MEpucGdBUC83NGtmYUxwK21PNE45MzM0RjJZcmYxV2FxV204cnZ2bnQvKzJW
MXNMc2YKbzUxbnRST3NmZTBFYzE5WGJnS1NIT212U1Nuckp6ODUxSjJsU1VDVU1uNzcyL0hMcko1
ODhrajc1Ym12T3l1Ukc3OFREQjFwejU3TQpiZGV3dm0rL2ZhU2RaRzY5bTB1bmNvTjQxdlhBQTRl
R1didlhtVUM4L3ZySndWNC9ZOHFMK1NXWG5CaldLVE1CNGpDWTZTODM5YndjCkxjalp1RzkvKzl2
ZHBQQmYvL1ZmdXkrMVRCQXpzY3RZeXRuQVhQK2V3S1BjTjVMSll5YmZOOXh3UTNkcFY1a29sM1dt
N053WDlkeHoKejNVVGsrVExHTTFaazBYcnkrUWxFOGFNMTV3aHpHV04yWFlTOUNTbERsbTIxQ3RC
U2Jtc0pOdFN4bmk1Q1QzYlZTYTUrWUpPSGRPMgpwR3pmU1l2cXZzcnlLU09UdUh4SkpYakpwREJ0
VFNyYllQZWk5NThmL2VoSDNXVnd5Wi9KV29LTWZ2ckJEMzdRWFhyeitjOS92dm5HCk43N1JuaVY3
cGNreVNXUDlsTTl5bjFsT3c2ZS9NdEZkZEpScHlpVHJHYXZESXJNc1U5SlkveVJQTGpsTnY2YU9L
U3ZCVzVub2pYMDIKVnFjYmI3eXhPek9STDcra25HN1BoS1ZjaWpmVjVxazI1VXhoTHI5TlNwK2xu
NVBHNnJSbzNQZlBZSGNGdFA5WlpmeWtYZGtXVW5hQwpqNlE4NXNzK3dkYlV0dE10MFA0bll6U1hZ
aWJJemhncDIwUHRHTW85ai9GTmUvSXYrNElZWjh5WHM0OTVqRmsvdUY2MjN1RjJtM3FPCmpZVjh2
cXlzZkRaTVk5dmNvbjdLUG16WlBtYTdiZS9YYVd6Y1RJM2w0VmpOZ1lwRjIvMGkweW1IWmZ2a2Z0
M3pmRmlIc3M5ZjFpY3gKM203WkdVTnp4L3lZZDlvenRnMnVPajdtYm9PTCttMXFXMGdiK2luZm5R
bmNjaXRBdnE5ekwyamFrVFJtTVRYMnB2YWpLWDlxakMwYQpxMWx1bU1icXVXeC8zQzlqTjhkb2Z6
MVR6MC9NMUtaeTlqN1BUam1UcEJ6dGVLS05JcmViK3I4MjB0OFJiN2U4MnVYeWhaU1V3VmNtCklk
bVFjNFFxWC94VHFXMStkOVAzNjY4ZmFSK1BkcFB6Zm5DUjVSTmM5RlBPWlBSVHptS1VxOGR5K1ZE
N3ZkbWxDeTdZMzA0Rzk3V1gKRVcxMXpXT1BIV2tuaVVmYkwvWUVOZnU2ejNLV29EYTErOS8yUndC
eWVkTFdNcmw4S3hQeXNaUjdTbkxaVTg1RWZPNXpCOXBKYTQ3YQpiaTB6cDEzRGRhWmRTUW5BY3Y5
Snp2RGNjMC91OVRqU0Job2Z2M3pvNmFlUHROZVc1NUszeGNQMjZhZHorZFdKejlLM3VmUXFnZGVj
CmxDK09wQnpCVDZDUXlYckdUbDRuWlhLVHdDRkg1ck05SkRBZnB2VGRvcFF6QVprazVWL0t5Qkhw
QkFWSmk5YVhpVTBtTXBta1ppZWEKaVZKMnBEa3lsQ0FvWDdpWkJKUkxKUFBsVkFMdDFEczd5Wkx5
T21jNmtqZmxwZXlVVndLVWtxL1VmVHZMeDZOTUxMT2UxQ2NwNnhxbQpuRldOYnptVGsvV21YaVhs
czVqa2l5QXBiYzNrTHU5bjJiRit5cEd0bkpaT3NKV1VuWFRaOXJzM2p2MW55bVNxRHFXc1lsWmVs
OGV4Ci9rbGdtYjR2WndFU1JHWkNINnV4ejJycU5OeS9sa2xSNmpYVjVsTDNaVzBxbi9jZnArcTBh
TnlYeVhtL25GWEdUNWJMR1o1WWxjQTEKNDZLYzZaemFkc3A2a3ovYmRMYXpiQTlsKzZrZFF5a240
ekpIZThzWXk1ak9tWkF5MFVrZHM3MzMwN0wxRHJlN3NiRlF5bHRXVnZtOApQRTV0YzR2NktmdXFa
ZnVZbEx1ZHRwZjZUSTJiNUJzYnk2V2NNbGFYOWRuUWRNcGhiTjlTMWpsOExIVW83eS9yazdsbHp4
bnpOZDVqCjIrQ3E0MlB1Tmpqc3Q1cHRvZmlYeDV0dnZybWRKMXpmYmVPZis5em51b055S2FmR1lt
enNUZTFIcDhiWXNyRmE2bDBlYStwWjhrNDkKN3VZWW5WcDNQajh4VzZ2SjNlYkpEam0vRXBJYnhq
UHB5Ukc2bkFMY1RzcmtwNlQrcENkZndqbUZuUnZHeTc4YzRjM1J3NTFJbVR3bQpaV01vSFpESlhH
NUlMamV4ajYwbjkzemtqTWZYdm5aVzh4Ly80MW50a2Z1bStlZC8zanBMTUxaYy83TUVKTG5Ib2FR
RUhia1VLU2xuCk8vSXZaeC95QzFENWhhMytwSHZKWExZVWRkSmoydmVGTHh4c1R5M21TTjdXcjJl
MWM3SFIxTWFXeDFPcFUrMFpsN0YySFMvMDJKTnkKTC9SRkY1MlluT2NYc0pMS0pXUEhzblpuajNM
VCtlYy92enlZeU9WbC9RRGtrVWVPTkRmZmZPSVh0VXBacXo3bUtIc216cGs4NWw5Mgp1bi8rNTMv
ZUJheWxyQnoxelJoT0VKczhxNlRzMU1yRVBNdlZySytNMitUUGhDQUhCRExoMmVydkwzU25rblBr
Tm1jc3MyTXJxYjljCjNodStUamxqMjlrdy8vRDFjUGxNZE5PZWtyS1RMaFBzOGw1NVRIQ1JTV2dK
V1BKK2Y2S2NNd0dsSDhveXBhenNNOGJjc2x3bVRUbHkKbE11RU1ybGMxazlqYlpxcVE2blhzc2VV
bmN2MzBpZkQva243TTdiNjY4LytLSFVmKzJ4dW5WTFgvanJ6ZXRpUGVXK1ZWRk9uNGJoZgpWUDRx
NHlmTEoyQk4zK1l5aEtRRW5PbjNmdXEzdGIvdGxEejl6ek1XeTVtalZjWlFndVQrUVlxYzdjOTJs
WWxPSGhPWTlNZDIxcjFzCnZjUFB4c2JDVkJ2SzUrVnhhcHRMdm1FL3BaN0x4bkR5YjZmdFdTNnBa
dHhzNWF6NzcxaWY5YjJuSE1iMkxYVTFXZDYvYzh1ZU0rWnIKdktlMndWWEhSN3o2OXF0c2c4Tmxh
N2FGWWY5azMxWlMrZjdJZDNlTlJWbHUyV08vWGNuVDM0OU9qYkd4c2RwZjMwN1VzMTllLzNtLwov
djE5Mzl3eDJsOUgvL25ndUh6L28vSG5tV2hsWUdibm5GTmE1UmVsK3AyN2FDSlRqZ2lsOUF5OGt2
cVhZNlhzN09EKzIzLzdiOTFPClBJRkNycVhkcVZRQ2tIelp6MDM1T2RoTW1uTS9SMzZxTjJjT2Fs
Sis1amFYUnVWSWY4NHE1RjkrZ3JhZkVueTArL3IyK3VXNk12dkwKOXAvbjUzVno0L2FYdjN5Z2FY
OHB1ZDNRNmdPNW5KRkpVTkhiWnZ0RmYreDVUYnZLUXVVZWpsd21kZmJaVzBGSTduOUptNDlkTFZL
eQpkcitHbFRNazhWNlVjaWJxN2JlUHRoTzRFNS9uN0ZIZUt5bG5XZlB2di95WEQ3dGZ6L3JzWit1
R2Y4WkxOc3h5Wkw2VTEzL01aRFk3CmtKeEN6ZG0wL2lTNm42L21lYzM2aHVXa2ZtVkNuWjhiek5H
V2JEUDVhZXpzc0U1VnluNGhseGZrN0VPK3FQSXZCekVXcFp3UkxaY0YKOVQ4dk84WHNhOHExM0dV
L2t6TTYrVHo3bWltM1hPdWJzNSs1L2pVQlM0TElVazUvZldQUHArb3d0bXo1YkZuLzVEcncvbjZ3
NU0vagoyR2M3VWFmK3VuYmkrVTdWYVpYeGszcG5HMGpRbG9OaXVZUXg0MkpxVyt4dk8xTnRyeDFE
MlJma2lIZStHelBHOHAyV2xHdThFM3dPCmc2S3A5ZlkvSHhzTC9YdzF6NmUydVdWbExCdkR5VCtu
N1RzMWJ2cjFydW16S1llcGZVdC9mYXMrbjF2Mm5ERmY0NzNxTnBqMmo0MlAKUlQ2cmJJUDk1ZWR1
QzVsYlpoNmJiVFFIMU1lK1gvcnIzYzd6cVRHV01tdkdhazJmYmFkK1k4dk1IYVBMeWo1NXhyc3Mx
NEwzY3lxNQpCQk9aVkpSVUlzcThMcWZCeTJmOVpmSmVkbFM1RkNJcFg3eWx2THhPbVRtU2xkUVBW
TG8zWnZ3blVXaStBRkorL3hlMk12QnkvMGYvClRFenRhakpoVHNxbFdiWHAybXYzZGIvSzlQenpS
OXNKNHRIdUoyajd5K2J2ZTJRQ25jdVR5dVE4WjBSV1RmbjdHdm1WcVpTem5iOVQKOHQ1N1I3dGdv
RnpDTmJYK3FYYjFsNy9zc24xdFB6VGRKV2JsL1FRZWNjek41aVhsSjRadnVXVi9PeDVPdkplQW81
OXk5aU9YWjVYSgphajc3eWxjT05OLzYxc0hqLy9MenhRbWs4dDV0dDUwWXMvMXlGajNQVHFvY3VT
eWZaNnptN0VKSnVXRXVFOXFrUEorVGF0YlhMejlqCk51TTNrNXhzUnpuQ256TXlKU0RwNTkzcjU1
bUVaUnZQMlprRVF1VStrMFgxU0hDUUhkMnliVEQ3Z2JqM0E2cmt6M3Y1Yk13dFh5N0oKbTN0SDBr
OEppRElaWERWTjFXR3F2TEgrU2YyenorenZOOU8yQkV0am44MnQwMVNkdC9QNVR0VnBsZkZUNnBr
REFObkhaenZNbWUyeAoxTjkyeHZMbHMxWEgwQzN0WlZpNXZDWUhBVktudk01bFdObVhUTlZyckM1
alkyRnN1VVdmVFcxemk1WVpHOE1sLzNiYnZsUGpwdFNqCnRzK21ITWIyTFdWZDIzM2NpYkszTyta
cnZGZmRCbXZHUjk5cWxXMnd2MXllejkwV01qNHlvYy9sd1RVV3cvV3Y4bnBxak5XTzFkMnUKNTZJ
MjdjUVlYVlJ1VlFDU0wrNlN5aldzT2NLYW8wdVo4T1dHbHBLQ1V3S0gzQ1BTVDRtS3MyUHFwL3c2
U1JxWFFURE1YOWJWeno5OApub2xYU2ZuU0thbi92SnlKU2Q1Y3A1OW9OMGVIczk2Uzhxc3dEenp3
UUhkelgzbHYrRmhXbGFQb0plV201OXkwM2NaUzdaZktDYzdjCnA1RkxySElUZUNieHVaZTJ4OWpk
Q0o1TGovSTNMbktUZXZuRGV5azNrNDRISGpqY2xyZXZ5ZjBZNWIzY3VKNlVTWHBMMytYTDY5U24K
WDZmKzYzSy9SMjd5em8zaytRT0daZG1zWjFIcXY1MWYwTXJQMnVibmhwUG10R3U0cnR5UGN1ZWQr
OXZKNlFuUW1PWEUyTlZYYndVYgpqejkrdUoxY3ArNzUrZDBqM2IvOFBaQnkvMGdwTS9lSERIOStO
L2ZXNUNkNnk3LzI2cDUydk9idkIreHYrLzVFTUpNeVlwSHgxaDlQCnBlemMzSm9qTGZrMW5YeWU1
N214dTF4Q21Hc3ljK2xReG42dUtjM2xINWswbHBRanNObTVKQzBxUCtzdVl6UjVwdFkzTENjVG1w
ek4KUy9CZnJsZlBsMERha3lBcFpXY2QrWmZ0ckx4T09jbVQ5MHZLNS8zWHc3cXZ1bnljWXBQN1l0
S3U0V1VuWmIxNUxEZjVaVDlSVXRxVAovVS9xbVd2bXN4TlBlMHRLTUpMeWMzWnF6QzN1SmVCSTNs
d0R2S3d1WXlaVGRVaTlobWFscm5rYzY1K1VuYUF4WjR5U0wvOXlpV3YyCnAxT2ZqYmxrdlRsVGxO
UG82ZnVNeFFRNXcvMTZ2OStueGtISzdLZXl2ODF5U1RWT1dWOS8zUGZMSzgrbnhrLzZLdi82S1Fl
Mk1wYXkKSGZidklTcDUrdHRnZjl2SjU2bFBhVU41WGVxNHloaktzcG00cFQvekhaa3hrZnRLTXVa
eUdXTC9RRWxaejdMMTV2TjhsbnJFYkd3cwoxSlNWUENWTmJYUEpOK3luc1RGY3h0QXFiUzkxeVdQ
TnVKa2F5LzN0THorYXNXeTc3NXRPT1l6dFcvcjFMOC83ZGNpNEdSdFhjOHZPCk9yYzc1bXU4cDdi
QjdZeVA3VzZEYVd1LzM2YTJoZVFmcGpKRzgzNjIvM3dYNU9CZGpjWFUyQnY3N3BnYVk3WDdsNXA2
RHZmSFE0TzgKM3MweHVtaDlpOTQ3MEo0RitMdEZINVQzY2dvNUE3QTBLQk9yVEdxeWM4K2xGUG03
R3NOTFV3S1VBQ1hYMzJhQ2tLT05PYnVRblc5dQptT3J2ZlBOZWdwTGc1L0tWc3FGbXA1R0FKSk9x
VEY0eXVSdW0xQzJCUXhuTTJUR203RHptK3VyeXhaSDFweDVQdERmRVp0S1ltM2FICmwxOWxtUnls
emZxeVF4aW1USkp6SkQ0M1pPZCtpRXpvTXhIT2ZRYVoySDdqR3lmLzVlMU1yaDk2YU9zc1J1S2kz
T1BSTnJFN2lwL0wKakhMRS9sZS9PdExlSkoxL2g3dXk4dXRXbVhnbjBIajAwZndTMWY1MlBVZmFq
ZVJJZTluSTFrM3JMVmYzUFBVNDY2eXRuNi9OZXZLNgovVjVyMjl4MDZ5MnZjMDlFenJLa25ua3Z2
MlNWZ0trOWFONStPWC84cjdmblhwRW5uenphOXZmVzM5dElXM01QU2JuMGFVNjdGcDJCClNaQ1ZN
MER4VFZDUm0vUHpOMEhPT1dkL0Z5ejk2RWVIMit2ZjgvT1orY25aclgvSjk0VXZiTjJVbjM1S2dK
Skw0UElUeDR2V1Vmb3kKd2Rpenp4NzkyRTNwbWF4bkhHVnNKN2pJcENFN21uSm1MeE9HL010bEhS
bFhHVWM1NHBTeGtoMVlKb3o1MWFaTUFyTk1KdEJsTEdYeQptRk92V1RhUDJXYjZFOStNNFd4TCtT
eDVzOTZ4OWFVdHlaOTZaaUtaN1N6cnlxOWhwZHdFMVFtSVVvZDgrV2FubDNYa0tGUEt6WGFZCjl4
T0VaL3ZJNVVncEs5dERKcVJwWHlhbmFWdTJsWDdkczB6V3ZjcnlPZUtib0Q4L2s1aC9aZjJaakEz
UDBHU0htSFZtZnhQam5LMU0KeWs0OWJjdE4yZkVyMjNiMlNXbGJidHd2WnN2NktXM0xUOUdtZitL
V2Y3bTBvTDh2eXJxeWIwdGZMVFBKZm1pc0RpbWpiemJzNzdIKwp5WDRuUitMUzl1d0xzLy9NL1ha
Wloyd3lOaFo5RnNlcE9tV0NrbmJsYUh6YzRwVDlabjk4TG12emNCd00yNVRBSnZWTnU5Tlh5Wi95
CngrcTBhTnpIYnBqR3hrKzIxNnczNHpIcmkwOFpVL0hLUkdXNEx4L2JkbksySXAvSEo5dERQTXIy
a0g1Sm1UVmpxTFFoWXl0bDVQc3IKeStaMXpQTjlsOWNsVGEwMzljbDJXcmE3YkR2THhzbFVXY1B2
MGRSamJKdkx2akVtL2YzVDJCaE93SmMrcUcxN01TaVBjOGZ5Y0t4bQpUT1JNMkhDN3ozeGdhQnFi
WmZ1ZW1DL2J0NVM2OXgvNys0Q013MnkzeThaVnpvWnR0K3ordHBpK1hIWE0xM2lQYllObHZLMHlQ
dktyCld0a3VGbjEvbGZLV1dhMnlMZlQ3b3p6UDh0bjM1REhmbmZsZXpPWCtHUjgxRm5QMm8vbitH
dHZXTWdacTlpOVQ5VnkwUCs3dmI0ckYKYm83UnNvNnB4MzMzMzMvL2ljT2ZVN2xYL0R4Zit0bUJC
U3hIS2RONVl5bGZYcG44bE1HY0w4ZitaRzFzMlozNExEdjRySE00S2RsdQoyVG43a1lQTE9idVJz
dy85eWZIdmZuZW9qYmozZHdGRERob21PTWxOMWpmZHRMOE42RTZjU2RudXVvZkw1VXhOT2NzeXJN
c3diMTduCnJFMjZxMS9ua204MzJwVXlZM0RlZVNlZm1TanJISHZNc3UzKzdHTm5OY2FXMmM1bm1i
Qm5wNWt4a2pHOVNzcTJNRFgraCtVdFcxOSsKbUNGZldqbDdtQytjN0xpR0tlK1hiU2ZiMWFyMTda
ZTNuYnFYNVJOMDVJQkUycEk2WlFLV0w1bE1ESWNITHNveXFXKytJT0tWNWZMbAowRTg1Z3BYOVJM
YlQ3TkNIYVpGYmxpa1R3RmdVbStHeXRhK242akJsTnRZL0tUdkxMK3JYcWMrbVhMSjgycjZkTVRI
VnBrVjJVMDZMCmx1bS90NTN4aytVemFjNUVlVGpHYXJhZC92cjd6OU9XVmNmUWNQd09YL2ZMWC9Y
NTJGaFl0YXlwYlc1UmVXTmpPUG1IYlIyK1hsUm0KZVc5cTNLU3M1RmsybHN0WVhiWFBwaHl5M3Ry
dmdGS0gwcWFweDdsbHp4bnpZOTdiM1FhWGpZODUyK0F5dzlSLzJUNXowVExwdzN5LwpMUHBlSExO
SVdWTmpiOUg2K3U4dEcyT3JqdFdwZXZiWHVlejVibzdSWmV2c3YxOTNGMjUvaVJXZXA0TVRvZGVt
RElZY2hSZ2VwYWxkCmZtNitmR0V0UzkvLy9vbEx2WmJsV2ZYOVgvLzY1RXNIc256T0FKenU2WFJw
MS8zM256Z0tXV09laWZDaUNXL05zcXNHSHlsemFuMzUKOGwwMmtlNi92MmduVzFQbmttYzdkYyt5
K1VMTUdhSWN4ZStuVE9MR3RyWFV0Nnh6R0h5a25DeWZBeHJMMGlLM0xKTzA2RWpRc25MRwozcCtx
UTZuL3NqTEcraWRsTHdvK1V0YlVaMU11cFQ3YkdSTlRiU3BsOXgrbm5QcDVoOCszTTM0U3VLWnQ1
YXpnc016eWVtemJLWG1HCmoybEwwaXBqYURoK2g2K0g2MWpsOWRoWVdLV2M1SjNhNWhhVk56YUdr
My9ZMXVIclJXV1c5NmJHVGIrc1JXTzVqTlZWKzJ6S0lldXQKL1E0b2RTaHRtbnJjYnRrN01lYVhl
VzluR3l6dG5Cb2YyOWtHUzluRHgxVzNoVnl0c0N3dHN5ajVwOFpleWJmc2Nka1lXM1dzVHRWegoy
ZnI3NysvbUdPMnZaOW56WFExQWxxMzBkSHgvMWNucVdCdnp5MWYvOUUrSDJrdWc5blUvcjV1ekUr
MEJ6KzcxZGRlZGZMUjNySngxCisyeFQyN1ZPempucWthTTNPZEs5N2ltWGNaWDdxbkw2T1VmRWNz
UWxsMm1NVFpUWHZWM3F0emNDcTQ2ZlhELy8wQ0FBQUNBQVNVUkIKVk42WDhaYkpSZTd4SzEvb3Bi
YW4wN1pUNnV5UndKakFiby81VmJmQnNicm1NOXZnbE5DWjlmbXVYb0oxWmxHdTF0cmN0L0RTUy9s
RApodm41M1J6UlhlMlNudFhXdG5lNU43VmRleWM0dnFaY1A1c0FKQ2xuRVliWHVJOHZ2ZmVmNXBL
cjNNdVJhMzV6TmxUZ3NmZDljRHF2CmNaWHhrK0EybC9mbHB0SkZSemhQdDIzbmRPNDNkZDhiZ2Iw
WTg2dHNnMU90dGcxT0NaMVpud3RBenF6KzFsb0NCQWdRSUVDQUFBRUMKcDFSZ013NjduMUpDS3lk
QWdBQUJBZ1FJRUNCQW9GWmdwUUFrbDFIa3B0S2M5cE1JRUNCQWdBQUJBZ1FJRUNDd3FrQjFBSkpm
UThqZgo1c2p2NVAvRFAveEQ5MU5rcTY1TWZnSUVDQkFnUUlBQUFRSUV6bXlCcWwvQnlxL1g1QStr
L00zZi9FMzN5eUw1SzZmOW55TGJEbUYrClN6bC9DQ1ovNEVjaVFJQUFBUUlFQ0JBZ1FPRE1FS2c2
QTVLL0pKNC9ubEorMW5ENFY4UlhwVXBaK2V2UkNVQWtBZ1FJRUNCQWdBQUIKQWdUT0hJSEpNeUM1
OU9ycHA1L3Vmci81WnovN1dYZm00Nzc3N3V2K1V2R3ZmdldyN2c4WTVXOFM1Q2RCUC92WnozWi9H
QzMzaVdTNQovTVhvL0ZIQi9DWE4vUEdWYjM3em05MGY4WG40NFllYlo1NTVwbm5ycmJlNnYyZnd4
UzkrY2VrZlZEdHp1a0pMQ1JBZ1FJQUFBUUlFCkNHeSt3T1Faa050dXU2MjU5ZFpiTzRrRUNnaytr
bjd3Z3g4MCtTTTFuLy84NTV0dmZPTWJ6U3V2dk5MODZFYy82ajY3NUpKTG10ZGUKZTYxNTl0bG51
Ny9vKysxdmY3dDcvOEVISCt3ZTc3Nzc3dTc5RzI2NG9mbktWNzRpK09oVS9JY0FBUUlFQ0JBZ1FJ
REE1Z3RNQmlDTApDSjU3N3JudWo0dmRlT09OM2NjNXUzSExMYmMwZVQrWFZaMTc3cm5kbVk1TEw3
MjArNnZIT1R1U1AwS1dNeDc5VkM3cDZyL25PUUVDCkJBZ1FJRUNBQUFFQ215dXdyUURrMVZkZmJj
NDU1NXp1c3FwQ2s3TWhTVG56a1RRTUxzNDY2eXkvbk5YSitBOEJBZ1FJRUNCQWdBQ0IKTTFkZ1d3
RklmaFhyd3c4LzdPNERLWFM1N0NwQlIzN2RTaUpBZ0FBQkFnUUlFQ0JBZ01BaWdXMEZJTG14L09q
Um8wM09oSlNVUDA2WQo5L0taUklBQUFRSUVDQkFnUUlBQWdVVUNWUUhJUng5OTFDMmJNeDlKdVhu
OHZQUE82LzRxZXZkRys1OEVJeGRkZEZGenpUWFhkRy9sCnAzWVRrSlNVWmZ1dnp6Nzc3T2E5OTk3
clBzN1psSnc1eWE5bHZmdnV1MlVSandRSUVDQkFnQUFCQWdRSWJKakFnWHZ2dmZmdnh0cVUKWDdm
Ni9lOS8zd1VHQ1NvdXZQREM3aWJ6M0ZTZVg3Vks0SkFBNWNrbm4yeSs5S1V2ZFovbHI2VS85TkJE
emZ2dnY5L2tiNGJrN0VqeQo1dWQ2YzY5SXlraWdrVHg1VEZuSis4TWYvckRKamV1WFhYYlpXSlY4
Um9BQUFRSUVDQkFnUUlEQWFTcXc3Lzc3N3o5eG1tTEZSdVNNClJvS0szUHVSb0dMVmxNQWtON09Y
bENBa3Y2QWxFU0JBZ0FBQkFnUUlFQ0N3bVFLVGY0aHdyTmtKUEhMWjFYWlRQL2hJR1lLUDdVcGEK
amdBQkFnUUlFQ0JBZ01EcElWQjFEOGpwMFJTMUpFQ0FBQUVDQkFnUUlFQmczUVVFSU92ZVErcEhn
QUFCQWdRSUVDQkFZSU1FQkNBYgoxSm1hUW9BQUFRSUVDQkFnUUdEZEJRUWc2OTVENmtlQUFBRUNC
QWdRSUVCZ2d3UUVJQnZVbVpwQ2dBQUJBZ1FJRUNCQVlOMEZCQ0RyCjNrUHFSNEFBQVFJRUNCQWdR
R0NEQkFRZ0c5U1pta0tBQUFFQ0JBZ1FJRUJnM1FVRUlPdmVRK3BIZ0FBQkFnUUlFQ0JBWUlNRUJD
QWIKMUptYVFvQUFBUUlFQ0JBZ1FHRGRCUVFnNjk1RDZrZUFBQUVDQkFnUUlFQmdnd1FFSUJ2VW1a
cENnQUFCQWdRSUVDQkFZTjBGQkNEcgoza1BxUjRBQUFRSUVDQkFnUUdDREJBUWdHOVNabWtLQUFB
RUNCQWdRSUVCZzNRVUVJT3ZlUStwSGdBQUJBZ1FJRUNCQVlJTUVCQ0FiCjFKbWFRb0FBQVFJRUNC
QWdRR0RkQlFRZzY5NUQ2a2VBQUFFQ0JBZ1FJRUJnZ3dRRUlCdlVtWnBDZ0FBQkFnUUlFQ0JBWU4w
RkJDRHIKM2tQcVI0QUFBUUlFQ0JBZ1FHQ0RCQTVPdGVXUkk0OU1aZkU1QVFJRUNCQWdRSUFBQVFJ
RU9vSGI5OTgrS3VFTXlDaVBEd2tRSUVDQQpBQUVDQkFnUTJFa0JBY2hPYWlxTEFBRUNCQWdRSUVD
QUFJRlJBUUhJS0k4UENSQWdRSUFBQVFJRUNCRFlTUUVCeUU1cUtvc0FBUUlFCkNCQWdRSUFBZ1ZH
QnRRcEFqaDQ1MnJ6M3hudk51Nis5Mnh3NWRLU3IrUHR2dmovYWdOMys4TU4zUDV4Y1JVMjlhL0pN
cnFneVEreHEKNmwxWjNOcG1PL1Rob2VhRHR6ODRYcjhZdi8zeTIwdGZILzlnRjU0TTY3THFLb1ox
WDNYNWorVS8yalQ5YldkdS9UNVd2amNJRUNCQQpnQUFCQXRzVW1Qd1ZySDY1VHozd1ZQUFNveTgx
NTE1OGJuUCtaZWMzcno3NWF2ZHhuaDg0KzBEenpzdnZORWNPSDJudSs5NTl6UnZQCnZkRTg4NXRu
bWcvZjJackFKOCtGVjF6WUhQcm9VUFAyUzI5M0UrVHI3cjJ1dWZhZWE3c3lNbkY4OHQrZmJLNjQr
WXJtdkV2T2ExNzgKdzR2Tk82KyswNXg5L3RuTkhkKzhvMWxsM1FmT090Q3ZkdlB5NHk4M3ovN20y
ZWFqOXovcTNyL29xb3VhbyszLzNuL3IvZWI4Uzg1dgpycjd6NnViaWF5NCthWm55NHVILzcrSG10
bS9jMXRXcHZOZC9uS3AzOHRiazZaZTU2UGtqUDNpa2VmdVZ0NXNMTHIrZ1NmdGVlL3ExCnppYXVh
ZGM3cjd6VDNQd25OemY3OXU5cm52ajNKenJYWXJ1b3ZFMTRMMzM2MW90dk5aLyszei9kdFQvdFB2
VEJvZVp6My8zY3gxN3YKZG52N2RWbDFYZW03ZnQxWFhYNllQOXZORXo5OW9qbDQ5c0htcm0vZjFY
MDhwMzdEOHIwbVFJQUFBUUlFQ013UldDa0F5WXF1dnV2cQo1cE9mL1dRWGFKUUFKSlAzNisrOXZq
dmkrdnQvL24xWG44dHZ2THc3aS9Ia3o1N3NYbC8vbWV1Ymk2OCtOc2x2ajg0Ky9DOFBkKy9uClB6
bGkvK2lQSG0wdXUrR3k1cHE3cituZXYrVGFTNW9zMnovQ1hidnU0d1VmZTNMbExWZDJBYzl6djN1
dWUrZUcrMjVvenJ2MHZPYloKM3o3YjVMMDNYM2l6bTZoZGVPV0ZKeTJheWUwSDczelFCVjAzZnVI
R2t6N0xpNXA2MStUNVdNRUwzamh5OUVqenFmL3dxZWJzQzg3dQpQbjNndnp6UVhQU0ppN3FnSTIr
ODhQQUxUWTZpSjRBcjdWeFF6TXB2bFNQeldkZmN0Sk5scFM0SllBOS9lTGlyMWdWWFhOQmNlZk9W
CnpmTVBQYi93ZGZmbUR2NW4ySlorWFZaZHpiRHVxeTQveko4Z05mMzEvaHNuemg3T3FkK3dmSzhK
RUNCQWdBQUJBbk1FVnJvRUswZlgKci92VWRVdlhsek1qbVFDM0p4ZTZkUENjRS9ITnZuMzd1dmR5
UnVTRGR6OW9Qdm01VHpibHZSelp6NUhybkNuSWhMMmtUMzdtazgzWgo1MjFOdUZkZGR5bWpQSjUx
N2xubGFkTnNWZVZFUU5SKzhzYnpiNXo0L05pem5PMUpldVdKVjVyREgyMU5kSTk5MUQzVTFMc21U
Ny9NClpjK3Z1Zk9hNDhISG9qeFgzWHBWZDJZcW44VnFKMUltMlkvLzVQSG1yWmZlbWwzY1RwWlZL
cE1qL09kY2VFNTUrYkYyNzVURDhSVWMKZTdLb0xjTzZESmVaZXIxamRUMjI3WFhiVm04WXJGcS9v
MGVQRlRSVjhSMysvRlN0ZDRlYm9UZ0NCQWdRSUVCZ1JPQkVoRENTcVh5VQpNd2RUNlliUGplZDU0
WkVYbWt1dnZiUTdRbnYrcGVkM3hlVXlxS1QzWG4rditjMC8vS1k3bTNMRlRWZDBsM1hkL09XYnU4
OTJZdDFkClFiMy9aQ0paMHJrWG5GdWVkbzhKaUVyUWtzdktYbm55bGVZVHQzL2lwRHcxOWE3Smsw
SnpGaVpuZks2Njdhcm1tcnUyemdMMVY3YnMKRXJHU1ovL0IvYzN3REU0dXUzbjVpWmU3UzdidStO
TTdqZ2N3aDk0LzFEejMrK2U2ZTIwT0h6cmMzUFNGbTVvY2hSK21GLzd3UXZQNgpzNjgzNTc1OWJu
Y3BYYzRDSlVCY3RHenUyM242VjA4M0g3MzNVWFBqRjI5c0RodzgwRjBHbE12YkVwUXVLaXQxTHVu
MVoxN3ZMa082CjZNcjJyRTdiNTNuOXgxLytzY2tZdWVtTE4zV0JSczd5dlBiTWE4MWQzN3lydTVR
dmdXSHkzZjBYZDVkaVZucGM1cEF6WHk4OTlsSVgKL0Nhb2Z1N0I1N3BnK2M1djN0a1pEdHR5N2Fl
dTdTNkpLM1dKUlpaUEFMNy93UDd1N05RZGYzWkhjODc1NXl5MEcxYjYxYWRlN2M1aQpuWFBCT1Yy
Z25qcmszcWhjb3BnemlZdk9SbVdNUHYzTHA3dDE1cEs4OTk1OHI5bS9mOHMzcjRkV3IvM3h0U2Iz
aFNTd1RoL2YvYjl0CkdhYnR1WVFyS2UvSFBwZEVabnptVXNZRWZObHVVbDZDcGx6Mmx6T2JVNStu
dkdYZStXelplcGRaNWl5UFJJQUFBUUlFQ0p5ZUFpZG0KZ0x0Yy85d1VuVW5QSzQrLzhyRTFIVHoz
WUhQSk5aZDA3MmNDbSt2WGYvdFB2KzJ1NC85WTVoMTg0OVUvYnQzRGtzdXhMcjMrMHBOSwp6c1E5
bDN6bFVyQ2tGeDk1OGFUUDg2S20zalY1VWxZdVo4dlpvZHo3c2hNcDFwbW8zdk1YOXpRNXFweEpk
SmZhbU92eG56N2VCWGwzCmZldXU3cDZTUi83MWtZVm5lQklJSlFpNzdKT1hkVUZCSnRQTGxzMjlL
TG5uSlBmVkhEMTh0UG5vZzQrNndLTTdJOWF1K0dObDlZS1AKMUN2K3VkOG45eExsSHBjc2w0bHYz
aXRuT2M2OTZOem1xbHV1YXZZZDJOY0ZCTGs4N3YyM1QxeG0xTFd2OWo4akR1ZGRmRjRYbkwzKwoz
T3RkKytPVVZBeUhiVWw5KzNYSkJEMyt1UThxZFk1ZkFySmxkc01xNS9MRkJDOUhqaHc1ZmxZcmRU
cnJ2TE1XQmg5Wi9yRWZQZGJrCjNxYnJQbjFkRjFCKytQYUpIMC9JMlpDVDZ0ZU9oMXlxMWdXNzdT
V1AzV1MrOVNobmR2STZsMEltc01obGlrbm5Ybmh1RnlSa25GNTYKM2FYTmJWKzdyYnZISk50cXpl
YzVLN3FzL1dQclhXU1pzemtTQVFJRUNCQWdjUG9LN0ZrQTh1YnpXMGRRRjEzS0ZMNWJ2M1pyTjFF
cgpsTGwrUGZlVFpDSzMweWxuQnY3d0wzL29KcG1aYU4zOTdidTdpVzkvUFIrODlVRTMrYzM5STBs
NW5hTzB3MVJUNzVvOFY5NTZaWGRqCi8wN2RPSDdKZFpkMGs5Vk1XaS8reE1YTmUyKzkxMVc5Qzdy
YXlXQXVxOHBsWndrd2NpUjg3REtyY3FuYzFMSUplSElmejlPL2ZycDUKOVlsWG02dnZ1SHJJZGZ5
eXU0OTkwTDRSNjR5VGNnbGZKc0E1Q2w4dXk4bFI5a3pta3pKQkwyZVh1amRXL005WVd4STBKdWhK
K1FsQQpFd1NsTGdtdStxbTRET3VTczBrNWEzSGVSZWQxOWMxWmhIZGZmN2RyVjYxN3poeGx2SlVm
Y1hqcjViZU9COFA5T3VSNWJtSlBYeDQvClM5WmVlbFVDNTN3K3JGL3VtMGw5RWlBbDVmSzlwSnpS
dVBTVGwzWm5uZkk2eTVWZjBzcTlSM0ZJb0pnemJSZGVkV0Z6NjFkdjdjNTQKSmMvVTUyUGVZK3Rk
WkZrQzB0UlJJa0NBQUFFQ0JFNC9nVDBMUURMQnpxOVo1ZEtxUlNtWDQyU2lua3RWY3VTN1MrMUUr
Y2tIbmp3KwpJVjIwM0hiZXl3MjVxY3M5MzdtbnU2U2xmeWxReXN2RXIxeVNsSWxjSm1KSmk4NU8x
TlM3Sms4bWRhbFBqa3J2ZE1vUituSnZUZTVKClNYc3k2Y3UvckRjV0YxdzJmVWxMemJLNUJDL0JX
czZJbEh0dGF0dVRJLys1OUMyVDdhUmNkcFI2di9YQ1c5MVpsYngzVWwvMTduSEkKWjZ1a3FiYTBP
aWNWbC9YbWpNVFNkSEwyN3ZLbk1tNnl6TlQ2aHVYbUxFT0N4MXpLbGZUR3MyOGNENzZHZVJQVTVF
eEwrcm1renFsZgpwOTd6MU91eTZ5OXJjdVlydnk3WC9iREJzYzl2L1B5TjNlVnR6Ly8rK2VidEY5
OXVjb25lU2FsWFRvS3NyRE9CNGZHMDVQT3A5byt0Ck41ZVM5UzJQcjhzVEFnUUlFQ0JBNExRVTJQ
TnJHVExKTENtL2NKV0pVaVpYRjExOVVaTnIzbk1VOTFOWGY2cDU5bmRidjFDVm83VzUKZkdRdmoz
cm04cXVzdHh3aHppVWZtUmpuYUh3dUpjdVI0S1NYSDN0NXN0NEpadGFwYlljL2FDZVViZGlaSS9x
cnBwcGxjMVlnazhWYwo0cE9nc3o4cG5scGZuSFBtSnBmNVpMa0VSU2t2Ujg5ejVteDRtZHhVZVdP
ZjE3UmxiUGxWUDF0NWZlMUVQdmNjNWI2WFhGYVZlenlXCldXWk1abndPMHpDSTZuK2VzeGU1eHla
QmRlNnpTQkNhOHZQREMva3hpTnpia1hzKzNuNzE3ZjVpSDMvZTFqT0I3TkowN1BPcDlxKzgKM3FV
cjlBRUJBZ1FJRUNDdzdnSjdkZ2FrUU9ReW5YSjI0WTgvLzJNM3djeFIxdnhkaStPcG5iUmswbFVt
K250NTlETVR1VngzZnZ1ZgozdDdjOXZYYnVuODVNMU5TK1dXc3ZLNnBkMDJlcnF4Mmd2M1NJeStk
OUxQRFpaMDcrWmlqM2JuTUtmZHA5TlBZSlZnbFg4MnkrZHN2Ck9ZdVZsT2VycHZ5VWJzWkNncnNF
TUxrWEpLOXpsRDMzT094VXFtbkxUcTByNVd4bmZia2tMWUhYTTc5K1pyVHRPVlBTL2FIQjlzeFQK
VGNwTjZibEhKei9za01Balo1cHlxV051WE04WmtaekZHZzBxanEwa1o3b1NxSmNma3hpdXUvLzVX
UHRYWGU5d1BWNFRJRUNBQUFFQwpwNWZBdGdPUTNDeGVVdjk1ZVMrUG1SU1ZWQzVmeWNRbWwxVGs1
dFpjaDE2Q2krY2ZmTDY3bnJ6a1R4Q1F5Mjl5VDhId3lHOS9mZjNuClpkbEZqNWwwbFRTMlRIN2hh
SGgySUplRTVSS1hwRndTVXk1bnl1dWFldGZreVdUOXFaOC8xVHp5bzBkUzdIaHFZNGY0TERycW5R
VlQKdnh3eEx5blBTNTB2djJuck1xZjg0bFltanlramZaR2JqQmVsM0JUKzRYdGJOelRuN0VUeUwx
czJnYzA1RjUzVDNmK1F2eFdUZ0NwSAoxMHZxbDVWMUwwb1hYM3Z4MXVWaDdabVA5SHZ1WDhsakp0
bkRsRGIxQTZtWWxQdEZrbmY0dXIvOGxFTTNYbnN4V3VmWmV6MXN5OGZxCjB0N28zZStEcWZVdHFt
dTJqY3R2dUx3YmM3RmZscEluVjR5OStPaUpIekRJZlJuZDluZXN6djM2cFE5ZmUyb3I0TTlZejVt
bG5Ja3MKOTNza0lNaDlPQWxLVTY5KzZzNWtISHZqelJmZjdDN2hLd2NVOHZheXo4ZmFQN1hlOUdu
Zk11dEp2ZktqQUdQYmN2SkpCQWdRSUVDQQp3UG9KSExqMzNudi9icXhhcng3ZCtxV29mcDVNTkov
NVZmdFh6dHRMUDVKeW8yd21OYm1mb0J3NXpVK0o1aktxY3RONWpyTG1KdDVjClVwS0pkcTdyejAr
dVptS1NtMml6Zkk1NkozL3k1aWRGTTdISlQ4VG0xNWRLcWxsM3lWc2VjeW5KQ3crOWNId1NubnJr
N01wdzBwM0wKVWZKSC9ESnh5OC95NXFodFVxNkg3ODRhWklMYm5qbkk5ZXo1S2VIVWM2cmV0VzFM
blhLVVAzOHR2bitaV21sRGVjdzZ1K0N0bmRnbgpxSXBOZmlHcEdKV3pCNW5ncHo4eVFVdmJjeG5i
QlpkZTBMMlhHOC9URDJsWGZwVXNOeUV2KzFuVDlQR0xENy9ZOVhVbXVybE1idEd5CnVkUXNmek1r
WjY1U2ZvTE1uQzJLVytxUnYrZlNMeXNUMys0K2hkS3dZNCs1NUNvLzE1ckxqN3BmTzJvbjFtbEx6
b1QwZi8wb1B4V2IKWURGajcrQlpCN3ZBSS9YSzY2dy9FOVQrNnh5bEx6ZU5aMVZublhOV2wyOVJX
OTUrNmUxdTJmaW03aGtQQ1NKenlXREdaQzRIN0xjbAp3VWdDMDFLWDlHWEdYUDdlVFg1Nk53SHMy
UHJTbGx5eVZ1cmVyMnZhbk9DaEN6SUdWdVZsOG1Rc1orem04clhVUHlrR01jN2t2VytWCmNaM0xy
dzRjMkFvdU0wYnlpMjlwVnk0NzdNN0V0ZU1sNC9DVnAxN3BBcFBjazVJMmRXZFAydndKVGpKZWIv
dnFiY2Y3TWR2dnNzL0gKMnA4eHRXeTlhZnZRTW0zTDJaWEgvdGRqbmUyeU16REpKeEVnUUlBQUFR
SjdMM0Q1dmhPM1hDeGErNzc3NzcvLzVFT2NnMXlQSEtrNApJajlZWnRXWG1iUmtncEtVeVZ1T2VH
WXlWQ2JWcTVhM1YvbHI2bDJUcDlRM2s5cHkyVmw1YjdjZU16bnQxdGRPUnZzVDgwWHJTNUJWCnps
VGw4MVdXSFpZM0xHdjRlU20vQkxLTFhpOWFacnZ2N1haYmh2VmFkWDJaMUNkZ0dKNlZHNWJidlc2
MzVBUkw2YXNFeXZtNTRvVXAKVzN3Q3V6YllUOThQQThFRUxHWGJTMzFMWHp6NC96N1kvZnJWOVor
K3ZndHErbU1pNjVuNlBIbkcycjlzdlZsdVVhb1pTNHVXOHg0QgpBZ1FJRUNDd3V3SzM3Nzk5ZEFW
N2ZoUDZvdHJraUhWSitXV2QweVhWMUxzbVQybnZYZ1VmV1Y4bWxiVTM5ZzhubXFzc1c5cFdIb2Rs
CmxmZjdqMlhDVzk0YnZpN3Y3OFRqYnJkbFdNZmE5ZVhJZi9MbUROS3RYejl4RDlLd3ZKTmV0MEZG
OFYwYWZHU0JZM0hKOE5MR1VsWUoKUHJxc0MyNHdUOEF5REZyS3Nua2MrM3lzL1ZQcjdhOGp6MHRi
aCs5N1RZQUFBUUlFQ0t5M3dGb0VJT3ROcEhZRTlsWWdsMERsTXNYYwo5NUpmbzFxTDFKNDF5YVZh
L1Q5d2VGSzlwajQvS2JNWEJBZ1FJRUNBd0prc0lBQTVrM3RmMjlkU29Mc0hxRDFMVWY0V3lEcFU4
cFVuCjIzdUZidC82R3pXNXYydDRuOUxVNSt2UUJuVWdRSUFBQVFJRTFrTkFBTEllL2FBV0JJNEw1
S2IyM2ZpRGxNZFhzSTBuK1JHQXNUVDEKK2RpeVBpTkFnQUFCQWdUT0xJRVRQeTkxWnJWYmF3a1FJ
RUNBQUFFQ0JBZ1FPQVVDQXBCVGdHNlZCQWdRSUVDQUFBRUNCTTVVZ2NsTApzS1orUnV0TWhkTnVB
Z1FJRUNCQWdBQUJBZ1JXRjNBR1pIVXpTeEFnUUlBQUFRSUVDQkFnc0UwQkFjZzI0U3hHZ0FBQkFn
UUlFQ0JBCmdNRHFBZ0tRMWMwc1FZQUFBUUlFQ0JBZ1FJREFOZ1VFSU51RXN4Z0JBZ1FJRUNCQWdB
QUJBcXNMQ0VCV043TUVBUUlFQ0JBZ1FJQUEKQVFMYkZCQ0FiQlBPWWdRSUVDQkFnQUFCQWdRSXJD
NGdBRm5kekJJRUNCQWdRSUFBQVFJRUNHeFRRQUN5VFRpTEVTQkFnQUFCQWdRSQpFQ0N3dW9BQVpI
VXpTeEFnUUlBQUFRSUVDQkFnc0UwQkFjZzI0U3hHZ0FBQkFnUUlFQ0JBZ01EcUFnS1ExYzBzUVlB
QUFRSUVDQkFnClFJREFOZ1VFSU51RXN4Z0JBZ1FJRUNCQWdBQUJBcXNMQ0VCV043TUVBUUlFQ0JB
Z1FJQUFBUUxiRkJDQWJCUE9ZZ1FJRUNCQWdBQUIKQWdRSXJDNGdBRm5kekJJRUNCQWdRSUFBQVFJ
RUNHeFQ0T0RrY3YvNC9ja3NNaEFnUUlBQUFRSUVDQkFnUUtBVCtNdjdSeUdjQVJubAo4U0VCQWdR
SUVDQkFnQUFCQWpzcElBRFpTVTFsRVNCQWdBQUJBZ1FJRUNBd0tpQUFHZVh4SVFFQ0JBZ1FJRUNB
QUFFQ095a2dBTmxKClRXVVJJRUNBQUFFQ0JBZ1FJREFxc0ZZQnlKRzJxbThjYnBwWER6WE5SMGUz
NnYxbSsvcFVwbmRUS1duYkF1KzNmaTk4MURRZkhPdlAKc1lMUzUyZUNkeXplNm8zcncrM3JsOXN4
WDlMd2RYbS9QSjRwVG1kS08wdS83c1RqY0d5Vk1sZlpEc3N5cCtweDJJYmg5akI4UGF6bgpUbzZi
cVhVTjE1M1hxMWpQcWV2VXNrUEhSWFVkZXk5ZmZYdjEvVHZWbHJGNnJ1dG5lelVPMXJYOTZrVmdT
bUQ2VjdCNkpmenMzYVo1CjVJT211YmdOV3k1cmwzenl3NjBQTHp2UU5HZnZhNXBYMmtsVTVsSC8x
NlZOODJ3NzZmejFlMDN6enJFSi9PVnRuaXZhWlQ1c0oxc3YKdFpreTBmek11VTN6cWZPMnlzaDdQ
MzJuYVc0NXAya3VhY3YvUTd1ZUJDTG50OC8vL0tLbVdXWGRaN1YxNmFjbjJySis4LzdINjVJZApk
SmtjZi8yQ3Bybmg3UDVTVGROKzNQenpXMDN6cHhlMmRXcnJQMHhwLzIvYk5yNTFySTJwNnoxdG0y
S1J0cjk5N1AxNDNkcTI2NjcyCnMrMmtaOXIxUE5qVy81VjIwbnByVzhjL2FldTZLUDE3MnorUHRt
MjlxRjNmWjFyWFlYc1dMYk9iNzZVdStRS1A4NC9idnYzclM1cm0Kd0tCdnl2cGptZjcvVkc5TWxN
ODI3ZkUzN2RoNHNkMCsvcXIxeURhVGRyL2ZHbjJ2M1c2R3I0ZHR6L2IzODdhZlA5djI3M2JIMDdE
TQpkWHg5cHJSenArMzdZNnVVdmNwMldKWTVsWS85Tmd5M2grSHJZVDEzY3R4TXJXdTQ3cnhleFhw
T1hXdjJsMzNIUlhVZGU2KzAvYXoyCnUrUXYydS9mM1V3MWJkbk45ZTlHMmF1TWcwMXMvMjZZS25Q
ekJOcmRTMzNLaFB6dWRpS2RpZE9YemoreDNMVm5OYzIzMnAzVWY3aDQKYS9LZGZEZTFFK1ZNeGt2
S2hQZ0w3VEpmYlNmUG1ZaCtvaGY2NU9qSEQ5OXVtbXZhY3JMTWRlMnlYMm56WGRubU9UYUg3NEtC
Mm5XWApkWmJIbTlzNloySmJVcW5MMTlwMS9COXRYUzVjb3BCSllvS0lmRkVzU21uanA0OEZVUGs4
OWJ1OS9YZGozdSt0TDIyYU0xbTh2aTJ2CkxQOUVPMUhQaEg2WVl2aHMrMWxTZ3JpNXdVY0Nod1Ju
MjAySDJ1VXpVYjZqYlh1OHY5RUdjY1BnbzcrT1dDYUEyNm5VTDN0dW1UdFoKVnVweWIrdVJvRFlw
UVhuR1owbkQxK1g5OHBqeE5ReXd5MmViOUxnVDdkenBmbHRIMzJFYisyTXI5YTNaRG12Yk5WeFg3
WEtyNXV1MwpZYmc5REY4UHk5NkpjVlBLbkZwWHlWY2VGMW5uczJYNzBUbDFyZGxmOWgxTEhXc2Yw
L2FyMnUvajdlNlNwOFpLLy9PYXR0VFdPL242ClphK3kzRTdsWFRRTzl2SzdiNmZhb1J3Q3V5Mncw
djRsSndIS0dZdEZGYnU0elhCek81RXM2WnplMGU3eU5CUDZuQlc1cjUyRTdUdjIKWm82MlpGS2Rz
eURaZUV2NlhCdXdsRW5wcXVzdVpaVEhuSlVvcVR6TkdaWUVPRG1hWE40cmVmS1lveGhKT1lPU0Nm
NmkxQy8zN0o1bQovL2w1dmZjWGxWSHpYdGFUUUMvMWZhUTlHekpNajdkMUxFSEhkaWFvL2VabEhU
OXBqOHIzTHdzYXJtL3E5ZXZ0MlpxVVUxd1RUUGJUCm9uWHNMNW43R2JmeGZGSFoyeWltVzJRbnl5
cDF5SFp4VWUrTVdvWkh2K25EMTJXNThqajFlY20zeW1PLy8xZFpiamZ6em1ubkt2MjIKam0xUC9h
ZlNvallPeDliWWRsaXpqbEtIUmVzcW4rMjAzN0FOdzNFd2ZGM3FVUjZuUGkvNWFoNVhLV3RvZlht
N3o1dmFqNjVTL3JDKwpVL3ZMb2VOdytXV3ZTMy9XMW0wNGpzYkdTdGE1NlBPcHRpeXI2L0Q5UldV
UDg0eTlMbTBmeXpQMTJYQWM3T1YzMzdCdVkrMFo5bHQvCjJiSGwrdms4SnpCSFlEQXRIQy9xODcy
ekhzdHlUdVg1UXp0NXZxNmRTRi9kL3N0bFhFbVhIcHVNWmNQOXY5L1lPbUtlbzhLWmRPZE0KU05K
VXViVjV1c0tPL2VkM2JWMXlWcVpNM1B1ZjVmck5jOXM5Y0NhR2JaelNCU0U1bXI4YjZmbjJURU11
bjhvUnNidEgxbkYxNjVWTAoxM0pHSnZuS1VaWHNMSjVweThoWmw0ZVBCVTJsbmdtY2Z0VmU4cE12
a3dSL0Y3UlBFbkFkUERiamZhbzlhNUxMNHBJdmwzcDlwejJMCjlYRHJrdkp5YVZtVytXSnJWUExY
bEp2QTdlbTJyTlFybDg2bGUrOGJqSjFGNnlobDUvSzFCRlFKcFA2c1BiTld6bENsVDNJcDJtdnQK
T0VtZ21yNGI3dHhUeHFLeWszL1JzZ2xDNC9OZXI1My8xdGI1cnJZdmNpWnBVVmw5aTdUenAyMytx
OXErK1hJN1ZtUDRpN2E4WEpZWQp0d1FhRDdWMWZycjEvRlo3MWlQV09ZdFZyRXViVjMxTWUzN1Jy
amRsSlVqUG1jVWNBRWlxZFVyZWxQUEx0cjdudHRZNUFKQnRMdHZsCmxXMVpPUUk2Tm41eVpEZDlu
ZlZuM2RtZU1zNit1WTArUzEwV3BXWHR6TGpOR2JhY1hieXovWmZMR0hMSlNiYVJMN1VXVS8yV2RT
MGEKKzNsL3JNMjVkeWR0YnRtNnM3aTV0RE9iVXNaaXhrVXV5VXpnZmtjN2RzckJtbFg2STZhdnR1
dEl5aGhKVzdKL3pEak5lczlwZ2RzbQpOZysxejNPbXRiK2RadnYvWTd0OEdWdkx0c05sNjhnNjQ1
MSt6TGIzV3J2T1RLS3pyMW5rbWN0c2gvdU9sTkZQcC92MjBXOUxuaS9yCnkwWFcrZjdvOTgraS9X
aktYRGJHeDlhWHowcGF0TC9NL3F5L242blpWcnQ2dE9QM3ZMYnZzL3diN2I5anU1U3lxcE1lbDQy
alJXT2wKdjg5YzlIa3BlRkZiOHRreTk3SmNlVnhVZHJiVlpkK0IrZTdOZDgyRmJVT1B0QmtmYjdl
NTdNT3lMODhWR1l2UzJQNWgwVGpZeSsrKwptdllzNjdlME5XTmc3UHVndGg4V3VYbVB3RkFnMjlx
ZXBFeWMvOWh1M05uQWh5azc2bXZ6cmRxbTk5b05JQlBBLytmTmVVZmd0MHBiCi9OL1U1YkYycDVN
djBHVXBPKzljOWxSMlFya25aYmRTSms4NUt6UzFqa3gwN213bk5ybGZJSk9ua3JKRHljUnIwVkdr
SDdTWHRsM1IKN2x3VHdPVXlxSnh0K2xGN2RpT3BYV1h6KzNheWtjQW5FN21jZG0rTDdpWWM2Wk1i
Mmgxd0FzRCtsMGVXU3hvcjk3YTJ2Tnp6a3BRdgozZUVPT085blVyTm9IWmxBNWZLOEJFS3B5NFB0
RjJKUzZwcWppYm1zNE52dEJEZjNGUDFyMjdaTWdJWnBXSFpjbGkyYkNWYmEvbWE3CmdzejdjaWJ1
bG5aaWwrQWphVmpXME9LVGJkNEVkWm00NTE5M0QxTmJ0MHpLeTFtT1BPYmVuUVNNM0h3NmNRQUFJ
QUJKUkVGVTdmK2IKZDlvVmxmdUd1cFZzNHo4Wk13bDZjaGxoNnZ3dnJVV01WbkhLYXZQbDIxYXZ1
NVF3L1JUL3BQUHpacHZHK2puM1JTVVl6SGFVQUNiOQprclNkUHR0YTh1UC9YZGJPVEw1am1TL01w
RnpHa1g0bzQyR3EzK0swYU95bnJMRTI1Nnp0QyswMmxJbGx5c2oxOFFtUU03NXlDV1FDCmhvei9Y
N2ZiVmVxeVNuL2swcEdVazdHZE1abDlUd0thcEpTVHZubXUvWmZ4bEcweis0TGhOdFFmVzR1Mnc3
RjFaRDI1RkRZSGlMTCsKR0dZeWt1Qm42Smx0YXBsZnlpbnBkTjgrU2p2eU9OYVhpNnlIWnNOOVJ5
bDcyUmdmVzE5WmR0bitNdHRHZnl4TWJhc3BMOThMMmZmbQpzdUl2dHVQNDdXT0JjRmxYLzNGc0hF
MjFlOW5ueTlwUzQxRHF0cWpzc2UwNTIxSzI1L1JCTHYzT3ZhQUo4dit0dFZpV3hzcGJOQTZHCjVT
eXFZL0xzUlB1bjJqUFdiNm5EMlBmQkt2MlFzaVFDVXdMdHByWTNLWkY1SnYwNWVyQW9mYTJkSE9k
THRhVDhHdGIvYUc4QTcwKzAKeTJkekgxTm1qb2dzcVVyM2ZvNTBaa0tUaVdOU0pveVo2TzlHeW1R
OVI4enpwVCtWTXRIS3FmWCttWTY0M3JaZzJVeFdjbFQ3eG1PVAo2WFIySnNoNVAwZHAweGM1NjFR
Q3NldzgreWJsRXJsaG5hYktIZVlmZXoxY1J5NHp5OW14VE9BLzBUNG1NRWhLOEpxVTltVDltWGgx
CmwrMk45RWtwZTJyWnJDOWpMMk1pbDlzdE90TlZ5dHFxeGNuL1RjQ1M4VjNzcm1tL3hNc0VOVGt6
YnNwWnR0UjcwUThhbkZ6aTlLdWIKMjc3S3ZVR3ArK2ZhQ1VNQzJLeG5xcTNEa2hOb0ozQkt5cEgy
aksya2pQMnBmazViTXZuT2N2bnl6akxwc3hKY3JWcVhyVFdmL045bAo3VXl1Y2dhd0xMRm9ncmVz
MzVhTi9hazJwNzNaVm5QR0ozMmFkYVlmNHA4ekh2SExHWm1rVEFCWE1jaWtQaFAyUzl2eGs1U3l5
cThRCjVVeGZmc3dpLzdMZUJEcVpiQ1NWTnRhTXJiRjFaUHdrb015QmlLUUU1em1BY01HeDllUzlz
cTVsZnNrelRLZno5dEZ2eXlwOTJWK3UKbVBYZjZ6OWZOc1pyMXJkc2Z6a2NDMVBiYXI0UE12YkxB
YmQyNkhXQmFMK2UvZWRqNDZqa20ycjM4UE5sYmFseEtPc3NqNlhzcWUwNQorNng4MXlUb3pnR2Q3
TDl5VUNjSFFzdTJWOHJNNDFSNS9ieFR6MHNkUzc2ZGFQOVVlNmI2YmV6N1lEdjlVTnJta2NBaWdY
YlQyNXVVClNYWit6YXAvajBoL3pUbmwvL1UyQ1BsbSs2OU0wREtoeXlVOHgrYWcvZXl6bnVjSXhI
ZmJYeHpLbC9taWxKdlB5NWR3SmxabFVqWjEKaG1KUldUWHZaY2YzbCswUi81eUptRXFaZENWUVNP
Q1FDVU11a1lwZHFXTi8rUnk1elB2OVp1WnNTRkl1cjhobm4yeDN1RG1pRStmcwppUHQ1dDNKKy9M
OVQ1WDU4aWZwMzJpb2RUNWtZbHlQY09YT1RJMU9wWC81bFF2Ym43VmdwbC9FZFgyakJrNXBsYy9R
L1FXZktxekhvCnJ5WUJYajhZU3ZDY0kwM3BuenhtSFBjbng4TXZubjVadGMvVDV5V1ZzWnI2MTdT
MUxKZkgxQ3UvcmxaU0ppcGxqTlQwYzY4YVhSSHQKY09yYW5CZXIxcVVyWVBDZlplMGNaRnY1NWJL
eFg5UG00Y3JhSVhOU0tuWE9tRmpGSUphNWxDdVQrMXd1K0dJNzV2TzhwR3o3MlFiRwowdFRZR2x0
SGd2dHNWLzArelQ1cDBiNWxtZCtpdXAzTzIwZS9QYXYwWlgrNXFlZGx2Q1RmcXR0eXY2LzYrOHVV
TlJ3TC9iejV2TCt0CnB1L3o2NG5sWUVRKzcrK3o4cnFmeHNaUlA5OHF6L3YxNjdkbGpudnQ5dHhm
ZHc0dXBFOXlVR21ZYXNzYkxsZnp1bCtIdWUzdmw5VnYKVDk0ZjI4ZU1mUi9NNlllYTlzdHo1Z2tN
dnp0M1hTQ1hUcFNVQ1ZNR2ZJN0E1MGh1amk2V293QzVqQ1BYVitjeWhoeEpMRWY3eXJKegpIL005
bnFPTmkxSXVFOHNYZnpremtDL2JUQ2J5T3BkdlphSStOK1dVYjA1M2IrY0c5VXdLY3ZsRHpvTGtT
Mk5aNEpMSmUvelNsdklsCmQ4bXhDVWFaYzM2MW5jU2Yxd1lmS1N0QlNZTEVrbmRaRzJ2S1hiYnNk
dC8vb0hYUEYybzVRcmRLT1RYTHBrc3p1WXRyZ3VYK0YvSFUKdWpJK01tN1RwN0hyZ3FMMk1XZmFZ
cDhnYnpkVGpucGxRODY2YTlyYXIwc3VNOHhsUHdsb0U1dm1YNDRDSnMzdDUxWHJzclhXNWYvdAp0
M041cnZwUEZvMzk3YlE1NDdMOS84SzBxa0h1NzhyUjZGeURuak9iNVg2UWhZVnY4ODFsNjhqMTNR
bWVhOU1pdjBYN2p0TjUrK2hiCnJOcVgvV1Zybi9mSCtGNnNyOVFyMzJ2bDhzWHlYaDZYamV0OHRt
d2M1Yk9kVEhNY3RyTTlwKzVwZDg0V0ROTjJ5eHVXczhyck9lMHYKNittM1o2emZ4cjRQZHFJZXBU
NGVDVVFnODY0OVRabDBsNk04dVlrMEczazI2dHlzV0ZJcWxjc1pzak5PbWpycXQ1VnI5Zi9ta3Fj
Ywo4ZTJuZkFublpyUS9heWZtK2FuVS9NdmxZVW50MjB0L2tyZkxVUG1mZGhYZGRmS2xYZG54NSti
OEJHVExVdGFkZjBrSlduSVpSZ0tpClhLSzA3Q3hBam54a21SeTFLU2s3a2J5WHN6KzUwVEN2YzM5
SXppWmtFbHB6eWR0VXVXVmRPL21ZeTBES0dZVlNidHFSczFWVHFXYloKM1B3WWc2UThYelhsTXBO
Y3cvdFlPNDRUd09SMUxzTktuWE16OTI2bTlHTzZPSmRDMWJTMVg1Y0VUam1qbHFOOW1leVcremlT
WjI0LwpyMXFYZnIwV1BlKzNjOUhucTd5M2JPelBiZk93RHFzWVpQS2ZNNUg1aGNEQmJtbFk3TFpm
ajYwamRjMFoxZndyS2R0WURrd00weksvClliN3krblRkUGtyOTg3aEtYL2FYVytWNWY0enZ4ZnBL
M1hMamVRNnlqWDBIbGJ4NUhCdEgvWHc3OFh5T3czYTI1eGprT3ptWFdnN1QKZHNvYmxySHE2em50
ejdyNjdabnF0N0h2ZzduMVdMWGQ4bSsrd0xhLzU3S2pMS24vdkx5WHgvNFJsWkk5bHhFazZNZ3Yx
bVRDbTZOagpTYm5rSUVkaFNzb1hYd0tURzlzSjB2Qm9kSDk5L2VkbDJVV1AvYnFVeXhweTltVUlr
TXVzaGtmWk03RXJsMnZsVnk3SzhsblBvbkx6CmZpYjJKZldlZHBlbjVBL1A1YWhwV1hjc0htai8v
WERreHJlc0p6ZWZsNVFiVUpQeXhWNVNXV2VwWDRLVWZMSGtKcnVTRW96a3JNazEKN1djcHN3UWNh
WE91WlMrbjNXTmViUHR0VERsVDVTWlBxVVA2Y0ZrYXJpT1hLL1h6NTNYK0plWGVsN1EvdnhiV1di
U291VUUzdjE2eQpLUFhMenZXOVk4dm11dDZjWWN1WFMrNm5TQi8zSjEzOXNvWVdaZDNYdHZWTGY3
WnMzWGpOR2IyY2xVaUFtL2Y2S1cwc2wyYmwvWXlQCi9oZ1p2dTR2VzU0ZlBlYVMxd2x5cm0vWGww
QjBWYWNZWmp6a1Y1dXliT24vbEZ2VHo2bHJyeXBkSUZSZVQ5VWxZeVRCWGo5QXpucjcKYVZrN2t5
ZVhhdWJ5c1ZobXJHYmluRWxVU1dQOXRtenNWN2U1dDU0Y3NNakxXQ1NWai9JNFpkQXRjT3cvNVpy
elRCSlNWb0xyTWs1UwpWdjZWN2VIWUl0MVk2MitudzdFMTNBN0gxcEg3b0RLR2MwWXMrZkx2bCsz
MlZuNlFvTytaZTE2VzdUdEszZnFQcCt2MmtYNG8vVHJWCmwwUHJ0TDl2dG16ZnNXeU1UNjB2WTJI
Wi9qTHJIbzZGdENOanFLUjhMWlRYdVV3dSs2a2NIUzhwL1ovdHFiUy92Si9Ic1hHVU1xZmEKUGZ4
OHJDMVREdjE2NVhtLzdPeUh4NzREeTdMOXZzbjNaUzVGTEFkS1M1NDgxdXdmRm8yRGZobDUzcTlq
MXIyVDdVLzV5OW96MVc5agozd2RUL1pBMi9LN2RuL2ZuY2FtTFJHQ1p3SUY3NzczMzc1WjkyTDMv
Nkc4LzluRW1iTGxoTjE5Q1NYbk01RGNiYlRsdG1jdFJmdHNHCkZXVmp6SmRxSXZIOEpPa0Q3WmRh
TnZJY0djNmd6cldGV2I1TTdoT1k1SXV2dXdteXZSU2hmN05wemJxM2FuWGl2OE82WkNQTUJucGwK
dS83KzVEQS80WmM2NTdPY2ZVbkVuNVRnNkxtMmptbHV1MmgzaVVUdURja1I3Z1FQWldOUHVTa3ZH
MkM1Zkt4OTJSMHRTdHR6ZVUrTwpjT1pHeit3WXl5VmdXZTc1dHZ6czhPSXhUTGt4T2orTkdhZE1F
T09Tc3lDWmNOM1RUcGl6emt4Q0gyenpaZDM1bDRsdkpxUTU0NVQ2CnQ2dm8raUlXdVlFMW4rZkw1
ZWR0L2VPYlNVeHV2TXNwMk5LRy9OUm55a29aL1lscCtuaXMzTlR6OThlV3plUXNRVUoydU1PVXNz
czYKOG1XWkcrQXlYaktPeXMvOXBZMEpBRE5XVXVlTW43UW5lWE9tWWRHWFJOYlRMenRmR3FuRG9t
WGpsZ2xYZnNJMHBySElsM0RwajF4dQoxeTlyYUZIYWxPYWx6cm1CUFczTjY0eUwzUFRmYjN0c01z
N2VhVC9MNVNxWmZNUWcyMURhbDUxNC8zVW0yV1diS3V1SzBaTnR2Zk9ZCnkzVnkwM2V1NjAzZFU4
WXFUaG5EdjJycmsvR1Zmd25BVTVmOHFscjZmS3lmTTBGT1hkUHU5Rm0yNGZSTitpejlrdmZHNnBK
eC8rTjIKZThqMm5yTXd3elRXenVUTndZdXNQMmVka2plL3hCWHo5Rm42ZTZ6ZmxvMzlHSTYxT2Q1
cFk3YVYvRnBWT2pwdTZZUDJhWGNEZWZvMwo5MjlrN0Nlb1QzQzdhT3lsRGYyVWZVNzJieGwvNllO
TUNyTzlwdXhzSDdra0syMUsrOHA5Y3YwMlpqeGxIem9jVzhsVHRzTWMxVjIyCmp1eDdzcTFsMjhy
Mm16T3NPUk9kd0R5cHY2NnNQNy8wdFdqZnNaWDc1UC9HNW5UYlBycjlXTnZHc20xbW04ZytZbEZm
THR2bjljMFcKN1R2R3h2all0cHdiZ2g4OU51NFg3UzlUYm44L2svMUtMck5kdHEzbU95WGJUQ2Fn
NmYvY0U1SUJuWEdUL1VER1JUK05qZFVjOE1uMgprVzB6N1YvVTdyN0xidTc3YzJBdDlWbjJIWmcy
Wlp2SkFhcDhCMmI3enRuZy9CcFcvenV2dFAxMCtPNGJhODlVdjNYenEzYk1ML28rCnlOZ2YyNTlu
djUrRHFCa3J5NjdLS0k0ZXp4Q0IyKzRkYmVpKysrKy92OTMwUnRJL2ZuL2t3NTM1S0J0K0xrZkts
MVFtNnUzTDduNlEKUlR1QW5WbmorcFdTTDdsTUxHS3cweWtkbko5VXpGbVgzR2RUVXQ3UCtqSnB5
OXRENzB6U3lobXFza3ovY1ZtNS9UeFR6NmZXTVZ3KwpYNlQ1Y290VnJ5bkRiTjNyWWRtckxEc3Nj
RmpXOFBPOFR2bVprSlUwZkYzZTM2bkhzdDBzY3FodGE0NVlKVUJyaDBjM3ljMVl5T1FtCms5RnlK
ckI5YStINHFXM0hXRjJ5dmt5VTh2UEt5OUpVTzFPL2pOM3NONFlXeS9vdHk0eU4vYmx0SHJabHpH
Q1lOeE95c2kwdWF0TXcKLzdJMkR2UDFYNCt0STIxUE1Kbkp4akNWZFUzNURaZkw2K0gyTUh5OWFK
azU3MDJObTlyOXlMQU9xL1JsbGkxbXczTDZyM2VycnYxMQoxRHpQZUV2d2t2MStUZitNamFPcGRr
OTlQcXp2S3U3RHNqTmVGMzBIWmgzLzJQN2tmMzRJNWpQdFBpanRXVFR1aDNVWksyK1lkOW5yCllS
Mlg1U3Z2MTdhL3BqM0wrcTNtKzJDc0hnbHdhL3hLbXp4dXVNQmYzai9hd0hhek8vVXBrWFZKNVdo
YmVYMm1QT2JJeEc2bFRMUVcKM2NTZjk1UDZSK2kzM3RuNjcxandrUnpMeXUyWE1mVjhhaDNENVRQ
QnY3QlVmUGpoNFBXdzdGV1dIUlExR29pVnZQM2dJKzhOWDVkOApPL1hZMzI2R1pkYTBOVWZLY2lh
eS9NRzhVa1o0KytOeGJqK1AxU1gzZnBVemdXWDl3OGVwZHBiOGl6YWg0UmdvZWNzUVdqYjI1N2E1
CnJLYzhqaG1VUE9XeEJCOTV2YWhOSlY5NVhOYkc4dm1peDdGMXBPM0xKaEZsWFZOK2k5WTUzQjZH
cnhjdE0rZTlxWEZUdXg4WjFtR1YKdnN5eXhXeFlUdi8xYnRXMXY0NmE1eGx2cGI0MS9UTTJqa281
eTlZNzlmbHd1VlhjaDJYWGJNOXBTNzg5dy9YM1g5ZVUxOCsvNlBtdwpqb3Z5OU45YnBmMVpicXc5
L1hhV2ZVenQ5OEZZUFpidE4vcnQ4SnhBRVZpTEFLUlV4aU1CQW5zbmtNdWtjamxrL3ZoY0xzSElV
YkVjCitjNGxDNHNDMXQyb1dZS1BaVUhBYnF4UG1RUUlFQ2dDT1pPUnMwKzVmR2dUMHB6MnJNUDN3
U2IwZ1RiVUN3aEE2cTNrSkxCUkFybFcKOS85cy94N09TKzAxejdrR09qOFh2RmVCUjRFVWZCUUpq
d1FJN0xWQTk0ZG5qOTEvbHZ1dEZ0MkR1ZGQxbXJPK09lMVpoKytET1cyMwo3T2tuSUFBNS9mcE1q
UW5zbUVBQ2dOd29MUkVnUU9CTUU4aVBoR3hTbXRzZTN3ZWJOQnJXdnkzbDhyLzFyNmthRWlCQWdB
QUJBZ1FJCkVDQncyZ3NJUUU3N0x0UUFBZ1FJRUNCQWdBQUJBcWVQd1BRbFdCTS9vM1g2TkZWTkNS
QWdRSUFBQVFJRUNCQTQxUUxPZ0p6cUhyQisKQWdRSUVDQkFnQUFCQW1lUWdBRGtET3BzVFNWQWdB
QUJBZ1FJRUNCd3FnVUVJS2U2QjZ5ZkFBRUNCQWdRSUVDQXdCa2tJQUE1Z3pwYgpVd2tRSUVDQUFB
RUNCQWljYWdFQnlLbnVBZXNuUUlBQUFRSUVDQkFnY0FZSkNFRE9vTTdXVkFJRUNCQWdRSUFBQVFL
bldrQUFjcXA3CndQb0pFQ0JBZ0FBQkFnUUluRUVDQXBBenFMTTFsUUFCQWdRSUVDQkFnTUNwRmhD
QW5Pb2VzSDRDQkFnUUlFQ0FBQUVDWjVDQUFPUU0KNm14TkpVQ0FBQUVDQkFnUUlIQ3FCUVFncDdv
SHJKOEFBUUlFQ0JBZ1FJREFHU1FnQURtRE9sdFRDUkFnUUlBQUFRSUVDSnhxQVFISQpxZTRCNnlk
QWdBQUJBZ1FJRUNCd0Jna0lRTTZnenRaVUFnUUlFQ0JBZ0FBQkFxZGFRQUJ5cW52QStna1FJRUNB
QUFFQ0JBaWNRUUlICnA5cjYvZTlQNWZBNUFRSTdMWEQvL1R0ZG92SUlFQ0JBZ0FBQkF1c2hNQm1B
cEpvbVErdlJXV3B4WmdnSStzK01mdFpLQWdRSUVDQncKcGdxNEJPdE03WG50SmtDQUFBRUNCQWdR
SUhBS0JBUWdwd0RkS2drUUlFQ0FBQUVDQkFpY3FRSUNrRE8xNTdXYkFBRUNCQWdRSUVDQQp3Q2tR
cUxvSHBMWmUvK2svL2FmYXJQSVJPT01FL3Zadi8vYU1hN01HRXlCQWdBQUJBZ1NHQXM2QURFVzhK
a0NBQUFFQ0JBZ1FJRUJnCjF3UUVJTHRHcTJBQ0JBZ1FJRUNBQUFFQ0JJWUNBcENoaU5jRUNCQWdR
SUFBQVFJRUNPeWFnQUJrMTJnVlRJQUFBUUlFQ0JBZ1FJREEKVUVBQU1oVHhtZ0FCQWdRSUVDQkFn
QUNCWFJNUWdPd2FyWUlKRUNCQWdBQUJBZ1FJRUJnS0NFQ0dJbDRUSUVDQUFBRUNCQWdRSUxCcgpB
Z0tRWGFOVk1BRUNCQWdRSUVDQUFBRUNRd0VCeUZERWF3SUVDQkFnUUlBQUFRSUVkazFBQUxKcnRB
b21RSUFBQVFJRUNCQWdRR0FvCklBQVppbmhOZ0FBQkFnUUlFQ0JBZ01DdUNRaEFkbzFXd1FRSUVD
QkFnQUFCQWdRSURBVUVJRU1ScndrUUlFQ0FBQUVDQkFnUTJEVUIKQWNpdTBTcVlBQUVDQkFnUUlF
Q0FBSUdoZ0FCa0tPSTFBUUlFQ0JBZ1FJQUFBUUs3SmlBQTJUVmFCUk1nUUlBQUFRSUVDQkFnTUJR
UQpnQXhGdkNaQWdBQUJBZ1FJRUNCQVlOY0VCQ0M3UnF0Z0FnUUlFQ0JBZ0FBQkFnU0dBZ0tRb1lq
WEJBZ1FJRUNBQUFFQ0JBanNtb0FBClpOZG9GVXlBQUFFQ0JBZ1FJRUNBd0ZCQUFESVU4Wm9BQVFJ
RUNCQWdRSUFBZ1YwVEVJRHNHcTJDQ1JBZ1FJQUFBUUlFQ0JBWUNnaEEKaGlKZUV5QkFnQUFCQWdR
SUVDQ3dhd0lDa0YyalZUQUJBZ1FJRUNCQWdBQUJBa01CQWNoUXhHc0NCQWdRSUVDQUFBRUNCSFpO
UUFDeQphN1FLSmtDQUFBRUNCQWdRSUVCZ0tDQUFHWXA0VFlBQUFRSUVDQkFnUUlEQXJna0lRSGFO
VnNFRUNCQWdRSUFBQVFJRUNBd0ZCQ0JECkVhOEpFQ0JBZ0FBQkFnUUlFTmcxQVFISXJ0RXFtQUFC
QWdRSUVDQkFnQUNCb1lBQVpDamlOUUVDQkFnUUlFQ0FBQUVDdXlZZ0FOazEKV2dVVElFQ0FBQUVD
QkFnUUlEQVVFSUFNUmJ3bVFJQUFBUUlFQ0JBZ1FHRFhCQVFndTBhcllBSUVDQkFnUUlBQUFRSUVo
Z0lDa0tHSQoxd1FJRUNCQWdBQUJBZ1FJN0pxQUFHVFhhQlZNZ0FBQkFnUUlFQ0JBZ01CUVFBQXlG
UEdhQUFFQ0JBZ1FJRUNBQUlGZEV4Q0E3QnF0Cmdna1FJRUNBQUFFQ0JBZ1FHQW9JUUlZaVhoTWdR
SUFBQVFJRUNCQWdzR3NDQXBCZG8xVXdBUUlFQ0JBZ1FJQUFBUUpEQVFISVVNUnIKQWdRSUVDQkFn
QUFCQWdSMlRVQUFzbXUwQ2laQWdBQUJBZ1FJRUNCQVlDZ2dBQm1LZUUyQUFBRUNCQWdRSUVDQXdL
NEpDRUIyalZiQgpCQWdRSUVDQUFBRUNCQWdNQlFRZ1F4R3ZDUkFnUUlBQUFRSUVDQkRZTlFFQnlL
N1JLcGdBQVFJRUNCQWdRSUFBZ2FIQXdlRWJjMTcvCjdkLys3WnpGTFV1QUFBRUNCQWdRSUVDQXdJ
WUxPQU95NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFM
TGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhr
RUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNC
QWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFF
Q0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWts
QUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5
b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJ
RUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJRUNB
QUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUK
Tmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFz
dUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNl
UVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJ
RUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFR
SUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NV
QUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRy
MmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJB
Z1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlB
QUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdR
MlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFD
eTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4
NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFn
UUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFC
QWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpK
UUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpP
dmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVD
QkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFn
QUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNC
RFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFB
TExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJI
a0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVD
QkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFB
RUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFr
bEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2
OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdR
SUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVD
QUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlF
Ck5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFB
c3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJz
ZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdR
SUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWE9CZ1RmdSsvLzJhWFBJUUlFQ0FB
QUVDCkJBZ1FJRUJnWEdBeUFMbi8vdkVDZkVxQUFBRUNCQWdRSUVDQUFJRmFBWmRnMVVySlI0QUFB
UUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWcKUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdR
SUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRQpDQkFnUUlBQUFRS3pC
UVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtv
QUFBUUlFCkNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNC
QWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUEKQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFR
SUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQQpBUUlFQ05RS0NF
QnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRB
QUFRSUVDQkFnClFJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JB
Z1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWcKUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFL
ekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRQpaZ3NJUUdZ
VEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlF
Q0JBZ1FJQUFBUUsxCkFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFB
QVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEEKQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFL
Q0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQQoxRXJK
UjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVD
QkFnUUlBQWdka0NBcERaCmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFB
UUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWksKUGdJRUNCQWdRSUFBQVFJRVpnc0lR
R1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQQpB
UUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJ
QUFBUUlFYWdVRUlMVlM4aEVnClFJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNO
UUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWcKUUlBQUFRSUVDQkNvRlJDQTFF
ckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJ
RQpDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlB
QUFRS3pCUVFnc3drVlFJQUFBUUlFCkNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdz
SVFHWVRLb0FBQVFJRUNCQml2a2psQUFBU08wbEVRVlFnUUlBQWdWb0IKQVVpdGxId0VDQkFnUUlB
QUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZ
TFNBQQptVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREti
VUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxCnBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFn
UUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeEMKQlJBZ1FJQUFBUUlF
Q0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldR
QUJTS3lVZgpBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQ
Z0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBCkFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdR
SUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWcKUUlBQUFRSUVD
QkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0QUFE
S2JVQUVFQ0JBZwpRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NC
QWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFCkNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFR
SUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUUKQ0JBZ1FL
QldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZa
S1BnSUVDQkFnUUlBQQpBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JB
Z1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBCkFRSzFBZ0tRV2luNUNCQWdRSUFBQVFJ
RUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWcKTUZ0
QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVD
Q0JBZ1FJQUFBUUlFQ0JDbwpGUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdRSUFB
QVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDCkFwRFpoQW9nUUlBQUFRSUVDQkFn
UUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUEK
cEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VD
QkFnUUlBQUFRSUVDTXdXRUlETQpKbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUFB
UUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTCjhoRWdRSUFBQVFJRUNCQWdN
RnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05x
RUMKQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJ
QUFBUUlFQ0JBZ1VDc2dBS21Wa284QQpBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNC
QWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBCkFRSUVDQkFnUUlCQXJZ
QUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3
RUNCQWcKUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlB
QUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZwpRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JB
Z01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFCkNCQWdRR0MyZ0FC
a05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFn
UUlBQUFRSUUKQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlF
Q0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQQpBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJB
cllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBCmdWb0JBVWl0
bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWdR
SUFBQVFJRUNCQ1kKTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVD
QkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RSwpDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJn
QUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCCnlHeENC
UkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFR
SUVDQkFnUUtCV1FBQlMKS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJ
QkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVApLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFV
aXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41CkNC
QWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJ
RUNCQWdNRnRBQURLYlVBRUUKQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdD
MmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQQpBUUlFQ0JBZ1FJREFiQUVCeUd4
Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFB
CkFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFn
UUlCQXJZQUFwRlpLUGdJRUNCQWcKUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9C
QVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZwpRSUFBQVFLMUFnS1FXaW41
Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFB
UUlFCkNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdR
R0MyZ0FCa05xRUNDQkFnUUlBQUFRSUUKQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5
R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQQpnZGtDQXBEWmhBb2dR
SUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNC
QWdRSUJBCnJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdW
b0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1cKRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdp
bjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRQpJTFZTOGhFZ1FJ
QUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JB
Z1FHQzJnQUJrCk5xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFF
QnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVYKa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFv
Z1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVgpRSUFBQVFJ
RUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFB
Z1ZvQkFVaXRsSHdFCkNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tR
V2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUUKQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVn
UUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQQpBUUlF
Q0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFi
QUVCeUd4Q0JSQWdRSUFBCkFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpo
QW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWcKUUlBQUFRS3pCUVFnc3drVlFJQUFB
UUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZwpR
SUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFn
S1FXaW41Q0JBZ1FJQUFBUUlFCkNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzho
RWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUUKQ05RS0NFQnFwZVFqUUlBQUFR
SUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlE
QQpiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBE
WmhBb2dRSUFBQVFJRUNCQWdRS0JXClFBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlB
QUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0kKUUdZVEtvQUFBUUlFQ0JB
Z1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsx
QWdLUQpXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZT
OGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiClVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFB
QVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckoKUjRBQUFRSUVDQkFn
UUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NB
cERaaEFvZwpRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZR
SUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFCkNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVD
QkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUUKQ0JBZ1FJQUFB
UUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlM
VlM4aEVnUUlBQQpBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJ
QUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBCkFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNC
QWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWcKUUlBQWdk
a0NBcERaaEFvZzhQKzNYNGMyQUFBQUNNUCsvNW9YbG1EckNhSnVCQWdRSUVDQUFBRUNCS3FBQUts
U2RnUUlFQ0JBZ0FBQgpBZ1FJM0FJQzVDWjBRSUFBQVFJRUNCQWdRSUJBRlJBZ1ZjcU9BQUVDQkFn
UUlFQ0FBSUZiUUlEY2hBNElFQ0JBZ0FBQkFnUUlFS2dDCkFxUksyUkVnUUlBQUFRSUVDQkFnY0Fz
SWtKdlFBUUVDQkFnUUlFQ0FBQUVDVlVDQVZDazdBZ1FJRUNCQWdBQUJBZ1J1QVFGeUV6b2cKUUlB
QUFRSUVDQkFnUUtBS0NKQXFaVWVBQUFFQ0JBZ1FJRUNBd0MwZ1FHNUNCd1FJRUNCQWdBQUJBZ1FJ
VkFFQlVxWHNDQkFnUUlBQQpBUUlFQ0JDNEJRVElUZWlBQUFFQ0JBZ1FJRUNBQUlFcUlFQ3FsQjBC
QWdRSUVDQkFnQUFCQXJlQUFMa0pIUkFnUUlBQUFRSUVDQkFnClVBVUVTSld5STBDQUFBRUNCQWdR
SUVEZ0ZoQWdONkVEQWdRSUVDQkFnQUFCQWdTcWdBQ3BVbllFQ0JBZ1FJQUFBUUlFQ053Q0F1UW0K
ZEVDQUFBRUNCQWdRSUVDQVFCVVFJRlhLamdBQkFnUUlFQ0JBZ0FDQlcwQ0EzSVFPQ0JBZ1FJQUFB
UUlFQ0JDb0FnS2tTdGtSSUVDQQpBQUVDQkFnUUlIQUxDSkNiMEFFQkFnUUlFQ0JBZ0FBQkFsVkFn
RlFwT3dJRUNCQWdRSUFBQVFJRWJnRUJjaE02SUVDQUFBRUNCQWdRCklFQ2dDZ2lRS21WSGdBQUJB
Z1FJRUNCQWdNQXRJRUJ1UWdjRUNCQWdRSUFBQVFJRUNGUUJBVktsN0FnUUlFQ0FBQUVDQkFnUXVB
VUUKeUUzb2dBQUJBZ1FJRUNCQWdBQ0JLaUJBcXBRZEFRSUVDQkFnUUlBQUFRSzNnQUM1Q1IwUUlF
Q0FBQUVDQkFnUUlGQUZCRWlWc2lOQQpnQUFCQWdRSUVDQkE0QllRSURlaEF3SUVDQkFnUUlBQUFR
SUVxb0FBcVZKMkJBZ1FJRUNBQUFFQ0JBamNBZ0xrSm5SQWdBQUJBZ1FJCkVDQkFnRUFWRUNCVnlv
NEFBUUlFQ0JBZ1FJQUFnVnRBZ055RURnZ1FJRUNBQUFFQ0JBZ1FxQUlDcEVyWkVTQkFnQUFCQWdR
SUVDQncKQ3dpUW05QUJBUUlFQ0JBZ1FJQUFBUUpWUUlCVUtUc0NCQWdRSUVDQUFBRUNCRzRCQVhJ
VE9pQkFnQUFCQWdRSUVDQkFvQW9Ja0NwbApSNEFBQVFJRUNCQWdRSURBTFNCQWJrSUhCQWdRSUVD
QUFBRUNCQWhVQVFGU3Bld0lFQ0JBZ0FBQkFnUUlFTGdGQk1oTjZJQUFBUUlFCkNCQWdRSUFBZ1Nv
Z1FLcVVIUUVDQkFnUUlFQ0FBQUVDdDRBQXVRa2RFQ0JBZ0FBQkFnUUlFQ0JRQlFSSWxiSWpRSUFB
QVFJRUNCQWcKUU9BV0VDQTNvUU1DQkFnUUlFQ0FBQUVDQktxQUFLbFNkZ1FJRUNCQWdBQUJBZ1FJ
M0FJREIwaW9JUkF1TitvQUFBQUFTVVZPUks1QwpZSUk9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52734</attachid>
            <date>2010-04-07 06:55:11 -0700</date>
            <delta_ts>2010-05-17 11:06:22 -0700</delta_ts>
            <desc>Patch8</desc>
            <filename>bug6649734-8.txt</filename>
            <type>text/plain</type>
            <size>140144</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzE5NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMzIEBACisyMDEwLTA0LTA2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91
dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udCAoNjI3NCkuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzQ+CisgICAgICAgIAorICAgICAgICBJbiBvcmRlciB0byBi
ZSBhYmxlIHRvIGhhbmRsZSBzdWNjZXNzZnVsbHkgdGhpcyBjYXNlLCBpdCBpcyBuZWNlc3Nhcnkg
dG8gY2hhbmdlIHRoZSBnbHlwaCB3aWR0aCBjYWNoZSB0byBzdG9yZQorICAgICAgICB0aGUgYm91
bmRpbmcgYm94IGZvciB0aGUgZ2x5cGggaW5zdGVhZCBvZiB0aGUgc2ltcGx5IGNhY2hpbmcgdGhl
IGdseXBoIHdpZHRoLgorICAgICAgICBSZXRyaWV2aW5nIHRoZSBib3VuZGluZyBib3ggZm9yIHRo
ZSBnbHlwaCBpcyBleHBlbnNpdmUsIHRoZXJlZm9yZSB3ZSBkbyBpdCBvbmx5CisgICAgICAgIHdo
ZW4gd2UgYXJlIHJlbmRlcmluZyB0ZXh0IHVzaW5nIHRoZSBjb21wbGV4IHRleHQgcGF0aCB0byBt
aW5pbWl6ZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgorICAgICAgICBUbyBzdXBwb3J0IGNoYXJh
Y3RlcnMgd2l0aCBzdGFja2VkIGRpYWNyaXRpY3MsIHRoZSBtZXRob2QgY2FuVXNlR2x5cGhDYWNo
ZSBoYXMgYmVlbiBtb2RpZmllZCB0bworICAgICAgICByZXR1cm4gZmFsc2UgZm9yIHRoZSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIHdpdGggc3RhY2tlZCBkaWFjcml0aWNzLgorICAgICAgICBUaGUgZ2x5
cGggY2FjaGUgaGFzIGJlZW4gYWxzbyB1cGRhdGVkIHRvIGFsbG93IHN0b3JpbmcgdGhlIGdseXBo
IGJvdW5kaW5nIGJveCB0b2dldGhlciB3aXRoIHRoZQorICAgICAgICBob3Jpem9udGFsIHdpZHRo
LiBUaGUgYm91bmRpbmcgYm94IGlzIHBvcHVsYXRlZCBvbmx5IGZvciBjb21wbGV4IHRleHQuCisg
ICAgICAgIAorICAgICAgICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhhcyBi
ZWVuIHdyaXR0ZW4gYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGFp
bnQvc3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IEZpbGUg
bmFtZSBjaGFuZ2UuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEZpbGUgbmFtZSBjaGFuZ2Uu
CisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogQWRkZWQgcGFyYW1ldGVyIGluIGV4cG9ydGVk
IGZ1bmN0aW9uLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRmlsZSBuYW1lIGNoYW5nZS4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRmlsZSBuYW1lIGNoYW5nZS4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEZpbGUgbmFtZSBj
aGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogQWRkZWQgZ2x5cGhPdmVyZmxvdyBwYXJhbWV0ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6
R2x5cGhPdmVyZmxvdzo6R2x5cGhPdmVyZmxvdyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6d2lkdGgpOiBBZGRlZCBnbHlwaE92ZXJmbG93IHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6Y2FuVXNlR2x5cGhDYWNoZSk6IE1vZGlmaWVkIHRvIHJlbmRlciBjaGFyYWN0ZXJzIHdpdGgg
c3RhY2tlZCBkaWFjcml0aWNzIHdpdGggY29tcGxleCB0ZXh0IHBhdGguCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcDogQ29waWVkIGZyb20gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6Okds
eXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZVNsb3dDYXNlKTogQ2xhc3MgbmFtZSBjaGFuZ2VkIHRv
IHJlZmxlY3QgbmV3IHNlbWFudGljcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aE1ldHJpY3NNYXAuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmguCisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6OkdseXBoTWV0
cmljc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaE1ldHJpY3NNYXA6On5HbHlwaE1ldHJp
Y3NNYXApOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjptZXRyaWNzRm9yR2x5
cGgpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNZXRyaWNzTWFwOjp3aWR0aEZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6c2V0TWV0cmljc0ZvckdseXBoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6bWV0
cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6R2x5cGhN
ZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
TWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZTo6c2V0TWV0cmljc0ZvckluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdseXBoTWV0cmljc01hcDo6bG9jYXRlUGFnZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVGb250RGF0YTo6bWV0cmljc0ZvckdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9TaW1wbGVGb250RGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVy
ZSBjaGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9t
aXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4
VGV4dCk6IEFkZGVkIHBhcmFtZXRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250TGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZmxvYXRXaWR0aEZv
ckNvbXBsZXhUZXh0KTogQWRkZWQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKTogTmFtZSBhbmQg
c2lnbmF0dXJlIGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9T
aW1wbGVGb250RGF0YUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgpOiBOYW1lIGFuZCBzaWduYXR1cmUgdmFjaGFuZ2UKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvRm9udEVmbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQpOiBOYW1lIGFuZCBzaWduYXR1cmUg
Y2hhbmdlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9TaW1wbGVGb250RGF0YVBh
bmdvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJp
Y3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVyZSBjaGFuZ2UuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaGFpa3UvRm9udEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6
OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtZXRlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaCk6IE5hbWUg
YW5kIHNpZ25hdHVyZSBjaGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENv
bnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21w
bGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBoc0FuZEFkdmFuY2VzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1pbkdseXBoQm91bmRpbmdCb3hYKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0Jv
eFgpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjptaW5HbHlwaEJv
dW5kaW5nQm94WSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6Om1h
eEdseXBoQm91bmRpbmdCb3hZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENvbXBsZXhUZXh0TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtdGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZv
bnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVyZSBjaGFu
Z2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtdGVy
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVkIHBhcmFtZXRl
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDR1dpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9y
R2x5cGgpOiBOYW1lIGFuZCBzaWduYXR1cmUgY2hhbmdlLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1w
bGVGb250RGF0YTo6bWV0cmljc0ZvckdESUdseXBoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlz
Y3JpYmVDb250cm9sbGVyOjpVbmlzY3JpYmVDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5kUGxhY2VJdGVtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFgpOgorICAgICAgICAo
V2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGluZ0JveFgpOgorICAg
ICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWluR2x5cGhCb3VuZGluZ0JveFkp
OgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6bWF4R2x5cGhCb3VuZGlu
Z0JveFkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5jZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQpOiBBZGRl
ZCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFd4LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dCk6IEFkZGVk
IHBhcmFtZXRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0
YVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJp
Y3NGb3JHbHlwaCk6IE5hbWUgYW5kIHNpZ25hdHVyZSBjaGFuZ2UuCisgICAgICAgICogcmVuZGVy
aW5nL0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6
cGxhY2VCb3hlc0hvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94
Ojpjb21wdXRlTG9naWNhbEJveEhlaWdodHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxv
d0JveDo6Y29tcHV0ZVZlcnRpY2FsT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnNldEZhbGxi
YWNrRm9udHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6ZmFsbGJhY2tGb250
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpzZXRHbHlwaE92ZXJmbG93KToK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmdseXBoT3ZlcmZsb3cpOgorICAgICAg
ICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVU
ZXh0Qm94OjpjbGVhckdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRNYXApOiBBZGRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0OjpSZW5kZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnN0eWxl
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnRyaW1tZWRQcmVmV2lkdGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHQ6OnNldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dDo6d2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisKIDIwMTAtMDQt
MDYgIEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL0FuZHJvaWQubWsKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9BbmRyb2lkLm1rCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvQW5kcm9p
ZC5tawkod29ya2luZyBjb3B5KQpAQCAtNDM2LDcgKzQzNiw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6
PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5j
cHAgXAogCXBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmNwcCBcCiAJcGxhdGZvcm0v
Z3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwIFwKLQlwbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFdpZHRoTWFwLmNwcCBcCisJcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcCBc
CiAJcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuY3BwIFwKIAlwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cCBcCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
R05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkod29ya2luZyBjb3B5KQpAQCAtMTYxMSw4ICsxNjExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggXAogCVdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmggXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAgXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhXaWR0aE1hcC5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01h
cC5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmggXAog
CVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYWRpZW50LmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdl
YkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtOTA4LDcgKzkwOCw3IEBA
IF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWcKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlM3VybEV2CiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZThtaW1lVHlwZUV2CiBfX1pOSzdXZWJDb3JlMjZOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlcjZpc0RvbmVFdgotX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRoRVJLTlNfN1RleHRS
dW5FUE4zV1RGN0hhc2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83UHRySGFzaElTOF9F
RU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVFRQorX19aTks3V2ViQ29yZTRGb250MTBmbG9hdFdpZHRo
RVJLTlNfN1RleHRSdW5FUE4zV1RGN0hhc2hTZXRJUEtOU18xNFNpbXBsZUZvbnREYXRhRU5TNF83
UHRySGFzaElTOF9FRU5TNF8xMEhhc2hUcmFpdHNJUzhfRUVFRVBOU18xM0dseXBoT3ZlcmZsb3dF
CiBfX1pOSzdXZWJDb3JlNEZvbnQxMXByaW1hcnlGb250RXYKIF9fWk5LN1dlYkNvcmU0Rm9udDhk
cmF3VGV4dEVQTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183VGV4dFJ1bkVSS05TXzEwRmxvYXRQ
b2ludEVpaQogX19aTks3V2ViQ29yZTRLVVJMMTFjcmVhdGVDRlVSTEV2CkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNp
b24gNTcxNzQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjMy
Miw4ICsyMzIyLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZl
ci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmgn
LAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwJywKLSAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShy
ZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNzc2LDExICsyMjc3NiwxMSBAQAogCQkJCQk+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcR2x5cGhXaWR0aE1hcC5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXEdseXBoTWV0cmljc01hcC5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJ
PEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR2x5cGhXaWR0
aE1hcC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xHbHlwaE1l
dHJpY3NNYXAuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1NzE3NCkK
KysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zODk4LDggKzM4OTgsNiBAQAogCQlCMkMzREE2QzBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEQTVCMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQzNEQTZEMEQwMDZDRDYw
MEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMzREE1QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQ
YWdlVHJlZU5vZGUuY3BwICovOyB9OwogCQlCMkMzREE2RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5
cGhQYWdlVHJlZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyQzNEQTVEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUIyQzNEQTZG
MEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEQTVFMEQwMDZDRDYwMEVGNkYyNiAvKiBH
bHlwaFdpZHRoTWFwLmNwcCAqLzsgfTsKLQkJQjJDM0RBNzAwRDAwNkNENjAwRUY2RjI2IC8qIEds
eXBoV2lkdGhNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEQTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFwLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjJDOTZEOEQwQjNBRjJC
NzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNT
VkdQYXRoU2VnQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQjJDQjkyNDIwQjVCRDk2NjAwOUJBQTc4IC8q
IEpTU1ZHRWxlbWVudEluc3RhbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQ0I5MjNCMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJ
bnN0YW5jZS5jcHAgKi87IH07CiAJCUIyQ0I5MjQ0MEI1QkQ5NzAwMDlCQUE3OCAvKiBKU1NWR0Vs
ZW1lbnRJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJDQjkyM0MwQjVCRDk0MTAwOUJBQTc4IC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlLmgg
Ki87IH07CkBAIC00NzAwLDYgKzQ2OTgsOCBAQAogCQlDNTE2MEVFQjEwMDQ1NDNBMDBBN0NFRTIg
LyogU3RvcmFnZUFyZWFJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNTE2MEVFOTEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmgg
Ki87IH07CiAJCUM1NUUzOEJGMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1w
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4
QkIxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmggKi87IH07CiAJCUM1
NUUzOEMwMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQzEwMDQwRDVE
MDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovOyB9OworCQlDNUQ0QUE3OTEx
NkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RDRBQTc3MTE2QkFGQjYwMDY5Q0E5MyAvKiBH
bHlwaE1ldHJpY3NNYXAuY3BwICovOyB9OworCQlDNUQ0QUE3QTExNkJBRkI2MDA2OUNBOTMgLyog
R2x5cGhNZXRyaWNzTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNUQ0QUE3ODExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzVFOUI2Nzcx
MDY5N0UxMzAwQzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFOUI2NzYxMDY5N0UxMzAwQzdC
QjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwICovOyB9OwogCQlDNUVCREQ4NDEwNUVE
REVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8q
IFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIw
QTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlm
eVNlbGVjdGlvbkxpc3RMZXZlbC5oICovOyB9OwpAQCAtOTIyMiw4ICs5MjIyLDYgQEAKIAkJQjJD
M0RBNUIwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHbHlwaEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCMkMzREE1QzBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdseXBoUGFnZVRyZWVOb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJDM0RBNUQwRDAwNkNENjAwRUY2RjI2
IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHbHlwaFBhZ2VUcmVlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkMz
REE1RTBEMDA2Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2x5cGhXaWR0aE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUIyQzNEQTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRoTWFw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaFdpZHRoTWFwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyQzk2RDhDMEIzQUYyQjcwMDVFODBFQyAvKiBK
U1NWR1BhdGhTZWdDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIyQ0I5MjNCMEI1QkQ5NDEwMDlCQUE3OCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFuY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkNCOTIzQzBCNUJEOTQxMDA5QkFB
NzggLyogSlNTVkdFbGVtZW50SW5zdGFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU1ZHRWxlbWVudEluc3RhbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDA2MSw2ICsxMDA1OSw4IEBACiAJCUM1MTYwRUU5MTAwNDU0M0EwMEE3Q0VFMiAvKiBT
dG9yYWdlQXJlYUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZUFyZWFJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NUUzOEJCMTAwNDBE
NUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNTVFMzhCQzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUlt
cGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNUQ0QUE3NzExNkJB
RkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEdseXBoTWV0cmljc01hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM1RDRBQTc4MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhNZXRyaWNzTWFwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9y
YWdlRXZlbnREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1
MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNDY0NCwxMCArMTQ2NDQsMTAgQEAKIAkJCQlCQzIzRjBEQTBEQUZGNEE0MDA5
RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBG
NDEgLyogR2VuZXJhdG9yLmggKi8sCiAJCQkJQjJDM0RBNUIwRDAwNkNENjAwRUY2RjI2IC8qIEds
eXBoQnVmZmVyLmggKi8sCisJCQkJQzVENEFBNzcxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0
cmljc01hcC5jcHAgKi8sCisJCQkJQzVENEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0
cmljc01hcC5oICovLAogCQkJCUIyQzNEQTVDMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VU
cmVlTm9kZS5jcHAgKi8sCiAJCQkJQjJDM0RBNUQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFn
ZVRyZWVOb2RlLmggKi8sCi0JCQkJQjJDM0RBNUUwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoV2lk
dGhNYXAuY3BwICovLAotCQkJCUIyQzNEQTVGMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFdpZHRo
TWFwLmggKi8sCiAJCQkJQkM1M0M2MDcwREE1NkM1NzAwMjFFQjVEIC8qIEdyYWRpZW50LmNwcCAq
LywKIAkJCQlCQzUzQzVGNDBEQTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCAqLywKIAkJCQlC
MkEwMTU5MjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKQEAgLTE3
MzkyLDcgKzE3MzkyLDYgQEAKIAkJCQlGRTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9z
aXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZDMEQwMDZDRDYwMEVGNkYyNiAvKiBH
bHlwaEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNkUwRDAwNkNENjAwRUY2RjI2
IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMkMzREE3MDBEMDA2
Q0Q2MDBFRjZGMjYgLyogR2x5cGhXaWR0aE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0M1
RjUwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
Nzk2NDBEMDBCRjIyMDA3MUI3ODIgLyogR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKQEAgLTE4ODE0LDYgKzE4ODEzLDcgQEAKIAkJCQk4OTUyNTM1MzExNjQxQjM0
MDBDQUJGMDAgLyogRmlsZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1
RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI1NDJGNERC
MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQzVENEFBN0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0xOTYzMSw3ICsxOTYzMSw2IEBACiAJCQkJNTlDNzdGMkExMDU0NUIzQjAw
NTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjJDM0RBNkQwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9k
ZU1hYy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMkMzREE2RjBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhXaWR0aE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzUzQzYwODBEQTU2QzU3MDAy
MUVCNUQgLyogR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1M0M2MEIwREE1NkNG
MTAwMjFFQjVEIC8qIEdyYWRpZW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMDE1QTgw
QUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTIxMDM0LDYgKzIxMDMzLDcgQEAKIAkJCQkyRTNCQkYwNzExNjJEQTExMDBCOTQwOUEgLyogVVVJ
RC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTUyNTM1MjExNjQxQjM0MDBDQUJGMDAgLyogRmls
ZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYg
LyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzVENEFBNzkx
MTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNyAr
MTgyLDcgQEAgdm9pZCBGb250OjpkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbgogICAgIHJl
dHVybiBkcmF3Q29tcGxleFRleHQoY29udGV4dCwgcnVuLCBwb2ludCwgZnJvbSwgdG8pOwogfQog
Ci1mbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsK
ICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIGlmIChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQo
KSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRS
dW4mIHJ1CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gZmxvYXRXaWR0aEZvckNvbXBsZXhU
ZXh0KHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJuIGZsb2F0V2lkdGhGb3JDb21wbGV4
VGV4dChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogfQogCiBmbG9hdCBGb250
OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGV4dHJhQ2hhcnNBdmFpbGFibGUs
IGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNvbnN0CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsMjEgQEAgc3RydWN0
IEdseXBoRGF0YTsKIAogY29uc3QgdW5zaWduZWQgZGVmYXVsdFVuaXRzUGVyRW0gPSAxMDAwOwog
CitzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CisgICAgR2x5cGhPdmVyZmxvdygpCisgICAgICAgIDog
bGVmdCgwKQorICAgICAgICAsIHJpZ2h0KDApCisgICAgICAgICwgdG9wKDApCisgICAgICAgICwg
Ym90dG9tKDApCisgICAgeworICAgIH0KKworICAgIGludCBsZWZ0OworICAgIGludCByaWdodDsK
KyAgICBpbnQgdG9wOworICAgIGludCBib3R0b207Cit9OworCiBjbGFzcyBGb250IHsKIHB1Ymxp
YzoKICAgICBGb250KCk7CkBAIC04MSw4ICs5Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJh
d1RleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQm
LCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAotICAgIGludCB3aWR0aChjb25z
dCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0aChydW4sIGZhbGxiYWNr
Rm9udHMpKTsgfQotICAgIGZsb2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDApIGNvbnN0OworICAgIGlu
dCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBj
b25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlw
aE92ZXJmbG93KSk7IH0KKyAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CiAgICAgZmxvYXQgZmxvYXRXaWR0aChjb25z
dCBUZXh0UnVuJiBydW4sIGludCBleHRyYUNoYXJzQXZhaWxhYmxlLCBpbnQmIGNoYXJzQ29uc3Vt
ZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdDsKIAogICAgIGludCBvZmZzZXRGb3JQb3NpdGlv
bihjb25zdCBUZXh0UnVuJiwgaW50IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhz
KSBjb25zdDsKQEAgLTE1OSw3ICsxNzQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lk
IGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3Qg
RmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwotICAgIGZsb2F0IGZsb2F0V2lk
dGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7CisgICAgZmxvYXQgZmxvYXRXaWR0aEZv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAgIGlu
dCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9z
aXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBz
ZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBvaW50
JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsMTcgKzI0LDE3IEBACiAjaW5jbHVkZSAiRm9udC5oIgogCiAjaW5jbHVkZSAiQ2hhcmFjdGVy
TmFtZXMuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIK
ICNpbmNsdWRlICJGb250RmFsbGJhY2tMaXN0LmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgog
I2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNs
dWRlICJXaWR0aEl0ZXJhdG9yLmgiCiAKLSNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmlj
b2RlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsK
QEAgLTIzNCw2ICsyMzQsMTEgQEAgYm9vbCBGb250OjpjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRl
eHRSdQogICAgICAgICBpZiAoYyA8PSAweDE5NEYpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICAgICAgaWYgKGMgPCAweDFFMDApICAgICAvLyBVKzFFMDAgdGhyb3VnaCBVKzIwMDAg
Y2hhcmFjdGVycyB3aXRoIGRpYWNyaXRpY3MgYW5kIHN0YWNrZWQgZGlhY3JpdGljcworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGlmIChjIDw9IDB4MjAwMCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgICAgICBpZiAoYyA8IDB4MjBEMCkgICAgIC8vIFUrMjBEMCB0aHJv
dWdoIFUrMjBGRiBDb21iaW5pbmcgbWFya3MgZm9yIHN5bWJvbHMKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICBpZiAoYyA8PSAweDIwRkYpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwCShyZXZpc2lvbiA1NzE3NCkJKGZyb20gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcDo1NzE3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
R2x5cGhXaWR0aE1hcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dseXBoV2lkdGhNYXA6
OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWdu
ZWQgcGFnZU51bWJlcikKK3sKKyAgICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKKyAgICBpZiAocGFn
ZU51bWJlciA9PSAwKSB7CisgICAgICAgIEFTU0VSVCghbV9maWxsZWRQcmltYXJ5UGFnZSk7Cisg
ICAgICAgIHBhZ2UgPSAmbV9wcmltYXJ5UGFnZTsKKyAgICAgICAgbV9maWxsZWRQcmltYXJ5UGFn
ZSA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1fcGFnZXMpIHsKKyAgICAgICAg
ICAgIGlmICgocGFnZSA9IG1fcGFnZXMtPmdldChwYWdlTnVtYmVyKSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHBhZ2U7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9wYWdlcy5zZXQo
bmV3IEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+KTsKKyAgICAgICAgcGFnZSA9IG5ldyBH
bHlwaFdpZHRoUGFnZTsKKyAgICAgICAgbV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOwor
ICAgIH0KKworICAgIC8vIEZpbGwgaW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBn
bHlwaCB3aWR0aCB2YWx1ZS4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0
aFBhZ2U6OnNpemU7IGkrKykKKyAgICAgICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5
cGhXaWR0aFVua25vd24pOworCisgICAgcmV0dXJuIHBhZ2U7Cit9CisKK30KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNzTWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01hcC5jcHAJKHJldmlzaW9uIDU3
MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaE1ldHJpY3NNYXAuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNywxNCArMjcsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgorI2luY2x1ZGUgIkdseXBoTWV0cmljc01h
cC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdseXBoV2lkdGhNYXA6OkdseXBoV2lkdGhQ
YWdlKiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJl
cikKK0dseXBoTWV0cmljc01hcDo6R2x5cGhNZXRyaWNzUGFnZSogR2x5cGhNZXRyaWNzTWFwOjps
b2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcikKIHsKLSAgICBHbHlwaFdpZHRo
UGFnZSogcGFnZTsKLSAgICBpZiAocGFnZU51bWJlciA9PSAwKSB7CisgICAgR2x5cGhNZXRyaWNz
UGFnZSogcGFnZTsKKyAgICBpZiAoIXBhZ2VOdW1iZXIpIHsKICAgICAgICAgQVNTRVJUKCFtX2Zp
bGxlZFByaW1hcnlQYWdlKTsKICAgICAgICAgcGFnZSA9ICZtX3ByaW1hcnlQYWdlOwogICAgICAg
ICBtX2ZpbGxlZFByaW1hcnlQYWdlID0gdHJ1ZTsKQEAgLTQzLDE0ICs0MywxOCBAQCBHbHlwaFdp
ZHRoTWFwOjpHbHlwaFdpZHRoUGFnZSogR2x5cGhXaWR0CiAgICAgICAgICAgICBpZiAoKHBhZ2Ug
PSBtX3BhZ2VzLT5nZXQocGFnZU51bWJlcikpKQogICAgICAgICAgICAgICAgIHJldHVybiBwYWdl
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fcGFnZXMuc2V0KG5ldyBIYXNoTWFwPGlu
dCwgR2x5cGhXaWR0aFBhZ2UqPik7Ci0gICAgICAgIHBhZ2UgPSBuZXcgR2x5cGhXaWR0aFBhZ2U7
CisgICAgICAgICAgICBtX3BhZ2VzLnNldChuZXcgSGFzaE1hcDxpbnQsIEdseXBoTWV0cmljc1Bh
Z2UqPik7CisgICAgICAgIHBhZ2UgPSBuZXcgR2x5cGhNZXRyaWNzUGFnZTsKICAgICAgICAgbV9w
YWdlcy0+c2V0KHBhZ2VOdW1iZXIsIHBhZ2UpOwogICAgIH0KIAotICAgIC8vIEZpbGwgaW4gdGhl
IHdob2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKLSAgICAgICAg
cGFnZS0+c2V0V2lkdGhGb3JJbmRleChpLCBjR2x5cGhXaWR0aFVua25vd24pOworICAgIEdseXBo
TWV0cmljcyB1bmtub3duTWV0cmljczsKKyAgICB1bmtub3duTWV0cmljcy5ob3Jpem9udGFsQWR2
YW5jZSA9IGNHbHlwaFNpemVVbmtub3duOworICAgIHVua25vd25NZXRyaWNzLmJvdW5kaW5nQm94
LnNldFdpZHRoKGNHbHlwaFNpemVVbmtub3duKTsKKyAgICB1bmtub3duTWV0cmljcy5ib3VuZGlu
Z0JveC5zZXRIZWlnaHQoY0dseXBoU2l6ZVVua25vd24pOworICAgIC8vIEZpbGwgaW4gdGhlIHdo
b2xlIHBhZ2Ugd2l0aCB0aGUgdW5rbm93biBnbHlwaCBpbmZvcm1hdGlvbi4KKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhNZXRyaWNzUGFnZTo6c2l6ZTsgaSsrKQorICAgICAgICBw
YWdlLT5zZXRNZXRyaWNzRm9ySW5kZXgoaSwgdW5rbm93bk1ldHJpY3MpOwogCiAgICAgcmV0dXJu
IHBhZ2U7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoTWV0cmljc01h
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhNZXRyaWNz
TWFwLmgJKHJldmlzaW9uIDU3MTc0KQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ds
eXBoV2lkdGhNYXAuaDo1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhN
ZXRyaWNzTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBHbHlwaFdpZHRoTWFwX2gKKyNkZWZpbmUgR2x5cGhXaWR0aE1hcF9oCisKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dW5pY29kZS9Vbmljb2RlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiB1bnNp
Z25lZCBzaG9ydCBHbHlwaDsKKworY29uc3QgZmxvYXQgY0dseXBoV2lkdGhVbmtub3duID0gLTE7
CisKK2NsYXNzIEdseXBoV2lkdGhNYXAgOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgor
ICAgIEdseXBoV2lkdGhNYXAoKSA6IG1fZmlsbGVkUHJpbWFyeVBhZ2UoZmFsc2UpIHsgfQorICAg
IH5HbHlwaFdpZHRoTWFwKCkgeyBpZiAobV9wYWdlcykgeyBkZWxldGVBbGxWYWx1ZXMoKm1fcGFn
ZXMpOyB9IH0KKworICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpCisgICAgewor
ICAgICAgICByZXR1cm4gbG9jYXRlUGFnZShnbHlwaCAvIEdseXBoV2lkdGhQYWdlOjpzaXplKS0+
d2lkdGhGb3JHbHlwaChnbHlwaCk7CisgICAgfQorCisgICAgdm9pZCBzZXRXaWR0aEZvckdseXBo
KEdseXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKKyAgICB7CisgICAgICAgIGxvY2F0ZVBhZ2UoZ2x5
cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPnNldFdpZHRoRm9yR2x5cGgoZ2x5cGgsIHdpZHRo
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaXplID0gMjU2OyAvLyBVc3VhbGx5IGNvdmVycyBMYXRp
bi0xIGluIGEgc2luZ2xlIHBhZ2UuCisgICAgICAgIGZsb2F0IG1fd2lkdGhzW3NpemVdOworCisg
ICAgICAgIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1f
d2lkdGhzW2dseXBoICUgc2l6ZV07IH0KKyAgICAgICAgdm9pZCBzZXRXaWR0aEZvckdseXBoKEds
eXBoIGdseXBoLCBmbG9hdCB3aWR0aCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0V2lkdGhG
b3JJbmRleChnbHlwaCAlIHNpemUsIHdpZHRoKTsKKyAgICAgICAgfQorICAgICAgICB2b2lkIHNl
dFdpZHRoRm9ySW5kZXgodW5zaWduZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBtX3dpZHRoc1tpbmRleF0gPSB3aWR0aDsKKyAgICAgICAgfQorICAgIH07Cisg
ICAgCisgICAgR2x5cGhXaWR0aFBhZ2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQgcGFnZU51bWJlcikK
KyAgICB7CisgICAgICAgIGlmICghcGFnZU51bWJlciAmJiBtX2ZpbGxlZFByaW1hcnlQYWdlKQor
ICAgICAgICAgICAgcmV0dXJuICZtX3ByaW1hcnlQYWdlOworICAgICAgICByZXR1cm4gbG9jYXRl
UGFnZVNsb3dDYXNlKHBhZ2VOdW1iZXIpOworICAgIH0KKworICAgIEdseXBoV2lkdGhQYWdlKiBs
b2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcik7CisgICAgCisgICAgYm9vbCBt
X2ZpbGxlZFByaW1hcnlQYWdlOworICAgIEdseXBoV2lkdGhQYWdlIG1fcHJpbWFyeVBhZ2U7IC8v
IFdlIG9wdGltaXplIGZvciB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGdseXBoIGluZGljZXMgMC0y
NTUuCisgICAgT3duUHRyPEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+ID4gbV9wYWdlczsK
K307CisKK30KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
TWV0cmljc01hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5
cGhNZXRyaWNzTWFwLmgJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaE1ldHJpY3NNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOSArMjYsMTAgQEAK
ICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBHbHlwaFdpZHRoTWFwX2gKLSNkZWZpbmUgR2x5
cGhXaWR0aE1hcF9oCisjaWZuZGVmIEdseXBoTWV0cmljc01hcF9oCisjZGVmaW5lIEdseXBoTWV0
cmljc01hcF9oCiAKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmlj
b2RlLmg+CkBAIC0zNyw1MyArMzgsNjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVm
IHVuc2lnbmVkIHNob3J0IEdseXBoOwogCi1jb25zdCBmbG9hdCBjR2x5cGhXaWR0aFVua25vd24g
PSAtMTsKK2NvbnN0IGZsb2F0IGNHbHlwaFNpemVVbmtub3duID0gLTE7CiAKLWNsYXNzIEdseXBo
V2lkdGhNYXAgOiBwdWJsaWMgTm9uY29weWFibGUgeworc3RydWN0IEdseXBoTWV0cmljcyB7Cisg
ICAgZmxvYXQgaG9yaXpvbnRhbEFkdmFuY2U7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94Owor
fTsKKworY2xhc3MgR2x5cGhNZXRyaWNzTWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1Ymxp
YzoKLSAgICBHbHlwaFdpZHRoTWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0K
LSAgICB+R2x5cGhXaWR0aE1hcCgpIHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCpt
X3BhZ2VzKTsgfSB9CisgICAgR2x5cGhNZXRyaWNzTWFwKCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdl
KGZhbHNlKSB7IH0KKyAgICB+R2x5cGhNZXRyaWNzTWFwKCkKKyAgICB7IAorICAgICAgICBpZiAo
bV9wYWdlcykKKyAgICAgICAgICAgIGRlbGV0ZUFsbFZhbHVlcygqbV9wYWdlcyk7CisgICAgfQor
CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhNZXRyaWNzUGFnZTo6c2l6ZSkt
Pm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CisgICAgfQogCiAgICAgZmxvYXQgd2lkdGhGb3JHbHlw
aChHbHlwaCBnbHlwaCkKICAgICB7Ci0gICAgICAgIHJldHVybiBsb2NhdGVQYWdlKGdseXBoIC8g
R2x5cGhXaWR0aFBhZ2U6OnNpemUpLT53aWR0aEZvckdseXBoKGdseXBoKTsKKyAgICAgICAgcmV0
dXJuIGxvY2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+bWV0cmljc0Zv
ckdseXBoKGdseXBoKS5ob3Jpem9udGFsQWR2YW5jZTsKICAgICB9CiAKLSAgICB2b2lkIHNldFdp
ZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIGZsb2F0IHdpZHRoKQorICAgIHZvaWQgc2V0TWV0cmlj
c0ZvckdseXBoKEdseXBoIGdseXBoLCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAg
ewotICAgICAgICBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBhZ2U6OnNpemUpLT5zZXRX
aWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7CisgICAgICAgIGxvY2F0ZVBhZ2UoZ2x5cGggLyBH
bHlwaE1ldHJpY3NQYWdlOjpzaXplKS0+c2V0TWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNz
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgc3RydWN0IEdseXBoV2lkdGhQYWdlIHsKKyAgICBz
dHJ1Y3QgR2x5cGhNZXRyaWNzUGFnZSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2l6
ZSA9IDI1NjsgLy8gVXN1YWxseSBjb3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBwYWdlLgotICAg
ICAgICBmbG9hdCBtX3dpZHRoc1tzaXplXTsKKyAgICAgICAgR2x5cGhNZXRyaWNzIG1fbWV0cmlj
c1tzaXplXTsKIAotICAgICAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25z
dCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNpemVdOyB9Ci0gICAgICAgIHZvaWQgc2V0V2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQgd2lkdGgpCisgICAgICAgIEdseXBoTWV0cmlj
cyBtZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0cmljc1tn
bHlwaCAlIHNpemVdOyB9CisgICAgICAgIHZvaWQgc2V0TWV0cmljc0ZvckdseXBoKEdseXBoIGds
eXBoLCBjb25zdCBHbHlwaE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBzaXplLCB3aWR0aCk7CisgICAgICAgICAgICBzZXRN
ZXRyaWNzRm9ySW5kZXgoZ2x5cGggJSBzaXplLCBtZXRyaWNzKTsKICAgICAgICAgfQotICAgICAg
ICB2b2lkIHNldFdpZHRoRm9ySW5kZXgodW5zaWduZWQgaW5kZXgsIGZsb2F0IHdpZHRoKQorICAg
ICAgICB2b2lkIHNldE1ldHJpY3NGb3JJbmRleCh1bnNpZ25lZCBpbmRleCwgY29uc3QgR2x5cGhN
ZXRyaWNzJiBtZXRyaWNzKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX3dpZHRoc1tpbmRleF0g
PSB3aWR0aDsKKyAgICAgICAgICAgIG1fbWV0cmljc1tpbmRleF0gPSBtZXRyaWNzOwogICAgICAg
ICB9CiAgICAgfTsKICAgICAKLSAgICBHbHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZSh1bnNpZ25l
ZCBwYWdlTnVtYmVyKQorICAgIEdseXBoTWV0cmljc1BhZ2UqIGxvY2F0ZVBhZ2UodW5zaWduZWQg
cGFnZU51bWJlcikKICAgICB7CiAgICAgICAgIGlmICghcGFnZU51bWJlciAmJiBtX2ZpbGxlZFBy
aW1hcnlQYWdlKQogICAgICAgICAgICAgcmV0dXJuICZtX3ByaW1hcnlQYWdlOwogICAgICAgICBy
ZXR1cm4gbG9jYXRlUGFnZVNsb3dDYXNlKHBhZ2VOdW1iZXIpOwogICAgIH0KIAotICAgIEdseXBo
V2lkdGhQYWdlKiBsb2NhdGVQYWdlU2xvd0Nhc2UodW5zaWduZWQgcGFnZU51bWJlcik7CisgICAg
R2x5cGhNZXRyaWNzUGFnZSogbG9jYXRlUGFnZVNsb3dDYXNlKHVuc2lnbmVkIHBhZ2VOdW1iZXIp
OwogICAgIAogICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5UGFnZTsKLSAgICBHbHlwaFdpZHRoUGFn
ZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlu
cyBnbHlwaCBpbmRpY2VzIDAtMjU1LgotICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhXaWR0
aFBhZ2UqPiA+IG1fcGFnZXM7CisgICAgR2x5cGhNZXRyaWNzUGFnZSBtX3ByaW1hcnlQYWdlOyAv
LyBXZSBvcHRpbWl6ZSBmb3IgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAt
MjU1LgorICAgIE93blB0cjxIYXNoTWFwPGludCwgR2x5cGhNZXRyaWNzUGFnZSo+ID4gbV9wYWdl
czsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoV2lkdGhNYXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5jcHAJKHJldmlzaW9uIDU3MTc0
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFdpZHRoTWFwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiR2x5cGhXaWR0aE1hcC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUdseXBo
V2lkdGhNYXA6OkdseXBoV2lkdGhQYWdlKiBHbHlwaFdpZHRoTWFwOjpsb2NhdGVQYWdlU2xvd0Nh
c2UodW5zaWduZWQgcGFnZU51bWJlcikKLXsKLSAgICBHbHlwaFdpZHRoUGFnZSogcGFnZTsKLSAg
ICBpZiAocGFnZU51bWJlciA9PSAwKSB7Ci0gICAgICAgIEFTU0VSVCghbV9maWxsZWRQcmltYXJ5
UGFnZSk7Ci0gICAgICAgIHBhZ2UgPSAmbV9wcmltYXJ5UGFnZTsKLSAgICAgICAgbV9maWxsZWRQ
cmltYXJ5UGFnZSA9IHRydWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1fcGFnZXMpIHsK
LSAgICAgICAgICAgIGlmICgocGFnZSA9IG1fcGFnZXMtPmdldChwYWdlTnVtYmVyKSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHBhZ2U7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9w
YWdlcy5zZXQobmV3IEhhc2hNYXA8aW50LCBHbHlwaFdpZHRoUGFnZSo+KTsKLSAgICAgICAgcGFn
ZSA9IG5ldyBHbHlwaFdpZHRoUGFnZTsKLSAgICAgICAgbV9wYWdlcy0+c2V0KHBhZ2VOdW1iZXIs
IHBhZ2UpOwotICAgIH0KLQotICAgIC8vIEZpbGwgaW4gdGhlIHdob2xlIHBhZ2Ugd2l0aCB0aGUg
dW5rbm93biBnbHlwaCB3aWR0aCB2YWx1ZS4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
R2x5cGhXaWR0aFBhZ2U6OnNpemU7IGkrKykKLSAgICAgICAgcGFnZS0+c2V0V2lkdGhGb3JJbmRl
eChpLCBjR2x5cGhXaWR0aFVua25vd24pOwotCi0gICAgcmV0dXJuIHBhZ2U7Ci19Ci0KLX0KSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCShyZXZpc2lvbiA1
NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhXaWR0aE1hcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0g
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgR2x5cGhXaWR0aE1h
cF9oCi0jZGVmaW5lIEdseXBoV2lkdGhNYXBfaAotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR2x5cGg7
Ci0KLWNvbnN0IGZsb2F0IGNHbHlwaFdpZHRoVW5rbm93biA9IC0xOwotCi1jbGFzcyBHbHlwaFdp
ZHRoTWFwIDogcHVibGljIE5vbmNvcHlhYmxlIHsKLXB1YmxpYzoKLSAgICBHbHlwaFdpZHRoTWFw
KCkgOiBtX2ZpbGxlZFByaW1hcnlQYWdlKGZhbHNlKSB7IH0KLSAgICB+R2x5cGhXaWR0aE1hcCgp
IHsgaWYgKG1fcGFnZXMpIHsgZGVsZXRlQWxsVmFsdWVzKCptX3BhZ2VzKTsgfSB9Ci0KLSAgICBm
bG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxv
Y2F0ZVBhZ2UoZ2x5cGggLyBHbHlwaFdpZHRoUGFnZTo6c2l6ZSktPndpZHRoRm9yR2x5cGgoZ2x5
cGgpOwotICAgIH0KLQotICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxv
YXQgd2lkdGgpCi0gICAgewotICAgICAgICBsb2NhdGVQYWdlKGdseXBoIC8gR2x5cGhXaWR0aFBh
Z2U6OnNpemUpLT5zZXRXaWR0aEZvckdseXBoKGdseXBoLCB3aWR0aCk7Ci0gICAgfQotCi1wcml2
YXRlOgotICAgIHN0cnVjdCBHbHlwaFdpZHRoUGFnZSB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3Qgc2l6ZSA9IDI1NjsgLy8gVXN1YWxseSBjb3ZlcnMgTGF0aW4tMSBpbiBhIHNpbmdsZSBw
YWdlLgotICAgICAgICBmbG9hdCBtX3dpZHRoc1tzaXplXTsKLQotICAgICAgICBmbG9hdCB3aWR0
aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoc1tnbHlwaCAlIHNp
emVdOyB9Ci0gICAgICAgIHZvaWQgc2V0V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCwgZmxvYXQg
d2lkdGgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNldFdpZHRoRm9ySW5kZXgoZ2x5cGggJSBz
aXplLCB3aWR0aCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBzZXRXaWR0aEZvckluZGV4KHVu
c2lnbmVkIGluZGV4LCBmbG9hdCB3aWR0aCkKLSAgICAgICAgewotICAgICAgICAgICAgbV93aWR0
aHNbaW5kZXhdID0gd2lkdGg7Ci0gICAgICAgIH0KLSAgICB9OwotICAgIAotICAgIEdseXBoV2lk
dGhQYWdlKiBsb2NhdGVQYWdlKHVuc2lnbmVkIHBhZ2VOdW1iZXIpCi0gICAgewotICAgICAgICBp
ZiAoIXBhZ2VOdW1iZXIgJiYgbV9maWxsZWRQcmltYXJ5UGFnZSkKLSAgICAgICAgICAgIHJldHVy
biAmbV9wcmltYXJ5UGFnZTsKLSAgICAgICAgcmV0dXJuIGxvY2F0ZVBhZ2VTbG93Q2FzZShwYWdl
TnVtYmVyKTsKLSAgICB9Ci0KLSAgICBHbHlwaFdpZHRoUGFnZSogbG9jYXRlUGFnZVNsb3dDYXNl
KHVuc2lnbmVkIHBhZ2VOdW1iZXIpOwotICAgIAotICAgIGJvb2wgbV9maWxsZWRQcmltYXJ5UGFn
ZTsKLSAgICBHbHlwaFdpZHRoUGFnZSBtX3ByaW1hcnlQYWdlOyAvLyBXZSBvcHRpbWl6ZSBmb3Ig
dGhlIHBhZ2UgdGhhdCBjb250YWlucyBnbHlwaCBpbmRpY2VzIDAtMjU1LgotICAgIE93blB0cjxI
YXNoTWFwPGludCwgR2x5cGhXaWR0aFBhZ2UqPiA+IG1fcGFnZXM7Ci19OwotCi19Ci0KLSNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJ
KHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw5ICsxNTcsMTEgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIC8vIGFyZSBtYXBwZWQgdG8gdGhlIFpF
Uk8gV0lEVEggU1BBQ0UgZ2x5cGguCiAgICAgR2x5cGggemVyb1dpZHRoU3BhY2VHbHlwaCA9IGds
eXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKICAgICBpZiAoemVy
b1dpZHRoU3BhY2VHbHlwaCkgewotICAgICAgICBpZiAoemVyb1dpZHRoU3BhY2VHbHlwaCAhPSBt
X3NwYWNlR2x5cGgpCi0gICAgICAgICAgICBtX2dseXBoVG9XaWR0aE1hcC5zZXRXaWR0aEZvckds
eXBoKHplcm9XaWR0aFNwYWNlR2x5cGgsIDApOwotICAgICAgICBlbHNlCisgICAgICAgIGlmICh6
ZXJvV2lkdGhTcGFjZUdseXBoICE9IG1fc3BhY2VHbHlwaCkgeworICAgICAgICAgICAgR2x5cGhN
ZXRyaWNzIG1ldHJpY3M7CisgICAgICAgICAgICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0g
MDsKKyAgICAgICAgICAgIG1fZ2x5cGhUb01ldHJpY3NNYXAuc2V0TWV0cmljc0ZvckdseXBoKHpl
cm9XaWR0aFNwYWNlR2x5cGgsIG1ldHJpY3MpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IExPR19FUlJPUigiRm9udCBtYXBzIFNQQUNFIGFuZCBaRVJPIFdJRFRIIFNQQUNFIHRvIHRoZSBz
YW1lIGdseXBoLiBHbHlwaCB3aWR0aCBub3Qgb3ZlcnJpZGRlbi4iKTsKICAgICB9CiAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDU3
MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBACiAKICNpbmNsdWRlICJGb250RGF0YS5oIgogI2lu
Y2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKKyNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIK
ICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgotI2luY2x1ZGUgIkdseXBoV2lkdGhNYXAu
aCIKICNpbmNsdWRlICJUeXBlc2V0dGluZ0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogCkBAIC01OCw5ICs1OCw5IEBAIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZv
bnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBTVkdGb250RGF0YTsK
LWNsYXNzIFdpZHRoTWFwOwogCiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNo
LCBWYXJpYWJsZVBpdGNoIH07CitlbnVtIEdseXBoTWV0cmljc01vZGUgeyBHbHlwaEJvdW5kaW5n
Qm94LCBHbHlwaFdpZHRoT25seSB9OwogCiBjbGFzcyBTaW1wbGVGb250RGF0YSA6IHB1YmxpYyBG
b250RGF0YSB7CiBwdWJsaWM6CkBAIC04MSw4ICs4MSw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB4
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV94SGVpZ2h0OyB9CiAgICAgdW5zaWduZWQgdW5pdHNQ
ZXJFbSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHNQZXJFbTsgfQogCi0gICAgZmxvYXQgd2lkdGhG
b3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgcGxhdGZvcm1XaWR0aEZvckdseXBoKEds
eXBoKSBjb25zdDsKKyAgICBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdCB7
IHJldHVybiBtZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIEdseXBoV2lkdGhPbmx5KS5ob3Jpem9udGFs
QWR2YW5jZTsgfQorICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBo
TWV0cmljc01vZGUgPSBHbHlwaEJvdW5kaW5nQm94KSBjb25zdDsKKyAgICBHbHlwaE1ldHJpY3Mg
cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0Owog
CiAgICAgZmxvYXQgc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2VXaWR0aDsgfQog
ICAgIGZsb2F0IGFkanVzdGVkU3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRT
cGFjZVdpZHRoOyB9CkBAIC0xNjcsNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB8fCAoT1MoV0lO
RE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgIHZvaWQgaW5pdEdESUZvbnQoKTsKICAgICB2b2lk
IHBsYXRmb3JtQ29tbW9uRGVzdHJveSgpOwotICAgIGZsb2F0IHdpZHRoRm9yR0RJR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzRm9yR0RJR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBpbnQgbV9hc2NlbnQ7CkBAIC0xODEsNyAr
MTgyLDcgQEAgcHJpdmF0ZToKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEgbV9wbGF0Zm9ybURhdGE7
CiAKLSAgICBtdXRhYmxlIEdseXBoV2lkdGhNYXAgbV9nbHlwaFRvV2lkdGhNYXA7CisgICAgbXV0
YWJsZSBHbHlwaE1ldHJpY3NNYXAgbV9nbHlwaFRvTWV0cmljc01hcDsKIAogICAgIGJvb2wgbV90
cmVhdEFzRml4ZWRQaXRjaDsKIApAQCAtMjM3LDE2ICsyMzgsMTYgQEAgcHJpdmF0ZToKICAgICAK
ICAgICAKICNpZiAhUExBVEZPUk0oUVQpCi1BTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZvbnRE
YXRhOjp3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorQUxXQVlTX0lOTElORSBHbHlw
aE1ldHJpY3MgU2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlwaCwgR2x5
cGhNZXRyaWNzTW9kZSBtZXRyaWNzTW9kZSkgY29uc3QKIHsKLSAgICBmbG9hdCB3aWR0aCA9IG1f
Z2x5cGhUb1dpZHRoTWFwLndpZHRoRm9yR2x5cGgoZ2x5cGgpOwotICAgIGlmICh3aWR0aCAhPSBj
R2x5cGhXaWR0aFVua25vd24pCi0gICAgICAgIHJldHVybiB3aWR0aDsKLSAgICAKLSAgICB3aWR0
aCA9IHBsYXRmb3JtV2lkdGhGb3JHbHlwaChnbHlwaCk7Ci0gICAgbV9nbHlwaFRvV2lkdGhNYXAu
c2V0V2lkdGhGb3JHbHlwaChnbHlwaCwgd2lkdGgpOwotICAgIAotICAgIHJldHVybiB3aWR0aDsK
KyAgICBHbHlwaE1ldHJpY3MgbWV0cmljcyA9IG1fZ2x5cGhUb01ldHJpY3NNYXAubWV0cmljc0Zv
ckdseXBoKGdseXBoKTsKKyAgICBpZiAoKG1ldHJpY3NNb2RlID09IEdseXBoV2lkdGhPbmx5ICYm
IG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgIT0gY0dseXBoU2l6ZVVua25vd24pIHx8IChtZXRy
aWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94ICYmIG1ldHJpY3MuYm91bmRpbmdCb3gud2lkdGgo
KSAhPSBjR2x5cGhTaXplVW5rbm93bikpCisgICAgICAgIHJldHVybiBtZXRyaWNzOworCisgICAg
bWV0cmljcyA9IHBsYXRmb3JtTWV0cmljc0ZvckdseXBoKGdseXBoLCBtZXRyaWNzTW9kZSk7Cisg
ICAgbV9nbHlwaFRvTWV0cmljc01hcC5zZXRNZXRyaWNzRm9yR2x5cGgoZ2x5cGgsIG1ldHJpY3Mp
OworCisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9TaW1wbGVGb250RGF0YUNhaXJvLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZvbnREYXRhQ2Fpcm8uY3Bw
CShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vU2lt
cGxlRm9udERhdGFDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2
b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgbV90cmVhdEFzRml4ZWRQ
aXRjaCA9IG1fcGxhdGZvcm1EYXRhLmlzRml4ZWRQaXRjaCgpOwogfQogCi1mbG9hdCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhN
ZXRyaWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybU1ldHJpY3NGb3JHbHlwaChHbHlwaCBnbHlw
aCwgR2x5cGhNZXRyaWNzTW9kZSkgY29uc3QKIHsKICAgICBBU1NFUlQobV9wbGF0Zm9ybURhdGEu
bV9zY2FsZWRGb250KTsKIApAQCAtMTI1LDcgKzEyNSwxMCBAQCBmbG9hdCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAgICAgZmxvYXQgdyA9IChmbG9hdCltX3NwYWNlV2lkdGg7
CiAgICAgaWYgKGNhaXJvX3NjYWxlZF9mb250X3N0YXR1cyhtX3BsYXRmb3JtRGF0YS5tX3NjYWxl
ZEZvbnQpID09IENBSVJPX1NUQVRVU19TVUNDRVNTICYmIGV4dGVudHMueF9hZHZhbmNlICE9IDAp
CiAgICAgICAgIHcgPSAoZmxvYXQpZXh0ZW50cy54X2FkdmFuY2U7Ci0gICAgcmV0dXJuIHc7Cisg
ICAgCisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgbWV0cmljcy5ob3Jpem9udGFsQWR2
YW5jZSA9IHc7CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAJ
KHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250Q2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDMsNyArNTAzLDcgQEAgdm9p
ZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGNvbnRleHQtPmNhbnZh
cygpLT5lbmRQbGF0Zm9ybVBhaW50KCk7CiB9CiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogLyogZmFsbGJhY2tGb250cyAqLykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVyZmxvdyogLyogZ2x5cGhPdmVy
ZmxvdyAqLykgY29uc3QKIHsKICAgICBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuIHN0YXRlKHJ1biwg
KnRoaXMpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oc3RhdGUud2lkdGgoKSk7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXgu
Y3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udExpbnV4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQg
Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKLWZsb2F0IEZv
bnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLykgY29uc3QKK2Zsb2F0
IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVy
ZmxvdyogLyogZ2x5cGhPdmVyZmxvdyAqLykgY29uc3QKIHsKICAgICBUZXh0UnVuV2Fsa2VyIHdh
bGtlcihydW4sIDAsIHRoaXMpOwogICAgIHJldHVybiB3YWxrZXIud2lkdGhPZkZ1bGxSdW4oKTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFD
aHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2luLmNwcAkocmV2aXNpb24gNTcxNzQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21p
dW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAgIFJlbGVhc2VEQygwLCBkYyk7CiB9CiAKLWZs
b2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNv
bnN0CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBo
KEdseXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlKSBjb25zdAogewogICAgIEhEQyBkYyA9IEdl
dERDKDApOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChkYywgbV9wbGF0Zm9y
bURhdGEuaGZvbnQoKSk7CkBAIC0xNzAsNyArMTcwLDkgQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtV2lkdGhGb3JHbAogICAgIFNlbGVjdE9iamVjdChkYywgb2xkRm9udCk7CiAgICAg
UmVsZWFzZURDKDAsIGRjKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4od2lkdGgp
OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFu
Y2UgPSBzdGF0aWNfY2FzdDxmbG9hdD4od2lkdGgpOworICAgIHJldHVybiBtZXRyaWNzOwogfQog
CiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhTGludXguY3BwCShyZXZp
c2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxl
Rm9udERhdGFMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lk
IFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgbV90cmVhdEFzRml4ZWRQaXRj
aCA9IHBsYXRmb3JtRGF0YSgpLmlzRml4ZWRQaXRjaCgpOwogfQogCi1mbG9hdCBTaW1wbGVGb250
RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorR2x5cGhNZXRy
aWNzIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEds
eXBoTWV0cmljc01vZGUgLyogbWV0cmljc01vZGUgKi8pIGNvbnN0CiB7CiAgICAgU2tBU1NFUlQo
c2l6ZW9mKGdseXBoKSA9PSAyKTsgICAvLyBjb21waWxlLXRpbWUgYXNzZXJ0CiAKQEAgLTE4Niw3
ICsxODYsOSBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAgICAg
Ly8gVGhvdWdoIFdlYktpdCBzdXBwb3J0cyBub24taW50ZWdyYWwgYWR2YW5jZXMsIFNraWEgb25s
eSBzdXBwb3J0cyB0aGVtCiAgICAgLy8gZm9yICJzdWJwaXhlbCIgKGRpc3RpbmN0IGZyb20gTENE
IHN1YnBpeGVsIGFudGlhbGlhc2luZykgdGV4dCwgd2hpY2gKICAgICAvLyB3ZSBkb24ndCB1c2Uu
Ci0gICAgcmV0dXJuIHJvdW5kKFNrU2NhbGFyVG9GbG9hdCh3aWR0aCkpOworICAgIEdseXBoTWV0
cmljcyBtZXRyaWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSByb3VuZChTa1Nj
YWxhclRvRmxvYXQod2lkdGgpKTsKKyAgICByZXR1cm4gbWV0cmljczsKIH0KIAogfSAgLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRF
ZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRF
ZmwuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0ZvbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGJvb2wgRm9udDo6
Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWZs
b2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KikgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiwgR2x5cGhPdmVyZmxvdyopIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gMC4wZjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRH
dGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRH
dGsuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ZvbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODgsNyArMjg4LDcgQEAgc3RhdGljIFBh
bmdvTGF5b3V0KiBnZXREZWZhdWx0UGFuZ29MYXlvdQogICAgIHJldHVybiBsYXlvdXQ7CiB9CiAK
LWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4s
IEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLykgY29u
c3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBy
dW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywg
R2x5cGhPdmVyZmxvdyopIGNvbnN0CiB7CiAgICAgaWYgKHJ1bi5sZW5ndGgoKSA9PSAwKQogICAg
ICAgICByZXR1cm4gMC4wZjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL1Np
bXBsZUZvbnREYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJt
aW5lUGl0Y2goKQogICAgIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPSBtX3BsYXRmb3JtRGF0YS5pc0Zp
eGVkUGl0Y2goKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JH
bHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxh
dGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1fcGxhdGZvcm1EYXRhLm1fc2NhbGVkRm9udCk7CiAKQEAgLTEzMCw3
ICsxMzAsMTAgQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbAogICAg
IGZsb2F0IHcgPSAoZmxvYXQpbV9zcGFjZVdpZHRoOwogICAgIGlmIChjYWlyb19zY2FsZWRfZm9u
dF9zdGF0dXMobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250KSA9PSBDQUlST19TVEFUVVNfU1VD
Q0VTUyAmJiBleHRlbnRzLnhfYWR2YW5jZSAhPSAwKQogICAgICAgICB3ID0gKGZsb2F0KWV4dGVu
dHMueF9hZHZhbmNlOwotICAgIHJldHVybiB3OworICAgIAorICAgIEdseXBoTWV0cmljcyBtZXRy
aWNzOworICAgIG1ldHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSB3OworICAgIHJldHVybiBtZXRy
aWNzOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRI
YWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9G
b250SGFpa3UuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvRm9udEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCB2
b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiB9CiAKIAotZmxvYXQgRm9u
dDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxvYXQgRm9udDo6
ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92
ZXJmbG93KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvU2ltcGxl
Rm9udERhdGFIYWlrdS5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTMsNyArOTMsNyBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAg
bV90cmVhdEFzRml4ZWRQaXRjaCA9IG1fcGxhdGZvcm1EYXRhLmZvbnQoKSAmJiBtX3BsYXRmb3Jt
RGF0YS5mb250KCktPklzRml4ZWQoKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRm
b3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmlj
c01vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BsYXRmb3JtRGF0YS5mb250KCkpCiAgICAgICAg
IHJldHVybiAwOwpAQCAtMTAzLDcgKzEwMyw5IEBAIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybVdpZHRoRm9yR2wKIAogICAgIGNoYXJVbmljb2RlVG9VVEY4SEFDSyhnbHlwaCwgY2hhckFy
cmF5KTsKICAgICBtX3BsYXRmb3JtRGF0YS5mb250KCktPkdldEVzY2FwZW1lbnRzKGNoYXJBcnJh
eSwgMSwgZXNjYXBlbWVudHMpOwotICAgIHJldHVybiBlc2NhcGVtZW50c1swXSAqIG1fcGxhdGZv
cm1EYXRhLmZvbnQoKS0+U2l6ZSgpOworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1l
dHJpY3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBlc2NhcGVtZW50c1swXSAqIG1fcGxhdGZvcm1EYXRh
LmZvbnQoKS0+U2l6ZSgpOworICAgIHJldHVybiBtZXRyaWNzOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4
dENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjgsNiArNjgsMTAgQEAgQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4
VGV4dENvbnRybwogICAgICwgbV9jaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaCgwKQogICAgICwgbV9m
aW5hbFJvdW5kaW5nV2lkdGgoMCkKICAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRz
KQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1h
eCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46
Om1pbigpKQorICAgICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9h
dD46Om1heCgpKQorICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxm
bG9hdD46Om1pbigpKQogICAgICwgbV9sYXN0Um91bmRpbmdHbHlwaCgwKQogewogICAgIG1fcGFk
ZGluZyA9IG1fcnVuLnBhZGRpbmcoKTsKQEAgLTQzOCw2ICs0NDIsNyBAQCB2b2lkIENvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzCiAgICAgICAgIENHRmxvYXQgcm91bmRlZFNwYWNl
V2lkdGggPSByb3VuZENHRmxvYXQoZm9udERhdGEtPnNwYWNlV2lkdGgoKSk7CiAgICAgICAgIGJv
b2wgcm91bmRzQWR2YW5jZXMgPSAhbV9mb250LmlzUHJpbnRlckZvbnQoKSAmJiBmb250RGF0YS0+
cGxhdGZvcm1EYXRhKCkucm91bmRzR2x5cGhBZHZhbmNlcygpOwogICAgICAgICBib29sIGhhc0V4
dHJhU3BhY2luZyA9IChtX2ZvbnQubGV0dGVyU3BhY2luZygpIHx8IG1fZm9udC53b3JkU3BhY2lu
ZygpIHx8IG1fcGFkZGluZykgJiYgIW1fcnVuLnNwYWNpbmdEaXNhYmxlZCgpOworICAgICAgICBD
R1BvaW50IGdseXBoT3JpZ2luID0gQ0dQb2ludFplcm87CiAgICAgICAgIENGSW5kZXggbGFzdENo
YXJhY3RlckluZGV4ID0gbV9ydW4ubHRyKCkgPyBudW1lcmljX2xpbWl0czxDRkluZGV4Pjo6bWlu
KCkgOiBudW1lcmljX2xpbWl0czxDRkluZGV4Pjo6bWF4KCk7CiAgICAgICAgIGJvb2wgaXNNb25v
dG9uaWMgPSB0cnVlOwogCkBAIC01NDEsNiArNTQ2LDE2IEBAIHZvaWQgQ29tcGxleFRleHRDb250
cm9sbGVyOjphZGp1c3RHbHlwaHMKICAgICAgICAgICAgIGFkdmFuY2UuaGVpZ2h0ICo9IC0xOwog
ICAgICAgICAgICAgbV9hZGp1c3RlZEFkdmFuY2VzLmFwcGVuZChhZHZhbmNlKTsKICAgICAgICAg
ICAgIG1fYWRqdXN0ZWRHbHlwaHMuYXBwZW5kKGdseXBoKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljcyA9IGZvbnREYXRhLT5tZXRyaWNzRm9yR2x5
cGgoZ2x5cGgpOworICAgICAgICAgICAgZ2x5cGhNZXRyaWNzLmJvdW5kaW5nQm94Lm1vdmUoZ2x5
cGhPcmlnaW4ueCwgZ2x5cGhPcmlnaW4ueSk7CisgICAgICAgICAgICBtX21pbkdseXBoQm91bmRp
bmdCb3hYID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGlu
Z0JveC54KCkpOworICAgICAgICAgICAgbV9tYXhHbHlwaEJvdW5kaW5nQm94WCA9IG1heChtX21h
eEdseXBoQm91bmRpbmdCb3hYLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gucmlnaHQoKSk7Cisg
ICAgICAgICAgICBtX21pbkdseXBoQm91bmRpbmdCb3hZID0gbWluKG1fbWluR2x5cGhCb3VuZGlu
Z0JveFksIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC55KCkpOworICAgICAgICAgICAgbV9tYXhH
bHlwaEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJp
Y3MuYm91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICAgICAgZ2x5cGhPcmlnaW4ueCArPSBh
ZHZhbmNlLndpZHRoOworICAgICAgICAgICAgZ2x5cGhPcmlnaW4ueSArPSBhZHZhbmNlLmhlaWdo
dDsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgbGFzdENoYXJhY3RlckluZGV4ID0gY2hhcmFj
dGVySW5kZXg7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFpc01vbm90b25pYykKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5oCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2MiwxMSBA
QCBwdWJsaWM6CiAgICAgLy8gRXh0cmEgd2lkdGggdG8gdGhlIGxlZnQgb2YgdGhlIGxlZnRtb3N0
IGdseXBoLgogICAgIGZsb2F0IGZpbmFsUm91bmRpbmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZmluYWxSb3VuZGluZ1dpZHRoOyB9CiAKKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtYXhH
bHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFg7
IH0KKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWlu
R2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICAKIHByaXZhdGU6CiAg
ICAgY2xhc3MgQ29tcGxleFRleHRSdW4gOiBwdWJsaWMgUmVmQ291bnRlZDxDb21wbGV4VGV4dFJ1
bj4gewogICAgIHB1YmxpYzoKQEAgLTE3Myw2ICsxNzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOwogCisgICAgZmxv
YXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBtX21heEdseXBoQm91bmRpbmdC
b3hYOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7CisgICAgZmxvYXQgbV9tYXhH
bHlwaEJvdW5kaW5nQm94WTsKKyAgICAKICAgICB1bnNpZ25lZCBtX2xhc3RSb3VuZGluZ0dseXBo
OwogfTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhU
ZXh0TWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q29tcGxleFRleHRNYWMuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogRmxvYXRSZWN0IEZvbnQ6OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dChjb25z
dCBUZXh0UnVuJiBydW4sIGNvbnN0IEludFBvaW50JiBwb2ludCwgaW50IGgsCkBAIC04Myw5ICs4
NSwxNSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgZHJh
d0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBydW4sIHN0YXJ0UG9pbnQpOwogfQog
Ci1mbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpIGNvbnN0Citm
bG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBI
YXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZs
b3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNv
bnRyb2xsZXIodGhpcywgcnVuLCB0cnVlLCBmYWxsYmFja0ZvbnRzKTsKKyAgICBpZiAoZ2x5cGhP
dmVyZmxvdykgeworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBtYXg8aW50PihnbHlwaE92
ZXJmbG93LT50b3AsIGNlaWxmKC1jb250cm9sbGVyLm1pbkdseXBoQm91bmRpbmdCb3hZKCkpIC0g
YXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBtYXg8aW50PihnbHlw
aE92ZXJmbG93LT5ib3R0b20sIGNlaWxmKGNvbnRyb2xsZXIubWF4R2x5cGhCb3VuZGluZ0JveFko
KSkgLSBkZXNjZW50KCkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5sZWZ0ID0gbWF4PGludD4o
MCwgY2VpbGYoLWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFgoKSkpOworICAgICAgICBn
bHlwaE92ZXJmbG93LT5yaWdodCA9IG1heDxpbnQ+KDAsIGNlaWxmKGNvbnRyb2xsZXIubWF4R2x5
cGhCb3VuZGluZ0JveFgoKSAtIGNvbnRyb2xsZXIudG90YWxXaWR0aCgpKSk7CisgICAgfQogICAg
IHJldHVybiBjb250cm9sbGVyLnRvdGFsV2lkdGgoKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9u
IDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNywxNyArNDA3LDI3IEBAIHZvaWQgU2ltcGxlRm9u
dERhdGE6OmRldGVybWluZVBpdGNoKCkKICAgICAgICAgICAgW25hbWUgY2FzZUluc2Vuc2l0aXZl
Q29tcGFyZTpAIk1vbm90eXBlQ29yc2l2YSJdICE9IE5TT3JkZXJlZFNhbWU7CiB9CiAKLWZsb2F0
IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0
CitHbHlwaE1ldHJpY3MgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtTWV0cmljc0ZvckdseXBoKEds
eXBoIGdseXBoLCBHbHlwaE1ldHJpY3NNb2RlIG1ldHJpY3NNb2RlKSBjb25zdAogewotICAgIE5T
Rm9udCogZm9udCA9IG1fcGxhdGZvcm1EYXRhLmZvbnQoKTsKLSAgICBmbG9hdCBwb2ludFNpemUg
PSBtX3BsYXRmb3JtRGF0YS5tX3NpemU7CisgICAgTlNGb250KiBmb250ID0gcGxhdGZvcm1EYXRh
KCkuZm9udCgpOworICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRmb3JtRGF0YSgpLm1fc2l6ZTsK
ICAgICBDR0FmZmluZVRyYW5zZm9ybSBtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUocG9p
bnRTaXplLCBwb2ludFNpemUpOwogICAgIENHU2l6ZSBhZHZhbmNlOwotICAgIGlmICghd2tHZXRH
bHlwaFRyYW5zZm9ybWVkQWR2YW5jZXMobV9wbGF0Zm9ybURhdGEuY2dGb250KCksIGZvbnQsICZt
LCAmZ2x5cGgsICZhZHZhbmNlKSkgeworICAgIGlmICghd2tHZXRHbHlwaFRyYW5zZm9ybWVkQWR2
YW5jZXMocGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGZvbnQsICZtLCAmZ2x5cGgsICZhZHZhbmNl
KSkgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjYWNoZSBnbHlwaCB3aWR0aHMgZm9y
ICVAICVmIiwgW2ZvbnQgZGlzcGxheU5hbWVdLCBwb2ludFNpemUpOwogICAgICAgICBhZHZhbmNl
LndpZHRoID0gMDsKICAgICB9Ci0gICAgcmV0dXJuIGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRp
Y0JvbGRPZmZzZXQ7CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CisgICAgbWV0cmljcy5ob3Jp
em9udGFsQWR2YW5jZSA9IGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7Cisg
ICAgaWYgKG1ldHJpY3NNb2RlID09IEdseXBoQm91bmRpbmdCb3gpIHsKKyAgICAgICAgQ0dSZWN0
IGJvdW5kaW5nQm94OworICAgICAgICBDR0ZvbnRHZXRHbHlwaEJCb3hlcyhwbGF0Zm9ybURhdGEo
KS5jZ0ZvbnQoKSwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgICAgICBDR0Zsb2F0IHNj
YWxlID0gcG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgICAgICBtZXRyaWNzLmJvdW5kaW5n
Qm94ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm91bmRpbmdCb3gsIENHQWZmaW5lVHJh
bnNmb3JtTWFrZVNjYWxlKHNjYWxlLCAtc2NhbGUpKTsKKyAgICAgICAgaWYgKG1fc3ludGhldGlj
Qm9sZE9mZnNldCkKKyAgICAgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0
cmljcy5ib3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICB9
CisgICAgcmV0dXJuIG1ldHJpY3M7CiB9CiAKICNpZiBVU0UoQVRTVUkpCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5
LDcgKzE2OSw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAg
ICAgICAgcC0+ZHJhd1RleHQocHQsIHN0cmluZywgZmxhZ3MsIHJ1bi5wYWRkaW5nKCkpOwogfQog
Ci1mbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qKSBjb25zdAorZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiwgR2x5cGhPdmVyZmxvdyopIGNvbnN0CiB7CiAgICAgaWYgKCFydW4u
bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiAwOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDgg
QEAKICNpbmNsdWRlICJVbmlzY3JpYmVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBib29sIEZvbnQ6OmNhblJldHVybkZhbGxiYWNrRm9udHNGb3JDb21wbGV4VGV4dCgpCkBAIC04
OSwxMCArOTEsMTYgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQog
ICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50
KTsKIH0KIAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRS
dW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBj
b25zdAorZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4m
IHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlw
aE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIFVuaXNjcmliZUNvbnRyb2xs
ZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMpOwogICAgIGNvbnRyb2xsZXIu
YWR2YW5jZShydW4ubGVuZ3RoKCkpOworICAgIGlmIChnbHlwaE92ZXJmbG93KSB7CisgICAgICAg
IGdseXBoT3ZlcmZsb3ctPnRvcCA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYo
LWNvbnRyb2xsZXIubWluR2x5cGhCb3VuZGluZ0JveFkoKSkgLSBhc2NlbnQoKSk7CisgICAgICAg
IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IG1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwg
Y2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WSgpKSAtIGRlc2NlbnQoKSk7Cisg
ICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQgPSBtYXg8aW50PigwLCBjZWlsZigtY29udHJvbGxl
ci5taW5HbHlwaEJvdW5kaW5nQm94WCgpKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnJpZ2h0
ID0gbWF4PGludD4oMCwgY2VpbGYoY29udHJvbGxlci5tYXhHbHlwaEJvdW5kaW5nQm94WCgpIC0g
Y29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkpKTsKKyAgICB9CiAgICAgcmV0dXJuIGNvbnRyb2xs
ZXIucnVuV2lkdGhTb0ZhcigpOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAkocmV2aXNpb24gNTcxNzQp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDEwICsxMjYsMTAgQEAgdm9pZCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1DaGFyV2lkdGhJbgogICAgIH0KIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtV2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBo
TWV0cmljc01vZGUgbWV0cmljc01vZGUpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGxhdGZvcm1EYXRh
LnVzZUdESSgpKQotICAgICAgIHJldHVybiB3aWR0aEZvckdESUdseXBoKGdseXBoKTsKKyAgICAg
ICByZXR1cm4gbWV0cmljc0ZvckdESUdseXBoKGdseXBoKTsKIAogICAgIENHRm9udFJlZiBmb250
ID0gbV9wbGF0Zm9ybURhdGEuY2dGb250KCk7CiAgICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0
Zm9ybURhdGEuc2l6ZSgpOwpAQCAtMTM5LDggKzEzOSwxOCBAQCBmbG9hdCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHJlYWwgc3Vw
cG9ydCBmb3IgcHJpbnRlciBmb250cy4KICAgICBib29sIGlzUHJpbnRlckZvbnQgPSBmYWxzZTsK
ICAgICB3a0dldEdseXBoQWR2YW5jZXMoZm9udCwgbSwgbV9pc1N5c3RlbUZvbnQsIGlzUHJpbnRl
ckZvbnQsIGdseXBoLCBhZHZhbmNlKTsKLQotICAgIHJldHVybiBhZHZhbmNlLndpZHRoICsgbV9z
eW50aGV0aWNCb2xkT2Zmc2V0OworICAgIEdseXBoTWV0cmljcyBtZXRyaWNzOworICAgIG1ldHJp
Y3MuaG9yaXpvbnRhbEFkdmFuY2UgPSBhZHZhbmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zm
c2V0OworICAgIAorICAgIGlmIChtZXRyaWNzTW9kZSA9PSBHbHlwaEJvdW5kaW5nQm94KSB7Cisg
ICAgICAgIENHUmVjdCBib3VuZGluZ0JveDsKKyAgICAgICAgQ0dGb250R2V0R2x5cGhCQm94ZXMo
Zm9udCwgJmdseXBoLCAxLCAmYm91bmRpbmdCb3gpOworICAgICAgICBDR0Zsb2F0IHNjYWxlID0g
cG9pbnRTaXplIC8gdW5pdHNQZXJFbSgpOworICAgICAgICBtZXRyaWNzLmJvdW5kaW5nQm94ID0g
Q0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oYm91bmRpbmdCb3gsIENHQWZmaW5lVHJhbnNmb3Jt
TWFrZVNjYWxlKHNjYWxlLCAtc2NhbGUpKTsKKyAgICAgICAgaWYgKG1fc3ludGhldGljQm9sZE9m
ZnNldCkKKyAgICAgICAgICAgIG1ldHJpY3MuYm91bmRpbmdCb3guc2V0V2lkdGgobWV0cmljcy5i
b3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKKyAgICB9CisgICAg
cmV0dXJuIG1ldHJpY3M7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzksMTYgKzE3OSwyNSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRl
cm1pbmVQaXRjaCgpCiAgICAgUmVsZWFzZURDKDAsIGRjKTsKIH0KIAotZmxvYXQgU2ltcGxlRm9u
dERhdGE6OndpZHRoRm9yR0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitHbHlwaE1ldHJpY3Mg
U2ltcGxlRm9udERhdGE6Om1ldHJpY3NGb3JHRElHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsK
ICAgICBIREMgaGRjID0gR2V0REMoMCk7CiAgICAgU2V0R3JhcGhpY3NNb2RlKGhkYywgR01fQURW
QU5DRUQpOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChoZGMsIG1fcGxhdGZv
cm1EYXRhLmhmb250KCkpOwotICAgIGludCB3aWR0aDsKLSAgICBHZXRDaGFyV2lkdGhJKGhkYywg
Z2x5cGgsIDEsIDAsICZ3aWR0aCk7CisKKyAgICBHTFlQSE1FVFJJQ1MgZ2RpTWV0cmljczsKKyAg
ICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsgMCwgMSwgIDAsIDAsICAwLCAwLCAgMCwg
MSB9OworICAgIEdldEdseXBoT3V0bGluZShoZGMsIGdseXBoLCBHR09fTUVUUklDUyB8IEdHT19H
TFlQSF9JTkRFWCwgJmdkaU1ldHJpY3MsIDAsIDAsICZpZGVudGl0eSk7CisKICAgICBTZWxlY3RP
YmplY3QoaGRjLCBvbGRGb250KTsKICAgICBSZWxlYXNlREMoMCwgaGRjKTsKLSAgICByZXR1cm4g
d2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7CisKKyAgICBHbHlwaE1ldHJpY3MgZ2x5cGhN
ZXRyaWNzOworICAgIGdseXBoTWV0cmljcy5ob3Jpem9udGFsQWR2YW5jZSA9IGdkaU1ldHJpY3Mu
Z21DZWxsSW5jWCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKKyAgICBnbHlwaE1ldHJpY3MuYm91
bmRpbmdCb3ggPSBGbG9hdFJlY3QoZ2RpTWV0cmljcy5nbXB0R2x5cGhPcmlnaW4ueCwgLWdkaU1l
dHJpY3MuZ21wdEdseXBoT3JpZ2luLnksCisgICAgICAgIGdkaU1ldHJpY3MuZ21CbGFja0JveFgg
KyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQsIGdkaU1ldHJpY3MuZ21CbGFja0JveFkpOworCisgICAg
cmV0dXJuIGdseXBoTWV0cmljczsKIH0KIAogU0NSSVBUX0ZPTlRQUk9QRVJUSUVTKiBTaW1wbGVG
b250RGF0YTo6c2NyaXB0Rm9udFByb3BlcnRpZXMoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJl
dmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJl
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRl
ICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKK3VzaW5n
IG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IFJlYXJj
aGl0ZWN0IHRoaXMgdG8gYmUgbW9yZSBsaWtlIFdpZHRoSXRlcmF0b3IgaW4gRm9udC5jcHAuICBI
YXZlIGFuIGFkdmFuY2UoKSBtZXRob2QKQEAgLTM5LDE2ICs0MSwyMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyB0YWtlIHRoZSBHbHlwaEJ1ZmZlciBhcyBhbiBhcmcgc28gdGhhdCB3ZSBkb24n
dCBoYXZlIHRvIHBvcHVsYXRlIHRoZSBnbHlwaCBidWZmZXIgd2hlbgogLy8gbWVhc3VyaW5nLgog
VW5pc2NyaWJlQ29udHJvbGxlcjo6VW5pc2NyaWJlQ29udHJvbGxlcihjb25zdCBGb250KiBmb250
LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cykKLTogbV9mb250KCpmb250KQotLCBtX3J1bihydW4pCi0sIG1fZmFsbGJhY2tG
b250cyhmYWxsYmFja0ZvbnRzKQotLCBtX2VuZChydW4ubGVuZ3RoKCkpCi0sIG1fY3VycmVudENo
YXJhY3RlcigwKQotLCBtX3J1bldpZHRoU29GYXIoMCkKLSwgbV9jb21wdXRpbmdPZmZzZXRQb3Np
dGlvbihmYWxzZSkKLSwgbV9pbmNsdWRlUGFydGlhbEdseXBocyhmYWxzZSkKLSwgbV9vZmZzZXRY
KDApCi0sIG1fb2Zmc2V0UG9zaXRpb24oMCkKKyAgICA6IG1fZm9udCgqZm9udCkKKyAgICAsIG1f
cnVuKHJ1bikKKyAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQorICAgICwgbV9t
aW5HbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwg
bV9tYXhHbHlwaEJvdW5kaW5nQm94WChudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAg
ICwgbV9taW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQor
ICAgICwgbV9tYXhHbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigp
KQorICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQorICAgICwgbV9jdXJyZW50Q2hhcmFjdGVyKDAp
CisgICAgLCBtX3J1bldpZHRoU29GYXIoMCkKKyAgICAsIG1fY29tcHV0aW5nT2Zmc2V0UG9zaXRp
b24oZmFsc2UpCisgICAgLCBtX2luY2x1ZGVQYXJ0aWFsR2x5cGhzKGZhbHNlKQorICAgICwgbV9v
ZmZzZXRYKDApCisgICAgLCBtX29mZnNldFBvc2l0aW9uKDApCiB7CiAgICAgbV9wYWRkaW5nID0g
bV9ydW4ucGFkZGluZygpOwogICAgIGlmICghbV9wYWRkaW5nKQpAQCAtMzc0LDYgKzM4MCwxNCBA
QCBib29sIFVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5kUGxhY2VJCiAgICAgICAgICAgICBn
bHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwgYWR2YW5jZSwgJnNpemUpOwogICAgICAg
ICB9CiAKKyAgICAgICAgR2x5cGhNZXRyaWNzIGdseXBoTWV0cmljcyA9IGZvbnREYXRhLT5tZXRy
aWNzRm9yR2x5cGgoZ2x5cGgpOworICAgICAgICBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gubW92
ZShtX2dseXBoT3JpZ2luLngoKSwgbV9nbHlwaE9yaWdpbi55KCkpOworICAgICAgICBtX21pbkds
eXBoQm91bmRpbmdCb3hYID0gbWluKG1fbWluR2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmlj
cy5ib3VuZGluZ0JveC54KCkpOworICAgICAgICBtX21heEdseXBoQm91bmRpbmdCb3hYID0gbWF4
KG1fbWF4R2x5cGhCb3VuZGluZ0JveFgsIGdseXBoTWV0cmljcy5ib3VuZGluZ0JveC5yaWdodCgp
KTsKKyAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91bmRp
bmdCb3hZLCBnbHlwaE1ldHJpY3MuYm91bmRpbmdCb3gueSgpKTsKKyAgICAgICAgbV9tYXhHbHlw
aEJvdW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBnbHlwaE1ldHJpY3Mu
Ym91bmRpbmdCb3guYm90dG9tKCkpOworICAgICAgICBtX2dseXBoT3JpZ2luLm1vdmUoYWR2YW5j
ZSArIG9mZnNldFgsIC1vZmZzZXRZKTsKKwogICAgICAgICAvLyBNdXRhdGUgdGhlIGdseXBoIGFy
cmF5IHRvIGNvbnRhaW4gb3VyIGFsdGVyZWQgYWR2YW5jZXMuCiAgICAgICAgIGlmIChtX2NvbXB1
dGluZ09mZnNldFBvc2l0aW9uKQogICAgICAgICAgICAgYWR2YW5jZXNba10gPSBhZHZhbmNlOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNv
bnRyb2xsZXIuaAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDEx
IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSB3aWR0aCBvZiBldmVyeXRoaW5nIHdlJ3Zl
IGNvbnN1bWVkIHNvIGZhci4KICAgICBmbG9hdCBydW5XaWR0aFNvRmFyKCkgY29uc3QgeyByZXR1
cm4gbV9ydW5XaWR0aFNvRmFyOyB9CiAKKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWluR2x5cGhCb3VuZGluZ0JveFg7IH0KKyAgICBmbG9hdCBtYXhH
bHlwaEJvdW5kaW5nQm94WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFg7
IH0KKyAgICBmbG9hdCBtaW5HbHlwaEJvdW5kaW5nQm94WSgpIGNvbnN0IHsgcmV0dXJuIG1fbWlu
R2x5cGhCb3VuZGluZ0JveFk7IH0KKyAgICBmbG9hdCBtYXhHbHlwaEJvdW5kaW5nQm94WSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7IH0KKwogcHJpdmF0ZTogICAgCiAg
ICAgdm9pZCByZXNldENvbnRyb2xBbmRTdGF0ZSgpOwogCkBAIC02MSw2ICs2NiwxMSBAQCBwcml2
YXRlOiAgICAKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7CiAgICAgY29uc3QgVGV4dFJ1biYgbV9y
dW47CiAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBtX2ZhbGxiYWNrRm9udHM7
CisgICAgRmxvYXRQb2ludCBtX2dseXBoT3JpZ2luOworICAgIGZsb2F0IG1fbWluR2x5cGhCb3Vu
ZGluZ0JveFg7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJvdW5kaW5nQm94WDsKKyAgICBmbG9hdCBt
X21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0IG1fbWF4R2x5cGhCb3VuZGluZ0JveFk7
CiAKICAgICBTQ1JJUFRfQ09OVFJPTCBtX2NvbnRyb2w7CiAgICAgU0NSSVBUX1NUQVRFIG1fc3Rh
dGU7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5jZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250V2luY2Uu
Y3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udFdpbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgRm9u
dDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKLWZsb2F0IEZvbnQ6
OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZs
b2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVy
ZmxvdykgY29uc3QKIHsKICAgICBUZXh0UnVuQ29tcG9uZW50cyBjb21wb25lbnRzOwogICAgIGlu
dCB3ID0gZ2VuZXJhdGVDb21wb25lbnRzKCZjb21wb25lbnRzLCAqdGhpcywgcnVuKTsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFd4LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRXeC5jcHAJKHJldmlzaW9uIDU3MTc0KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250V3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZQogfQogCiAKLWZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBU
ZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250
cykgY29uc3QKK2Zsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0
UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywg
R2x5cGhPdmVyZmxvdyopIGNvbnN0CiB7CiAjaWYgT1MoV0lORE9XUykKICAgICBVbmlzY3JpYmVD
b250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCBmYWxsYmFja0ZvbnRzKTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0YVd4LmNwcAko
cmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1NpbXBsZUZv
bnREYXRhV3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsMTcgKzExMiwxOSBAQCB2b2lkIFNp
bXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgICAgIG1fdHJlYXRBc0ZpeGVkUGl0
Y2ggPSBmYWxzZTsKIH0KIAotZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JH
bHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK0dseXBoTWV0cmljcyBTaW1wbGVGb250RGF0YTo6cGxh
dGZvcm1NZXRyaWNzRm9yR2x5cGgoR2x5cGggZ2x5cGgsIEdseXBoTWV0cmljc01vZGUpIGNvbnN0
CiB7CisgICAgR2x5cGhNZXRyaWNzIG1ldHJpY3M7CiAjaWYgX19XWE1TV19fCiAgICAgLy8gdW5k
ZXIgV2luZG93cyAvIHd4TVNXIHdlIGN1cnJlbnRseSBhbHdheXMgdXNlIEdESSBmb250cy4KLSAg
ICByZXR1cm4gd2lkdGhGb3JHRElHbHlwaChnbHlwaCk7CisgICAgbWV0cmljcy5ob3Jpem9udGFs
QWR2YW5jZSA9IHdpZHRoRm9yR0RJR2x5cGgoZ2x5cGgpOwogI2Vsc2UKICAgICAvLyBUT0RPOiBm
aXggdGhpcyEgTWFrZSBHZXRUZXh0RXh0ZW50cyBhIG1ldGhvZCBvZiB3eEZvbnQgaW4gMi45CiAg
ICAgaW50IHdpZHRoID0gMTA7CiAgICAgR2V0VGV4dEV4dGVudCgqbV9wbGF0Zm9ybURhdGEuZm9u
dCgpLCAod3hDaGFyKWdseXBoLCAmd2lkdGgsIE5VTEwpOwotICAgIHJldHVybiB3aWR0aDsKKyAg
ICBtZXRyaWNzLmhvcml6b250YWxBZHZhbmNlID0gd2lkdGg7CiAjZW5kaWYKKyAgICByZXR1cm4g
bWV0cmljczsKIH0KIAogI2lmIE9TKFdJTkRPV1MpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDggKzI4OCwxMCBAQCBpbnQgSW5saW5l
Rmxvd0JveDo6cGxhY2VCb3hlc0hvcml6b250YWxsCiAgICAgICAgICAgICBpbnQgbGV0dGVyU3Bh
Y2luZyA9IG1pbigwLCAoaW50KXJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5sZXR0ZXJT
cGFjaW5nKCkpOwogICAgICAgICAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4UG9zICsg
dGV4dC0+d2lkdGgoKSAtIGxldHRlclNwYWNpbmcsIHJpZ2h0TGF5b3V0T3ZlcmZsb3cpOwogCi0g
ICAgICAgICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAg
ICAgICAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgLSBsZXR0ZXJT
cGFjaW5nOworICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IHN0YXRp
Y19jYXN0PElubGluZVRleHRCb3gqPihjdXJyKS0+Z2x5cGhPdmVyZmxvdygpOworCisgICAgICAg
ICAgICBpbnQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVy
ZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwKTsKKyAgICAgICAgICAgIGludCByaWdodEds
eXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyAtIGxldHRlclNwYWNpbmcgKyAoZ2x5cGhPdmVy
ZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMCk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGludCBjaGlsZE92ZXJmbG93TGVmdCA9IGxlZnRHbHlwaE92ZXJmbG93OwogICAgICAgICAg
ICAgaW50IGNoaWxkT3ZlcmZsb3dSaWdodCA9IHJpZ2h0R2x5cGhPdmVyZmxvdzsKQEAgLTQxMiwz
NSArNDE0LDM1IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKIAog
ICAgICAgICBpbnQgbGluZUhlaWdodDsKICAgICAgICAgaW50IGJhc2VsaW5lOwotICAgICAgICBW
ZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiB1c2VkRm9udHM7CisgICAgICAgIFZlY3Rvcjxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiB1c2VkRm9udHMgPSAwOwogICAgICAgICBpZiAoY3Vyci0+
aXNJbmxpbmVUZXh0Qm94KCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94
Kj4oY3VyciktPnRha2VGYWxsYmFja0ZvbnRzKHVzZWRGb250cyk7CisgICAgICAgICAgICB1c2Vk
Rm9udHMgPSBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94Kj4oY3VyciktPmZhbGxiYWNrRm9udHMo
KTsKIAotICAgICAgICBpZiAoIXVzZWRGb250cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVz
ZWRGb250cy5hcHBlbmQoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250
KCkucHJpbWFyeUZvbnQoKSk7CisgICAgICAgIGlmICh1c2VkRm9udHMpIHsKKyAgICAgICAgICAg
IHVzZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+
Zm9udCgpLnByaW1hcnlGb250KCkpOwogICAgICAgICAgICAgTGVuZ3RoIHBhcmVudExpbmVIZWln
aHQgPSBjdXJyLT5yZW5kZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUhlaWdodCgpOwog
ICAgICAgICAgICAgaWYgKHBhcmVudExpbmVIZWlnaHQuaXNOZWdhdGl2ZSgpKSB7CiAgICAgICAg
ICAgICAgICAgaW50IGJhc2VsaW5lVG9Cb3R0b20gPSAwOwogICAgICAgICAgICAgICAgIGJhc2Vs
aW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250
cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAo
dXNlZEZvbnRzW2ldLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRzW2ldLT5hc2NlbnQoKSAtIHVz
ZWRGb250c1tpXS0+ZGVzY2VudCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5l
ID0gbWF4KGJhc2VsaW5lLCBoYWxmTGVhZGluZyArIHVzZWRGb250c1tpXS0+YXNjZW50KCkpOwot
ICAgICAgICAgICAgICAgICAgICBiYXNlbGluZVRvQm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0
b20sIHVzZWRGb250c1tpXS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkg
LSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSAtIGhhbGZMZWFkaW5nKTsKKyAgICAgICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKHVzZWRGb250cy0+YXQoaSktPmxpbmVT
cGFjaW5nKCkgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSkt
PmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNl
bGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0JvdHRvbSwgdXNl
ZEZvbnRzLT5hdChpKS0+bGluZVNwYWNpbmcoKSAtIHVzZWRGb250cy0+YXQoaSktPmFzY2VudCgp
IC0gdXNlZEZvbnRzLT5hdChpKS0+ZGVzY2VudCgpIC0gaGFsZkxlYWRpbmcpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBiYXNlbGlu
ZVRvQm90dG9tOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnRMaW5lSGVpZ2h0LmlzUGVy
Y2VudCgpKSB7CiAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IHBhcmVudExpbmVIZWlnaHQu
Y2FsY01pblZhbHVlKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnRTaXplKCkpOwogICAg
ICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBp
bnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdodCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1
c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAyOwotICAgICAgICAgICAgICAgICAgICBiYXNlbGlu
ZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsK
KyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWln
aHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2Nl
bnQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwg
aGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0g
cGFyZW50TGluZUhlaWdodC52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsK
LSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAobGluZUhlaWdo
dCAtIHVzZWRGb250c1tpXS0+YXNjZW50KCkgLSB1c2VkRm9udHNbaV0tPmRlc2NlbnQoKSkgLyAy
OwotICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRp
bmcgKyB1c2VkRm9udHNbaV0tPmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaW50IGhhbGZMZWFkaW5nID0gKGxpbmVIZWlnaHQgLSB1c2VkRm9udHMtPmF0KGkpLT5hc2Nl
bnQoKSAtIHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoKSkgLyAyOworICAgICAgICAgICAgICAg
ICAgICBiYXNlbGluZSA9IG1heChiYXNlbGluZSwgaGFsZkxlYWRpbmcgKyB1c2VkRm9udHMtPmF0
KGkpLT5hc2NlbnQoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgewpAQCAtNTYyLDEwICs1NjQsMTIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21w
dXRlVmVydGljYWxPdmVyZgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAg
ICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJ0LT5zdHlsZSgp
LT50ZXh0U3Ryb2tlV2lkdGgoKSAvIDIuMGYpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
aW50IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3c7Ci0gICAgICAgICAgICBpbnQg
Ym90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93OwotICAgICAgICAgICAgCisKKyAg
ICAgICAgICAgIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSBzdGF0aWNfY2FzdDxJbmxp
bmVUZXh0Qm94Kj4oY3VyciktPmdseXBoT3ZlcmZsb3coKTsKKworICAgICAgICAgICAgaW50IHRv
cEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSAoZ2x5cGhPdmVyZmxvdyA/IGdseXBo
T3ZlcmZsb3ctPnRvcCA6IDApOworICAgICAgICAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZsb3cg
PSBzdHJva2VPdmVyZmxvdyArIChnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9t
IDogMCk7CisKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93VG9wID0gdG9wR2x5cGhPdmVy
ZmxvdzsKICAgICAgICAgICAgIGludCBjaGlsZE92ZXJmbG93Qm90dG9tID0gYm90dG9tR2x5cGhP
dmVyZmxvdzsKICAgICAgICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hhZG93ID0gcnQtPnN0eWxl
KCktPnRleHRTaGFkb3coKTsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpIHsKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDI5LDMw
ICsxMDI5LDQ4IEBAIGJvb2wgSW5saW5lVGV4dEJveDo6Y29udGFpbnNDYXJldE9mZnNldCgKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPElubGluZVRleHRCb3gqLCBWZWN0
b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPiA+IEZhbGxiYWNrRm9udHNNYXA7Ci1zdGF0aWMgRmFs
bGJhY2tGb250c01hcCogZ0ZhbGxiYWNrRm9udHNNYXA7Ci0KIHZvaWQgSW5saW5lVGV4dEJveDo6
c2V0RmFsbGJhY2tGb250cyhjb25zdCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZh
bGxiYWNrRm9udHMpCiB7Ci0gICAgaWYgKCFnRmFsbGJhY2tGb250c01hcCkKLSAgICAgICAgZ0Zh
bGxiYWNrRm9udHNNYXAgPSBuZXcgRmFsbGJhY2tGb250c01hcDsKKyAgICBpZiAoIXNfZ2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZh
bGxiYWNrRm9udHNNYXAgPSBuZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisK
KyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBzX2ds
eXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFrZV9wYWlyKFZlY3Rv
cjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkpLmZpcnN0OworICAg
IEFTU0VSVChpdC0+c2Vjb25kLmZpcnN0LmlzRW1wdHkoKSk7CisgICAgY29weVRvVmVjdG9yKGZh
bGxiYWNrRm9udHMsIGl0LT5zZWNvbmQuZmlyc3QpOworfQorCitWZWN0b3I8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogSW5saW5lVGV4dEJveDo6ZmFsbGJhY2tGb250cygpIGNvbnN0Cit7CisgICAg
aWYgKCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4g
MDsKIAotICAgIEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9yIGl0ID0gZ0ZhbGxiYWNrRm9udHNN
YXAtPnNldCh0aGlzLCBWZWN0b3I8Y29uc3QgU2ltcGxlRm9udERhdGEqPigpKS5maXJzdDsKLSAg
ICBBU1NFUlQoaXQtPnNlY29uZC5pc0VtcHR5KCkpOwotICAgIGNvcHlUb1ZlY3RvcihmYWxsYmFj
a0ZvbnRzLCBpdC0+c2Vjb25kKTsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01h
cDo6aXRlcmF0b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5maW5k
KHRoaXMpOworICAgIGlmIChpdCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFw
LT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gJml0LT5zZWNvbmQuZmly
c3Q7CiB9CiAKLXZvaWQgSW5saW5lVGV4dEJveDo6dGFrZUZhbGxiYWNrRm9udHMoVmVjdG9yPGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpCitJbmxpbmVUZXh0Qm94OjpHbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCogSW5saW5lVGV4dEJveDo6c19nbHlwaE92ZXJm
bG93QW5kRmFsbGJhY2tGb250c01hcCA9IDA7CisKK3ZvaWQgSW5saW5lVGV4dEJveDo6c2V0R2x5
cGhPdmVyZmxvdyhjb25zdCBHbHlwaE92ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewotICAgIGlm
ICghZ0ZhbGxiYWNrRm9udHNNYXApCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoIXNfZ2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXApCisgICAgICAgIHNfZ2x5cGhPdmVyZmxvd0FuZEZh
bGxiYWNrRm9udHNNYXAgPSBuZXcgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CiAK
LSAgICBGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9IGdGYWxsYmFja0ZvbnRzTWFwLT5m
aW5kKHRoaXMpOwotICAgIGlmIChpdCA9PSBnRmFsbGJhY2tGb250c01hcC0+ZW5kKCkpCi0gICAg
ICAgIHJldHVybjsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0
b3IgaXQgPSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5hZGQodGhpcywgbWFr
ZV9wYWlyKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+KCksIEdseXBoT3ZlcmZsb3coKSkp
LmZpcnN0OworICAgIGl0LT5zZWNvbmQuc2Vjb25kID0gZ2x5cGhPdmVyZmxvdzsKK30KKworR2x5
cGhPdmVyZmxvdyogSW5saW5lVGV4dEJveDo6Z2x5cGhPdmVyZmxvdygpIGNvbnN0Cit7CisgICAg
aWYgKCFzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICByZXR1cm4g
MDsKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSBz
X2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5maW5kKHRoaXMpOworICAgIGlmIChp
dCA9PSBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwLT5lbmQoKSkKKyAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBmYWxsYmFja0ZvbnRzLnN3YXAoaXQtPnNlY29uZCk7Ci0gICAgZ0Zh
bGxiYWNrRm9udHNNYXAtPnJlbW92ZShpdCk7CisgICAgcmV0dXJuICZpdC0+c2Vjb25kLnNlY29u
ZDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guaAkocmV2aXNpb24gNTcxNzQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lk
IG9mZnNldFJ1bihpbnQgZCkgeyBtX3N0YXJ0ICs9IGQ7IH0KIAogICAgIHZvaWQgc2V0RmFsbGJh
Y2tGb250cyhjb25zdCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mKTsKLSAgICB2b2lk
IHRha2VGYWxsYmFja0ZvbnRzKFZlY3Rvcjxjb25zdCBTaW1wbGVGb250RGF0YSo+Jik7CisgICAg
VmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMoKSBjb25zdDsKKwor
ICAgIHZvaWQgc2V0R2x5cGhPdmVyZmxvdyhjb25zdCBHbHlwaE92ZXJmbG93Jik7CisgICAgR2x5
cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdygpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgY2xl
YXJHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKCkKKyAgICB7CisgICAgICAgIGlmIChz
X2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKQorICAgICAgICAgICAgc19nbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcC0+Y2xlYXIoKTsKKyAgICB9CiAKICAgICB1bnNpZ25l
ZCBzaG9ydCB0cnVuY2F0aW9uKCkgeyByZXR1cm4gbV90cnVuY2F0aW9uOyB9CiAKQEAgLTEyOSw2
ICsxMzgsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNob3J0IG1fdHJ1bmNhdGlvbjsgLy8g
V2hlcmUgdG8gdHJ1bmNhdGUgd2hlbiB0ZXh0IG92ZXJmbG93IGlzIGFwcGxpZWQuICBXZSB1c2Ug
c3BlY2lhbCBjb25zdGFudHMgdG8KICAgICAgICAgICAgICAgICAgICAgICAvLyBkZW5vdGUgbm8g
dHJ1bmNhdGlvbiAodGhlIHdob2xlIHJ1biBwYWludHMpIGFuZCBmdWxsIHRydW5jYXRpb24gKG5v
dGhpbmcgcGFpbnRzIGF0IGFsbCkuCiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSW5saW5l
VGV4dEJveCosIHBhaXI8VmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4sIEdseXBoT3ZlcmZs
b3c+ID4gR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA7CisgICAgc3RhdGljIEdseXBo
T3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwKiBzX2dseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludENvbXBvc2l0aW9uQmFja2dyb3Vu
ZChHcmFwaGljc0NvbnRleHQqLCBpbnQgdHgsIGludCB0eSwgUmVuZGVyU3R5bGUqLCBjb25zdCBG
b250JiwgaW50IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1lbnRN
YXJrZXJzKEdyYXBoaWNzQ29udGV4dCosIGludCB0eCwgaW50IHR5LCBSZW5kZXJTdHlsZSosIGNv
bnN0IEZvbnQmLCBib29sIGJhY2tncm91bmQpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw3
ICszNDIsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0CiAgICAg
ICAgICAgICAgICAgbmVlZHNXb3JkU3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJ0LT5jaGFy
YWN0ZXJzKClbci0+bV9zdG9wIC0gMV0pICYmIHItPm1fc3RvcCA9PSBsZW5ndGg7ICAgICAgICAg
IAogICAgICAgICAgICAgfQogICAgICAgICAgICAgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+IGZhbGxiYWNrRm9udHM7Ci0gICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndp
ZHRoKHItPm1fc3RhcnQsIHItPm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExp
bmUsICZmYWxsYmFja0ZvbnRzKSk7CisgICAgICAgICAgICBHbHlwaE92ZXJmbG93IGdseXBoT3Zl
cmZsb3c7CisgICAgICAgICAgICByLT5tX2JveC0+c2V0V2lkdGgocnQtPndpZHRoKHItPm1fc3Rh
cnQsIHItPm1fc3RvcCAtIHItPm1fc3RhcnQsIHRvdFdpZHRoLCBmaXJzdExpbmUsICZmYWxsYmFj
a0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdykpOwogICAgICAgICAgICAgaWYgKCFmYWxsYmFja0ZvbnRz
LmlzRW1wdHkoKQogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICAgICAgICAgICYmICFpc1NW
R1RleHQoKQpAQCAtMzUxLDYgKzM1MiwxNCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9y
aXpvbnRhbFBvc2l0CiAgICAgICAgICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7
CiAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+
c2V0RmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKTsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmICgoZ2x5cGhPdmVyZmxvdy50b3AgfHwgZ2x5cGhPdmVyZmxvdy5ib3R0b20gfHwgZ2x5
cGhPdmVyZmxvdy5sZWZ0IHx8IGdseXBoT3ZlcmZsb3cucmlnaHQpCisjaWYgRU5BQkxFKFNWRykK
KyAgICAgICAgICAgICAgICAmJiAhaXNTVkdUZXh0KCkKKyNlbmRpZgorICAgICAgICAgICAgKSB7
CisgICAgICAgICAgICAgICAgQVNTRVJUKHItPm1fYm94LT5pc1RleHQoKSk7CisgICAgICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KHItPm1fYm94KS0+c2V0R2x5cGhPdmVy
ZmxvdyhnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICgh
ci0+bV9vYmplY3QtPmlzUmVuZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgIFJlbmRlckJveCog
cmVuZGVyQm94ID0gdG9SZW5kZXJCb3goci0+bV9vYmplY3QpOwogICAgICAgICAgICAgcmVuZGVy
Qm94LT5jYWxjV2lkdGgoKTsKQEAgLTczNCw2ICs3NDMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjps
YXlvdXRJbmxpbmVDaGlsZHJlbihiCiAKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBw
b3NpdGlvbiBvdXIgdGV4dCBydW5zIHZlcnRpY2FsbHkuCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21wdXRlVmVydGljYWxQb3NpdGlvbnNGb3JMaW5lKGxpbmVCb3gsIHJlc29sdmVyLmZpcnN0
UnVuKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5saW5lVGV4dEJveDo6Y2xlYXJHbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250TWFwKCk7CiAKICNpZiBFTkFCTEUoU1ZHKQogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gU3BlY2lhbCBTVkcgdGV4dCBsYXlvdXQgY29kZQpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDU3MTc0KQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgUmVu
ZGVyVGV4dDo6UmVuZGVyVGV4dChOb2RlKiBub2RlLCBQYXNzUgogICAgICAsIG1fbGluZXNEaXJ0
eShmYWxzZSkKICAgICAgLCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0KGZhbHNlKQogICAgICAsIG1f
aXNBbGxBU0NJSShtX3RleHQuY29udGFpbnNPbmx5QVNDSUkoKSkKLSAgICAgLCBtX2tub3duTm90
VG9Vc2VGYWxsYmFja0ZvbnRzKGZhbHNlKQorICAgICAsIG1fa25vd25Ub0hhdmVOb092ZXJmbG93
QW5kTm9GYWxsYmFja0ZvbnRzKGZhbHNlKQogewogICAgIEFTU0VSVChtX3RleHQpOwogCkBAIC0x
NDMsNyArMTQzLDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZgog
ICAgIC8vIG5lZWQgdG8gcmVsYXlvdXQuCiAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNl
TGF5b3V0KSB7CiAgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwot
ICAgICAgICBtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzID0gZmFsc2U7CisgICAgICAgIG1f
a25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzID0gZmFsc2U7CiAgICAgfQog
CiAgICAgRVRleHRUcmFuc2Zvcm0gb2xkVHJhbnNmb3JtID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+
dGV4dFRyYW5zZm9ybSgpIDogVFROT05FOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIEludFJlY3QgUmVu
ZGVyVGV4dDo6bG9jYWxDYXJldFJlY3QoSW5saW4KICAgICByZXR1cm4gSW50UmVjdChsZWZ0LCB0
b3AsIGNhcmV0V2lkdGgsIGhlaWdodCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgaW50IFJlbmRlclRl
eHQ6OndpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnQmIGYsIGludCBzdGFydCwgaW50IGxlbiwgaW50
IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cykgY29u
c3QKK0FMV0FZU19JTkxJTkUgaW50IFJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKGNvbnN0IEZv
bnQmIGYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykg
Y29uc3QKIHsKICAgICBpZiAoZi5pc0ZpeGVkUGl0Y2goKSAmJiAhZi5pc1NtYWxsQ2FwcygpICYm
IG1faXNBbGxBU0NJSSkgewogICAgICAgICBpbnQgbW9ub3NwYWNlQ2hhcmFjdGVyV2lkdGggPSBm
LnNwYWNlV2lkdGgoKTsKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZW5k
ZXJUZXh0Ojp3aWR0aEZyb21DCiAgICAgICAgIHJldHVybiB3OwogICAgIH0KIAotICAgIHJldHVy
biBmLndpZHRoKFRleHRSdW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxv
d1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMpOworICAgIHJldHVybiBmLndpZHRoKFRleHRS
dW4odGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyks
IGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogfQogCiB2b2lkIFJlbmRlclRleHQ6OnRy
aW1tZWRQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgsCkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBS
ZW5kZXJUZXh0Ojp0cmltbWVkUHJlZldpZHRocyhpbnQgbAogICAgICAgICAgICAgICAgIGxpbmVs
ZW4rKzsKIAogICAgICAgICAgICAgaWYgKGxpbmVsZW4pIHsKLSAgICAgICAgICAgICAgICBlbmRN
YXhXID0gd2lkdGhGcm9tQ2FjaGUoZiwgaSwgbGluZWxlbiwgbGVhZFdpZHRoICsgZW5kTWF4Vywg
MCk7CisgICAgICAgICAgICAgICAgZW5kTWF4VyA9IHdpZHRoRnJvbUNhY2hlKGYsIGksIGxpbmVs
ZW4sIGxlYWRXaWR0aCArIGVuZE1heFcsIDAsIDApOwogICAgICAgICAgICAgICAgIGlmIChmaXJz
dExpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lID0gZmFsc2U7CiAgICAgICAg
ICAgICAgICAgICAgIGxlYWRXaWR0aCA9IDA7CkBAIC02MTMsMTQgKzYxMywxNSBAQCBpbnQgUmVu
ZGVyVGV4dDo6bWF4UHJlZldpZHRoKCkgY29uc3QKIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZX
aWR0aHMoaW50IGxlYWRXaWR0aCkKIHsKICAgICBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4gZmFsbGJhY2tGb250czsKLSAgICBjYWxjUHJlZldpZHRocyhsZWFkV2lkdGgsIGZhbGxiYWNr
Rm9udHMpOwotICAgIGlmIChmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9rbm93
bk5vdFRvVXNlRmFsbGJhY2tGb250cyA9IHRydWU7CisgICAgR2x5cGhPdmVyZmxvdyBnbHlwaE92
ZXJmbG93OworICAgIGNhbGNQcmVmV2lkdGhzKGxlYWRXaWR0aCwgZmFsbGJhY2tGb250cywgZ2x5
cGhPdmVyZmxvdyk7CisgICAgaWYgKGZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFnbHlwaE92
ZXJmbG93LmxlZnQgJiYgIWdseXBoT3ZlcmZsb3cucmlnaHQgJiYgIWdseXBoT3ZlcmZsb3cudG9w
ICYmICFnbHlwaE92ZXJmbG93LmJvdHRvbSkKKyAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZs
b3dBbmROb0ZhbGxiYWNrRm9udHMgPSB0cnVlOwogfQogCi12b2lkIFJlbmRlclRleHQ6OmNhbGNQ
cmVmV2lkdGhzKGludCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYg
ZmFsbGJhY2tGb250cykKK3ZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWRX
aWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlw
aE92ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewotICAgIEFTU0VSVChtX2hhc1RhYiB8fCBwcmVm
V2lkdGhzRGlydHkoKSB8fCAhbV9rbm93bk5vdFRvVXNlRmFsbGJhY2tGb250cyk7CisgICAgQVNT
RVJUKG1faGFzVGFiIHx8IHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duVG9IYXZlTm9PdmVy
Zmxvd0FuZE5vRmFsbGJhY2tGb250cyk7CiAKICAgICBtX21pbldpZHRoID0gMDsKICAgICBtX2Jl
Z2luTWluV2lkdGggPSAwOwpAQCAtNjUwLDYgKzY1MSw4IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2Fs
Y1ByZWZXaWR0aHMoaW50IGxlYWQKICAgICBpbnQgbmV4dEJyZWFrYWJsZSA9IC0xOwogICAgIGlu
dCBsYXN0V29yZEJvdW5kYXJ5ID0gMDsKIAorICAgIGludCBmaXJzdEdseXBoTGVmdE92ZXJmbG93
ID0gLTE7CisKICAgICBib29sIGJyZWFrTkJTUCA9IHN0eWxlKCktPmF1dG9XcmFwKCkgJiYgc3R5
bGUoKS0+bmJzcE1vZGUoKSA9PSBTUEFDRTsKICAgICBib29sIGJyZWFrQWxsID0gKHN0eWxlKCkt
PndvcmRCcmVhaygpID09IEJyZWFrQWxsV29yZEJyZWFrIHx8IHN0eWxlKCktPndvcmRCcmVhaygp
ID09IEJyZWFrV29yZEJyZWFrKSAmJiBzdHlsZSgpLT5hdXRvV3JhcCgpOwogCkBAIC02OTIsNyAr
Njk1LDkgQEAgdm9pZCBSZW5kZXJUZXh0OjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZAogICAgICAg
ICAgICAgbGFzdFdvcmRCb3VuZGFyeSsrOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0gZWxzZSBpZiAoYyA9PSBzb2Z0SHlwaGVuKSB7Ci0gICAgICAgICAgICBjdXJyTWF4V2lkdGgg
Kz0gd2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaSAtIGxhc3RXb3JkQm91bmRh
cnksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAg
ICAgY3Vyck1heFdpZHRoICs9IHdpZHRoRnJvbUNhY2hlKGYsIGxhc3RXb3JkQm91bmRhcnksIGkg
LSBsYXN0V29yZEJvdW5kYXJ5LCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgsICZmYWxsYmFja0Zv
bnRzLCAmZ2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICBpZiAoZmlyc3RHbHlwaExlZnRPdmVy
ZmxvdyA8IDApCisgICAgICAgICAgICAgICAgZmlyc3RHbHlwaExlZnRPdmVyZmxvdyA9IGdseXBo
T3ZlcmZsb3cubGVmdDsKICAgICAgICAgICAgIGxhc3RXb3JkQm91bmRhcnkgPSBpICsgMTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC03MTUsMTMgKzcyMCwxNSBAQCB2b2lk
IFJlbmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGludCBsZWFkCiAKICAgICAgICAgaW50IHdvcmRM
ZW4gPSBqIC0gaTsKICAgICAgICAgaWYgKHdvcmRMZW4pIHsKLSAgICAgICAgICAgIGludCB3ID0g
d2lkdGhGcm9tQ2FjaGUoZiwgaSwgd29yZExlbiwgbGVhZFdpZHRoICsgY3Vyck1heFdpZHRoLCAm
ZmFsbGJhY2tGb250cyk7CisgICAgICAgICAgICBpbnQgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGks
IHdvcmRMZW4sIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlw
aE92ZXJmbG93KTsKKyAgICAgICAgICAgIGlmIChmaXJzdEdseXBoTGVmdE92ZXJmbG93IDwgMCkK
KyAgICAgICAgICAgICAgICBmaXJzdEdseXBoTGVmdE92ZXJmbG93ID0gZ2x5cGhPdmVyZmxvdy5s
ZWZ0OwogICAgICAgICAgICAgY3Vyck1pbldpZHRoICs9IHc7CiAgICAgICAgICAgICBpZiAoYmV0
d2VlbldvcmRzKSB7CiAgICAgICAgICAgICAgICAgaWYgKGxhc3RXb3JkQm91bmRhcnkgPT0gaSkK
ICAgICAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IHc7CiAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUo
ZiwgbGFzdFdvcmRCb3VuZGFyeSwgaiAtIGxhc3RXb3JkQm91bmRhcnksIGxlYWRXaWR0aCArIGN1
cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMpOworICAgICAgICAgICAgICAgICAgICBjdXJyTWF4
V2lkdGggKz0gd2lkdGhGcm9tQ2FjaGUoZiwgbGFzdFdvcmRCb3VuZGFyeSwgaiAtIGxhc3RXb3Jk
Qm91bmRhcnksIGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCwgJmZhbGxiYWNrRm9udHMsICZnbHlw
aE92ZXJmbG93KTsKICAgICAgICAgICAgICAgICBsYXN0V29yZEJvdW5kYXJ5ID0gajsKICAgICAg
ICAgICAgIH0KIApAQCAtNzc0LDYgKzc4MSw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y2FsY1ByZWZX
aWR0aHMoaW50IGxlYWQKICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggPSAwOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggKz0gZi53aWR0aChU
ZXh0UnVuKHR4dCArIGksIDEsIGFsbG93VGFicygpLCBsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgp
KTsKKyAgICAgICAgICAgICAgICBnbHlwaE92ZXJmbG93LnJpZ2h0ID0gMDsKICAgICAgICAgICAg
ICAgICBuZWVkc1dvcmRTcGFjaW5nID0gaXNTcGFjZSAmJiAhcHJldmlvdXNDaGFyYWN0ZXJJc1Nw
YWNlICYmIGkgPT0gbGVuIC0gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEFTU0VSVChs
YXN0V29yZEJvdW5kYXJ5ID09IGkpOwpAQCAtNzgxLDYgKzc4OSw5IEBAIHZvaWQgUmVuZGVyVGV4
dDo6Y2FsY1ByZWZXaWR0aHMoaW50IGxlYWQKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChm
aXJzdEdseXBoTGVmdE92ZXJmbG93ID4gMCkKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy5sZWZ0ID0g
Zmlyc3RHbHlwaExlZnRPdmVyZmxvdzsKKwogICAgIGlmICgobmVlZHNXb3JkU3BhY2luZyAmJiBs
ZW4gPiAxKSB8fCAoaWdub3JpbmdTcGFjZXMgJiYgIWZpcnN0V29yZCkpCiAgICAgICAgIGN1cnJN
YXhXaWR0aCArPSB3b3JkU3BhY2luZzsKIApAQCAtMTA1Niw3ICsxMDY3LDcgQEAgdm9pZCBSZW5k
ZXJUZXh0OjpzZXRUZXh0KFBhc3NSZWZQdHI8U3RyaQogCiAgICAgc2V0VGV4dEludGVybmFsKHRl
eHQpOwogICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAgIG1fa25v
d25Ob3RUb1VzZUZhbGxiYWNrRm9udHMgPSBmYWxzZTsKKyAgICBtX2tub3duVG9IYXZlTm9PdmVy
Zmxvd0FuZE5vRmFsbGJhY2tGb250cyA9IGZhbHNlOwogICAgIAogICAgIEFYT2JqZWN0Q2FjaGUq
IGF4T2JqZWN0Q2FjaGUgPSBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCk7CiAgICAgaWYgKGF4
T2JqZWN0Q2FjaGUtPmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCkBAIC0xMTIyLDcgKzExMzMsNyBA
QCB2b2lkIFJlbmRlclRleHQ6OnBvc2l0aW9uTGluZUJveChJbmxpbmVCCiAgICAgbV9jb250YWlu
c1JldmVyc2VkVGV4dCB8PSBzLT5kaXJlY3Rpb24oKSA9PSBSVEw7CiB9CiAKLXVuc2lnbmVkIFJl
bmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgaW50IHhQb3MsIGJv
b2wgZmlyc3RMaW5lLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0TGluZSwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBj
b25zdAogewogICAgIGlmIChmcm9tID49IHRleHRMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0xMTMwLDEwICsxMTQxLDEwIEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2ln
bmVkIGZyb20KICAgICBpZiAoZnJvbSArIGxlbiA+IHRleHRMZW5ndGgoKSkKICAgICAgICAgbGVu
ID0gdGV4dExlbmd0aCgpIC0gZnJvbTsKIAotICAgIHJldHVybiB3aWR0aChmcm9tLCBsZW4sIHN0
eWxlKGZpcnN0TGluZSktPmZvbnQoKSwgeFBvcywgZmFsbGJhY2tGb250cyk7CisgICAgcmV0dXJu
IHdpZHRoKGZyb20sIGxlbiwgc3R5bGUoZmlyc3RMaW5lKS0+Zm9udCgpLCB4UG9zLCBmYWxsYmFj
a0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIH0KIAotdW5zaWduZWQgUmVuZGVyVGV4dDo6d2lkdGgo
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250JiBmLCBpbnQgeFBvcywgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAordW5zaWdu
ZWQgUmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBG
b250JiBmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIEFTU0VS
VChmcm9tICsgbGVuIDw9IHRleHRMZW5ndGgoKSk7CiAgICAgaWYgKCFjaGFyYWN0ZXJzKCkpCkBA
IC0xMTQzLDE4ICsxMTU0LDE5IEBAIHVuc2lnbmVkIFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVk
IGZyb20KICAgICBpZiAoJmYgPT0gJnN0eWxlKCktPmZvbnQoKSkgewogICAgICAgICBpZiAoIXN0
eWxlKCktPnByZXNlcnZlTmV3bGluZSgpICYmICFmcm9tICYmIGxlbiA9PSB0ZXh0TGVuZ3RoKCkp
IHsKICAgICAgICAgICAgIGlmIChmYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tub3duTm90VG9Vc2VGYWxsYmFja0ZvbnRzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyVGV4dCo+KHRoaXMpLT5jYWxjUHJl
ZldpZHRocygwLCAqZmFsbGJhY2tGb250cyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmYWxs
YmFja0ZvbnRzLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2tub3duTm90
VG9Vc2VGYWxsYmFja0ZvbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZ2x5cGhP
dmVyZmxvdyk7CisgICAgICAgICAgICAgICAgaWYgKHByZWZXaWR0aHNEaXJ0eSgpIHx8ICFtX2tu
b3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cykgeworICAgICAgICAgICAgICAg
ICAgICBjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKS0+Y2FsY1ByZWZXaWR0aHMoMCwgKmZh
bGxiYWNrRm9udHMsICpnbHlwaE92ZXJmbG93KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZh
bGxiYWNrRm9udHMtPmlzRW1wdHkoKSAmJiAhZ2x5cGhPdmVyZmxvdy0+bGVmdCAmJiAhZ2x5cGhP
dmVyZmxvdy0+cmlnaHQgJiYgIWdseXBoT3ZlcmZsb3ctPnRvcCAmJiAhZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dB
bmROb0ZhbGxiYWNrRm9udHMgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB3ID0gbV9tYXhXaWR0aDsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAg
IHcgPSBtYXhQcmVmV2lkdGgoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB3ID0gd2lk
dGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzKTsKKyAgICAgICAg
ICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMs
IGdseXBoT3ZlcmZsb3cpOwogICAgIH0gZWxzZQotICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVu
KHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZh
bGxiYWNrRm9udHMpOworICAgICAgICB3ID0gZi53aWR0aChUZXh0UnVuKHRleHQoKS0+Y2hhcmFj
dGVycygpICsgZnJvbSwgbGVuLCBhbGxvd1RhYnMoKSwgeFBvcyksIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOwogCiAgICAgcmV0dXJuIHc7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5oCShyZXZpc2lvbiA1NzE3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAko
d29ya2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdGV4
dExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC5sZW5ndGgoKTsgfSAvLyBub24gdmlydHVh
bCBpbXBsZW1lbnRhdGlvbiBvZiBsZW5ndGgoKQogICAgIHZvaWQgcG9zaXRpb25MaW5lQm94KElu
bGluZUJveCopOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Ci0gICAgdmlydHVhbCB1bnNpZ25l
ZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGludCB4UG9zLCBib29sIGZpcnN0
TGluZSA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIGxlbiwgY29uc3QgRm9udCYsIGludCB4UG9zLCBIYXNoU2V0PGNvbnN0IFNpbXBs
ZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0
OworICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVu
LCBpbnQgeFBvcywgYm9vbCBmaXJzdExpbmUgPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290
TGluZUJveCA9IGZhbHNlKSBjb25zdDsKIApAQCAtMTMzLDcgKzEzMyw3IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIElubGluZVRleHRCb3gqIGNyZWF0ZVRleHRCb3goKTsgLy8gU3ViY2xhc3Nl
ZCBieSBTVkcuCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjYWxjUHJlZldpZHRocyhpbnQgbGVhZFdp
ZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZhbGxiYWNrRm9udHMpOworICAg
IHZvaWQgY2FsY1ByZWZXaWR0aHMoaW50IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93Jik7CiAKICAgICAvLyBNYWtl
IGxlbmd0aCgpIHByaXZhdGUgc28gdGhhdCBjYWxsZXJzIHRoYXQgaGF2ZSBhIFJlbmRlclRleHQq
CiAgICAgLy8gd2lsbCB1c2UgdGhlIG1vcmUgZWZmaWNpZW50IHRleHRMZW5ndGgoKSBpbnN0ZWFk
LCB3aGlsZQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZVRl
eHRCb3hlcygpOwogICAgIGJvb2wgY29udGFpbnNPbmx5V2hpdGVzcGFjZSh1bnNpZ25lZCBmcm9t
LCB1bnNpZ25lZCBsZW4pIGNvbnN0OwotICAgIGludCB3aWR0aEZyb21DYWNoZShjb25zdCBGb250
JiwgaW50IHN0YXJ0LCBpbnQgbGVuLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdDsKKyAgICBpbnQgd2lkdGhGcm9tQ2FjaGUoY29u
c3QgRm9udCYsIGludCBzdGFydCwgaW50IGxlbiwgaW50IHhQb3MsIEhhc2hTZXQ8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyopIGNvbnN0OwogICAg
IGJvb2wgaXNBbGxBU0NJSSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBbGxBU0NJSTsgfQogCiAgICAg
aW50IG1fbWluV2lkdGg7IC8vIGhlcmUgdG8gbWluaW1pemUgcGFkZGluZyBpbiA2NC1iaXQuCkBA
IC0xNzEsNyArMTcxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IG9yIHJlbW92ZWQpLgogICAgIGJvb2wgbV9jb250YWluc1JldmVyc2VkVGV4dCA6IDE7CiAgICAg
Ym9vbCBtX2lzQWxsQVNDSUkgOiAxOwotICAgIG11dGFibGUgYm9vbCBtX2tub3duTm90VG9Vc2VG
YWxsYmFja0ZvbnRzIDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV9rbm93blRvSGF2ZU5vT3ZlcmZs
b3dBbmROb0ZhbGxiYWNrRm9udHMgOiAxOwogfTsKIAogaW5saW5lIFJlbmRlclRleHQqIHRvUmVu
ZGVyVGV4dChSZW5kZXJPYmplY3QqIG9iamVjdCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU3MTk1KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDQtMDYgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0IHJlcGFpbnRpbmcg
ZG9lcyBub3QgYWNjb3VudCBmb3IgZ2x5cGhzIHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dy
YXBoaWMgYm91bmRzIG9mIHRoZSBmb250ICg2Mjc0KS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY2NDk3MzQ+CisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjI3ND4KKworICAgICAgICAqIGZhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRp
YWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wNC0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIv
aHRtbDQvc3RyaWN0LmR0ZCI+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisgICAgZGl2LnRlc3QgeyB3aWR0aDogMjAwcHg7IGhlaWdodDogMTIwcHg7
IGJvcmRlcjogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmc6IDEwcHg7IH0KKzwvc3R5bGU+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICBm
dW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgICAgeworICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnc3RhY2tlZCcpLmlubmVyVGV4dCA9ICIiOworICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKTsiPgorPHA+PGI+
QlVHIElEOjwvYj4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyNzQiPiBCdWd6aWxsYSBidWcgNjI3NDwvYT5UZXh0IHJlcGFpbnRpbmcgZG9lcyBub3Qg
YWNjb3VudCBmb3IgZ2x5cGhzIHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBoaWMgYm91
bmRzIG9mIHRoZSBmb250LjwvcD4KKworPHAgaWQ9InN1Y2Nlc3MiIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOnBhbGVncmVlbjsgcGFkZGluZzozcHg7Ij48Yj5URVNUIFBBU1M6PC9iPiAKK1RoZSB0
ZXh0IHdpbGwgZW50aXJlbHkgZGlzYXBwZWFyLgorPC9wPgorCis8cCBpZD0iZmFpbHVyZSIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6I0ZGMzMwMDsgcGFkZGluZzozcHg7Ij48Yj5URVNUIEZBSUw6
PC9iPiAgCitNb3N0IG9mIHRoZSB0ZXh0IHdpbGwgYmUgZ29uZSwgYnV0IHNvbWUgYXJ0aWZhY3Rz
IHdpbGwgYmUgbGVmdCBiZWhpbmQgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZS4KKzwvcD4KKworPGRp
diBjbGFzcz0idGVzdCI+CisgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzNnB4OyIgaWQ9InN0
YWNrZWQiPiYjeDFFQTY7JiN4MUVBNDsmI3gxRUFBOyYjeDFFQTg7JiN4MUVCMDs8L2Rpdj4KKzwv
ZGl2PgorPGJyPgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNr
ZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitjZTliZTg2Y2ZiOTQzM2E2NGZj
NjVmODcxMGIwMjA1NgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50
L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4MzE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgz
MTYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjkyCisgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYKKyAgICAgICAgUmVuZGVySW5saW5l
IHtCfSBhdCAoMCwwKSBzaXplIDYyeDE4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNjJ4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYy
OiAiQlVHIElEOiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2MiwwKSBzaXplIDR4
MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjIsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJl
bmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxMTd4MTggW2NvbG9yPSMwMDAwRUVdCisgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2NiwwKSBzaXplIDExN3gxOAorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDY2LDApIHdpZHRoIDExNzogIkJ1Z3ppbGxhIGJ1ZyA2Mjc0IgorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE4MywwKSBzaXplIDc3N3gzNgorICAgICAgICAg
IHRleHQgcnVuIGF0ICgxODMsMCkgd2lkdGggNTk0OiAiVGV4dCByZXBhaW50aW5nIGRvZXMgbm90
IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3IG91dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJv
dW5kcyBvZiB0aGUiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDI5OiAiZm9u
dC4iCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNTIpIHNpemUgNzg0eDI0IFtiZ2NvbG9y
PSM5OEZCOThdCisgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA5MXgxOAor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywzKSBzaXplIDkxeDE4CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCA5MTogIlRFU1QgUEFTUzoiCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoOTQsMykgc2l6ZSAyMDN4MTgKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoOTQsMykgd2lkdGggNDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDk4LDMpIHdp
ZHRoIDE5OTogIlRoZSB0ZXh0IHdpbGwgZW50aXJlbHkgZGlzYXBwZWFyLiIKKyAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCw5Mikgc2l6ZSA3ODR4MjQgW2JnY29sb3I9I0ZGMzMwMF0KKyAgICAg
ICAgUmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDkweDE4CisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgzLDMpIHNpemUgOTB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgzLDMpIHdpZHRoIDkwOiAiVEVTVCBGQUlMOiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg5MywzKSBzaXplIDU2MXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg5MywzKSB3aWR0
aCA0OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoOTcsMykgd2lkdGggNTU3OiAiTW9zdCBv
ZiB0aGUgdGV4dCB3aWxsIGJlIGdvbmUsIGJ1dCBzb21lIGFydGlmYWN0cyB3aWxsIGJlIGxlZnQg
YmVoaW5kIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMTMyKSBzaXplIDIyMngxNDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMEZGKV0KKyAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDExLDExKSBzaXplIDIwMHgwCisgICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwyNzQpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRl
ckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDE4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5wbmcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUt
dHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhw
ZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNh
ZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlDRnBy
RHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgK
Qi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNO
UFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3
M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1eVBP
VTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJsdVpz
YkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRt
SGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9N
cGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdn
eWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFH
azNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3
WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhNbHlt
TUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQ
bVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2
Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1Qz
aXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJGcTFT
Tlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9a
VldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4Qzgv
VVhBZUl1SkFBQWcKQUVsRVFWUjRBZXpkWjdja3gzMG42R3dEN3gzaENPOUprQVNOYUNXS1hIRjBW
bWUwWEo3VkMramo2T01NejV4NU0zTzBSeXZ0akhaRQprVU9LSXVnSkFvUW52UGUyemVZdmIwZDNk
cUlxTStybXZiZXJxNThnRytVaUl5T2VpTXlLZjVxNisrNi8vLzZqalVTQUFBRUNCQWdRCklFQ0FB
SUU5RU5pL0IrdXdDZ0lFQ0JBZ1FJQUFBUUlFQ0hRQ0FoQURnUUFCQWdRSUVDQkFnQUNCUFJNUWdP
d1p0UlVSSUVDQUFBRUMKQkFnUUlDQUFNUVlJRUNCQWdBQUJBZ1FJRU5nekFRSElubEZiRVFFQ0JB
Z1FJRUNBQUFFQ0FoQmpnQUFCQWdRSUVDQkFnQUNCUFJNUQpnT3dadFJVUklFQ0FBQUVDQkFnUUlD
QUFNUVlJRUNCQWdBQUJBZ1FJRU5nekFRSElubEZiRVFFQ0JBZ1FJRUNBQUFFQ0FoQmpnQUFCCkFn
UUlFQ0JBZ0FDQlBSTVFnT3dadFJVUklFQ0FBQUVDQkFnUUlDQUFNUVlJRUNCQWdBQUJBZ1FJRU5n
ekFRSElubEZiRVFFQ0JBZ1EKSUVDQUFBRUNBaEJqZ0FBQkFnUUlFQ0JBZ0FDQlBSTVFnT3dadFJV
UklFQ0FBQUVDQkFnUUlDQUFNUVlJRUNCQWdBQUJBZ1FJRU5negpBUUhJbmxGYkVRRUNCQWdRSUVD
QUFBRUNheGVBZlBEQkI4M2JiNy9kSEQxNjlIanZ2UC8rKzhlZmU5STBIM3h3dEhucnJTUEhLUTRm
ClB0cTgvUEx5MThjelZqejU2S09qemJ2dm5yQ3ZXR1JIczJUOWFjdWhReWZYSVczT3Y3bnBWTFp0
YnQxM1l2bHNYMis5OWRhMmk1cTcKL0tvclBuTGtTUFBtbTIrdXVwajhwMGdnKytvWFhuaWgzVlkv
MkpNYUhENTh1TjFmdkx4ajYvcm9vNC9hL2QrN08xWmViVUZUNjExbAp1NXNxYTZwT1o4bzJOMlc2
a3c1eisyU3F6emJwOHltcnFYNGJzNWdxZTJ6WjNmaHNKOGZZb3ZxdHNqOCtGVFlIRjFXNi85NlRU
ejdaCi9Qclh2MjdlZWVlZDd1MVBmT0lUelhubm5kZTg4Y1lielNXWFhOTGNlKys5ellVWFh0aDk5
dGhqanpXLytjMXZtdmZlZTY5N2ZjVVYKVnpSMzMzMTM4OGxQZnJJTEtuNzFxMTgxZi96akg1dnJy
cnV1K2RLWHZ0U1ZrNHpwaE4vLy92Zk40NDgvM24xMjhjVVhONisvL25xMwp6QVVYWE5DY2ZmYlp6
V2MvKzltdXpQNS9VcmZmL3ZhM3h5ZFU1NTkvZm5QUFBmYzArL2Z2YjdLdThpVjQ1WlZYZG5WTkcx
TDM1TG5vCm9vdjZSVTArZis2NUk4MUREeDF1djF5UE5tMzFtc3N1MjkvczI5ZDAveTY5ZEY5eisr
MzcyL1cyYit4QitzMXZEamN2dm5paythdS8KT3J0NTVaVWp6VTkvZXFoSmpQYTk3MzM4OVNyVmVl
U1J3ODNQZjM2NHRUN1EzSFhYZ1ZVV25aMzNqVGVPdE9Qc2NQT0pUK3h2YnJoaApmM1B3NEpibHE2
OGVhZnN5N1QzYUJxVk4rOW0rNWl0Zk9kZ2NPTEN2SFRkSG0vLzZYejlxKy9uanEvL3VkODlxKy9y
ay9uaisrU1BOCmozOThxSFBLRXYveUwvL1NUVjR5VHM4NjY2eHViR1lNWFg3NTVhM24rOTFuWC83
eWw1dGJicm5sNHlzNFRkL0o5dm5paXkrMlkrZXYKdHRXQ3VjdXZzdEpYWG5tbEhkcy83ZnJtTC83
aUwxWlpWTjVUSVBEb280ODJDUWl5My8zeGozL2MvUFZmLzNXN25lN2VmcVNNajJ5cgozL3ZlOTJh
M09OOG5HVytmK3RTbnVuK3pDNndzb0dhOXRkdGRUVmxqMVNxbTJSOXUralkzWnJxVERuUDdaS3kv
TnUyekdxdXhmaHZ6CmVPU1JSOXI1emMrN3VlUmRkOTAxbG5WUFB0dkpNYmFvd3F2c2oydmNGNjFq
N251VEFjaE5OOTNVSkRMNjJjOSsxcTNyTTUvNVRKTUoKL1M5Lytjc3VhSGo2NmFlYjczNzN1MTJR
Y091dHQzYUJ5dTkrOTdzdTd4ZSs4SVZ1TXBjWENWSysvdld2TjMvLzkzL2ZmTzFyWDJzbgptRnVy
UG5Ub1VQTS8vK2YvN0NaN2YvcW5mOXBjZi8zMTNiTDV6N1BQUHR2ODhJYy9iQ2ZEaXdkTDZwYVVM
N3VrQkR1MzMzNTc5enhICnNSS2NKUDNKbi94Skd6UmMzTFhqSC8veEg1dGdKNkJaVm02MzBPQS8x
MTY3di8weWJkb0E1RkJ6NjYwbkp1aXZ2WGFrK2UvLy9WQWIKa0IxdDF6UEpPU2gxZXkvdnZmZEE4
K0dIV3lldnJyaGlmM1B6elFmYXZqamNGVFo4dmNvYWJyLzlRQnRBYnBXenluSno4ejc2Nk9IbQpk
Nzg3M0h6NzJ3ZmJjWExpcEZ6T2hpUW91ZU9PL1czUXNiLzV3eDhPTnc4K2VLVHR5OE50NEh1d0RS
aU9kSjlkYzgxVzM2UWU2WWVICkh6N3lzZURqd3crUGRvRk03OFJhRi9qKzVWLys1ZkVBK2ovLzUv
L2NCa0NmYU5mMWxhNUpEejMwVUpkbmJ2dktVZHFycjc1NmJsR3oKbDg4Qmd3OC8vTEM2bkdIZFYx
Mitla1VMTWlZd3ZPcXFxMDY3TXlCRHN3Vk5PKzNlbW1wVDl1UDVjditidi9tYjlxRE12dWJhYTYv
ZAoxZUFqZ0JrZk45OThjL2M5dEJPZytUNHAzeGs3VVY1dEdUWHJyZDN1YXNvYXE5ZnB1czMxMnpR
MVZrdmVNZE81RHYwNnpPMlRVdC95CjJDKzd2TGNwanpWV1kvMDI1cEM1WVlLWGRVbHp4OWhZTzJy
MngvMXhWT00rdHI3dGZuWml0amRTd2pubm5IUDgwM3k1SkYxNjZhWGQKWXhxUnN4VWw5Zk9lZSs2
NTVlM2pqem56VUlLUHZKa3pGVG1GbmdDaEgzemtzNXdweVdBYlN6azdVbEwvZVk3Z2xKUXpJa2w1
TDhGSQp6cmo4NGhlLzZDNFZLSGxxSGt1Unh3aTZSWEltNVBMTDkzVm5KR3JLR09icFgybzIvR3pa
NjNQTzJkZWV3VG5SZFdsZXYwN0QxNldjCm5ER1lTc3VXblZwdStIbHR1MTU2NlVnYjNCNXVnOUtU
ZzQrVTk4b3JSNXN2Zi9sZ095NE9kQUhGWno1em9BMFdtbmE4YkxYanlpdjMKTjUvKzlNRjJJcksv
SFk5Yi85NTY2MmliLytRekh5a3JBYzV0dDUwd3kzc0pRTXZadTd3ZXB0dHV1NjBibDhQM1YzbWRz
ZmFUbi95awpHK09yTEZlYmQ4dzU2eDZtYkorMVovOFcxWDJWNWZ2ckhxdG5QMTk1WHZKbjJ5Mzdu
UExaM01kUzl0eHlGaTIveUd4UnZyeTNxSCtXCjVUMlY3OWUwS2Q4QnlWZjZLZ2VwZGpJdDY3TTU0
Mk5SbWVXN1lxcnVpNWFkV21iczg2bjFyckxkVFpXMXJCNmxUYXVZcnRzWUhodXIKcFgybC9jdE1T
NzVWSEVxWmVWeFVoKzMyU2IvY1pXVVA4NHk5TG0wYnk3UHNzKzBzT3pVK0ZwVTVaYldzMzViVnUv
LytkdnUwWDhaTwpQQy90WGxhZjh2bDIxelcxUDk3Tk1icEtuYmQ5eUw1Y2Q1c0pYSTVTYmlmbDFQ
a2YvdkNIYnRGbFI0ZHpWbU1ucndHLzdMTExqbGMxCloycktlcDkvL3ZubTMvLzkzN3N6S0ZsbmJj
cTlDbSsrZWJROUszSmljdnZVVTF1WE10MXp6NEhtempzUHRHZGNEbmRuRnE2K2VuOTcKNlZrNTgz
TzBQWXQwdUVtTTl0SkxSOXN6U0Z1WGRWMTU1YjUyVXJ5dnZUem9VSHVtYVY4YnJEWHRXYVdqM1pI
OSsrNDcyRTYwOXpWUApQSEdrZWVhWkk4MTN2bk1peUJxcjd3c3ZIR2xlZlhWcjBwN2x2dlNsQTky
RWZka3lhZE12Zm5Hb1c4LzU1KzlydnZyVkErMUVmSDh6CnQxMVhYWFhDcUt6N2YvMnZRMjBBc2Er
N3ZPcmhodyszbDhydGEvdGtLMS9PYlBSVEpqY1hYN3p2K05tTkN5NzRlS0R4ekROSHUvcjIKbDR0
L3lzb1psWDdLVWRxeGxFQzVqTzJNMVFjZmZMQjU3YlhYMnZ0VERqVTV1NWRKMXF1dnZ0b0YwYm5z
OEl0Zi9HSVhYUC9idi8xYgpGOXprMHEySEgzNjQ3YXRudXNzRWMyOVR5VlBXbStWenFqUTcxYXd2
WjEyKytjMXZOcm4wY05INk1rNXpxV0sydSt4RThqdzdzVndxCmRzMDExM1RGNWhyOGxKdVVkZWR5
eHh3d1NCMmZlT0tKN3IzdmZPYzdYUUNlZGVleXN4d0F5UGFRc3JMK2xEK3MrNmMvL2VudU1yV1UK
V2JOODFoK3JuQzNOd1lpWFhucXBPMU9hYlRCMnhUYjVTa3IrSEJ6SXBaS3BieTcxN0YvR2s3T3hP
V2lSZXNZelRqbWJXUTVxTE91bgpsUC9VVTA5MVozOVNSbWxEV1c5NWpOMllTZktOMVdGb051enZM
TCtzZi9KWjJwOSt5TUdTakxWY0RsajJSMk9mamRVcDdjN1ppVng2CmV1ZWRkM1puZ0hNa01QdStq
STJwTmsrMUtWNDVFNTR2elp3cFQzL2RkOTk5bzA3THhuMk9DdmJUS3VNblo3WmpsekdSOVpkTGVi
TmYKejVuNzFHOXEyeW5yem1YSHladCsrTE0vKzdQakJ5cHF4bEFzY2lsWHhuZTJ5NHkxak9tTSs0
eUhIQURJZHA1ODMvcld0MDRhMzR2VwpPOXh1VThleHNURFZodko1ZVV4Wnk3YTVaZjJVWlJidFkr
YTB2ZFJuemxoZU5GWnpKVVhPK3ZhMysyV215eHhTdDdGOVM2bDdIaGZWCm9YeStxSC96MlhiTHpo
akxXSm96NXNlOFU3ZXhiVERiK3FMdnIyWGpvK2I3Syt0TVdtUzFyTitXN1RPM1NqcjV2Mlc4NTdz
dzMzMWYKL2VwWHUzMUZjbzFaek4yUHB2eXk3bVhmYnpYN2w2bDZMdHNmWjdtU2RuT01sblhVUEo0
OHc2dFlJdGVQWjJLVW5mMGRkOXpSWFNkYQpqbnBWTEg1U2xrd3VTc29FYkZGSzJiblhaS2RTdmxB
eTZKTDZnVTNhazN0RVNrQTB0cjdYWGp2YVRjWWZmUEJ3OHovK3g2RnV3cHhBCm82UWJienpRblpF
b04xTGZkTk9CZGdleHI5MEpucGdBUC83NGtmYUxwK21PNE45MzM0RjJZcmYxV2FxV204cnZ2bnQv
KzJWMXNMc2YKbzUxbnRST3NmZTBFYzE5WGJnS1NIT212U1Nuckp6ODUxSjJsU1VDVU1uNzcyL0hM
cko1ODhrajc1Ym12T3l1Ukc3OFREQjFwejU3TQpiZGV3dm0rL2ZhU2RaRzY5bTB1bmNvTjQxdlhB
QTRlR1didlhtVUM4L3ZySndWNC9ZOHFMK1NXWG5CaldLVE1CNGpDWTZTODM5YndjCkxjalp1Rzkv
Kzl2ZHBQQmYvL1ZmdXkrMVRCQXpzY3RZeXRuQVhQK2V3S1BjTjVMSll5YmZOOXh3UTNkcFY1a29s
M1dtN053WDlkeHoKejNVVGsrVExHTTFaazBYcnkrUWxFOGFNMTV3aHpHV04yWFlTOUNTbERsbTIx
Q3RCU2Jtc0pOdFN4bmk1Q1QzYlZTYTUrWUpPSGRPMgpwR3pmU1l2cXZzcnlLU09UdUh4SkpYakpw
REJ0VFNyYllQZWk5NThmL2VoSDNXVnd5Wi9KV29LTWZ2ckJEMzdRWFhyeitjOS92dm5HCk43N1Ju
aVY3cGNreVNXUDlsTTl5bjFsT3c2ZS9NdEZkZEpScHlpVHJHYXZESXJNc1U5SlkveVJQTGpsTnY2
YU9LU3ZCVzVub2pYMDIKVnFjYmI3eXhPek9STDcra25HN1BoS1ZjaWpmVjVxazI1VXhoTHI5TlNw
K2xuNVBHNnJSbzNQZlBZSGNGdFA5WlpmeWtYZGtXVW5hQwpqNlE4NXNzK3dkYlV0dE10MFA0bll6
U1hZaWJJemhncDIwUHRHTW85ai9GTmUvSXYrNElZWjh5WHM0OTVqRmsvdUY2MjN1RjJtM3FPCmpZ
Vjh2cXlzZkRaTVk5dmNvbjdLUG16WlBtYTdiZS9YYVd6Y1RJM2w0VmpOZ1lwRjIvMGkweW1IWmZ2
a2Z0M3pmRmlIc3M5ZjFpY3gKM203WkdVTnp4L3lZZDlvenRnMnVPajdtYm9PTCttMXFXMGdiK2lu
Zm5RbmNjaXRBdnE5ekwyamFrVFJtTVRYMnB2YWpLWDlxakMwYQpxMWx1bU1icXVXeC8zQzlqTjhk
b2Z6MVR6MC9NMUtaeTlqN1BUam1UcEJ6dGVLS05JcmViK3I4MjB0OFJiN2U4MnVYeWhaU1V3VmNt
CklkbVFjNFFxWC94VHFXMStkOVAzNjY4ZmFSK1BkcFB6Zm5DUjVSTmM5RlBPWlBSVHptS1VxOGR5
K1ZEN3ZkbWxDeTdZMzA0Rzk3V1gKRVcxMXpXT1BIV2tuaVVmYkwvWUVOZnU2ejNLV29EYTErOS8y
UndCeWVkTFdNcmw4S3hQeXNaUjdTbkxaVTg1RWZPNXpCOXBKYTQ3YQpiaTB6cDEzRGRhWmRTUW5B
Y3Y5Snp2RGNjMC91OVRqU0Job2Z2M3pvNmFlUHROZVc1NUszeGNQMjZhZHorZFdKejlLM3VmUXFn
ZGVjCmxDK09wQnpCVDZDUXlYckdUbDRuWlhLVHdDRkg1ck05SkRBZnB2VGRvcFF6QVprazVWL0t5
QkhwQkFWSmk5YVhpVTBtTXBta1ppZWEKaVZKMnBEa3lsQ0FvWDdpWkJKUkxKUFBsVkFMdDFEczd5
Wkx5T21jNmtqZmxwZXlVVndLVWtxL1VmVHZMeDZOTUxMT2UxQ2NwNnhxbQpuRldOYnptVGsvV21Y
aVhsczVqa2l5QXBiYzNrTHU5bjJiRit5cEd0bkpaT3NKV1VuWFRaOXJzM2p2MW55bVNxRHFXc1ls
WmVsOGV4Ci9rbGdtYjR2WndFU1JHWkNINnV4ejJycU5OeS9sa2xSNmpYVjVsTDNaVzBxbi9jZnAr
cTBhTnlYeVhtL25GWEdUNWJMR1o1WWxjQTEKNDZLYzZaemFkc3A2a3ovYmRMYXpiQTlsKzZrZFF5
a240ekpIZThzWXk1ak9tWkF5MFVrZHM3MzMwN0wxRHJlN3NiRlF5bHRXVnZtOApQRTV0YzR2Nktm
dXFaZnVZbEx1ZHRwZjZUSTJiNUJzYnk2V2NNbGFYOWRuUWRNcGhiTjlTMWpsOExIVW83eS9yazds
bHp4bnpOZDVqCjIrQ3E0MlB1Tmpqc3Q1cHRvZmlYeDV0dnZybWRKMXpmYmVPZis5em51b055S2Fm
R1ltenNUZTFIcDhiWXNyRmE2bDBlYStwWjhrNDkKN3VZWW5WcDNQajh4VzZ2SjNlYkpEam0vRXBJ
YnhqUHB5Ukc2bkFMY1RzcmtwNlQrcENkZndqbUZuUnZHeTc4YzRjM1J3NTFJbVR3bQpaV01vSFpE
SlhHNUlMamV4ajYwbjkzemtqTWZYdm5aVzh4Ly80MW50a2Z1bStlZC8zanBMTUxaYy83TUVKTG5I
b2FRRUhia1VLU2xuCk8vSXZaeC95QzFENWhhMytwSHZKWExZVWRkSmoydmVGTHh4c1R5M21TTjdX
cjJlMWM3SFIxTWFXeDFPcFUrMFpsN0YySFMvMDJKTnkKTC9SRkY1MlluT2NYc0pMS0pXUEhzblpu
ajNMVCtlYy92enlZeU9WbC9RRGtrVWVPTkRmZmZPSVh0VXBacXo3bUtIc216cGs4NWw5Mgp1bi8r
NTMvZUJheWxyQnoxelJoT0VKczhxNlRzMU1yRVBNdlZySytNMitUUGhDQUhCRExoMmVydkwzU25r
blBrTm1jc3MyTXJxYjljCjNodStUamxqMjlrdy8vRDFjUGxNZE5PZWtyS1RMaFBzOGw1NVRIQ1JT
V2dKV1BKK2Y2S2NNd0dsSDhveXBhenNNOGJjc2x3bVRUbHkKbE11RU1ybGMxazlqYlpxcVE2blhz
c2VVbmN2MzBpZkQva243TTdiNjY4LytLSFVmKzJ4dW5WTFgvanJ6ZXRpUGVXK1ZWRk9uNGJoZgpW
UDRxNHlmTEoyQk4zK1l5aEtRRW5PbjNmdXEzdGIvdGxEejl6ek1XeTVtalZjWlFndVQrUVlxYzdj
OTJsWWxPSGhPWTlNZDIxcjFzCnZjUFB4c2JDVkJ2SzUrVnhhcHRMdm1FL3BaN0x4bkR5YjZmdFdT
NnBadHhzNWF6NzcxaWY5YjJuSE1iMkxYVTFXZDYvYzh1ZU0rWnIKdktlMndWWEhSN3o2OXF0c2c4
TmxhN2FGWWY5azMxWlMrZjdJZDNlTlJWbHUyV08vWGNuVDM0OU9qYkd4c2RwZjMwN1VzMTllLzNt
LwovdjE5Mzl3eDJsOUgvL25ndUh6L28vSG5tV2hsWUdibm5GTmE1UmVsK3AyN2FDSlRqZ2lsOUF5
OGt2cVhZNlhzN09EKzIzLzdiOTFPClBJRkNycVhkcVZRQ2tIelp6MDM1T2RoTW1uTS9SMzZxTjJj
T2FsSis1amFYUnVWSWY4NHE1RjkrZ3JhZkVueTArL3IyK3VXNk12dkwKOXAvbjUzVno0L2FYdjN5
Z2FYOHB1ZDNRNmdPNW5KRkpVTkhiWnZ0RmYreDVUYnZLUXVVZWpsd21kZmJaVzBGSTduOUptNDlk
TFZLeQpkcitHbFRNazhWNlVjaWJxN2JlUHRoTzRFNS9uN0ZIZUt5bG5XZlB2di95WEQ3dGZ6L3Jz
Wit1R2Y4WkxOc3h5Wkw2VTEzL01aRFk3CmtKeEN6ZG0wL2lTNm42L21lYzM2aHVXa2ZtVkNuWjhi
ek5HV2JEUDVhZXpzc0U1VnluNGhseGZrN0VPK3FQSXZCekVXcFp3UkxaY0YKOVQ4dk84WHNhOHEx
M0dVL2t6TTYrVHo3bWltM1hPdWJzNSs1L2pVQlM0TElVazUvZldQUHArb3d0bXo1YkZuLzVEcncv
bjZ3NU0vagoyR2M3VWFmK3VuYmkrVTdWYVpYeGszcG5HMGpRbG9OaXVZUXg0MkpxVyt4dk8xTnRy
eDFEMlJma2lIZStHelBHOHAyV2xHdThFM3dPCmc2S3A5ZlkvSHhzTC9YdzF6NmUydVdWbExCdkR5
VCtuN1RzMWJ2cjFydW16S1llcGZVdC9mYXMrbjF2Mm5ERmY0NzNxTnBqMmo0MlAKUlQ2cmJJUDk1
ZWR1QzVsYlpoNmJiVFFIMU1lK1gvcnIzYzd6cVRHV01tdkdhazJmYmFkK1k4dk1IYVBMeWo1NXhy
c3MxNEwzY3lxNQpCQk9aVkpSVUlzcThMcWZCeTJmOVpmSmVkbFM1RkNJcFg3eWx2THhPbVRtU2xk
UVBWTG8zWnZ3blVXaStBRkorL3hlMk12QnkvMGYvClRFenRhakpoVHNxbFdiWHAybXYzZGIvSzlQ
enpSOXNKNHRIdUoyajd5K2J2ZTJRQ25jdVR5dVE4WjBSV1RmbjdHdm1WcVpTem5iOVQKOHQ1N1I3
dGdvRnpDTmJYK3FYYjFsNy9zc24xdFB6VGRKV2JsL1FRZWNjek41aVhsSjRadnVXVi9PeDVPdkpl
QW81OXk5aU9YWjVYSgphajc3eWxjT05OLzYxc0hqLy9MenhRbWs4dDV0dDUwWXMvMXlGajNQVHFv
Y3VTeWZaNnptN0VKSnVXRXVFOXFrUEorVGF0YlhMejlqCk51TTNrNXhzUnpuQ256TXlKU0RwNTkz
cjU1bUVaUnZQMlprRVF1VStrMFgxU0hDUUhkMnliVEQ3Z2JqM0E2cmt6M3Y1Yk13dFh5N0oKbTN0
SDBrOEppRElaWERWTjFXR3F2TEgrU2YyenorenZOOU8yQkV0am44MnQwMVNkdC9QNVR0VnBsZkZU
NnBrREFObkhaenZNbWUyeAoxTjkyeHZMbHMxWEgwQzN0WlZpNXZDWUhBVktudk01bFdObVhUTlZy
ckM1alkyRnN1VVdmVFcxemk1WVpHOE1sLzNiYnZsUGpwdFNqCnRzK21ITWIyTFdWZDIzM2NpYksz
TytacnZGZmRCbXZHUjk5cWxXMnd2MXllejkwV01qNHlvYy9sd1RVV3cvV3Y4bnBxak5XTzFkMnUK
NTZJMjdjUVlYVlJ1VlFDU0wrNlN5aldzT2NLYW8wdVo4T1dHbHBLQ1V3S0gzQ1BTVDRtS3MyUHFw
L3c2U1JxWFFURE1YOWJWeno5OApub2xYU2ZuU0thbi92SnlKU2Q1Y3A1OW9OMGVIczk2Uzhxc3dE
enp3UUhkelgzbHYrRmhXbGFQb0plV201OXkwM2NaUzdaZktDYzdjCnA1RkxySElUZUNieHVaZTJ4
OWpkQ0o1TGovSTNMbktUZXZuRGV5azNrNDRISGpqY2xyZXZ5ZjBZNWIzY3VKNlVTWHBMMytYTDY5
U24KWDZmKzYzSy9SMjd5em8zaytRT0daZG1zWjFIcXY1MWYwTXJQMnVibmhwUG10R3U0cnR5UGN1
ZWQrOXZKNlFuUW1PWEUyTlZYYndVYgpqejkrdUoxY3ArNzUrZDBqM2IvOFBaQnkvMGdwTS9lSERI
OStOL2ZXNUNkNnk3LzI2cDUydk9idkIreHYrLzVFTUpNeVlwSHgxaDlQCnBlemMzSm9qTGZrMW5Y
eWU1N214dTF4Q21Hc3ljK2xReG42dUtjM2xINWswbHBRanNObTVKQzBxUCtzdVl6UjVwdFkzTENj
VG1wek4KUy9CZnJsZlBsMERha3lBcFpXY2QrWmZ0ckx4T09jbVQ5MHZLNS8zWHc3cXZ1bnljWXBQ
N1l0S3U0V1VuWmIxNUxEZjVaVDlSVXRxVAovVS9xbVd2bXN4TlBlMHRLTUpMeWMzWnF6QzN1SmVC
STNsd0R2S3d1WXlaVGRVaTlobWFscm5rYzY1K1VuYUF4WjR5U0wvOXlpV3YyCnAxT2ZqYmxrdlRs
VGxOUG82ZnVNeFFRNXcvMTZ2OStueGtISzdLZXl2ODF5U1RWT1dWOS8zUGZMSzgrbnhrLzZLdi82
S1FlMk1wYXkKSGZidklTcDUrdHRnZjl2SjU2bFBhVU41WGVxNHloaktzcG00cFQvekhaa3hrZnRL
TXVaeUdXTC9RRWxaejdMMTV2TjhsbnJFYkd3cwoxSlNWUENWTmJYUEpOK3luc1RGY3h0QXFiUzkx
eVdQTnVKa2F5LzN0THorYXNXeTc3NXRPT1l6dFcvcjFMOC83ZGNpNEdSdFhjOHZPCk9yYzc1bXU4
cDdiQjdZeVA3VzZEYVd1LzM2YTJoZVFmcGpKRzgzNjIvM3dYNU9CZGpjWFUyQnY3N3BnYVk3WDds
NXA2RHZmSFE0TzgKM3MweHVtaDlpOTQ3MEo0RitMdEZINVQzY2dvNUE3QTBLQk9yVEdxeWM4K2xG
UG03R3NOTFV3S1VBQ1hYMzJhQ2tLT05PYnVRblc5dQptT3J2ZlBOZWdwTGc1L0tWc3FGbXA1R0FK
Sk9xVEY0eXVSdW0xQzJCUXhuTTJUR203RHptK3VyeXhaSDFweDVQdERmRVp0S1ltM2FICmwxOWxt
UnlsemZxeVF4aW1USkp6SkQ0M1pPZCtpRXpvTXhIT2ZRYVoySDdqR3lmLzVlMU1yaDk2YU9zc1J1
S2kzT1BSTnJFN2lwL0wKakhMRS9sZS9PdExlSkoxL2g3dXk4dXRXbVhnbjBIajAwZndTMWY1MlBV
ZmFqZVJJZTluSTFrM3JMVmYzUFBVNDY2eXRuNi9OZXZLNgovVjVyMjl4MDZ5MnZjMDlFenJLa25u
a3Z2MlNWZ0trOWFONStPWC84cjdmblhwRW5uenphOXZmVzM5dElXM01QU2JuMGFVNjdGcDJCClNa
Q1ZNMER4VFZDUm0vUHpOMEhPT1dkL0Z5ejk2RWVIMit2ZjgvT1orY25aclgvSjk0VXZiTjJVbjM1
S2dKSkw0UElUeDR2V1Vmb3kKd2Rpenp4NzkyRTNwbWF4bkhHVnNKN2pJcENFN21uSm1MeE9HL010
bEhSbFhHVWM1NHBTeGtoMVlKb3o1MWFaTUFyTk1KdEJsTEdYeQptRk92V1RhUDJXYjZFOStNNFd4
TCtTeDVzOTZ4OWFVdHlaOTZaaUtaN1N6cnlxOWhwZHdFMVFtSVVvZDgrV2FubDNYa0tGUEt6WGFZ
Cjl4T0VaL3ZJNVVncEs5dERKcVJwWHlhbmFWdTJsWDdkczB6V3ZjcnlPZUtib0Q4L2s1aC9aZjJa
akEzUDBHU0htSFZtZnhQam5LMU0KeWs0OWJjdE4yZkVyMjNiMlNXbGJidHd2WnN2NktXM0xUOUdt
ZitLV2Y3bTBvTDh2eXJxeWIwdGZMVFBKZm1pc0RpbWpiemJzNzdIKwp5WDRuUitMUzl1d0xzLy9N
L1haWloyd3lOaFo5RnNlcE9tV0NrbmJsYUh6YzRwVDlabjk4TG12emNCd00yNVRBSnZWTnU5Tlh5
Wi95CngrcTBhTnpIYnBqR3hrKzIxNnczNHpIcmkwOFpVL0hLUkdXNEx4L2JkbksySXAvSEo5dERQ
TXIya0g1Sm1UVmpxTFFoWXl0bDVQc3IKeStaMXpQTjlsOWNsVGEwMzljbDJXcmE3YkR2THhzbFVX
Y1B2MGRSamJKdkx2akVtL2YzVDJCaE93SmMrcUcxN01TaVBjOGZ5Y0t4bQpUT1JNMkhDN3ozeGdh
QnFiWmZ1ZW1DL2J0NVM2OXgvNys0Q013MnkzeThaVnpvWnR0K3ordHBpK1hIWE0xM2lQYllObHZL
MHlQdktyCld0a3VGbjEvbGZLV1dhMnlMZlQ3b3p6UDh0bjM1REhmbmZsZXpPWCtHUjgxRm5QMm8v
bitHdHZXTWdacTlpOVQ5VnkwUCs3dmI0ckYKYm83UnNvNnB4MzMzMzMvL2ljT2ZVN2xYL0R4Zit0
bUJCU3hIS2RONVl5bGZYcG44bE1HY0w4ZitaRzFzMlozNExEdjRySE00S2RsdQoyVG43a1lQTE9i
dVJzdy85eWZIdmZuZW9qYmozZHdGRERob21PTWxOMWpmZHRMOE42RTZjU2RudXVvZkw1VXhOT2Nz
eXJNc3diMTduCnJFMjZxMS9ua204MzJwVXlZM0RlZVNlZm1TanJISHZNc3UzKzdHTm5OY2FXMmM1
bm1iQm5wNWt4a2pHOVNzcTJNRFgraCtVdFcxOSsKbUNGZldqbDdtQytjN0xpR0tlK1hiU2ZiMWFy
MTdaZTNuYnFYNVJOMDVJQkUycEk2WlFLV0w1bE1ESWNITHNveXFXKytJT0tWNWZMbAowRTg1Z3BY
OVJMYlQ3TkNIYVpGYmxpa1R3RmdVbStHeXRhK242akJsTnRZL0tUdkxMK3JYcWMrbVhMSjgycjZk
TVRIVnBrVjJVMDZMCmx1bS90NTN4aytVemFjNUVlVGpHYXJhZC92cjd6OU9XVmNmUWNQd09YL2ZM
WC9YNTJGaFl0YXlwYlc1UmVXTmpPUG1IYlIyK1hsUm0KZVc5cTNLU3M1RmsybHN0WVhiWFBwaHl5
M3RydmdGS0gwcWFweDdsbHp4bnpZOTdiM1FhWGpZODUyK0F5dzlSLzJUNXowVExwdzN5LwpMUHBl
SExOSVdWTmpiOUg2K3U4dEcyT3JqdFdwZXZiWHVlejVibzdSWmV2c3YxOTNGMjUvaVJXZXA0TVRv
ZGVtRElZY2hSZ2VwYWxkCmZtNitmR0V0UzkvLy9vbEx2WmJsV2ZYOVgvLzY1RXNIc256T0FKenU2
WFJwMS8zM256Z0tXV09laWZDaUNXL05zcXNHSHlsemFuMzUKOGwwMmtlNi92MmduVzFQbmttYzdk
Yyt5K1VMTUdhSWN4ZStuVE9MR3RyWFV0Nnh6R0h5a25DeWZBeHJMMGlLM0xKTzA2RWpRc25MRwoz
cCtxUTZuL3NqTEcraWRsTHdvK1V0YlVaMU11cFQ3YkdSTlRiU3BsOXgrbm5QcDVoOCszTTM0U3VL
WnQ1YXpnc016eWVtemJLWG1HCmoybEwwaXBqYURoK2g2K0g2MWpsOWRoWVdLV2M1SjNhNWhhVk56
YUdrMy9ZMXVIclJXV1c5NmJHVGIrc1JXTzVqTlZWKzJ6S0lldXQKL1E0b2RTaHRtbnJjYnRrN01l
YVhlVzluR3l6dG5Cb2YyOWtHUzluRHgxVzNoVnl0c0N3dHN5ajVwOFpleWJmc2Nka1lXM1dzVHRW
egoyZnI3NysvbUdPMnZaOW56WFExQWxxMzBkSHgvMWNucVdCdnp5MWYvOUUrSDJrdWc5blUvcjV1
ekUrMEJ6KzcxZGRlZGZMUjNySngxCisyeFQyN1ZPempucWthTTNPZEs5N2ltWGNaWDdxbkw2T1Vm
RWNzUWxsMm1NVFpUWHZWM3F0emNDcTQ2ZlhELy8wQ0FBQUNBQVNVUkIKVk42WDhaYkpSZTd4SzEv
b3BiYW4wN1pUNnV5UndKakFiby81VmJmQnNicm1NOXZnbE5DWjlmbXVYb0oxWmxHdTF0cmN0L0RT
Uy9sRApodm41M1J6UlhlMlNudFhXdG5lNU43VmRleWM0dnFaY1A1c0FKQ2xuRVliWHVJOHZ2ZmVm
NXBLcjNNdVJhMzV6TmxUZ3NmZDljRHF2CmNaWHhrK0EybC9mbHB0SkZSemhQdDIzbmRPNDNkZDhi
Z2IwWTg2dHNnMU90dGcxT0NaMVpud3RBenF6KzFsb0NCQWdRSUVDQUFBRUMKcDFSZ013NjduMUpD
S3lkQWdBQUJBZ1FJRUNCQW9GWmdwUUFrbDFIa3B0S2M5cE1JRUNCQWdBQUJBZ1FJRUNDd3FrQjFB
SkpmUThqZgo1c2p2NVAvRFAveEQ5MU5rcTY1TWZnSUVDQkFnUUlBQUFRSUV6bXlCcWwvQnlxL1g1
QStrL00zZi9FMzN5eUw1SzZmOW55TGJEbUYrClN6bC9DQ1ovNEVjaVFJQUFBUUlFQ0JBZ1FPRE1F
S2c2QTVLL0pKNC9ubEorMW5ENFY4UlhwVXBaK2V2UkNVQWtBZ1FJRUNCQWdBQUIKQWdUT0hJSEpN
eUM1OU9ycHA1L3Vmci81WnovN1dYZm00Nzc3N3V2K1V2R3ZmdldyN2c4WTVXOFM1Q2RCUC92Wnoz
Wi9HQzMzaVdTNQovTVhvL0ZIQi9DWE4vUEdWYjM3em05MGY4WG40NFllYlo1NTVwbm5ycmJlNnYy
Znd4UzkrY2VrZlZEdHp1a0pMQ1JBZ1FJQUFBUUlFCkNHeSt3T1Faa050dXU2MjU5ZFpiTzRrRUNn
aytrbjd3Z3g4MCtTTTFuLy84NTV0dmZPTWJ6U3V2dk5MODZFYy82ajY3NUpKTG10ZGUKZTYxNTl0
bG51Ny9vKysxdmY3dDcvOEVISCt3ZTc3Nzc3dTc5RzI2NG9mbktWNzRpK09oVS9JY0FBUUlFQ0JB
Z1FJREE1Z3RNQmlDTApDSjU3N3JudWo0dmRlT09OM2NjNXUzSExMYmMwZVQrWFZaMTc3cm5kbVk1
TEw3MjArNnZIT1R1U1AwS1dNeDc5VkM3cDZyL25PUUVDCkJBZ1FJRUNBQUFFQ215dXdyUURrMVZk
ZmJjNDU1NXp1c3FwQ2s3TWhTVG56a1RRTUxzNDY2eXkvbk5YSitBOEJBZ1FJRUNCQWdBQ0IKTTFk
Z1d3RklmaFhyd3c4LzdPNERLWFM1N0NwQlIzN2RTaUpBZ0FBQkFnUUlFQ0JBZ01BaWdXMEZJTG14
L09qUm8wM09oSlNVUDA2WQo5L0taUklBQUFRSUVDQkFnUUlBQWdVVUNWUUhJUng5OTFDMmJNeDlK
dVhuOHZQUE82LzRxZXZkRys1OEVJeGRkZEZGenpUWFhkRy9sCnAzWVRrSlNVWmZ1dnp6Nzc3T2E5
OTk3clBzN1psSnc1eWE5bHZmdnV1MlVSandRSUVDQkFnQUFCQWdRSWJKakFnWHZ2dmZmdnh0cVUK
WDdmNi9lOS8zd1VHQ1NvdXZQREM3aWJ6M0ZTZVg3Vks0SkFBNWNrbm4yeSs5S1V2ZFovbHI2VS85
TkJEemZ2dnY5L2tiNGJrN0VqeQo1dWQ2YzY5SXlraWdrVHg1VEZuSis4TWYvckRKamV1WFhYYlpX
SlY4Um9BQUFRSUVDQkFnUUlEQWFTcXc3Lzc3N3o5eG1tTEZSdVNNClJvS0szUHVSb0dMVmxNQWtO
N09YbENBa3Y2QWxFU0JBZ0FBQkFnUUlFQ0N3bVFLVGY0aHdyTmtKUEhMWjFYWlRQL2hJR1lLUDdV
cGEKamdBQkFnUUlFQ0JBZ01EcElWQjFEOGpwMFJTMUpFQ0FBQUVDQkFnUUlFQmczUVVFSU92ZVEr
cEhnQUFCQWdRSUVDQkFZSU1FQkNBYgoxSm1hUW9BQUFRSUVDQkFnUUdEZEJRUWc2OTVENmtlQUFB
RUNCQWdRSUVCZ2d3UUVJQnZVbVpwQ2dBQUJBZ1FJRUNCQVlOMEZCQ0RyCjNrUHFSNEFBQVFJRUNC
QWdRR0NEQkFRZ0c5U1pta0tBQUFFQ0JBZ1FJRUJnM1FVRUlPdmVRK3BIZ0FBQkFnUUlFQ0JBWUlN
RUJDQWIKMUptYVFvQUFBUUlFQ0JBZ1FHRGRCUVFnNjk1RDZrZUFBQUVDQkFnUUlFQmdnd1FFSUJ2
VW1acENnQUFCQWdRSUVDQkFZTjBGQkNEcgoza1BxUjRBQUFRSUVDQkFnUUdDREJBUWdHOVNabWtL
QUFBRUNCQWdRSUVCZzNRVUVJT3ZlUStwSGdBQUJBZ1FJRUNCQVlJTUVCQ0FiCjFKbWFRb0FBQVFJ
RUNCQWdRR0RkQlFRZzY5NUQ2a2VBQUFFQ0JBZ1FJRUJnZ3dRRUlCdlVtWnBDZ0FBQkFnUUlFQ0JB
WU4wRkJDRHIKM2tQcVI0QUFBUUlFQ0JBZ1FHQ0RCQTVPdGVXUkk0OU1aZkU1QVFJRUNCQWdRSUFB
QVFJRU9vSGI5OTgrS3VFTXlDaVBEd2tRSUVDQQpBQUVDQkFnUTJFa0JBY2hPYWlxTEFBRUNCQWdR
SUVDQUFJRlJBUUhJS0k4UENSQWdRSUFBQVFJRUNCRFlTUUVCeUU1cUtvc0FBUUlFCkNCQWdRSUFB
Z1ZHQnRRcEFqaDQ1MnJ6M3hudk51Nis5Mnh3NWRLU3IrUHR2dmovYWdOMys4TU4zUDV4Y1JVMjlh
L0pNcnFneVEreHEKNmwxWjNOcG1PL1Rob2VhRHR6ODRYcjhZdi8zeTIwdGZILzlnRjU0TTY3THFL
b1oxWDNYNWorVS8yalQ5YldkdS9UNVd2amNJRUNCQQpnQUFCQXRzVW1Qd1ZySDY1VHozd1ZQUFNv
eTgxNTE1OGJuUCtaZWMzcno3NWF2ZHhuaDg0KzBEenpzdnZORWNPSDJudSs5NTl6UnZQCnZkRTg4
NXRubWcvZjJackFKOCtGVjF6WUhQcm9VUFAyUzI5M0UrVHI3cjJ1dWZhZWE3c3lNbkY4OHQrZmJL
NjQrWXJtdkV2T2ExNzgKdzR2Tk82KyswNXg5L3RuTkhkKzhvMWxsM1FmT090Q3ZkdlB5NHk4M3ov
N20yZWFqOXovcTNyL29xb3VhbyszLzNuL3IvZWI4Uzg1dgpycjd6NnViaWF5NCthWm55NHVILzcr
SG10bS9jMXRXcHZOZC9uS3AzOHRiazZaZTU2UGtqUDNpa2VmdVZ0NXNMTHIrZ1NmdGVlL3ExCnpp
YXVhZGM3cjd6VDNQd25OemY3OXU5cm52ajNKenJYWXJ1b3ZFMTRMMzM2MW90dk5aLyszei9kdFQv
dFB2VEJvZVp6My8zY3gxN3YKZG52N2RWbDFYZW03ZnQxWFhYNllQOXZORXo5OW9qbDQ5c0htcm0v
ZjFYMDhwMzdEOHIwbVFJQUFBUUlFQ013UldDa0F5WXF1dnV2cQo1cE9mL1dRWGFKUUFKSlAzNisr
OXZqdmkrdnQvL24xWG44dHZ2THc3aS9Ia3o1N3NYbC8vbWV1Ymk2OCtOc2x2ajg0Ky9DOFBkKy9u
ClB6bGkvK2lQSG0wdXUrR3k1cHE3cituZXYrVGFTNW9zMnovQ1hidnU0d1VmZTNMbExWZDJBYzl6
djN1dWUrZUcrMjVvenJ2MHZPYloKM3o3YjVMMDNYM2l6bTZoZGVPV0ZKeTJheWUwSDczelFCVjAz
ZnVIR2t6N0xpNXA2MStUNVdNRUwzamh5OUVqenFmL3dxZWJzQzg3dQpQbjNndnp6UVhQU0ppN3Fn
STIrODhQQUxUWTZpSjRBcjdWeFF6TXB2bFNQeldkZmN0Sk5scFM0SllBOS9lTGlyMWdWWFhOQmNl
Zk9WCnpmTVBQYi93ZGZmbUR2NW4ySlorWFZaZHpiRHVxeTQveko4Z05mMzEvaHNuemg3T3FkK3dm
SzhKRUNCQWdBQUJBbk1FVnJvRUswZlgKci92VWRVdlhsek1qbVFDM0p4ZTZkUENjRS9ITnZuMzd1
dmR5UnVTRGR6OW9Qdm01VHpibHZSelp6NUhybkNuSWhMMmtUMzdtazgzWgo1MjFOdUZkZGR5bWpQ
SjUxN2xubGFkTnNWZVZFUU5SKzhzYnpiNXo0L05pem5PMUpldVdKVjVyREgyMU5kSTk5MUQzVTFM
c21UNy9NClpjK3Z1Zk9hNDhISG9qeFgzWHBWZDJZcW44VnFKMUltMlkvLzVQSG1yWmZlbWwzY1Rw
WlZLcE1qL09kY2VFNTUrYkYyNzVURDhSVWMKZTdLb0xjTzZESmVaZXIxamRUMjI3WFhiVm04WXJG
cS9vMGVQRlRSVjhSMysvRlN0ZDRlYm9UZ0NCQWdRSUVCZ1JPQkVoRENTcVh5VQpNd2RUNlliUGpl
ZDU0WkVYbWt1dnZiUTdRbnYrcGVkM3hlVXlxS1QzWG4rditjMC8vS1k3bTNMRlRWZDBsM1hkL09X
YnU4OTJZdDFkClFiMy9aQ0paMHJrWG5GdWVkbzhKaUVyUWtzdktYbm55bGVZVHQzL2lwRHcxOWE3
SmswSnpGaVpuZks2Njdhcm1tcnUyemdMMVY3YnMKRXJHU1ovL0IvYzN3REU0dXUzbjVpWmU3Uzdi
dStOTTdqZ2N3aDk0LzFEejMrK2U2ZTIwT0h6cmMzUFNGbTVvY2hSK21GLzd3UXZQNgpzNjgzNTc1
OWJuY3BYYzRDSlVCY3RHenUyM242VjA4M0g3MzNVWFBqRjI5c0RodzgwRjBHbE12YkVwUXVLaXQx
THVuMVoxN3ZMa082CjZNcjJyRTdiNTNuOXgxLytzY2tZdWVtTE4zV0JSczd5dlBiTWE4MWQzN3ly
dTVRdmdXSHkzZjBYZDVkaVZucGM1cEF6WHk4OTlsSVgKL0Nhb2Z1N0I1N3BnK2M1djN0a1pEdHR5
N2FldTdTNkpLM1dKUlpaUEFMNy93UDd1N05RZGYzWkhjODc1NXl5MEcxYjYxYWRlN2M1aQpuWFBC
T1YyZ25qcmszcWhjb3BnemlZdk9SbVdNUHYzTHA3dDE1cEs4OTk1OHI5bS9mOHMzcjRkV3IvM3h0
U2IzaFNTd1RoL2YvYjl0CkdhYnR1WVFyS2UvSFBwZEVabnptVXNZRWZObHVVbDZDcGx6Mmx6T2JV
NStudkdYZStXelplcGRaNWl5UFJJQUFBUUlFQ0p5ZUFpZG0KZ0x0Yy85d1VuVW5QSzQrLzhyRTFI
VHozWUhQSk5aZDA3MmNDbSt2WGYvdFB2KzJ1NC85WTVoMTg0OVUvYnQzRGtzdXhMcjMrMHBOSwp6
c1E5bDN6bFVyQ2tGeDk1OGFUUDg2S20zalY1VWxZdVo4dlpvZHo3c2hNcDFwbW8zdk1YOXpRNXFw
eEpkSmZhbU92eG56N2VCWGwzCmZldXU3cDZTUi83MWtZVm5lQklJSlFpNzdKT1hkVUZCSnRQTGxz
MjlLTG5uSlBmVkhEMTh0UG5vZzQrNndLTTdJOWF1K0dObDlZS1AKMUN2K3VkOG45eExsSHBjc2w0
bHYzaXRuT2M2OTZOem1xbHV1YXZZZDJOY0ZCTGs4N3YyM1QxeG0xTFd2OWo4akR1ZGRmRjRYbkwz
KwozT3RkKytPVVZBeUhiVWw5KzNYSkJEMyt1UThxZFk1ZkFySmxkc01xNS9MRkJDOUhqaHc1ZmxZ
cmRUcnJ2TE1XQmg5Wi9yRWZQZGJrCjNxYnJQbjFkRjFCKytQYUpIMC9JMlpDVDZ0ZU9oMXlxMWdX
NzdTV1AzV1MrOVNobmR2STZsMEltc01obGlrbm5Ybmh1RnlSa25GNTYKM2FYTmJWKzdyYnZISk50
cXplYzVLN3FzL1dQclhXU1pzemtTQVFJRUNCQWdjUG9LN0ZrQTh1YnpXMGRRRjEzS0ZMNWJ2M1py
TjFFcgpsTGwrUGZlVFpDSzMweWxuQnY3d0wzL29KcG1aYU4zOTdidTdpVzkvUFIrODlVRTMrYzM5
STBsNW5hTzB3MVJUNzVvOFY5NTZaWGRqCi8wN2RPSDdKZFpkMGs5Vk1XaS8reE1YTmUyKzkxMVc5
QzdyYXlXQXVxOHBsWndrd2NpUjg3REtyY3FuYzFMSUplSElmejlPL2ZycDUKOVlsWG02dnZ1SHJJ
ZGZ5eXU0OTkwTDRSNjR5VGNnbGZKc0E1Q2w4dXk4bFI5a3pta3pKQkwyZVh1amRXL005WVd4STBK
dWhKK1FsQQpFd1NsTGdtdStxbTRET3VTczBrNWEzSGVSZWQxOWMxWmhIZGZmN2RyVjYxN3poeGx2
SlVmY1hqcjViZU9COFA5T3VSNWJtSlBYeDQvClM5WmVlbFVDNTN3K3JGL3VtMGw5RWlBbDVmSzlw
SnpSdVBTVGwzWm5uZkk2eTVWZjBzcTlSM0ZJb0pnemJSZGVkV0Z6NjFkdjdjNTQKSmMvVTUyUGVZ
K3RkWkZrQzB0UlJJa0NBQUFFQ0JFNC9nVDBMUURMQnpxOVo1ZEtxUlNtWDQyU2lua3RWY3VTN1Mr
MUUrY2tIbmp3KwpJVjIwM0hiZXl3MjVxY3M5MzdtbnU2U2xmeWxReXN2RXIxeVNsSWxjSm1KSmk4
NU8xTlM3Sms4bWRhbFBqa3J2ZE1vUituSnZUZTVKClNYc3k2Y3UvckRjV0YxdzJmVWxMemJLNUJD
L0JXczZJbEh0dGF0dVRJLys1OUMyVDdhUmNkcFI2di9YQ1c5MVpsYngzVWwvMTduSEkKWjZ1a3Fi
YTBPaWNWbC9YbWpNVFNkSEwyN3ZLbk1tNnl6TlQ2aHVYbUxFT0N4MXpLbGZUR3MyOGNENzZHZVJQ
VTVFeEwrcm1renFsZgpwOTd6MU91eTZ5OXJjdVlydnk3WC9iREJzYzl2L1B5TjNlVnR6Ly8rK2Vi
dEY5OXVjb25lU2FsWFRvS3NyRE9CNGZHMDVQT3A5byt0Ck41ZVM5UzJQcjhzVEFnUUlFQ0JBNExR
VTJQTnJHVExKTENtL2NKV0pVaVpYRjExOVVaTnIzbk1VOTFOWGY2cDU5bmRidjFDVm83VzUKZkdR
dmozcm04cXVzdHh3aHppVWZtUmpuYUh3dUpjdVI0S1NYSDN0NXN0NEpadGFwYlljL2FDZVViZGla
SS9xcnBwcGxjMVlnazhWYwo0cE9nc3o4cG5scGZuSFBtSnBmNVpMa0VSU2t2Ujg5ejVteDRtZHhV
ZVdPZjE3UmxiUGxWUDF0NWZlMUVQdmNjNWI2WFhGYVZlenlXCldXWk1abndPMHpDSTZuK2VzeGU1
eHlaQmRlNnpTQkNhOHZQREMva3hpTnpia1hzKzNuNzE3ZjVpSDMvZTFqT0I3TkowN1BPcDlxKzgK
M3FVcjlBRUJBZ1FJRUNDdzdnSjdkZ2FrUU9ReW5YSjI0WTgvLzJNM3djeFIxdnhkaStPcG5iUmsw
bFVtK250NTlETVR1VngzZnZ1ZgozdDdjOXZYYnVuODVNMU5TK1dXc3ZLNnBkMDJlcnF4Mmd2M1NJ
eStkOUxQRFpaMDcrWmlqM2JuTUtmZHA5TlBZSlZnbFg4MnkrZHN2Ck9ZdVZsT2VycHZ5VWJzWkNn
cnNFTUxrWEpLOXpsRDMzT094VXFtbkxUcTByNVd4bmZia2tMWUhYTTc5K1pyVHRPVlBTL2FIQjlz
eFQKVGNwTjZibEhKei9za01Balo1cHlxV051WE04WmtaekZHZzBxanEwa1o3b1NxSmNma3hpdXUv
LzVXUHRYWGU5d1BWNFRJRUNBQUFFQwpwNWZBdGdPUTNDeGVVdjk1ZVMrUG1SU1ZWQzVmeWNRbWwx
VGs1dFpjaDE2Q2krY2ZmTDY3bnJ6a1R4Q1F5Mjl5VDhId3lHOS9mZjNuClpkbEZqNWwwbFRTMlRI
N2hhSGgySUplRTVSS1hwRndTVXk1bnl1dWFldGZreVdUOXFaOC8xVHp5bzBkUzdIaHFZNGY0TERy
cW5RVlQKdnh3eEx5blBTNTB2djJuck1xZjg0bFltanlramZaR2JqQmVsM0JUKzRYdGJOelRuN0VU
eUwxczJnYzA1RjUzVDNmK1F2eFdUZ0NwSAoxMHZxbDVWMUwwb1hYM3Z4MXVWaDdabVA5SHZ1WDhs
akp0bkRsRGIxQTZtWWxQdEZrbmY0dXIvOGxFTTNYbnN4V3VmWmV6MXN5OGZxCjB0N28zZStEcWZV
dHFtdTJqY3R2dUx3YmM3RmZscEluVjR5OStPaUpIekRJZlJuZDluZXN6djM2cFE5ZmUyb3I0TTlZ
ejVtbG5Ja3MKOTNza0lNaDlPQWxLVTY5KzZzNWtISHZqelJmZjdDN2hLd2NVOHZheXo4ZmFQN1hl
OUduZk11dEp2ZktqQUdQYmN2SkpCQWdRSUVDQQp3UG9KSExqMzNudi9icXhhcng3ZCtxV29mcDVN
TkovNVZmdFh6dHRMUDVKeW8yd21OYm1mb0J3NXpVK0o1aktxY3RONWpyTG1KdDVjClVwS0pkcTdy
ejArdVptS1NtMml6Zkk1NkozL3k1aWRGTTdISlQ4VG0xNWRLcWxsM3lWc2VjeW5KQ3crOWNId1Nu
bnJrN01wdzBwM0wKVWZKSC9ESnh5OC95NXFodFVxNkg3ODRhWklMYm5qbkk5ZXo1S2VIVWM2cmV0
VzFMblhLVVAzOHR2bitaV21sRGVjdzZ1K0N0bmRnbgpxSXBOZmlHcEdKV3pCNW5ncHo4eVFVdmJj
eG5iQlpkZTBMMlhHOC9URDJsWGZwVXNOeUV2KzFuVDlQR0xENy9ZOVhVbXVybE1idEd5CnVkUXNm
ek1rWjY1U2ZvTE1uQzJLVytxUnYrZlNMeXNUMys0K2hkS3dZNCs1NUNvLzE1ckxqN3BmTzJvbjFt
bEx6b1QwZi8wb1B4V2IKWURGajcrQlpCN3ZBSS9YSzY2dy9FOVQrNnh5bEx6ZU5aMVZublhOV2wy
OVJXOTUrNmUxdTJmaW03aGtQQ1NKenlXREdaQzRIN0xjbAp3VWdDMDFLWDlHWEdYUDdlVFg1Nk53
SHMyUHJTbGx5eVZ1cmVyMnZhbk9DaEN6SUdWdVZsOG1Rc1orem04clhVUHlrR01jN2t2VytWCmNa
M0xydzRjMkFvdU0wYnlpMjlwVnk0NzdNN0V0ZU1sNC9DVnAxN3BBcFBjazVJMmRXZFAydndKVGpK
ZWIvdnFiY2Y3TWR2dnNzL0gKMnA4eHRXeTlhZnZRTW0zTDJaWEgvdGRqbmUyeU16REpKeEVnUUlB
QUFRSjdMM0Q1dmhPM1hDeGErNzc3NzcvLzVFT2NnMXlQSEtrNApJajlZWnRXWG1iUmtncEtVeVZ1
T2VHWXlWQ2JWcTVhM1YvbHI2bDJUcDlRM2s5cHkyVmw1YjdjZU16bnQxdGRPUnZzVDgwWHJTNUJW
CnpsVGw4MVdXSFpZM0xHdjRlU20vQkxLTFhpOWFacnZ2N1haYmh2VmFkWDJaMUNkZ0dKNlZHNWJi
dlc2MzVBUkw2YXNFeXZtNTRvVXAKVzN3Q3V6YllUOThQQThFRUxHWGJTMzFMWHp6NC96N1kvZnJW
OVorK3ZndHErbU1pNjVuNlBIbkcycjlzdlZsdVVhb1pTNHVXOHg0QgpBZ1FJRUNDd3V3SzM3Nzk5
ZEFWN2ZoUDZvdHJraUhWSitXV2QweVhWMUxzbVQybnZYZ1VmV1Y4bWxiVTM5ZzhubXFzc1c5cFdI
b2RsCmxmZjdqMlhDVzk0YnZpN3Y3OFRqYnJkbFdNZmE5ZVhJZi9MbUROS3RYejl4RDlLd3ZKTmV0
MEZGOFYwYWZHU0JZM0hKOE5MR1VsWUoKUHJxc0MyNHdUOEF5REZyS3Nua2MrM3lzL1ZQcjdhOGp6
MHRiaCs5N1RZQUFBUUlFQ0t5M3dGb0VJT3ROcEhZRTlsWWdsMERsTXNYYwo5NUpmbzFxTDFKNDF5
YVZhL1Q5d2VGSzlwajQvS2JNWEJBZ1FJRUNBd0prc0lBQTVrM3RmMjlkU29Mc0hxRDFMVWY0V3lE
cFU4cFVuCjIzdUZidC82R3pXNXYydDRuOUxVNSt2UUJuVWdRSUFBQVFJRTFrTkFBTEllL2FBV0JJ
NEw1S2IyM2ZpRGxNZFhzSTBuK1JHQXNUVDEKK2RpeVBpTkFnQUFCQWdUT0xJRVRQeTkxWnJWYmF3
a1FJRUNBQUFFQ0JBZ1FPQVVDQXBCVGdHNlZCQWdRSUVDQUFBRUNCTTVVZ2NsTApzS1orUnV0TWhk
TnVBZ1FJRUNCQWdBQUJBZ1JXRjNBR1pIVXpTeEFnUUlBQUFRSUVDQkFnc0UwQkFjZzI0U3hHZ0FB
QkFnUUlFQ0JBCmdNRHFBZ0tRMWMwc1FZQUFBUUlFQ0JBZ1FJREFOZ1VFSU51RXN4Z0JBZ1FJRUNC
QWdBQUJBcXNMQ0VCV043TUVBUUlFQ0JBZ1FJQUEKQVFMYkZCQ0FiQlBPWWdRSUVDQkFnQUFCQWdR
SXJDNGdBRm5kekJJRUNCQWdRSUFBQVFJRUNHeFRRQUN5VFRpTEVTQkFnQUFCQWdRSQpFQ0N3dW9B
QVpIVXpTeEFnUUlBQUFRSUVDQkFnc0UwQkFjZzI0U3hHZ0FBQkFnUUlFQ0JBZ01EcUFnS1ExYzBz
UVlBQUFRSUVDQkFnClFJREFOZ1VFSU51RXN4Z0JBZ1FJRUNCQWdBQUJBcXNMQ0VCV043TUVBUUlF
Q0JBZ1FJQUFBUUxiRkJDQWJCUE9ZZ1FJRUNCQWdBQUIKQWdRSXJDNGdBRm5kekJJRUNCQWdRSUFB
QVFJRUNHeFQ0T0RrY3YvNC9ja3NNaEFnUUlBQUFRSUVDQkFnUUtBVCtNdjdSeUdjQVJubAo4U0VC
QWdRSUVDQkFnQUFCQWpzcElBRFpTVTFsRVNCQWdBQUJBZ1FJRUNBd0tpQUFHZVh4SVFFQ0JBZ1FJ
RUNBQUFFQ095a2dBTmxKClRXVVJJRUNBQUFFQ0JBZ1FJREFxc0ZZQnlKRzJxbThjYnBwWER6WE5S
MGUzNnYxbSsvcFVwbmRUS1duYkF1KzNmaTk4MURRZkhPdlAKc1lMUzUyZUNkeXplNm8zcncrM3Js
OXN4WDlMd2RYbS9QSjRwVG1kS08wdS83c1RqY0d5Vk1sZlpEc3N5cCtweDJJYmg5akI4UGF6bgpU
bzZicVhVTjE1M1hxMWpQcWV2VXNrUEhSWFVkZXk5ZmZYdjEvVHZWbHJGNnJ1dG5lelVPMXJYOTZr
VmdTbUQ2VjdCNkpmenMzYVo1CjVJT211YmdOV3k1cmwzenl3NjBQTHp2UU5HZnZhNXBYMmtsVTVs
SC8xNlZOODJ3NzZmejFlMDN6enJFSi9PVnRuaXZhWlQ1c0oxc3YKdFpreTBmek11VTN6cWZPMnlz
aDdQMzJuYVc0NXAya3VhY3YvUTd1ZUJDTG50OC8vL0tLbVdXWGRaN1YxNmFjbjJySis4LzdINjVJ
ZApkSmtjZi8yQ3Bybmg3UDVTVGROKzNQenpXMDN6cHhlMmRXcnJQMHhwLzIvYk5yNTFySTJwNnox
dG0yS1J0cjk5N1AxNDNkcTI2NjcyCnMrMmtaOXIxUE5qVy81VjIwbnByVzhjL2FldTZLUDE3Mnor
UHRtMjlxRjNmWjFyWFlYc1dMYk9iNzZVdStRS1A4NC9idnYzclM1cm0Kd0tCdnl2cGptZjcvVkc5
TWxNODI3ZkUzN2RoNHNkMCsvcXIxeURhVGRyL2ZHbjJ2M1c2R3I0ZHR6L2IzODdhZlA5djI3M2JI
MDdETQpkWHg5cHJSenArMzdZNnVVdmNwMldKWTVsWS85Tmd5M2grSHJZVDEzY3R4TXJXdTQ3cnhl
eFhwT1hXdjJsMzNIUlhVZGU2KzAvYXoyCnUrUXYydS9mM1V3MWJkbk45ZTlHMmF1TWcwMXMvMjZZ
S25QekJOcmRTMzNLaFB6dWRpS2RpZE9YemoreDNMVm5OYzIzMnAzVWY3aDQKYS9LZGZEZTFFK1ZN
eGt2S2hQZ0w3VEpmYlNmUG1ZaCtvaGY2NU9qSEQ5OXVtbXZhY3JMTWRlMnlYMm56WGRubU9UYUg3
NEtCMm5XWApkWmJIbTlzNloySmJVcW5MMTlwMS9COXRYUzVjb3BCSllvS0lmRkVzU21uanA0OEZV
UGs4OWJ1OS9YZGozdSt0TDIyYU0xbTh2aTJ2CkxQOUVPMUhQaEg2WVl2aHMrMWxTZ3JpNXdVY0No
d1JuMjAySDJ1VXpVYjZqYlh1OHY5RUdjY1BnbzcrT1dDYUEyNm5VTDN0dW1UdFoKVnVweWIrdVJv
RFlwUVhuR1owbkQxK1g5OHBqeE5ReXd5MmViOUxnVDdkenBmbHRIMzJFYisyTXI5YTNaRG12Yk5W
eFg3WEtyNXV1MwpZYmc5REY4UHk5NkpjVlBLbkZwWHlWY2VGMW5uczJYNzBUbDFyZGxmOWgxTEhX
c2YwL2FyMnUvajdlNlNwOFpLLy9PYXR0VFdPL242ClphK3kzRTdsWFRRTzl2SzdiNmZhb1J3Q3V5
MncwdjRsSndIS0dZdEZGYnU0elhCek81RXM2WnplMGU3eU5CUDZuQlc1cjUyRTdUdjIKWm82MlpG
S2RzeURaZUV2NlhCdXdsRW5wcXVzdVpaVEhuSlVvcVR6TkdaWUVPRG1hWE40cmVmS1lveGhKT1lP
U0NmNmkxQy8zN0o1bQovL2w1dmZjWGxWSHpYdGFUUUMvMWZhUTlHekpNajdkMUxFSEhkaWFvL2Va
bEhUOXBqOHIzTHdzYXJtL3E5ZXZ0MlpxVVUxd1RUUGJUCm9uWHNMNW43R2JmeGZGSFoyeWltVzJR
bnl5cDF5SFp4VWUrTVdvWkh2K25EMTJXNThqajFlY20zeW1PLy8xZFpiamZ6em1ubkt2MjIKam0x
UC9hZlNvallPeDliWWRsaXpqbEtIUmVzcW4rMjAzN0FOdzNFd2ZGM3FVUjZuUGkvNWFoNVhLV3Rv
ZlhtN3o1dmFqNjVTL3JDKwpVL3ZMb2VOdytXV3ZTMy9XMW0wNGpzYkdTdGE1NlBPcHRpeXI2L0Q5
UldVUDg0eTlMbTBmeXpQMTJYQWM3T1YzMzdCdVkrMFo5bHQvCjJiSGwrdms4SnpCSFlEQXRIQy9x
ODcyekhzdHlUdVg1UXp0NXZxNmRTRi9kL3N0bFhFbVhIcHVNWmNQOXY5L1lPbUtlbzhLWmRPZE0K
U05KVXViVjV1c0tPL2VkM2JWMXlWcVpNM1B1ZjVmck5jOXM5Y0NhR2JaelNCU0U1bXI4YjZmbjJU
RU11bjhvUnNidEgxbkYxNjVWTAoxM0pHSnZuS1VaWHNMSjVweThoWmw0ZVBCVTJsbmdtY2Z0VmU4
cE12a3dSL0Y3UlBFbkFkUERiamZhbzlhNUxMNHBJdmwzcDlwejJMCjlYRHJrdkp5YVZtVytXSnJW
UExYbEp2QTdlbTJyTlFybDg2bGUrOGJqSjFGNnlobDUvSzFCRlFKcFA2c1BiTld6bENsVDNJcDJt
dnQKT0VtZ21yNGI3dHhUeHFLeWszL1JzZ2xDNC9OZXI1My8xdGI1cnJZdmNpWnBVVmw5aTdUenAy
MytxOXErK1hJN1ZtUDRpN2E4WEpZWQp0d1FhRDdWMWZycjEvRlo3MWlQV09ZdFZyRXViVjMxTWUz
N1JyamRsSlVqUG1jVWNBRWlxZFVyZWxQUEx0cjdudHRZNUFKQnRMdHZsCmxXMVpPUUk2Tm41eVpE
ZDluZlZuM2RtZU1zNit1WTArUzEwV3BXWHR6TGpOR2JhY1hieXovWmZMR0hMSlNiYVJMN1VXVS8y
V2RTMGEKKzNsL3JNMjVkeWR0YnRtNnM3aTV0RE9iVXNaaXhrVXV5VXpnZmtjN2RzckJtbFg2STZh
dnR1dEl5aGhKVzdKL3pEak5lczlwZ2RzbQpOZysxejNPbXRiK2RadnYvWTd0OEdWdkx0c05sNjhn
NjQ1MSt6TGIzV3J2T1RLS3pyMW5rbWN0c2gvdU9sTkZQcC92MjBXOUxuaS9yCnkwWFcrZjdvOTgr
aS9XaktYRGJHeDlhWHowcGF0TC9NL3F5L242blpWcnQ2dE9QM3ZMYnZzL3diN2I5anU1U3lxcE1l
bDQyalJXT2wKdjg5YzlIa3BlRkZiOHRreTk3SmNlVnhVZHJiVlpkK0IrZTdOZDgyRmJVT1B0Qmtm
YjdlNTdNT3lMODhWR1l2UzJQNWgwVGpZeSsrKwptdllzNjdlME5XTmc3UHVndGg4V3VYbVB3RkFn
MjlxZXBFeWMvOWh1M05uQWh5azc2bXZ6cmRxbTk5b05JQlBBLytmTmVVZmd0MHBiCi9OL1U1YkYy
cDVNdjBHVXBPKzljOWxSMlFya25aYmRTSms4NUt6UzFqa3gwN213bk5ybGZJSk9ua3JKRHljUnIw
VkdrSDdTWHRsM1IKN2x3VHdPVXlxSnh0K2xGN2RpT3BYV1h6KzNheWtjQW5FN21jZG0rTDdpWWM2
Wk1iMmgxd0FzRCtsMGVXU3hvcjk3YTJ2Tnp6a3BRdgozZUVPT085blVyTm9IWmxBNWZLOEJFS3B5
NFB0RjJKUzZwcWppYm1zNE52dEJEZjNGUDFyMjdaTWdJWnBXSFpjbGkyYkNWYmEvbWE3Cmdzejdj
aWJ1bG5aaWwrQWphVmpXME9LVGJkNEVkWm00NTE5M0QxTmJ0MHpLeTFtT1BPYmVuUVNNM0h3NmNR
QUFJQUJKUkVGVTdmK2IKZDlvVmxmdUd1cFZzNHo4Wk13bDZjaGxoNnZ3dnJVV01WbkhLYXZQbDIx
YXZ1NVF3L1JUL3BQUHpacHZHK2puM1JTVVl6SGFVQUNiOQprclNkUHR0YTh1UC9YZGJPVEw1am1T
L01wRnpHa1g0bzQyR3EzK0swYU95bnJMRTI1Nnp0QyswMmxJbGx5c2oxOFFtUU03NXlDV1FDCmhv
ei9YN2ZiVmVxeVNuL2swcEdVazdHZE1abDlUd0thcEpTVHZubXUvWmZ4bEcweis0TGhOdFFmVzR1
Mnc3RjFaRDI1RkRZSGlMTCsKR0dZeWt1Qm42Smx0YXBsZnlpbnBkTjgrU2p2eU9OYVhpNnlIWnNO
OVJ5bDcyUmdmVzE5WmR0bitNdHRHZnl4TWJhc3BMOThMMmZmbQpzdUl2dHVQNDdXT0JjRmxYLzNG
c0hFMjFlOW5ueTlwUzQxRHF0cWpzc2UwNTIxSzI1L1JCTHYzT3ZhQUo4dit0dFZpV3hzcGJOQTZH
CjVTeXFZL0xzUlB1bjJqUFdiNm5EMlBmQkt2MlFzaVFDVXdMdHByWTNLWkY1SnYwNWVyQW9mYTJk
SE9kTHRhVDhHdGIvYUc4QTcwKzAKeTJkekgxTm1qb2dzcVVyM2ZvNTBaa0tUaVdOU0pveVo2TzlH
eW1ROVI4enpwVCtWTXRIS3FmWCttWTY0M3JaZzJVeFdjbFQ3eG1PVAo2WFIySnNoNVAwZHAweGM1
NjFRQ3NldzgreWJsRXJsaG5hYktIZVlmZXoxY1J5NHp5OW14VE9BLzBUNG1NRWhLOEpxVTltVDlt
WGgxCmwrMk45RWtwZTJyWnJDOWpMMk1pbDlzdE90TlZ5dHFxeGNuL1RjQ1M4VjNzcm1tL3hNc0VO
VGt6YnNwWnR0UjcwUThhbkZ6aTlLdWIKMjc3S3ZVR3ArK2ZhQ1VNQzJLeG5xcTNEa2hOb0ozQkt5
cEgyaksya2pQMnBmazViTXZuT2N2bnl6akxwc3hKY3JWcVhyVFdmL045bAo3VXl1Y2dhd0xMRm9n
cmVzMzVhTi9hazJwNzNaVm5QR0ozMmFkYVlmNHA4ekh2SExHWm1rVEFCWE1jaWtQaFAyUzl2eGs1
U3l5cThRCjVVeGZmc3dpLzdMZUJEcVpiQ1NWTnRhTXJiRjFaUHdrb015QmlLUUU1em1BY01HeDll
UzlzcTVsZnNrelRLZno5dEZ2eXlwOTJWK3UKbVBYZjZ6OWZOc1pyMXJkc2Z6a2NDMVBiYXI0UE12
YkxBYmQyNkhXQmFMK2UvZWRqNDZqa20ycjM4UE5sYmFseEtPc3NqNlhzcWUwNQorNng4MXlUb3pn
R2Q3TDl5VUNjSFFzdTJWOHJNNDFSNS9ieFR6MHNkUzc2ZGFQOVVlNmI2YmV6N1lEdjlVTnJta2NB
aWdYYlQyNXVVClNYWit6YXAvajBoL3pUbmwvL1UyQ1BsbSs2OU0wREtoeXlVOHgrYWcvZXl6bnVj
SXhIZmJYeHpLbC9taWxKdlB5NWR3SmxabFVqWjEKaG1KUldUWHZaY2YzbCswUi81eUptRXFaZENW
UVNPQ1FDVU11a1lwZHFXTi8rUnk1elB2OVp1WnNTRkl1cjhobm4yeDN1RG1pRStmcwppUHQ1dDNK
Ky9MOVQ1WDU4aWZwMzJpb2RUNWtZbHlQY09YT1RJMU9wWC81bFF2Ym43VmdwbC9FZFgyakJrNXBs
Yy9RL1FXZktxekhvCnJ5WUJYajhZU3ZDY0kwM3BuenhtSFBjbng4TXZubjVadGMvVDV5V1ZzWnI2
MTdTMUxKZkgxQ3UvcmxaU0ppcGxqTlQwYzY4YVhSSHQKY09yYW5CZXIxcVVyWVBDZlplMGNaRnY1
NWJLeFg5UG00Y3JhSVhOU0tuWE9tRmpGSUphNWxDdVQrMXd1K0dJNzV2TzhwR3o3MlFiRwowdFRZ
R2x0SGd2dHNWLzArelQ1cDBiNWxtZCtpdXAzTzIwZS9QYXYwWlgrNXFlZGx2Q1RmcXR0eXY2LzYr
OHVVTlJ3TC9iejV2TCt0CnB1L3o2NG5sWUVRKzcrK3o4cnFmeHNaUlA5OHF6L3YxNjdkbGpudnQ5
dHhmZHc0dXBFOXlVR21ZYXNzYkxsZnp1bCtIdWUzdmw5VnYKVDk0ZjI4ZU1mUi9NNlllYTlzdHo1
Z2tNdnp0M1hTQ1hUcFNVQ1ZNR2ZJN0E1MGh1amk2V293QzVqQ1BYVitjeWhoeEpMRWY3eXJKegpI
L005bnFPTmkxSXVFOHNYZnpremtDL2JUQ2J5T3BkdlphSStOK1dVYjA1M2IrY0c5VXdLY3ZsRHpv
TGtTMk5aNEpMSmUvelNsdklsCmQ4bXhDVWFaYzM2MW5jU2Yxd1lmS1N0QlNZTEVrbmRaRzJ2S1hi
YnNkdC8vb0hYUEYybzVRcmRLT1RYTHBrc3p1WXRyZ3VYK0YvSFUKdWpJK01tN1RwN0hyZ3FMMk1X
ZmFZcDhnYnpkVGpucGxRODY2YTlyYXIwc3VNOHhsUHdsb0U1dm1YNDRDSnMzdDUxWHJzclhXNWYv
dAp0M041cnZwUEZvMzk3YlE1NDdMOS84SzBxa0h1NzhyUjZGeURuak9iNVg2UWhZVnY4ODFsNjhq
MTNRbWVhOU1pdjBYN2p0TjUrK2hiCnJOcVgvV1Zybi9mSCtGNnNyOVFyMzJ2bDhzWHlYaDZYamV0
OHRtd2M1Yk9kVEhNY3RyTTlwKzVwZDg0V0ROTjJ5eHVXczhyck9lMHYKNittM1o2emZ4cjRQZHFJ
ZXBUNGVDVVFnODY0OVRabDBsNk04dVlrMEczazI2dHlzV0ZJcWxjc1pzak5PbWpycXQ1VnI5Zi9t
a3FjYwo4ZTJuZkFublpyUS9heWZtK2FuVS9NdmxZVW50MjB0L2tyZkxVUG1mZGhYZGRmS2xYZG54
NStiOEJHVExVdGFkZjBrSlduSVpSZ0tpClhLSzA3Q3hBam54a21SeTFLU2s3a2J5WHN6KzUwVEN2
YzM5SXppWmtFbHB6eWR0VXVXVmRPL21ZeTBES0dZVlNidHFSczFWVHFXYloKM1B3WWc2UThYelhs
TXBOY3cvdFlPNDRUd09SMUxzTktuWE16OTI2bTlHTzZPSmRDMWJTMVg1Y0VUam1qbHFOOW1leVcr
emlTWjI0LwpyMXFYZnIwV1BlKzNjOUhucTd5M2JPelBiZk93RHFzWVpQS2ZNNUg1aGNEQmJtbFk3
TFpmajYwamRjMFoxZndyS2R0WURrd00weksvClliN3krblRkUGtyOTg3aEtYL2FYVytWNWY0enZ4
ZnBLM1hMamVRNnlqWDBIbGJ4NUhCdEgvWHc3OFh5T3czYTI1eGprT3ptWFdnN1QKZHNvYmxySHE2
em50ejdyNjdabnF0N0h2ZzduMVdMWGQ4bSsrd0xhLzU3S2pMS24vdkx5WHgvNFJsWkk5bHhFazZN
Z3YxbVRDbTZOagpTYm5rSUVkaFNzb1hYd0tURzlzSjB2Qm9kSDk5L2VkbDJVV1AvYnFVeXhweTlt
VUlrTXVzaGtmWk03RXJsMnZsVnk3SzhsblBvbkx6CmZpYjJKZldlZHBlbjVBL1A1YWhwV1hjc0ht
ai8vWERreHJlc0p6ZWZsNVFiVUpQeXhWNVNXV2VwWDRLVWZMSGtKcnVTRW96a3JNazEKN1djcHN3
UWNhWE91WlMrbjNXTmViUHR0VERsVDVTWlBxVVA2Y0ZrYXJpT1hLL1h6NTNYK0plWGVsN1Evdnhi
V1diU291VUUzdjE2eQpLUFhMenZXOVk4dm11dDZjWWN1WFMrNm5TQi8zSjEzOXNvWVdaZDNYdHZW
TGY3WnMzWGpOR2IyY2xVaUFtL2Y2S1cwc2wyYmwvWXlQCi9oZ1p2dTR2VzU0ZlBlYVMxd2x5cm0v
WGwwQjBWYWNZWmp6a1Y1dXliT24vbEZ2VHo2bHJyeXBkSUZSZVQ5VWxZeVRCWGo5QXpucjcKYVZr
N2t5ZVhhdWJ5c1ZobXJHYmluRWxVU1dQOXRtenNWN2U1dDU0Y3NNakxXQ1NWai9JNFpkQXRjT3cv
NVpyelRCSlNWb0xyTWs1UwpWdjZWN2VIWUl0MVk2MitudzdFMTNBN0gxcEg3b0RLR2MwWXMrZkx2
bCszMlZuNlFvTytaZTE2VzdUdEszZnFQcCt2MmtYNG8vVHJWCmwwUHJ0TDl2dG16ZnNXeU1UNjB2
WTJIWi9qTHJIbzZGdENOanFLUjhMWlRYdVV3dSs2a2NIUzhwL1ovdHFiUy92Si9Ic1hHVU1xZmEK
UGZ4OHJDMVREdjE2NVhtLzdPeUh4NzREeTdMOXZzbjNaUzVGTEFkS1M1NDgxdXdmRm8yRGZobDUz
cTlqMXIyVDdVLzV5OW96MVc5agozd2RUL1pBMi9LN2RuL2ZuY2FtTFJHQ1p3SUY3NzczMzc1Wjky
TDMvNkc4LzluRW1iTGxoTjE5Q1NYbk01RGNiYlRsdG1jdFJmdHNHCkZXVmp6SmRxSXZIOEpPa0Q3
WmRhTnZJY0djNmd6cldGV2I1TTdoT1k1SXV2dXdteXZSU2hmN05wemJxM2FuWGl2OE82WkNQTUJu
cGwKdS83KzVEQS80WmM2NTdPY2ZVbkVuNVRnNkxtMmptbHV1MmgzaVVUdURja1I3Z1FQWldOUHVT
a3ZHMkM1Zkt4OTJSMHRTdHR6ZVUrTwpjT1pHeit3WXl5VmdXZTc1dHZ6czhPSXhUTGt4T2orTkdh
ZE1FT09Tc3lDWmNOM1RUcGl6emt4Q0gyenpaZDM1bDRsdkpxUTU0NVQ2CnQ2dm8raUlXdVlFMW4r
Zkw1ZWR0L2VPYlNVeHV2TXNwMk5LRy9OUm55a29aL1lscCtuaXMzTlR6OThlV3plUXNRVUoydU1P
VXNzczYKOG1XWkcrQXlYaktPeXMvOXBZMEpBRE5XVXVlTW43UW5lWE9tWWRHWFJOYlRMenRmR3Fu
RG9tWGpsZ2xYZnNJMHBySElsM0RwajF4dQoxeTlyYUZIYWxPYWx6cm1CUFczTjY0eUwzUFRmYjN0
c01zN2VhVC9MNVNxWmZNUWcyMURhbDUxNC8zVW0yV1diS3V1SzBaTnR2Zk9ZCnkzVnkwM2V1NjAz
ZFU4WXFUaG5EdjJycmsvR1Zmd25BVTVmOHFscjZmS3lmTTBGT1hkUHU5Rm0yNGZSTitpejlrdmZH
NnBKeC8rTjIKZThqMm5yTXd3elRXenVUTndZdXNQMmVka2plL3hCWHo5Rm42ZTZ6ZmxvMzlHSTYx
T2Q1cFk3YVYvRnBWT2pwdTZZUDJhWGNEZWZvMwo5MjlrN0Nlb1QzQzdhT3lsRGYyVWZVNzJieGwv
NllOTUNyTzlwdXhzSDdra0syMUsrOHA5Y3YwMlpqeGxIem9jVzhsVHRzTWMxVjIyCmp1eDdzcTFs
MjhyMm16T3NPUk9kd0R5cHY2NnNQNy8wdFdqZnNaWDc1UC9HNW5UYlBycjlXTnZHc20xbW04ZytZ
bEZmTHR2bjljMFcKN1R2R3h2all0cHdiZ2g4OU51NFg3UzlUYm44L2svMUtMck5kdHEzbU95WGJU
Q2FnNmYvY0U1SUJuWEdUL1VER1JUK05qZFVjOE1uMgprVzB6N1YvVTdyN0xidTc3YzJBdDlWbjJI
WmcyWlp2SkFhcDhCMmI3enRuZy9CcFcvenV2dFAxMCtPNGJhODlVdjNYenEzYk1ML28rCnlOZ2Yy
NTludjUrRHFCa3J5NjdLS0k0ZXp4Q0IyKzRkYmVpKysrKy92OTMwUnRJL2ZuL2t3NTM1S0J0K0xr
ZktsMVFtNnUzTDduNlEKUlR1QW5WbmorcFdTTDdsTUxHS3cweWtkbko5VXpGbVgzR2RUVXQ3UCtq
SnB5OXRENzB6U3lobXFza3ovY1ZtNS9UeFR6NmZXTVZ3KwpYNlQ1Y290VnJ5bkRiTjNyWWRtckxE
c3NjRmpXOFBPOFR2bVprSlUwZkYzZTM2bkhzdDBzY3FodGE0NVlKVUJyaDBjM3ljMVl5T1FtCms5
RnlKckI5YStINHFXM0hXRjJ5dmt5VTh2UEt5OUpVTzFPL2pOM3NONFlXeS9vdHk0eU4vYmx0SHJa
bHpHQ1lOeE95c2kwdWF0TXcKLzdJMkR2UDFYNCt0STIxUE1Kbkp4akNWZFUzNURaZkw2K0gyTUh5
OWFKazU3MDJObTlyOXlMQU9xL1JsbGkxbXczTDZyM2VycnYxMQoxRHpQZUV2d2t2MStUZitNamFP
cGRrOTlQcXp2S3U3RHNqTmVGMzBIWmgzLzJQN2tmMzRJNWpQdFBpanRXVFR1aDNVWksyK1lkOW5y
CllSMlg1U3Z2MTdhL3BqM0wrcTNtKzJDc0hnbHdhL3hLbXp4dXVNQmYzai9hd0hhek8vVXBrWFZK
NVdoYmVYMm1QT2JJeEc2bFRMUVcKM2NTZjk1UDZSK2kzM3RuNjcxandrUnpMeXUyWE1mVjhhaDNE
NVRQQnY3QlVmUGpoNFBXdzdGV1dIUlExR29pVnZQM2dJKzhOWDVkOApPL1hZMzI2R1pkYTBOVWZL
Y2lheS9NRzhVa1o0KytOeGJqK1AxU1gzZnBVemdXWDl3OGVwZHBiOGl6YWg0UmdvZWNzUVdqYjI1
N2E1CnJLYzhqaG1VUE9XeEJCOTV2YWhOSlY5NVhOYkc4dm1peDdGMXBPM0xKaEZsWFZOK2k5WTUz
QjZHcnhjdE0rZTlxWEZUdXg4WjFtR1YKdnN5eXhXeFlUdi8xYnRXMXY0NmE1eGx2cGI0MS9UTTJq
a281eTlZNzlmbHd1VlhjaDJYWGJNOXBTNzg5dy9YM1g5ZVUxOCsvNlBtdwpqb3Z5OU45YnBmMVpi
cXc5L1hhV2ZVenQ5OEZZUFpidE4vcnQ4SnhBRVZpTEFLUlV4aU1CQW5zbmtNdWtjamxrL3ZoY0xz
SElVYkVjCitjNGxDNHNDMXQyb1dZS1BaVUhBYnF4UG1RUUlFQ2dDT1pPUnMwKzVmR2dUMHB6MnJN
UDN3U2IwZ1RiVUN3aEE2cTNrSkxCUkFybFcKOS85cy94N09TKzAxejdrR09qOFh2RmVCUjRFVWZC
UUpqd1FJN0xWQTk0ZG5qOTEvbHZ1dEZ0MkR1ZGQxbXJPK09lMVpoKytET1cyMwo3T2tuSUFBNS9m
cE1qUW5zbUVBQ2dOd29MUkVnUU9CTUU4aVBoR3hTbXRzZTN3ZWJOQnJXdnkzbDhyLzFyNmthRWlC
QWdBQUJBZ1FJCkVDQncyZ3NJUUU3N0x0UUFBZ1FJRUNCQWdBQUJBcWVQd1BRbFdCTS9vM1g2TkZW
TkNSQWdRSUFBQVFJRUNCQTQxUUxPZ0p6cUhyQisKQWdRSUVDQkFnQUFCQW1lUWdBRGtET3BzVFNW
QWdBQUJBZ1FJRUNCd3FnVUVJS2U2QjZ5ZkFBRUNCQWdRSUVDQXdCa2tJQUE1Z3pwYgpVd2tRSUVD
QUFBRUNCQWljYWdFQnlLbnVBZXNuUUlBQUFRSUVDQkFnY0FZSkNFRE9vTTdXVkFJRUNCQWdRSUFB
QVFLbldrQUFjcXA3CndQb0pFQ0JBZ0FBQkFnUUluRUVDQXBBenFMTTFsUUFCQWdRSUVDQkFnTUNw
RmhDQW5Pb2VzSDRDQkFnUUlFQ0FBQUVDWjVDQUFPUU0KNm14TkpVQ0FBQUVDQkFnUUlIQ3FCUVFn
cDdvSHJKOEFBUUlFQ0JBZ1FJREFHU1FnQURtRE9sdFRDUkFnUUlBQUFRSUVDSnhxQVFISQpxZTRC
NnlkQWdBQUJBZ1FJRUNCd0Jna0lRTTZnenRaVUFnUUlFQ0JBZ0FBQkFxZGFRQUJ5cW52QStna1FJ
RUNBQUFFQ0JBaWNRUUlICnA5cjYvZTlQNWZBNUFRSTdMWEQvL1R0ZG92SUlFQ0JBZ0FBQkF1c2hN
Qm1BcEpvbVErdlJXV3B4WmdnSStzK01mdFpLQWdRSUVDQncKcGdxNEJPdE03WG50SmtDQUFBRUNC
QWdRSUhBS0JBUWdwd0RkS2drUUlFQ0FBQUVDQkFpY3FRSUNrRE8xNTdXYkFBRUNCQWdRSUVDQQp3
Q2tRcUxvSHBMWmUvK2svL2FmYXJQSVJPT01FL3Zadi8vYU1hN01HRXlCQWdBQUJBZ1NHQXM2QURF
VzhKa0NBQUFFQ0JBZ1FJRUJnCjF3UUVJTHRHcTJBQ0JBZ1FJRUNBQUFFQ0JJWUNBcENoaU5jRUNC
QWdRSUFBQVFJRUNPeWFnQUJrMTJnVlRJQUFBUUlFQ0JBZ1FJREEKVUVBQU1oVHhtZ0FCQWdRSUVD
QkFnQUNCWFJNUWdPd2FyWUlKRUNCQWdBQUJBZ1FJRUJnS0NFQ0dJbDRUSUVDQUFBRUNCQWdRSUxC
cgpBZ0tRWGFOVk1BRUNCQWdRSUVDQUFBRUNRd0VCeUZERWF3SUVDQkFnUUlBQUFRSUVkazFBQUxK
cnRBb21RSUFBQVFJRUNCQWdRR0FvCklBQVppbmhOZ0FBQkFnUUlFQ0JBZ01DdUNRaEFkbzFXd1FR
SUVDQkFnQUFCQWdRSURBVUVJRU1ScndrUUlFQ0FBQUVDQkFnUTJEVUIKQWNpdTBTcVlBQUVDQkFn
UUlFQ0FBSUdoZ0FCa0tPSTFBUUlFQ0JBZ1FJQUFBUUs3SmlBQTJUVmFCUk1nUUlBQUFRSUVDQkFn
TUJRUQpnQXhGdkNaQWdBQUJBZ1FJRUNCQVlOY0VCQ0M3UnF0Z0FnUUlFQ0JBZ0FBQkFnU0dBZ0tR
b1lqWEJBZ1FJRUNBQUFFQ0JBanNtb0FBClpOZG9GVXlBQUFFQ0JBZ1FJRUNBd0ZCQUFESVU4Wm9B
QVFJRUNCQWdRSUFBZ1YwVEVJRHNHcTJDQ1JBZ1FJQUFBUUlFQ0JBWUNnaEEKaGlKZUV5QkFnQUFC
QWdRSUVDQ3dhd0lDa0YyalZUQUJBZ1FJRUNCQWdBQUJBa01CQWNoUXhHc0NCQWdRSUVDQUFBRUNC
SFpOUUFDeQphN1FLSmtDQUFBRUNCQWdRSUVCZ0tDQUFHWXA0VFlBQUFRSUVDQkFnUUlEQXJna0lR
SGFOVnNFRUNCQWdRSUFBQVFJRUNBd0ZCQ0JECkVhOEpFQ0JBZ0FBQkFnUUlFTmcxQVFISXJ0RXFt
QUFCQWdRSUVDQkFnQUNCb1lBQVpDamlOUUVDQkFnUUlFQ0FBQUVDdXlZZ0FOazEKV2dVVElFQ0FB
QUVDQkFnUUlEQVVFSUFNUmJ3bVFJQUFBUUlFQ0JBZ1FHRFhCQVFndTBhcllBSUVDQkFnUUlBQUFR
SUVoZ0lDa0tHSQoxd1FJRUNCQWdBQUJBZ1FJN0pxQUFHVFhhQlZNZ0FBQkFnUUlFQ0JBZ01CUVFB
QXlGUEdhQUFFQ0JBZ1FJRUNBQUlGZEV4Q0E3QnF0Cmdna1FJRUNBQUFFQ0JBZ1FHQW9JUUlZaVho
TWdRSUFBQVFJRUNCQWdzR3NDQXBCZG8xVXdBUUlFQ0JBZ1FJQUFBUUpEQVFISVVNUnIKQWdRSUVD
QkFnQUFCQWdSMlRVQUFzbXUwQ2laQWdBQUJBZ1FJRUNCQVlDZ2dBQm1LZUUyQUFBRUNCQWdRSUVD
QXdLNEpDRUIyalZiQgpCQWdRSUVDQUFBRUNCQWdNQlFRZ1F4R3ZDUkFnUUlBQUFRSUVDQkRZTlFF
QnlLN1JLcGdBQVFJRUNCQWdRSUFBZ2FIQXdlRWJjMTcvCjdkLys3WnpGTFV1QUFBRUNCQWdRSUVD
QXdJWUxPQU95NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4
QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVk
ckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJ
RUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJBZ1FJRUNB
QUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUK
MWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFz
azY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhM
Z1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFFdUJBZ1FJ
RUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFnUUlBQUFR
SUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFCQWdRMlhF
QUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpjUUFDeTRS
MnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExoSGF4NUJB
Z1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VDQkFnUUlB
QUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFnQUFCQWdU
V1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNCTlpKUUFD
eVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFBTEpPdmFF
dUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9TNEVDQkFn
UUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVDQkFnQUFC
QWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFBRUNCRFpj
UUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5seEFBTExo
SGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VFZHJIa0VD
QkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFRSUVDQkFn
QUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVDQUFBRUNC
TlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlFCjFrbEFB
TEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFBc2s2OW9T
NEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJoTGdRSUVD
QkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdRSUVDQUFB
RUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFBUUlFCk5s
eEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJYRUFBc3VF
ZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0UjJzZVFR
SUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVCQWdRSUVD
QUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWEVBQXN1RWRySGtFQ0JBZ1FJQUFBUUlF
CjFrbEFBTEpPdmFFdUJBZ1FJRUNBQUFFQ0JEWmNRQUN5NFIyc2VRUUlFQ0JBZ0FBQkFnVFdTVUFB
c2s2OW9TNEVDQkFnUUlBQUFRSUUKTmx4QUFMTGhIYXg1QkFnUUlFQ0FBQUVDQk5aSlFBQ3lUcjJo
TGdRSUVDQkFnQUFCQWdRMlhFQUFzdUVkckhrRUNCQWdRSUFBQVFJRQoxa2xBQUxKT3ZhRXVCQWdR
SUVDQUFBRUNCRFpjUUFDeTRSMnNlUVFJRUNCQWdBQUJBZ1RXU1VBQXNrNjlvUzRFQ0JBZ1FJQUFB
UUlFCk5seEFBTExoSGF4NUJBZ1FJRUNBQUFFQ0JOWkpRQUN5VHIyaExnUUlFQ0JBZ0FBQkFnUTJY
RUFBc3VFZHJIa0VDQkFnUUlBQUFRSUUKMWtsQUFMSk92YUV1QkFnUUlFQ0FBQUVDQkRaY1FBQ3k0
UjJzZVFRSUVDQkFnQUFCQWdUV1NVQUFzazY5b1M0RUNCQWdRSUFBQVFJRQpObHhBQUxMaEhheDVC
QWdRSUVDQUFBRUNCTlpKUUFDeVRyMmhMZ1FJRUNCQWdBQUJBZ1EyWE9CZ1RmdSsvLzJhWFBJUUlF
Q0FBQUVDCkJBZ1FJRUJnWEdBeUFMbi8vdkVDZkVxQUFBRUNCQWdRSUVDQUFJRmFBWmRnMVVySlI0
QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWcKUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNC
QWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRQpDQkFnUUlBQUFR
S3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZ
VEtvQUFBUUlFCkNCQWdRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJ
RUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJQUEKQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlB
QUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQQpBUUlFQ05R
S0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJK
UjRBQUFRSUVDQkFnClFJREFiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlF
Q0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJRUNCQWcKUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFB
QVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRQpaZ3NJ
UUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFB
UUlFQ0JBZ1FJQUFBUUsxCkFnS1FXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdR
SUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEEKQURLYlVBRUVDQkFnUUlBQUFRSUVD
TlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQQox
RXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFR
SUVDQkFnUUlBQWdka0NBcERaCmhBb2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJ
QUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWksKUGdJRUNCQWdRSUFBQVFJRVpn
c0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxR
QQpBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JB
Z1FJQUFBUUlFYWdVRUlMVlM4aEVnClFJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJ
RUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWcKUUlBQUFRSUVDQkNvRlJD
QTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhB
QVFJRQpDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFn
UUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFCkNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlF
WmdzSVFHWVRLb0FBQVFJRUNCQml2a2psQUFBU08wbEVRVlFnUUlBQWdWb0IKQVVpdGxId0VDQkFn
UUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVD
QkNZTFNBQQptVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFB
REtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxCnBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FCa05xRUND
QkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeEMKQlJBZ1FJQUFB
UUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFBUUlFQ0JBZ1FL
QldRQUJTS3lVZgpBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBG
WktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBCkFRSUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNC
QWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNCQWcKUUlBQUFR
SUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFRSUVDQkFnTUZ0
QUFES2JVQUVFQ0JBZwpRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFF
Q0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFCkNCQWdRSURBYkFFQnlHeENCUkFnUUlB
QUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlBQUFRSUUKQ0JB
Z1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JBZ1FJQkFyWUFB
cEZaS1BnSUVDQkFnUUlBQQpBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBZ1ZvQkFVaXRsSHdF
Q0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBCkFRSzFBZ0tRV2luNUNCQWdRSUFB
QVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFBQVFJRUNCQWcK
TUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFnUUdDMmdBQmtO
cUVDQ0JBZ1FJQUFBUUlFQ0JDbwpGUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCeUd4Q0JSQWdR
SUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDCkFwRFpoQW9nUUlBQUFRSUVD
QkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVDQkFnUUlCQXJZ
QUEKcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFnVm9CQVVpdGxI
d0VDQkFnUUlBQUFRSUVDTXdXRUlETQpKbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41Q0JBZ1FJ
QUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTCjhoRWdRSUFBQVFJRUNC
QWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNCQWdRR0MyZ0FC
a05xRUMKQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJBRUJ5R3hDQlJB
Z1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QQpBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dRSUFBQVFJ
RUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBCkFRSUVDQkFnUUlC
QXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlBQWdWb0JBVWl0
bEh3RUNCQWcKUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdLUVdpbjVDQkFn
UUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZwpRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJQUFBUUlF
Q0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlFCkNCQWdRR0My
Z0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURBYkFFQnlHeENC
UkFnUUlBQUFRSUUKQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdka0NBcERaaEFvZ1FJQUFB
UUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQQpBUUt6QlFRZ3N3a1ZRSUFBQVFJRUNCQWdR
SUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdRSUFBCmdWb0JB
VWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFBZ0tRV2luNUNC
QWdRSUFBQVFJRUNCQ1kKTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4aEVnUUlBQUFR
SUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RSwpDRUJxcGVRalFJQUFBUUlFQ0JBZ1FH
QzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJREFiQUVCCnlH
eENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0FwRFpoQW9nUUlB
QUFRSUVDQkFnUUtCV1FBQlMKS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVlFJQUFBUUlFQ0JB
Z1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVApLb0FBQVFJRUNCQWdRSUFBZ1Zv
QkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFLMUFnS1FXaW41
CkNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxWUzhoRWdRSUFB
QVFJRUNCQWdNRnRBQURLYlVBRUUKQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQUFRSUVDQkFn
UUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQQpBUUlFQ0JBZ1FJREFiQUVC
eUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtDQXBEWmhBb2dR
SUFBCkFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tWUUlBQUFRSUVD
QkFnUUlCQXJZQUFwRlpLUGdJRUNCQWcKUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JBZ1FJQUFn
Vm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZwpRSUFBQVFLMUFnS1FX
aW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJTFZTOGhFZ1FJ
QUFBUUlFCkNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpRSUFBQVFJRUNC
QWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUUKQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFnUUlEQWJB
RUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQQpnZGtDQXBEWmhB
b2dRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3a1ZRSUFBQVFJ
RUNCQWdRSUJBCnJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFRSUVDQkFnUUlB
QWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1cKRUlETUpsUUFBUUlFQ0JBZ1FJQUFBUUsxQWdL
UVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdVRQpJTFZTOGhF
Z1FJQUFBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVRalFJQUFBUUlF
Q0JBZ1FHQzJnQUJrCk5xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckpSNEFBQVFJRUNCQWdRSURB
YkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVYKa284QUFRSUVDQkFnUUlBQWdka0NBcERa
aEFvZ1FJQUFBUUlFQ0JBZ1FLQldRQUJTS3lVZkFRSUVDQkFnUUlBQUFRS3pCUVFnc3drVgpRSUFB
QVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFQ0JBZ1FJQUFBUUlFWmdzSVFHWVRLb0FBQVFJRUNCQWdR
SUFBZ1ZvQkFVaXRsSHdFCkNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUVDQkFnUUlBQUFRSzFB
Z0tRV2luNUNCQWdRSUFBQVFJRUNCQ1lMU0FBbVUyb0FBSUUKQ0JBZ1FJQUFBUUlFYWdVRUlMVlM4
aEVnUUlBQUFRSUVDQkFnTUZ0QUFES2JVQUVFQ0JBZ1FJQUFBUUlFQ05RS0NFQnFwZVFqUUlBQQpB
UUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBQVFJRUNCQ29GUkNBMUVySlI0QUFBUUlFQ0JBZ1FJ
REFiQUVCeUd4Q0JSQWdRSUFBCkFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWdRSUFBZ2RrQ0Fw
RFpoQW9nUUlBQUFRSUVDQkFnUUtCV1FBQlNLeVVmQVFJRUNCQWcKUUlBQUFRS3pCUVFnc3drVlFJ
QUFBUUlFQ0JBZ1FJQkFyWUFBcEZaS1BnSUVDQkFnUUlBQUFRSUVaZ3NJUUdZVEtvQUFBUUlFQ0JB
ZwpRSUFBZ1ZvQkFVaXRsSHdFQ0JBZ1FJQUFBUUlFQ013V0VJRE1KbFFBQVFJRUNCQWdRSUFBQVFL
MUFnS1FXaW41Q0JBZ1FJQUFBUUlFCkNCQ1lMU0FBbVUyb0FBSUVDQkFnUUlBQUFRSUVhZ1VFSUxW
UzhoRWdRSUFBQVFJRUNCQWdNRnRBQURLYlVBRUVDQkFnUUlBQUFRSUUKQ05RS0NFQnFwZVFqUUlB
QUFRSUVDQkFnUUdDMmdBQmtOcUVDQ0JBZ1FJQUFBUUlFQ0JDb0ZSQ0ExRXJKUjRBQUFRSUVDQkFn
UUlEQQpiQUVCeUd4Q0JSQWdRSUFBQVFJRUNCQWdVQ3NnQUttVmtvOEFBUUlFQ0JBZ1FJQUFnZGtD
QXBEWmhBb2dRSUFBQVFJRUNCQWdRS0JXClFBQlNLeVVmQVFJRUNCQWdRSUFBQVFLekJRUWdzd2tW
UUlBQUFRSUVDQkFnUUlCQXJZQUFwRlpLUGdJRUNCQWdRSUFBQVFJRVpnc0kKUUdZVEtvQUFBUUlF
Q0JBZ1FJQUFnVm9CQVVpdGxId0VDQkFnUUlBQUFRSUVDTXdXRUlETUpsUUFBUUlFQ0JBZ1FJQUFB
UUsxQWdLUQpXaW41Q0JBZ1FJQUFBUUlFQ0JDWUxTQUFtVTJvQUFJRUNCQWdRSUFBQVFJRWFnVUVJ
TFZTOGhFZ1FJQUFBUUlFQ0JBZ01GdEFBREtiClVBRUVDQkFnUUlBQUFRSUVDTlFLQ0VCcXBlUWpR
SUFBQVFJRUNCQWdRR0MyZ0FCa05xRUNDQkFnUUlBQUFRSUVDQkNvRlJDQTFFckoKUjRBQUFRSUVD
QkFnUUlEQWJBRUJ5R3hDQlJBZ1FJQUFBUUlFQ0JBZ1VDc2dBS21Wa284QUFRSUVDQkFnUUlBQWdk
a0NBcERaaEFvZwpRSUFBQVFJRUNCQWdRS0JXUUFCU0t5VWZBUUlFQ0JBZ1FJQUFBUUt6QlFRZ3N3
a1ZRSUFBQVFJRUNCQWdRSUJBcllBQXBGWktQZ0lFCkNCQWdRSUFBQVFJRVpnc0lRR1lUS29BQUFR
SUVDQkFnUUlBQWdWb0JBVWl0bEh3RUNCQWdRSUFBQVFJRUNNd1dFSURNSmxRQUFRSUUKQ0JBZ1FJ
QUFBUUsxQWdLUVdpbjVDQkFnUUlBQUFRSUVDQkNZTFNBQW1VMm9BQUlFQ0JBZ1FJQUFBUUlFYWdV
RUlMVlM4aEVnUUlBQQpBUUlFQ0JBZ01GdEFBREtiVUFFRUNCQWdRSUFBQVFJRUNOUUtDRUJxcGVR
alFJQUFBUUlFQ0JBZ1FHQzJnQUJrTnFFQ0NCQWdRSUFBCkFRSUVDQkNvRlJDQTFFckpSNEFBQVFJ
RUNCQWdRSURBYkFFQnlHeENCUkFnUUlBQUFRSUVDQkFnVUNzZ0FLbVZrbzhBQVFJRUNCQWcKUUlB
QWdka0NBcERaaEFvZzhQKzNYNGMyQUFBQUNNUCsvNW9YbG1EckNhSnVCQWdRSUVDQUFBRUNCS3FB
QUtsU2RnUUlFQ0JBZ0FBQgpBZ1FJM0FJQzVDWjBRSUFBQVFJRUNCQWdRSUJBRlJBZ1ZjcU9BQUVD
QkFnUUlFQ0FBSUZiUUlEY2hBNElFQ0JBZ0FBQkFnUUlFS2dDCkFxUksyUkVnUUlBQUFRSUVDQkFn
Y0FzSWtKdlFBUUVDQkFnUUlFQ0FBQUVDVlVDQVZDazdBZ1FJRUNCQWdBQUJBZ1J1QVFGeUV6b2cK
UUlBQUFRSUVDQkFnUUtBS0NKQXFaVWVBQUFFQ0JBZ1FJRUNBd0MwZ1FHNUNCd1FJRUNCQWdBQUJB
Z1FJVkFFQlVxWHNDQkFnUUlBQQpBUUlFQ0JDNEJRVElUZWlBQUFFQ0JBZ1FJRUNBQUlFcUlFQ3Fs
QjBCQWdRSUVDQkFnQUFCQXJlQUFMa0pIUkFnUUlBQUFRSUVDQkFnClVBVUVTSld5STBDQUFBRUNC
QWdRSUVEZ0ZoQWdONkVEQWdRSUVDQkFnQUFCQWdTcWdBQ3BVbllFQ0JBZ1FJQUFBUUlFQ053Q0F1
UW0KZEVDQUFBRUNCQWdRSUVDQVFCVVFJRlhLamdBQkFnUUlFQ0JBZ0FDQlcwQ0EzSVFPQ0JBZ1FJ
QUFBUUlFQ0JDb0FnS2tTdGtSSUVDQQpBQUVDQkFnUUlIQUxDSkNiMEFFQkFnUUlFQ0JBZ0FBQkFs
VkFnRlFwT3dJRUNCQWdRSUFBQVFJRWJnRUJjaE02SUVDQUFBRUNCQWdRCklFQ2dDZ2lRS21WSGdB
QUJBZ1FJRUNCQWdNQXRJRUJ1UWdjRUNCQWdRSUFBQVFJRUNGUUJBVktsN0FnUUlFQ0FBQUVDQkFn
UXVBVUUKeUUzb2dBQUJBZ1FJRUNCQWdBQ0JLaUJBcXBRZEFRSUVDQkFnUUlBQUFRSzNnQUM1Q1Iw
UUlFQ0FBQUVDQkFnUUlGQUZCRWlWc2lOQQpnQUFCQWdRSUVDQkE0QllRSURlaEF3SUVDQkFnUUlB
QUFRSUVxb0FBcVZKMkJBZ1FJRUNBQUFFQ0JBamNBZ0xrSm5SQWdBQUJBZ1FJCkVDQkFnRUFWRUNC
VnlvNEFBUUlFQ0JBZ1FJQUFnVnRBZ055RURnZ1FJRUNBQUFFQ0JBZ1FxQUlDcEVyWkVTQkFnQUFC
QWdRSUVDQncKQ3dpUW05QUJBUUlFQ0JBZ1FJQUFBUUpWUUlCVUtUc0NCQWdRSUVDQUFBRUNCRzRC
QVhJVE9pQkFnQUFCQWdRSUVDQkFvQW9Ja0NwbApSNEFBQVFJRUNCQWdRSURBTFNCQWJrSUhCQWdR
SUVDQUFBRUNCQWhVQVFGU3Bld0lFQ0JBZ0FBQkFnUUlFTGdGQk1oTjZJQUFBUUlFCkNCQWdRSUFB
Z1NvZ1FLcVVIUUVDQkFnUUlFQ0FBQUVDdDRBQXVRa2RFQ0JBZ0FBQkFnUUlFQ0JRQlFSSWxiSWpR
SUFBQVFJRUNCQWcKUU9BV0VDQTNvUU1DQkFnUUlFQ0FBQUVDQktxQUFLbFNkZ1FJRUNCQWdBQUJB
Z1FJM0FJREIwaW9JUkF1TitvQUFBQUFTVVZPUks1QwpZSUk9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54676</attachid>
            <date>2010-04-28 22:40:42 -0700</date>
            <delta_ts>2025-10-24 15:13:11 -0700</delta_ts>
            <desc>Account for overflow of glyphs for U+1E00..U+2000 without sending them through the complex text code path</desc>
            <filename>6649734_r1.diff</filename>
            <type>text/plain</type>
            <size>57371</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODQ3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDQtMjggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0
IG9mIDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PiBUZXh0IHJlcGFpbnRpbmcgZG9lcyBub3QgYWNj
b3VudCBmb3IgZ2x5cGhzIHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBoaWMgYm91bmRz
IG9mIHRoZSBmb250CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Mjc0CisKKyAgICAgICAgQWNjb3VudCBmb3IgZ2x5cGggb3ZlcmZsb3cgb2YgY2hhcmFj
dGVycyBpbiB0aGUgcmFuZ2UgVSsxRTAwLi5VKzIwMDAsIGJ1dCB3aXRob3V0IHNlbmRpbmcgdGhl
bQorICAgICAgICB0aHJvdWdoIHRoZSBjb21wbGV4IHRleHQgY29kZSBwYXRoLiBJbnN0ZWFkLCBp
bnRyb2R1Y2UgYSB2YXJpYW50IG9mIHRoZSBmYXN0IHBhdGggdGhhdCB0cmFja3MKKyAgICAgICAg
Z2x5cGggb3ZlcmZsb3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdUZXh0KTogVXNlIGNvZGVQYXRoKCkuCisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogVXNlIGNvZGVQYXRoKCkuIFBhc3MgdGhl
IEdseXBoT3ZlcmZsb3cgcG9pbnRlciB0aHJvdWdoIHRvCisgICAgICAgIGZsb2F0V2lkdGhGb3JT
aW1wbGVUZXh0KCkgaWYgdGhlIGNvZGUgcGF0aCBpcyBTaW1wbGVXaXRoR2x5cGhPdmVyZmxvdy4K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnNlbGVjdGlvblJlY3RGb3JUZXh0KTogVXNlIGNvZGVQ
YXRoKCkuCisgICAgICAgIChXZWJDb3JlOjpGb250OjpvZmZzZXRGb3JQb3NpdGlvbik6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaDogUmVwbGFjZWQgY2FuVXNlR2x5
cGhDYWNoZSgpIHdpdGggY29kZVBhdGgoKS4gQWRkZWQgYSBHbHlwaE92ZXJmbG93CisgICAgICAg
IHBhcmFtZXRlciB0byBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dCgpLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHA6CisgICAgICAgIFJlbW92ZWQgUk9NQU5fQU5E
X0dSRUVLX0RJQUNSSVRJQ1NfQ0FOX1VTRV9HTFlQSF9DQUNIRS4KKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6OmNvZGVQYXRoKTogUmVuYW1lZCBjYW5Vc2VHbHlwaENhY2hlKCkgdG8gdGhpcy4gV2hl
cmUgaXQgdXNlZCB0byByZXR1cm4gZmFsc2UsCisgICAgICAgIGl0IG5vdyByZXR1cm5zIENvbXBs
ZXguIFdoZXJlIGl0IHVzZWQgdG8gcmV0dXJuIHRydWUsIGl0IG5vdyByZXR1cm5zIFNpbXBsZSwg
ZXhjZXB0IGZvcgorICAgICAgICB0aGUgcmFuZ2UgVSsxRTAwLi5VKzIwMDAsIHdoZXJlIGl0IG5v
dyByZXR1cm5zIFNpbXBsZVdpdGhHbHlwaE92ZXJmbG93LgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQpOiBBZGRlZCBhIEdseXBoT3ZlcmZsb3cgcGFyYW1l
dGVyLiBJZiBub3QgMCwgaGF2ZSB0aGUKKyAgICAgICAgd2lkdGggaXRlcmF0b3IgYWNjb3VudCBm
b3IgZ2x5cGggYm91bmRzLCB0aGVuIHVwZGF0ZSB0aGUgR2x5cGhPdmVyZmxvdyBhY2NvcmRpbmds
eS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3IpOiBBZGRlZCBib29sZWFu
IHBhcmFtZXRlciB0ZWxsaW5nIHRoZSB3aWR0aCBpdGVyYXRvcgorICAgICAgICB3aGV0aGVyIHRv
IGFjY291bnQgZm9yIGdseXBoIGJvdW5kcy4gSW5pdGlhbGl6ZSBtX2FjY291bnRGb3JHbHlwaEJv
dW5kcyBhY2NvcmRpbmdseS4gSW5pdGlhbGl6ZQorICAgICAgICBtX21heEdseXBoQm91bmRpbmdC
b3hZLCBtX21pbkdseXBoQm91bmRpbmdCb3hZLCBtX2ZpcnN0R2x5cGhPdmVyZmxvdyBhbmQgbV9s
YXN0R2x5cGhPdmVyZmxvdy4KKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6OmFkdmFu
Y2UpOiBJZiBhY2NvdW50aW5nIGZvciBnbHlwaCBib3VuZHMsIHVwZGF0ZSB0aGUgYWJvdmUgbWVt
YmVyIHZhcmlhYmxlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9yOjptYXhHbHlwaEJvdW5kaW5nQm94
WSk6IEFkZGVkIHRoaXMgYWNjZXNzb3IuCisgICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9y
OjptaW5HbHlwaEJvdW5kaW5nQm94WSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJ
dGVyYXRvcjo6Zmlyc3RHbHlwaE92ZXJmbG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpX
aWR0aEl0ZXJhdG9yOjpsYXN0R2x5cGhPdmVyZmxvdyk6IERpdHRvLgorCiAyMDEwLTA0LTI1ICBB
bnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlz
aW9uIDU4NDc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3ND
b250ZXh0KiBjb24KICNlbmRpZgogCiAjaWYgVVNFKEZPTlRfRkFTVF9QQVRIKQotICAgIGlmIChj
YW5Vc2VHbHlwaENhY2hlKHJ1bikpCisgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0gQ29tcGxleCkK
ICAgICAgICAgcmV0dXJuIGRyYXdTaW1wbGVUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20s
IHRvKTsKICNlbmRpZgogCkBAIC0xOTAsMTEgKzE5MCwxMiBAQCBmbG9hdCBGb250OjpmbG9hdFdp
ZHRoKGNvbnN0IFRleHRSdW4mIHJ1CiAjZW5kaWYKIAogI2lmIFVTRShGT05UX0ZBU1RfUEFUSCkK
LSAgICBpZiAoY2FuVXNlR2x5cGhDYWNoZShydW4pKSB7CisgICAgQ29kZVBhdGggY29kZVBhdGhU
b1VzZSA9IGNvZGVQYXRoKHJ1bik7CisgICAgaWYgKGNvZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCkg
ewogICAgICAgICAvLyBJZiB0aGUgY29tcGxleCB0ZXh0IGltcGxlbWVudGF0aW9uIGNhbm5vdCBy
ZXR1cm4gZmFsbGJhY2sgZm9udHMsIGF2b2lkCiAgICAgICAgIC8vIHJldHVybmluZyB0aGVtIGZv
ciBzaW1wbGUgdGV4dCBhcyB3ZWxsLgogICAgICAgICBzdGF0aWMgYm9vbCByZXR1cm5GYWxsYmFj
a0ZvbnRzID0gY2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7Ci0gICAgICAg
IHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9u
dHMgPyBmYWxsYmFja0ZvbnRzIDogMCk7CisgICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9yU2lt
cGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9udHMgPyBmYWxsYmFja0ZvbnRzIDogMCwg
Y29kZVBhdGhUb1VzZSA9PSBTaW1wbGVXaXRoR2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3cg
OiAwKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMjE0LDcgKzIxNSw3IEBAIGZsb2F0IEZvbnQ6OmZs
b2F0V2lkdGgoY29uc3QgVGV4dFJ1biYgcnUKICAgICBnbHlwaE5hbWUgPSAiIjsKIAogI2lmIFVT
RShGT05UX0ZBU1RfUEFUSCkKLSAgICBpZiAoY2FuVXNlR2x5cGhDYWNoZShydW4pKQorICAgIGlm
IChjb2RlUGF0aChydW4pICE9IENvbXBsZXgpCiAgICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9y
U2ltcGxlVGV4dChydW4sIDApOwogI2VuZGlmCiAKQEAgLTIzMSw3ICsyMzIsNyBAQCBGbG9hdFJl
Y3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvclRleHQoY29uCiAgICAgdG8gPSAodG8gPT0gLTEgPyBy
dW4ubGVuZ3RoKCkgOiB0byk7CiAKICNpZiBVU0UoRk9OVF9GQVNUX1BBVEgpCi0gICAgaWYgKGNh
blVzZUdseXBoQ2FjaGUocnVuKSkKKyAgICBpZiAoY29kZVBhdGgocnVuKSAhPSBDb21wbGV4KQog
ICAgICAgICByZXR1cm4gc2VsZWN0aW9uUmVjdEZvclNpbXBsZVRleHQocnVuLCBwb2ludCwgaCwg
ZnJvbSwgdG8pOwogI2VuZGlmCiAKQEAgLTI0Niw3ICsyNDcsNyBAQCBpbnQgRm9udDo6b2Zmc2V0
Rm9yUG9zaXRpb24oY29uc3QgVGV4dFJ1CiAjZW5kaWYKIAogI2lmIFVTRShGT05UX0ZBU1RfUEFU
SCkKLSAgICBpZiAoY2FuVXNlR2x5cGhDYWNoZShydW4pKQorICAgIGlmIChjb2RlUGF0aChydW4p
ICE9IENvbXBsZXgpCiAgICAgICAgIHJldHVybiBvZmZzZXRGb3JQb3NpdGlvbkZvclNpbXBsZVRl
eHQocnVuLCB4LCBpbmNsdWRlUGFydGlhbEdseXBocyk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmgJKHJldmlzaW9uIDU4NDc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw2ICsxNTAsMTAgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFVzZVNtb290aGluZyhib29sKTsKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRVc2VTbW9vdGhpbmcoKTsKIAorI2lmIFVTRShGT05UX0ZBU1RfUEFUSCkK
KyAgICBlbnVtIENvZGVQYXRoIHsgQXV0bywgU2ltcGxlLCBDb21wbGV4LCBTaW1wbGVXaXRoR2x5
cGhPdmVyZmxvdyB9OworI2VuZGlmCisKIHByaXZhdGU6CiAjaWYgRU5BQkxFKFNWR19GT05UUykK
ICAgICB2b2lkIGRyYXdUZXh0VXNpbmdTVkdGb250KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CkBAIC0x
NjAsMTEgKzE2NCwxMSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBVU0UoRk9OVF9GQVNUX1BB
VEgpCi0gICAgYm9vbCBjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRleHRSdW4mKSBjb25zdDsKKyAg
ICBDb2RlUGF0aCBjb2RlUGF0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CiAgICAgdm9pZCBkcmF3
U2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQ
b2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogICAgIHZvaWQgZHJhd0dseXBocyhHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBTaW1wbGVGb250RGF0YSosIGNvbnN0IEdseXBoQnVmZmVyJiwg
aW50IGZyb20sIGludCB0bywgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogICAgIHZvaWQgZHJh
d0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEdseXBoQnVmZmVyJiwgY29uc3Qg
VGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKLSAgICBmbG9hdCBmbG9hdFdpZHRo
Rm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgR2x5cGhCdWZmZXIqLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKSBjb25zdDsKKyAgICBmbG9hdCBm
bG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgR2x5cGhCdWZmZXIqLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJm
bG93KiA9IDApIGNvbnN0OwogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvclNpbXBsZVRleHQo
Y29uc3QgVGV4dFJ1biYsIGludCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykg
Y29uc3Q7CiAgICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RGb3JTaW1wbGVUZXh0KGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGludCBoLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsK
IApAQCAtMTgxLDcgKzE4NSw2IEBAIHByaXZhdGU6CiBwdWJsaWM6CiAgICAgLy8gVXNlZnVsIGZv
ciBkZWJ1Z2dpbmcgdGhlIGRpZmZlcmVudCBmb250IHJlbmRlcmluZyBjb2RlIHBhdGhzLgogI2lm
IFVTRShGT05UX0ZBU1RfUEFUSCkKLSAgICBlbnVtIENvZGVQYXRoIHsgQXV0bywgU2ltcGxlLCBD
b21wbGV4IH07CiAgICAgc3RhdGljIHZvaWQgc2V0Q29kZVBhdGgoQ29kZVBhdGgpOwogICAgIHN0
YXRpYyBDb2RlUGF0aCBjb2RlUGF0aCgpOwogICAgIHN0YXRpYyBDb2RlUGF0aCBzX2NvZGVQYXRo
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkocmV2
aXNpb24gNTg0NzQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEwICszNiw2IEBACiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKLSNpZm5kZWYgUk9N
QU5fQU5EX0dSRUVLX0RJQUNSSVRJQ1NfQ0FOX1VTRV9HTFlQSF9DQUNIRQotI2RlZmluZSBST01B
Tl9BTkRfR1JFRUtfRElBQ1JJVElDU19DQU5fVVNFX0dMWVBIX0NBQ0hFIDEKLSNlbmRpZgotCiB1
c2luZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7CiAKQEAgLTE5NCw3
NCArMTkwLDY0IEBAIEZvbnQ6OkNvZGVQYXRoIEZvbnQ6OmNvZGVQYXRoKCkKICAgICByZXR1cm4g
c19jb2RlUGF0aDsKIH0KIAotYm9vbCBGb250OjpjYW5Vc2VHbHlwaENhY2hlKGNvbnN0IFRleHRS
dW4mIHJ1bikgY29uc3QKK0ZvbnQ6OkNvZGVQYXRoIEZvbnQ6OmNvZGVQYXRoKGNvbnN0IFRleHRS
dW4mIHJ1bikgY29uc3QKIHsKLSAgICBzd2l0Y2ggKHNfY29kZVBhdGgpIHsKLSAgICAgICAgY2Fz
ZSBBdXRvOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2ltcGxlOgotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgQ29tcGxleDoKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCisgICAgaWYgKHNfY29kZVBhdGggIT0gQXV0bykKKyAg
ICAgICAgcmV0dXJuIHNfY29kZVBhdGg7CisKICAgICAvLyBTdGFydCBmcm9tIDAgc2luY2UgZHJh
d2luZyBhbmQgaGlnaGxpZ2h0aW5nIGFsc28gbWVhc3VyZSB0aGUgY2hhcmFjdGVycyBiZWZvcmUg
cnVuLT5mcm9tCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydW4ubGVuZ3RoKCk7IGkrKykgewog
ICAgICAgICBjb25zdCBVQ2hhciBjID0gcnVuW2ldOwogICAgICAgICBpZiAoYyA8IDB4MzAwKSAg
ICAgIC8vIFUrMDMwMCB0aHJvdWdoIFUrMDM2RiBDb21iaW5pbmcgZGlhY3JpdGljYWwgbWFya3MK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYyA8PSAweDM2RikKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBDb21wbGV4OwogCiAgICAgICAg
IGlmIChjIDwgMHgwNTkxIHx8IGMgPT0gMHgwNUJFKSAgICAgLy8gVSswNTkxIHRocm91Z2ggVSsw
NUNGIGV4Y2x1ZGluZyBVKzA1QkUgSGVicmV3IGNvbWJpbmluZyBtYXJrcywgSGVicmV3IHB1bmN0
dWF0aW9uIFBhc2VxLCBTb2YgUGFzdXEgYW5kIE51biBIYWZ1a2hhCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgaWYgKGMgPD0gMHgwNUNGKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgcmV0dXJuIENvbXBsZXg7CiAKICAgICAgICAgaWYgKGMgPCAweDA2MDAp
ICAgICAvLyBVKzA2MDAgdGhyb3VnaCBVKzEwNTkgQXJhYmljLCBTeXJpYWMsIFRoYWFuYSwgRGV2
YW5hZ2FyaSwgQmVuZ2FsaSwgR3VybXVraGksIEd1amFyYXRpLCBPcml5YSwgVGFtaWwsIFRlbHVn
dSwgS2FubmFkYSwgTWFsYXlhbGFtLCBTaW5oYWxhLCBUaGFpLCBMYW8sIFRpYmV0YW4sIE15YW5t
YXIKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYyA8PSAweDEwNTkpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gQ29tcGxleDsKIAogICAg
ICAgICBpZiAoYyA8IDB4MTEwMCkgICAgIC8vIFUrMTEwMCB0aHJvdWdoIFUrMTFGRiBIYW5ndWwg
SmFtbyAob25seSBBbmNpZW50IEtvcmVhbiBzaG91bGQgYmUgbGVmdCBoZXJlIGlmIHlvdSBwcmVj
b21wb3NlOyBNb2Rlcm4gS29yZWFuIHdpbGwgYmUgcHJlY29tcG9zZWQgYXMgYSByZXN1bHQgb2Yg
c3RlcCBBKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChjIDw9IDB4MTFGRikK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBDb21wbGV4Owog
CiAgICAgICAgIGlmIChjIDwgMHgxNzgwKSAgICAgLy8gVSsxNzgwIHRocm91Z2ggVSsxOEFGIEto
bWVyLCBNb25nb2xpYW4KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYyA8PSAw
eDE4QUYpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gQ29t
cGxleDsKIAogICAgICAgICBpZiAoYyA8IDB4MTkwMCkgICAgIC8vIFUrMTkwMCB0aHJvdWdoIFUr
MTk0RiBMaW1idSAoVW5pY29kZSA0LjApCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
aWYgKGMgPD0gMHgxOTRGKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
cmV0dXJuIENvbXBsZXg7CiAKLSNpZiAhUk9NQU5fQU5EX0dSRUVLX0RJQUNSSVRJQ1NfQ0FOX1VT
RV9HTFlQSF9DQUNIRQotICAgICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIG5vdCB1c2UgY29tcGxl
eCB0ZXh0IHBhdGggZm9yIHRoZXNlIGNoYXJhY3RlcnMuCiAgICAgICAgIGlmIChjIDwgMHgxRTAw
KSAgICAgLy8gVSsxRTAwIHRocm91Z2ggVSsyMDAwIGNoYXJhY3RlcnMgd2l0aCBkaWFjcml0aWNz
IGFuZCBzdGFja2VkIGRpYWNyaXRpY3MKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBp
ZiAoYyA8PSAweDIwMDApCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKKyAgICAg
ICAgICAgIHJldHVybiBTaW1wbGVXaXRoR2x5cGhPdmVyZmxvdzsKIAogICAgICAgICBpZiAoYyA8
IDB4MjBEMCkgICAgIC8vIFUrMjBEMCB0aHJvdWdoIFUrMjBGRiBDb21iaW5pbmcgbWFya3MgZm9y
IHN5bWJvbHMKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYyA8PSAweDIwRkYp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gQ29tcGxleDsK
IAogICAgICAgICBpZiAoYyA8IDB4RkUyMCkgICAgIC8vIFUrRkUyMCB0aHJvdWdoIFUrRkUyRiBD
b21iaW5pbmcgaGFsZiBtYXJrcwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChj
IDw9IDB4RkUyRikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVy
biBDb21wbGV4OwogICAgIH0KIAogICAgIGlmICh0eXBlc2V0dGluZ0ZlYXR1cmVzKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gQ29t
cGxleDsKIAorICAgIHJldHVybiBTaW1wbGU7CiB9CiAKIHZvaWQgRm9udDo6ZHJhd1NpbXBsZVRl
eHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdApAQCAtMzI2LDEwICszMTIs
MTggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZQogICAgIGRyYXdH
bHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBo
IC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250OjpmbG9hdFdpZHRoRm9y
U2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxv
YXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBHbHlw
aEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKLSAgICBX
aWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgV2lkdGhJdGVy
YXRvciBpdCh0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogICAgIGl0
LmFkdmFuY2UocnVuLmxlbmd0aCgpLCBnbHlwaEJ1ZmZlcik7CisKKyAgICBpZiAoZ2x5cGhPdmVy
ZmxvdykgeworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBtYXg8aW50PihnbHlwaE92ZXJm
bG93LT50b3AsIGNlaWxmKC1pdC5taW5HbHlwaEJvdW5kaW5nQm94WSgpKSAtIGFzY2VudCgpKTsK
KyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tLCBjZWlsZihpdC5tYXhHbHlwaEJvdW5kaW5nQm94WSgpKSAtIGRlc2NlbnQoKSk7Cisg
ICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQgPSBjZWlsZihpdC5maXJzdEdseXBoT3ZlcmZsb3co
KSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnJpZ2h0ID0gY2VpbGYoaXQubGFzdEdseXBoT3Zl
cmZsb3coKSk7CisgICAgfQorCiAgICAgcmV0dXJuIGl0Lm1fcnVuV2lkdGhTb0ZhcjsKIH0KIApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCShyZXZp
c2lvbiA1ODQ3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEzICszMywxNCBAQAogCiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7Cit1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEFjY29yZGluZyB0byBodHRwOi8vd3d3LnVuaWNvZGUu
b3JnL1B1YmxpYy9VTklEQVRBL1VDRC5odG1sI0Nhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3NfVmFs
dWVzCiBzdGF0aWMgY29uc3QgdWludDhfdCBoaXJhZ2FuYUthdGFrYW5hVm9pY2luZ01hcmtzQ29t
YmluaW5nQ2xhc3MgPSA4OwogCi1XaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZv
bnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiBmYWxsYmFja0ZvbnRzKQorV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBG
b250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMpCiAgICAgOiBt
X2ZvbnQoZm9udCkKICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkK
QEAgLTQ3LDYgKzQ4LDExIEBAIFdpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3IoY29uc3QgRm9u
dCoKICAgICAsIG1fcnVuV2lkdGhTb0ZhcigwKQogICAgICwgbV9maW5hbFJvdW5kaW5nV2lkdGgo
MCkKICAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQorICAgICwgbV9hY2NvdW50
Rm9yR2x5cGhCb3VuZHMoYWNjb3VudEZvckdseXBoQm91bmRzKQorICAgICwgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9taW5HbHlw
aEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9maXJz
dEdseXBoT3ZlcmZsb3coMCkKKyAgICAsIG1fbGFzdEdseXBoT3ZlcmZsb3coMCkKIHsKICAgICAv
LyBJZiB0aGUgcGFkZGluZyBpcyBub24temVybywgY291bnQgdGhlIG51bWJlciBvZiBzcGFjZXMg
aW4gdGhlIHJ1bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBieSB0aGUgcGFkZGluZyBmb3IgcGVy
IHNwYWNlIGFkZGl0aW9uLgpAQCAtNzksNiArODUsNyBAQCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFk
dmFuY2UoaW50IG9mZnNldCwgCiAKICAgICBmbG9hdCBydW5XaWR0aFNvRmFyID0gbV9ydW5XaWR0
aFNvRmFyOwogICAgIGZsb2F0IGxhc3RSb3VuZGluZ1dpZHRoID0gbV9maW5hbFJvdW5kaW5nV2lk
dGg7CisgICAgRmxvYXRSZWN0IGJvdW5kczsKIAogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBw
cmltYXJ5Rm9udCA9IG1fZm9udC0+cHJpbWFyeUZvbnQoKTsKICAgICBjb25zdCBTaW1wbGVGb250
RGF0YSogbGFzdEZvbnREYXRhID0gcHJpbWFyeUZvbnQ7CkBAIC0xNzUsNiArMTgyLDEyIEBAIHZv
aWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCisgICAgICAgIGlmIChtX2FjY291bnRGb3JHbHlwaEJvdW5kcykgeworICAgICAg
ICAgICAgYm91bmRzID0gZm9udERhdGEtPmJvdW5kc0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAg
ICAgIGlmICghY3VycmVudENoYXJhY3RlcikKKyAgICAgICAgICAgICAgICBtX2ZpcnN0R2x5cGhP
dmVyZmxvdyA9IG1heDxmbG9hdD4oMCwgLWJvdW5kcy54KCkpOworICAgICAgICB9CisKICAgICAg
ICAgLy8gQWR2YW5jZSBwYXN0IHRoZSBjaGFyYWN0ZXIgd2UganVzdCBkZWFsdCB3aXRoLgogICAg
ICAgICBjcCArPSBjbHVzdGVyTGVuZ3RoOwogICAgICAgICBjdXJyZW50Q2hhcmFjdGVyICs9IGNs
dXN0ZXJMZW5ndGg7CkBAIC0yMDUsNiArMjE4LDEyIEBAIHZvaWQgV2lkdGhJdGVyYXRvcjo6YWR2
YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgICAgIGdseXBoQnVmZmVyLT5hZGQoZ2x5cGgsIGZv
bnREYXRhLCAocnRsID8gb2xkV2lkdGggKyBsYXN0Um91bmRpbmdXaWR0aCA6IHdpZHRoKSk7CiAK
ICAgICAgICAgbGFzdFJvdW5kaW5nV2lkdGggPSB3aWR0aCAtIG9sZFdpZHRoOworCisgICAgICAg
IGlmIChtX2FjY291bnRGb3JHbHlwaEJvdW5kcykgeworICAgICAgICAgICAgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBib3VuZHMuYm90dG9tKCkp
OworICAgICAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91
bmRpbmdCb3hZLCBib3VuZHMueSgpKTsKKyAgICAgICAgICAgIG1fbGFzdEdseXBoT3ZlcmZsb3cg
PSBtYXg8ZmxvYXQ+KDAsIGJvdW5kcy5yaWdodCgpIC0gd2lkdGgpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gY3VycmVudENoYXJhY3RlcjsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oCShyZXZpc2lvbiA1ODQ3NCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMywxMSArMzMsMTYgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFzcyBUZXh0
UnVuOwogCiBzdHJ1Y3QgV2lkdGhJdGVyYXRvciB7Ci0gICAgV2lkdGhJdGVyYXRvcihjb25zdCBG
b250KiwgY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cyA9IDApOworICAgIFdpZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRl
eHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAw
LCBib29sIGFjY291bnRGb3JHbHlwaEJvdW5kcyA9IGZhbHNlKTsKIAogICAgIHZvaWQgYWR2YW5j
ZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2YW5jZU9uZUNoYXJhY3Rl
cihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwogCisgICAgZmxvYXQgbWF4R2x5cGhC
b3VuZGluZ0JveFkoKSBjb25zdCB7IEFTU0VSVChtX2FjY291bnRGb3JHbHlwaEJvdW5kcyk7IHJl
dHVybiBtX21heEdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGlu
Z0JveFkoKSBjb25zdCB7IEFTU0VSVChtX2FjY291bnRGb3JHbHlwaEJvdW5kcyk7IHJldHVybiBt
X21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgZmlyc3RHbHlwaE92ZXJmbG93KCkg
Y29uc3QgeyBBU1NFUlQobV9hY2NvdW50Rm9yR2x5cGhCb3VuZHMpOyByZXR1cm4gbV9maXJzdEds
eXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBsYXN0R2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgQVNT
RVJUKG1fYWNjb3VudEZvckdseXBoQm91bmRzKTsgcmV0dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7
IH0KKwogICAgIGNvbnN0IEZvbnQqIG1fZm9udDsKIAogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVu
OwpAQCAtNTEsNyArNTYsMTMgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogCiBwcml2YXRlOgog
ICAgIFVDaGFyMzIgbm9ybWFsaXplVm9pY2luZ01hcmtzKGludCBjdXJyZW50Q2hhcmFjdGVyKTsK
KwogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOwor
ICAgIGJvb2wgbV9hY2NvdW50Rm9yR2x5cGhCb3VuZHM7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WTsKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0
IG1fZmlyc3RHbHlwaE92ZXJmbG93OworICAgIGZsb2F0IG1fbGFzdEdseXBoT3ZlcmZsb3c7CiB9
OwogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1ODQ3NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA0LTI4ICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlZCByZXN1bHRzIGZvciA8cmRhcjovL3Byb2JsZW0vNjY0OTcz
ND4gVGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3
IG91dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NAorCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tz
dW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRp
Y3MtZXhwZWN0ZWQucG5nOgorCiAyMDEwLTA0LTI1ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9v
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1l
eHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9yZXBhaW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNp
b24gNTg0NzQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3N0YWNr
ZWQtZGlhY3JpdGljcy1leHBlY3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBA
QAotMjE0YTYyMjI2MzUxNzk4Yjc4MmFkOWM4MzlhYjkwMGQKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCis2MWNhYjA5NzkxNDUyNWZiN2Y3YTA3OTg5MzMwMDEyZQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQv
c3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5
OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRp
b24vb2N0ZXQtc3RyZWFtCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNh
ZG9Kd0FBQURPMmxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGCmxFdG8xRkFVaHYrTUtZSzBncWkx
RnBUZ1FvdTBKVDdRaWxEYmFiWFdrWEVZKzlBaXlEUnpaeHBOTXpHWkdSK0lTRUhjK1ZxS0d4K0kK
aXlyaVFycFFjS1VMa1VMcmExRUVjYVVpaUVJM1VzYi9KdTFNS2xZdkpQbHl6bi9QNjRZQVZROVRq
bU5GTkdEWXpydkpycWgyNlBDQQp0bmdDVmFoQk5iaFNodWUwSnhMN2ZhWldQdWV2NmJkUXBHV3lT
Y2FLOVIyWStMUnQ5ZjFMajJMdjY1NzIrcDc1K25sdk5TNFRBb3BHCjY0cHN3RnNsRHdhOFYvTEp2
Sk9uNW9oa1l5aVZKanZrUnJjbjJVRytRVjZhRGZGZ2lOUENNNENxTm1weWh1TXlUbVFGdWFWb1pH
WE0KVWJKdXAwMmJQQ1h0YWM4WXBvYjlSbjdJV2RER2xZOEJyV3VBUlM4cnRnRVBHTDBMckZwZnNU
WFVBU3Y3Z2JFdEZkdlBwRDhmcFhiYwp5MnpaN0lkVHFxT3M2VU9wOUhNOXNQZ2FNSE8xVlBwMXEx
U2F1YzBjck9PWlpSVGNvcTlsWWNvcklLZzMyTTM0eVRsYWlJT2VmRlVMCmNKTno3RjhDeEM0QTF6
OENHeDRBeXg4RGlScWdad2NpNTlsdWNPWEZLYzRGNk1nNXAxMHpPNVRYTnV2NmRxMmRSeXUwYnR0
b2J0UlMKbHFYNUxrOXpoU2Zjb2tnM1k5Z3FjTTcrV3NaN3RiQjdEL0xKL2lMbmhMZDdscFdSZEtx
VHMwUXoyL3FTRnAyN3lZM2tleGx6VHplNQpnZGRVeHQzVEc3Q3kwY3gzOXdRYzZiT3RPTTlGYWlK
MTltRDhBSm54RmRYSlIrVThKSTk0eFlNeXBtOC9sdHFYSU5mVG5qeWVpMGxOCkxmZTJuUm5xNFJs
SlZxd3pReDN4V1g3dEZwSXk3enBxN2ppVy84Mnp0c2h6SElZRkFSTTI3elkwSk5HRktKcmd3RVVP
R1hwTUtreGEKcFYvUWFzTEQ4YjhxTFNUS3V5d3F1dkNaZXo3N2UwNmd3TjB5ZmgraWNZdzBsaU5v
K2p2OW0vNUd2Nm5mMGI5ZXFTODBWRHdqN2xIVApHTC84blhGbFpsbU5qQnZVS09QTG1vTDRCcXR0
cDlkQ2x0WmhYa0ZQWGxuZkZLNHVZMStwTDNzMG1VTmNqRStIdWhTaFRFMFlaRHpaCnRleStTTGI0
SnZ4OGM5a1dtaDYxTDg0K3FhdmtlcU9PSFptc2ZuRTJYQTFyLzdPcllOS3lxL0RralpBdVBHdWhy
bFUzcWQxcWk3b0QKbXJwTGJWTmIxVTYrN1ZUM2wzZjBjbFltVHJKdWw5V24ySU9OMC9SV1Ryb3lX
d1QvRm40eC9DOTFDVnU0cHFISmYyakN6V1ZNUy9pTwo0UFlmZDBqNUwvd05BWVVWRFh4TE96c0FB
Q0FBU1VSQlZIZ0I3TjNwa3gzRm5lajkwZ0lJa0pCQTdDQVFPemJZWUx5T01lTUZ6MXhQClBERitI
RTg0UXY1ejVzOFpSOXhYZnVHNTlwMjUxeDZIRGJheE1idXhBUW1RUUN3U0FpRVdMYTBudjlXZHJl
eWtsanlkZlZwSHA3OFoKaUxObFpXVitLcXRPL3FxeVRtL2F0Mi9mMmNha2dBSUtLS0NBQWdvb29J
QUNDcXlEd09aMVdJZXJVRUFCQlJSUVFBRUZGRkJBQVFWYQpBUU1RTzRJQ0NpaWdnQUlLS0tDQUFn
cXNtNEFCeUxwUnV5SUZGRkJBQVFVVVVFQUJCUlF3QUxFUEtLQ0FBZ29vb0lBQ0NpaWd3TG9KCkdJ
Q3NHN1VyVWtBQkJSUlFRQUVGRkZCQUFRTVErNEFDQ2lpZ2dBSUtLS0NBQWdxc200QUJ5THBSdXlJ
RkZGQkFBUVVVVUVBQkJSUXcKQUxFUEtLQ0FBZ29vb0lBQ0NpaWd3TG9KR0lDc0c3VXJVa0FCQlJS
UVFBRUZGRkJBQVFNUSs0QUNDaWlnZ0FJS0tLQ0FBZ3FzbTRBQgp5THBSdXlJRkZGQkFBUVVVVUVB
QkJSUXdBTEVQS0tDQUFnb29vSUFDQ2lpZ3dMb0pHSUNzRzdVclVrQUJCUlJRUUFFRkZGQkFBUU1R
Cis0QUNDaWlnZ0FJS0tLQ0FBZ3FzbTRBQnlMcFJ1eUlGRkZCQUFRVVVVRUFCQlJRd0FMRVBLS0NB
QWdvb29JQUNDaWlnd0xvSkdJQ3MKRzdVclVrQUJCUlJRUUFFRkZGQkFnWmtMUUQ3OTlOUG13dzgv
Yk02ZVBidThkVDc1NUpQbDV6NXBtazgvUGRzY1A3NndUSEhtek5ubQozWGY3WHk5bkxIaHk2dFRa
NXFPUHp0a1hMTEttV1U2ZVhHekw2ZE1yNjBDYkZ4Wld2cmVhRlovUHRxMm12bXU5RFB2WDhlUEhW
MTFzCjdmS1RybmhoWWFINTRJTVBKbDNNL09kSjRPT1BQMjdlZXV1dGNJejZkRjFxY09iTW1YRHNl
M2ZOMW5YcTFLbHcvUHRvemNvckxXaHMKdlpQc2QyTmxqZFZwbyt4elk2WnI2VkM3VGNhMjJUeDlQ
bVkxdHQyR0xNYktIbHAyR3ArdFpSL3JxdDhreCtQelliTzFxOUxwZTYrKworbXJ6N0xQUHRrRUI3
MTkvL2ZYTlpaZGQxcnozM252TkZWZGMwZHgzMzMzTmpoMDcya1gyNzkvZjVvMEg4R3V1dWFhNSsr
NjdtNXR2CnZybGRubklvNzZhYmJtcSsvT1V2TjVkZWVtbTdIRjhpenozM1hQUDY2NiszbjFFZWd3
NytzYTVMTHJtaytlSVh2OWptVGYvMzJtdXYKdGN2RkFjcmxsMS9lZk81em4yczJiOTdjUFAzMDAw
ME1YSzY5OXRxMnJnUTJsSFhQUGZjMFYxNTVaVnJVNlBQRGh4ZWFGMTg4MHh3KwpmTGJadFd0VFdI
NVRXRThUQnNWTktIdFRjOWRkbTVzdFd6YU5sck1XR1o1OTlrenp6anNMelE5K2NIRno5T2hDODhj
L25taysvdmhzCjg2TWZmZmIxSk90NzVaVXp6Wi8rZENaWWJ3bEdXeVpadERydmtTTUx6ZlBQbndu
OWEzUG9MNXViclZzWExYbi82YWNaWkp4dExycW8KYVc2OWRYUHpoUzlzYVQ4bjhQclp6MDQxSjA5
K2R2VS8vT0ZGb1grdDNCNXN3OGNmUDkwNnNjUi8vL2QvdC8xNDkrN2RvYnl0YmQrawpEL0dhZzl3
Nzc3elRmT1VyWDJsdXUrMjJ6NjdnQW4ySGZaQjIvZUFIUDFoVkMycVhuMlNsSEdQKzhJYy9oTzEr
VWZPOTczMXZra1hOCmV4NEUvdmEzdnpXYk5tMEsrK1BKNXJISEhtdis5Vi8vTlJ3VHAzY2NPWHIw
YURqMi9URWMrejRPKy9TUHFsdk05dy85amUrUXozLysKODlYbGxSWlFzdDdTL2E2a3JLRjZiYVI5
YnNoMExSMXF0OG5ROXBxM3owcXNocmJia01jcnI3d1N4amQvYXNlU2pBSFBkMXJMUHRiVgpsa21P
eHlYdVhldW9mVzgwQUxuMTFsc2JBZ1FPOUNRQ2pxdXZ2cnA1NXBsbndvRHgrZWJnd1lQTkQzLzR3
K2JpaXk5dUIyb0VIM1FRCjBwZSs5S1hsZ2Y3MjdkdWJiM3pqRysyQTd4Lys0UitXdjVqNHN2cXYv
L3F2TnRqNHpuZSswMXgzM1hYdHN2eVBNMXUvK3RXdjJpQm0KK2Mza3lTMjMzTkorNGYzdWQ3OXIz
NzMzM251Yk8rNjRvMzNPbHhKMUpCSHNFQ3dSNGYzbmYvNW44OHRmL3JJaDd3TVBQTkIrWHZJLwpC
c1o4bHg0K2ZMclp1M2Z6OGdDZEt4Ry8rTVhwNXRpeHM2RjlvNXdscXhyTjg4QURXNXJUcHhlLzJL
KzZhbk9vejlubWhSZk90TXZsCnIwY0xTekxjZnZ1V1lMWllUdkwyMUo5Uzk1ZGZQdE44Ly9zWE5k
dTJuUXNhdUJwQzBFZkFzWFBucG1iLy9vWG15U2ZQdE52aGkxL2MKMnJ6MjJrSWJMRjEzSGNIZzRu
THZ2VWNncy9DWjRJTXJLTTg5ZHlaY1dUdlhISUtPZi9tWGYybjdMdSt5RXhJMGYvM3JYMjh6OFpw
QQpwRGFkUG4yNmVmdnR0NXNiYjd5eHRxanE1ZW56MUtjMDVYV2ZkUG5TOVhUbDR5UUIyK1A5OTkv
dituaG0zOHZOWnJhaUUxUnNyRTBjClc1OTY2cW5teHovK2NYdE01dGc4emVDRHFsOTExVlhoMkxj
M0hQdGVtS0FsL1ZuMzdObXovTjNWbjJ2dFB5bFpiK2wrVjFMV1VBc3UKMUgwdWJkTllYNDE1aDB4
ckhkSTYxRzZUV04vNG1KWWQzNXVYeHhLcm9lMDI1SEQ3N2Jjdmp3bUg4cTNYWjdWOWJLaWVKY2Zq
dEIrVgp1QSt0YjdXZkZVM0I0Z3hrVEp6aElqR2dKeEdjSER0MnJIM08vOUs4WEczSUUyZVkweStt
di96bEwyM3dzV3ZYcmhYQkI4c1I2SFJkCitVakxaQkFaVTdydWRCMWNFU0h4T1dlMFNYLzk2MSti
Tjk1NG8zMWUrcis0cWlXQ2RyRWRPemFITDhKTkRXZnFWNVBTcVdhbHkzTjEKSUIyb1U1KzBUdm5y
V0c3SkZLYStaV01acFkrbDdlS3FCRUhQd3c5dlhkRW0xblAwNk5ubW9ZZTJobjZ3T1d5N1RTRVEz
Ukt1dGkyKwp6K2MzM0xBNUJKeGJtdTNiTjRjclpadmFmMGVPbkExWDBSYjdLSGxpSXBDNS9mYVYz
ZjJ1dSs1YURqNWl2dlNSSzNVY0pHb1Mrd2NCCk1tYzdwcEdHbkxtOG15ZjJsMjNidHVWdmQ3N3Vx
dnNreTZlRkR0VXp6UmVmeC93Y2IrSXhKMzVXK3hqTHJpMm5hL2t1czY1OHZOZTEKZmZyeW5zLzNT
OXBFa0locjNGYnhxdmhhMWJ0dm05WDBqNjR5WS8zSDZ0MjE3Tmd5UTUrUHJYZVMvVzZzckw1NnhE
Wk5ZanByZlhpbwpyOGIyeGZiM21jWjhrempFTW5uc3FzTnF0MGxhYmwvWmVaNmgxN0Z0UTNuNlBs
dk5zbVA5bzZ2TU1hdSs3ZFpYNy9UOTFXN1R0SXkxCmVCN2IzVmVmK1BscTF6VjJQSjVtSDUya3p1
ZEc3NU1zRmZJeWpZUEVGdzFuS1ZlVG1DTEZ0QzFTWHhrTUVtdm1yT2YxU2dlVUJDSHgKclBUaHc0
ZWJKNTU0b3IyQ3dpWDQwc1E5RXg5OGNEWXNkMjV3Ky9yclo1by8vL2xNdUpTL3BSMDB2L2JhbVhh
UWZkMTFtME1BdEVqTwpQUTVQUEhFbURJQ2JkbmtlbWRyRllIdkhqazNOYjM1ek9qemZGS1lHTmMy
SkUyZkRBSFp4TU01MHJ3TUh6alNIRHAxdC91bWZ6Z1dHClEvVmxrTS95QkJjSER5NkVLMEpid3NE
NlhIM3paYW5iazArZURsT1NGcThrZlAzclcwTGROb2NyQkhYdHV2YmFsZXRrSi92OTd4ZmIKR1U2
Z3RsYzd1TkxCMVNaU2ZFenJoMDJjV3BVR1lUSFBvVU1MelRlL3ViSmI0M1hUVFpzL2MyOUxYNStM
WlJHNE1oMkx4QlUxK2d2QgpObGZ0dUtwR2dNdzBFS2I3Y2VXUDRKYURJOU00dU1LMmQrL2U1dTkv
LzNzN0o1NitmdUxFaVJCUVBkVG1pZXM0Y3VSSXc2VmhnbldDClppNmIvdU0vL21NNzliQnJmVysr
K1dhN3ozQkZrWVA3Z1FNSDJpbUhYLzNxVjBOQWRrTmJMSDJaZ0llREcxY29xU3Y5bmpxUy85Q2gK
UTZIdi9GTmJyNWRmZnJsZEYvc3haNUpaNXR2Zi9uWUk2clovcHU3c0Yxd1ZLbDJleW5DV2hmMktL
NlJNbGVTUmt3M1lNVFV5VC9ITQpEZE16TWNNN1BabkE1M2p6SGxNcXljY1pNZHhKZmR1Sno1ait5
ZkxVQ1pmdmYvLzd2TDBpY2YvQ2tBbVpoK293dHIxWnZtLzc4QmwxCjQ4b3lUdlF0dGxzOEhnMTlO
bFFudHRtZi8vem50aHlteERKMWxhdkRYRzJtejQ2MWVheE45Ri9Xd2Y3TWV0ZzJiSk9oT3ZYMSs3
aS8KWVVHYXBQK3dmWm5LUzk5OThNRUgyNU5rOUIvNkh5ZXkrTkxsKzJabzMyR2R0SU0reHI3Q1Nh
dEhIbm1rWFliUFN2b1FmWXNaQXh4Zgp2dmExcjdYN0N5ZmEySlo0cy80WFgzeXg3WU5jOVkvOXUy
KzkrWDVMUFliNkFwLzNsY1ZuZVdJN2NmV3FhNS9yMjA0czAzV01XVzNiCjB6b045WnV4dnR6VlZ6
bGVVU1ptY2Ivdk1oMXlvSDVEeDVhMC9sMTE0UE9oYmJMYXN1bGpITGRyK3Z5UU4vVWUyZ2ZwdTEz
Zlg1VFoKMVQ5S3ZyK0dyTHEyMjlpK1FIbHBJditUVHo3WjdzdjBlV1k4OEoxRUdySVk2M3RqeDlG
WWZ0Kyt4dWNseDVkWVR0LzNZTi94bU9WaQptbVlmamVzb2VWdzVJaXhZQW1RTzhrRHhaZmJvbzQ4
dW4vVXFXSHhGbG5ScVJkOVpXUVpFOFdyTGlvVlgrWUtCQ3ZlVmtPSzlJenluClBRd1FYM3JwSlY0
T0pzN003OS9QZlN1bm0vL3pmMDZISUdaekcyakVoZmJzMmRJTzl1T04xTGZjd2xsNjVrYWZtLy96
eWlzTFlkRFoKdEdmNEgzcG9TL2dDUDl0T0l5SWY5emJjZSsvbTlqT21IM0hQOE1VWGJ3b0Roc1dB
Skl5RncrRHJYRmx4dlYyUGxNVWdmL2Z1VGFITQpMV0dRdXFtZGl0U1ZONzdIMUNhdUxuQlZnallR
REhIMXBMWmRzZno0U0J2aTd3c1FaT0hEdXA1NG9udUtFQWR3cHJxbHdWNHNpMGVtCnczSFNmK2ZP
YzkzNnd3OFh3aGRIRTlwLzdyMTBtWkxuRFBRSktyN3doUzgwREJnWVBQL21ONzlwcDJjeERZVDU0
Z1RKSE5qNEltRWEKNE40UWZKQUlST2piM0FmRllDUU9sTnNQdy85aWtNQ0JtWU1nVXg0WmZQYXRi
K2ZPbmUxMExnYVJYRGI5MXJlKzFaWWZwMGd5eVByOQo3My9mQms2c202Q0UvWlhFdXFrZkEzY1M2
Mk9BeHBWQXJrekdmWmtCTUNtdk8wSFNKTXRUUnZ4eUl2RGlId2R4QWp1K01Mc1NWNHNZCkdEUFZr
L3pza3pHeC9YLzk2MSszL2d3d3Yvbk5iN1pmY3IvOTdXL2JMRVBiaWM4WTlOMTU1NTF0dTlpR2xK
ZW5NWk94T3VSbStmWWUKMmo3VWhYN0ZsVGZLSWZEZ1M0WkFaT2l6c1RyUlQraG45RThTMDZQd0o1
QW1qYlY1ckUxTWJlQWZpVzFHOERGV3A2NSszM1hGZkpMKwp3NzdEZ0FMaitKM0JJKzhSN0k3dE8y
MER3djhZcExMZkVLU1Q0djVRMm9mWTEvRWxlR0ZmNWg0eWpLbEg3UGNFL0J3bll2REJldnJXCm0r
KzM1QjNxSjBObDhWbWVodmE1cnUxRXUvcU9NYXR0ZTZ6VFdMOFo2OHQ1WCtWWTA3WGZkNWtPT1F3
ZFcyTGQ0Mk5laDNnTTZOdSsKTldYVHQycjYvSmczYlJyYUJ5ZnRIN1g3WU5kMkc5c1g0bmFKajN4
M3NuOC8vUEREN1RHUjVka0dZeFpqZlcvc09NcjZ4L3BZVjErTgo5WTZQWS9Yc09oN0haZVBqTlB0
b1hFZko0OFNqTWc2WWRBSUdWV3hJemhhdU5oSE54aFNuU2NYWDAzeGtoeVh4QmN6R0pQRmx3S0NF
CmdjOVlDc2Uwc0Z3VHppaHp1ZlZzR0pTZGJhOVNwTXNGcGhVcGYzM2d3R0lBUXFZcnJ0amNCaU9V
eVZRaXp2QVQxSkJlZm5taEhYUnoKMVlLZG5VQ0VxeUNsaWJyZWR0dm04QVc0dUF4VG1iaGlNNVQy
N3QzU1huMjQ1cHJON1QwV3RKT2I3MGw1Ty9MWFErM0sxOGxWR2RLRApEMjRKZGR3U0J2aGJtL3Z2
MzlLMm1YczU4c1FWR1c1UTc3dDZjL0FnMDYvT2RXbUNwaGRmWEFqMzY1eDdMeSt6NURYQktmMkVN
Mm4wCmVmby9mU2RlQldSd1E4REJZSkVCTm9QY1BMSHR1aElCRElNUkRzd01QQm5BY2U5VDMvb0lu
dmxIWHM0VzAyY0pqQWdNQ0NiWWorS0EKaC9VeFdJaUJOb09oT0REak13WjhCQjRjT1BseENmWUxC
di81RmNkWTk5VXN6MW5rT0xCazNUeW5iZkVrQVBXSUNVK3VEbEFYRXV1TgpWM1Y0VFpER1lKd3ZB
bEpzSzh1dzdOQjI0c3dXUG13ZkV2dDczUGZiTjViK04yWXlWb2RZVmpTTHIrTmpyRFBtcEhUNzBB
NjJWYndLCndCbHp6czR4YUIzNnJLUk82VUNYOWFhdng5cE1mbEpmbXhZL1hmbi9zVHAxOWZzNE9F
OUxtcVQvc0J3bnhiamZLdlpoK2tYc1EyUDcKVGx3ditUbXp6UDdBdmgzTEt1MURsTU0reURaallF
T2lISTRmQkVja1BtT3ducWErOWViNzNWQmZpT1gxbFJVL2o0OWorMXpYZHVKNAoxWGVNb2R6VnRE
M1daNnpma0MvdHUxMnZlUy8yMWI1dGxwdU9PUXdkVzFoZlY0cDFpSi8xYlpQYXNtdjZmSW4zMEQ0
NGFmK28zUWZ6CjdWYXlMMFQvK01oM05kOHg3T05jR1dVY1Nqa2xGa045Yit3NE90YkgrdnBxckhk
OExLbG56RHYyT00wK09yWnVQbDg1VjZWZ0NRWTgKZkVFeVVQbkZMMzZ4ZkZQUGFuNDFKUDNDaVlN
a3FzQ2xPNjVFc01GSUlMRk9wcExrSGFETk1PSC80bzNGckQ5dUFOckZHZUNTeEdDZQpHN1k1NmNj
ZzkxZS9PaDErVWVsMCtOV1hpMEw5dWdlYWVibGhIQmJhZHk0UTRQVTExeXd1Rzh2Z3htbnVqN2p6
enBXRDdwNnhiTDZLCjlqWHQ0NFp0QnZTTHdjeENpUG83c3k2L0djYlh5Mm54eXNHWjRpc3VRKzFh
TG5UcFNSZ1R0b21yUGpGeC8wWVl4NGVCNXRrUWFNUjMKbTNDbDVHdzRRQ3lFQVZsU3VYTWZ0OCtZ
ZnNVTitqRVJmQkI4RWRnUktDNk5CZHJuR01ZYjEyUCt2a2NHdlJ3NCtlSWw4Y2dnT0IxRQpjOWIz
NXovL2VYc0ZJL2FwdnZMeTkrblRIRmhqS2xsZnpNc2pCMUlHdGx5ZFpHRExRWlY5aUpNRERMcmpt
Vy95NW5YTFh4TmN4VUVUCitmT1U1ODlmNTh0elVJNzdNV1h4bXZwMkpmSVJwREFvajRueVltSTZD
TXZUMXBqaVlKMzJNbERzMjA0c3QzZnYzdllNRkZjQU9KYWsKNWNUeWVCeHEwMWdkK3RvV3k2ZnN2
dTFEKzJON1luN3FUQnI2ckxaT2xEL1VaajZmTkpYVUtlLzNYZXVZcFArd1BGTnE2UU44Zi9BagpL
QXo2NzcvLy9xNmkyL2Z5ZlljM1V3djZZdHgvSnVsRDlER21lUkFNTWRqaGFqLzdGUU1kdmp0SmFk
L21kZDk2ODgrRytnSjVTVU5sCkxlWlkvUC9ZUGtldWZEdFJkbDhmSnY5cTJzNXlwSkorczVpejdQ
OUQyeXcxR25PWTlKamNWYnQwZldtL3FpMjdwczl6SWcyajlGZ1kKajBFY1U5ay94dmJCU2Z0SGJq
UEpQc2l5cVdQSnZwQ3ZMOTN2WWx1WkZjQzRjTXdpTHl0L25kYU56OUx2dzdFK050UlgwL1dzOVQ2
UwpscDNXZnkzN2FMcU85UG01Yi9mMDNZTG5ESFNvSUZFYlp4VmpBSklPcE9LQk95MHVIZHh3MXBj
R2N5WXluWTdGbVQ4R0NELzcyYy9hClRzR0FqK2tyYTVYaXovTVNkTlFtQnJHY2xlZlhtUmdBTTky
cUpIRi95R09QblE2RHhvV3c4eTllK2VEK2p6VHg4N044eGxXQm12VDgKODZmYnF6VmNSZUdDMWJ2
dkxwNkZLeW1US3pLTUFaUHg4ZUJpSmUyS0JjVEFnNmxZM01oUDRyM1FKWmFEQmQ2amYvRFR3MS82
MHRiZwpzWmlQOTlQRVZTaks0YjZabUxoaTh2VFQ1NEs4K1A3Ly9KK253cG5TelcxNThiMmhSL280
ZGVCc1QxL2l6Q1lIRU9iajNoYk9mdlpOCktleGJQbjIvWkgxcGZyNEErQmNQckV3WjRhd08reEJC
eUZyK25ZUjB2U1hQbVViRVQ3SVNIUEVseCtDd2I3L2pLZzcvc0U0UGhQRTUKNzdQdjhxVVpqek1F
TFBFWU11YkdNWVJqQ2IvU3g1Y3JKeHpZWnBPa3NUcVVsTlczZmZnQ3BGNWRhZWl6dGFoVDF6cHIz
bHVyT2szUwpmNmd2ZllIN0JqRW04T0Q3SnZhVnJ2YmsrMDVYbnZTOTBqN0VPaGtZSGdoWEFOa3Y2
Zk9zaXl1bzlOLzg2a2U2anJIblEzMWhiTm44Cjg3RjlMczhmWC9mMVlUNnZhZnRhOVp0WVR4NUx0
dG1ZdzlpeEpWM2ZwTTlyeTY3cDgvU2xvV01xYlpsMEgyU1pvZjdCNTJtYWRCOU0KbDYzZEYvZytZ
ditreitJd1pwR3VlOUxuWTMyTThrcjY2alQya2JHMjFQYlJ2dkpYam5qN2NuVzh6NEFyWGs0bUVJ
a3BScFM4am5QTgo0MmZrajRNSjNtT2o4MlZCaW5mdHR5L0MvK0pnaGRmcGxaTDQrV29mT1FORllF
U25ZK3BLVEhRODVzcjNEUUJpdnE3SHBhdnE0UXRtCjVhZGh2TlNiR0NoelpZT0JNMmZtSDNsa1pT
eklyMnB4bndqVGt5NE8wNjVJM0NjeGFlTHZoRHp6ekVKbzYrSVVya21YUDNGaThZcEoKREJCWXZx
WmQ2Zm9wazY0VHAyTHhXZmh1YnN2blp2U1krSmxlQW9iMHBuUHU3VWdUd1IvVDF0TCs5WjN2Ykcy
dlNuRmxpbjlmK2NxVwpkbjA4disrK2JHT2xoV1hQNlg5YzltUW5qSW1CVGZvcmFneHF2L3ZkNzda
OW1xbFlOYWxrZlduNVhEMmtiZ1JJbkUzakJtUDZkbXFSCjVsL1A1d3k4bUpMR3dSY3pidWp0UzB3
SG94M3B5WWcwTHljc1NMUXhKc3JsZ014blEyNEVaTnhQd3BjcE41L3p4Y1hVaDBuVFdCM0cKeWh2
YVB0U2ZlbkxWS2liTUNDQ0hQaXV0RTA3cmxVcnJORmFmU2ZwUExJc1RBSHpYY0VNOFU1K0dVcnJ2
RE9YanMwbjdFUFZnM2o5WApZM2krZCsvZTlvb00zMEZqVjhxRzZqTFVGNGFXNi9wc2JKL3JXbWFv
RDhmOHEyMTdhYjhwN2N1bDIyek1ZZWpZRXR1ODJzZTFLSHUxCmZiN0VlOUo5c0tSL3BGYVQ3SVBw
Y2p5djNSZjRUbUE4eUhkbmlRWHJMTzE3NUUzVFdCOHI3YXVsOVV6WFhmdDhMZnBvVngyS0FoQUcK
NXpIRm9JUExTWHc1TXNqaFN6MG16akR5ajhUWm5qUnhnMDI4V1RHK3p6MFhuTVdrWE00V3BZbnl4
eElEaVpnNHN4UlQranhlaWFFZApEQTRKZkxpQk5kNEx3aklNSVBuSDJkcStGRmVWVm90cFV2ektF
cmVWY005RVRBeXUzMzc3YkJoUThTdFpDMkY2Q1BlS3hFK2I1aTkvCjRSZXd1TEY4OFdkOEErTnlv
b1B6QndHdnZYWlRtTkt6T0ZEbVBXNE9KekVPSnVpSk93TFArUmRUK2pyKzVXLytVam8zbEwveHht
SkEKd2RTeHVIeGNMajZtN2VQZUQvNzRIL2Vwa0dyYUZjdVBqOXlQd2hVVDZoUVRnUmQvNURGT1Ir
UHZnN0JaOFR0MDZFejRRajhUdHVIcApFTnpHSlJZZkNVRHluOThsWUlrL3o4dmpKZUZrTjg0OGow
RmRMSVcreHIrMHI4ZlBHRGd3TUtadmNNQmlxZysvYWhPdmlIQUZrT2VjClRlSG02UDM3OTM5bTJo
SEJPTjRNbVBQRWVtTWY1Yk94OVpFbkxZY0JEZE04dUhMSVFZekVvSlV5Q1pKNFpCMnNuM2F3cjhW
dG56NW4KT1Q0bmIweGNJVWpyUHVueU9MRy9NZTBFbzZHZ2lLa2JuSGpnT0VHaUhwd1FvSzIwZ2JQ
R0hNVFR3SS9QdVJwTCtVTnUxRHNlajNCaQpQamJicXlzTm1ZelZnZkp5czNRZFE5dUg5bk0yOFBI
SEgyLzdEOGRZZnNHSkx4eHVzTzc3cktSTzJETWRDQWUrOE9uRGFSOGFhdk5ZCm0vZzhIbThwbjFS
U3A3emZ0d3RtL3h2clA5U2JmMm5DSHk4Ry8vRlhEdFBQMDNhbit3NTU2R2V4RGZFMTc1RW02VVBr
WjUva1JCZjEKNFNRZHdSRFArVExQOTRPaDljWjF4MjAwMUJmSU8xWVdlV0lhMitmSWwyK25vVDRj
anl1VHREM1doY2VTZmpQV2w5UDlqMk5YMzM3UAo5b3ltWXc1RHg1YTAvdkY1V29kNC9PcnJWN1Zs
czA3V3Q1bytYK0k5dGcrdXBuK3NkaCtrcmVsMkc5c1h5SjhuNmhzVCt6OWxNQVl0CnNSanJlN0Uv
eGZLcGExemZXQjhqYjE5ZmplWHhXRkxQL0hpY0xoK2ZUN09QeG5XTVBXNEpsNm4vYlNqVGdSQVVj
RGt0N2p4ODRUT2QKZ2w5RzRDRER6My9tWjVtWUg4OEFpTFBHUEhKR2swRUZBMzdPaHFZSFg3NVVD
VW9vbnp3Y1BObUluSjNrQzRRckt0eGtSUWZKRTNtNAphaEd4V1E5bDg4aFVHTW9oY1VhUmVyQngr
VExuRHlFeUNFa1RCNnA0Wm9xT2tpZnVQL2pyWDgrRUFlaml6K1p5MXA2L0xjRjlGZnhFCmJmNTNM
QmpnL3YzdkMrSHNGd08vSnJSOVUyamo0aVBUalBocDNHZWY1WmQ1RmtKZEtYdWhuVUowL2ZXTGYz
Q1BxeC84Y2hXLytzUTAKTGZLRlkwejRRdVBuYWhmQ1FKUG5URi9qYjVvc3Z1Wno5cTMwTlRkbEUw
UlFEd2J0ZDkyMXBlRkc4ZmZmUHhzNjhzb3JCclNaSUlVLworRWZneEY5Ylp6MzhTbGVjK2xUVHJs
aEdhc3VWSUc2S0o0RGdhaENQWC8wcWwwUTN0ZTErN0xIRnY0TCsybXNFWUdmRGRML0ZHLzZwClUr
eEgvSHJXVTArZENWYzQrcWRvc1U3Vzg4WWJaOXVnSjYwRC9ZT3JCandTZ0RBSXBwL1FOMGtNb0Ju
NGNpYVRQa28vNGkrcDBvZlkKRi9qRktnTHBPTzJLYVUvMEpjNGNNY2psQzV1ZjEyWFF4NENJUVVs
TTdGL3NTd1EyN0I4TXBvZld4M0tVVCtETk1neFMrUmYvdUNmcgpZNytqcnZScHJqQ3lEdllKeXFj
ZTFJYzZzSy94YzN5MG1icFNKdnNONWJMZnhiTkxzZTRzVDdtVExJOERnVDF1bE0xUEMxTXZqaDA0
CnA0bEJHdTdrWVQyMGkzcHlBT2VSZ3orQkJtV3h6M1BNNEJqQU1ZaUQ2WkFiYldOT1B0dVVMei8r
Y1Z5SmZTaldnMEU2N2UwejRUZzAKVkFmS0dkcmVROXVIZ1FodHBFMjBuN3B3YnhIYkFSdjZXOWRu
T0k3VkNSdTJOZVV5U0dSYjRzZGpyRzlmbS9OK2tQZGhqcTFzTTB3NQo1bklDaW4xaHFFNWQvVDV1
Zy9SeHFQL3dYVVNmb3Y1c2YvYWQyS2RvTC8wN1A1WVA3VHZzMSt5THVMQS8wQjdheGY0UTk4dVNQ
aFRyClQ5L0NsSDJRK3ZDYWZzdlphbDdITkxiZStOMFk5enUrYjlrL3UvckNXRm41OStqWVBzY3hN
VDgrRGZWaEJrZTBzN1R0MFNBKzF2YmwKdksreUhUbnBtTy8zbktYbk9KS2FzbzM3amoyWTkzMEh4
THFuajNHZjRwalAva1ovNyt0WDFIRzFaYWY3NG1yNmZJbjMwRDRZKzF2NgovVFhXUCtoUGZkOWZz
YncrcTBuMmhYUjd4T2NjRXpoQlNEbDh2N0NkK09FWEhFb3NNRjd0Y1pUajk5RDNHOGZpa3VQTFdE
Mjdqc2ZwCjhTWmFUTE9QeG5XTVBXN2F0Mi9mMUs3TGM3RGxBQVlZQjc0dWhMU0M3S2pzc01EUWlm
bVhEdGJTdk5ONHprN0VPamw0cmtYaXhtY0MKQkFJRnJqaWtBM0R1eTlpelozUDR3bWJRdnpqMTZQ
WFhGMEkwdmprTXpsWU96TmFpTGdRVzFJT1UxNldyL0UvQ1RkOThSNloxanZtbQowUzdLRE1lRUZk
T3M0dnJHSGxrMmZNK0hnL2phYkxlKzlURVFqbjJUUGoxSjRvRExJR21TMUxlK1gvN3lsKzBVRHFa
Wk1lRHJLcGNECmJkeDNLR2ZTK3FiMVhFM2Q0L0tjdk9DRUJQV2tUaHdUdUdMRVdTZUNrSzdFY1lC
OHRJdmxZaUNZNXVVNHdYN0tnQ05QWFc2VVNYN0sKeFNMYTVNdE84bnFvRG1ObVE5dUh1cko4REdq
VE9nMTlScjZoT21ISjhyUjlOWDFpckUxcFBkUG5RM1ZLODNVOVgwMy9vUndDRFFaMQplUjhyMlhl
NjZzRjdxK2xEZWYvTlgvZXRxK1Q5c2I1UVVrYk1RMWxqKzF6TUd4K0grakI1OHJibXIyTTVmWTlE
L1lheWh2cHk3S3VUCmJyTXhoNjVqUzEvOVl4MzZQcy9mcnkyN3RzLzNlYTkySCt6ckh6WDdZRzRX
WDdQZCtvNlpNVS82eUlrQnhxTjkzNHQ5RnBReDF2ZlMKOVhROTcrdGprL1pWeWg2cVo5ZTY4L2Vt
MlVmemRYVzlQbmNxdHV2VHl2Zll3UG5Wa2FFaUdTQVFxT1JuYVlhV1djdlArTUxxU3ovOQo2Ym5w
WFgxNUpuMmZlelB5eE5XSkN6MWRLTzNhdCsvY1djZ1NjdzVXWFFQZWttVzdnb1N4NWNiV3gwQ3li
eUNkdnQ5M2tCMWJmL3g4Ck5YVm5XYjRRdVVJVWY2QWlsc2QrUHJTdjhYbGNaMWZ3UVRseG1tY3NN
MzNzY3FOTTB0aEprTFNjc2VkRGRZajE3eXRqYVB0UTE2N2cKZzdLR1B1UHpvVHFsbHF2cEUyTnRZ
djFkYWFoT1hmbmplNnZwUDV6WnBHMmN0V1dhYlY4YTJuZjZsbGxOSDByTktUZC8zYmV1a3ZmSAor
a0pKR1RFUFpjWHRXMXJIb1Q1TXVYazUrZXU0N3I3SG9YNlRsdFhWbDJOYkp0MW1ZdzVkeDVhKytz
YzY5SDJldjcvYXN0ZXF6M2Q1CnIyWWZqTzBhNngrcjJRZGoyZm5qcFB0QzMvRTFsdHRsRVQ4YjYz
c3hYOTlqWHgrYnRLOVMvbEE5KzlhZnZqL05QcHF1cCsvNVZBT1EKdnBWZWlPOVBPbGdkYXVPeFl3
dk4vLzdmL0FIRFRXSEt4ZVp3WnBqb25aK1E1TzkvbE44Y1BiU084L0hadkxicmZGajJyWk96SkV3
TgpZUnJUckNlbWlYQWpNSDhva0tsRm5CSGpqQXZUQm1vUG5MUGVkdXRYTHpCcC8yRnFCUDJOcVF6
OG1rejhRbzgxdVpEMm5WaG5IeFVZCkVwaDJuNTkwSHh5cUs1KzVENDRKYmF6UHB6b0ZhMk5SVHRa
YTdsdmdIZ3VtRG5HeitZNGRrMDNwbVd4dDY1ZDdYdHUxZm9MRGEyTCsKS2dFSWlhc0lUR1dhNWNT
MER1YmFjc21icTZFR0hyTzh0V2F2YnBQMEg0SmJwdmZ4UnpvSlF2SjBvZTA3ZWYxOXJVQXVzQjU5
ZnBKOQpNSzlmL3RwOU1CZlp6WnhYSmdBQUlBQkpSRUZVMks4TlFEYjI5cmYxQ2lpZ2dBSUtLS0NB
QWdxc3E4QjhuSFpmVnpKWHBvQUNDaWlnCmdBSUtLS0NBQXFzVm1DZ0FZZW9ITjVWeTJjK2tnQUlL
S0tDQUFnb29vSUFDQ2t3cVVCeUE4TnY0L0YwT2ZtUDRQLzdqUDlxZklwdDAKWmVaWFFBRUZGRkJB
QVFVVVVFQ0JqUzFROUN0WS9NemJVMDg5MWZ6NHh6OXVmMW1FUCs2VS9oVFphZ2o1UlJ6KzBCYS9p
R05TUUFFRgpGRkJBQVFVVVVFQ0JqU0ZRZEFXRXY2SWMvMGdLTExXL1pNTWZjdm5kNzM3WDhKZHNU
UW9vb0lBQ0NpaWdnQUlLS0xCeEJFYXZnTHp5CnlpdnRUeHNTZ1BBYjYxejVlT0NCQjlvL1pmLzAw
MCszci9tYkJQenNJZS96eDJXNFQ0US9ZTU5mRlNkWWVlR0ZGOW9ySjkvKzlyZmIKUCtUR2IxZVRo
NS9tNUsrUFAvVFFRNzEvVUczamJBcGJxb0FDQ2lpZ2dBSUtLS0RBL0F1TVhnRzUvZmJiRy82UkNC
UUlNZ2hHZnYzcgpYemRYWDMxMTgrQ0REN1ovY1phckdmekJNZEt1WGJ1YVk4ZU9OVys4OFViN3R3
b2VmZlRSTmdCNS92bm4yOC92dmZmZTlpLzkzbnp6CnplMGZqRXIvWW1hYndmOHBvSUFDQ2lpZ2dB
SUtLS0RBWEFxTUJpQmRyWDd6elRlYm8wZVBObnYyN0drLzNyeDVjM1BiYmJjMWh3OGYKYnYvb0dI
L2VuVCtTUmlCeS9mWFh0MWRIcnJ2dXV1YjQ4ZU1yaXN2L1V1MktEMzJoZ0FJS0tLQ0FBZ29vb0lB
Q2N5ZXdxZ0RreUpFagpEVUVHZ1VkTXUzZnZicC9HK3pyeTRJS3JIQXNMQ3pHN2p3b29vSUFDQ2lp
Z2dBSUtLTEFCQmM1RkVCTTBuaWxZM0w5eDh1VEo1YVd1CnVPS0tkcG9WbjVrVVVFQUJCUlJRUUFF
RkZGQkFnUzZCVlFVZ08zZnViTXRpR2xaTS9KRkNnby80V1h6ZlJ3VVVVRUFCQlJSUVFBRUYKRkZB
Z0NoUUZJUEZLQjM4UGhNVE40OXpqd1UzbU1USDFpbnMrdU5lRHhFL3RwbGREV0RhZGdzVVVMbjQ5
aXp3RUwveGRrQ2VlZU9Jego5NG5FOG4xVVFBRUZGRkJBQVFVVVVFQ0JDMTlnTkFEaEw1L3YzNysv
YmVtenp6N2JCZzM4Rk84amp6elMvaUZCZnRtS1FPUzExMTVyCkhuNzQ0WFlhRm45Z2tJQ0VaZm5I
YzI1US8rQ0REOXBIQ3J2aGhoc2FmdUwzOGNjZmIrOGwrZWlqajlxZjdpVy9TUUVGRkZCQUFRVVUK
VUVBQkJlWlRZTk8rZmZ1cWJ0cmdsNjI0NFh6Nzl1MFRDMzM2NmFmdHpleHhRZTRyMmJadFczenBv
d0lLS0tDQUFnb29vSUFDQ3N5Wgp3T2dmSWh4cmI4MWZSV2NhVnBvTVBsSU5ueXVnZ0FJS0tLQ0FB
Z29vTUg4Q28xT3c1cS9KdGtnQkJSUlFRQUVGRkZCQUFRWE9sNEFCCnlQbVNkNzBLS0tDQUFnb29v
SUFDQ214QUFRT1FEYmpSYmJJQ0NpaWdnQUlLS0tDQUF1ZEx3QURrZk1tN1hnVVVVRUFCQlJSUVFB
RUYKTnFDQUFjZ0czT2cyV1FFRkZGQkFBUVVVVUVDQjh5VmdBSEsrNUYydkFnb29vSUFDQ2lpZ2dB
SWJVTUFBWkFOdWRKdXNnQUlLS0tDQQpBZ29vb01ENUVqQUFPVi95cmxjQkJSUlFRQUVGRkZCQWdR
MG9ZQUN5QVRlNlRWWkFBUVVVVUVBQkJSUlE0SHdKR0lDY0wzblhxNEFDCkNpaWdnQUlLS0tEQUJo
UXdBTm1BRzkwbUs2Q0FBZ29vb0lBQ0NpaHd2Z1FNUU02WHZPdFZRQUVGRkZCQUFRVVVVR0FEQ2hp
QWJNQ04KYnBNVlVFQUJCUlJRUUFFRkZEaGZBZ1lnNTB2ZTlTcWdnQUlLS0tDQUFnb29zQUVGREVB
MjRFYTN5UW9vb0lBQ0NpaWdnQUlLbkM4QgpBNUR6SmU5NkZWQkFBUVVVVUVBQkJSVFlnQUlHSUJ0
d285dGtCUlJRUUFFRkZGQkFBUVhPbDRBQnlQbVNkNzBLS0tDQUFnb29vSUFDCkNteEFnYTFqYlg1
cDRhV3hMSDZ1Z0FJS0tLQ0FBZ29vb0lBQ0NyUUNkMjYrYzFEQ0t5Q0RQSDZvZ0FJS0tLQ0FBZ29v
b0lBQ2F5bGcKQUxLV21wYWxnQUlLS0tDQUFnb29vSUFDZ3dJR0lJTThmcWlBQWdvb29JQUNDaWln
Z0FKcktXQUFzcGFhbHFXQUFnb29vSUFDQ2lpZwpnQUtEQWpNVmdKeGRPTnQ4L1A3SHpVZnZmZFFz
bkY1b0svN0pCNThNTm1EYUg1Nzg2T1RvS2tycVhaSm5kRVdGR2JBcnFYZGhjVE9iCjdmVEowODJu
SDM2NlhEK01QM3ozdzk3WHl4OU00VWxlbDBsWGtkZDkwdVUvay85czA2VDdUbTM5UGxPK2J5aWdn
QUlLS0tDQUFxc1UKR1AwVnJMVGMxLzc4V3ZQT3krODBsMTE1V1hQcHprdWJJd2VPdEI5ZmR0Vmx6
VVdYWE5RTy9zNmNPdE04K0tNSG0vZmZmTDk1NDdrMwpsZ2VJbCsrK3ZObStlM3ZENXd3U1B6bitT
WFBqL1RjMk4zenVocmFNNDI4ZmJ5ai82dHV1YnJaZHNhMWR6NGRIUG13dXZ2VGk1cTUvCnZLdjly
SFRkV3k3YWtsYTdyZWVoWnc4MXB6NCsxYjUveFhWWE5NMm1wdm5vMkVmTnBWZGMybHgzOTNYTnpo
dDJybGdtdnZqYnIvN1cKM1BId0hXMTc0M3ZwNDFpOXlWdVNKeTJ6Ni9sTHYzbXBPZkhlaWRadzg5
Yk56ZEhYampZWFgzNXgrL3JVSjZlYUQ5LzVzTG4xSzdjMgpmSGJnRHdlYTZ6OTMvYkp0VjNuejhO
NGJ6NzdSSEgvbmVIUGYvN2l2K2Vqb1I4MkJQeDFvdC9FRFAzemdNNituM2Q2MExwT3VLNi83CnBN
dm4rUW5nRC96eFFNTitjTTkzNzJrL3JxbGZYcjZ2RlZCQUFRVVVVRUNCR29HSkFoQldkTVBuYjJo
dXZPL0dadUhNd25JQXdvRCsKcHZ0dmFrNmVPTm04OEY4dnRQVzU2cGFyR3M3cU1oQWlzVXc3OEc5
Zk5XMUFzZlMwRFVwZWZ1emxadmV0dTV2cjdybXVmWnVBNFBVbgpYMjgrL3VEam1LMTQzY3NMTEQz
WnZYZDNlMFdBZ0loMDh4ZHZiaTdkZFdseitLK0htMFBQSEdvRGhMdS9jM2V6NDVvZFMwc3NQbnp3
CjFnZk5weWMrYmQ1KzZlM20xaS9mdXVJelhoQk1qZFc3Sk05bkN1NTRnOERpL2gvYzMyeTVlREc0
ZXUvZ2UyMTk5MzUxYjV2N3ZkZmYKYXpqTFRWc1piSzVWNG1vS2cveStBRzJTOWF4bFdhejM1Z2R1
YmhaT0xWNHBJd2ltLzdCTlNmbnI5czAxL0YvZWxyUXVrNjVtcmV2SwpDWUx0MTJ4dlBubi8zTlhE
bXZwTjJoN3pLNkNBQWdvb29JQUNRd0lUVGNIYXRHVlRjLzA5MS9lV3h4bDVCb0ZObVA1QlNxOUVi
Tm9VCkxqbUVSSkRDdEprYlAzOWpzMm56NG5zbmpwNW96cHc4MDN6dzlnZkxVNi9JeXhVU3JvQ1FK
bDEzdTFEeXY2MlhKTEhXNG1xYjdWZHYKWDg1QnNKR25kMTkrdDMzcjZLdEgyMkFqLzd5azNpVjU4
bks3WGw5NzE3WEx3VWZYNTd0dTJ0VmVtZUt6Nk5xVmI1TDNDQ0JmZWZ5VgpoamJVcHJVc0s5Wmw4
NWJOemRadDU3WnI3R1B4OC94MWZMLzJzYXN0ZVYwbVhjZWExWFZwMzJ2TFcrcm4xR1hTK3RIRzg1
SE8xM3JQClIxdGRwd0lLS0tDQUFodFY0TnpvclVCZ3p3TjdSbk54cG5Vb0hYMzlhSFA1VlpjM082
N2RzUnpNWExicnNuWVJ6dGcrKzcrZWJhK20KRU1nUXdPejkydDcyczdWWWQxNnZkTEN6YmZ1MkZS
OHpyZW1pU3k5cTM0dFhld2dDMGxSUzc1SThsRWtBOU9xZlhtMnV1ZjJhNXZwNwpQeHZrcGNGU1dv
ZjRuS0FEMStVVXhvOWMzVG55NnBGbXk5WXR6WjNmdXJPNVpQc2w3Y2UwN2ZDTGg5dDdiYmhDYzh1
WGJsa1JqTVV5CjN2NzcyMjI5VG41OHNyMkNSTDR6cDg5MExzdTBuNFBQSEd4T2ZYU3F1ZVhMdDdU
cjVPb1hWN1RZbGwxbGNWVW5wbU9IampVSG5qalEKN0xoNlI3dk5lZjM2VTY4MytISDFpYnEvOWJl
M0d0Ni8rOXQzTjZjL1BkMjhlK0RkNXRnYng1clBQZnE1V014RWozME9USmxqdXQvRgpsMTNjYk51
eHJYbnpyMjgyRE9pWkNuako1WmQ4cGkxTUk2UmZ4N29Rc0wzN3lydHRjTFI1OCtibXJiKy8xZHox
cmJ2YUtYTWw3a3l2CmUvUDVOOXQxM2Z6Z3pXMGR1RGZxMVNkZWJXNzY0azJmdVZKSG83a2lneGNC
TysxaWVpRkJCNG1waDdrVjYyRGJzejB4dmZkNzk3WjUKNllkc1M2WW84djR0RDkzU2JvTVBEbi9R
dkx2LzNlYVNIWmMwWjgrY2Jmc1ZKbHlCdStMNks1cXh6OXQ2RFBTN3Z2WDJXVEtsMDZTQQpBZ29v
b0lBQ0Y2YkF1UkhnbE92UFZDWUdQWEdLVExvNnJrN0VLVDRNbGhpNFB2ZUw1OXI3R3RKOGEvMmMr
cENZQXNNVmhEUnhmd3VECjUxZ3ZwbUhscWFUZUpYa29sNnNzWEIxaTRMc1c2YjFEN3pVN3I5L1pm
Tzc3aTRQejZINzJiSmdXRis0UnVlbSttNXA3dm5OUGV3L0oKUzc5OXFiMENsYStYOWwrMDdhTG15
cHV2YkFlYVhJWHFXNVpwUHd6RXViZUh3VERiOGVyYnIxNjhJaFlLenN0S2d3L1dpeitEZTZhWQpF
WGd5bFl6Z2d3RjFESndJQmlpVFlJdkJOUVB0OUNiMHZQNURyNGNjbUo3MzBmc2ZOY2ZlUE5ZR0Rm
ZCs5OTQyQURuOHd1TDBycnd0Cld5L2V1cUl1RE16eGYvK045OXMydE1GMGFGZWZYVjVQcGk5eVpl
Zk1tVE50OE1IbjNCZUZSVDVOTUM3Nzh1OWVicWM0TWtXU29DSDkKRVlMY2lzQ2JRT2lhTzBLd0c2
NW9jbThXVnkxNWYvOGY5amNNN25tZktaTUVRaVR1K1dJcUh2dk1sWHV1Yk81OCtNNDJRSTlUTE1j
KwpIL0llV20rWFpYclZLN2JmUndVVVVFQUJCUlM0Y0FUV0xRRGhKbW51VStDc2ExZTYvUnUzTjFm
ZGV0WHlSd3hrWC96VmkrM0FmUG5OCk5YckN2U0RjMU0wNkdMQXhFRStuaXpFWVkyRExHWEFHdkNS
ZWM1WTNUeVgxTHNuRFlQRHlxeTl2NjVPdll6V3ZDWnk0RDRBQWdxdE4KOFY0YUFoMEdnNXl0WnpC
SklNRDBOd2FYZllsQklHbHNXUWJIRExZUFBuMnd2U0p3N1IwcnJ4aFJSaXlMNTNuaUJ3ajQ4WUk0
aFkveQpxR2U4VXZYKzRmZmJZSWpsQ0ZRdTNYRnBYa1R4NjZHMkVGQVFERjIyODdKMkVNNlZNQXpw
TDJtS2JjbnJRakJHc01TZ2ZPZU5PNXM5CkQrNXBUaHc1TVpINzlYZGYzd2Jnbng1Zi9KVXY5cDhZ
REtkMTREay82c0FWaFBRZXF6UnZYajhDUks2b3NEK1M2SHNrQXJ1cjkxN2QKQmsyOHhpSCtraFlH
N0ErN2J0elZYbWtqU09HK0w0SkF5aHI3Zk1oN2FMMWRsbXdia3dJS0tLQ0FBZ3BjdUFJVFRjR3Fh
U1pudEJuRQpNWTJrS3pFUXZ1MXJ0elhYM0haTk80Q045eDI4OXVScnpaVzNYRGs0Y08wcWIrZzli
b2huY05pWEdNekZLVThNNURqamV2cVQwKzNOCjZFdzNTVk5KdlV2eU1LRGpUUHMwRXNFVjA4aEl1
TWFwUmJ4bW9IelZucXZhOTNnOWxFcVdaUXJlTXo5L1p2SEtSM0lQd2xDNThUUHEKOGZwZlhtL3ZC
V0l3emNDVzRJUEFqNzVEaXRPSzJoY1RsdDh1cy9TL3NiWnNZZzVTa3RpR0N3dUxoc25iNTU2dXpO
NHc5WW9CZkV4ago2NHY1NGlQOWp1MzA5c3R2dHdFTWdSajl0aXNSUEhLRkpBMmlXNmUwVHNsekFo
SUNEZTd2dWVyUVZlMlV1ZGpjbTc1d1V6dDlDL09QCmozM2NUdEZhc2M2a0hBSmNnckRqYngwL3R6
LzFmUDdKaDU4TTlydWg5ZWFXSytyakN3VVVVRUFCQlJTNDRBVE9qWkRXcWVwTTM0aUoKcy9KYkw5
cmF6alZud01uOGNnWTE5ejU2Ynp2Zi8rQlRCOXNySmljL1BObCtGcGViOWlQVHJ4aHNNb1dHeEZV
RUFoRE96ak9WTEo2QgpmZWVsZDlxenprUDFqbWVtaC9MdzJYcWxlQVdLTTh1VHBwSmxDWFR3WXNv
WFZ6UlczUHcvc2tJR3hydHUyTFY4M3dwQklBUHBJNjhkCmFYL2hpNmxnYTVWSzJySlc2NktjaWRj
WEJ2TFgzSGxOdzdRdnJqVGdtZ1lZYWQyWTdzYS9QT1ZCVlBvNVA5bk0xRForTVkzN1JmaTUKWHJi
Vm15KzgyWmJGTkM2bUF4NS90Ly9LR051R3dJeC9YU245Zkt6OWs2eTNhMTIrcDRBQ0NpaWdnQUlY
amtEM3lHR0s5Yi9pMml1VwpyeTY4L3VmWDJ3RW1nLzJqQnhmdng0aXI1bTl6eExuLzZ6bm51eDNJ
aGNIZkhkKzhvN245bTdjdi9ndlR3MklpNklpcHBONGxlU2lQCkFJZjU5Z3dHcDVrd0paQ0tBMExX
eFpTc2R1clR5SXBMbG1WQTIwNXBDOEVFVTdFbVRidHYyOTBjTzNpc1BmTlBBTU9WTTg3K3QxZEIK
c3A5Sm5yVHNOSDlKVzlMOHRjOVhzejdhVCtEQjM4ZGh2K2xML1BvYzI1TXJSaVdKKzBPNDM0Z2ZP
eURZUC9YcHFYWTZIamVmcy8zNAo5Ym1TeFBwWUwvZFFkYVgwODZIMlQ3cmVyblg1bmdJS0tLQ0FB
Z3BjT0FLckRrRFNtMXo1NWFPdXhDOFZ4UlNuQU1XcEhsemRZRm9HClo3MUpuREZuVUJRVFUyOVlQ
djRhVm55Zng1SjFwL25iWmNJdk9jV1VMaC9maTQvOFlsRTZsNTczNDN4K252TkxRT25ndmFUZUpY
bmUKZVA2TjlnODM3bjk4UDZzWlRBUU0rREQvdml2eHkwYk04NCtKNS9IdlplQkovVmxQKzVQSTRS
NkRnMzg1dVBJWHRPS0M0Wkh0RTIvMAo1cWIyb1dYNTJ5VDhFaGYzQS9DclpWeEpTdjh5ZVZwV1g5
Mlo0c1laZGFZdjhjalVLLzdJWmRkVkl1clN0alBjczBPaWo4WDdSYnBlCnQ1bVcvamZtMEpZVm5H
TmlQV25aZVZzK1U1ZXpDeXVtTHhXdEwyelROR0hBRGVtNGNpOUpYOXA5eSs3Mi9vMjNYbnhyTVVz
b2hrSDkKeVU5T0xrKzlTK3ZIYzM2MWk4U1ZNTFlyMDczaWZuSGkzUlB0Y2dTbHk2WkxWVXV2dERE
MWluMGwvdEliNWZWOVB0VCtzZlV1WkphcwpoM29SbU1XK3lYc21CUlJRUUFFRkZMZ3dCTGJjZi8v
OS96WlUxYU5uVjE2WklDODNBeDk2K3REeWdJVUJCR2RSK1FsVmJpZ2xjZE1wCmcyb0dPeVRPN0hO
RExiKyt3OENCZ1NrM0dUUEE0Z1pkL29qZU82KzgwK1puN2prL0tjcm5lNzYwWjhXOC81SjF0eXRN
L3NkUG92SVQKcm5GUXp0U3Y5RDZJbVBYdHY3M2QxcG5BaDUvbDVjd3lpZWtoRE1ZWWdQS1BPZmZj
ak1zWjNyRjZsN1l0M3VUT3RDTk0raExyNU9kMQpNV0lRanpmM3M3Unovc05DM0ZoTWtIVDYxT25s
djVKT0FNVFVNUWFiL09JUlU4ajRWUzlNdUJHZFgzVktCNUhwdWhsUThoTzYxSTlCCkpQY2FkQzNM
VDlmeUswL2MxTThVTEJMYmt5c1hyQlB2dEN6OFlwM1Q5WEZQQWY3Y3dCN3ZvZUFtZWE2TXhOZmt4
NVZna2VDWG54a20KMGJmb2kwd2xZanVscjJsZnZHbWN2SlRWNThEMnhTYjJhYll4ZllDcGdOeXJ3
OW44dEMwRVhOeXJFZXVDRmR1QXV2RExWV3lmb2ZYUgpscjY2c2h5RGJlNlA2VXRNeldJZC9GeHdP
MjBxMUI4VEFsVWVXVDYxb2w5ekFnQi8raEJ0NFlvajc5UFBLWU0yWEh2bnRlMTBPSDRlCm0xOHBh
L3RWMkRhMGkvMlg2Vm44d0VMY2p1eG5iTHV1ejRmYVA3UmU2cDViNGtEOStBVXUrblJmMyszejhu
MEZGRkJBQVFVVW1LN0EKVlp2Nnh5MnNlZE8rZmZ0V25uYk42dlBTd2t2Wk8ydi9ra0VRWjdsSi9O
SVFBeWNDQUg3MmRaWlRTYjFMOHNRMnRnUFdNRkJmajhRQQpuYi92Y2NsbDRmNlRFV1lHbGVtOUhK
TXNtN2NsTHl2L25OZVVId1BacnRkZHk2ejJ2V20zSmEvWHBPdGpVTThBUGI4cWw1ZmJ2ZzU3Ck1z
RlNHNENGdjlYUnUvK3d4NGR0enNrQmdyTDhIZzRHL1RHb1NMZkZDLy81UW51UEZqL2hUSjYwVDdE
K3NjL0pNOVQrdnZXeVhGY3EKNlV0ZHkvbWVBZ29vb0lBQ0NreFg0TTdOZHc2dVlOMXZRdStxVFR4
anptZWNZYjlRVWttOVMvTEU5bktWWUwwU0EveDRNLzNZT3ZPQgo1aVRMNW1YblplV2Y4em9OUHJw
ZWR5MnoydmVtM1phOFhxWHI0Mm9kZWJtQ3hMMUlSU2tFRmRHM04vaWdvS1dBcysrbTloaDh0Rm1Y
CnJtaW02eWRneVlPVzBzK0gyaisyM25RZFBJOXR6ZC8zdFFJS0tLQ0FBZ3JNdHNCTUJDQ3pUV1R0
RkZoZkFYN29nSitmWm1yWDN2Q1gKeG1jaWhhc21UTlZpR2xwbkd2dThjeUhmVkVBQkJSUlFRSUdO
S0dBQXNoRzN1bTJlYVlIMkhxQndsWUw3WkFoQ1ppRWRlZlZJKzdQQQoxSVg3aHZMN2xNWStuNFUy
V0FjRkZGQkFBUVVVbUEwQkE1RFoyQTdXUW9GbEFYNWhLLzUxOHVVM3ovTVRmZzU1S0kxOVByU3Nu
eW1nCmdBSUtLS0RBeGhKWTljL3diaXdtVzZ1QUFnb29vSUFDQ2lpZ2dBSnJJV0FBc2hhS2xxR0FB
Z29vb0lBQ0NpaWdnQUpGQXFOVHNNWisKUnF0b0xXWlNRQUVGRkZCQUFRVVVVRUFCQllLQVYwRHNC
Z29vb0lBQ0NpaWdnQUlLS0xCdUFnWWc2MGJ0aWhSUVFBRUZGRkJBQVFVVQpVTUFBeEQ2Z2dBSUtL
S0NBQWdvb29JQUM2eVpnQUxKdTFLNUlBUVVVVUVBQkJSUlFRQUVGREVEc0F3b29vSUFDQ2lpZ2dB
SUtLTEJ1CkFnWWc2MGJ0aWhSUVFBRUZGRkJBQVFVVVVNQUF4RDZnZ0FJS0tLQ0FBZ29vb0lBQzZ5
WmdBTEp1MUs1SUFRVVVVRUFCQlJSUVFBRUYKREVEc0F3b29vSUFDQ2lpZ2dBSUtLTEJ1QWdZZzYw
YnRpaFJRUUFFRkZGQkFBUVVVVU1BQXhENmdnQUlLS0tDQUFnb29vSUFDNnlaZwpBTEp1MUs1SUFR
VVVVRUFCQlJSUVFBRUZERURzQXdvb29JQUNDaWlnZ0FJS0tMQnVBZ1lnNjBidGloUlFRQUVGRkZC
QUFRVVVVTUFBCnhENmdnQUlLS0tDQUFnb29vSUFDNnlhd2RYUk52L3pwYUJZektLQ0FBZ29vb0lB
Q0NpaWdnQUt0d0Qvdkc0VHdDc2dnang4cW9JQUMKQ2lpZ2dBSUtLS0RBV2dvWWdLeWxwbVVwb0lB
Q0NpaWdnQUlLS0tEQW9JQUJ5Q0NQSHlxZ2dBSUtLS0NBQWdvb29NQmFDaGlBcktXbQpaU21nZ0FJ
S0tLQ0FBZ29vb01DZ3dFd0ZJR2ZPTnMyeE0wMXo5SFRUbkFyUFNSK0UxK2N6ZmJSd1B0ZCs0YS83
NCtEMzFxbW0rWFJwCmV3NjFpRzIrRWJ5eE9KNzBhL3I5dTZIUHg1Uy9qdS9IeDQzaXRGSGFHYmZy
V2p6bWZTdVdPY2wrR0pjNVg0OTVHL0w5SVgrZDEzTXQKKzgzWXV2SjE4M29TNjVxNmppMmJPM2JW
ZGVnOXZ2clc2L3QzckMxRDlaelZ6OWFySDh4cSs2MlhBbU1DNDcrQ2xaVHdwNCthNXFWUAptK2JL
TFUyeksvemJmM0x4dzZ2QzgyMGhsSGxuS1hENC8zWTF6UnRoMFBuc3gwM3o0ZElBZm5mSWMzVlky
OGt3MkRvUzhuMFEzdi9DCnRxYjUvS1dMWlRCSXBmemJMMm1hSzBMZWw4TnpCbVdYaFhLL3ZXUHhz
OUoxWDdRcHFYUjQrbXFvWjE2WDNVdDFlVHVzZzBIdk55OXYKbWowWHIxd3VWTFg1djhlYjVsdmJt
MlpucUZPZVhndmxQaGZhU0Z0SWw0ZTZmaTYwNmVLdy9tZkMrOGVYM21mWjIwUFpkNGZQVnBNTwpo
Zlg4TmJqalFUbGZEWFh0U2s4RXM1ZER2aXRDUGU0UHJubDd1cGFaNW50Lys2UnAyQlJzODhkT05N
Mi83bXlhTGRtMmlldC9QYlR4CkR5RVBmckZQeE0vbTdaRysrRTdvN3o4SUhnVGJmd3pialMrckg0
WDlKbitkdC8yVnNIM1pUNzRZdHU4OXEreFBlWm16K0hxanRIT3QKN2RPK0ZjdWVaRCtNeTV6UHg3
UU4rZjZRdjg3cnVaYjlabXhkK2JwNVBZbDFUVjFManBlcFkxZGRoOTU3THh5WC9oQ09NM3lYZmk5
OAovMDR6bGJSbG11dWZSdG1UOUlONWJQODBUQzF6L2dUQ1VMVThNU0MvUHd4Ni92bUtwbm5vc25Q
TFhYOVIwendTQnVtOGYwazRZSkh2CjFqQlEvbnd5UUdKQS9HQlk1bXRoOFB3dlllQjFad2cwWW1L
QStyc3crTHdobEhOdldPYkc4TWdnKzdyd3VEU0diOHNzWFhjc056NTIKMWVWTG9TNWZEK3Y0ZjBK
ZHJ1OEp3d2lLQ0tEK0hnYlNYZW1XMEViYUZSTjF2eU8waTRIL2ZjbjdPS3cyK0tEc20wSjU5NFJ5
R2JzZgpDQVAxVHlKS1hIRjR4UEROVUYvU2JVdDFXSHkxdXYrZkR1VVJSSzQyY1VicnFURFF2ak8w
SFl0SHc1ZFlIbnlrNjhDTVlIT3RVbHAyCmJabHJXUloxZVNCNGZHZnBTLzJxMFBmMmhyYkhsTCtP
NzhkSEFuUUMzSGxQYTlIT3RkNXVzMmlldHpIdFc5UzNaRDhzYlZlK3J0TGwKSnMyWHRpSGZIL0xY
ZWRscjBXOWltV1ByaXZuaVk1ZDFPQXoySGtkcjZscHl2RXdkWXgxTEg2OE14NlZyd3IvVkhtckcr
a3I2ZVVsYgpTdXROdnJUc1NaWmJxN3hkL1dBOXYvdldxaDJXbzhDMEJTWWE4bkVSWU9pczYvWlFX
anFZU3E5RXhBUFppVEI0WnZySmZXRmd1bm5wClRjNDBNWUIrS3p5eTg4YkU0RDRPU2lkZGR5d2pQ
bmJWaFNzS0hLd1lJTWY2eGZ3OGNqV0J4S0NmK25XbHJjbUM2VHJTNXdSbHRZbnkKYmw0S3lMZ1Ns
S2Y5NFQwQ0xWSmFwOFYzeHYrZk5vOXBCd1NFbkFWYmJYby9iR1BLakUzZmtWMUI2bHJIcHBoNXRT
dGRXcTZyN05VVwp1WlpseFRxd2ZiaGlHQlBOVHB1ZXY0NzU0dVBZNXpIZkpJL3A5cDlrdVdubXJX
bm5KTnR0RnR2ZWNZN2hNOVJkYmN6NzF0QitXTEtPCnVOS3VkY1hQMXRvdmIwUGVEL0xYc1I3eGNl
enptSy9rY1pLeWNtdSt1OGFPbzVPVW45ZDM3SGlaTytiTDk3Mk8yN08wYm5rL0d1b3IKckxQcjg3
RzI5TlUxZjcrcjdEelAwT3ZZOXFFOFk1L2wvV0E5di92eXVnMjFKOTl1NmJKRHk2WDVmSzVBalVE
UHVmL3VJcmxxTUphNAp5akdVbUxiRWxDMnVibkRGZ01SMExoSTc3bis4SDZabWhZQmc3OUtaWHE1
U2tOWmkzWXNsbmZ2L0MrSEt4cGREZlprYWxpZW14RndhCnZrQTRDRE5kLzBBWTROZGN4Y2pMVDE4
ZkRsY2FtRDdGMVJPbUlQVWw2a2tBUndCQ3ZuaFdoWU1GVno4SXBHaFRtZ2pvbmc1WElpRG0KYWc1
dDRzd1lYMDRrcHFlUmgwRHNZSGorL1hBVjYrK2hmSzcrY0tXRjlYRzFLK1pmWEdweG1iNXltVnJB
WldYcTllZlFMdGI5UU5Zdgp1dFpCMlN4RHVYZ1RkRDBTcmhRUTJKTFlKbjhON2VNK0lRTEN2bTNY
VlRadDdGcVc0SmYxTVEzdkswdnRaT3JCdldGYjBBZTd5a290Ck1HTUtGV2NMdWJySGRMbS9oUEtZ
cHZpVjhKcTZ2eGpxZkRCNGZpZGNKV1JlTm0wN0ZGNy9VN0JlYldKN1BSbld5L1pqbTdLZnhQMm8K
MUlsMVV3NTlqNnNxelBmbWtYTG9hOWVHZlhTby85QkhDTklaYVBFbFM5K2pXekZsY3RKdDF1ZlEx
MDc2RjMyTC9ZRDlrdU1LMHg2dgpDL1hHZld5N3NiNnV2cy83UTIzbTVBbHREbXpOdFdGZHp5NjFt
ZU5UZU5rOEgxNXpZb01ydlBFcTZDVGJnMlBCZTJFZE9OSzM2T09jCmpXYmFLdnZWSmNHYS9lbHY0
VGtuSE5MOUZBdGNZdC9xMncvNzFoR0tiZnNEYmFBZnNHK3dic3J0OG1ROStiR0RNdEowb2U4ZmFW
dDQKM3JjdHU2elpWdW4yNlRxT1VtWmZIeDlhSDUrUjZJZGR4MHVPWitseHBtUmZaVnMrRmZZcGpp
ZWZoT2ZId3ZhUDN6SHR5ckwvOWZXagpycjZTSGpPN1BxZm92cmJ3V1o4N242V3BxK3hZTHZ0Ti9o
M0k5eVluNzdhSER4ZENSazQyaHVhM016Q1lrZEdWaG80UFhmMWdQYi83ClN0clR0OTFvNjlqM1Fl
bDI2SEx6UFFWeUFmYTFkVWtNWlBuQ1p4Q1lKODRHTSsySzlIRTRDREFBL0Y4aEVHR2UvRFFTQnlF
RzhYSEsKVXRjNk9CQVJJTVdERUFjMkRtVFRTTGpFd0dLcy9MdkN3S1lkeElabFlub3pQS2VlREZy
U1JIMS9IZTVoWVRCSllQak5NQURtcXNadgpQMXpNRlJqYXdUR0RKZHBLUHBiaE9kdUVLeTRNcXRN
dkQ1WWNLNWVwQmZ3ajhhV2JINEI1djI4ZEROUnZDUFdJZy9Qbnc2Q1NSRjI1ClI0VGdsT2xMMVBV
M29SMVk1Q2t2bXl0dGZjc3l6WUlwY3R5dnc4R1hBK3dkWVdCSDhFSEt5OG90Ymc1NUdXd1RMREZv
WS9vYkEzaSsKeE9NZ2ZFZDRUcGw4bWJNOGZadytXSk1ZY0xQTkh3N2JsSHBqUVpIODYydHIxL3Jh
UVcyb0U5dUpmNjhIZjd6NFFvWjJxUC9zQ25ZRQpnMHpWNC80bnB0bUZSWnZWYkxPdXV2RmVYenVa
dHNHNmFEdUo2WkI0eHl1Vlk5c05Kd0xEdk8rUHRSa2I3aHRqOEUzNmZtZ3oyL2YzCm9XOXlCWmVw
byt5akJDYjB6VW0yQjJkdktZZjc1YWcvMi9lNXBlTWxiV1hmNEpoRi95TDRJUEJLOTFNR3ZHbmY2
dG9QaDlaQmUraEgKTjRYMXNuNENEd2EzQkNLNUp3NWRmcFNScGd0OS8wamJNclF0dTZ4enMvellF
Y3Z1NitORDY0dkw5aDB2OCtQTTJMNUtlYjhMMjU0VApnd1RPSEF2NFR1cExRLzFvck4xOW4vZTFw
Y1FoMWpNdm0yUHUwREdNK3pQWm45a0dIRk80MzVOOTZvOWhQK3hLWThlSHJuNlFsNVBYCk1mYUx0
V2ovV0h1R3RodjFIUG8rbUdRNzVHMzJ0UUpkQW1GWFc1L0VEZXJzNUhHQWtLLzFIOElYZDV4Q3hH
ZmMyUDEvd3dHUnN6aHIKblJnd2NiYVdnMGxYNG4zT2RISm1sNXUrU1F3WU9YTXdqY1NWRHdiVVRF
c2JTN2VFdk51V3Z2eGovVjhKcmd4ODgwUmdjalMwZ3dNcgppWTFOdnNNYnVmRDhBQUFnQUVsRVFW
UmhXeERjY1NhSEFTUm5UVW5VSTViSjY3N0w0bVBsc214cHl0ZkJvT3VhOEk4QlBHZmc0NjlGCnZi
b1VBREx3b3g4RnJyWXZEUVdwc2V5eFpWa1BVd2NaYkRFQTU3NlZQTVd5OHZkNTNacUc1VGhBa3pn
elRqMDUySlB3WmlCR0lramgKUndKcUV3RVM5MTV4NVlVYjBqbmpTZjhjYTJ1K1hnTHRPRVdRSDMr
STkzRFI5OGUyTTNrSlBCZ1FVeGUyR1FPWStPTUxrOVlscnh1dgorOXJKWi9uWjJmdzFlZnEyVzEv
ZkgydHpiQzlXM0p2Rk9tOE1qL2d6c0dENzNyWFVmMDZFZldzU0F3YjFiUUJMNXc2Sm9EYitDaEdC
Ck1vRU9Bd3pXeXdBeEJyaXhqU1Y5YTJnZDlCL1d4dzkwa0xqNjhYWFdFOVlaVTF4WG4xL01sejVl
eVB0SDJvNUp0bVc2WERSTDMwdWYKOS9YeGt2WDFIUy96dmpDMnIvTDl6SEdLL1pnVXV0N3l5YmYy
amV4L1EvMG9aaDFyZC81NVgxdEtIT0k2NDJNc2UyeC81ampIUDRKdQorajNmdzV6a0lwRG51ekZQ
WStYbCtZZGV4enJHUEd2Ui9ySDJqRzIzb2UrRDFXeUgyRFlmRmVnU1dQcXE2ZnBvYmQ5amdNZmdw
Ty9NCkFtY0J2aEdDRU00VWMvUHlrYkR6TTM3N2Mzak9vRHNjSTlZczNSM0tZOUQ1aXcrNmkrU0xt
SUVkNllaUW4yM2hpZ3lYcExrS3drRmkKclJNSFBjNGVseVFjT0d2TEdWYk9oaklJSVNEaEN5ZFBH
UExGazlyRndRWFRQQmpvczEyWXAzeExHSWgrT2ZpbmVmUHk0dXVTY21QZQpTUi9UWmpBQUM5K0pi
U0tRNHVES0lJeTBJOVM3OU9iRmttV1psdmJ6MEI5dURZT3R0QTZMYXh2K1AyZmZtUTcxZHRnZWZJ
RXpsWkRMCitmUWorandwbnVYaWVmN0Z3M3VUcHJTOHVFMC9ET3RsOEQrSkUvMkR3VWRNdkk1OXYy
UTc1MWJzTnJTZFZPSyttTFAvLzMzdGJDcjMKUTlyWjFmZEwycHpYTmorSXhqcHpzbVVTQXl3Skpy
bEsrWEw0eHhTWWVJV0hkUkxzZE8zbmFYM0crdGJRT3VnSHNTL0ZNaGtjZDZVKwp2NjY4Ri9MK2ti
Wm5rbTJaTGpmMlBQWVg4a1gvMG4yWjdSbFRlcnprdmJ3dnBIbjVQTjFYT1pIRGlSSEtpQ210VjN3
dlBnNzFvNWhuCjBzZGsxVzA5UW5kc1U0Mzdhdlpuam45OHpUQnRqWk1yYVZwTmVlbnlROCtuMFg3
V2w3ZG42Qmd6OUgxUXN4MkcydTFuRzFjZy8rNmMKdWtROEc4K0tHS2h4d0dQZVBBTTM1cEV6S0g0
MC9PTm43SmhMejVrMnppVG1OM0xWVnBTZGZVL1BJSWFyTHB6TmpyOEN4U1haVDBJZApHUEJ6SlNT
ZWVheXBBL05PR1p3eVdKdzBjYVdDZWRwTWdlQk1iRHpqbXBmRE9KREFpWUZRSExpUW43YnpHWWtw
VnRqeWs0M3ZoUUg0Cm8wdS9aTGI0YWZmL1M4cnRYbkwxNzlJUFdDOW5naWROSmN1R3pkc0dhMXda
dTQyZ2M0THRnaTFUQ0RsN3hKYzJBU1dEeFhqRmo2bHMKMDB6MElWaW9SMGxiMDdvd3pZYWZTT2JM
bHJOamxFWDlTYlhiZWRLNkxLNjEvLzlwTy90emxYL1MxZmRYMDJZR2V1Ry96alNwQWRQWApQZ3FW
NE40UDdqVjVsNDY1eHFsdkhVd1o0OFJFYWVyeVl3Q1Rwd3Q1LzBqYk11bTJUSmN0Zlo3MjhmVllY
NndYWi96NUYvNWIwWmM3Ck5tZGNwSjFxT2UyK3lzcHFIR2pQMkhmZ2NvT1dubkRzNWw5WEFMYWE4
dkx5SjMxZDAzN1dsYmVuYi84bjc5RDNRVzA5S04ra1FDb3cKd1RBclhXejF6N255UUpCQmFtOVFE
anM2Zy8wNERZajNPZWp4YTF0eG9EL0pZSkRsU3hOVEpwZzJraWFtVWpDZ1lHNTkvTWYwc0poZQpD
Z1BVMnNUVUhBYTZzVjNjN00zZkV4bjYxU2tPZkRpUldJNnppc3hkNVV3WjB6SzZVbnlmT2R3eGNZ
OERaZkVaYldXZUx3Y2Q1ckl6CkFPRXk2MWdhSzNkcytkVjhUbDhnQU9RZ0dCTWVNVWlNNzNVOWxp
eExBUGJkWU1CZ2lhbFlreWFtbVhERExmY1c4Wnl6NjB6RGFxK20KVFRrQVlSdXlpUW5PU3RxYXR1
M3FVRGV1cU5FdnVITEJUZjh4MVc3blNlc1MxOXYzbUxZejVrbTZRM3lyNkxHdjc5ZTJPVi81SkFi
cwpwOCtFNHdKVFFEZ0dUaU1OcllPNjRwSk9QV0VmNDZiNlBQWDU1Zm5pNnd0MS80ajE1M0dTYlpr
dU44bnp0SSt2eC9waTNaaGF5TEdWCms0SWxhYWdmbFN3L1NaNGFoOVhzejB4RHhJSWZ5OG5UYXNy
THk1ajBkVTM3V1ZmYW5ySHROdlI5VUZ1UFNkdHQvdmtYQ0llZDFTVysKZ0dKS244ZjNlRXh2RUk3
SE5WWjROdXpjZndsVFZwamZIOCtZTVNCUGI4eGxrTTZaZXdaeTZXVmh5azNYbHo3bnM3NlUxaVUr
NTh4QQova1hQMy96Z2wzVFN4RldEZU9EaGZvdDBFUHhwNG5BeWVaNytyWTdZZHNwa1dXNDBaZDBS
bitsVS9PTk1kRitpem1tWlRDTWpjVFVrCnBqaGRJOWFKTSs5OHNhU0RkSUljTGl0ejlZVzZjSmFl
eEh4dnBwZHhCbzdFZGlHNENWbmF3V243NXRML3hzb2xXN3pYSjdWS3krQjUKdmc3cW4rYm5kV3dU
VTBINDdMRndYeEJmMHZRZCtsRFhsMFJlTmxmWGhwWWwrS1VjMnY1Z0dQenhCemJ6YVVsOUZyRk5y
SU16WnJTSgova3FnelUzQnpKOFBMMWNrNmtML0R2KzFpZjZSOXBIODlWSzJGUTl4bWhOdkV1Uncv
eFQ5ZEZJbkRBbTY2QThFTUdsZFM3WXpkWTN0Cm9DNmhLc3VCOGxoZDZOUHR6ZHNzMUpQNjJrbDJ0
aGxCT0o1OHlkSW5PSXNiVTk2LzR2czhza3hYM3k5cE03czV4N0NZMkphOHh5TXAKMXBtWFl3YnRB
a3YvaThleWQ0TUgvWjc5bHNkMmZaUWIvc1g5SVM2WHR6SHZXL2wrT0xRT1Rtb0UwdWJ4Y0J5aS96
TXQ1NG53UEI3Nwowbld4UDNUNXhYcmxqeGZxL2tILzVoOXBiRnZtMWl5VG1oSGtkNlhZWC9oc2tu
Mlp2c0Qyam9uWGFmL0krd0x0U0xLdjJGZlo5aHo2CnVhcE9vcXBjRFdOL1NzdHNQd3ovRytwSHJH
T3MzZm5uUTIwWmM0OTFpbzlwMlZ6Tkhmb09qTXVrMjRadHdOOEc0enN4VHlYSGg2NSsKa0plVDFw
RjFyMlg3V1ZkZmU4YTIyOUQzd2RoMm9BMzhvbUs4YnpOdnM2OFZ5QVcyM0gvLy9mK1d2N25pOWN2
UHJYakpDODVFYzVZNApkbVlHaEF5TzI3bUdTeU1ZcGpFeFRTZ2VJTjhQWDJqY1dNNnZZUEdYbkps
YXdKVVFCazc4eENRN0xWTU95TThaT0taZlVSNDNXekpZCmo2bGszVEZ2ZlB4TVhVTDVySS8xSjBX
M0IxOStkWWFCRWRIKzVYd2JoOFFsU3dZRG9mcnRQNzZZdVJHVU05emtqd2VjOTBNR3lzT0QKZ0NK
dk94NWM5U0VmQTc1NFl6SmY1dHdBU0h2NUlzZ1Q5V2M5ek1Ha1Nzd1Q1c29OQWR1OVMyZExtVUpE
K1d3VC92RTV2M3pDZXZoUwpvWTRoUy90TFpQeFNEd2RBMnZsa2FCdStITEQ0c3VHWGRXZ0RaZkJU
bjl4VHdFMjI2ZVZvcHVvTWxjc1pVN1l6NVRFb1k0b1hnOXc4CnBlc0kyZG9wVEpqeHBVRjlLQU5M
QXFiNFJjSVZoaGZEUHdZL1hDWHIrcEpnUFduWkhEaVozOXkxTEc3ODZoby9BQkN2U05FUCtSSmkK
blFRbGFWbTVSV3dUeldNZllEb2NiZVUxNXB6NVRkdE9YMmQ3TUhVQlV3YXkvSlY3MXNFMllUQ1N2
cWJ0ZUtlSkF6MUJFbFlNRkZtVwovWVI4cklzdjNLNjJwbVhFNTdTVHZvb3BKd0V3cDE4eFlLUmZE
RzFuN25taGo5QnVyQWg4S1lOdFJoOGxvQm1xQzE5VWZ3cjlqN091CmFTQWQ2emJVVHZMUVZ1N0xv
cTJCb3JrMFdHRkMzeWZ3RzlwdWZYMS9yTTMwYmRwSTMrYW5sdG5RSEIvaXlSUDZJOU5IQ1l6bysw
ek4KWXh1V2JBLzZHc2MzOGxJZXY2YkZ0RDU4S0l0ZnFNRzIzYmRaZDBocEczbWZaVmYwcmFXNnh2
MlF1dlN0Zy8yRWJjYXY4bEVPYmVEZQpxSGdUZXJvdXRqZmZBVjNIanNXYXJmeC9ZTHJnOWcvMlZi
WTE3V2JmNU1jbCtGN28ycFo5eDd6VXJPdllNZFRIaC9abGpuL3haQmpiCklqOWVzaCtreHhuV3c3
N1N0Ni9TYndrME9mYlFQbzRySEo4NEh2SElkMG1haHZvcTMydlVwKy83ZzNKU2w3Q0txUjM3K1o3
bUJ2TysKNzBEcXd2R2U0d0g3Vmh0NGg3Yi9RNWdCUWQvTzA0WHczVGZVbnJIdHh2ZGgzL2NCMzQ5
RHgzT09XWHlYY2x6cysxN09QWDA5NXdKMwozRC9Zd0UzNzl1MWovKzlQdi94cC8yZHI5QWtISzg0
V3M3OHpLQWt2MjV1TnV3NEFhN1RLbVN1R2d4OEhoNDVqM3ByVUZWZW1sdkVGCkdoTWJudlV4VU9i
dE5NZ2dEd2Rsdm5pSFVsZTVRL256ejByV2tTNUQzK0RMQzZ1a0tXbVc1ZWQ1MlpNc3UxekkwcE84
clB4elhqUEkKUy90cy9ycHJtWnIzR0V4YzNPTlEybFlHejl5WEZicEhleGFPdnNBVklVNE1FSVRF
VkxPZGgrckMraGl3ODBkSCs5SlFPekVPL3kwTwpsc0pqM2lmNnRodkxEUFY5NmxMVFpwWlAwNUJC
bW8vbkRCYmp2c2h5ZVp2eS9IMXR6UE9scjRmV2dRM0JaQXpJMCtYaXVrcjgwdVY0Cm51OFArZXM4
Ziszcm9YNHp5ZmJJNnpIcHN0RXNMeWQ5UGEyNnB1c29lYzUyWlova3VGK3lmWWI2MFZpN3h6N1A2
enVKZTFmWmZmdnoKTDhPOWo1ejhZK29qeDhHeDc3eFlyNzd5NHVkamoxMTFIRnFtdFAwbDdlbmJi
aVhmQjBQMW9COTNIVGVHMnVWbmN5end6L3NHRzVlZAoxeGpNTzdVUE9YTVhFOU5JTm1MaXpNSTBV
OWROL0RHMlNNL1FwM1VvT1JCM2xadVdNZmE4WkIxcEdUQ2xRVlQ2V2Y0OEwzdVNaY2ZLCnlqL25k
UnA4ZEwzdVdxYm12YUVEZlVsYk9WUEczNjc0ZkRiNHAxL2svYkZtT3cvVmhmdG00cFhBUG91aGRx
Ym1yQ2RQZVIrSW40LzEKZmZMVnREbXVKejRPR2NRODhURUdIN3p1YWxQTUZ4LzcyaGcvNzNvY1dn
YzJmZVp4WFNWKytYclRiY1ZuK2VzOGYrM3J2alpRN2lUYgpJNi9IcE10R3M3eWM5UFcwNnBxdW8r
UTUyelhXdDJUN0RQV2pXRTdmZXNjK3o1ZWJ4TDJyN0xIOW1iWk1NaUFhS3krdmYvNjZxNDU1Cm52
VDFKTzFudWFIMmRHMjMwdStEb1hvTTllTzBMVDVYQUlGSjlqZkZGRkJnamdTWUpzV1VRUDR3SlZO
dk9DdkdtVyttRGRWK3VaWXkKRVh6MEJjQ2xaWmhQQVFVVVdJMEFWM3lZZ1JHblVLNm1qRmxhcHFZ
OXMvQjlNRXVXMW1YNkFnWWcwemQyRFFyTXBBRDNBL3kvdXhadgpOdWFuS3JuQmNyMENqd2hpOEJF
bGZGUkFnZlVXNFA1SzdyVWljZTlUK3NlUUY5KzlzUDVmMDU1WitENjRzTFN0YmEyQUFVaXRvTXNy
CmNBRUxFQUJ3bzZaSkFRVVUyR2dDL0VqSVBLWGE5dmg5TUUrOVlmYmJ3blEra3dJS0tLQ0FBZ29v
b0lBQ0NpaXdMZ0lHSU92QzdFb1UKVUVBQkJSUlFRQUVGRkZBQWdmRXBXQ00vb3lXakFnb29vSUFD
Q2lpZ2dBSUtLRkFxNEJXUVVpbnpLYUNBQWdvb29JQUNDaWlnUUxXQQpBVWcxb1FVb29JQUNDaWln
Z0FJS0tLQkFxWUFCU0ttVStSUlFRQUVGRkZCQUFRVVVVS0Jhd0FDa210QUNGRkJBQVFVVVVFQUJC
UlJRCm9GVEFBS1JVeW53S0tLQ0FBZ29vb0lBQ0NpaFFMV0FBVWsxb0FRb29vSUFDQ2lpZ2dBSUtL
RkFxWUFCU0ttVStCUlJRUUFFRkZGQkEKQVFVVXFCWXdBS2ttdEFBRkZGQkFBUVVVVUVBQkJSUW9G
VEFBS1pVeW53SUtLS0NBQWdvb29JQUNDbFFMR0lCVUUxcUFBZ29vb0lBQwpDaWlnZ0FJS2xBb1ln
SlJLbVU4QkJSUlFRQUVGRkZCQUFRV3FCUXhBcWdrdFFBRUZGRkJBQVFVVVVFQUJCVW9GREVCS3Bj
eW5nQUlLCktLQ0FBZ29vb0lBQzFRSUdJTldFRnFDQUFnb29vSUFDQ2lpZ2dBS2xBZ1lncFZMbVUw
QUJCUlJRUUFFRkZGQkFnV3FCcldNbC9QU24KWXpuOFhBRUYxbHBnMzc2MUx0SHlGRkJBQVFVVVVF
Q0IyUkFZRFVDb3BvT2gyZGhZMW1KakNCajBiNHp0YkNzVlVFQUJCUlRZcUFKTwp3ZHFvVzk1Mks2
Q0FBZ29vb0lBQ0NpaHdIZ1FNUU00RHVxdFVRQUVGRkZCQUFRVVVVR0NqQ2hpQWJOUXRiN3NWVUVB
QkJSUlFRQUVGCkZEZ1BBa1gzZ0pUVzY5Ly8vZDlMczVwUGdRMG44Sk9mL0dURHRka0dLNkNBQWdv
b29JQUN1WUJYUUhJUlh5dWdnQUlLS0tDQUFnb28Kb01EVUJBeEFwa1pyd1Fvb29JQUNDaWlnZ0FJ
S0tKQUxHSURrSXI1V1FBRUZGRkJBQVFVVVVFQ0JxUWtZZ0V5TjFvSVZVRUFCQlJSUQpRQUVGRkZB
Z0Z6QUF5VVY4cllBQ0NpaWdnQUlLS0tDQUFsTVRNQUNaR3EwRks2Q0FBZ29vb0lBQ0NpaWdRQzVn
QUpLTCtGb0JCUlJRClFBRUZGRkJBQVFXbUptQUFNalZhQzFaQUFRVVVVRUFCQlJSUVFJRmN3QUFr
Ri9HMUFnb29vSUFDQ2lpZ2dBSUtURTNBQUdScXRCYXMKZ0FJS0tLQ0FBZ29vb0lBQ3VZQUJTQzdp
YXdVVVVFQUJCUlJRUUFFRkZKaWFnQUhJMUdndFdBRUZGRkJBQVFVVVVFQUJCWElCQTVCYwp4TmNL
S0tDQUFnb29vSUFDQ2lnd05RRURrS25SV3JBQ0NpaWdnQUlLS0tDQUFncmtBZ1lndVlpdkZWQkFB
UVVVVUVBQkJSUlFZR29DCkJpQlRvN1ZnQlJSUVFBRUZGRkJBQVFVVXlBVU1RSElSWHl1Z2dBSUtL
S0NBQWdvb29NRFVCQXhBcGtacndRb29vSUFDQ2lpZ2dBSUsKS0pBTEdJRGtJcjVXUUFFRkZGQkFB
UVVVVUVDQnFRa1lnRXlOMW9JVlVFQUJCUlJRUUFFRkZGQWdGekFBeVVWOHJZQUNDaWlnZ0FJSwpL
S0NBQWxNVE1BQ1pHcTBGSzZDQUFnb29vSUFDQ2lpZ1FDNWdBSktMK0ZvQkJSUlFRQUVGRkZCQUFR
V21KbUFBTWpWYUMxWkFBUVVVClVFQUJCUlJRUUlGY3dBQWtGL0cxQWdvb29JQUNDaWlnZ0FJS1RF
M0FBR1JxdEJhc2dBSUtLS0NBQWdvb29JQUN1WUFCU0M3aWF3VVUKVUVBQkJSUlFRQUVGRkppYWdB
SEkxR2d0V0FFRkZGQkFBUVVVVUVBQkJYSUJBNUJjeE5jS0tLQ0FBZ29vb0lBQ0NpZ3dOUUVEa0tu
UgpXckFDQ2lpZ2dBSUtLS0NBQWdya0FnWWd1WWl2RlZCQUFRVVVVRUFCQlJSUVlHb0NCaUJUbzdW
Z0JSUlFRQUVGRkZCQUFRVVV5QVVNClFISVJYeXVnZ0FJS0tLQ0FBZ29vb01EVUJBeEFwa1pyd1Fv
b29JQUNDaWlnZ0FJS0tKQUxHSURrSXI1V1FBRUZGRkJBQVFVVVVFQ0IKcVFrWWdFeU4xb0lWVUVB
QkJSUlFRQUVGRkZBZ0Z6QUF5VVY4cllBQ0NpaWdnQUlLS0tDQUFsTVRNQUNaR3EwRks2Q0FBZ29v
b0lBQwpDaWlnUUM1Z0FKS0wrRm9CQlJSUVFBRUZGRkJBQVFXbUptQUFNalZhQzFaQUFRVVVVRUFC
QlJSUVFJRmN3QUFrRi9HMUFnb29vSUFDCkNpaWdnQUlLVEUzQUFHUnF0QmFzZ0FJS0tLQ0FBZ29v
b0lBQ3VZQUJTQzdpYXdVVVVFQUJCUlJRUUFFRkZKaWFnQUhJMUdndFdBRUYKRkZCQUFRVVVVRUFC
QlhJQkE1QmN4TmNLS0tDQUFnb29vSUFDQ2lnd05RRURrS25SV3JBQ0NpaWdnQUlLS0tDQUFncmtB
bHZ6TjJwZQovK1FuUDZsWjNHVVZVRUFCQlJSUVFBRUZGRkJnemdXOEFqTG5HOWptS2FDQUFnb29v
SUFDQ2lnd1N3SUdJTE8wTmF5TEFnb29vSUFDCkNpaWdnQUp6TG1BQU11Y2IyT1lwb0lBQ0NpaWdn
QUlLS0RCTEFnWWdzN1ExcklzQ0NpaWdnQUlLS0tDQUFuTXVZQUF5NXh2WTVpbWcKZ0FJS0tLQ0FB
Z29vTUVzQ0JpQ3p0RFdzaXdJS0tLQ0FBZ29vb0lBQ2N5NWdBRExuRzlqbUthQ0FBZ29vb0lBQ0Np
Z3dTd0lHSUxPMApOYXlMQWdvb29JQUNDaWlnZ0FKekxtQUFNdWNiMk9ZcG9JQUNDaWlnZ0FJS0tE
QkxBZ1lnczdRMXJJc0NDaWlnZ0FJS0tLQ0FBbk11CllBQXk1eHZZNWltZ2dBSUtLS0NBQWdvb01F
c0NCaUN6dERXc2l3SUtLS0NBQWdvb29JQUNjeTVnQURMbkc5am1LYUNBQWdvb29JQUMKQ2lnd1N3
SUdJTE8wTmF5TEFnb29vSUFDQ2lpZ2dBSnpMbUFBTXVjYjJPWXBvSUFDQ2lpZ2dBSUtLREJMQWdZ
Z3M3UTFySXNDQ2lpZwpnQUlLS0tDQUFuTXVZQUF5NXh2WTVpbWdnQUlLS0tDQUFnb29NRXNDQmlD
enREV3Npd0lLS0tDQUFnb29vSUFDY3k1Z0FETG5HOWptCkthQ0FBZ29vb0lBQ0NpZ3dTd0lHSUxP
ME5heUxBZ29vb0lBQ0NpaWdnQUp6TG1BQU11Y2IyT1lwb0lBQ0NpaWdnQUlLS0RCTEFnWWcKczdR
MXJJc0NDaWlnZ0FJS0tLQ0FBbk11WUFBeTV4dlk1aW1nZ0FJS0tLQ0FBZ29vTUVzQ0JpQ3p0RFdz
aXdJS0tLQ0FBZ29vb0lBQwpjeTVnQURMbkc5am1LYUNBQWdvb29JQUNDaWd3U3dJR0lMTzBOYXlM
QWdvb29JQUNDaWlnZ0FKekxtQUFNdWNiMk9ZcG9JQUNDaWlnCmdBSUtLREJMQWdZZ3M3UTFySXND
Q2lpZ2dBSUtLS0NBQW5NdVlBQXk1eHZZNWltZ2dBSUtLS0NBQWdvb01Fc0NCaUN6dERXc2l3SUsK
S0tDQUFnb29vSUFDY3k1Z0FETG5HOWptS2FDQUFnb29vSUFDQ2lnd1N3SUdJTE8wTmF5TEFnb29v
SUFDQ2lpZ2dBSnpMbUFBTXVjYgoyT1lwb0lBQ0NpaWdnQUlLS0RCTEFnWWdzN1ExcklzQ0NpaWdn
QUlLS0tDQUFuTXVZQUF5NXh2WTVpbWdnQUlLS0tDQUFnb29NRXNDCkJpQ3p0RFdzaXdJS0tLQ0FB
Z29vb0lBQ2N5NWdBRExuRzlqbUthQ0FBZ29vb0lBQ0NpZ3dTd0lHSUxPME5heUxBZ29vb0lBQ0Np
aWcKZ0FKekxtQUFNdWNiMk9ZcG9JQUNDaWlnZ0FJS0tEQkxBZ1lnczdRMXJJc0NDaWlnZ0FJS0tL
Q0FBbk11WUFBeTV4dlk1aW1nZ0FJSwpLS0NBQWdvb01Fc0NCaUN6dERXc2l3SUtLS0NBQWdvb29J
QUNjeTVnQURMbkc5am1LYUNBQWdvb29JQUNDaWd3U3dJR0lMTzBOYXlMCkFnb29vSUFDQ2lpZ2dB
SnpMbUFBTXVjYjJPWXBvSUFDQ2lpZ2dBSUtLREJMQWdZZ3M3UTFySXNDQ2lpZ2dBSUtLS0NBQW5N
dVlBQXkKNXh2WTVpbWdnQUlLS0tDQUFnb29NRXNDQmlDenREV3Npd0lLS0tDQUFnb29vSUFDY3k1
Z0FETG5HOWptS2FDQUFnb29vSUFDQ2lndwpTd0lHSUxPME5heUxBZ29vb0lBQ0NpaWdnQUp6TG1B
QU11Y2IyT1lwb0lBQ0NpaWdnQUlLS0RCTEFnWWdzN1ExcklzQ0NpaWdnQUlLCktLQ0FBbk11WUFB
eTV4dlk1aW1nZ0FJS0tLQ0FBZ29vTUVzQ0JpQ3p0RFdzaXdJS0tLQ0FBZ29vb0lBQ2N5NWdBRExu
RzlqbUthQ0EKQWdvb29JQUNDaWd3U3dJR0lMTzBOYXlMQWdvb29JQUNDaWlnZ0FKekxtQUFNdWNi
Mk9ZcG9JQUNDaWlnZ0FJS0tEQkxBZ1lnczdRMQpySXNDQ2lpZ2dBSUtLS0NBQW5NdVlBQXk1eHZZ
NWltZ2dBSUtLS0NBQWdvb01Fc0NCaUN6dERXc2l3SUtLS0NBQWdvb29JQUNjeTVnCkFETG5HOWpt
S2FDQUFnb29vSUFDQ2lnd1N3SUdJTE8wTmF5TEFnb29vSUFDQ2lpZ2dBSnpMbUFBTXVjYjJPWXBv
SUFDQ2lpZ2dBSUsKS0RCTEFnWWdzN1ExcklzQ0NpaWdnQUlLS0tDQUFuTXVZQUF5NXh2WTVpbWdn
QUlLS0tDQUFnb29NRXNDQmlDenREV3Npd0lLS0tDQQpBZ29vb0lBQ2N5NWdBRExuRzlqbUthQ0FB
Z29vb0lBQ0NpZ3dTd0lHSUxPME5heUxBZ29vb0lBQ0NpaWdnQUp6TG1BQU11Y2IyT1lwCm9JQUND
aWlnZ0FJS0tEQkxBZ1lnczdRMXJJc0NDaWlnZ0FJS0tLQ0FBbk11WUFBeTV4dlk1aW1nZ0FJS0tL
Q0FBZ29vTUVzQ0JpQ3oKdERXc2l3SUtLS0NBQWdvb29JQUNjeTVnQURMbkc5am1LYUNBQWdvb29J
QUNDaWd3U3dJR0lMTzBOYXlMQWdvb29JQUNDaWlnZ0FKegpMbUFBTXVjYjJPWXBvSUFDQ2lpZ2dB
SUtLREJMQWdZZ3M3UTFySXNDQ2lpZ2dBSUtLS0NBQW5NdVlBQXk1eHZZNWltZ2dBSUtLS0NBCkFn
b29NRXNDQmlDenREV3Npd0lLS0tDQUFnb29vSUFDY3k1Z0FETG5HOWptS2FDQUFnb29vSUFDQ2ln
d1N3SUdJTE8wTmF5TEFnb28Kb0lBQ0NpaWdnQUp6TG1BQU11Y2IyT1lwb0lBQ0NpaWdnQUlLS0RC
TEFnWWdzN1ExcklzQ0NpaWdnQUlLS0tDQUFuTXVZQUF5NXh2WQo1aW1nZ0FJS0tLQ0FBZ29vTUVz
Q0JpQ3p0RFdzaXdJS0tLQ0FBZ29vb0lBQ2N5NWdBRExuRzlqbUthQ0FBZ29vb0lBQ0NpZ3dTd0lH
CklMTzBOYXlMQWdvb29JQUNDaWlnZ0FKekxtQUFNdWNiMk9ZcG9JQUNDaWlnZ0FJS0tEQkxBZ1ln
czdRMXJJc0NDaWlnZ0FJS0tLQ0EKQW5NdXNMV2tmVC85YVVrdTh5aWdnQUlLS0tDQUFnb29vSUFD
d3dLakFjaStmY01GK0trQ0NpaWdnQUlLS0tDQUFnb29VQ3JnRkt4UwpLZk1wb0lBQ0NpaWdnQUlL
S0tCQXRZQUJTRFdoQlNpZ2dBSUtLS0NBQWdvb29FQ3BnQUZJcVpUNUZGQkFBUVVVVUVBQkJSUlFv
RnJBCkFLU2EwQUlVVUVBQkJSUlFRQUVGRkZDZ1ZNQUFwRlRLZkFvb29JQUNDaWlnZ0FJS0tGQXRZ
QUJTVFdnQkNpaWdnQUlLS0tDQUFnb28KVUNwZ0FGSXFaVDRGRkZCQUFRVVVVRUFCQlJTb0ZqQUFx
U2EwQUFVVVVFQUJCUlJRUUFFRkZDZ1ZNQUFwbFRLZkFnb29vSUFDQ2lpZwpnQUlLVkFzWWdGUVRX
b0FDQ2lpZ2dBSUtLS0NBQWdxVUNoaUFsRXFaVHdFRkZGQkFBUVVVVUVBQkJhb0ZERUNxQ1MxQUFR
VVVVRUFCCkJSUlFRQUVGU2dVTVFFcWx6S2VBQWdvb29JQUNDaWlnZ0FMVkFnWWcxWVFXb0lBQ0Np
aWdnQUlLS0tDQUFxVUNCaUNsVXVaVFFBRUYKRkZCQUFRVVVVRUNCYWdFRGtHcENDMUJBQVFVVVVF
QUJCUlJRUUlGU0FRT1FVaW56S2FDQUFnb29vSUFDQ2lpZ1FMV0FBVWcxb1FVbwpvSUFDQ2lpZ2dB
SUtLS0JBcVlBQlNLbVUrUlJRUUFFRkZGQkFBUVVVVUtCYXdBQ2ttdEFDRkZCQUFRVVVVRUFCQlJS
UW9GVEFBS1JVCnlud0tLS0NBQWdvb29JQUNDaWhRTFdBQVVrMW9BUW9vb0lBQ0NpaWdnQUlLS0ZB
cVlBQlNLbVUrQlJSUVFBRUZGRkJBQVFVVXFCWXcKQUtrbXRBQUZGRkJBQVFVVVVFQUJCUlFvRlRB
QUtaVXlud0lLS0tDQUFnb29vSUFDQ2xRTEdJQlVFMXFBQWdvb29JQUNDaWlnZ0FJSwpsQW9ZZ0pS
S21VOEJCUlJRUUFFRkZGQkFBUVdxQlF4QXFna3RRQUVGRkZCQUFRVVVVRUFCQlVvRkRFQktwY3lu
Z0FJS0tLQ0FBZ29vCm9JQUMxUUlHSU5XRUZxQ0FBZ29vb0lBQ0NpaWdnQUtsQWdZZ3BWTG1VMEFC
QlJSUVFBRUZGRkJBZ1dvQkE1QnFRZ3RRUUFFRkZGQkEKQVFVVVVFQ0JVZ0VEa0ZJcDh5bWdnQUlL
S0tDQUFnb29vRUMxZ0FGSU5hRUZLS0NBQWdvb29JQUNDaWlnUUttQUFVaXBsUGtVVUVBQgpCUlJR
UUFFRkZGQ2dXc0FBcEpyUUFoUlFRQUVGRkZCQUFRVVVVS0JVd0FDa1ZNcDhDaWlnZ0FJS0tLQ0FB
Z29vVUMxZ0FGSk5hQUVLCktLQ0FBZ29vb0lBQ0NpaFFLbUFBVWlwbFBnVVVVRUFCQlJSUVFBRUZG
S2dXTUFDcEpyUUFCUlJRUUFFRkZGQkFBUVVVS0JVd0FDbVYKTXA4Q0NpaWdnQUlLS0tDQUFncFVD
eGlBVkJOYWdBSUtLS0NBQWdvb29JQUNDcFFLR0lDVVNwbFBBUVVVVUVBQkJSUlFRQUVGcWdVTQpR
S29KTFVBQkJSUlFRQUVGRkZCQUFRVktCUXhBU3FYTXA0QUNDaWlnZ0FJS0tLQ0FBdFVDQmlEVmhC
YWdnQUlLS0tDQUFnb29vSUFDCnBRSUdJS1ZTNWxOQUFRVVVVRUFCQlJSUVFJRnFBUU9RYWtJTFVF
QUJCUlJRUUFFRkZGQkFnVklCQTVCU0tmTXBvSUFDQ2lpZ2dBSUsKS0tCQXRZQUJTRFdoQlNpZ2dB
SUtLS0NBQWdvb29FQ3BnQUZJcVpUNUZGQkFBUVVVVUVBQkJSUlFvRnJBQUtTYTBBSVVVRUFCQlJS
UQpRQUVGRkZDZ1ZNQUFwRlRLZkFvb29JQUNDaWlnZ0FJS0tGQXRZQUJTVFdnQkNpaWdnQUlLS0tD
QUFnb29VQ3BnQUZJcVpUNEZGRkJBCkFRVVVVRUFCQlJTb0ZqQUFxU2EwQUFVVVVFQUJCUlJRUUFF
RkZDZ1ZNQUFwbFRLZkFnb29vSUFDQ2lpZ2dBSUtWQXNZZ0ZRVFdvQUMKQ2lpZ2dBSUtLS0NBQWdx
VUNoaUFsRXFaVHdFRkZGQkFBUVVVVUVBQkJhb0ZERUNxQ1MxQUFRVVVVRUFCQlJSUVFBRUZTZ1VN
UUVxbAp6S2VBQWdvb29JQUNDaWlnZ0FMVkFnWWcxWVFXb0lBQ0NpaWdnQUlLS0tDQUFxVUNCaUNs
VXVaVFFBRUZGRkJBQVFVVVVFQ0JhZ0VECmtHcENDMUJBQVFVVVVFQUJCUlJRUUlGU0FRT1FVaW56
S2FDQUFnb29vSUFDQ2lpZ1FMV0FBVWcxb1FVb29JQUNDaWlnZ0FJS0tLQkEKcVlBQlNLbVUrUlJR
UUFFRkZGQkFBUVVVVUtCYXdBQ2ttdEFDRkZCQUFRVVVVRUFCQlJSUW9GVEFBS1JVeW53S0tLQ0FB
Z29vb0lBQwpDamdZazZNQUFCSTlTVVJCVkNoUUxXQUFVazFvQVFvb29JQUNDaWlnZ0FJS0tGQXFZ
QUJTS21VK0JSUlFRQUVGRkZCQUFRVVVxQll3CkFLa210QUFGRkZCQUFRVVVVRUFCQlJRb0ZUQUFL
WlV5bndJS0tLQ0FBZ29vb0lBQ0NsUUxHSUJVRTFxQUFnb29vSUFDQ2lpZ2dBSUsKbEFvWWdKUktt
VThCQlJSUVFBRUZGRkJBQVFXcUJReEFxZ2t0UUFFRkZGQkFBUVVVVUVBQkJVb0ZERUJLcGN5bmdB
SUtLS0NBQWdvbwpvSUFDMVFJR0lOV0VGcUNBQWdvb29JQUNDaWlnZ0FLbEFnWWdwVkxtVTBBQkJS
UlFRQUVGRkZCQWdXb0JBNUJxUWd0UVFBRUZGRkJBCkFRVVVVRUNCVWdFRGtGSXA4eW1nZ0FJS0tL
Q0FBZ29vb0VDMWdBRklOYUVGS0tDQUFnb29vSUFDQ2lpZ1FLbUFBVWlwbFBrVVVFQUIKQlJSUVFB
RUZGRkNnV3NBQXBKclFBaFJRUUFFRkZGQkFBUVVVVUtCVXdBQ2tWTXA4Q2lpZ2dBSUtLS0NBQWdv
b1VDMWdBRkpOYUFFSwpLS0NBQWdvb29JQUNDaWhRS21BQVVpcGxQZ1VVVUVBQkJSUlFRQUVGRktn
V01BQ3BKclFBQlJSUVFBRUZGRkJBQVFVVUtCVXdBQ21WCk1wOENDaWlnZ0FJS0tLQ0FBZ3BVQ3hp
QVZCTmFnQUlLS0tDQUFnb29vSUFDQ3BRS0dJQ1VTcGxQQVFVVVVFQUJCUlJRUUFFRnFnVU0KUUtv
SkxVQUJCUlJRUUFFRkZGQkFBUVZLQlF4QVNxWE1wNEFDQ2lpZ2dBSUtLS0NBQXRVQ0JpRFZoQmFn
Z0FJS0tLQ0FBZ29vb0lBQwpwUUlHSUtWUzVsTkFBUVVVVUVBQkJSUlFRSUZxQVFPUWFrSUxVRUFC
QlJSUVFBRUZGRkJBZ1ZJQkE1QlNLZk1wb0lBQ0NpaWdnQUlLCktLQkF0WUFCU0RXaEJTaWdnQUlL
S0tDQUFnb29vRUNwZ0FGSXFaVDVGRkJBQVFVVVVFQUJCUlJRb0ZyQUFLU2EwQUlVVUVBQkJSUlEK
UUFFRkZGQ2dWTUFBcEZUS2ZBb29vSUFDQ2lpZ2dBSUtLRkF0WUFCU1RXZ0JDaWlnZ0FJS0tLQ0FB
Z29vVUNwZ0FGSXFaVDRGRkZCQQpBUVVVVUVBQkJSU29GakFBcVNhMEFBVVVVRUFCQlJSUVFBRUZG
Q2dWTUFBcGxUS2ZBZ29vb0lBQ0NpaWdnQUlLVkFzWWdGUVRXb0FDCkNpaWdnQUlLS0tDQUFncVVD
aGlBbEVxWlR3RUZGRkJBQVFVVVVFQUJCYW9GREVDcUNTMUFBUVVVVUVBQkJSUlFRQUVGU2dVTVFF
cWwKektlQUFnb29vSUFDQ2lpZ2dBTFZBZ1lnMVlRV29JQUNDaWlnZ0FJS0tLQ0FBcVVDQmlDbFV1
WlRRQUVGRkZCQUFRVVVVRUNCYWdFRAprR3BDQzFCQUFRVVVVRUFCQlJSUVFJRlNBUU9RVWluekth
Q0FBZ29vb0lBQ0NpaWdRTFdBQVVnMW9RVW9vSUFDQ2lpZ2dBSUtLS0JBCnFZQUJTS21VK1JSUVFB
RUZGRkJBQVFVVVVLQmF3QUNrbXRBQ0ZGQkFBUVVVVUVBQkJSUlFvRlRBQUtSVXlud0tLS0NBQWdv
b29JQUMKQ2loUUxXQUFVazFvQVFvb29JQUNDaWlnZ0FJS0tGQXFZQUJTS21VK0JSUlFRQUVGRkZC
QUFRVVVxQll3QUtrbXRBQUZGRkJBQVFVVQpVRUFCQlJRb0ZUQUFLWlV5bndJS0tLQ0FBZ29vb0lB
Q0NsUUxHSUJVRTFxQUFnb29vSUFDQ2lpZ2dBSUtsQW9ZZ0pSS21VOEJCUlJRClFBRUZGRkJBQVFX
cUJReEFxZ2t0UUFFRkZGQkFBUVVVVUVBQkJVb0ZERUJLcGN5bmdBSUtLS0NBQWdvb29JQUMxUUlH
SU5XRUZxQ0EKQWdvb29JQUNDaWlnZ0FLbEFnWWdwVkxtVTBBQkJSUlFRQUVGRkZCQWdXb0JBNUJx
UWd0UVFBRUZGRkJBQVFVVVVFQ0JVZ0VEa0ZJcAo4eW1nZ0FJS0tLQ0FBZ29vb0VDMWdBRklOYUVG
S0tDQUFnb29vSUFDQ2lpZ1FLbUFBVWlwbFBrVVVFQUJCUlJRUUFFRkZGQ2dXc0FBCnBKclFBaFJR
UUFFRkZGQkFBUVVVVUtCVXdBQ2tWTXA4Q2lpZ2dBSUtLS0NBQWdvb1VDMWdBRkpOYUFFS0tLQ0FB
Z29vb0lBQ0NpaFEKS21BQVVpcGxQZ1VVVUVBQkJSUlFRQUVGRktnV01BQ3BKclFBQlJSUVFBRUZG
RkJBQVFVVUtCVXdBQ21WTXA4Q0NpaWdnQUlLS0tDQQpBZ3BVQ3hpQVZCTmFnQUlLS0tDQUFnb29v
SUFDQ3BRS0dJQ1VTcGxQQVFVVVVFQUJCUlJRUUFFRnFnVU1RS29KTFVBQkJSUlFRQUVGCkZGQkFB
UVZLQlF4QVNxWE1wNEFDQ2lpZ2dBSUtLS0NBQXRVQ0JpRFZoQmFnZ0FJS0tLQ0FBZ29vb0lBQ3BR
SUdJS1ZTNWxOQUFRVVUKVUVBQkJSUlFRSUZxQVFPUWFrSUxVRUFCQlJSUVFBRUZGRkJBZ1ZJQkE1
QlNLZk1wb0lBQ0NpaWdnQUlLS0tCQXRZQUJTRFdoQlNpZwpnQUlLS0tDQUFnb29vRUNwZ0FGSXFa
VDVGRkJBQVFVVVVFQUJCUlJRb0ZyQUFLU2EwQUlVVUVBQkJSUlFRQUVGRkZDZ1ZNQUFwRlRLCmZB
b29vSUFDQ2lpZ2dBSUtLRkF0WUFCU1RXZ0JDaWlnZ0FJS0tLQ0FBZ29vVUNwZ0FGSXFaVDRGRkZC
QUFRVVVVRUFCQlJTb0ZqQUEKcVNhMEFBVVVVRUFCQlJSUVFBRUZGQ2dWTUFBcGxUS2ZBZ29vb0lB
Q0NpaWdnQUlLVkFzWWdGUVRXb0FDQ2lpZ2dBSUtLS0NBQWdxVQpDaGlBbEVxWlR3RUZGRkJBQVFV
VVVFQUJCYW9GREVDcUNTMUFBUVVVVUVBQkJSUlFRQUVGU2dVTVFFcWx6S2VBQWdvb29JQUNDaWln
CmdBTFZBZ1lnMVlRV29JQUNDaWlnZ0FJS0tLQ0FBcVVDQmlDbFV1WlRRQUVGRkZCQUFRVVVVRUNC
YWdFRGtHcENDMUJBQVFVVVVFQUIKQlJSUVFJRlNBUU9RVWluekthQ0FBZ29vb0lBQ0NpaWdRTFdB
QVVnMW9RVW9vSUFDQ2lpZ2dBSUtLS0JBcVlBQlNLbVUrUlJRUUFFRgpGRkJBQVFVVVVLQmF3QUNr
bXRBQ0ZGQkFBUVVVVUVBQkJSUlFvRlRBQUtSVXlud0tLS0NBQWdvb29JQUNDaWhRTFdBQVVrMW9B
UW9vCm9JQUNDaWlnZ0FJS0tGQXFZQUJTS21VK0JSUlFRQUVGRkZCQUFRVVVxQll3QUtrbXRBQUZG
RkJBQVFVVVVFQUJCUlFvRlRBQUtaVXkKbndJS0tLQ0FBZ29vb0lBQ0NsUUxHSUJVRTFxQUFnb29v
SUFDQ2lpZ2dBSUtsQW9ZZ0pSS21VOEJCUlJRUUFFRkZGQkFBUVdxQlF4QQpxZ2t0UUFFRkZGQkFB
UVVVVUVBQkJVb0ZERUJLcGN5bmdBSUtLS0NBQWdvb29JQUMxUUlHSU5XRUZxQ0FBZ29vb0lBQ0Np
aWdnQUtsCkFnWWdwVkxtVTBBQkJSUlFRQUVGRkZCQWdXb0JBNUJxUWd0UVFBRUZGRkJBQVFVVVVF
Q0JVZ0VEa0ZJcDh5bWdnQUlLS0tDQUFnb28Kb0VDMWdBRklOYUVGS0tDQUFnb29vSUFDQ2lpZ1FL
bUFBVWlwbFBrVVVFQUJCUlJRUUFFRkZGQ2dXc0FBcEpyUUFoUlFRQUVGRkZCQQpBUVVVVUtCVXdB
Q2tWTXA4Q2lpZ2dBSUtLS0NBQWdvb1VDMWdBRkpOYUFFS0tLQ0FBZ29vb0lBQ0NpaFFLbUFBVWlw
bFBnVVVVRUFCCkJSUlFRQUVGRktnV01BQ3BKclFBQlJSUVFBRUZGRkJBQVFVVUtCVXdBQ21WTXA4
Q0NpaWdnQUlLS0tDQUFncFVDeGlBVkJOYWdBSUsKS0tDQUFnb29vSUFDQ3BRS0dJQ1VTcGxQQVFV
VVVFQUJCUlJRUUFFRnFnVU1RS29KTFVBQkJSUlFRQUVGRkZCQUFRVktCUXhBU3FYTQpwNEFDQ2lp
Z2dBSUtLS0NBQXRVQ0JpRFZoQmFnZ0FJS0tLQ0FBZ29vb0lBQ3BRSUdJS1ZTNWxOQUFRVVVVRUFC
QlJSUVFJRnFBUU9RCmFrSUxVRUFCQlJSUVFBRUZGRkJBZ1ZJQkE1QlNLZk1wb0lBQ0NpaWdnQUlL
S0tCQXRZQUJTRFdoQlNpZ2dBSUtLS0NBQWdvb29FQ3AKZ0FGSXFaVDVGRkJBQVFVVVVFQUJCUlJR
b0ZyQUFLU2EwQUlVVUVBQkJSUlFRQUVGRkZDZ1ZNQUFwRlRLZkFvb29JQUNDaWlnZ0FJSwpLRkF0
WUFCU1RXZ0JDaWlnZ0FJS0tLQ0FBZ29vVUNwZ0FGSXFaVDRGRkZCQUFRVVVVRUFCQlJTb0ZqQUFx
U2EwQUFVVVVFQUJCUlJRClFBRUZGQ2dWTUFBcGxUS2ZBZ29vb0lBQ0NpaWdnQUlLVkFzWWdGUVRX
b0FDQ2lpZ2dBSUtLS0NBQWdxVUNoaUFsRXFaVHdFRkZGQkEKQVFVVVVFQUJCYW9GREVDcUNTMUFB
UVVVVUVBQkJSUlFRQUVGU2dVTVFFcWx6S2VBQWdvb29JQUNDaWlnZ0FMVkFnWWcxWVFXb0lBQwpD
aWlnZ0FJS0tLQ0FBcVVDQmlDbFV1WlRRQUVGRkZCQUFRVVVVRUNCYWdFRGtHcENDMUJBQVFVVVVF
QUJCUlJRUUlGU0FRT1FVaW56CkthQ0FBZ29vb0lBQ0NpaWdRTFdBQVVnMW9RVW9vSUFDQ2lpZ2dB
SUtLS0JBcVlBQlNLbVUrUlJRUUFFRkZGQkFBUVVVVUtCYXdBQ2sKbXRBQ0ZGQkFBUVVVVUVBQkJS
UlFvRlRBQUtSVXlud0tLS0NBQWdvb29JQUNDaWhRTFdBQVVrMW9BUW9vb0lBQ0NpaWdnQUlLS0ZB
cQpZQUJTS21VK0JSUlFRQUVGRkZCQUFRVVVxQll3QUtrbXRBQUZGRkJBQVFVVVVFQUJCUlFvRlRB
QUtaVXlud0lLS0tDQUFnb29vSUFDCkNsUUxHSUJVRTFxQUFnb29vSUFDQ2lpZ2dBSUtsQW9ZZ0pS
S21VOEJCUlJRUUFFRkZGQkFBUVdxQlF4QXFna3RRQUVGRkZCQUFRVVUKVUVBQkJVb0ZERUJLcGN5
bmdBSUtLS0NBQWdvb29JQUMxUUlHSU5XRUZxQ0FBZ29vb0lBQ0NpaWdnQUtsQWdZZ3BWTG1VMEFC
QlJSUQpRQUVGRkZCQWdXb0JBNUJxUWd0UVFBRUZGRkJBQVFVVVVFQ0JVZ0VEa0ZJcDh5bWdnQUlL
S0tDQUFnb29vRUMxZ0FGSU5hRUZLS0NBCkFnb29vSUFDQ2lpZ1FLbUFBVWlwbFBrVVVFQUJCUlJR
UUFFRkZGQ2dXc0FBcEpyUUFoUlFRQUVGRkZCQUFRVVVVS0JVd0FDa1ZNcDgKQ2lpZ2dBSUtLS0NB
QWdvb1VDMWdBRkpOYUFFS0tLQ0FBZ29vb0lBQ0NpaFFLbUFBVWlwbFBnVVVVRUFCQlJSUVFBRUZG
S2dXTUFDcApKclFBQlJSUVFBRUZGRkJBQVFVVUtCVXdBQ21WTXA4Q0NpaWdnQUlLS0tDQUFncFVD
eGlBVkJOYWdBSUtLS0NBQWdvb29JQUNDcFFLCkdJQ1VTcGxQQVFVVVVFQUJCUlJRUUFFRnFnVU1R
S29KTFVBQkJSUlFRQUVGRkZCQUFRVktCUXhBU3FYTXA0QUNDaWlnZ0FJS0tLQ0EKQXRVQ0JpRFZo
QmFnZ0FJS0tLQ0FBZ29vb0lBQ3BRSUdJS1ZTNWxOQUFRVVVVRUFCQlJSUVFJRnFBUU9RYWtJTFVF
QUJCUlJRUUFFRgpGRkJBZ1ZJQkE1QlNLZk1wb0lBQ0NpaWdnQUlLS0tCQXRZQUJTRFdoQlNpZ2dB
SUtLS0NBQWdvb29FQ3BnQUZJcVpUNUZGQkFBUVVVClVFQUJCUlJRb0ZyQUFLU2EwQUlVVUVBQkJS
UlFRQUVGRkZDZ1ZNQUFwRlRLZkFvb29JQUNDaWlnZ0FJS0tGQXRZQUJTVFdnQkNpaWcKZ0FJS0tL
Q0FBZ29vVUNwZ0FGSXFaVDRGRkZCQUFRVVVVRUFCQlJTb0ZqQUFxU2EwQUFVVVVFQUJCUlJRUUFF
RkZDZ1ZNQUFwbFRLZgpBZ29vb0lBQ0NpaWdnQUlLVkFzWWdGUVRXb0FDQ2lpZ2dBSUtLS0NBQWdx
VUNoaUFsRXFaVHdFRkZGQkFBUVVVVUVBQkJhb0ZERUNxCkNTMUFBUVVVVUVBQkJSUlFRQUVGU2dV
TVFFcWx6S2VBQWdvb29JQUNDaWlnZ0FMVkFnWWcxWVFXb0lBQ0NpaWdnQUlLS0tDQUFxVUMKLzMv
N2RXZ0RBQUNBTU96L3IzbGhDYmFlSU9vbVFLcVVIUUVDQkFnUUlFQ0FBQUVDdDRBQXVRa2RFQ0JB
Z0FBQkFnUUlFQ0JRQlFSSQpsYklqUUlBQUFRSUVDQkFnUU9BV0VDQTNvUU1DQkFnUUlFQ0FBQUVD
QktxQUFLbFNkZ1FJRUNCQWdBQUJBZ1FJM0FJQzVDWjBRSUFBCkFRSUVDQkFnUUlCQUZSQWdWY3FP
QUFFQ0JBZ1FJRUNBQUlGYlFJRGNoQTRJRUNCQWdBQUJBZ1FJRUtnQ0FxUksyUkVnUUlBQUFRSUUK
Q0JBZ2NBc0lrSnZRQVFFQ0JBZ1FJRUNBQUFFQ1ZVQ0FWQ2s3QWdRSUVDQkFnQUFCQWdSdUFRRnlF
em9nUUlBQUFRSUVDQkFnUUtBSwpDSkFxWlVlQUFBRUNCQWdRSUVDQXdDMGdRRzVDQndRSUVDQkFn
QUFCQWdRSVZBRUJVcVhzQ0JBZ1FJQUFBUUlFQ0JDNEJRVElUZWlBCkFBRUNCQWdRSUVDQUFJRXFJ
RUNxbEIwQkFnUUlFQ0JBZ0FBQkFyZUFBTGtKSFJBZ1FJQUFBUUlFQ0JBZ1VBVUVTSld5STBDQUFB
RUMKQkFnUUlFRGdGaEFnTjZFREFnUUlFQ0JBZ0FBQkFnU3FnQUNwVW5ZRUNCQWdRSUFBQVFJRUNO
d0NBdVFtZEVDQUFBRUNCQWdRSUVDQQpRQlVRSUZYS2pnQUJBZ1FJRUNCQWdBQ0JXMENBM0lRT0NC
QWdRSUFBQVFJRUNCQ29BZ0trU3RrUklFQ0FBQUVDQkFnUUlIQUxDSkNiCjBBRUJBZ1FJRUNCQWdB
QUJBbFZBZ0ZRcE93SUVDQkFnUUlBQUFRSUViZ0VCY2hNNklFQ0FBQUVDQkFnUUlFQ2dDZ2lRS21W
SGdBQUIKQWdRSUVDQkFnTUF0SUVCdVFnY0VDQkFnUUlBQUFRSUVDRlFCQVZLbDdBZ1FJRUNBQUFF
Q0JBZ1F1QVVFeUUzb2dBQUJBZ1FJRUNCQQpnQUNCS2lCQXFwUWRBUUlFQ0JBZ1FJQUFBUUszZ0FD
NUNSMFFJRUNBQUFFQ0JBZ1FJRkFGQkVpVnNpTkFnQUFCQWdRSUVDQkE0QllRCklEZWhBd0lFQ0JB
Z1FJQUFBUUlFcW9BQXFWSjJCQWdRSUVDQUFBRUNCQWpjQWdMa0puUkFnQUFCQWdRSUVDQkFnRUFW
RUNCVnlvNEEKQVFJRUNCQWdRSUFBZ1Z0QWdOeUVEZ2dRSUVDQUFBRUNCQWdRcUFJQ3BFclpFU0JB
Z0FBQkFnUUlFQ0J3Q3dpUW05QUJBUUlFQ0JBZwpRSUFBQVFKVlFJQlVLVHNDQkFnUUlFQ0FBQUVD
Qkc0QkFYSVRPaUJBZ0FBQkFnUUlFQ0JBb0FvSWtDcGxSNEFBQVFJRUNCQWdRSURBCkxTQkFia0lI
QkFnUUlFQ0FBQUVDQkFoVUFRRlNwZXdJRUNCQWdBQUJBZ1FJRUxnRkJNaE42SUFBQVFJRUNCQWdR
SUFBZ1NvZ1FLcVUKSFFFQ0JBZ1FJRUNBQUFFQ3Q0QUF1UWtkRUNCQWdBQUJBZ1FJRUNCUUJRUkls
YklqUUlBQUFRSUVDQkFnUU9BV0VDQTNvUU1DQkFnUQpJRUNBQUFFQ0JLcUFBS2xTZGdRSUVDQkFn
QUFCQWdRSTNBSUM1Q1owUUlBQUFRSUVDQkFnUUlCQUZSQWdWY3FPQUFFQ0JBZ1FJRUNBCkFJRmJZ
RDJRRTVnQUZVUVJBQUFBQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54784</attachid>
            <date>2010-04-29 23:27:35 -0700</date>
            <delta_ts>2010-04-30 10:45:39 -0700</delta_ts>
            <desc>Account for overflow of glyphs for U+1E00..U+2000 without sending them through the complex text code path</desc>
            <filename>6649734_r2.diff</filename>
            <type>text/plain</type>
            <size>57660</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODU1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMTAtMDQtMjkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0
IG9mIDxyZGFyOi8vcHJvYmxlbS82NjQ5NzM0PiBUZXh0IHJlcGFpbnRpbmcgZG9lcyBub3QgYWNj
b3VudCBmb3IgZ2x5cGhzIHdoaWNoIGRyYXcgb3V0c2lkZSB0aGUgdHlwb2dyYXBoaWMgYm91bmRz
IG9mIHRoZSBmb250CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Mjc0CisKKyAgICAgICAgQWNjb3VudCBmb3IgZ2x5cGggb3ZlcmZsb3cgb2YgY2hhcmFj
dGVycyBpbiB0aGUgcmFuZ2UgVSsxRTAwLi5VKzIwMDAsIGJ1dCB3aXRob3V0IHNlbmRpbmcgdGhl
bQorICAgICAgICB0aHJvdWdoIHRoZSBjb21wbGV4IHRleHQgY29kZSBwYXRoLiBJbnN0ZWFkLCBp
bnRyb2R1Y2UgYSB2YXJpYW50IG9mIHRoZSBmYXN0IHBhdGggdGhhdCB0cmFja3MKKyAgICAgICAg
Z2x5cGggb3ZlcmZsb3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdUZXh0KTogVXNlIGFsbG93ZWRPcHRpbWl6YXRp
b25zKCkuCisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoKTogVXNlIGFsbG93ZWRP
cHRpbWl6YXRpb25zKCkuIFBhc3MgdGhlIEdseXBoT3ZlcmZsb3cgcG9pbnRlciB0aHJvdWdoIHRv
CisgICAgICAgIGZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KCkgaWYgaWdub3JpbmcgZ2x5cGggYm91
bmRzIGlzIG5vdCBhbGxvd2VkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6c2VsZWN0aW9uUmVj
dEZvclRleHQpOiBVc2UgYWxsb3dlZE9wdGltaXphdGlvbnMoKS4KKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6Om9mZnNldEZvclBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5oOiBSZXBsYWNlZCBjYW5Vc2VHbHlwaENhY2hlKCkgd2l0aCBhbGxvd2VkT3B0
aW1pemF0aW9ucygpLiBBZGRlZCBhCisgICAgICAgIEdseXBoT3ZlcmZsb3cgcGFyYW1ldGVyIHRv
IGZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEZhc3RQYXRoLmNwcDoKKyAgICAgICAgUmVtb3ZlZCBST01BTl9BTkRfR1JFRUtfRElBQ1JJ
VElDU19DQU5fVVNFX0dMWVBIX0NBQ0hFLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6YWxsb3dl
ZE9wdGltaXphdGlvbnMpOiBSZW5hbWVkIGNhblVzZUdseXBoQ2FjaGUoKSB0byB0aGlzLiBXaGVy
ZSBpdCB1c2VkIHRvIHJldHVybiBmYWxzZSwKKyAgICAgICAgaXQgbm93IHJldHVybnMgRm9udE9w
dGltaXphdGlvbk5vbmUuIFdoZXJlIGl0IHVzZWQgdG8gcmV0dXJuIHRydWUsIGl0IG5vdyByZXR1
cm5zCisgICAgICAgIEZvbnRPcHRpbWl6YXRpb25Vc2VHbHlwaENhY2hlIHwgRm9udE9wdGltaXph
dGlvbklnbm9yZUdseXBoQm91bmRzLCBleGNlcHQgZm9yCisgICAgICAgIHRoZSByYW5nZSBVKzFF
MDAuLlUrMjAwMCwgd2hlcmUgaXQgbm93IHJldHVybnMgRm9udE9wdGltaXphdGlvblVzZUdseXBo
Q2FjaGUsIGJ1dCBkb2VzIG5vdCBhbGxvdyBpZ25vcmluZworICAgICAgICBnbHlwaCBib3VuZHMu
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dCk6IEFkZGVk
IGEgR2x5cGhPdmVyZmxvdyBwYXJhbWV0ZXIuIElmIG5vdCAwLCBoYXZlIHRoZQorICAgICAgICB3
aWR0aCBpdGVyYXRvciBhY2NvdW50IGZvciBnbHlwaCBib3VuZHMsIHRoZW4gdXBkYXRlIHRoZSBH
bHlwaE92ZXJmbG93IGFjY29yZGluZ2x5LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1dp
ZHRoSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6V2lkdGhJ
dGVyYXRvcik6IEFkZGVkIGJvb2xlYW4gcGFyYW1ldGVyIHRlbGxpbmcgdGhlIHdpZHRoIGl0ZXJh
dG9yCisgICAgICAgIHdoZXRoZXIgdG8gYWNjb3VudCBmb3IgZ2x5cGggYm91bmRzLiBJbml0aWFs
aXplIG1fYWNjb3VudEZvckdseXBoQm91bmRzIGFjY29yZGluZ2x5LiBJbml0aWFsaXplCisgICAg
ICAgIG1fbWF4R2x5cGhCb3VuZGluZ0JveFksIG1fbWluR2x5cGhCb3VuZGluZ0JveFksIG1fZmly
c3RHbHlwaE92ZXJmbG93IGFuZCBtX2xhc3RHbHlwaE92ZXJmbG93LgorICAgICAgICAoV2ViQ29y
ZTo6V2lkdGhJdGVyYXRvcjo6YWR2YW5jZSk6IElmIGFjY291bnRpbmcgZm9yIGdseXBoIGJvdW5k
cywgdXBkYXRlIHRoZSBhYm92ZSBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0
b3I6Om1heEdseXBoQm91bmRpbmdCb3hZKTogQWRkZWQgdGhpcyBhY2Nlc3Nvci4KKyAgICAgICAg
KFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6Om1pbkdseXBoQm91bmRpbmdCb3hZKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9yOjpmaXJzdEdseXBoT3ZlcmZsb3cpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldpZHRoSXRlcmF0b3I6Omxhc3RHbHlwaE92ZXJmbG93KTog
RGl0dG8uCisKIDIwMTAtMDQtMjkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLiAgVXBkYXRlIEpTQyBDb2RlR2VuZXJhdG9yIGJhc2VsaW5lLiAg
Tm90IHN1cmUgaG93IEkgbWlzc2VkCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJ
KHJldmlzaW9uIDU4NTU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3Jh
cGhpY3NDb250ZXh0KiBjb24KICNlbmRpZgogCiAjaWYgVVNFKEZPTlRfRkFTVF9QQVRIKQotICAg
IGlmIChjYW5Vc2VHbHlwaENhY2hlKHJ1bikpCisgICAgaWYgKGFsbG93ZWRPcHRpbWl6YXRpb25z
KHJ1bikgJiBGb250T3B0aW1pemF0aW9uVXNlR2x5cGhDYWNoZSkKICAgICAgICAgcmV0dXJuIGRy
YXdTaW1wbGVUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsKICNlbmRpZgogCkBA
IC0xOTAsMTEgKzE5MCwxMiBAQCBmbG9hdCBGb250OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4m
IHJ1CiAjZW5kaWYKIAogI2lmIFVTRShGT05UX0ZBU1RfUEFUSCkKLSAgICBpZiAoY2FuVXNlR2x5
cGhDYWNoZShydW4pKSB7CisgICAgRm9udE9wdGltaXphdGlvbnMgb3B0aW1pemF0aW9ucyA9IGFs
bG93ZWRPcHRpbWl6YXRpb25zKHJ1bik7CisgICAgaWYgKG9wdGltaXphdGlvbnMgJiBGb250T3B0
aW1pemF0aW9uVXNlR2x5cGhDYWNoZSkgewogICAgICAgICAvLyBJZiB0aGUgY29tcGxleCB0ZXh0
IGltcGxlbWVudGF0aW9uIGNhbm5vdCByZXR1cm4gZmFsbGJhY2sgZm9udHMsIGF2b2lkCiAgICAg
ICAgIC8vIHJldHVybmluZyB0aGVtIGZvciBzaW1wbGUgdGV4dCBhcyB3ZWxsLgogICAgICAgICBz
dGF0aWMgYm9vbCByZXR1cm5GYWxsYmFja0ZvbnRzID0gY2FuUmV0dXJuRmFsbGJhY2tGb250c0Zv
ckNvbXBsZXhUZXh0KCk7Ci0gICAgICAgIHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChy
dW4sIDAsIHJldHVybkZhbGxiYWNrRm9udHMgPyBmYWxsYmFja0ZvbnRzIDogMCk7CisgICAgICAg
IHJldHVybiBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChydW4sIDAsIHJldHVybkZhbGxiYWNrRm9u
dHMgPyBmYWxsYmFja0ZvbnRzIDogMCwgKG9wdGltaXphdGlvbnMgJiBGb250T3B0aW1pemF0aW9u
SWdub3JlR2x5cGhCb3VuZHMpID8gMCA6IGdseXBoT3ZlcmZsb3cpOwogICAgIH0KICNlbmRpZgog
CkBAIC0yMTQsNyArMjE1LDcgQEAgZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0UnVu
JiBydQogICAgIGdseXBoTmFtZSA9ICIiOwogCiAjaWYgVVNFKEZPTlRfRkFTVF9QQVRIKQotICAg
IGlmIChjYW5Vc2VHbHlwaENhY2hlKHJ1bikpCisgICAgaWYgKGFsbG93ZWRPcHRpbWl6YXRpb25z
KHJ1bikgJiBGb250T3B0aW1pemF0aW9uVXNlR2x5cGhDYWNoZSkKICAgICAgICAgcmV0dXJuIGZs
b2F0V2lkdGhGb3JTaW1wbGVUZXh0KHJ1biwgMCk7CiAjZW5kaWYKIApAQCAtMjMxLDcgKzIzMiw3
IEBAIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yVGV4dChjb24KICAgICB0byA9ICh0
byA9PSAtMSA/IHJ1bi5sZW5ndGgoKSA6IHRvKTsKIAogI2lmIFVTRShGT05UX0ZBU1RfUEFUSCkK
LSAgICBpZiAoY2FuVXNlR2x5cGhDYWNoZShydW4pKQorICAgIGlmIChhbGxvd2VkT3B0aW1pemF0
aW9ucyhydW4pICYgRm9udE9wdGltaXphdGlvblVzZUdseXBoQ2FjaGUpCiAgICAgICAgIHJldHVy
biBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxlVGV4dChydW4sIHBvaW50LCBoLCBmcm9tLCB0byk7CiAj
ZW5kaWYKIApAQCAtMjQ2LDcgKzI0Nyw3IEBAIGludCBGb250OjpvZmZzZXRGb3JQb3NpdGlvbihj
b25zdCBUZXh0UnUKICNlbmRpZgogCiAjaWYgVVNFKEZPTlRfRkFTVF9QQVRIKQotICAgIGlmIChj
YW5Vc2VHbHlwaENhY2hlKHJ1bikpCisgICAgaWYgKGFsbG93ZWRPcHRpbWl6YXRpb25zKHJ1bikg
JiBGb250T3B0aW1pemF0aW9uVXNlR2x5cGhDYWNoZSkKICAgICAgICAgcmV0dXJuIG9mZnNldEZv
clBvc2l0aW9uRm9yU2ltcGxlVGV4dChydW4sIHgsIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKTsKICNl
bmRpZgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gNTg1NTUpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTYw
LDExICsxNjAsMTcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgVVNFKEZPTlRfRkFTVF9QQVRI
KQotICAgIGJvb2wgY2FuVXNlR2x5cGhDYWNoZShjb25zdCBUZXh0UnVuJikgY29uc3Q7CisgICAg
ZW51bSBGb250T3B0aW1pemF0aW9uRmxhZ3MgeworICAgICAgICBGb250T3B0aW1pemF0aW9uTm9u
ZSA9IDAsCisgICAgICAgIEZvbnRPcHRpbWl6YXRpb25Vc2VHbHlwaENhY2hlID0gMSA8PCAwLAor
ICAgICAgICBGb250T3B0aW1pemF0aW9uSWdub3JlR2x5cGhCb3VuZHMgPSAxIDw8IDEKKyAgICB9
OworICAgIHR5cGVkZWYgdW5zaWduZWQgRm9udE9wdGltaXphdGlvbnM7CisgICAgRm9udE9wdGlt
aXphdGlvbnMgYWxsb3dlZE9wdGltaXphdGlvbnMoY29uc3QgVGV4dFJ1biYpIGNvbnN0OwogICAg
IHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdH
bHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlw
aEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAg
ICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgZmxvYXQg
ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVmZmVyKiwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkgY29uc3Q7Cisg
ICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBoQnVm
ZmVyKiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
R2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JT
aW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRp
YWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0
bykgY29uc3Q7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRo
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0
aC5jcHAJKHJldmlzaW9uIDU4NTU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMCArMzYsNiBAQAogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCi0j
aWZuZGVmIFJPTUFOX0FORF9HUkVFS19ESUFDUklUSUNTX0NBTl9VU0VfR0xZUEhfQ0FDSEUKLSNk
ZWZpbmUgUk9NQU5fQU5EX0dSRUVLX0RJQUNSSVRJQ1NfQ0FOX1VTRV9HTFlQSF9DQUNIRSAxCi0j
ZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwog
CkBAIC0xOTQsNzQgKzE5MCw3MCBAQCBGb250OjpDb2RlUGF0aCBGb250Ojpjb2RlUGF0aCgpCiAg
ICAgcmV0dXJuIHNfY29kZVBhdGg7CiB9CiAKLWJvb2wgRm9udDo6Y2FuVXNlR2x5cGhDYWNoZShj
b25zdCBUZXh0UnVuJiBydW4pIGNvbnN0CitGb250OjpGb250T3B0aW1pemF0aW9ucyBGb250Ojph
bGxvd2VkT3B0aW1pemF0aW9ucyhjb25zdCBUZXh0UnVuJiBydW4pIGNvbnN0CiB7CiAgICAgc3dp
dGNoIChzX2NvZGVQYXRoKSB7CiAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFNpbXBsZToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgcmV0dXJuIEZvbnRPcHRpbWl6YXRpb25Vc2VHbHlwaENhY2hlIHwgRm9udE9wdGltaXph
dGlvbklnbm9yZUdseXBoQm91bmRzOwogICAgICAgICBjYXNlIENvbXBsZXg6Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gRm9udE9wdGltaXphdGlvbk5vbmU7
CiAgICAgfQotICAgIAorCiAgICAgLy8gU3RhcnQgZnJvbSAwIHNpbmNlIGRyYXdpbmcgYW5kIGhp
Z2hsaWdodGluZyBhbHNvIG1lYXN1cmUgdGhlIGNoYXJhY3RlcnMgYmVmb3JlIHJ1bi0+ZnJvbQog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVuLmxlbmd0aCgpOyBpKyspIHsKICAgICAgICAgY29u
c3QgVUNoYXIgYyA9IHJ1bltpXTsKICAgICAgICAgaWYgKGMgPCAweDMwMCkgICAgICAvLyBVKzAz
MDAgdGhyb3VnaCBVKzAzNkYgQ29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgaWYgKGMgPD0gMHgzNkYpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gRm9udE9wdGltaXphdGlvbk5vbmU7CiAKICAgICAg
ICAgaWYgKGMgPCAweDA1OTEgfHwgYyA9PSAweDA1QkUpICAgICAvLyBVKzA1OTEgdGhyb3VnaCBV
KzA1Q0YgZXhjbHVkaW5nIFUrMDVCRSBIZWJyZXcgY29tYmluaW5nIG1hcmtzLCBIZWJyZXcgcHVu
Y3R1YXRpb24gUGFzZXEsIFNvZiBQYXN1cSBhbmQgTnVuIEhhZnVraGEKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICBpZiAoYyA8PSAweDA1Q0YpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm4gRm9udE9wdGltaXphdGlvbk5vbmU7CiAKICAgICAgICAg
aWYgKGMgPCAweDA2MDApICAgICAvLyBVKzA2MDAgdGhyb3VnaCBVKzEwNTkgQXJhYmljLCBTeXJp
YWMsIFRoYWFuYSwgRGV2YW5hZ2FyaSwgQmVuZ2FsaSwgR3VybXVraGksIEd1amFyYXRpLCBPcml5
YSwgVGFtaWwsIFRlbHVndSwgS2FubmFkYSwgTWFsYXlhbGFtLCBTaW5oYWxhLCBUaGFpLCBMYW8s
IFRpYmV0YW4sIE15YW5tYXIKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYyA8
PSAweDEwNTkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4g
Rm9udE9wdGltaXphdGlvbk5vbmU7CiAKICAgICAgICAgaWYgKGMgPCAweDExMDApICAgICAvLyBV
KzExMDAgdGhyb3VnaCBVKzExRkYgSGFuZ3VsIEphbW8gKG9ubHkgQW5jaWVudCBLb3JlYW4gc2hv
dWxkIGJlIGxlZnQgaGVyZSBpZiB5b3UgcHJlY29tcG9zZTsgTW9kZXJuIEtvcmVhbiB3aWxsIGJl
IHByZWNvbXBvc2VkIGFzIGEgcmVzdWx0IG9mIHN0ZXAgQSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAoYyA8PSAweDExRkYpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm4gRm9udE9wdGltaXphdGlvbk5vbmU7CiAKICAgICAgICAgaWYgKGMg
PCAweDE3ODApICAgICAvLyBVKzE3ODAgdGhyb3VnaCBVKzE4QUYgS2htZXIsIE1vbmdvbGlhbgog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChjIDw9IDB4MThBRikKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBGb250T3B0aW1pemF0aW9uTm9u
ZTsKIAogICAgICAgICBpZiAoYyA8IDB4MTkwMCkgICAgIC8vIFUrMTkwMCB0aHJvdWdoIFUrMTk0
RiBMaW1idSAoVW5pY29kZSA0LjApCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYg
KGMgPD0gMHgxOTRGKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0
dXJuIEZvbnRPcHRpbWl6YXRpb25Ob25lOwogCi0jaWYgIVJPTUFOX0FORF9HUkVFS19ESUFDUklU
SUNTX0NBTl9VU0VfR0xZUEhfQ0FDSEUKLSAgICAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBub3Qg
dXNlIGNvbXBsZXggdGV4dCBwYXRoIGZvciB0aGVzZSBjaGFyYWN0ZXJzLgogICAgICAgICBpZiAo
YyA8IDB4MUUwMCkgICAgIC8vIFUrMUUwMCB0aHJvdWdoIFUrMjAwMCBjaGFyYWN0ZXJzIHdpdGgg
ZGlhY3JpdGljcyBhbmQgc3RhY2tlZCBkaWFjcml0aWNzCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgaWYgKGMgPD0gMHgyMDAwKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2Vu
ZGlmCisgICAgICAgICAgICByZXR1cm4gRm9udE9wdGltaXphdGlvblVzZUdseXBoQ2FjaGU7CiAK
ICAgICAgICAgaWYgKGMgPCAweDIwRDApICAgICAvLyBVKzIwRDAgdGhyb3VnaCBVKzIwRkYgQ29t
YmluaW5nIG1hcmtzIGZvciBzeW1ib2xzCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
aWYgKGMgPD0gMHgyMEZGKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
cmV0dXJuIEZvbnRPcHRpbWl6YXRpb25Ob25lOwogCiAgICAgICAgIGlmIChjIDwgMHhGRTIwKSAg
ICAgLy8gVStGRTIwIHRocm91Z2ggVStGRTJGIENvbWJpbmluZyBoYWxmIG1hcmtzCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGMgPD0gMHhGRTJGKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIEZvbnRPcHRpbWl6YXRpb25Ob25lOwogICAg
IH0KIAogICAgIGlmICh0eXBlc2V0dGluZ0ZlYXR1cmVzKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gRm9udE9wdGltaXphdGlvbk5v
bmU7CiAKKyAgICByZXR1cm4gRm9udE9wdGltaXphdGlvblVzZUdseXBoQ2FjaGUgfCBGb250T3B0
aW1pemF0aW9uSWdub3JlR2x5cGhCb3VuZHM7CiB9CiAKIHZvaWQgRm9udDo6ZHJhd1NpbXBsZVRl
eHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdApAQCAtMzI2LDEwICszMTgs
MTggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZQogICAgIGRyYXdH
bHlwaHMoY29udGV4dCwgZm9udERhdGEsIGdseXBoQnVmZmVyLCBsYXN0RnJvbSwgbmV4dEdseXBo
IC0gbGFzdEZyb20sIHN0YXJ0UG9pbnQpOwogfQogCi1mbG9hdCBGb250OjpmbG9hdFdpZHRoRm9y
U2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKSBjb25zdAorZmxv
YXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBHbHlw
aEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKLSAgICBX
aWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cyk7CisgICAgV2lkdGhJdGVy
YXRvciBpdCh0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogICAgIGl0
LmFkdmFuY2UocnVuLmxlbmd0aCgpLCBnbHlwaEJ1ZmZlcik7CisKKyAgICBpZiAoZ2x5cGhPdmVy
ZmxvdykgeworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBtYXg8aW50PihnbHlwaE92ZXJm
bG93LT50b3AsIGNlaWxmKC1pdC5taW5HbHlwaEJvdW5kaW5nQm94WSgpKSAtIGFzY2VudCgpKTsK
KyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gbWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tLCBjZWlsZihpdC5tYXhHbHlwaEJvdW5kaW5nQm94WSgpKSAtIGRlc2NlbnQoKSk7Cisg
ICAgICAgIGdseXBoT3ZlcmZsb3ctPmxlZnQgPSBjZWlsZihpdC5maXJzdEdseXBoT3ZlcmZsb3co
KSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnJpZ2h0ID0gY2VpbGYoaXQubGFzdEdseXBoT3Zl
cmZsb3coKSk7CisgICAgfQorCiAgICAgcmV0dXJuIGl0Lm1fcnVuV2lkdGhTb0ZhcjsKIH0KIApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCShyZXZp
c2lvbiA1ODU1NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEzICszMywxNCBAQAogCiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7Cit1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEFjY29yZGluZyB0byBodHRwOi8vd3d3LnVuaWNvZGUu
b3JnL1B1YmxpYy9VTklEQVRBL1VDRC5odG1sI0Nhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3NfVmFs
dWVzCiBzdGF0aWMgY29uc3QgdWludDhfdCBoaXJhZ2FuYUthdGFrYW5hVm9pY2luZ01hcmtzQ29t
YmluaW5nQ2xhc3MgPSA4OwogCi1XaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZv
bnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+KiBmYWxsYmFja0ZvbnRzKQorV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBG
b250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMpCiAgICAgOiBt
X2ZvbnQoZm9udCkKICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkK
QEAgLTQ3LDYgKzQ4LDExIEBAIFdpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3IoY29uc3QgRm9u
dCoKICAgICAsIG1fcnVuV2lkdGhTb0ZhcigwKQogICAgICwgbV9maW5hbFJvdW5kaW5nV2lkdGgo
MCkKICAgICAsIG1fZmFsbGJhY2tGb250cyhmYWxsYmFja0ZvbnRzKQorICAgICwgbV9hY2NvdW50
Rm9yR2x5cGhCb3VuZHMoYWNjb3VudEZvckdseXBoQm91bmRzKQorICAgICwgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpKQorICAgICwgbV9taW5HbHlw
aEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQorICAgICwgbV9maXJz
dEdseXBoT3ZlcmZsb3coMCkKKyAgICAsIG1fbGFzdEdseXBoT3ZlcmZsb3coMCkKIHsKICAgICAv
LyBJZiB0aGUgcGFkZGluZyBpcyBub24temVybywgY291bnQgdGhlIG51bWJlciBvZiBzcGFjZXMg
aW4gdGhlIHJ1bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBieSB0aGUgcGFkZGluZyBmb3IgcGVy
IHNwYWNlIGFkZGl0aW9uLgpAQCAtNzksNiArODUsNyBAQCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFk
dmFuY2UoaW50IG9mZnNldCwgCiAKICAgICBmbG9hdCBydW5XaWR0aFNvRmFyID0gbV9ydW5XaWR0
aFNvRmFyOwogICAgIGZsb2F0IGxhc3RSb3VuZGluZ1dpZHRoID0gbV9maW5hbFJvdW5kaW5nV2lk
dGg7CisgICAgRmxvYXRSZWN0IGJvdW5kczsKIAogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBw
cmltYXJ5Rm9udCA9IG1fZm9udC0+cHJpbWFyeUZvbnQoKTsKICAgICBjb25zdCBTaW1wbGVGb250
RGF0YSogbGFzdEZvbnREYXRhID0gcHJpbWFyeUZvbnQ7CkBAIC0xNzUsNiArMTgyLDEyIEBAIHZv
aWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCisgICAgICAgIGlmIChtX2FjY291bnRGb3JHbHlwaEJvdW5kcykgeworICAgICAg
ICAgICAgYm91bmRzID0gZm9udERhdGEtPmJvdW5kc0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAg
ICAgIGlmICghY3VycmVudENoYXJhY3RlcikKKyAgICAgICAgICAgICAgICBtX2ZpcnN0R2x5cGhP
dmVyZmxvdyA9IG1heDxmbG9hdD4oMCwgLWJvdW5kcy54KCkpOworICAgICAgICB9CisKICAgICAg
ICAgLy8gQWR2YW5jZSBwYXN0IHRoZSBjaGFyYWN0ZXIgd2UganVzdCBkZWFsdCB3aXRoLgogICAg
ICAgICBjcCArPSBjbHVzdGVyTGVuZ3RoOwogICAgICAgICBjdXJyZW50Q2hhcmFjdGVyICs9IGNs
dXN0ZXJMZW5ndGg7CkBAIC0yMDUsNiArMjE4LDEyIEBAIHZvaWQgV2lkdGhJdGVyYXRvcjo6YWR2
YW5jZShpbnQgb2Zmc2V0LCAKICAgICAgICAgICAgIGdseXBoQnVmZmVyLT5hZGQoZ2x5cGgsIGZv
bnREYXRhLCAocnRsID8gb2xkV2lkdGggKyBsYXN0Um91bmRpbmdXaWR0aCA6IHdpZHRoKSk7CiAK
ICAgICAgICAgbGFzdFJvdW5kaW5nV2lkdGggPSB3aWR0aCAtIG9sZFdpZHRoOworCisgICAgICAg
IGlmIChtX2FjY291bnRGb3JHbHlwaEJvdW5kcykgeworICAgICAgICAgICAgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WSA9IG1heChtX21heEdseXBoQm91bmRpbmdCb3hZLCBib3VuZHMuYm90dG9tKCkp
OworICAgICAgICAgICAgbV9taW5HbHlwaEJvdW5kaW5nQm94WSA9IG1pbihtX21pbkdseXBoQm91
bmRpbmdCb3hZLCBib3VuZHMueSgpKTsKKyAgICAgICAgICAgIG1fbGFzdEdseXBoT3ZlcmZsb3cg
PSBtYXg8ZmxvYXQ+KDAsIGJvdW5kcy5yaWdodCgpIC0gd2lkdGgpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgbV9jdXJyZW50Q2hhcmFjdGVyID0gY3VycmVudENoYXJhY3RlcjsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oCShyZXZpc2lvbiA1ODU1NSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMywxMSArMzMsMTYgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFzcyBUZXh0
UnVuOwogCiBzdHJ1Y3QgV2lkdGhJdGVyYXRvciB7Ci0gICAgV2lkdGhJdGVyYXRvcihjb25zdCBG
b250KiwgY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFs
bGJhY2tGb250cyA9IDApOworICAgIFdpZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRl
eHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAw
LCBib29sIGFjY291bnRGb3JHbHlwaEJvdW5kcyA9IGZhbHNlKTsKIAogICAgIHZvaWQgYWR2YW5j
ZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2YW5jZU9uZUNoYXJhY3Rl
cihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwogCisgICAgZmxvYXQgbWF4R2x5cGhC
b3VuZGluZ0JveFkoKSBjb25zdCB7IEFTU0VSVChtX2FjY291bnRGb3JHbHlwaEJvdW5kcyk7IHJl
dHVybiBtX21heEdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgbWluR2x5cGhCb3VuZGlu
Z0JveFkoKSBjb25zdCB7IEFTU0VSVChtX2FjY291bnRGb3JHbHlwaEJvdW5kcyk7IHJldHVybiBt
X21pbkdseXBoQm91bmRpbmdCb3hZOyB9CisgICAgZmxvYXQgZmlyc3RHbHlwaE92ZXJmbG93KCkg
Y29uc3QgeyBBU1NFUlQobV9hY2NvdW50Rm9yR2x5cGhCb3VuZHMpOyByZXR1cm4gbV9maXJzdEds
eXBoT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBsYXN0R2x5cGhPdmVyZmxvdygpIGNvbnN0IHsgQVNT
RVJUKG1fYWNjb3VudEZvckdseXBoQm91bmRzKTsgcmV0dXJuIG1fbGFzdEdseXBoT3ZlcmZsb3c7
IH0KKwogICAgIGNvbnN0IEZvbnQqIG1fZm9udDsKIAogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVu
OwpAQCAtNTEsNyArNTYsMTMgQEAgc3RydWN0IFdpZHRoSXRlcmF0b3IgewogCiBwcml2YXRlOgog
ICAgIFVDaGFyMzIgbm9ybWFsaXplVm9pY2luZ01hcmtzKGludCBjdXJyZW50Q2hhcmFjdGVyKTsK
KwogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogbV9mYWxsYmFja0ZvbnRzOwor
ICAgIGJvb2wgbV9hY2NvdW50Rm9yR2x5cGhCb3VuZHM7CisgICAgZmxvYXQgbV9tYXhHbHlwaEJv
dW5kaW5nQm94WTsKKyAgICBmbG9hdCBtX21pbkdseXBoQm91bmRpbmdCb3hZOworICAgIGZsb2F0
IG1fZmlyc3RHbHlwaE92ZXJmbG93OworICAgIGZsb2F0IG1fbGFzdEdseXBoT3ZlcmZsb3c7CiB9
OwogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1ODU1NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA0LTI5ICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlZCByZXN1bHRzIGZvciA8cmRhcjovL3Byb2JsZW0vNjY0OTcz
ND4gVGV4dCByZXBhaW50aW5nIGRvZXMgbm90IGFjY291bnQgZm9yIGdseXBocyB3aGljaCBkcmF3
IG91dHNpZGUgdGhlIHR5cG9ncmFwaGljIGJvdW5kcyBvZiB0aGUgZm9udAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NAorCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tz
dW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRp
Y3MtZXhwZWN0ZWQucG5nOgorCiAyMDEwLTA0LTI5ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRp
Y3MtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0JKHJl
dmlzaW9uIDU4NTU1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9z
dGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQuY2hlY2tzdW0JKHdvcmtpbmcgY29weSkKQEAgLTEg
KzEgQEAKLTIxNGE2MjIyNjM1MTc5OGI3ODJhZDljODM5YWI5MDBkClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQorNjFjYWIwOTc5MTQ1MjVmYjdmN2EwNzk4OTMzMDAxMmUKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBh
aW50L3N0YWNrZWQtZGlhY3JpdGljcy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlz
cGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbQoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlB
QUFDYWRvSndBQUFETzJsRFExQkpRME1nVUhKdlptbHNaUUFBZUFHRgpsRXRvMUZBVWh2K01LWUsw
Z3FpMUZwVGdRb3UwSlQ3UWlsRGJhYlhXa1hFWSs5QWl5RFJ6WnhwTk16R1pHUitJU0VIYytWcUtH
eCtJCml5cmlRcnBRY0tVTGtVTHJhMUVFY2FVaWlFSTNVc2IvSnUxTUtsWXZKUGx5em4vUDY0WUFW
UTlUam1ORk5HRFl6cnZKcnFoMjZQQ0EKdG5nQ1ZhaEJOYmhTaHVlMEp4TDdmYVpXUHVldjZiZFFw
R1d5U2NhSzlSMlkrTFJ0OWYxTGoyTHY2NTcyK3A3NStubHZOUzRUQW9wRwo2NHBzd0ZzbER3YThW
L0xKdkpPbjVvaGtZeWlWSmp2a1JyY24yVUcrUVY2YURmRmdpTlBDTTRDcU5tcHlodU15VG1RRnVh
Vm9aR1hNClViSnVwMDJiUENYdGFjOFlwb2I5Um43SVdkREdsWThCcld1QVJTOHJ0Z0VQR0wwTHJG
cGZzVFhVQVN2N2diRXRGZHZQcEQ4ZnBYYmMKeTJ6WjdJZFRxcU9zNlVPcDlITTlzUGdhTUhPMVZQ
cDFxMVNhdWMwY3JPT1paUlRjb3E5bFljb3JJS2czMk0zNHlUbGFpSU9lZkZVTApjSk56N0Y4Q3hD
NEExejhDR3g0QXl4OERpUnFnWndjaTU5bHVjT1hGS2M0RjZNZzVwMTB6TzVUWE51djZkcTJkUnl1
MGJ0dG9idFJTCmxxWDVMazl6aFNmY29rZzNZOWdxY003K1dzWjd0YkI3RC9MSi9pTG5oTGQ3bHBX
UmRLcVRzMFF6Mi9xU0ZwMjd5WTNrZXhselR6ZTUKZ2RkVXh0M1RHN0N5MGN4Mzl3UWM2Yk90T005
RmFpSjE5bUQ4QUpueEZkWEpSK1U4Skk5NHhZTXlwbTgvbHRxWElOZlRuanllaTBsTgpMZmUyblJu
cTRSbEpWcXd6UXgzeFdYN3RGcEl5N3pwcTdqaVcvODJ6dHNoekhJWUZBUk0yN3pZMEpOR0ZLSnJn
d0VVT0dYcE1La3hhCnBWL1Fhc0xEOGI4cUxTVEt1eXdxdXZDWmV6NzdlMDZnd04weWZoK2ljWXcw
bGlObytqdjltLzVHdjZuZjBiOWVxUzgwVkR3ajdsSFQKR0wvOG5YRmxabG1OakJ2VUtPUExtb0w0
QnF0dHA5ZENsdFpoWGtGUFhsbmZGSzR1WTErcEwzczBtVU5jakUrSHVoU2hURTBZWkR6Wgp0ZXkr
U0xiNEp2eDhjOWtXbWg2MUw4NCtxYXZrZXFPT0habXNmbkUyWEExci83T3JZTkt5cS9Ea2paQXVQ
R3VocmxVM3FkMXFpN29ECm1ycExiVk5iMVU2KzdWVDNsM2YwY2xZbVRySnVsOVduMklPTjAvUldU
cm95V3dUL0ZuNHgvQzkxQ1Z1NHBxSEpmMmpDeldWTVMvaU8KNFBZZmQwajVML3dOQVlVVkRYeExP
enNBQUNBQVNVUkJWSGdCN04zcGt4M0ZuZWo5MGdJSWtKQkE3Q0FRT3piWVlMeU9NZU1GejF4UApQ
REYrSEU4NFF2NXo1czhaUjl4WGZ1RzU5cDI1MXg2SERiYXhNYnV4QVFtUVFDd1NBaUVXTGEwbnY5
V2RyZXlrbGp5ZGZWcEhwNzhaCmlMTmxaV1YrS3F0Ty9xcXlUbS9hdDIvZjJjYWtnQUlLS0tDQUFn
b29vSUFDQ3F5RHdPWjFXSWVyVUVBQkJSUlFRQUVGRkZCQUFRVmEKQVFNUU80SUNDaWlnZ0FJS0tL
Q0FBZ3FzbTRBQnlMcFJ1eUlGRkZCQUFRVVVVRUFCQlJRd0FMRVBLS0NBQWdvb29JQUNDaWlnd0xv
SgpHSUNzRzdVclVrQUJCUlJRUUFFRkZGQkFBUU1RKzRBQ0NpaWdnQUlLS0tDQUFncXNtNEFCeUxw
UnV5SUZGRkJBQVFVVVVFQUJCUlF3CkFMRVBLS0NBQWdvb29JQUNDaWlnd0xvSkdJQ3NHN1VyVWtB
QkJSUlFRQUVGRkZCQUFRTVErNEFDQ2lpZ2dBSUtLS0NBQWdxc200QUIKeUxwUnV5SUZGRkJBQVFV
VVVFQUJCUlF3QUxFUEtLQ0FBZ29vb0lBQ0NpaWd3TG9KR0lDc0c3VXJVa0FCQlJSUVFBRUZGRkJB
QVFNUQorNEFDQ2lpZ2dBSUtLS0NBQWdxc200QUJ5THBSdXlJRkZGQkFBUVVVVUVBQkJSUXdBTEVQ
S0tDQUFnb29vSUFDQ2lpZ3dMb0pHSUNzCkc3VXJVa0FCQlJSUVFBRUZGRkJBZ1prTFFENzk5TlBt
d3c4L2JNNmVQYnU4ZFQ3NTVKUGw1ejVwbWs4L1Bkc2NQNzZ3VEhIbXpObm0KM1hmN1h5OW5MSGh5
NnRUWjVxT1B6dGtYTExLbVdVNmVYR3pMNmRNcjYwQ2JGeFpXdnJlYUZaL1B0cTJtdm11OURQdlg4
ZVBIVjExcwo3ZktUcm5oaFlhSDU0SU1QSmwzTS9PZEo0T09QUDI3ZWV1dXRjSXo2ZEYxcWNPYk1t
WERzZTNmTjFuWHExS2x3L1B0b3pjb3JMV2hzCnZaUHNkMk5samRWcG8reHpZNlpyNlZDN1RjYTIy
VHg5UG1ZMXR0MkdMTWJLSGxwMkdwK3RaUi9ycXQ4a3grUHpZYk8xcTlMcGU2KysKK21yejdMUFB0
a0VCNzE5Ly9mWE5aWmRkMXJ6MzNudk5GVmRjMGR4MzMzM05qaDA3MmtYMjc5L2Y1bzBIOEd1dXVh
YTUrKzY3bTV0dgp2cmxkbm5Jbzc2YWJibXErL09Vdk41ZGVlbW03SEY4aXp6MzNYUFA2NjYrM24x
RWVndzcrc2E1TExybWsrZUlYdjlqbVRmLzMybXV2CnRjdkZBY3JsbDEvZWZPNXpuMnMyYjk3Y1BQ
MzAwMDBNWEs2OTl0cTJyZ1EybEhYUFBmYzBWMTU1WlZyVTZQUERoeGVhRjE4ODB4dysKZkxiWnRX
dFRXSDVUV0U4VEJzVk5LSHRUYzlkZG01c3RXemFObHJNV0daNTk5a3p6empzTHpROStjSEZ6OU9o
Qzg4Yy9ubWsrL3Zocwo4Nk1mZmZiMUpPdDc1WlV6elovK2RDWllid2xHV3laWnREcnZrU01MemZQ
UG53bjlhM1BvTDV1YnJWc1hMWG4vNmFjWlpKeHRMcnFvCmFXNjlkWFB6aFM5c2FUOG44UHJaejA0
MUowOStkdlUvL09GRm9YK3QzQjVzdzhjZlA5MDZzY1IvLy9kL3QvMTQ5Kzdkb2J5dGJkK2sKRC9H
YWc5dzc3N3pUZk9VclgybHV1KzIyejY3Z0FuMkhmWkIyL2VBSFAxaFZDMnFYbjJTbEhHUCs4SWMv
aE8xK1VmTzk3MzF2a2tYTgpleDRFL3ZhM3Z6V2JObTBLKytQSjVySEhIbXYrOVYvL05Sd1RwM2Nj
T1hyMGFEajIvVEVjK3o0TysvU1BxbHZNOXcvOWplK1F6My8rCjg5WGxsUlpRc3Q3Uy9hNmtyS0Y2
YmFSOWJzaDBMUjFxdDhuUTlwcTN6MHFzaHJiYmtNY3JyN3dTeGpkL2FzZVNqQUhQZDFyTFB0YlYK
bGttT3h5WHVYZXVvZlc4MEFMbjExbHNiQWdRTzlDUUNqcXV2dnJwNTVwbG53b0R4K2ViZ3dZUE5E
My80dytiaWl5OXVCMm9FSDNRUQowcGUrOUtYbGdmNzI3ZHViYjN6akcrMkE3eC8rNFIrV3Y1ajRz
dnF2Ly9xdk50ajR6bmUrMDF4MzNYWHRzdnlQTTF1Lyt0V3YyaUJtCitjM2t5UzIzM05KKzRmM3Vk
NzlyMzczMzNudWJPKzY0bzMzT2x4SjFKQkhzRUN3UjRmM25mLzVuODh0Zi9ySWg3d01QUE5CK1h2
SS8KQnNaOGx4NCtmTHJadTNmejhnQ2RLeEcvK01YcDV0aXhzNkY5bzV3bHF4ck44OEFEVzVyVHB4
ZS8ySys2YW5Pb3o5bm1oUmZPdE12bApyMGNMU3pMY2Z2dVdZTFpZVHZMMjFKOVM5NWRmUHROOC8v
c1hOZHUyblFzYXVCcEMwRWZBc1hQbnBtYi8vb1hteVNmUHROdmhpMS9jCjJyejIya0liTEYxM0hj
SGc0bkx2dlVjZ3MvQ1o0SU1yS004OWR5WmNXVHZYSElLT2YvbVhmMm43THUreUV4STBmLzNyWDI4
ejhacEEKcERhZFBuMjZlZnZ0dDVzYmI3eXh0cWpxNWVuejFLYzA1WFdmZFBuUzlYVGw0eVFCMitQ
OTk5L3YrbmhtMzh2TlpyYWlFMVJzckUwYwpXNTk2NnFubXh6LytjWHRNNXRnOHplQ0RxbDkxMVZY
aDJMYzNIUHRlbUtBbC9WbjM3Tm16L04zVm4ydnRQeWxaYitsK1YxTFdVQXN1CjFIMHViZE5ZWDQx
NWgweHJIZEk2MUc2VFdOLzRtSllkMzV1WHh4S3JvZTAyNUhENzdiY3Zqd21IOHEzWFo3VjliS2ll
SmNmanRCK1YKdUErdGI3V2ZGVTNCNGd4a1RKemhJakdnSnhHY0hEdDJySDNPLzlLOFhHM0lFMmVZ
MHkrbXYvemxMMjN3c1d2WHJoWEJCOHNSNkhSZAorVWpMWkJBWlU3cnVkQjFjRVNIeE9XZTBTWC85
NjErYk45NTRvMzFlK3IrNHFpV0NkckVkT3phSEw4Sk5EV2ZxVjVQU3FXYWx5M04xCklCMm9VNSsw
VHZucldHN0pGS2ErWldNWnBZK2w3ZUtxQkVIUHd3OXZYZEVtMW5QMDZObm1vWWUyaG42d09XeTdU
U0VRM1JLdXRpMisKeitjMzNMQTVCSnhibXUzYk40Y3JaWnZhZjBlT25BMVgwUmI3S0hsaUlwQzUv
ZmFWM2YydXUrNWFEajVpdnZTUkszVWNKR29TK3djQgpNbWM3cHBHR25MbThteWYybDIzYnR1VnZk
Nzd1cXZza3k2ZUZEdFV6elJlZngvd2NiK0l4SjM1Vyt4akxyaTJuYS9rdXM2NTh2TmUxCmZmcnlu
cy8zUzlwRWtJaHIzRmJ4cXZoYTFidHZtOVgwajY0eVkvM0g2dDIxN05neVE1K1ByWGVTL1c2c3JM
NTZ4RFpOWWpwcmZYaW8KcjhiMnhmYjNtY1o4a3pqRU1ubnNxc05xdDBsYWJsL1plWjZoMTdGdFEz
bjZQbHZOc21QOW82dk1NYXUrN2RaWDcvVDkxVzdUdEl5MQplQjdiM1ZlZitQbHExelYyUEo1bUg1
Mmt6dWRHNzVNc0ZmSXlqWVBFRncxbktWZVRtQ0xGdEMxU1h4a01FbXZtck9mMVNnZVVCQ0h4CnJQ
VGh3NGViSjU1NG9yMkN3aVg0MHNROUV4OThjRFlzZDI1dysvcnJaNW8vLy9sTXVKUy9wUjAwdi9i
YW1YYVFmZDExbTBNQXRFak8KUFE1UFBIRW1ESUNiZG5rZW1kckZZSHZIamszTmIzNXpPanpmRktZ
R05jMkpFMmZEQUhaeE1NNTByd01IempTSERwMXQvdW1memdXRwpRL1Zsa00veUJCY0hEeTZFSzBK
YndzRDZYSDN6WmFuYmswK2VEbE9TRnE4a2ZQM3JXMExkTm9jckJIWHR1dmJhbGV0a0ovdjk3eGZi
CkdVNmd0bGM3dU5MQjFTWlNmRXpyaDAyY1dwVUdZVEhQb1VNTHpUZS91YkpiNDNYVFRacy9jMjlM
WDUrTFpSRzRNaDJMeEJVMStndkIKTmxmdHVLcEdnTXcwRUtiN2NlV1A0SmFESTlNNHVNSzJkKy9l
NXU5Ly8zczdKNTYrZnVMRWlSQlFQZFRtaWVzNGN1Ukl3NlZoZ25XQwpaaTZiL3VNLy9tTTc5YkJy
ZlcrKytXYTd6M0JGa1lQN2dRTUgyaW1IWC8zcVYwTkFka05iTEgyWmdJZURHMWNvcVN2OW5qcVMv
OUNoClE2SHYvRk5icjVkZmZybGRGL3N4WjVKWjV0dmYvbllJNnJaL3B1N3NGMXdWS2wyZXluQ1do
ZjJLSzZSTWxlU1JrdzNZTVRVeVQvSE0KRGRNek1jTTdQWm5BNTNqekhsTXF5Y2NaTWR4SmZkdUp6
NWoreWZMVUNaZnZmLy83dkwwaWNmL0NrQW1aaCtvd3RyMVp2bS83OEJsMQo0OG95VHZRdHRsczhI
ZzE5TmxRbnR0bWYvL3pudGh5bXhESjFsYXZEWEcybXo0NjFlYXhOOUYvV3dmN01ldGcyYkpPaE92
WDErN2kvCllVR2FwUCt3ZlpuS1M5OTk4TUVIMjVOazlCLzZIeWV5K05MbCsyWm8zMkdkdElNK3hy
N0NTYXRISG5ta1hZYlBTdm9RZllzWkF4eGYKdnZhMXI3WDdDeWZhMkpaNHMvNFhYM3l4N1lOYzlZ
Lzl1Mis5K1g1TFBZYjZBcC8zbGNWbmVXSTdjZldxYTUvcjIwNHMwM1dNV1czYgowem9OOVp1eHZ0
elZWemxlVVNabWNiL3ZNaDF5b0g1RHg1YTAvbDExNFBPaGJiTGFzdWxqSExkcit2eVFOL1VlMmdm
cHUxM2ZYNVRaCjFUOUt2citHckxxMjI5aStRSGxwSXYrVFR6N1o3c3YwZVdZODhKMUVHcklZNjN0
ang5RllmdCsreHVjbHg1ZFlUdC8zWU4veG1PVmkKbW1ZZmplc29lVnc1SWl4WUFtUU84a0R4WmZi
b280OHVuL1VxV0h4RmxuUnFSZDlaV1FaRThXckxpb1ZYK1lLQkN2ZVZrT0s5SXp5bgpQUXdRWDNy
cEpWNE9KczdNNzkvUGZTdW5tLy96ZjA2SElHWnpHMmpFaGZiczJkSU85dU9OMUxmY3dsbDY1a2Fm
bS8venlpc0xZZERaCnRHZjRIM3BvUy9nQ1A5dE9JeUlmOXpiY2UrL205ak9tSDNIUDhNVVhid29E
aHNXQUpJeUZ3K0RyWEZseHZWMlBsTVVnZi9mdVRhSE0KTFdHUXVxbWRpdFNWTjc3SDFDYXVMbkJW
Z2pZUURISDFwTFpkc2Z6NFNCdmk3d3NRWk9IRHVwNTRvbnVLRUFkd3BycWx3VjRzaTBlbQp3M0hT
ZitmT2M5MzZ3dzhYd2hkSEU5cC83cjEwbVpMbkRQUUpLcjd3aFM4MERCZ1lQUC9tTjc5cHAyY3hE
WVQ1NGdUSkhOajRJbUVhCjRONFFmSkFJUk9qYjNBZkZZQ1FPbE5zUHcvOWlrTUNCbVlNZ1V4NFpm
UGF0YitmT25lMTBMZ2FSWERiOTFyZSsxWllmcDBneXlQcjkKNzMvZkJrNnNtNkNFL1pYRXVxa2ZB
M2NTNjJPQXhwVkFya3pHZlprQk1DbXZPMEhTSk10VFJ2eHlJdkRpSHdkeEFqdStNTHNTVjRzWQpH
RFBWay96c2t6R3gvWC85NjErMy9nd3d2L25OYjdaZmNyLzk3Vy9iTEVQYmljOFk5TjE1NTUxdHU5
aUdsSmVuTVpPeE91Um0rZlllCjJqN1VoWDdGbFRmS0lmRGdTNFpBWk9penNUclJUK2huOUU4UzA2
UHdKNUFtamJWNXJFMU1iZUFmaVcxRzhERldwNjUrMzNYRmZKTCsKdzc3RGdBTGorSjNCSSs4UjdJ
N3RPMjBEd3Y4WXBMTGZFS1NUNHY1UTJvZlkxL0VsZUdGZjVoNHlqS2xIN1BjRS9Cd25ZdkRCZXZy
VwptKyszNUIzcUowTmw4Vm1laHZhNXJ1MUV1L3FPTWF0dGU2elRXTDhaNjh0NVgrVlkwN1hmZDVr
T09Rd2RXMkxkNDJOZWgzZ002TnUrCk5XWFR0MnI2L0pnM2JScmFCeWZ0SDdYN1lOZDJHOXNYNG5h
SmozeDNzbjgvL1BERDdUR1I1ZGtHWXhaamZXL3NPTXI2eC9wWVYxK04KOVk2UFkvWHNPaDdIWmVQ
ak5QdG9YRWZKNDhTak1nNllkQUlHVld4SXpoYXVOaEhOeGhTblNjWFgwM3hraHlYeEJjekdKUEZs
d0tDRQpnYzlZQ3NlMHNGd1R6aWh6dWZWc0dKU2RiYTlTcE1zRnBoVXBmMzNnd0dJQVFxWXJydGpj
QmlPVXlWUWl6dkFUMUpCZWZubWhIWFJ6CjFZS2RuVUNFcXlDbGlicmVkdHZtOEFXNHVBeFRtYmhp
TTVUMjd0M1NYbjI0NXByTjdUMFd0Sk9iNzBsNU8vTFhRKzNLMThsVkdkS0QKRDI0SmRkd1NCdmhi
bS92djM5SzJtWHM1OHNRVkdXNVE3N3Q2Yy9BZzA2L09kV21DcGhkZlhBajM2NXg3THkrejVEWEJL
ZjJFTTJuMAplZm8vZlNkZUJXUndROERCWUpFQk5vUGNQTEh0dWhJQkRJTVJEc3dNUEJuQWNlOVQz
L29JbnZsSFhzNFcwMmNKakFnTUNDYllqK0tBCmgvVXhXSWlCTm9PaE9ERGpNd1o4QkI0Y09QbHhD
ZllMQnYvNUZjZFk5OVVzejFua09MQmszVHluYmZFa0FQV0lDVSt1RGxBWEV1dU4KVjNWNFRaREdZ
Snd2QWxKc0s4dXc3TkIyNHN3V1Btd2ZFdnQ3M1BmYk41YitOMll5Vm9kWVZqU0xyK05qckRQbXBI
VDcwQTYyVmJ3Swp3Qmx6enM0eGFCMzZyS1JPNlVDWDlhYXZ4OXBNZmxKZm14WS9YZm4vc1RwMTlm
czRPRTlMbXFUL3NCd254YmpmS3ZaaCtrWHNRMlA3ClRsd3YrVG16elA3QXZoM0xLdTFEbE1NK3lE
WmpZRU9pSEk0ZkJFY2tQbU93bnFhKzllYjczVkJmaU9YMWxSVS9qNDlqKzF6WGR1SjQKMVhlTW9k
elZ0RDNXWjZ6ZmtDL3R1MTJ2ZVMvMjFiNXRscHVPT1F3ZFcxaGZWNHAxaUovMWJaUGFzbXY2Zklu
MzBENDRhZitvM1Fmego3VmF5TDBULytNaDNOZDh4N09OY0dXVWNTamtsRmtOOWIrdzRPdGJIK3Zw
cXJIZDhMS2xuekR2Mk9NMCtPclp1UGw4NVY2VmdDUVk4CmZFRXlVUG5GTDM2eGZGUFBhbjQxSlAz
Q2lZTWtxc0NsTzY1RXNNRklJTEZPcHBMa0hhRE5NT0gvNG8zRnJEOXVBTnJGR2VDU3hHQ2UKRzdZ
NTZjY2c5MWUvT2gxK1VlbDArTldYaTBMOXVnZWFlYmxoSEJiYWR5NFE0UFUxMXl3dUc4dmd4bW51
ajdqenpwV0Q3cDZ4Ykw2Swo5alh0NDRadEJ2U0x3Y3hDaVBvN3N5Ni9HY2JYeTJueHlzR1o0aXN1
USsxYUxuVHBTUmdUdG9tclBqRngvMFlZeDRlQjV0a1FhTVIzCm0zQ2w1R3c0UUN5RUFWbFN1WE1m
dDgrWWZzVU4rakVSZkJCOEVkZ1JLQzZOQmRybkdNWWIxMlArdmtjR3ZSdzQrZUlsOGNnZ09CMUUK
YzliMzV6Ly9lWHNGSS9hcHZ2THk5K25USEZoaktsbGZ6TXNqQjFJR3RseWRaR0RMUVpWOWlKTURE
THJqbVcveTVuWExYeE5jeFVFVAorZk9VNTg5ZjU4dHpVSTc3TVdYeG12cDJKZklScERBb2o0bnlZ
bUk2Q012VDFwamlZSjMyTWxEczIwNHN0M2Z2M3ZZTUZGY0FPSmFrCjVjVHllQnhxMDFnZCt0b1d5
NmZzdnUxRCsyTjdZbjdxVEJyNnJMWk9sRC9VWmo2Zk5KWFVLZS8zWGV1WXBQK3dQRk5xNlFOOGYv
QWoKS0F6Njc3Ly8vcTZpMi9meWZZYzNVd3Y2WXR4L0p1bEQ5REdtZVJBTU1kamhhai83RlFNZHZq
dEphZC9tZGQ5Njg4K0crZ0o1U1VObApMZVpZL1AvWVBrZXVmRHRSZGw4Zkp2OXEyczV5cEpKK3M1
aXo3UDlEMnl3MUduT1k5SmpjVmJ0MGZXbS9xaTI3cHM5eklnMmo5RmdZCmowRWNVOWsveHZiQlNm
dEhialBKUHNpeXFXUEp2cEN2TDkzdllsdVpGY0M0Y013aUx5dC9uZGFOejlMdnc3RStOdFJYMC9X
czlUNlMKbHAzV2Z5MzdhTHFPOVBtNWIvZjAzWUxuREhTb0lGRWJaeFZqQUpJT3BPS0JPeTB1SGR4
dzFwY0djeVl5blk3Rm1UOEdDRC83MmMvYQpUc0dBaitrcmE1WGl6L01TZE5RbUJyR2NsZWZYbVJn
QU05MnFKSEYveUdPUG5RNkR4b1d3OHk5ZStlRCtqelR4ODdOOHhsV0JtdlQ4Cjg2ZmJxelZjUmVH
QzFidnZMcDZGS3ltVEt6S01BWlB4OGVCaUplMktCY1RBZzZsWTNNaFA0cjNRSlphREJkNmpmL0RU
dzEvNjB0YmcKc1ppUDk5UEVWU2pLNGI2Wm1MaGk4dlRUNTRLOCtQNy8vSitud3BuU3pXMTU4YjJo
Ui9vNGRlQnNUMS9pekNZSEVPYmozaGJPZnZaTgpLZXhiUG4yL1pIMXBmcjRBK0JjUHJFd1o0YXdP
K3hCQnlGcituWVIwdlNYUG1VYkVUN0lTSFBFbHgrQ3diNy9qS2c3L3NFNFBoUEU1Cjc3UHY4cVVa
anpNRUxQRVlNdWJHTVlSakNiL1N4NWNySnh6WVpwT2tzVHFVbE5XM2ZmZ0NwRjVkYWVpenRhaFQx
enByM2x1ck9rM1MKZjZndmZZSDdCakVtOE9EN0p2YVZydmJrKzA1WG52UzkwajdFT2hrWUhnaFhB
Tmt2NmZPc2l5dW85Ti84NmtlNmpySG5RMzFoYk5uOAo4N0Y5THM4ZlgvZjFZVDZ2YWZ0YTladFlU
eDVMdHRtWXc5aXhKVjNmcE05cnk2N3A4L1Nsb1dNcWJabDBIMlNab2Y3QjUybWFkQjlNCmw2M2RG
L2crWXYra3orSXdacEd1ZTlMblkzMk04a3I2NmpUMmtiRzIxUGJSdnZKWGpuajdjblc4ejRBclhr
NG1FSWtwUnBTOGpuUE4KNDJma2o0TUozbU9qODJWQmluZnR0eS9DLytKZ2hkZnBsWkw0K1dvZk9R
TkZZRVNuWStwS1RIUTg1c3IzRFFCaXZxN0hwYXZxNFF0bQo1YWRodk5TYkdDaHpaWU9CTTJmbUgz
bGtaU3pJcjJweG53alRreTRPMDY1STNDY3hhZUx2aER6enpFSm82K0lVcmttWFAzRmk4WXBKCkRC
Qll2cVpkNmZvcGs2NFRwMkx4V2ZodWJzdm5adlNZK0psZUFvYjBwblB1N1VnVHdSL1QxdEwrOVoz
dmJHMnZTbkZsaW45ZitjcVcKZG4wOHYrKytiR09saFdYUDZYOWM5bVFuakltQlRmb3JhZ3hxdi92
ZDc3WjltcWxZTmFsa2ZXbjVYRDJrYmdSSW5FM2pCbVA2ZG1xUgo1bC9QNXd5OG1KTEd3UmN6YnVq
dFMwd0hveDNweVlnMEx5Y3NTTFF4SnNybGdNeG5RMjRFWk54UHdwY3BONS96eGNYVWgwblRXQjNH
CnlodmFQdFNmZW5MVktpYk1DQ0NIUGl1dEUwN3JsVXJyTkZhZlNmcFBMSXNUQUh6WGNFTThVNStH
VXJydkRPWGpzMG43RVBWZzNqOVgKWTNpK2QrL2U5b29NMzBGalY4cUc2akxVRjRhVzYvcHNiSi9y
V21hb0Q4ZjhxMjE3YWI4cDdjdWwyMnpNWWVqWUV0dTgyc2UxS0h1MQpmYjdFZTlKOXNLUi9wRmFU
N0lQcGNqeXYzUmY0VG1BOHlIZG5pUVhyTE8xNzVFM1RXQjhyN2F1bDlVelhYZnQ4TGZwb1Z4MktB
aEFHCjV6SEZvSVBMU1h3NU1zamhTejBtempEeWo4VFpualJ4ZzAyOFdURyt6ejBYbk1Xa1hNNFdw
WW55eHhJRGlaZzRzeFJUK2p4ZWlhRWQKREE0SmZMaUJOZDRMd2pJTUlQbkgyZHErRkZlVlZvdHBV
dnpLRXJlVmNNOUVUQXl1MzM3N2JCaFE4U3RaQzJGNkNQZUt4RStiNWk5Lwo0UmV3dUxGODhXZDhB
K055b29QekJ3R3Z2WFpUbU5Lek9GRG1QVzRPSnpFT0p1aUpPd0xQK1JkVCtqcis1Vy8rVWpvM2xM
L3h4bUpBCndkU3h1SHhjTGo2bTdlUGVELzc0SC9lcGtHcmFGY3VQajl5UHdoVVQ2aFFUZ1JkLzVE
Rk9SK1B2ZzdCWjhUdDA2RXo0UWo4VHR1SHAKRU56R0pSWWZDVUR5bjk4bFlJay96OHZqSmVGa044
NDhqMEZkTElXK3hyKzByOGZQR0Rnd01LWnZjTUJpcWcrL2FoT3ZpSEFGa09lYwpUZUhtNlAzNzkz
OW0yaEhCT040TW1QUEVlbU1mNWJPeDlaRW5MWWNCRGRNOHVITElRWXpFb0pVeUNaSjRaQjJzbjNh
d3I4VnRuejVuCk9UNG5iMHhjSVVqclB1bnlPTEcvTWUwRW82R2dpS2tibkhqZ09FR2lIcHdRb0sy
MGdiUEdITVRUd0kvUHVScEwrVU51MURzZWozQmkKUGpiYnF5c05tWXpWZ2ZKeXMzUWRROXVIOW5N
MjhQSEhIMi83RDhkWWZzR0pMeHh1c083N3JLUk8yRE1kQ0FlKzhPbkRhUjhhYXZOWQptL2c4SG04
cG4xUlNwN3pmdHd0bS94dnJQOVNiZjJuQ0h5OEcvL0ZYRHRQUDAzYW4rdzU1NkdleERmRTE3NUVt
NlVQa1o1L2tSQmYxCjRTUWR3UkRQK1RMUDk0T2g5Y1oxeDIwMDFCZklPMVlXZVdJYTIrZklsMitu
b1Q0Y2p5dVR0RDNXaGNlU2ZqUFdsOVA5ajJOWDMzN1AKOW95bVl3NUR4NWEwL3ZGNVdvZDQvT3Jy
VjdWbHMwN1d0NW8rWCtJOXRnK3VwbitzZGgra3JlbDJHOXNYeUo4bjZoc1QrejlsTUFZdApzUmpy
ZTdFL3hmS3BhMXpmV0I4amIxOWZqZVh4V0ZMUC9IaWNMaCtmVDdPUHhuV01QVzRKbDZuL2JTalRn
UkFVY0RrdDdqeDg0VE9kCmdsOUc0Q0REejMvbVo1bVlIODhBaUxQR1BISkdrMEVGQTM3T2hxWUhY
NzVVQ1Vvb256d2NQTm1Jbkoza0M0UXJLdHhrUlFmSkUzbTQKYWhHeFdROWw4OGhVR01vaGNVYVJl
ckJ4K1RMbkR5RXlDRWtUQjZwNFpvcU9raWZ1UC9qclg4K0VBZWppeitaeTFwNi9MY0Y5RmZ4RQpi
ZjUzTEJqZy92M3ZDK0hzRndPL0pyUjlVMmpqNGlQVGpQaHAzR2VmNVpkNUZrSmRLWHVoblVKMC9m
V0xmM0NQcXgvOGNoVy8rc1EwCkxmS0ZZMHo0UXVQbmFoZkNRSlBuVEYvamI1b3N2dVp6OXEzME5U
ZGxFMFJRRHdidGQ5MjFwZUZHOGZmZlB4czY4c29yQnJTWklJVS8KK0VmZ3hGOWJaejM4U2xlYyts
VFRybGhHYXN1VklHNktKNERnYWhDUFgvMHFsMFEzdGUxKzdMSEZ2NEwrMm1zRVlHZkRkTC9GRy82
cApVK3hIL0hyV1UwK2RDVmM0K3Fkb3NVN1c4OFliWjl1Z0o2MEQvWU9yQmp3U2dEQUlwcC9RTjBr
TW9CbjRjaWFUUGtvLzRpK3Awb2ZZCkYvakZLZ0xwT08yS2FVLzBKYzRjTWNqbEM1dWYxMlhReDRD
SVFVbE03Ri9zU3dRMjdCOE1wb2ZXeDNLVVQrRE5NZ3hTK1JmL3VDZnIKWTcranJ2UnByakN5RHZZ
SnlxY2UxSWM2c0sveGMzeTBtYnBTSnZzTjViTGZ4Yk5Mc2U0c1Q3bVRMSThEZ1QxdWxNMVBDMU12
amgwNApwNGxCR3U3a1lUMjBpM3B5QU9lUmd6K0JCbVd4ejNQTTRCakFNWWlENlpBYmJXTk9QdHVV
THovK2NWeUpmU2pXZzBFNjdlMHo0VGcwClZBZktHZHJlUTl1SGdRaHRwRTIwbjdwd2J4SGJBUnY2
Vzlkbk9JN1ZDUnUyTmVVeVNHUmI0c2Rqckc5Zm0vTitrUGRoanExc00wdzUKNW5JQ2luMWhxRTVk
L1Q1dWcvUnhxUC93WFVTZm92NXNmL2FkMktkb0wvMDdQNVlQN1R2czEreUx1TEEvMEI3YXhmNFE5
OHVTUGhUcgpUOS9DbEgyUSt2Q2Fmc3ZaYWw3SE5MYmUrTjBZOXp1K2I5ay91L3JDV0ZuNTkrallQ
c2N4TVQ4K0RmVmhCa2UwczdUdDBTQSsxdmJsCnZLK3lIVG5wbU8vM25LWG5PSkthc28zN2pqMlk5
MzBIeExxbmozR2Y0cGpQL2taLzcrdFgxSEcxWmFmNzRtcjZmSW4zMEQ0WSsxdjYKL1RYV1AraFBm
ZDlmc2J3K3EwbjJoWFI3eE9jY0V6aEJTRGw4djdDZCtPRVhIRW9zTUY3dGNaVGo5OUQzRzhmaWt1
UExXRDI3anNmcAo4U1phVExPUHhuV01QVzdhdDIvZjFLN0xjN0RsQUFZWUI3NHVoTFNDN0tqc3NN
RFFpZm1YRHRiU3ZOTjR6azdFT2psNHJrWGl4bWNDCkJBSUZyamlrQTNEdXk5aXpaM1A0d21iUXZ6
ajE2UFhYRjBJMHZqa016bFlPek5haUxnUVcxSU9VMTZXci9FL0NUZDk4UjZaMWp2bW0KMFM3S0RN
ZUVGZE9zNHZyR0hsazJmTStIZy9qYWJMZSs5VEVRam4yVFBqMUo0b0RMSUdtUzFMZStYLzd5bCsw
VURxWlpNZURyS3BjRApiZHgzS0dmUytxYjFYRTNkNC9LY3ZPQ0VCUFdrVGh3VHVHTEVXU2VDa0s3
RWNZQjh0SXZsWWlDWTV1VTR3WDdLZ0NOUFhXNlVTWDdLCnhTTGE1TXRPOG5xb0RtTm1ROXVIdXJK
OERHalRPZzE5UnI2aE9tSEo4clI5TlgxaXJFMXBQZFBuUTNWSzgzVTlYMDMvb1J3Q0RRWjEKZVI4
cjJYZTY2c0Y3cStsRGVmL05YL2V0cStUOXNiNVFVa2JNUTFsaisxek1HeCtIK2pCNThyYm1yMk01
Zlk5RC9ZYXlodnB5N0t1VApick14aDY1alMxLzlZeDM2UHMvZnJ5Mjd0cy8zZWE5MkgrenJIelg3
WUc0V1g3UGQrbzZaTVUvNnlJa0J4cU45MzR0OUZwUXgxdmZTCjlYUTk3K3Rqay9aVnloNnFaOWU2
OC9lbTJVZnpkWFc5UG5jcXR1dlR5dmZZd1BuVmthRWlHU0FRcU9SbmFZYVdXY3ZQK01McVN6LzkK
NmJucFhYMTVKbjJmZXpQeXhOV0pDejFkS08zYXQrL2NXY2dTY3c1V1hRUGVrbVc3Z29TeDVjYld4
MEN5YnlDZHZ0OTNrQjFiZi94OApOWFZuV2I0UXVVSVVmNkFpbHNkK1ByU3Y4WGxjWjFmd1FUbHht
bWNzTTMzc2NxTk0wdGhKa0xTY3NlZERkWWoxN3l0amFQdFExNjdnCmc3S0dQdVB6b1RxbGxxdnBF
Mk50WXYxZGFhaE9YZm5qZTZ2cFA1elpwRzJjdFdXYWJWOGEybmY2bGxsTkgwck5LVGQvM2JldWt2
ZkgKK2tKSkdURVBaY1h0VzFySG9UNU11WGs1K2V1NDdyN0hvWDZUbHRYVmwyTmJKdDFtWXc1ZHg1
YSsrc2M2OUgyZXY3L2FzdGVxejNkNQpyMllmak8wYTZ4K3IyUWRqMmZuanBQdEMzL0UxbHR0bEVU
OGI2M3N4WDk5alh4K2J0SzlTL2xBOSs5YWZ2ai9OUHBxdXArLzVWQU9RCnZwVmVpTzlQT2xnZGF1
T3hZd3ZOLy83Zi9BSERUV0hLeGVad1pwam9uWitRNU85L2xOOGNQYlNPOC9IWnZMYnJmRmoyclpP
ekpFd04KWVJyVHJDZW1pWEFqTUg4b2tLbEZuQkhqakF2VEJtb1BuTFBlZHV0WEx6QnAvMkZxQlAy
TnFRejhta3o4UW84MXVaRDJuVmhuSHhVWQpFcGgybjU5MEh4eXFLNSs1RDQ0SmJhelBwem9GYTJO
UlR0WmE3bHZnSGd1bURuR3orWTRkazAzcG1XeHQ2NWQ3WHR1MWZvTERhMkwrCktnRUlpYXNJVEdX
YTVjUzBEdWJhY3NtYnE2RUdIck84dFdhdmJwUDBINEpicHZmeFJ6b0pRdkowb2UwN2VmMTlyVUF1
c0I1OWZwSjkKTUs5Zi90cDlNQmZaelp4WEpnQUFJQUJKUkVGVTJLOE5RRGIyOXJmMUNpaWdnQUlL
S0tDQUFncXNxOEI4bkhaZlZ6Slhwb0FDQ2lpZwpnQUlLS0tDQUFxc1ZtQ2dBWWVvSE41VnkyYytr
Z0FJS0tLQ0FBZ29vb0lBQ0Nrd3FVQnlBOE52NC9GME9mbVA0UC83alA5cWZJcHQwClplWlhRQUVG
RkZCQUFRVVVVRUNCalMxUTlDdFkvTXpiVTA4OTFmejR4ejl1ZjFtRVArNlUvaFRaYWdqNVJSeisw
QmEvaUdOU1FBRUYKRkZCQUFRVVVVRUNCalNGUWRBV0V2NkljLzBnS0xMVy9aTU1mY3ZuZDczN1g4
SmRzVFFvb29JQUNDaWlnZ0FJS0tMQnhCRWF2Z0x6eQp5aXZ0VHhzU2dQQWI2MXo1ZU9DQkI5by9a
Zi8wMDArM3IvbWJCUHpzSWUvengyVzRUNFEvWU1OZkZTZFllZUdGRjlvcko5Lys5cmZiClArVEdi
MWVUaDUvbTVLK1BQL1RRUTcxL1VHM2piQXBicW9BQ0NpaWdnQUlLS0tEQS9BdU1YZ0c1L2ZiYkcv
NlJDQlFJTWdoR2Z2M3IKWHpkWFgzMTE4K0NERDdaL2NaYXJHZnpCTWRLdVhidWFZOGVPTlcrODhV
Yjd0d29lZmZUUk5nQjUvdm5uMjgvdnZmZmU5aS85M256egp6ZTBmakVyL1ltYWJ3Zjhwb0lBQ0Np
aWdnQUlLS0tEQVhBcU1CaUJkclg3enpUZWJvMGVQTm52MjdHay8zcng1YzNQYmJiYzFodzhmCmJ2
L29HSC9lblQrU1JpQnkvZlhYdDFkSHJydnV1dWI0OGVNcmlzdi9VdTJLRDMyaGdBSUtLS0NBQWdv
b29JQUNjeWV3cWdEa3lKRWoKRFVFR2dVZE11M2Z2YnAvRyt6cnk0SUtySEFzTEN6Rzdqd29vb0lB
Q0NpaWdnQUlLS0xBQkJjNUZFQk0wbmlsWTNMOXg4dVRKNWFXdQp1T0tLZHBvVm41a1VVRUFCQlJS
UVFBRUZGRkJBZ1M2QlZRVWdPM2Z1Yk10aUdsWk0vSkZDZ28vNFdYemZSd1VVVUVBQkJSUlFRQUVG
CkZGQWdDaFFGSVBGS0IzOFBoTVRONDl6andVM21NVEgxaW5zK3VOZUR4RS90cGxkRFdEYWRnc1VV
TG40OWl6d0VML3hka0NlZWVPSXoKOTRuRThuMVVRQUVGRkZCQUFRVVVVRUNCQzE5Z05BRGhMNS92
MzcrL2JlbXp6ejdiQmczOEZPOGpqenpTL2lGQmZ0bUtRT1MxMTE1cgpIbjc0NFhZYUZuOWdrSUNF
WmZuSGMyNVEvK0NERDlwSENydmhoaHNhZnVMMzhjY2ZiKzhsK2Vpamo5cWY3aVcvU1FFRkZGQkFB
UVVVClVFQUJCZVpUWU5PK2ZmdXFidHJnbDYyNDRYejc5dTBUQzMzNjZhZnR6ZXh4UWU0cjJiWnRX
M3pwb3dJS0tLQ0FBZ29vb0lBQ0NzeVoKd09nZkloeHJiODFmUldjYVZwb01QbElObnl1Z2dBSUtL
S0NBQWdvb01IOENvMU93NXEvSnRrZ0JCUlJRUUFFRkZGQkFBUVhPbDRBQgp5UG1TZDcwS0tLQ0FB
Z29vb0lBQ0NteEFBUU9RRGJqUmJiSUNDaWlnZ0FJS0tLQ0FBdWRMd0FEa2ZNbTdYZ1VVVUVBQkJS
UlFRQUVGCk5xQ0FBY2dHM09nMldRRUZGRkJBQVFVVVVFQ0I4eVZnQUhLKzVGMnZBZ29vb0lBQ0Np
aWdnQUliVU1BQVpBTnVkSnVzZ0FJS0tLQ0EKQWdvb29NRDVFakFBT1YveXJsY0JCUlJRUUFFRkZG
QkFnUTBvWUFDeUFUZTZUVlpBQVFVVVVFQUJCUlJRNEh3SkdJQ2NMM25YcTRBQwpDaWlnZ0FJS0tL
REFCaFF3QU5tQUc5MG1LNkNBQWdvb29JQUNDaWh3dmdRTVFNNlh2T3RWUUFFRkZGQkFBUVVVVUdB
RENoaUFiTUNOCmJwTVZVRUFCQlJSUVFBRUZGRGhmQWdZZzUwdmU5U3FnZ0FJS0tLQ0FBZ29vc0FF
RkRFQTI0RWEzeVFvb29JQUNDaWlnZ0FJS25DOEIKQTVEekplOTZGVkJBQVFVVVVFQUJCUlRZZ0FJ
R0lCdHdvOXRrQlJSUVFBRUZGRkJBQVFYT2w0QUJ5UG1TZDcwS0tLQ0FBZ29vb0lBQwpDbXhBZ2Ex
amJYNXA0YVd4TEg2dWdBSUtLS0NBQWdvb29JQUNDclFDZDI2K2MxRENLeUNEUEg2b2dBSUtLS0NB
QWdvb29JQUNheWxnCkFMS1dtcGFsZ0FJS0tLQ0FBZ29vb0lBQ2d3SUdJSU04ZnFpQUFnb29vSUFD
Q2lpZ2dBSnJLV0FBc3BhYWxxV0FBZ29vb0lBQ0NpaWcKZ0FLREFqTVZnSnhkT050OC9QN0h6VWZ2
ZmRRc25GNW9LLzdKQjU4TU5tRGFINTc4Nk9Ub0trcnFYWkpuZEVXRkdiQXJxWGRoY1RPYgo3ZlRK
MDgybkgzNjZYRCtNUDN6M3c5N1h5eDlNNFVsZWwwbFhrZGQ5MHVVL2svOXMwNlQ3VG0zOVBsTyti
eWlnZ0FJS0tLQ0FBcXNVCkdQMFZyTFRjMS83OFd2UE95KzgwbDExNVdYUHB6a3ViSXdlT3RCOWZk
dFZselVXWFhOUU8vczZjT3RNOCtLTUhtL2ZmZkw5NTQ3azMKbGdlSWwrKyt2Tm0rZTN2RDV3d1NQ
em4rU1hQai9UYzJOM3p1aHJhTTQyOGZieWovNnR1dWJyWmRzYTFkejRkSFBtd3V2dlRpNXE1Lwp2
S3Y5ckhUZFd5N2FrbGE3cmVlaFp3ODFwejQrMWI1L3hYVlhOTTJtcHZubzJFZk5wVmRjMmx4Mzkz
WE56aHQycmxnbXZ2amJyLzdXCjNQSHdIVzE3NDN2cDQxaTl5VnVTSnkyejYvbEx2M21wT2ZIZWlk
Wnc4OWJOemRIWGpqWVhYMzV4Ky9yVUo2ZWFEOS81c0xuMUs3YzIKZkhiZ0R3ZWE2ejkzL2JKdFYz
bno4TjRiejc3UkhIL25lSFBmLzdpditlam9SODJCUHgxb3QvRURQM3pnTTYrbjNkNjBMcE91SzYv
NwpwTXZuK1FuZ0QvenhRTU4rY005Mzcyay9ycWxmWHI2dkZWQkFBUVVVVUVDQkdvR0pBaEJXZE1Q
bmIyaHV2Ty9HWnVITXduSUF3b0QrCnB2dHZhazZlT05tODhGOHZ0UFc1NnBhckdzN3FNaEFpc1V3
NzhHOWZOVzFBc2ZTMERVcGVmdXpsWnZldHU1dnI3cm11Zlp1QTRQVW4KWDI4Ky91RGptSzE0M2Nz
TExEM1p2WGQzZTBXQWdJaDA4eGR2Ymk3ZGRXbHorSytIbTBQUEhHb0RoTHUvYzNlejQ1b2RTMHNz
UG56dwoxZ2ZOcHljK2JkNSs2ZTNtMWkvZnV1SXpYaEJNamRXN0pNOW5DdTU0ZzhEaS9oL2MzMnk1
ZURHNGV1L2dlMjE5OTM1MWI1djd2ZGZmCmF6akxUVnNaYks1VjRtb0tnL3krQUcyUzlheGxXYXoz
NWdkdWJoWk9MVjRwSXdpbS83Qk5TZm5yOXMwMS9GL2VsclF1azY1bXJldksKQ1lMdDEyeHZQbm4v
M05YRG12cE4yaDd6SzZDQUFnb29vSUFDUXdJVFRjSGF0R1ZUYy8wOTEvZVd4eGw1Qm9GTm1QNUJT
cTlFYk5vVQpMam1FUkpEQ3RKa2JQMzlqczJuejRuc25qcDVvenB3ODAzenc5Z2ZMVTYvSXl4VVNy
b0NRSmwxM3UxRHl2NjJYSkxIVzRtcWI3VmR2Clg4NUJzSkduZDE5K3QzM3I2S3RIMjJBai83eWsz
aVY1OG5LN1hsOTcxN1hMd1VmWDU3dHUydFZlbWVLejZOcVZiNUwzQ0NCZmVmeVYKaGpiVXByVXNL
OVpsODViTnpkWnQ1N1pyN0dQeDgveDFmTC8yc2FzdGVWMG1YY2VhMVhWcDMydkxXK3JuMUdYUyt0
SEc4NUhPMTNyUApSMXRkcHdJS0tLQ0FBaHRWNE56b3JVQmd6d043Um5OeHBuVW9IWDM5YUhQNVZa
YzNPNjdkc1J6TVhMYnJzbllSenRnKys3K2ViYSttCkVNZ1F3T3o5MnQ3MnM3VllkMTZ2ZExDemJm
dTJGUjh6cmVtaVN5OXEzNHRYZXdnQzBsUlM3NUk4bEVrQTlPcWZYbTJ1dWYyYTV2cDcKUHh2a3Bj
RlNXb2Y0bktBRDErVVV4bzljM1RueTZwRm15OVl0elozZnVyTzVaUHNsN2NlMDdmQ0xoOXQ3YmJo
Q2M4dVhibGtSak1VeQozdjc3MjIyOVRuNThzcjJDUkw0enA4OTBMc3UwbjRQUEhHeE9mWFNxdWVY
THQ3VHI1T29YVjdUWWxsMWxjVlVucG1PSGpqVUhuampRCjdMaDZSN3ZOZWYzNlU2ODMrSEgxaWJx
LzliZTNHdDYvKzl0M042Yy9QZDI4ZStEZDV0Z2J4NXJQUGZxNVdNeEVqMzBPVEpsanV0L0YKbDEz
Y2JOdXhyWG56cjI4MkRPaVpDbmpKNVpkOHBpMU1JNlJmeDdvUXNMMzd5cnR0Y0xSNTgrYm1yYisv
MWR6MXJidmFLWE1sN2t5dgplL1A1Tjl0MTNmemd6VzBkdURmcTFTZGViVzc2NGsyZnVWSkhvN2tp
Z3hjQk8rMWllaUZCQjRtcGg3a1Y2MkRic3oweHZmZDc5N1o1CjZZZHNTNllvOHY0dEQ5M1Nib01Q
RG4vUXZMdi8zZWFTSFpjMFo4K2NiZnNWSmx5QnUrTDZLNXF4ejl0NkRQUzd2dlgyV1RLbDA2U0EK
QWdvb29JQUNGNmJBdVJIZ2xPdlBWQ1lHUFhHS1RMbzZyazdFS1Q0TWxoaTRQdmVMNTlyN0d0Sjhh
LzJjK3BDWUFzTVZoRFJ4Znd1RAo1MWd2cG1IbHFhVGVKWGtvbDZzc1hCMWk0THNXNmIxRDd6VTdy
OS9aZk83N2k0UHo2SDcyYkpnV0YrNFJ1ZW0rbTVwN3ZuTlBldy9KClM3OTlxYjBDbGErWDlsKzA3
YUxteXB1dmJBZWFYSVhxVzVacFB3ekV1YmVId1REYjhlcmJyMTY4SWhZS3pzdEtndy9XaXorRGU2
YVkKRVhneWxZemdnd0YxREp3SUJpaVRZSXZCTlFQdDlDYjB2UDVEcjRjY21KNzMwZnNmTmNmZVBO
WUdEZmQrOTk0MkFEbjh3dUwwcnJ3dApXeS9ldXFJdURNenhmLytOOTlzMnRNRjBhRmVmWFY1UHBp
OXlaZWZNbVROdDhNSG4zQmVGUlQ1Tk1DNzc4dTllYnFjNE1rV1NvQ0g5CkVZTGNpc0NiUU9pYU8w
S3dHNjVvY204V1Z5MTVmLzhmOWpjTTdubWZLWk1FUWlUdStXSXFIdnZNbFh1dWJPNTgrTTQyUUk5
VExNYysKSC9JZVdtK1haWHJWSzdiZlJ3VVVVRUFCQlJTNGNBVFdMUURoSm1udVUrQ3NhMWU2L1J1
M04xZmRldFh5Und4a1gvelZpKzNBZlBuTgpOWHJDdlNEYzFNMDZHTEF4RUUrbml6RVlZMkRMR1hB
R3ZDUmVjNVkzVHlYMUxzbkRZUER5cXk5djY1T3ZZeld2Q1p5NEQ0QUFncXROCjhWNGFBaDBHZzV5
dFp6QkpJTUQwTndhWGZZbEJJR2xzV1FiSERMWVBQbjJ3dlNKdzdSMHJyeGhSUml5TDUzbmlCd2o0
OFlJNGhZL3kKcUdlOFV2WCs0ZmZiWUlqbENGUXUzWEZwWGtUeDY2RzJFRkFRREYyMjg3SjJFTTZW
TUF6cEwybUtiY25yUWpCR3NNU2dmT2VOTzVzOQpEKzVwVGh3NU1aSDc5WGRmM3diZ254NWYvSlV2
OXA4WURLZDE0RGsvNnNBVmhQUWVxelJ2WGo4Q1JLNm9zRCtTNkhza0FydXI5MTdkCkJrMjh4aUgr
a2hZRzdBKzdidHpWWG1ralNPRytMNEpBeWhyN2ZNaDdhTDFkbG13Ymt3SUtLS0NBQWdwY3VBSVRU
Y0dxYVNabnRCbkUKTVkya0t6RVF2dTFydHpYWDNIWk5PNENOOXgyODl1UnJ6WlczWERrNGNPMHFi
K2c5Ym9obmNOaVhHTXpGS1U4TTVEampldnFUMCszTgo2RXczU1ZOSnZVdnlNS0RqVFBzMEVzRVYw
OGhJdU1hcFJieG1vSHpWbnF2YTkzZzlsRXFXWlFyZU16OS9adkhLUjNJUHdsQzU4VFBxCjhmcGZY
bS92QldJd3pjQ1c0SVBBajc1RGl0T0syaGNUbHQ4dXMvUy9zYlpzWWc1U2t0aUdDd3VMaHNuYjU1
NnV6TjR3OVlvQmZFeGoKNjR2NTRpUDlqdTMwOXN0dnR3RU1nUmo5dGlzUlBIS0ZKQTJpVzZlMFRz
bHpBaElDRGU3dnVlclFWZTJVdWRqY203NXdVenQ5Qy9PUApqMzNjVHRGYXNjNmtIQUpjZ3JEamJ4
MC90ei8xZlA3Smg1OE05cnVoOWVhV0srcmpDd1VVVUVBQkJSUzQ0QVRPalpEV3FlcE0zNGlKCnMv
SmJMOXJhempWbndNbjhjZ1kxOXo1NmJ6dmYvK0JUQjlzckppYy9QTmwrRnBlYjlpUFRyeGhzTW9X
R3hGVUVBaERPempPVkxKNkIKZmVlbGQ5cXp6a1Axam1lbWgvTHcyWHFsZUFXS004dVRwcEpsQ1hU
d1lzb1hWelJXM1B3L3NrSUd4cnR1MkxWODN3cEJJQVBwSTY4ZAphWC9oaTZsZ2E1VksyckpXNjZL
Y2lkY1hCdkxYM0hsTnc3UXZyalRnbWdZWWFkMlk3c2EvUE9WQlZQbzVQOW5NMURaK01ZMzdSZmk1
ClhyYlZteSs4MlpiRk5DNm1BeDUvdC8vS0dOdUd3SXgvWFNuOWZLejlrNnkzYTEyK3A0QUNDaWln
Z0FJWGprRDN5R0dLOWIvaTJpdVcKcnk2OC91Zlgyd0VtZy8yakJ4ZnZ4NGlyNW05enhMbi82em5u
dXgzSWhjSGZIZCs4bzduOW03Y3YvZ3ZUdzJJaTZJaXBwTjRsZVNpUApBSWY1OWd3R3A1a3dKWkNL
QTBMV3haU3NkdXJUeUlwTGxtVkEyMDVwQzhFRVU3RW1UYnR2MjkwY08zaXNQZk5QQU1PVk04Nyt0
MWRCCnNwOUpuclRzTkg5Slc5TDh0YzlYc3o3YVQrREIzOGRoditsTC9Qb2MyNU1yUmlXSiswTzQz
NGdmT3lEWVAvWHBxWFk2SGplZnMvMzQKOWJtU3hQcFlML2RRZGFYMDg2SDJUN3Jlcm5YNW5nSUtL
S0NBQWdwY09BS3JEa0RTbTF6NTVhT3V4QzhWeFJTbkFNV3BIbHpkWUZvRwpaNzFKbkRGblVCUVRV
MjlZUHY0YVZueWZ4NUoxcC9uYlpjSXZPY1dVTGgvZmk0LzhZbEU2bDU3MzQzeCtudk5MUU9uZ3Zh
VGVKWG5lCmVQNk45ZzgzN245OFA2c1pUQVFNK0REL3Zpdnh5MGJNODQrSjUvSHZaZUJKL1ZsUCs1
UEk0UjZEZzM4NXVQSVh0T0tDNFpIdEUyLzAKNXFiMm9XWDUyeVQ4RWhmM0EvQ3JaVnhKU3Y4eWVW
cFdYOTJaNHNZWmRhWXY4Y2pVSy83SVpkZFZJdXJTdGpQY3MwT2lqOFg3UmJwZQp0NW1XL2pmbTBK
WVZuR05pUFduWmVWcytVNWV6Q3l1bUx4V3RMMnpUTkdIQURlbTRjaTlKWDlwOXkrNzIvbzIzWG54
ck1Vc29oa0g5CnlVOU9Mays5Uyt2SGMzNjFpOFNWTUxZcjA3M2lmbkhpM1JQdGNnU2x5NlpMVlV1
dnRERDFpbjBsL3RJYjVmVjlQdFQrc2ZVdVpKYXMKaDNvUm1NVyt5WHNtQlJSUVFBRUZGTGd3Qkxi
Y2YvLzkvelpVMWFOblYxNlpJQzgzQXg5Nit0RHlnSVVCQkdkUitRbFZiaWdsY2RNcApnMm9HT3lU
TzdITkRMYisrdzhDQmdTazNHVFBBNGdaZC9vamVPNis4MCtabjdqay9LY3JuZTc2MFo4VzgvNUox
dHl0TS9zZFBvdklUCnJuRlF6dFN2OUQ2SW1QWHR2NzNkMXBuQWg1L2w1Y3d5aWVraERNWVlnUEtQ
T2ZmY2pNc1ozckY2bDdZdDN1VE90Q05NK2hMcjVPZDEKTVdJUWp6ZjNzN1J6L3NOQzNGaE1rSFQ2
MU9ubHY1Sk9BTVRVTVFhYi9PSVJVOGo0VlM5TXVCR2RYM1ZLQjVIcHVobFE4aE82MUk5QgpKUGNh
ZEMzTFQ5ZnlLMC9jMU04VUxCTGJreXNYckJQdnRDejhZcDNUOVhGUEFmN2N3Qjd2b2VBbWVhNk14
TmZreDVWZ2tlQ1hueGttCjBiZm9pMHdsWWp1bHIybGZ2R21jdkpUVjU4RDJ4U2IyYWJZeGZZQ3Bn
TnlydzluOHRDMEVYTnlyRWV1Q0ZkdUF1dkRMVld5Zm9mWFIKbHI2NnNoeURiZTZQNlV0TXpXSWQv
Rnh3TzIwcTFCOFRBbFVlV1Q2MW9sOXpBZ0IvK2hCdDRZb2o3OVBQS1lNMlhIdm50ZTEwT0g0ZQpt
MThwYS90VjJEYTBpLzJYNlZuOHdFTGNqdXhuYkx1dXo0ZmFQN1JlNnA1YjRrRDkrQVV1K25SZjMr
M3o4bjBGRkZCQUFRVVVtSzdBClZadjZ4eTJzZWRPK2ZmdFdubmJONnZQU3drdlpPMnYva2tFUVo3
bEovTklRQXljQ0FINzJkWlpUU2IxTDhzUTJ0Z1BXTUZCZmo4UUEKbmIvdmNjbGw0ZjZURVdZR2xl
bTlISk1zbTdjbEx5di9uTmVVSHdQWnJ0ZGR5NnoydldtM0phL1hwT3RqVU04QVBiOHFsNWZidmc1
NwpNc0ZTRzRDRnY5WFJ1Lyt3eDRkdHpza0Jnckw4SGc0Ry9UR29TTGZGQy8vNVFudVBGai9oVEo2
MFQ3RCtzYy9KTTlUK3Z2V3lYRmNxCjZVdGR5L21lQWdvb29JQUNDa3hYNE03TmR3NnVZTjF2UXUr
cVRUeGp6bWVjWWI5UVVrbTlTL0xFOW5LVllMMFNBL3g0TS8zWU92T0IKNWlUTDVtWG5aZVdmOHpv
TlBycGVkeTJ6MnZlbTNaYThYcVhyNDJvZGVibUN4TDFJUlNrRUZkRzNOL2lnb0tXQXMrK205aGg4
dEZtWApybWltNnlkZ3lZT1cwcytIMmorMjNuUWRQSTl0emQvM3RRSUtLS0NBQWdyTXRzQk1CQ0N6
VFdUdEZGaGZBWDdvZ0orZlptclgzdkNYCnhtY2loYXNtVE5WaUdscG5HdnU4Y3lIZlZFQUJCUlJR
UUlHTktHQUFzaEczdW0yZWFZSDJIcUJ3bFlMN1pBaENaaUVkZWZWSSs3UEEKMUlYN2h2TDdsTVkr
bjRVMldBY0ZGRkJBQVFVVW1BMEJBNURaMkE3V1FvRmxBWDVoSy81MTh1VTN6L01UZmc1NUtJMTlQ
clNzbnltZwpnQUlLS0tEQXhoSlk5Yy93Yml3bVc2dUFBZ29vb0lBQ0NpaWdnQUpySVdBQXNoYUts
cUdBQWdvb29JQUNDaWlnZ0FKRkFxTlRzTVorClJxdG9MV1pTUUFFRkZGQkFBUVVVVUVBQkJZS0FW
MERzQmdvb29JQUNDaWlnZ0FJS0tMQnVBZ1lnNjBidGloUlFRQUVGRkZCQUFRVVUKVU1BQXhENmdn
QUlLS0tDQUFnb29vSUFDNnlaZ0FMSnUxSzVJQVFVVVVFQUJCUlJRUUFFRkRFRHNBd29vb0lBQ0Np
aWdnQUlLS0xCdQpBZ1lnNjBidGloUlFRQUVGRkZCQUFRVVVVTUFBeEQ2Z2dBSUtLS0NBQWdvb29J
QUM2eVpnQUxKdTFLNUlBUVVVVUVBQkJSUlFRQUVGCkRFRHNBd29vb0lBQ0NpaWdnQUlLS0xCdUFn
WWc2MGJ0aWhSUVFBRUZGRkJBQVFVVVVNQUF4RDZnZ0FJS0tLQ0FBZ29vb0lBQzZ5WmcKQUxKdTFL
NUlBUVVVVUVBQkJSUlFRQUVGREVEc0F3b29vSUFDQ2lpZ2dBSUtLTEJ1QWdZZzYwYnRpaFJRUUFF
RkZGQkFBUVVVVU1BQQp4RDZnZ0FJS0tLQ0FBZ29vb0lBQzZ5YXdkWFJOdi96cGFCWXpLS0NBQWdv
b29JQUNDaWlnZ0FLdHdEL3ZHNFR3Q3NnZ2p4OHFvSUFDCkNpaWdnQUlLS0tEQVdnb1lnS3lscG1V
cG9JQUNDaWlnZ0FJS0tLREFvSUFCeUNDUEh5cWdnQUlLS0tDQUFnb29vTUJhQ2hpQXJLV20KWlNt
Z2dBSUtLS0NBQWdvb29NQ2d3RXdGSUdmT05zMnhNMDF6OUhUVG5BclBTUitFMStjemZiUndQdGQr
NGEvNzQrRDMxcW1tK1hScApldzYxaUcyK0VieXhPSjcwYS9yOXU2SFB4NVMvanUvSHg0M2l0Rkhh
R2Jmcldqem1mU3VXT2NsK0dKYzVYNDk1Ry9MOUlYK2QxM010Cis4M1l1dkoxODNvUzY1cTZqaTJi
TzNiVmRlZzl2dnJXNi90M3JDMUQ5WnpWejlhckg4eHErNjJYQW1NQzQ3K0NsWlR3cDQrYTVxVlAK
bStiS0xVMnpLL3piZjNMeHc2dkM4MjBobEhsbktYRDQvM1kxelJ0aDBQbnN4MDN6NGRJQWZuZklj
M1ZZMjhrdzJEb1M4bjBRM3YvQwp0cWI1L0tXTFpUQklwZnpiTDJtYUswTGVsOE56Qm1XWGhYSy92
V1B4czlKMVg3UXBxWFI0K21xb1oxNlgzVXQxZVR1c2cwSHZOeTl2Cm1qMFhyMXd1VkxYNXY4ZWI1
bHZibTJabnFGT2VYZ3ZsUGhmYVNGdElsNGU2Zmk2MDZlS3cvbWZDKzhlWDNtZloyMFBaZDRmUFZw
TU8KaGZYOE5iampRVGxmRFhYdFNrOEVzNWREdml0Q1BlNFBybmw3dXBhWjVudC8rNlJwMkJSczg4
ZE9OTTIvN215YUxkbTJpZXQvUGJUeApEeUVQZnJGUHhNL203WkcrK0U3bzd6OElIZ1RiZnd6YmpT
K3JINFg5Sm4rZHQvMlZzSDNaVDc0WXR1ODlxK3hQZVpteitIcWp0SE90CjdkTytGY3VlWkQrTXk1
elB4N1FOK2Y2UXY4N3J1WmI5Wm14ZCticDVQWWwxVFYxTGpwZXBZMWRkaDk1N0x4eVgvaENPTTN5
WGZpOTgKLzA0emxiUmxtdXVmUnRtVDlJTjViUDgwVEMxei9nVENVTFU4TVNDL1B3eDYvdm1LcG5u
b3NuUExYWDlSMHp3U0J1bThmMGs0WUpIdgoxakJRL253eVFHSkEvR0JZNW10aDhQd3ZZZUIxWndn
MFltS0ErcnN3K0x3aGxITnZXT2JHOE1nZys3cnd1RFNHYjhzc1hYY3NOejUyCjFlVkxvUzVmRCt2
NGYwSmRydThKd3dpS0NLRCtIZ2JTWGVtVzBFYmFGUk4xdnlPMGk0SC9mY243T0t3MitLRHNtMEo1
OTRSeUdic2YKQ0FQMVR5SktYSEY0eFBETlVGL1NiVXQxV0h5MXV2K2ZEdVVSUks0MmNVYnJxVERR
dmpPMEhZdEh3NWRZSG55azY4Q01ZSE90VWxwMgpiWmxyV1JaMWVTQjRmR2ZwUy8ycTBQZjJocmJI
bEwrTzc4ZEhBblFDM0hsUGE5SE90ZDV1czJpZXR6SHRXOVMzWkQ4c2JWZStydExsCkpzMlh0aUhm
SC9MWGVkbHIwVzlpbVdQcml2bmlZNWQxT0F6MkhrZHI2bHB5dkV3ZFl4MUxINjhNeDZWcndyL1ZI
bXJHK2tyNmVVbGIKU3V0TnZyVHNTWlpicTd4ZC9XQTl2L3ZXcWgyV284QzBCU1lhOG5FUllPaXM2
L1pRV2pxWVNxOUV4QVBaaVRCNFp2ckpmV0ZndW5ucApUYzQwTVlCK0t6eXk4OGJFNEQ0T1NpZGRk
eXdqUG5iVmhTc0tIS3dZSU1mNnhmdzhjaldCeEtDZituV2xyY21DNlRyUzV3Umx0WW55CmJsNEt5
TGdTbEtmOTRUMENMVkphcDhWM3h2K2ZObzlwQndTRW5BVmJiWG8vYkdQS2pFM2ZrVjFCNmxySHBw
aDV0U3RkV3E2cjdOVVcKdVpabHhUcXdmYmhpR0JQTlRwdWV2NDc1NHVQWTV6SGZKSS9wOXA5a3VX
bm1yV25uSk50dEZ0dmVjWTdoTTlSZGJjejcxdEIrV0xLTwp1Tkt1ZGNYUDF0b3ZiMFBlRC9MWHNS
N3hjZXp6bUsva2NaS3ljbXUrdThhT281T1VuOWQzN0hpWk8rYkw5NzJPMjdPMGJuay9HdW9yCnJM
UHI4N0cyOU5VMWY3K3I3RHpQME92WTlxRThZNS9sL1dBOXYvdnl1ZzIxSjk5dTZiSkR5Nlg1Zks1
QWpVRFB1Zi91SXJscU1KYTQKeWpHVW1MYkVsQzJ1Ym5ERmdNUjBMaEk3N24rOEg2Wm1oWUJnNzlL
WlhxNVNrTlppM1lzbG5mdi9DK0hLeHBkRGZaa2FsaWVteEZ3YQp2a0E0Q0ROZC8wQVk0TmRjeGNq
TFQxOGZEbGNhbUQ3RjFST21JUFVsNmtrQVJ3QkN2bmhXaFlNRlZ6OElwR2hUbWdqb25nNVhJaURt
CmFnNXQ0c3dZWDA0a3BxZVJoMERzWUhqKy9YQVY2KytoZks3K2NLV0Y5WEcxSytaZlhHcHhtYjV5
bVZyQVpXWHE5ZWZRTHRiOVFOWXYKdXRaQjJTeER1WGdUZEQwU3JoUVEySkxZSm44TjdlTStJUUxD
dm0zWFZUWnQ3RnFXNEpmMU1RM3ZLMHZ0Wk9yQnZXRmIwQWU3eWtvdApNR01LRldjTHVickhkTG0v
aFBLWXB2aVY4SnE2dnhqcWZEQjRmaWRjSldSZU5tMDdGRjcvVTdCZWJXSjdQUm5XeS9aam03S2Z4
UDJvCjFJbDFVdzU5ajZzcXpQZm1rWExvYTllR2ZYU28vOUJIQ05JWmFQRWxTOStqV3pGbGN0SnQx
dWZRMTA3NkYzMkwvWUQ5a3VNSzB4NnYKQy9YR2ZXeTdzYjZ1dnMvN1EyM201QWx0RG16TnRXRmR6
eTYxbWVOVGVOazhIMTV6WW9NcnZQRXE2Q1RiZzJQQmUyRWRPTkszNk9PYwpqV2JhS3Z2VkpjR2Ev
ZWx2NFRrbkhOTDlGQXRjWXQvcTJ3LzcxaEdLYmZzRGJhQWZzRyt3YnNydDhtUTkrYkdETXRKMG9l
OGZhVnQ0CjNyY3R1NnpaVnVuMjZUcU9VbVpmSHg5YUg1K1I2SWRkeDB1T1orbHhwbVJmWlZzK0Zm
WXBqaWVmaE9mSHd2YVAzekh0eXJMLzlmV2oKcnI2U0hqTzdQcWZvdnJid1daODduNldwcSt4WUx2
dE4vaDNJOXlZbjc3YUhEeGRDUms0Mmh1YTNNekNZa2RHVmhvNFBYZjFnUGIvNwpTdHJUdDkxbzY5
ajNRZWwyNkhMelBRVnlBZmExZFVrTVpQbkNaeENZSjg0R00rMks5SEU0Q0RBQS9GOGhFR0dlL0RR
U0J5RUc4WEhLClV0YzZPQkFSSU1XREVBYzJEbVRUU0xqRXdHS3MvTHZDd0tZZHhJWmxZbm96UEtl
ZURGclNSSDEvSGU1aFlUQkpZUGpOTUFEbXFzWnYKUDF6TUZSamF3VEdESmRwS1BwYmhPZHVFS3k0
TXF0TXZENVljSzVlcEJmd2o4YVdiSDRCNXYyOGRETlJ2Q1BXSWcvUG53NkNTUkYyNQpSNFRnbE9s
TDFQVTNvUjFZNUNrdm15dHRmY3N5ellJcGN0eXZ3OEdYQSt3ZFlXQkg4RUhLeThvdGJnNTVHV3dU
TERGb1kvb2JBM2krCnhPTWdmRWQ0VHBsOG1iTThmWncrV0pNWWNMUE5IdzdibEhwalFaSDg2MnRy
MS9yYVFXMm9FOXVKZjY4SGY3ejRRb1oycVAvc0NuWUUKZzB6VjQvNG5wdG1GUlp2VmJMT3V1dkZl
WHp1WnRzRzZhRHVKNlpCNHh5dVZZOXNOSndMRHZPK1B0UmtiN2h0ajhFMzZmbWd6Mi9mMwpvVzl5
QlplcG8reWpCQ2IwelVtMkIyZHZLWWY3NWFnLzIvZTVwZU1sYldYZjRKaEYveUw0SVBCSzkxTUd2
R25mNnRvUGg5WkJlK2hICk40WDFzbjRDRHdhM0JDSzVKdzVkZnBTUnBndDkvMGpiTXJRdHU2eHpz
L3pZRWN2dTYrTkQ2NHZMOWgwdjgrUE0yTDVLZWI4TDI1NFQKZ3dUT0hBdjRUdXBMUS8xb3JOMTlu
L2UxcGNRaDFqTXZtMlB1MERHTSt6UFpuOWtHSEZPNDM1Tjk2bzloUCt4S1k4ZUhybjZRbDVQWApN
ZmFMdFdqL1dIdUd0aHYxSFBvK21HUTc1RzMydFFKZEFtRlhXNS9FRGVyczVIR0FrSy8xSDhJWGQ1
eEN4R2ZjMlAxL3d3R1JzemhyCm5SZ3djYmFXZzBsWDRuM09kSEptbDV1K1NRd1lPWE13amNTVkR3
YlVURXNiUzdlRXZOdVd2dnhqL1Y4SnJneDg4MFJnY2pTMGd3TXIKaVkxTnZzTWJ1ZkQ4QUFBZ0FF
bEVRVlJoV3hEY2NTYUhBU1JuVFVuVUk1Yko2NzdMNG1QbHNteHB5dGZCb091YThJOEJQR2ZnNDY5
Rgp2Ym9VQURMd294OEZycll2RFFXcHNleXhaVmtQVXdjWmJERUE1NzZWUE1XeTh2ZDUzWnFHNVRo
QWt6Z3pUajA1MkpQd1ppQkdJa2poClJ3SnFFd0VTOTE1eDVZVWIwam5qU2Y4Y2EydStYZ0x0T0VX
UUgzK0k5M0RSOThlMk0za0pQQmdRVXhlMkdRT1krT01MazlZbHJ4dXYKKzlySlovbloyZncxZWZx
MlcxL2ZIMnR6YkM5VzNKdkZPbThNai9nenNHRDczclhVZjA2RWZXc1NBd2IxYlFCTDV3NkpvRGIr
Q2hHQgpNb0VPQXd6V3l3QXhCcml4alNWOWEyZ2Q5Qi9XeHc5MGtMajY4WFhXRTlZWlUxeFhuMS9N
bHo1ZXlQdEgybzVKdG1XNlhEUkwzMHVmCjkvWHhrdlgxSFMvenZqQzJyL0w5ekhHSy9aZ1V1dDd5
eWJmMmpleC9RLzBvWmgxcmQvNTVYMXRLSE9JNjQyTXNlMngvNWpqSFA0SnUKK2ozZnc1emtJcERu
dXpGUFkrWGwrWWRleHpyR1BHdlIvckgyakcyM29lK0QxV3lIMkRZZkZlZ1NXUHFxNmZwb2JkOWpn
TWZncE8vTQpBbWNCdmhHQ0VNNFVjL1B5a2JEek0zNzdjM2pPb0RzY0k5WXMzUjNLWTlENWl3KzZp
K1NMbUlFZDZZWlFuMjNoaWd5WHBMa0t3a0ZpCnJSTUhQYzRlbHlRY09HdkxHVmJPaGpJSUlTRGhD
eWRQR1BMRms5ckZ3UVhUUEJqb3MxMllwM3hMR0loK09maW5lZlB5NHV1U2NtUGUKU1IvVFpqQUFD
OStKYlNLUTR1REtJSXkwSTlTNzlPYkZrbVdabHZiejBCOXVEWU90dEE2TGF4ditQMmZmbVE3MWR0
Z2VmSUV6bFpETAorZlFqK2p3cG51WGllZjdGdzN1VHByUzh1RTAvRE90bDhEK0pFLzJEd1VkTXZJ
NTl2MlE3NTFic05yU2RWT0srbUxQLy8zM3RiQ3IzClE5cloxZmRMMnB6WE5qK0l4anB6c21VU0F5
d0pKcmxLK1hMNHh4U1llSVdIZFJMc2RPM25hWDNHK3RiUU91Z0hzUy9GTWhrY2Q2VSsKdjY2OEYv
TCtrYlpua20yWkxqZjJQUFlYOGtYLzBuMlo3UmxUZXJ6a3Zid3ZwSG41UE4xWE9aSERpUkhLaUNt
dFYzd3ZQZzcxbzVobgowc2RrMVcwOVFuZHNVNDM3YXZabmpuOTh6VEJ0alpNcmFWcE5lZW55UTgr
bjBYN1dsN2RuNkJnejlIMVFzeDJHMnUxbkcxY2cvKzZjCnVrUThHOCtLR0toeHdHUGVQQU0zNXBF
ektINDAvT05uN0poTHo1azJ6aVRtTjNMVlZwU2RmVS9QSUlhckxwek5qcjhDeFNYWlQwSWQKR1BC
ekpTU2VlYXlwQS9OT0dad3lXSncwY2FXQ2VkcE1nZUJNYkR6am1wZkRPSkRBaVlGUUhMaVFuN2J6
R1lrcFZ0anlrNDN2aFFINApvMHUvWkxiNGFmZi9TOHJ0WG5MMTc5SVBXQzluZ2lkTkpjdUd6ZHNH
YTF3WnU0MmdjNEx0Z2kxVENEbDd4SmMyQVNXRHhYakZqNmxzCjAwejBJVmlvUjBsYjA3b3d6WWFm
U09iTGxyTmpsRVg5U2JYYmVkSzZMSzYxLy85cE8vdHpsWC9TMWZkWDAyWUdldUcvempTcEFkUFgK
UGdxVjRONFA3alY1bDQ2NXhxbHZIVXdaNDhSRWFlcnlZd0NUcHd0NS8wamJNdW0yVEpjdGZaNzI4
ZlZZWDZ3WFovejVGLzViMFpjNwpObWRjcEoxcU9lMit5c3BxSEdqUDJIZmdjb09Xbm5EczVsOVhB
TGFhOHZMeUozMWQwMzdXbGJlbmIvOG43OUQzUVcwOUtOK2tRQ293CndUQXJYV3oxejdueVFKQkJh
bTlRRGpzNmcvMDREWWozT2VqeGExdHhvRC9KWUpEbFN4TlRKcGcya2lhbVVqQ2dZRzU5L01mMHNK
aGUKQ2dQVTJzVFVIQWE2c1YzYzdNM2ZFeG42MVNrT2ZEaVJXSTZ6aXN4ZDVVd1oweks2VW55Zk9k
d3hjWThEWmZFWmJXV2VMd2NkNXJJegpBT0V5NjFnYUszZHMrZFY4VGw4Z0FPUWdHQk1lTVVpTTcz
VTlsaXhMQVBiZFlNQmdpYWxZa3lhbW1YRERMZmNXOFp5ejYwekRhcSttClRUa0FZUnV5aVFuT1N0
cWF0dTNxVURldXFORXZ1SExCVGY4eDFXN25TZXNTMTl2M21MWXo1a202UTN5cjZMR3Y3OWUyT1Yv
NUpBYnMKcDgrRTR3SlRRRGdHVGlNTnJZTzY0cEpPUFdFZjQ2YjZQUFg1NWZuaTZ3dDEvNGoxNTNH
U2Jaa3VOOG56dEkrdngvcGkzWmhheUxHVgprNElsYWFnZmxTdy9TWjRhaDlYc3oweER4SUlmeThu
VGFzckx5NWowZFUzN1dWZmFuckh0TnZSOVVGdVBTZHR0L3ZrWENJZWQxU1crCmdHSktuOGYzZUV4
dkVJN0hOVlo0TnV6Y2Z3bFRWcGpmSDgrWU1TQlBiOHhsa002WmV3Wnk2V1ZoeWszWGx6N25zNzZV
MWlVKzU4eEEKL2tYUDMvemdsM1RTeEZXRGVPRGhmb3QwRVB4cDRuQXllWjcrclk3WWRzcGtXVzQw
WmQwUm4rbFUvT05NZEYraXptbVpUQ01qY1RVawpwamhkSTlhSk0rOThzYVNEZElJY0xpdHo5WVc2
Y0phZXhIeHZwcGR4Qm83RWRpRzRDVm5hd1duNzV0TC94c29sVzd6WEo3Vkt5K0I1CnZnN3FuK2Ju
ZFd3VFUwSDQ3TEZ3WHhCZjB2UWQrbERYbDBSZU5sZlhocFlsK0tVYzJ2NWdHUHp4QnpiemFVbDlG
ckZOcklNelpyU0oKL2txZ3pVM0J6SjhQTDFjazZrTC9EdisxaWY2UjlwSDg5VksyRlE5eG1oTnZF
dVJ3L3hUOWRGSW5EQW02NkE4RU1HbGRTN1l6ZFkzdApvQzZoS3N1QjhsaGQ2TlB0emRzczFKUDYy
a2wydGhsQk9KNTh5ZEluT0lzYlU5Ni80dnM4c2t4WDN5OXBNN3M1eDdDWTJKYTh4eU1wCjFwbVhZ
d2J0QWt2L2k4ZXlkNE1IL1o3OWxzZDJmWlFiL3NYOUlTNlh0ekh2Vy9sK09MUU9UbW9FMHVieGNC
eWkvek10NTRud1BCNzcKMG5XeFAzVDV4WHJsanhmcS9rSC81aDlwYkZ2bTFpeVRtaEhrZDZYWVgv
aHNrbjJadnNEMmpvblhhZi9JK3dMdFNMS3YyRmZaOWh6Ngp1YXBPb3FwY0RXTi9Tc3RzUHd6L0cr
cEhyR09zM2ZublEyMFpjNDkxaW85cDJWek5IZm9Pak11azI0WnR3TjhHNHpzeFR5WEhoNjUrCmtK
ZVQxcEYxcjJYN1dWZGZlOGEyMjlEM3dkaDJvQTM4b21LOGJ6TnZzNjhWeUFXMjNILy8vZitXdjdu
aTljdlByWGpKQzg1RWM1WTQKZG1ZR2hBeU8yN21HU3lNWXBqRXhUU2dlSU44UFgyamNXTTZ2WVBH
WG5KbGF3SlVRQms3OHhDUTdMVk1PeU04Wk9LWmZVUjQzV3pKWQpqNmxrM1RGdmZQeE1YVUw1ckkv
MUowVzNCMTkrZFlhQkVkSCs1WHdiaDhRbFN3WURvZnJ0UDc2WXVSR1VNOXprandlYzkwTUd5c09E
CmdDSnZPeDVjOVNFZkE3NTRZekpmNXR3QVNIdjVJc2dUOVdjOXpNR2tTc3dUNXNvTkFkdTlTMmRM
bVVKRCtXd1QvdkU1djN6Q2V2aFMKb1k0aFMvdExaUHhTRHdkQTJ2bGthQnUrSExENHN1R1hkV2dE
WmZCVG45eFR3RTIyNmVWb3B1b01sY3NaVTdZejVURW9ZNG9YZzl3OApwZXNJMmRvcFRKanhwVUY5
S0FOTEFxYjRSY0lWaGhmRFB3WS9YQ1hyK3BKZ1BXblpIRGlaMzl5MUxHNzg2aG8vQUJDdlNORVAr
UkppCm5RUWxhVm01Uld3VHpXTWZZRG9jYmVVMTVwejVUZHRPWDJkN01IVUJVd2F5L0pWNzFzRTJZ
VENTdnFidGVLZUpBejFCRWxZTUZGbVcKL1lSOHJJc3YzSzYycG1YRTU3U1R2b29wSndFd3AxOHhZ
S1JmREcxbjdubWhqOUJ1ckFoOEtZTnRSaDhsb0JtcUMxOVVmd3I5ajdPdQphU0FkNnpiVVR2TFFW
dTdMb3EyQm9yazBXR0ZDM3lmd0c5cHVmWDEvck0zMGJkcEkzK2FubHRuUUhCL2l5UlA2STlOSENZ
em8rMHpOCll4dVdiQS82R3NjMzhsSWV2NmJGdEQ1OEtJdGZxTUcyM2JkWmQwaHBHM21mWlZmMHJh
VzZ4djJRdXZTdGcvMkViY2F2OGxFT2JlRGUKcUhnVGVyb3V0amZmQVYzSGpzV2FyZngvWUxyZzln
LzJWYlkxN1diZjVNY2wrRjdvMnBaOXg3elVyT3ZZTWRUSGgvWmxqbi94WkJqYgpJajllc2gra3h4
bld3NzdTdDYvU2J3azBPZmJRUG80ckhKODRIdkhJZDBtYWh2b3EzMnZVcCsvN2czSlNsN0NLcVIz
NytaN21Cdk8rCjcwRHF3dkdlNHdIN1ZodDRoN2IvUTVnQlFkL08wNFh3M1RmVW5ySHR4dmRoMy9j
QjM0OUR4M09PV1h5WGNsenMrMTdPUFgwOTV3SjMKM0QvWXdFMzc5dTFqLys5UHYveHAvMmRyOUFr
SEs4NFdzNzh6S0FrdjI1dU51dzRBYTdUS21TdUdneDhIaDQ1ajNwclVGVmVtbHZFRgpHaE1ibnZV
eFVPYnROTWdnRHdkbHZuaUhVbGU1US9uenowcldrUzVEMytETEM2dWtLV21XNWVkNTJaTXN1MXpJ
MHBPOHJQeHpYalBJClMvdHMvcnBybVpyM0dFeGMzT05RMmxZR3o5eVhGYnBIZXhhT3ZzQVZJVTRN
RUlURVZMT2RoK3JDK2hpdzgwZEgrOUpRT3pFTy95ME8KbHNKajNpZjZ0aHZMRFBWOTZsTFRacFpQ
MDVCQm1vL25EQmJqdnNoeWVadnkvSDF0elBPbHI0ZldnUTNCWkF6STArWGl1a3I4MHVWNApudThQ
K2VzOGYrM3JvWDR6eWZiSTZ6SHBzdEVzTHlkOVBhMjZwdXNvZWM1MlpaL2t1Rit5ZlliNjBWaTd4
ejdQNnp1SmUxZlpmZnZ6Ckw4TzlqNXo4WStvang4R3g3N3hZcjc3eTR1ZGpqMTExSEZxbXRQMGw3
ZW5iYmlYZkIwUDFvQjkzSFRlRzJ1Vm5jeXp3ei9zR0c1ZWQKMXhqTU83VVBPWE1YRTlOSU5tTGl6
TUkwVTlkTi9ERzJTTS9RcDNVb09SQjNsWnVXTWZhOFpCMXBHVENsUVZUNldmNDhMM3VTWmNmSwp5
ai9uZFJwOGRMM3VXcWJtdmFFRGZVbGJPVlBHMzY3NGZEYjRwMS9rL2JGbU93L1ZoZnRtNHBYQVBv
dWhkcWJtckNkUGVSK0luNC8xCmZmTFZ0RG11Sno0T0djUTg4VEVHSDd6dWFsUE1GeC83MmhnLzcz
b2NXZ2MyZmVaeFhTVisrWHJUYmNWbitlczhmKzNydmpaUTdpVGIKSTYvSHBNdEdzN3ljOVBXMDZw
cXVvK1E1MnpYV3QyVDdEUFdqV0U3ZmVzYyt6NWVieEwycjdMSDltYlpNTWlBYUt5K3ZmLzY2cTQ1
NQpudlQxSk8xbnVhSDJkRzIzMHUrRG9Yb005ZU8wTFQ1WEFJRko5amZGRkZCZ2pnU1lKc1dVUVA0
d0pWTnZPQ3ZHbVcrbURkVit1Wll5CkVYejBCY0NsWlpoUEFRVVVXSTBBVjN5WWdSR25VSzZtakZs
YXBxWTlzL0I5TUV1VzFtWDZBZ1lnMHpkMkRRck1wQUQzQS95L3V4WnYKTnVhbktybkJjcjBDando
aThCRWxmRlJBZ2ZVVzRQNUs3clVpY2U5VCtzZVFGOSs5c1A1ZjA1NVorRDY0c0xTdGJhMkFBVWl0
b01zcgpjQUVMRUFCd282WkpBUVVVMkdnQy9FaklQS1hhOXZoOU1FKzlZZmJid25RK2t3SUtLS0NB
QWdvb29JQUNDaWl3TGdJR0lPdkM3RW9VClVFQUJCUlJRUUFFRkZGQUFnZkVwV0NNL295V2pBZ29v
b0lBQ0NpaWdnQUlLS0ZBcTRCV1FVaW56S2FDQUFnb29vSUFDQ2lpZ1FMV0EKQVVnMW9RVW9vSUFD
Q2lpZ2dBSUtLS0JBcVlBQlNLbVUrUlJRUUFFRkZGQkFBUVVVVUtCYXdBQ2ttdEFDRkZCQUFRVVVV
RUFCQlJSUQpvRlRBQUtSVXlud0tLS0NBQWdvb29JQUNDaWhRTFdBQVVrMW9BUW9vb0lBQ0NpaWdn
QUlLS0ZBcVlBQlNLbVUrQlJSUVFBRUZGRkJBCkFRVVVxQll3QUtrbXRBQUZGRkJBQVFVVVVFQUJC
UlFvRlRBQUtaVXlud0lLS0tDQUFnb29vSUFDQ2xRTEdJQlVFMXFBQWdvb29JQUMKQ2lpZ2dBSUts
QW9ZZ0pSS21VOEJCUlJRUUFFRkZGQkFBUVdxQlF4QXFna3RRQUVGRkZCQUFRVVVVRUFCQlVvRkRF
QktwY3luZ0FJSwpLS0NBQWdvb29JQUMxUUlHSU5XRUZxQ0FBZ29vb0lBQ0NpaWdnQUtsQWdZZ3BW
TG1VMEFCQlJSUVFBRUZGRkJBZ1dxQnJXTWwvUFNuCll6bjhYQUVGMWxwZzM3NjFMdEh5RkZCQUFR
VVVVRUNCMlJBWURVQ29wb09oMmRoWTFtSmpDQmowYjR6dGJDc1ZVRUFCQlJUWXFBSk8Kd2Rxb1c5
NTJLNkNBQWdvb29JQUNDaWh3SGdRTVFNNER1cXRVUUFFRkZGQkFBUVVVVUdDakNoaUFiTlF0Yjdz
VlVFQUJCUlJRUUFFRgpGRGdQQWtYM2dKVFc2OS8vL2Q5THM1cFBnUTBuOEpPZi9HVER0ZGtHSzZD
QUFnb29vSUFDdVlCWFFISVJYeXVnZ0FJS0tLQ0FBZ29vCm9NRFVCQXhBcGtacndRb29vSUFDQ2lp
Z2dBSUtLSkFMR0lEa0lyNVdRQUVGRkZCQUFRVVVVRUNCcVFrWWdFeU4xb0lWVUVBQkJSUlEKUUFF
RkZGQWdGekFBeVVWOHJZQUNDaWlnZ0FJS0tLQ0FBbE1UTUFDWkdxMEZLNkNBQWdvb29JQUNDaWln
UUM1Z0FKS0wrRm9CQlJSUQpRQUVGRkZCQUFRV21KbUFBTWpWYUMxWkFBUVVVVUVBQkJSUlFRSUZj
d0FBa0YvRzFBZ29vb0lBQ0NpaWdnQUlLVEUzQUFHUnF0QmFzCmdBSUtLS0NBQWdvb29JQUN1WUFC
U0M3aWF3VVVVRUFCQlJSUVFBRUZGSmlhZ0FISTFHZ3RXQUVGRkZCQUFRVVVVRUFCQlhJQkE1QmMK
eE5jS0tLQ0FBZ29vb0lBQ0NpZ3dOUUVEa0tuUldyQUNDaWlnZ0FJS0tLQ0FBZ3JrQWdZZ3VZaXZG
VkJBQVFVVVVFQUJCUlJRWUdvQwpCaUJUbzdWZ0JSUlFRQUVGRkZCQUFRVVV5QVVNUUhJUlh5dWdn
QUlLS0tDQUFnb29vTURVQkF4QXBrWnJ3UW9vb0lBQ0NpaWdnQUlLCktKQUxHSURrSXI1V1FBRUZG
RkJBQVFVVVVFQ0JxUWtZZ0V5TjFvSVZVRUFCQlJSUVFBRUZGRkFnRnpBQXlVVjhyWUFDQ2lpZ2dB
SUsKS0tDQUFsTVRNQUNaR3EwRks2Q0FBZ29vb0lBQ0NpaWdRQzVnQUpLTCtGb0JCUlJRUUFFRkZG
QkFBUVdtSm1BQU1qVmFDMVpBQVFVVQpVRUFCQlJSUVFJRmN3QUFrRi9HMUFnb29vSUFDQ2lpZ2dB
SUtURTNBQUdScXRCYXNnQUlLS0tDQUFnb29vSUFDdVlBQlNDN2lhd1VVClVFQUJCUlJRUUFFRkZK
aWFnQUhJMUdndFdBRUZGRkJBQVFVVVVFQUJCWElCQTVCY3hOY0tLS0NBQWdvb29JQUNDaWd3TlFF
RGtLblIKV3JBQ0NpaWdnQUlLS0tDQUFncmtBZ1lndVlpdkZWQkFBUVVVVUVBQkJSUlFZR29DQmlC
VG83VmdCUlJRUUFFRkZGQkFBUVVVeUFVTQpRSElSWHl1Z2dBSUtLS0NBQWdvb29NRFVCQXhBcGta
cndRb29vSUFDQ2lpZ2dBSUtLSkFMR0lEa0lyNVdRQUVGRkZCQUFRVVVVRUNCCnFRa1lnRXlOMW9J
VlVFQUJCUlJRUUFFRkZGQWdGekFBeVVWOHJZQUNDaWlnZ0FJS0tLQ0FBbE1UTUFDWkdxMEZLNkNB
QWdvb29JQUMKQ2lpZ1FDNWdBSktMK0ZvQkJSUlFRQUVGRkZCQUFRV21KbUFBTWpWYUMxWkFBUVVV
VUVBQkJSUlFRSUZjd0FBa0YvRzFBZ29vb0lBQwpDaWlnZ0FJS1RFM0FBR1JxdEJhc2dBSUtLS0NB
QWdvb29JQUN1WUFCU0M3aWF3VVVVRUFCQlJSUVFBRUZGSmlhZ0FISTFHZ3RXQUVGCkZGQkFBUVVV
VUVBQkJYSUJBNUJjeE5jS0tLQ0FBZ29vb0lBQ0NpZ3dOUUVEa0tuUldyQUNDaWlnZ0FJS0tLQ0FB
Z3JrQWx2ek4ycGUKLytRblA2bFozR1VWVUVBQkJSUlFRQUVGRkZCZ3pnVzhBakxuRzlqbUthQ0FB
Z29vb0lBQ0NpZ3dTd0lHSUxPME5heUxBZ29vb0lBQwpDaWlnZ0FKekxtQUFNdWNiMk9ZcG9JQUND
aWlnZ0FJS0tEQkxBZ1lnczdRMXJJc0NDaWlnZ0FJS0tLQ0FBbk11WUFBeTV4dlk1aW1nCmdBSUtL
S0NBQWdvb01Fc0NCaUN6dERXc2l3SUtLS0NBQWdvb29JQUNjeTVnQURMbkc5am1LYUNBQWdvb29J
QUNDaWd3U3dJR0lMTzAKTmF5TEFnb29vSUFDQ2lpZ2dBSnpMbUFBTXVjYjJPWXBvSUFDQ2lpZ2dB
SUtLREJMQWdZZ3M3UTFySXNDQ2lpZ2dBSUtLS0NBQW5NdQpZQUF5NXh2WTVpbWdnQUlLS0tDQUFn
b29NRXNDQmlDenREV3Npd0lLS0tDQUFnb29vSUFDY3k1Z0FETG5HOWptS2FDQUFnb29vSUFDCkNp
Z3dTd0lHSUxPME5heUxBZ29vb0lBQ0NpaWdnQUp6TG1BQU11Y2IyT1lwb0lBQ0NpaWdnQUlLS0RC
TEFnWWdzN1ExcklzQ0NpaWcKZ0FJS0tLQ0FBbk11WUFBeTV4dlk1aW1nZ0FJS0tLQ0FBZ29vTUVz
Q0JpQ3p0RFdzaXdJS0tLQ0FBZ29vb0lBQ2N5NWdBRExuRzlqbQpLYUNBQWdvb29JQUNDaWd3U3dJ
R0lMTzBOYXlMQWdvb29JQUNDaWlnZ0FKekxtQUFNdWNiMk9ZcG9JQUNDaWlnZ0FJS0tEQkxBZ1ln
CnM3UTFySXNDQ2lpZ2dBSUtLS0NBQW5NdVlBQXk1eHZZNWltZ2dBSUtLS0NBQWdvb01Fc0NCaUN6
dERXc2l3SUtLS0NBQWdvb29JQUMKY3k1Z0FETG5HOWptS2FDQUFnb29vSUFDQ2lnd1N3SUdJTE8w
TmF5TEFnb29vSUFDQ2lpZ2dBSnpMbUFBTXVjYjJPWXBvSUFDQ2lpZwpnQUlLS0RCTEFnWWdzN1Ex
cklzQ0NpaWdnQUlLS0tDQUFuTXVZQUF5NXh2WTVpbWdnQUlLS0tDQUFnb29NRXNDQmlDenREV3Np
d0lLCktLQ0FBZ29vb0lBQ2N5NWdBRExuRzlqbUthQ0FBZ29vb0lBQ0NpZ3dTd0lHSUxPME5heUxB
Z29vb0lBQ0NpaWdnQUp6TG1BQU11Y2IKMk9ZcG9JQUNDaWlnZ0FJS0tEQkxBZ1lnczdRMXJJc0ND
aWlnZ0FJS0tLQ0FBbk11WUFBeTV4dlk1aW1nZ0FJS0tLQ0FBZ29vTUVzQwpCaUN6dERXc2l3SUtL
S0NBQWdvb29JQUNjeTVnQURMbkc5am1LYUNBQWdvb29JQUNDaWd3U3dJR0lMTzBOYXlMQWdvb29J
QUNDaWlnCmdBSnpMbUFBTXVjYjJPWXBvSUFDQ2lpZ2dBSUtLREJMQWdZZ3M3UTFySXNDQ2lpZ2dB
SUtLS0NBQW5NdVlBQXk1eHZZNWltZ2dBSUsKS0tDQUFnb29NRXNDQmlDenREV3Npd0lLS0tDQUFn
b29vSUFDY3k1Z0FETG5HOWptS2FDQUFnb29vSUFDQ2lnd1N3SUdJTE8wTmF5TApBZ29vb0lBQ0Np
aWdnQUp6TG1BQU11Y2IyT1lwb0lBQ0NpaWdnQUlLS0RCTEFnWWdzN1ExcklzQ0NpaWdnQUlLS0tD
QUFuTXVZQUF5CjV4dlk1aW1nZ0FJS0tLQ0FBZ29vTUVzQ0JpQ3p0RFdzaXdJS0tLQ0FBZ29vb0lB
Q2N5NWdBRExuRzlqbUthQ0FBZ29vb0lBQ0NpZ3cKU3dJR0lMTzBOYXlMQWdvb29JQUNDaWlnZ0FK
ekxtQUFNdWNiMk9ZcG9JQUNDaWlnZ0FJS0tEQkxBZ1lnczdRMXJJc0NDaWlnZ0FJSwpLS0NBQW5N
dVlBQXk1eHZZNWltZ2dBSUtLS0NBQWdvb01Fc0NCaUN6dERXc2l3SUtLS0NBQWdvb29JQUNjeTVn
QURMbkc5am1LYUNBCkFnb29vSUFDQ2lnd1N3SUdJTE8wTmF5TEFnb29vSUFDQ2lpZ2dBSnpMbUFB
TXVjYjJPWXBvSUFDQ2lpZ2dBSUtLREJMQWdZZ3M3UTEKcklzQ0NpaWdnQUlLS0tDQUFuTXVZQUF5
NXh2WTVpbWdnQUlLS0tDQUFnb29NRXNDQmlDenREV3Npd0lLS0tDQUFnb29vSUFDY3k1ZwpBRExu
RzlqbUthQ0FBZ29vb0lBQ0NpZ3dTd0lHSUxPME5heUxBZ29vb0lBQ0NpaWdnQUp6TG1BQU11Y2Iy
T1lwb0lBQ0NpaWdnQUlLCktEQkxBZ1lnczdRMXJJc0NDaWlnZ0FJS0tLQ0FBbk11WUFBeTV4dlk1
aW1nZ0FJS0tLQ0FBZ29vTUVzQ0JpQ3p0RFdzaXdJS0tLQ0EKQWdvb29JQUNjeTVnQURMbkc5am1L
YUNBQWdvb29JQUNDaWd3U3dJR0lMTzBOYXlMQWdvb29JQUNDaWlnZ0FKekxtQUFNdWNiMk9ZcApv
SUFDQ2lpZ2dBSUtLREJMQWdZZ3M3UTFySXNDQ2lpZ2dBSUtLS0NBQW5NdVlBQXk1eHZZNWltZ2dB
SUtLS0NBQWdvb01Fc0NCaUN6CnREV3Npd0lLS0tDQUFnb29vSUFDY3k1Z0FETG5HOWptS2FDQUFn
b29vSUFDQ2lnd1N3SUdJTE8wTmF5TEFnb29vSUFDQ2lpZ2dBSnoKTG1BQU11Y2IyT1lwb0lBQ0Np
aWdnQUlLS0RCTEFnWWdzN1ExcklzQ0NpaWdnQUlLS0tDQUFuTXVZQUF5NXh2WTVpbWdnQUlLS0tD
QQpBZ29vTUVzQ0JpQ3p0RFdzaXdJS0tLQ0FBZ29vb0lBQ2N5NWdBRExuRzlqbUthQ0FBZ29vb0lB
Q0NpZ3dTd0lHSUxPME5heUxBZ29vCm9JQUNDaWlnZ0FKekxtQUFNdWNiMk9ZcG9JQUNDaWlnZ0FJ
S0tEQkxBZ1lnczdRMXJJc0NDaWlnZ0FJS0tLQ0FBbk11WUFBeTV4dlkKNWltZ2dBSUtLS0NBQWdv
b01Fc0NCaUN6dERXc2l3SUtLS0NBQWdvb29JQUNjeTVnQURMbkc5am1LYUNBQWdvb29JQUNDaWd3
U3dJRwpJTE8wTmF5TEFnb29vSUFDQ2lpZ2dBSnpMbUFBTXVjYjJPWXBvSUFDQ2lpZ2dBSUtLREJM
QWdZZ3M3UTFySXNDQ2lpZ2dBSUtLS0NBCkFuTXVzTFdrZlQvOWFVa3U4eWlnZ0FJS0tLQ0FBZ29v
b0lBQ3d3S2pBY2krZmNNRitLa0NDaWlnZ0FJS0tLQ0FBZ29vVUNyZ0ZLeFMKS2ZNcG9JQUNDaWln
Z0FJS0tLQkF0WUFCU0RXaEJTaWdnQUlLS0tDQUFnb29vRUNwZ0FGSXFaVDVGRkJBQVFVVVVFQUJC
UlJRb0ZyQQpBS1NhMEFJVVVFQUJCUlJRUUFFRkZGQ2dWTUFBcEZUS2ZBb29vSUFDQ2lpZ2dBSUtL
RkF0WUFCU1RXZ0JDaWlnZ0FJS0tLQ0FBZ29vClVDcGdBRklxWlQ0RkZGQkFBUVVVVUVBQkJSU29G
akFBcVNhMEFBVVVVRUFCQlJSUVFBRUZGQ2dWTUFBcGxUS2ZBZ29vb0lBQ0NpaWcKZ0FJS1ZBc1ln
RlFUV29BQ0NpaWdnQUlLS0tDQUFncVVDaGlBbEVxWlR3RUZGRkJBQVFVVVVFQUJCYW9GREVDcUNT
MUFBUVVVVUVBQgpCUlJRUUFFRlNnVU1RRXFsektlQUFnb29vSUFDQ2lpZ2dBTFZBZ1lnMVlRV29J
QUNDaWlnZ0FJS0tLQ0FBcVVDQmlDbFV1WlRRQUVGCkZGQkFBUVVVVUVDQmFnRURrR3BDQzFCQUFR
VVVVRUFCQlJSUVFJRlNBUU9RVWluekthQ0FBZ29vb0lBQ0NpaWdRTFdBQVVnMW9RVW8Kb0lBQ0Np
aWdnQUlLS0tCQXFZQUJTS21VK1JSUVFBRUZGRkJBQVFVVVVLQmF3QUNrbXRBQ0ZGQkFBUVVVVUVB
QkJSUlFvRlRBQUtSVQp5bndLS0tDQUFnb29vSUFDQ2loUUxXQUFVazFvQVFvb29JQUNDaWlnZ0FJ
S0tGQXFZQUJTS21VK0JSUlFRQUVGRkZCQUFRVVVxQll3CkFLa210QUFGRkZCQUFRVVVVRUFCQlJR
b0ZUQUFLWlV5bndJS0tLQ0FBZ29vb0lBQ0NsUUxHSUJVRTFxQUFnb29vSUFDQ2lpZ2dBSUsKbEFv
WWdKUkttVThCQlJSUVFBRUZGRkJBQVFXcUJReEFxZ2t0UUFFRkZGQkFBUVVVVUVBQkJVb0ZERUJL
cGN5bmdBSUtLS0NBQWdvbwpvSUFDMVFJR0lOV0VGcUNBQWdvb29JQUNDaWlnZ0FLbEFnWWdwVkxt
VTBBQkJSUlFRQUVGRkZCQWdXb0JBNUJxUWd0UVFBRUZGRkJBCkFRVVVVRUNCVWdFRGtGSXA4eW1n
Z0FJS0tLQ0FBZ29vb0VDMWdBRklOYUVGS0tDQUFnb29vSUFDQ2lpZ1FLbUFBVWlwbFBrVVVFQUIK
QlJSUVFBRUZGRkNnV3NBQXBKclFBaFJRUUFFRkZGQkFBUVVVVUtCVXdBQ2tWTXA4Q2lpZ2dBSUtL
S0NBQWdvb1VDMWdBRkpOYUFFSwpLS0NBQWdvb29JQUNDaWhRS21BQVVpcGxQZ1VVVUVBQkJSUlFR
QUVGRktnV01BQ3BKclFBQlJSUVFBRUZGRkJBQVFVVUtCVXdBQ21WCk1wOENDaWlnZ0FJS0tLQ0FB
Z3BVQ3hpQVZCTmFnQUlLS0tDQUFnb29vSUFDQ3BRS0dJQ1VTcGxQQVFVVVVFQUJCUlJRUUFFRnFn
VU0KUUtvSkxVQUJCUlJRUUFFRkZGQkFBUVZLQlF4QVNxWE1wNEFDQ2lpZ2dBSUtLS0NBQXRVQ0Jp
RFZoQmFnZ0FJS0tLQ0FBZ29vb0lBQwpwUUlHSUtWUzVsTkFBUVVVVUVBQkJSUlFRSUZxQVFPUWFr
SUxVRUFCQlJSUVFBRUZGRkJBZ1ZJQkE1QlNLZk1wb0lBQ0NpaWdnQUlLCktLQkF0WUFCU0RXaEJT
aWdnQUlLS0tDQUFnb29vRUNwZ0FGSXFaVDVGRkJBQVFVVVVFQUJCUlJRb0ZyQUFLU2EwQUlVVUVB
QkJSUlEKUUFFRkZGQ2dWTUFBcEZUS2ZBb29vSUFDQ2lpZ2dBSUtLRkF0WUFCU1RXZ0JDaWlnZ0FJ
S0tLQ0FBZ29vVUNwZ0FGSXFaVDRGRkZCQQpBUVVVVUVBQkJSU29GakFBcVNhMEFBVVVVRUFCQlJS
UVFBRUZGQ2dWTUFBcGxUS2ZBZ29vb0lBQ0NpaWdnQUlLVkFzWWdGUVRXb0FDCkNpaWdnQUlLS0tD
QUFncVVDaGlBbEVxWlR3RUZGRkJBQVFVVVVFQUJCYW9GREVDcUNTMUFBUVVVVUVBQkJSUlFRQUVG
U2dVTVFFcWwKektlQUFnb29vSUFDQ2lpZ2dBTFZBZ1lnMVlRV29JQUNDaWlnZ0FJS0tLQ0FBcVVD
QmlDbFV1WlRRQUVGRkZCQUFRVVVVRUNCYWdFRAprR3BDQzFCQUFRVVVVRUFCQlJSUVFJRlNBUU9R
VWluekthQ0FBZ29vb0lBQ0NpaWdRTFdBQVVnMW9RVW9vSUFDQ2lpZ2dBSUtLS0JBCnFZQUJTS21V
K1JSUVFBRUZGRkJBQVFVVVVLQmF3QUNrbXRBQ0ZGQkFBUVVVVUVBQkJSUlFvRlRBQUtSVXlud0tL
S0NBQWdvb29JQUMKQ2pnWWs2TUFBQkk5U1VSQlZDaFFMV0FBVWsxb0FRb29vSUFDQ2lpZ2dBSUtL
RkFxWUFCU0ttVStCUlJRUUFFRkZGQkFBUVVVcUJZdwpBS2ttdEFBRkZGQkFBUVVVVUVBQkJSUW9G
VEFBS1pVeW53SUtLS0NBQWdvb29JQUNDbFFMR0lCVUUxcUFBZ29vb0lBQ0NpaWdnQUlLCmxBb1ln
SlJLbVU4QkJSUlFRQUVGRkZCQUFRV3FCUXhBcWdrdFFBRUZGRkJBQVFVVVVFQUJCVW9GREVCS3Bj
eW5nQUlLS0tDQUFnb28Kb0lBQzFRSUdJTldFRnFDQUFnb29vSUFDQ2lpZ2dBS2xBZ1lncFZMbVUw
QUJCUlJRUUFFRkZGQkFnV29CQTVCcVFndFFRQUVGRkZCQQpBUVVVVUVDQlVnRURrRklwOHltZ2dB
SUtLS0NBQWdvb29FQzFnQUZJTmFFRktLQ0FBZ29vb0lBQ0NpaWdRS21BQVVpcGxQa1VVRUFCCkJS
UlFRQUVGRkZDZ1dzQUFwSnJRQWhSUVFBRUZGRkJBQVFVVVVLQlV3QUNrVk1wOENpaWdnQUlLS0tD
QUFnb29VQzFnQUZKTmFBRUsKS0tDQUFnb29vSUFDQ2loUUttQUFVaXBsUGdVVVVFQUJCUlJRUUFF
RkZLZ1dNQUNwSnJRQUJSUlFRQUVGRkZCQUFRVVVLQlV3QUNtVgpNcDhDQ2lpZ2dBSUtLS0NBQWdw
VUN4aUFWQk5hZ0FJS0tLQ0FBZ29vb0lBQ0NwUUtHSUNVU3BsUEFRVVVVRUFCQlJSUVFBRUZxZ1VN
ClFLb0pMVUFCQlJSUVFBRUZGRkJBQVFWS0JReEFTcVhNcDRBQ0NpaWdnQUlLS0tDQUF0VUNCaURW
aEJhZ2dBSUtLS0NBQWdvb29JQUMKcFFJR0lLVlM1bE5BQVFVVVVFQUJCUlJRUUlGcUFRT1Fha0lM
VUVBQkJSUlFRQUVGRkZCQWdWSUJBNUJTS2ZNcG9JQUNDaWlnZ0FJSwpLS0JBdFlBQlNEV2hCU2ln
Z0FJS0tLQ0FBZ29vb0VDcGdBRklxWlQ1RkZCQUFRVVVVRUFCQlJSUW9GckFBS1NhMEFJVVVFQUJC
UlJRClFBRUZGRkNnVk1BQXBGVEtmQW9vb0lBQ0NpaWdnQUlLS0ZBdFlBQlNUV2dCQ2lpZ2dBSUtL
S0NBQWdvb1VDcGdBRklxWlQ0RkZGQkEKQVFVVVVFQUJCUlNvRmpBQXFTYTBBQVVVVUVBQkJSUlFR
QUVGRkNnVk1BQXBsVEtmQWdvb29JQUNDaWlnZ0FJS1ZBc1lnRlFUV29BQwpDaWlnZ0FJS0tLQ0FB
Z3FVQ2hpQWxFcVpUd0VGRkZCQUFRVVVVRUFCQmFvRkRFQ3FDUzFBQVFVVVVFQUJCUlJRUUFFRlNn
VU1RRXFsCnpLZUFBZ29vb0lBQ0NpaWdnQUxWQWdZZzFZUVdvSUFDQ2lpZ2dBSUtLS0NBQXFVQ0Jp
Q2xVdVpUUUFFRkZGQkFBUVVVVUVDQmFnRUQKa0dwQ0MxQkFBUVVVVUVBQkJSUlFRSUZTQVFPUVVp
bnpLYUNBQWdvb29JQUNDaWlnUUxXQUFVZzFvUVVvb0lBQ0NpaWdnQUlLS0tCQQpxWUFCU0ttVStS
UlFRQUVGRkZCQUFRVVVVS0Jhd0FDa210QUNGRkJBQVFVVVVFQUJCUlJRb0ZUQUFLUlV5bndLS0tD
QUFnb29vSUFDCkNpaFFMV0FBVWsxb0FRb29vSUFDQ2lpZ2dBSUtLRkFxWUFCU0ttVStCUlJRUUFF
RkZGQkFBUVVVcUJZd0FLa210QUFGRkZCQUFRVVUKVUVBQkJSUW9GVEFBS1pVeW53SUtLS0NBQWdv
b29JQUNDbFFMR0lCVUUxcUFBZ29vb0lBQ0NpaWdnQUlLbEFvWWdKUkttVThCQlJSUQpRQUVGRkZC
QUFRV3FCUXhBcWdrdFFBRUZGRkJBQVFVVVVFQUJCVW9GREVCS3BjeW5nQUlLS0tDQUFnb29vSUFD
MVFJR0lOV0VGcUNBCkFnb29vSUFDQ2lpZ2dBS2xBZ1lncFZMbVUwQUJCUlJRUUFFRkZGQkFnV29C
QTVCcVFndFFRQUVGRkZCQUFRVVVVRUNCVWdFRGtGSXAKOHltZ2dBSUtLS0NBQWdvb29FQzFnQUZJ
TmFFRktLQ0FBZ29vb0lBQ0NpaWdRS21BQVVpcGxQa1VVRUFCQlJSUVFBRUZGRkNnV3NBQQpwSnJR
QWhSUVFBRUZGRkJBQVFVVVVLQlV3QUNrVk1wOENpaWdnQUlLS0tDQUFnb29VQzFnQUZKTmFBRUtL
S0NBQWdvb29JQUNDaWhRCkttQUFVaXBsUGdVVVVFQUJCUlJRUUFFRkZLZ1dNQUNwSnJRQUJSUlFR
QUVGRkZCQUFRVVVLQlV3QUNtVk1wOENDaWlnZ0FJS0tLQ0EKQWdwVUN4aUFWQk5hZ0FJS0tLQ0FB
Z29vb0lBQ0NwUUtHSUNVU3BsUEFRVVVVRUFCQlJSUVFBRUZxZ1VNUUtvSkxVQUJCUlJRUUFFRgpG
RkJBQVFWS0JReEFTcVhNcDRBQ0NpaWdnQUlLS0tDQUF0VUNCaURWaEJhZ2dBSUtLS0NBQWdvb29J
QUNwUUlHSUtWUzVsTkFBUVVVClVFQUJCUlJRUUlGcUFRT1Fha0lMVUVBQkJSUlFRQUVGRkZCQWdW
SUJBNUJTS2ZNcG9JQUNDaWlnZ0FJS0tLQkF0WUFCU0RXaEJTaWcKZ0FJS0tLQ0FBZ29vb0VDcGdB
RklxWlQ1RkZCQUFRVVVVRUFCQlJSUW9GckFBS1NhMEFJVVVFQUJCUlJRUUFFRkZGQ2dWTUFBcEZU
SwpmQW9vb0lBQ0NpaWdnQUlLS0ZBdFlBQlNUV2dCQ2lpZ2dBSUtLS0NBQWdvb1VDcGdBRklxWlQ0
RkZGQkFBUVVVVUVBQkJSU29GakFBCnFTYTBBQVVVVUVBQkJSUlFRQUVGRkNnVk1BQXBsVEtmQWdv
b29JQUNDaWlnZ0FJS1ZBc1lnRlFUV29BQ0NpaWdnQUlLS0tDQUFncVUKQ2hpQWxFcVpUd0VGRkZC
QUFRVVVVRUFCQmFvRkRFQ3FDUzFBQVFVVVVFQUJCUlJRUUFFRlNnVU1RRXFsektlQUFnb29vSUFD
Q2lpZwpnQUxWQWdZZzFZUVdvSUFDQ2lpZ2dBSUtLS0NBQXFVQ0JpQ2xVdVpUUUFFRkZGQkFBUVVV
VUVDQmFnRURrR3BDQzFCQUFRVVVVRUFCCkJSUlFRSUZTQVFPUVVpbnpLYUNBQWdvb29JQUNDaWln
UUxXQUFVZzFvUVVvb0lBQ0NpaWdnQUlLS0tCQXFZQUJTS21VK1JSUVFBRUYKRkZCQUFRVVVVS0Jh
d0FDa210QUNGRkJBQVFVVVVFQUJCUlJRb0ZUQUFLUlV5bndLS0tDQUFnb29vSUFDQ2loUUxXQUFV
azFvQVFvbwpvSUFDQ2lpZ2dBSUtLRkFxWUFCU0ttVStCUlJRUUFFRkZGQkFBUVVVcUJZd0FLa210
QUFGRkZCQUFRVVVVRUFCQlJRb0ZUQUFLWlV5Cm53SUtLS0NBQWdvb29JQUNDbFFMR0lCVUUxcUFB
Z29vb0lBQ0NpaWdnQUlLbEFvWWdKUkttVThCQlJSUVFBRUZGRkJBQVFXcUJReEEKcWdrdFFBRUZG
RkJBQVFVVVVFQUJCVW9GREVCS3BjeW5nQUlLS0tDQUFnb29vSUFDMVFJR0lOV0VGcUNBQWdvb29J
QUNDaWlnZ0FLbApBZ1lncFZMbVUwQUJCUlJRUUFFRkZGQkFnV29CQTVCcVFndFFRQUVGRkZCQUFR
VVVVRUNCVWdFRGtGSXA4eW1nZ0FJS0tLQ0FBZ29vCm9FQzFnQUZJTmFFRktLQ0FBZ29vb0lBQ0Np
aWdRS21BQVVpcGxQa1VVRUFCQlJSUVFBRUZGRkNnV3NBQXBKclFBaFJRUUFFRkZGQkEKQVFVVVVL
QlV3QUNrVk1wOENpaWdnQUlLS0tDQUFnb29VQzFnQUZKTmFBRUtLS0NBQWdvb29JQUNDaWhRS21B
QVVpcGxQZ1VVVUVBQgpCUlJRUUFFRkZLZ1dNQUNwSnJRQUJSUlFRQUVGRkZCQUFRVVVLQlV3QUNt
Vk1wOENDaWlnZ0FJS0tLQ0FBZ3BVQ3hpQVZCTmFnQUlLCktLQ0FBZ29vb0lBQ0NwUUtHSUNVU3Bs
UEFRVVVVRUFCQlJSUVFBRUZxZ1VNUUtvSkxVQUJCUlJRUUFFRkZGQkFBUVZLQlF4QVNxWE0KcDRB
Q0NpaWdnQUlLS0tDQUF0VUNCaURWaEJhZ2dBSUtLS0NBQWdvb29JQUNwUUlHSUtWUzVsTkFBUVVV
VUVBQkJSUlFRSUZxQVFPUQpha0lMVUVBQkJSUlFRQUVGRkZCQWdWSUJBNUJTS2ZNcG9JQUNDaWln
Z0FJS0tLQkF0WUFCU0RXaEJTaWdnQUlLS0tDQUFnb29vRUNwCmdBRklxWlQ1RkZCQUFRVVVVRUFC
QlJSUW9GckFBS1NhMEFJVVVFQUJCUlJRUUFFRkZGQ2dWTUFBcEZUS2ZBb29vSUFDQ2lpZ2dBSUsK
S0ZBdFlBQlNUV2dCQ2lpZ2dBSUtLS0NBQWdvb1VDcGdBRklxWlQ0RkZGQkFBUVVVVUVBQkJSU29G
akFBcVNhMEFBVVVVRUFCQlJSUQpRQUVGRkNnVk1BQXBsVEtmQWdvb29JQUNDaWlnZ0FJS1ZBc1ln
RlFUV29BQ0NpaWdnQUlLS0tDQUFncVVDaGlBbEVxWlR3RUZGRkJBCkFRVVVVRUFCQmFvRkRFQ3FD
UzFBQVFVVVVFQUJCUlJRUUFFRlNnVU1RRXFsektlQUFnb29vSUFDQ2lpZ2dBTFZBZ1lnMVlRV29J
QUMKQ2lpZ2dBSUtLS0NBQXFVQ0JpQ2xVdVpUUUFFRkZGQkFBUVVVVUVDQmFnRURrR3BDQzFCQUFR
VVVVRUFCQlJSUVFJRlNBUU9RVWluegpLYUNBQWdvb29JQUNDaWlnUUxXQUFVZzFvUVVvb0lBQ0Np
aWdnQUlLS0tCQXFZQUJTS21VK1JSUVFBRUZGRkJBQVFVVVVLQmF3QUNrCm10QUNGRkJBQVFVVVVF
QUJCUlJRb0ZUQUFLUlV5bndLS0tDQUFnb29vSUFDQ2loUUxXQUFVazFvQVFvb29JQUNDaWlnZ0FJ
S0tGQXEKWUFCU0ttVStCUlJRUUFFRkZGQkFBUVVVcUJZd0FLa210QUFGRkZCQUFRVVVVRUFCQlJR
b0ZUQUFLWlV5bndJS0tLQ0FBZ29vb0lBQwpDbFFMR0lCVUUxcUFBZ29vb0lBQ0NpaWdnQUlLbEFv
WWdKUkttVThCQlJSUVFBRUZGRkJBQVFXcUJReEFxZ2t0UUFFRkZGQkFBUVVVClVFQUJCVW9GREVC
S3BjeW5nQUlLS0tDQUFnb29vSUFDMVFJR0lOV0VGcUNBQWdvb29JQUNDaWlnZ0FLbEFnWWdwVkxt
VTBBQkJSUlEKUUFFRkZGQkFnV29CQTVCcVFndFFRQUVGRkZCQUFRVVVVRUNCVWdFRGtGSXA4eW1n
Z0FJS0tLQ0FBZ29vb0VDMWdBRklOYUVGS0tDQQpBZ29vb0lBQ0NpaWdRS21BQVVpcGxQa1VVRUFC
QlJSUVFBRUZGRkNnV3NBQXBKclFBaFJRUUFFRkZGQkFBUVVVVUtCVXdBQ2tWTXA4CkNpaWdnQUlL
S0tDQUFnb29VQzFnQUZKTmFBRUtLS0NBQWdvb29JQUNDaWhRS21BQVVpcGxQZ1VVVUVBQkJSUlFR
QUVGRktnV01BQ3AKSnJRQUJSUlFRQUVGRkZCQUFRVVVLQlV3QUNtVk1wOENDaWlnZ0FJS0tLQ0FB
Z3BVQ3hpQVZCTmFnQUlLS0tDQUFnb29vSUFDQ3BRSwpHSUNVU3BsUEFRVVVVRUFCQlJSUVFBRUZx
Z1VNUUtvSkxVQUJCUlJRUUFFRkZGQkFBUVZLQlF4QVNxWE1wNEFDQ2lpZ2dBSUtLS0NBCkF0VUNC
aURWaEJhZ2dBSUtLS0NBQWdvb29JQUNwUUlHSUtWUzVsTkFBUVVVVUVBQkJSUlFRSUZxQVFPUWFr
SUxVRUFCQlJSUVFBRUYKRkZCQWdWSUJBNUJTS2ZNcG9JQUNDaWlnZ0FJS0tLQkF0WUFCU0RXaEJT
aWdnQUlLS0tDQUFnb29vRUNwZ0FGSXFaVDVGRkJBQVFVVQpVRUFCQlJSUW9GckFBS1NhMEFJVVVF
QUJCUlJRUUFFRkZGQ2dWTUFBcEZUS2ZBb29vSUFDQ2lpZ2dBSUtLRkF0WUFCU1RXZ0JDaWlnCmdB
SUtLS0NBQWdvb1VDcGdBRklxWlQ0RkZGQkFBUVVVVUVBQkJSU29GakFBcVNhMEFBVVVVRUFCQlJS
UVFBRUZGQ2dWTUFBcGxUS2YKQWdvb29JQUNDaWlnZ0FJS1ZBc1lnRlFUV29BQ0NpaWdnQUlLS0tD
QUFncVVDaGlBbEVxWlR3RUZGRkJBQVFVVVVFQUJCYW9GREVDcQpDUzFBQVFVVVVFQUJCUlJRUUFF
RlNnVU1RRXFsektlQUFnb29vSUFDQ2lpZ2dBTFZBZ1lnMVlRV29JQUNDaWlnZ0FJS0tLQ0FBcVVD
Ci8zLzdkV2dEQUFDQU1Pei9yM2xoQ2JhZUlPb21RS3FVSFFFQ0JBZ1FJRUNBQUFFQ3Q0QUF1UWtk
RUNCQWdBQUJBZ1FJRUNCUUJRUkkKbGJJalFJQUFBUUlFQ0JBZ1FPQVdFQ0Ezb1FNQ0JBZ1FJRUNB
QUFFQ0JLcUFBS2xTZGdRSUVDQkFnQUFCQWdRSTNBSUM1Q1owUUlBQQpBUUlFQ0JBZ1FJQkFGUkFn
VmNxT0FBRUNCQWdRSUVDQUFJRmJRSURjaEE0SUVDQkFnQUFCQWdRSUVLZ0NBcVJLMlJFZ1FJQUFB
UUlFCkNCQWdjQXNJa0p2UUFRRUNCQWdRSUVDQUFBRUNWVUNBVkNrN0FnUUlFQ0JBZ0FBQkFnUnVB
UUZ5RXpvZ1FJQUFBUUlFQ0JBZ1FLQUsKQ0pBcVpVZUFBQUVDQkFnUUlFQ0F3QzBnUUc1Q0J3UUlF
Q0JBZ0FBQkFnUUlWQUVCVXFYc0NCQWdRSUFBQVFJRUNCQzRCUVRJVGVpQQpBQUVDQkFnUUlFQ0FB
SUVxSUVDcWxCMEJBZ1FJRUNCQWdBQUJBcmVBQUxrSkhSQWdRSUFBQVFJRUNCQWdVQVVFU0pXeUkw
Q0FBQUVDCkJBZ1FJRURnRmhBZ042RURBZ1FJRUNCQWdBQUJBZ1NxZ0FDcFVuWUVDQkFnUUlBQUFR
SUVDTndDQXVRbWRFQ0FBQUVDQkFnUUlFQ0EKUUJVUUlGWEtqZ0FCQWdRSUVDQkFnQUNCVzBDQTNJ
UU9DQkFnUUlBQUFRSUVDQkNvQWdLa1N0a1JJRUNBQUFFQ0JBZ1FJSEFMQ0pDYgowQUVCQWdRSUVD
QkFnQUFCQWxWQWdGUXBPd0lFQ0JBZ1FJQUFBUUlFYmdFQmNoTTZJRUNBQUFFQ0JBZ1FJRUNnQ2dp
UUttVkhnQUFCCkFnUUlFQ0JBZ01BdElFQnVRZ2NFQ0JBZ1FJQUFBUUlFQ0ZRQkFWS2w3QWdRSUVD
QUFBRUNCQWdRdUFVRXlFM29nQUFCQWdRSUVDQkEKZ0FDQktpQkFxcFFkQVFJRUNCQWdRSUFBQVFL
M2dBQzVDUjBRSUVDQUFBRUNCQWdRSUZBRkJFaVZzaU5BZ0FBQkFnUUlFQ0JBNEJZUQpJRGVoQXdJ
RUNCQWdRSUFBQVFJRXFvQUFxVkoyQkFnUUlFQ0FBQUVDQkFqY0FnTGtKblJBZ0FBQkFnUUlFQ0JB
Z0VBVkVDQlZ5bzRBCkFRSUVDQkFnUUlBQWdWdEFnTnlFRGdnUUlFQ0FBQUVDQkFnUXFBSUNwRXJa
RVNCQWdBQUJBZ1FJRUNCd0N3aVFtOUFCQVFJRUNCQWcKUUlBQUFRSlZRSUJVS1RzQ0JBZ1FJRUNB
QUFFQ0JHNEJBWElUT2lCQWdBQUJBZ1FJRUNCQW9Bb0lrQ3BsUjRBQUFRSUVDQkFnUUlEQQpMU0JB
YmtJSEJBZ1FJRUNBQUFFQ0JBaFVBUUZTcGV3SUVDQkFnQUFCQWdRSUVMZ0ZCTWhONklBQUFRSUVD
QkFnUUlBQWdTb2dRS3FVCkhRRUNCQWdRSUVDQUFBRUN0NEFBdVFrZEVDQkFnQUFCQWdRSUVDQlFC
UVJJbGJJalFJQUFBUUlFQ0JBZ1FPQVdFQ0Ezb1FNQ0JBZ1EKSUVDQUFBRUNCS3FBQUtsU2RnUUlF
Q0JBZ0FBQkFnUUkzQUlDNUNaMFFJQUFBUUlFQ0JBZ1FJQkFGUkFnVmNxT0FBRUNCQWdRSUVDQQpB
SUZiWUQyUUU1Z0FGVVFSQUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477193</attachid>
            <date>2025-10-24 15:13:17 -0700</date>
            <delta_ts>2025-10-24 15:17:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-6274-20251024151316.patch</filename>
            <type>text/plain</type>
            <size>3858</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1MmNiMDM0MjMyZjUwMTQ5ZmJlOTdlZjc0NTgzNjE3MWNjNGEzOTJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjQgT2N0IDIwMjUgMTQ6MjI6MTAgLTA3MDAKU3ViamVjdDogW1BBVENIXSBodHRwczov
L21jYXMtcHJhY3RpY2V0ZXN0LmNvZ25pYS5vcmcvIEdyYWRlIDggRUxBIG1hdGgKIGV4YW1wbGVz
IGZhaWwgdG8gcmVwYWludCBjb250ZW50IHByb3Blcmx5CiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NCA8cmRhcjovLzE2MzI5MDc3OT4KClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKRml4IGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIHdoZW4gY29sbGVjdGlu
ZyBnbHlwaCBvdmVyZmxvdyBmb3IgdGV4dCBjb250ZW50LgoKKiBMYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvZ2x5cGgtdmVydGljYWwtb3ZlcmZsb3ctaW5jb3JyZWN0LXJlcGFpbnQtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2dseXBoLXZlcnRpY2FsLW92
ZXJmbG93LWluY29ycmVjdC1yZXBhaW50Lmh0bWw6IEFkZGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveCk6Ci0tLQogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcCAgIHwgIDQgKy0tCiAuLi5sLW92ZXJmbG93LWluY29ycmVjdC1y
ZXBhaW50LWV4cGVjdGVkLmh0bWwgfCAgMAogLi4uaC12ZXJ0aWNhbC1vdmVyZmxvdy1pbmNvcnJl
Y3QtcmVwYWludC5odG1sIHwgMzUgKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2Vk
LCAzNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9nbHlwaC12ZXJ0aWNhbC1vdmVyZmxvdy1pbmNvcnJlY3Qt
cmVwYWludC1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2dseXBoLXZlcnRpY2FsLW92ZXJmbG93LWluY29ycmVjdC1yZXBhaW50Lmh0bWwK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggYWNiNzdkYTM2OTE4Li5kY2U4ZjhhYjIyMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTE5NiwxMCArMTk2LDggQEAgdm9pZCBJbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1biYg
bGluZVJ1biwKICAgICAgICAgYWRkVGV4dFNoYWRvdygpOwogCiAgICAgICAgIGF1dG8gYWRkR2x5
cGhPdmVyZmxvdyA9IFsmXSB7Ci0gICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jYW5Vc2VT
aW1wbGVGb250Q29kZVBhdGgoKSkgewotICAgICAgICAgICAgICAgIC8vIGNhblVzZVNpbXBsZUZv
bnRDb2RlUGF0aCBtYXBzIHRvIENvZGVQYXRoOjpTaW1wbGUgKGFuZCBjb250ZW50IHdpdGggcG90
ZW50aWFsIGdseXBoIG92ZXJmbG93IHdvdWxkIHNheXMgQ29kZVBhdGg6OlNpbXBsZVdpdGhHbHlw
aE92ZXJmbG93KS4KKyAgICAgICAgICAgIGlmIChpbmxpbmVUZXh0Qm94LmNhblVzZVNpbXBsZUZv
bnRDb2RlUGF0aCgpICYmIGlubGluZVRleHRCb3guc2hvdWxkVXNlU2ltcGxlR2x5cGhPdmVyZmxv
d0NvZGVQYXRoKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYXV0byBlbmNsb3NpbmdBc2NlbnRBbmREZXNjZW50ID0gVGV4dFV0aWw6OmVuY2xv
c2luZ0dseXBoQm91bmRzRm9yVGV4dChTdHJpbmdWaWV3KGNvbnRlbnQpLnN1YnN0cmluZyh0ZXh0
LT5zdGFydCwgdGV4dC0+bGVuZ3RoKSwgc3R5bGUsIGlubGluZVRleHRCb3guc2hvdWxkVXNlU2lt
cGxlR2x5cGhPdmVyZmxvd0NvZGVQYXRoKCkgPyBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5
cGhPdmVyZmxvd0NvZGVQYXRoOjpZZXMgOiBUZXh0VXRpbDo6U2hvdWxkVXNlU2ltcGxlR2x5cGhP
dmVyZmxvd0NvZGVQYXRoOjpObyk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGFrZSBmYWxsYmFj
ayBmb250cyBpbnRvIGFjY291bnQuCiAgICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0
eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvZ2x5cGgtdmVydGljYWwtb3ZlcmZsb3ctaW5jb3JyZWN0LXJlcGFpbnQtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9nbHlwaC12ZXJ0aWNhbC1vdmVyZmxv
dy1pbmNvcnJlY3QtcmVwYWludC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvZ2x5cGgtdmVydGljYWwtb3ZlcmZsb3ctaW5jb3JyZWN0LXJlcGFpbnQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9nbHlwaC12ZXJ0aWNhbC1vdmVyZmxvdy1pbmNv
cnJlY3QtcmVwYWludC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uNGVlNmY5YWVmZjFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2dseXBoLXZlcnRpY2FsLW92ZXJmbG93LWluY29ycmVjdC1yZXBhaW50Lmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisuY29udGFpbmVyIHsKKyAgZm9udC1m
YW1pbHk6IFphcGZpbm87CisgIGZvbnQtc2l6ZTogNDBweDsKKyAgaGVpZ2h0OiAxMHB4OworICB3
aGl0ZS1zcGFjZTogcHJlOworfQorPC9zdHlsZT4KKzxkaXYgY2xhc3M9Y29udGFpbmVyPgorICA8
c3BhbiBpZD1yZW1vdmVfdGhpcz5QQVNTIGlmIHRoaXMgaXMgbm90IHZpc2libGUgPC9zcGFuPgor
PC9kaXY+Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgIGlmICh0ZXN0UnVubmVyLmRvbnRGb3JjZVJlcGFpbnQpCisg
ICAgdGVzdFJ1bm5lci5kb250Rm9yY2VSZXBhaW50KCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworCisgIHJlbW92
ZV90aGlzLnJlbW92ZSgpOworCisgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwor
ICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKworICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>