<?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>56052</bug_id>
          
          <creation_ts>2011-03-09 14:42:30 -0800</creation_ts>
          <short_desc>percentages are incorrectly rounded in WebKit</short_desc>
          <delta_ts>2011-04-26 12:41:59 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>56758</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Rik Cabanier">cabanier</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>mathias</cc>
    
    <cc>thakis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>364787</commentid>
    <comment_count>0</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-09 14:42:30 -0800</bug_when>
    <thetext>WebCore stores percentages as fixed point with limited precision.
Because of this, one of the layout tests (fast/css/percentage-non-integer.html) is not rendering correctly.

The Length class should be updated to use float instead of fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364803</commentid>
    <comment_count>1</comment_count>
      <attachid>85242</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-09 14:53:59 -0800</bug_when>
    <thetext>Created attachment 85242
First pass to get the results of the other platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364804</commentid>
    <comment_count>2</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-09 14:54:29 -0800</bug_when>
    <thetext>As discussed with David Hyatt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364881</commentid>
    <comment_count>3</comment_count>
      <attachid>85257</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-09 16:41:38 -0800</bug_when>
    <thetext>Created attachment 85257
First pass to get the results of the other platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365792</commentid>
    <comment_count>4</comment_count>
      <attachid>85432</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-10 20:32:20 -0800</bug_when>
    <thetext>Created attachment 85432
test to see if the build bots can integrate my change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365793</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-10 20:36:07 -0800</bug_when>
    <thetext>Attachment 85432 did not pass style-queue:

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

Source/WebCore/ChangeLog:7:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 10 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>366041</commentid>
    <comment_count>6</comment_count>
      <attachid>85482</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-11 09:25:33 -0800</bug_when>
    <thetext>Created attachment 85482
First pass to get the results of the other platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366270</commentid>
    <comment_count>7</comment_count>
      <attachid>85482</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-11 13:24:14 -0800</bug_when>
    <thetext>Comment on attachment 85482
First pass to get the results of the other platforms

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

&gt; Source/WebCore/rendering/AutoTableLayout.cpp:272
&gt; +    // if there was no remaining percent, maxWidth is invalid.
&gt; +    if (!remainingPercent &amp;&amp; maxNonPercent)
&gt; +        maxWidth = intMaxForLength;        

This seems like a logic change... is there a test to go with it?

&gt; Source/WebCore/rendering/FixedTableLayout.cpp:239
&gt; +    float totalRawPercent = 0;

Seems like this could be renamed to remove the &quot;Raw&quot; word.

&gt; LayoutTests/ChangeLog:8
&gt; +        * platform/mac/fast/css/percentage-non-integer-expected.txt:

Missing a pixel result for the test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366312</commentid>
    <comment_count>8</comment_count>
      <attachid>85532</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-11 14:18:40 -0800</bug_when>
    <thetext>Created attachment 85532
Update patch. Fixed variable name per David Hyatt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366321</commentid>
    <comment_count>9</comment_count>
      <attachid>85536</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-11 14:33:21 -0800</bug_when>
    <thetext>Created attachment 85536
updated checksum file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366323</commentid>
    <comment_count>10</comment_count>
      <attachid>85538</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-11 14:41:00 -0800</bug_when>
    <thetext>Created attachment 85538
Update patch. Fixed variable name per David Hyatt + updated pixel test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367226</commentid>
    <comment_count>11</comment_count>
      <attachid>85538</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-14 14:18:57 -0700</bug_when>
    <thetext>Comment on attachment 85538
Update patch. Fixed variable name per David Hyatt + updated pixel test

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367446</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-14 19:15:39 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 85538:

animations/suspend-resume-animation.html bug 48161 (author: cmarrin@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367448</commentid>
    <comment_count>13</comment_count>
      <attachid>85538</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-14 19:18:09 -0700</bug_when>
    <thetext>Comment on attachment 85538
Update patch. Fixed variable name per David Hyatt + updated pixel test

Clearing flags on attachment: 85538

Committed r81097: &lt;http://trac.webkit.org/changeset/81097&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367449</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-14 19:18:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367459</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-14 19:32:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81097 might have broken Leopard Intel Release (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367484</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2011-03-14 20:56:53 -0700</bug_when>
    <thetext>I rolled this out in r81103 due to the fact it breaks the 32-bit Mac build and caused assertions failures on the Windows Debug build bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368031</commentid>
    <comment_count>17</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-15 16:35:42 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I rolled this out in r81103 due to the fact it breaks the 32-bit Mac build and caused assertions failures on the Windows Debug build bot.

I found the mac leopard issue but am unable to find the windows debug issue.
Where is the failure log located?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368471</commentid>
    <comment_count>18</comment_count>
      <attachid>85957</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-16 12:56:38 -0700</bug_when>
    <thetext>Created attachment 85957
fixes for mac leopard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368506</commentid>
    <comment_count>19</comment_count>
      <attachid>85966</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-16 13:44:56 -0700</bug_when>
    <thetext>Created attachment 85966
Fixes for max leopard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368518</commentid>
    <comment_count>20</comment_count>
      <attachid>85969</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-16 13:57:54 -0700</bug_when>
    <thetext>Created attachment 85969
Fixes for max leopard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368525</commentid>
    <comment_count>21</comment_count>
      <attachid>85971</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-16 14:06:03 -0700</bug_when>
    <thetext>Created attachment 85971
Fixes for max leopard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369165</commentid>
    <comment_count>22</comment_count>
      <attachid>86072</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-17 11:07:49 -0700</bug_when>
    <thetext>Created attachment 86072
Fixed for mac 32 bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369171</commentid>
    <comment_count>23</comment_count>
      <attachid>86075</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-17 11:15:30 -0700</bug_when>
    <thetext>Created attachment 86075
Fixes for mac 32bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369876</commentid>
    <comment_count>24</comment_count>
      <attachid>86075</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-03-18 14:19:08 -0700</bug_when>
    <thetext>Comment on attachment 86075
Fixes for mac 32bit

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

&gt; Source/WebCore/page/animation/AnimationBase.cpp:116
&gt; +    return to.blend(from, static_cast&lt;float&gt;(progress));

This should use narrowPrecisionToFloat()

&gt; Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.cpp:35
&gt; +        return TranslateTransformOperation::create(Length(m_x.type()).blend(m_x, static_cast&lt;float&gt;(progress)), 
&gt; +                                                   Length(m_y.type()).blend(m_y, static_cast&lt;float&gt;(progress)), 
&gt; +                                                   Length(m_z.type()).blend(m_z, static_cast&lt;float&gt;(progress)), m_type);

Ditto

&gt; Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.cpp:41
&gt; +    return TranslateTransformOperation::create(m_x.blend(fromX, static_cast&lt;float&gt;(progress)), m_y.blend(fromY, static_cast&lt;float&gt;(progress)), m_z.blend(fromZ, static_cast&lt;float&gt;(progress)), m_type);

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369896</commentid>
    <comment_count>25</comment_count>
      <attachid>86214</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-18 14:33:33 -0700</bug_when>
    <thetext>Created attachment 86214
used narrowPrecisionToFloat per Simon&apos;s review notes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370445</commentid>
    <comment_count>26</comment_count>
      <attachid>86214</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-03-21 10:19:00 -0700</bug_when>
    <thetext>Comment on attachment 86214
used narrowPrecisionToFloat per Simon&apos;s review notes

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

&gt; Source/WebCore/platform/Length.h:76
&gt; +            m_floatValue = static_cast&lt;float&gt;(m_floatValue*v);
&gt; +        else        
&gt; +            m_intValue = static_cast&lt;int&gt;(m_intValue*v);

Spaces around the * please.

&gt; Source/WebCore/platform/Length.h:170
&gt; +        if (m_isFloat)
&gt; +            return !m_floatValue; 
&gt; +        
&gt; +        return !m_intValue;

Maybe slightly cleaner as return m_isFloat ? !m_floatValue : !m_intValue;

&gt; Source/WebCore/platform/Length.h:196
&gt; +            float fromPercent = from.isZero() ? 0.f : from.percent();
&gt; +            float toPercent = isZero() ? 0.f : percent();

Is the 0.f required to fix a compiler issue? If not, stick with 0.

&gt; Source/WebCore/platform/Length.h:201
&gt; +        float fromValue = from.isZero() ? 0.f : from.value();
&gt; +        float toValue = isZero() ? 0.f : value();

Ditto.

&gt; Source/WebCore/rendering/AutoTableLayout.cpp:235
&gt; +    const float epsilon = 1 / 128.0f;

It&apos;s not obvious why you chose 1/128 here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370464</commentid>
    <comment_count>27</comment_count>
      <attachid>86334</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-21 10:51:08 -0700</bug_when>
    <thetext>Created attachment 86334
updated per Simon&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370469</commentid>
    <comment_count>28</comment_count>
      <attachid>86334</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-21 10:55:28 -0700</bug_when>
    <thetext>Comment on attachment 86334
updated per Simon&apos;s review

&gt;Index: Source/WebCore/ChangeLog
&gt;===================================================================
&gt;--- Source/WebCore/ChangeLog	(revision 80665)
&gt;+++ Source/WebCore/ChangeLog	(working copy)
&gt;@@ -1,3 +1,42 @@
&gt;+2011-03-09  Rik Cabanier  &lt;cabanier@adobe.com&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        bug 56052: percentages are incorrectly rounded in WebKit
&gt;+        https://bugs.webkit.org/show_bug.cgi?id=56052
&gt;+
&gt;+        test: fast/css/percentage-non-integer.html
&gt;+
&gt;+        * css/CSSStyleSelector.cpp:
&gt;+        (WebCore::CSSStyleSelector::applyProperty):
&gt;+        * page/PrintContext.cpp:
&gt;+        (WebCore::PrintContext::pageProperty):
&gt;+        * platform/Length.h:
&gt;+        (WebCore::Length::Length):
&gt;+        (WebCore::Length::operator*=):
&gt;+        (WebCore::Length::value):
&gt;+        (WebCore::Length::percent):
&gt;+        (WebCore::Length::setValue):
&gt;+        (WebCore::Length::calcValue):
&gt;+        (WebCore::Length::calcMinValue):
&gt;+        (WebCore::Length::isUndefined):
&gt;+        (WebCore::Length::isZero):
&gt;+        (WebCore::Length::isPositive):
&gt;+        (WebCore::Length::isNegative):
&gt;+        * rendering/AutoTableLayout.cpp:
&gt;+        (WebCore::AutoTableLayout::recalcColumn):
&gt;+        (WebCore::AutoTableLayout::computePreferredLogicalWidths):
&gt;+        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
&gt;+        (WebCore::AutoTableLayout::layout):
&gt;+        * rendering/FixedTableLayout.cpp:
&gt;+        (WebCore::FixedTableLayout::calcWidthArray):
&gt;+        (WebCore::FixedTableLayout::layout):
&gt;+        * rendering/RenderTableSection.cpp:
&gt;+        (WebCore::RenderTableSection::addCell):
&gt;+        (WebCore::RenderTableSection::layoutRows):
&gt;+        * rendering/style/BorderData.h:
&gt;+        (WebCore::BorderData::hasBorderRadius):
&gt;+
&gt; 2011-03-09  James Robinson  &lt;jamesr@chromium.org&gt;
&gt; 
&gt;         Reviewed by Kenneth Russell.
&gt;Index: Source/WebCore/css/CSSStyleSelector.cpp
&gt;===================================================================
&gt;--- Source/WebCore/css/CSSStyleSelector.cpp	(revision 80381)
&gt;+++ Source/WebCore/css/CSSStyleSelector.cpp	(working copy)
&gt;@@ -5332,8 +5332,8 @@ void CSSStyleSelector::applyProperty(int
&gt;             radiusHeight = Length(pair-&gt;second()-&gt;getDoubleValue(), Percent);
&gt;         else
&gt;             radiusHeight = Length(max(intMinForLength, min(intMaxForLength, pair-&gt;second()-&gt;computeLengthInt(style(), m_rootElementStyle, zoomFactor))), Fixed);
&gt;-        int width = radiusWidth.rawValue();
&gt;-        int height = radiusHeight.rawValue();
&gt;+        int width = radiusWidth.value();
&gt;+        int height = radiusHeight.value();
&gt;         if (width &lt; 0 || height &lt; 0)
&gt;             return;
&gt;         if (width == 0)
&gt;Index: Source/WebCore/page/PrintContext.cpp
&gt;===================================================================
&gt;--- Source/WebCore/page/PrintContext.cpp	(revision 80381)
&gt;+++ Source/WebCore/page/PrintContext.cpp	(working copy)
&gt;@@ -282,16 +282,16 @@ String PrintContext::pageProperty(Frame*
&gt;     if (!strcmp(propertyName, &quot;margin-left&quot;)) {
&gt;         if (style-&gt;marginLeft().isAuto())
&gt;             return String(&quot;auto&quot;);
&gt;-        return String::number(style-&gt;marginLeft().rawValue());
&gt;+        return String::number(style-&gt;marginLeft().value());
&gt;     }
&gt;     if (!strcmp(propertyName, &quot;line-height&quot;))
&gt;-        return String::number(style-&gt;lineHeight().rawValue());
&gt;+        return String::number(style-&gt;lineHeight().value());
&gt;     if (!strcmp(propertyName, &quot;font-size&quot;))
&gt;         return String::number(style-&gt;fontDescription().computedPixelSize());
&gt;     if (!strcmp(propertyName, &quot;font-family&quot;))
&gt;         return style-&gt;fontDescription().family().family().string();
&gt;     if (!strcmp(propertyName, &quot;size&quot;))
&gt;-        return makeString(String::number(style-&gt;pageSize().width().rawValue()), &apos; &apos;, String::number(style-&gt;pageSize().height().rawValue()));
&gt;+        return makeString(String::number(style-&gt;pageSize().width().value()), &apos; &apos;, String::number(style-&gt;pageSize().height().value()));
&gt; 
&gt;     return makeString(&quot;pageProperty() unimplemented for: &quot;, propertyName);
&gt; }
&gt;Index: Source/WebCore/page/animation/AnimationBase.cpp
&gt;===================================================================
&gt;--- Source/WebCore/page/animation/AnimationBase.cpp	(revision 80381)
&gt;+++ Source/WebCore/page/animation/AnimationBase.cpp	(working copy)
&gt;@@ -113,7 +113,7 @@ static inline Color blendFunc(const Anim
&gt; 
&gt; static inline Length blendFunc(const AnimationBase*, const Length&amp; from, const Length&amp; to, double progress)
&gt; {  
&gt;-    return to.blend(from, progress);
&gt;+    return to.blend(from, narrowPrecisionToFloat(progress));
&gt; }
&gt; 
&gt; static inline LengthSize blendFunc(const AnimationBase* anim, const LengthSize&amp; from, const LengthSize&amp; to, double progress)
&gt;Index: Source/WebCore/platform/Length.h
&gt;===================================================================
&gt;--- Source/WebCore/platform/Length.h	(revision 80381)
&gt;+++ Source/WebCore/platform/Length.h	(working copy)
&gt;@@ -1,6 +1,7 @@
&gt; /*
&gt;     Copyright (C) 1999 Lars Knoll (knoll@kde.org)
&gt;     Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
&gt;+    Copyright (C) 2011 Rik Cabanier (cabanier@adobe.com)
&gt; 
&gt;     This library is free software; you can redistribute it and/or
&gt;     modify it under the terms of the GNU Library General Public
&gt;@@ -30,7 +31,6 @@
&gt; namespace WebCore {
&gt; 
&gt; const int undefinedLength = -1;
&gt;-const int percentScaleFactor = 128;
&gt; const int intMaxForLength = 0x7ffffff; // max value for a 28-bit int
&gt; const int intMinForLength = (-0x7ffffff - 1); // min value for a 28-bit int
&gt; 
&gt;@@ -52,34 +52,40 @@ public:
&gt;     Length(int v, LengthType t, bool q = false)
&gt;         : m_intValue(v), m_quirk(q), m_type(t), m_isFloat(false)
&gt;     {
&gt;-        ASSERT(t != Percent);
&gt;+    }
&gt;+    
&gt;+    Length(float v, LengthType t, bool q = false)
&gt;+    : m_floatValue(v), m_quirk(q), m_type(t), m_isFloat(true)
&gt;+    {            
&gt;     }
&gt; 
&gt;     Length(double v, LengthType t, bool q = false)
&gt;-        : m_quirk(q), m_type(t), m_isFloat(false)
&gt;-    {
&gt;-        if (m_type == Percent)
&gt;-            m_intValue = static_cast&lt;int&gt;(v*percentScaleFactor);
&gt;-        else {
&gt;-            m_isFloat = true;            
&gt;-            m_floatValue = static_cast&lt;float&gt;(v);
&gt;-       }
&gt;+        : m_quirk(q), m_type(t), m_isFloat(true)
&gt;+    {           
&gt;+        m_floatValue = static_cast&lt;float&gt;(v);    
&gt;     }
&gt; 
&gt;     bool operator==(const Length&amp; o) const { return (getFloatValue() == o.getFloatValue()) &amp;&amp; (m_type == o.m_type) &amp;&amp; (m_quirk == o.m_quirk); }
&gt;     bool operator!=(const Length&amp; o) const { return (getFloatValue() != o.getFloatValue()) || (m_type != o.m_type) || (m_quirk != o.m_quirk); }
&gt; 
&gt;+    const Length&amp; operator*=(float v)
&gt;+    {        
&gt;+        if (m_isFloat)
&gt;+            m_floatValue = static_cast&lt;float&gt;(m_floatValue * v);
&gt;+        else        
&gt;+            m_intValue = static_cast&lt;int&gt;(m_intValue * v);
&gt;+        
&gt;+        return *this;
&gt;+    }
&gt;+    
&gt;     int value() const {
&gt;-        ASSERT(type() != Percent);
&gt;-        return rawValue();
&gt;+        return getIntValue();
&gt;     }
&gt; 
&gt;-    int rawValue() const { return getIntValue(); }
&gt;-
&gt;-    double percent() const
&gt;+    float percent() const
&gt;     {
&gt;         ASSERT(type() == Percent);
&gt;-        return static_cast&lt;double&gt;(rawValue()) / percentScaleFactor;
&gt;+        return getFloatValue();
&gt;     }
&gt; 
&gt;     LengthType type() const { return static_cast&lt;LengthType&gt;(m_type); }
&gt;@@ -94,18 +100,17 @@ public:
&gt; 
&gt;     void setValue(int value)
&gt;     {
&gt;-        ASSERT(!value || type() != Percent);
&gt;         setValue(Fixed, value);
&gt;     }
&gt; 
&gt;-    void setValue(LengthType t, double value)
&gt;+    void setValue(LengthType t, float value)
&gt;     {
&gt;         m_type = t;
&gt;-        m_floatValue = static_cast&lt;float&gt;(value);
&gt;+        m_floatValue = value;
&gt;         m_isFloat = true;    
&gt;     }
&gt; 
&gt;-    void setValue(double value)
&gt;+    void setValue(float value)
&gt;     {
&gt;         *this = Length(value, Fixed);
&gt;     }
&gt;@@ -119,7 +124,7 @@ public:
&gt;             case Percent:
&gt;                 if (roundPercentages)
&gt;                     return static_cast&lt;int&gt;(round(maxValue * percent() / 100.0));
&gt;-                return maxValue * rawValue() / (100 * percentScaleFactor);
&gt;+                return static_cast&lt;int&gt;(maxValue * percent() / 100.0);
&gt;             case Auto:
&gt;                 return maxValue;
&gt;             default:
&gt;@@ -135,7 +140,7 @@ public:
&gt;             case Percent:
&gt;                 if (roundPercentages)
&gt;                     return static_cast&lt;int&gt;(round(maxValue * percent() / 100.0));
&gt;-                return maxValue * rawValue() / (100 * percentScaleFactor);
&gt;+                return static_cast&lt;int&gt;(maxValue * percent() / 100.0);
&gt;             case Auto:
&gt;             default:
&gt;                 return 0;
&gt;@@ -156,10 +161,16 @@ public:
&gt;         }
&gt;     }
&gt; 
&gt;-    bool isUndefined() const { return rawValue() == undefinedLength; }
&gt;-    bool isZero() const { return !getIntValue(); }
&gt;-    bool isPositive() const { return rawValue() &gt; 0; }
&gt;-    bool isNegative() const { return rawValue() &lt; 0; }
&gt;+    bool isUndefined() const { return value() == undefinedLength; }
&gt;+    bool isZero() const 
&gt;+    { 
&gt;+        return m_isFloat ? !m_floatValue : !m_intValue;
&gt;+    }
&gt;+    bool isPositive() const { return getFloatValue() &gt; 0; }
&gt;+    bool isNegative() const { return getFloatValue() &lt; 0; }
&gt; 
&gt;     bool isAuto() const { return type() == Auto; }
&gt;     bool isRelative() const { return type() == Relative; }
&gt;@@ -167,7 +178,7 @@ public:
&gt;     bool isFixed() const { return type() == Fixed; }
&gt;     bool isIntrinsicOrAuto() const { return type() == Auto || type() == MinIntrinsic || type() == Intrinsic; }
&gt; 
&gt;-    Length blend(const Length&amp; from, double progress) const
&gt;+    Length blend(const Length&amp; from, float progress) const
&gt;     {
&gt;         // Blend two lengths to produce a new length that is in between them.  Used for animation.
&gt;         if (!from.isZero() &amp;&amp; !isZero() &amp;&amp; from.type() != type())
&gt;@@ -181,29 +192,25 @@ public:
&gt;             resultType = from.type();
&gt;         
&gt;         if (resultType == Percent) {
&gt;-            double fromPercent = from.isZero() ? 0. : from.percent();
&gt;-            double toPercent = isZero() ? 0. : percent();
&gt;+            float fromPercent = from.isZero() ? 0 : from.percent();
&gt;+            float toPercent = isZero() ? 0 : percent();
&gt;             return Length(fromPercent + (toPercent - fromPercent) * progress, Percent);
&gt;         } 
&gt;             
&gt;-        double fromValue = from.isZero() ? 0 : from.value();
&gt;-        double toValue = isZero() ? 0 : value();
&gt;+        float fromValue = from.isZero() ? 0 : from.value();
&gt;+        float toValue = isZero() ? 0 : value();
&gt;         return Length(fromValue + (toValue - fromValue) * progress, resultType);
&gt;     }
&gt; 
&gt; private:
&gt;     int getIntValue() const
&gt;     {
&gt;-        if (m_isFloat)
&gt;-            return static_cast&lt;int&gt;(m_floatValue);
&gt;-        return m_intValue;
&gt;+        return m_isFloat ? static_cast&lt;int&gt;(m_floatValue) : m_intValue;
&gt;     }
&gt; 
&gt;     float getFloatValue() const
&gt;     {
&gt;-        if (m_isFloat)
&gt;-                return m_floatValue;
&gt;-        return m_intValue;
&gt;+        return m_isFloat ? m_floatValue : m_intValue;
&gt;     }
&gt; 
&gt;     union {
&gt;Index: Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.cpp
&gt;===================================================================
&gt;--- Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.cpp	(revision 80381)
&gt;+++ Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.cpp	(working copy)
&gt;@@ -21,6 +21,7 @@
&gt; 
&gt; #include &quot;config.h&quot;
&gt; #include &quot;TranslateTransformOperation.h&quot;
&gt;+#include &quot;FloatConversion.h&quot;
&gt; 
&gt; namespace WebCore {
&gt; 
&gt;@@ -30,15 +31,15 @@ PassRefPtr&lt;TransformOperation&gt; Translate
&gt;         return this;
&gt;     
&gt;     if (blendToIdentity)
&gt;-        return TranslateTransformOperation::create(Length(m_x.type()).blend(m_x, progress), 
&gt;-                                                   Length(m_y.type()).blend(m_y, progress), 
&gt;-                                                   Length(m_z.type()).blend(m_z, progress), m_type);
&gt;+        return TranslateTransformOperation::create(Length(m_x.type()).blend(m_x, narrowPrecisionToFloat(progress)), 
&gt;+                                                   Length(m_y.type()).blend(m_y, narrowPrecisionToFloat(progress)), 
&gt;+                                                   Length(m_z.type()).blend(m_z, narrowPrecisionToFloat(progress)), m_type);
&gt; 
&gt;     const TranslateTransformOperation* fromOp = static_cast&lt;const TranslateTransformOperation*&gt;(from);
&gt;     Length fromX = fromOp ? fromOp-&gt;m_x : Length(m_x.type());
&gt;     Length fromY = fromOp ? fromOp-&gt;m_y : Length(m_y.type());
&gt;     Length fromZ = fromOp ? fromOp-&gt;m_z : Length(m_z.type());
&gt;-    return TranslateTransformOperation::create(m_x.blend(fromX, progress), m_y.blend(fromY, progress), m_z.blend(fromZ, progress), m_type);
&gt;+    return TranslateTransformOperation::create(m_x.blend(fromX, narrowPrecisionToFloat(progress)), m_y.blend(fromY, narrowPrecisionToFloat(progress)), m_z.blend(fromZ, narrowPrecisionToFloat(progress)), m_type);
&gt; }
&gt; 
&gt; } // namespace WebCore
&gt;Index: Source/WebCore/rendering/AutoTableLayout.cpp
&gt;===================================================================
&gt;--- Source/WebCore/rendering/AutoTableLayout.cpp	(revision 80381)
&gt;+++ Source/WebCore/rendering/AutoTableLayout.cpp	(working copy)
&gt;@@ -81,7 +81,7 @@ void AutoTableLayout::recalcColumn(int e
&gt; 
&gt;                     Length cellLogicalWidth = cell-&gt;styleOrColLogicalWidth();
&gt;                     // FIXME: What is this arbitrary value?
&gt;-                    if (cellLogicalWidth.rawValue() &gt; 32760)
&gt;+                    if (cellLogicalWidth.value() &gt; 32760)
&gt;                         cellLogicalWidth.setValue(32760);
&gt;                     if (cellLogicalWidth.isNegative())
&gt;                         cellLogicalWidth.setValue(0);
&gt;@@ -105,13 +105,13 @@ void AutoTableLayout::recalcColumn(int e
&gt;                         break;
&gt;                     case Percent:
&gt;                         m_hasPercent = true;
&gt;-                        if (cellLogicalWidth.isPositive() &amp;&amp; (!columnLayout.logicalWidth.isPercent() || cellLogicalWidth.rawValue() &gt; columnLayout.logicalWidth.rawValue()))
&gt;+                        if (cellLogicalWidth.isPositive() &amp;&amp; (!columnLayout.logicalWidth.isPercent() || cellLogicalWidth.value() &gt; columnLayout.logicalWidth.value()))
&gt;                             columnLayout.logicalWidth = cellLogicalWidth;
&gt;                         break;
&gt;                     case Relative:
&gt;                         // FIXME: Need to understand this case and whether it makes sense to compare values
&gt;                         // which are not necessarily of the same type.
&gt;-                        if (cellLogicalWidth.isAuto() || (cellLogicalWidth.isRelative() &amp;&amp; cellLogicalWidth.value() &gt; columnLayout.logicalWidth.rawValue()))
&gt;+                        if (cellLogicalWidth.isAuto() || (cellLogicalWidth.isRelative() &amp;&amp; cellLogicalWidth.value() &gt; columnLayout.logicalWidth.value()))
&gt;                             columnLayout.logicalWidth = cellLogicalWidth;
&gt;                     default:
&gt;                         break;
&gt;@@ -232,16 +232,16 @@ void AutoTableLayout::computePreferredLo
&gt; 
&gt;     // We substitute 0 percent by (epsilon / percentScaleFactor) percent in two places below to avoid division by zero.
&gt;     // FIXME: Handle the 0% cases properly.
&gt;-    const int epsilon = 1;
&gt;+    const float epsilon = 1 / 128.0f;
&gt; 
&gt;-    int remainingPercent = 100 * percentScaleFactor;
&gt;+    float remainingPercent = 100;
&gt;     for (size_t i = 0; i &lt; m_layoutStruct.size(); ++i) {
&gt;         minWidth += m_layoutStruct[i].effectiveMinLogicalWidth;
&gt;         maxWidth += m_layoutStruct[i].effectiveMaxLogicalWidth;
&gt;         if (scaleColumns) {
&gt;             if (m_layoutStruct[i].effectiveLogicalWidth.isPercent()) {
&gt;-                int percent = min(m_layoutStruct[i].effectiveLogicalWidth.rawValue(), remainingPercent);
&gt;-                float logicalWidth = static_cast&lt;float&gt;(m_layoutStruct[i].effectiveMaxLogicalWidth) * 100 * percentScaleFactor / max(percent, epsilon);
&gt;+                float percent = min(static_cast&lt;float&gt;(m_layoutStruct[i].effectiveLogicalWidth.percent()), remainingPercent);
&gt;+                float logicalWidth = static_cast&lt;float&gt;(m_layoutStruct[i].effectiveMaxLogicalWidth) * 100 / max(percent, epsilon);
&gt;                 maxPercent = max(logicalWidth,  maxPercent);
&gt;                 remainingPercent -= percent;
&gt;             } else
&gt;@@ -250,7 +250,7 @@ void AutoTableLayout::computePreferredLo
&gt;     }
&gt; 
&gt;     if (scaleColumns) {
&gt;-        maxNonPercent = maxNonPercent * 100 * percentScaleFactor / max(remainingPercent, epsilon);
&gt;+        maxNonPercent = maxNonPercent * 100 / max(remainingPercent, epsilon);
&gt;         maxWidth = max(maxWidth, static_cast&lt;int&gt;(min(maxNonPercent, INT_MAX / 2.0f)));
&gt;         maxWidth = max(maxWidth, static_cast&lt;int&gt;(min(maxPercent, INT_MAX / 2.0f)));
&gt;     }
&gt;@@ -266,6 +266,10 @@ void AutoTableLayout::computePreferredLo
&gt;         minWidth = max(minWidth, tableLogicalWidth.value());
&gt;         maxWidth = minWidth;
&gt;     }
&gt;+    
&gt;+    // if there was no remaining percent, maxWidth is invalid.
&gt;+    if (!remainingPercent &amp;&amp; maxNonPercent)
&gt;+        maxWidth = intMaxForLength;        
&gt; }
&gt; 
&gt; /*
&gt;@@ -300,7 +304,7 @@ int AutoTableLayout::calcEffectiveLogica
&gt;         size_t lastCol = effCol;
&gt;         int cellMinLogicalWidth = cell-&gt;minPreferredLogicalWidth() + spacingInRowDirection;
&gt;         float cellMaxLogicalWidth = cell-&gt;maxPreferredLogicalWidth() + spacingInRowDirection;
&gt;-        int totalPercent = 0;
&gt;+        float totalPercent = 0;
&gt;         int spanMinLogicalWidth = 0;
&gt;         float spanMaxLogicalWidth = 0;
&gt;         bool allColsArePercent = true;
&gt;@@ -312,7 +316,7 @@ int AutoTableLayout::calcEffectiveLogica
&gt;             Layout&amp; columnLayout = m_layoutStruct[lastCol];
&gt;             switch (columnLayout.logicalWidth.type()) {
&gt;             case Percent:
&gt;-                totalPercent += columnLayout.logicalWidth.rawValue();
&gt;+                totalPercent += columnLayout.logicalWidth.percent();
&gt;                 allColsAreFixed = false;
&gt;                 break;
&gt;             case Fixed:
&gt;@@ -339,7 +343,7 @@ int AutoTableLayout::calcEffectiveLogica
&gt;                     columnLayout.effectiveLogicalWidth = Length();
&gt;                     allColsArePercent = false;
&gt;                 } else
&gt;-                    totalPercent += columnLayout.effectiveLogicalWidth.rawValue();
&gt;+                    totalPercent += columnLayout.effectiveLogicalWidth.percent();
&gt;                 allColsAreFixed = false;
&gt;             }
&gt;             if (!columnLayout.emptyCellsOnly)
&gt;@@ -354,14 +358,14 @@ int AutoTableLayout::calcEffectiveLogica
&gt; 
&gt;         // adjust table max width if needed
&gt;         if (cellLogicalWidth.isPercent()) {
&gt;-            if (totalPercent &gt; cellLogicalWidth.rawValue() || allColsArePercent) {
&gt;+            if (totalPercent &gt; cellLogicalWidth.percent() || allColsArePercent) {
&gt;                 // can&apos;t satify this condition, treat as variable
&gt;                 cellLogicalWidth = Length();
&gt;             } else {
&gt;-                maxLogicalWidth = max(maxLogicalWidth, max(spanMaxLogicalWidth, cellMaxLogicalWidth) * 100 * percentScaleFactor / cellLogicalWidth.rawValue());
&gt;+                maxLogicalWidth = max(maxLogicalWidth, static_cast&lt;float&gt;(max(spanMaxLogicalWidth, cellMaxLogicalWidth) * 100  / cellLogicalWidth.percent()));
&gt; 
&gt;                 // all non percent columns in the span get percent values to sum up correctly.
&gt;-                int percentMissing = cellLogicalWidth.rawValue() - totalPercent;
&gt;+                float percentMissing = cellLogicalWidth.percent() - totalPercent;
&gt;                 float totalWidth = 0;
&gt;                 for (unsigned pos = effCol; pos &lt; lastCol; ++pos) {
&gt;                     if (!m_layoutStruct[pos].effectiveLogicalWidth.isPercent())
&gt;@@ -370,7 +374,7 @@ int AutoTableLayout::calcEffectiveLogica
&gt; 
&gt;                 for (unsigned pos = effCol; pos &lt; lastCol &amp;&amp; totalWidth &gt; 0; ++pos) {
&gt;                     if (!m_layoutStruct[pos].effectiveLogicalWidth.isPercent()) {
&gt;-                        int percent = static_cast&lt;int&gt;(percentMissing * static_cast&lt;float&gt;(m_layoutStruct[pos].effectiveMaxLogicalWidth) / totalWidth);
&gt;+                        float percent = percentMissing * static_cast&lt;float&gt;(m_layoutStruct[pos].effectiveMaxLogicalWidth) / totalWidth;
&gt;                         totalWidth -= m_layoutStruct[pos].effectiveMaxLogicalWidth;
&gt;                         percentMissing -= percent;
&gt;                         if (percent &gt; 0)
&gt;@@ -491,7 +495,7 @@ void AutoTableLayout::layout()
&gt;     int numFixed = 0;
&gt;     float totalAuto = 0;
&gt;     float totalFixed = 0;
&gt;-    int totalPercent = 0;
&gt;+    float totalPercent = 0;
&gt;     int allocAuto = 0;
&gt;     unsigned numAutoEmptyCellsOnly = 0;
&gt; 
&gt;@@ -504,7 +508,7 @@ void AutoTableLayout::layout()
&gt;         switch (logicalWidth.type()) {
&gt;         case Percent:
&gt;             havePercent = true;
&gt;-            totalPercent += logicalWidth.rawValue();
&gt;+            totalPercent += logicalWidth.percent();
&gt;             break;
&gt;         case Relative:
&gt;             totalRelative += logicalWidth.value();
&gt;@@ -538,9 +542,9 @@ void AutoTableLayout::layout()
&gt;                 m_layoutStruct[i].computedLogicalWidth = cellLogicalWidth;
&gt;             }
&gt;         }
&gt;-        if (totalPercent &gt; 100 * percentScaleFactor) {
&gt;+        if (totalPercent &gt; 100) {
&gt;             // remove overallocated space from the last columns
&gt;-            int excess = tableLogicalWidth * (totalPercent - 100 * percentScaleFactor) / (100 * percentScaleFactor);
&gt;+            int excess = tableLogicalWidth * (totalPercent - 100) / 100;
&gt;             for (int i = nEffCols - 1; i &gt;= 0; --i) {
&gt;                 if (m_layoutStruct[i].effectiveLogicalWidth.isPercent()) {
&gt;                     int cellLogicalWidth = m_layoutStruct[i].computedLogicalWidth;
&gt;@@ -607,13 +611,13 @@ void AutoTableLayout::layout()
&gt;     }
&gt; 
&gt;     // spread over percent colums
&gt;-    if (available &gt; 0 &amp;&amp; m_hasPercent &amp;&amp; totalPercent &lt; 100 * percentScaleFactor) {
&gt;+    if (available &gt; 0 &amp;&amp; m_hasPercent &amp;&amp; totalPercent &lt; 100) {
&gt;         for (size_t i = 0; i &lt; nEffCols; ++i) {
&gt;             Length&amp; logicalWidth = m_layoutStruct[i].effectiveLogicalWidth;
&gt;             if (logicalWidth.isPercent()) {
&gt;-                int cellLogicalWidth = available * logicalWidth.rawValue() / totalPercent;
&gt;+                int cellLogicalWidth = available * logicalWidth.percent() / totalPercent;
&gt;                 available -= cellLogicalWidth;
&gt;-                totalPercent -= logicalWidth.rawValue();
&gt;+                totalPercent -= logicalWidth.percent();
&gt;                 m_layoutStruct[i].computedLogicalWidth += cellLogicalWidth;
&gt;                 if (!available || !totalPercent)
&gt;                     break;
&gt;Index: Source/WebCore/rendering/FixedTableLayout.cpp
&gt;===================================================================
&gt;--- Source/WebCore/rendering/FixedTableLayout.cpp	(revision 80381)
&gt;+++ Source/WebCore/rendering/FixedTableLayout.cpp	(working copy)
&gt;@@ -118,7 +118,8 @@ int FixedTableLayout::calcWidthArray(int
&gt;                     spanInCurrentEffectiveColumn = m_table-&gt;spanOfEffCol(currentEffectiveColumn);
&gt;                 }
&gt;                 if ((w.isFixed() || w.isPercent()) &amp;&amp; w.isPositive()) {
&gt;-                    m_width[currentEffectiveColumn].setValue(w.type(), w.rawValue() * spanInCurrentEffectiveColumn);
&gt;+                    m_width[currentEffectiveColumn] = w;
&gt;+                    m_width[currentEffectiveColumn] *= spanInCurrentEffectiveColumn;
&gt;                     usedWidth += effWidth * spanInCurrentEffectiveColumn;
&gt;                 }
&gt;                 span -= spanInCurrentEffectiveColumn;
&gt;@@ -164,10 +165,11 @@ int FixedTableLayout::calcWidthArray(int
&gt;                 int usedSpan = 0;
&gt;                 int i = 0;
&gt;                 while (usedSpan &lt; span &amp;&amp; cCol + i &lt; nEffCols) {
&gt;-                    int eSpan = m_table-&gt;spanOfEffCol(cCol + i);
&gt;+                    float eSpan = m_table-&gt;spanOfEffCol(cCol + i);
&gt;                     // Only set if no col element has already set it.
&gt;                     if (m_width[cCol + i].isAuto() &amp;&amp; w.type() != Auto) {
&gt;-                        m_width[cCol + i].setValue(w.type(), w.rawValue() * eSpan / span);
&gt;+                        m_width[cCol + i] = w;
&gt;+                        m_width[cCol + i] *= eSpan / span;
&gt;                         usedWidth += effWidth * eSpan / span;
&gt;                     }
&gt;                     usedSpan += eSpan;
&gt;@@ -234,7 +236,7 @@ void FixedTableLayout::layout()
&gt;     int autoSpan = 0;
&gt;     int totalFixedWidth = 0;
&gt;     int totalPercentWidth = 0;
&gt;-    int totalRawPercent = 0;
&gt;+    float totalPercent = 0;
&gt; 
&gt;     // Compute requirements and try to satisfy fixed and percent widths.
&gt;     // Percentages are of the table&apos;s width, so for example
&gt;@@ -247,7 +249,7 @@ void FixedTableLayout::layout()
&gt;         } else if (m_width[i].isPercent()) {
&gt;             calcWidth[i] = m_width[i].calcValue(tableLogicalWidth);
&gt;             totalPercentWidth += calcWidth[i];
&gt;-            totalRawPercent += m_width[i].rawValue();
&gt;+            totalPercent += m_width[i].percent();
&gt;         } else if (m_width[i].isAuto()) {
&gt;             numAuto++;
&gt;             autoSpan += m_table-&gt;spanOfEffCol(i);
&gt;@@ -270,11 +272,11 @@ void FixedTableLayout::layout()
&gt;                     }
&gt;                 }
&gt;             }
&gt;-            if (totalRawPercent) {
&gt;+            if (totalPercent) {
&gt;                 totalPercentWidth = 0;
&gt;                 for (int i = 0; i &lt; nEffCols; i++) {
&gt;                     if (m_width[i].isPercent()) {
&gt;-                        calcWidth[i] = m_width[i].rawValue() * (tableLogicalWidth - totalFixedWidth) / totalRawPercent;
&gt;+                        calcWidth[i] = m_width[i].percent() * (tableLogicalWidth - totalFixedWidth) / totalPercent;
&gt;                         totalPercentWidth += calcWidth[i];
&gt;                     }
&gt;                 }
&gt;Index: Source/WebCore/rendering/RenderTableSection.cpp
&gt;===================================================================
&gt;--- Source/WebCore/rendering/RenderTableSection.cpp	(revision 80381)
&gt;+++ Source/WebCore/rendering/RenderTableSection.cpp	(working copy)
&gt;@@ -199,7 +199,7 @@ void RenderTableSection::addCell(RenderT
&gt;             switch (logicalHeight.type()) {
&gt;                 case Percent:
&gt;                     if (!(cRowLogicalHeight.isPercent()) ||
&gt;-                        (cRowLogicalHeight.isPercent() &amp;&amp; cRowLogicalHeight.rawValue() &lt; logicalHeight.rawValue()))
&gt;+                        (cRowLogicalHeight.isPercent() &amp;&amp; cRowLogicalHeight.percent() &lt; logicalHeight.percent()))
&gt;                         m_grid[m_cRow].logicalHeight = logicalHeight;
&gt;                         break;
&gt;                 case Fixed:
&gt;@@ -434,22 +434,22 @@ int RenderTableSection::layoutRows(int t
&gt;             if (m_grid[r].logicalHeight.isAuto())
&gt;                 numAuto++;
&gt;             else if (m_grid[r].logicalHeight.isPercent())
&gt;-                totalPercent += m_grid[r].logicalHeight.rawValue();
&gt;+                totalPercent += m_grid[r].logicalHeight.percent();
&gt;         }
&gt;         if (totalPercent) {
&gt;             // try to satisfy percent
&gt;             int add = 0;
&gt;-            totalPercent = min(totalPercent, 100 * percentScaleFactor);
&gt;+            totalPercent = min(totalPercent, 100);
&gt;             int rh = m_rowPos[1] - m_rowPos[0];
&gt;             for (int r = 0; r &lt; totalRows; r++) {
&gt;                 if (totalPercent &gt; 0 &amp;&amp; m_grid[r].logicalHeight.isPercent()) {
&gt;-                    int toAdd = min(dh, (totalHeight * m_grid[r].logicalHeight.rawValue() / (100 * percentScaleFactor)) - rh);
&gt;+                    int toAdd = min(dh, static_cast&lt;int&gt;((totalHeight * m_grid[r].logicalHeight.percent() / 100) - rh));
&gt;                     // If toAdd is negative, then we don&apos;t want to shrink the row (this bug
&gt;                     // affected Outlook Web Access).
&gt;                     toAdd = max(0, toAdd);
&gt;                     add += toAdd;
&gt;                     dh -= toAdd;
&gt;-                    totalPercent -= m_grid[r].logicalHeight.rawValue();
&gt;+                    totalPercent -= m_grid[r].logicalHeight.percent();
&gt;                 }
&gt;                 if (r &lt; totalRows - 1)
&gt;                     rh = m_rowPos[r + 2] - m_rowPos[r + 1];
&gt;Index: Source/WebCore/rendering/style/BorderData.h
&gt;===================================================================
&gt;--- Source/WebCore/rendering/style/BorderData.h	(revision 80381)
&gt;+++ Source/WebCore/rendering/style/BorderData.h	(working copy)
&gt;@@ -49,13 +49,13 @@ public:
&gt; 
&gt;     bool hasBorderRadius() const
&gt;     {
&gt;-        if (m_topLeft.width().rawValue() &gt; 0)
&gt;+        if (!m_topLeft.width().isZero())
&gt;             return true;
&gt;-        if (m_topRight.width().rawValue() &gt; 0)
&gt;+        if (!m_topRight.width().isZero())
&gt;             return true;
&gt;-        if (m_bottomLeft.width().rawValue() &gt; 0)
&gt;+        if (!m_bottomLeft.width().isZero())
&gt;             return true;
&gt;-        if (m_bottomRight.width().rawValue() &gt; 0)
&gt;+        if (!m_bottomRight.width().isZero())
&gt;             return true;
&gt;         return false;
&gt;     }
&gt;Index: LayoutTests/ChangeLog
&gt;===================================================================
&gt;--- LayoutTests/ChangeLog	(revision 80665)
&gt;+++ LayoutTests/ChangeLog	(working copy)
&gt;@@ -1,3 +1,12 @@
&gt;+2011-03-09  Rik Cabanier  &lt;cabanier@gmail.com&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        bug 56052: percentages are incorrectly rounded in WebKit
&gt;+        https://bugs.webkit.org/show_bug.cgi?id=56052
&gt;+
&gt;+        * platform/mac/fast/css/percentage-non-integer-expected.txt:
&gt;+
&gt; 2011-03-09  James Robinson  &lt;jamesr@chromium.org&gt;
&gt; 
&gt;         Reviewed by Kenneth Russell.
&gt;Index: LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.checksum
&gt;===================================================================
&gt;--- LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.checksum	(revision 80381)
&gt;+++ LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.checksum	(working copy)
&gt;@@ -1 +1 @@
&gt;-414caaa2ee09823fcc6b1200d30ec127
&gt;\ No newline at end of file
&gt;+c6d9055341a9904929ccc49476c7bd9e
&gt;\ No newline at end of file
&gt;Index: LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.txt
&gt;===================================================================
&gt;--- LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.txt	(revision 80381)
&gt;+++ LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.txt	(working copy)
&gt;@@ -29,7 +29,7 @@ layer at (0,0) size 800x585
&gt;         RenderBlock {DIV} at (0,44) size 910x4
&gt;           RenderBlock {DIV} at (0,0) size 100x4 [bgcolor=#0000007F]
&gt;         RenderBlock {DIV} at (0,48) size 910x4
&gt;-          RenderBlock {DIV} at (0,0) size 100x4 [bgcolor=#0000007F]
&gt;+          RenderBlock {DIV} at (0,0) size 101x4 [bgcolor=#0000007F]
&gt;         RenderBlock {DIV} at (0,52) size 900x4
&gt;           RenderBlock {DIV} at (0,0) size 100x4 [bgcolor=#0000007F]
&gt;         RenderBlock {DIV} at (0,56) size 890x4
&gt;@@ -49,7 +49,7 @@ layer at (0,0) size 800x585
&gt;         RenderBlock {DIV} at (0,84) size 840x4
&gt;           RenderBlock {DIV} at (0,0) size 100x4 [bgcolor=#0000007F]
&gt;         RenderBlock {DIV} at (0,88) size 835x4
&gt;-          RenderBlock {DIV} at (0,0) size 100x4 [bgcolor=#0000007F]
&gt;+          RenderBlock {DIV} at (0,0) size 101x4 [bgcolor=#0000007F]
&gt;         RenderBlock {DIV} at (0,92) size 825x4
&gt;           RenderBlock {DIV} at (0,0) size 100x4 [bgcolor=#0000007F]
&gt;         RenderBlock {DIV} at (0,96) size 815x4
&gt;@@ -84,61 +84,61 @@ layer at (8,126) size 1000x20
&gt;   RenderTable {TABLE} at (0,0) size 1000x20
&gt;     RenderTableSection {TBODY} at (0,0) size 1000x20
&gt;       RenderTableRow {TR} at (0,0) size 1000x20
&gt;-        RenderTableCell {TD} at (0,1) size 11x18 [bgcolor=#0000007F] [r=0 c=0 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (0,1) size 12x18 [bgcolor=#0000007F] [r=0 c=0 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (11,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=1 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (12,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=1 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (21,1) size 13x18 [bgcolor=#0000007F] [r=0 c=2 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (22,1) size 13x18 [bgcolor=#0000007F] [r=0 c=2 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (34,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=3 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (35,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=3 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (44,1) size 15x18 [bgcolor=#0000007F] [r=0 c=4 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (45,1) size 16x18 [bgcolor=#0000007F] [r=0 c=4 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (59,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=5 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (61,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=5 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (69,1) size 17x18 [bgcolor=#0000007F] [r=0 c=6 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (71,1) size 17x18 [bgcolor=#0000007F] [r=0 c=6 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (86,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=7 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (88,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=7 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (96,1) size 20x18 [bgcolor=#0000007F] [r=0 c=8 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (98,1) size 20x18 [bgcolor=#0000007F] [r=0 c=8 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (116,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=9 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (118,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=9 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (126,1) size 21x18 [bgcolor=#0000007F] [r=0 c=10 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (128,1) size 22x18 [bgcolor=#0000007F] [r=0 c=10 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (147,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=11 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (150,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=11 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (157,1) size 23x18 [bgcolor=#0000007F] [r=0 c=12 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (160,1) size 24x18 [bgcolor=#0000007F] [r=0 c=12 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (180,10) size 10x0 [bgcolor=#00FF007F] [r=0 c=13 rs=1 cs=1]
&gt;-        RenderTableCell {TD} at (190,1) size 25x18 [bgcolor=#0000007F] [r=0 c=14 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (184,10) size 10x0 [bgcolor=#00FF007F] [r=0 c=13 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (194,1) size 25x18 [bgcolor=#0000007F] [r=0 c=14 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (215,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=15 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (219,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=15 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (225,1) size 27x18 [bgcolor=#0000007F] [r=0 c=16 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (229,1) size 27x18 [bgcolor=#0000007F] [r=0 c=16 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (252,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=17 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (256,1) size 10x18 [bgcolor=#00FF007F] [r=0 c=17 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (262,1) size 30x18 [bgcolor=#0000007F] [r=0 c=18 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (266,1) size 30x18 [bgcolor=#0000007F] [r=0 c=18 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;-        RenderTableCell {TD} at (292,1) size 708x18 [r=0 c=19 rs=1 cs=1]
&gt;+        RenderTableCell {TD} at (296,1) size 704x18 [r=0 c=19 rs=1 cs=1]
&gt;           RenderText {#text} at (0,0) size 4x18
&gt;             text run at (0,0) width 4: &quot; &quot;
&gt;Index: LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.png
&gt;===================================================================
&gt;Cannot display: file marked as a binary type.
&gt;svn:mime-type = image/png
&gt;
&gt;iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGF
&gt;VM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2h
&gt;B/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq
&gt;/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog8
&gt;36Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbI
&gt;EL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp
&gt;+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd
&gt;70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+
&gt;KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8
&gt;muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn
&gt;/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq8
&gt;9S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5z
&gt;rgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl
&gt;12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAg
&gt;AElEQVR4Ae3d3Y9cd3kH8N/uzvo1thMnhBAgOC1FCSi8VoCEoEjQC7jhkhdxyQ1c8C8klvgTkLjh
&gt;EgkQNyBVBUFBFFVCbVoFJaU0KaSEklLy4rwntnft7e85yTG7jsfOaM6ax/t8RlrP7sw5Z57n8+zM
&gt;nu+eM96VrX5pLgQIECBAgAABAgQIELgKAqtX4TE8BAECBAgQIECAAAECBAYBAcQ3AgECBAgQIECA
&gt;AAECV01AALlq1B6IAAECBAgQIECAAAEBxPcAAQIECBAgQIAAAQJXTUAAuWrUHogAAQIECBAgQIAA
&gt;AQHE9wABAgQIECBAgAABAldNQAC5atQeiAABAgQIECBAgACB2ZUIVk6uXGkR919Fga27/dmWq8jt
&gt;oQgQIECAAAECBCYWcARkYlCbI0CAAAECBAgQIEBgvoAAMt/GPQQIECBAgAABAgQITCwggEwManME
&gt;CBAgQIAAAQIECMwXEEDm27iHAAECBAgQIECAAIGJBQSQiUFtjgABAgQIECBAgACB+QICyHwb9xAg
&gt;QIAAAQIECBAgMLGAADIxqM0RIECAAAECBAgQIDBfQACZb+MeAgQIECBAgAABAgQmFhBAJga1OQIE
&gt;CBAgQIAAAQIE5gsIIPNt3EOAAAECBAgQIECAwMQCAsjEoDZHgAABAgQIECBAgMB8AQFkvo17CBAg
&gt;QIAAAQIECBCYWEAAmRjU5ggQIECAAAECBAgQmC8ggMy3cQ8BAgQIECBAgAABAhMLCCATg9ocAQIE
&gt;CBAgQIAAAQLzBQSQ+TbuIUCAAAECBAgQIEBgYgEBZGJQmyNAgAABAgQIECBAYL6AADLfxj0ECBAg
&gt;QIAAAQIECEwsIIBMDGpzBAgQIECAAAECBAjMFxBA5tu4hwABAgQIECBAgACBiQUEkIlBbY4AAQIE
&gt;CBAgQIAAgfkCAsh8G/cQIECAAAECBAgQIDCxgAAyMajNESBAgAABAgQIECAwX0AAmW/jHgIECBAg
&gt;QIAAAQIEJhYQQCYGtTkCBAgQIECAAAECBOYLCCDzbdxDgAABAgQIECBAgMDEAgLIxKA2R4AAAQIE
&gt;CBAgQIDAfAEBZL6NewgQIECAAAECBAgQmFhAAJkY1OYIECBAgAABAgQIEJgvIIDMt3EPAQIECBAg
&gt;QIAAAQITCwggE4PaHAECBAgQIECAAAEC8wUEkPk27iFAgAABAgQIECBAYGIBAWRiUJsjQIAAAQIE
&gt;CBAgQGC+gAAy38Y9BAgQIECAAAECBAhMLCCATAxqcwQIECBAgAABAgQIzBcQQObbuIcAAQIECBAg
&gt;QIAAgYkFBJCJQW2OAAECBAgQIECAAIH5AgLIfBv3ECBAgAABAgQIECAwsYAAMjGozREgQIAAAQIE
&gt;CBAgMF9AAJlv4x4CBAgQIECAAAECBCYWEEAmBrU5AgQIECBAgAABAgTmCwgg823cQ4AAAQIECBAg
&gt;QIDAxAICyMSgNkeAAAECBAgQIECAwHwBAWS+jXsIECBAgAABAgQIEJhYQACZGNTmCBAgQIAAAQIE
&gt;CBCYLyCAzLdxDwECBAgQIECAAAECEwsIIBOD2hwBAgQIECBAgAABAvMFBJD5NinvOXnyZMq6FEWA
&gt;AAECBAgQIEDgtQgIIK9FyTIECBAgQIAAAQIECEwiIIBMwmgjBAgQIECAAAECBAi8FgEB5LUoWYYA
&gt;AQIECBAgQIAAgUkEVrb65XJbWjm5crm73XeVBbbuvuy4rnI1Ho4AAQIECBAgQIDAYgKOgCzmZWkC
&gt;BAgQIECAAAECBJYQEECWwLMqAQIECBAgQIAAAQKLCQggi3lZmgABAgQIECBAgACBJQQEkCXwrEqA
&gt;AAECBAgQIECAwGICAshiXpYmQIAAAQIECBAgQGAJAQFkCTyrEiBAgAABAgQIECCwmIAAspiXpQkQ
&gt;IECAAAECBAgQWEJAAFkCz6oECBAgQIAAAQIECCwmIIAs5mVpAgQIECBAgAABAgSWEBBAlsCzKgEC
&gt;BAgQIECAAAECiwkIIIt5WZoAAQIECBAgQIAAgSUEBJAl8KxKgAABAgQIECBAgMBiAgLIYl6WJkCA
&gt;AAECBAgQIEBgCQEBZAk8qxIgQIAAAQIECBAgsJiAALKYl6UJECBAgAABAgQIEFhCQABZAs+qBAgQ
&gt;IECAAAECBAgsJiCALOZlaQIECBAgQIAAAQIElhAQQJbAsyoBAgQIECBAgAABAosJCCCLeVmaAAEC
&gt;BAgQIECAAIElBASQJfCsSoAAAQIECBAgQIDAYgICyGJeliZAgAABAgQIECBAYAkBAWQJPKsSIECA
&gt;AAECBAgQILCYgACymJelCRAgQIAAAQIECBBYQkAAWQLPqgQIECBAgAABAgQILCYggCzmZWkCBAgQ
&gt;IECAAAECBJYQEECWwLMqAQIECBAgQIAAAQKLCQggi3lZmgABAgQIECBAgACBJQQEkCXwrEqAAAEC
&gt;BAgQIECAwGICAshiXpYmQIAAAQIECBAgQGAJAQFkCTyrEiBAgAABAgQIECCwmIAAspiXpQkQIECA
&gt;AAECBAgQWEJAAFkCz6oECBAgQIAAAQIECCwmIIAs5mVpAgQIECBAgAABAgSWEBBAlsCzKgECBAgQ
&gt;IECAAAECiwkIIIt5WZoAAQIECBAgQIAAgSUEBJAl8P4cq548efLP8bAekwABAgQIECBAgMAkAgLI
&gt;JIw2QoAAAQIECBAgQIDAaxEQQF6LkmUIECBAgAABAgQIEJhEQACZhNFGCBAgQIAAAQIECBB4LQIr
&gt;W/1yuQVXTq5c7m73XWWBrbsvO66rXI2HI0CAAAECBAgQILCYgCMgi3lZmgABAgQIECBAgACBJQQE
&gt;kCXwrEqAAAECBAgQIECAwGICAshiXpYmQIAAAQIECBAgQGAJAQFkCTyrEiBAgAABAgQIECCwmIAA
&gt;spiXpQkQIECAAAECBAgQWEJAAFkCz6oECBAgQIAAAQIECCwmIIAs5mVpAgQIECBAgAABAgSWELji
&gt;3wFZYttWJUCAAAECBAgQIECAwA4BR0B2cPiCAAECBAgQIECAAIHdFBBAdlPXtgkQIECAAAECBAgQ
&gt;2CEggOzg8AUBAgQIECBAgAABArspIIDspq5tEyBAgAABAgQIECCwQ0AA2cHhCwIECBAgQIAAAQIE
&gt;dlNAANlNXdsmQIAAAQIECBAgQGCHgACyg8MXBAgQIECAAAECBAjspoAAspu6tk2AAAECBAgQIECA
&gt;wA4BAWQHhy8IECBAgAABAgQIENhNAQFkN3VtmwABAgQIECBAgACBHQICyA4OXxAgQIAAAQIECBAg
&gt;sJsCAshu6to2AQIECBAgQIAAAQI7BASQHRy+IECAAAECBAgQIEBgNwUEkN3UtW0CBAgQIECAAAEC
&gt;BHYICCA7OHxBgAABAgQIECBAgMBuCgggu6lr2wQIECBAgAABAgQI7BAQQHZw+IIAAQIECBAgQIAA
&gt;gd0UmF1p4ysnV660yJ/uv6d/evefvpz7WSx3cu69l74j1tmtbY+PGI8Rlys9zj3DUov38Mpqw9W4
&gt;javxWBkeN2oYe47PL9f39uUW/T6JbV/ucs9Fd86r4+Llpq4jyrj4Mf6ctUQ9cbln+PdP/2So6U/V
&gt;DJ/ds63Iu++eV+BFK/mSAAECBAgQSCPgCEiaUSiEAAECBAgQIECAwN4XEED2/ox1SIAAAQIECBAg
&gt;QCCNgACSZhQKIUCAAAECBAgQILD3BQSQvT9jHRIgQIAAAQIECBBIIyCApBmFQggQIECAAAECBAjs
&gt;fQEBZO/PWIcECBAgQIAAAQIE0ggIIGlGoRACBAgQIECAAAECe19AANn7M9YhAQIECBAgQIAAgTQC
&gt;AkiaUSiEAAECBAgQIECAwN4XEED2/ox1SIAAAQIECBAgQCCNgACSZhQKIUCAAAECBAgQILD3BQSQ
&gt;vT9jHRIgQIAAAQIECBBIIyCApBmFQggQIECAAAECBAjsfQEBZO/PWIcECBAgQIAAAQIE0ggIIGlG
&gt;oRACBAgQIECAAAECe19AANn7M9YhAQIECBAgQIAAgTQCAkiaUSiEAAECBAgQIECAwN4XEED2/ox1
&gt;SIAAAQIECBAgQCCNgACSZhQKIUCAAAECBAgQILD3BVa2+mXvt6lDAgQIECBAgAABAgQyCDgCkmEK
&gt;aiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQI
&gt;ECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQI
&gt;ECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQI
&gt;EMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUE
&gt;BJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJh
&gt;CmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsE
&gt;CBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIE
&gt;CBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIE
&gt;CBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJF
&gt;BASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACS
&gt;YQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqb
&gt;BAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAEC
&gt;BAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAEC
&gt;BAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAEC
&gt;RQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AA
&gt;kmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxa
&gt;mwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQAB
&gt;AgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAAB
&gt;AgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAAB
&gt;AkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOA
&gt;AJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoM
&gt;WpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEA
&gt;AQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAA
&gt;AQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAA
&gt;AQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCD
&gt;gACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECK
&gt;DFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiB
&gt;AAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECA
&gt;AAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECA
&gt;AAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAg
&gt;g4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBA
&gt;igxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimo
&gt;gQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBA
&gt;gAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBA
&gt;gAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBA
&gt;IIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQ
&gt;QIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYp
&gt;qIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIg
&gt;QIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAg
&gt;QIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAg
&gt;QCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQR
&gt;EECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiG
&gt;KaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0S
&gt;IECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQ
&gt;IECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQ
&gt;IEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgU
&gt;ERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJI
&gt;himogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmht
&gt;EiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQI
&gt;ECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQI
&gt;ECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQI
&gt;FBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAIC
&gt;SIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJo
&gt;bRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIE
&gt;CBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIE
&gt;CBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIE
&gt;CBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwC
&gt;AkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACky
&gt;aG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYC
&gt;BAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAEC
&gt;BAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAEC
&gt;BAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEM
&gt;AgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAAp
&gt;MmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAG
&gt;AgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAAB
&gt;AgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAAB
&gt;AgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACB
&gt;DAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAA
&gt;KTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaag
&gt;BgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAA
&gt;AQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAA
&gt;AQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAA
&gt;gQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERA
&gt;ACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmm
&gt;oAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmA
&gt;AAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECA
&gt;AAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECA
&gt;AIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBE
&gt;QAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZ
&gt;pqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJ
&gt;gAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBA
&gt;gAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBA
&gt;gACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQ
&gt;REAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAgg
&gt;GaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1
&gt;SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAg
&gt;QIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAg
&gt;QIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAg
&gt;UERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggI
&gt;IBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECFY6WxkAABdpSURB
&gt;VBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIE
&gt;CBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJF
&gt;BASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACS
&gt;YQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqb
&gt;BAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAEC
&gt;BAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAEC
&gt;BAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAEC
&gt;RQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AA
&gt;kmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxa
&gt;mwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQAB
&gt;AgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAAB
&gt;AgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAAB
&gt;AkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOA
&gt;AJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoM
&gt;WpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEA
&gt;AQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAA
&gt;AQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAA
&gt;AQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCD
&gt;gACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECK
&gt;DFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiB
&gt;AAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECA
&gt;AAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECA
&gt;AAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAg
&gt;g4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBA
&gt;igxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimo
&gt;gQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBA
&gt;gAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBA
&gt;gAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBA
&gt;IIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQ
&gt;QIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYp
&gt;qIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIg
&gt;QIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAg
&gt;QIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJIhimogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAg
&gt;QCCDgACSYQpqIECAAAECBAgQIFBEQAApMmhtEiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQR
&gt;EECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQIECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiG
&gt;KaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQIECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0S
&gt;IECAAAECBAgQyCAggGSYghoIECBAgAABAgQIFBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQ
&gt;IECAAAECRQQEkCKD1iYBAgQIECBAgACBDAICSIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQ
&gt;IEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJobRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgU
&gt;ERBAigxamwQIECBAgAABAgQyCAggGaagBgIECBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMAgJI
&gt;himogQABAgQIECBAgEARAQGkyKC1SYAAAQIECBAgQCCDgACSYQpqIECAAAECBAgQIFBEQAApMmht
&gt;EiBAgAABAgQIEMggIIBkmIIaCBAgQIAAAQIECBQREECKDFqbBAgQIECAAAECBDIICCAZpqAGAgQI
&gt;ECBAgAABAkUEBJAig9YmAQIECBAgQIAAgQwCAkiGKaiBAAECBAgQIECAQBEBAaTIoLVJgAABAgQI
&gt;ECBAIIOAAJJhCmogQIAAAQIECBAgUERAACkyaG0SIECAAAECBAgQyCAggGSYghoIECBAgAABAgQI
&gt;FBEQQIoMWpsECBAgQIAAAQIEMggIIBmmoAYCBAgQIECAAAECRQQEkCKD1iYBAgQIECBAgACBDAIC
&gt;SIYpqIEAAQIECBAgQIBAEQEBpMigtUmAAAECBAgQIEAgg4AAkmEKaiBAgAABAgQIECBQREAAKTJo
&gt;bRIgQIAAAQIECBDIICCAZJiCGggQIECAAAECBAgUERBAigxamwQIECBAgAABAgQyCAggGaagBgIE
&gt;CBAgQIAAAQJFBASQIoPWJgECBAgQIECAAIEMArPvfve7bTabtbW1tba+vj7UtLW11VZXV9v58+db
&gt;fB6Xs2fPttOnT1+4LZZ3IUCAAAECBAgQeLVA7EetrKwM+1jx+fjx6iXdQmB6gXPnzg378OP3YOzr
&gt;j/v14z5+3Ddexv39+Dru3/71uMx4/dhjj7Wbb755/PJV17HdeKztl7GeuN7c3GyzjY2N9pa3vGV4
&gt;sAgV8YDxESvHAn/84x/bfff/rv3bf623Xz6yr/3PY7P2wtkIKn3DkU36htpNh7c/hs8JECBAgAAB
&gt;AvUEzvcdo9jv6vtR18022m03nGnv+cvWPvreA+3Ntx4aftEbO3fbd/zqIel4NwTGwBDXsfMf+/Sx
&gt;Hx9fv/jii+2ll15qb3jDG9rx48cvHGSI78PxI4JBXGL5MYDM+z594YUX2utf//pLthHrx3pRw/b1
&gt;4/a4xO2//vWv2ywKuf3224cH277gmTNn2n333df+7kcPth/9+9H20LM3tf2H97cP/u1N7c4T17Uj
&gt;h145AtI3OIsHOtePlvQnVethamX28nV/5La10h8wklR/0PVY5dxWB4kGz7WVeJL2j7jZ+vx8/3j+
&gt;eP3w+unnh5+f8TpwLe4/rPXRbfadndjfOX3mfPvP3z3ffn7fk+0/7n2p3f/Ic+2zHz3XPvDu423f
&gt;vn3DzmFfzIXAZAKxgz/u5Md17OjHR4SQuMT1I488Mnz/3XnnncORufHBY/9/XHe8bbzeng3G2558
&gt;8skhO4xfj9fzthH3j/dFTadOnWqzSESRdOIJMRYQ4ePhhx9u//DT+9oPHjjefnPm1rZy06x96IO3
&gt;tI/edawd2r/WQ0ffWi/4XN9Qzx6tP+/6P/1QYwSQft1baWv9/tX+jOxXLX4psNWX61ElFuxf9/WG
&gt;27ba2f6J9fn5/vH88frh9dPPDz8/r9X9h1d2i4b9mfhd8ptvO9wO3nig/f0//qE98My+1n72ZHvT
&gt;G063O956pO3fv3/Y9+qLuRCYRCB27GMnPz7iaEZ8Hdexbz9+xNspfvnLX7YjR460EydODEfkxoAR
&gt;642fX6mgeEvG+LaNKy07bjeu4xI1RPYYTsGKL+LJEA8cBcdpV7/4xS/azx9cbb/ZeHNb6U+go0f3
&gt;tZuuXx+eMJv9mRVPrt5mDxTxUtHamZ4w+tNrCBqrs8giw0tIW+0LxttFtvr9sXSs2696+AikldbP
&gt;AOtfr1ifn+8fzx+vH/3F1Ounnx9+fl6b+w/DL1kjhQyXl3+5evzoejty/GB7ZrbWHnjqxvaDf3m6
&gt;/dXtx4edt9e6Azdu0TWBywmMASSux/AR13GQIb7X4pSsCA7PPPNM+9WvftWuu+66dsstt1wIwheH
&gt;jzht63vf+1777Gc/+6qHjbdvXLx8LPTNb36zfepTn2qHDh26sM64XFxHCInMEev3s6dW2vPPPz8U
&gt;Eks/99xzw0e8weThF9/UVo/1J8+x/e3Ydevt8edbe+qFrX4EZLWt9ZAxPM/6AY2NfgQjgs1m//Vl
&gt;HIJsZ+MHyGqLM7Hi69XzL6evcxFCtvr7TOKB+m1nzsUb3fubUXoosT4/3z+eP14/vH76+eHn57W6
&gt;/xAneKysDns4wxkfsW/z5PNb7diR2bDf81zf3/nX368OO2Bx1sn4i9/YJXIhsKzA9gAyvtF7PAIS
&gt;p1/F/YcPHx4+nn322Rbv44j9/6NHj14IIWMNP/7xj4cwEadafe5znxtvvnA9bvfCDa988p3vfKf9
&gt;5Cc/GULLxz72sYvvHmqIx4zsMTtw4MDw5pRIRJGOoqi44+mnn25PrP91O3J0f7vh2L4eQPb1N5+v
&gt;tH9+uKeW1c1+alXEj5eDR5xUFU+0eI/Han/Px/q+nrTaZj8FqweQ/jHryX+th5PNzX44qH+c7+Ek
&gt;MOLUrY247ZUjI9bn5/vH88frh9dPPz/8/LwW9x/6rtPwi9n4Le+5sxt9HyeOgmz2ALLeVuJUkH46
&gt;zO9fONriNPfY3xJAXrV/6oYlBMYAEuEgPsY3occ+fXzE/fE/YcX3XezzRwge9/kPHjw43P7QQw+1
&gt;r3/96y2ux1OmxveQbC8ttnWp22OdJ554on31q19tP/zhD9sXvvCF9ra3vW3YVhz1iIMccWQlsscs
&gt;CojDM5FI4hDNWFx8vf9ga8f64cM4+nH86IEWBa73MDGb9VOxetBYWe1HM3oR/QBPDxLn2qy/Yuzr
&gt;z7G1niTiOMda/3VmvP08bl/vT7Z4c9ZmX26zPynP948IIGc3+nlqfWnr8/P94/nj9cPrp58ffn5e
&gt;q/sPsb+z2nfwts718NF/KbuxcaadPf1SO9NPNV9Z2WjnN9bbc/3sj9hxi32t2OeK/S8XAlMIjAEk
&gt;riOAjKdJjUEibhtP+4v3YEQIiEsEgvi4995729e+9rVXlfL444+/6rYIMJe6PcL1eLn//vvbl7/8
&gt;5fbFL36xve997xsCUNQyvu98FsVECBmvo/AoOgp7/ezxtn7g5nb04L529HAPIIcOtwP7+7J9+ThV
&gt;ItJ+X7wfwXj5iMZ6P+dqvT+Z4mjHEDz65xFUZq+cmtUzR3/i9Y++ThykHALJ2c22sWX9eEHi5/vH
&gt;88frh9dPPz/8/Oz7Ddfg/sNa/6Vs/695+n5R3/nrR0DOnlltp9f7f/Jz+sW+77PVNg7O2vVnn+37
&gt;RMeGfS4BZNxVdT2FQOzcxz58fMRO/njkY7w9joiMYSTeoxH7/rFMXOL2D33oQ+11r3td+8Y3vtF+
&gt;+9vfDrfHP3HE5OJLrHup27cH6hMnTrTPf/7zF46AjLXFY8b3/nAEJDYSK8V1LBBvELnxxhvb6574
&gt;XTtz4K7hPR+HDu1vR/tpWIcOH+pPnn6qULy3IwJIr6oH/f6m8h5M+tfxEW+ijN9mxxHH+C961/qf
&gt;DYnTImPZzf6bgFh+uI7wsjXrhyitz8/3j+eP1w+vn35++Pl57e4/9N2fvt8z66ea94+N/e30S+vt
&gt;xdP9DJN+Svrpfhjk4IG1dmLl2f6e2zdeCCDjDmBf1YXAUgJj0Ij9+PH7arwtfskdn8f+fRyliD/B
&gt;MQaQWDbWics73vGO9pWvfKX97Gc/a9/61rcunB11cWHjgYuLb48sEW9u/8xnPtM+8pGPDKeBjduP
&gt;x486YplYfwggwyevnBc2FvHWt7613frQT9ujpx5o6zd+sB3oPxkP9vBx6LpIQ62v/PJRjPhfH+Ko
&gt;RoSKfmZWiz9RGOGkvw1kOBeyh5x+NOTl94LEUY9+wGM4+tHPvBoOUca6G9bn5/vH88frh9dPPz/8
&gt;/LyG9x/67177qekv/4J1s/9nPGvrfWep/8Gzc2dPtxfXZ+3ICw+0999+fnjT7/adv76aC4FJBOIo
&gt;R1xiZz929GPnfwwhYwCJ063uuuuuC6dgjcuM68T1Jz7xifbhD3+4ffvb377kkY54M/uljoB88pOf
&gt;bJ/+9KeHEBLbHcNHZIvYbpx6GCFkyB3jqVfj+YhReBT9gQ98oD344INt87f3tdOP9jdQHf+b4Q8G
&gt;9qOJQ/iY9edVhIv+/qr+Bwj7E64Hin52VlvrKSOCSD8A0o+C9I9+vRLX/ZkZYeNAv7+f4dU2enCJ
&gt;QBJHQs5GiLE+P98/nj9eP7x++vnh5+c1uv8Qf1x5DCAbPYDEEZGN0/0/lYj9oMfub+888r/t3Xe8
&gt;vd1www3Djljsa7kQmEogdvDHgwixzdj5H6/jvjjyEf8N780339ze9a53DSFgWOCVf2KZcZ24Kd6K
&gt;8aUvfWnHbePyx44duxBgxtvielw+tjVe4vPxYzwCMpyCFWlp/BjTUhQQf2L94x//eNv4/vfbI3/8
&gt;p3bq3kfa2Te/t537i/e162853tb6+0w24g9/9Es8ThzZON/fz7KvP5/ORfLvfW/04BGBJQwilMQT
&gt;MlLHmb5sPDPjTVpn+m3xBwmtz8/3j+eP1w+vn35++Pl5re4/DHGi788M+0R9H+mp/zvVnvrv/kvc
&gt;PzzQ7rzupfb+d76t3XbbbRf+RkK8KdiFwFQC405+hJD43oqd/fHN6HHqVfznUrG//573vGf4r3jH
&gt;x431Yr//4uvx/ktdxxGQKwXo7duLz6OuePz4PK5nUVx8xIPH9XiJO9/+9rcPDxDvjH/00Ufbi//z
&gt;vfbMg99sj/dGxg1vT0vjuq4JECBAgAABAlUF4qyS+J9Db73++nbr7be2Eyfu6h8n2vX969hxG/e9
&gt;qvroe3qB2C+PS3xvxc5+/IdS8RHhI/7XqjiicccddwxHQCKcXHwZ9+svvv1SX8f7PC61jUstG9uN
&gt;j6hpDEdR4yz+K674YyQROLafzzWuEE+YeLNKBJBTp04NzcQDjMln+1GTSz2w2wgQIECAAAECVQTi
&gt;F7OxbxSnmUQIiT/0FqesxE5b3DbuIFbx0OfVEYid++07+mMAiUd/4xvfOHwPxvdl7PNPcVlkOxeH
&gt;j8ge/w9MMxM6KtjTlQAAAABJRU5ErkJggg==
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370472</commentid>
    <comment_count>29</comment_count>
      <attachid>86335</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-21 11:00:00 -0700</bug_when>
    <thetext>Created attachment 86335
updated per Simon&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370473</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-21 11:00:28 -0700</bug_when>
    <thetext>Rik: How did you spam the bug like that?  Did a tool go haywire?

In any case, we should open a new bug for this (and we can dupe this one against that).

But this bug should be closed now that it&apos;s impossible to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370477</commentid>
    <comment_count>31</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-21 11:06:54 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Rik: How did you spam the bug like that?  Did a tool go haywire?
&gt; 
&gt; In any case, we should open a new bug for this (and we can dupe this one against that).
&gt; 
&gt; But this bug should be closed now that it&apos;s impossible to read.

Yes. Please close the bug and I&apos;ll open a new one.

I click on &quot;edit attachment as comment&quot; and submitted by accident :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370944</commentid>
    <comment_count>32</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-03-21 15:09:56 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 56758 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371102</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-21 18:06:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81625 might have broken Qt Linux Release
The following tests are not passing:
css2.1/t09-c5526c-display-00-e.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390332</commentid>
    <comment_count>34</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-04-21 14:20:28 -0700</bug_when>
    <thetext>This caused https://bugs.webkit.org/show_bug.cgi?id=59138</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392636</commentid>
    <comment_count>35</comment_count>
      <attachid>86335</attachid>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2011-04-26 12:39:50 -0700</bug_when>
    <thetext>Comment on attachment 86335
updated per Simon&apos;s review 

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

&gt; Source/WebCore/platform/Length.h:198
&gt; +        float fromValue = from.isZero() ? 0 : from.value();

This causes:
Source\WebCore\platform\Length.h(196) : warning C4244: &apos;initializing&apos; : conversion from &apos;int&apos; to &apos;float&apos;, possible loss of data

This is genuine since value() returns an int. Either change the type to int or use getFloatValue() or the thing that is the more sensible here as I&apos;m not familiar with this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392638</commentid>
    <comment_count>36</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2011-04-26 12:41:59 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; (From update of attachment 86335 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=86335&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/Length.h:198
&gt; &gt; +        float fromValue = from.isZero() ? 0 : from.value();
&gt; 
&gt; This causes:
&gt; Source\WebCore\platform\Length.h(196) : warning C4244: &apos;initializing&apos; : conversion from &apos;int&apos; to &apos;float&apos;, possible loss of data
&gt; 
&gt; This is genuine since value() returns an int. Either change the type to int or use getFloatValue() or the thing that is the more sensible here as I&apos;m not familiar with this code.

What platform are you seeing this on?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85242</attachid>
            <date>2011-03-09 14:53:59 -0800</date>
            <delta_ts>2011-03-09 16:41:38 -0800</delta_ts>
            <desc>First pass to get the results of the other platforms</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>31720</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKwkJCisgICAgICAgIHRlc3Q6IGZhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXIuaHRtbAorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAg
ICAgICogcGFnZS9QcmludENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250
ZXh0OjpwYWdlUHJvcGVydHkpOgorICAgICAgICAqIHBsYXRmb3JtL0xlbmd0aC5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjpMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpv
cGVyYXRvcio9KToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6dmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6TGVuZ3RoOjpwZXJjZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6c2V0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpjYWxjVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6TGVuZ3RoOjpjYWxjTWluVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3Ro
Ojppc1VuZGVmaW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OmlzWmVybyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZW5ndGg6OmlzUG9zaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVu
Z3RoOjppc05lZ2F0aXZlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6QXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZl
TG9naWNhbFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6bGF5b3V0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheSk6CisgICAgICAgIChXZWJD
b3JlOjpGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9u
OjphZGRDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0
Um93cyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkJvcmRlckRhdGE6Omhhc0JvcmRlclJhZGl1cyk6CisKIDIwMTEtMDMtMDkgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMzMiw4ICs1MzMyLDggQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgcmFkaXVzSGVpZ2h0
ID0gTGVuZ3RoKHBhaXItPnNlY29uZCgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKG1heChpbnRNaW5G
b3JMZW5ndGgsIG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXItPnNlY29uZCgpLT5jb21wdXRlTGVu
Z3RoSW50KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvcikpKSwgRml4ZWQp
OwotICAgICAgICBpbnQgd2lkdGggPSByYWRpdXNXaWR0aC5yYXdWYWx1ZSgpOwotICAgICAgICBp
bnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnJhd1ZhbHVlKCk7CisgICAgICAgIGludCB3aWR0aCA9
IHJhZGl1c1dpZHRoLnZhbHVlKCk7CisgICAgICAgIGludCBoZWlnaHQgPSByYWRpdXNIZWlnaHQu
dmFsdWUoKTsKICAgICAgICAgaWYgKHdpZHRoIDwgMCB8fCBoZWlnaHQgPCAwKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBpZiAod2lkdGggPT0gMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUHJpbnRDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1ByaW50Q29udGV4dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QcmludENvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsMTYgKzI4MiwxNiBAQCBT
dHJpbmcgUHJpbnRDb250ZXh0OjpwYWdlUHJvcGVydHkoRnJhbWUqCiAgICAgaWYgKCFzdHJjbXAo
cHJvcGVydHlOYW1lLCAibWFyZ2luLWxlZnQiKSkgewogICAgICAgICBpZiAoc3R5bGUtPm1hcmdp
bkxlZnQoKS5pc0F1dG8oKSkKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoImF1dG8iKTsKLSAg
ICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5tYXJnaW5MZWZ0KCkucmF3VmFsdWUo
KSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnZh
bHVlKCkpOwogICAgIH0KICAgICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUsICJsaW5lLWhlaWdo
dCIpKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmxpbmVIZWlnaHQoKS5y
YXdWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVp
Z2h0KCkudmFsdWUoKSk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAiZm9udC1zaXpl
IikpCiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+Zm9udERlc2NyaXB0aW9u
KCkuY29tcHV0ZWRQaXhlbFNpemUoKSk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
Zm9udC1mYW1pbHkiKSkKICAgICAgICAgcmV0dXJuIHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5m
YW1pbHkoKS5mYW1pbHkoKS5zdHJpbmcoKTsKICAgICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUs
ICJzaXplIikpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLndpZHRoKCkucmF3VmFsdWUoKSksICcgJywgU3RyaW5nOjpudW1iZXIoc3R5
bGUtPnBhZ2VTaXplKCkuaGVpZ2h0KCkucmF3VmFsdWUoKSkpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS53aWR0aCgpLnZhbHVlKCkp
LCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5wYWdlU2l6ZSgpLmhlaWdodCgpLnZhbHVlKCkp
KTsKIAogICAgIHJldHVybiBtYWtlU3RyaW5nKCJwYWdlUHJvcGVydHkoKSB1bmltcGxlbWVudGVk
IGZvcjogIiwgcHJvcGVydHlOYW1lKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5o
CShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgIENvcHlyaWdodCAoQykgMjAxMSBS
aWsgQ2FiYW5pZXIgKGNhYmFuaWVyQGFkb2JlLmNvbSkKIAogICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MzAsNyArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgdW5kZWZpbmVk
TGVuZ3RoID0gLTE7Ci1jb25zdCBpbnQgcGVyY2VudFNjYWxlRmFjdG9yID0gMTI4OwogY29uc3Qg
aW50IGludE1heEZvckxlbmd0aCA9IDB4N2ZmZmZmZjsgLy8gbWF4IHZhbHVlIGZvciBhIDI4LWJp
dCBpbnQKIGNvbnN0IGludCBpbnRNaW5Gb3JMZW5ndGggPSAoLTB4N2ZmZmZmZiAtIDEpOyAvLyBt
aW4gdmFsdWUgZm9yIGEgMjgtYml0IGludAogCkBAIC01MiwzNCArNTIsMzUgQEAgcHVibGljOgog
ICAgIExlbmd0aChpbnQgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKICAgICAgICAg
OiBtX2ludFZhbHVlKHYpLCBtX3F1aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVCh0ICE9IFBlcmNlbnQpOwogICAgIH0KIAogICAgIExlbmd0
aChkb3VibGUgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKLSAgICAgICAgOiBtX3F1
aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkKLSAgICB7Ci0gICAgICAgIGlmICht
X3R5cGUgPT0gUGVyY2VudCkKLSAgICAgICAgICAgIG1faW50VmFsdWUgPSBzdGF0aWNfY2FzdDxp
bnQ+KHYqcGVyY2VudFNjYWxlRmFjdG9yKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBt
X2lzRmxvYXQgPSB0cnVlOyAgICAgICAgICAgIAotICAgICAgICAgICAgbV9mbG9hdFZhbHVlID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOwotICAgICAgIH0KKyAgICAgICAgOiBtX3F1aXJrKHEpLCBt
X3R5cGUodCksIG1faXNGbG9hdCh0cnVlKQorICAgIHsgICAgICAgICAgIAorICAgICAgICBtX2Zs
b2F0VmFsdWUgPSBzdGF0aWNfY2FzdDxmbG9hdD4odik7ICAgIAogICAgIH0KIAogICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBMZW5ndGgmIG8pIGNvbnN0IHsgcmV0dXJuIChnZXRGbG9hdFZhbHVl
KCkgPT0gby5nZXRGbG9hdFZhbHVlKCkpICYmIChtX3R5cGUgPT0gby5tX3R5cGUpICYmIChtX3F1
aXJrID09IG8ubV9xdWlyayk7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTGVuZ3RoJiBv
KSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgpICE9IG8uZ2V0RmxvYXRWYWx1ZSgpKSB8
fCAobV90eXBlICE9IG8ubV90eXBlKSB8fCAobV9xdWlyayAhPSBvLm1fcXVpcmspOyB9CiAKKyAg
ICBjb25zdCBMZW5ndGgmIG9wZXJhdG9yKj0oZG91YmxlIHYpCisgICAgeyAgICAgICAgCisgICAg
ICAgIGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICBtX2Zsb2F0VmFsdWUgKj0gdjsKKyAgICAg
ICAgZWxzZSAgICAgICAgCisgICAgICAgICAgICBtX2ludFZhbHVlICo9IHY7CisgICAgICAgIAor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIAogICAgIGludCB2YWx1ZSgpIGNvbnN0
IHsKLSAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBQZXJjZW50KTsKLSAgICAgICAgcmV0dXJuIHJh
d1ZhbHVlKCk7CisgICAgICAgIHJldHVybiBnZXRJbnRWYWx1ZSgpOwogICAgIH0KIAotICAgIGlu
dCByYXdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEludFZhbHVlKCk7IH0KLQogICAgIGRvdWJs
ZSBwZXJjZW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gUGVyY2Vu
dCk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHJhd1ZhbHVlKCkpIC8gcGVy
Y2VudFNjYWxlRmFjdG9yOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihnZXRG
bG9hdFZhbHVlKCkpOwogICAgIH0KIAogICAgIExlbmd0aFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PExlbmd0aFR5cGU+KG1fdHlwZSk7IH0KQEAgLTg3LDYgKzg4LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1ZShMZW5ndGhUeXBlIHQsIGludCB2YWx1ZSkKICAg
ICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7CiAgICAgICAgIG1fdHlwZSA9
IHQ7CiAgICAgICAgIG1faW50VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgbV9pc0Zsb2F0ID0gZmFs
c2U7CkBAIC05NCw3ICs5Niw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUoaW50IHZh
bHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCF2YWx1ZSB8fCB0eXBlKCkgIT0gUGVyY2VudCk7
CiAgICAgICAgIHNldFZhbHVlKEZpeGVkLCB2YWx1ZSk7CiAgICAgfQogCkBAIC0xMTksNyArMTIw
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAg
IGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50U2Nh
bGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1heFZh
bHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgogICAgICAg
ICAgICAgICAgIHJldHVybiBtYXhWYWx1ZTsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMzUs
NyArMTM2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAg
ICAgICAgIGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJj
ZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgog
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTE1Niwx
MCArMTU3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgaXNVbmRl
ZmluZWQoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsgfQot
ICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgeyByZXR1cm4gIWdldEludFZhbHVlKCk7IH0KLSAgICBi
b29sIGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID4gMDsgfQotICAgIGJv
b2wgaXNOZWdhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPCAwOyB9CisgICAgYm9v
bCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCkgPT0gdW5kZWZpbmVkTGVuZ3Ro
OyB9CisgICAgYm9vbCBpc1plcm8oKSBjb25zdCAKKyAgICB7IAorICAgICAgICBpZiAobV9pc0Zs
b2F0KQorICAgICAgICAgICAgcmV0dXJuICFtX2Zsb2F0VmFsdWU7IAorICAgICAgICAKKyAgICAg
ICAgcmV0dXJuICFtX2ludFZhbHVlOworICAgIH0KKyAgICBib29sIGlzUG9zaXRpdmUoKSBjb25z
dCB7IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPiAwOyB9CisgICAgYm9vbCBpc05lZ2F0aXZlKCkg
Y29uc3QgeyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpIDwgMDsgfQogCiAgICAgYm9vbCBpc0F1dG8o
KSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXV0bzsgfQogICAgIGJvb2wgaXNSZWxhdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBSZWxhdGl2ZTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbihp
bnQgZQogCiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBjZWxsTG9naWNhbFdpZHRoID0gY2Vs
bC0+c3R5bGVPckNvbExvZ2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogV2hhdCBpcyB0aGlzIGFyYml0cmFyeSB2YWx1ZT8KLSAgICAgICAgICAgICAgICAgICAgaWYg
KGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSA+IDMyNzYwKQorICAgICAgICAgICAgICAgICAg
ICBpZiAoY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gMzI3NjApCiAgICAgICAgICAgICAgICAg
ICAgICAgICBjZWxsTG9naWNhbFdpZHRoLnNldFZhbHVlKDMyNzYwKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNOZWdhdGl2ZSgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgwKTsKQEAgLTEwNSwxMyArMTA1LDEz
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1u
TGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29s
dW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnZh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVlKCkpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
IGNhc2UgUmVsYXRpdmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTmVlZCB0
byB1bmRlcnN0YW5kIHRoaXMgY2FzZSBhbmQgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBjb21w
YXJlIHZhbHVlcwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYXJlIG5vdCBuZWNl
c3NhcmlseSBvZiB0aGUgc2FtZSB0eXBlLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNl
bGxMb2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgp
ICYmIGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgu
cmF3VmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0
aC5pc0F1dG8oKSB8fCAoY2VsbExvZ2ljYWxXaWR0aC5pc1JlbGF0aXZlKCkgJiYgY2VsbExvZ2lj
YWxXaWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2Vs
bExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjMyLDE2ICsyMzIsMTYgQEAgdm9pZCBBdXRvVGFibGVM
YXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogCiAgICAgLy8gV2Ugc3Vic3RpdHV0ZSAwIHBlcmNl
bnQgYnkgKGVwc2lsb24gLyBwZXJjZW50U2NhbGVGYWN0b3IpIHBlcmNlbnQgaW4gdHdvIHBsYWNl
cyBiZWxvdyB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgogICAgIC8vIEZJWE1FOiBIYW5kbGUg
dGhlIDAlIGNhc2VzIHByb3Blcmx5LgotICAgIGNvbnN0IGludCBlcHNpbG9uID0gMTsKKyAgICBj
b25zdCBmbG9hdCBlcHNpbG9uID0gMSAvIDEyOC4wOwogCi0gICAgaW50IHJlbWFpbmluZ1BlcmNl
bnQgPSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3I7CisgICAgZmxvYXQgcmVtYWluaW5nUGVyY2Vu
dCA9IDEwMDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGF5b3V0U3RydWN0LnNpemUo
KTsgKytpKSB7CiAgICAgICAgIG1pbldpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2
ZU1pbkxvZ2ljYWxXaWR0aDsKICAgICAgICAgbWF4V2lkdGggKz0gbV9sYXlvdXRTdHJ1Y3RbaV0u
ZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAgICBpZiAoc2NhbGVDb2x1bW5zKSB7CiAg
ICAgICAgICAgICBpZiAobV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlz
UGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBtaW4obV9sYXlvdXRT
dHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCksIHJlbWFpbmluZ1BlcmNl
bnQpOwotICAgICAgICAgICAgICAgIGZsb2F0IGxvZ2ljYWxXaWR0aCA9IHN0YXRpY19jYXN0PGZs
b2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpICogMTAwICog
cGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHBlcmNlbnQsIGVwc2lsb24pOworICAgICAgICAgICAg
ICAgIGZsb2F0IHBlcmNlbnQgPSBtaW4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0
W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCkpLCByZW1haW5pbmdQZXJjZW50KTsK
KyAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4o
bV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAvIG1heChw
ZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgICAgICAgICBtYXhQZXJjZW50ID0gbWF4KGxvZ2lj
YWxXaWR0aCwgIG1heFBlcmNlbnQpOwogICAgICAgICAgICAgICAgIHJlbWFpbmluZ1BlcmNlbnQg
LT0gcGVyY2VudDsKICAgICAgICAgICAgIH0gZWxzZQpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQg
QXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KICAgICB9CiAKICAgICBpZiAoc2Nh
bGVDb2x1bW5zKSB7Ci0gICAgICAgIG1heE5vblBlcmNlbnQgPSBtYXhOb25QZXJjZW50ICogMTAw
ICogcGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHJlbWFpbmluZ1BlcmNlbnQsIGVwc2lsb24pOwor
ICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAvIG1heChyZW1haW5p
bmdQZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0
YXRpY19jYXN0PGludD4obWluKG1heE5vblBlcmNlbnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAg
ICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3RhdGljX2Nhc3Q8aW50PihtaW4obWF4UGVy
Y2VudCwgSU5UX01BWCAvIDIuMGYpKSk7CiAgICAgfQpAQCAtMjY2LDYgKzI2NiwxMCBAQCB2b2lk
IEF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgICAgIG1pbldpZHRoID0g
bWF4KG1pbldpZHRoLCB0YWJsZUxvZ2ljYWxXaWR0aC52YWx1ZSgpKTsKICAgICAgICAgbWF4V2lk
dGggPSBtaW5XaWR0aDsKICAgICB9CisgICAgCisgICAgLy8gaWYgdGhlcmUgd2FzIG5vIHJlbWFp
bmluZyBwZXJjZW50LCBtYXhXaWR0aCBpcyBpbnZhbGlkLgorICAgIGlmICghcmVtYWluaW5nUGVy
Y2VudCAmJiBtYXhOb25QZXJjZW50KQorICAgICAgICBtYXhXaWR0aCA9IGludE1heEZvckxlbmd0
aDsgICAgICAgIAogfQogCiAvKgpAQCAtMzAwLDcgKzMwNCw3IEBAIGludCBBdXRvVGFibGVMYXlv
dXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgc2l6ZV90IGxhc3RDb2wgPSBlZmZDb2w7
CiAgICAgICAgIGludCBjZWxsTWluTG9naWNhbFdpZHRoID0gY2VsbC0+bWluUHJlZmVycmVkTG9n
aWNhbFdpZHRoKCkgKyBzcGFjaW5nSW5Sb3dEaXJlY3Rpb247CiAgICAgICAgIGZsb2F0IGNlbGxN
YXhMb2dpY2FsV2lkdGggPSBjZWxsLT5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSArIHNwYWNp
bmdJblJvd0RpcmVjdGlvbjsKLSAgICAgICAgaW50IHRvdGFsUGVyY2VudCA9IDA7CisgICAgICAg
IGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgICAgIGludCBzcGFuTWluTG9naWNhbFdpZHRo
ID0gMDsKICAgICAgICAgZmxvYXQgc3Bhbk1heExvZ2ljYWxXaWR0aCA9IDA7CiAgICAgICAgIGJv
b2wgYWxsQ29sc0FyZVBlcmNlbnQgPSB0cnVlOwpAQCAtMzEyLDcgKzMxNiw3IEBAIGludCBBdXRv
VGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgIExheW91dCYgY29s
dW1uTGF5b3V0ID0gbV9sYXlvdXRTdHJ1Y3RbbGFzdENvbF07CiAgICAgICAgICAgICBzd2l0Y2gg
KGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIFBl
cmNlbnQ6Ci0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5sb2dp
Y2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29s
dW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAgICAgYWxsQ29s
c0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEZpeGVkOgpAQCAtMzM5LDcgKzM0Myw3IEBAIGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNF
ZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmVmZmVjdGl2
ZUxvZ2ljYWxXaWR0aCA9IExlbmd0aCgpOwogICAgICAgICAgICAgICAgICAgICBhbGxDb2xzQXJl
UGVyY2VudCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5b3V0LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5y
YXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5
b3V0LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAgICAgYWxs
Q29sc0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIWNv
bHVtbkxheW91dC5lbXB0eUNlbGxzT25seSkKQEAgLTM1NCwxNCArMzU4LDE0IEBAIGludCBBdXRv
VGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKIAogICAgICAgICAvLyBhZGp1c3QgdGFi
bGUgbWF4IHdpZHRoIGlmIG5lZWRlZAogICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+IGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSB8fCBhbGxDb2xzQXJlUGVyY2VudCkgeworICAgICAgICAgICAgaWYgKHRv
dGFsUGVyY2VudCA+IGNlbGxMb2dpY2FsV2lkdGgucGVyY2VudCgpIHx8IGFsbENvbHNBcmVQZXJj
ZW50KSB7CiAgICAgICAgICAgICAgICAgLy8gY2FuJ3Qgc2F0aWZ5IHRoaXMgY29uZGl0aW9uLCB0
cmVhdCBhcyB2YXJpYWJsZQogICAgICAgICAgICAgICAgIGNlbGxMb2dpY2FsV2lkdGggPSBMZW5n
dGgoKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbWF4TG9naWNhbFdp
ZHRoID0gbWF4KG1heExvZ2ljYWxXaWR0aCwgbWF4KHNwYW5NYXhMb2dpY2FsV2lkdGgsIGNlbGxN
YXhMb2dpY2FsV2lkdGgpICogMTAwICogcGVyY2VudFNjYWxlRmFjdG9yIC8gY2VsbExvZ2ljYWxX
aWR0aC5yYXdWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBtYXgo
bWF4TG9naWNhbFdpZHRoLCBzdGF0aWNfY2FzdDxmbG9hdD4obWF4KHNwYW5NYXhMb2dpY2FsV2lk
dGgsIGNlbGxNYXhMb2dpY2FsV2lkdGgpICogMTAwICAvIGNlbGxMb2dpY2FsV2lkdGgucGVyY2Vu
dCgpKSk7CiAKICAgICAgICAgICAgICAgICAvLyBhbGwgbm9uIHBlcmNlbnQgY29sdW1ucyBpbiB0
aGUgc3BhbiBnZXQgcGVyY2VudCB2YWx1ZXMgdG8gc3VtIHVwIGNvcnJlY3RseS4KLSAgICAgICAg
ICAgICAgICBpbnQgcGVyY2VudE1pc3NpbmcgPSBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkg
LSB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudE1pc3NpbmcgPSBj
ZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSAtIHRvdGFsUGVyY2VudDsKICAgICAgICAgICAgICAg
ICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBv
cyA9IGVmZkNvbDsgcG9zIDwgbGFzdENvbDsgKytwb3MpIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQo
KSkKQEAgLTM3MCw3ICszNzQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZl
TG9naWNhCiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBvcyA9IGVmZkNvbDsgcG9z
IDwgbGFzdENvbCAmJiB0b3RhbFdpZHRoID4gMDsgKytwb3MpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNl
bnQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KHBlcmNlbnRNaXNzaW5nICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0
W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAvIHRvdGFsV2lkdGgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudCA9IHBlcmNlbnRNaXNzaW5nICogc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAv
IHRvdGFsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFdpZHRoIC09IG1fbGF5
b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAg
ICAgICAgICAgcGVyY2VudE1pc3NpbmcgLT0gcGVyY2VudDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChwZXJjZW50ID4gMCkKQEAgLTQ5MSw3ICs0OTUsNyBAQCB2b2lkIEF1dG9UYWJsZUxh
eW91dDo6bGF5b3V0KCkKICAgICBpbnQgbnVtRml4ZWQgPSAwOwogICAgIGZsb2F0IHRvdGFsQXV0
byA9IDA7CiAgICAgZmxvYXQgdG90YWxGaXhlZCA9IDA7Ci0gICAgaW50IHRvdGFsUGVyY2VudCA9
IDA7CisgICAgZmxvYXQgdG90YWxQZXJjZW50ID0gMDsKICAgICBpbnQgYWxsb2NBdXRvID0gMDsK
ICAgICB1bnNpZ25lZCBudW1BdXRvRW1wdHlDZWxsc09ubHkgPSAwOwogCkBAIC01MDQsNyArNTA4
LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIHN3aXRjaCAobG9n
aWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICBo
YXZlUGVyY2VudCA9IHRydWU7Ci0gICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbG9naWNhbFdp
ZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbG9naWNhbFdpZHRo
LnBlcmNlbnQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJlbGF0aXZlOgog
ICAgICAgICAgICAgdG90YWxSZWxhdGl2ZSArPSBsb2dpY2FsV2lkdGgudmFsdWUoKTsKQEAgLTUz
OCw5ICs1NDIsOSBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICAgICAgICAg
ICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCA9IGNlbGxMb2dpY2Fs
V2lkdGg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRvdGFsUGVyY2Vu
dCA+IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgICAgICBpZiAodG90YWxQZXJjZW50
ID4gMTAwKSB7CiAgICAgICAgICAgICAvLyByZW1vdmUgb3ZlcmFsbG9jYXRlZCBzcGFjZSBmcm9t
IHRoZSBsYXN0IGNvbHVtbnMKLSAgICAgICAgICAgIGludCBleGNlc3MgPSB0YWJsZUxvZ2ljYWxX
aWR0aCAqICh0b3RhbFBlcmNlbnQgLSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIC8gKDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dp
Y2FsV2lkdGggKiAodG90YWxQZXJjZW50IC0gMTAwKSAvIDEwMDsKICAgICAgICAgICAgIGZvciAo
aW50IGkgPSBuRWZmQ29scyAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICAgICAgaWYg
KG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewog
ICAgICAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0
W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoOwpAQCAtNjA3LDEzICs2MTEsMTMgQEAgdm9pZCBBdXRv
VGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgfQogCiAgICAgLy8gc3ByZWFkIG92ZXIgcGVyY2Vu
dCBjb2x1bXMKLSAgICBpZiAoYXZhaWxhYmxlID4gMCAmJiBtX2hhc1BlcmNlbnQgJiYgdG90YWxQ
ZXJjZW50IDwgMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSB7CisgICAgaWYgKGF2YWlsYWJsZSA+
IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVyY2VudCA8IDEwMCkgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG5FZmZDb2xzOyArK2kpIHsKICAgICAgICAgICAgIExlbmd0aCYg
bG9naWNhbFdpZHRoID0gbV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoOwog
ICAgICAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAg
ICAgIGludCBjZWxsTG9naWNhbFdpZHRoID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgLyB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lk
dGggPSBhdmFpbGFibGUgKiBsb2dpY2FsV2lkdGgucGVyY2VudCgpIC8gdG90YWxQZXJjZW50Owog
ICAgICAgICAgICAgICAgIGF2YWlsYWJsZSAtPSBjZWxsTG9naWNhbFdpZHRoOwotICAgICAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCAtPSBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnBlcmNlbnQoKTsKICAgICAgICAg
ICAgICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCArPSBjZWxsTG9n
aWNhbFdpZHRoOwogICAgICAgICAgICAgICAgIGlmICghYXZhaWxhYmxlIHx8ICF0b3RhbFBlcmNl
bnQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExOCw3ICsxMTgsOCBAQCBpbnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXko
aW50CiAgICAgICAgICAgICAgICAgICAgIHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4gPSBt
X3RhYmxlLT5zcGFuT2ZFZmZDb2woY3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGlmICgody5pc0ZpeGVkKCkgfHwgdy5pc1BlcmNlbnQo
KSkgJiYgdy5pc1Bvc2l0aXZlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjdXJy
ZW50RWZmZWN0aXZlQ29sdW1uXS5zZXRWYWx1ZSh3LnR5cGUoKSwgdy5yYXdWYWx1ZSgpICogc3Bh
bkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CisgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhb
Y3VycmVudEVmZmVjdGl2ZUNvbHVtbl0gPSB3OworICAgICAgICAgICAgICAgICAgICBtX3dpZHRo
W2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5dICo9IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47
CiAgICAgICAgICAgICAgICAgICAgIHVzZWRXaWR0aCArPSBlZmZXaWR0aCAqIHNwYW5JbkN1cnJl
bnRFZmZlY3RpdmVDb2x1bW47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHNw
YW4gLT0gc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKQEAgLTE2NCwxMCArMTY1LDExIEBA
IGludCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShpbnQKICAgICAgICAgICAgICAg
ICBpbnQgdXNlZFNwYW4gPSAwOwogICAgICAgICAgICAgICAgIGludCBpID0gMDsKICAgICAgICAg
ICAgICAgICB3aGlsZSAodXNlZFNwYW4gPCBzcGFuICYmIGNDb2wgKyBpIDwgbkVmZkNvbHMpIHsK
LSAgICAgICAgICAgICAgICAgICAgaW50IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9mRWZmQ29sKGND
b2wgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgZVNwYW4gPSBtX3RhYmxlLT5zcGFu
T2ZFZmZDb2woY0NvbCArIGkpOwogICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHNldCBpZiBu
byBjb2wgZWxlbWVudCBoYXMgYWxyZWFkeSBzZXQgaXQuCiAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3dpZHRoW2NDb2wgKyBpXS5pc0F1dG8oKSAmJiB3LnR5cGUoKSAhPSBBdXRvKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wgKyBpXS5zZXRWYWx1ZSh3LnR5cGUoKSwg
dy5yYXdWYWx1ZSgpICogZVNwYW4gLyBzcGFuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
d2lkdGhbY0NvbCArIGldID0gdzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY0Nv
bCArIGldICo9IGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWRXaWR0
aCArPSBlZmZXaWR0aCAqIGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICB1c2VkU3BhbiArPSBlU3BhbjsKQEAgLTIzNCw3ICsyMzYsNyBAQCB2
b2lkIEZpeGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgaW50IGF1dG9TcGFuID0gMDsKICAg
ICBpbnQgdG90YWxGaXhlZFdpZHRoID0gMDsKICAgICBpbnQgdG90YWxQZXJjZW50V2lkdGggPSAw
OwotICAgIGludCB0b3RhbFJhd1BlcmNlbnQgPSAwOworICAgIGZsb2F0IHRvdGFsUmF3UGVyY2Vu
dCA9IDA7CiAKICAgICAvLyBDb21wdXRlIHJlcXVpcmVtZW50cyBhbmQgdHJ5IHRvIHNhdGlzZnkg
Zml4ZWQgYW5kIHBlcmNlbnQgd2lkdGhzLgogICAgIC8vIFBlcmNlbnRhZ2VzIGFyZSBvZiB0aGUg
dGFibGUncyB3aWR0aCwgc28gZm9yIGV4YW1wbGUKQEAgLTI0Nyw3ICsyNDksNyBAQCB2b2lkIEZp
eGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5p
c1BlcmNlbnQoKSkgewogICAgICAgICAgICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5jYWxj
VmFsdWUodGFibGVMb2dpY2FsV2lkdGgpOwogICAgICAgICAgICAgdG90YWxQZXJjZW50V2lkdGgg
Kz0gY2FsY1dpZHRoW2ldOwotICAgICAgICAgICAgdG90YWxSYXdQZXJjZW50ICs9IG1fd2lkdGhb
aV0ucmF3VmFsdWUoKTsKKyAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ld
LnBlcmNlbnQoKTsKICAgICAgICAgfSBlbHNlIGlmIChtX3dpZHRoW2ldLmlzQXV0bygpKSB7CiAg
ICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBhdXRvU3BhbiArPSBtX3RhYmxlLT5z
cGFuT2ZFZmZDb2woaSk7CkBAIC0yNzQsNyArMjc2LDcgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0
OjpsYXlvdXQoKQogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsKICAgICAg
ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0YWJsZUxv
Z2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQoKSAqICh0
YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhbaV07
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNpb24g
ODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0
aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdodC50
eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dpY2Fs
SGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dp
Y2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVp
Z2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246Omxh
eW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5p
c0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNlIGlm
IChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAgICB0
b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2Vu
dCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAgICAg
IC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwotICAg
ICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2VudFNj
YWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQs
IDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBdOwog
ICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAgICAg
ICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0
LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihkaCwg
KHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgxMDAg
KiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRv
QWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFtyXS5s
b2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAgICAg
ICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmluayB0
aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRsb29r
IFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0FkZCk7
CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAgICAg
ZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dyaWRb
cl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBl
cmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAgICAg
ICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lvbiA4
MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0Jv
cmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRoKCku
cmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJvKCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lkdGgo
KS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNaZXJv
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVmdC53
aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0aCgp
LmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRv
bVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21SaWdo
dC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAzLTA5
ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBhcmUg
aW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMtMDkg
IEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MDM4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDQpIHNpemUgOTEweDQKICAgICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDgpIHNpemUgOTEweDQKLSAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0K
KyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9y
PSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgOTAw
eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYpIHNpemUg
ODkweDQKQEAgLTQ5LDcgKzQ5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg0KSBzaXplIDg0MHg0CiAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg4KSBzaXplIDgzNXg0Ci0gICAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0Zd
CisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdjb2xv
cj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkyKSBzaXplIDgy
NXg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdj
b2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDk2KSBzaXpl
IDgxNXg0CkBAIC04NCw2MSArODQsNjEgQEAgbGF5ZXIgYXQgKDgsMTI2KSBzaXplIDEwMDB4MjAK
ICAgUmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICBSZW5kZXJU
YWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICAgIFJlbmRlclRh
YmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCi0gICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgwLDEpIHNpemUgMTF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBy
cz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDEpIHNpemUgMTJ4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTIsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxLDEpIHNpemUg
MTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCisgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMiwxKSBzaXplIDEzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDM1LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9
MyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NCwxKSBzaXplIDE1eDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoNDUsMSkgc2l6ZSAxNngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz00IHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDU5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9NSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2MSwxKSBz
aXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTUgcnM9MSBjcz0xXQogICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNjksMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEg
Y3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcxLDEpIHNpemUgMTd4MTgg
W2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4Niwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQorICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0j
MDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk2LDEpIHNpemUgMjB4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRl
clRhYmxlQ2VsbCB7VER9IGF0ICg5OCwxKSBzaXplIDIweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0g
W3I9MCBjPTggcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTE2LDEpIHNpemUgMTB4MTggW2JnY29s
b3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgxMTgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05
IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0
eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyNiwxKSBzaXplIDIxeDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDEyOCwxKSBzaXplIDIyeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDE0NywxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTExIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE1
MCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDE1NywxKSBzaXplIDIzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBj
PTEyIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE2MCwxKSBz
aXplIDI0eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEyIHJzPTEgY3M9MV0KICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDE4MCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEzIHJz
PTEgY3M9MV0KLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE5MCwxKSBzaXplIDI1
eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9MV0KKyAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4NCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDE5NCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDIxNSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9
MCBjPTE1IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxOSwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE1IHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDIyNSwxKSBzaXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyOSwxKSBzaXpl
IDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2IHJzPTEgY3M9MV0KICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDI1MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEg
Y3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI1NiwxKSBzaXplIDEweDE4
IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2
MiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0K
KyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2NiwxKSBzaXplIDMweDE4IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI5MiwxKSBz
aXplIDcwOHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMjk2LDEpIHNpemUgNzA0eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85257</attachid>
            <date>2011-03-09 16:41:38 -0800</date>
            <delta_ts>2011-03-10 20:32:20 -0800</delta_ts>
            <desc>First pass to get the results of the other platforms</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>31720</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKwkJCisgICAgICAgIHRlc3Q6IGZhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXIuaHRtbAorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAg
ICAgICogcGFnZS9QcmludENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250
ZXh0OjpwYWdlUHJvcGVydHkpOgorICAgICAgICAqIHBsYXRmb3JtL0xlbmd0aC5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjpMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpv
cGVyYXRvcio9KToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6dmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6TGVuZ3RoOjpwZXJjZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6c2V0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpjYWxjVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6TGVuZ3RoOjpjYWxjTWluVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3Ro
Ojppc1VuZGVmaW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OmlzWmVybyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZW5ndGg6OmlzUG9zaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVu
Z3RoOjppc05lZ2F0aXZlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6QXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZl
TG9naWNhbFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6bGF5b3V0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheSk6CisgICAgICAgIChXZWJD
b3JlOjpGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9u
OjphZGRDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0
Um93cyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkJvcmRlckRhdGE6Omhhc0JvcmRlclJhZGl1cyk6CisKIDIwMTEtMDMtMDkgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMzMiw4ICs1MzMyLDggQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgcmFkaXVzSGVpZ2h0
ID0gTGVuZ3RoKHBhaXItPnNlY29uZCgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKG1heChpbnRNaW5G
b3JMZW5ndGgsIG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXItPnNlY29uZCgpLT5jb21wdXRlTGVu
Z3RoSW50KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvcikpKSwgRml4ZWQp
OwotICAgICAgICBpbnQgd2lkdGggPSByYWRpdXNXaWR0aC5yYXdWYWx1ZSgpOwotICAgICAgICBp
bnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnJhd1ZhbHVlKCk7CisgICAgICAgIGludCB3aWR0aCA9
IHJhZGl1c1dpZHRoLnZhbHVlKCk7CisgICAgICAgIGludCBoZWlnaHQgPSByYWRpdXNIZWlnaHQu
dmFsdWUoKTsKICAgICAgICAgaWYgKHdpZHRoIDwgMCB8fCBoZWlnaHQgPCAwKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBpZiAod2lkdGggPT0gMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUHJpbnRDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1ByaW50Q29udGV4dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QcmludENvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsMTYgKzI4MiwxNiBAQCBT
dHJpbmcgUHJpbnRDb250ZXh0OjpwYWdlUHJvcGVydHkoRnJhbWUqCiAgICAgaWYgKCFzdHJjbXAo
cHJvcGVydHlOYW1lLCAibWFyZ2luLWxlZnQiKSkgewogICAgICAgICBpZiAoc3R5bGUtPm1hcmdp
bkxlZnQoKS5pc0F1dG8oKSkKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoImF1dG8iKTsKLSAg
ICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5tYXJnaW5MZWZ0KCkucmF3VmFsdWUo
KSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnZh
bHVlKCkpOwogICAgIH0KICAgICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUsICJsaW5lLWhlaWdo
dCIpKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmxpbmVIZWlnaHQoKS5y
YXdWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVp
Z2h0KCkudmFsdWUoKSk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAiZm9udC1zaXpl
IikpCiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+Zm9udERlc2NyaXB0aW9u
KCkuY29tcHV0ZWRQaXhlbFNpemUoKSk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
Zm9udC1mYW1pbHkiKSkKICAgICAgICAgcmV0dXJuIHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5m
YW1pbHkoKS5mYW1pbHkoKS5zdHJpbmcoKTsKICAgICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUs
ICJzaXplIikpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLndpZHRoKCkucmF3VmFsdWUoKSksICcgJywgU3RyaW5nOjpudW1iZXIoc3R5
bGUtPnBhZ2VTaXplKCkuaGVpZ2h0KCkucmF3VmFsdWUoKSkpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS53aWR0aCgpLnZhbHVlKCkp
LCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5wYWdlU2l6ZSgpLmhlaWdodCgpLnZhbHVlKCkp
KTsKIAogICAgIHJldHVybiBtYWtlU3RyaW5nKCJwYWdlUHJvcGVydHkoKSB1bmltcGxlbWVudGVk
IGZvcjogIiwgcHJvcGVydHlOYW1lKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5o
CShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgIENvcHlyaWdodCAoQykgMjAxMSBS
aWsgQ2FiYW5pZXIgKGNhYmFuaWVyQGFkb2JlLmNvbSkKIAogICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MzAsNyArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgdW5kZWZpbmVk
TGVuZ3RoID0gLTE7Ci1jb25zdCBpbnQgcGVyY2VudFNjYWxlRmFjdG9yID0gMTI4OwogY29uc3Qg
aW50IGludE1heEZvckxlbmd0aCA9IDB4N2ZmZmZmZjsgLy8gbWF4IHZhbHVlIGZvciBhIDI4LWJp
dCBpbnQKIGNvbnN0IGludCBpbnRNaW5Gb3JMZW5ndGggPSAoLTB4N2ZmZmZmZiAtIDEpOyAvLyBt
aW4gdmFsdWUgZm9yIGEgMjgtYml0IGludAogCkBAIC01MiwzNCArNTIsMzUgQEAgcHVibGljOgog
ICAgIExlbmd0aChpbnQgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKICAgICAgICAg
OiBtX2ludFZhbHVlKHYpLCBtX3F1aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVCh0ICE9IFBlcmNlbnQpOwogICAgIH0KIAogICAgIExlbmd0
aChkb3VibGUgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKLSAgICAgICAgOiBtX3F1
aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkKLSAgICB7Ci0gICAgICAgIGlmICht
X3R5cGUgPT0gUGVyY2VudCkKLSAgICAgICAgICAgIG1faW50VmFsdWUgPSBzdGF0aWNfY2FzdDxp
bnQ+KHYqcGVyY2VudFNjYWxlRmFjdG9yKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBt
X2lzRmxvYXQgPSB0cnVlOyAgICAgICAgICAgIAotICAgICAgICAgICAgbV9mbG9hdFZhbHVlID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOwotICAgICAgIH0KKyAgICAgICAgOiBtX3F1aXJrKHEpLCBt
X3R5cGUodCksIG1faXNGbG9hdCh0cnVlKQorICAgIHsgICAgICAgICAgIAorICAgICAgICBtX2Zs
b2F0VmFsdWUgPSBzdGF0aWNfY2FzdDxmbG9hdD4odik7ICAgIAogICAgIH0KIAogICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBMZW5ndGgmIG8pIGNvbnN0IHsgcmV0dXJuIChnZXRGbG9hdFZhbHVl
KCkgPT0gby5nZXRGbG9hdFZhbHVlKCkpICYmIChtX3R5cGUgPT0gby5tX3R5cGUpICYmIChtX3F1
aXJrID09IG8ubV9xdWlyayk7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTGVuZ3RoJiBv
KSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgpICE9IG8uZ2V0RmxvYXRWYWx1ZSgpKSB8
fCAobV90eXBlICE9IG8ubV90eXBlKSB8fCAobV9xdWlyayAhPSBvLm1fcXVpcmspOyB9CiAKKyAg
ICBjb25zdCBMZW5ndGgmIG9wZXJhdG9yKj0oZG91YmxlIHYpCisgICAgeyAgICAgICAgCisgICAg
ICAgIGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICBtX2Zsb2F0VmFsdWUgKj0gdjsKKyAgICAg
ICAgZWxzZSAgICAgICAgCisgICAgICAgICAgICBtX2ludFZhbHVlICo9IHY7CisgICAgICAgIAor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIAogICAgIGludCB2YWx1ZSgpIGNvbnN0
IHsKLSAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBQZXJjZW50KTsKLSAgICAgICAgcmV0dXJuIHJh
d1ZhbHVlKCk7CisgICAgICAgIHJldHVybiBnZXRJbnRWYWx1ZSgpOwogICAgIH0KIAotICAgIGlu
dCByYXdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEludFZhbHVlKCk7IH0KLQogICAgIGRvdWJs
ZSBwZXJjZW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gUGVyY2Vu
dCk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHJhd1ZhbHVlKCkpIC8gcGVy
Y2VudFNjYWxlRmFjdG9yOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihnZXRG
bG9hdFZhbHVlKCkpOwogICAgIH0KIAogICAgIExlbmd0aFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PExlbmd0aFR5cGU+KG1fdHlwZSk7IH0KQEAgLTg3LDYgKzg4LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1ZShMZW5ndGhUeXBlIHQsIGludCB2YWx1ZSkKICAg
ICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7CiAgICAgICAgIG1fdHlwZSA9
IHQ7CiAgICAgICAgIG1faW50VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgbV9pc0Zsb2F0ID0gZmFs
c2U7CkBAIC05NCw3ICs5Niw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUoaW50IHZh
bHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCF2YWx1ZSB8fCB0eXBlKCkgIT0gUGVyY2VudCk7
CiAgICAgICAgIHNldFZhbHVlKEZpeGVkLCB2YWx1ZSk7CiAgICAgfQogCkBAIC0xMTksNyArMTIw
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAg
IGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50U2Nh
bGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1heFZh
bHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgogICAgICAg
ICAgICAgICAgIHJldHVybiBtYXhWYWx1ZTsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMzUs
NyArMTM2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAg
ICAgICAgIGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJj
ZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgog
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTE1Niwx
MCArMTU3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgaXNVbmRl
ZmluZWQoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsgfQot
ICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgeyByZXR1cm4gIWdldEludFZhbHVlKCk7IH0KLSAgICBi
b29sIGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID4gMDsgfQotICAgIGJv
b2wgaXNOZWdhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPCAwOyB9CisgICAgYm9v
bCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCkgPT0gdW5kZWZpbmVkTGVuZ3Ro
OyB9CisgICAgYm9vbCBpc1plcm8oKSBjb25zdCAKKyAgICB7IAorICAgICAgICBpZiAobV9pc0Zs
b2F0KQorICAgICAgICAgICAgcmV0dXJuICFtX2Zsb2F0VmFsdWU7IAorICAgICAgICAKKyAgICAg
ICAgcmV0dXJuICFtX2ludFZhbHVlOworICAgIH0KKyAgICBib29sIGlzUG9zaXRpdmUoKSBjb25z
dCB7IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPiAwOyB9CisgICAgYm9vbCBpc05lZ2F0aXZlKCkg
Y29uc3QgeyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpIDwgMDsgfQogCiAgICAgYm9vbCBpc0F1dG8o
KSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXV0bzsgfQogICAgIGJvb2wgaXNSZWxhdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBSZWxhdGl2ZTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbihp
bnQgZQogCiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBjZWxsTG9naWNhbFdpZHRoID0gY2Vs
bC0+c3R5bGVPckNvbExvZ2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogV2hhdCBpcyB0aGlzIGFyYml0cmFyeSB2YWx1ZT8KLSAgICAgICAgICAgICAgICAgICAgaWYg
KGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSA+IDMyNzYwKQorICAgICAgICAgICAgICAgICAg
ICBpZiAoY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gMzI3NjApCiAgICAgICAgICAgICAgICAg
ICAgICAgICBjZWxsTG9naWNhbFdpZHRoLnNldFZhbHVlKDMyNzYwKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNOZWdhdGl2ZSgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgwKTsKQEAgLTEwNSwxMyArMTA1LDEz
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1u
TGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29s
dW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnZh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVlKCkpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
IGNhc2UgUmVsYXRpdmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTmVlZCB0
byB1bmRlcnN0YW5kIHRoaXMgY2FzZSBhbmQgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBjb21w
YXJlIHZhbHVlcwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYXJlIG5vdCBuZWNl
c3NhcmlseSBvZiB0aGUgc2FtZSB0eXBlLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNl
bGxMb2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgp
ICYmIGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgu
cmF3VmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0
aC5pc0F1dG8oKSB8fCAoY2VsbExvZ2ljYWxXaWR0aC5pc1JlbGF0aXZlKCkgJiYgY2VsbExvZ2lj
YWxXaWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2Vs
bExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjMyLDE2ICsyMzIsMTYgQEAgdm9pZCBBdXRvVGFibGVM
YXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogCiAgICAgLy8gV2Ugc3Vic3RpdHV0ZSAwIHBlcmNl
bnQgYnkgKGVwc2lsb24gLyBwZXJjZW50U2NhbGVGYWN0b3IpIHBlcmNlbnQgaW4gdHdvIHBsYWNl
cyBiZWxvdyB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgogICAgIC8vIEZJWE1FOiBIYW5kbGUg
dGhlIDAlIGNhc2VzIHByb3Blcmx5LgotICAgIGNvbnN0IGludCBlcHNpbG9uID0gMTsKKyAgICBj
b25zdCBmbG9hdCBlcHNpbG9uID0gMSAvIDEyOC4wOwogCi0gICAgaW50IHJlbWFpbmluZ1BlcmNl
bnQgPSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3I7CisgICAgZmxvYXQgcmVtYWluaW5nUGVyY2Vu
dCA9IDEwMDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGF5b3V0U3RydWN0LnNpemUo
KTsgKytpKSB7CiAgICAgICAgIG1pbldpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2
ZU1pbkxvZ2ljYWxXaWR0aDsKICAgICAgICAgbWF4V2lkdGggKz0gbV9sYXlvdXRTdHJ1Y3RbaV0u
ZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAgICBpZiAoc2NhbGVDb2x1bW5zKSB7CiAg
ICAgICAgICAgICBpZiAobV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlz
UGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBtaW4obV9sYXlvdXRT
dHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCksIHJlbWFpbmluZ1BlcmNl
bnQpOwotICAgICAgICAgICAgICAgIGZsb2F0IGxvZ2ljYWxXaWR0aCA9IHN0YXRpY19jYXN0PGZs
b2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpICogMTAwICog
cGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHBlcmNlbnQsIGVwc2lsb24pOworICAgICAgICAgICAg
ICAgIGZsb2F0IHBlcmNlbnQgPSBtaW4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0
W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCkpLCByZW1haW5pbmdQZXJjZW50KTsK
KyAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4o
bV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAvIG1heChw
ZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgICAgICAgICBtYXhQZXJjZW50ID0gbWF4KGxvZ2lj
YWxXaWR0aCwgIG1heFBlcmNlbnQpOwogICAgICAgICAgICAgICAgIHJlbWFpbmluZ1BlcmNlbnQg
LT0gcGVyY2VudDsKICAgICAgICAgICAgIH0gZWxzZQpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQg
QXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KICAgICB9CiAKICAgICBpZiAoc2Nh
bGVDb2x1bW5zKSB7Ci0gICAgICAgIG1heE5vblBlcmNlbnQgPSBtYXhOb25QZXJjZW50ICogMTAw
ICogcGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHJlbWFpbmluZ1BlcmNlbnQsIGVwc2lsb24pOwor
ICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAvIG1heChyZW1haW5p
bmdQZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0
YXRpY19jYXN0PGludD4obWluKG1heE5vblBlcmNlbnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAg
ICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3RhdGljX2Nhc3Q8aW50PihtaW4obWF4UGVy
Y2VudCwgSU5UX01BWCAvIDIuMGYpKSk7CiAgICAgfQpAQCAtMjY2LDYgKzI2NiwxMCBAQCB2b2lk
IEF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgICAgIG1pbldpZHRoID0g
bWF4KG1pbldpZHRoLCB0YWJsZUxvZ2ljYWxXaWR0aC52YWx1ZSgpKTsKICAgICAgICAgbWF4V2lk
dGggPSBtaW5XaWR0aDsKICAgICB9CisgICAgCisgICAgLy8gaWYgdGhlcmUgd2FzIG5vIHJlbWFp
bmluZyBwZXJjZW50LCBtYXhXaWR0aCBpcyBpbnZhbGlkLgorICAgIGlmICghcmVtYWluaW5nUGVy
Y2VudCAmJiBtYXhOb25QZXJjZW50KQorICAgICAgICBtYXhXaWR0aCA9IGludE1heEZvckxlbmd0
aDsgICAgICAgIAogfQogCiAvKgpAQCAtMzAwLDcgKzMwNCw3IEBAIGludCBBdXRvVGFibGVMYXlv
dXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgc2l6ZV90IGxhc3RDb2wgPSBlZmZDb2w7
CiAgICAgICAgIGludCBjZWxsTWluTG9naWNhbFdpZHRoID0gY2VsbC0+bWluUHJlZmVycmVkTG9n
aWNhbFdpZHRoKCkgKyBzcGFjaW5nSW5Sb3dEaXJlY3Rpb247CiAgICAgICAgIGZsb2F0IGNlbGxN
YXhMb2dpY2FsV2lkdGggPSBjZWxsLT5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSArIHNwYWNp
bmdJblJvd0RpcmVjdGlvbjsKLSAgICAgICAgaW50IHRvdGFsUGVyY2VudCA9IDA7CisgICAgICAg
IGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgICAgIGludCBzcGFuTWluTG9naWNhbFdpZHRo
ID0gMDsKICAgICAgICAgZmxvYXQgc3Bhbk1heExvZ2ljYWxXaWR0aCA9IDA7CiAgICAgICAgIGJv
b2wgYWxsQ29sc0FyZVBlcmNlbnQgPSB0cnVlOwpAQCAtMzEyLDcgKzMxNiw3IEBAIGludCBBdXRv
VGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgIExheW91dCYgY29s
dW1uTGF5b3V0ID0gbV9sYXlvdXRTdHJ1Y3RbbGFzdENvbF07CiAgICAgICAgICAgICBzd2l0Y2gg
KGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIFBl
cmNlbnQ6Ci0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5sb2dp
Y2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29s
dW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAgICAgYWxsQ29s
c0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEZpeGVkOgpAQCAtMzM5LDcgKzM0Myw3IEBAIGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNF
ZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmVmZmVjdGl2
ZUxvZ2ljYWxXaWR0aCA9IExlbmd0aCgpOwogICAgICAgICAgICAgICAgICAgICBhbGxDb2xzQXJl
UGVyY2VudCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5b3V0LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5y
YXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5
b3V0LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAgICAgYWxs
Q29sc0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIWNv
bHVtbkxheW91dC5lbXB0eUNlbGxzT25seSkKQEAgLTM1NCwxNCArMzU4LDE0IEBAIGludCBBdXRv
VGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKIAogICAgICAgICAvLyBhZGp1c3QgdGFi
bGUgbWF4IHdpZHRoIGlmIG5lZWRlZAogICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+IGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSB8fCBhbGxDb2xzQXJlUGVyY2VudCkgeworICAgICAgICAgICAgaWYgKHRv
dGFsUGVyY2VudCA+IGNlbGxMb2dpY2FsV2lkdGgucGVyY2VudCgpIHx8IGFsbENvbHNBcmVQZXJj
ZW50KSB7CiAgICAgICAgICAgICAgICAgLy8gY2FuJ3Qgc2F0aWZ5IHRoaXMgY29uZGl0aW9uLCB0
cmVhdCBhcyB2YXJpYWJsZQogICAgICAgICAgICAgICAgIGNlbGxMb2dpY2FsV2lkdGggPSBMZW5n
dGgoKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbWF4TG9naWNhbFdp
ZHRoID0gbWF4KG1heExvZ2ljYWxXaWR0aCwgbWF4KHNwYW5NYXhMb2dpY2FsV2lkdGgsIGNlbGxN
YXhMb2dpY2FsV2lkdGgpICogMTAwICogcGVyY2VudFNjYWxlRmFjdG9yIC8gY2VsbExvZ2ljYWxX
aWR0aC5yYXdWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBtYXgo
bWF4TG9naWNhbFdpZHRoLCBzdGF0aWNfY2FzdDxmbG9hdD4obWF4KHNwYW5NYXhMb2dpY2FsV2lk
dGgsIGNlbGxNYXhMb2dpY2FsV2lkdGgpICogMTAwICAvIGNlbGxMb2dpY2FsV2lkdGgucGVyY2Vu
dCgpKSk7CiAKICAgICAgICAgICAgICAgICAvLyBhbGwgbm9uIHBlcmNlbnQgY29sdW1ucyBpbiB0
aGUgc3BhbiBnZXQgcGVyY2VudCB2YWx1ZXMgdG8gc3VtIHVwIGNvcnJlY3RseS4KLSAgICAgICAg
ICAgICAgICBpbnQgcGVyY2VudE1pc3NpbmcgPSBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkg
LSB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudE1pc3NpbmcgPSBj
ZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSAtIHRvdGFsUGVyY2VudDsKICAgICAgICAgICAgICAg
ICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBv
cyA9IGVmZkNvbDsgcG9zIDwgbGFzdENvbDsgKytwb3MpIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQo
KSkKQEAgLTM3MCw3ICszNzQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZl
TG9naWNhCiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBvcyA9IGVmZkNvbDsgcG9z
IDwgbGFzdENvbCAmJiB0b3RhbFdpZHRoID4gMDsgKytwb3MpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNl
bnQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KHBlcmNlbnRNaXNzaW5nICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0
W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAvIHRvdGFsV2lkdGgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudCA9IHBlcmNlbnRNaXNzaW5nICogc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAv
IHRvdGFsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFdpZHRoIC09IG1fbGF5
b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAg
ICAgICAgICAgcGVyY2VudE1pc3NpbmcgLT0gcGVyY2VudDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChwZXJjZW50ID4gMCkKQEAgLTQ5MSw3ICs0OTUsNyBAQCB2b2lkIEF1dG9UYWJsZUxh
eW91dDo6bGF5b3V0KCkKICAgICBpbnQgbnVtRml4ZWQgPSAwOwogICAgIGZsb2F0IHRvdGFsQXV0
byA9IDA7CiAgICAgZmxvYXQgdG90YWxGaXhlZCA9IDA7Ci0gICAgaW50IHRvdGFsUGVyY2VudCA9
IDA7CisgICAgZmxvYXQgdG90YWxQZXJjZW50ID0gMDsKICAgICBpbnQgYWxsb2NBdXRvID0gMDsK
ICAgICB1bnNpZ25lZCBudW1BdXRvRW1wdHlDZWxsc09ubHkgPSAwOwogCkBAIC01MDQsNyArNTA4
LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIHN3aXRjaCAobG9n
aWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICBo
YXZlUGVyY2VudCA9IHRydWU7Ci0gICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbG9naWNhbFdp
ZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbG9naWNhbFdpZHRo
LnBlcmNlbnQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJlbGF0aXZlOgog
ICAgICAgICAgICAgdG90YWxSZWxhdGl2ZSArPSBsb2dpY2FsV2lkdGgudmFsdWUoKTsKQEAgLTUz
OCw5ICs1NDIsOSBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICAgICAgICAg
ICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCA9IGNlbGxMb2dpY2Fs
V2lkdGg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRvdGFsUGVyY2Vu
dCA+IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgICAgICBpZiAodG90YWxQZXJjZW50
ID4gMTAwKSB7CiAgICAgICAgICAgICAvLyByZW1vdmUgb3ZlcmFsbG9jYXRlZCBzcGFjZSBmcm9t
IHRoZSBsYXN0IGNvbHVtbnMKLSAgICAgICAgICAgIGludCBleGNlc3MgPSB0YWJsZUxvZ2ljYWxX
aWR0aCAqICh0b3RhbFBlcmNlbnQgLSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIC8gKDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dp
Y2FsV2lkdGggKiAodG90YWxQZXJjZW50IC0gMTAwKSAvIDEwMDsKICAgICAgICAgICAgIGZvciAo
aW50IGkgPSBuRWZmQ29scyAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICAgICAgaWYg
KG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewog
ICAgICAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0
W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoOwpAQCAtNjA3LDEzICs2MTEsMTMgQEAgdm9pZCBBdXRv
VGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgfQogCiAgICAgLy8gc3ByZWFkIG92ZXIgcGVyY2Vu
dCBjb2x1bXMKLSAgICBpZiAoYXZhaWxhYmxlID4gMCAmJiBtX2hhc1BlcmNlbnQgJiYgdG90YWxQ
ZXJjZW50IDwgMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSB7CisgICAgaWYgKGF2YWlsYWJsZSA+
IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVyY2VudCA8IDEwMCkgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG5FZmZDb2xzOyArK2kpIHsKICAgICAgICAgICAgIExlbmd0aCYg
bG9naWNhbFdpZHRoID0gbV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoOwog
ICAgICAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAg
ICAgIGludCBjZWxsTG9naWNhbFdpZHRoID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgLyB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lk
dGggPSBhdmFpbGFibGUgKiBsb2dpY2FsV2lkdGgucGVyY2VudCgpIC8gdG90YWxQZXJjZW50Owog
ICAgICAgICAgICAgICAgIGF2YWlsYWJsZSAtPSBjZWxsTG9naWNhbFdpZHRoOwotICAgICAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCAtPSBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnBlcmNlbnQoKTsKICAgICAgICAg
ICAgICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCArPSBjZWxsTG9n
aWNhbFdpZHRoOwogICAgICAgICAgICAgICAgIGlmICghYXZhaWxhYmxlIHx8ICF0b3RhbFBlcmNl
bnQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExOCw3ICsxMTgsOCBAQCBpbnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXko
aW50CiAgICAgICAgICAgICAgICAgICAgIHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4gPSBt
X3RhYmxlLT5zcGFuT2ZFZmZDb2woY3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGlmICgody5pc0ZpeGVkKCkgfHwgdy5pc1BlcmNlbnQo
KSkgJiYgdy5pc1Bvc2l0aXZlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjdXJy
ZW50RWZmZWN0aXZlQ29sdW1uXS5zZXRWYWx1ZSh3LnR5cGUoKSwgdy5yYXdWYWx1ZSgpICogc3Bh
bkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CisgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhb
Y3VycmVudEVmZmVjdGl2ZUNvbHVtbl0gPSB3OworICAgICAgICAgICAgICAgICAgICBtX3dpZHRo
W2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5dICo9IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47
CiAgICAgICAgICAgICAgICAgICAgIHVzZWRXaWR0aCArPSBlZmZXaWR0aCAqIHNwYW5JbkN1cnJl
bnRFZmZlY3RpdmVDb2x1bW47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHNw
YW4gLT0gc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKQEAgLTE2NCwxMCArMTY1LDExIEBA
IGludCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShpbnQKICAgICAgICAgICAgICAg
ICBpbnQgdXNlZFNwYW4gPSAwOwogICAgICAgICAgICAgICAgIGludCBpID0gMDsKICAgICAgICAg
ICAgICAgICB3aGlsZSAodXNlZFNwYW4gPCBzcGFuICYmIGNDb2wgKyBpIDwgbkVmZkNvbHMpIHsK
LSAgICAgICAgICAgICAgICAgICAgaW50IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9mRWZmQ29sKGND
b2wgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgZVNwYW4gPSBtX3RhYmxlLT5zcGFu
T2ZFZmZDb2woY0NvbCArIGkpOwogICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHNldCBpZiBu
byBjb2wgZWxlbWVudCBoYXMgYWxyZWFkeSBzZXQgaXQuCiAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3dpZHRoW2NDb2wgKyBpXS5pc0F1dG8oKSAmJiB3LnR5cGUoKSAhPSBBdXRvKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wgKyBpXS5zZXRWYWx1ZSh3LnR5cGUoKSwg
dy5yYXdWYWx1ZSgpICogZVNwYW4gLyBzcGFuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
d2lkdGhbY0NvbCArIGldID0gdzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY0Nv
bCArIGldICo9IGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWRXaWR0
aCArPSBlZmZXaWR0aCAqIGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICB1c2VkU3BhbiArPSBlU3BhbjsKQEAgLTIzNCw3ICsyMzYsNyBAQCB2
b2lkIEZpeGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgaW50IGF1dG9TcGFuID0gMDsKICAg
ICBpbnQgdG90YWxGaXhlZFdpZHRoID0gMDsKICAgICBpbnQgdG90YWxQZXJjZW50V2lkdGggPSAw
OwotICAgIGludCB0b3RhbFJhd1BlcmNlbnQgPSAwOworICAgIGZsb2F0IHRvdGFsUmF3UGVyY2Vu
dCA9IDA7CiAKICAgICAvLyBDb21wdXRlIHJlcXVpcmVtZW50cyBhbmQgdHJ5IHRvIHNhdGlzZnkg
Zml4ZWQgYW5kIHBlcmNlbnQgd2lkdGhzLgogICAgIC8vIFBlcmNlbnRhZ2VzIGFyZSBvZiB0aGUg
dGFibGUncyB3aWR0aCwgc28gZm9yIGV4YW1wbGUKQEAgLTI0Nyw3ICsyNDksNyBAQCB2b2lkIEZp
eGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5p
c1BlcmNlbnQoKSkgewogICAgICAgICAgICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5jYWxj
VmFsdWUodGFibGVMb2dpY2FsV2lkdGgpOwogICAgICAgICAgICAgdG90YWxQZXJjZW50V2lkdGgg
Kz0gY2FsY1dpZHRoW2ldOwotICAgICAgICAgICAgdG90YWxSYXdQZXJjZW50ICs9IG1fd2lkdGhb
aV0ucmF3VmFsdWUoKTsKKyAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ld
LnBlcmNlbnQoKTsKICAgICAgICAgfSBlbHNlIGlmIChtX3dpZHRoW2ldLmlzQXV0bygpKSB7CiAg
ICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBhdXRvU3BhbiArPSBtX3RhYmxlLT5z
cGFuT2ZFZmZDb2woaSk7CkBAIC0yNzQsNyArMjc2LDcgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0
OjpsYXlvdXQoKQogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsKICAgICAg
ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0YWJsZUxv
Z2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQoKSAqICh0
YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhbaV07
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNpb24g
ODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0
aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdodC50
eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dpY2Fs
SGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dp
Y2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVp
Z2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246Omxh
eW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5p
c0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNlIGlm
IChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAgICB0
b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2Vu
dCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAgICAg
IC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwotICAg
ICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2VudFNj
YWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQs
IDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBdOwog
ICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAgICAg
ICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0
LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihkaCwg
KHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgxMDAg
KiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRv
QWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFtyXS5s
b2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAgICAg
ICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmluayB0
aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRsb29r
IFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0FkZCk7
CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAgICAg
ZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dyaWRb
cl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBl
cmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAgICAg
ICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lvbiA4
MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0Jv
cmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRoKCku
cmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJvKCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lkdGgo
KS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNaZXJv
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVmdC53
aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0aCgp
LmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRv
bVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21SaWdo
dC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAzLTA5
ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBhcmUg
aW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMtMDkg
IEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MDM4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDQpIHNpemUgOTEweDQKICAgICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDgpIHNpemUgOTEweDQKLSAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0K
KyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9y
PSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgOTAw
eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYpIHNpemUg
ODkweDQKQEAgLTQ5LDcgKzQ5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg0KSBzaXplIDg0MHg0CiAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg4KSBzaXplIDgzNXg0Ci0gICAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0Zd
CisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdjb2xv
cj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkyKSBzaXplIDgy
NXg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdj
b2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDk2KSBzaXpl
IDgxNXg0CkBAIC04NCw2MSArODQsNjEgQEAgbGF5ZXIgYXQgKDgsMTI2KSBzaXplIDEwMDB4MjAK
ICAgUmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICBSZW5kZXJU
YWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICAgIFJlbmRlclRh
YmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCi0gICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgwLDEpIHNpemUgMTF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBy
cz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDEpIHNpemUgMTJ4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTIsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxLDEpIHNpemUg
MTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCisgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMiwxKSBzaXplIDEzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDM1LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9
MyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NCwxKSBzaXplIDE1eDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoNDUsMSkgc2l6ZSAxNngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz00IHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDU5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9NSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2MSwxKSBz
aXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTUgcnM9MSBjcz0xXQogICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNjksMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEg
Y3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcxLDEpIHNpemUgMTd4MTgg
W2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4Niwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQorICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0j
MDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk2LDEpIHNpemUgMjB4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRl
clRhYmxlQ2VsbCB7VER9IGF0ICg5OCwxKSBzaXplIDIweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0g
W3I9MCBjPTggcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTE2LDEpIHNpemUgMTB4MTggW2JnY29s
b3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgxMTgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05
IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0
eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyNiwxKSBzaXplIDIxeDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDEyOCwxKSBzaXplIDIyeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDE0NywxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTExIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE1
MCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDE1NywxKSBzaXplIDIzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBj
PTEyIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE2MCwxKSBz
aXplIDI0eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEyIHJzPTEgY3M9MV0KICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDE4MCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEzIHJz
PTEgY3M9MV0KLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE5MCwxKSBzaXplIDI1
eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9MV0KKyAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4NCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDE5NCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDIxNSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9
MCBjPTE1IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxOSwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE1IHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDIyNSwxKSBzaXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyOSwxKSBzaXpl
IDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2IHJzPTEgY3M9MV0KICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDI1MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEg
Y3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI1NiwxKSBzaXplIDEweDE4
IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2
MiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0K
KyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2NiwxKSBzaXplIDMweDE4IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI5MiwxKSBz
aXplIDcwOHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMjk2LDEpIHNpemUgNzA0eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85432</attachid>
            <date>2011-03-10 20:32:20 -0800</date>
            <delta_ts>2011-03-11 09:25:33 -0800</delta_ts>
            <desc>test to see if the build bots can integrate my change</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>31720</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKwkJCisgICAgICAgIHRlc3Q6IGZhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXIuaHRtbAorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAg
ICAgICogcGFnZS9QcmludENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250
ZXh0OjpwYWdlUHJvcGVydHkpOgorICAgICAgICAqIHBsYXRmb3JtL0xlbmd0aC5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjpMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpv
cGVyYXRvcio9KToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6dmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6TGVuZ3RoOjpwZXJjZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6c2V0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpjYWxjVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6TGVuZ3RoOjpjYWxjTWluVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3Ro
Ojppc1VuZGVmaW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OmlzWmVybyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZW5ndGg6OmlzUG9zaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVu
Z3RoOjppc05lZ2F0aXZlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6QXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZl
TG9naWNhbFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6bGF5b3V0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheSk6CisgICAgICAgIChXZWJD
b3JlOjpGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9u
OjphZGRDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0
Um93cyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkJvcmRlckRhdGE6Omhhc0JvcmRlclJhZGl1cyk6CisKIDIwMTEtMDMtMDkgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMzMiw4ICs1MzMyLDggQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgcmFkaXVzSGVpZ2h0
ID0gTGVuZ3RoKHBhaXItPnNlY29uZCgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKG1heChpbnRNaW5G
b3JMZW5ndGgsIG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXItPnNlY29uZCgpLT5jb21wdXRlTGVu
Z3RoSW50KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvcikpKSwgRml4ZWQp
OwotICAgICAgICBpbnQgd2lkdGggPSByYWRpdXNXaWR0aC5yYXdWYWx1ZSgpOwotICAgICAgICBp
bnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnJhd1ZhbHVlKCk7CisgICAgICAgIGludCB3aWR0aCA9
IHJhZGl1c1dpZHRoLnZhbHVlKCk7CisgICAgICAgIGludCBoZWlnaHQgPSByYWRpdXNIZWlnaHQu
dmFsdWUoKTsKICAgICAgICAgaWYgKHdpZHRoIDwgMCB8fCBoZWlnaHQgPCAwKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBpZiAod2lkdGggPT0gMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUHJpbnRDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1ByaW50Q29udGV4dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QcmludENvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsMTYgKzI4MiwxNiBAQCBT
dHJpbmcgUHJpbnRDb250ZXh0OjpwYWdlUHJvcGVydHkoRnJhbWUqCiAgICAgaWYgKCFzdHJjbXAo
cHJvcGVydHlOYW1lLCAibWFyZ2luLWxlZnQiKSkgewogICAgICAgICBpZiAoc3R5bGUtPm1hcmdp
bkxlZnQoKS5pc0F1dG8oKSkKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoImF1dG8iKTsKLSAg
ICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5tYXJnaW5MZWZ0KCkucmF3VmFsdWUo
KSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnZh
bHVlKCkpOwogICAgIH0KICAgICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUsICJsaW5lLWhlaWdo
dCIpKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmxpbmVIZWlnaHQoKS5y
YXdWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVp
Z2h0KCkudmFsdWUoKSk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAiZm9udC1zaXpl
IikpCiAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+Zm9udERlc2NyaXB0aW9u
KCkuY29tcHV0ZWRQaXhlbFNpemUoKSk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
Zm9udC1mYW1pbHkiKSkKICAgICAgICAgcmV0dXJuIHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5m
YW1pbHkoKS5mYW1pbHkoKS5zdHJpbmcoKTsKICAgICBpZiAoIXN0cmNtcChwcm9wZXJ0eU5hbWUs
ICJzaXplIikpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLndpZHRoKCkucmF3VmFsdWUoKSksICcgJywgU3RyaW5nOjpudW1iZXIoc3R5
bGUtPnBhZ2VTaXplKCkuaGVpZ2h0KCkucmF3VmFsdWUoKSkpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS53aWR0aCgpLnZhbHVlKCkp
LCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5wYWdlU2l6ZSgpLmhlaWdodCgpLnZhbHVlKCkp
KTsKIAogICAgIHJldHVybiBtYWtlU3RyaW5nKCJwYWdlUHJvcGVydHkoKSB1bmltcGxlbWVudGVk
IGZvcjogIiwgcHJvcGVydHlOYW1lKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5o
CShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgIENvcHlyaWdodCAoQykgMjAxMSBS
aWsgQ2FiYW5pZXIgKGNhYmFuaWVyQGFkb2JlLmNvbSkKIAogICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MzAsNyArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgdW5kZWZpbmVk
TGVuZ3RoID0gLTE7Ci1jb25zdCBpbnQgcGVyY2VudFNjYWxlRmFjdG9yID0gMTI4OwogY29uc3Qg
aW50IGludE1heEZvckxlbmd0aCA9IDB4N2ZmZmZmZjsgLy8gbWF4IHZhbHVlIGZvciBhIDI4LWJp
dCBpbnQKIGNvbnN0IGludCBpbnRNaW5Gb3JMZW5ndGggPSAoLTB4N2ZmZmZmZiAtIDEpOyAvLyBt
aW4gdmFsdWUgZm9yIGEgMjgtYml0IGludAogCkBAIC01MiwzNCArNTIsMzUgQEAgcHVibGljOgog
ICAgIExlbmd0aChpbnQgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKICAgICAgICAg
OiBtX2ludFZhbHVlKHYpLCBtX3F1aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVCh0ICE9IFBlcmNlbnQpOwogICAgIH0KIAogICAgIExlbmd0
aChkb3VibGUgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKLSAgICAgICAgOiBtX3F1
aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkKLSAgICB7Ci0gICAgICAgIGlmICht
X3R5cGUgPT0gUGVyY2VudCkKLSAgICAgICAgICAgIG1faW50VmFsdWUgPSBzdGF0aWNfY2FzdDxp
bnQ+KHYqcGVyY2VudFNjYWxlRmFjdG9yKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBt
X2lzRmxvYXQgPSB0cnVlOyAgICAgICAgICAgIAotICAgICAgICAgICAgbV9mbG9hdFZhbHVlID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOwotICAgICAgIH0KKyAgICAgICAgOiBtX3F1aXJrKHEpLCBt
X3R5cGUodCksIG1faXNGbG9hdCh0cnVlKQorICAgIHsgICAgICAgICAgIAorICAgICAgICBtX2Zs
b2F0VmFsdWUgPSBzdGF0aWNfY2FzdDxmbG9hdD4odik7ICAgIAogICAgIH0KIAogICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBMZW5ndGgmIG8pIGNvbnN0IHsgcmV0dXJuIChnZXRGbG9hdFZhbHVl
KCkgPT0gby5nZXRGbG9hdFZhbHVlKCkpICYmIChtX3R5cGUgPT0gby5tX3R5cGUpICYmIChtX3F1
aXJrID09IG8ubV9xdWlyayk7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTGVuZ3RoJiBv
KSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgpICE9IG8uZ2V0RmxvYXRWYWx1ZSgpKSB8
fCAobV90eXBlICE9IG8ubV90eXBlKSB8fCAobV9xdWlyayAhPSBvLm1fcXVpcmspOyB9CiAKKyAg
ICBjb25zdCBMZW5ndGgmIG9wZXJhdG9yKj0oZG91YmxlIHYpCisgICAgeyAgICAgICAgCisgICAg
ICAgIGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICBtX2Zsb2F0VmFsdWUgKj0gdjsKKyAgICAg
ICAgZWxzZSAgICAgICAgCisgICAgICAgICAgICBtX2ludFZhbHVlICo9IHY7CisgICAgICAgIAor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIAogICAgIGludCB2YWx1ZSgpIGNvbnN0
IHsKLSAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBQZXJjZW50KTsKLSAgICAgICAgcmV0dXJuIHJh
d1ZhbHVlKCk7CisgICAgICAgIHJldHVybiBnZXRJbnRWYWx1ZSgpOwogICAgIH0KIAotICAgIGlu
dCByYXdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEludFZhbHVlKCk7IH0KLQogICAgIGRvdWJs
ZSBwZXJjZW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gUGVyY2Vu
dCk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHJhd1ZhbHVlKCkpIC8gcGVy
Y2VudFNjYWxlRmFjdG9yOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihnZXRG
bG9hdFZhbHVlKCkpOwogICAgIH0KIAogICAgIExlbmd0aFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PExlbmd0aFR5cGU+KG1fdHlwZSk7IH0KQEAgLTg3LDYgKzg4LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1ZShMZW5ndGhUeXBlIHQsIGludCB2YWx1ZSkKICAg
ICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7CiAgICAgICAgIG1fdHlwZSA9
IHQ7CiAgICAgICAgIG1faW50VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgbV9pc0Zsb2F0ID0gZmFs
c2U7CkBAIC05NCw3ICs5Niw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUoaW50IHZh
bHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCF2YWx1ZSB8fCB0eXBlKCkgIT0gUGVyY2VudCk7
CiAgICAgICAgIHNldFZhbHVlKEZpeGVkLCB2YWx1ZSk7CiAgICAgfQogCkBAIC0xMTksNyArMTIw
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAg
IGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50U2Nh
bGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1heFZh
bHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgogICAgICAg
ICAgICAgICAgIHJldHVybiBtYXhWYWx1ZTsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMzUs
NyArMTM2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAg
ICAgICAgIGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJj
ZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgog
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTE1Niwx
MCArMTU3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgaXNVbmRl
ZmluZWQoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsgfQot
ICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgeyByZXR1cm4gIWdldEludFZhbHVlKCk7IH0KLSAgICBi
b29sIGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID4gMDsgfQotICAgIGJv
b2wgaXNOZWdhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPCAwOyB9CisgICAgYm9v
bCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCkgPT0gdW5kZWZpbmVkTGVuZ3Ro
OyB9CisgICAgYm9vbCBpc1plcm8oKSBjb25zdCAKKyAgICB7IAorICAgICAgICBpZiAobV9pc0Zs
b2F0KQorICAgICAgICAgICAgcmV0dXJuICFtX2Zsb2F0VmFsdWU7IAorICAgICAgICAKKyAgICAg
ICAgcmV0dXJuICFtX2ludFZhbHVlOworICAgIH0KKyAgICBib29sIGlzUG9zaXRpdmUoKSBjb25z
dCB7IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPiAwOyB9CisgICAgYm9vbCBpc05lZ2F0aXZlKCkg
Y29uc3QgeyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpIDwgMDsgfQogCiAgICAgYm9vbCBpc0F1dG8o
KSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXV0bzsgfQogICAgIGJvb2wgaXNSZWxhdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBSZWxhdGl2ZTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbihp
bnQgZQogCiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBjZWxsTG9naWNhbFdpZHRoID0gY2Vs
bC0+c3R5bGVPckNvbExvZ2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogV2hhdCBpcyB0aGlzIGFyYml0cmFyeSB2YWx1ZT8KLSAgICAgICAgICAgICAgICAgICAgaWYg
KGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSA+IDMyNzYwKQorICAgICAgICAgICAgICAgICAg
ICBpZiAoY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gMzI3NjApCiAgICAgICAgICAgICAgICAg
ICAgICAgICBjZWxsTG9naWNhbFdpZHRoLnNldFZhbHVlKDMyNzYwKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNOZWdhdGl2ZSgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgwKTsKQEAgLTEwNSwxMyArMTA1LDEz
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1u
TGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29s
dW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnZh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVlKCkpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
IGNhc2UgUmVsYXRpdmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTmVlZCB0
byB1bmRlcnN0YW5kIHRoaXMgY2FzZSBhbmQgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBjb21w
YXJlIHZhbHVlcwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYXJlIG5vdCBuZWNl
c3NhcmlseSBvZiB0aGUgc2FtZSB0eXBlLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNl
bGxMb2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgp
ICYmIGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgu
cmF3VmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0
aC5pc0F1dG8oKSB8fCAoY2VsbExvZ2ljYWxXaWR0aC5pc1JlbGF0aXZlKCkgJiYgY2VsbExvZ2lj
YWxXaWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2Vs
bExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjMyLDE2ICsyMzIsMTYgQEAgdm9pZCBBdXRvVGFibGVM
YXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogCiAgICAgLy8gV2Ugc3Vic3RpdHV0ZSAwIHBlcmNl
bnQgYnkgKGVwc2lsb24gLyBwZXJjZW50U2NhbGVGYWN0b3IpIHBlcmNlbnQgaW4gdHdvIHBsYWNl
cyBiZWxvdyB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgogICAgIC8vIEZJWE1FOiBIYW5kbGUg
dGhlIDAlIGNhc2VzIHByb3Blcmx5LgotICAgIGNvbnN0IGludCBlcHNpbG9uID0gMTsKKyAgICBj
b25zdCBmbG9hdCBlcHNpbG9uID0gMSAvIDEyOC4wOwogCi0gICAgaW50IHJlbWFpbmluZ1BlcmNl
bnQgPSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3I7CisgICAgZmxvYXQgcmVtYWluaW5nUGVyY2Vu
dCA9IDEwMDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGF5b3V0U3RydWN0LnNpemUo
KTsgKytpKSB7CiAgICAgICAgIG1pbldpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2
ZU1pbkxvZ2ljYWxXaWR0aDsKICAgICAgICAgbWF4V2lkdGggKz0gbV9sYXlvdXRTdHJ1Y3RbaV0u
ZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAgICBpZiAoc2NhbGVDb2x1bW5zKSB7CiAg
ICAgICAgICAgICBpZiAobV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlz
UGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBtaW4obV9sYXlvdXRT
dHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCksIHJlbWFpbmluZ1BlcmNl
bnQpOwotICAgICAgICAgICAgICAgIGZsb2F0IGxvZ2ljYWxXaWR0aCA9IHN0YXRpY19jYXN0PGZs
b2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpICogMTAwICog
cGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHBlcmNlbnQsIGVwc2lsb24pOworICAgICAgICAgICAg
ICAgIGZsb2F0IHBlcmNlbnQgPSBtaW4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0
W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCkpLCByZW1haW5pbmdQZXJjZW50KTsK
KyAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4o
bV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAvIG1heChw
ZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgICAgICAgICBtYXhQZXJjZW50ID0gbWF4KGxvZ2lj
YWxXaWR0aCwgIG1heFBlcmNlbnQpOwogICAgICAgICAgICAgICAgIHJlbWFpbmluZ1BlcmNlbnQg
LT0gcGVyY2VudDsKICAgICAgICAgICAgIH0gZWxzZQpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQg
QXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KICAgICB9CiAKICAgICBpZiAoc2Nh
bGVDb2x1bW5zKSB7Ci0gICAgICAgIG1heE5vblBlcmNlbnQgPSBtYXhOb25QZXJjZW50ICogMTAw
ICogcGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHJlbWFpbmluZ1BlcmNlbnQsIGVwc2lsb24pOwor
ICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAvIG1heChyZW1haW5p
bmdQZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0
YXRpY19jYXN0PGludD4obWluKG1heE5vblBlcmNlbnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAg
ICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3RhdGljX2Nhc3Q8aW50PihtaW4obWF4UGVy
Y2VudCwgSU5UX01BWCAvIDIuMGYpKSk7CiAgICAgfQpAQCAtMjY2LDYgKzI2NiwxMCBAQCB2b2lk
IEF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgICAgIG1pbldpZHRoID0g
bWF4KG1pbldpZHRoLCB0YWJsZUxvZ2ljYWxXaWR0aC52YWx1ZSgpKTsKICAgICAgICAgbWF4V2lk
dGggPSBtaW5XaWR0aDsKICAgICB9CisgICAgCisgICAgLy8gaWYgdGhlcmUgd2FzIG5vIHJlbWFp
bmluZyBwZXJjZW50LCBtYXhXaWR0aCBpcyBpbnZhbGlkLgorICAgIGlmICghcmVtYWluaW5nUGVy
Y2VudCAmJiBtYXhOb25QZXJjZW50KQorICAgICAgICBtYXhXaWR0aCA9IGludE1heEZvckxlbmd0
aDsgICAgICAgIAogfQogCiAvKgpAQCAtMzAwLDcgKzMwNCw3IEBAIGludCBBdXRvVGFibGVMYXlv
dXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgc2l6ZV90IGxhc3RDb2wgPSBlZmZDb2w7
CiAgICAgICAgIGludCBjZWxsTWluTG9naWNhbFdpZHRoID0gY2VsbC0+bWluUHJlZmVycmVkTG9n
aWNhbFdpZHRoKCkgKyBzcGFjaW5nSW5Sb3dEaXJlY3Rpb247CiAgICAgICAgIGZsb2F0IGNlbGxN
YXhMb2dpY2FsV2lkdGggPSBjZWxsLT5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSArIHNwYWNp
bmdJblJvd0RpcmVjdGlvbjsKLSAgICAgICAgaW50IHRvdGFsUGVyY2VudCA9IDA7CisgICAgICAg
IGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgICAgIGludCBzcGFuTWluTG9naWNhbFdpZHRo
ID0gMDsKICAgICAgICAgZmxvYXQgc3Bhbk1heExvZ2ljYWxXaWR0aCA9IDA7CiAgICAgICAgIGJv
b2wgYWxsQ29sc0FyZVBlcmNlbnQgPSB0cnVlOwpAQCAtMzEyLDcgKzMxNiw3IEBAIGludCBBdXRv
VGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgIExheW91dCYgY29s
dW1uTGF5b3V0ID0gbV9sYXlvdXRTdHJ1Y3RbbGFzdENvbF07CiAgICAgICAgICAgICBzd2l0Y2gg
KGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIFBl
cmNlbnQ6Ci0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5sb2dp
Y2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29s
dW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAgICAgYWxsQ29s
c0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEZpeGVkOgpAQCAtMzM5LDcgKzM0Myw3IEBAIGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNF
ZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmVmZmVjdGl2
ZUxvZ2ljYWxXaWR0aCA9IExlbmd0aCgpOwogICAgICAgICAgICAgICAgICAgICBhbGxDb2xzQXJl
UGVyY2VudCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5b3V0LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5y
YXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5
b3V0LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAgICAgYWxs
Q29sc0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIWNv
bHVtbkxheW91dC5lbXB0eUNlbGxzT25seSkKQEAgLTM1NCwxNCArMzU4LDE0IEBAIGludCBBdXRv
VGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKIAogICAgICAgICAvLyBhZGp1c3QgdGFi
bGUgbWF4IHdpZHRoIGlmIG5lZWRlZAogICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+IGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSB8fCBhbGxDb2xzQXJlUGVyY2VudCkgeworICAgICAgICAgICAgaWYgKHRv
dGFsUGVyY2VudCA+IGNlbGxMb2dpY2FsV2lkdGgucGVyY2VudCgpIHx8IGFsbENvbHNBcmVQZXJj
ZW50KSB7CiAgICAgICAgICAgICAgICAgLy8gY2FuJ3Qgc2F0aWZ5IHRoaXMgY29uZGl0aW9uLCB0
cmVhdCBhcyB2YXJpYWJsZQogICAgICAgICAgICAgICAgIGNlbGxMb2dpY2FsV2lkdGggPSBMZW5n
dGgoKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbWF4TG9naWNhbFdp
ZHRoID0gbWF4KG1heExvZ2ljYWxXaWR0aCwgbWF4KHNwYW5NYXhMb2dpY2FsV2lkdGgsIGNlbGxN
YXhMb2dpY2FsV2lkdGgpICogMTAwICogcGVyY2VudFNjYWxlRmFjdG9yIC8gY2VsbExvZ2ljYWxX
aWR0aC5yYXdWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBtYXgo
bWF4TG9naWNhbFdpZHRoLCBzdGF0aWNfY2FzdDxmbG9hdD4obWF4KHNwYW5NYXhMb2dpY2FsV2lk
dGgsIGNlbGxNYXhMb2dpY2FsV2lkdGgpICogMTAwICAvIGNlbGxMb2dpY2FsV2lkdGgucGVyY2Vu
dCgpKSk7CiAKICAgICAgICAgICAgICAgICAvLyBhbGwgbm9uIHBlcmNlbnQgY29sdW1ucyBpbiB0
aGUgc3BhbiBnZXQgcGVyY2VudCB2YWx1ZXMgdG8gc3VtIHVwIGNvcnJlY3RseS4KLSAgICAgICAg
ICAgICAgICBpbnQgcGVyY2VudE1pc3NpbmcgPSBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkg
LSB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudE1pc3NpbmcgPSBj
ZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSAtIHRvdGFsUGVyY2VudDsKICAgICAgICAgICAgICAg
ICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBv
cyA9IGVmZkNvbDsgcG9zIDwgbGFzdENvbDsgKytwb3MpIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQo
KSkKQEAgLTM3MCw3ICszNzQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZl
TG9naWNhCiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBvcyA9IGVmZkNvbDsgcG9z
IDwgbGFzdENvbCAmJiB0b3RhbFdpZHRoID4gMDsgKytwb3MpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNl
bnQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KHBlcmNlbnRNaXNzaW5nICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0
W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAvIHRvdGFsV2lkdGgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudCA9IHBlcmNlbnRNaXNzaW5nICogc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAv
IHRvdGFsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFdpZHRoIC09IG1fbGF5
b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAg
ICAgICAgICAgcGVyY2VudE1pc3NpbmcgLT0gcGVyY2VudDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChwZXJjZW50ID4gMCkKQEAgLTQ5MSw3ICs0OTUsNyBAQCB2b2lkIEF1dG9UYWJsZUxh
eW91dDo6bGF5b3V0KCkKICAgICBpbnQgbnVtRml4ZWQgPSAwOwogICAgIGZsb2F0IHRvdGFsQXV0
byA9IDA7CiAgICAgZmxvYXQgdG90YWxGaXhlZCA9IDA7Ci0gICAgaW50IHRvdGFsUGVyY2VudCA9
IDA7CisgICAgZmxvYXQgdG90YWxQZXJjZW50ID0gMDsKICAgICBpbnQgYWxsb2NBdXRvID0gMDsK
ICAgICB1bnNpZ25lZCBudW1BdXRvRW1wdHlDZWxsc09ubHkgPSAwOwogCkBAIC01MDQsNyArNTA4
LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIHN3aXRjaCAobG9n
aWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICBo
YXZlUGVyY2VudCA9IHRydWU7Ci0gICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbG9naWNhbFdp
ZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbG9naWNhbFdpZHRo
LnBlcmNlbnQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJlbGF0aXZlOgog
ICAgICAgICAgICAgdG90YWxSZWxhdGl2ZSArPSBsb2dpY2FsV2lkdGgudmFsdWUoKTsKQEAgLTUz
OCw5ICs1NDIsOSBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICAgICAgICAg
ICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCA9IGNlbGxMb2dpY2Fs
V2lkdGg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRvdGFsUGVyY2Vu
dCA+IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgICAgICBpZiAodG90YWxQZXJjZW50
ID4gMTAwKSB7CiAgICAgICAgICAgICAvLyByZW1vdmUgb3ZlcmFsbG9jYXRlZCBzcGFjZSBmcm9t
IHRoZSBsYXN0IGNvbHVtbnMKLSAgICAgICAgICAgIGludCBleGNlc3MgPSB0YWJsZUxvZ2ljYWxX
aWR0aCAqICh0b3RhbFBlcmNlbnQgLSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIC8gKDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dp
Y2FsV2lkdGggKiAodG90YWxQZXJjZW50IC0gMTAwKSAvIDEwMDsKICAgICAgICAgICAgIGZvciAo
aW50IGkgPSBuRWZmQ29scyAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICAgICAgaWYg
KG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewog
ICAgICAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0
W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoOwpAQCAtNjA3LDEzICs2MTEsMTMgQEAgdm9pZCBBdXRv
VGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgfQogCiAgICAgLy8gc3ByZWFkIG92ZXIgcGVyY2Vu
dCBjb2x1bXMKLSAgICBpZiAoYXZhaWxhYmxlID4gMCAmJiBtX2hhc1BlcmNlbnQgJiYgdG90YWxQ
ZXJjZW50IDwgMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSB7CisgICAgaWYgKGF2YWlsYWJsZSA+
IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVyY2VudCA8IDEwMCkgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG5FZmZDb2xzOyArK2kpIHsKICAgICAgICAgICAgIExlbmd0aCYg
bG9naWNhbFdpZHRoID0gbV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoOwog
ICAgICAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAg
ICAgIGludCBjZWxsTG9naWNhbFdpZHRoID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgLyB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lk
dGggPSBhdmFpbGFibGUgKiBsb2dpY2FsV2lkdGgucGVyY2VudCgpIC8gdG90YWxQZXJjZW50Owog
ICAgICAgICAgICAgICAgIGF2YWlsYWJsZSAtPSBjZWxsTG9naWNhbFdpZHRoOwotICAgICAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCAtPSBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnBlcmNlbnQoKTsKICAgICAgICAg
ICAgICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCArPSBjZWxsTG9n
aWNhbFdpZHRoOwogICAgICAgICAgICAgICAgIGlmICghYXZhaWxhYmxlIHx8ICF0b3RhbFBlcmNl
bnQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExOCw3ICsxMTgsOCBAQCBpbnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXko
aW50CiAgICAgICAgICAgICAgICAgICAgIHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4gPSBt
X3RhYmxlLT5zcGFuT2ZFZmZDb2woY3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGlmICgody5pc0ZpeGVkKCkgfHwgdy5pc1BlcmNlbnQo
KSkgJiYgdy5pc1Bvc2l0aXZlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjdXJy
ZW50RWZmZWN0aXZlQ29sdW1uXS5zZXRWYWx1ZSh3LnR5cGUoKSwgdy5yYXdWYWx1ZSgpICogc3Bh
bkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CisgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhb
Y3VycmVudEVmZmVjdGl2ZUNvbHVtbl0gPSB3OworICAgICAgICAgICAgICAgICAgICBtX3dpZHRo
W2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5dICo9IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47
CiAgICAgICAgICAgICAgICAgICAgIHVzZWRXaWR0aCArPSBlZmZXaWR0aCAqIHNwYW5JbkN1cnJl
bnRFZmZlY3RpdmVDb2x1bW47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHNw
YW4gLT0gc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKQEAgLTE2NCwxMCArMTY1LDExIEBA
IGludCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShpbnQKICAgICAgICAgICAgICAg
ICBpbnQgdXNlZFNwYW4gPSAwOwogICAgICAgICAgICAgICAgIGludCBpID0gMDsKICAgICAgICAg
ICAgICAgICB3aGlsZSAodXNlZFNwYW4gPCBzcGFuICYmIGNDb2wgKyBpIDwgbkVmZkNvbHMpIHsK
LSAgICAgICAgICAgICAgICAgICAgaW50IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9mRWZmQ29sKGND
b2wgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgZVNwYW4gPSBtX3RhYmxlLT5zcGFu
T2ZFZmZDb2woY0NvbCArIGkpOwogICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHNldCBpZiBu
byBjb2wgZWxlbWVudCBoYXMgYWxyZWFkeSBzZXQgaXQuCiAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3dpZHRoW2NDb2wgKyBpXS5pc0F1dG8oKSAmJiB3LnR5cGUoKSAhPSBBdXRvKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wgKyBpXS5zZXRWYWx1ZSh3LnR5cGUoKSwg
dy5yYXdWYWx1ZSgpICogZVNwYW4gLyBzcGFuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
d2lkdGhbY0NvbCArIGldID0gdzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY0Nv
bCArIGldICo9IGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWRXaWR0
aCArPSBlZmZXaWR0aCAqIGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICB1c2VkU3BhbiArPSBlU3BhbjsKQEAgLTIzNCw3ICsyMzYsNyBAQCB2
b2lkIEZpeGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgaW50IGF1dG9TcGFuID0gMDsKICAg
ICBpbnQgdG90YWxGaXhlZFdpZHRoID0gMDsKICAgICBpbnQgdG90YWxQZXJjZW50V2lkdGggPSAw
OwotICAgIGludCB0b3RhbFJhd1BlcmNlbnQgPSAwOworICAgIGZsb2F0IHRvdGFsUmF3UGVyY2Vu
dCA9IDA7CiAKICAgICAvLyBDb21wdXRlIHJlcXVpcmVtZW50cyBhbmQgdHJ5IHRvIHNhdGlzZnkg
Zml4ZWQgYW5kIHBlcmNlbnQgd2lkdGhzLgogICAgIC8vIFBlcmNlbnRhZ2VzIGFyZSBvZiB0aGUg
dGFibGUncyB3aWR0aCwgc28gZm9yIGV4YW1wbGUKQEAgLTI0Nyw3ICsyNDksNyBAQCB2b2lkIEZp
eGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5p
c1BlcmNlbnQoKSkgewogICAgICAgICAgICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5jYWxj
VmFsdWUodGFibGVMb2dpY2FsV2lkdGgpOwogICAgICAgICAgICAgdG90YWxQZXJjZW50V2lkdGgg
Kz0gY2FsY1dpZHRoW2ldOwotICAgICAgICAgICAgdG90YWxSYXdQZXJjZW50ICs9IG1fd2lkdGhb
aV0ucmF3VmFsdWUoKTsKKyAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ld
LnBlcmNlbnQoKTsKICAgICAgICAgfSBlbHNlIGlmIChtX3dpZHRoW2ldLmlzQXV0bygpKSB7CiAg
ICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBhdXRvU3BhbiArPSBtX3RhYmxlLT5z
cGFuT2ZFZmZDb2woaSk7CkBAIC0yNzQsNyArMjc2LDcgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0
OjpsYXlvdXQoKQogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsKICAgICAg
ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0YWJsZUxv
Z2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQoKSAqICh0
YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhbaV07
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNpb24g
ODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0
aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdodC50
eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dpY2Fs
SGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dp
Y2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVp
Z2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246Omxh
eW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5p
c0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNlIGlm
IChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAgICB0
b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2Vu
dCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAgICAg
IC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwotICAg
ICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2VudFNj
YWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQs
IDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBdOwog
ICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAgICAg
ICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0
LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihkaCwg
KHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgxMDAg
KiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRv
QWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFtyXS5s
b2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAgICAg
ICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmluayB0
aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRsb29r
IFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0FkZCk7
CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAgICAg
ZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dyaWRb
cl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBl
cmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAgICAg
ICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lvbiA4
MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0Jv
cmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRoKCku
cmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJvKCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lkdGgo
KS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNaZXJv
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVmdC53
aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0aCgp
LmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRv
bVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21SaWdo
dC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAzLTA5
ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBhcmUg
aW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMtMDkg
IEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MDM4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDQpIHNpemUgOTEweDQKICAgICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDgpIHNpemUgOTEweDQKLSAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0K
KyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9y
PSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgOTAw
eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYpIHNpemUg
ODkweDQKQEAgLTQ5LDcgKzQ5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg0KSBzaXplIDg0MHg0CiAgICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg4KSBzaXplIDgzNXg0Ci0gICAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0Zd
CisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdjb2xv
cj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkyKSBzaXplIDgy
NXg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdj
b2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDk2KSBzaXpl
IDgxNXg0CkBAIC04NCw2MSArODQsNjEgQEAgbGF5ZXIgYXQgKDgsMTI2KSBzaXplIDEwMDB4MjAK
ICAgUmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICBSZW5kZXJU
YWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICAgIFJlbmRlclRh
YmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCi0gICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgwLDEpIHNpemUgMTF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBy
cz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDEpIHNpemUgMTJ4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTIsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxLDEpIHNpemUg
MTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCisgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMiwxKSBzaXplIDEzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDM1LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9
MyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NCwxKSBzaXplIDE1eDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoNDUsMSkgc2l6ZSAxNngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz00IHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDU5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9NSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2MSwxKSBz
aXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTUgcnM9MSBjcz0xXQogICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNjksMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEg
Y3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcxLDEpIHNpemUgMTd4MTgg
W2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4Niwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQorICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0j
MDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk2LDEpIHNpemUgMjB4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRl
clRhYmxlQ2VsbCB7VER9IGF0ICg5OCwxKSBzaXplIDIweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0g
W3I9MCBjPTggcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTE2LDEpIHNpemUgMTB4MTggW2JnY29s
b3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgxMTgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05
IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0
eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyNiwxKSBzaXplIDIxeDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDEyOCwxKSBzaXplIDIyeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDE0NywxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTExIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE1
MCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDE1NywxKSBzaXplIDIzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBj
PTEyIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE2MCwxKSBz
aXplIDI0eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEyIHJzPTEgY3M9MV0KICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDE4MCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEzIHJz
PTEgY3M9MV0KLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE5MCwxKSBzaXplIDI1
eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9MV0KKyAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4NCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDE5NCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDIxNSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9
MCBjPTE1IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxOSwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE1IHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDIyNSwxKSBzaXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyOSwxKSBzaXpl
IDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2IHJzPTEgY3M9MV0KICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDI1MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEg
Y3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI1NiwxKSBzaXplIDEweDE4
IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2
MiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0K
KyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2NiwxKSBzaXplIDMweDE4IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI5MiwxKSBz
aXplIDcwOHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMjk2LDEpIHNpemUgNzA0eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85482</attachid>
            <date>2011-03-11 09:25:33 -0800</date>
            <delta_ts>2011-03-11 14:18:40 -0800</delta_ts>
            <desc>First pass to get the results of the other platforms</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>31718</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlr
IENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMw
LDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExl
bmd0aCA9IC0xOwotY29uc3QgaW50IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGlu
dCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQg
aW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWlu
IHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIApAQCAtNTIsMzQgKzUyLDM1IEBAIHB1YmxpYzoKICAg
ICBMZW5ndGgoaW50IHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDog
bV9pbnRWYWx1ZSh2KSwgbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAg
ICAgewotICAgICAgICBBU1NFUlQodCAhPSBQZXJjZW50KTsKICAgICB9CiAKICAgICBMZW5ndGgo
ZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0gICAgICAgIDogbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50
Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9p
c0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDogbV9xdWlyayhxKSwgbV90
eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9CiAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgp
ID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90eXBlKSAmJiAobV9xdWly
ayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aCYgbykg
Y29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZsb2F0VmFsdWUoKSkgfHwg
KG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1aXJrKTsgfQogCisgICAg
Y29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGRvdWJsZSB2KQorICAgIHsgICAgICAgIAorICAgICAg
ICBpZiAobV9pc0Zsb2F0KQorICAgICAgICAgICAgbV9mbG9hdFZhbHVlICo9IHY7CisgICAgICAg
IGVsc2UgICAgICAgIAorICAgICAgICAgICAgbV9pbnRWYWx1ZSAqPSB2OworICAgICAgICAKKyAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICAKICAgICBpbnQgdmFsdWUoKSBjb25zdCB7
Ci0gICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7Ci0gICAgICAgIHJldHVybiByYXdW
YWx1ZSgpOworICAgICAgICByZXR1cm4gZ2V0SW50VmFsdWUoKTsKICAgICB9CiAKLSAgICBpbnQg
cmF3VmFsdWUoKSBjb25zdCB7IHJldHVybiBnZXRJbnRWYWx1ZSgpOyB9Ci0KICAgICBkb3VibGUg
cGVyY2VudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQodHlwZSgpID09IFBlcmNlbnQp
OwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyYXdWYWx1ZSgpKSAvIHBlcmNl
bnRTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oZ2V0Rmxv
YXRWYWx1ZSgpKTsKICAgICB9CiAKICAgICBMZW5ndGhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxMZW5ndGhUeXBlPihtX3R5cGUpOyB9CkBAIC04Nyw2ICs4OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUoTGVuZ3RoVHlwZSB0LCBpbnQgdmFsdWUpCiAgICAg
eworICAgICAgICBBU1NFUlQodHlwZSgpICE9IFBlcmNlbnQpOwogICAgICAgICBtX3R5cGUgPSB0
OwogICAgICAgICBtX2ludFZhbHVlID0gdmFsdWU7CiAgICAgICAgIG1faXNGbG9hdCA9IGZhbHNl
OwpAQCAtOTQsNyArOTYsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCghdmFsdWUgfHwgdHlwZSgpICE9IFBlcmNlbnQpOwog
ICAgICAgICBzZXRWYWx1ZShGaXhlZCwgdmFsdWUpOwogICAgIH0KIApAQCAtMTE5LDcgKzEyMCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgICAgICBp
ZiAocm91bmRQZXJjZW50YWdlcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4ocm91bmQobWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxl
RmFjdG9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihtYXhWYWx1
ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAg
ICAgICAgICByZXR1cm4gbWF4VmFsdWU7CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtMTM1LDcg
KzEzNiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAg
ICAgICBpZiAocm91bmRQZXJjZW50YWdlcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4ocm91bmQobWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAg
ICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2Vu
dFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Piht
YXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAg
ICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNTYsMTAg
KzE1NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBib29sIGlzVW5kZWZp
bmVkKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA9PSB1bmRlZmluZWRMZW5ndGg7IH0KLSAg
ICBib29sIGlzWmVybygpIGNvbnN0IHsgcmV0dXJuICFnZXRJbnRWYWx1ZSgpOyB9Ci0gICAgYm9v
bCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA+IDA7IH0KLSAgICBib29s
IGlzTmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpIDwgMDsgfQorICAgIGJvb2wg
aXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsg
fQorICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgCisgICAgeyAKKyAgICAgICAgaWYgKG1faXNGbG9h
dCkKKyAgICAgICAgICAgIHJldHVybiAhbV9mbG9hdFZhbHVlOyAKKyAgICAgICAgCisgICAgICAg
IHJldHVybiAhbV9pbnRWYWx1ZTsKKyAgICB9CisgICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3Qg
eyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpID4gMDsgfQorICAgIGJvb2wgaXNOZWdhdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIGdldEZsb2F0VmFsdWUoKSA8IDA7IH0KIAogICAgIGJvb2wgaXNBdXRvKCkg
Y29uc3QgeyByZXR1cm4gdHlwZSgpID09IEF1dG87IH0KICAgICBib29sIGlzUmVsYXRpdmUoKSBj
b25zdCB7IHJldHVybiB0eXBlKCkgPT0gUmVsYXRpdmU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50
IGUKIAogICAgICAgICAgICAgICAgICAgICBMZW5ndGggY2VsbExvZ2ljYWxXaWR0aCA9IGNlbGwt
PnN0eWxlT3JDb2xMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IFdoYXQgaXMgdGhpcyBhcmJpdHJhcnkgdmFsdWU/Ci0gICAgICAgICAgICAgICAgICAgIGlmIChj
ZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkgPiAzMjc2MCkKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IDMyNzYwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgzMjc2MCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzTmVnYXRpdmUoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNlbGxMb2dpY2FsV2lkdGguc2V0VmFsdWUoMCk7CkBAIC0xMDUsMTMgKzEwNSwxMyBA
QCB2b2lkIEF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKGludCBlCiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAg
ICAgICAgICAgICAgICAgICAgICAgbV9oYXNQZXJjZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxh
eW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC52YWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0
aDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBj
YXNlIFJlbGF0aXZlOgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8g
dW5kZXJzdGFuZCB0aGlzIGNhc2UgYW5kIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFy
ZSB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGFyZSBub3QgbmVjZXNz
YXJpbHkgb2YgdGhlIHNhbWUgdHlwZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxs
TG9naWNhbFdpZHRoLmlzQXV0bygpIHx8IChjZWxsTG9naWNhbFdpZHRoLmlzUmVsYXRpdmUoKSAm
JiBjZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJh
d1ZhbHVlKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgu
aXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpICYmIGNlbGxMb2dpY2Fs
V2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudmFsdWUoKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aCA9IGNlbGxM
b2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKQEAgLTIzMiwxNiArMjMyLDE2IEBAIHZvaWQgQXV0b1RhYmxlTGF5
b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KIAogICAgIC8vIFdlIHN1YnN0aXR1dGUgMCBwZXJjZW50
IGJ5IChlcHNpbG9uIC8gcGVyY2VudFNjYWxlRmFjdG9yKSBwZXJjZW50IGluIHR3byBwbGFjZXMg
YmVsb3cgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyby4KICAgICAvLyBGSVhNRTogSGFuZGxlIHRo
ZSAwJSBjYXNlcyBwcm9wZXJseS4KLSAgICBjb25zdCBpbnQgZXBzaWxvbiA9IDE7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDEgLyAxMjguMDsKIAotICAgIGludCByZW1haW5pbmdQZXJjZW50
ID0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yOworICAgIGZsb2F0IHJlbWFpbmluZ1BlcmNlbnQg
PSAxMDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheW91dFN0cnVjdC5zaXplKCk7
ICsraSkgewogICAgICAgICBtaW5XaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVN
aW5Mb2dpY2FsV2lkdGg7CiAgICAgICAgIG1heFdpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVm
ZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgaWYgKHNjYWxlQ29sdW1ucykgewogICAg
ICAgICAgICAgaWYgKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gbWluKG1fbGF5b3V0U3Ry
dWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpLCByZW1haW5pbmdQZXJjZW50
KTsKLSAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9h
dD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBl
cmNlbnRTY2FsZUZhY3RvciAvIG1heChwZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAgICAgICAg
ICBmbG9hdCBwZXJjZW50ID0gbWluKHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtp
XS5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpKSwgcmVtYWluaW5nUGVyY2VudCk7Cisg
ICAgICAgICAgICAgICAgZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1f
bGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgLyBtYXgocGVy
Y2VudCwgZXBzaWxvbik7CiAgICAgICAgICAgICAgICAgbWF4UGVyY2VudCA9IG1heChsb2dpY2Fs
V2lkdGgsICBtYXhQZXJjZW50KTsKICAgICAgICAgICAgICAgICByZW1haW5pbmdQZXJjZW50IC09
IHBlcmNlbnQ7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEF1
dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgfQogCiAgICAgaWYgKHNjYWxl
Q29sdW1ucykgewotICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3RvciAvIG1heChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9uKTsKKyAg
ICAgICAgbWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgLyBtYXgocmVtYWluaW5n
UGVyY2VudCwgZXBzaWxvbik7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBzdGF0
aWNfY2FzdDxpbnQ+KG1pbihtYXhOb25QZXJjZW50LCBJTlRfTUFYIC8gMi4wZikpKTsKICAgICAg
ICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1heFBlcmNl
bnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAgIH0KQEAgLTI2Niw2ICsyNjYsMTAgQEAgdm9pZCBB
dXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogICAgICAgICBtaW5XaWR0aCA9IG1h
eChtaW5XaWR0aCwgdGFibGVMb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIG1heFdpZHRo
ID0gbWluV2lkdGg7CiAgICAgfQorICAgIAorICAgIC8vIGlmIHRoZXJlIHdhcyBubyByZW1haW5p
bmcgcGVyY2VudCwgbWF4V2lkdGggaXMgaW52YWxpZC4KKyAgICBpZiAoIXJlbWFpbmluZ1BlcmNl
bnQgJiYgbWF4Tm9uUGVyY2VudCkKKyAgICAgICAgbWF4V2lkdGggPSBpbnRNYXhGb3JMZW5ndGg7
ICAgICAgICAKIH0KIAogLyoKQEAgLTMwMCw3ICszMDQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0
OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgIHNpemVfdCBsYXN0Q29sID0gZWZmQ29sOwog
ICAgICAgICBpbnQgY2VsbE1pbkxvZ2ljYWxXaWR0aCA9IGNlbGwtPm1pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwogICAgICAgICBmbG9hdCBjZWxsTWF4
TG9naWNhbFdpZHRoID0gY2VsbC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBzcGFjaW5n
SW5Sb3dEaXJlY3Rpb247Ci0gICAgICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAgICAgICBm
bG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogICAgICAgICBpbnQgc3Bhbk1pbkxvZ2ljYWxXaWR0aCA9
IDA7CiAgICAgICAgIGZsb2F0IHNwYW5NYXhMb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBib29s
IGFsbENvbHNBcmVQZXJjZW50ID0gdHJ1ZTsKQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgICAgICBMYXlvdXQmIGNvbHVt
bkxheW91dCA9IG1fbGF5b3V0U3RydWN0W2xhc3RDb2xdOwogICAgICAgICAgICAgc3dpdGNoIChj
b2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBQZXJj
ZW50OgotICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNh
bFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENvbHNB
cmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTMzOSw3ICszNDMsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZm
ZWN0aXZlTG9naWNhCiAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5lZmZlY3RpdmVM
b2dpY2FsV2lkdGggPSBMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgYWxsQ29sc0FyZVBl
cmNlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucmF3
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91
dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENv
bHNBcmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFjb2x1
bW5MYXlvdXQuZW1wdHlDZWxsc09ubHkpCkBAIC0zNTQsMTQgKzM1OCwxNCBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAKICAgICAgICAgLy8gYWRqdXN0IHRhYmxl
IG1heCB3aWR0aCBpZiBuZWVkZWQKICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQZXJj
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRo
LnJhd1ZhbHVlKCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3Rh
bFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSB8fCBhbGxDb2xzQXJlUGVyY2Vu
dCkgewogICAgICAgICAgICAgICAgIC8vIGNhbid0IHNhdGlmeSB0aGlzIGNvbmRpdGlvbiwgdHJl
YXQgYXMgdmFyaWFibGUKICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoID0gTGVuZ3Ro
KCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0
aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBjZWxsTWF4
TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gbWF4KG1h
eExvZ2ljYWxXaWR0aCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1heChzcGFuTWF4TG9naWNhbFdpZHRo
LCBjZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAgLyBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQo
KSkpOwogCiAgICAgICAgICAgICAgICAgLy8gYWxsIG5vbiBwZXJjZW50IGNvbHVtbnMgaW4gdGhl
IHNwYW4gZ2V0IHBlcmNlbnQgdmFsdWVzIHRvIHN1bSB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAg
ICAgICAgaW50IHBlcmNlbnRNaXNzaW5nID0gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIC0g
dG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnRNaXNzaW5nID0gY2Vs
bExvZ2ljYWxXaWR0aC5wZXJjZW50KCkgLSB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAg
ZmxvYXQgdG90YWxXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3Mg
PSBlZmZDb2w7IHBvcyA8IGxhc3RDb2w7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkp
CkBAIC0zNzAsNyArMzc0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYQogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7IHBvcyA8
IGxhc3RDb2wgJiYgdG90YWxXaWR0aCA+IDA7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gc3RhdGljX2Nhc3Q8
aW50PihwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtw
b3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0b3RhbFdpZHRoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSBwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0
PGZsb2F0PihtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0
b3RhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXaWR0aCAtPSBtX2xheW91
dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHBlcmNlbnRNaXNzaW5nIC09IHBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocGVyY2VudCA+IDApCkBAIC00OTEsNyArNDk1LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlv
dXQ6OmxheW91dCgpCiAgICAgaW50IG51bUZpeGVkID0gMDsKICAgICBmbG9hdCB0b3RhbEF1dG8g
PSAwOwogICAgIGZsb2F0IHRvdGFsRml4ZWQgPSAwOwotICAgIGludCB0b3RhbFBlcmNlbnQgPSAw
OworICAgIGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgaW50IGFsbG9jQXV0byA9IDA7CiAg
ICAgdW5zaWduZWQgbnVtQXV0b0VtcHR5Q2VsbHNPbmx5ID0gMDsKIApAQCAtNTA0LDcgKzUwOCw3
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICBzd2l0Y2ggKGxvZ2lj
YWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgaGF2
ZVBlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0
aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0aC5w
ZXJjZW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAg
ICAgICAgICAgIHRvdGFsUmVsYXRpdmUgKz0gbG9naWNhbFdpZHRoLnZhbHVlKCk7CkBAIC01Mzgs
OSArNTQyLDkgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgICAgICAg
ICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBlcmNlbnQg
PiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+
IDEwMCkgewogICAgICAgICAgICAgLy8gcmVtb3ZlIG92ZXJhbGxvY2F0ZWQgc3BhY2UgZnJvbSB0
aGUgbGFzdCBjb2x1bW5zCi0gICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dpY2FsV2lk
dGggKiAodG90YWxQZXJjZW50IC0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSAvICgxMDAgKiBw
ZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNh
bFdpZHRoICogKHRvdGFsUGVyY2VudCAtIDEwMCkgLyAxMDA7CiAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gbkVmZkNvbHMgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgICAgIGlmICht
X2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lkdGggPSBtX2xheW91dFN0cnVjdFtp
XS5jb21wdXRlZExvZ2ljYWxXaWR0aDsKQEAgLTYwNywxMyArNjExLDEzIEBAIHZvaWQgQXV0b1Rh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIH0KIAogICAgIC8vIHNwcmVhZCBvdmVyIHBlcmNlbnQg
Y29sdW1zCi0gICAgaWYgKGF2YWlsYWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVy
Y2VudCA8IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgIGlmIChhdmFpbGFibGUgPiAw
ICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDApIHsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBuRWZmQ29sczsgKytpKSB7CiAgICAgICAgICAgICBMZW5ndGgmIGxv
Z2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aDsKICAg
ICAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpIC8gdG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRo
ID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnBlcmNlbnQoKSAvIHRvdGFsUGVyY2VudDsKICAg
ICAgICAgICAgICAgICBhdmFpbGFibGUgLT0gY2VsbExvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50IC09IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAg
ICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggKz0gY2VsbExvZ2lj
YWxXaWR0aDsKICAgICAgICAgICAgICAgICBpZiAoIWF2YWlsYWJsZSB8fCAhdG90YWxQZXJjZW50
KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDggQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGlu
dAogICAgICAgICAgICAgICAgICAgICBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uID0gbV90
YWJsZS0+c3Bhbk9mRWZmQ29sKGN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAoKHcuaXNGaXhlZCgpIHx8IHcuaXNQZXJjZW50KCkp
ICYmIHcuaXNQb3NpdGl2ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVu
dEVmZmVjdGl2ZUNvbHVtbl0uc2V0VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAqIHNwYW5J
bkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOworICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1
cnJlbnRFZmZlY3RpdmVDb2x1bW5dID0gdzsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtj
dXJyZW50RWZmZWN0aXZlQ29sdW1uXSAqPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwog
ICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGggKz0gZWZmV2lkdGggKiBzcGFuSW5DdXJyZW50
RWZmZWN0aXZlQ29sdW1uOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzcGFu
IC09IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47CkBAIC0xNjQsMTAgKzE2NSwxMSBAQCBp
bnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkoaW50CiAgICAgICAgICAgICAgICAg
aW50IHVzZWRTcGFuID0gMDsKICAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgICAg
ICAgICAgd2hpbGUgKHVzZWRTcGFuIDwgc3BhbiAmJiBjQ29sICsgaSA8IG5FZmZDb2xzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGludCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29s
ICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9m
RWZmQ29sKGNDb2wgKyBpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBzZXQgaWYgbm8g
Y29sIGVsZW1lbnQgaGFzIGFscmVhZHkgc2V0IGl0LgogICAgICAgICAgICAgICAgICAgICBpZiAo
bV93aWR0aFtjQ29sICsgaV0uaXNBdXRvKCkgJiYgdy50eXBlKCkgIT0gQXV0bykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0uc2V0VmFsdWUody50eXBlKCksIHcu
cmF3VmFsdWUoKSAqIGVTcGFuIC8gc3Bhbik7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dp
ZHRoW2NDb2wgKyBpXSA9IHc7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wg
KyBpXSAqPSBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGgg
Kz0gZWZmV2lkdGggKiBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgdXNlZFNwYW4gKz0gZVNwYW47CkBAIC0yMzQsNyArMjM2LDcgQEAgdm9p
ZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGludCBhdXRvU3BhbiA9IDA7CiAgICAg
aW50IHRvdGFsRml4ZWRXaWR0aCA9IDA7CiAgICAgaW50IHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
LSAgICBpbnQgdG90YWxSYXdQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFJhd1BlcmNlbnQg
PSAwOwogCiAgICAgLy8gQ29tcHV0ZSByZXF1aXJlbWVudHMgYW5kIHRyeSB0byBzYXRpc2Z5IGZp
eGVkIGFuZCBwZXJjZW50IHdpZHRocy4KICAgICAvLyBQZXJjZW50YWdlcyBhcmUgb2YgdGhlIHRh
YmxlJ3Mgd2lkdGgsIHNvIGZvciBleGFtcGxlCkBAIC0yNDcsNyArMjQ5LDcgQEAgdm9pZCBGaXhl
ZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0uaXNQ
ZXJjZW50KCkpIHsKICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0uY2FsY1Zh
bHVlKHRhYmxlTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoICs9
IGNhbGNXaWR0aFtpXTsKLSAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ld
LnJhd1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFJhd1BlcmNlbnQgKz0gbV93aWR0aFtpXS5w
ZXJjZW50KCk7CiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5pc0F1dG8oKSkgewogICAg
ICAgICAgICAgbnVtQXV0bysrOwogICAgICAgICAgICAgYXV0b1NwYW4gKz0gbV90YWJsZS0+c3Bh
bk9mRWZmQ29sKGkpOwpAQCAtMjc0LDcgKzI3Niw3IEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6
bGF5b3V0KCkKICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCA9IDA7CiAgICAgICAg
ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRWZmQ29sczsgaSsrKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChtX3dpZHRoW2ldLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnJhd1ZhbHVlKCkgKiAodGFibGVMb2dp
Y2FsV2lkdGggLSB0b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxSYXdQZXJjZW50OworICAgICAgICAg
ICAgICAgICAgICAgICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5wZXJjZW50KCkgKiAodGFi
bGVMb2dpY2FsV2lkdGggLSB0b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxSYXdQZXJjZW50OwogICAg
ICAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50V2lkdGggKz0gY2FsY1dpZHRoW2ldOwog
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHJldmlzaW9uIDgw
MzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlv
bjo6YWRkQ2VsbChSZW5kZXJUCiAgICAgICAgICAgICBzd2l0Y2ggKGxvZ2ljYWxIZWlnaHQudHlw
ZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAgICAg
ICBpZiAoIShjUm93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkgfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIChjUm93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93TG9naWNhbEhl
aWdodC5yYXdWYWx1ZSgpIDwgbG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChjUm93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93TG9naWNh
bEhlaWdodC5wZXJjZW50KCkgPCBsb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2dyaWRbbV9jUm93XS5sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdo
dDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
Rml4ZWQ6CkBAIC00MzQsMjIgKzQzNCwyMiBAQCBpbnQgUmVuZGVyVGFibGVTZWN0aW9uOjpsYXlv
dXRSb3dzKGludCB0CiAgICAgICAgICAgICBpZiAobV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNB
dXRvKCkpCiAgICAgICAgICAgICAgICAgbnVtQXV0bysrOwogICAgICAgICAgICAgZWxzZSBpZiAo
bV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNQZXJjZW50KCkpCi0gICAgICAgICAgICAgICAgdG90
YWxQZXJjZW50ICs9IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgdG90YWxQZXJjZW50ICs9IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQo
KTsKICAgICAgICAgfQogICAgICAgICBpZiAodG90YWxQZXJjZW50KSB7CiAgICAgICAgICAgICAv
LyB0cnkgdG8gc2F0aXNmeSBwZXJjZW50CiAgICAgICAgICAgICBpbnQgYWRkID0gMDsKLSAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCAqIHBlcmNlbnRTY2Fs
ZUZhY3Rvcik7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgPSBtaW4odG90YWxQZXJjZW50LCAx
MDApOwogICAgICAgICAgICAgaW50IHJoID0gbV9yb3dQb3NbMV0gLSBtX3Jvd1Bvc1swXTsKICAg
ICAgICAgICAgIGZvciAoaW50IHIgPSAwOyByIDwgdG90YWxSb3dzOyByKyspIHsKICAgICAgICAg
ICAgICAgICBpZiAodG90YWxQZXJjZW50ID4gMCAmJiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5p
c1BlcmNlbnQoKSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgdG9BZGQgPSBtaW4oZGgsICh0
b3RhbEhlaWdodCAqIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkgLyAoMTAwICog
cGVyY2VudFNjYWxlRmFjdG9yKSkgLSByaCk7CisgICAgICAgICAgICAgICAgICAgIGludCB0b0Fk
ZCA9IG1pbihkaCwgc3RhdGljX2Nhc3Q8aW50PigodG90YWxIZWlnaHQgKiBtX2dyaWRbcl0ubG9n
aWNhbEhlaWdodC5wZXJjZW50KCkgLyAxMDApIC0gcmgpKTsKICAgICAgICAgICAgICAgICAgICAg
Ly8gSWYgdG9BZGQgaXMgbmVnYXRpdmUsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBzaHJpbmsgdGhl
IHJvdyAodGhpcyBidWcKICAgICAgICAgICAgICAgICAgICAgLy8gYWZmZWN0ZWQgT3V0bG9vayBX
ZWIgQWNjZXNzKS4KICAgICAgICAgICAgICAgICAgICAgdG9BZGQgPSBtYXgoMCwgdG9BZGQpOwog
ICAgICAgICAgICAgICAgICAgICBhZGQgKz0gdG9BZGQ7CiAgICAgICAgICAgICAgICAgICAgIGRo
IC09IHRvQWRkOwotICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbV9ncmlkW3Jd
LmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJj
ZW50IC09IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgaWYgKHIgPCB0b3RhbFJvd3MgLSAxKQogICAgICAgICAgICAg
ICAgICAgICByaCA9IG1fcm93UG9zW3IgKyAyXSAtIG1fcm93UG9zW3IgKyAxXTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAkocmV2aXNpb24gODAz
ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSwxMyArNDksMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNCb3Jk
ZXJSYWRpdXMoKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKG1fdG9wTGVmdC53aWR0aCgpLnJh
d1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fdG9wTGVmdC53aWR0aCgpLmlzWmVybygpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX3RvcFJpZ2h0LndpZHRoKCku
cmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BSaWdodC53aWR0aCgpLmlzWmVybygp
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRvbUxlZnQud2lk
dGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX2JvdHRvbUxlZnQud2lkdGgoKS5p
c1plcm8oKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobV9ib3R0b21S
aWdodC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tUmlnaHQu
d2lkdGgoKS5pc1plcm8oKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODA2NjUpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMy0wOSAg
UmlrIENhYmFuaWVyICA8Y2FiYW5pZXJAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGJ1ZyA1NjA1MjogcGVyY2VudGFnZXMgYXJlIGlu
Y29ycmVjdGx5IHJvdW5kZWQgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NjA1MgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQudHh0OgorCiAyMDExLTAzLTA5ICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gODAzODEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAgICAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDQ0KSBzaXplIDkxMHg0CiAgICAgICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDQ4KSBzaXplIDkxMHg0Ci0gICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCisg
ICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdjb2xvcj0j
MDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUyKSBzaXplIDkwMHg0
CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xv
cj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU2KSBzaXplIDg5
MHg0CkBAIC00OSw3ICs0OSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDU4NQogICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw4NCkgc2l6ZSA4NDB4NAogICAgICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw4OCkgc2l6ZSA4MzV4NAotICAgICAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQor
ICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAxeDQgW2JnY29sb3I9
IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw5Mikgc2l6ZSA4MjV4
NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2JnY29s
b3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw5Nikgc2l6ZSA4
MTV4NApAQCAtODQsNjEgKzg0LDYxIEBAIGxheWVyIGF0ICg4LDEyNikgc2l6ZSAxMDAweDIwCiAg
IFJlbmRlclRhYmxlIHtUQUJMRX0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCiAgICAgUmVuZGVyVGFi
bGVTZWN0aW9uIHtUQk9EWX0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCiAgICAgICBSZW5kZXJUYWJs
ZVJvdyB7VFJ9IGF0ICgwLDApIHNpemUgMTAwMHgyMAotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMCwxKSBzaXplIDExeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTAgcnM9
MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMCwxKSBzaXplIDEyeDE4
IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTAgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTEs
MSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KKyAg
ICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyLDEpIHNpemUgMTB4MTggW2JnY29sb3I9
IzAwRkYwMDdGXSBbcj0wIGM9MSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMSwxKSBzaXplIDEz
eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQorICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMjIsMSkgc2l6ZSAxM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0Zd
IFtyPTAgYz0yIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIK
LSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDM0LDEpIHNpemUgMTB4MTggW2JnY29s
b3I9IzAwRkYwMDdGXSBbcj0wIGM9MyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgzNSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTMg
cnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4
MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNDQsMSkgc2l6ZSAxNXgxOCBbYmdjb2xvcj0jMDAwMDAw
N0ZdIFtyPTAgYz00IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDQ1LDEpIHNpemUgMTZ4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NCBycz0xIGNzPTFd
CiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICg1OSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBj
PTUgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNjEsMSkgc2l6
ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz01IHJzPTEgY3M9MV0KICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDY5LDEpIHNpemUgMTd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNz
PTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg3MSwxKSBzaXplIDE3eDE4IFti
Z2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTYgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODYsMSkg
c2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KKyAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDg4LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAw
RkYwMDdGXSBbcj0wIGM9NyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
NDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg5NiwxKSBzaXplIDIweDE4
IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTggcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoOTgsMSkgc2l6ZSAyMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFty
PTAgYz04IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAg
ICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDExNiwxKSBzaXplIDEweDE4IFtiZ2NvbG9y
PSMwMEZGMDA3Rl0gW3I9MCBjPTkgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMTE4LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBy
cz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgx
OAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMjYsMSkgc2l6ZSAyMXgxOCBbYmdjb2xvcj0jMDAwMDAw
N0ZdIFtyPTAgYz0xMCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgxMjgsMSkgc2l6ZSAyMngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xMCBycz0xIGNz
PTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRh
YmxlQ2VsbCB7VER9IGF0ICgxNDcsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFty
PTAgYz0xMSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNTAs
MSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xMSBycz0xIGNzPTFdCiAg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgxNTcsMSkgc2l6ZSAyM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0x
MiBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNjAsMSkgc2l6
ZSAyNHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xMiBycz0xIGNzPTFdCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9
IGF0ICgxODAsMTApIHNpemUgMTB4MCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xMyBycz0x
IGNzPTFdCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxOTAsMSkgc2l6ZSAyNXgx
OCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xNCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRl
clRhYmxlQ2VsbCB7VER9IGF0ICgxODQsMTApIHNpemUgMTB4MCBbYmdjb2xvcj0jMDBGRjAwN0Zd
IFtyPTAgYz0xMyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
OTQsMSkgc2l6ZSAyNXgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xNCBycz0xIGNzPTFd
CiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgyMTUsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAg
Yz0xNSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMTksMSkg
c2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xNSBycz0xIGNzPTFdCiAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7
VER9IGF0ICgyMjUsMSkgc2l6ZSAyN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xNiBy
cz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMjksMSkgc2l6ZSAy
N3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xNiBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgyNTIsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xNyBycz0xIGNz
PTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyNTYsMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xNyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyNjIs
MSkgc2l6ZSAzMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xOCBycz0xIGNzPTFdCisg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyNjYsMSkgc2l6ZSAzMHgxOCBbYmdjb2xv
cj0jMDAwMDAwN0ZdIFtyPTAgYz0xOCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyOTIsMSkgc2l6
ZSA3MDh4MTggW3I9MCBjPTE5IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDI5NiwxKSBzaXplIDcwNHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQogICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgo=
</data>
<flag name="review"
          id="77614"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="77655"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85532</attachid>
            <date>2011-03-11 14:18:40 -0800</date>
            <delta_ts>2011-03-11 14:40:26 -0800</delta_ts>
            <desc>Update patch. Fixed variable name per David Hyatt</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>31837</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlr
IENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMw
LDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExl
bmd0aCA9IC0xOwotY29uc3QgaW50IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGlu
dCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQg
aW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWlu
IHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIApAQCAtNTIsMzQgKzUyLDM1IEBAIHB1YmxpYzoKICAg
ICBMZW5ndGgoaW50IHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDog
bV9pbnRWYWx1ZSh2KSwgbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAg
ICAgewotICAgICAgICBBU1NFUlQodCAhPSBQZXJjZW50KTsKICAgICB9CiAKICAgICBMZW5ndGgo
ZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0gICAgICAgIDogbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50
Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9p
c0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDogbV9xdWlyayhxKSwgbV90
eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9CiAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgp
ID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90eXBlKSAmJiAobV9xdWly
ayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aCYgbykg
Y29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZsb2F0VmFsdWUoKSkgfHwg
KG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1aXJrKTsgfQogCisgICAg
Y29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGRvdWJsZSB2KQorICAgIHsgICAgICAgIAorICAgICAg
ICBpZiAobV9pc0Zsb2F0KQorICAgICAgICAgICAgbV9mbG9hdFZhbHVlICo9IHY7CisgICAgICAg
IGVsc2UgICAgICAgIAorICAgICAgICAgICAgbV9pbnRWYWx1ZSAqPSB2OworICAgICAgICAKKyAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICAKICAgICBpbnQgdmFsdWUoKSBjb25zdCB7
Ci0gICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7Ci0gICAgICAgIHJldHVybiByYXdW
YWx1ZSgpOworICAgICAgICByZXR1cm4gZ2V0SW50VmFsdWUoKTsKICAgICB9CiAKLSAgICBpbnQg
cmF3VmFsdWUoKSBjb25zdCB7IHJldHVybiBnZXRJbnRWYWx1ZSgpOyB9Ci0KICAgICBkb3VibGUg
cGVyY2VudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQodHlwZSgpID09IFBlcmNlbnQp
OwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyYXdWYWx1ZSgpKSAvIHBlcmNl
bnRTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oZ2V0Rmxv
YXRWYWx1ZSgpKTsKICAgICB9CiAKICAgICBMZW5ndGhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxMZW5ndGhUeXBlPihtX3R5cGUpOyB9CkBAIC04Nyw2ICs4OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUoTGVuZ3RoVHlwZSB0LCBpbnQgdmFsdWUpCiAgICAg
eworICAgICAgICBBU1NFUlQodHlwZSgpICE9IFBlcmNlbnQpOwogICAgICAgICBtX3R5cGUgPSB0
OwogICAgICAgICBtX2ludFZhbHVlID0gdmFsdWU7CiAgICAgICAgIG1faXNGbG9hdCA9IGZhbHNl
OwpAQCAtOTQsNyArOTYsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCghdmFsdWUgfHwgdHlwZSgpICE9IFBlcmNlbnQpOwog
ICAgICAgICBzZXRWYWx1ZShGaXhlZCwgdmFsdWUpOwogICAgIH0KIApAQCAtMTE5LDcgKzEyMCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgICAgICBp
ZiAocm91bmRQZXJjZW50YWdlcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4ocm91bmQobWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxl
RmFjdG9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihtYXhWYWx1
ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAg
ICAgICAgICByZXR1cm4gbWF4VmFsdWU7CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtMTM1LDcg
KzEzNiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAg
ICAgICBpZiAocm91bmRQZXJjZW50YWdlcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4ocm91bmQobWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAg
ICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2Vu
dFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Piht
YXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAg
ICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNTYsMTAg
KzE1NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBib29sIGlzVW5kZWZp
bmVkKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA9PSB1bmRlZmluZWRMZW5ndGg7IH0KLSAg
ICBib29sIGlzWmVybygpIGNvbnN0IHsgcmV0dXJuICFnZXRJbnRWYWx1ZSgpOyB9Ci0gICAgYm9v
bCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA+IDA7IH0KLSAgICBib29s
IGlzTmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpIDwgMDsgfQorICAgIGJvb2wg
aXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsg
fQorICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgCisgICAgeyAKKyAgICAgICAgaWYgKG1faXNGbG9h
dCkKKyAgICAgICAgICAgIHJldHVybiAhbV9mbG9hdFZhbHVlOyAKKyAgICAgICAgCisgICAgICAg
IHJldHVybiAhbV9pbnRWYWx1ZTsKKyAgICB9CisgICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3Qg
eyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpID4gMDsgfQorICAgIGJvb2wgaXNOZWdhdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIGdldEZsb2F0VmFsdWUoKSA8IDA7IH0KIAogICAgIGJvb2wgaXNBdXRvKCkg
Y29uc3QgeyByZXR1cm4gdHlwZSgpID09IEF1dG87IH0KICAgICBib29sIGlzUmVsYXRpdmUoKSBj
b25zdCB7IHJldHVybiB0eXBlKCkgPT0gUmVsYXRpdmU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50
IGUKIAogICAgICAgICAgICAgICAgICAgICBMZW5ndGggY2VsbExvZ2ljYWxXaWR0aCA9IGNlbGwt
PnN0eWxlT3JDb2xMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IFdoYXQgaXMgdGhpcyBhcmJpdHJhcnkgdmFsdWU/Ci0gICAgICAgICAgICAgICAgICAgIGlmIChj
ZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkgPiAzMjc2MCkKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IDMyNzYwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgzMjc2MCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzTmVnYXRpdmUoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNlbGxMb2dpY2FsV2lkdGguc2V0VmFsdWUoMCk7CkBAIC0xMDUsMTMgKzEwNSwxMyBA
QCB2b2lkIEF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKGludCBlCiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAg
ICAgICAgICAgICAgICAgICAgICAgbV9oYXNQZXJjZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxh
eW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC52YWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0
aDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBj
YXNlIFJlbGF0aXZlOgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8g
dW5kZXJzdGFuZCB0aGlzIGNhc2UgYW5kIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFy
ZSB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGFyZSBub3QgbmVjZXNz
YXJpbHkgb2YgdGhlIHNhbWUgdHlwZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxs
TG9naWNhbFdpZHRoLmlzQXV0bygpIHx8IChjZWxsTG9naWNhbFdpZHRoLmlzUmVsYXRpdmUoKSAm
JiBjZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJh
d1ZhbHVlKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgu
aXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpICYmIGNlbGxMb2dpY2Fs
V2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudmFsdWUoKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aCA9IGNlbGxM
b2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKQEAgLTIzMiwxNiArMjMyLDE2IEBAIHZvaWQgQXV0b1RhYmxlTGF5
b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KIAogICAgIC8vIFdlIHN1YnN0aXR1dGUgMCBwZXJjZW50
IGJ5IChlcHNpbG9uIC8gcGVyY2VudFNjYWxlRmFjdG9yKSBwZXJjZW50IGluIHR3byBwbGFjZXMg
YmVsb3cgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyby4KICAgICAvLyBGSVhNRTogSGFuZGxlIHRo
ZSAwJSBjYXNlcyBwcm9wZXJseS4KLSAgICBjb25zdCBpbnQgZXBzaWxvbiA9IDE7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDEgLyAxMjguMDsKIAotICAgIGludCByZW1haW5pbmdQZXJjZW50
ID0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yOworICAgIGZsb2F0IHJlbWFpbmluZ1BlcmNlbnQg
PSAxMDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheW91dFN0cnVjdC5zaXplKCk7
ICsraSkgewogICAgICAgICBtaW5XaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVN
aW5Mb2dpY2FsV2lkdGg7CiAgICAgICAgIG1heFdpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVm
ZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgaWYgKHNjYWxlQ29sdW1ucykgewogICAg
ICAgICAgICAgaWYgKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gbWluKG1fbGF5b3V0U3Ry
dWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpLCByZW1haW5pbmdQZXJjZW50
KTsKLSAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9h
dD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBl
cmNlbnRTY2FsZUZhY3RvciAvIG1heChwZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAgICAgICAg
ICBmbG9hdCBwZXJjZW50ID0gbWluKHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtp
XS5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpKSwgcmVtYWluaW5nUGVyY2VudCk7Cisg
ICAgICAgICAgICAgICAgZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1f
bGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgLyBtYXgocGVy
Y2VudCwgZXBzaWxvbik7CiAgICAgICAgICAgICAgICAgbWF4UGVyY2VudCA9IG1heChsb2dpY2Fs
V2lkdGgsICBtYXhQZXJjZW50KTsKICAgICAgICAgICAgICAgICByZW1haW5pbmdQZXJjZW50IC09
IHBlcmNlbnQ7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEF1
dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgfQogCiAgICAgaWYgKHNjYWxl
Q29sdW1ucykgewotICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3RvciAvIG1heChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9uKTsKKyAg
ICAgICAgbWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgLyBtYXgocmVtYWluaW5n
UGVyY2VudCwgZXBzaWxvbik7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBzdGF0
aWNfY2FzdDxpbnQ+KG1pbihtYXhOb25QZXJjZW50LCBJTlRfTUFYIC8gMi4wZikpKTsKICAgICAg
ICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1heFBlcmNl
bnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAgIH0KQEAgLTI2Niw2ICsyNjYsMTAgQEAgdm9pZCBB
dXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogICAgICAgICBtaW5XaWR0aCA9IG1h
eChtaW5XaWR0aCwgdGFibGVMb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIG1heFdpZHRo
ID0gbWluV2lkdGg7CiAgICAgfQorICAgIAorICAgIC8vIGlmIHRoZXJlIHdhcyBubyByZW1haW5p
bmcgcGVyY2VudCwgbWF4V2lkdGggaXMgaW52YWxpZC4KKyAgICBpZiAoIXJlbWFpbmluZ1BlcmNl
bnQgJiYgbWF4Tm9uUGVyY2VudCkKKyAgICAgICAgbWF4V2lkdGggPSBpbnRNYXhGb3JMZW5ndGg7
ICAgICAgICAKIH0KIAogLyoKQEAgLTMwMCw3ICszMDQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0
OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgIHNpemVfdCBsYXN0Q29sID0gZWZmQ29sOwog
ICAgICAgICBpbnQgY2VsbE1pbkxvZ2ljYWxXaWR0aCA9IGNlbGwtPm1pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwogICAgICAgICBmbG9hdCBjZWxsTWF4
TG9naWNhbFdpZHRoID0gY2VsbC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBzcGFjaW5n
SW5Sb3dEaXJlY3Rpb247Ci0gICAgICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAgICAgICBm
bG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogICAgICAgICBpbnQgc3Bhbk1pbkxvZ2ljYWxXaWR0aCA9
IDA7CiAgICAgICAgIGZsb2F0IHNwYW5NYXhMb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBib29s
IGFsbENvbHNBcmVQZXJjZW50ID0gdHJ1ZTsKQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgICAgICBMYXlvdXQmIGNvbHVt
bkxheW91dCA9IG1fbGF5b3V0U3RydWN0W2xhc3RDb2xdOwogICAgICAgICAgICAgc3dpdGNoIChj
b2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBQZXJj
ZW50OgotICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNh
bFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENvbHNB
cmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTMzOSw3ICszNDMsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZm
ZWN0aXZlTG9naWNhCiAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5lZmZlY3RpdmVM
b2dpY2FsV2lkdGggPSBMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgYWxsQ29sc0FyZVBl
cmNlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucmF3
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91
dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENv
bHNBcmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFjb2x1
bW5MYXlvdXQuZW1wdHlDZWxsc09ubHkpCkBAIC0zNTQsMTQgKzM1OCwxNCBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAKICAgICAgICAgLy8gYWRqdXN0IHRhYmxl
IG1heCB3aWR0aCBpZiBuZWVkZWQKICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQZXJj
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRo
LnJhd1ZhbHVlKCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3Rh
bFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSB8fCBhbGxDb2xzQXJlUGVyY2Vu
dCkgewogICAgICAgICAgICAgICAgIC8vIGNhbid0IHNhdGlmeSB0aGlzIGNvbmRpdGlvbiwgdHJl
YXQgYXMgdmFyaWFibGUKICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoID0gTGVuZ3Ro
KCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0
aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBjZWxsTWF4
TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gbWF4KG1h
eExvZ2ljYWxXaWR0aCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1heChzcGFuTWF4TG9naWNhbFdpZHRo
LCBjZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAgLyBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQo
KSkpOwogCiAgICAgICAgICAgICAgICAgLy8gYWxsIG5vbiBwZXJjZW50IGNvbHVtbnMgaW4gdGhl
IHNwYW4gZ2V0IHBlcmNlbnQgdmFsdWVzIHRvIHN1bSB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAg
ICAgICAgaW50IHBlcmNlbnRNaXNzaW5nID0gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIC0g
dG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnRNaXNzaW5nID0gY2Vs
bExvZ2ljYWxXaWR0aC5wZXJjZW50KCkgLSB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAg
ZmxvYXQgdG90YWxXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3Mg
PSBlZmZDb2w7IHBvcyA8IGxhc3RDb2w7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkp
CkBAIC0zNzAsNyArMzc0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYQogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7IHBvcyA8
IGxhc3RDb2wgJiYgdG90YWxXaWR0aCA+IDA7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gc3RhdGljX2Nhc3Q8
aW50PihwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtw
b3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0b3RhbFdpZHRoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSBwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0
PGZsb2F0PihtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0
b3RhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXaWR0aCAtPSBtX2xheW91
dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHBlcmNlbnRNaXNzaW5nIC09IHBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocGVyY2VudCA+IDApCkBAIC00OTEsNyArNDk1LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlv
dXQ6OmxheW91dCgpCiAgICAgaW50IG51bUZpeGVkID0gMDsKICAgICBmbG9hdCB0b3RhbEF1dG8g
PSAwOwogICAgIGZsb2F0IHRvdGFsRml4ZWQgPSAwOwotICAgIGludCB0b3RhbFBlcmNlbnQgPSAw
OworICAgIGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgaW50IGFsbG9jQXV0byA9IDA7CiAg
ICAgdW5zaWduZWQgbnVtQXV0b0VtcHR5Q2VsbHNPbmx5ID0gMDsKIApAQCAtNTA0LDcgKzUwOCw3
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICBzd2l0Y2ggKGxvZ2lj
YWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgaGF2
ZVBlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0
aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0aC5w
ZXJjZW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAg
ICAgICAgICAgIHRvdGFsUmVsYXRpdmUgKz0gbG9naWNhbFdpZHRoLnZhbHVlKCk7CkBAIC01Mzgs
OSArNTQyLDkgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgICAgICAg
ICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBlcmNlbnQg
PiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+
IDEwMCkgewogICAgICAgICAgICAgLy8gcmVtb3ZlIG92ZXJhbGxvY2F0ZWQgc3BhY2UgZnJvbSB0
aGUgbGFzdCBjb2x1bW5zCi0gICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dpY2FsV2lk
dGggKiAodG90YWxQZXJjZW50IC0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSAvICgxMDAgKiBw
ZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNh
bFdpZHRoICogKHRvdGFsUGVyY2VudCAtIDEwMCkgLyAxMDA7CiAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gbkVmZkNvbHMgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgICAgIGlmICht
X2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lkdGggPSBtX2xheW91dFN0cnVjdFtp
XS5jb21wdXRlZExvZ2ljYWxXaWR0aDsKQEAgLTYwNywxMyArNjExLDEzIEBAIHZvaWQgQXV0b1Rh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIH0KIAogICAgIC8vIHNwcmVhZCBvdmVyIHBlcmNlbnQg
Y29sdW1zCi0gICAgaWYgKGF2YWlsYWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVy
Y2VudCA8IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgIGlmIChhdmFpbGFibGUgPiAw
ICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDApIHsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBuRWZmQ29sczsgKytpKSB7CiAgICAgICAgICAgICBMZW5ndGgmIGxv
Z2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aDsKICAg
ICAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpIC8gdG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRo
ID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnBlcmNlbnQoKSAvIHRvdGFsUGVyY2VudDsKICAg
ICAgICAgICAgICAgICBhdmFpbGFibGUgLT0gY2VsbExvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50IC09IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAg
ICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggKz0gY2VsbExvZ2lj
YWxXaWR0aDsKICAgICAgICAgICAgICAgICBpZiAoIWF2YWlsYWJsZSB8fCAhdG90YWxQZXJjZW50
KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDggQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGlu
dAogICAgICAgICAgICAgICAgICAgICBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uID0gbV90
YWJsZS0+c3Bhbk9mRWZmQ29sKGN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAoKHcuaXNGaXhlZCgpIHx8IHcuaXNQZXJjZW50KCkp
ICYmIHcuaXNQb3NpdGl2ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVu
dEVmZmVjdGl2ZUNvbHVtbl0uc2V0VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAqIHNwYW5J
bkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOworICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1
cnJlbnRFZmZlY3RpdmVDb2x1bW5dID0gdzsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtj
dXJyZW50RWZmZWN0aXZlQ29sdW1uXSAqPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwog
ICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGggKz0gZWZmV2lkdGggKiBzcGFuSW5DdXJyZW50
RWZmZWN0aXZlQ29sdW1uOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzcGFu
IC09IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47CkBAIC0xNjQsMTAgKzE2NSwxMSBAQCBp
bnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkoaW50CiAgICAgICAgICAgICAgICAg
aW50IHVzZWRTcGFuID0gMDsKICAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgICAg
ICAgICAgd2hpbGUgKHVzZWRTcGFuIDwgc3BhbiAmJiBjQ29sICsgaSA8IG5FZmZDb2xzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGludCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29s
ICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9m
RWZmQ29sKGNDb2wgKyBpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBzZXQgaWYgbm8g
Y29sIGVsZW1lbnQgaGFzIGFscmVhZHkgc2V0IGl0LgogICAgICAgICAgICAgICAgICAgICBpZiAo
bV93aWR0aFtjQ29sICsgaV0uaXNBdXRvKCkgJiYgdy50eXBlKCkgIT0gQXV0bykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0uc2V0VmFsdWUody50eXBlKCksIHcu
cmF3VmFsdWUoKSAqIGVTcGFuIC8gc3Bhbik7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dp
ZHRoW2NDb2wgKyBpXSA9IHc7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wg
KyBpXSAqPSBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGgg
Kz0gZWZmV2lkdGggKiBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgdXNlZFNwYW4gKz0gZVNwYW47CkBAIC0yMzQsNyArMjM2LDcgQEAgdm9p
ZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGludCBhdXRvU3BhbiA9IDA7CiAgICAg
aW50IHRvdGFsRml4ZWRXaWR0aCA9IDA7CiAgICAgaW50IHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
LSAgICBpbnQgdG90YWxSYXdQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAw
OwogCiAgICAgLy8gQ29tcHV0ZSByZXF1aXJlbWVudHMgYW5kIHRyeSB0byBzYXRpc2Z5IGZpeGVk
IGFuZCBwZXJjZW50IHdpZHRocy4KICAgICAvLyBQZXJjZW50YWdlcyBhcmUgb2YgdGhlIHRhYmxl
J3Mgd2lkdGgsIHNvIGZvciBleGFtcGxlCkBAIC0yNDcsNyArMjQ5LDcgQEAgdm9pZCBGaXhlZFRh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0uaXNQZXJj
ZW50KCkpIHsKICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0uY2FsY1ZhbHVl
KHRhYmxlTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoICs9IGNh
bGNXaWR0aFtpXTsKLSAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ldLnJh
d1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV93aWR0aFtpXS5wZXJjZW50
KCk7CiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5pc0F1dG8oKSkgewogICAgICAgICAg
ICAgbnVtQXV0bysrOwogICAgICAgICAgICAgYXV0b1NwYW4gKz0gbV90YWJsZS0+c3Bhbk9mRWZm
Q29sKGkpOwpAQCAtMjcwLDExICsyNzIsMTEgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlv
dXQoKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKHRvdGFsUmF3UGVyY2VudCkgeworICAgICAgICAgICAgaWYg
KHRvdGFsUGVyY2VudCkgewogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
ICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0
YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQo
KSAqICh0YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFBlcmNlbnQ7
CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhb
aV07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNp
b24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdo
dC50eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAg
ICAgICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dp
Y2FsSGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dM
b2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2Fs
SGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246
OmxheW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdo
dC5pc0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNl
IGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVy
Y2VudCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAg
ICAgIC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwot
ICAgICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2Vu
dFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNl
bnQsIDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBd
OwogICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAg
ICAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVp
Z2h0LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihk
aCwgKHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgx
MDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50
IHRvQWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFty
XS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmlu
ayB0aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRs
b29rIFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0Fk
ZCk7CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAg
ICAgZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dy
aWRbcl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3Rh
bFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAg
ICAgICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lv
biA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhh
c0JvcmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRo
KCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJv
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lk
dGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNa
ZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVm
dC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0
aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2Jv
dHRvbVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21S
aWdodC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAz
LTA5ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBh
cmUgaW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMt
MDkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVn
ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MDM4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDQpIHNpemUgOTEweDQKICAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0K
ICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDgpIHNpemUgOTEweDQKLSAgICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUg
OTAweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFti
Z2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYpIHNp
emUgODkweDQKQEAgLTQ5LDcgKzQ5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg0KSBzaXplIDg0MHg0CiAgICAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0Zd
CiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg4KSBzaXplIDgzNXg0Ci0gICAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAw
N0ZdCisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdj
b2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkyKSBzaXpl
IDgyNXg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBb
Ymdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDk2KSBz
aXplIDgxNXg0CkBAIC04NCw2MSArODQsNjEgQEAgbGF5ZXIgYXQgKDgsMTI2KSBzaXplIDEwMDB4
MjAKICAgUmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICBSZW5k
ZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICAgIFJlbmRl
clRhYmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCi0gICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgwLDEpIHNpemUgMTF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDEpIHNpemUg
MTJ4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgxMSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0x
XQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTIsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxLDEpIHNp
emUgMTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCisgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMiwxKSBzaXplIDEzeDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDM1LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9MyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NCwxKSBzaXplIDE1eDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNDUsMSkgc2l6ZSAxNngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz00IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDU5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9NSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2MSwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTUgcnM9MSBjcz0xXQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoNjksMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcxLDEpIHNpemUgMTd4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4
NiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk2LDEpIHNpemUg
MjB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCisgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICg5OCwxKSBzaXplIDIweDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTggcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTE2LDEpIHNpemUgMTB4MTggW2Jn
Y29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgxMTgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAg
Yz05IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyNiwxKSBzaXplIDIxeDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDEyOCwxKSBzaXplIDIyeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEwIHJz
PTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4
CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDE0NywxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDE1MCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTExIHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDE1NywxKSBzaXplIDIzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9
MCBjPTEyIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE2MCwx
KSBzaXplIDI0eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEyIHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDE4MCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEz
IHJzPTEgY3M9MV0KLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE5MCwxKSBzaXpl
IDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9MV0KKyAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4NCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZG
MDA3Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDE5NCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDIxNSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTE1IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIx
OSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE1IHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDIyNSwxKSBzaXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBj
PTE2IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyOSwxKSBz
aXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2IHJzPTEgY3M9MV0KICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDI1MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI1NiwxKSBzaXplIDEw
eDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEgY3M9MV0KICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDI2MiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9
MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2NiwxKSBzaXplIDMweDE4IFti
Z2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI5Miwx
KSBzaXplIDcwOHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjk2LDEpIHNpemUgNzA0eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCiAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85536</attachid>
            <date>2011-03-11 14:33:21 -0800</date>
            <delta_ts>2011-03-11 14:33:55 -0800</delta_ts>
            <desc>updated checksum file</desc>
            <filename>percentage-non-integer-expected.checksum</filename>
            <type>application/octet-stream</type>
            <size>32</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">YzZkOTA1NTM0MWE5OTA0OTI5Y2NjNDk0NzZjN2JkOWU=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85538</attachid>
            <date>2011-03-11 14:41:00 -0800</date>
            <delta_ts>2011-03-16 12:56:38 -0700</delta_ts>
            <desc>Update patch. Fixed variable name per David Hyatt + updated pixel test</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>52820</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlr
IENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMw
LDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExl
bmd0aCA9IC0xOwotY29uc3QgaW50IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGlu
dCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQg
aW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWlu
IHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIApAQCAtNTIsMzQgKzUyLDM1IEBAIHB1YmxpYzoKICAg
ICBMZW5ndGgoaW50IHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDog
bV9pbnRWYWx1ZSh2KSwgbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAg
ICAgewotICAgICAgICBBU1NFUlQodCAhPSBQZXJjZW50KTsKICAgICB9CiAKICAgICBMZW5ndGgo
ZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0gICAgICAgIDogbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50
Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9p
c0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDogbV9xdWlyayhxKSwgbV90
eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9CiAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgp
ID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90eXBlKSAmJiAobV9xdWly
ayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aCYgbykg
Y29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZsb2F0VmFsdWUoKSkgfHwg
KG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1aXJrKTsgfQogCisgICAg
Y29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGRvdWJsZSB2KQorICAgIHsgICAgICAgIAorICAgICAg
ICBpZiAobV9pc0Zsb2F0KQorICAgICAgICAgICAgbV9mbG9hdFZhbHVlICo9IHY7CisgICAgICAg
IGVsc2UgICAgICAgIAorICAgICAgICAgICAgbV9pbnRWYWx1ZSAqPSB2OworICAgICAgICAKKyAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICAKICAgICBpbnQgdmFsdWUoKSBjb25zdCB7
Ci0gICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7Ci0gICAgICAgIHJldHVybiByYXdW
YWx1ZSgpOworICAgICAgICByZXR1cm4gZ2V0SW50VmFsdWUoKTsKICAgICB9CiAKLSAgICBpbnQg
cmF3VmFsdWUoKSBjb25zdCB7IHJldHVybiBnZXRJbnRWYWx1ZSgpOyB9Ci0KICAgICBkb3VibGUg
cGVyY2VudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQodHlwZSgpID09IFBlcmNlbnQp
OwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyYXdWYWx1ZSgpKSAvIHBlcmNl
bnRTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oZ2V0Rmxv
YXRWYWx1ZSgpKTsKICAgICB9CiAKICAgICBMZW5ndGhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxMZW5ndGhUeXBlPihtX3R5cGUpOyB9CkBAIC04Nyw2ICs4OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUoTGVuZ3RoVHlwZSB0LCBpbnQgdmFsdWUpCiAgICAg
eworICAgICAgICBBU1NFUlQodHlwZSgpICE9IFBlcmNlbnQpOwogICAgICAgICBtX3R5cGUgPSB0
OwogICAgICAgICBtX2ludFZhbHVlID0gdmFsdWU7CiAgICAgICAgIG1faXNGbG9hdCA9IGZhbHNl
OwpAQCAtOTQsNyArOTYsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCghdmFsdWUgfHwgdHlwZSgpICE9IFBlcmNlbnQpOwog
ICAgICAgICBzZXRWYWx1ZShGaXhlZCwgdmFsdWUpOwogICAgIH0KIApAQCAtMTE5LDcgKzEyMCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgICAgICBp
ZiAocm91bmRQZXJjZW50YWdlcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4ocm91bmQobWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxl
RmFjdG9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihtYXhWYWx1
ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAg
ICAgICAgICByZXR1cm4gbWF4VmFsdWU7CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtMTM1LDcg
KzEzNiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAg
ICAgICBpZiAocm91bmRQZXJjZW50YWdlcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4ocm91bmQobWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAg
ICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2Vu
dFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Piht
YXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAg
ICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNTYsMTAg
KzE1NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBib29sIGlzVW5kZWZp
bmVkKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA9PSB1bmRlZmluZWRMZW5ndGg7IH0KLSAg
ICBib29sIGlzWmVybygpIGNvbnN0IHsgcmV0dXJuICFnZXRJbnRWYWx1ZSgpOyB9Ci0gICAgYm9v
bCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA+IDA7IH0KLSAgICBib29s
IGlzTmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpIDwgMDsgfQorICAgIGJvb2wg
aXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsg
fQorICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgCisgICAgeyAKKyAgICAgICAgaWYgKG1faXNGbG9h
dCkKKyAgICAgICAgICAgIHJldHVybiAhbV9mbG9hdFZhbHVlOyAKKyAgICAgICAgCisgICAgICAg
IHJldHVybiAhbV9pbnRWYWx1ZTsKKyAgICB9CisgICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3Qg
eyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpID4gMDsgfQorICAgIGJvb2wgaXNOZWdhdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIGdldEZsb2F0VmFsdWUoKSA8IDA7IH0KIAogICAgIGJvb2wgaXNBdXRvKCkg
Y29uc3QgeyByZXR1cm4gdHlwZSgpID09IEF1dG87IH0KICAgICBib29sIGlzUmVsYXRpdmUoKSBj
b25zdCB7IHJldHVybiB0eXBlKCkgPT0gUmVsYXRpdmU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50
IGUKIAogICAgICAgICAgICAgICAgICAgICBMZW5ndGggY2VsbExvZ2ljYWxXaWR0aCA9IGNlbGwt
PnN0eWxlT3JDb2xMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IFdoYXQgaXMgdGhpcyBhcmJpdHJhcnkgdmFsdWU/Ci0gICAgICAgICAgICAgICAgICAgIGlmIChj
ZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkgPiAzMjc2MCkKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IDMyNzYwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgzMjc2MCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzTmVnYXRpdmUoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNlbGxMb2dpY2FsV2lkdGguc2V0VmFsdWUoMCk7CkBAIC0xMDUsMTMgKzEwNSwxMyBA
QCB2b2lkIEF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKGludCBlCiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAg
ICAgICAgICAgICAgICAgICAgICAgbV9oYXNQZXJjZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxh
eW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC52YWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0
aDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBj
YXNlIFJlbGF0aXZlOgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8g
dW5kZXJzdGFuZCB0aGlzIGNhc2UgYW5kIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFy
ZSB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGFyZSBub3QgbmVjZXNz
YXJpbHkgb2YgdGhlIHNhbWUgdHlwZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxs
TG9naWNhbFdpZHRoLmlzQXV0bygpIHx8IChjZWxsTG9naWNhbFdpZHRoLmlzUmVsYXRpdmUoKSAm
JiBjZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJh
d1ZhbHVlKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgu
aXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpICYmIGNlbGxMb2dpY2Fs
V2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudmFsdWUoKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aCA9IGNlbGxM
b2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKQEAgLTIzMiwxNiArMjMyLDE2IEBAIHZvaWQgQXV0b1RhYmxlTGF5
b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KIAogICAgIC8vIFdlIHN1YnN0aXR1dGUgMCBwZXJjZW50
IGJ5IChlcHNpbG9uIC8gcGVyY2VudFNjYWxlRmFjdG9yKSBwZXJjZW50IGluIHR3byBwbGFjZXMg
YmVsb3cgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyby4KICAgICAvLyBGSVhNRTogSGFuZGxlIHRo
ZSAwJSBjYXNlcyBwcm9wZXJseS4KLSAgICBjb25zdCBpbnQgZXBzaWxvbiA9IDE7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDEgLyAxMjguMDsKIAotICAgIGludCByZW1haW5pbmdQZXJjZW50
ID0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yOworICAgIGZsb2F0IHJlbWFpbmluZ1BlcmNlbnQg
PSAxMDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheW91dFN0cnVjdC5zaXplKCk7
ICsraSkgewogICAgICAgICBtaW5XaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVN
aW5Mb2dpY2FsV2lkdGg7CiAgICAgICAgIG1heFdpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVm
ZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgaWYgKHNjYWxlQ29sdW1ucykgewogICAg
ICAgICAgICAgaWYgKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gbWluKG1fbGF5b3V0U3Ry
dWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpLCByZW1haW5pbmdQZXJjZW50
KTsKLSAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9h
dD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBl
cmNlbnRTY2FsZUZhY3RvciAvIG1heChwZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAgICAgICAg
ICBmbG9hdCBwZXJjZW50ID0gbWluKHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtp
XS5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpKSwgcmVtYWluaW5nUGVyY2VudCk7Cisg
ICAgICAgICAgICAgICAgZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1f
bGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgLyBtYXgocGVy
Y2VudCwgZXBzaWxvbik7CiAgICAgICAgICAgICAgICAgbWF4UGVyY2VudCA9IG1heChsb2dpY2Fs
V2lkdGgsICBtYXhQZXJjZW50KTsKICAgICAgICAgICAgICAgICByZW1haW5pbmdQZXJjZW50IC09
IHBlcmNlbnQ7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEF1
dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgfQogCiAgICAgaWYgKHNjYWxl
Q29sdW1ucykgewotICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3RvciAvIG1heChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9uKTsKKyAg
ICAgICAgbWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgLyBtYXgocmVtYWluaW5n
UGVyY2VudCwgZXBzaWxvbik7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBzdGF0
aWNfY2FzdDxpbnQ+KG1pbihtYXhOb25QZXJjZW50LCBJTlRfTUFYIC8gMi4wZikpKTsKICAgICAg
ICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1heFBlcmNl
bnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAgIH0KQEAgLTI2Niw2ICsyNjYsMTAgQEAgdm9pZCBB
dXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogICAgICAgICBtaW5XaWR0aCA9IG1h
eChtaW5XaWR0aCwgdGFibGVMb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIG1heFdpZHRo
ID0gbWluV2lkdGg7CiAgICAgfQorICAgIAorICAgIC8vIGlmIHRoZXJlIHdhcyBubyByZW1haW5p
bmcgcGVyY2VudCwgbWF4V2lkdGggaXMgaW52YWxpZC4KKyAgICBpZiAoIXJlbWFpbmluZ1BlcmNl
bnQgJiYgbWF4Tm9uUGVyY2VudCkKKyAgICAgICAgbWF4V2lkdGggPSBpbnRNYXhGb3JMZW5ndGg7
ICAgICAgICAKIH0KIAogLyoKQEAgLTMwMCw3ICszMDQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0
OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgIHNpemVfdCBsYXN0Q29sID0gZWZmQ29sOwog
ICAgICAgICBpbnQgY2VsbE1pbkxvZ2ljYWxXaWR0aCA9IGNlbGwtPm1pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwogICAgICAgICBmbG9hdCBjZWxsTWF4
TG9naWNhbFdpZHRoID0gY2VsbC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBzcGFjaW5n
SW5Sb3dEaXJlY3Rpb247Ci0gICAgICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAgICAgICBm
bG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogICAgICAgICBpbnQgc3Bhbk1pbkxvZ2ljYWxXaWR0aCA9
IDA7CiAgICAgICAgIGZsb2F0IHNwYW5NYXhMb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBib29s
IGFsbENvbHNBcmVQZXJjZW50ID0gdHJ1ZTsKQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgICAgICBMYXlvdXQmIGNvbHVt
bkxheW91dCA9IG1fbGF5b3V0U3RydWN0W2xhc3RDb2xdOwogICAgICAgICAgICAgc3dpdGNoIChj
b2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBQZXJj
ZW50OgotICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNh
bFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENvbHNB
cmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTMzOSw3ICszNDMsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZm
ZWN0aXZlTG9naWNhCiAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5lZmZlY3RpdmVM
b2dpY2FsV2lkdGggPSBMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgYWxsQ29sc0FyZVBl
cmNlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucmF3
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91
dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENv
bHNBcmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFjb2x1
bW5MYXlvdXQuZW1wdHlDZWxsc09ubHkpCkBAIC0zNTQsMTQgKzM1OCwxNCBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAKICAgICAgICAgLy8gYWRqdXN0IHRhYmxl
IG1heCB3aWR0aCBpZiBuZWVkZWQKICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQZXJj
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRo
LnJhd1ZhbHVlKCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3Rh
bFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSB8fCBhbGxDb2xzQXJlUGVyY2Vu
dCkgewogICAgICAgICAgICAgICAgIC8vIGNhbid0IHNhdGlmeSB0aGlzIGNvbmRpdGlvbiwgdHJl
YXQgYXMgdmFyaWFibGUKICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoID0gTGVuZ3Ro
KCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0
aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBjZWxsTWF4
TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gbWF4KG1h
eExvZ2ljYWxXaWR0aCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1heChzcGFuTWF4TG9naWNhbFdpZHRo
LCBjZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAgLyBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQo
KSkpOwogCiAgICAgICAgICAgICAgICAgLy8gYWxsIG5vbiBwZXJjZW50IGNvbHVtbnMgaW4gdGhl
IHNwYW4gZ2V0IHBlcmNlbnQgdmFsdWVzIHRvIHN1bSB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAg
ICAgICAgaW50IHBlcmNlbnRNaXNzaW5nID0gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIC0g
dG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnRNaXNzaW5nID0gY2Vs
bExvZ2ljYWxXaWR0aC5wZXJjZW50KCkgLSB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAg
ZmxvYXQgdG90YWxXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3Mg
PSBlZmZDb2w7IHBvcyA8IGxhc3RDb2w7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkp
CkBAIC0zNzAsNyArMzc0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYQogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7IHBvcyA8
IGxhc3RDb2wgJiYgdG90YWxXaWR0aCA+IDA7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gc3RhdGljX2Nhc3Q8
aW50PihwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtw
b3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0b3RhbFdpZHRoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSBwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0
PGZsb2F0PihtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0
b3RhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXaWR0aCAtPSBtX2xheW91
dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHBlcmNlbnRNaXNzaW5nIC09IHBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocGVyY2VudCA+IDApCkBAIC00OTEsNyArNDk1LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlv
dXQ6OmxheW91dCgpCiAgICAgaW50IG51bUZpeGVkID0gMDsKICAgICBmbG9hdCB0b3RhbEF1dG8g
PSAwOwogICAgIGZsb2F0IHRvdGFsRml4ZWQgPSAwOwotICAgIGludCB0b3RhbFBlcmNlbnQgPSAw
OworICAgIGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgaW50IGFsbG9jQXV0byA9IDA7CiAg
ICAgdW5zaWduZWQgbnVtQXV0b0VtcHR5Q2VsbHNPbmx5ID0gMDsKIApAQCAtNTA0LDcgKzUwOCw3
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICBzd2l0Y2ggKGxvZ2lj
YWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgaGF2
ZVBlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0
aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0aC5w
ZXJjZW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAg
ICAgICAgICAgIHRvdGFsUmVsYXRpdmUgKz0gbG9naWNhbFdpZHRoLnZhbHVlKCk7CkBAIC01Mzgs
OSArNTQyLDkgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgICAgICAg
ICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBlcmNlbnQg
PiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+
IDEwMCkgewogICAgICAgICAgICAgLy8gcmVtb3ZlIG92ZXJhbGxvY2F0ZWQgc3BhY2UgZnJvbSB0
aGUgbGFzdCBjb2x1bW5zCi0gICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dpY2FsV2lk
dGggKiAodG90YWxQZXJjZW50IC0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSAvICgxMDAgKiBw
ZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNh
bFdpZHRoICogKHRvdGFsUGVyY2VudCAtIDEwMCkgLyAxMDA7CiAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gbkVmZkNvbHMgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgICAgIGlmICht
X2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lkdGggPSBtX2xheW91dFN0cnVjdFtp
XS5jb21wdXRlZExvZ2ljYWxXaWR0aDsKQEAgLTYwNywxMyArNjExLDEzIEBAIHZvaWQgQXV0b1Rh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIH0KIAogICAgIC8vIHNwcmVhZCBvdmVyIHBlcmNlbnQg
Y29sdW1zCi0gICAgaWYgKGF2YWlsYWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVy
Y2VudCA8IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgIGlmIChhdmFpbGFibGUgPiAw
ICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDApIHsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBuRWZmQ29sczsgKytpKSB7CiAgICAgICAgICAgICBMZW5ndGgmIGxv
Z2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aDsKICAg
ICAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpIC8gdG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRo
ID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnBlcmNlbnQoKSAvIHRvdGFsUGVyY2VudDsKICAg
ICAgICAgICAgICAgICBhdmFpbGFibGUgLT0gY2VsbExvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50IC09IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAg
ICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggKz0gY2VsbExvZ2lj
YWxXaWR0aDsKICAgICAgICAgICAgICAgICBpZiAoIWF2YWlsYWJsZSB8fCAhdG90YWxQZXJjZW50
KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDggQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGlu
dAogICAgICAgICAgICAgICAgICAgICBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uID0gbV90
YWJsZS0+c3Bhbk9mRWZmQ29sKGN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAoKHcuaXNGaXhlZCgpIHx8IHcuaXNQZXJjZW50KCkp
ICYmIHcuaXNQb3NpdGl2ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVu
dEVmZmVjdGl2ZUNvbHVtbl0uc2V0VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAqIHNwYW5J
bkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOworICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1
cnJlbnRFZmZlY3RpdmVDb2x1bW5dID0gdzsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtj
dXJyZW50RWZmZWN0aXZlQ29sdW1uXSAqPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwog
ICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGggKz0gZWZmV2lkdGggKiBzcGFuSW5DdXJyZW50
RWZmZWN0aXZlQ29sdW1uOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzcGFu
IC09IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47CkBAIC0xNjQsMTAgKzE2NSwxMSBAQCBp
bnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkoaW50CiAgICAgICAgICAgICAgICAg
aW50IHVzZWRTcGFuID0gMDsKICAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgICAg
ICAgICAgd2hpbGUgKHVzZWRTcGFuIDwgc3BhbiAmJiBjQ29sICsgaSA8IG5FZmZDb2xzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGludCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29s
ICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9m
RWZmQ29sKGNDb2wgKyBpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBzZXQgaWYgbm8g
Y29sIGVsZW1lbnQgaGFzIGFscmVhZHkgc2V0IGl0LgogICAgICAgICAgICAgICAgICAgICBpZiAo
bV93aWR0aFtjQ29sICsgaV0uaXNBdXRvKCkgJiYgdy50eXBlKCkgIT0gQXV0bykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0uc2V0VmFsdWUody50eXBlKCksIHcu
cmF3VmFsdWUoKSAqIGVTcGFuIC8gc3Bhbik7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dp
ZHRoW2NDb2wgKyBpXSA9IHc7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wg
KyBpXSAqPSBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGgg
Kz0gZWZmV2lkdGggKiBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgdXNlZFNwYW4gKz0gZVNwYW47CkBAIC0yMzQsNyArMjM2LDcgQEAgdm9p
ZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGludCBhdXRvU3BhbiA9IDA7CiAgICAg
aW50IHRvdGFsRml4ZWRXaWR0aCA9IDA7CiAgICAgaW50IHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
LSAgICBpbnQgdG90YWxSYXdQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAw
OwogCiAgICAgLy8gQ29tcHV0ZSByZXF1aXJlbWVudHMgYW5kIHRyeSB0byBzYXRpc2Z5IGZpeGVk
IGFuZCBwZXJjZW50IHdpZHRocy4KICAgICAvLyBQZXJjZW50YWdlcyBhcmUgb2YgdGhlIHRhYmxl
J3Mgd2lkdGgsIHNvIGZvciBleGFtcGxlCkBAIC0yNDcsNyArMjQ5LDcgQEAgdm9pZCBGaXhlZFRh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0uaXNQZXJj
ZW50KCkpIHsKICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0uY2FsY1ZhbHVl
KHRhYmxlTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoICs9IGNh
bGNXaWR0aFtpXTsKLSAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ldLnJh
d1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV93aWR0aFtpXS5wZXJjZW50
KCk7CiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5pc0F1dG8oKSkgewogICAgICAgICAg
ICAgbnVtQXV0bysrOwogICAgICAgICAgICAgYXV0b1NwYW4gKz0gbV90YWJsZS0+c3Bhbk9mRWZm
Q29sKGkpOwpAQCAtMjcwLDExICsyNzIsMTEgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlv
dXQoKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKHRvdGFsUmF3UGVyY2VudCkgeworICAgICAgICAgICAgaWYg
KHRvdGFsUGVyY2VudCkgewogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
ICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0
YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQo
KSAqICh0YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFBlcmNlbnQ7
CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhb
aV07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNp
b24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdo
dC50eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAg
ICAgICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dp
Y2FsSGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dM
b2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2Fs
SGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246
OmxheW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdo
dC5pc0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNl
IGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVy
Y2VudCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAg
ICAgIC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwot
ICAgICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2Vu
dFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNl
bnQsIDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBd
OwogICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAg
ICAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVp
Z2h0LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihk
aCwgKHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgx
MDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50
IHRvQWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFty
XS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmlu
ayB0aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRs
b29rIFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0Fk
ZCk7CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAg
ICAgZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dy
aWRbcl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3Rh
bFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAg
ICAgICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lv
biA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhh
c0JvcmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRo
KCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJv
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lk
dGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNa
ZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVm
dC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0
aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2Jv
dHRvbVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21S
aWdodC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAz
LTA5ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBh
cmUgaW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMt
MDkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24t
aW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gODAzODEpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5j
aGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotNDE0Y2FhYTJlZTA5ODIzZmNjNmIx
MjAwZDMwZWMxMjcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitjNmQ5MDU1MzQxYTk5MDQ5
MjljY2M0OTQ3NmM3YmQ5ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3Mv
cGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwMzgxKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDU4NQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0NCkgc2l6
ZSA5MTB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQg
W2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0OCkg
c2l6ZSA5MTB4NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAw
eDQgW2JnY29sb3I9IzAwMDAwMDdGXQorICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgMTAxeDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw1Mikgc2l6ZSA5MDB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw1Nikgc2l6ZSA4OTB4NApAQCAtNDksNyArNDksNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg1ODUKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODQpIHNp
emUgODQweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0
IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODgp
IHNpemUgODM1eDQKLSAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEw
MHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsOTIpIHNpemUgODI1eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsOTYpIHNpemUgODE1eDQKQEAgLTg0LDYxICs4NCw2MSBAQCBsYXllciBh
dCAoOCwxMjYpIHNpemUgMTAwMHgyMAogICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDApIHNp
emUgMTAwMHgyMAogICAgIFJlbmRlclRhYmxlU2VjdGlvbiB7VEJPRFl9IGF0ICgwLDApIHNpemUg
MTAwMHgyMAogICAgICAgUmVuZGVyVGFibGVSb3cge1RSfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAK
LSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMSkgc2l6ZSAxMXgxOCBbYmdjb2xv
cj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDAsMSkgc2l6ZSAxMngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJz
PTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4
CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDExLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9MSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQog
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjEsMSkgc2l6ZSAxM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0y
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyLDEpIHNpemUg
MTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgzNCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTMgcnM9MSBjcz0x
XQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzUsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDQ0LDEpIHNp
emUgMTV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NCBycz0xIGNzPTFdCisgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NSwxKSBzaXplIDE2eDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNTksMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz01IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDYxLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9NSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2OSwxKSBzaXplIDE3eDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNzEsMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDg2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9NyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4OCwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoOTYsMSkgc2l6ZSAyMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz04IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk4LDEpIHNpemUgMjB4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MTYsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05IHJzPTEgY3M9MV0K
KyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDExOCwxKSBzaXplIDEweDE4IFtiZ2Nv
bG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTkgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI2LDEpIHNp
emUgMjF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQorICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI4LDEpIHNpemUgMjJ4MTggW2JnY29sb3I9IzAw
MDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTQ3LDEpIHNpemUgMTB4
MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTEgcnM9MSBjcz0xXQorICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMTUwLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9MTEgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTU3LDEpIHNpemUgMjN4MTggW2Jn
Y29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTIgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMTYwLDEpIHNpemUgMjR4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0w
IGM9MTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTgwLDEwKSBzaXplIDEweDAgW2JnY29sb3I9
IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMTkwLDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTQg
cnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTg0LDEwKSBzaXpl
IDEweDAgW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQorICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTk0LDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAw
MDdGXSBbcj0wIGM9MTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjE1LDEpIHNpemUgMTB4MTgg
W2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTUgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMjE5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9MTUgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjI1LDEpIHNpemUgMjd4MTggW2JnY29s
b3I9IzAwMDAwMDdGXSBbcj0wIGM9MTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjI5LDEpIHNpemUgMjd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MTYgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjUyLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAw
RkYwMDdGXSBbcj0wIGM9MTcgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMjU2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTcgcnM9
MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMjYyLDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdG
XSBbcj0wIGM9MTggcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MjY2LDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTggcnM9MSBjcz0x
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMjkyLDEpIHNpemUgNzA4eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCisg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyOTYsMSkgc2l6ZSA3MDR4MTggW3I9MCBj
PTE5IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2Vy
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFl
QUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpT
ZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10
cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxW
ZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENs
a1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJ
TklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5
NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRT
ZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVG
NWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1
VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5
dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4
WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhX
YzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4
a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNK
OTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lY
djlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2
Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cv
YkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNkM1k5Y2Qza0g4
Ti91enZvMXRoTW5oQkFnT0MxRkNTaThWb0NFb0VqUUM3amhraGR4eVExYzhDOGtsdmdUa0xqaApF
Z2tRTnlCVkJVRkJGRlZDYlZvRkphVTBLYVNFa2xMeTRyd250bmZ0N2U4NXlURzdqc2ZPYU02YXgv
dDhSbHJQN3N3NVo1N244K3pNCm51K2VNOTZWclg1cExnUUlFQ0JBZ0FBQkFnUUlFTGdLQXF0WDRU
RThCQUVDQkFnUUlFQ0FBQUVDQkFZQkFjUTNBZ0VDQkFnUUlFQ0EKQUFFQ1YwMUFBTGxxMUI2SUFB
RUNCQWdRSUVDQUFBRUJ4UGNBQVFJRUNCQWdRSUFBQVFKWFRVQUF1V3JVSG9nQUFRSUVDQkFnUUlB
QQpBUUhFOXdBQkFnUUlFQ0JBZ0FBQkFsZE5RQUM1YXRRZWlBQUJBZ1FJRUNCQWdBQ0IyWlVJVms2
dVhHa1I5MTlGZ2EyNy9kbVdxOGp0Cm9RZ1FJRUNBQUFFQ0JDWVdjQVJrWWxDYkkwQ0FBQUVDQkFn
UUlFQmd2b0FBTXQvR1BRUUlFQ0JBZ0FBQkFnUUlUQ3dnZ0V3TWFuTUUKQ0JBZ1FJQUFBUUlFQ013
WEVFRG0yN2lIQUFFQ0JBZ1FJRUNBQUlHSkJRU1FpVUZ0amdBQkFnUUlFQ0JBZ0FDQitRSUN5SHdi
OXhBZwpRSUFBQVFJRUNCQWdNTEdBQURJeHFNMFJJRUNBQUFFQ0JBZ1FJREJmUUFDWmIrTWVBZ1FJ
RUNCQWdBQUJBZ1FtRmhCQUpnYTFPUUlFCkNCQWdRSUFBQVFJRTVnc0lJUE50M0VPQUFBRUNCQWdR
SUVDQXdNUUNBc2pFb0RaSGdBQUJBZ1FJRUNCQWdNQjhBUUZrdm8xN0NCQWcKUUlBQUFRSUVDQkNZ
V0VBQW1SalU1Z2dRSUVDQUFBRUNCQWdRbUM4Z2dNeTNjUThCQWdRSUVDQkFnQUFCQWhNTENDQVRn
OW9jQVFJRQpDQkFnUUlBQUFRTHpCUVNRK1RidUlVQ0FBQUVDQkFnUUlFQmdZZ0VCWkdKUW15TkFn
QUFCQWdRSUVDQkFZTDZBQURMZnhqMEVDQkFnClFJQUFBUUlFQ0V3c0lJQk1ER3B6QkFnUUlFQ0FB
QUVDQkFqTUZ4QkE1dHU0aHdBQkFnUUlFQ0JBZ0FDQmlRVUVrSWxCYlk0QUFRSUUKQ0JBZ1FJQUFn
ZmtDQXNoOEcvY1FJRUNBQUFFQ0JBZ1FJREN4Z0FBeU1hak5FU0JBZ0FBQkFnUUlFQ0F3WDBBQW1X
L2pIZ0lFQ0JBZwpRSUFBQVFJRUpoWVFRQ1lHdFRrQ0JBZ1FJRUNBQUFFQ0JPWUxDQ0R6YmR4RGdB
QUJBZ1FJRUNCQWdNREVBZ0xJeEtBMlI0QUFBUUlFCkNCQWdRSURBZkFFQlpMNk5ld2dRSUVDQUFB
RUNCQWdRbUZoQUFKa1kxT1lJRUNCQWdBQUJBZ1FJRUpndklJRE10M0VQQVFJRUNCQWcKUUlBQUFR
SVRDd2dnRTRQYUhBRUNCQWdRSUVDQUFBRUM4d1VFa1BrMjdpRkFnQUFCQWdRSUVDQkFZR0lCQVdS
aVVKc2pRSUFBQVFJRQpDQkFnUUdDK2dBQXkzOFk5QkFnUUlFQ0FBQUVDQkFoTUxDQ0FUQXhxY3dR
SUVDQkFnQUFCQWdRSXpCY1FRT2JidUljQUFRSUVDQkFnClFJQUFnWWtGQkpDSlFXMk9BQUVDQkFn
UUlFQ0FBSUg1QWdMSWZCdjNFQ0JBZ0FBQkFnUUlFQ0F3c1lBQU1qR296UkVnUUlBQUFRSUUKQ0JB
Z01GOUFBSmx2NHg0Q0JBZ1FJRUNBQUFFQ0JDWVdFRUFtQnJVNUFnUUlFQ0JBZ0FBQkFnVG1Dd2dn
ODIzY1E0QUFBUUlFQ0JBZwpRSURBeEFJQ3lNU2dOa2VBQUFFQ0JBZ1FJRUNBd0h3QkFXUytqWHNJ
RUNCQWdBQUJBZ1FJRUpoWVFBQ1pHTlRtQ0JBZ1FJQUFBUUlFCkNCQ1lMeUNBekxkeER3RUNCQWdR
SUVDQUFBRUNFd3NJSUJPRDJod0JBZ1FJRUNCQWdBQUJBdk1GQkpENU5pbnZPWG55Wk1xNkZFV0EK
QUFFQ0JBZ1FJRURndFFnSUlLOUZ5VElFQ0JBZ1FJQUFBUUlFQ0V3aUlJQk13bWdqQkFnUUlFQ0FB
QUVDQkFpOEZnRUI1TFVvV1lZQQpBUUlFQ0JBZ1FJQUFnVWtFVnJiNjVYSmJXam01Y3JtNzNYZVZC
YmJ1dnV5NHJuSTFIbzRBQVFJRUNCQWdRSURBWWdLT2dDem1aV2tDCkJBZ1FJRUNBQUFFQ0JKWVFF
RUNXd0xNcUFRSUVDQkFnUUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JF
cUEKQUFFQ0JBZ1FJRUNBd0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdB
QUJBZ1FJRUNDd21JQUFzcGlYcFFrUQpJRUNBQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFR
SUVDQ3dtSUlBczVtVnBBZ1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDCkJBZ1FJRUNBQUFFQ2l3
a0lJSXQ1V1pvQUFRSUVDQkFnUUlBQWdTVUVCSkFsOEt4S2dBQUJBZ1FJRUNCQWdNQmlBZ0xJWWw2
V0prQ0EKQUFFQ0JBZ1FJRUJnQ1FFQlpBazhxeElnUUlBQUFRSUVDQkFnc0ppQUFMS1lsNlVKRUNC
QWdBQUJBZ1FJRUZoQ1FBQlpBcytxQkFnUQpJRUNBQUFFQ0JBZ3NKaUNBTE9abGFRSUVDQkFnUUlB
QUFRSUVsaEFRUUpiQXN5b0JBZ1FJRUNCQWdBQUJBb3NKQ0NDTGVWbWFBQUVDCkJBZ1FJRUNBQUlF
bEJBU1FKZkNzU29BQUFRSUVDQkFnUUlEQVlnSUN5R0plbGlaQWdBQUJBZ1FJRUNCQVlBa0JBV1FK
UEtzU0lFQ0EKQUFFQ0JBZ1FJTENZZ0FDeW1KZWxDUkFnUUlBQUFRSUVDQkJZUWtBQVdRTFBxZ1FJ
RUNCQWdBQUJBZ1FJTENZZ2dDem1aV2tDQkFnUQpJRUNBQUFFQ0JKWVFFRUNXd0xNcUFRSUVDQkFn
UUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JFcUFBQUVDCkJBZ1FJRUNB
d0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdBQUJBZ1FJRUNDd21JQUFz
cGlYcFFrUUlFQ0EKQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFRSUVDQ3dtSUlBczVtVnBB
Z1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDQkFnUQpJRUNBQUFFQ2l3a0lJSXQ1V1pvQUFRSUVD
QkFnUUlBQWdTVUVCSkFsOFA0Y3E1NDhlZkxQOGJBZWt3QUJBZ1FJRUNCQWdNQWtBZ0xJCkpJdzJR
b0FBQVFJRUNCQWdRSURBYXhFUVFGNkxrbVVJRUNCQWdBQUJBZ1FJRUpoRVFBQ1poTkZHQ0JBZ1FJ
QUFBUUlFQ0JCNExRSXIKVy8xeXVRVlhUcTVjN203M1hXV0JyYnN2TzY2clhJMkhJMENBQUFFQ0JB
Z1FJTENZZ0NNZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRQprQ1h3ckVxQUFBRUNCQWdRSUVDQXdH
SUNBc2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBCnNw
aVhwUWtRSUVDQUFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdR
SUVDQkFnQUFCQWdTV0VMamkKM3dGWll0dFdKVUNBQUFFQ0JBZ1FJRUNBd0E0QlIwQjJjUGlDQUFF
Q0JBZ1FJRUNBQUlIZEZCQkFkbFBYdGdrUUlFQ0FBQUVDQkFnUQoyQ0VnZ096ZzhBVUJBZ1FJRUNC
QWdBQUJBcnNwSUlEc3BxNXRFeUJBZ0FBQkFnUUlFQ0N3UTBBQTJjSGhDd0lFQ0JBZ1FJQUFBUUlF
CmRsTkFBTmxOWGRzbVFJQUFBUUlFQ0JBZ1FHQ0hnQUN5ZzhNWEJBZ1FJRUNBQUFFQ0JBanNwb0FB
c3B1NnRrMkFBQUVDQkFnUUlFQ0EKd0E0QkFXUUhoeThJRUNCQWdBQUJBZ1FJRU5oTkFRRmtOM1Z0
bXdBQkFnUUlFQ0JBZ0FDQkhRSUN5QTRPWHhBZ1FJQUFBUUlFQ0JBZwpzSnNDQXNodTZ0bzJBUUlF
Q0JBZ1FJQUFBUUk3QkFTUUhSeStJRUNBQUFFQ0JBZ1FJRUJnTndVRWtOM1V0VzBDQkFnUUlFQ0FB
QUVDCkJIWUlDQ0E3T0h4QmdBQUJBZ1FJRUNCQWdNQnVDZ2dndTZscjJ3UUlFQ0JBZ0FBQkFnUUk3
QkFRUUhadytJSUFBUUlFQ0JBZ1FJQUEKZ2QwVW1GMXA0eXNuVjY2MHlKL3V2NmQvZXZlZnZwejdX
U3gzY3U2OWw3NGoxdG10YlkrUEdJOFJseXM5emozRFVvdjM4TXBxdzlXNApqYXZ4V0JrZU4yb1ll
NDdQTDlmMzl1VVcvVDZKYlYvdWNzOUZkODZyNCtMbHBxNGp5cmo0TWY2Y3RVUTljYmxuK1BkUC8y
U282VS9WCkRKL2RzNjNJdSsrZVYrQkZLL21TQUFFQ0JBZ1FTQ1BnQ0VpYVVTaUVBQUVDQkFnUUlF
Q0F3TjRYRUVEMi9veDFTSUFBQVFJRUNCQWcKUUNDTmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JR
U1F2VDlqSFJJZ1FJQUFBUUlFQ0JCSUl5Q0FwQm1GUWdnUUlFQ0FBQUVDQkFqcwpmUUVCWk8vUFdJ
Y0VDQkFnUUlBQUFRSUUwZ2dJSUdsR29SQUNCQWdRSUVDQUFBRUNlMTlBQU5uN005WWhBUUlFQ0JB
Z1FJQUFnVFFDCkFraWFVU2lFQUFFQ0JBZ1FJRUNBd040WEVFRDIvb3gxU0lBQUFRSUVDQkFnUUND
TmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JRU1EKdlQ5akhSSWdRSUFBQVFJRUNCQklJeUNBcEJt
RlFnZ1FJRUNBQUFFQ0JBanNmUUVCWk8vUFdJY0VDQkFnUUlBQUFRSUUwZ2dJSUdsRwpvUkFDQkFn
UUlFQ0FBQUVDZTE5QUFObjdNOVloQVFJRUNCQWdRSUFBZ1RRQ0FraWFVU2lFQUFFQ0JBZ1FJRUNB
d040WEVFRDIvb3gxClNJQUFBUUlFQ0JBZ1FDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNCVmEy
K21YdnQ2bERBZ1FJRUNCQWdBQUJBZ1F5Q0RnQ2ttRUsKYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpv
YlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSQpFQ0JB
Z0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1B
Z0pJaGltb2dRQUJBZ1FJCkVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJ
RUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUkKRU1nZ0lJQmttSUlhQ0JBZ1FJQUFB
UUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRQpC
SkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdB
QUJBZ1FJRUNCQUlJT0FBSkpoCkNtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JB
Z1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0UKQ0JBZ1FJQUFBUUlFTWdnSUlC
bW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJ
RQpDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNC
UVJFQUFLVEpvYlJJZ1FJQUFBUUlFCkNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4
YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkYKQkFTUUlvUFdKZ0VDQkFn
UUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NE
Z0FDUwpZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlh
Q0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiCkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JB
Z0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUMKQkFnUUlFQ0FRQkVC
QWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJ
RUNBQUFFQwpCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFB
UUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDClJRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNT
SVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUEKa21FS2FpQkFn
QUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JB
Z1VFUkJBaWd4YQptd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlv
UFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCCkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFR
SUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUIKQWdRSUVN
Z2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFB
R0FnUUlFQ0JBZ0FBQgpBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFn
UUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BCkFKSmhDbW9nUUlBQUFRSUVDQkFnVUVS
QUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb00KV3Bz
RUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JB
Z0FDQkRBSUNTSVlwcUlFQQpBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFB
a21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBCkFRSUVDQkRJSUNDQVpKaUNHZ2dR
SUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUEK
QVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5
S0MxU1lBQUFRSUVDQkFnUUNDRApnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFn
QUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLCkRGcWJCQWdRSUVDQUFBRUNC
RElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0th
aUIKQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFR
SUVDQkFnVUVSQUFDa3lhRzBTSUVDQQpBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZC
RVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBCkFBRUNSUVFFa0NLRDFp
WUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFn
UUlFQWcKZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUND
QVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQQppZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJ
RUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vCmdRQUJBZ1FJRUNC
QWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFw
TW1odEVpQkEKZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdR
SUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQQpnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFB
Z1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBCklJT0FBSkpo
Q21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFn
QUFCQWdRSUZCRVEKUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNS
UVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcApxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0
VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnClFJQUFB
UUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNB
Z2dHYWFnQmdJRUNCQWcKUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dR
QUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZwpRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JB
Z1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSCkVF
Q0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJ
RUNCQWdRSUFBZ1F3Q0FraUcKS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNC
QUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwUwpJRUNBQUFFQ0JBZ1F5Q0FnZ0dT
WWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdR
CklFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJB
RVFFQnBNaWd0VW1BQUFFQ0JBZ1EKSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpv
YlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVQpFUkJBaWd4YW13UUlFQ0JB
Z0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1B
Z0pJCmhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJ
RUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHQKRWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFB
UUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSQpFQ0JBZ0FBQkFrVUVC
SkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdB
QUJBZ1FJCkVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JB
Z1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUkKRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlC
bW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQwpTSVlwcUlFQUFR
SUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNC
UVJFQUFLVEpvCmJSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4
YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUUKQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFn
UUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRQpDQkFnUUND
RGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlh
Q0JBZ1FJQUFBUUlFCkNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JB
Z0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0MKQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVC
QWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreQphRzBT
SUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFB
UUlFTWdnSUlCbW1vQVlDCkJBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNT
SVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUMKQkFnUUlFQWdnNEFBa21FS2FpQkFn
QUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQwpC
QWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlv
UFdKZ0VDQkFnUUlFQ0FBSUVNCkFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFR
SUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXAKTW1odEVpQkFnQUFCQWdRSUVN
Z2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFB
RwpBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFn
UUlFQ0FRQkVCQWFUSW9MVkpnQUFCCkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVS
QUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUIKQWdRSUZCRVFRSW9NV3Bz
RUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JB
Z0FDQgpEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFB
a21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBCktUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dR
SUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWcKQmdJRUNCQWdRSUFB
QVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5
S0MxU1lBQQpBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFn
QUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBCkFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNC
RElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUEKZ1F3Q0FraUdL
YWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFR
SUVDQkFnVUVSQQpBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZC
RVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tCm9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFp
WUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUEKQUFFQ0JB
Z1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUND
QVpKaUNHZ2dRSUVDQQpBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJ
RUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBCkFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNC
QWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkUKUUFB
cE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdR
SUVDQUFBRUNCRElJQ0NBWgpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFB
Z1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKCmdBQUJBZ1FJRUNCQUlJT0FBSkpo
Q21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkEK
Z0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNS
UVFFa0NLRDFpWUJBZ1FJRUNCQQpnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0
VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRClJFQUFLVEpvYlJJZ1FJQUFB
UUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNB
Z2cKR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dR
QUJBZ1FJRUNCQWdFQVJBUUdreUtDMQpTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JB
Z1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnClFJQUFBUUlFQ0JRUkVF
Q0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJ
RUNCQWcKUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNC
QUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZwpVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dT
WWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJCklCbW1vQVlDQkFn
UUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNGWTZXeGtB
QUJkcFNVUkIKVkJBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFC
QWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdV
RVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVD
QkFnUUNDRGdBQ1MKWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJ
SUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYgpCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdB
Z1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDCkJBZ1FJ
RUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFD
a3lhRzBTSUVDQUFBRUMKQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNC
QWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJRUNCQWdB
Q0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBCmtt
RUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVD
QUFBRUNCQWdVRVJCQWlneGEKbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFK
RkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJBUUdreUtD
MVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFC
CkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJ
Q0NBWnBxQUdBZ1FJRUNCQWdBQUIKQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlC
QUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJQUFBUUlF
Q0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFR
SW9NCldwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJB
Z1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUEKQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJ
RUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JESUlDQ0Fa
SmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNC
QWdRSUFBCkFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdF
QVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0QKZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1t
aHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDSwpERnFiQkFnUUlF
Q0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3
Q0FraUdLYWlCCkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21v
Z1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FB
QkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpBQUVDUlFR
RWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1B
QUFFQ0JBZ1FJRUFnCmc0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlF
Q0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdn
R2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltbwpnUUFC
QWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJ
RkJFUUFBcE1taHRFaUJBCmdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tE
RnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZbUFRSUVD
QkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQQpJ
SU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdo
b0lFQ0JBZ0FBQkFnUUlGQkVRClFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlF
Q0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFnUUlCQUVR
RUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJ
ZwpRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FB
QkFnUXlDQWdnR2FhZ0JnSUVDQkFnClFJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdK
SWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZUXBxSUVD
QUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlF
Q0JRUgpFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFp
ZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHCkthaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFC
QWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFMKSUVDQUFBRUNCQWdR
eUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1v
QVlDQkFnUQpJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVD
QkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRCklFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFS
RUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJCQWlneGFt
d1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlF
Q0FBSUVNQWdKSQpoaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdB
Q1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNC
QWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkKRUNCQWdB
QUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFU
SW9MVkpnQUFCQWdRSQpFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVD
QUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJ
RU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUMKU0lZ
cHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFC
QWdRSUVDQlFSRUFBS1RKbwpiUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdV
RVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBQUlFTUFyUHZmdmU3YlRhYnRiVzF0YmErdmo3VXRMVzExVlpYVjl2NTgrZGIK
ZkI2WHMyZlB0dE9uVDErNExaWjNJVUNBQUFFQ0JBZ1FlTFZBN0VldHJLd00rMWp4K2ZqeDZpWGRR
bUI2Z1hQbnpnMzc4T1AzWU96cgpqL3YxNHo1KzNEZGV4djM5K0RydTMvNzF1TXg0L2Roamo3V2Ji
NzU1L1BKVjE3SGRlS3p0bDdHZXVON2MzR3l6alkyTjlwYTN2R1Y0CnNBZ1Y4WUR4RVN2SEFuLzg0
eC9iZmZmL3J2M2JmNjIzWHo2eXIvM1BZN1Ayd3RrSUtuM0RrVTM2aHRwTmg3Yy9oczhKRUNCQWdB
QUIKQXZVRXp2Y2RvOWp2NnZ0UjE4MDIybTAzbkduditjdldQdnJlQSszTnR4NGFmdEViTzNmYmQv
enFJZWw0TndUR3dCRFhzZk1mKy9TeApIeDlmdi9qaWkrMmxsMTVxYjNqREc5cng0OGN2SEdTSTc4
UHhJNEpCWEdMNU1ZRE0rejU5NFlVWDJ1dGYvL3BMdGhIcngzcFJ3L2IxCjQvYTR4TzIvL3ZXdjJ5
d0t1ZjMyMjRjSDI3N2dtVE5uMm4zMzNkZis3a2NQdGgvOSs5SDIwTE0zdGYySDk3Y1AvdTFON2M0
VDE3VWoKaDE0NUF0STNPSXNIT3RlUGx2UW5WZXRoYW1YMjhuVi81TGExMGg4d2tsUi8wUFZZNWR4
V0I0a0d6N1dWZUpMMmo3alordng4LzNqKwplUDN3K3Vubmg1K2Y4VHB3TGU0L3JQWFJiZmFkbmRq
Zk9YM21mUHZQM3ozZmZuN2ZrKzAvN24ycDNmL0ljKzJ6SHozWFB2RHU0MjNmCnZuM0R6bUZmeklY
QVpBS3hnei91NU1kMTdPakhSNFNRdU1UMUk0ODhNbnovM1hubm5jT1J1ZkhCWS85L1hIZThiYnpl
bmczRzI1NTgKOHNraE80eGZqOWZ6dGhIM2ovZEZUYWRPbldxelNFU1JkT0lKTVJZUTRlUGhoeDl1
Ly9EVCs5b1BIamplZm5QbTFyWnkwNng5NklPMwp0SS9lZGF3ZDJyL1dRMGZmV2kvNFhOOVF6eDZ0
UCsvNlAvMVFZd1NRZnQxYmFXdjkvdFgrak94WExYNHBzTldYNjFFbEZ1eGY5L1dHCjI3YmEyZjZK
OWZuNS92SDg4ZnJoOWRQUER6OC9yOVg5aDFkMmk0YjltZmhkOHB0dk85d08zbmlnL2YwLy9xRTk4
TXkrMW43MlpIdlQKRzA2M085NTZwTzNmdjMvWTkrcUx1UkNZUkNCMjdHTW5QejdpYUVaOEhkZXhi
ejkreE5zcGZ2bkxYN1lqUjQ2MEV5ZE9ERWZreG9BUgo2NDJmWDZtZ2VFdkcrTGFOS3kwN2JqZXU0
eEkxUlBZWVRzR0tMK0xKRUE4Y0JjZHBWNy80eFMvYXp4OWNiYi9aZUhOYjZVK2dvMGYzCnRadXVY
eCtlTUp2OW1SVlBydDVtRHhUeFV0SGFtWjR3K3ROckNCcXJzOGdpdzB0SVcrMEx4dHRGdHZyOXNY
U3MyNjk2K0Fpa2xkYlAKQU90ZnIxaWZuKzhmengrdkgvM0YxT3Vubng5K2ZsNmIrdy9ETDFramhR
eVhsMys1ZXZ6b2VqdHkvR0I3WnJiV0huanF4dmFEZjNtNgovZFh0eDRlZHQ5ZTZBemR1MFRXQnl3
bU1BU1N1eC9BUjEzR1FJYjdYNHBTc0NBN1BQUE5NKzlXdmZ0V3V1KzY2ZHNzdHQxd0l3aGVICmp6
aHQ2M3ZmKzE3NzdHYy8rNnFIamJkdlhMeDhMUFROYjM2emZlcFRuMnFIRGgyNnNNNjRYRnhIQ0lu
TUVldjNzNmRXMnZQUFB6OFUKRWtzLzk5eHp3MGU4d2VUaEY5L1VWby8xSjgreC9lM1lkZXZ0OGVk
YmUrcUZyWDRFWkxXdDlaQXhQTS82QVkyTmZnUWpnczFtLy9WbApISUpzWitNSHlHcUxNN0hpNjlY
ekw2ZXZjeEZDdHZyN1RPS0IrbTFuenNVYjNmdWJVWG9vc1Q0LzN6K2VQMTQvdkg3NitlSG41N1c2
Ci94QW5lS3lzRG5zNHd4a2ZzVy96NVBOYjdkaVIyYkRmODF6ZjMvblgzNjhPTzJCeDFzbjRpOS9Z
SlhJaHNLekE5Z0F5dnRGN1BBSVMKcDEvRi9ZY1BIeDQrbm4zMjJSYnY0NGo5LzZOSGoxNElJV01O
UC83eGo0Y3dFYWRhZmU1em54dHZ2bkE5YnZmQ0RhOTg4cDN2ZktmOQo1Q2MvR1VMTHh6NzJzWXZ2
SG1xSXg0enNNVHR3NE1EdzVwUklSSkdPb3FpNDQrbW5uMjVQclA5MU8zSjBmN3ZoMkw0ZVFQYjFO
NSt2CnRIOSt1S2VXMWMxK2FsWEVqNWVEUjV4VUZVKzBlSS9IYW4vUHgvcStuclRhWmo4RnF3ZVEv
akhyeVgrdGg1UE56WDQ0cUgrYzcrRWsKTU9MVXJZMjQ3WlVqSTlibjUvdkg4OGZyaDlkUFB6Lzgv
THdXOXgvNnJ0UHdpOW40TGUrNXN4dDlIeWVPZ216MkFMTGVWdUpVa0g0Ngp6TzlmT05yaU5QZlkz
eEpBWHJWLzZvWWxCTVlBRXVFZ1BzWTNvY2MrZlh6RS9mRS9ZY1gzWGV6elJ3Z2U5L2tQSGp3NDNQ
N1FRdysxCnIzLzk2eTJ1eDFPbXh2ZVFiQzh0dG5XcDIyT2RKNTU0b24zMXExOXRQL3poRDlzWHZ2
Q0Y5cmEzdlczWVZoejFpSU1jY1dRbHNzY3MKQ29qRE01Rkk0aEROV0Z4OHZmOWdhOGY2NGNNNCtu
SDg2SUVXQmE3M01ER2I5Vk94ZXRCWVdlMUhNM29SL1FCUER4TG4ycXkvWXV6cgp6N0cxbmlUaU9N
ZGEvM1ZtdlAwOGJsL3ZUN1o0YzlabVgyNnpQeW5QOTQ4SUlHYzMrbmxxZlducjgvUDk0L25qOWNQ
cnA1OGZmbjVlCnEvc1BzYit6Mm5md3RzNzE4TkYvS2J1eGNhYWRQZjFTTzlOUE5WOVoyV2puTjli
YmMvM3NqOWh4aTMydDJPZUsvUzhYQWxNSWpBRWsKcmlPQWpLZEpqVUVpYmh0UCs0djNZRVFJaUVz
RWd2aTQ5OTU3MjllKzlyVlhsZkw0NDQrLzZyWUlNSmU2UGNMMWVMbi8vdnZibDcvOAo1ZmJGTDM2
eHZlOTk3eHNDVU5ReXZ1OThGc1ZFQ0Jtdm8vQW9PZ3A3L2V6eHRuN2c1bmIwNEw1MjlIQVBJSWNP
dHdQNys3SjkrVGhWCkl0SitYN3dmd1hqNWlNWjZQK2RxdlQrWjRtakhFRHo2NXhGVVpxK2NtdFV6
UjMvaTlZKytUaHlrSEFMSjJjMjJzV1g5ZUVIaTUvdkgKODhmcmg5ZFBQei84L096N0RkZmcvc05h
LzZWcy82OTUrbjVSMy9uclIwRE9ubGx0cDlmN2YvSnorc1crNzdQVk5nN08ydlZubiszNwpSTWVH
ZlM0QlpOeFZkVDJGUU96Y3h6NThmTVJPL25qa1k3dzlqb2lNWVNUZW94SDcvckZNWE9MMkQzM29R
KzExcjN0ZCs4WTN2dEYrCis5dmZEcmZIUDNIRTVPSkxySHVwMjdjSDZoTW5UclRQZi83ekY0NkFq
TFhGWThiMy9uQUVKRFlTSzhWMUxCQnZFTG54eGh2YjY1NzQKWFR0ejRLN2hQUitIRHUxdlIvdHBX
SWNPSCtwUG5uNnFVTHkzSXdKSXI2b0gvZjZtOGg1TSt0ZnhFVytpak45bXh4SEgrQzk2MS9xZgpE
WW5USW1QWnpmNmJnRmgrdUk3d3NqWHJoeWl0ejgvM2orZVAxdyt2bjM1KytQbDU3ZTQvOU4yZnZ0
OHo2NmVhOTQrTi9lMzBTK3Z0CnhkUDlESk4rU3ZycGZoams0SUcxZG1MbDJmNmUyemRlQ0NEakRt
QmYxWVhBVWdKajBJajkrUEg3YXJ3dGZza2RuOGYrZlJ5bGlEL0IKTVFhUVdEYldpY3M3M3ZHTzlw
V3ZmS1g5N0djL2E5LzYxcmN1bkIxMWNXSGpnWXVMYjQ4c0VXOXUvOHhuUHRNKzhwR1BES2VCamR1
UAp4NDg2WXBsWWZ3Z2d3eWV2bkJjMkZ2SFd0NzYxM2ZyUVQ5dWpweDVvNnpkK3NCM29QeGtQOXZC
eDZMcElRNjJ2L1BKUmpQaGZIK0tvClJvU0tmbVpXaXo5UkdPR2t2dzFrT0JleWg1eCtOT1RsOTRM
RVVZOSt3R000K3RIUHZCb09VY2E2RzlibjUvdkg4OGZyaDlkUFB6LzgKL0x5Rzl4LzY3MTc3cWVr
di80SjFzLzluUEd2cmZXZXAvOEd6YzJkUHR4ZlhaKzNJQ3crMDk5OStmbmpUNy9hZHY3NmFDNEZK
Qk9JbwpSMXhpWno5MjlHUG5md3doWXdDSjA2M3V1dXV1QzZkZ2pjdU02OFQxSno3eGlmYmhEMys0
ZmZ2YjM3N2trWTU0TS91bGpvQjg4cE9mCmJKLys5S2VIRUJMYkhjTkhaSXZZYnB4NkdDRmt5QjNq
cVZmaitZaFJlQlQ5Z1E5OG9EMzQ0SU50ODdmM3RkT1A5amRRSGYrYjRROEcKOXFPSlEvaVk5ZWRW
aEl2Ky9xcitCd2o3RTY0SGluNTJWbHZyS1NPQ1NEOEEwbytDOUk5K3ZSTFgvWmtaWWVOQXY3K2Y0
ZFUyZW5DSgpRQkpIUXM1R2lMRStQOTgvbmo5ZVA3eCsrdm5oNStjMXV2OFFmMXg1RENBYlBZREVF
WkdOMC8wL2xZajlvTWZ1Yis4ODhyL3QzWGU4CnZkMXd3dzNEamxqc2E3a1FtRW9nZHZESGd3aXh6
ZGo1SDYvanZqanlFZjhONzgwMzM5emU5YTUzRFNGZ1dPQ1ZmMktaY1oyNEtkNksKOGFVdmZXbkhi
ZVB5eDQ0ZHV4Qmd4dHZpZWx3K3RqVmU0dlB4WXp3Q01weUNGV2xwL0JqVFVoUVFmMkw5NHgvL2VO
djQvdmZiSTMvOApwM2JxM2tmYTJUZS90NTM3aS9lMTYyODUzdGI2KzB3MjRnOS85RXM4VGh6Wk9O
L2Z6N0t2UDUvT1JmTHZmVy8wNEJHQkpRd2lsTVFUCk1sTEhtYjVzUERQalRWcG4rbTN4QndtdHo4
LzNqK2VQMXcrdm4zNSsrUGw1cmU0L0RIR2k3ODhNKzBSOUgrbXAvenZWbnZydi9rdmMKUHp6UTdy
enVwZmIrZDc2dDNYYmJiUmYrUmtLOEtkaUZ3RlFDNDA1K2hKRDQzb3FkL2ZITjZISHFWZnpuVXJH
Ly81NzN2R2Y0cjNqSAp4NDMxWXIvLzR1dngva3RkeHhHUUt3WG83ZHVMejZPdWVQejRQSzVuVVZ4
OHhJUEg5WGlKTzkvKzlyY1BEeER2akgvMDBVZmJpLy96CnZmYk1nOTlzai9kR3hnMXZUMHZqdXE0
SkVDQkFnQUFCQWxVRjRxeVMrSjlEYjczKytuYnI3YmUyRXlmdTZoOG4ydlg5NjloeEcvZTkKcXZy
b2UzcUIyQytQUzN4dnhjNSsvSWRTOFJIaEkvN1hxamlpY2NjZGR3eEhRQ0tjWEh3Wjkrc3Z2djFT
WDhmN1BDNjFqVXN0Rzl1TgpqNmhwREVkUjR5eitLNjc0WXlRUk9MYWZ6eld1RUUrWWVMTktCSkJU
cDA0TnpjUURqTWxuKzFHVFN6Mncyd2dRSUVDQUFBRUNWUVRpCkY3T3hieFNubVVRSWlULzBGcWVz
eEU1YjNEYnVJRmJ4ME9mVkVZaWQrKzA3K21NQWlVZC80eHZmT0h3UHh2ZGw3UE5QY1Zsa094ZUgK
ajhnZS93OU1NeE02S3RqVGxRQUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85957</attachid>
            <date>2011-03-16 12:56:38 -0700</date>
            <delta_ts>2011-03-16 13:44:56 -0700</delta_ts>
            <desc>fixes for mac leopard </desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>54851</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlr
IENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMw
LDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExl
bmd0aCA9IC0xOwotY29uc3QgaW50IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGlu
dCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQg
aW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWlu
IHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIApAQCAtNTIsMzQgKzUyLDM1IEBAIHB1YmxpYzoKICAg
ICBMZW5ndGgoaW50IHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDog
bV9pbnRWYWx1ZSh2KSwgbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAg
ICAgewotICAgICAgICBBU1NFUlQodCAhPSBQZXJjZW50KTsKICAgICB9CiAKICAgICBMZW5ndGgo
ZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0gICAgICAgIDogbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50
Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9p
c0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDogbV9xdWlyayhxKSwgbV90
eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9CiAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgp
ID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90eXBlKSAmJiAobV9xdWly
ayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aCYgbykg
Y29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZsb2F0VmFsdWUoKSkgfHwg
KG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1aXJrKTsgfQogCisgICAg
Y29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGZsb2F0IHYpCisgICAgeyAgICAgICAgCisgICAgICAg
IGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICBtX2Zsb2F0VmFsdWUgKj0gdjsKKyAgICAgICAg
ZWxzZSAgICAgICAgCisgICAgICAgICAgICBtX2ludFZhbHVlICo9IHY7CisgICAgICAgIAorICAg
ICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIAogICAgIGludCB2YWx1ZSgpIGNvbnN0IHsK
LSAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBQZXJjZW50KTsKLSAgICAgICAgcmV0dXJuIHJhd1Zh
bHVlKCk7CisgICAgICAgIHJldHVybiBnZXRJbnRWYWx1ZSgpOwogICAgIH0KIAotICAgIGludCBy
YXdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEludFZhbHVlKCk7IH0KLQotICAgIGRvdWJsZSBw
ZXJjZW50KCkgY29uc3QKKyAgICBmbG9hdCBwZXJjZW50KCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVCh0eXBlKCkgPT0gUGVyY2VudCk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxk
b3VibGU+KHJhd1ZhbHVlKCkpIC8gcGVyY2VudFNjYWxlRmFjdG9yOworICAgICAgICByZXR1cm4g
Z2V0RmxvYXRWYWx1ZSgpOwogICAgIH0KIAogICAgIExlbmd0aFR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PExlbmd0aFR5cGU+KG1fdHlwZSk7IH0KQEAgLTk0LDE4ICs5NSwx
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1ZSkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVCghdmFsdWUgfHwgdHlwZSgpICE9IFBlcmNlbnQpOwogICAgICAgICBzZXRWYWx1
ZShGaXhlZCwgdmFsdWUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0VmFsdWUoTGVuZ3RoVHlwZSB0
LCBkb3VibGUgdmFsdWUpCisgICAgdm9pZCBzZXRWYWx1ZShMZW5ndGhUeXBlIHQsIGZsb2F0IHZh
bHVlKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdDsKICAgICAgICAgbV9mbG9hdFZhbHVlID0g
dmFsdWU7CiAgICAgICAgIG1faXNGbG9hdCA9IHRydWU7ICAgIAogICAgIH0KIAotICAgIHZvaWQg
c2V0VmFsdWUoZG91YmxlIHZhbHVlKQorICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQgdmFsdWUpCiAg
ICAgewogICAgICAgICAqdGhpcyA9IExlbmd0aCh2YWx1ZSwgRml4ZWQpOwogICAgIH0KQEAgLTEx
OCw4ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlKCk7CiAg
ICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAgICAgaWYgKHJvdW5kUGVyY2Vu
dGFnZXMpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5k
KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
bWF4VmFsdWUgKiByYXdWYWx1ZSgpIC8gKDEwMCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kKG1heFZhbHVlICog
cGVyY2VudCgpIC8gMTAwLjBmKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGludD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMGYpOwogICAgICAgICAgICAgY2FzZSBB
dXRvOgogICAgICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZTsKICAgICAgICAgICAgIGRlZmF1
bHQ6CkBAIC0xMzQsOCArMTM0LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2
YWx1ZSgpOwogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAgIGlmIChy
b3VuZFBlcmNlbnRhZ2VzKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50U2NhbGVGYWN0
b3IpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZCht
YXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wZikpOworICAgICAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxpbnQ+KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjBmKTsKICAgICAgICAg
ICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgcmV0
dXJuIDA7CkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBGaXhl
ZDoKICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpOwogICAgICAgICAgICAg
Y2FzZSBQZXJjZW50OgotICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4o
bWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wZik7CiAgICAgICAg
ICAgICBjYXNlIEF1dG86CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0
PihtYXhWYWx1ZSk7CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtMTU2LDEwICsxNTYsMTYgQEAg
cHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0
IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPT0gdW5kZWZpbmVkTGVuZ3RoOyB9Ci0gICAgYm9vbCBpc1pl
cm8oKSBjb25zdCB7IHJldHVybiAhZ2V0SW50VmFsdWUoKTsgfQotICAgIGJvb2wgaXNQb3NpdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPiAwOyB9Ci0gICAgYm9vbCBpc05lZ2F0aXZl
KCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA8IDA7IH0KKyAgICBib29sIGlzVW5kZWZpbmVk
KCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKSA9PSB1bmRlZmluZWRMZW5ndGg7IH0KKyAgICBib29s
IGlzWmVybygpIGNvbnN0IAorICAgIHsgCisgICAgICAgIGlmIChtX2lzRmxvYXQpCisgICAgICAg
ICAgICByZXR1cm4gIW1fZmxvYXRWYWx1ZTsgCisgICAgICAgIAorICAgICAgICByZXR1cm4gIW1f
aW50VmFsdWU7CisgICAgfQorICAgIGJvb2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGdl
dEZsb2F0VmFsdWUoKSA+IDA7IH0KKyAgICBib29sIGlzTmVnYXRpdmUoKSBjb25zdCB7IHJldHVy
biBnZXRGbG9hdFZhbHVlKCkgPCAwOyB9CiAKICAgICBib29sIGlzQXV0bygpIGNvbnN0IHsgcmV0
dXJuIHR5cGUoKSA9PSBBdXRvOyB9CiAgICAgYm9vbCBpc1JlbGF0aXZlKCkgY29uc3QgeyByZXR1
cm4gdHlwZSgpID09IFJlbGF0aXZlOyB9CkBAIC0xNjcsNyArMTczLDcgQEAgcHVibGljOgogICAg
IGJvb2wgaXNGaXhlZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBGaXhlZDsgfQogICAgIGJv
b2wgaXNJbnRyaW5zaWNPckF1dG8oKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXV0byB8fCB0
eXBlKCkgPT0gTWluSW50cmluc2ljIHx8IHR5cGUoKSA9PSBJbnRyaW5zaWM7IH0KIAotICAgIExl
bmd0aCBibGVuZChjb25zdCBMZW5ndGgmIGZyb20sIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAg
ICBMZW5ndGggYmxlbmQoY29uc3QgTGVuZ3RoJiBmcm9tLCBmbG9hdCBwcm9ncmVzcykgY29uc3QK
ICAgICB7CiAgICAgICAgIC8vIEJsZW5kIHR3byBsZW5ndGhzIHRvIHByb2R1Y2UgYSBuZXcgbGVu
Z3RoIHRoYXQgaXMgaW4gYmV0d2VlbiB0aGVtLiAgVXNlZCBmb3IgYW5pbWF0aW9uLgogICAgICAg
ICBpZiAoIWZyb20uaXNaZXJvKCkgJiYgIWlzWmVybygpICYmIGZyb20udHlwZSgpICE9IHR5cGUo
KSkKQEAgLTE4MSwxMyArMTg3LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJlc3VsdFR5cGUg
PSBmcm9tLnR5cGUoKTsKICAgICAgICAgCiAgICAgICAgIGlmIChyZXN1bHRUeXBlID09IFBlcmNl
bnQpIHsKLSAgICAgICAgICAgIGRvdWJsZSBmcm9tUGVyY2VudCA9IGZyb20uaXNaZXJvKCkgPyAw
LiA6IGZyb20ucGVyY2VudCgpOwotICAgICAgICAgICAgZG91YmxlIHRvUGVyY2VudCA9IGlzWmVy
bygpID8gMC4gOiBwZXJjZW50KCk7CisgICAgICAgICAgICBmbG9hdCBmcm9tUGVyY2VudCA9IGZy
b20uaXNaZXJvKCkgPyAwLmYgOiBmcm9tLnBlcmNlbnQoKTsKKyAgICAgICAgICAgIGZsb2F0IHRv
UGVyY2VudCA9IGlzWmVybygpID8gMC5mIDogcGVyY2VudCgpOwogICAgICAgICAgICAgcmV0dXJu
IExlbmd0aChmcm9tUGVyY2VudCArICh0b1BlcmNlbnQgLSBmcm9tUGVyY2VudCkgKiBwcm9ncmVz
cywgUGVyY2VudCk7CiAgICAgICAgIH0gCiAgICAgICAgICAgICAKLSAgICAgICAgZG91YmxlIGZy
b21WYWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAwIDogZnJvbS52YWx1ZSgpOwotICAgICAgICBkb3Vi
bGUgdG9WYWx1ZSA9IGlzWmVybygpID8gMCA6IHZhbHVlKCk7CisgICAgICAgIGZsb2F0IGZyb21W
YWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAwLmYgOiBmcm9tLnZhbHVlKCk7CisgICAgICAgIGZsb2F0
IHRvVmFsdWUgPSBpc1plcm8oKSA/IDAuZiA6IHZhbHVlKCk7CiAgICAgICAgIHJldHVybiBMZW5n
dGgoZnJvbVZhbHVlICsgKHRvVmFsdWUgLSBmcm9tVmFsdWUpICogcHJvZ3Jlc3MsIHJlc3VsdFR5
cGUpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxh
eW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJs
ZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0F1dG9UYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9p
ZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbihpbnQgZQogCiAgICAgICAgICAgICAgICAg
ICAgIExlbmd0aCBjZWxsTG9naWNhbFdpZHRoID0gY2VsbC0+c3R5bGVPckNvbExvZ2ljYWxXaWR0
aCgpOwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hhdCBpcyB0aGlzIGFyYml0cmFy
eSB2YWx1ZT8KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgucmF3VmFs
dWUoKSA+IDMyNzYwKQorICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC52
YWx1ZSgpID4gMzI3NjApCiAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRo
LnNldFZhbHVlKDMyNzYwKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lk
dGguaXNOZWdhdGl2ZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgY2VsbExvZ2ljYWxXaWR0
aC5zZXRWYWx1ZSgwKTsKQEAgLTEwNSwxMyArMTA1LDEzIEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0
OjpyZWNhbGNDb2x1bW4oaW50IGUKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBt
X2hhc1BlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dp
Y2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9n
aWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxM
b2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5p
c1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9n
aWNhbFdpZHRoLnZhbHVlKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxh
eW91dC5sb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgUmVsYXRpdmU6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgY2FzZSBh
bmQgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBjb21wYXJlIHZhbHVlcwogICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gd2hpY2ggYXJlIG5vdCBuZWNlc3NhcmlseSBvZiB0aGUgc2FtZSB0eXBl
LgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNBdXRvKCkg
fHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpICYmIGNlbGxMb2dpY2FsV2lkdGgudmFs
dWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgucmF3VmFsdWUoKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc0F1dG8oKSB8fCAoY2VsbExvZ2lj
YWxXaWR0aC5pc1JlbGF0aXZlKCkgJiYgY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gY29sdW1u
TGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0aDsKICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MjMyLDE2ICsyMzIsMTYgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRM
bwogCiAgICAgLy8gV2Ugc3Vic3RpdHV0ZSAwIHBlcmNlbnQgYnkgKGVwc2lsb24gLyBwZXJjZW50
U2NhbGVGYWN0b3IpIHBlcmNlbnQgaW4gdHdvIHBsYWNlcyBiZWxvdyB0byBhdm9pZCBkaXZpc2lv
biBieSB6ZXJvLgogICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIDAlIGNhc2VzIHByb3Blcmx5Lgot
ICAgIGNvbnN0IGludCBlcHNpbG9uID0gMTsKKyAgICBjb25zdCBmbG9hdCBlcHNpbG9uID0gMSAv
IDEyOC4wZjsKIAotICAgIGludCByZW1haW5pbmdQZXJjZW50ID0gMTAwICogcGVyY2VudFNjYWxl
RmFjdG9yOworICAgIGZsb2F0IHJlbWFpbmluZ1BlcmNlbnQgPSAxMDA7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2xheW91dFN0cnVjdC5zaXplKCk7ICsraSkgewogICAgICAgICBtaW5X
aWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNaW5Mb2dpY2FsV2lkdGg7CiAgICAg
ICAgIG1heFdpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0
aDsKICAgICAgICAgaWYgKHNjYWxlQ29sdW1ucykgewogICAgICAgICAgICAgaWYgKG1fbGF5b3V0
U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAg
ICAgICAgIGludCBwZXJjZW50ID0gbWluKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2lj
YWxXaWR0aC5yYXdWYWx1ZSgpLCByZW1haW5pbmdQZXJjZW50KTsKLSAgICAgICAgICAgICAgICBm
bG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbaV0u
ZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIG1h
eChwZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBwZXJjZW50ID0gbWlu
KHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lk
dGgucGVyY2VudCgpKSwgcmVtYWluaW5nUGVyY2VudCk7CisgICAgICAgICAgICAgICAgZmxvYXQg
bG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W2ldLmVmZmVj
dGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgLyBtYXgocGVyY2VudCwgZXBzaWxvbik7CiAgICAg
ICAgICAgICAgICAgbWF4UGVyY2VudCA9IG1heChsb2dpY2FsV2lkdGgsICBtYXhQZXJjZW50KTsK
ICAgICAgICAgICAgICAgICByZW1haW5pbmdQZXJjZW50IC09IHBlcmNlbnQ7CiAgICAgICAgICAg
ICB9IGVsc2UKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6Y29tcHV0
ZVByZWZlcnJlZExvCiAgICAgfQogCiAgICAgaWYgKHNjYWxlQ29sdW1ucykgewotICAgICAgICBt
YXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAv
IG1heChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAgbWF4Tm9uUGVyY2VudCA9
IG1heE5vblBlcmNlbnQgKiAxMDAgLyBtYXgocmVtYWluaW5nUGVyY2VudCwgZXBzaWxvbik7CiAg
ICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBzdGF0aWNfY2FzdDxpbnQ+KG1pbihtYXhO
b25QZXJjZW50LCBJTlRfTUFYIC8gMi4wZikpKTsKICAgICAgICAgbWF4V2lkdGggPSBtYXgobWF4
V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1heFBlcmNlbnQsIElOVF9NQVggLyAyLjBmKSkp
OwogICAgIH0KQEAgLTI2Niw2ICsyNjYsMTAgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmNvbXB1
dGVQcmVmZXJyZWRMbwogICAgICAgICBtaW5XaWR0aCA9IG1heChtaW5XaWR0aCwgdGFibGVMb2dp
Y2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIG1heFdpZHRoID0gbWluV2lkdGg7CiAgICAgfQor
ICAgIAorICAgIC8vIGlmIHRoZXJlIHdhcyBubyByZW1haW5pbmcgcGVyY2VudCwgbWF4V2lkdGgg
aXMgaW52YWxpZC4KKyAgICBpZiAoIXJlbWFpbmluZ1BlcmNlbnQgJiYgbWF4Tm9uUGVyY2VudCkK
KyAgICAgICAgbWF4V2lkdGggPSBpbnRNYXhGb3JMZW5ndGg7ICAgICAgICAKIH0KIAogLyoKQEAg
LTMwMCw3ICszMDQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNh
CiAgICAgICAgIHNpemVfdCBsYXN0Q29sID0gZWZmQ29sOwogICAgICAgICBpbnQgY2VsbE1pbkxv
Z2ljYWxXaWR0aCA9IGNlbGwtPm1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpICsgc3BhY2luZ0lu
Um93RGlyZWN0aW9uOwogICAgICAgICBmbG9hdCBjZWxsTWF4TG9naWNhbFdpZHRoID0gY2VsbC0+
bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBzcGFjaW5nSW5Sb3dEaXJlY3Rpb247Ci0gICAg
ICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAgICAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAw
OwogICAgICAgICBpbnQgc3Bhbk1pbkxvZ2ljYWxXaWR0aCA9IDA7CiAgICAgICAgIGZsb2F0IHNw
YW5NYXhMb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBib29sIGFsbENvbHNBcmVQZXJjZW50ID0g
dHJ1ZTsKQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0
aXZlTG9naWNhCiAgICAgICAgICAgICBMYXlvdXQmIGNvbHVtbkxheW91dCA9IG1fbGF5b3V0U3Ry
dWN0W2xhc3RDb2xdOwogICAgICAgICAgICAgc3dpdGNoIChjb2x1bW5MYXlvdXQubG9naWNhbFdp
ZHRoLnR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgotICAgICAgICAgICAgICAg
IHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgu
cGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENvbHNBcmVGaXhlZCA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBGaXhlZDoKQEAgLTMzOSw3ICsz
NDMsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAg
ICAgICAgICAgICAgIGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGggPSBMZW5ndGgo
KTsKICAgICAgICAgICAgICAgICAgICAgYWxsQ29sc0FyZVBlcmNlbnQgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNv
bHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lk
dGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENvbHNBcmVGaXhlZCA9IGZhbHNlOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFjb2x1bW5MYXlvdXQuZW1wdHlDZWxsc09u
bHkpCkBAIC0zNTQsMTQgKzM1OCwxNCBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0
aXZlTG9naWNhCiAKICAgICAgICAgLy8gYWRqdXN0IHRhYmxlIG1heCB3aWR0aCBpZiBuZWVkZWQK
ICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAg
IGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkgfHwgYWxsQ29s
c0FyZVBlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNh
bFdpZHRoLnBlcmNlbnQoKSB8fCBhbGxDb2xzQXJlUGVyY2VudCkgewogICAgICAgICAgICAgICAg
IC8vIGNhbid0IHNhdGlmeSB0aGlzIGNvbmRpdGlvbiwgdHJlYXQgYXMgdmFyaWFibGUKICAgICAg
ICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoID0gTGVuZ3RoKCk7CiAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IG1heChtYXhMb2dpY2FsV2lk
dGgsIG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBjZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3RvciAvIGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSk7CisgICAg
ICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gbWF4KG1heExvZ2ljYWxXaWR0aCwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBjZWxsTWF4TG9naWNhbFdpZHRo
KSAqIDEwMCAgLyBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSkpOwogCiAgICAgICAgICAgICAg
ICAgLy8gYWxsIG5vbiBwZXJjZW50IGNvbHVtbnMgaW4gdGhlIHNwYW4gZ2V0IHBlcmNlbnQgdmFs
dWVzIHRvIHN1bSB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAgICAgICAgaW50IHBlcmNlbnRNaXNz
aW5nID0gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIC0gdG90YWxQZXJjZW50OworICAgICAg
ICAgICAgICAgIGZsb2F0IHBlcmNlbnRNaXNzaW5nID0gY2VsbExvZ2ljYWxXaWR0aC5wZXJjZW50
KCkgLSB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgZmxvYXQgdG90YWxXaWR0aCA9IDA7
CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7IHBvcyA8IGxhc3RD
b2w7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9z
XS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpCkBAIC0zNzAsNyArMzc0LDcgQEAg
aW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxvZ2ljYQogCiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7IHBvcyA8IGxhc3RDb2wgJiYgdG90YWxXaWR0
aCA+IDA7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbV9sYXlvdXRTdHJ1Y3Rb
cG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBwZXJjZW50ID0gc3RhdGljX2Nhc3Q8aW50PihwZXJjZW50TWlzc2luZyAq
IHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2lj
YWxXaWR0aCkgLyB0b3RhbFdpZHRoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBl
cmNlbnQgPSBwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVj
dFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0b3RhbFdpZHRoOwogICAgICAgICAg
ICAgICAgICAgICAgICAgdG90YWxXaWR0aCAtPSBtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2
ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRNaXNzaW5n
IC09IHBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVyY2VudCA+IDApCkBA
IC00OTEsNyArNDk1LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgaW50
IG51bUZpeGVkID0gMDsKICAgICBmbG9hdCB0b3RhbEF1dG8gPSAwOwogICAgIGZsb2F0IHRvdGFs
Rml4ZWQgPSAwOwotICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAgIGZsb2F0IHRvdGFsUGVy
Y2VudCA9IDA7CiAgICAgaW50IGFsbG9jQXV0byA9IDA7CiAgICAgdW5zaWduZWQgbnVtQXV0b0Vt
cHR5Q2VsbHNPbmx5ID0gMDsKIApAQCAtNTA0LDcgKzUwOCw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5
b3V0OjpsYXlvdXQoKQogICAgICAgICBzd2l0Y2ggKGxvZ2ljYWxXaWR0aC50eXBlKCkpIHsKICAg
ICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgaGF2ZVBlcmNlbnQgPSB0cnVlOwotICAg
ICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpOworICAgICAg
ICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAgICAgICAgICAgIHRvdGFsUmVsYXRp
dmUgKz0gbG9naWNhbFdpZHRoLnZhbHVlKCk7CkBAIC01MzgsOSArNTQyLDkgQEAgdm9pZCBBdXRv
VGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgICAgICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0u
Y29tcHV0ZWRMb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdpZHRoOwogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAxMDAgKiBwZXJjZW50U2NhbGVG
YWN0b3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+IDEwMCkgewogICAgICAgICAgICAg
Ly8gcmVtb3ZlIG92ZXJhbGxvY2F0ZWQgc3BhY2UgZnJvbSB0aGUgbGFzdCBjb2x1bW5zCi0gICAg
ICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dpY2FsV2lkdGggKiAodG90YWxQZXJjZW50IC0g
MTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSAvICgxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpOwor
ICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNhbFdpZHRoICogKHRvdGFsUGVyY2Vu
dCAtIDEwMCkgLyAxMDA7CiAgICAgICAgICAgICBmb3IgKGludCBpID0gbkVmZkNvbHMgLSAxOyBp
ID49IDA7IC0taSkgewogICAgICAgICAgICAgICAgIGlmIChtX2xheW91dFN0cnVjdFtpXS5lZmZl
Y3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaW50
IGNlbGxMb2dpY2FsV2lkdGggPSBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0
aDsKQEAgLTYwNywxMyArNjExLDEzIEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQog
ICAgIH0KIAogICAgIC8vIHNwcmVhZCBvdmVyIHBlcmNlbnQgY29sdW1zCi0gICAgaWYgKGF2YWls
YWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVyY2VudCA8IDEwMCAqIHBlcmNlbnRT
Y2FsZUZhY3RvcikgeworICAgIGlmIChhdmFpbGFibGUgPiAwICYmIG1faGFzUGVyY2VudCAmJiB0
b3RhbFBlcmNlbnQgPCAxMDApIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuRWZm
Q29sczsgKytpKSB7CiAgICAgICAgICAgICBMZW5ndGgmIGxvZ2ljYWxXaWR0aCA9IG1fbGF5b3V0
U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIGlmIChsb2dpY2Fs
V2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0
aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIC8gdG90YWxQZXJjZW50Owor
ICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRoID0gYXZhaWxhYmxlICogbG9naWNh
bFdpZHRoLnBlcmNlbnQoKSAvIHRvdGFsUGVyY2VudDsKICAgICAgICAgICAgICAgICBhdmFpbGFi
bGUgLT0gY2VsbExvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0g
bG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50IC09
IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAgICAgbV9sYXlvdXRTdHJ1Y3Rb
aV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggKz0gY2VsbExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAg
ICAgICBpZiAoIWF2YWlsYWJsZSB8fCAhdG90YWxQZXJjZW50KQogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxh
eW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zp
eGVkVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNyArMTE4LDggQEAgaW50
IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGludAogICAgICAgICAgICAgICAgICAg
ICBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uID0gbV90YWJsZS0+c3Bhbk9mRWZmQ29sKGN1
cnJlbnRFZmZlY3RpdmVDb2x1bW4pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBpZiAoKHcuaXNGaXhlZCgpIHx8IHcuaXNQZXJjZW50KCkpICYmIHcuaXNQb3NpdGl2ZSgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVudEVmZmVjdGl2ZUNvbHVtbl0uc2V0
VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAqIHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1
bW4pOworICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5d
ID0gdzsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjdXJyZW50RWZmZWN0aXZlQ29sdW1u
XSAqPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwogICAgICAgICAgICAgICAgICAgICB1
c2VkV2lkdGggKz0gZWZmV2lkdGggKiBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzcGFuIC09IHNwYW5JbkN1cnJlbnRFZmZl
Y3RpdmVDb2x1bW47CkBAIC0xNjQsMTAgKzE2NSwxMSBAQCBpbnQgRml4ZWRUYWJsZUxheW91dDo6
Y2FsY1dpZHRoQXJyYXkoaW50CiAgICAgICAgICAgICAgICAgaW50IHVzZWRTcGFuID0gMDsKICAg
ICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgICAgICAgICAgd2hpbGUgKHVzZWRTcGFu
IDwgc3BhbiAmJiBjQ29sICsgaSA8IG5FZmZDb2xzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlu
dCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29sICsgaSk7CisgICAgICAgICAgICAg
ICAgICAgIGZsb2F0IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9mRWZmQ29sKGNDb2wgKyBpKTsKICAg
ICAgICAgICAgICAgICAgICAgLy8gT25seSBzZXQgaWYgbm8gY29sIGVsZW1lbnQgaGFzIGFscmVh
ZHkgc2V0IGl0LgogICAgICAgICAgICAgICAgICAgICBpZiAobV93aWR0aFtjQ29sICsgaV0uaXNB
dXRvKCkgJiYgdy50eXBlKCkgIT0gQXV0bykgewotICAgICAgICAgICAgICAgICAgICAgICAgbV93
aWR0aFtjQ29sICsgaV0uc2V0VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAqIGVTcGFuIC8g
c3Bhbik7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wgKyBpXSA9IHc7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wgKyBpXSAqPSBlU3BhbiAvIHNwYW47
CiAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGggKz0gZWZmV2lkdGggKiBlU3BhbiAv
IHNwYW47CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgdXNlZFNw
YW4gKz0gZVNwYW47CkBAIC0yMzQsNyArMjM2LDcgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0Ojps
YXlvdXQoKQogICAgIGludCBhdXRvU3BhbiA9IDA7CiAgICAgaW50IHRvdGFsRml4ZWRXaWR0aCA9
IDA7CiAgICAgaW50IHRvdGFsUGVyY2VudFdpZHRoID0gMDsKLSAgICBpbnQgdG90YWxSYXdQZXJj
ZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogCiAgICAgLy8gQ29tcHV0ZSBy
ZXF1aXJlbWVudHMgYW5kIHRyeSB0byBzYXRpc2Z5IGZpeGVkIGFuZCBwZXJjZW50IHdpZHRocy4K
ICAgICAvLyBQZXJjZW50YWdlcyBhcmUgb2YgdGhlIHRhYmxlJ3Mgd2lkdGgsIHNvIGZvciBleGFt
cGxlCkBAIC0yNDcsNyArMjQ5LDcgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQog
ICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKICAgICAgICAgICAg
IGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0uY2FsY1ZhbHVlKHRhYmxlTG9naWNhbFdpZHRoKTsK
ICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoICs9IGNhbGNXaWR0aFtpXTsKLSAgICAgICAg
ICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ldLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgKz0gbV93aWR0aFtpXS5wZXJjZW50KCk7CiAgICAgICAgIH0gZWxzZSBp
ZiAobV93aWR0aFtpXS5pc0F1dG8oKSkgewogICAgICAgICAgICAgbnVtQXV0bysrOwogICAgICAg
ICAgICAgYXV0b1NwYW4gKz0gbV90YWJsZS0+c3Bhbk9mRWZmQ29sKGkpOwpAQCAtMjcwLDExICsy
NzIsMTEgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KHRvdGFsUmF3UGVyY2VudCkgeworICAgICAgICAgICAgaWYgKHRvdGFsUGVyY2VudCkgewogICAg
ICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsKICAgICAgICAgICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhbGNX
aWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0YWJsZUxvZ2ljYWxXaWR0aCAtIHRv
dGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7CisgICAgICAgICAgICAgICAgICAgICAg
ICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQoKSAqICh0YWJsZUxvZ2ljYWxXaWR0
aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhbaV07CiAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjphZGRDZWxsKFJlbmRl
clQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdodC50eXBlKCkpIHsKICAgICAgICAg
ICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAgICAgICAgIGlmICghKGNSb3dMb2dp
Y2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgKGNSb3dM
b2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkg
PCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGNS
b3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dpY2FsSGVpZ2h0LnBlcmNlbnQo
KSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
Z3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OwogICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBGaXhlZDoKQEAgLTQzNCwy
MiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJvd3MoaW50IHQKICAg
ICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc0F1dG8oKSkKICAgICAgICAg
ICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNlIGlmIChtX2dyaWRbcl0ubG9naWNh
bEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9n
cmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB0b3RhbFBl
cmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICB9CiAg
ICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAgICAgIC8vIHRyeSB0byBzYXRpc2Z5
IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwotICAgICAgICAgICAgdG90YWxQZXJj
ZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKTsKKyAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCk7CiAgICAgICAgICAg
ICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBdOwogICAgICAgICAgICAgZm9yIChp
bnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAgICAgICAgICAgICAgIGlmICh0b3Rh
bFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihkaCwgKHRvdGFsSGVpZ2h0ICogbV9n
cmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50U2NhbGVGYWN0
b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRvQWRkID0gbWluKGRoLCBzdGF0
aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNl
bnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAgICAgICAvLyBJZiB0b0FkZCBpcyBu
ZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmluayB0aGUgcm93ICh0aGlzIGJ1Zwog
ICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRsb29rIFdlYiBBY2Nlc3MpLgogICAg
ICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0FkZCk7CiAgICAgICAgICAgICAgICAg
ICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAgICAgZGggLT0gdG9BZGQ7Ci0gICAg
ICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5y
YXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbV9ncmlkW3Jd
LmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAgICAgICAgICAgICAgIHJoID0gbV9y
b3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0JvcmRlclJhZGl1cygpIGNvbnN0
CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisg
ICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJvKCkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lkdGgoKS5yYXdWYWx1ZSgpID4gMCkK
KyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNaZXJvKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVmdC53aWR0aCgpLnJhd1ZhbHVlKCkg
PiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0aCgpLmlzWmVybygpKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRvbVJpZ2h0LndpZHRoKCkucmF3
VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21SaWdodC53aWR0aCgpLmlzWmVybygp
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAzLTA5ICBSaWsgQ2FiYW5pZXIgIDxj
YWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBhcmUgaW5jb3JyZWN0bHkgcm91bmRl
ZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1u
b24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMtMDkgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3Nl
bGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1u
b24taW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5jaGVj
a3N1bQkocmV2aXNpb24gODAzODEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5
KQpAQCAtMSArMSBAQAotNDE0Y2FhYTJlZTA5ODIzZmNjNmIxMjAwZDMwZWMxMjcKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCitjNmQ5MDU1MzQxYTk5MDQ5MjljY2M0OTQ3NmM3YmQ5ZQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdl
ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwMzgxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDU4NQogICAg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0NCkgc2l6ZSA5MTB4NAogICAgICAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQog
ICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0OCkgc2l6ZSA5MTB4NAotICAgICAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdG
XQorICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAxeDQgW2JnY29s
b3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA5
MDB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2Jn
Y29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Nikgc2l6
ZSA4OTB4NApAQCAtNDksNyArNDksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODQpIHNpemUgODQweDQKICAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0K
ICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODgpIHNpemUgODM1eDQKLSAgICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsOTIpIHNpemUg
ODI1eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFti
Z2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsOTYpIHNp
emUgODE1eDQKQEAgLTg0LDYxICs4NCw2MSBAQCBsYXllciBhdCAoOCwxMjYpIHNpemUgMTAwMHgy
MAogICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDApIHNpemUgMTAwMHgyMAogICAgIFJlbmRl
clRhYmxlU2VjdGlvbiB7VEJPRFl9IGF0ICgwLDApIHNpemUgMTAwMHgyMAogICAgICAgUmVuZGVy
VGFibGVSb3cge1RSfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDAsMSkgc2l6ZSAxMXgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0w
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMSkgc2l6ZSAx
MngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJzPTEgY3M9MV0KICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDExLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MSBycz0xIGNzPTFd
CisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMiwxKSBzaXplIDEweDE4IFtiZ2Nv
bG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjEsMSkgc2l6
ZSAxM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0yIHJzPTEgY3M9MV0KKyAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyLDEpIHNpemUgMTN4MTggW2JnY29sb3I9IzAwMDAw
MDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDog
IiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgzNCwxKSBzaXplIDEweDE4IFti
Z2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTMgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMzUsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAg
Yz0zIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDQ0LDEpIHNpemUgMTV4MTggW2JnY29sb3I9IzAw
MDAwMDdGXSBbcj0wIGM9NCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9
IGF0ICg0NSwxKSBzaXplIDE2eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTQgcnM9MSBj
cz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoNTksMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFty
PTAgYz01IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDYxLDEp
IHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9NSBycz0xIGNzPTFdCiAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7
VER9IGF0ICg2OSwxKSBzaXplIDE3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTYgcnM9
MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNzEsMSkgc2l6ZSAxN3gx
OCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDg2
LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9NyBycz0xIGNzPTFdCisg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4OCwxKSBzaXplIDEweDE4IFtiZ2NvbG9y
PSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoOTYsMSkgc2l6ZSAy
MHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz04IHJzPTEgY3M9MV0KKyAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDk4LDEpIHNpemUgMjB4MTggW2JnY29sb3I9IzAwMDAwMDdG
XSBbcj0wIGM9OCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAi
Ci0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMTYsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDExOCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBj
PTkgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI2LDEpIHNpemUgMjF4MTggW2JnY29sb3I9IzAw
MDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMTI4LDEpIHNpemUgMjJ4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTAgcnM9
MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMTQ3LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9MTEgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MTUwLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTEgcnM9MSBjcz0x
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMTU3LDEpIHNpemUgMjN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0w
IGM9MTIgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTYwLDEp
IHNpemUgMjR4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTIgcnM9MSBjcz0xXQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMTgwLDEwKSBzaXplIDEweDAgW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTMg
cnM9MSBjcz0xXQotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTkwLDEpIHNpemUg
MjV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTQgcnM9MSBjcz0xXQorICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTg0LDEwKSBzaXplIDEweDAgW2JnY29sb3I9IzAwRkYw
MDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoMTk0LDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTQgcnM9MSBj
cz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMjE1LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9MTUgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjE5
LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTUgcnM9MSBjcz0xXQog
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjI1LDEpIHNpemUgMjd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjI5LDEpIHNp
emUgMjd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTYgcnM9MSBjcz0xXQogICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMjUyLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTcgcnM9
MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjU2LDEpIHNpemUgMTB4
MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTcgcnM9MSBjcz0xXQogICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MjYyLDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTggcnM9MSBjcz0x
XQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjY2LDEpIHNpemUgMzB4MTggW2Jn
Y29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTggcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjkyLDEp
IHNpemUgNzA4eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgyOTYsMSkgc2l6ZSA3MDR4MTggW3I9MCBjPTE5IHJzPTEgY3M9MV0KICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnBuZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWlt
ZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFB
QUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlD
RnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJl
MmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURY
TFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdW
dFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1
eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJs
dVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5V
LzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25D
UU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgw
TUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5
dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01
R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhN
bHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZx
dkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNi
Wkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhG
K1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJG
cTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxG
ck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4
QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNkM1k5Y2Qza0g4Ti91enZvMXRoTW5oQkFnT0MxRkNT
aThWb0NFb0VqUUM3amhraGR4eVExYzhDOGtsdmdUa0xqaApFZ2tRTnlCVkJVRkJGRlZDYlZvRkph
VTBLYVNFa2xMeTRyd250bmZ0N2U4NXlURzdqc2ZPYU02YXgvdDhSbHJQN3N3NVo1N244K3pNCm51
K2VNOTZWclg1cExnUUlFQ0JBZ0FBQkFnUUlFTGdLQXF0WDRURThCQUVDQkFnUUlFQ0FBQUVDQkFZ
QkFjUTNBZ0VDQkFnUUlFQ0EKQUFFQ1YwMUFBTGxxMUI2SUFBRUNCQWdRSUVDQUFBRUJ4UGNBQVFJ
RUNCQWdRSUFBQVFKWFRVQUF1V3JVSG9nQUFRSUVDQkFnUUlBQQpBUUhFOXdBQkFnUUlFQ0JBZ0FB
QkFsZE5RQUM1YXRRZWlBQUJBZ1FJRUNCQWdBQ0IyWlVJVms2dVhHa1I5MTlGZ2EyNy9kbVdxOGp0
Cm9RZ1FJRUNBQUFFQ0JDWVdjQVJrWWxDYkkwQ0FBQUVDQkFnUUlFQmd2b0FBTXQvR1BRUUlFQ0JB
Z0FBQkFnUUlUQ3dnZ0V3TWFuTUUKQ0JBZ1FJQUFBUUlFQ013WEVFRG0yN2lIQUFFQ0JBZ1FJRUNB
QUlHSkJRU1FpVUZ0amdBQkFnUUlFQ0JBZ0FDQitRSUN5SHdiOXhBZwpRSUFBQVFJRUNCQWdNTEdB
QURJeHFNMFJJRUNBQUFFQ0JBZ1FJREJmUUFDWmIrTWVBZ1FJRUNCQWdBQUJBZ1FtRmhCQUpnYTFP
UUlFCkNCQWdRSUFBQVFJRTVnc0lJUE50M0VPQUFBRUNCQWdRSUVDQXdNUUNBc2pFb0RaSGdBQUJB
Z1FJRUNCQWdNQjhBUUZrdm8xN0NCQWcKUUlBQUFRSUVDQkNZV0VBQW1SalU1Z2dRSUVDQUFBRUNC
QWdRbUM4Z2dNeTNjUThCQWdRSUVDQkFnQUFCQWhNTENDQVRnOW9jQVFJRQpDQkFnUUlBQUFRTHpC
UVNRK1RidUlVQ0FBQUVDQkFnUUlFQmdZZ0VCWkdKUW15TkFnQUFCQWdRSUVDQkFZTDZBQURMZnhq
MEVDQkFnClFJQUFBUUlFQ0V3c0lJQk1ER3B6QkFnUUlFQ0FBQUVDQkFqTUZ4QkE1dHU0aHdBQkFn
UUlFQ0JBZ0FDQmlRVUVrSWxCYlk0QUFRSUUKQ0JBZ1FJQUFnZmtDQXNoOEcvY1FJRUNBQUFFQ0JB
Z1FJREN4Z0FBeU1hak5FU0JBZ0FBQkFnUUlFQ0F3WDBBQW1XL2pIZ0lFQ0JBZwpRSUFBQVFJRUpo
WVFRQ1lHdFRrQ0JBZ1FJRUNBQUFFQ0JPWUxDQ0R6YmR4RGdBQUJBZ1FJRUNCQWdNREVBZ0xJeEtB
MlI0QUFBUUlFCkNCQWdRSURBZkFFQlpMNk5ld2dRSUVDQUFBRUNCQWdRbUZoQUFKa1kxT1lJRUNC
QWdBQUJBZ1FJRUpndklJRE10M0VQQVFJRUNCQWcKUUlBQUFRSVRDd2dnRTRQYUhBRUNCQWdRSUVD
QUFBRUM4d1VFa1BrMjdpRkFnQUFCQWdRSUVDQkFZR0lCQVdSaVVKc2pRSUFBQVFJRQpDQkFnUUdD
K2dBQXkzOFk5QkFnUUlFQ0FBQUVDQkFoTUxDQ0FUQXhxY3dRSUVDQkFnQUFCQWdRSXpCY1FRT2Ji
dUljQUFRSUVDQkFnClFJQUFnWWtGQkpDSlFXMk9BQUVDQkFnUUlFQ0FBSUg1QWdMSWZCdjNFQ0JB
Z0FBQkFnUUlFQ0F3c1lBQU1qR296UkVnUUlBQUFRSUUKQ0JBZ01GOUFBSmx2NHg0Q0JBZ1FJRUNB
QUFFQ0JDWVdFRUFtQnJVNUFnUUlFQ0JBZ0FBQkFnVG1Dd2dnODIzY1E0QUFBUUlFQ0JBZwpRSURB
eEFJQ3lNU2dOa2VBQUFFQ0JBZ1FJRUNBd0h3QkFXUytqWHNJRUNCQWdBQUJBZ1FJRUpoWVFBQ1pH
TlRtQ0JBZ1FJQUFBUUlFCkNCQ1lMeUNBekxkeER3RUNCQWdRSUVDQUFBRUNFd3NJSUJPRDJod0JB
Z1FJRUNCQWdBQUJBdk1GQkpENU5pbnZPWG55Wk1xNkZFV0EKQUFFQ0JBZ1FJRURndFFnSUlLOUZ5
VElFQ0JBZ1FJQUFBUUlFQ0V3aUlJQk13bWdqQkFnUUlFQ0FBQUVDQkFpOEZnRUI1TFVvV1lZQQpB
UUlFQ0JBZ1FJQUFnVWtFVnJiNjVYSmJXam01Y3JtNzNYZVZCYmJ1dnV5NHJuSTFIbzRBQVFJRUNC
QWdRSURBWWdLT2dDem1aV2tDCkJBZ1FJRUNBQUFFQ0JKWVFFRUNXd0xNcUFRSUVDQkFnUUlBQUFR
S0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JFcUEKQUFFQ0JBZ1FJRUNBd0dJQ0Fz
aGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdBQUJBZ1FJRUNDd21JQUFzcGlYcFFr
UQpJRUNBQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFRSUVDQ3dtSUlBczVtVnBBZ1FJRUNC
QWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDCkJBZ1FJRUNBQUFFQ2l3a0lJSXQ1V1pvQUFRSUVDQkFnUUlB
QWdTVUVCSkFsOEt4S2dBQUJBZ1FJRUNCQWdNQmlBZ0xJWWw2V0prQ0EKQUFFQ0JBZ1FJRUJnQ1FF
QlpBazhxeElnUUlBQUFRSUVDQkFnc0ppQUFMS1lsNlVKRUNCQWdBQUJBZ1FJRUZoQ1FBQlpBcytx
QkFnUQpJRUNBQUFFQ0JBZ3NKaUNBTE9abGFRSUVDQkFnUUlBQUFRSUVsaEFRUUpiQXN5b0JBZ1FJ
RUNCQWdBQUJBb3NKQ0NDTGVWbWFBQUVDCkJBZ1FJRUNBQUlFbEJBU1FKZkNzU29BQUFRSUVDQkFn
UUlEQVlnSUN5R0plbGlaQWdBQUJBZ1FJRUNCQVlBa0JBV1FKUEtzU0lFQ0EKQUFFQ0JBZ1FJTENZ
Z0FDeW1KZWxDUkFnUUlBQUFRSUVDQkJZUWtBQVdRTFBxZ1FJRUNCQWdBQUJBZ1FJTENZZ2dDem1a
V2tDQkFnUQpJRUNBQUFFQ0JKWVFFRUNXd0xNcUFRSUVDQkFnUUlBQUFRS0xDUWdnaTNsWm1nQUJB
Z1FJRUNCQWdBQ0JKUVFFa0NYd3JFcUFBQUVDCkJBZ1FJRUNBd0dJQ0FzaGlYcFltUUlBQUFRSUVD
QkFnUUdBSkFRRmtDVHlyRWlCQWdBQUJBZ1FJRUNDd21JQUFzcGlYcFFrUUlFQ0EKQUFFQ0JBZ1FX
RUpBQUZrQ3o2b0VDQkFnUUlBQUFRSUVDQ3dtSUlBczVtVnBBZ1FJRUNCQWdBQUJBZ1NXRUJCQWxz
Q3pLZ0VDQkFnUQpJRUNBQUFFQ2l3a0lJSXQ1V1pvQUFRSUVDQkFnUUlBQWdTVUVCSkFsOFA0Y3E1
NDhlZkxQOGJBZWt3QUJBZ1FJRUNCQWdNQWtBZ0xJCkpJdzJRb0FBQVFJRUNCQWdRSURBYXhFUVFG
NkxrbVVJRUNCQWdBQUJBZ1FJRUpoRVFBQ1poTkZHQ0JBZ1FJQUFBUUlFQ0JCNExRSXIKVy8xeXVR
VlhUcTVjN203M1hXV0JyYnN2TzY2clhJMkhJMENBQUFFQ0JBZ1FJTENZZ0NNZ2kzbFptZ0FCQWdR
SUVDQkFnQUNCSlFRRQprQ1h3ckVxQUFBRUNCQWdRSUVDQXdHSUNBc2hpWHBZbVFJQUFBUUlFQ0JB
Z1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBCnNwaVhwUWtRSUVDQUFBRUNCQWdRV0VK
QUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdRSUVDQkFnQUFCQWdTV0VMamkKM3dG
Wll0dFdKVUNBQUFFQ0JBZ1FJRUNBd0E0QlIwQjJjUGlDQUFFQ0JBZ1FJRUNBQUlIZEZCQkFkbFBY
dGdrUUlFQ0FBQUVDQkFnUQoyQ0VnZ096ZzhBVUJBZ1FJRUNCQWdBQUJBcnNwSUlEc3BxNXRFeUJB
Z0FBQkFnUUlFQ0N3UTBBQTJjSGhDd0lFQ0JBZ1FJQUFBUUlFCmRsTkFBTmxOWGRzbVFJQUFBUUlF
Q0JBZ1FHQ0hnQUN5ZzhNWEJBZ1FJRUNBQUFFQ0JBanNwb0FBc3B1NnRrMkFBQUVDQkFnUUlFQ0EK
d0E0QkFXUUhoeThJRUNCQWdBQUJBZ1FJRU5oTkFRRmtOM1Z0bXdBQkFnUUlFQ0JBZ0FDQkhRSUN5
QTRPWHhBZ1FJQUFBUUlFQ0JBZwpzSnNDQXNodTZ0bzJBUUlFQ0JBZ1FJQUFBUUk3QkFTUUhSeStJ
RUNBQUFFQ0JBZ1FJRUJnTndVRWtOM1V0VzBDQkFnUUlFQ0FBQUVDCkJIWUlDQ0E3T0h4QmdBQUJB
Z1FJRUNCQWdNQnVDZ2dndTZscjJ3UUlFQ0JBZ0FBQkFnUUk3QkFRUUhadytJSUFBUUlFQ0JBZ1FJ
QUEKZ2QwVW1GMXA0eXNuVjY2MHlKL3V2NmQvZXZlZnZwejdXU3gzY3U2OWw3NGoxdG10YlkrUEdJ
OFJseXM5emozRFVvdjM4TXBxdzlXNApqYXZ4V0JrZU4yb1llNDdQTDlmMzl1VVcvVDZKYlYvdWNz
OUZkODZyNCtMbHBxNGp5cmo0TWY2Y3RVUTljYmxuK1BkUC8yU282VS9WCkRKL2RzNjNJdSsrZVYr
QkZLL21TQUFFQ0JBZ1FTQ1BnQ0VpYVVTaUVBQUVDQkFnUUlFQ0F3TjRYRUVEMi9veDFTSUFBQVFJ
RUNCQWcKUUNDTmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JRU1F2VDlqSFJJZ1FJQUFBUUlFQ0JC
SUl5Q0FwQm1GUWdnUUlFQ0FBQUVDQkFqcwpmUUVCWk8vUFdJY0VDQkFnUUlBQUFRSUUwZ2dJSUds
R29SQUNCQWdRSUVDQUFBRUNlMTlBQU5uN005WWhBUUlFQ0JBZ1FJQUFnVFFDCkFraWFVU2lFQUFF
Q0JBZ1FJRUNBd040WEVFRDIvb3gxU0lBQUFRSUVDQkFnUUNDTmdBQ1NaaFFLSVVDQUFBRUNCQWdR
SUxEM0JRU1EKdlQ5akhSSWdRSUFBQVFJRUNCQklJeUNBcEJtRlFnZ1FJRUNBQUFFQ0JBanNmUUVC
Wk8vUFdJY0VDQkFnUUlBQUFRSUUwZ2dJSUdsRwpvUkFDQkFnUUlFQ0FBQUVDZTE5QUFObjdNOVlo
QVFJRUNCQWdRSUFBZ1RRQ0FraWFVU2lFQUFFQ0JBZ1FJRUNBd040WEVFRDIvb3gxClNJQUFBUUlF
Q0JBZ1FDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNCVmEyK21YdnQ2bERBZ1FJRUNCQWdBQUJB
Z1F5Q0RnQ2ttRUsKYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0Fa
SmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSQpFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVD
QkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJCkVDQkFn
RUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1t
aHRFaUJBZ0FBQkFnUUkKRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlF
Q0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRQpCSkFpZzlZbUFRSUVDQkFnUUlBQWdR
d0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoCkNt
b2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FB
QkFnUUlGQkVRUUlvTVdwc0UKQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFR
RWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRQpDQkFnUUlCQUVRRUJwTWlndFVt
QUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlF
CkNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdn
R2FhZ0JnSUVDQkFnUUlBQUFRSkYKQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFC
QWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDUwpZUXBxSUVDQUFBRUNCQWdR
SUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tE
RnFiCkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVD
QkFnUUlBQWdRd0NBa2lHS2FpQkFBRUMKQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJ
SU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQwpCQWdReUNBZ2dHU1ln
aG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlF
Q0FBQUVDClJRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVR
RUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUEKa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JS
SWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YQptd1FJRUNCQWdB
QUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdK
SWhpbW9nUUFCCkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVD
QUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUIKQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJ
RUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQgpBa1VFQkpB
aWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFC
QWdRSUVDQkFJSU9BCkFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdR
eUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb00KV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1t
b0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQQpBUUlF
Q0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFS
RUFBS1RKb2JSSWdRSUFBCkFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFt
d1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUEKQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJ
RUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRApn
QUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNC
QWdRSUFBQVFJRUNCUVJFRUNLCkRGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdB
QUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUIKQUFFQ0JBZ1FJRUNBUUJFQkFh
VElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVD
QQpBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJ
RU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBCkFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZ
cHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWcKZzRBQWttRUthaUJBZ0FB
QkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdV
RVJCQQppZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vCmdRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlF
Q0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkEKZ0FBQkFnUUlFTWdn
SUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdB
Z1FJRUNCQQpnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJ
RUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBCklJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFB
Q2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVEKUUlvTVdwc0VD
QkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdB
Q0JEQUlDU0lZcApxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWtt
RUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnClFJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlF
Q0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWcKUUlBQUFR
SkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtD
MVNZQUFBUUlFQ0JBZwpRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FB
QkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSCkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJ
SUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUcKS2Fp
QkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlF
Q0JBZ1VFUkFBQ2t5YUcwUwpJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVR
UUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRCklFQ0FBQUVDUlFRRWtDS0QxaVlC
QWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1EK
SUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0Fa
SmlDR2dnUUlFQ0FBQUVDQkFnVQpFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVD
QkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJCmhpbW9nUUFCQWdRSUVDQkFn
RUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1t
aHQKRWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlF
Q0FBQUVDQkRJSUNDQVpwcUFHQWdRSQpFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdR
d0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJCkVDQkFJSU9BQUpKaENt
b2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FB
QkFnUUkKRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFR
RWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQwpTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVt
QUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvCmJSSWdRSUFBQVFJ
RUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdn
R2FhZ0JnSUUKQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFC
QWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRQpDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdR
SUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFCkNCUVJFRUNL
REZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVD
QkFnUUlBQWdRd0MKQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJ
SU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreQphRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1ln
aG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDCkJBZ1FJ
RUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVR
RUJwTWlndFVtQUFBRUMKQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JS
SWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQwpCQWdVRVJCQWlneGFtd1FJRUNCQWdB
QUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNCkFn
SkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVD
QUFBRUNCQWdRSUZCRVFBQXAKTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJ
RUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBRwpBZ1FJRUNCQWdBQUJBa1VFQkpB
aWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFC
CkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdR
eUNBZ2dHU1lnaG9JRUNCQWdBQUIKQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1t
b0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQgpEQUlDU0lZcHFJRUFBUUlF
Q0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFS
RUFBCktUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFt
d1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWcKQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJ
RUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQQpBUUlFQ0JBZ1FDQ0Rn
QUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNC
QWdRSUFBCkFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdB
QUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUEKZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFh
VElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQQpBQ2t5YUcwU0lF
Q0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJ
RU1nZ0lJQm1tCm9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZ
cHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUEKQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FB
QkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQQpBQUVDQkFn
VUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBCkFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlF
Q0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkUKUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdn
SUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWgpwcUFH
QWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJ
RUNBUUJFQkFhVElvTFZKCmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFB
Q2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkEKZ0FBQkFnUUlGQkVRUUlvTVdwc0VD
QkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQQpn
QUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWtt
RUthaUJBZ0FBQkFnUUlFQ0JRClJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlF
Q0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2cKR2FhZ0JnSUVDQkFnUUlBQUFR
SkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtD
MQpTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FB
QkFnUUlFTWdnSUlCa21JSWFDQkFnClFJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJ
SUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWcKUUlBQWdRd0NBa2lHS2Fp
QkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlF
Q0JBZwpVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVR
UUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJCklCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlC
QWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNGWTZXeGtBQUJkcFNVUkIKVkJBZ1FJQkFFUUVC
cE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdR
SUFBQVFJRQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJB
Z1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSklo
aW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1MKWVFwcUlFQ0FB
QUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNC
UVJFRUNLREZxYgpCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5
WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDCkJBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFn
UUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUMKQkFnUXlD
QWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZ
Q0JBZ1FJRUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JB
Z1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBCmttRUthaUJBZ0FBQkFnUUlFQ0JRUkVB
QUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGEKbXdR
SUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNB
QUlFTUFnSkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNT
WVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCCkFnUUlFTWdnSUlCa21JSWFDQkFn
UUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUIK
QWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElv
TFZKZ0FBQkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FB
QUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NCldwc0VDQkFnUUlBQUFRSUVN
Z2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJ
RUEKQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFn
UUlFQ0JRUkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVS
QkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBCkFRSkZCQVNRSW9QV0pn
RUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JB
Z1FDQ0QKZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlC
a21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDSwpERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdR
SUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCCkFBRUNCQWdRSUVD
QVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5
YUcwU0lFQ0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFn
UUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNC
REFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnCmc0QUFrbUVL
YWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FB
QUVDQkFnVUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZC
QVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltbwpnUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFT
WUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBCmdBQUJB
Z1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUND
QVpwcUFHQWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFB
RUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQQpJSU9BQUpKaENtb2dRSUFBQVFJRUNC
QWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRClFJ
b01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdR
SUVDQkFnQUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVB
Z2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZwpRSUFBQVFJRUNCRElJQ0NBWkpp
Q0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFn
ClFJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFS
QVFHa3lLQzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0
RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUgpFRUNLREZxYkJBZ1FJRUNB
QUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NB
a2lHCkthaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dR
SUFBQVFJRUNCQWdVRVJBQUNreWFHMFMKSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJB
Z1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUQpJRUNBQUFFQ1JRUUVr
Q0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFB
RUNCQWdRCklFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNC
RElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dh
YWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSQpoaW1vZ1FBQkFn
UUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZC
RVFBQXBNbWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZx
YkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkKRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JB
Z1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSQpFQ0JBSUlP
QUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9J
RUNCQWdBQUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNB
QUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUMKU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVC
cE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKbwpiUkln
UUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJB
Z1F5Q0FnZ0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFyUHZm
dmU3YlRhYnRiVzF0YmErdmo3VXRMVzExVlpYVjl2NTgrZGIKZkI2WHMyZlB0dE9uVDErNExaWjNJ
VUNBQUFFQ0JBZ1FlTFZBN0VldHJLd00rMWp4K2ZqeDZpWGRRbUI2Z1hQbnpnMzc4T1AzWU96cgpq
L3YxNHo1KzNEZGV4djM5K0RydTMvNzF1TXg0L2Roamo3V2JiNzU1L1BKVjE3SGRlS3p0bDdHZXVO
N2MzR3l6alkyTjlwYTN2R1Y0CnNBZ1Y4WUR4RVN2SEFuLzg0eC9iZmZmL3J2M2JmNjIzWHo2eXIv
M1BZN1Ayd3RrSUtuM0RrVTM2aHRwTmg3Yy9oczhKRUNCQWdBQUIKQXZVRXp2Y2RvOWp2NnZ0UjE4
MDIybTAzbkduditjdldQdnJlQSszTnR4NGFmdEViTzNmYmQvenFJZWw0TndUR3dCRFhzZk1mKy9T
eApIeDlmdi9qaWkrMmxsMTVxYjNqREc5cng0OGN2SEdTSTc4UHhJNEpCWEdMNU1ZRE0rejU5NFlV
WDJ1dGYvL3BMdGhIcngzcFJ3L2IxCjQvYTR4TzIvL3ZXdjJ5d0t1ZjMyMjRjSDI3N2dtVE5uMm4z
MzNkZis3a2NQdGgvOSs5SDIwTE0zdGYySDk3Y1AvdTFON2M0VDE3VWoKaDE0NUF0STNPSXNIT3Rl
UGx2UW5WZXRoYW1YMjhuVi81TGExMGg4d2tsUi8wUFZZNWR4V0I0a0d6N1dWZUpMMmo3alordng4
LzNqKwplUDN3K3Vubmg1K2Y4VHB3TGU0L3JQWFJiZmFkbmRqZk9YM21mUHZQM3ozZmZuN2ZrKzAv
N24ycDNmL0ljKzJ6SHozWFB2RHU0MjNmCnZuM0R6bUZmeklYQVpBS3hnei91NU1kMTdPakhSNFNR
dU1UMUk0ODhNbnovM1hubm5jT1J1ZkhCWS85L1hIZThiYnplbmczRzI1NTgKOHNraE80eGZqOWZ6
dGhIM2ovZEZUYWRPbldxelNFU1JkT0lKTVJZUTRlUGhoeDl1Ly9EVCs5b1BIamplZm5QbTFyWnkw
Nng5NklPMwp0SS9lZGF3ZDJyL1dRMGZmV2kvNFhOOVF6eDZ0UCsvNlAvMVFZd1NRZnQxYmFXdjkv
dFgrak94WExYNHBzTldYNjFFbEZ1eGY5L1dHCjI3YmEyZjZKOWZuNS92SDg4ZnJoOWRQUER6OC9y
OVg5aDFkMmk0YjltZmhkOHB0dk85d08zbmlnL2YwLy9xRTk4TXkrMW43MlpIdlQKRzA2M085NTZw
TzNmdjMvWTkrcUx1UkNZUkNCMjdHTW5QejdpYUVaOEhkZXhiejkreE5zcGZ2bkxYN1lqUjQ2MEV5
ZE9ERWZreG9BUgo2NDJmWDZtZ2VFdkcrTGFOS3kwN2JqZXU0eEkxUlBZWVRzR0tMK0xKRUE4Y0Jj
ZHBWNy80eFMvYXp4OWNiYi9aZUhOYjZVK2dvMGYzCnRadXVYeCtlTUp2OW1SVlBydDVtRHhUeFV0
SGFtWjR3K3ROckNCcXJzOGdpdzB0SVcrMEx4dHRGdHZyOXNYU3MyNjk2K0Fpa2xkYlAKQU90ZnIx
aWZuKzhmengrdkgvM0YxT3Vubng5K2ZsNmIrdy9ETDFramhReVhsMys1ZXZ6b2VqdHkvR0I3WnJi
V0huanF4dmFEZjNtNgovZFh0eDRlZHQ5ZTZBemR1MFRXQnl3bU1BU1N1eC9BUjEzR1FJYjdYNHBT
c0NBN1BQUE5NKzlXdmZ0V3V1KzY2ZHNzdHQxd0l3aGVICmp6aHQ2M3ZmKzE3NzdHYy8rNnFIamJk
dlhMeDhMUFROYjM2emZlcFRuMnFIRGgyNnNNNjRYRnhIQ0luTUVldjNzNmRXMnZQUFB6OFUKRWtz
Lzk5eHp3MGU4d2VUaEY5L1VWby8xSjgreC9lM1lkZXZ0OGVkYmUrcUZyWDRFWkxXdDlaQXhQTS82
QVkyTmZnUWpnczFtLy9WbApISUpzWitNSHlHcUxNN0hpNjlYekw2ZXZjeEZDdHZyN1RPS0IrbTFu
enNVYjNmdWJVWG9vc1Q0LzN6K2VQMTQvdkg3NitlSG41N1c2Ci94QW5lS3lzRG5zNHd4a2ZzVy96
NVBOYjdkaVIyYkRmODF6ZjMvblgzNjhPTzJCeDFzbjRpOS9ZSlhJaHNLekE5Z0F5dnRGN1BBSVMK
cDEvRi9ZY1BIeDQrbm4zMjJSYnY0NGo5LzZOSGoxNElJV01OUC83eGo0Y3dFYWRhZmU1em54dHZ2
bkE5YnZmQ0RhOTg4cDN2ZktmOQo1Q2MvR1VMTHh6NzJzWXZ2SG1xSXg0enNNVHR3NE1EdzVwUklS
SkdPb3FpNDQrbW5uMjVQclA5MU8zSjBmN3ZoMkw0ZVFQYjFONSt2CnRIOSt1S2VXMWMxK2FsWEVq
NWVEUjV4VUZVKzBlSS9IYW4vUHgvcStuclRhWmo4RnF3ZVEvakhyeVgrdGg1UE56WDQ0cUgrYzcr
RWsKTU9MVXJZMjQ3WlVqSTlibjUvdkg4OGZyaDlkUFB6LzgvTHdXOXgvNnJ0UHdpOW40TGUrNXN4
dDlIeWVPZ216MkFMTGVWdUpVa0g0Ngp6TzlmT05yaU5QZlkzeEpBWHJWLzZvWWxCTVlBRXVFZ1Bz
WTNvY2MrZlh6RS9mRS9ZY1gzWGV6elJ3Z2U5L2tQSGp3NDNQN1FRdysxCnIzLzk2eTJ1eDFPbXh2
ZVFiQzh0dG5XcDIyT2RKNTU0b24zMXExOXRQL3poRDlzWHZ2Q0Y5cmEzdlczWVZoejFpSU1jY1dR
bHNzY3MKQ29qRE01Rkk0aEROV0Z4OHZmOWdhOGY2NGNNNCtuSDg2SUVXQmE3M01ER2I5Vk94ZXRC
WVdlMUhNM29SL1FCUER4TG4ycXkvWXV6cgp6N0cxbmlUaU9NZGEvM1ZtdlAwOGJsL3ZUN1o0Yzla
bVgyNnpQeW5QOTQ4SUlHYzMrbmxxZlducjgvUDk0L25qOWNQcnA1OGZmbjVlCnEvc1BzYit6Mm5m
d3RzNzE4TkYvS2J1eGNhYWRQZjFTTzlOUE5WOVoyV2puTjliYmMvM3NqOWh4aTMydDJPZUsvUzhY
QWxNSWpBRWsKcmlPQWpLZEpqVUVpYmh0UCs0djNZRVFJaUVzRWd2aTQ5OTU3MjllKzlyVlhsZkw0
NDQrLzZyWUlNSmU2UGNMMWVMbi8vdnZibDcvOAo1ZmJGTDM2eHZlOTk3eHNDVU5ReXZ1OThGc1ZF
Q0Jtdm8vQW9PZ3A3L2V6eHRuN2c1bmIwNEw1MjlIQVBJSWNPdHdQNys3SjkrVGhWCkl0SitYN3dm
d1hqNWlNWjZQK2RxdlQrWjRtakhFRHo2NXhGVVpxK2NtdFV6UjMvaTlZKytUaHlrSEFMSjJjMjJz
V1g5ZUVIaTUvdkgKODhmcmg5ZFBQei84L096N0RkZmcvc05hLzZWcy82OTUrbjVSMy9uclIwRE9u
bGx0cDlmN2YvSnorc1crNzdQVk5nN08ydlZubiszNwpSTWVHZlM0QlpOeFZkVDJGUU96Y3h6NThm
TVJPL25qa1k3dzlqb2lNWVNUZW94SDcvckZNWE9MMkQzM29RKzExcjN0ZCs4WTN2dEYrCis5dmZE
cmZIUDNIRTVPSkxySHVwMjdjSDZoTW5UclRQZi83ekY0NkFqTFhGWThiMy9uQUVKRFlTSzhWMUxC
QnZFTG54eGh2YjY1NzQKWFR0ejRLN2hQUitIRHUxdlIvdHBXSWNPSCtwUG5uNnFVTHkzSXdKSXI2
b0gvZjZtOGg1TSt0ZnhFVytpak45bXh4SEgrQzk2MS9xZgpEWW5USW1QWnpmNmJnRmgrdUk3d3Nq
WHJoeWl0ejgvM2orZVAxdyt2bjM1KytQbDU3ZTQvOU4yZnZ0OHo2NmVhOTQrTi9lMzBTK3Z0Cnhk
UDlESk4rU3ZycGZoams0SUcxZG1MbDJmNmUyemRlQ0NEakRtQmYxWVhBVWdKajBJajkrUEg3YXJ3
dGZza2RuOGYrZlJ5bGlEL0IKTVFhUVdEYldpY3M3M3ZHTzlwV3ZmS1g5N0djL2E5LzYxcmN1bkIx
MWNXSGpnWXVMYjQ4c0VXOXUvOHhuUHRNKzhwR1BES2VCamR1UAp4NDg2WXBsWWZ3Z2d3eWV2bkJj
MkZ2SFd0NzYxM2ZyUVQ5dWpweDVvNnpkK3NCM29QeGtQOXZCeDZMcElRNjJ2L1BKUmpQaGZIK0tv
ClJvU0tmbVpXaXo5UkdPR2t2dzFrT0JleWg1eCtOT1RsOTRMRVVZOSt3R000K3RIUHZCb09VY2E2
RzlibjUvdkg4OGZyaDlkUFB6LzgKL0x5Rzl4LzY3MTc3cWVrdi80SjFzLzluUEd2cmZXZXAvOEd6
YzJkUHR4ZlhaKzNJQ3crMDk5OStmbmpUNy9hZHY3NmFDNEZKQk9JbwpSMXhpWno5MjlHUG5md3do
WXdDSjA2M3V1dXV1QzZkZ2pjdU02OFQxSno3eGlmYmhEMys0ZmZ2YjM3N2trWTU0TS91bGpvQjg4
cE9mCmJKLys5S2VIRUJMYkhjTkhaSXZZYnB4NkdDRmt5QjNqcVZmaitZaFJlQlQ5Z1E5OG9EMzQ0
SU50ODdmM3RkT1A5amRRSGYrYjRROEcKOXFPSlEvaVk5ZWRWaEl2Ky9xcitCd2o3RTY0SGluNTJW
bHZyS1NPQ1NEOEEwbytDOUk5K3ZSTFgvWmtaWWVOQXY3K2Y0ZFUyZW5DSgpRQkpIUXM1R2lMRStQ
OTgvbmo5ZVA3eCsrdm5oNStjMXV2OFFmMXg1RENBYlBZREVFWkdOMC8wL2xZajlvTWZ1Yis4ODhy
L3QzWGU4CnZkMXd3dzNEamxqc2E3a1FtRW9nZHZESGd3aXh6ZGo1SDYvanZqanlFZjhONzgwMzM5
emU5YTUzRFNGZ1dPQ1ZmMktaY1oyNEtkNksKOGFVdmZXbkhiZVB5eDQ0ZHV4Qmd4dHZpZWx3K3Rq
VmU0dlB4WXp3Q01weUNGV2xwL0JqVFVoUVFmMkw5NHgvL2VOdjQvdmZiSTMvOApwM2JxM2tmYTJU
ZS90NTM3aS9lMTYyODUzdGI2KzB3MjRnOS85RXM4VGh6Wk9OL2Z6N0t2UDUvT1JmTHZmVy8wNEJH
QkpRd2lsTVFUCk1sTEhtYjVzUERQalRWcG4rbTN4QndtdHo4LzNqK2VQMXcrdm4zNSsrUGw1cmU0
L0RIR2k3ODhNKzBSOUgrbXAvenZWbnZydi9rdmMKUHp6UTdyenVwZmIrZDc2dDNYYmJiUmYrUmtL
OEtkaUZ3RlFDNDA1K2hKRDQzb3FkL2ZITjZISHFWZnpuVXJHLy81NzN2R2Y0cjNqSAp4NDMxWXIv
LzR1dngva3RkeHhHUUt3WG83ZHVMejZPdWVQejRQSzVuVVZ4OHhJUEg5WGlKTzkvKzlyY1BEeER2
akgvMDBVZmJpLy96CnZmYk1nOTlzai9kR3hnMXZUMHZqdXE0SkVDQkFnQUFCQWxVRjRxeVMrSjlE
YjczKytuYnI3YmUyRXlmdTZoOG4ydlg5NjloeEcvZTkKcXZyb2UzcUIyQytQUzN4dnhjNSsvSWRT
OFJIaEkvN1hxamlpY2NjZGR3eEhRQ0tjWEh3Wjkrc3Z2djFTWDhmN1BDNjFqVXN0Rzl1TgpqNmhw
REVkUjR5eitLNjc0WXlRUk9MYWZ6eld1RUUrWWVMTktCSkJUcDA0TnpjUURqTWxuKzFHVFN6Mncy
d2dRSUVDQUFBRUNWUVRpCkY3T3hieFNubVVRSWlULzBGcWVzeEU1YjNEYnVJRmJ4ME9mVkVZaWQr
KzA3K21NQWlVZC80eHZmT0h3UHh2ZGw3UE5QY1Zsa094ZUgKajhnZS93OU1NeE02S3RqVGxRQUFB
QUJKUlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85966</attachid>
            <date>2011-03-16 13:44:56 -0700</date>
            <delta_ts>2011-03-16 13:57:54 -0700</delta_ts>
            <desc>Fixes for max leopard</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>52914</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlr
IENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMw
LDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExl
bmd0aCA9IC0xOwotY29uc3QgaW50IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGlu
dCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQg
aW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWlu
IHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIApAQCAtNTIsMzQgKzUyLDM1IEBAIHB1YmxpYzoKICAg
ICBMZW5ndGgoaW50IHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDog
bV9pbnRWYWx1ZSh2KSwgbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAg
ICAgewotICAgICAgICBBU1NFUlQodCAhPSBQZXJjZW50KTsKICAgICB9CiAKICAgICBMZW5ndGgo
ZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0gICAgICAgIDogbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50
Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9p
c0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDogbV9xdWlyayhxKSwgbV90
eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9CiAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgp
ID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90eXBlKSAmJiAobV9xdWly
ayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aCYgbykg
Y29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZsb2F0VmFsdWUoKSkgfHwg
KG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1aXJrKTsgfQogCisgICAg
Y29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGRvdWJsZSB2KQorICAgIHsgICAgICAgIAorICAgICAg
ICBpZiAobV9pc0Zsb2F0KQorICAgICAgICAgICAgbV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1fZmxvYXRWYWx1ZSp2KTsKKyAgICAgICAgZWxzZSAgICAgICAgCisgICAgICAgICAg
ICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50PihtX2ludFZhbHVlKnYpOworICAgICAgICAK
KyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICAKICAgICBpbnQgdmFsdWUoKSBjb25z
dCB7Ci0gICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7Ci0gICAgICAgIHJldHVybiBy
YXdWYWx1ZSgpOworICAgICAgICByZXR1cm4gZ2V0SW50VmFsdWUoKTsKICAgICB9CiAKLSAgICBp
bnQgcmF3VmFsdWUoKSBjb25zdCB7IHJldHVybiBnZXRJbnRWYWx1ZSgpOyB9Ci0KLSAgICBkb3Vi
bGUgcGVyY2VudCgpIGNvbnN0CisgICAgZmxvYXQgcGVyY2VudCgpIGNvbnN0CiAgICAgewogICAg
ICAgICBBU1NFUlQodHlwZSgpID09IFBlcmNlbnQpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihyYXdWYWx1ZSgpKSAvIHBlcmNlbnRTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oZ2V0RmxvYXRWYWx1ZSgpKTsKICAgICB9CiAKICAgICBM
ZW5ndGhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMZW5ndGhUeXBlPiht
X3R5cGUpOyB9CkBAIC05NCwxNCArOTUsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1
ZShpbnQgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQoIXZhbHVlIHx8IHR5cGUoKSAhPSBQ
ZXJjZW50KTsKICAgICAgICAgc2V0VmFsdWUoRml4ZWQsIHZhbHVlKTsKICAgICB9CiAKICAgICB2
b2lkIHNldFZhbHVlKExlbmd0aFR5cGUgdCwgZG91YmxlIHZhbHVlKQogICAgIHsKICAgICAgICAg
bV90eXBlID0gdDsKLSAgICAgICAgbV9mbG9hdFZhbHVlID0gdmFsdWU7CisgICAgICAgIG1fZmxv
YXRWYWx1ZSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSk7CiAgICAgICAgIG1faXNGbG9hdCA9
IHRydWU7ICAgIAogICAgIH0KIApAQCAtMTE5LDcgKzExOSw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgICAgICBpZiAocm91bmRQZXJjZW50YWdlcykK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocm91bmQobWF4VmFs
dWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1
ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4w
KTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFs
dWU7CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtMTM1LDcgKzEzNSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgICAgICBpZiAocm91bmRQZXJjZW50
YWdlcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocm91bmQo
bWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBt
YXhWYWx1ZSAqIHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAv
IDEwMC4wKTsKICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNTYsMTAgKzE1NiwxNiBAQCBwdWJsaWM6CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4g
cmF3VmFsdWUoKSA9PSB1bmRlZmluZWRMZW5ndGg7IH0KLSAgICBib29sIGlzWmVybygpIGNvbnN0
IHsgcmV0dXJuICFnZXRJbnRWYWx1ZSgpOyB9Ci0gICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3Qg
eyByZXR1cm4gcmF3VmFsdWUoKSA+IDA7IH0KLSAgICBib29sIGlzTmVnYXRpdmUoKSBjb25zdCB7
IHJldHVybiByYXdWYWx1ZSgpIDwgMDsgfQorICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25zdCB7
IHJldHVybiB2YWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsgfQorICAgIGJvb2wgaXNaZXJvKCkg
Y29uc3QgCisgICAgeyAKKyAgICAgICAgaWYgKG1faXNGbG9hdCkKKyAgICAgICAgICAgIHJldHVy
biAhbV9mbG9hdFZhbHVlOyAKKyAgICAgICAgCisgICAgICAgIHJldHVybiAhbV9pbnRWYWx1ZTsK
KyAgICB9CisgICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxvYXRWYWx1
ZSgpID4gMDsgfQorICAgIGJvb2wgaXNOZWdhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsb2F0
VmFsdWUoKSA8IDA7IH0KIAogICAgIGJvb2wgaXNBdXRvKCkgY29uc3QgeyByZXR1cm4gdHlwZSgp
ID09IEF1dG87IH0KICAgICBib29sIGlzUmVsYXRpdmUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkg
PT0gUmVsYXRpdmU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVM
YXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFi
bGVMYXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9BdXRvVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3IEBAIHZv
aWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKIAogICAgICAgICAgICAgICAg
ICAgICBMZW5ndGggY2VsbExvZ2ljYWxXaWR0aCA9IGNlbGwtPnN0eWxlT3JDb2xMb2dpY2FsV2lk
dGgoKTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoYXQgaXMgdGhpcyBhcmJpdHJh
cnkgdmFsdWU/Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgPiAzMjc2MCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgu
dmFsdWUoKSA+IDMyNzYwKQogICAgICAgICAgICAgICAgICAgICAgICAgY2VsbExvZ2ljYWxXaWR0
aC5zZXRWYWx1ZSgzMjc2MCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdp
ZHRoLmlzTmVnYXRpdmUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxMb2dpY2FsV2lk
dGguc2V0VmFsdWUoMCk7CkBAIC0xMDUsMTMgKzEwNSwxMyBAQCB2b2lkIEF1dG9UYWJsZUxheW91
dDo6cmVjYWxjQ29sdW1uKGludCBlCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAgICAgICAgICAg
bV9oYXNQZXJjZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9n
aWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGguaXNQ
ZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpID4gY29sdW1uTGF5b3V0Lmxv
Z2ljYWxXaWR0aC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxs
TG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgu
aXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0Lmxv
Z2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5M
YXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFJlbGF0aXZlOgogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGNhc2Ug
YW5kIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFyZSB2YWx1ZXMKICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHdoaWNoIGFyZSBub3QgbmVjZXNzYXJpbHkgb2YgdGhlIHNhbWUgdHlw
ZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzQXV0bygp
IHx8IChjZWxsTG9naWNhbFdpZHRoLmlzUmVsYXRpdmUoKSAmJiBjZWxsTG9naWNhbFdpZHRoLnZh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dp
Y2FsV2lkdGguaXNSZWxhdGl2ZSgpICYmIGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGgudmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aCA9IGNlbGxMb2dpY2FsV2lkdGg7CiAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTIzMiwxNiArMjMyLDE2IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVk
TG8KIAogICAgIC8vIFdlIHN1YnN0aXR1dGUgMCBwZXJjZW50IGJ5IChlcHNpbG9uIC8gcGVyY2Vu
dFNjYWxlRmFjdG9yKSBwZXJjZW50IGluIHR3byBwbGFjZXMgYmVsb3cgdG8gYXZvaWQgZGl2aXNp
b24gYnkgemVyby4KICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSAwJSBjYXNlcyBwcm9wZXJseS4K
LSAgICBjb25zdCBpbnQgZXBzaWxvbiA9IDE7CisgICAgY29uc3QgZmxvYXQgZXBzaWxvbiA9IDEg
LyAxMjguMGY7CiAKLSAgICBpbnQgcmVtYWluaW5nUGVyY2VudCA9IDEwMCAqIHBlcmNlbnRTY2Fs
ZUZhY3RvcjsKKyAgICBmbG9hdCByZW1haW5pbmdQZXJjZW50ID0gMTAwOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9sYXlvdXRTdHJ1Y3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgbWlu
V2lkdGggKz0gbV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWluTG9naWNhbFdpZHRoOwogICAg
ICAgICBtYXhXaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lk
dGg7CiAgICAgICAgIGlmIChzY2FsZUNvbHVtbnMpIHsKICAgICAgICAgICAgIGlmIChtX2xheW91
dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICBpbnQgcGVyY2VudCA9IG1pbihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dp
Y2FsV2lkdGgucmF3VmFsdWUoKSwgcmVtYWluaW5nUGVyY2VudCk7Ci0gICAgICAgICAgICAgICAg
ZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W2ld
LmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IgLyBt
YXgocGVyY2VudCwgZXBzaWxvbik7CisgICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudCA9IG1p
bihzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdp
ZHRoLnBlcmNlbnQoKSksIHJlbWFpbmluZ1BlcmNlbnQpOworICAgICAgICAgICAgICAgIGZsb2F0
IGxvZ2ljYWxXaWR0aCA9IHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZl
Y3RpdmVNYXhMb2dpY2FsV2lkdGgpICogMTAwIC8gbWF4KHBlcmNlbnQsIGVwc2lsb24pOwogICAg
ICAgICAgICAgICAgIG1heFBlcmNlbnQgPSBtYXgobG9naWNhbFdpZHRoLCAgbWF4UGVyY2VudCk7
CiAgICAgICAgICAgICAgICAgcmVtYWluaW5nUGVyY2VudCAtPSBwZXJjZW50OwogICAgICAgICAg
ICAgfSBlbHNlCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmNvbXB1
dGVQcmVmZXJyZWRMbwogICAgIH0KIAogICAgIGlmIChzY2FsZUNvbHVtbnMpIHsKLSAgICAgICAg
bWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3Ig
LyBtYXgocmVtYWluaW5nUGVyY2VudCwgZXBzaWxvbik7CisgICAgICAgIG1heE5vblBlcmNlbnQg
PSBtYXhOb25QZXJjZW50ICogMTAwIC8gbWF4KHJlbWFpbmluZ1BlcmNlbnQsIGVwc2lsb24pOwog
ICAgICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3RhdGljX2Nhc3Q8aW50PihtaW4obWF4
Tm9uUGVyY2VudCwgSU5UX01BWCAvIDIuMGYpKSk7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1h
eFdpZHRoLCBzdGF0aWNfY2FzdDxpbnQ+KG1pbihtYXhQZXJjZW50LCBJTlRfTUFYIC8gMi4wZikp
KTsKICAgICB9CkBAIC0yNjYsNiArMjY2LDEwIEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0Ojpjb21w
dXRlUHJlZmVycmVkTG8KICAgICAgICAgbWluV2lkdGggPSBtYXgobWluV2lkdGgsIHRhYmxlTG9n
aWNhbFdpZHRoLnZhbHVlKCkpOwogICAgICAgICBtYXhXaWR0aCA9IG1pbldpZHRoOwogICAgIH0K
KyAgICAKKyAgICAvLyBpZiB0aGVyZSB3YXMgbm8gcmVtYWluaW5nIHBlcmNlbnQsIG1heFdpZHRo
IGlzIGludmFsaWQuCisgICAgaWYgKCFyZW1haW5pbmdQZXJjZW50ICYmIG1heE5vblBlcmNlbnQp
CisgICAgICAgIG1heFdpZHRoID0gaW50TWF4Rm9yTGVuZ3RoOyAgICAgICAgCiB9CiAKIC8qCkBA
IC0zMDAsNyArMzA0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxvZ2lj
YQogICAgICAgICBzaXplX3QgbGFzdENvbCA9IGVmZkNvbDsKICAgICAgICAgaW50IGNlbGxNaW5M
b2dpY2FsV2lkdGggPSBjZWxsLT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSArIHNwYWNpbmdJ
blJvd0RpcmVjdGlvbjsKICAgICAgICAgZmxvYXQgY2VsbE1heExvZ2ljYWxXaWR0aCA9IGNlbGwt
Pm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwotICAg
ICAgICBpbnQgdG90YWxQZXJjZW50ID0gMDsKKyAgICAgICAgZmxvYXQgdG90YWxQZXJjZW50ID0g
MDsKICAgICAgICAgaW50IHNwYW5NaW5Mb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBmbG9hdCBz
cGFuTWF4TG9naWNhbFdpZHRoID0gMDsKICAgICAgICAgYm9vbCBhbGxDb2xzQXJlUGVyY2VudCA9
IHRydWU7CkBAIC0zMTIsNyArMzE2LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVj
dGl2ZUxvZ2ljYQogICAgICAgICAgICAgTGF5b3V0JiBjb2x1bW5MYXlvdXQgPSBtX2xheW91dFN0
cnVjdFtsYXN0Q29sXTsKICAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uTGF5b3V0LmxvZ2ljYWxX
aWR0aC50eXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKLSAgICAgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRo
LnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICBhbGxDb2xzQXJlRml4ZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgRml4ZWQ6CkBAIC0zMzksNyAr
MzQzLDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxvZ2ljYQogICAgICAg
ICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQuZWZmZWN0aXZlTG9naWNhbFdpZHRoID0gTGVuZ3Ro
KCk7CiAgICAgICAgICAgICAgICAgICAgIGFsbENvbHNBcmVQZXJjZW50ID0gZmFsc2U7CiAgICAg
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBj
b2x1bW5MYXlvdXQuZWZmZWN0aXZlTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQuZWZmZWN0aXZlTG9naWNhbFdp
ZHRoLnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICBhbGxDb2xzQXJlRml4ZWQgPSBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghY29sdW1uTGF5b3V0LmVtcHR5Q2VsbHNP
bmx5KQpAQCAtMzU0LDE0ICszNTgsMTQgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVj
dGl2ZUxvZ2ljYQogCiAgICAgICAgIC8vIGFkanVzdCB0YWJsZSBtYXggd2lkdGggaWYgbmVlZGVk
CiAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAg
ICBpZiAodG90YWxQZXJjZW50ID4gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIHx8IGFsbENv
bHNBcmVQZXJjZW50KSB7CisgICAgICAgICAgICBpZiAodG90YWxQZXJjZW50ID4gY2VsbExvZ2lj
YWxXaWR0aC5wZXJjZW50KCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKICAgICAgICAgICAgICAg
ICAvLyBjYW4ndCBzYXRpZnkgdGhpcyBjb25kaXRpb24sIHRyZWF0IGFzIHZhcmlhYmxlCiAgICAg
ICAgICAgICAgICAgY2VsbExvZ2ljYWxXaWR0aCA9IExlbmd0aCgpOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBtYXgobWF4TG9naWNhbFdp
ZHRoLCBtYXgoc3Bhbk1heExvZ2ljYWxXaWR0aCwgY2VsbE1heExvZ2ljYWxXaWR0aCkgKiAxMDAg
KiBwZXJjZW50U2NhbGVGYWN0b3IgLyBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpOworICAg
ICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIHN0YXRp
Y19jYXN0PGZsb2F0PihtYXgoc3Bhbk1heExvZ2ljYWxXaWR0aCwgY2VsbE1heExvZ2ljYWxXaWR0
aCkgKiAxMDAgIC8gY2VsbExvZ2ljYWxXaWR0aC5wZXJjZW50KCkpKTsKIAogICAgICAgICAgICAg
ICAgIC8vIGFsbCBub24gcGVyY2VudCBjb2x1bW5zIGluIHRoZSBzcGFuIGdldCBwZXJjZW50IHZh
bHVlcyB0byBzdW0gdXAgY29ycmVjdGx5LgotICAgICAgICAgICAgICAgIGludCBwZXJjZW50TWlz
c2luZyA9IGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSAtIHRvdGFsUGVyY2VudDsKKyAgICAg
ICAgICAgICAgICBmbG9hdCBwZXJjZW50TWlzc2luZyA9IGNlbGxMb2dpY2FsV2lkdGgucGVyY2Vu
dCgpIC0gdG90YWxQZXJjZW50OwogICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsV2lkdGggPSAw
OwogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgcG9zID0gZWZmQ29sOyBwb3MgPCBsYXN0
Q29sOyArK3BvcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1fbGF5b3V0U3RydWN0W3Bv
c10uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKQpAQCAtMzcwLDcgKzM3NCw3IEBA
IGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKIAogICAgICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgcG9zID0gZWZmQ29sOyBwb3MgPCBsYXN0Q29sICYmIHRvdGFsV2lk
dGggPiAwOyArK3BvcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1fbGF5b3V0U3RydWN0
W3Bvc10uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgcGVyY2VudCA9IHN0YXRpY19jYXN0PGludD4ocGVyY2VudE1pc3Npbmcg
KiBzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVNYXhMb2dp
Y2FsV2lkdGgpIC8gdG90YWxXaWR0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBw
ZXJjZW50ID0gcGVyY2VudE1pc3NpbmcgKiBzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1
Y3RbcG9zXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpIC8gdG90YWxXaWR0aDsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvdGFsV2lkdGggLT0gbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3Rp
dmVNYXhMb2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50TWlzc2lu
ZyAtPSBwZXJjZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlcmNlbnQgPiAwKQpA
QCAtNDkxLDcgKzQ5NSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGlu
dCBudW1GaXhlZCA9IDA7CiAgICAgZmxvYXQgdG90YWxBdXRvID0gMDsKICAgICBmbG9hdCB0b3Rh
bEZpeGVkID0gMDsKLSAgICBpbnQgdG90YWxQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBl
cmNlbnQgPSAwOwogICAgIGludCBhbGxvY0F1dG8gPSAwOwogICAgIHVuc2lnbmVkIG51bUF1dG9F
bXB0eUNlbGxzT25seSA9IDA7CiAKQEAgLTUwNCw3ICs1MDgsNyBAQCB2b2lkIEF1dG9UYWJsZUxh
eW91dDo6bGF5b3V0KCkKICAgICAgICAgc3dpdGNoIChsb2dpY2FsV2lkdGgudHlwZSgpKSB7CiAg
ICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgIGhhdmVQZXJjZW50ID0gdHJ1ZTsKLSAg
ICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCArPSBsb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVsYXRpdmU6CiAgICAgICAgICAgICB0b3RhbFJlbGF0
aXZlICs9IGxvZ2ljYWxXaWR0aC52YWx1ZSgpOwpAQCAtNTM4LDkgKzU0Miw5IEBAIHZvaWQgQXV0
b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICAgICAgICAgIG1fbGF5b3V0U3RydWN0W2ld
LmNvbXB1dGVkTG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgICAgICBpZiAodG90YWxQZXJjZW50ID4gMTAwICogcGVyY2VudFNjYWxl
RmFjdG9yKSB7CisgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAxMDApIHsKICAgICAgICAgICAg
IC8vIHJlbW92ZSBvdmVyYWxsb2NhdGVkIHNwYWNlIGZyb20gdGhlIGxhc3QgY29sdW1ucwotICAg
ICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNhbFdpZHRoICogKHRvdGFsUGVyY2VudCAt
IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgLyAoMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKTsK
KyAgICAgICAgICAgIGludCBleGNlc3MgPSB0YWJsZUxvZ2ljYWxXaWR0aCAqICh0b3RhbFBlcmNl
bnQgLSAxMDApIC8gMTAwOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IG5FZmZDb2xzIC0gMTsg
aSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgICAgICBpZiAobV9sYXlvdXRTdHJ1Y3RbaV0uZWZm
ZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlu
dCBjZWxsTG9naWNhbFdpZHRoID0gbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lk
dGg7CkBAIC02MDcsMTMgKzYxMSwxMyBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5b3V0KCkK
ICAgICB9CiAKICAgICAvLyBzcHJlYWQgb3ZlciBwZXJjZW50IGNvbHVtcwotICAgIGlmIChhdmFp
bGFibGUgPiAwICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDAgKiBwZXJjZW50
U2NhbGVGYWN0b3IpIHsKKyAgICBpZiAoYXZhaWxhYmxlID4gMCAmJiBtX2hhc1BlcmNlbnQgJiYg
dG90YWxQZXJjZW50IDwgMTAwKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbkVm
ZkNvbHM7ICsraSkgewogICAgICAgICAgICAgTGVuZ3RoJiBsb2dpY2FsV2lkdGggPSBtX2xheW91
dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGg7CiAgICAgICAgICAgICBpZiAobG9naWNh
bFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lk
dGggPSBhdmFpbGFibGUgKiBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKSAvIHRvdGFsUGVyY2VudDsK
KyAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2lj
YWxXaWR0aC5wZXJjZW50KCkgLyB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgYXZhaWxh
YmxlIC09IGNlbGxMb2dpY2FsV2lkdGg7Ci0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50IC09
IGxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAt
PSBsb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIG1fbGF5b3V0U3RydWN0
W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoICs9IGNlbGxMb2dpY2FsV2lkdGg7CiAgICAgICAgICAg
ICAgICAgaWYgKCFhdmFpbGFibGUgfHwgIXRvdGFsUGVyY2VudCkKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVM
YXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9G
aXhlZFRhYmxlTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw4IEBAIGlu
dCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShpbnQKICAgICAgICAgICAgICAgICAg
ICAgc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChj
dXJyZW50RWZmZWN0aXZlQ29sdW1uKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgaWYgKCh3LmlzRml4ZWQoKSB8fCB3LmlzUGVyY2VudCgpKSAmJiB3LmlzUG9zaXRpdmUoKSkg
ewotICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5dLnNl
dFZhbHVlKHcudHlwZSgpLCB3LnJhd1ZhbHVlKCkgKiBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29s
dW1uKTsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjdXJyZW50RWZmZWN0aXZlQ29sdW1u
XSA9IHc7CisgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVudEVmZmVjdGl2ZUNvbHVt
bl0gKj0gc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKICAgICAgICAgICAgICAgICAgICAg
dXNlZFdpZHRoICs9IGVmZldpZHRoICogc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc3BhbiAtPSBzcGFuSW5DdXJyZW50RWZm
ZWN0aXZlQ29sdW1uOwpAQCAtMTY0LDEwICsxNjUsMTEgQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6
OmNhbGNXaWR0aEFycmF5KGludAogICAgICAgICAgICAgICAgIGludCB1c2VkU3BhbiA9IDA7CiAg
ICAgICAgICAgICAgICAgaW50IGkgPSAwOwogICAgICAgICAgICAgICAgIHdoaWxlICh1c2VkU3Bh
biA8IHNwYW4gJiYgY0NvbCArIGkgPCBuRWZmQ29scykgewotICAgICAgICAgICAgICAgICAgICBp
bnQgZVNwYW4gPSBtX3RhYmxlLT5zcGFuT2ZFZmZDb2woY0NvbCArIGkpOworICAgICAgICAgICAg
ICAgICAgICBmbG9hdCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29sICsgaSk7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgc2V0IGlmIG5vIGNvbCBlbGVtZW50IGhhcyBhbHJl
YWR5IHNldCBpdC4KICAgICAgICAgICAgICAgICAgICAgaWYgKG1fd2lkdGhbY0NvbCArIGldLmlz
QXV0bygpICYmIHcudHlwZSgpICE9IEF1dG8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1f
d2lkdGhbY0NvbCArIGldLnNldFZhbHVlKHcudHlwZSgpLCB3LnJhd1ZhbHVlKCkgKiBlU3BhbiAv
IHNwYW4pOworICAgICAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0gPSB3Owor
ICAgICAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0gKj0gZVNwYW4gLyBzcGFu
OwogICAgICAgICAgICAgICAgICAgICAgICAgdXNlZFdpZHRoICs9IGVmZldpZHRoICogZVNwYW4g
LyBzcGFuOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIHVzZWRT
cGFuICs9IGVTcGFuOwpAQCAtMjM0LDcgKzIzNiw3IEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6
bGF5b3V0KCkKICAgICBpbnQgYXV0b1NwYW4gPSAwOwogICAgIGludCB0b3RhbEZpeGVkV2lkdGgg
PSAwOwogICAgIGludCB0b3RhbFBlcmNlbnRXaWR0aCA9IDA7Ci0gICAgaW50IHRvdGFsUmF3UGVy
Y2VudCA9IDA7CisgICAgZmxvYXQgdG90YWxQZXJjZW50ID0gMDsKIAogICAgIC8vIENvbXB1dGUg
cmVxdWlyZW1lbnRzIGFuZCB0cnkgdG8gc2F0aXNmeSBmaXhlZCBhbmQgcGVyY2VudCB3aWR0aHMu
CiAgICAgLy8gUGVyY2VudGFnZXMgYXJlIG9mIHRoZSB0YWJsZSdzIHdpZHRoLCBzbyBmb3IgZXhh
bXBsZQpAQCAtMjQ3LDcgKzI0OSw3IEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KCkK
ICAgICAgICAgfSBlbHNlIGlmIChtX3dpZHRoW2ldLmlzUGVyY2VudCgpKSB7CiAgICAgICAgICAg
ICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLmNhbGNWYWx1ZSh0YWJsZUxvZ2ljYWxXaWR0aCk7
CiAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhbaV07Ci0gICAgICAg
ICAgICB0b3RhbFJhd1BlcmNlbnQgKz0gbV93aWR0aFtpXS5yYXdWYWx1ZSgpOworICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IG1fd2lkdGhbaV0ucGVyY2VudCgpOwogICAgICAgICB9IGVsc2Ug
aWYgKG1fd2lkdGhbaV0uaXNBdXRvKCkpIHsKICAgICAgICAgICAgIG51bUF1dG8rKzsKICAgICAg
ICAgICAgIGF1dG9TcGFuICs9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChpKTsKQEAgLTI3MCwxMSAr
MjcyLDExIEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICh0b3RhbFJhd1BlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAg
ICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBuRWZmQ29sczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3dpZHRoW2ldLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYWxj
V2lkdGhbaV0gPSBtX3dpZHRoW2ldLnJhd1ZhbHVlKCkgKiAodGFibGVMb2dpY2FsV2lkdGggLSB0
b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxSYXdQZXJjZW50OworICAgICAgICAgICAgICAgICAgICAg
ICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5wZXJjZW50KCkgKiAodGFibGVMb2dpY2FsV2lk
dGggLSB0b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxQZXJjZW50OwogICAgICAgICAgICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50V2lkdGggKz0gY2FsY1dpZHRoW2ldOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6YWRkQ2VsbChSZW5k
ZXJUCiAgICAgICAgICAgICBzd2l0Y2ggKGxvZ2ljYWxIZWlnaHQudHlwZSgpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAgICAgICBpZiAoIShjUm93TG9n
aWNhbEhlaWdodC5pc1BlcmNlbnQoKSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgIChjUm93
TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93TG9naWNhbEhlaWdodC5yYXdWYWx1ZSgp
IDwgbG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChj
Um93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93TG9naWNhbEhlaWdodC5wZXJjZW50
KCkgPCBsb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBt
X2dyaWRbbV9jUm93XS5sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgRml4ZWQ6CkBAIC00MzQs
MjIgKzQzNCwyMiBAQCBpbnQgUmVuZGVyVGFibGVTZWN0aW9uOjpsYXlvdXRSb3dzKGludCB0CiAg
ICAgICAgICAgICBpZiAobV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNBdXRvKCkpCiAgICAgICAg
ICAgICAgICAgbnVtQXV0bysrOwogICAgICAgICAgICAgZWxzZSBpZiAobV9ncmlkW3JdLmxvZ2lj
YWxIZWlnaHQuaXNQZXJjZW50KCkpCi0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IG1f
Z3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQ
ZXJjZW50ICs9IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKICAgICAgICAgfQog
ICAgICAgICBpZiAodG90YWxQZXJjZW50KSB7CiAgICAgICAgICAgICAvLyB0cnkgdG8gc2F0aXNm
eSBwZXJjZW50CiAgICAgICAgICAgICBpbnQgYWRkID0gMDsKLSAgICAgICAgICAgIHRvdGFsUGVy
Y2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAg
ICAgICAgICB0b3RhbFBlcmNlbnQgPSBtaW4odG90YWxQZXJjZW50LCAxMDApOwogICAgICAgICAg
ICAgaW50IHJoID0gbV9yb3dQb3NbMV0gLSBtX3Jvd1Bvc1swXTsKICAgICAgICAgICAgIGZvciAo
aW50IHIgPSAwOyByIDwgdG90YWxSb3dzOyByKyspIHsKICAgICAgICAgICAgICAgICBpZiAodG90
YWxQZXJjZW50ID4gMCAmJiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkgewot
ICAgICAgICAgICAgICAgICAgICBpbnQgdG9BZGQgPSBtaW4oZGgsICh0b3RhbEhlaWdodCAqIG1f
Z3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxlRmFj
dG9yKSkgLSByaCk7CisgICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihkaCwgc3Rh
dGljX2Nhc3Q8aW50PigodG90YWxIZWlnaHQgKiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5wZXJj
ZW50KCkgLyAxMDApIC0gcmgpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdG9BZGQgaXMg
bmVnYXRpdmUsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBzaHJpbmsgdGhlIHJvdyAodGhpcyBidWcK
ICAgICAgICAgICAgICAgICAgICAgLy8gYWZmZWN0ZWQgT3V0bG9vayBXZWIgQWNjZXNzKS4KICAg
ICAgICAgICAgICAgICAgICAgdG9BZGQgPSBtYXgoMCwgdG9BZGQpOwogICAgICAgICAgICAgICAg
ICAgICBhZGQgKz0gdG9BZGQ7CiAgICAgICAgICAgICAgICAgICAgIGRoIC09IHRvQWRkOwotICAg
ICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQu
cmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50IC09IG1fZ3JpZFty
XS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgaWYgKHIgPCB0b3RhbFJvd3MgLSAxKQogICAgICAgICAgICAgICAgICAgICByaCA9IG1f
cm93UG9zW3IgKyAyXSAtIG1fcm93UG9zW3IgKyAxXTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OSwxMyArNDksMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNCb3JkZXJSYWRpdXMoKSBjb25z
dAogICAgIHsKLSAgICAgICAgaWYgKG1fdG9wTGVmdC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQor
ICAgICAgICBpZiAoIW1fdG9wTGVmdC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX3RvcFJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDAp
CisgICAgICAgIGlmICghbV90b3BSaWdodC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRvbUxlZnQud2lkdGgoKS5yYXdWYWx1ZSgp
ID4gMCkKKyAgICAgICAgaWYgKCFtX2JvdHRvbUxlZnQud2lkdGgoKS5pc1plcm8oKSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobV9ib3R0b21SaWdodC53aWR0aCgpLnJh
d1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tUmlnaHQud2lkdGgoKS5pc1plcm8o
KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gODA2NjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMy0wOSAgUmlrIENhYmFuaWVyICA8
Y2FiYW5pZXJAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGJ1ZyA1NjA1MjogcGVyY2VudGFnZXMgYXJlIGluY29ycmVjdGx5IHJvdW5k
ZWQgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjA1MgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXItZXhwZWN0ZWQudHh0OgorCiAyMDExLTAzLTA5ICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNz
ZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQuY2hl
Y2tzdW0JKHJldmlzaW9uIDgwMzgxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQuY2hlY2tzdW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEgKzEgQEAKLTQxNGNhYWEyZWUwOTgyM2ZjYzZiMTIwMGQzMGVjMTI3ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorYzZkOTA1NTM0MWE5OTA0OTI5Y2NjNDk0NzZjN2JkOWUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVn
ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MDM4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDQpIHNpemUgOTEweDQKICAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0K
ICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDgpIHNpemUgOTEweDQKLSAgICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUg
OTAweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFti
Z2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYpIHNp
emUgODkweDQKQEAgLTQ5LDcgKzQ5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg0KSBzaXplIDg0MHg0CiAgICAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0Zd
CiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg4KSBzaXplIDgzNXg0Ci0gICAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAw
N0ZdCisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdj
b2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkyKSBzaXpl
IDgyNXg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBb
Ymdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDk2KSBz
aXplIDgxNXg0CkBAIC04NCw2MSArODQsNjEgQEAgbGF5ZXIgYXQgKDgsMTI2KSBzaXplIDEwMDB4
MjAKICAgUmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICBSZW5k
ZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICAgIFJlbmRl
clRhYmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCi0gICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgwLDEpIHNpemUgMTF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDEpIHNpemUg
MTJ4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgxMSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0x
XQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTIsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxLDEpIHNp
emUgMTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCisgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMiwxKSBzaXplIDEzeDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDM1LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9MyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NCwxKSBzaXplIDE1eDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNDUsMSkgc2l6ZSAxNngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz00IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDU5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9NSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2MSwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTUgcnM9MSBjcz0xXQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoNjksMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcxLDEpIHNpemUgMTd4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4
NiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk2LDEpIHNpemUg
MjB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCisgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICg5OCwxKSBzaXplIDIweDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTggcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTE2LDEpIHNpemUgMTB4MTggW2Jn
Y29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgxMTgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAg
Yz05IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyNiwxKSBzaXplIDIxeDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDEyOCwxKSBzaXplIDIyeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEwIHJz
PTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4
CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDE0NywxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDE1MCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTExIHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDE1NywxKSBzaXplIDIzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9
MCBjPTEyIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE2MCwx
KSBzaXplIDI0eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEyIHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDE4MCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEz
IHJzPTEgY3M9MV0KLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE5MCwxKSBzaXpl
IDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9MV0KKyAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4NCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZG
MDA3Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDE5NCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDIxNSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTE1IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIx
OSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE1IHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDIyNSwxKSBzaXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBj
PTE2IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyOSwxKSBz
aXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2IHJzPTEgY3M9MV0KICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDI1MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI1NiwxKSBzaXplIDEw
eDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEgY3M9MV0KICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDI2MiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9
MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2NiwxKSBzaXplIDMweDE4IFti
Z2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI5Miwx
KSBzaXplIDcwOHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjk2LDEpIHNpemUgNzA0eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCiAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5wbmcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1p
bWUtdHlwZSA9IGltYWdlL3BuZwoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlB
QUFDYWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFBZUFHRgpWTTlyRTBFVS9qWnVxZEFp
Q0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6U2RadU51dnVKcldsaU9UaTBTcmVS
ZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVNdHFYcXdNNSs4OTQzNzMxdmR0OEFE
WExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFsVmR2c1RpUUdRWU56K1h2bjJIb1Bn
VnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhDbGtTQW9nOAozNkVweDNRSTMrUFk4
dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRRSU5JT0pUMWNWSStuTmVMbE5jZEIy
bHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9zOTQrd2lIQ0N4bXRQMGE0alo3MWpO
VS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFUU2VpVkhIWkxnM3htSzc5VnZKS2du
Q1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1VlRjVqeE5uM3RUZAo3MFhhQXE4d0Ro
ME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJodVRlekoxSkdxN2RHSkVzVUY3TnR3
OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkxeXcyRmIzbEsyYm1ycnk0RHZGNVpt
NUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAreFhsekhtZ2pXUHhIT3crL0V0WDVY
TWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJYV2M2MkppemRXbTVkbgovV3BJKys2
cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3eGt0aExxd3ZpWUczSENKMlZoaW5T
YlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxTSjkzL0NLbVEwbmJrT2IvcVAyOGY4
RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJWHY5Rjk4TFp1YTZOK09Qd0VXRHly
RnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82NmNwaVVzeFEyME5TVXRjbAoxMlZM
RnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3L2JCUytmbXNVdGwrVGhyV2daZjZi
OEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWUzZDNZOWNkM2tIOE4vdXp2bzF0aE1uaEJBZ09DMUZD
U2k4Vm9DRW9FalFDN2poa2hkeHlRMWM4QzhrbHZnVGtMamgKRWdrUU55QlZCVUZCRkZWQ2JWb0ZK
YVUwS2FTRWtsTHk0cndudG5mdDdlODV5VEc3anNmT2FNNmF4L3Q4UmxyUDdzdzVaNTduOCt6TQpu
dStlTTk2VnJYNXBMZ1FJRUNCQWdBQUJBZ1FJRUxnS0FxdFg0VEU4QkFFQ0JBZ1FJRUNBQUFFQ0JB
WUJBY1EzQWdFQ0JBZ1FJRUNBCkFBRUNWMDFBQUxscTFCNklBQUVDQkFnUUlFQ0FBQUVCeFBjQUFR
SUVDQkFnUUlBQUFRSlhUVUFBdVdyVUhvZ0FBUUlFQ0JBZ1FJQUEKQVFIRTl3QUJBZ1FJRUNCQWdB
QUJBbGROUUFDNWF0UWVpQUFCQWdRSUVDQkFnQUNCMlpVSVZrNnVYR2tSOTE5RmdhMjcvZG1XcThq
dApvUWdRSUVDQUFBRUNCQ1lXY0FSa1lsQ2JJMENBQUFFQ0JBZ1FJRUJndm9BQU10L0dQUVFJRUNC
QWdBQUJBZ1FJVEN3Z2dFd01hbk1FCkNCQWdRSUFBQVFJRUNNd1hFRURtMjdpSEFBRUNCQWdRSUVD
QUFJR0pCUVNRaVVGdGpnQUJBZ1FJRUNCQWdBQ0IrUUlDeUh3Yjl4QWcKUUlBQUFRSUVDQkFnTUxH
QUFESXhxTTBSSUVDQUFBRUNCQWdRSURCZlFBQ1piK01lQWdRSUVDQkFnQUFCQWdRbUZoQkFKZ2Ex
T1FJRQpDQkFnUUlBQUFRSUU1Z3NJSVBOdDNFT0FBQUVDQkFnUUlFQ0F3TVFDQXNqRW9EWkhnQUFC
QWdRSUVDQkFnTUI4QVFGa3ZvMTdDQkFnClFJQUFBUUlFQ0JDWVdFQUFtUmpVNWdnUUlFQ0FBQUVD
QkFnUW1DOGdnTXkzY1E4QkFnUUlFQ0JBZ0FBQkFoTUxDQ0FUZzlvY0FRSUUKQ0JBZ1FJQUFBUUx6
QlFTUStUYnVJVUNBQUFFQ0JBZ1FJRUJnWWdFQlpHSlFteU5BZ0FBQkFnUUlFQ0JBWUw2QUFETGZ4
ajBFQ0JBZwpRSUFBQVFJRUNFd3NJSUJNREdwekJBZ1FJRUNBQUFFQ0JBak1GeEJBNXR1NGh3QUJB
Z1FJRUNCQWdBQ0JpUVVFa0lsQmJZNEFBUUlFCkNCQWdRSUFBZ2ZrQ0FzaDhHL2NRSUVDQUFBRUNC
QWdRSURDeGdBQXlNYWpORVNCQWdBQUJBZ1FJRUNBd1gwQUFtVy9qSGdJRUNCQWcKUUlBQUFRSUVK
aFlRUUNZR3RUa0NCQWdRSUVDQUFBRUNCT1lMQ0NEemJkeERnQUFCQWdRSUVDQkFnTURFQWdMSXhL
QTJSNEFBQVFJRQpDQkFnUUlEQWZBRUJaTDZOZXdnUUlFQ0FBQUVDQkFnUW1GaEFBSmtZMU9ZSUVD
QkFnQUFCQWdRSUVKZ3ZJSURNdDNFUEFRSUVDQkFnClFJQUFBUUlUQ3dnZ0U0UGFIQUVDQkFnUUlF
Q0FBQUVDOHdVRWtQazI3aUZBZ0FBQkFnUUlFQ0JBWUdJQkFXUmlVSnNqUUlBQUFRSUUKQ0JBZ1FH
QytnQUF5MzhZOUJBZ1FJRUNBQUFFQ0JBaE1MQ0NBVEF4cWN3UUlFQ0JBZ0FBQkFnUUl6QmNRUU9i
YnVJY0FBUUlFQ0JBZwpRSUFBZ1lrRkJKQ0pRVzJPQUFFQ0JBZ1FJRUNBQUlINUFnTElmQnYzRUNC
QWdBQUJBZ1FJRUNBd3NZQUFNakdvelJFZ1FJQUFBUUlFCkNCQWdNRjlBQUpsdjR4NENCQWdRSUVD
QUFBRUNCQ1lXRUVBbUJyVTVBZ1FJRUNCQWdBQUJBZ1RtQ3dnZzgyM2NRNEFBQVFJRUNCQWcKUUlE
QXhBSUN5TVNnTmtlQUFBRUNCQWdRSUVDQXdId0JBV1MralhzSUVDQkFnQUFCQWdRSUVKaFlRQUNa
R05UbUNCQWdRSUFBQVFJRQpDQkNZTHlDQXpMZHhEd0VDQkFnUUlFQ0FBQUVDRXdzSUlCT0QyaHdC
QWdRSUVDQkFnQUFCQXZNRkJKRDVOaW52T1hueVpNcTZGRVdBCkFBRUNCQWdRSUVEZ3RRZ0lJSzlG
eVRJRUNCQWdRSUFBQVFJRUNFd2lJSUJNd21nakJBZ1FJRUNBQUFFQ0JBaThGZ0VCNUxVb1dZWUEK
QVFJRUNCQWdRSUFBZ1VrRVZyYjY1WEpiV2ptNWNybTczWGVWQmJidXZ1eTRybkkxSG80QUFRSUVD
QkFnUUlEQVlnS09nQ3ptWldrQwpCQWdRSUVDQUFBRUNCSllRRUVDV3dMTXFBUUlFQ0JBZ1FJQUFB
UUtMQ1FnZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRWtDWHdyRXFBCkFBRUNCQWdRSUVDQXdHSUNB
c2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBc3BpWHBR
a1EKSUVDQUFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdRSUVD
QkFnQUFCQWdTV0VCQkFsc0N6S2dFQwpCQWdRSUVDQUFBRUNpd2tJSUl0NVdab0FBUUlFQ0JBZ1FJ
QUFnU1VFQkpBbDhLeEtnQUFCQWdRSUVDQkFnTUJpQWdMSVlsNldKa0NBCkFBRUNCQWdRSUVCZ0NR
RUJaQWs4cXhJZ1FJQUFBUUlFQ0JBZ3NKaUFBTEtZbDZVSkVDQkFnQUFCQWdRSUVGaENRQUJaQXMr
cUJBZ1EKSUVDQUFBRUNCQWdzSmlDQUxPWmxhUUlFQ0JBZ1FJQUFBUUlFbGhBUVFKYkFzeW9CQWdR
SUVDQkFnQUFCQW9zSkNDQ0xlVm1hQUFFQwpCQWdRSUVDQUFJRWxCQVNRSmZDc1NvQUFBUUlFQ0JB
Z1FJREFZZ0lDeUdKZWxpWkFnQUFCQWdRSUVDQkFZQWtCQVdRSlBLc1NJRUNBCkFBRUNCQWdRSUxD
WWdBQ3ltSmVsQ1JBZ1FJQUFBUUlFQ0JCWVFrQUFXUUxQcWdRSUVDQkFnQUFCQWdRSUxDWWdnQ3pt
WldrQ0JBZ1EKSUVDQUFBRUNCSllRRUVDV3dMTXFBUUlFQ0JBZ1FJQUFBUUtMQ1FnZ2kzbFptZ0FC
QWdRSUVDQkFnQUNCSlFRRWtDWHdyRXFBQUFFQwpCQWdRSUVDQXdHSUNBc2hpWHBZbVFJQUFBUUlF
Q0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBc3BpWHBRa1FJRUNBCkFBRUNCQWdR
V0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdRSUVDQkFnQUFCQWdTV0VCQkFs
c0N6S2dFQ0JBZ1EKSUVDQUFBRUNpd2tJSUl0NVdab0FBUUlFQ0JBZ1FJQUFnU1VFQkpBbDhQNGNx
NTQ4ZWZMUDhiQWVrd0FCQWdRSUVDQkFnTUFrQWdMSQpKSXcyUW9BQUFRSUVDQkFnUUlEQWF4RVFR
RjZMa21VSUVDQkFnQUFCQWdRSUVKaEVRQUNaaE5GR0NCQWdRSUFBQVFJRUNCQjRMUUlyClcvMXl1
UVZYVHE1YzdtNzNYV1dCcmJzdk82NnJYSTJISTBDQUFBRUNCQWdRSUxDWWdDTWdpM2xabWdBQkFn
UUlFQ0JBZ0FDQkpRUUUKa0NYd3JFcUFBQUVDQkFnUUlFQ0F3R0lDQXNoaVhwWW1RSUFBQVFJRUNC
QWdRR0FKQVFGa0NUeXJFaUJBZ0FBQkFnUUlFQ0N3bUlBQQpzcGlYcFFrUUlFQ0FBQUVDQkFnUVdF
SkFBRmtDejZvRUNCQWdRSUFBQVFJRUNDd21JSUFzNW1WcEFnUUlFQ0JBZ0FBQkFnU1dFTGppCjN3
RlpZdHRXSlVDQUFBRUNCQWdRSUVDQXdBNEJSMEIyY1BpQ0FBRUNCQWdRSUVDQUFJSGRGQkJBZGxQ
WHRna1FJRUNBQUFFQ0JBZ1EKMkNFZ2dPemc4QVVCQWdRSUVDQkFnQUFCQXJzcElJRHNwcTV0RXlC
QWdBQUJBZ1FJRUNDd1EwQUEyY0hoQ3dJRUNCQWdRSUFBQVFJRQpkbE5BQU5sTlhkc21RSUFBQVFJ
RUNCQWdRR0NIZ0FDeWc4TVhCQWdRSUVDQUFBRUNCQWpzcG9BQXNwdTZ0azJBQUFFQ0JBZ1FJRUNB
CndBNEJBV1FIaHk4SUVDQkFnQUFCQWdRSUVOaE5BUUZrTjNWdG13QUJBZ1FJRUNCQWdBQ0JIUUlD
eUE0T1h4QWdRSUFBQVFJRUNCQWcKc0pzQ0FzaHU2dG8yQVFJRUNCQWdRSUFBQVFJN0JBU1FIUnkr
SUVDQUFBRUNCQWdRSUVCZ053VUVrTjNVdFcwQ0JBZ1FJRUNBQUFFQwpCSFlJQ0NBN09IeEJnQUFC
QWdRSUVDQkFnTUJ1Q2dnZ3U2bHIyd1FJRUNCQWdBQUJBZ1FJN0JBUVFIWncrSUlBQVFJRUNCQWdR
SUFBCmdkMFVtRjFwNHlzblY2NjB5Si91djZkL2V2ZWZ2cHo3V1N4M2N1NjlsNzRqMXRtdGJZK1BH
SThSbHlzOXpqM0RVb3YzOE1wcXc5VzQKamF2eFdCa2VOMm9ZZTQ3UEw5ZjM5dVVXL1Q2SmJWL3Vj
czlGZDg2cjQrTGxwcTRqeXJqNE1mNmN0VVE5Y2JsbitQZFAvMlNvNlUvVgpESi9kczYzSXUrK2VW
K0JGSy9tU0FBRUNCQWdRU0NQZ0NFaWFVU2lFQUFFQ0JBZ1FJRUNBd040WEVFRDIvb3gxU0lBQUFR
SUVDQkFnClFDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNCUVNRdlQ5akhSSWdRSUFBQVFJRUNC
QklJeUNBcEJtRlFnZ1FJRUNBQUFFQ0JBanMKZlFFQlpPL1BXSWNFQ0JBZ1FJQUFBUUlFMGdnSUlH
bEdvUkFDQkFnUUlFQ0FBQUVDZTE5QUFObjdNOVloQVFJRUNCQWdRSUFBZ1RRQwpBa2lhVVNpRUFB
RUNCQWdRSUVDQXdONFhFRUQyL294MVNJQUFBUUlFQ0JBZ1FDQ05nQUNTWmhRS0lVQ0FBQUVDQkFn
UUlMRDNCUVNRCnZUOWpIUklnUUlBQUFRSUVDQkJJSXlDQXBCbUZRZ2dRSUVDQUFBRUNCQWpzZlFF
QlpPL1BXSWNFQ0JBZ1FJQUFBUUlFMGdnSUlHbEcKb1JBQ0JBZ1FJRUNBQUFFQ2UxOUFBTm43TTlZ
aEFRSUVDQkFnUUlBQWdUUUNBa2lhVVNpRUFBRUNCQWdRSUVDQXdONFhFRUQyL294MQpTSUFBQVFJ
RUNCQWdRQ0NOZ0FDU1poUUtJVUNBQUFFQ0JBZ1FJTEQzQlZhMittWHZ0NmxEQWdRSUVDQkFnQUFC
QWdReUNEZ0NrbUVLCmFpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NB
WkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUkKRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lF
Q0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSQpFQ0JB
Z0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBN
bWh0RWlCQWdBQUJBZ1FJCkVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJ
RUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUUKQkpBaWc5WW1BUUlFQ0JBZ1FJQUFn
UXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaApD
bW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdB
QUJBZ1FJRkJFUVFJb01XcHNFCkNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JR
UUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUUKQ0JBZ1FJQkFFUUVCcE1pZ3RV
bUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJ
RQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0Fn
Z0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FB
QkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1MKWVFwcUlFQ0FBQUVDQkFn
UUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNL
REZxYgpCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlF
Q0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDCkJBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JB
SUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUMKQkFnUXlDQWdnR1NZ
Z2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJ
RUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFF
UUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBCmttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9i
UklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGEKbXdRSUVDQkFn
QUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFn
SkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlF
Q0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCCkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFR
SUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUIKQWtVRUJK
QWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FB
QkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFn
UXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NCldwc0VDQkFnUUlBQUFRSUVNZ2dJSUJt
bW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUEKQVFJ
RUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JR
UkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hh
bXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBCkFRSkZCQVNRSW9QV0pnRUNCQWdR
SUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0QK
Z0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFD
QkFnUUlBQUFRSUVDQlFSRUVDSwpERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFn
QUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCCkFBRUNCQWdRSUVDQVFCRUJB
YVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lF
Q0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFR
SUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJ
WXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnCmc0QUFrbUVLYWlCQWdB
QUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFn
VUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9Q
V0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltbwpnUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJ
RUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBCmdBQUJBZ1FJRU1n
Z0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFH
QWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdR
SUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQQpJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJB
QUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRClFJb01XcHNF
Q0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFn
QUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFr
bUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZwpRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJ
RUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnClFJQUFB
UUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lL
QzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdB
QUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUgpFRUNLREZxYkJBZ1FJRUNBQUFFQ0JE
SUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHCkth
aUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJ
RUNCQWdVRVJBQUNreWFHMFMKSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJF
UVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUQpJRUNBQUFFQ1JRUUVrQ0tEMWlZ
QkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdR
CklFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NB
WkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lF
Q0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSQpoaW1vZ1FBQkFnUUlFQ0JB
Z0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBN
bWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJ
RUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkKRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFn
UXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSQpFQ0JBSUlPQUFKSmhD
bW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdB
QUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JR
UUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUMKU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RV
bUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKbwpiUklnUUlBQUFR
SUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0Fn
Z0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FB
QkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUUKQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFn
UUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRQpDQlFSRUVD
S0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlF
Q0JBZ1FJQUFnUXdDCkFraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JB
SUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3kKYUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZ
Z2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQwpCQWdR
SUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFF
UUVCcE1pZ3RVbUFBQUVDCkJBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9i
UklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUMKQkFnVUVSQkFpZ3hhbXdRSUVDQkFn
QUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTQpB
Z0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlF
Q0FBQUVDQkFnUUlGQkVRQUFwCk1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFR
SUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUcKQWdRSUVDQkFnQUFCQWtVRUJK
QWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FB
QgpBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFn
UXlDQWdnR1NZZ2hvSUVDQkFnQUFCCkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJt
bW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0IKREFJQ1NJWXBxSUVBQVFJ
RUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JR
UkVBQQpLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hh
bXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnCkJnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdR
SUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUEKQVFJRUNCQWdRQ0NE
Z0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFD
QkFnUUlBQQpBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFn
QUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBCmdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJB
YVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkEKQUNreWFHMFNJ
RUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFR
SUVNZ2dJSUJtbQpvQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJ
WXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BCkFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdB
QUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0EKQUFFQ0JB
Z1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9Q
V0pnRUNCQWdRSUVDQQpBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJ
RUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFClFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1n
Z0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVoKcHFB
R0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdR
SUVDQVFCRUJBYVRJb0xWSgpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJB
QUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBCmdBQUJBZ1FJRkJFUVFJb01XcHNF
Q0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkEK
Z0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFr
bUVLYWlCQWdBQUJBZ1FJRUNCUQpSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJ
RUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnCkdhYWdCZ0lFQ0JBZ1FJQUFB
UUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lL
QzEKU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdB
QUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZwpRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JE
SUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnClFJQUFnUXdDQWtpR0th
aUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJ
RUNCQWcKVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJF
UVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSQpJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZ
QkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDRlk2V3hrQUFCZHBTVVJCClZCQWdRSUJBRVFF
QnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUkln
UUlBQUFRSUUKQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFC
QWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRgpCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJ
aGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTCllRcHFJRUNB
QUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVD
QlFSRUVDS0RGcWIKQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWln
OVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQwpCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJB
Z1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDCkJBZ1F5
Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9B
WUNCQWdRSUVDQUFBRUMKUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNC
QWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQQprbUVLYWlCQWdBQUJBZ1FJRUNCUVJF
QUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhCm13
UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVD
QUFJRU1BZ0pJaGltb2dRQUIKQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FD
U1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQgpBZ1FJRU1nZ0lJQmttSUlhQ0JB
Z1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFC
CkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJ
b0xWSmdBQUJBZ1FJRUNCQUlJT0EKQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNB
QUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTQpXcHNFQ0JBZ1FJQUFBUUlF
TWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBx
SUVBCkFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJB
Z1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUEKQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VF
UkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQQpBUUpGQkFTUUlvUFdK
Z0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNC
QWdRQ0NECmdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJ
QmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0sKREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0Fn
UUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQgpBQUVDQkFnUUlF
Q0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNr
eWFHMFNJRUNBCkFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JB
Z1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0EKQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FD
QkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZwpnNEFBa21F
S2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNB
QUFFQ0JBZ1VFUkJBCmlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpG
QkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW8KZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0Mx
U1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQQpnQUFC
QWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlD
Q0FacHFBR0FnUUlFQ0JBCmdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJB
QUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkEKSUlPQUFKSmhDbW9nUUlBQUFRSUVD
QkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUQpR
SW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFn
UUlFQ0JBZ0FDQkRBSUNTSVlwCnFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlF
QWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWcKUUlBQUFRSUVDQkRJSUNDQVpK
aUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JB
ZwpRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VB
UkFRR2t5S0MxU1lBQUFRSUVDQkFnClFDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1o
dEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVIKRUVDS0RGcWJCQWdRSUVD
QUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdD
QWtpRwpLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9n
UUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTCklFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFC
QWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1EKSUVDQUFBRUNSUVFF
a0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFB
QUVDQkFnUQpJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVD
QkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVCkVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dH
YWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkkKaGltb2dRQUJB
Z1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlG
QkVRQUFwTW1odApFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RG
cWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJCkVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNC
QWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUkKRUNCQUlJ
T0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hv
SUVDQkFnQUFCQWdRSQpGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVD
QUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDClNJWXBxSUVBQVFJRUNCQWdRSUJBRVFF
QnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm8KYlJJ
Z1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFC
QWdReUNBZ2dHYWFnQmdJRQpDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BclB2
ZnZlN2JUYWJ0YlcxdGJhK3ZqN1V0TFcxMVZaWFY5djU4K2RiCmZCNlhzMmZQdHRPblQxKzRMWloz
SVVDQUFBRUNCQWdRZUxWQTdFZXRyS3dNKzFqeCtmang2aVhkUW1CNmdYUG56ZzM3OE9QM1lPenIK
ai92MTR6NSszRGRleHYzOStEcnUzLzcxdU14NC9kaGpqN1diYjc1NS9QSlYxN0hkZUt6dGw3R2V1
TjdjM0d5empZMk45cGEzdkdWNApzQWdWOFlEeEVTdkhBbi84NHgvYmZmZi9ydjNiZjYyM1h6Nnly
LzNQWTdQMnd0a0lLbjNEa1UzNmh0cE5oN2MvaHM4SkVDQkFnQUFCCkF2VUV6dmNkbzlqdjZ2dFIx
ODAyMm0wM25HbnYrY3ZXUHZyZUErM050eDRhZnRFYk8zZmJkL3pxSWVsNE53VEd3QkRYc2ZNZisv
U3gKSHg5ZnYvamlpKzJsbDE1cWIzakRHOXJ4NDhjdkhHU0k3OFB4STRKQlhHTDVNWURNK3o1OTRZ
VVgydXRmLy9wTHRoSHJ4M3BSdy9iMQo0L2E0eE8yLy92V3YyeXdLdWYzMjI0Y0gyNzdnbVRObjJu
MzMzZGYrN2tjUHRoLzkrOUgyMExNM3RmMkg5N2NQL3UxTjdjNFQxN1VqCmgxNDVBdEkzT0lzSE90
ZVBsdlFuVmV0aGFtWDI4blYvNUxhMTBoOHdrbFIvMFBWWTVkeFdCNGtHejdXVmVKTDJqN2paK3Z4
OC8zaisKZVAzdyt1bm5oNStmOFRwd0xlNC9yUFhSYmZhZG5kamZPWDNtZlB2UDN6M2Zmbjdmaysw
LzduMnAzZi9JYysyekh6M1hQdkR1NDIzZgp2bjNEem1GZnpJWEFaQUt4Z3ovdTVNZDE3T2pIUjRT
UXVNVDFJNDg4TW56LzNYbm5uY09SdWZIQlkvOS9YSGU4YmJ6ZW5nM0cyNTU4Cjhza2hPNHhmajlm
enRoSDNqL2RGVGFkT25XcXpTRVNSZE9JSk1SWVE0ZVBoaHg5dS8vRFQrOW9QSGpqZWZuUG0xclp5
MDZ4OTZJTzMKdEkvZWRhd2Qyci9XUTBmZldpLzRYTjlReng2dFArLzZQLzFRWXdTUWZ0MWJhV3Y5
L3RYK2pPeFhMWDRwc05XWDYxRWxGdXhmOS9XRwoyN2JhMmY2SjlmbjUvdkg4OGZyaDlkUFBEejgv
cjlYOWgxZDJpNGI5bWZoZDhwdHZPOXdPM25pZy9mMC8vcUU5OE15KzFuNzJaSHZUCkcwNjNPOTU2
cE8zZnYzL1k5K3FMdVJDWVJDQjI3R01uUHo3aWFFWjhIZGV4Yno5K3hOc3Bmdm5MWDdZalI0NjBF
eWRPREVma3hvQVIKNjQyZlg2bWdlRXZHK0xhTkt5MDdiamV1NHhJMVJQWVlUc0dLTCtMSkVBOGNC
Y2RwVjcvNHhTL2F6eDljYmIvWmVITmI2VStnbzBmMwp0WnV1WHgrZU1KdjltUlZQcnQ1bUR4VHhV
dEhhbVo0dyt0TnJDQnFyczhnaXcwdElXKzBMeHR0RnR2cjlzWFNzMjY5NitBaWtsZGJQCkFPdGZy
MWlmbis4Znp4K3ZILzNGMU91bm54OStmbDZiK3cvREwxa2poUXlYbDMrNWV2em9lanR5L0dCN1py
YldIbmpxeHZhRGYzbTYKL2RYdHg0ZWR0OWU2QXpkdTBUV0J5d21NQVNTdXgvQVIxM0dRSWI3WDRw
U3NDQTdQUFBOTSs5V3ZmdFd1dSs2NmRzc3R0MXdJd2hlSApqemh0NjN2ZisxNzc3R2MvKzZxSGpi
ZHZYTHg4TFBUTmIzNnpmZXBUbjJxSERoMjZzTTY0WEZ4SENJbk1FZXYzczZkVzJ2UFBQejhVCkVr
cy85OXh6dzBlOHdlVGhGOS9VVm8vMUo4K3gvZTNZZGV2dDhlZGJlK3FGclg0RVpMV3Q5WkF4UE0v
NkFZMk5mZ1FqZ3MxbS8vVmwKSElKc1orTUh5R3FMTTdIaTY5WHpMNmV2Y3hGQ3R2cjdUT0tCK20x
bnpzVWIzZnViVVhvb3NUNC8zeitlUDE0L3ZINzYrZUhuNTdXNgoveEFuZUt5c0RuczR3eGtmc1cv
ejVQTmI3ZGlSMmJEZjgxemYzL25YMzY4T08yQngxc240aTkvWUpYSWhzS3pBOWdBeXZ0RjdQQUlT
CnAxL0YvWWNQSHg0K25uMzIyUmJ2NDRqOS82TkhqMTRJSVdNTlAvN3hqNGN3RWFkYWZlNXpueHR2
dm5BOWJ2ZkNEYTk4OHAzdmZLZjkKNUNjL0dVTEx4ejcyc1l2dkhtcUl4NHpzTVR0dzRNRHc1cFJJ
UkpHT29xaTQ0K21ubjI1UHJQOTFPM0owZjd2aDJMNGVRUGIxTjUrdgp0SDkrdUtlVzFjMSthbFhF
ajVlRFI1eFVGVSswZUkvSGFuL1B4L3ErbnJUYVpqOEZxd2VRL2pIcnlYK3RoNVBOelg0NHFIK2M3
K0VrCk1PTFVyWTI0N1pVakk5Ym41L3ZIODhmcmg5ZFBQei84L0x3Vzl4LzZydFB3aTluNExlKzVz
eHQ5SHllT2dtejJBTExlVnVKVWtINDYKek85Zk9OcmlOUGZZM3hKQVhyVi82b1lsQk1ZQUV1RWdQ
c1kzb2NjK2ZYekUvZkUvWWNYM1hlenpSd2dlOS9rUEhqdzQzUDdRUXcrMQpyMy85NnkydXgxT214
dmVRYkM4dHRuV3AyMk9kSjU1NG9uMzFxMTl0UC96aEQ5c1h2dkNGOXJhM3ZXM1lWaHoxaUlNY2NX
UWxzc2NzCkNvakRNNUZJNGhETldGeDh2ZjlnYThmNjRjTTQrbkg4NklFV0JhNzNNREdiOVZPeGV0
QllXZTFITTNvUi9RQlBEeExuMnF5L1l1enIKejdHMW5pVGlPTWRhLzNWbXZQMDhibC92VDdaNGM5
Wm1YMjZ6UHluUDk0OElJR2MzK25scWZXbnI4L1A5NC9uajljUHJwNThmZm41ZQpxL3NQc2IrejJu
Znd0czcxOE5GL0tidXhjYWFkUGYxU085TlBOVjlaMldqbk45YmJjLzNzajloeGkzMnQyT2VLL1M4
WEFsTUlqQUVrCnJpT0FqS2RKalVFaWJodFArNHYzWUVRSWlFc0Vndmk0OTk1NzI5ZSs5clZYbGZM
NDQ0Ky82cllJTUplNlBjTDFlTG4vL3Z2Ymw3LzgKNWZiRkwzNnh2ZTk5N3hzQ1VOUXl2dTk4RnNW
RUNCbXZvL0FvT2dwNy9lenh0bjdnNW5iMDRMNTI5SEFQSUljT3R3UDcrN0o5K1RoVgpJdEorWDd3
ZndYajVpTVo2UCtkcXZUK1o0bWpIRUR6NjV4RlVacStjbXRVelIzL2k5WSsrVGh5a0hBTEoyYzIy
c1dYOWVFSGk1L3ZICjg4ZnJoOWRQUHovOC9PejdEZGZnL3NOYS82VnMvNjk1K241UjMvbnJSMERP
bmxsdHA5ZjdmL0p6K3NXKzc3UFZOZzdPMnZWbm4rMzcKUk1lR2ZTNEJaTnhWZFQyRlFPemN4ejU4
Zk1STy9uamtZN3c5am9pTVlTVGVveEg3L3JGTVhPTDJEMzNvUSsxMXIzdGQrOFkzdnRGKworOXZm
RHJmSFAzSEU1T0pMckh1cDI3Y0g2aE1uVHJUUGYvN3pGNDZBakxYRlk4YjMvbkFFSkRZU0s4VjFM
QkJ2RUxueHhodmI2NTc0ClhUdHo0SzdoUFIrSER1MXZSL3RwV0ljT0grcFBubjZxVUx5M0l3Skly
Nm9IL2Y2bThoNU0rdGZ4RVcraWpOOW14eEhIK0M5NjEvcWYKRFluVEltUFp6ZjZiZ0ZoK3VJN3dz
alhyaHlpdHo4LzNqK2VQMXcrdm4zNSsrUGw1N2U0LzlOMmZ2dDh6NjZlYTk0K04vZTMwUyt2dAp4
ZFA5REpOK1N2cnBmaGprNElHMWRtTGwyZjZlMnpkZUNDRGpEbUJmMVlYQVVnSmowSWo5K1BIN2Fy
d3Rmc2tkbjhmK2ZSeWxpRC9CCk1RYVFXRGJXaWNzNzN2R085cFd2ZktYOTdHYy9hOS82MXJjdW5C
MTFjV0hqZ1l1TGI0OHNFVzl1Lzh4blB0TSs4cEdQREtlQmpkdVAKeDQ4NllwbFlmd2dnd3lldm5C
YzJGdkhXdDc2MTNmclFUOXVqcHg1bzZ6ZCtzQjNvUHhrUDl2Qng2THBJUTYydi9QSlJqUGhmSCtL
bwpSb1NLZm1aV2l6OVJHT0drdncxa09CZXloNXgrTk9UbDk0TEVVWTkrd0dNNCt0SFB2Qm9PVWNh
Nkc5Ym41L3ZIODhmcmg5ZFBQei84Ci9MeUc5eC82NzE3N3Fla3YvNEoxcy85blBHdnJmV2VwLzhH
emMyZFB0eGZYWiszSUN3KzA5OTkrZm5qVDcvYWR2NzZhQzRGSkJPSW8KUjF4aVp6OTI5R1BuZnd3
aFl3Q0owNjN1dXV1dUM2ZGdqY3VNNjhUMUp6N3hpZmJoRDMrNGZmdmIzNzdra1k1NE0vdWxqb0I4
OHBPZgpiSi8rOUtlSEVCTGJIY05IWkl2WWJweDZHQ0ZreUIzanFWZmorWWhSZUJUOWdROThvRDM0
NElOdDg3ZjN0ZE9QOWpkUUhmK2I0UThHCjlxT0pRL2lZOWVkVmhJdisvcXIrQndqN0U2NEhpbjUy
Vmx2cktTT0NTRDhBMG8rQzlJOSt2UkxYL1prWlllTkF2NytmNGRVMmVuQ0oKUUJKSFFzNUdpTEUr
UDk4L25qOWVQN3grK3ZuaDUrYzF1djhRZjF4NURDQWJQWURFRVpHTjAvMC9sWWo5b01mdWIrODg4
ci90M1hlOAp2ZDF3d3czRGpsanNhN2tRbUVvZ2R2REhnd2l4emRqNUg2L2p2amp5RWY4Tjc4MDMz
OXplOWE1M0RTRmdXT0NWZjJLWmNaMjRLZDZLCjhhVXZmV25IYmVQeXg0NGR1eEJneHR2aWVsdyt0
alZlNHZQeFl6d0NNcHlDRldscC9CalRVaFFRZjJMOTR4Ly9lTnY0L3ZmYkkzLzgKcDNicTNrZmEy
VGUvdDUzN2kvZTE2Mjg1M3RiNiswdzI0ZzkvOUVzOFRoelpPTi9mejdLdlA1L09SZkx2ZlcvMDRC
R0JKUXdpbE1RVApNbExIbWI1c1BEUGpUVnBuK20zeEJ3bXR6OC8zaitlUDF3K3ZuMzUrK1BsNXJl
NC9ESEdpNzg4TSswUjlIK21wL3p2Vm52cnYva3ZjClB6elE3cnp1cGZiK2Q3NnQzWGJiYlJmK1Jr
SzhLZGlGd0ZRQzQwNStoSkQ0M29xZC9mSE42SEhxVmZ6blVyRy8vNTczdkdmNHIzakgKeDQzMVly
Ly80dXZ4L2t0ZHh4R1FLd1hvN2R1THo2T3VlUHo0UEs1blVWeDh4SVBIOVhpSk85Lys5cmNQRHhE
dmpILzAwVWZiaS8vegp2ZmJNZzk5c2ovZEd4ZzF2VDB2anVxNEpFQ0JBZ0FBQkFsVUY0cXlTK0o5
RGI3MysrbmJyN2JlMkV5ZnU2aDhuMnZYOTY5aHhHL2U5CnF2cm9lM3FCMkMrUFMzeHZ4YzUrL0lk
UzhSSGhJLzdYcWppaWNjY2Rkd3hIUUNLY1hId1o5K3N2dnYxU1g4ZjdQQzYxalVzdEc5dU4KajZo
cERFZFI0eXorSzY3NFl5UVJPTGFmenpXdUVFK1llTE5LQkpCVHAwNE56Y1FEak1sbisxR1RTejJ3
MndnUUlFQ0FBQUVDVlFUaQpGN094YnhTbm1VUUlpVC8wRnFlc3hFNWIzRGJ1SUZieDBPZlZFWWlk
KyswNyttTUFpVWQvNHh2Zk9Id1B4dmRsN1BOUGNWbGtPeGVICmo4Z2UvdzlNTXhNNkt0alRsUUFB
QUFCSlJVNUVya0pnZ2c9PQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85969</attachid>
            <date>2011-03-16 13:57:54 -0700</date>
            <delta_ts>2011-03-16 14:06:03 -0700</delta_ts>
            <desc>Fixes for max leopard</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>52717</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlr
IENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMw
LDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExl
bmd0aCA9IC0xOwotY29uc3QgaW50IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGlu
dCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQg
aW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWlu
IHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIApAQCAtNTIsMzQgKzUyLDM1IEBAIHB1YmxpYzoKICAg
ICBMZW5ndGgoaW50IHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDog
bV9pbnRWYWx1ZSh2KSwgbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAg
ICAgewotICAgICAgICBBU1NFUlQodCAhPSBQZXJjZW50KTsKICAgICB9CiAKICAgICBMZW5ndGgo
ZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0gICAgICAgIDogbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50
Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9p
c0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDogbV9xdWlyayhxKSwgbV90
eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9CiAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgp
ID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90eXBlKSAmJiAobV9xdWly
ayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aCYgbykg
Y29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZsb2F0VmFsdWUoKSkgfHwg
KG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1aXJrKTsgfQogCisgICAg
Y29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGRvdWJsZSB2KQorICAgIHsgICAgICAgIAorICAgICAg
ICBpZiAobV9pc0Zsb2F0KQorICAgICAgICAgICAgbV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1fZmxvYXRWYWx1ZSp2KTsKKyAgICAgICAgZWxzZSAgICAgICAgCisgICAgICAgICAg
ICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50PihtX2ludFZhbHVlKnYpOworICAgICAgICAK
KyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICAKICAgICBpbnQgdmFsdWUoKSBjb25z
dCB7Ci0gICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7Ci0gICAgICAgIHJldHVybiBy
YXdWYWx1ZSgpOworICAgICAgICByZXR1cm4gZ2V0SW50VmFsdWUoKTsKICAgICB9CiAKLSAgICBp
bnQgcmF3VmFsdWUoKSBjb25zdCB7IHJldHVybiBnZXRJbnRWYWx1ZSgpOyB9Ci0KLSAgICBkb3Vi
bGUgcGVyY2VudCgpIGNvbnN0CisgICAgZmxvYXQgcGVyY2VudCgpIGNvbnN0CiAgICAgewogICAg
ICAgICBBU1NFUlQodHlwZSgpID09IFBlcmNlbnQpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihyYXdWYWx1ZSgpKSAvIHBlcmNlbnRTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oZ2V0RmxvYXRWYWx1ZSgpKTsKICAgICB9CiAKICAgICBM
ZW5ndGhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMZW5ndGhUeXBlPiht
X3R5cGUpOyB9CkBAIC05NCwxNCArOTUsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1
ZShpbnQgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQoIXZhbHVlIHx8IHR5cGUoKSAhPSBQ
ZXJjZW50KTsKICAgICAgICAgc2V0VmFsdWUoRml4ZWQsIHZhbHVlKTsKICAgICB9CiAKQEAgLTEx
OSw3ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAg
ICAgICAgICAgaWYgKHJvdW5kUGVyY2VudGFnZXMpCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kKG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApKTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWUgKiByYXdWYWx1ZSgpIC8gKDEwMCAqIHBl
cmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCk7CiAgICAgICAgICAgICBjYXNlIEF1dG86
CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlOwogICAgICAgICAgICAgZGVmYXVsdDoK
QEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAg
ICAgICAgICAgICAgICAgaWYgKHJvdW5kUGVyY2VudGFnZXMpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kKG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAw
LjApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWUgKiByYXdWYWx1ZSgpIC8gKDEw
MCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCk7CiAgICAgICAgICAgICBjYXNl
IEF1dG86CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJldHVybiAwOwpA
QCAtMTU2LDEwICsxNTYsMTYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9v
bCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPT0gdW5kZWZpbmVkTGVu
Z3RoOyB9Ci0gICAgYm9vbCBpc1plcm8oKSBjb25zdCB7IHJldHVybiAhZ2V0SW50VmFsdWUoKTsg
fQotICAgIGJvb2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPiAwOyB9
Ci0gICAgYm9vbCBpc05lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA8IDA7IH0K
KyAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKSA9PSB1bmRlZmlu
ZWRMZW5ndGg7IH0KKyAgICBib29sIGlzWmVybygpIGNvbnN0IAorICAgIHsgCisgICAgICAgIGlm
IChtX2lzRmxvYXQpCisgICAgICAgICAgICByZXR1cm4gIW1fZmxvYXRWYWx1ZTsgCisgICAgICAg
IAorICAgICAgICByZXR1cm4gIW1faW50VmFsdWU7CisgICAgfQorICAgIGJvb2wgaXNQb3NpdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsb2F0VmFsdWUoKSA+IDA7IH0KKyAgICBib29sIGlzTmVn
YXRpdmUoKSBjb25zdCB7IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPCAwOyB9CiAKICAgICBib29s
IGlzQXV0bygpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdXRvOyB9CiAgICAgYm9vbCBpc1Jl
bGF0aXZlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFJlbGF0aXZlOyB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcAkocmV2aXNpb24gODAz
ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODEsNyArODEsNyBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6cmVjYWxj
Q29sdW1uKGludCBlCiAKICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoIGNlbGxMb2dpY2FsV2lk
dGggPSBjZWxsLT5zdHlsZU9yQ29sTG9naWNhbFdpZHRoKCk7CiAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBXaGF0IGlzIHRoaXMgYXJiaXRyYXJ5IHZhbHVlPwotICAgICAgICAgICAgICAg
ICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpID4gMzI3NjApCisgICAgICAgICAg
ICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkgPiAzMjc2MCkKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNlbGxMb2dpY2FsV2lkdGguc2V0VmFsdWUoMzI3NjApOwogICAgICAg
ICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc05lZ2F0aXZlKCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoLnNldFZhbHVlKDApOwpAQCAtMTA1LDEz
ICsxMDUsMTMgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbihpbnQgZQogICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgUGVy
Y2VudDoKICAgICAgICAgICAgICAgICAgICAgICAgIG1faGFzUGVyY2VudCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc1Bvc2l0aXZlKCkgJiYg
KCFjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLmlzUGVyY2VudCgpIHx8IGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgucmF3VmFsdWUoKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc1Bvc2l0aXZlKCkg
JiYgKCFjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLmlzUGVyY2VudCgpIHx8IGNlbGxMb2dpY2Fs
V2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudmFsdWUoKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aCA9IGNlbGxM
b2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBOZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBjYXNlIGFuZCB3aGV0aGVyIGl0IG1ha2VzIHNlbnNl
IHRvIGNvbXBhcmUgdmFsdWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBhcmUg
bm90IG5lY2Vzc2FyaWx5IG9mIHRoZSBzYW1lIHR5cGUuCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5pc0F1dG8oKSB8fCAoY2VsbExvZ2ljYWxXaWR0aC5pc1Jl
bGF0aXZlKCkgJiYgY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2lj
YWxXaWR0aC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9n
aWNhbFdpZHRoLmlzQXV0bygpIHx8IChjZWxsTG9naWNhbFdpZHRoLmlzUmVsYXRpdmUoKSAmJiBj
ZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVl
KCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5sb2dpY2FsV2lk
dGggPSBjZWxsTG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMzIsMTYgKzIzMiwxNiBAQCB2b2lkIEF1
dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAKICAgICAvLyBXZSBzdWJzdGl0dXRl
IDAgcGVyY2VudCBieSAoZXBzaWxvbiAvIHBlcmNlbnRTY2FsZUZhY3RvcikgcGVyY2VudCBpbiB0
d28gcGxhY2VzIGJlbG93IHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm8uCiAgICAgLy8gRklYTUU6
IEhhbmRsZSB0aGUgMCUgY2FzZXMgcHJvcGVybHkuCi0gICAgY29uc3QgaW50IGVwc2lsb24gPSAx
OworICAgIGNvbnN0IGZsb2F0IGVwc2lsb24gPSAxIC8gMTI4LjBmOwogCi0gICAgaW50IHJlbWFp
bmluZ1BlcmNlbnQgPSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3I7CisgICAgZmxvYXQgcmVtYWlu
aW5nUGVyY2VudCA9IDEwMDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGF5b3V0U3Ry
dWN0LnNpemUoKTsgKytpKSB7CiAgICAgICAgIG1pbldpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ld
LmVmZmVjdGl2ZU1pbkxvZ2ljYWxXaWR0aDsKICAgICAgICAgbWF4V2lkdGggKz0gbV9sYXlvdXRT
dHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAgICBpZiAoc2NhbGVDb2x1
bW5zKSB7CiAgICAgICAgICAgICBpZiAobV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNh
bFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBtaW4o
bV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCksIHJlbWFp
bmluZ1BlcmNlbnQpOwotICAgICAgICAgICAgICAgIGZsb2F0IGxvZ2ljYWxXaWR0aCA9IHN0YXRp
Y19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgp
ICogMTAwICogcGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHBlcmNlbnQsIGVwc2lsb24pOworICAg
ICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSBtaW4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5
b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCkpLCByZW1haW5pbmdQ
ZXJjZW50KTsKKyAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEw
MCAvIG1heChwZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgICAgICAgICBtYXhQZXJjZW50ID0g
bWF4KGxvZ2ljYWxXaWR0aCwgIG1heFBlcmNlbnQpOwogICAgICAgICAgICAgICAgIHJlbWFpbmlu
Z1BlcmNlbnQgLT0gcGVyY2VudDsKICAgICAgICAgICAgIH0gZWxzZQpAQCAtMjUwLDcgKzI1MCw3
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KICAgICB9CiAKICAg
ICBpZiAoc2NhbGVDb2x1bW5zKSB7Ci0gICAgICAgIG1heE5vblBlcmNlbnQgPSBtYXhOb25QZXJj
ZW50ICogMTAwICogcGVyY2VudFNjYWxlRmFjdG9yIC8gbWF4KHJlbWFpbmluZ1BlcmNlbnQsIGVw
c2lsb24pOworICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAvIG1h
eChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9uKTsKICAgICAgICAgbWF4V2lkdGggPSBtYXgobWF4
V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1heE5vblBlcmNlbnQsIElOVF9NQVggLyAyLjBm
KSkpOwogICAgICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3RhdGljX2Nhc3Q8aW50Piht
aW4obWF4UGVyY2VudCwgSU5UX01BWCAvIDIuMGYpKSk7CiAgICAgfQpAQCAtMjY2LDYgKzI2Niwx
MCBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgICAgIG1p
bldpZHRoID0gbWF4KG1pbldpZHRoLCB0YWJsZUxvZ2ljYWxXaWR0aC52YWx1ZSgpKTsKICAgICAg
ICAgbWF4V2lkdGggPSBtaW5XaWR0aDsKICAgICB9CisgICAgCisgICAgLy8gaWYgdGhlcmUgd2Fz
IG5vIHJlbWFpbmluZyBwZXJjZW50LCBtYXhXaWR0aCBpcyBpbnZhbGlkLgorICAgIGlmICghcmVt
YWluaW5nUGVyY2VudCAmJiBtYXhOb25QZXJjZW50KQorICAgICAgICBtYXhXaWR0aCA9IGludE1h
eEZvckxlbmd0aDsgICAgICAgIAogfQogCiAvKgpAQCAtMzAwLDcgKzMwNCw3IEBAIGludCBBdXRv
VGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgc2l6ZV90IGxhc3RDb2wg
PSBlZmZDb2w7CiAgICAgICAgIGludCBjZWxsTWluTG9naWNhbFdpZHRoID0gY2VsbC0+bWluUHJl
ZmVycmVkTG9naWNhbFdpZHRoKCkgKyBzcGFjaW5nSW5Sb3dEaXJlY3Rpb247CiAgICAgICAgIGZs
b2F0IGNlbGxNYXhMb2dpY2FsV2lkdGggPSBjZWxsLT5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgo
KSArIHNwYWNpbmdJblJvd0RpcmVjdGlvbjsKLSAgICAgICAgaW50IHRvdGFsUGVyY2VudCA9IDA7
CisgICAgICAgIGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgICAgIGludCBzcGFuTWluTG9n
aWNhbFdpZHRoID0gMDsKICAgICAgICAgZmxvYXQgc3Bhbk1heExvZ2ljYWxXaWR0aCA9IDA7CiAg
ICAgICAgIGJvb2wgYWxsQ29sc0FyZVBlcmNlbnQgPSB0cnVlOwpAQCAtMzEyLDcgKzMxNiw3IEBA
IGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgIExh
eW91dCYgY29sdW1uTGF5b3V0ID0gbV9sYXlvdXRTdHJ1Y3RbbGFzdENvbF07CiAgICAgICAgICAg
ICBzd2l0Y2ggKGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudHlwZSgpKSB7CiAgICAgICAgICAg
ICBjYXNlIFBlcmNlbnQ6Ci0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxh
eW91dC5sb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB0b3RhbFBlcmNl
bnQgKz0gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICAg
ICAgYWxsQ29sc0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIEZpeGVkOgpAQCAtMzM5LDcgKzM0Myw3IEBAIGludCBBdXRvVGFibGVMYXlv
dXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0
LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aCA9IExlbmd0aCgpOwogICAgICAgICAgICAgICAgICAgICBh
bGxDb2xzQXJlUGVyY2VudCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5b3V0LmVmZmVjdGl2ZUxvZ2lj
YWxXaWR0aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0g
Y29sdW1uTGF5b3V0LmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAg
ICAgICAgYWxsQ29sc0FyZUZpeGVkID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBpZiAoIWNvbHVtbkxheW91dC5lbXB0eUNlbGxzT25seSkKQEAgLTM1NCwxNCArMzU4LDE0IEBA
IGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKIAogICAgICAgICAvLyBh
ZGp1c3QgdGFibGUgbWF4IHdpZHRoIGlmIG5lZWRlZAogICAgICAgICBpZiAoY2VsbExvZ2ljYWxX
aWR0aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+IGNlbGxM
b2dpY2FsV2lkdGgucmF3VmFsdWUoKSB8fCBhbGxDb2xzQXJlUGVyY2VudCkgeworICAgICAgICAg
ICAgaWYgKHRvdGFsUGVyY2VudCA+IGNlbGxMb2dpY2FsV2lkdGgucGVyY2VudCgpIHx8IGFsbENv
bHNBcmVQZXJjZW50KSB7CiAgICAgICAgICAgICAgICAgLy8gY2FuJ3Qgc2F0aWZ5IHRoaXMgY29u
ZGl0aW9uLCB0cmVhdCBhcyB2YXJpYWJsZQogICAgICAgICAgICAgICAgIGNlbGxMb2dpY2FsV2lk
dGggPSBMZW5ndGgoKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbWF4
TG9naWNhbFdpZHRoID0gbWF4KG1heExvZ2ljYWxXaWR0aCwgbWF4KHNwYW5NYXhMb2dpY2FsV2lk
dGgsIGNlbGxNYXhMb2dpY2FsV2lkdGgpICogMTAwICogcGVyY2VudFNjYWxlRmFjdG9yIC8gY2Vs
bExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lk
dGggPSBtYXgobWF4TG9naWNhbFdpZHRoLCBzdGF0aWNfY2FzdDxmbG9hdD4obWF4KHNwYW5NYXhM
b2dpY2FsV2lkdGgsIGNlbGxNYXhMb2dpY2FsV2lkdGgpICogMTAwICAvIGNlbGxMb2dpY2FsV2lk
dGgucGVyY2VudCgpKSk7CiAKICAgICAgICAgICAgICAgICAvLyBhbGwgbm9uIHBlcmNlbnQgY29s
dW1ucyBpbiB0aGUgc3BhbiBnZXQgcGVyY2VudCB2YWx1ZXMgdG8gc3VtIHVwIGNvcnJlY3RseS4K
LSAgICAgICAgICAgICAgICBpbnQgcGVyY2VudE1pc3NpbmcgPSBjZWxsTG9naWNhbFdpZHRoLnJh
d1ZhbHVlKCkgLSB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudE1p
c3NpbmcgPSBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSAtIHRvdGFsUGVyY2VudDsKICAgICAg
ICAgICAgICAgICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKICAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIHBvcyA9IGVmZkNvbDsgcG9zIDwgbGFzdENvbDsgKytwb3MpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5p
c1BlcmNlbnQoKSkKQEAgLTM3MCw3ICszNzQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxj
RWZmZWN0aXZlTG9naWNhCiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBvcyA9IGVm
ZkNvbDsgcG9zIDwgbGFzdENvbCAmJiB0b3RhbFdpZHRoID4gMDsgKytwb3MpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0
aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlcmNlbnQgPSBz
dGF0aWNfY2FzdDxpbnQ+KHBlcmNlbnRNaXNzaW5nICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5
b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAvIHRvdGFsV2lkdGgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudCA9IHBlcmNlbnRNaXNzaW5nICog
c3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNh
bFdpZHRoKSAvIHRvdGFsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFdpZHRo
IC09IG1fbGF5b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoOwogICAgICAg
ICAgICAgICAgICAgICAgICAgcGVyY2VudE1pc3NpbmcgLT0gcGVyY2VudDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChwZXJjZW50ID4gMCkKQEAgLTQ5MSw3ICs0OTUsNyBAQCB2b2lkIEF1
dG9UYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICBpbnQgbnVtRml4ZWQgPSAwOwogICAgIGZsb2F0
IHRvdGFsQXV0byA9IDA7CiAgICAgZmxvYXQgdG90YWxGaXhlZCA9IDA7Ci0gICAgaW50IHRvdGFs
UGVyY2VudCA9IDA7CisgICAgZmxvYXQgdG90YWxQZXJjZW50ID0gMDsKICAgICBpbnQgYWxsb2NB
dXRvID0gMDsKICAgICB1bnNpZ25lZCBudW1BdXRvRW1wdHlDZWxsc09ubHkgPSAwOwogCkBAIC01
MDQsNyArNTA4LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIHN3
aXRjaCAobG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAg
ICAgICAgICBoYXZlUGVyY2VudCA9IHRydWU7Ci0gICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0g
bG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbG9n
aWNhbFdpZHRoLnBlcmNlbnQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJl
bGF0aXZlOgogICAgICAgICAgICAgdG90YWxSZWxhdGl2ZSArPSBsb2dpY2FsV2lkdGgudmFsdWUo
KTsKQEAgLTUzOCw5ICs1NDIsOSBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5b3V0KCkKICAg
ICAgICAgICAgICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCA9IGNl
bGxMb2dpY2FsV2lkdGg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRv
dGFsUGVyY2VudCA+IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgICAgICBpZiAodG90
YWxQZXJjZW50ID4gMTAwKSB7CiAgICAgICAgICAgICAvLyByZW1vdmUgb3ZlcmFsbG9jYXRlZCBz
cGFjZSBmcm9tIHRoZSBsYXN0IGNvbHVtbnMKLSAgICAgICAgICAgIGludCBleGNlc3MgPSB0YWJs
ZUxvZ2ljYWxXaWR0aCAqICh0b3RhbFBlcmNlbnQgLSAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3Ip
IC8gKDEwMCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBpbnQgZXhjZXNzID0g
dGFibGVMb2dpY2FsV2lkdGggKiAodG90YWxQZXJjZW50IC0gMTAwKSAvIDEwMDsKICAgICAgICAg
ICAgIGZvciAoaW50IGkgPSBuRWZmQ29scyAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1BlcmNl
bnQoKSkgewogICAgICAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IG1fbGF5
b3V0U3RydWN0W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoOwpAQCAtNjA3LDEzICs2MTEsMTMgQEAg
dm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgfQogCiAgICAgLy8gc3ByZWFkIG92
ZXIgcGVyY2VudCBjb2x1bXMKLSAgICBpZiAoYXZhaWxhYmxlID4gMCAmJiBtX2hhc1BlcmNlbnQg
JiYgdG90YWxQZXJjZW50IDwgMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSB7CisgICAgaWYgKGF2
YWlsYWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVyY2VudCA8IDEwMCkgewogICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5FZmZDb2xzOyArK2kpIHsKICAgICAgICAgICAg
IExlbmd0aCYgbG9naWNhbFdpZHRoID0gbV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNh
bFdpZHRoOwogICAgICAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewotICAg
ICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRoID0gYXZhaWxhYmxlICogbG9naWNhbFdp
ZHRoLnJhd1ZhbHVlKCkgLyB0b3RhbFBlcmNlbnQ7CisgICAgICAgICAgICAgICAgaW50IGNlbGxM
b2dpY2FsV2lkdGggPSBhdmFpbGFibGUgKiBsb2dpY2FsV2lkdGgucGVyY2VudCgpIC8gdG90YWxQ
ZXJjZW50OwogICAgICAgICAgICAgICAgIGF2YWlsYWJsZSAtPSBjZWxsTG9naWNhbFdpZHRoOwot
ICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsK
KyAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnBlcmNlbnQoKTsK
ICAgICAgICAgICAgICAgICBtX2xheW91dFN0cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aCAr
PSBjZWxsTG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAgIGlmICghYXZhaWxhYmxlIHx8ICF0
b3RhbFBlcmNlbnQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAkocmV2aXNpb24gODAzODEp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExOCw3ICsxMTgsOCBAQCBpbnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dp
ZHRoQXJyYXkoaW50CiAgICAgICAgICAgICAgICAgICAgIHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVD
b2x1bW4gPSBtX3RhYmxlLT5zcGFuT2ZFZmZDb2woY3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICgody5pc0ZpeGVkKCkgfHwgdy5p
c1BlcmNlbnQoKSkgJiYgdy5pc1Bvc2l0aXZlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV93
aWR0aFtjdXJyZW50RWZmZWN0aXZlQ29sdW1uXS5zZXRWYWx1ZSh3LnR5cGUoKSwgdy5yYXdWYWx1
ZSgpICogc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbik7CisgICAgICAgICAgICAgICAgICAg
IG1fd2lkdGhbY3VycmVudEVmZmVjdGl2ZUNvbHVtbl0gPSB3OworICAgICAgICAgICAgICAgICAg
ICBtX3dpZHRoW2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5dICo9IHNwYW5JbkN1cnJlbnRFZmZlY3Rp
dmVDb2x1bW47CiAgICAgICAgICAgICAgICAgICAgIHVzZWRXaWR0aCArPSBlZmZXaWR0aCAqIHNw
YW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIHNwYW4gLT0gc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKQEAgLTE2NCwxMCAr
MTY1LDExIEBAIGludCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShpbnQKICAgICAg
ICAgICAgICAgICBpbnQgdXNlZFNwYW4gPSAwOwogICAgICAgICAgICAgICAgIGludCBpID0gMDsK
ICAgICAgICAgICAgICAgICB3aGlsZSAodXNlZFNwYW4gPCBzcGFuICYmIGNDb2wgKyBpIDwgbkVm
ZkNvbHMpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9m
RWZmQ29sKGNDb2wgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgZVNwYW4gPSBtX3Rh
YmxlLT5zcGFuT2ZFZmZDb2woY0NvbCArIGkpOwogICAgICAgICAgICAgICAgICAgICAvLyBPbmx5
IHNldCBpZiBubyBjb2wgZWxlbWVudCBoYXMgYWxyZWFkeSBzZXQgaXQuCiAgICAgICAgICAgICAg
ICAgICAgIGlmIChtX3dpZHRoW2NDb2wgKyBpXS5pc0F1dG8oKSAmJiB3LnR5cGUoKSAhPSBBdXRv
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wgKyBpXS5zZXRWYWx1ZSh3
LnR5cGUoKSwgdy5yYXdWYWx1ZSgpICogZVNwYW4gLyBzcGFuKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fd2lkdGhbY0NvbCArIGldID0gdzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
d2lkdGhbY0NvbCArIGldICo9IGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAgICAgICAg
IHVzZWRXaWR0aCArPSBlZmZXaWR0aCAqIGVTcGFuIC8gc3BhbjsKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICB1c2VkU3BhbiArPSBlU3BhbjsKQEAgLTIzNCw3ICsy
MzYsNyBAQCB2b2lkIEZpeGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgaW50IGF1dG9TcGFu
ID0gMDsKICAgICBpbnQgdG90YWxGaXhlZFdpZHRoID0gMDsKICAgICBpbnQgdG90YWxQZXJjZW50
V2lkdGggPSAwOwotICAgIGludCB0b3RhbFJhd1BlcmNlbnQgPSAwOworICAgIGZsb2F0IHRvdGFs
UGVyY2VudCA9IDA7CiAKICAgICAvLyBDb21wdXRlIHJlcXVpcmVtZW50cyBhbmQgdHJ5IHRvIHNh
dGlzZnkgZml4ZWQgYW5kIHBlcmNlbnQgd2lkdGhzLgogICAgIC8vIFBlcmNlbnRhZ2VzIGFyZSBv
ZiB0aGUgdGFibGUncyB3aWR0aCwgc28gZm9yIGV4YW1wbGUKQEAgLTI0Nyw3ICsyNDksNyBAQCB2
b2lkIEZpeGVkVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0
aFtpXS5pc1BlcmNlbnQoKSkgewogICAgICAgICAgICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtp
XS5jYWxjVmFsdWUodGFibGVMb2dpY2FsV2lkdGgpOwogICAgICAgICAgICAgdG90YWxQZXJjZW50
V2lkdGggKz0gY2FsY1dpZHRoW2ldOwotICAgICAgICAgICAgdG90YWxSYXdQZXJjZW50ICs9IG1f
d2lkdGhbaV0ucmF3VmFsdWUoKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBtX3dpZHRo
W2ldLnBlcmNlbnQoKTsKICAgICAgICAgfSBlbHNlIGlmIChtX3dpZHRoW2ldLmlzQXV0bygpKSB7
CiAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBhdXRvU3BhbiArPSBtX3RhYmxl
LT5zcGFuT2ZFZmZDb2woaSk7CkBAIC0yNzAsMTEgKzI3MiwxMSBAQCB2b2lkIEZpeGVkVGFibGVM
YXlvdXQ6OmxheW91dCgpCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAodG90YWxSYXdQZXJjZW50KSB7CisgICAg
ICAgICAgICBpZiAodG90YWxQZXJjZW50KSB7CiAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50
V2lkdGggPSAwOwogICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkVmZkNvbHM7
IGkrKykgewogICAgICAgICAgICAgICAgICAgICBpZiAobV93aWR0aFtpXS5pc1BlcmNlbnQoKSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5yYXdW
YWx1ZSgpICogKHRhYmxlTG9naWNhbFdpZHRoIC0gdG90YWxGaXhlZFdpZHRoKSAvIHRvdGFsUmF3
UGVyY2VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhb
aV0ucGVyY2VudCgpICogKHRhYmxlTG9naWNhbFdpZHRoIC0gdG90YWxGaXhlZFdpZHRoKSAvIHRv
dGFsUGVyY2VudDsKICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoICs9
IGNhbGNXaWR0aFtpXTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24u
Y3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBS
ZW5kZXJUYWJsZVNlY3Rpb246OmFkZENlbGwoUmVuZGVyVAogICAgICAgICAgICAgc3dpdGNoIChs
b2dpY2FsSGVpZ2h0LnR5cGUoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKICAg
ICAgICAgICAgICAgICAgICAgaWYgKCEoY1Jvd0xvZ2ljYWxIZWlnaHQuaXNQZXJjZW50KCkpIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAoY1Jvd0xvZ2ljYWxIZWlnaHQuaXNQZXJjZW50KCkg
JiYgY1Jvd0xvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSA8IGxvZ2ljYWxIZWlnaHQucmF3VmFsdWUo
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoY1Jvd0xvZ2ljYWxIZWlnaHQuaXNQZXJjZW50
KCkgJiYgY1Jvd0xvZ2ljYWxIZWlnaHQucGVyY2VudCgpIDwgbG9naWNhbEhlaWdodC5wZXJjZW50
KCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmlkW21fY1Jvd10ubG9naWNhbEhlaWdo
dCA9IGxvZ2ljYWxIZWlnaHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICBjYXNlIEZpeGVkOgpAQCAtNDM0LDIyICs0MzQsMjIgQEAgaW50IFJlbmRlclRh
YmxlU2VjdGlvbjo6bGF5b3V0Um93cyhpbnQgdAogICAgICAgICAgICAgaWYgKG1fZ3JpZFtyXS5s
b2dpY2FsSGVpZ2h0LmlzQXV0bygpKQogICAgICAgICAgICAgICAgIG51bUF1dG8rKzsKICAgICAg
ICAgICAgIGVsc2UgaWYgKG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKQotICAg
ICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5yYXdW
YWx1ZSgpOworICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBtX2dyaWRbcl0ubG9naWNh
bEhlaWdodC5wZXJjZW50KCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHRvdGFsUGVyY2VudCkg
ewogICAgICAgICAgICAgLy8gdHJ5IHRvIHNhdGlzZnkgcGVyY2VudAogICAgICAgICAgICAgaW50
IGFkZCA9IDA7Ci0gICAgICAgICAgICB0b3RhbFBlcmNlbnQgPSBtaW4odG90YWxQZXJjZW50LCAx
MDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ID0gbWlu
KHRvdGFsUGVyY2VudCwgMTAwKTsKICAgICAgICAgICAgIGludCByaCA9IG1fcm93UG9zWzFdIC0g
bV9yb3dQb3NbMF07CiAgICAgICAgICAgICBmb3IgKGludCByID0gMDsgciA8IHRvdGFsUm93czsg
cisrKSB7CiAgICAgICAgICAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+IDAgJiYgbV9ncmlkW3Jd
LmxvZ2ljYWxIZWlnaHQuaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IHRv
QWRkID0gbWluKGRoLCAodG90YWxIZWlnaHQgKiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5yYXdW
YWx1ZSgpIC8gKDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikpIC0gcmgpOworICAgICAgICAgICAg
ICAgICAgICBpbnQgdG9BZGQgPSBtaW4oZGgsIHN0YXRpY19jYXN0PGludD4oKHRvdGFsSGVpZ2h0
ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpIC8gMTAwKSAtIHJoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIC8vIElmIHRvQWRkIGlzIG5lZ2F0aXZlLCB0aGVuIHdlIGRvbid0IHdh
bnQgdG8gc2hyaW5rIHRoZSByb3cgKHRoaXMgYnVnCiAgICAgICAgICAgICAgICAgICAgIC8vIGFm
ZmVjdGVkIE91dGxvb2sgV2ViIEFjY2VzcykuCiAgICAgICAgICAgICAgICAgICAgIHRvQWRkID0g
bWF4KDAsIHRvQWRkKTsKICAgICAgICAgICAgICAgICAgICAgYWRkICs9IHRvQWRkOwogICAgICAg
ICAgICAgICAgICAgICBkaCAtPSB0b0FkZDsKLSAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJj
ZW50IC09IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5wZXJjZW50KCk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChyIDwgdG90YWxSb3dzIC0g
MSkKICAgICAgICAgICAgICAgICAgICAgcmggPSBtX3Jvd1Bvc1tyICsgMl0gLSBtX3Jvd1Bvc1ty
ICsgMV07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRh
LmgJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jv
cmRlckRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDksMTMgKzQ5LDEzIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaGFzQm9yZGVyUmFkaXVzKCkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChtX3Rv
cExlZnQud2lkdGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcExlZnQud2lk
dGgoKS5pc1plcm8oKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobV90
b3BSaWdodC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fdG9wUmlnaHQu
d2lkdGgoKS5pc1plcm8oKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAo
bV9ib3R0b21MZWZ0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0
b21MZWZ0LndpZHRoKCkuaXNaZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgaWYgKG1fYm90dG9tUmlnaHQud2lkdGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYg
KCFtX2JvdHRvbVJpZ2h0LndpZHRoKCkuaXNaZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDMtMDkgIFJpayBDYWJhbmllciAgPGNhYmFuaWVyQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBl
cmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3RseSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dDoK
KwogMjAxMS0wMy0wOSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLmNoZWNr
c3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJj
ZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiA4MDM4MSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2Vy
LWV4cGVjdGVkLmNoZWNrc3VtCSh3b3JraW5nIGNvcHkpCkBAIC0xICsxIEBACi00MTRjYWFhMmVl
MDk4MjNmY2M2YjEyMDBkMzBlYzEyNwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2M2ZDkw
NTUzNDFhOTkwNDkyOWNjYzQ5NDc2YzdiZDllClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWlu
dGVnZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
ODAzODEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1u
b24taW50ZWdlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDQ0KSBzaXplIDkxMHg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDQ4KSBzaXplIDkxMHg0Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCisgICAgICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDUyKSBzaXplIDkwMHg0CiAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU2KSBzaXplIDg5MHg0CkBAIC00OSw3ICs0OSw3IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDU4NQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw4NCkgc2l6ZSA4NDB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDAp
IHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCw4OCkgc2l6ZSA4MzV4NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQorICAgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgMTAxeDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCw5Mikgc2l6ZSA4MjV4NAogICAgICAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw5Nikgc2l6ZSA4MTV4NApAQCAtODQsNjEgKzg0LDYx
IEBAIGxheWVyIGF0ICg4LDEyNikgc2l6ZSAxMDAweDIwCiAgIFJlbmRlclRhYmxlIHtUQUJMRX0g
YXQgKDAsMCkgc2l6ZSAxMDAweDIwCiAgICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0gYXQg
KDAsMCkgc2l6ZSAxMDAweDIwCiAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0ICgwLDApIHNp
emUgMTAwMHgyMAotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMCwxKSBzaXplIDEx
eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTAgcnM9MSBjcz0xXQorICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMCwxKSBzaXplIDEyeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0g
W3I9MCBjPTAgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTEsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDEyLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MSBy
cz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgx
OAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMSwxKSBzaXplIDEzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MjIsMSkgc2l6ZSAxM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0yIHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDM0LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9
MyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgzNSwxKSBzaXpl
IDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTMgcnM9MSBjcz0xXQogICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoNDQsMSkgc2l6ZSAxNXgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz00IHJzPTEgY3M9
MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDQ1LDEpIHNpemUgMTZ4MTggW2Jn
Y29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg1OSwxKSBz
aXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTUgcnM9MSBjcz0xXQorICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNjEsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBG
RjAwN0ZdIFtyPTAgYz01IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0
OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDY5LDEpIHNpemUgMTd4MTgg
W2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRh
YmxlQ2VsbCB7VER9IGF0ICg3MSwxKSBzaXplIDE3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9
MCBjPTYgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODYsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0j
MDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDg4LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9NyBycz0x
IGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAog
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRl
clRhYmxlQ2VsbCB7VER9IGF0ICg5NiwxKSBzaXplIDIweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0g
W3I9MCBjPTggcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoOTgs
MSkgc2l6ZSAyMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz04IHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDExNiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTkg
cnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTE4LDEpIHNpemUg
MTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgxMjYsMSkgc2l6ZSAyMXgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xMCBycz0xIGNz
PTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMjgsMSkgc2l6ZSAyMngxOCBb
Ymdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xMCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNDcs
MSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xMSBycz0xIGNzPTFdCisg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNTAsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz0xMSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNTcsMSkgc2l6
ZSAyM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xMiBycz0xIGNzPTFdCisgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNjAsMSkgc2l6ZSAyNHgxOCBbYmdjb2xvcj0jMDAw
MDAwN0ZdIFtyPTAgYz0xMiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
NDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxODAsMTApIHNpemUgMTB4
MCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xMyBycz0xIGNzPTFdCi0gICAgICAgIFJlbmRl
clRhYmxlQ2VsbCB7VER9IGF0ICgxOTAsMSkgc2l6ZSAyNXgxOCBbYmdjb2xvcj0jMDAwMDAwN0Zd
IFtyPTAgYz0xNCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
ODQsMTApIHNpemUgMTB4MCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xMyBycz0xIGNzPTFd
CisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxOTQsMSkgc2l6ZSAyNXgxOCBbYmdj
b2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xNCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMTUsMSkg
c2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xNSBycz0xIGNzPTFdCisgICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMTksMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0j
MDBGRjAwN0ZdIFtyPTAgYz0xNSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMjUsMSkgc2l6ZSAy
N3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0xNiBycz0xIGNzPTFdCisgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMjksMSkgc2l6ZSAyN3gxOCBbYmdjb2xvcj0jMDAwMDAw
N0ZdIFtyPTAgYz0xNiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDog
IiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyNTIsMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xNyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRh
YmxlQ2VsbCB7VER9IGF0ICgyNTYsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFty
PTAgYz0xNyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0g
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyNjIsMSkgc2l6ZSAzMHgxOCBbYmdjb2xv
cj0jMDAwMDAwN0ZdIFtyPTAgYz0xOCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgyNjYsMSkgc2l6ZSAzMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0x
OCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyOTIsMSkgc2l6ZSA3MDh4MTggW3I9MCBjPTE5IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI5NiwxKSBzaXplIDcw
NHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXItZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUg
bWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCmlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQzdtbERRMUJKUTBNZ1VI
SnZabWxzWlFBQWVBR0YKVk05ckUwRVUvalp1cWRBaUNGcHJEcko0a0NKSldhdG9SZFEyL1JGaWF3
emJIN1pGa0dRelNkWnVOdXZ1SnJXbGlPVGkwU3JlUmUyaApCLytBSG5yd1pDOUtoVnBGS042cktH
S2hGeTN4elc1TXRxWHF3TTUrODk0MzczMXZkdDhBRFhMU05QV0FCT1FOeDFLaUVXbHNmRUpxCi9J
Z0FqcUlKUVRRbFZkdnNUaVFHUVlOeitYdm4ySG9QZ1Z0V3czdjdkN0ozclpyU3Rwb0hoUDFBNEVl
YTJTcXc3eGR4Q2xrU0FvZzgKMzZFcHgzUUkzK1BZOHV5UE9VNTVlTUcxRHlzOXhGa2lmRUExTGM1
L1RiaFR6U1hUUUlOSU9KVDFjVkkrbk5lTGxOY2RCMmx1WnNiSQpFTDFQa0thN3pPNnJZcUdjVHZZ
T2tMMmQ5SDVPczk0K3dpSENDeG10UDBhNGpaNzFqTlUvNG1IaHBPYkVoajBjR0RYMCtHQVZ0eHFw
CitEWENGRjhRVFNlaVZISFpMZzN4bUs3OVZ2SktnbkNRT01wa1lZQnpXa2hQMTB4dStMcUhCWDBt
MXhPdjRuZFdVZUY1anhObjN0VGQKNzBYYUFxOHdEaDBNR2d5YURVaFFFRVVFWVppd1VFQ0dQQm94
TkxKeVB5T3JCaHVUZXpKMUpHcTdkR0pFc1VGN050dzl0MUdrM1R6KwpLQ0p4bEVPMUNKTDhRZjRx
cjhsUDVYbjV5MXl3MkZiM2xLMmJtcnJ5NER2RjVabTVHaDdYMDhqamMwMWVmSlhVZHBOWFI1YXNl
WHE4Cm11d2FQK3hYbHpIbWdqV1B4SE93Ky9FdFg1WE1seW1NRk1YalZmUHFTNFIxV2pFMzM1OXNm
enM5NGk3UExyWFdjNjJKaXpkV201ZG4KL1dwSSsrNnF2SlBtVmZsUFh2WHgvR2ZOeEdQaUtURW1k
b3JuSVltWHhTN3hrdGhMcXd2aVlHM0hDSjJWaGluU2JaSDZKTlZnWUpxOAo5UzlkUDF0NHZVWi9E
UFZSbEJuTTBsU0o5My9DS21RMG5ia09iL3FQMjhmOEYrVDNpdWVmS0FJdmJPREltYnB0VTNIdkVL
RmxwVzV6CnJnSVh2OUY5OExadWE2TitPUHdFV0R5ckZxMVNOWjhndkFFY2RvZDZIdWdwbU5PV2xz
MDVVb2NzbjVPNjZjcGlVc3hRMjBOU1V0Y2wKMTJWTEZyT1pWV0xwZHRpWjB4MXVIS0U1UXZmRXAw
cGxrL3F2OFJHdy9iQlMrZm1zVXRsK1RocldnWmY2YjhDOC9VWEFlSXVKQUFBZwpBRWxFUVZSNEFl
M2QzWTljZDNrSDhOL3V6dm8xdGhNbmhCQWdPQzFGQ1NpOFZvQ0VvRWpRQzdqaGtoZHh5UTFjOEM4
a2x2Z1RrTGpoCkVna1FOeUJWQlVGQkZGVkNiVm9GSmFVMEthU0VrbEx5NHJ3bnRuZnQ3ZTg1eVRH
N2pzZk9hTTZheC90OFJsclA3c3c1WjU3bjgrek0KbnUrZU05NlZyWDVwTGdRSUVDQkFnQUFCQWdR
SUVMZ0tBcXRYNFRFOEJBRUNCQWdRSUVDQUFBRUNCQVlCQWNRM0FnRUNCQWdRSUVDQQpBQUVDVjAx
QUFMbHExQjZJQUFFQ0JBZ1FJRUNBQUFFQnhQY0FBUUlFQ0JBZ1FJQUFBUUpYVFVBQXVXclVIb2dB
QVFJRUNCQWdRSUFBCkFRSEU5d0FCQWdRSUVDQkFnQUFCQWxkTlFBQzVhdFFlaUFBQkFnUUlFQ0JB
Z0FDQjJaVUlWazZ1WEdrUjkxOUZnYTI3L2RtV3E4anQKb1FnUUlFQ0FBQUVDQkNZV2NBUmtZbENi
STBDQUFBRUNCQWdRSUVCZ3ZvQUFNdC9HUFFRSUVDQkFnQUFCQWdRSVRDd2dnRXdNYW5NRQpDQkFn
UUlBQUFRSUVDTXdYRUVEbTI3aUhBQUVDQkFnUUlFQ0FBSUdKQlFTUWlVRnRqZ0FCQWdRSUVDQkFn
QUNCK1FJQ3lId2I5eEFnClFJQUFBUUlFQ0JBZ01MR0FBREl4cU0wUklFQ0FBQUVDQkFnUUlEQmZR
QUNaYitNZUFnUUlFQ0JBZ0FBQkFnUW1GaEJBSmdhMU9RSUUKQ0JBZ1FJQUFBUUlFNWdzSUlQTnQz
RU9BQUFFQ0JBZ1FJRUNBd01RQ0FzakVvRFpIZ0FBQkFnUUlFQ0JBZ01COEFRRmt2bzE3Q0JBZwpR
SUFBQVFJRUNCQ1lXRUFBbVJqVTVnZ1FJRUNBQUFFQ0JBZ1FtQzhnZ015M2NROEJBZ1FJRUNCQWdB
QUJBaE1MQ0NBVGc5b2NBUUlFCkNCQWdRSUFBQVFMekJRU1ErVGJ1SVVDQUFBRUNCQWdRSUVCZ1ln
RUJaR0pRbXlOQWdBQUJBZ1FJRUNCQVlMNkFBRExmeGowRUNCQWcKUUlBQUFRSUVDRXdzSUlCTURH
cHpCQWdRSUVDQUFBRUNCQWpNRnhCQTV0dTRod0FCQWdRSUVDQkFnQUNCaVFVRWtJbEJiWTRBQVFJ
RQpDQkFnUUlBQWdma0NBc2g4Ry9jUUlFQ0FBQUVDQkFnUUlEQ3hnQUF5TWFqTkVTQkFnQUFCQWdR
SUVDQXdYMEFBbVcvakhnSUVDQkFnClFJQUFBUUlFSmhZUVFDWUd0VGtDQkFnUUlFQ0FBQUVDQk9Z
TENDRHpiZHhEZ0FBQkFnUUlFQ0JBZ01ERUFnTEl4S0EyUjRBQUFRSUUKQ0JBZ1FJREFmQUVCWkw2
TmV3Z1FJRUNBQUFFQ0JBZ1FtRmhBQUprWTFPWUlFQ0JBZ0FBQkFnUUlFSmd2SUlETXQzRVBBUUlF
Q0JBZwpRSUFBQVFJVEN3Z2dFNFBhSEFFQ0JBZ1FJRUNBQUFFQzh3VUVrUGsyN2lGQWdBQUJBZ1FJ
RUNCQVlHSUJBV1JpVUpzalFJQUFBUUlFCkNCQWdRR0MrZ0FBeTM4WTlCQWdRSUVDQUFBRUNCQWhN
TENDQVRBeHFjd1FJRUNCQWdBQUJBZ1FJekJjUVFPYmJ1SWNBQVFJRUNCQWcKUUlBQWdZa0ZCSkNK
UVcyT0FBRUNCQWdRSUVDQUFJSDVBZ0xJZkJ2M0VDQkFnQUFCQWdRSUVDQXdzWUFBTWpHb3pSRWdR
SUFBQVFJRQpDQkFnTUY5QUFKbHY0eDRDQkFnUUlFQ0FBQUVDQkNZV0VFQW1CclU1QWdRSUVDQkFn
QUFCQWdUbUN3Z2c4MjNjUTRBQUFRSUVDQkFnClFJREF4QUlDeU1TZ05rZUFBQUVDQkFnUUlFQ0F3
SHdCQVdTK2pYc0lFQ0JBZ0FBQkFnUUlFSmhZUUFDWkdOVG1DQkFnUUlBQUFRSUUKQ0JDWUx5Q0F6
TGR4RHdFQ0JBZ1FJRUNBQUFFQ0V3c0lJQk9EMmh3QkFnUUlFQ0JBZ0FBQkF2TUZCSkQ1Tmludk9Y
bnlaTXE2RkVXQQpBQUVDQkFnUUlFRGd0UWdJSUs5RnlUSUVDQkFnUUlBQUFRSUVDRXdpSUlCTXdt
Z2pCQWdRSUVDQUFBRUNCQWk4RmdFQjVMVW9XWVlBCkFRSUVDQkFnUUlBQWdVa0VWcmI2NVhKYldq
bTVjcm03M1hlVkJiYnV2dXk0cm5JMUhvNEFBUUlFQ0JBZ1FJREFZZ0tPZ0N6bVpXa0MKQkFnUUlF
Q0FBQUVDQkpZUUVFQ1d3TE1xQVFJRUNCQWdRSUFBQVFLTENRZ2dpM2xabWdBQkFnUUlFQ0JBZ0FD
QkpRUUVrQ1h3ckVxQQpBQUVDQkFnUUlFQ0F3R0lDQXNoaVhwWW1RSUFBQVFJRUNCQWdRR0FKQVFG
a0NUeXJFaUJBZ0FBQkFnUUlFQ0N3bUlBQXNwaVhwUWtRCklFQ0FBQUVDQkFnUVdFSkFBRmtDejZv
RUNCQWdRSUFBQVFJRUNDd21JSUFzNW1WcEFnUUlFQ0JBZ0FBQkFnU1dFQkJBbHNDektnRUMKQkFn
UUlFQ0FBQUVDaXdrSUlJdDVXWm9BQVFJRUNCQWdRSUFBZ1NVRUJKQWw4S3hLZ0FBQkFnUUlFQ0JB
Z01CaUFnTElZbDZXSmtDQQpBQUVDQkFnUUlFQmdDUUVCWkFrOHF4SWdRSUFBQVFJRUNCQWdzSmlB
QUxLWWw2VUpFQ0JBZ0FBQkFnUUlFRmhDUUFCWkFzK3FCQWdRCklFQ0FBQUVDQkFnc0ppQ0FMT1ps
YVFJRUNCQWdRSUFBQVFJRWxoQVFRSmJBc3lvQkFnUUlFQ0JBZ0FBQkFvc0pDQ0NMZVZtYUFBRUMK
QkFnUUlFQ0FBSUVsQkFTUUpmQ3NTb0FBQVFJRUNCQWdRSURBWWdJQ3lHSmVsaVpBZ0FBQkFnUUlF
Q0JBWUFrQkFXUUpQS3NTSUVDQQpBQUVDQkFnUUlMQ1lnQUN5bUplbENSQWdRSUFBQVFJRUNCQllR
a0FBV1FMUHFnUUlFQ0JBZ0FBQkFnUUlMQ1lnZ0N6bVpXa0NCQWdRCklFQ0FBQUVDQkpZUUVFQ1d3
TE1xQVFJRUNCQWdRSUFBQVFLTENRZ2dpM2xabWdBQkFnUUlFQ0JBZ0FDQkpRUUVrQ1h3ckVxQUFB
RUMKQkFnUUlFQ0F3R0lDQXNoaVhwWW1RSUFBQVFJRUNCQWdRR0FKQVFGa0NUeXJFaUJBZ0FBQkFn
UUlFQ0N3bUlBQXNwaVhwUWtRSUVDQQpBQUVDQkFnUVdFSkFBRmtDejZvRUNCQWdRSUFBQVFJRUND
d21JSUFzNW1WcEFnUUlFQ0JBZ0FBQkFnU1dFQkJBbHNDektnRUNCQWdRCklFQ0FBQUVDaXdrSUlJ
dDVXWm9BQVFJRUNCQWdRSUFBZ1NVRUJKQWw4UDRjcTU0OGVmTFA4YkFla3dBQkFnUUlFQ0JBZ01B
a0FnTEkKSkl3MlFvQUFBUUlFQ0JBZ1FJREFheEVRUUY2TGttVUlFQ0JBZ0FBQkFnUUlFSmhFUUFD
WmhORkdDQkFnUUlBQUFRSUVDQkI0TFFJcgpXLzF5dVFWWFRxNWM3bTczWFdXQnJic3ZPNjZyWEky
SEkwQ0FBQUVDQkFnUUlMQ1lnQ01naTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFCmtDWHdyRXFBQUFF
Q0JBZ1FJRUNBd0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdBQUJBZ1FJ
RUNDd21JQUEKc3BpWHBRa1FJRUNBQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFRSUVDQ3dt
SUlBczVtVnBBZ1FJRUNCQWdBQUJBZ1NXRUxqaQozd0ZaWXR0V0pVQ0FBQUVDQkFnUUlFQ0F3QTRC
UjBCMmNQaUNBQUVDQkFnUUlFQ0FBSUhkRkJCQWRsUFh0Z2tRSUVDQUFBRUNCQWdRCjJDRWdnT3pn
OEFVQkFnUUlFQ0JBZ0FBQkFyc3BJSURzcHE1dEV5QkFnQUFCQWdRSUVDQ3dRMEFBMmNIaEN3SUVD
QkFnUUlBQUFRSUUKZGxOQUFObE5YZHNtUUlBQUFRSUVDQkFnUUdDSGdBQ3lnOE1YQkFnUUlFQ0FB
QUVDQkFqc3BvQUFzcHU2dGsyQUFBRUNCQWdRSUVDQQp3QTRCQVdRSGh5OElFQ0JBZ0FBQkFnUUlF
TmhOQVFGa04zVnRtd0FCQWdRSUVDQkFnQUNCSFFJQ3lBNE9YeEFnUUlBQUFRSUVDQkFnCnNKc0NB
c2h1NnRvMkFRSUVDQkFnUUlBQUFRSTdCQVNRSFJ5K0lFQ0FBQUVDQkFnUUlFQmdOd1VFa04zVXRX
MENCQWdRSUVDQUFBRUMKQkhZSUNDQTdPSHhCZ0FBQkFnUUlFQ0JBZ01CdUNnZ2d1NmxyMndRSUVD
QkFnQUFCQWdRSTdCQVFRSFp3K0lJQUFRSUVDQkFnUUlBQQpnZDBVbUYxcDR5c25WNjYweUovdXY2
ZC9ldmVmdnB6N1dTeDNjdTY5bDc0ajF0bXRiWStQR0k4Umx5czl6ajNEVW92MzhNcHF3OVc0Cmph
dnhXQmtlTjJvWWU0N1BMOWYzOXVVVy9UNkpiVi91Y3M5RmQ4NnI0K0xscHE0anlyajRNZjZjdFVR
OWNibG4rUGRQLzJTbzZVL1YKREovZHM2M0l1KytlVitCRksvbVNBQUVDQkFnUVNDUGdDRWlhVVNp
RUFBRUNCQWdRSUVDQXdONFhFRUQyL294MVNJQUFBUUlFQ0JBZwpRQ0NOZ0FDU1poUUtJVUNBQUFF
Q0JBZ1FJTEQzQlFTUXZUOWpIUklnUUlBQUFRSUVDQkJJSXlDQXBCbUZRZ2dRSUVDQUFBRUNCQWpz
CmZRRUJaTy9QV0ljRUNCQWdRSUFBQVFJRTBnZ0lJR2xHb1JBQ0JBZ1FJRUNBQUFFQ2UxOUFBTm43
TTlZaEFRSUVDQkFnUUlBQWdUUUMKQWtpYVVTaUVBQUVDQkFnUUlFQ0F3TjRYRUVEMi9veDFTSUFB
QVFJRUNCQWdRQ0NOZ0FDU1poUUtJVUNBQUFFQ0JBZ1FJTEQzQlFTUQp2VDlqSFJJZ1FJQUFBUUlF
Q0JCSUl5Q0FwQm1GUWdnUUlFQ0FBQUVDQkFqc2ZRRUJaTy9QV0ljRUNCQWdRSUFBQVFJRTBnZ0lJ
R2xHCm9SQUNCQWdRSUVDQUFBRUNlMTlBQU5uN005WWhBUUlFQ0JBZ1FJQUFnVFFDQWtpYVVTaUVB
QUVDQkFnUUlFQ0F3TjRYRUVEMi9veDEKU0lBQUFRSUVDQkFnUUNDTmdBQ1NaaFFLSVVDQUFBRUNC
QWdRSUxEM0JWYTIrbVh2dDZsREFnUUlFQ0JBZ0FBQkFnUXlDRGdDa21FSwphaUJBZ0FBQkFnUUlF
Q0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWln
eGFtd1FJCkVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JB
Z1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUkKRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FD
Q0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSQpFTWdnSUlCa21J
SWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNC
QWdBQUJBa1VFCkJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJF
QkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmgKQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcw
U0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRQpDQkFnUUlB
QUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlD
U0lZcHFJRUFBUUlFCkNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJB
Z0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUUKQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVD
QkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRgpCQVNR
SW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFB
UUlFQ0JBZ1FDQ0RnQUNTCllRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlF
TWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWIKQkFnUUlFQ0FBQUVDQkRJSUNDQVpw
cUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQwpC
QWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VF
UkFBQ2t5YUcwU0lFQ0FBQUVDCkJBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdw
c0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUMKUlFRRWtDS0QxaVlCQWdRSUVD
QkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRB
QQprbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dn
UUlFQ0FBQUVDQkFnVUVSQkFpZ3hhCm13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlB
QUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUIKQWdRSUVDQkFnRUFSQVFH
a3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJB
Z0FBQgpBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVD
QkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCCkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lH
S2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0EKQUpKaENtb2dRSUFB
QVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlG
QkVRUUlvTQpXcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0Qx
aVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBCkFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNC
QWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUEKQVFJRUNCRElJ
Q0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0Jn
SUVDQkFnUUlBQQpBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVD
QkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NECmdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFB
QXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0sKREZxYkJB
Z1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlB
QWdRd0NBa2lHS2FpQgpBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpK
aENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBCkFBRUNCQWdReUNBZ2dHU1lnaG9JRUNC
QWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0EKQUFF
Q1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWln
dFVtQUFBRUNCQWdRSUVBZwpnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFB
QVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBCmlneGFtd1FJRUNCQWdBQUJBZ1F5
Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW8K
Z1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNC
QWdRSUZCRVFBQXBNbWh0RWlCQQpnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJF
RUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBCmdBQUJBa1VFQkpBaWc5WW1B
UUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVD
QkEKSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dH
U1lnaG9JRUNCQWdBQUJBZ1FJRkJFUQpRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JB
Z1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwCnFJRUFBUUlFQ0JBZ1FJ
QkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RK
b2JSSWcKUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNC
QWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZwpRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlF
TUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnClFDQ0RnQUNTWVFw
cUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFB
QVFJRUNCUVIKRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VF
QkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpRwpLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZK
Z0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTCklFQ0FBQUVD
QkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJ
Qm1tb0FZQ0JBZ1EKSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFB
UUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUQpJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlF
Q0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVCkVSQkFp
Z3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JB
Z1FJRUNBQUlFTUFnSkkKaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FD
Q0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odApFaUJBZ0FBQkFnUUlFTWdnSUlCa21J
SWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJCkVD
QkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJF
QkFhVElvTFZKZ0FBQkFnUUkKRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcw
U0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSQpGQkVRUUlvTVdwc0VDQkFnUUlB
QUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlD
ClNJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJB
Z0FBQkFnUUlFQ0JRUkVBQUtUSm8KYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVD
QkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRQpDQkFnUUlBQUFRSkZCQVNR
SW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFB
UUlFCkNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlF
TWdnSUlCa21JSWFDQkFnUUlBQUFRSUUKQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpw
cUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3QwpBa2lHS2FpQkFBRUNC
QWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VF
UkFBQ2t5CmFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdw
c0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUMKQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVD
QkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQwpCQWdRSUVBZ2c0
QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dn
UUlFQ0FBQUVDCkJBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlB
QUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU0KQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFH
a3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcApNbWh0RWlC
QWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVD
QkRJSUNDQVpwcUFHCkFnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lH
S2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUIKQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFB
QVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQgpBZ1FJ
RkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0Qx
aVlCQWdRSUVDQkFnQUNCCkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNC
QWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUEKS1RKb2JSSWdRSUFBQVFJRUNCRElJ
Q0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZwpC
Z0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVD
QkFnRUFSQVFHa3lLQzFTWUFBCkFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFB
QXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUEKQVFJRUNCUVJFRUNLREZxYkJB
Z1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlB
QQpnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpK
aENtb2dRSUFBQVFJRUNCQWdVRVJBCkFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNC
QWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW0Kb0FZQ0JBZ1FJRUNBQUFF
Q1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWln
dFVtQQpBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFB
QVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBCkFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5
Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0EKQUlFTUFnSkloaW1v
Z1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNC
QWdRSUZCRQpRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJF
RUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FaCnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1B
UUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkoKZ0FBQkFnUUlF
Q0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dH
U1lnaG9JRUNCQQpnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JB
Z1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBCmdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJ
QkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlEKUkVBQUtU
Sm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNC
QWdBQUJBZ1F5Q0FnZwpHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlF
TUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxClNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFw
cUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWcKUUlB
QUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VF
QkpBaWc5WW1BUUlFQ0JBZwpRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZK
Z0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnClVFUkFBQ2t5YUcwU0lFQ0FBQUVD
QkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0kK
SUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFB
UUlFQ0ZZNld4a0FBQmRwU1VSQgpWQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFr
bUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFCkNCRElJQ0NBWkppQ0dnZ1FJ
RUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFR
SkYKQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lL
QzFTWUFBQVFJRUNCQWdRQ0NEZ0FDUwpZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdB
QUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiCkJBZ1FJRUNBQUFFQ0JE
SUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2Fp
QkFBRUMKQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJ
RUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQwpCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJF
UVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDClJRUUVrQ0tEMWlZ
QkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdR
SUVBZ2c0QUEKa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NB
WkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YQptd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lF
Q0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCCkFnUUlFQ0JB
Z0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBN
bWh0RWlCQWdBQUIKQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJ
RUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQgpBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFn
UXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BCkFKSmhD
bW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdB
QUJBZ1FJRkJFUVFJb00KV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JR
UUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQQpBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RV
bUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBCkFR
SUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0Fn
Z0dhYWdCZ0lFQ0JBZ1FJQUEKQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FB
QkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRApnQUNTWVFwcUlFQ0FBQUVDQkFn
UUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNL
CkRGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlF
Q0JBZ1FJQUFnUXdDQWtpR0thaUIKQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JB
SUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQQpBQUVDQkFnUXlDQWdnR1NZ
Z2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJ
RUNBCkFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFF
UUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWcKZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9i
UklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQQppZ3hhbXdRSUVDQkFn
QUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFn
SkloaW1vCmdRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlF
Q0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkEKZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFR
SUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQQpnQUFCQWtVRUJK
QWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FB
QkFnUUlFQ0JBCklJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFn
UXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVEKUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJt
bW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcApxSUVBQVFJ
RUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JR
UkVBQUtUSm9iUklnClFJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hh
bXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWcKUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdR
SUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZwpRQ0NE
Z0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFD
QkFnUUlBQUFRSUVDQlFSCkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFn
QUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUcKS2FpQkFBRUNCQWdRSUVDQVFCRUJB
YVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwUwpJ
RUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFR
SUVNZ2dJSUJtbW9BWUNCQWdRCklFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJ
WXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1EKSUVBZ2c0QUFrbUVLYWlCQWdB
QUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFn
VQpFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9Q
V0pnRUNCQWdRSUVDQUFJRU1BZ0pJCmhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJ
RUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHQKRWlCQWdBQUJBZ1FJRU1n
Z0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFH
QWdRSQpFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdR
SUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJCkVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJB
QUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUkKRkJFUVFJb01XcHNF
Q0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFn
QUNCREFJQwpTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFr
bUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvCmJSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJ
RUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUUKQ0JBZ1FJQUFB
UUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQXJQdmZ2ZTdiVGFidGJXMXRiYSt2ajdVdExXMTFW
WlhWOXY1OCtkYgpmQjZYczJmUHR0T25UMSs0TFpaM0lVQ0FBQUVDQkFnUWVMVkE3RWV0ckt3TSsx
angrZmp4NmlYZFFtQjZnWFBuemczNzhPUDNZT3pyCmovdjE0ejUrM0RkZXh2MzkrRHJ1My83MXVN
eDQvZGhqajdXYmI3NTUvUEpWMTdIZGVLenRsN0dldU43YzNHeXpqWTJOOXBhM3ZHVjQKc0FnVjhZ
RHhFU3ZIQW4vODR4L2JmZmYvcnYzYmY2MjNYejZ5ci8zUFk3UDJ3dGtJS24zRGtVMzZodHBOaDdj
L2hzOEpFQ0JBZ0FBQgpBdlVFenZjZG85anY2dnRSMTgwMjJtMDNuR252K2N2V1B2cmVBKzNOdHg0
YWZ0RWJPM2ZiZC96cUllbDROd1RHd0JEWHNmTWYrL1N4Ckh4OWZ2L2ppaSsybGwxNXFiM2pERzly
eDQ4Y3ZIR1NJNzhQeEk0SkJYR0w1TVlETSt6NTk0WVVYMnV0Zi8vcEx0aEhyeDNwUncvYjEKNC9h
NHhPMi8vdld2Mnl3S3VmMzIyNGNIMjc3Z21UTm4ybjMzM2RmKzdrY1B0aC85KzlIMjBMTTN0ZjJI
OTdjUC91MU43YzRUMTdVagpoMTQ1QXRJM09Jc0hPdGVQbHZRblZldGhhbVgyOG5WLzVMYTEwaDh3
a2xSLzBQVlk1ZHhXQjRrR3o3V1ZlSkwyajdqWit2eDgvM2orCmVQM3crdW5uaDUrZjhUcHdMZTQv
clBYUmJmYWRuZGpmT1gzbWZQdlAzejNmZm43ZmsrMC83bjJwM2YvSWMrMnpIejNYUHZEdTQyM2YK
dm4zRHptRmZ6SVhBWkFLeGd6L3U1TWQxN09qSFI0U1F1TVQxSTQ4OE1uei8zWG5ubmNPUnVmSEJZ
LzkvWEhlOGJiemVuZzNHMjU1OAo4c2toTzR4Zmo5Znp0aEgzai9kRlRhZE9uV3F6U0VTUmRPSUpN
UllRNGVQaGh4OXUvL0RUKzlvUEhqamVmblBtMXJaeTA2eDk2SU8zCnRJL2VkYXdkMnIvV1EwZmZX
aS80WE45UXp4NnRQKy82UC8xUVl3U1FmdDFiYVd2OS90WCtqT3hYTFg0cHNOV1g2MUVsRnV4Zjkv
V0cKMjdiYTJmNko5Zm41L3ZIODhmcmg5ZFBQRHo4L3I5WDloMWQyaTRiOW1maGQ4cHR2Tzl3TzNu
aWcvZjAvL3FFOThNeSsxbjcyWkh2VApHMDYzTzk1NnBPM2Z2My9ZOStxTHVSQ1lSQ0IyN0dNblB6
N2lhRVo4SGRleGJ6OSt4TnNwZnZuTFg3WWpSNDYwRXlkT0RFZmt4b0FSCjY0MmZYNm1nZUV2RytM
YU5LeTA3YmpldTR4STFSUFlZVHNHS0wrTEpFQThjQmNkcFY3LzR4Uy9heng5Y2JiL1plSE5iNlUr
Z28wZjMKdFp1dVh4K2VNSnY5bVJWUHJ0NW1EeFR4VXRIYW1aNHcrdE5yQ0JxcnM4Z2l3MHRJVysw
THh0dEZ0dnI5c1hTczI2OTYrQWlrbGRiUApBT3RmcjFpZm4rOGZ6eCt2SC8zRjFPdW5ueDkrZmw2
Yit3L0RMMWtqaFF5WGwzKzVldnpvZWp0eS9HQjdacmJXSG5qcXh2YURmM202Ci9kWHR4NGVkdDll
NkF6ZHUwVFdCeXdtTUFTU3V4L0FSMTNHUUliN1g0cFNzQ0E3UFBQTk0rOVd2ZnRXdXUrNjZkc3N0
dDF3SXdoZUgKanpodDYzdmYrMTc3N0djLys2cUhqYmR2WEx4OExQVE5iMzZ6ZmVwVG4ycUhEaDI2
c002NFhGeEhDSW5NRWV2M3M2ZFcydlBQUHo4VQpFa3MvOTl4encwZTh3ZVRoRjkvVVZvLzFKOCt4
L2UzWWRldnQ4ZWRiZStxRnJYNEVaTFd0OVpBeFBNLzZBWTJOZmdRamdzMW0vL1ZsCkhJSnNaK01I
eUdxTE03SGk2OVh6TDZldmN4RkN0dnI3VE9LQittMW56c1ViM2Z1YlVYb29zVDQvM3orZVAxNC92
SDc2K2VIbjU3VzYKL3hBbmVLeXNEbnM0d3hrZnNXL3o1UE5iN2RpUjJiRGY4MXpmMy9uWDM2OE9P
MkJ4MXNuNGk5L1lKWEloc0t6QTlnQXl2dEY3UEFJUwpwMS9GL1ljUEh4NCtubjMyMlJidjQ0ajkv
Nk5IajE0SUlXTU5QLzd4ajRjd0VhZGFmZTV6bnh0dnZuQTlidmZDRGE5ODhwM3ZmS2Y5CjVDYy9H
VUxMeHo3MnNZdnZIbXFJeDR6c01UdHc0TUR3NXBSSVJKR09vcWk0NCttbm4yNVByUDkxTzNKMGY3
dmgyTDRlUVBiMU41K3YKdEg5K3VLZVcxYzErYWxYRWo1ZURSNXhVRlUrMGVJL0hhbi9QeC9xK25y
VGFaajhGcXdlUS9qSHJ5WCt0aDVQTnpYNDRxSCtjNytFawpNT0xVclkyNDdaVWpJOWJuNS92SDg4
ZnJoOWRQUHovOC9Md1c5eC82cnRQd2k5bjRMZSs1c3h0OUh5ZU9nbXoyQUxMZVZ1SlVrSDQ2CnpP
OWZPTnJpTlBmWTN4SkFYclYvNm9ZbEJNWUFFdUVnUHNZM29jYytmWHpFL2ZFL1ljWDNYZXp6Undn
ZTkva1BIanc0M1A3UVF3KzEKcjMvOTZ5MnV4MU9teHZlUWJDOHR0bldwMjJPZEo1NTRvbjMxcTE5
dFAvemhEOXNYdnZDRjlyYTN2VzNZVmh6MWlJTWNjV1Fsc3NjcwpDb2pETTVGSTRoRE5XRng4dmY5
Z2E4ZjY0Y000K25IODZJRVdCYTczTURHYjlWT3hldEJZV2UxSE0zb1IvUUJQRHhMbjJxeS9ZdXpy
Cno3RzFuaVRpT01kYS8zVm12UDA4YmwvdlQ3WjRjOVptWDI2elB5blA5NDhJSUdjMytubHFmV25y
OC9QOTQvbmo5Y1BycDU4ZmZuNWUKcS9zUHNiK3oybmZ3dHM3MThORi9LYnV4Y2FhZFBmMVNPOU5Q
TlY5WjJXam5OOWJiYy8zc2o5aHhpMzJ0Mk9lSy9TOFhBbE1JakFFawpyaU9BaktkSmpVRWliaHRQ
KzR2M1lFUUlpRXNFZ3ZpNDk5NTcyOWUrOXJWWGxmTDQ0NCsvNnJZSU1KZTZQY0wxZUxuLy92dmJs
Ny84CjVmYkZMMzZ4dmU5OTd4c0NVTlF5dnU5OEZzVkVDQm12by9Bb09ncDcvZXp4dG43ZzVuYjA0
TDUyOUhBUElJY090d1A3KzdKOStUaFYKSXRKK1g3d2Z3WGo1aU1aNlArZHF2VCtaNG1qSEVEejY1
eEZVWnErY210VXpSMy9pOVkrK1RoeWtIQUxKMmMyMnNXWDllRUhpNS92SAo4OGZyaDlkUFB6Lzgv
T3o3RGRmZy9zTmEvNlZzLzY5NStuNVIzL25yUjBET25sbHRwOWY3Zi9KeitzVys3N1BWTmc3TzJ2
Vm5uKzM3ClJNZUdmUzRCWk54VmRUMkZRT3pjeHo1OGZNUk8vbmprWTd3OWpvaU1ZU1Rlb3hINy9y
Rk1YT0wyRDMzb1ErMTFyM3RkKzhZM3Z0RisKKzl2ZkRyZkhQM0hFNU9KTHJIdXAyN2NINmhNblRy
VFBmLzd6RjQ2QWpMWEZZOGIzL25BRUpEWVNLOFYxTEJCdkVMbnh4aHZiNjU3NApYVHR6NEs3aFBS
K0hEdTF2Ui90cFdJY09IK3BQbm42cVVMeTNJd0pJcjZvSC9mNm04aDVNK3RmeEVXK2lqTjlteHhI
SCtDOTYxL3FmCkRZblRJbVBaemY2YmdGaCt1STd3c2pYcmh5aXR6OC8zaitlUDF3K3ZuMzUrK1Bs
NTdlNC85TjJmdnQ4ejY2ZWE5NCtOL2UzMFMrdnQKeGRQOURKTitTdnJwZmhqazRJRzFkbUxsMmY2
ZTJ6ZGVDQ0RqRG1CZjFZWEFVZ0pqMElqOStQSDdhcnd0ZnNrZG44ZitmUnlsaUQvQgpNUWFRV0Ri
V2ljczczdkdPOXBXdmZLWDk3R2MvYTkvNjFyY3VuQjExY1dIamdZdUxiNDhzRVc5dS84eG5QdE0r
OHBHUERLZUJqZHVQCng0ODZZcGxZZndnZ3d5ZXZuQmMyRnZIV3Q3NjEzZnJRVDl1anB4NW82emQr
c0Izb1B4a1A5dkJ4NkxwSVE2MnYvUEpSalBoZkgrS28KUm9TS2ZtWldpejlSR09Ha3Z3MWtPQmV5
aDV4K05PVGw5NExFVVk5K3dHTTQrdEhQdkJvT1VjYTZHOWJuNS92SDg4ZnJoOWRQUHovOAovTHlH
OXgvNjcxNzdxZWt2LzRKMXMvOW5QR3ZyZldlcC84R3pjMmRQdHhmWForM0lDdyswOTk5K2ZualQ3
L2Fkdjc2YUM0RkpCT0lvClIxeGlaejkyOUdQbmZ3d2hZd0NKMDYzdXV1dXVDNmRnamN1TTY4VDFK
ejd4aWZiaEQzKzRmZnZiMzc3a2tZNTRNL3Vsam9CODhwT2YKYkovKzlLZUhFQkxiSGNOSFpJdlli
cHg2R0NGa3lCM2pxVmZqK1loUmVCVDlnUTk4b0QzNDRJTnQ4N2YzdGRPUDlqZFFIZitiNFE4Rwo5
cU9KUS9pWTllZFZoSXYrL3FyK0J3ajdFNjRIaW41MlZsdnJLU09DU0Q4QTBvK0M5STkrdlJMWC9a
a1pZZU5BdjcrZjRkVTJlbkNKClFCSkhRczVHaUxFK1A5OC9uajllUDd4Kyt2bmg1K2MxdXY4UWYx
eDVEQ0FiUFlERUVaR04wLzAvbFlqOW9NZnViKzg4OHIvdDNYZTgKdmQxd3d3M0RqbGpzYTdrUW1F
b2dkdkRIZ3dpeHpkajVINi9qdmpqeUVmOE43ODAzMzl6ZTlhNTNEU0ZnV09DVmYyS1pjWjI0S2Q2
Swo4YVV2ZlduSGJlUHl4NDRkdXhCZ3h0dmllbHcrdGpWZTR2UHhZendDTXB5Q0ZXbHAvQmpUVWhR
UWYyTDk0eC8vZU52NC92ZmJJMy84CnAzYnEza2ZhMlRlL3Q1MzdpL2UxNjI4NTN0YjYrMHcyNGc5
LzlFczhUaHpaT04vZno3S3ZQNS9PUmZMdmZXLzA0QkdCSlF3aWxNUVQKTWxMSG1iNXNQRFBqVFZw
bittM3hCd210ejgvM2orZVAxdyt2bjM1KytQbDVyZTQvREhHaTc4OE0rMFI5SCttcC96dlZudnJ2
L2t2YwpQenpRN3J6dXBmYitkNzZ0M1hiYmJSZitSa0s4S2RpRndGUUM0MDUraEpENDNvcWQvZkhO
NkhIcVZmem5VckcvLzU3M3ZHZjRyM2pICng0MzFZci8vNHV2eC9rdGR4eEdRS3dYbzdkdUx6Nk91
ZVB6NFBLNW5VVng4eElQSDlYaUpPOS8rOXJjUER4RHZqSC8wMFVmYmkvL3oKdmZiTWc5OXNqL2RH
eGcxdlQwdmp1cTRKRUNCQWdBQUJBbFVGNHF5UytKOURiNzMrK25icjdiZTJFeWZ1Nmg4bjJ2WDk2
OWh4Ry9lOQpxdnJvZTNxQjJDK1BTM3h2eGM1Ky9JZFM4UkhoSS83WHFqaWljY2NkZHd4SFFDS2NY
SHdaOStzdnZ2MVNYOGY3UEM2MWpVc3RHOXVOCmo2aHBERWRSNHl6K0s2NzRZeVFST0xhZnp6V3VF
RStZZUxOS0JKQlRwMDROemNRRGpNbG4rMUdUU3oydzJ3Z1FJRUNBQUFFQ1ZRVGkKRjdPeGJ4U25t
VVFJaVQvMEZxZXN4RTViM0RidUlGYngwT2ZWRVlpZCsrMDcrbU1BaVVkLzR4dmZPSHdQeHZkbDdQ
TlBjVmxrT3hlSApqOGdlL3c5TU14TTZLdGpUbFFBQUFBQkpSVTVFcmtKZ2dnPT0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85971</attachid>
            <date>2011-03-16 14:06:03 -0700</date>
            <delta_ts>2011-03-16 15:05:16 -0700</delta_ts>
            <desc>Fixes for max leopard</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>52934</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlr
IENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMw
LDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExl
bmd0aCA9IC0xOwotY29uc3QgaW50IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGlu
dCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQg
aW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWlu
IHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIApAQCAtNTIsMzQgKzUyLDM1IEBAIHB1YmxpYzoKICAg
ICBMZW5ndGgoaW50IHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDog
bV9pbnRWYWx1ZSh2KSwgbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAg
ICAgewotICAgICAgICBBU1NFUlQodCAhPSBQZXJjZW50KTsKICAgICB9CiAKICAgICBMZW5ndGgo
ZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0gICAgICAgIDogbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50
Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9p
c0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDogbV9xdWlyayhxKSwgbV90
eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9CiAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgp
ID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90eXBlKSAmJiAobV9xdWly
ayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aCYgbykg
Y29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZsb2F0VmFsdWUoKSkgfHwg
KG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1aXJrKTsgfQogCisgICAg
Y29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGRvdWJsZSB2KQorICAgIHsgICAgICAgIAorICAgICAg
ICBpZiAobV9pc0Zsb2F0KQorICAgICAgICAgICAgbV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1fZmxvYXRWYWx1ZSp2KTsKKyAgICAgICAgZWxzZSAgICAgICAgCisgICAgICAgICAg
ICBtX2ludFZhbHVlID0gc3RhdGljX2Nhc3Q8aW50PihtX2ludFZhbHVlKnYpOworICAgICAgICAK
KyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICAKICAgICBpbnQgdmFsdWUoKSBjb25z
dCB7Ci0gICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7Ci0gICAgICAgIHJldHVybiBy
YXdWYWx1ZSgpOworICAgICAgICByZXR1cm4gZ2V0SW50VmFsdWUoKTsKICAgICB9CiAKLSAgICBp
bnQgcmF3VmFsdWUoKSBjb25zdCB7IHJldHVybiBnZXRJbnRWYWx1ZSgpOyB9Ci0KLSAgICBkb3Vi
bGUgcGVyY2VudCgpIGNvbnN0CisgICAgZmxvYXQgcGVyY2VudCgpIGNvbnN0CiAgICAgewogICAg
ICAgICBBU1NFUlQodHlwZSgpID09IFBlcmNlbnQpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihyYXdWYWx1ZSgpKSAvIHBlcmNlbnRTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oZ2V0RmxvYXRWYWx1ZSgpKTsKICAgICB9CiAKICAgICBM
ZW5ndGhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMZW5ndGhUeXBlPiht
X3R5cGUpOyB9CkBAIC05NCwxNCArOTUsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1
ZShpbnQgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQoIXZhbHVlIHx8IHR5cGUoKSAhPSBQ
ZXJjZW50KTsKICAgICAgICAgc2V0VmFsdWUoRml4ZWQsIHZhbHVlKTsKICAgICB9CiAKICAgICB2
b2lkIHNldFZhbHVlKExlbmd0aFR5cGUgdCwgZG91YmxlIHZhbHVlKQogICAgIHsKICAgICAgICAg
bV90eXBlID0gdDsKLSAgICAgICAgbV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZh
bHVlKTsKKyAgICAgICAgbV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKTsK
ICAgICAgICAgbV9pc0Zsb2F0ID0gdHJ1ZTsgICAgCiAgICAgfQogCkBAIC0xMTksNyArMTE5LDcg
QEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAgIGlm
IChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50U2NhbGVG
YWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1heFZhbHVl
ICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgogICAgICAgICAg
ICAgICAgIHJldHVybiBtYXhWYWx1ZTsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMzUsNyAr
MTM1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAg
ICAgIGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50
U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1h
eFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAgICAgY2FzZSBBdXRvOgogICAg
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTE1NiwxMCAr
MTU2LDE2IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgaXNVbmRlZmlu
ZWQoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsgfQotICAg
IGJvb2wgaXNaZXJvKCkgY29uc3QgeyByZXR1cm4gIWdldEludFZhbHVlKCk7IH0KLSAgICBib29s
IGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID4gMDsgfQotICAgIGJvb2wg
aXNOZWdhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPCAwOyB9CisgICAgYm9vbCBp
c1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCkgPT0gdW5kZWZpbmVkTGVuZ3RoOyB9
CisgICAgYm9vbCBpc1plcm8oKSBjb25zdCAKKyAgICB7IAorICAgICAgICBpZiAobV9pc0Zsb2F0
KQorICAgICAgICAgICAgcmV0dXJuICFtX2Zsb2F0VmFsdWU7IAorICAgICAgICAKKyAgICAgICAg
cmV0dXJuICFtX2ludFZhbHVlOworICAgIH0KKyAgICBib29sIGlzUG9zaXRpdmUoKSBjb25zdCB7
IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPiAwOyB9CisgICAgYm9vbCBpc05lZ2F0aXZlKCkgY29u
c3QgeyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpIDwgMDsgfQogCiAgICAgYm9vbCBpc0F1dG8oKSBj
b25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXV0bzsgfQogICAgIGJvb2wgaXNSZWxhdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBSZWxhdGl2ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbihpbnQg
ZQogCiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBjZWxsTG9naWNhbFdpZHRoID0gY2VsbC0+
c3R5bGVPckNvbExvZ2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
V2hhdCBpcyB0aGlzIGFyYml0cmFyeSB2YWx1ZT8KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNl
bGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSA+IDMyNzYwKQorICAgICAgICAgICAgICAgICAgICBp
ZiAoY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gMzI3NjApCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjZWxsTG9naWNhbFdpZHRoLnNldFZhbHVlKDMyNzYwKTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNOZWdhdGl2ZSgpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgwKTsKQEAgLTEwNSwxMyArMTA1LDEzIEBA
IHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1uTGF5
b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVl
KCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1u
TGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnZhbHVl
KCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVlKCkpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdpZHRo
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNh
c2UgUmVsYXRpdmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTmVlZCB0byB1
bmRlcnN0YW5kIHRoaXMgY2FzZSBhbmQgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBjb21wYXJl
IHZhbHVlcwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYXJlIG5vdCBuZWNlc3Nh
cmlseSBvZiB0aGUgc2FtZSB0eXBlLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxM
b2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpICYm
IGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgucmF3
VmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5p
c0F1dG8oKSB8fCAoY2VsbExvZ2ljYWxXaWR0aC5pc1JlbGF0aXZlKCkgJiYgY2VsbExvZ2ljYWxX
aWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExv
Z2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMjMyLDE2ICsyMzIsMTYgQEAgdm9pZCBBdXRvVGFibGVMYXlv
dXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogCiAgICAgLy8gV2Ugc3Vic3RpdHV0ZSAwIHBlcmNlbnQg
YnkgKGVwc2lsb24gLyBwZXJjZW50U2NhbGVGYWN0b3IpIHBlcmNlbnQgaW4gdHdvIHBsYWNlcyBi
ZWxvdyB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgogICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhl
IDAlIGNhc2VzIHByb3Blcmx5LgotICAgIGNvbnN0IGludCBlcHNpbG9uID0gMTsKKyAgICBjb25z
dCBmbG9hdCBlcHNpbG9uID0gMSAvIDEyOC4wZjsKIAotICAgIGludCByZW1haW5pbmdQZXJjZW50
ID0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yOworICAgIGZsb2F0IHJlbWFpbmluZ1BlcmNlbnQg
PSAxMDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheW91dFN0cnVjdC5zaXplKCk7
ICsraSkgewogICAgICAgICBtaW5XaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVN
aW5Mb2dpY2FsV2lkdGg7CiAgICAgICAgIG1heFdpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVm
ZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgaWYgKHNjYWxlQ29sdW1ucykgewogICAg
ICAgICAgICAgaWYgKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gbWluKG1fbGF5b3V0U3Ry
dWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpLCByZW1haW5pbmdQZXJjZW50
KTsKLSAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9h
dD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBl
cmNlbnRTY2FsZUZhY3RvciAvIG1heChwZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAgICAgICAg
ICBmbG9hdCBwZXJjZW50ID0gbWluKHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtp
XS5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpKSwgcmVtYWluaW5nUGVyY2VudCk7Cisg
ICAgICAgICAgICAgICAgZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1f
bGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgLyBtYXgocGVy
Y2VudCwgZXBzaWxvbik7CiAgICAgICAgICAgICAgICAgbWF4UGVyY2VudCA9IG1heChsb2dpY2Fs
V2lkdGgsICBtYXhQZXJjZW50KTsKICAgICAgICAgICAgICAgICByZW1haW5pbmdQZXJjZW50IC09
IHBlcmNlbnQ7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEF1
dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgfQogCiAgICAgaWYgKHNjYWxl
Q29sdW1ucykgewotICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3RvciAvIG1heChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9uKTsKKyAg
ICAgICAgbWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgLyBtYXgocmVtYWluaW5n
UGVyY2VudCwgZXBzaWxvbik7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBzdGF0
aWNfY2FzdDxpbnQ+KG1pbihtYXhOb25QZXJjZW50LCBJTlRfTUFYIC8gMi4wZikpKTsKICAgICAg
ICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1heFBlcmNl
bnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAgIH0KQEAgLTI2Niw2ICsyNjYsMTAgQEAgdm9pZCBB
dXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogICAgICAgICBtaW5XaWR0aCA9IG1h
eChtaW5XaWR0aCwgdGFibGVMb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIG1heFdpZHRo
ID0gbWluV2lkdGg7CiAgICAgfQorICAgIAorICAgIC8vIGlmIHRoZXJlIHdhcyBubyByZW1haW5p
bmcgcGVyY2VudCwgbWF4V2lkdGggaXMgaW52YWxpZC4KKyAgICBpZiAoIXJlbWFpbmluZ1BlcmNl
bnQgJiYgbWF4Tm9uUGVyY2VudCkKKyAgICAgICAgbWF4V2lkdGggPSBpbnRNYXhGb3JMZW5ndGg7
ICAgICAgICAKIH0KIAogLyoKQEAgLTMwMCw3ICszMDQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0
OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgIHNpemVfdCBsYXN0Q29sID0gZWZmQ29sOwog
ICAgICAgICBpbnQgY2VsbE1pbkxvZ2ljYWxXaWR0aCA9IGNlbGwtPm1pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwogICAgICAgICBmbG9hdCBjZWxsTWF4
TG9naWNhbFdpZHRoID0gY2VsbC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBzcGFjaW5n
SW5Sb3dEaXJlY3Rpb247Ci0gICAgICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAgICAgICBm
bG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogICAgICAgICBpbnQgc3Bhbk1pbkxvZ2ljYWxXaWR0aCA9
IDA7CiAgICAgICAgIGZsb2F0IHNwYW5NYXhMb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBib29s
IGFsbENvbHNBcmVQZXJjZW50ID0gdHJ1ZTsKQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgICAgICBMYXlvdXQmIGNvbHVt
bkxheW91dCA9IG1fbGF5b3V0U3RydWN0W2xhc3RDb2xdOwogICAgICAgICAgICAgc3dpdGNoIChj
b2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBQZXJj
ZW50OgotICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNh
bFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENvbHNB
cmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTMzOSw3ICszNDMsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZm
ZWN0aXZlTG9naWNhCiAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5lZmZlY3RpdmVM
b2dpY2FsV2lkdGggPSBMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgYWxsQ29sc0FyZVBl
cmNlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucmF3
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91
dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENv
bHNBcmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFjb2x1
bW5MYXlvdXQuZW1wdHlDZWxsc09ubHkpCkBAIC0zNTQsMTQgKzM1OCwxNCBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAKICAgICAgICAgLy8gYWRqdXN0IHRhYmxl
IG1heCB3aWR0aCBpZiBuZWVkZWQKICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQZXJj
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRo
LnJhd1ZhbHVlKCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3Rh
bFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSB8fCBhbGxDb2xzQXJlUGVyY2Vu
dCkgewogICAgICAgICAgICAgICAgIC8vIGNhbid0IHNhdGlmeSB0aGlzIGNvbmRpdGlvbiwgdHJl
YXQgYXMgdmFyaWFibGUKICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoID0gTGVuZ3Ro
KCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0
aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBjZWxsTWF4
TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gbWF4KG1h
eExvZ2ljYWxXaWR0aCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1heChzcGFuTWF4TG9naWNhbFdpZHRo
LCBjZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAgLyBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQo
KSkpOwogCiAgICAgICAgICAgICAgICAgLy8gYWxsIG5vbiBwZXJjZW50IGNvbHVtbnMgaW4gdGhl
IHNwYW4gZ2V0IHBlcmNlbnQgdmFsdWVzIHRvIHN1bSB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAg
ICAgICAgaW50IHBlcmNlbnRNaXNzaW5nID0gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIC0g
dG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnRNaXNzaW5nID0gY2Vs
bExvZ2ljYWxXaWR0aC5wZXJjZW50KCkgLSB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAg
ZmxvYXQgdG90YWxXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3Mg
PSBlZmZDb2w7IHBvcyA8IGxhc3RDb2w7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkp
CkBAIC0zNzAsNyArMzc0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYQogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7IHBvcyA8
IGxhc3RDb2wgJiYgdG90YWxXaWR0aCA+IDA7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gc3RhdGljX2Nhc3Q8
aW50PihwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtw
b3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0b3RhbFdpZHRoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSBwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0
PGZsb2F0PihtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0
b3RhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXaWR0aCAtPSBtX2xheW91
dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHBlcmNlbnRNaXNzaW5nIC09IHBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocGVyY2VudCA+IDApCkBAIC00OTEsNyArNDk1LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlv
dXQ6OmxheW91dCgpCiAgICAgaW50IG51bUZpeGVkID0gMDsKICAgICBmbG9hdCB0b3RhbEF1dG8g
PSAwOwogICAgIGZsb2F0IHRvdGFsRml4ZWQgPSAwOwotICAgIGludCB0b3RhbFBlcmNlbnQgPSAw
OworICAgIGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgaW50IGFsbG9jQXV0byA9IDA7CiAg
ICAgdW5zaWduZWQgbnVtQXV0b0VtcHR5Q2VsbHNPbmx5ID0gMDsKIApAQCAtNTA0LDcgKzUwOCw3
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICBzd2l0Y2ggKGxvZ2lj
YWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgaGF2
ZVBlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0
aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0aC5w
ZXJjZW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAg
ICAgICAgICAgIHRvdGFsUmVsYXRpdmUgKz0gbG9naWNhbFdpZHRoLnZhbHVlKCk7CkBAIC01Mzgs
OSArNTQyLDkgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgICAgICAg
ICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBlcmNlbnQg
PiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+
IDEwMCkgewogICAgICAgICAgICAgLy8gcmVtb3ZlIG92ZXJhbGxvY2F0ZWQgc3BhY2UgZnJvbSB0
aGUgbGFzdCBjb2x1bW5zCi0gICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dpY2FsV2lk
dGggKiAodG90YWxQZXJjZW50IC0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSAvICgxMDAgKiBw
ZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNh
bFdpZHRoICogKHRvdGFsUGVyY2VudCAtIDEwMCkgLyAxMDA7CiAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gbkVmZkNvbHMgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgICAgIGlmICht
X2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lkdGggPSBtX2xheW91dFN0cnVjdFtp
XS5jb21wdXRlZExvZ2ljYWxXaWR0aDsKQEAgLTYwNywxMyArNjExLDEzIEBAIHZvaWQgQXV0b1Rh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIH0KIAogICAgIC8vIHNwcmVhZCBvdmVyIHBlcmNlbnQg
Y29sdW1zCi0gICAgaWYgKGF2YWlsYWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVy
Y2VudCA8IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgIGlmIChhdmFpbGFibGUgPiAw
ICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDApIHsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBuRWZmQ29sczsgKytpKSB7CiAgICAgICAgICAgICBMZW5ndGgmIGxv
Z2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aDsKICAg
ICAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpIC8gdG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRo
ID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnBlcmNlbnQoKSAvIHRvdGFsUGVyY2VudDsKICAg
ICAgICAgICAgICAgICBhdmFpbGFibGUgLT0gY2VsbExvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50IC09IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAg
ICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggKz0gY2VsbExvZ2lj
YWxXaWR0aDsKICAgICAgICAgICAgICAgICBpZiAoIWF2YWlsYWJsZSB8fCAhdG90YWxQZXJjZW50
KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDggQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGlu
dAogICAgICAgICAgICAgICAgICAgICBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uID0gbV90
YWJsZS0+c3Bhbk9mRWZmQ29sKGN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAoKHcuaXNGaXhlZCgpIHx8IHcuaXNQZXJjZW50KCkp
ICYmIHcuaXNQb3NpdGl2ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVu
dEVmZmVjdGl2ZUNvbHVtbl0uc2V0VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAqIHNwYW5J
bkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOworICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1
cnJlbnRFZmZlY3RpdmVDb2x1bW5dID0gdzsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtj
dXJyZW50RWZmZWN0aXZlQ29sdW1uXSAqPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwog
ICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGggKz0gZWZmV2lkdGggKiBzcGFuSW5DdXJyZW50
RWZmZWN0aXZlQ29sdW1uOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzcGFu
IC09IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47CkBAIC0xNjQsMTAgKzE2NSwxMSBAQCBp
bnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkoaW50CiAgICAgICAgICAgICAgICAg
aW50IHVzZWRTcGFuID0gMDsKICAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgICAg
ICAgICAgd2hpbGUgKHVzZWRTcGFuIDwgc3BhbiAmJiBjQ29sICsgaSA8IG5FZmZDb2xzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGludCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29s
ICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9m
RWZmQ29sKGNDb2wgKyBpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBzZXQgaWYgbm8g
Y29sIGVsZW1lbnQgaGFzIGFscmVhZHkgc2V0IGl0LgogICAgICAgICAgICAgICAgICAgICBpZiAo
bV93aWR0aFtjQ29sICsgaV0uaXNBdXRvKCkgJiYgdy50eXBlKCkgIT0gQXV0bykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0uc2V0VmFsdWUody50eXBlKCksIHcu
cmF3VmFsdWUoKSAqIGVTcGFuIC8gc3Bhbik7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dp
ZHRoW2NDb2wgKyBpXSA9IHc7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wg
KyBpXSAqPSBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGgg
Kz0gZWZmV2lkdGggKiBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgdXNlZFNwYW4gKz0gZVNwYW47CkBAIC0yMzQsNyArMjM2LDcgQEAgdm9p
ZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGludCBhdXRvU3BhbiA9IDA7CiAgICAg
aW50IHRvdGFsRml4ZWRXaWR0aCA9IDA7CiAgICAgaW50IHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
LSAgICBpbnQgdG90YWxSYXdQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAw
OwogCiAgICAgLy8gQ29tcHV0ZSByZXF1aXJlbWVudHMgYW5kIHRyeSB0byBzYXRpc2Z5IGZpeGVk
IGFuZCBwZXJjZW50IHdpZHRocy4KICAgICAvLyBQZXJjZW50YWdlcyBhcmUgb2YgdGhlIHRhYmxl
J3Mgd2lkdGgsIHNvIGZvciBleGFtcGxlCkBAIC0yNDcsNyArMjQ5LDcgQEAgdm9pZCBGaXhlZFRh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0uaXNQZXJj
ZW50KCkpIHsKICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0uY2FsY1ZhbHVl
KHRhYmxlTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoICs9IGNh
bGNXaWR0aFtpXTsKLSAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ldLnJh
d1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV93aWR0aFtpXS5wZXJjZW50
KCk7CiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5pc0F1dG8oKSkgewogICAgICAgICAg
ICAgbnVtQXV0bysrOwogICAgICAgICAgICAgYXV0b1NwYW4gKz0gbV90YWJsZS0+c3Bhbk9mRWZm
Q29sKGkpOwpAQCAtMjcwLDExICsyNzIsMTEgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlv
dXQoKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKHRvdGFsUmF3UGVyY2VudCkgeworICAgICAgICAgICAgaWYg
KHRvdGFsUGVyY2VudCkgewogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
ICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0
YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQo
KSAqICh0YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFBlcmNlbnQ7
CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhb
aV07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNp
b24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdo
dC50eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAg
ICAgICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dp
Y2FsSGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dM
b2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2Fs
SGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246
OmxheW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdo
dC5pc0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNl
IGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVy
Y2VudCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAg
ICAgIC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwot
ICAgICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2Vu
dFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNl
bnQsIDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBd
OwogICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAg
ICAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVp
Z2h0LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihk
aCwgKHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgx
MDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50
IHRvQWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFty
XS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmlu
ayB0aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRs
b29rIFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0Fk
ZCk7CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAg
ICAgZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dy
aWRbcl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3Rh
bFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAg
ICAgICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lv
biA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhh
c0JvcmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRo
KCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJv
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lk
dGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNa
ZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVm
dC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0
aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2Jv
dHRvbVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21S
aWdodC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAz
LTA5ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBh
cmUgaW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMt
MDkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24t
aW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gODAzODEpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5j
aGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotNDE0Y2FhYTJlZTA5ODIzZmNjNmIx
MjAwZDMwZWMxMjcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitjNmQ5MDU1MzQxYTk5MDQ5
MjljY2M0OTQ3NmM3YmQ5ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3Mv
cGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwMzgxKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDU4NQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0NCkgc2l6
ZSA5MTB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQg
W2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0OCkg
c2l6ZSA5MTB4NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAw
eDQgW2JnY29sb3I9IzAwMDAwMDdGXQorICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgMTAxeDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw1Mikgc2l6ZSA5MDB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw1Nikgc2l6ZSA4OTB4NApAQCAtNDksNyArNDksNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg1ODUKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODQpIHNp
emUgODQweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0
IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODgp
IHNpemUgODM1eDQKLSAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEw
MHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsOTIpIHNpemUgODI1eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsOTYpIHNpemUgODE1eDQKQEAgLTg0LDYxICs4NCw2MSBAQCBsYXllciBh
dCAoOCwxMjYpIHNpemUgMTAwMHgyMAogICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDApIHNp
emUgMTAwMHgyMAogICAgIFJlbmRlclRhYmxlU2VjdGlvbiB7VEJPRFl9IGF0ICgwLDApIHNpemUg
MTAwMHgyMAogICAgICAgUmVuZGVyVGFibGVSb3cge1RSfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAK
LSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMSkgc2l6ZSAxMXgxOCBbYmdjb2xv
cj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDAsMSkgc2l6ZSAxMngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJz
PTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4
CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDExLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9MSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQog
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjEsMSkgc2l6ZSAxM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0y
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyLDEpIHNpemUg
MTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgzNCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTMgcnM9MSBjcz0x
XQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzUsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDQ0LDEpIHNp
emUgMTV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NCBycz0xIGNzPTFdCisgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NSwxKSBzaXplIDE2eDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNTksMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz01IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDYxLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9NSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2OSwxKSBzaXplIDE3eDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNzEsMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDg2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9NyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4OCwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoOTYsMSkgc2l6ZSAyMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz04IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk4LDEpIHNpemUgMjB4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MTYsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05IHJzPTEgY3M9MV0K
KyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDExOCwxKSBzaXplIDEweDE4IFtiZ2Nv
bG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTkgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI2LDEpIHNp
emUgMjF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQorICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI4LDEpIHNpemUgMjJ4MTggW2JnY29sb3I9IzAw
MDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTQ3LDEpIHNpemUgMTB4
MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTEgcnM9MSBjcz0xXQorICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMTUwLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9MTEgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTU3LDEpIHNpemUgMjN4MTggW2Jn
Y29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTIgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMTYwLDEpIHNpemUgMjR4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0w
IGM9MTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTgwLDEwKSBzaXplIDEweDAgW2JnY29sb3I9
IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMTkwLDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTQg
cnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTg0LDEwKSBzaXpl
IDEweDAgW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQorICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTk0LDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAw
MDdGXSBbcj0wIGM9MTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjE1LDEpIHNpemUgMTB4MTgg
W2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTUgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMjE5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9MTUgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjI1LDEpIHNpemUgMjd4MTggW2JnY29s
b3I9IzAwMDAwMDdGXSBbcj0wIGM9MTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjI5LDEpIHNpemUgMjd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MTYgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjUyLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAw
RkYwMDdGXSBbcj0wIGM9MTcgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMjU2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTcgcnM9
MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMjYyLDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdG
XSBbcj0wIGM9MTggcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MjY2LDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTggcnM9MSBjcz0x
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMjkyLDEpIHNpemUgNzA4eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCisg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyOTYsMSkgc2l6ZSA3MDR4MTggW3I9MCBj
PTE5IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2Vy
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFl
QUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpT
ZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10
cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxW
ZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENs
a1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJ
TklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5
NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRT
ZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVG
NWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1
VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5
dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4
WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhX
YzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4
a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNK
OTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lY
djlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2
Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cv
YkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNkM1k5Y2Qza0g4
Ti91enZvMXRoTW5oQkFnT0MxRkNTaThWb0NFb0VqUUM3amhraGR4eVExYzhDOGtsdmdUa0xqaApF
Z2tRTnlCVkJVRkJGRlZDYlZvRkphVTBLYVNFa2xMeTRyd250bmZ0N2U4NXlURzdqc2ZPYU02YXgv
dDhSbHJQN3N3NVo1N244K3pNCm51K2VNOTZWclg1cExnUUlFQ0JBZ0FBQkFnUUlFTGdLQXF0WDRU
RThCQUVDQkFnUUlFQ0FBQUVDQkFZQkFjUTNBZ0VDQkFnUUlFQ0EKQUFFQ1YwMUFBTGxxMUI2SUFB
RUNCQWdRSUVDQUFBRUJ4UGNBQVFJRUNCQWdRSUFBQVFKWFRVQUF1V3JVSG9nQUFRSUVDQkFnUUlB
QQpBUUhFOXdBQkFnUUlFQ0JBZ0FBQkFsZE5RQUM1YXRRZWlBQUJBZ1FJRUNCQWdBQ0IyWlVJVms2
dVhHa1I5MTlGZ2EyNy9kbVdxOGp0Cm9RZ1FJRUNBQUFFQ0JDWVdjQVJrWWxDYkkwQ0FBQUVDQkFn
UUlFQmd2b0FBTXQvR1BRUUlFQ0JBZ0FBQkFnUUlUQ3dnZ0V3TWFuTUUKQ0JBZ1FJQUFBUUlFQ013
WEVFRG0yN2lIQUFFQ0JBZ1FJRUNBQUlHSkJRU1FpVUZ0amdBQkFnUUlFQ0JBZ0FDQitRSUN5SHdi
OXhBZwpRSUFBQVFJRUNCQWdNTEdBQURJeHFNMFJJRUNBQUFFQ0JBZ1FJREJmUUFDWmIrTWVBZ1FJ
RUNCQWdBQUJBZ1FtRmhCQUpnYTFPUUlFCkNCQWdRSUFBQVFJRTVnc0lJUE50M0VPQUFBRUNCQWdR
SUVDQXdNUUNBc2pFb0RaSGdBQUJBZ1FJRUNCQWdNQjhBUUZrdm8xN0NCQWcKUUlBQUFRSUVDQkNZ
V0VBQW1SalU1Z2dRSUVDQUFBRUNCQWdRbUM4Z2dNeTNjUThCQWdRSUVDQkFnQUFCQWhNTENDQVRn
OW9jQVFJRQpDQkFnUUlBQUFRTHpCUVNRK1RidUlVQ0FBQUVDQkFnUUlFQmdZZ0VCWkdKUW15TkFn
QUFCQWdRSUVDQkFZTDZBQURMZnhqMEVDQkFnClFJQUFBUUlFQ0V3c0lJQk1ER3B6QkFnUUlFQ0FB
QUVDQkFqTUZ4QkE1dHU0aHdBQkFnUUlFQ0JBZ0FDQmlRVUVrSWxCYlk0QUFRSUUKQ0JBZ1FJQUFn
ZmtDQXNoOEcvY1FJRUNBQUFFQ0JBZ1FJREN4Z0FBeU1hak5FU0JBZ0FBQkFnUUlFQ0F3WDBBQW1X
L2pIZ0lFQ0JBZwpRSUFBQVFJRUpoWVFRQ1lHdFRrQ0JBZ1FJRUNBQUFFQ0JPWUxDQ0R6YmR4RGdB
QUJBZ1FJRUNCQWdNREVBZ0xJeEtBMlI0QUFBUUlFCkNCQWdRSURBZkFFQlpMNk5ld2dRSUVDQUFB
RUNCQWdRbUZoQUFKa1kxT1lJRUNCQWdBQUJBZ1FJRUpndklJRE10M0VQQVFJRUNCQWcKUUlBQUFR
SVRDd2dnRTRQYUhBRUNCQWdRSUVDQUFBRUM4d1VFa1BrMjdpRkFnQUFCQWdRSUVDQkFZR0lCQVdS
aVVKc2pRSUFBQVFJRQpDQkFnUUdDK2dBQXkzOFk5QkFnUUlFQ0FBQUVDQkFoTUxDQ0FUQXhxY3dR
SUVDQkFnQUFCQWdRSXpCY1FRT2JidUljQUFRSUVDQkFnClFJQUFnWWtGQkpDSlFXMk9BQUVDQkFn
UUlFQ0FBSUg1QWdMSWZCdjNFQ0JBZ0FBQkFnUUlFQ0F3c1lBQU1qR296UkVnUUlBQUFRSUUKQ0JB
Z01GOUFBSmx2NHg0Q0JBZ1FJRUNBQUFFQ0JDWVdFRUFtQnJVNUFnUUlFQ0JBZ0FBQkFnVG1Dd2dn
ODIzY1E0QUFBUUlFQ0JBZwpRSURBeEFJQ3lNU2dOa2VBQUFFQ0JBZ1FJRUNBd0h3QkFXUytqWHNJ
RUNCQWdBQUJBZ1FJRUpoWVFBQ1pHTlRtQ0JBZ1FJQUFBUUlFCkNCQ1lMeUNBekxkeER3RUNCQWdR
SUVDQUFBRUNFd3NJSUJPRDJod0JBZ1FJRUNCQWdBQUJBdk1GQkpENU5pbnZPWG55Wk1xNkZFV0EK
QUFFQ0JBZ1FJRURndFFnSUlLOUZ5VElFQ0JBZ1FJQUFBUUlFQ0V3aUlJQk13bWdqQkFnUUlFQ0FB
QUVDQkFpOEZnRUI1TFVvV1lZQQpBUUlFQ0JBZ1FJQUFnVWtFVnJiNjVYSmJXam01Y3JtNzNYZVZC
YmJ1dnV5NHJuSTFIbzRBQVFJRUNCQWdRSURBWWdLT2dDem1aV2tDCkJBZ1FJRUNBQUFFQ0JKWVFF
RUNXd0xNcUFRSUVDQkFnUUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JF
cUEKQUFFQ0JBZ1FJRUNBd0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdB
QUJBZ1FJRUNDd21JQUFzcGlYcFFrUQpJRUNBQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFR
SUVDQ3dtSUlBczVtVnBBZ1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDCkJBZ1FJRUNBQUFFQ2l3
a0lJSXQ1V1pvQUFRSUVDQkFnUUlBQWdTVUVCSkFsOEt4S2dBQUJBZ1FJRUNCQWdNQmlBZ0xJWWw2
V0prQ0EKQUFFQ0JBZ1FJRUJnQ1FFQlpBazhxeElnUUlBQUFRSUVDQkFnc0ppQUFMS1lsNlVKRUNC
QWdBQUJBZ1FJRUZoQ1FBQlpBcytxQkFnUQpJRUNBQUFFQ0JBZ3NKaUNBTE9abGFRSUVDQkFnUUlB
QUFRSUVsaEFRUUpiQXN5b0JBZ1FJRUNCQWdBQUJBb3NKQ0NDTGVWbWFBQUVDCkJBZ1FJRUNBQUlF
bEJBU1FKZkNzU29BQUFRSUVDQkFnUUlEQVlnSUN5R0plbGlaQWdBQUJBZ1FJRUNCQVlBa0JBV1FK
UEtzU0lFQ0EKQUFFQ0JBZ1FJTENZZ0FDeW1KZWxDUkFnUUlBQUFRSUVDQkJZUWtBQVdRTFBxZ1FJ
RUNCQWdBQUJBZ1FJTENZZ2dDem1aV2tDQkFnUQpJRUNBQUFFQ0JKWVFFRUNXd0xNcUFRSUVDQkFn
UUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JFcUFBQUVDCkJBZ1FJRUNB
d0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdBQUJBZ1FJRUNDd21JQUFz
cGlYcFFrUUlFQ0EKQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFRSUVDQ3dtSUlBczVtVnBB
Z1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDQkFnUQpJRUNBQUFFQ2l3a0lJSXQ1V1pvQUFRSUVD
QkFnUUlBQWdTVUVCSkFsOFA0Y3E1NDhlZkxQOGJBZWt3QUJBZ1FJRUNCQWdNQWtBZ0xJCkpJdzJR
b0FBQVFJRUNCQWdRSURBYXhFUVFGNkxrbVVJRUNCQWdBQUJBZ1FJRUpoRVFBQ1poTkZHQ0JBZ1FJ
QUFBUUlFQ0JCNExRSXIKVy8xeXVRVlhUcTVjN203M1hXV0JyYnN2TzY2clhJMkhJMENBQUFFQ0JB
Z1FJTENZZ0NNZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRQprQ1h3ckVxQUFBRUNCQWdRSUVDQXdH
SUNBc2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBCnNw
aVhwUWtRSUVDQUFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdR
SUVDQkFnQUFCQWdTV0VMamkKM3dGWll0dFdKVUNBQUFFQ0JBZ1FJRUNBd0E0QlIwQjJjUGlDQUFF
Q0JBZ1FJRUNBQUlIZEZCQkFkbFBYdGdrUUlFQ0FBQUVDQkFnUQoyQ0VnZ096ZzhBVUJBZ1FJRUNC
QWdBQUJBcnNwSUlEc3BxNXRFeUJBZ0FBQkFnUUlFQ0N3UTBBQTJjSGhDd0lFQ0JBZ1FJQUFBUUlF
CmRsTkFBTmxOWGRzbVFJQUFBUUlFQ0JBZ1FHQ0hnQUN5ZzhNWEJBZ1FJRUNBQUFFQ0JBanNwb0FB
c3B1NnRrMkFBQUVDQkFnUUlFQ0EKd0E0QkFXUUhoeThJRUNCQWdBQUJBZ1FJRU5oTkFRRmtOM1Z0
bXdBQkFnUUlFQ0JBZ0FDQkhRSUN5QTRPWHhBZ1FJQUFBUUlFQ0JBZwpzSnNDQXNodTZ0bzJBUUlF
Q0JBZ1FJQUFBUUk3QkFTUUhSeStJRUNBQUFFQ0JBZ1FJRUJnTndVRWtOM1V0VzBDQkFnUUlFQ0FB
QUVDCkJIWUlDQ0E3T0h4QmdBQUJBZ1FJRUNCQWdNQnVDZ2dndTZscjJ3UUlFQ0JBZ0FBQkFnUUk3
QkFRUUhadytJSUFBUUlFQ0JBZ1FJQUEKZ2QwVW1GMXA0eXNuVjY2MHlKL3V2NmQvZXZlZnZwejdX
U3gzY3U2OWw3NGoxdG10YlkrUEdJOFJseXM5emozRFVvdjM4TXBxdzlXNApqYXZ4V0JrZU4yb1ll
NDdQTDlmMzl1VVcvVDZKYlYvdWNzOUZkODZyNCtMbHBxNGp5cmo0TWY2Y3RVUTljYmxuK1BkUC8y
U282VS9WCkRKL2RzNjNJdSsrZVYrQkZLL21TQUFFQ0JBZ1FTQ1BnQ0VpYVVTaUVBQUVDQkFnUUlF
Q0F3TjRYRUVEMi9veDFTSUFBQVFJRUNCQWcKUUNDTmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JR
U1F2VDlqSFJJZ1FJQUFBUUlFQ0JCSUl5Q0FwQm1GUWdnUUlFQ0FBQUVDQkFqcwpmUUVCWk8vUFdJ
Y0VDQkFnUUlBQUFRSUUwZ2dJSUdsR29SQUNCQWdRSUVDQUFBRUNlMTlBQU5uN005WWhBUUlFQ0JB
Z1FJQUFnVFFDCkFraWFVU2lFQUFFQ0JBZ1FJRUNBd040WEVFRDIvb3gxU0lBQUFRSUVDQkFnUUND
TmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JRU1EKdlQ5akhSSWdRSUFBQVFJRUNCQklJeUNBcEJt
RlFnZ1FJRUNBQUFFQ0JBanNmUUVCWk8vUFdJY0VDQkFnUUlBQUFRSUUwZ2dJSUdsRwpvUkFDQkFn
UUlFQ0FBQUVDZTE5QUFObjdNOVloQVFJRUNCQWdRSUFBZ1RRQ0FraWFVU2lFQUFFQ0JBZ1FJRUNB
d040WEVFRDIvb3gxClNJQUFBUUlFQ0JBZ1FDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNCVmEy
K21YdnQ2bERBZ1FJRUNCQWdBQUJBZ1F5Q0RnQ2ttRUsKYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpv
YlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSQpFQ0JB
Z0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1B
Z0pJaGltb2dRQUJBZ1FJCkVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJ
RUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUkKRU1nZ0lJQmttSUlhQ0JBZ1FJQUFB
UUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRQpC
SkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdB
QUJBZ1FJRUNCQUlJT0FBSkpoCkNtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JB
Z1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0UKQ0JBZ1FJQUFBUUlFTWdnSUlC
bW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJ
RQpDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNC
UVJFQUFLVEpvYlJJZ1FJQUFBUUlFCkNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4
YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkYKQkFTUUlvUFdKZ0VDQkFn
UUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NE
Z0FDUwpZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlh
Q0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiCkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JB
Z0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUMKQkFnUUlFQ0FRQkVC
QWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJ
RUNBQUFFQwpCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFB
UUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDClJRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNT
SVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUEKa21FS2FpQkFn
QUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JB
Z1VFUkJBaWd4YQptd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlv
UFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCCkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFR
SUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUIKQWdRSUVN
Z2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFB
R0FnUUlFQ0JBZ0FBQgpBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFn
UUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BCkFKSmhDbW9nUUlBQUFRSUVDQkFnVUVS
QUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb00KV3Bz
RUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JB
Z0FDQkRBSUNTSVlwcUlFQQpBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFB
a21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBCkFRSUVDQkRJSUNDQVpKaUNHZ2dR
SUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUEK
QVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5
S0MxU1lBQUFRSUVDQkFnUUNDRApnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFn
QUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLCkRGcWJCQWdRSUVDQUFBRUNC
RElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0th
aUIKQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFR
SUVDQkFnVUVSQUFDa3lhRzBTSUVDQQpBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZC
RVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBCkFBRUNSUVFFa0NLRDFp
WUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFn
UUlFQWcKZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUND
QVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQQppZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJ
RUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vCmdRQUJBZ1FJRUNC
QWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFw
TW1odEVpQkEKZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdR
SUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQQpnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFB
Z1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBCklJT0FBSkpo
Q21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFn
QUFCQWdRSUZCRVEKUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNS
UVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcApxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0
VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnClFJQUFB
UUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNB
Z2dHYWFnQmdJRUNCQWcKUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dR
QUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZwpRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JB
Z1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSCkVF
Q0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJ
RUNCQWdRSUFBZ1F3Q0FraUcKS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNC
QUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwUwpJRUNBQUFFQ0JBZ1F5Q0FnZ0dT
WWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdR
CklFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJB
RVFFQnBNaWd0VW1BQUFFQ0JBZ1EKSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpv
YlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVQpFUkJBaWd4YW13UUlFQ0JB
Z0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1B
Z0pJCmhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJ
RUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHQKRWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFB
UUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSQpFQ0JBZ0FBQkFrVUVC
SkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdB
QUJBZ1FJCkVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JB
Z1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUkKRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlC
bW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQwpTSVlwcUlFQUFR
SUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNC
UVJFQUFLVEpvCmJSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4
YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUUKQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFn
UUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRQpDQkFnUUND
RGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlh
Q0JBZ1FJQUFBUUlFCkNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JB
Z0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0MKQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVC
QWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreQphRzBT
SUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFB
UUlFTWdnSUlCbW1vQVlDCkJBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNT
SVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUMKQkFnUUlFQWdnNEFBa21FS2FpQkFn
QUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQwpC
QWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlv
UFdKZ0VDQkFnUUlFQ0FBSUVNCkFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFR
SUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXAKTW1odEVpQkFnQUFCQWdRSUVN
Z2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFB
RwpBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFn
UUlFQ0FRQkVCQWFUSW9MVkpnQUFCCkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVS
QUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUIKQWdRSUZCRVFRSW9NV3Bz
RUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JB
Z0FDQgpEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFB
a21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBCktUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dR
SUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWcKQmdJRUNCQWdRSUFB
QVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5
S0MxU1lBQQpBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFn
QUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBCkFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNC
RElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUEKZ1F3Q0FraUdL
YWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFR
SUVDQkFnVUVSQQpBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZC
RVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tCm9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFp
WUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUEKQUFFQ0JB
Z1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUND
QVpKaUNHZ2dRSUVDQQpBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJ
RUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBCkFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNC
QWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkUKUUFB
cE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdR
SUVDQUFBRUNCRElJQ0NBWgpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFB
Z1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKCmdBQUJBZ1FJRUNCQUlJT0FBSkpo
Q21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkEK
Z0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNS
UVFFa0NLRDFpWUJBZ1FJRUNCQQpnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0
VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRClJFQUFLVEpvYlJJZ1FJQUFB
UUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNB
Z2cKR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dR
QUJBZ1FJRUNCQWdFQVJBUUdreUtDMQpTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JB
Z1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnClFJQUFBUUlFQ0JRUkVF
Q0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJ
RUNCQWcKUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNC
QUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZwpVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dT
WWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJCklCbW1vQVlDQkFn
UUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNGWTZXeGtB
QUJkcFNVUkIKVkJBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFC
QWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdV
RVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVD
QkFnUUNDRGdBQ1MKWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJ
SUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYgpCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdB
Z1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDCkJBZ1FJ
RUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFD
a3lhRzBTSUVDQUFBRUMKQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNC
QWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJRUNCQWdB
Q0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBCmtt
RUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVD
QUFBRUNCQWdVRVJCQWlneGEKbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFK
RkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJBUUdreUtD
MVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFC
CkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJ
Q0NBWnBxQUdBZ1FJRUNCQWdBQUIKQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlC
QUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJQUFBUUlF
Q0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFR
SW9NCldwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJB
Z1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUEKQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJ
RUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JESUlDQ0Fa
SmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNC
QWdRSUFBCkFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdF
QVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0QKZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1t
aHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDSwpERnFiQkFnUUlF
Q0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3
Q0FraUdLYWlCCkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21v
Z1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FB
QkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpBQUVDUlFR
RWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1B
QUFFQ0JBZ1FJRUFnCmc0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlF
Q0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdn
R2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltbwpnUUFC
QWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJ
RkJFUUFBcE1taHRFaUJBCmdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tE
RnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZbUFRSUVD
QkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQQpJ
SU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdo
b0lFQ0JBZ0FBQkFnUUlGQkVRClFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlF
Q0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFnUUlCQUVR
RUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJ
ZwpRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FB
QkFnUXlDQWdnR2FhZ0JnSUVDQkFnClFJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdK
SWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZUXBxSUVD
QUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlF
Q0JRUgpFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFp
ZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHCkthaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFC
QWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFMKSUVDQUFBRUNCQWdR
eUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1v
QVlDQkFnUQpJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVD
QkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRCklFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFS
RUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJCQWlneGFt
d1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlF
Q0FBSUVNQWdKSQpoaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdB
Q1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNC
QWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkKRUNCQWdB
QUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFU
SW9MVkpnQUFCQWdRSQpFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVD
QUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJ
RU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUMKU0lZ
cHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFC
QWdRSUVDQlFSRUFBS1RKbwpiUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdV
RVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBQUlFTUFyUHZmdmU3YlRhYnRiVzF0YmErdmo3VXRMVzExVlpYVjl2NTgrZGIK
ZkI2WHMyZlB0dE9uVDErNExaWjNJVUNBQUFFQ0JBZ1FlTFZBN0VldHJLd00rMWp4K2ZqeDZpWGRR
bUI2Z1hQbnpnMzc4T1AzWU96cgpqL3YxNHo1KzNEZGV4djM5K0RydTMvNzF1TXg0L2Roamo3V2Ji
NzU1L1BKVjE3SGRlS3p0bDdHZXVON2MzR3l6alkyTjlwYTN2R1Y0CnNBZ1Y4WUR4RVN2SEFuLzg0
eC9iZmZmL3J2M2JmNjIzWHo2eXIvM1BZN1Ayd3RrSUtuM0RrVTM2aHRwTmg3Yy9oczhKRUNCQWdB
QUIKQXZVRXp2Y2RvOWp2NnZ0UjE4MDIybTAzbkduditjdldQdnJlQSszTnR4NGFmdEViTzNmYmQv
enFJZWw0TndUR3dCRFhzZk1mKy9TeApIeDlmdi9qaWkrMmxsMTVxYjNqREc5cng0OGN2SEdTSTc4
UHhJNEpCWEdMNU1ZRE0rejU5NFlVWDJ1dGYvL3BMdGhIcngzcFJ3L2IxCjQvYTR4TzIvL3ZXdjJ5
d0t1ZjMyMjRjSDI3N2dtVE5uMm4zMzNkZis3a2NQdGgvOSs5SDIwTE0zdGYySDk3Y1AvdTFON2M0
VDE3VWoKaDE0NUF0STNPSXNIT3RlUGx2UW5WZXRoYW1YMjhuVi81TGExMGg4d2tsUi8wUFZZNWR4
V0I0a0d6N1dWZUpMMmo3alordng4LzNqKwplUDN3K3Vubmg1K2Y4VHB3TGU0L3JQWFJiZmFkbmRq
Zk9YM21mUHZQM3ozZmZuN2ZrKzAvN24ycDNmL0ljKzJ6SHozWFB2RHU0MjNmCnZuM0R6bUZmeklY
QVpBS3hnei91NU1kMTdPakhSNFNRdU1UMUk0ODhNbnovM1hubm5jT1J1ZkhCWS85L1hIZThiYnpl
bmczRzI1NTgKOHNraE80eGZqOWZ6dGhIM2ovZEZUYWRPbldxelNFU1JkT0lKTVJZUTRlUGhoeDl1
Ly9EVCs5b1BIamplZm5QbTFyWnkwNng5NklPMwp0SS9lZGF3ZDJyL1dRMGZmV2kvNFhOOVF6eDZ0
UCsvNlAvMVFZd1NRZnQxYmFXdjkvdFgrak94WExYNHBzTldYNjFFbEZ1eGY5L1dHCjI3YmEyZjZK
OWZuNS92SDg4ZnJoOWRQUER6OC9yOVg5aDFkMmk0YjltZmhkOHB0dk85d08zbmlnL2YwLy9xRTk4
TXkrMW43MlpIdlQKRzA2M085NTZwTzNmdjMvWTkrcUx1UkNZUkNCMjdHTW5QejdpYUVaOEhkZXhi
ejkreE5zcGZ2bkxYN1lqUjQ2MEV5ZE9ERWZreG9BUgo2NDJmWDZtZ2VFdkcrTGFOS3kwN2JqZXU0
eEkxUlBZWVRzR0tMK0xKRUE4Y0JjZHBWNy80eFMvYXp4OWNiYi9aZUhOYjZVK2dvMGYzCnRadXVY
eCtlTUp2OW1SVlBydDVtRHhUeFV0SGFtWjR3K3ROckNCcXJzOGdpdzB0SVcrMEx4dHRGdHZyOXNY
U3MyNjk2K0Fpa2xkYlAKQU90ZnIxaWZuKzhmengrdkgvM0YxT3Vubng5K2ZsNmIrdy9ETDFramhR
eVhsMys1ZXZ6b2VqdHkvR0I3WnJiV0huanF4dmFEZjNtNgovZFh0eDRlZHQ5ZTZBemR1MFRXQnl3
bU1BU1N1eC9BUjEzR1FJYjdYNHBTc0NBN1BQUE5NKzlXdmZ0V3V1KzY2ZHNzdHQxd0l3aGVICmp6
aHQ2M3ZmKzE3NzdHYy8rNnFIamJkdlhMeDhMUFROYjM2emZlcFRuMnFIRGgyNnNNNjRYRnhIQ0lu
TUVldjNzNmRXMnZQUFB6OFUKRWtzLzk5eHp3MGU4d2VUaEY5L1VWby8xSjgreC9lM1lkZXZ0OGVk
YmUrcUZyWDRFWkxXdDlaQXhQTS82QVkyTmZnUWpnczFtLy9WbApISUpzWitNSHlHcUxNN0hpNjlY
ekw2ZXZjeEZDdHZyN1RPS0IrbTFuenNVYjNmdWJVWG9vc1Q0LzN6K2VQMTQvdkg3NitlSG41N1c2
Ci94QW5lS3lzRG5zNHd4a2ZzVy96NVBOYjdkaVIyYkRmODF6ZjMvblgzNjhPTzJCeDFzbjRpOS9Z
SlhJaHNLekE5Z0F5dnRGN1BBSVMKcDEvRi9ZY1BIeDQrbm4zMjJSYnY0NGo5LzZOSGoxNElJV01O
UC83eGo0Y3dFYWRhZmU1em54dHZ2bkE5YnZmQ0RhOTg4cDN2ZktmOQo1Q2MvR1VMTHh6NzJzWXZ2
SG1xSXg0enNNVHR3NE1EdzVwUklSSkdPb3FpNDQrbW5uMjVQclA5MU8zSjBmN3ZoMkw0ZVFQYjFO
NSt2CnRIOSt1S2VXMWMxK2FsWEVqNWVEUjV4VUZVKzBlSS9IYW4vUHgvcStuclRhWmo4RnF3ZVEv
akhyeVgrdGg1UE56WDQ0cUgrYzcrRWsKTU9MVXJZMjQ3WlVqSTlibjUvdkg4OGZyaDlkUFB6Lzgv
THdXOXgvNnJ0UHdpOW40TGUrNXN4dDlIeWVPZ216MkFMTGVWdUpVa0g0Ngp6TzlmT05yaU5QZlkz
eEpBWHJWLzZvWWxCTVlBRXVFZ1BzWTNvY2MrZlh6RS9mRS9ZY1gzWGV6elJ3Z2U5L2tQSGp3NDNQ
N1FRdysxCnIzLzk2eTJ1eDFPbXh2ZVFiQzh0dG5XcDIyT2RKNTU0b24zMXExOXRQL3poRDlzWHZ2
Q0Y5cmEzdlczWVZoejFpSU1jY1dRbHNzY3MKQ29qRE01Rkk0aEROV0Z4OHZmOWdhOGY2NGNNNCtu
SDg2SUVXQmE3M01ER2I5Vk94ZXRCWVdlMUhNM29SL1FCUER4TG4ycXkvWXV6cgp6N0cxbmlUaU9N
ZGEvM1ZtdlAwOGJsL3ZUN1o0YzlabVgyNnpQeW5QOTQ4SUlHYzMrbmxxZlducjgvUDk0L25qOWNQ
cnA1OGZmbjVlCnEvc1BzYit6Mm5md3RzNzE4TkYvS2J1eGNhYWRQZjFTTzlOUE5WOVoyV2puTjli
YmMvM3NqOWh4aTMydDJPZUsvUzhYQWxNSWpBRWsKcmlPQWpLZEpqVUVpYmh0UCs0djNZRVFJaUVz
RWd2aTQ5OTU3MjllKzlyVlhsZkw0NDQrLzZyWUlNSmU2UGNMMWVMbi8vdnZibDcvOAo1ZmJGTDM2
eHZlOTk3eHNDVU5ReXZ1OThGc1ZFQ0Jtdm8vQW9PZ3A3L2V6eHRuN2c1bmIwNEw1MjlIQVBJSWNP
dHdQNys3SjkrVGhWCkl0SitYN3dmd1hqNWlNWjZQK2RxdlQrWjRtakhFRHo2NXhGVVpxK2NtdFV6
UjMvaTlZKytUaHlrSEFMSjJjMjJzV1g5ZUVIaTUvdkgKODhmcmg5ZFBQei84L096N0RkZmcvc05h
LzZWcy82OTUrbjVSMy9uclIwRE9ubGx0cDlmN2YvSnorc1crNzdQVk5nN08ydlZubiszNwpSTWVH
ZlM0QlpOeFZkVDJGUU96Y3h6NThmTVJPL25qa1k3dzlqb2lNWVNUZW94SDcvckZNWE9MMkQzM29R
KzExcjN0ZCs4WTN2dEYrCis5dmZEcmZIUDNIRTVPSkxySHVwMjdjSDZoTW5UclRQZi83ekY0NkFq
TFhGWThiMy9uQUVKRFlTSzhWMUxCQnZFTG54eGh2YjY1NzQKWFR0ejRLN2hQUitIRHUxdlIvdHBX
SWNPSCtwUG5uNnFVTHkzSXdKSXI2b0gvZjZtOGg1TSt0ZnhFVytpak45bXh4SEgrQzk2MS9xZgpE
WW5USW1QWnpmNmJnRmgrdUk3d3NqWHJoeWl0ejgvM2orZVAxdyt2bjM1KytQbDU3ZTQvOU4yZnZ0
OHo2NmVhOTQrTi9lMzBTK3Z0CnhkUDlESk4rU3ZycGZoams0SUcxZG1MbDJmNmUyemRlQ0NEakRt
QmYxWVhBVWdKajBJajkrUEg3YXJ3dGZza2RuOGYrZlJ5bGlEL0IKTVFhUVdEYldpY3M3M3ZHTzlw
V3ZmS1g5N0djL2E5LzYxcmN1bkIxMWNXSGpnWXVMYjQ4c0VXOXUvOHhuUHRNKzhwR1BES2VCamR1
UAp4NDg2WXBsWWZ3Z2d3eWV2bkJjMkZ2SFd0NzYxM2ZyUVQ5dWpweDVvNnpkK3NCM29QeGtQOXZC
eDZMcElRNjJ2L1BKUmpQaGZIK0tvClJvU0tmbVpXaXo5UkdPR2t2dzFrT0JleWg1eCtOT1RsOTRM
RVVZOSt3R000K3RIUHZCb09VY2E2RzlibjUvdkg4OGZyaDlkUFB6LzgKL0x5Rzl4LzY3MTc3cWVr
di80SjFzLzluUEd2cmZXZXAvOEd6YzJkUHR4ZlhaKzNJQ3crMDk5OStmbmpUNy9hZHY3NmFDNEZK
Qk9JbwpSMXhpWno5MjlHUG5md3doWXdDSjA2M3V1dXV1QzZkZ2pjdU02OFQxSno3eGlmYmhEMys0
ZmZ2YjM3N2trWTU0TS91bGpvQjg4cE9mCmJKLys5S2VIRUJMYkhjTkhaSXZZYnB4NkdDRmt5QjNq
cVZmaitZaFJlQlQ5Z1E5OG9EMzQ0SU50ODdmM3RkT1A5amRRSGYrYjRROEcKOXFPSlEvaVk5ZWRW
aEl2Ky9xcitCd2o3RTY0SGluNTJWbHZyS1NPQ1NEOEEwbytDOUk5K3ZSTFgvWmtaWWVOQXY3K2Y0
ZFUyZW5DSgpRQkpIUXM1R2lMRStQOTgvbmo5ZVA3eCsrdm5oNStjMXV2OFFmMXg1RENBYlBZREVF
WkdOMC8wL2xZajlvTWZ1Yis4ODhyL3QzWGU4CnZkMXd3dzNEamxqc2E3a1FtRW9nZHZESGd3aXh6
ZGo1SDYvanZqanlFZjhONzgwMzM5emU5YTUzRFNGZ1dPQ1ZmMktaY1oyNEtkNksKOGFVdmZXbkhi
ZVB5eDQ0ZHV4Qmd4dHZpZWx3K3RqVmU0dlB4WXp3Q01weUNGV2xwL0JqVFVoUVFmMkw5NHgvL2VO
djQvdmZiSTMvOApwM2JxM2tmYTJUZS90NTM3aS9lMTYyODUzdGI2KzB3MjRnOS85RXM4VGh6Wk9O
L2Z6N0t2UDUvT1JmTHZmVy8wNEJHQkpRd2lsTVFUCk1sTEhtYjVzUERQalRWcG4rbTN4QndtdHo4
LzNqK2VQMXcrdm4zNSsrUGw1cmU0L0RIR2k3ODhNKzBSOUgrbXAvenZWbnZydi9rdmMKUHp6UTdy
enVwZmIrZDc2dDNYYmJiUmYrUmtLOEtkaUZ3RlFDNDA1K2hKRDQzb3FkL2ZITjZISHFWZnpuVXJH
Ly81NzN2R2Y0cjNqSAp4NDMxWXIvLzR1dngva3RkeHhHUUt3WG83ZHVMejZPdWVQejRQSzVuVVZ4
OHhJUEg5WGlKTzkvKzlyY1BEeER2akgvMDBVZmJpLy96CnZmYk1nOTlzai9kR3hnMXZUMHZqdXE0
SkVDQkFnQUFCQWxVRjRxeVMrSjlEYjczKytuYnI3YmUyRXlmdTZoOG4ydlg5NjloeEcvZTkKcXZy
b2UzcUIyQytQUzN4dnhjNSsvSWRTOFJIaEkvN1hxamlpY2NjZGR3eEhRQ0tjWEh3Wjkrc3Z2djFT
WDhmN1BDNjFqVXN0Rzl1TgpqNmhwREVkUjR5eitLNjc0WXlRUk9MYWZ6eld1RUUrWWVMTktCSkJU
cDA0TnpjUURqTWxuKzFHVFN6Mncyd2dRSUVDQUFBRUNWUVRpCkY3T3hieFNubVVRSWlULzBGcWVz
eEU1YjNEYnVJRmJ4ME9mVkVZaWQrKzA3K21NQWlVZC80eHZmT0h3UHh2ZGw3UE5QY1Zsa094ZUgK
ajhnZS93OU1NeE02S3RqVGxRQUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86072</attachid>
            <date>2011-03-17 11:07:49 -0700</date>
            <delta_ts>2011-03-17 11:15:30 -0700</delta_ts>
            <desc>Fixed for mac 32 bit</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>56924</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBpbmxpbmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFu
aW0KIAogc3RhdGljIGlubGluZSBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2Uq
LCBjb25zdCBMZW5ndGgmIGZyb20sIGNvbnN0IExlbmd0aCYgdG8sIGRvdWJsZSBwcm9ncmVzcykK
IHsgIAotICAgIHJldHVybiB0by5ibGVuZChmcm9tLCBwcm9ncmVzcyk7CisgICAgcmV0dXJuIHRv
LmJsZW5kKGZyb20sIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpOwogfQogCiBzdGF0aWMg
aW5saW5lIExlbmd0aFNpemUgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNv
bnN0IExlbmd0aFNpemUmIGZyb20sIGNvbnN0IExlbmd0aFNpemUmIHRvLCBkb3VibGUgcHJvZ3Jl
c3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkocmV2aXNpb24gODAzODEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlrIENhYmFuaWVyIChjYWJhbmllckBh
ZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMwLDcgKzMxLDYgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExlbmd0aCA9IC0xOwotY29uc3QgaW50
IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGludCBpbnRNYXhGb3JMZW5ndGggPSAw
eDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQgaW50CiBjb25zdCBpbnQgaW50TWlu
Rm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWluIHZhbHVlIGZvciBhIDI4LWJpdCBp
bnQKIApAQCAtNTIsMzQgKzUyLDQwIEBAIHB1YmxpYzoKICAgICBMZW5ndGgoaW50IHYsIExlbmd0
aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDogbV9pbnRWYWx1ZSh2KSwgbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAgICAgewotICAgICAgICBBU1NFUlQo
dCAhPSBQZXJjZW50KTsKKyAgICB9CisgICAgCisgICAgTGVuZ3RoKGZsb2F0IHYsIExlbmd0aFR5
cGUgdCwgYm9vbCBxID0gZmFsc2UpCisgICAgOiBtX2Zsb2F0VmFsdWUodiksIG1fcXVpcmsocSks
IG1fdHlwZSh0KSwgbV9pc0Zsb2F0KHRydWUpCisgICAgeyAgICAgICAgICAgIAogICAgIH0KIAog
ICAgIExlbmd0aChkb3VibGUgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKLSAgICAg
ICAgOiBtX3F1aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkKLSAgICB7Ci0gICAg
ICAgIGlmIChtX3R5cGUgPT0gUGVyY2VudCkKLSAgICAgICAgICAgIG1faW50VmFsdWUgPSBzdGF0
aWNfY2FzdDxpbnQ+KHYqcGVyY2VudFNjYWxlRmFjdG9yKTsKLSAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICBtX2lzRmxvYXQgPSB0cnVlOyAgICAgICAgICAgIAotICAgICAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOwotICAgICAgIH0KKyAgICAgICAgOiBtX3F1
aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdCh0cnVlKQorICAgIHsgICAgICAgICAgIAorICAg
ICAgICBtX2Zsb2F0VmFsdWUgPSBzdGF0aWNfY2FzdDxmbG9hdD4odik7ICAgIAogICAgIH0KIAog
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMZW5ndGgmIG8pIGNvbnN0IHsgcmV0dXJuIChnZXRG
bG9hdFZhbHVlKCkgPT0gby5nZXRGbG9hdFZhbHVlKCkpICYmIChtX3R5cGUgPT0gby5tX3R5cGUp
ICYmIChtX3F1aXJrID09IG8ubV9xdWlyayk7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
TGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgpICE9IG8uZ2V0RmxvYXRW
YWx1ZSgpKSB8fCAobV90eXBlICE9IG8ubV90eXBlKSB8fCAobV9xdWlyayAhPSBvLm1fcXVpcmsp
OyB9CiAKKyAgICBjb25zdCBMZW5ndGgmIG9wZXJhdG9yKj0oZmxvYXQgdikKKyAgICB7ICAgICAg
ICAKKyAgICAgICAgaWYgKG1faXNGbG9hdCkKKyAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0PihtX2Zsb2F0VmFsdWUqdik7CisgICAgICAgIGVsc2UgICAgICAgIAor
ICAgICAgICAgICAgbV9pbnRWYWx1ZSA9IHN0YXRpY19jYXN0PGludD4obV9pbnRWYWx1ZSp2KTsK
KyAgICAgICAgCisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgCiAgICAgaW50IHZh
bHVlKCkgY29uc3QgewotICAgICAgICBBU1NFUlQodHlwZSgpICE9IFBlcmNlbnQpOwotICAgICAg
ICByZXR1cm4gcmF3VmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIGdldEludFZhbHVlKCk7CiAgICAg
fQogCi0gICAgaW50IHJhd1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gZ2V0SW50VmFsdWUoKTsgfQot
Ci0gICAgZG91YmxlIHBlcmNlbnQoKSBjb25zdAorICAgIGZsb2F0IHBlcmNlbnQoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKHR5cGUoKSA9PSBQZXJjZW50KTsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4ocmF3VmFsdWUoKSkgLyBwZXJjZW50U2NhbGVGYWN0b3I7Cisg
ICAgICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCk7CiAgICAgfQogCiAgICAgTGVuZ3RoVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGVuZ3RoVHlwZT4obV90eXBlKTsgfQpA
QCAtOTQsMTggKzEwMCwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCghdmFsdWUgfHwgdHlwZSgpICE9IFBlcmNlbnQpOwog
ICAgICAgICBzZXRWYWx1ZShGaXhlZCwgdmFsdWUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0VmFs
dWUoTGVuZ3RoVHlwZSB0LCBkb3VibGUgdmFsdWUpCisgICAgdm9pZCBzZXRWYWx1ZShMZW5ndGhU
eXBlIHQsIGZsb2F0IHZhbHVlKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdDsKLSAgICAgICAg
bV9mbG9hdFZhbHVlID0gdmFsdWU7CisJIG1fZmxvYXRWYWx1ZSA9IHN0YXRpY19jYXN0PGZsb2F0
Pih2YWx1ZSk7CiAgICAgICAgIG1faXNGbG9hdCA9IHRydWU7ICAgIAogICAgIH0KIAotICAgIHZv
aWQgc2V0VmFsdWUoZG91YmxlIHZhbHVlKQorICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQgdmFsdWUp
CiAgICAgewogICAgICAgICAqdGhpcyA9IExlbmd0aCh2YWx1ZSwgRml4ZWQpOwogICAgIH0KQEAg
LTExOSw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAg
ICAgICAgICAgICAgaWYgKHJvdW5kUGVyY2VudGFnZXMpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kKG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjAp
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWUgKiByYXdWYWx1ZSgpIC8gKDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGludD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCk7CiAgICAgICAgICAgICBjYXNlIEF1
dG86CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlOwogICAgICAgICAgICAgZGVmYXVs
dDoKQEAgLTEzNSw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6
CiAgICAgICAgICAgICAgICAgaWYgKHJvdW5kUGVyY2VudGFnZXMpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kKG1heFZhbHVlICogcGVyY2VudCgpIC8g
MTAwLjApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWUgKiByYXdWYWx1ZSgpIC8g
KDEwMCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCk7CiAgICAgICAgICAgICBj
YXNlIEF1dG86CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJldHVybiAw
OwpAQCAtMTU2LDEwICsxNjEsMTYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAg
Ym9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPT0gdW5kZWZpbmVk
TGVuZ3RoOyB9Ci0gICAgYm9vbCBpc1plcm8oKSBjb25zdCB7IHJldHVybiAhZ2V0SW50VmFsdWUo
KTsgfQotICAgIGJvb2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPiAw
OyB9Ci0gICAgYm9vbCBpc05lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUoKSA8IDA7
IH0KKyAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKSA9PSB1bmRl
ZmluZWRMZW5ndGg7IH0KKyAgICBib29sIGlzWmVybygpIGNvbnN0IAorICAgIHsgCisgICAgICAg
IGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICByZXR1cm4gIW1fZmxvYXRWYWx1ZTsgCisgICAg
ICAgIAorICAgICAgICByZXR1cm4gIW1faW50VmFsdWU7CisgICAgfQorICAgIGJvb2wgaXNQb3Np
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsb2F0VmFsdWUoKSA+IDA7IH0KKyAgICBib29sIGlz
TmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPCAwOyB9CiAKICAgICBi
b29sIGlzQXV0bygpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdXRvOyB9CiAgICAgYm9vbCBp
c1JlbGF0aXZlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFJlbGF0aXZlOyB9CkBAIC0xNjcs
NyArMTc4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNGaXhlZCgpIGNvbnN0IHsgcmV0dXJuIHR5
cGUoKSA9PSBGaXhlZDsgfQogICAgIGJvb2wgaXNJbnRyaW5zaWNPckF1dG8oKSBjb25zdCB7IHJl
dHVybiB0eXBlKCkgPT0gQXV0byB8fCB0eXBlKCkgPT0gTWluSW50cmluc2ljIHx8IHR5cGUoKSA9
PSBJbnRyaW5zaWM7IH0KIAotICAgIExlbmd0aCBibGVuZChjb25zdCBMZW5ndGgmIGZyb20sIGRv
dWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICBMZW5ndGggYmxlbmQoY29uc3QgTGVuZ3RoJiBmcm9t
LCBmbG9hdCBwcm9ncmVzcykgY29uc3QKICAgICB7CiAgICAgICAgIC8vIEJsZW5kIHR3byBsZW5n
dGhzIHRvIHByb2R1Y2UgYSBuZXcgbGVuZ3RoIHRoYXQgaXMgaW4gYmV0d2VlbiB0aGVtLiAgVXNl
ZCBmb3IgYW5pbWF0aW9uLgogICAgICAgICBpZiAoIWZyb20uaXNaZXJvKCkgJiYgIWlzWmVybygp
ICYmIGZyb20udHlwZSgpICE9IHR5cGUoKSkKQEAgLTE4MSwxMyArMTkyLDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJlc3VsdFR5cGUgPSBmcm9tLnR5cGUoKTsKICAgICAgICAgCiAgICAgICAg
IGlmIChyZXN1bHRUeXBlID09IFBlcmNlbnQpIHsKLSAgICAgICAgICAgIGRvdWJsZSBmcm9tUGVy
Y2VudCA9IGZyb20uaXNaZXJvKCkgPyAwLiA6IGZyb20ucGVyY2VudCgpOwotICAgICAgICAgICAg
ZG91YmxlIHRvUGVyY2VudCA9IGlzWmVybygpID8gMC4gOiBwZXJjZW50KCk7CisgICAgICAgICAg
ICBmbG9hdCBmcm9tUGVyY2VudCA9IGZyb20uaXNaZXJvKCkgPyAwLmYgOiBmcm9tLnBlcmNlbnQo
KTsKKyAgICAgICAgICAgIGZsb2F0IHRvUGVyY2VudCA9IGlzWmVybygpID8gMC5mIDogcGVyY2Vu
dCgpOwogICAgICAgICAgICAgcmV0dXJuIExlbmd0aChmcm9tUGVyY2VudCArICh0b1BlcmNlbnQg
LSBmcm9tUGVyY2VudCkgKiBwcm9ncmVzcywgUGVyY2VudCk7CiAgICAgICAgIH0gCiAgICAgICAg
ICAgICAKLSAgICAgICAgZG91YmxlIGZyb21WYWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAwIDogZnJv
bS52YWx1ZSgpOwotICAgICAgICBkb3VibGUgdG9WYWx1ZSA9IGlzWmVybygpID8gMCA6IHZhbHVl
KCk7CisgICAgICAgIGZsb2F0IGZyb21WYWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAwLmYgOiBmcm9t
LnZhbHVlKCk7CisgICAgICAgIGZsb2F0IHRvVmFsdWUgPSBpc1plcm8oKSA/IDAuZiA6IHZhbHVl
KCk7CiAgICAgICAgIHJldHVybiBMZW5ndGgoZnJvbVZhbHVlICsgKHRvVmFsdWUgLSBmcm9tVmFs
dWUpICogcHJvZ3Jlc3MsIHJlc3VsdFR5cGUpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAkocmV2aXNpb24gODAzODEp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1ICszMCwxNSBA
QCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gVHJhbnNsYXRlCiAgICAgICAgIHJldHVy
biB0aGlzOwogICAgIAogICAgIGlmIChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHJldHVybiBU
cmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShMZW5ndGgobV94LnR5cGUoKSkuYmxl
bmQobV94LCBwcm9ncmVzcyksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTGVuZ3RoKG1feS50eXBlKCkpLmJsZW5kKG1feSwgcHJvZ3Jlc3MpLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0
aChtX3oudHlwZSgpKS5ibGVuZChtX3osIHByb2dyZXNzKSwgbV90eXBlKTsKKyAgICAgICAgcmV0
dXJuIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKExlbmd0aChtX3gudHlwZSgp
KS5ibGVuZChtX3gsIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChtX3kudHlwZSgp
KS5ibGVuZChtX3ksIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChtX3oudHlwZSgp
KS5ibGVuZChtX3osIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpLCBtX3R5cGUpOwogCiAg
ICAgY29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBzdGF0aWNfY2Fz
dDxjb25zdCBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qPihmcm9tKTsKICAgICBMZW5ndGgg
ZnJvbVggPSBmcm9tT3AgPyBmcm9tT3AtPm1feCA6IExlbmd0aChtX3gudHlwZSgpKTsKICAgICBM
ZW5ndGggZnJvbVkgPSBmcm9tT3AgPyBmcm9tT3AtPm1feSA6IExlbmd0aChtX3kudHlwZSgpKTsK
ICAgICBMZW5ndGggZnJvbVogPSBmcm9tT3AgPyBmcm9tT3AtPm1feiA6IExlbmd0aChtX3oudHlw
ZSgpKTsKLSAgICByZXR1cm4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUobV94
LmJsZW5kKGZyb21YLCBwcm9ncmVzcyksIG1feS5ibGVuZChmcm9tWSwgcHJvZ3Jlc3MpLCBtX3ou
YmxlbmQoZnJvbVosIHByb2dyZXNzKSwgbV90eXBlKTsKKyAgICByZXR1cm4gVHJhbnNsYXRlVHJh
bnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUobV94LmJsZW5kKGZyb21YLCBzdGF0aWNfY2FzdDxmbG9h
dD4ocHJvZ3Jlc3MpKSwgbV95LmJsZW5kKGZyb21ZLCBzdGF0aWNfY2FzdDxmbG9hdD4ocHJvZ3Jl
c3MpKSwgbV96LmJsZW5kKGZyb21aLCBzdGF0aWNfY2FzdDxmbG9hdD4ocHJvZ3Jlc3MpKSwgbV90
eXBlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbihpbnQg
ZQogCiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBjZWxsTG9naWNhbFdpZHRoID0gY2VsbC0+
c3R5bGVPckNvbExvZ2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
V2hhdCBpcyB0aGlzIGFyYml0cmFyeSB2YWx1ZT8KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNl
bGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSA+IDMyNzYwKQorICAgICAgICAgICAgICAgICAgICBp
ZiAoY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gMzI3NjApCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjZWxsTG9naWNhbFdpZHRoLnNldFZhbHVlKDMyNzYwKTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNOZWdhdGl2ZSgpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgwKTsKQEAgLTEwNSwxMyArMTA1LDEzIEBA
IHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1uTGF5
b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVl
KCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29sdW1u
TGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnZhbHVl
KCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVlKCkpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdpZHRo
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNh
c2UgUmVsYXRpdmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTmVlZCB0byB1
bmRlcnN0YW5kIHRoaXMgY2FzZSBhbmQgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBjb21wYXJl
IHZhbHVlcwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYXJlIG5vdCBuZWNlc3Nh
cmlseSBvZiB0aGUgc2FtZSB0eXBlLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxM
b2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpICYm
IGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgucmF3
VmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC5p
c0F1dG8oKSB8fCAoY2VsbExvZ2ljYWxXaWR0aC5pc1JlbGF0aXZlKCkgJiYgY2VsbExvZ2ljYWxX
aWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExv
Z2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMjMyLDE2ICsyMzIsMTYgQEAgdm9pZCBBdXRvVGFibGVMYXlv
dXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogCiAgICAgLy8gV2Ugc3Vic3RpdHV0ZSAwIHBlcmNlbnQg
YnkgKGVwc2lsb24gLyBwZXJjZW50U2NhbGVGYWN0b3IpIHBlcmNlbnQgaW4gdHdvIHBsYWNlcyBi
ZWxvdyB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgogICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhl
IDAlIGNhc2VzIHByb3Blcmx5LgotICAgIGNvbnN0IGludCBlcHNpbG9uID0gMTsKKyAgICBjb25z
dCBmbG9hdCBlcHNpbG9uID0gMSAvIDEyOC4wZjsKIAotICAgIGludCByZW1haW5pbmdQZXJjZW50
ID0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yOworICAgIGZsb2F0IHJlbWFpbmluZ1BlcmNlbnQg
PSAxMDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheW91dFN0cnVjdC5zaXplKCk7
ICsraSkgewogICAgICAgICBtaW5XaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVN
aW5Mb2dpY2FsV2lkdGg7CiAgICAgICAgIG1heFdpZHRoICs9IG1fbGF5b3V0U3RydWN0W2ldLmVm
ZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgaWYgKHNjYWxlQ29sdW1ucykgewogICAg
ICAgICAgICAgaWYgKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gbWluKG1fbGF5b3V0U3Ry
dWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpLCByZW1haW5pbmdQZXJjZW50
KTsKLSAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9h
dD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBl
cmNlbnRTY2FsZUZhY3RvciAvIG1heChwZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAgICAgICAg
ICBmbG9hdCBwZXJjZW50ID0gbWluKHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtp
XS5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpKSwgcmVtYWluaW5nUGVyY2VudCk7Cisg
ICAgICAgICAgICAgICAgZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1f
bGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgLyBtYXgocGVy
Y2VudCwgZXBzaWxvbik7CiAgICAgICAgICAgICAgICAgbWF4UGVyY2VudCA9IG1heChsb2dpY2Fs
V2lkdGgsICBtYXhQZXJjZW50KTsKICAgICAgICAgICAgICAgICByZW1haW5pbmdQZXJjZW50IC09
IHBlcmNlbnQ7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEF1
dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgfQogCiAgICAgaWYgKHNjYWxl
Q29sdW1ucykgewotICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAqIDEwMCAq
IHBlcmNlbnRTY2FsZUZhY3RvciAvIG1heChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9uKTsKKyAg
ICAgICAgbWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgLyBtYXgocmVtYWluaW5n
UGVyY2VudCwgZXBzaWxvbik7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBzdGF0
aWNfY2FzdDxpbnQ+KG1pbihtYXhOb25QZXJjZW50LCBJTlRfTUFYIC8gMi4wZikpKTsKICAgICAg
ICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1heFBlcmNl
bnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAgIH0KQEAgLTI2Niw2ICsyNjYsMTAgQEAgdm9pZCBB
dXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogICAgICAgICBtaW5XaWR0aCA9IG1h
eChtaW5XaWR0aCwgdGFibGVMb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIG1heFdpZHRo
ID0gbWluV2lkdGg7CiAgICAgfQorICAgIAorICAgIC8vIGlmIHRoZXJlIHdhcyBubyByZW1haW5p
bmcgcGVyY2VudCwgbWF4V2lkdGggaXMgaW52YWxpZC4KKyAgICBpZiAoIXJlbWFpbmluZ1BlcmNl
bnQgJiYgbWF4Tm9uUGVyY2VudCkKKyAgICAgICAgbWF4V2lkdGggPSBpbnRNYXhGb3JMZW5ndGg7
ICAgICAgICAKIH0KIAogLyoKQEAgLTMwMCw3ICszMDQsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0
OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgIHNpemVfdCBsYXN0Q29sID0gZWZmQ29sOwog
ICAgICAgICBpbnQgY2VsbE1pbkxvZ2ljYWxXaWR0aCA9IGNlbGwtPm1pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwogICAgICAgICBmbG9hdCBjZWxsTWF4
TG9naWNhbFdpZHRoID0gY2VsbC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBzcGFjaW5n
SW5Sb3dEaXJlY3Rpb247Ci0gICAgICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAgICAgICBm
bG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogICAgICAgICBpbnQgc3Bhbk1pbkxvZ2ljYWxXaWR0aCA9
IDA7CiAgICAgICAgIGZsb2F0IHNwYW5NYXhMb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBib29s
IGFsbENvbHNBcmVQZXJjZW50ID0gdHJ1ZTsKQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgICAgICBMYXlvdXQmIGNvbHVt
bkxheW91dCA9IG1fbGF5b3V0U3RydWN0W2xhc3RDb2xdOwogICAgICAgICAgICAgc3dpdGNoIChj
b2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBQZXJj
ZW50OgotICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNh
bFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENvbHNB
cmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBGaXhlZDoKQEAgLTMzOSw3ICszNDMsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZm
ZWN0aXZlTG9naWNhCiAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5lZmZlY3RpdmVM
b2dpY2FsV2lkdGggPSBMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgYWxsQ29sc0FyZVBl
cmNlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucmF3
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91
dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFsbENv
bHNBcmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFjb2x1
bW5MYXlvdXQuZW1wdHlDZWxsc09ubHkpCkBAIC0zNTQsMTQgKzM1OCwxNCBAQCBpbnQgQXV0b1Rh
YmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAKICAgICAgICAgLy8gYWRqdXN0IHRhYmxl
IG1heCB3aWR0aCBpZiBuZWVkZWQKICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQZXJj
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRo
LnJhd1ZhbHVlKCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3Rh
bFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSB8fCBhbGxDb2xzQXJlUGVyY2Vu
dCkgewogICAgICAgICAgICAgICAgIC8vIGNhbid0IHNhdGlmeSB0aGlzIGNvbmRpdGlvbiwgdHJl
YXQgYXMgdmFyaWFibGUKICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoID0gTGVuZ3Ro
KCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0
aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBjZWxsTWF4
TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIGNlbGxMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0gbWF4KG1h
eExvZ2ljYWxXaWR0aCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1heChzcGFuTWF4TG9naWNhbFdpZHRo
LCBjZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAgLyBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQo
KSkpOwogCiAgICAgICAgICAgICAgICAgLy8gYWxsIG5vbiBwZXJjZW50IGNvbHVtbnMgaW4gdGhl
IHNwYW4gZ2V0IHBlcmNlbnQgdmFsdWVzIHRvIHN1bSB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAg
ICAgICAgaW50IHBlcmNlbnRNaXNzaW5nID0gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIC0g
dG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnRNaXNzaW5nID0gY2Vs
bExvZ2ljYWxXaWR0aC5wZXJjZW50KCkgLSB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAg
ZmxvYXQgdG90YWxXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3Mg
PSBlZmZDb2w7IHBvcyA8IGxhc3RDb2w7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkp
CkBAIC0zNzAsNyArMzc0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYQogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7IHBvcyA8
IGxhc3RDb2wgJiYgdG90YWxXaWR0aCA+IDA7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gc3RhdGljX2Nhc3Q8
aW50PihwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtw
b3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0b3RhbFdpZHRoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSBwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0
PGZsb2F0PihtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0
b3RhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXaWR0aCAtPSBtX2xheW91
dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHBlcmNlbnRNaXNzaW5nIC09IHBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocGVyY2VudCA+IDApCkBAIC00OTEsNyArNDk1LDcgQEAgdm9pZCBBdXRvVGFibGVMYXlv
dXQ6OmxheW91dCgpCiAgICAgaW50IG51bUZpeGVkID0gMDsKICAgICBmbG9hdCB0b3RhbEF1dG8g
PSAwOwogICAgIGZsb2F0IHRvdGFsRml4ZWQgPSAwOwotICAgIGludCB0b3RhbFBlcmNlbnQgPSAw
OworICAgIGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgaW50IGFsbG9jQXV0byA9IDA7CiAg
ICAgdW5zaWduZWQgbnVtQXV0b0VtcHR5Q2VsbHNPbmx5ID0gMDsKIApAQCAtNTA0LDcgKzUwOCw3
IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICBzd2l0Y2ggKGxvZ2lj
YWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgaGF2
ZVBlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0
aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxXaWR0aC5w
ZXJjZW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAg
ICAgICAgICAgIHRvdGFsUmVsYXRpdmUgKz0gbG9naWNhbFdpZHRoLnZhbHVlKCk7CkBAIC01Mzgs
OSArNTQyLDkgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAgICAgICAg
ICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggPSBjZWxsTG9naWNhbFdp
ZHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBlcmNlbnQg
PiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+
IDEwMCkgewogICAgICAgICAgICAgLy8gcmVtb3ZlIG92ZXJhbGxvY2F0ZWQgc3BhY2UgZnJvbSB0
aGUgbGFzdCBjb2x1bW5zCi0gICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dpY2FsV2lk
dGggKiAodG90YWxQZXJjZW50IC0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSAvICgxMDAgKiBw
ZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNh
bFdpZHRoICogKHRvdGFsUGVyY2VudCAtIDEwMCkgLyAxMDA7CiAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gbkVmZkNvbHMgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgICAgIGlmICht
X2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lkdGggPSBtX2xheW91dFN0cnVjdFtp
XS5jb21wdXRlZExvZ2ljYWxXaWR0aDsKQEAgLTYwNywxMyArNjExLDEzIEBAIHZvaWQgQXV0b1Rh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIH0KIAogICAgIC8vIHNwcmVhZCBvdmVyIHBlcmNlbnQg
Y29sdW1zCi0gICAgaWYgKGF2YWlsYWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRvdGFsUGVy
Y2VudCA8IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgIGlmIChhdmFpbGFibGUgPiAw
ICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDApIHsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBuRWZmQ29sczsgKytpKSB7CiAgICAgICAgICAgICBMZW5ndGgmIGxv
Z2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aDsKICAg
ICAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpIC8gdG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRo
ID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnBlcmNlbnQoKSAvIHRvdGFsUGVyY2VudDsKICAg
ICAgICAgICAgICAgICBhdmFpbGFibGUgLT0gY2VsbExvZ2ljYWxXaWR0aDsKLSAgICAgICAgICAg
ICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50IC09IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAg
ICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggKz0gY2VsbExvZ2lj
YWxXaWR0aDsKICAgICAgICAgICAgICAgICBpZiAoIWF2YWlsYWJsZSB8fCAhdG90YWxQZXJjZW50
KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDggQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGlu
dAogICAgICAgICAgICAgICAgICAgICBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uID0gbV90
YWJsZS0+c3Bhbk9mRWZmQ29sKGN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAoKHcuaXNGaXhlZCgpIHx8IHcuaXNQZXJjZW50KCkp
ICYmIHcuaXNQb3NpdGl2ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVu
dEVmZmVjdGl2ZUNvbHVtbl0uc2V0VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAqIHNwYW5J
bkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOworICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1
cnJlbnRFZmZlY3RpdmVDb2x1bW5dID0gdzsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtj
dXJyZW50RWZmZWN0aXZlQ29sdW1uXSAqPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwog
ICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGggKz0gZWZmV2lkdGggKiBzcGFuSW5DdXJyZW50
RWZmZWN0aXZlQ29sdW1uOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzcGFu
IC09IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47CkBAIC0xNjQsMTAgKzE2NSwxMSBAQCBp
bnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkoaW50CiAgICAgICAgICAgICAgICAg
aW50IHVzZWRTcGFuID0gMDsKICAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgICAg
ICAgICAgd2hpbGUgKHVzZWRTcGFuIDwgc3BhbiAmJiBjQ29sICsgaSA8IG5FZmZDb2xzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGludCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29s
ICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGVTcGFuID0gbV90YWJsZS0+c3Bhbk9m
RWZmQ29sKGNDb2wgKyBpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBzZXQgaWYgbm8g
Y29sIGVsZW1lbnQgaGFzIGFscmVhZHkgc2V0IGl0LgogICAgICAgICAgICAgICAgICAgICBpZiAo
bV93aWR0aFtjQ29sICsgaV0uaXNBdXRvKCkgJiYgdy50eXBlKCkgIT0gQXV0bykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0uc2V0VmFsdWUody50eXBlKCksIHcu
cmF3VmFsdWUoKSAqIGVTcGFuIC8gc3Bhbik7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dp
ZHRoW2NDb2wgKyBpXSA9IHc7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2NDb2wg
KyBpXSAqPSBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGgg
Kz0gZWZmV2lkdGggKiBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgdXNlZFNwYW4gKz0gZVNwYW47CkBAIC0yMzQsNyArMjM2LDcgQEAgdm9p
ZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGludCBhdXRvU3BhbiA9IDA7CiAgICAg
aW50IHRvdGFsRml4ZWRXaWR0aCA9IDA7CiAgICAgaW50IHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
LSAgICBpbnQgdG90YWxSYXdQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAw
OwogCiAgICAgLy8gQ29tcHV0ZSByZXF1aXJlbWVudHMgYW5kIHRyeSB0byBzYXRpc2Z5IGZpeGVk
IGFuZCBwZXJjZW50IHdpZHRocy4KICAgICAvLyBQZXJjZW50YWdlcyBhcmUgb2YgdGhlIHRhYmxl
J3Mgd2lkdGgsIHNvIGZvciBleGFtcGxlCkBAIC0yNDcsNyArMjQ5LDcgQEAgdm9pZCBGaXhlZFRh
YmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0uaXNQZXJj
ZW50KCkpIHsKICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0uY2FsY1ZhbHVl
KHRhYmxlTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoICs9IGNh
bGNXaWR0aFtpXTsKLSAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRoW2ldLnJh
d1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV93aWR0aFtpXS5wZXJjZW50
KCk7CiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5pc0F1dG8oKSkgewogICAgICAgICAg
ICAgbnVtQXV0bysrOwogICAgICAgICAgICAgYXV0b1NwYW4gKz0gbV90YWJsZS0+c3Bhbk9mRWZm
Q29sKGkpOwpAQCAtMjcwLDExICsyNzIsMTEgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlv
dXQoKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKHRvdGFsUmF3UGVyY2VudCkgeworICAgICAgICAgICAgaWYg
KHRvdGFsUGVyY2VudCkgewogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRoID0gMDsK
ICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKyspIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUoKSAqICh0
YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNlbnQ7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBlcmNlbnQo
KSAqICh0YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFBlcmNlbnQ7
CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhb
aV07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNp
b24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNhbEhlaWdo
dC50eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICAg
ICAgICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dMb2dp
Y2FsSGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNSb3dM
b2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBsb2dpY2Fs
SGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246
OmxheW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdo
dC5pc0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAgICBlbHNl
IGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVy
Y2VudCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAg
ICAgIC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQgPSAwOwot
ICAgICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICogcGVyY2Vu
dFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNl
bnQsIDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBd
OwogICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewogICAg
ICAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVp
Z2h0LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihk
aCwgKHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKSAvICgx
MDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50
IHRvQWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1fZ3JpZFty
XS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIHNocmlu
ayB0aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRs
b29rIFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0Fk
ZCk7CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAgICAgICAg
ICAgZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAtPSBtX2dy
aWRbcl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0b3Rh
bFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAgICAgICAg
ICAgICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lv
biA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhh
c0JvcmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0LndpZHRo
KCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkuaXNaZXJv
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmlnaHQud2lk
dGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRoKCkuaXNa
ZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90dG9tTGVm
dC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0
aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2Jv
dHRvbVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9ib3R0b21S
aWdodC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTAz
LTA5ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50YWdlcyBh
cmUgaW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMt
MDkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24t
aW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gODAzODEpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5j
aGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotNDE0Y2FhYTJlZTA5ODIzZmNjNmIx
MjAwZDMwZWMxMjcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitjNmQ5MDU1MzQxYTk5MDQ5
MjljY2M0OTQ3NmM3YmQ5ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3Mv
cGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwMzgxKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDU4NQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0NCkgc2l6
ZSA5MTB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDQg
W2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0OCkg
c2l6ZSA5MTB4NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAw
eDQgW2JnY29sb3I9IzAwMDAwMDdGXQorICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgMTAxeDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw1Mikgc2l6ZSA5MDB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw1Nikgc2l6ZSA4OTB4NApAQCAtNDksNyArNDksNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg1ODUKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODQpIHNp
emUgODQweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0
IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODgp
IHNpemUgODM1eDQKLSAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEw
MHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsOTIpIHNpemUgODI1eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsOTYpIHNpemUgODE1eDQKQEAgLTg0LDYxICs4NCw2MSBAQCBsYXllciBh
dCAoOCwxMjYpIHNpemUgMTAwMHgyMAogICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDApIHNp
emUgMTAwMHgyMAogICAgIFJlbmRlclRhYmxlU2VjdGlvbiB7VEJPRFl9IGF0ICgwLDApIHNpemUg
MTAwMHgyMAogICAgICAgUmVuZGVyVGFibGVSb3cge1RSfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAK
LSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMSkgc2l6ZSAxMXgxOCBbYmdjb2xv
cj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDAsMSkgc2l6ZSAxMngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJz
PTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4
CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDExLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9MSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQog
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjEsMSkgc2l6ZSAxM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0y
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyLDEpIHNpemUg
MTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgzNCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTMgcnM9MSBjcz0x
XQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzUsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDQ0LDEpIHNp
emUgMTV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NCBycz0xIGNzPTFdCisgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NSwxKSBzaXplIDE2eDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNTksMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz01IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDYxLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9NSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2OSwxKSBzaXplIDE3eDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNzEsMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDg2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9NyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4OCwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoOTYsMSkgc2l6ZSAyMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz04IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk4LDEpIHNpemUgMjB4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgx
MTYsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05IHJzPTEgY3M9MV0K
KyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDExOCwxKSBzaXplIDEweDE4IFtiZ2Nv
bG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTkgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI2LDEpIHNp
emUgMjF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQorICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI4LDEpIHNpemUgMjJ4MTggW2JnY29sb3I9IzAw
MDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTQ3LDEpIHNpemUgMTB4
MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTEgcnM9MSBjcz0xXQorICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMTUwLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9MTEgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTU3LDEpIHNpemUgMjN4MTggW2Jn
Y29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTIgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMTYwLDEpIHNpemUgMjR4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0w
IGM9MTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTgwLDEwKSBzaXplIDEweDAgW2JnY29sb3I9
IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMTkwLDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTQg
cnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTg0LDEwKSBzaXpl
IDEweDAgW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQorICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTk0LDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAw
MDdGXSBbcj0wIGM9MTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjE1LDEpIHNpemUgMTB4MTgg
W2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTUgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMjE5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9MTUgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjI1LDEpIHNpemUgMjd4MTggW2JnY29s
b3I9IzAwMDAwMDdGXSBbcj0wIGM9MTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjI5LDEpIHNpemUgMjd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MTYgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjUyLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAw
RkYwMDdGXSBbcj0wIGM9MTcgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMjU2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTcgcnM9
MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMjYyLDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdG
XSBbcj0wIGM9MTggcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MjY2LDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTggcnM9MSBjcz0x
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMjkyLDEpIHNpemUgNzA4eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCisg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyOTYsMSkgc2l6ZSA3MDR4MTggW3I9MCBj
PTE5IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2Vy
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFl
QUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpT
ZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10
cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxW
ZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENs
a1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJ
TklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5
NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRT
ZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVG
NWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1
VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5
dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4
WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhX
YzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4
a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNK
OTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lY
djlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2
Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cv
YkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNkM1k5Y2Qza0g4
Ti91enZvMXRoTW5oQkFnT0MxRkNTaThWb0NFb0VqUUM3amhraGR4eVExYzhDOGtsdmdUa0xqaApF
Z2tRTnlCVkJVRkJGRlZDYlZvRkphVTBLYVNFa2xMeTRyd250bmZ0N2U4NXlURzdqc2ZPYU02YXgv
dDhSbHJQN3N3NVo1N244K3pNCm51K2VNOTZWclg1cExnUUlFQ0JBZ0FBQkFnUUlFTGdLQXF0WDRU
RThCQUVDQkFnUUlFQ0FBQUVDQkFZQkFjUTNBZ0VDQkFnUUlFQ0EKQUFFQ1YwMUFBTGxxMUI2SUFB
RUNCQWdRSUVDQUFBRUJ4UGNBQVFJRUNCQWdRSUFBQVFKWFRVQUF1V3JVSG9nQUFRSUVDQkFnUUlB
QQpBUUhFOXdBQkFnUUlFQ0JBZ0FBQkFsZE5RQUM1YXRRZWlBQUJBZ1FJRUNCQWdBQ0IyWlVJVms2
dVhHa1I5MTlGZ2EyNy9kbVdxOGp0Cm9RZ1FJRUNBQUFFQ0JDWVdjQVJrWWxDYkkwQ0FBQUVDQkFn
UUlFQmd2b0FBTXQvR1BRUUlFQ0JBZ0FBQkFnUUlUQ3dnZ0V3TWFuTUUKQ0JBZ1FJQUFBUUlFQ013
WEVFRG0yN2lIQUFFQ0JBZ1FJRUNBQUlHSkJRU1FpVUZ0amdBQkFnUUlFQ0JBZ0FDQitRSUN5SHdi
OXhBZwpRSUFBQVFJRUNCQWdNTEdBQURJeHFNMFJJRUNBQUFFQ0JBZ1FJREJmUUFDWmIrTWVBZ1FJ
RUNCQWdBQUJBZ1FtRmhCQUpnYTFPUUlFCkNCQWdRSUFBQVFJRTVnc0lJUE50M0VPQUFBRUNCQWdR
SUVDQXdNUUNBc2pFb0RaSGdBQUJBZ1FJRUNCQWdNQjhBUUZrdm8xN0NCQWcKUUlBQUFRSUVDQkNZ
V0VBQW1SalU1Z2dRSUVDQUFBRUNCQWdRbUM4Z2dNeTNjUThCQWdRSUVDQkFnQUFCQWhNTENDQVRn
OW9jQVFJRQpDQkFnUUlBQUFRTHpCUVNRK1RidUlVQ0FBQUVDQkFnUUlFQmdZZ0VCWkdKUW15TkFn
QUFCQWdRSUVDQkFZTDZBQURMZnhqMEVDQkFnClFJQUFBUUlFQ0V3c0lJQk1ER3B6QkFnUUlFQ0FB
QUVDQkFqTUZ4QkE1dHU0aHdBQkFnUUlFQ0JBZ0FDQmlRVUVrSWxCYlk0QUFRSUUKQ0JBZ1FJQUFn
ZmtDQXNoOEcvY1FJRUNBQUFFQ0JBZ1FJREN4Z0FBeU1hak5FU0JBZ0FBQkFnUUlFQ0F3WDBBQW1X
L2pIZ0lFQ0JBZwpRSUFBQVFJRUpoWVFRQ1lHdFRrQ0JBZ1FJRUNBQUFFQ0JPWUxDQ0R6YmR4RGdB
QUJBZ1FJRUNCQWdNREVBZ0xJeEtBMlI0QUFBUUlFCkNCQWdRSURBZkFFQlpMNk5ld2dRSUVDQUFB
RUNCQWdRbUZoQUFKa1kxT1lJRUNCQWdBQUJBZ1FJRUpndklJRE10M0VQQVFJRUNCQWcKUUlBQUFR
SVRDd2dnRTRQYUhBRUNCQWdRSUVDQUFBRUM4d1VFa1BrMjdpRkFnQUFCQWdRSUVDQkFZR0lCQVdS
aVVKc2pRSUFBQVFJRQpDQkFnUUdDK2dBQXkzOFk5QkFnUUlFQ0FBQUVDQkFoTUxDQ0FUQXhxY3dR
SUVDQkFnQUFCQWdRSXpCY1FRT2JidUljQUFRSUVDQkFnClFJQUFnWWtGQkpDSlFXMk9BQUVDQkFn
UUlFQ0FBSUg1QWdMSWZCdjNFQ0JBZ0FBQkFnUUlFQ0F3c1lBQU1qR296UkVnUUlBQUFRSUUKQ0JB
Z01GOUFBSmx2NHg0Q0JBZ1FJRUNBQUFFQ0JDWVdFRUFtQnJVNUFnUUlFQ0JBZ0FBQkFnVG1Dd2dn
ODIzY1E0QUFBUUlFQ0JBZwpRSURBeEFJQ3lNU2dOa2VBQUFFQ0JBZ1FJRUNBd0h3QkFXUytqWHNJ
RUNCQWdBQUJBZ1FJRUpoWVFBQ1pHTlRtQ0JBZ1FJQUFBUUlFCkNCQ1lMeUNBekxkeER3RUNCQWdR
SUVDQUFBRUNFd3NJSUJPRDJod0JBZ1FJRUNCQWdBQUJBdk1GQkpENU5pbnZPWG55Wk1xNkZFV0EK
QUFFQ0JBZ1FJRURndFFnSUlLOUZ5VElFQ0JBZ1FJQUFBUUlFQ0V3aUlJQk13bWdqQkFnUUlFQ0FB
QUVDQkFpOEZnRUI1TFVvV1lZQQpBUUlFQ0JBZ1FJQUFnVWtFVnJiNjVYSmJXam01Y3JtNzNYZVZC
YmJ1dnV5NHJuSTFIbzRBQVFJRUNCQWdRSURBWWdLT2dDem1aV2tDCkJBZ1FJRUNBQUFFQ0JKWVFF
RUNXd0xNcUFRSUVDQkFnUUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JF
cUEKQUFFQ0JBZ1FJRUNBd0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdB
QUJBZ1FJRUNDd21JQUFzcGlYcFFrUQpJRUNBQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFR
SUVDQ3dtSUlBczVtVnBBZ1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDCkJBZ1FJRUNBQUFFQ2l3
a0lJSXQ1V1pvQUFRSUVDQkFnUUlBQWdTVUVCSkFsOEt4S2dBQUJBZ1FJRUNCQWdNQmlBZ0xJWWw2
V0prQ0EKQUFFQ0JBZ1FJRUJnQ1FFQlpBazhxeElnUUlBQUFRSUVDQkFnc0ppQUFMS1lsNlVKRUNC
QWdBQUJBZ1FJRUZoQ1FBQlpBcytxQkFnUQpJRUNBQUFFQ0JBZ3NKaUNBTE9abGFRSUVDQkFnUUlB
QUFRSUVsaEFRUUpiQXN5b0JBZ1FJRUNCQWdBQUJBb3NKQ0NDTGVWbWFBQUVDCkJBZ1FJRUNBQUlF
bEJBU1FKZkNzU29BQUFRSUVDQkFnUUlEQVlnSUN5R0plbGlaQWdBQUJBZ1FJRUNCQVlBa0JBV1FK
UEtzU0lFQ0EKQUFFQ0JBZ1FJTENZZ0FDeW1KZWxDUkFnUUlBQUFRSUVDQkJZUWtBQVdRTFBxZ1FJ
RUNCQWdBQUJBZ1FJTENZZ2dDem1aV2tDQkFnUQpJRUNBQUFFQ0JKWVFFRUNXd0xNcUFRSUVDQkFn
UUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JFcUFBQUVDCkJBZ1FJRUNB
d0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdBQUJBZ1FJRUNDd21JQUFz
cGlYcFFrUUlFQ0EKQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFRSUVDQ3dtSUlBczVtVnBB
Z1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDQkFnUQpJRUNBQUFFQ2l3a0lJSXQ1V1pvQUFRSUVD
QkFnUUlBQWdTVUVCSkFsOFA0Y3E1NDhlZkxQOGJBZWt3QUJBZ1FJRUNCQWdNQWtBZ0xJCkpJdzJR
b0FBQVFJRUNCQWdRSURBYXhFUVFGNkxrbVVJRUNCQWdBQUJBZ1FJRUpoRVFBQ1poTkZHQ0JBZ1FJ
QUFBUUlFQ0JCNExRSXIKVy8xeXVRVlhUcTVjN203M1hXV0JyYnN2TzY2clhJMkhJMENBQUFFQ0JB
Z1FJTENZZ0NNZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRQprQ1h3ckVxQUFBRUNCQWdRSUVDQXdH
SUNBc2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBCnNw
aVhwUWtRSUVDQUFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdR
SUVDQkFnQUFCQWdTV0VMamkKM3dGWll0dFdKVUNBQUFFQ0JBZ1FJRUNBd0E0QlIwQjJjUGlDQUFF
Q0JBZ1FJRUNBQUlIZEZCQkFkbFBYdGdrUUlFQ0FBQUVDQkFnUQoyQ0VnZ096ZzhBVUJBZ1FJRUNC
QWdBQUJBcnNwSUlEc3BxNXRFeUJBZ0FBQkFnUUlFQ0N3UTBBQTJjSGhDd0lFQ0JBZ1FJQUFBUUlF
CmRsTkFBTmxOWGRzbVFJQUFBUUlFQ0JBZ1FHQ0hnQUN5ZzhNWEJBZ1FJRUNBQUFFQ0JBanNwb0FB
c3B1NnRrMkFBQUVDQkFnUUlFQ0EKd0E0QkFXUUhoeThJRUNCQWdBQUJBZ1FJRU5oTkFRRmtOM1Z0
bXdBQkFnUUlFQ0JBZ0FDQkhRSUN5QTRPWHhBZ1FJQUFBUUlFQ0JBZwpzSnNDQXNodTZ0bzJBUUlF
Q0JBZ1FJQUFBUUk3QkFTUUhSeStJRUNBQUFFQ0JBZ1FJRUJnTndVRWtOM1V0VzBDQkFnUUlFQ0FB
QUVDCkJIWUlDQ0E3T0h4QmdBQUJBZ1FJRUNCQWdNQnVDZ2dndTZscjJ3UUlFQ0JBZ0FBQkFnUUk3
QkFRUUhadytJSUFBUUlFQ0JBZ1FJQUEKZ2QwVW1GMXA0eXNuVjY2MHlKL3V2NmQvZXZlZnZwejdX
U3gzY3U2OWw3NGoxdG10YlkrUEdJOFJseXM5emozRFVvdjM4TXBxdzlXNApqYXZ4V0JrZU4yb1ll
NDdQTDlmMzl1VVcvVDZKYlYvdWNzOUZkODZyNCtMbHBxNGp5cmo0TWY2Y3RVUTljYmxuK1BkUC8y
U282VS9WCkRKL2RzNjNJdSsrZVYrQkZLL21TQUFFQ0JBZ1FTQ1BnQ0VpYVVTaUVBQUVDQkFnUUlF
Q0F3TjRYRUVEMi9veDFTSUFBQVFJRUNCQWcKUUNDTmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JR
U1F2VDlqSFJJZ1FJQUFBUUlFQ0JCSUl5Q0FwQm1GUWdnUUlFQ0FBQUVDQkFqcwpmUUVCWk8vUFdJ
Y0VDQkFnUUlBQUFRSUUwZ2dJSUdsR29SQUNCQWdRSUVDQUFBRUNlMTlBQU5uN005WWhBUUlFQ0JB
Z1FJQUFnVFFDCkFraWFVU2lFQUFFQ0JBZ1FJRUNBd040WEVFRDIvb3gxU0lBQUFRSUVDQkFnUUND
TmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JRU1EKdlQ5akhSSWdRSUFBQVFJRUNCQklJeUNBcEJt
RlFnZ1FJRUNBQUFFQ0JBanNmUUVCWk8vUFdJY0VDQkFnUUlBQUFRSUUwZ2dJSUdsRwpvUkFDQkFn
UUlFQ0FBQUVDZTE5QUFObjdNOVloQVFJRUNCQWdRSUFBZ1RRQ0FraWFVU2lFQUFFQ0JBZ1FJRUNB
d040WEVFRDIvb3gxClNJQUFBUUlFQ0JBZ1FDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNCVmEy
K21YdnQ2bERBZ1FJRUNCQWdBQUJBZ1F5Q0RnQ2ttRUsKYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpv
YlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSQpFQ0JB
Z0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1B
Z0pJaGltb2dRQUJBZ1FJCkVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJ
RUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUkKRU1nZ0lJQmttSUlhQ0JBZ1FJQUFB
UUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRQpC
SkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdB
QUJBZ1FJRUNCQUlJT0FBSkpoCkNtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JB
Z1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0UKQ0JBZ1FJQUFBUUlFTWdnSUlC
bW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJ
RQpDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNC
UVJFQUFLVEpvYlJJZ1FJQUFBUUlFCkNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4
YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkYKQkFTUUlvUFdKZ0VDQkFn
UUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NE
Z0FDUwpZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlh
Q0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiCkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JB
Z0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUMKQkFnUUlFQ0FRQkVC
QWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJ
RUNBQUFFQwpCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFB
UUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDClJRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNT
SVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUEKa21FS2FpQkFn
QUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JB
Z1VFUkJBaWd4YQptd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlv
UFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCCkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFR
SUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUIKQWdRSUVN
Z2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFB
R0FnUUlFQ0JBZ0FBQgpBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFn
UUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BCkFKSmhDbW9nUUlBQUFRSUVDQkFnVUVS
QUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb00KV3Bz
RUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JB
Z0FDQkRBSUNTSVlwcUlFQQpBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFB
a21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBCkFRSUVDQkRJSUNDQVpKaUNHZ2dR
SUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUEK
QVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5
S0MxU1lBQUFRSUVDQkFnUUNDRApnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFn
QUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLCkRGcWJCQWdRSUVDQUFBRUNC
RElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0th
aUIKQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFR
SUVDQkFnVUVSQUFDa3lhRzBTSUVDQQpBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZC
RVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBCkFBRUNSUVFFa0NLRDFp
WUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFn
UUlFQWcKZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUND
QVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQQppZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJ
RUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vCmdRQUJBZ1FJRUNC
QWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFw
TW1odEVpQkEKZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdR
SUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQQpnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFB
Z1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBCklJT0FBSkpo
Q21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFn
QUFCQWdRSUZCRVEKUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNS
UVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcApxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0
VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnClFJQUFB
UUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNB
Z2dHYWFnQmdJRUNCQWcKUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dR
QUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZwpRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JB
Z1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSCkVF
Q0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJ
RUNCQWdRSUFBZ1F3Q0FraUcKS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNC
QUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwUwpJRUNBQUFFQ0JBZ1F5Q0FnZ0dT
WWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdR
CklFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJB
RVFFQnBNaWd0VW1BQUFFQ0JBZ1EKSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpv
YlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVQpFUkJBaWd4YW13UUlFQ0JB
Z0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1B
Z0pJCmhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJ
RUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHQKRWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFB
UUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSQpFQ0JBZ0FBQkFrVUVC
SkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdB
QUJBZ1FJCkVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JB
Z1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUkKRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlC
bW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQwpTSVlwcUlFQUFR
SUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNC
UVJFQUFLVEpvCmJSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4
YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUUKQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFn
UUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRQpDQkFnUUND
RGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlh
Q0JBZ1FJQUFBUUlFCkNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JB
Z0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0MKQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVC
QWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreQphRzBT
SUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFB
UUlFTWdnSUlCbW1vQVlDCkJBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNT
SVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUMKQkFnUUlFQWdnNEFBa21FS2FpQkFn
QUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQwpC
QWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlv
UFdKZ0VDQkFnUUlFQ0FBSUVNCkFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFR
SUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXAKTW1odEVpQkFnQUFCQWdRSUVN
Z2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFB
RwpBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFn
UUlFQ0FRQkVCQWFUSW9MVkpnQUFCCkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVS
QUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUIKQWdRSUZCRVFRSW9NV3Bz
RUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JB
Z0FDQgpEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFB
a21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBCktUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dR
SUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWcKQmdJRUNCQWdRSUFB
QVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5
S0MxU1lBQQpBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFn
QUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBCkFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNC
RElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUEKZ1F3Q0FraUdL
YWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFR
SUVDQkFnVUVSQQpBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZC
RVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tCm9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFp
WUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUEKQUFFQ0JB
Z1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUND
QVpKaUNHZ2dRSUVDQQpBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJ
RUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBCkFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNC
QWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkUKUUFB
cE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdR
SUVDQUFBRUNCRElJQ0NBWgpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFB
Z1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKCmdBQUJBZ1FJRUNCQUlJT0FBSkpo
Q21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkEK
Z0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNS
UVFFa0NLRDFpWUJBZ1FJRUNCQQpnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0
VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRClJFQUFLVEpvYlJJZ1FJQUFB
UUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNB
Z2cKR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dR
QUJBZ1FJRUNCQWdFQVJBUUdreUtDMQpTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JB
Z1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnClFJQUFBUUlFQ0JRUkVF
Q0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJ
RUNCQWcKUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNC
QUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZwpVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dT
WWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJCklCbW1vQVlDQkFn
UUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNGWTZXeGtB
QUJkcFNVUkIKVkJBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFC
QWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdV
RVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVD
QkFnUUNDRGdBQ1MKWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJ
SUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYgpCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdB
Z1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDCkJBZ1FJ
RUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFD
a3lhRzBTSUVDQUFBRUMKQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNC
QWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJRUNCQWdB
Q0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBCmtt
RUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVD
QUFBRUNCQWdVRVJCQWlneGEKbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFK
RkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJBUUdreUtD
MVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFC
CkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJ
Q0NBWnBxQUdBZ1FJRUNCQWdBQUIKQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlC
QUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJQUFBUUlF
Q0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFR
SW9NCldwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJB
Z1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUEKQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJ
RUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JESUlDQ0Fa
SmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNC
QWdRSUFBCkFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdF
QVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0QKZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1t
aHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDSwpERnFiQkFnUUlF
Q0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3
Q0FraUdLYWlCCkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21v
Z1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FB
QkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpBQUVDUlFR
RWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1B
QUFFQ0JBZ1FJRUFnCmc0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlF
Q0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdn
R2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltbwpnUUFC
QWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJ
RkJFUUFBcE1taHRFaUJBCmdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tE
RnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZbUFRSUVD
QkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQQpJ
SU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdo
b0lFQ0JBZ0FBQkFnUUlGQkVRClFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlF
Q0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFnUUlCQUVR
RUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJ
ZwpRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FB
QkFnUXlDQWdnR2FhZ0JnSUVDQkFnClFJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdK
SWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZUXBxSUVD
QUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlF
Q0JRUgpFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFp
ZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHCkthaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFC
QWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFMKSUVDQUFBRUNCQWdR
eUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1v
QVlDQkFnUQpJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVD
QkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRCklFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFS
RUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJCQWlneGFt
d1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlF
Q0FBSUVNQWdKSQpoaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdB
Q1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNC
QWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkKRUNCQWdB
QUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFU
SW9MVkpnQUFCQWdRSQpFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVD
QUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJ
RU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUMKU0lZ
cHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFC
QWdRSUVDQlFSRUFBS1RKbwpiUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdV
RVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJBU1FJb1BX
SmdFQ0JBZ1FJRUNBQUlFTUFyUHZmdmU3YlRhYnRiVzF0YmErdmo3VXRMVzExVlpYVjl2NTgrZGIK
ZkI2WHMyZlB0dE9uVDErNExaWjNJVUNBQUFFQ0JBZ1FlTFZBN0VldHJLd00rMWp4K2ZqeDZpWGRR
bUI2Z1hQbnpnMzc4T1AzWU96cgpqL3YxNHo1KzNEZGV4djM5K0RydTMvNzF1TXg0L2Roamo3V2Ji
NzU1L1BKVjE3SGRlS3p0bDdHZXVON2MzR3l6alkyTjlwYTN2R1Y0CnNBZ1Y4WUR4RVN2SEFuLzg0
eC9iZmZmL3J2M2JmNjIzWHo2eXIvM1BZN1Ayd3RrSUtuM0RrVTM2aHRwTmg3Yy9oczhKRUNCQWdB
QUIKQXZVRXp2Y2RvOWp2NnZ0UjE4MDIybTAzbkduditjdldQdnJlQSszTnR4NGFmdEViTzNmYmQv
enFJZWw0TndUR3dCRFhzZk1mKy9TeApIeDlmdi9qaWkrMmxsMTVxYjNqREc5cng0OGN2SEdTSTc4
UHhJNEpCWEdMNU1ZRE0rejU5NFlVWDJ1dGYvL3BMdGhIcngzcFJ3L2IxCjQvYTR4TzIvL3ZXdjJ5
d0t1ZjMyMjRjSDI3N2dtVE5uMm4zMzNkZis3a2NQdGgvOSs5SDIwTE0zdGYySDk3Y1AvdTFON2M0
VDE3VWoKaDE0NUF0STNPSXNIT3RlUGx2UW5WZXRoYW1YMjhuVi81TGExMGg4d2tsUi8wUFZZNWR4
V0I0a0d6N1dWZUpMMmo3alordng4LzNqKwplUDN3K3Vubmg1K2Y4VHB3TGU0L3JQWFJiZmFkbmRq
Zk9YM21mUHZQM3ozZmZuN2ZrKzAvN24ycDNmL0ljKzJ6SHozWFB2RHU0MjNmCnZuM0R6bUZmeklY
QVpBS3hnei91NU1kMTdPakhSNFNRdU1UMUk0ODhNbnovM1hubm5jT1J1ZkhCWS85L1hIZThiYnpl
bmczRzI1NTgKOHNraE80eGZqOWZ6dGhIM2ovZEZUYWRPbldxelNFU1JkT0lKTVJZUTRlUGhoeDl1
Ly9EVCs5b1BIamplZm5QbTFyWnkwNng5NklPMwp0SS9lZGF3ZDJyL1dRMGZmV2kvNFhOOVF6eDZ0
UCsvNlAvMVFZd1NRZnQxYmFXdjkvdFgrak94WExYNHBzTldYNjFFbEZ1eGY5L1dHCjI3YmEyZjZK
OWZuNS92SDg4ZnJoOWRQUER6OC9yOVg5aDFkMmk0YjltZmhkOHB0dk85d08zbmlnL2YwLy9xRTk4
TXkrMW43MlpIdlQKRzA2M085NTZwTzNmdjMvWTkrcUx1UkNZUkNCMjdHTW5QejdpYUVaOEhkZXhi
ejkreE5zcGZ2bkxYN1lqUjQ2MEV5ZE9ERWZreG9BUgo2NDJmWDZtZ2VFdkcrTGFOS3kwN2JqZXU0
eEkxUlBZWVRzR0tMK0xKRUE4Y0JjZHBWNy80eFMvYXp4OWNiYi9aZUhOYjZVK2dvMGYzCnRadXVY
eCtlTUp2OW1SVlBydDVtRHhUeFV0SGFtWjR3K3ROckNCcXJzOGdpdzB0SVcrMEx4dHRGdHZyOXNY
U3MyNjk2K0Fpa2xkYlAKQU90ZnIxaWZuKzhmengrdkgvM0YxT3Vubng5K2ZsNmIrdy9ETDFramhR
eVhsMys1ZXZ6b2VqdHkvR0I3WnJiV0huanF4dmFEZjNtNgovZFh0eDRlZHQ5ZTZBemR1MFRXQnl3
bU1BU1N1eC9BUjEzR1FJYjdYNHBTc0NBN1BQUE5NKzlXdmZ0V3V1KzY2ZHNzdHQxd0l3aGVICmp6
aHQ2M3ZmKzE3NzdHYy8rNnFIamJkdlhMeDhMUFROYjM2emZlcFRuMnFIRGgyNnNNNjRYRnhIQ0lu
TUVldjNzNmRXMnZQUFB6OFUKRWtzLzk5eHp3MGU4d2VUaEY5L1VWby8xSjgreC9lM1lkZXZ0OGVk
YmUrcUZyWDRFWkxXdDlaQXhQTS82QVkyTmZnUWpnczFtLy9WbApISUpzWitNSHlHcUxNN0hpNjlY
ekw2ZXZjeEZDdHZyN1RPS0IrbTFuenNVYjNmdWJVWG9vc1Q0LzN6K2VQMTQvdkg3NitlSG41N1c2
Ci94QW5lS3lzRG5zNHd4a2ZzVy96NVBOYjdkaVIyYkRmODF6ZjMvblgzNjhPTzJCeDFzbjRpOS9Z
SlhJaHNLekE5Z0F5dnRGN1BBSVMKcDEvRi9ZY1BIeDQrbm4zMjJSYnY0NGo5LzZOSGoxNElJV01O
UC83eGo0Y3dFYWRhZmU1em54dHZ2bkE5YnZmQ0RhOTg4cDN2ZktmOQo1Q2MvR1VMTHh6NzJzWXZ2
SG1xSXg0enNNVHR3NE1EdzVwUklSSkdPb3FpNDQrbW5uMjVQclA5MU8zSjBmN3ZoMkw0ZVFQYjFO
NSt2CnRIOSt1S2VXMWMxK2FsWEVqNWVEUjV4VUZVKzBlSS9IYW4vUHgvcStuclRhWmo4RnF3ZVEv
akhyeVgrdGg1UE56WDQ0cUgrYzcrRWsKTU9MVXJZMjQ3WlVqSTlibjUvdkg4OGZyaDlkUFB6Lzgv
THdXOXgvNnJ0UHdpOW40TGUrNXN4dDlIeWVPZ216MkFMTGVWdUpVa0g0Ngp6TzlmT05yaU5QZlkz
eEpBWHJWLzZvWWxCTVlBRXVFZ1BzWTNvY2MrZlh6RS9mRS9ZY1gzWGV6elJ3Z2U5L2tQSGp3NDNQ
N1FRdysxCnIzLzk2eTJ1eDFPbXh2ZVFiQzh0dG5XcDIyT2RKNTU0b24zMXExOXRQL3poRDlzWHZ2
Q0Y5cmEzdlczWVZoejFpSU1jY1dRbHNzY3MKQ29qRE01Rkk0aEROV0Z4OHZmOWdhOGY2NGNNNCtu
SDg2SUVXQmE3M01ER2I5Vk94ZXRCWVdlMUhNM29SL1FCUER4TG4ycXkvWXV6cgp6N0cxbmlUaU9N
ZGEvM1ZtdlAwOGJsL3ZUN1o0YzlabVgyNnpQeW5QOTQ4SUlHYzMrbmxxZlducjgvUDk0L25qOWNQ
cnA1OGZmbjVlCnEvc1BzYit6Mm5md3RzNzE4TkYvS2J1eGNhYWRQZjFTTzlOUE5WOVoyV2puTjli
YmMvM3NqOWh4aTMydDJPZUsvUzhYQWxNSWpBRWsKcmlPQWpLZEpqVUVpYmh0UCs0djNZRVFJaUVz
RWd2aTQ5OTU3MjllKzlyVlhsZkw0NDQrLzZyWUlNSmU2UGNMMWVMbi8vdnZibDcvOAo1ZmJGTDM2
eHZlOTk3eHNDVU5ReXZ1OThGc1ZFQ0Jtdm8vQW9PZ3A3L2V6eHRuN2c1bmIwNEw1MjlIQVBJSWNP
dHdQNys3SjkrVGhWCkl0SitYN3dmd1hqNWlNWjZQK2RxdlQrWjRtakhFRHo2NXhGVVpxK2NtdFV6
UjMvaTlZKytUaHlrSEFMSjJjMjJzV1g5ZUVIaTUvdkgKODhmcmg5ZFBQei84L096N0RkZmcvc05h
LzZWcy82OTUrbjVSMy9uclIwRE9ubGx0cDlmN2YvSnorc1crNzdQVk5nN08ydlZubiszNwpSTWVH
ZlM0QlpOeFZkVDJGUU96Y3h6NThmTVJPL25qa1k3dzlqb2lNWVNUZW94SDcvckZNWE9MMkQzM29R
KzExcjN0ZCs4WTN2dEYrCis5dmZEcmZIUDNIRTVPSkxySHVwMjdjSDZoTW5UclRQZi83ekY0NkFq
TFhGWThiMy9uQUVKRFlTSzhWMUxCQnZFTG54eGh2YjY1NzQKWFR0ejRLN2hQUitIRHUxdlIvdHBX
SWNPSCtwUG5uNnFVTHkzSXdKSXI2b0gvZjZtOGg1TSt0ZnhFVytpak45bXh4SEgrQzk2MS9xZgpE
WW5USW1QWnpmNmJnRmgrdUk3d3NqWHJoeWl0ejgvM2orZVAxdyt2bjM1KytQbDU3ZTQvOU4yZnZ0
OHo2NmVhOTQrTi9lMzBTK3Z0CnhkUDlESk4rU3ZycGZoams0SUcxZG1MbDJmNmUyemRlQ0NEakRt
QmYxWVhBVWdKajBJajkrUEg3YXJ3dGZza2RuOGYrZlJ5bGlEL0IKTVFhUVdEYldpY3M3M3ZHTzlw
V3ZmS1g5N0djL2E5LzYxcmN1bkIxMWNXSGpnWXVMYjQ4c0VXOXUvOHhuUHRNKzhwR1BES2VCamR1
UAp4NDg2WXBsWWZ3Z2d3eWV2bkJjMkZ2SFd0NzYxM2ZyUVQ5dWpweDVvNnpkK3NCM29QeGtQOXZC
eDZMcElRNjJ2L1BKUmpQaGZIK0tvClJvU0tmbVpXaXo5UkdPR2t2dzFrT0JleWg1eCtOT1RsOTRM
RVVZOSt3R000K3RIUHZCb09VY2E2RzlibjUvdkg4OGZyaDlkUFB6LzgKL0x5Rzl4LzY3MTc3cWVr
di80SjFzLzluUEd2cmZXZXAvOEd6YzJkUHR4ZlhaKzNJQ3crMDk5OStmbmpUNy9hZHY3NmFDNEZK
Qk9JbwpSMXhpWno5MjlHUG5md3doWXdDSjA2M3V1dXV1QzZkZ2pjdU02OFQxSno3eGlmYmhEMys0
ZmZ2YjM3N2trWTU0TS91bGpvQjg4cE9mCmJKLys5S2VIRUJMYkhjTkhaSXZZYnB4NkdDRmt5QjNq
cVZmaitZaFJlQlQ5Z1E5OG9EMzQ0SU50ODdmM3RkT1A5amRRSGYrYjRROEcKOXFPSlEvaVk5ZWRW
aEl2Ky9xcitCd2o3RTY0SGluNTJWbHZyS1NPQ1NEOEEwbytDOUk5K3ZSTFgvWmtaWWVOQXY3K2Y0
ZFUyZW5DSgpRQkpIUXM1R2lMRStQOTgvbmo5ZVA3eCsrdm5oNStjMXV2OFFmMXg1RENBYlBZREVF
WkdOMC8wL2xZajlvTWZ1Yis4ODhyL3QzWGU4CnZkMXd3dzNEamxqc2E3a1FtRW9nZHZESGd3aXh6
ZGo1SDYvanZqanlFZjhONzgwMzM5emU5YTUzRFNGZ1dPQ1ZmMktaY1oyNEtkNksKOGFVdmZXbkhi
ZVB5eDQ0ZHV4Qmd4dHZpZWx3K3RqVmU0dlB4WXp3Q01weUNGV2xwL0JqVFVoUVFmMkw5NHgvL2VO
djQvdmZiSTMvOApwM2JxM2tmYTJUZS90NTM3aS9lMTYyODUzdGI2KzB3MjRnOS85RXM4VGh6Wk9O
L2Z6N0t2UDUvT1JmTHZmVy8wNEJHQkpRd2lsTVFUCk1sTEhtYjVzUERQalRWcG4rbTN4QndtdHo4
LzNqK2VQMXcrdm4zNSsrUGw1cmU0L0RIR2k3ODhNKzBSOUgrbXAvenZWbnZydi9rdmMKUHp6UTdy
enVwZmIrZDc2dDNYYmJiUmYrUmtLOEtkaUZ3RlFDNDA1K2hKRDQzb3FkL2ZITjZISHFWZnpuVXJH
Ly81NzN2R2Y0cjNqSAp4NDMxWXIvLzR1dngva3RkeHhHUUt3WG83ZHVMejZPdWVQejRQSzVuVVZ4
OHhJUEg5WGlKTzkvKzlyY1BEeER2akgvMDBVZmJpLy96CnZmYk1nOTlzai9kR3hnMXZUMHZqdXE0
SkVDQkFnQUFCQWxVRjRxeVMrSjlEYjczKytuYnI3YmUyRXlmdTZoOG4ydlg5NjloeEcvZTkKcXZy
b2UzcUIyQytQUzN4dnhjNSsvSWRTOFJIaEkvN1hxamlpY2NjZGR3eEhRQ0tjWEh3Wjkrc3Z2djFT
WDhmN1BDNjFqVXN0Rzl1TgpqNmhwREVkUjR5eitLNjc0WXlRUk9MYWZ6eld1RUUrWWVMTktCSkJU
cDA0TnpjUURqTWxuKzFHVFN6Mncyd2dRSUVDQUFBRUNWUVRpCkY3T3hieFNubVVRSWlULzBGcWVz
eEU1YjNEYnVJRmJ4ME9mVkVZaWQrKzA3K21NQWlVZC80eHZmT0h3UHh2ZGw3UE5QY1Zsa094ZUgK
ajhnZS93OU1NeE02S3RqVGxRQUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86075</attachid>
            <date>2011-03-17 11:15:30 -0700</date>
            <delta_ts>2011-03-18 14:34:27 -0700</delta_ts>
            <desc>Fixes for mac 32bit</desc>
            <filename>newpatch.txt</filename>
            <type>text/plain</type>
            <size>56930</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBpbmxpbmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFu
aW0KIAogc3RhdGljIGlubGluZSBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2Uq
LCBjb25zdCBMZW5ndGgmIGZyb20sIGNvbnN0IExlbmd0aCYgdG8sIGRvdWJsZSBwcm9ncmVzcykK
IHsgIAotICAgIHJldHVybiB0by5ibGVuZChmcm9tLCBwcm9ncmVzcyk7CisgICAgcmV0dXJuIHRv
LmJsZW5kKGZyb20sIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpOwogfQogCiBzdGF0aWMg
aW5saW5lIExlbmd0aFNpemUgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNv
bnN0IExlbmd0aFNpemUmIGZyb20sIGNvbnN0IExlbmd0aFNpemUmIHRvLCBkb3VibGUgcHJvZ3Jl
c3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkocmV2aXNpb24gODAzODEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgUmlrIENhYmFuaWVyIChjYWJhbmllckBh
ZG9iZS5jb20pCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMwLDcgKzMxLDYgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IHVuZGVmaW5lZExlbmd0aCA9IC0xOwotY29uc3QgaW50
IHBlcmNlbnRTY2FsZUZhY3RvciA9IDEyODsKIGNvbnN0IGludCBpbnRNYXhGb3JMZW5ndGggPSAw
eDdmZmZmZmY7IC8vIG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQgaW50CiBjb25zdCBpbnQgaW50TWlu
Rm9yTGVuZ3RoID0gKC0weDdmZmZmZmYgLSAxKTsgLy8gbWluIHZhbHVlIGZvciBhIDI4LWJpdCBp
bnQKIApAQCAtNTIsMzQgKzUyLDQwIEBAIHB1YmxpYzoKICAgICBMZW5ndGgoaW50IHYsIExlbmd0
aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCiAgICAgICAgIDogbV9pbnRWYWx1ZSh2KSwgbV9xdWly
ayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCiAgICAgewotICAgICAgICBBU1NFUlQo
dCAhPSBQZXJjZW50KTsKKyAgICB9CisgICAgCisgICAgTGVuZ3RoKGZsb2F0IHYsIExlbmd0aFR5
cGUgdCwgYm9vbCBxID0gZmFsc2UpCisgICAgOiBtX2Zsb2F0VmFsdWUodiksIG1fcXVpcmsocSks
IG1fdHlwZSh0KSwgbV9pc0Zsb2F0KHRydWUpCisgICAgeyAgICAgICAgICAgIAogICAgIH0KIAog
ICAgIExlbmd0aChkb3VibGUgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHEgPSBmYWxzZSkKLSAgICAg
ICAgOiBtX3F1aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdChmYWxzZSkKLSAgICB7Ci0gICAg
ICAgIGlmIChtX3R5cGUgPT0gUGVyY2VudCkKLSAgICAgICAgICAgIG1faW50VmFsdWUgPSBzdGF0
aWNfY2FzdDxpbnQ+KHYqcGVyY2VudFNjYWxlRmFjdG9yKTsKLSAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICBtX2lzRmxvYXQgPSB0cnVlOyAgICAgICAgICAgIAotICAgICAgICAgICAgbV9mbG9h
dFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOwotICAgICAgIH0KKyAgICAgICAgOiBtX3F1
aXJrKHEpLCBtX3R5cGUodCksIG1faXNGbG9hdCh0cnVlKQorICAgIHsgICAgICAgICAgIAorICAg
ICAgICBtX2Zsb2F0VmFsdWUgPSBzdGF0aWNfY2FzdDxmbG9hdD4odik7ICAgIAogICAgIH0KIAog
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMZW5ndGgmIG8pIGNvbnN0IHsgcmV0dXJuIChnZXRG
bG9hdFZhbHVlKCkgPT0gby5nZXRGbG9hdFZhbHVlKCkpICYmIChtX3R5cGUgPT0gby5tX3R5cGUp
ICYmIChtX3F1aXJrID09IG8ubV9xdWlyayk7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
TGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAoZ2V0RmxvYXRWYWx1ZSgpICE9IG8uZ2V0RmxvYXRW
YWx1ZSgpKSB8fCAobV90eXBlICE9IG8ubV90eXBlKSB8fCAobV9xdWlyayAhPSBvLm1fcXVpcmsp
OyB9CiAKKyAgICBjb25zdCBMZW5ndGgmIG9wZXJhdG9yKj0oZmxvYXQgdikKKyAgICB7ICAgICAg
ICAKKyAgICAgICAgaWYgKG1faXNGbG9hdCkKKyAgICAgICAgICAgIG1fZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGZsb2F0PihtX2Zsb2F0VmFsdWUqdik7CisgICAgICAgIGVsc2UgICAgICAgIAor
ICAgICAgICAgICAgbV9pbnRWYWx1ZSA9IHN0YXRpY19jYXN0PGludD4obV9pbnRWYWx1ZSp2KTsK
KyAgICAgICAgCisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgCiAgICAgaW50IHZh
bHVlKCkgY29uc3QgewotICAgICAgICBBU1NFUlQodHlwZSgpICE9IFBlcmNlbnQpOwotICAgICAg
ICByZXR1cm4gcmF3VmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIGdldEludFZhbHVlKCk7CiAgICAg
fQogCi0gICAgaW50IHJhd1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gZ2V0SW50VmFsdWUoKTsgfQot
Ci0gICAgZG91YmxlIHBlcmNlbnQoKSBjb25zdAorICAgIGZsb2F0IHBlcmNlbnQoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKHR5cGUoKSA9PSBQZXJjZW50KTsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4ocmF3VmFsdWUoKSkgLyBwZXJjZW50U2NhbGVGYWN0b3I7Cisg
ICAgICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCk7CiAgICAgfQogCiAgICAgTGVuZ3RoVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGVuZ3RoVHlwZT4obV90eXBlKTsgfQpA
QCAtOTQsMTggKzEwMCwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCghdmFsdWUgfHwgdHlwZSgpICE9IFBlcmNlbnQpOwog
ICAgICAgICBzZXRWYWx1ZShGaXhlZCwgdmFsdWUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0VmFs
dWUoTGVuZ3RoVHlwZSB0LCBkb3VibGUgdmFsdWUpCisgICAgdm9pZCBzZXRWYWx1ZShMZW5ndGhU
eXBlIHQsIGZsb2F0IHZhbHVlKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdDsKLSAgICAgICAg
bV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKTsKKyAgICAgICAgbV9mbG9h
dFZhbHVlID0gdmFsdWU7CiAgICAgICAgIG1faXNGbG9hdCA9IHRydWU7ICAgIAogICAgIH0KIAot
ICAgIHZvaWQgc2V0VmFsdWUoZG91YmxlIHZhbHVlKQorICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQg
dmFsdWUpCiAgICAgewogICAgICAgICAqdGhpcyA9IExlbmd0aCh2YWx1ZSwgRml4ZWQpOwogICAg
IH0KQEAgLTExOSw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6
CiAgICAgICAgICAgICAgICAgaWYgKHJvdW5kUGVyY2VudGFnZXMpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kKG1heFZhbHVlICogcGVyY2VudCgpIC8g
MTAwLjApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWUgKiByYXdWYWx1ZSgpIC8g
KDEwMCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCk7CiAgICAgICAgICAgICBj
YXNlIEF1dG86CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlOwogICAgICAgICAgICAg
ZGVmYXVsdDoKQEAgLTEzNSw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYXNlIFBl
cmNlbnQ6CiAgICAgICAgICAgICAgICAgaWYgKHJvdW5kUGVyY2VudGFnZXMpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kKG1heFZhbHVlICogcGVyY2Vu
dCgpIC8gMTAwLjApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWUgKiByYXdWYWx1
ZSgpIC8gKDEwMCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMCk7CiAgICAgICAg
ICAgICBjYXNlIEF1dG86CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJl
dHVybiAwOwpAQCAtMTU2LDEwICsxNjEsMTYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVlKCkgPT0gdW5k
ZWZpbmVkTGVuZ3RoOyB9Ci0gICAgYm9vbCBpc1plcm8oKSBjb25zdCB7IHJldHVybiAhZ2V0SW50
VmFsdWUoKTsgfQotICAgIGJvb2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1ZhbHVl
KCkgPiAwOyB9Ci0gICAgYm9vbCBpc05lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUo
KSA8IDA7IH0KKyAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKSA9
PSB1bmRlZmluZWRMZW5ndGg7IH0KKyAgICBib29sIGlzWmVybygpIGNvbnN0IAorICAgIHsgCisg
ICAgICAgIGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICByZXR1cm4gIW1fZmxvYXRWYWx1ZTsg
CisgICAgICAgIAorICAgICAgICByZXR1cm4gIW1faW50VmFsdWU7CisgICAgfQorICAgIGJvb2wg
aXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsb2F0VmFsdWUoKSA+IDA7IH0KKyAgICBi
b29sIGlzTmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPCAwOyB9CiAK
ICAgICBib29sIGlzQXV0bygpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdXRvOyB9CiAgICAg
Ym9vbCBpc1JlbGF0aXZlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFJlbGF0aXZlOyB9CkBA
IC0xNjcsNyArMTc4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNGaXhlZCgpIGNvbnN0IHsgcmV0
dXJuIHR5cGUoKSA9PSBGaXhlZDsgfQogICAgIGJvb2wgaXNJbnRyaW5zaWNPckF1dG8oKSBjb25z
dCB7IHJldHVybiB0eXBlKCkgPT0gQXV0byB8fCB0eXBlKCkgPT0gTWluSW50cmluc2ljIHx8IHR5
cGUoKSA9PSBJbnRyaW5zaWM7IH0KIAotICAgIExlbmd0aCBibGVuZChjb25zdCBMZW5ndGgmIGZy
b20sIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICBMZW5ndGggYmxlbmQoY29uc3QgTGVuZ3Ro
JiBmcm9tLCBmbG9hdCBwcm9ncmVzcykgY29uc3QKICAgICB7CiAgICAgICAgIC8vIEJsZW5kIHR3
byBsZW5ndGhzIHRvIHByb2R1Y2UgYSBuZXcgbGVuZ3RoIHRoYXQgaXMgaW4gYmV0d2VlbiB0aGVt
LiAgVXNlZCBmb3IgYW5pbWF0aW9uLgogICAgICAgICBpZiAoIWZyb20uaXNaZXJvKCkgJiYgIWlz
WmVybygpICYmIGZyb20udHlwZSgpICE9IHR5cGUoKSkKQEAgLTE4MSwxMyArMTkyLDEzIEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHJlc3VsdFR5cGUgPSBmcm9tLnR5cGUoKTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChyZXN1bHRUeXBlID09IFBlcmNlbnQpIHsKLSAgICAgICAgICAgIGRvdWJsZSBm
cm9tUGVyY2VudCA9IGZyb20uaXNaZXJvKCkgPyAwLiA6IGZyb20ucGVyY2VudCgpOwotICAgICAg
ICAgICAgZG91YmxlIHRvUGVyY2VudCA9IGlzWmVybygpID8gMC4gOiBwZXJjZW50KCk7CisgICAg
ICAgICAgICBmbG9hdCBmcm9tUGVyY2VudCA9IGZyb20uaXNaZXJvKCkgPyAwLmYgOiBmcm9tLnBl
cmNlbnQoKTsKKyAgICAgICAgICAgIGZsb2F0IHRvUGVyY2VudCA9IGlzWmVybygpID8gMC5mIDog
cGVyY2VudCgpOwogICAgICAgICAgICAgcmV0dXJuIExlbmd0aChmcm9tUGVyY2VudCArICh0b1Bl
cmNlbnQgLSBmcm9tUGVyY2VudCkgKiBwcm9ncmVzcywgUGVyY2VudCk7CiAgICAgICAgIH0gCiAg
ICAgICAgICAgICAKLSAgICAgICAgZG91YmxlIGZyb21WYWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAw
IDogZnJvbS52YWx1ZSgpOwotICAgICAgICBkb3VibGUgdG9WYWx1ZSA9IGlzWmVybygpID8gMCA6
IHZhbHVlKCk7CisgICAgICAgIGZsb2F0IGZyb21WYWx1ZSA9IGZyb20uaXNaZXJvKCkgPyAwLmYg
OiBmcm9tLnZhbHVlKCk7CisgICAgICAgIGZsb2F0IHRvVmFsdWUgPSBpc1plcm8oKSA/IDAuZiA6
IHZhbHVlKCk7CiAgICAgICAgIHJldHVybiBMZW5ndGgoZnJvbVZhbHVlICsgKHRvVmFsdWUgLSBm
cm9tVmFsdWUpICogcHJvZ3Jlc3MsIHJlc3VsdFR5cGUpOwogICAgIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAkocmV2aXNpb24g
ODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1ICsz
MCwxNSBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gVHJhbnNsYXRlCiAgICAgICAg
IHJldHVybiB0aGlzOwogICAgIAogICAgIGlmIChibGVuZFRvSWRlbnRpdHkpCi0gICAgICAgIHJl
dHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShMZW5ndGgobV94LnR5cGUo
KSkuYmxlbmQobV94LCBwcm9ncmVzcyksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoKG1feS50eXBlKCkpLmJsZW5kKG1feSwgcHJvZ3Jl
c3MpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExlbmd0aChtX3oudHlwZSgpKS5ibGVuZChtX3osIHByb2dyZXNzKSwgbV90eXBlKTsKKyAgICAg
ICAgcmV0dXJuIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKExlbmd0aChtX3gu
dHlwZSgpKS5ibGVuZChtX3gsIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChtX3ku
dHlwZSgpKS5ibGVuZChtX3ksIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChtX3ou
dHlwZSgpKS5ibGVuZChtX3osIHN0YXRpY19jYXN0PGZsb2F0Pihwcm9ncmVzcykpLCBtX3R5cGUp
OwogCiAgICAgY29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBzdGF0
aWNfY2FzdDxjb25zdCBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qPihmcm9tKTsKICAgICBM
ZW5ndGggZnJvbVggPSBmcm9tT3AgPyBmcm9tT3AtPm1feCA6IExlbmd0aChtX3gudHlwZSgpKTsK
ICAgICBMZW5ndGggZnJvbVkgPSBmcm9tT3AgPyBmcm9tT3AtPm1feSA6IExlbmd0aChtX3kudHlw
ZSgpKTsKICAgICBMZW5ndGggZnJvbVogPSBmcm9tT3AgPyBmcm9tT3AtPm1feiA6IExlbmd0aCht
X3oudHlwZSgpKTsKLSAgICByZXR1cm4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVh
dGUobV94LmJsZW5kKGZyb21YLCBwcm9ncmVzcyksIG1feS5ibGVuZChmcm9tWSwgcHJvZ3Jlc3Mp
LCBtX3ouYmxlbmQoZnJvbVosIHByb2dyZXNzKSwgbV90eXBlKTsKKyAgICByZXR1cm4gVHJhbnNs
YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUobV94LmJsZW5kKGZyb21YLCBzdGF0aWNfY2Fz
dDxmbG9hdD4ocHJvZ3Jlc3MpKSwgbV95LmJsZW5kKGZyb21ZLCBzdGF0aWNfY2FzdDxmbG9hdD4o
cHJvZ3Jlc3MpKSwgbV96LmJsZW5kKGZyb21aLCBzdGF0aWNfY2FzdDxmbG9hdD4ocHJvZ3Jlc3Mp
KSwgbV90eXBlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVt
bihpbnQgZQogCiAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBjZWxsTG9naWNhbFdpZHRoID0g
Y2VsbC0+c3R5bGVPckNvbExvZ2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogV2hhdCBpcyB0aGlzIGFyYml0cmFyeSB2YWx1ZT8KLSAgICAgICAgICAgICAgICAgICAg
aWYgKGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSA+IDMyNzYwKQorICAgICAgICAgICAgICAg
ICAgICBpZiAoY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gMzI3NjApCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoLnNldFZhbHVlKDMyNzYwKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNOZWdhdGl2ZSgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgwKTsKQEAgLTEwNSwxMyArMTA1
LDEzIEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnQgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICghY29s
dW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRoLnJh
d1ZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICgh
Y29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBjZWxsTG9naWNhbFdpZHRo
LnZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVlKCkpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGggPSBjZWxsTG9naWNh
bFdpZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgUmVsYXRpdmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogTmVl
ZCB0byB1bmRlcnN0YW5kIHRoaXMgY2FzZSBhbmQgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBj
b21wYXJlIHZhbHVlcwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYXJlIG5vdCBu
ZWNlc3NhcmlseSBvZiB0aGUgc2FtZSB0eXBlLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGNlbGxMb2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2
ZSgpICYmIGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lk
dGgucmF3VmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbExvZ2ljYWxX
aWR0aC5pc0F1dG8oKSB8fCAoY2VsbExvZ2ljYWxXaWR0aC5pc1JlbGF0aXZlKCkgJiYgY2VsbExv
Z2ljYWxXaWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0g
Y2VsbExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjMyLDE2ICsyMzIsMTYgQEAgdm9pZCBBdXRvVGFi
bGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogCiAgICAgLy8gV2Ugc3Vic3RpdHV0ZSAwIHBl
cmNlbnQgYnkgKGVwc2lsb24gLyBwZXJjZW50U2NhbGVGYWN0b3IpIHBlcmNlbnQgaW4gdHdvIHBs
YWNlcyBiZWxvdyB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgogICAgIC8vIEZJWE1FOiBIYW5k
bGUgdGhlIDAlIGNhc2VzIHByb3Blcmx5LgotICAgIGNvbnN0IGludCBlcHNpbG9uID0gMTsKKyAg
ICBjb25zdCBmbG9hdCBlcHNpbG9uID0gMSAvIDEyOC4wZjsKIAotICAgIGludCByZW1haW5pbmdQ
ZXJjZW50ID0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yOworICAgIGZsb2F0IHJlbWFpbmluZ1Bl
cmNlbnQgPSAxMDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheW91dFN0cnVjdC5z
aXplKCk7ICsraSkgewogICAgICAgICBtaW5XaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZl
Y3RpdmVNaW5Mb2dpY2FsV2lkdGg7CiAgICAgICAgIG1heFdpZHRoICs9IG1fbGF5b3V0U3RydWN0
W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgaWYgKHNjYWxlQ29sdW1ucykg
ewogICAgICAgICAgICAgaWYgKG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0
aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gbWluKG1fbGF5
b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpLCByZW1haW5pbmdQ
ZXJjZW50KTsKLSAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY2FsV2lkdGggPSBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWF4TG9naWNhbFdpZHRoKSAqIDEw
MCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIG1heChwZXJjZW50LCBlcHNpbG9uKTsKKyAgICAgICAg
ICAgICAgICBmbG9hdCBwZXJjZW50ID0gbWluKHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0
cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpKSwgcmVtYWluaW5nUGVyY2Vu
dCk7CisgICAgICAgICAgICAgICAgZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgLyBt
YXgocGVyY2VudCwgZXBzaWxvbik7CiAgICAgICAgICAgICAgICAgbWF4UGVyY2VudCA9IG1heChs
b2dpY2FsV2lkdGgsICBtYXhQZXJjZW50KTsKICAgICAgICAgICAgICAgICByZW1haW5pbmdQZXJj
ZW50IC09IHBlcmNlbnQ7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTI1MCw3ICsyNTAsNyBAQCB2
b2lkIEF1dG9UYWJsZUxheW91dDo6Y29tcHV0ZVByZWZlcnJlZExvCiAgICAgfQogCiAgICAgaWYg
KHNjYWxlQ29sdW1ucykgewotICAgICAgICBtYXhOb25QZXJjZW50ID0gbWF4Tm9uUGVyY2VudCAq
IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIG1heChyZW1haW5pbmdQZXJjZW50LCBlcHNpbG9u
KTsKKyAgICAgICAgbWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgLyBtYXgocmVt
YWluaW5nUGVyY2VudCwgZXBzaWxvbik7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRo
LCBzdGF0aWNfY2FzdDxpbnQ+KG1pbihtYXhOb25QZXJjZW50LCBJTlRfTUFYIC8gMi4wZikpKTsK
ICAgICAgICAgbWF4V2lkdGggPSBtYXgobWF4V2lkdGgsIHN0YXRpY19jYXN0PGludD4obWluKG1h
eFBlcmNlbnQsIElOVF9NQVggLyAyLjBmKSkpOwogICAgIH0KQEAgLTI2Niw2ICsyNjYsMTAgQEAg
dm9pZCBBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogICAgICAgICBtaW5XaWR0
aCA9IG1heChtaW5XaWR0aCwgdGFibGVMb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIG1h
eFdpZHRoID0gbWluV2lkdGg7CiAgICAgfQorICAgIAorICAgIC8vIGlmIHRoZXJlIHdhcyBubyBy
ZW1haW5pbmcgcGVyY2VudCwgbWF4V2lkdGggaXMgaW52YWxpZC4KKyAgICBpZiAoIXJlbWFpbmlu
Z1BlcmNlbnQgJiYgbWF4Tm9uUGVyY2VudCkKKyAgICAgICAgbWF4V2lkdGggPSBpbnRNYXhGb3JM
ZW5ndGg7ICAgICAgICAKIH0KIAogLyoKQEAgLTMwMCw3ICszMDQsNyBAQCBpbnQgQXV0b1RhYmxl
TGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgIHNpemVfdCBsYXN0Q29sID0gZWZm
Q29sOwogICAgICAgICBpbnQgY2VsbE1pbkxvZ2ljYWxXaWR0aCA9IGNlbGwtPm1pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwogICAgICAgICBmbG9hdCBj
ZWxsTWF4TG9naWNhbFdpZHRoID0gY2VsbC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgKyBz
cGFjaW5nSW5Sb3dEaXJlY3Rpb247Ci0gICAgICAgIGludCB0b3RhbFBlcmNlbnQgPSAwOworICAg
ICAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogICAgICAgICBpbnQgc3Bhbk1pbkxvZ2ljYWxX
aWR0aCA9IDA7CiAgICAgICAgIGZsb2F0IHNwYW5NYXhMb2dpY2FsV2lkdGggPSAwOwogICAgICAg
ICBib29sIGFsbENvbHNBcmVQZXJjZW50ID0gdHJ1ZTsKQEAgLTMxMiw3ICszMTYsNyBAQCBpbnQg
QXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgICAgICBMYXlvdXQm
IGNvbHVtbkxheW91dCA9IG1fbGF5b3V0U3RydWN0W2xhc3RDb2xdOwogICAgICAgICAgICAgc3dp
dGNoIChjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICAgICAgY2Fz
ZSBQZXJjZW50OgotICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQu
bG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9
IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIGFs
bENvbHNBcmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBGaXhlZDoKQEAgLTMzOSw3ICszNDMsNyBAQCBpbnQgQXV0b1RhYmxlTGF5b3V0Ojpj
YWxjRWZmZWN0aXZlTG9naWNhCiAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkxheW91dC5lZmZl
Y3RpdmVMb2dpY2FsV2lkdGggPSBMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgYWxsQ29s
c0FyZVBlcmNlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVtbkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lk
dGgucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGNvbHVt
bkxheW91dC5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAg
IGFsbENvbHNBcmVGaXhlZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYg
KCFjb2x1bW5MYXlvdXQuZW1wdHlDZWxsc09ubHkpCkBAIC0zNTQsMTQgKzM1OCwxNCBAQCBpbnQg
QXV0b1RhYmxlTGF5b3V0OjpjYWxjRWZmZWN0aXZlTG9naWNhCiAKICAgICAgICAgLy8gYWRqdXN0
IHRhYmxlIG1heCB3aWR0aCBpZiBuZWVkZWQKICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgu
aXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNh
bFdpZHRoLnJhd1ZhbHVlKCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKKyAgICAgICAgICAgIGlm
ICh0b3RhbFBlcmNlbnQgPiBjZWxsTG9naWNhbFdpZHRoLnBlcmNlbnQoKSB8fCBhbGxDb2xzQXJl
UGVyY2VudCkgewogICAgICAgICAgICAgICAgIC8vIGNhbid0IHNhdGlmeSB0aGlzIGNvbmRpdGlv
biwgdHJlYXQgYXMgdmFyaWFibGUKICAgICAgICAgICAgICAgICBjZWxsTG9naWNhbFdpZHRoID0g
TGVuZ3RoKCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1heExvZ2lj
YWxXaWR0aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIG1heChzcGFuTWF4TG9naWNhbFdpZHRoLCBj
ZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvciAvIGNlbGxMb2dp
Y2FsV2lkdGgucmF3VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbFdpZHRoID0g
bWF4KG1heExvZ2ljYWxXaWR0aCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1heChzcGFuTWF4TG9naWNh
bFdpZHRoLCBjZWxsTWF4TG9naWNhbFdpZHRoKSAqIDEwMCAgLyBjZWxsTG9naWNhbFdpZHRoLnBl
cmNlbnQoKSkpOwogCiAgICAgICAgICAgICAgICAgLy8gYWxsIG5vbiBwZXJjZW50IGNvbHVtbnMg
aW4gdGhlIHNwYW4gZ2V0IHBlcmNlbnQgdmFsdWVzIHRvIHN1bSB1cCBjb3JyZWN0bHkuCi0gICAg
ICAgICAgICAgICAgaW50IHBlcmNlbnRNaXNzaW5nID0gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpIC0gdG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnRNaXNzaW5n
ID0gY2VsbExvZ2ljYWxXaWR0aC5wZXJjZW50KCkgLSB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAg
ICAgICAgZmxvYXQgdG90YWxXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBwb3MgPSBlZmZDb2w7IHBvcyA8IGxhc3RDb2w7ICsrcG9zKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJj
ZW50KCkpCkBAIC0zNzAsNyArMzc0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVj
dGl2ZUxvZ2ljYQogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3MgPSBlZmZDb2w7
IHBvcyA8IGxhc3RDb2wgJiYgdG90YWxXaWR0aCA+IDA7ICsrcG9zKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGlmICghbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQ
ZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZXJjZW50ID0gc3RhdGlj
X2Nhc3Q8aW50PihwZXJjZW50TWlzc2luZyAqIHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0
cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgLyB0b3RhbFdpZHRoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSBwZXJjZW50TWlzc2luZyAqIHN0YXRp
Y19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0
aCkgLyB0b3RhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXaWR0aCAtPSBt
X2xheW91dFN0cnVjdFtwb3NdLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHBlcmNlbnRNaXNzaW5nIC09IHBlcmNlbnQ7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocGVyY2VudCA+IDApCkBAIC00OTEsNyArNDk1LDcgQEAgdm9pZCBBdXRvVGFi
bGVMYXlvdXQ6OmxheW91dCgpCiAgICAgaW50IG51bUZpeGVkID0gMDsKICAgICBmbG9hdCB0b3Rh
bEF1dG8gPSAwOwogICAgIGZsb2F0IHRvdGFsRml4ZWQgPSAwOwotICAgIGludCB0b3RhbFBlcmNl
bnQgPSAwOworICAgIGZsb2F0IHRvdGFsUGVyY2VudCA9IDA7CiAgICAgaW50IGFsbG9jQXV0byA9
IDA7CiAgICAgdW5zaWduZWQgbnVtQXV0b0VtcHR5Q2VsbHNPbmx5ID0gMDsKIApAQCAtNTA0LDcg
KzUwOCw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICBzd2l0Y2gg
KGxvZ2ljYWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAg
ICAgaGF2ZVBlcmNlbnQgPSB0cnVlOwotICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2lj
YWxXaWR0aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IGxvZ2ljYWxX
aWR0aC5wZXJjZW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGl2
ZToKICAgICAgICAgICAgIHRvdGFsUmVsYXRpdmUgKz0gbG9naWNhbFdpZHRoLnZhbHVlKCk7CkBA
IC01MzgsOSArNTQyLDkgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmxheW91dCgpCiAgICAgICAg
ICAgICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggPSBjZWxsTG9n
aWNhbFdpZHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBl
cmNlbnQgPiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVy
Y2VudCA+IDEwMCkgewogICAgICAgICAgICAgLy8gcmVtb3ZlIG92ZXJhbGxvY2F0ZWQgc3BhY2Ug
ZnJvbSB0aGUgbGFzdCBjb2x1bW5zCi0gICAgICAgICAgICBpbnQgZXhjZXNzID0gdGFibGVMb2dp
Y2FsV2lkdGggKiAodG90YWxQZXJjZW50IC0gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSAvICgx
MDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxl
TG9naWNhbFdpZHRoICogKHRvdGFsUGVyY2VudCAtIDEwMCkgLyAxMDA7CiAgICAgICAgICAgICBm
b3IgKGludCBpID0gbkVmZkNvbHMgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgICAg
IGlmIChtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkp
IHsKICAgICAgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lkdGggPSBtX2xheW91dFN0
cnVjdFtpXS5jb21wdXRlZExvZ2ljYWxXaWR0aDsKQEAgLTYwNywxMyArNjExLDEzIEBAIHZvaWQg
QXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIH0KIAogICAgIC8vIHNwcmVhZCBvdmVyIHBl
cmNlbnQgY29sdW1zCi0gICAgaWYgKGF2YWlsYWJsZSA+IDAgJiYgbV9oYXNQZXJjZW50ICYmIHRv
dGFsUGVyY2VudCA8IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgeworICAgIGlmIChhdmFpbGFi
bGUgPiAwICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDApIHsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBuRWZmQ29sczsgKytpKSB7CiAgICAgICAgICAgICBMZW5n
dGgmIGxvZ2ljYWxXaWR0aCA9IG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZUxvZ2ljYWxXaWR0
aDsKICAgICAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5y
YXdWYWx1ZSgpIC8gdG90YWxQZXJjZW50OworICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNh
bFdpZHRoID0gYXZhaWxhYmxlICogbG9naWNhbFdpZHRoLnBlcmNlbnQoKSAvIHRvdGFsUGVyY2Vu
dDsKICAgICAgICAgICAgICAgICBhdmFpbGFibGUgLT0gY2VsbExvZ2ljYWxXaWR0aDsKLSAgICAg
ICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgdG90YWxQZXJjZW50IC09IGxvZ2ljYWxXaWR0aC5wZXJjZW50KCk7CiAgICAg
ICAgICAgICAgICAgbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lkdGggKz0gY2Vs
bExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICBpZiAoIWF2YWlsYWJsZSB8fCAhdG90YWxQ
ZXJjZW50KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTgsNyArMTE4LDggQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFy
cmF5KGludAogICAgICAgICAgICAgICAgICAgICBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1u
ID0gbV90YWJsZS0+c3Bhbk9mRWZmQ29sKGN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoKHcuaXNGaXhlZCgpIHx8IHcuaXNQZXJj
ZW50KCkpICYmIHcuaXNQb3NpdGl2ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fd2lkdGhb
Y3VycmVudEVmZmVjdGl2ZUNvbHVtbl0uc2V0VmFsdWUody50eXBlKCksIHcucmF3VmFsdWUoKSAq
IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW4pOworICAgICAgICAgICAgICAgICAgICBtX3dp
ZHRoW2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5dID0gdzsKKyAgICAgICAgICAgICAgICAgICAgbV93
aWR0aFtjdXJyZW50RWZmZWN0aXZlQ29sdW1uXSAqPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29s
dW1uOwogICAgICAgICAgICAgICAgICAgICB1c2VkV2lkdGggKz0gZWZmV2lkdGggKiBzcGFuSW5D
dXJyZW50RWZmZWN0aXZlQ29sdW1uOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBzcGFuIC09IHNwYW5JbkN1cnJlbnRFZmZlY3RpdmVDb2x1bW47CkBAIC0xNjQsMTAgKzE2NSwx
MSBAQCBpbnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkoaW50CiAgICAgICAgICAg
ICAgICAgaW50IHVzZWRTcGFuID0gMDsKICAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAg
ICAgICAgICAgICAgd2hpbGUgKHVzZWRTcGFuIDwgc3BhbiAmJiBjQ29sICsgaSA8IG5FZmZDb2xz
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNv
bChjQ29sICsgaSk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGVTcGFuID0gbV90YWJsZS0+
c3Bhbk9mRWZmQ29sKGNDb2wgKyBpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBzZXQg
aWYgbm8gY29sIGVsZW1lbnQgaGFzIGFscmVhZHkgc2V0IGl0LgogICAgICAgICAgICAgICAgICAg
ICBpZiAobV93aWR0aFtjQ29sICsgaV0uaXNBdXRvKCkgJiYgdy50eXBlKCkgIT0gQXV0bykgewot
ICAgICAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0uc2V0VmFsdWUody50eXBl
KCksIHcucmF3VmFsdWUoKSAqIGVTcGFuIC8gc3Bhbik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBtX3dpZHRoW2NDb2wgKyBpXSA9IHc7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3dpZHRo
W2NDb2wgKyBpXSAqPSBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vk
V2lkdGggKz0gZWZmV2lkdGggKiBlU3BhbiAvIHNwYW47CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgdXNlZFNwYW4gKz0gZVNwYW47CkBAIC0yMzQsNyArMjM2LDcg
QEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGludCBhdXRvU3BhbiA9IDA7
CiAgICAgaW50IHRvdGFsRml4ZWRXaWR0aCA9IDA7CiAgICAgaW50IHRvdGFsUGVyY2VudFdpZHRo
ID0gMDsKLSAgICBpbnQgdG90YWxSYXdQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBlcmNl
bnQgPSAwOwogCiAgICAgLy8gQ29tcHV0ZSByZXF1aXJlbWVudHMgYW5kIHRyeSB0byBzYXRpc2Z5
IGZpeGVkIGFuZCBwZXJjZW50IHdpZHRocy4KICAgICAvLyBQZXJjZW50YWdlcyBhcmUgb2YgdGhl
IHRhYmxlJ3Mgd2lkdGgsIHNvIGZvciBleGFtcGxlCkBAIC0yNDcsNyArMjQ5LDcgQEAgdm9pZCBG
aXhlZFRhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0u
aXNQZXJjZW50KCkpIHsKICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0uY2Fs
Y1ZhbHVlKHRhYmxlTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRo
ICs9IGNhbGNXaWR0aFtpXTsKLSAgICAgICAgICAgIHRvdGFsUmF3UGVyY2VudCArPSBtX3dpZHRo
W2ldLnJhd1ZhbHVlKCk7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV93aWR0aFtpXS5w
ZXJjZW50KCk7CiAgICAgICAgIH0gZWxzZSBpZiAobV93aWR0aFtpXS5pc0F1dG8oKSkgewogICAg
ICAgICAgICAgbnVtQXV0bysrOwogICAgICAgICAgICAgYXV0b1NwYW4gKz0gbV90YWJsZS0+c3Bh
bk9mRWZmQ29sKGkpOwpAQCAtMjcwLDExICsyNzIsMTEgQEAgdm9pZCBGaXhlZFRhYmxlTGF5b3V0
OjpsYXlvdXQoKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHRvdGFsUmF3UGVyY2VudCkgeworICAgICAgICAg
ICAgaWYgKHRvdGFsUGVyY2VudCkgewogICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudFdpZHRo
ID0gMDsKICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5FZmZDb2xzOyBpKysp
IHsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1fd2lkdGhbaV0uaXNQZXJjZW50KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNhbGNXaWR0aFtpXSA9IG1fd2lkdGhbaV0ucmF3VmFsdWUo
KSAqICh0YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFJhd1BlcmNl
bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnBl
cmNlbnQoKSAqICh0YWJsZUxvZ2ljYWxXaWR0aCAtIHRvdGFsRml4ZWRXaWR0aCkgLyB0b3RhbFBl
cmNlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxj
V2lkdGhbaV07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAko
cmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVuZGVy
VGFibGVTZWN0aW9uOjphZGRDZWxsKFJlbmRlclQKICAgICAgICAgICAgIHN3aXRjaCAobG9naWNh
bEhlaWdodC50eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAg
ICAgICAgICAgICAgIGlmICghKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYmIGNS
b3dMb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkgPCBsb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgKGNSb3dMb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpICYm
IGNSb3dMb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSA8IGxvZ2ljYWxIZWlnaHQucGVyY2VudCgpKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JpZFttX2NSb3ddLmxvZ2ljYWxIZWlnaHQgPSBs
b2dpY2FsSGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgY2FzZSBGaXhlZDoKQEAgLTQzNCwyMiArNDM0LDIyIEBAIGludCBSZW5kZXJUYWJsZVNl
Y3Rpb246OmxheW91dFJvd3MoaW50IHQKICAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNh
bEhlaWdodC5pc0F1dG8oKSkKICAgICAgICAgICAgICAgICBudW1BdXRvKys7CiAgICAgICAgICAg
ICBlbHNlIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAg
ICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUo
KTsKKyAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWln
aHQucGVyY2VudCgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAg
ICAgICAgICAgIC8vIHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKICAgICAgICAgICAgIGludCBhZGQg
PSAwOwotICAgICAgICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwICog
cGVyY2VudFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3Rh
bFBlcmNlbnQsIDEwMCk7CiAgICAgICAgICAgICBpbnQgcmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93
UG9zWzBdOwogICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykg
ewogICAgICAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1fZ3JpZFtyXS5sb2dp
Y2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9
IG1pbihkaCwgKHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUo
KSAvICgxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpKSAtIHJoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaW50IHRvQWRkID0gbWluKGRoLCBzdGF0aWNfY2FzdDxpbnQ+KCh0b3RhbEhlaWdodCAqIG1f
Z3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCkpOwogICAgICAgICAg
ICAgICAgICAgICAvLyBJZiB0b0FkZCBpcyBuZWdhdGl2ZSwgdGhlbiB3ZSBkb24ndCB3YW50IHRv
IHNocmluayB0aGUgcm93ICh0aGlzIGJ1ZwogICAgICAgICAgICAgICAgICAgICAvLyBhZmZlY3Rl
ZCBPdXRsb29rIFdlYiBBY2Nlc3MpLgogICAgICAgICAgICAgICAgICAgICB0b0FkZCA9IG1heCgw
LCB0b0FkZCk7CiAgICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0FkZDsKICAgICAgICAgICAg
ICAgICAgICAgZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAt
PSBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAociA8IHRvdGFsUm93cyAtIDEpCiAg
ICAgICAgICAgICAgICAgICAgIHJoID0gbV9yb3dQb3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFd
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShy
ZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJE
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGhhc0JvcmRlclJhZGl1cygpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV90b3BMZWZ0
LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCku
aXNaZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdG9wUmln
aHQud2lkdGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX3RvcFJpZ2h0LndpZHRo
KCkuaXNaZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fYm90
dG9tTGVmdC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tTGVm
dC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlm
IChtX2JvdHRvbVJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV9i
b3R0b21SaWdodC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY2NSkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisy
MDExLTAzLTA5ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBnbWFpbC5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnIDU2MDUyOiBwZXJjZW50
YWdlcyBhcmUgaW5jb3JyZWN0bHkgcm91bmRlZCBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDUyCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQ6CisKIDIw
MTEtMDMtMDkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFn
ZS1ub24taW50ZWdlci1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gODAzODEpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBl
Y3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotNDE0Y2FhYTJlZTA5ODIz
ZmNjNmIxMjAwZDMwZWMxMjcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitjNmQ5MDU1MzQx
YTk5MDQ5MjljY2M0OTQ3NmM3YmQ5ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2Vy
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwMzgx
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWlu
dGVnZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDU4NQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0
NCkgc2l6ZSA5MTB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUg
MTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCw0OCkgc2l6ZSA5MTB4NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQorICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgMTAxeDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA5MDB4NAogICAgICAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDApIHNpemUgMTAweDQgW2JnY29sb3I9IzAwMDAwMDdGXQogICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCw1Nikgc2l6ZSA4OTB4NApAQCAtNDksNyArNDksNyBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
ODQpIHNpemUgODQweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsODgpIHNpemUgODM1eDQKLSAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBz
aXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsOTIpIHNpemUgODI1eDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsOTYpIHNpemUgODE1eDQKQEAgLTg0LDYxICs4NCw2MSBAQCBs
YXllciBhdCAoOCwxMjYpIHNpemUgMTAwMHgyMAogICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgw
LDApIHNpemUgMTAwMHgyMAogICAgIFJlbmRlclRhYmxlU2VjdGlvbiB7VEJPRFl9IGF0ICgwLDAp
IHNpemUgMTAwMHgyMAogICAgICAgUmVuZGVyVGFibGVSb3cge1RSfSBhdCAoMCwwKSBzaXplIDEw
MDB4MjAKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDAsMSkgc2l6ZSAxMXgxOCBb
Ymdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz0wIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDAsMSkgc2l6ZSAxMngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAg
Yz0wIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDExLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAw
RkYwMDdGXSBbcj0wIGM9MSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9
IGF0ICgxMiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBj
cz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMjEsMSkgc2l6ZSAxM3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFty
PTAgYz0yIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyLDEp
IHNpemUgMTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCiAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7
VER9IGF0ICgzNCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTMgcnM9
MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzUsMSkgc2l6ZSAxMHgx
OCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDQ0
LDEpIHNpemUgMTV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NCBycz0xIGNzPTFdCisg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NSwxKSBzaXplIDE2eDE4IFtiZ2NvbG9y
PSMwMDAwMDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNTksMSkgc2l6ZSAx
MHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz01IHJzPTEgY3M9MV0KKyAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDYxLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdG
XSBbcj0wIGM9NSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAi
Ci0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2OSwxKSBzaXplIDE3eDE4IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoNzEsMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02
IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0
eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDg2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYw
MDdGXSBbcj0wIGM9NyBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICg4OCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0x
XQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoOTYsMSkgc2l6ZSAyMHgxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAg
Yz04IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk4LDEpIHNp
emUgMjB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9
IGF0ICgxMTYsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05IHJzPTEg
Y3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDExOCwxKSBzaXplIDEweDE4
IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTkgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI2
LDEpIHNpemUgMjF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTI4LDEpIHNpemUgMjJ4MTggW2JnY29s
b3I9IzAwMDAwMDdGXSBbcj0wIGM9MTAgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTQ3LDEpIHNp
emUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTEgcnM9MSBjcz0xXQorICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTUwLDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAw
RkYwMDdGXSBbcj0wIGM9MTEgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTU3LDEpIHNpemUgMjN4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTIgcnM9MSBjcz0xXQorICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMTYwLDEpIHNpemUgMjR4MTggW2JnY29sb3I9IzAwMDAwMDdG
XSBbcj0wIGM9MTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTgwLDEwKSBzaXplIDEweDAgW2Jn
Y29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQotICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMTkwLDEpIHNpemUgMjV4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0w
IGM9MTQgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTg0LDEw
KSBzaXplIDEweDAgW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTMgcnM9MSBjcz0xXQorICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTk0LDEpIHNpemUgMjV4MTggW2JnY29sb3I9
IzAwMDAwMDdGXSBbcj0wIGM9MTQgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjE1LDEpIHNpemUg
MTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MTUgcnM9MSBjcz0xXQorICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjE5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYw
MDdGXSBbcj0wIGM9MTUgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjI1LDEpIHNpemUgMjd4MTgg
W2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTYgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMjI5LDEpIHNpemUgMjd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBb
cj0wIGM9MTYgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjUyLDEpIHNpemUgMTB4MTggW2JnY29s
b3I9IzAwRkYwMDdGXSBbcj0wIGM9MTcgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjU2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9
MTcgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjYyLDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAw
MDAwMDdGXSBbcj0wIGM9MTggcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoMjY2LDEpIHNpemUgMzB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MTggcnM9
MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5k
ZXJUYWJsZUNlbGwge1REfSBhdCAoMjkyLDEpIHNpemUgNzA4eDE4IFtyPTAgYz0xOSBycz0xIGNz
PTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyOTYsMSkgc2l6ZSA3MDR4MTgg
W3I9MCBjPTE5IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1p
bnRlZ2VyLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtl
ZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dn
b0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1s
c1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDda
RmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkz
eHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJ
SlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3
N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhU
elNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJk
OUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhD
RkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0
bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQ
eU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1
WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOApt
dXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRp
N1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZ
bVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxC
bk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1
egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9j
c241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9x
djhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNkM1k5
Y2Qza0g4Ti91enZvMXRoTW5oQkFnT0MxRkNTaThWb0NFb0VqUUM3amhraGR4eVExYzhDOGtsdmdU
a0xqaApFZ2tRTnlCVkJVRkJGRlZDYlZvRkphVTBLYVNFa2xMeTRyd250bmZ0N2U4NXlURzdqc2ZP
YU02YXgvdDhSbHJQN3N3NVo1N244K3pNCm51K2VNOTZWclg1cExnUUlFQ0JBZ0FBQkFnUUlFTGdL
QXF0WDRURThCQUVDQkFnUUlFQ0FBQUVDQkFZQkFjUTNBZ0VDQkFnUUlFQ0EKQUFFQ1YwMUFBTGxx
MUI2SUFBRUNCQWdRSUVDQUFBRUJ4UGNBQVFJRUNCQWdRSUFBQVFKWFRVQUF1V3JVSG9nQUFRSUVD
QkFnUUlBQQpBUUhFOXdBQkFnUUlFQ0JBZ0FBQkFsZE5RQUM1YXRRZWlBQUJBZ1FJRUNCQWdBQ0Iy
WlVJVms2dVhHa1I5MTlGZ2EyNy9kbVdxOGp0Cm9RZ1FJRUNBQUFFQ0JDWVdjQVJrWWxDYkkwQ0FB
QUVDQkFnUUlFQmd2b0FBTXQvR1BRUUlFQ0JBZ0FBQkFnUUlUQ3dnZ0V3TWFuTUUKQ0JBZ1FJQUFB
UUlFQ013WEVFRG0yN2lIQUFFQ0JBZ1FJRUNBQUlHSkJRU1FpVUZ0amdBQkFnUUlFQ0JBZ0FDQitR
SUN5SHdiOXhBZwpRSUFBQVFJRUNCQWdNTEdBQURJeHFNMFJJRUNBQUFFQ0JBZ1FJREJmUUFDWmIr
TWVBZ1FJRUNCQWdBQUJBZ1FtRmhCQUpnYTFPUUlFCkNCQWdRSUFBQVFJRTVnc0lJUE50M0VPQUFB
RUNCQWdRSUVDQXdNUUNBc2pFb0RaSGdBQUJBZ1FJRUNCQWdNQjhBUUZrdm8xN0NCQWcKUUlBQUFR
SUVDQkNZV0VBQW1SalU1Z2dRSUVDQUFBRUNCQWdRbUM4Z2dNeTNjUThCQWdRSUVDQkFnQUFCQWhN
TENDQVRnOW9jQVFJRQpDQkFnUUlBQUFRTHpCUVNRK1RidUlVQ0FBQUVDQkFnUUlFQmdZZ0VCWkdK
UW15TkFnQUFCQWdRSUVDQkFZTDZBQURMZnhqMEVDQkFnClFJQUFBUUlFQ0V3c0lJQk1ER3B6QkFn
UUlFQ0FBQUVDQkFqTUZ4QkE1dHU0aHdBQkFnUUlFQ0JBZ0FDQmlRVUVrSWxCYlk0QUFRSUUKQ0JB
Z1FJQUFnZmtDQXNoOEcvY1FJRUNBQUFFQ0JBZ1FJREN4Z0FBeU1hak5FU0JBZ0FBQkFnUUlFQ0F3
WDBBQW1XL2pIZ0lFQ0JBZwpRSUFBQVFJRUpoWVFRQ1lHdFRrQ0JBZ1FJRUNBQUFFQ0JPWUxDQ0R6
YmR4RGdBQUJBZ1FJRUNCQWdNREVBZ0xJeEtBMlI0QUFBUUlFCkNCQWdRSURBZkFFQlpMNk5ld2dR
SUVDQUFBRUNCQWdRbUZoQUFKa1kxT1lJRUNCQWdBQUJBZ1FJRUpndklJRE10M0VQQVFJRUNCQWcK
UUlBQUFRSVRDd2dnRTRQYUhBRUNCQWdRSUVDQUFBRUM4d1VFa1BrMjdpRkFnQUFCQWdRSUVDQkFZ
R0lCQVdSaVVKc2pRSUFBQVFJRQpDQkFnUUdDK2dBQXkzOFk5QkFnUUlFQ0FBQUVDQkFoTUxDQ0FU
QXhxY3dRSUVDQkFnQUFCQWdRSXpCY1FRT2JidUljQUFRSUVDQkFnClFJQUFnWWtGQkpDSlFXMk9B
QUVDQkFnUUlFQ0FBSUg1QWdMSWZCdjNFQ0JBZ0FBQkFnUUlFQ0F3c1lBQU1qR296UkVnUUlBQUFR
SUUKQ0JBZ01GOUFBSmx2NHg0Q0JBZ1FJRUNBQUFFQ0JDWVdFRUFtQnJVNUFnUUlFQ0JBZ0FBQkFn
VG1Dd2dnODIzY1E0QUFBUUlFQ0JBZwpRSURBeEFJQ3lNU2dOa2VBQUFFQ0JBZ1FJRUNBd0h3QkFX
UytqWHNJRUNCQWdBQUJBZ1FJRUpoWVFBQ1pHTlRtQ0JBZ1FJQUFBUUlFCkNCQ1lMeUNBekxkeER3
RUNCQWdRSUVDQUFBRUNFd3NJSUJPRDJod0JBZ1FJRUNCQWdBQUJBdk1GQkpENU5pbnZPWG55Wk1x
NkZFV0EKQUFFQ0JBZ1FJRURndFFnSUlLOUZ5VElFQ0JBZ1FJQUFBUUlFQ0V3aUlJQk13bWdqQkFn
UUlFQ0FBQUVDQkFpOEZnRUI1TFVvV1lZQQpBUUlFQ0JBZ1FJQUFnVWtFVnJiNjVYSmJXam01Y3Jt
NzNYZVZCYmJ1dnV5NHJuSTFIbzRBQVFJRUNCQWdRSURBWWdLT2dDem1aV2tDCkJBZ1FJRUNBQUFF
Q0JKWVFFRUNXd0xNcUFRSUVDQkFnUUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFF
a0NYd3JFcUEKQUFFQ0JBZ1FJRUNBd0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHly
RWlCQWdBQUJBZ1FJRUNDd21JQUFzcGlYcFFrUQpJRUNBQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFn
UUlBQUFRSUVDQ3dtSUlBczVtVnBBZ1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDCkJBZ1FJRUNB
QUFFQ2l3a0lJSXQ1V1pvQUFRSUVDQkFnUUlBQWdTVUVCSkFsOEt4S2dBQUJBZ1FJRUNCQWdNQmlB
Z0xJWWw2V0prQ0EKQUFFQ0JBZ1FJRUJnQ1FFQlpBazhxeElnUUlBQUFRSUVDQkFnc0ppQUFMS1ls
NlVKRUNCQWdBQUJBZ1FJRUZoQ1FBQlpBcytxQkFnUQpJRUNBQUFFQ0JBZ3NKaUNBTE9abGFRSUVD
QkFnUUlBQUFRSUVsaEFRUUpiQXN5b0JBZ1FJRUNCQWdBQUJBb3NKQ0NDTGVWbWFBQUVDCkJBZ1FJ
RUNBQUlFbEJBU1FKZkNzU29BQUFRSUVDQkFnUUlEQVlnSUN5R0plbGlaQWdBQUJBZ1FJRUNCQVlB
a0JBV1FKUEtzU0lFQ0EKQUFFQ0JBZ1FJTENZZ0FDeW1KZWxDUkFnUUlBQUFRSUVDQkJZUWtBQVdR
TFBxZ1FJRUNCQWdBQUJBZ1FJTENZZ2dDem1aV2tDQkFnUQpJRUNBQUFFQ0JKWVFFRUNXd0xNcUFR
SUVDQkFnUUlBQUFRS0xDUWdnaTNsWm1nQUJBZ1FJRUNCQWdBQ0JKUVFFa0NYd3JFcUFBQUVDCkJB
Z1FJRUNBd0dJQ0FzaGlYcFltUUlBQUFRSUVDQkFnUUdBSkFRRmtDVHlyRWlCQWdBQUJBZ1FJRUND
d21JQUFzcGlYcFFrUUlFQ0EKQUFFQ0JBZ1FXRUpBQUZrQ3o2b0VDQkFnUUlBQUFRSUVDQ3dtSUlB
czVtVnBBZ1FJRUNCQWdBQUJBZ1NXRUJCQWxzQ3pLZ0VDQkFnUQpJRUNBQUFFQ2l3a0lJSXQ1V1pv
QUFRSUVDQkFnUUlBQWdTVUVCSkFsOFA0Y3E1NDhlZkxQOGJBZWt3QUJBZ1FJRUNCQWdNQWtBZ0xJ
CkpJdzJRb0FBQVFJRUNCQWdRSURBYXhFUVFGNkxrbVVJRUNCQWdBQUJBZ1FJRUpoRVFBQ1poTkZH
Q0JBZ1FJQUFBUUlFQ0JCNExRSXIKVy8xeXVRVlhUcTVjN203M1hXV0JyYnN2TzY2clhJMkhJMENB
QUFFQ0JBZ1FJTENZZ0NNZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRQprQ1h3ckVxQUFBRUNCQWdR
SUVDQXdHSUNBc2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dt
SUFBCnNwaVhwUWtRSUVDQUFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1
bVZwQWdRSUVDQkFnQUFCQWdTV0VMamkKM3dGWll0dFdKVUNBQUFFQ0JBZ1FJRUNBd0E0QlIwQjJj
UGlDQUFFQ0JBZ1FJRUNBQUlIZEZCQkFkbFBYdGdrUUlFQ0FBQUVDQkFnUQoyQ0VnZ096ZzhBVUJB
Z1FJRUNCQWdBQUJBcnNwSUlEc3BxNXRFeUJBZ0FBQkFnUUlFQ0N3UTBBQTJjSGhDd0lFQ0JBZ1FJ
QUFBUUlFCmRsTkFBTmxOWGRzbVFJQUFBUUlFQ0JBZ1FHQ0hnQUN5ZzhNWEJBZ1FJRUNBQUFFQ0JB
anNwb0FBc3B1NnRrMkFBQUVDQkFnUUlFQ0EKd0E0QkFXUUhoeThJRUNCQWdBQUJBZ1FJRU5oTkFR
RmtOM1Z0bXdBQkFnUUlFQ0JBZ0FDQkhRSUN5QTRPWHhBZ1FJQUFBUUlFQ0JBZwpzSnNDQXNodTZ0
bzJBUUlFQ0JBZ1FJQUFBUUk3QkFTUUhSeStJRUNBQUFFQ0JBZ1FJRUJnTndVRWtOM1V0VzBDQkFn
UUlFQ0FBQUVDCkJIWUlDQ0E3T0h4QmdBQUJBZ1FJRUNCQWdNQnVDZ2dndTZscjJ3UUlFQ0JBZ0FB
QkFnUUk3QkFRUUhadytJSUFBUUlFQ0JBZ1FJQUEKZ2QwVW1GMXA0eXNuVjY2MHlKL3V2NmQvZXZl
ZnZwejdXU3gzY3U2OWw3NGoxdG10YlkrUEdJOFJseXM5emozRFVvdjM4TXBxdzlXNApqYXZ4V0Jr
ZU4yb1llNDdQTDlmMzl1VVcvVDZKYlYvdWNzOUZkODZyNCtMbHBxNGp5cmo0TWY2Y3RVUTljYmxu
K1BkUC8yU282VS9WCkRKL2RzNjNJdSsrZVYrQkZLL21TQUFFQ0JBZ1FTQ1BnQ0VpYVVTaUVBQUVD
QkFnUUlFQ0F3TjRYRUVEMi9veDFTSUFBQVFJRUNCQWcKUUNDTmdBQ1NaaFFLSVVDQUFBRUNCQWdR
SUxEM0JRU1F2VDlqSFJJZ1FJQUFBUUlFQ0JCSUl5Q0FwQm1GUWdnUUlFQ0FBQUVDQkFqcwpmUUVC
Wk8vUFdJY0VDQkFnUUlBQUFRSUUwZ2dJSUdsR29SQUNCQWdRSUVDQUFBRUNlMTlBQU5uN005WWhB
UUlFQ0JBZ1FJQUFnVFFDCkFraWFVU2lFQUFFQ0JBZ1FJRUNBd040WEVFRDIvb3gxU0lBQUFRSUVD
QkFnUUNDTmdBQ1NaaFFLSVVDQUFBRUNCQWdRSUxEM0JRU1EKdlQ5akhSSWdRSUFBQVFJRUNCQklJ
eUNBcEJtRlFnZ1FJRUNBQUFFQ0JBanNmUUVCWk8vUFdJY0VDQkFnUUlBQUFRSUUwZ2dJSUdsRwpv
UkFDQkFnUUlFQ0FBQUVDZTE5QUFObjdNOVloQVFJRUNCQWdRSUFBZ1RRQ0FraWFVU2lFQUFFQ0JB
Z1FJRUNBd040WEVFRDIvb3gxClNJQUFBUUlFQ0JBZ1FDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlM
RDNCVmEyK21YdnQ2bERBZ1FJRUNCQWdBQUJBZ1F5Q0RnQ2ttRUsKYWlCQWdBQUJBZ1FJRUNCUVJF
QUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdR
SQpFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVD
QUFJRU1BZ0pJaGltb2dRQUJBZ1FJCkVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FD
U1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUkKRU1nZ0lJQmttSUlhQ0JB
Z1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFC
QWtVRQpCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJ
b0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoCkNtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNB
QUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0UKQ0JBZ1FJQUFBUUlF
TWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBx
SUVBQVFJRQpDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJB
Z1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFCkNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VF
UkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkYKQkFTUUlvUFdK
Z0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNC
QWdRQ0NEZ0FDUwpZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJ
QmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiCkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0Fn
UUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUMKQkFnUUlF
Q0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNr
eWFHMFNJRUNBQUFFQwpCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JB
Z1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDClJRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FD
QkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUEKa21F
S2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNB
QUFFQ0JBZ1VFUkJBaWd4YQptd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpG
QkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCCkFnUUlFQ0JBZ0VBUkFRR2t5S0Mx
U1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUIK
QWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlD
Q0FacHFBR0FnUUlFQ0JBZ0FBQgpBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJB
QUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BCkFKSmhDbW9nUUlBQUFRSUVD
QkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJ
b00KV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFn
UUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQQpBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlF
QWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBCkFRSUVDQkRJSUNDQVpK
aUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JB
Z1FJQUEKQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VB
UkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRApnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1o
dEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLCkRGcWJCQWdRSUVD
QUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdD
QWtpR0thaUIKQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9n
UUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQQpBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFC
QWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBCkFBRUNSUVFF
a0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFB
QUVDQkFnUUlFQWcKZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVD
QkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQQppZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dH
YWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vCmdRQUJB
Z1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlG
QkVRQUFwTW1odEVpQkEKZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RG
cWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQQpnQUFCQWtVRUJKQWlnOVltQVFJRUNC
QWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBCklJ
T0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hv
SUVDQkFnQUFCQWdRSUZCRVEKUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVD
QUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcApxSUVBQVFJRUNCQWdRSUJBRVFF
QnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUkln
ClFJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFC
QWdReUNBZ2dHYWFnQmdJRUNCQWcKUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJ
aGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZwpRQ0NEZ0FDU1lRcHFJRUNB
QUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVD
QlFSCkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWln
OVltQVFJRUNCQWdRSUFBZ1F3Q0FraUcKS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJB
Z1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwUwpJRUNBQUFFQ0JBZ1F5
Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9B
WUNCQWdRCklFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNC
QWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1EKSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJF
QUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVQpFUkJBaWd4YW13
UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVD
QUFJRU1BZ0pJCmhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FD
U1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHQKRWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JB
Z1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSQpFQ0JBZ0FB
QkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJ
b0xWSmdBQUJBZ1FJCkVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNB
QUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUkKRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlF
TWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQwpTSVlw
cUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJB
Z1FJRUNCUVJFQUFLVEpvCmJSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VF
UkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUUKQ0JBZ1FJQUFBUUpGQkFTUUlvUFdK
Z0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRQpD
QkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJ
QmttSUlhQ0JBZ1FJQUFBUUlFCkNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0Fn
UUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0MKQWtpR0thaUJBQUVDQkFnUUlF
Q0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNr
eQphRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JB
Z1FJQUFBUUlFTWdnSUlCbW1vQVlDCkJBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FD
QkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUMKQkFnUUlFQWdnNEFBa21F
S2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNB
QUFFQwpCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpG
QkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNCkFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0Mx
U1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXAKTW1odEVpQkFnQUFC
QWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlD
Q0FacHFBRwpBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJB
QUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCCkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVD
QkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUIKQWdRSUZCRVFR
SW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFn
UUlFQ0JBZ0FDQgpEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlF
QWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBCktUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpK
aUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWcKQmdJRUNC
QWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VB
UkFRR2t5S0MxU1lBQQpBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1o
dEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBCkFRSUVDQlFSRUVDS0RGcWJCQWdRSUVD
QUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUEKZ1F3
Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9n
UUlBQUFRSUVDQkFnVUVSQQpBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFC
QWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tCm9BWUNCQWdRSUVDQUFBRUNSUVFF
a0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUEK
QUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVD
QkRJSUNDQVpKaUNHZ2dRSUVDQQpBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dH
YWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBCkFJRU1BZ0pJaGltb2dRQUJB
Z1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlG
QkUKUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RG
cWJCQWdRSUVDQUFBRUNCRElJQ0NBWgpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNC
QWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKCmdBQUJBZ1FJRUNCQUlJ
T0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hv
SUVDQkEKZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVD
QUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQQpnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFF
QnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRClJFQUFLVEpvYlJJ
Z1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFC
QWdReUNBZ2cKR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJ
aGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMQpTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNB
QUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnClFJQUFBUUlF
Q0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWln
OVltQVFJRUNCQWcKUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJB
Z1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZwpVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5
Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJCklCbW1v
QVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNG
WTZXeGtBQUJkcFNVUkIKVkJBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2Fp
QkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFB
RUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJB
U1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lB
QUFRSUVDQkFnUUNDRGdBQ1MKWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdR
SUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYgpCQWdRSUVDQUFBRUNCRElJQ0NB
WnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVD
CkJBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFn
VUVSQUFDa3lhRzBTSUVDQUFBRUMKQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9N
V3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJ
RUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdn
NEFBCmttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNH
Z2dRSUVDQUFBRUNCQWdVRVJCQWlneGEKbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdR
SUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJB
UUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVp
QkFnQUFCCkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFB
RUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUIKQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0Fr
aUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJ
QUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdR
SUZCRVFRSW9NCldwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NL
RDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUEKQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFF
Q0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JE
SUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFn
QmdJRUNCQWdRSUFBCkFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJ
RUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0QKZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJF
UUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDSwpERnFi
QkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdR
SUFBZ1F3Q0FraUdLYWlCCkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FB
SkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lF
Q0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpB
QUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBN
aWd0VW1BQUFFQ0JBZ1FJRUFnCmc0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJ
QUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFn
UXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGlt
bwpnUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFF
Q0JBZ1FJRkJFUUFBcE1taHRFaUJBCmdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JR
UkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZ
bUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJ
RUNCQQpJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0Fn
Z0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRClFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlD
QkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFn
UUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFL
VEpvYlJJZwpRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlF
Q0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnClFJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FB
SUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZ
UXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJ
QUFBUUlFQ0JRUgpFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFr
VUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHCkthaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9M
VkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFMKSUVDQUFB
RUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdn
SUlCbW1vQVlDQkFnUQpJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlF
QUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRCklFQWdnNEFBa21FS2FpQkFnQUFCQWdR
SUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJC
QWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VD
QkFnUUlFQ0FBSUVNQWdKSQpoaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFn
UUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJr
bUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkK
RUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FR
QkVCQWFUSW9MVkpnQUFCQWdRSQpFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lh
RzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdR
SUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRB
SUMKU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2Fp
QkFnQUFCQWdRSUVDQlFSRUFBS1RKbwpiUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFB
RUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJB
U1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFyUHZmdmU3YlRhYnRiVzF0YmErdmo3VXRMVzExVlpYVjl2
NTgrZGIKZkI2WHMyZlB0dE9uVDErNExaWjNJVUNBQUFFQ0JBZ1FlTFZBN0VldHJLd00rMWp4K2Zq
eDZpWGRRbUI2Z1hQbnpnMzc4T1AzWU96cgpqL3YxNHo1KzNEZGV4djM5K0RydTMvNzF1TXg0L2Ro
amo3V2JiNzU1L1BKVjE3SGRlS3p0bDdHZXVON2MzR3l6alkyTjlwYTN2R1Y0CnNBZ1Y4WUR4RVN2
SEFuLzg0eC9iZmZmL3J2M2JmNjIzWHo2eXIvM1BZN1Ayd3RrSUtuM0RrVTM2aHRwTmg3Yy9oczhK
RUNCQWdBQUIKQXZVRXp2Y2RvOWp2NnZ0UjE4MDIybTAzbkduditjdldQdnJlQSszTnR4NGFmdEVi
TzNmYmQvenFJZWw0TndUR3dCRFhzZk1mKy9TeApIeDlmdi9qaWkrMmxsMTVxYjNqREc5cng0OGN2
SEdTSTc4UHhJNEpCWEdMNU1ZRE0rejU5NFlVWDJ1dGYvL3BMdGhIcngzcFJ3L2IxCjQvYTR4TzIv
L3ZXdjJ5d0t1ZjMyMjRjSDI3N2dtVE5uMm4zMzNkZis3a2NQdGgvOSs5SDIwTE0zdGYySDk3Y1Av
dTFON2M0VDE3VWoKaDE0NUF0STNPSXNIT3RlUGx2UW5WZXRoYW1YMjhuVi81TGExMGg4d2tsUi8w
UFZZNWR4V0I0a0d6N1dWZUpMMmo3alordng4LzNqKwplUDN3K3Vubmg1K2Y4VHB3TGU0L3JQWFJi
ZmFkbmRqZk9YM21mUHZQM3ozZmZuN2ZrKzAvN24ycDNmL0ljKzJ6SHozWFB2RHU0MjNmCnZuM0R6
bUZmeklYQVpBS3hnei91NU1kMTdPakhSNFNRdU1UMUk0ODhNbnovM1hubm5jT1J1ZkhCWS85L1hI
ZThiYnplbmczRzI1NTgKOHNraE80eGZqOWZ6dGhIM2ovZEZUYWRPbldxelNFU1JkT0lKTVJZUTRl
UGhoeDl1Ly9EVCs5b1BIamplZm5QbTFyWnkwNng5NklPMwp0SS9lZGF3ZDJyL1dRMGZmV2kvNFhO
OVF6eDZ0UCsvNlAvMVFZd1NRZnQxYmFXdjkvdFgrak94WExYNHBzTldYNjFFbEZ1eGY5L1dHCjI3
YmEyZjZKOWZuNS92SDg4ZnJoOWRQUER6OC9yOVg5aDFkMmk0YjltZmhkOHB0dk85d08zbmlnL2Yw
Ly9xRTk4TXkrMW43MlpIdlQKRzA2M085NTZwTzNmdjMvWTkrcUx1UkNZUkNCMjdHTW5QejdpYUVa
OEhkZXhiejkreE5zcGZ2bkxYN1lqUjQ2MEV5ZE9ERWZreG9BUgo2NDJmWDZtZ2VFdkcrTGFOS3kw
N2JqZXU0eEkxUlBZWVRzR0tMK0xKRUE4Y0JjZHBWNy80eFMvYXp4OWNiYi9aZUhOYjZVK2dvMGYz
CnRadXVYeCtlTUp2OW1SVlBydDVtRHhUeFV0SGFtWjR3K3ROckNCcXJzOGdpdzB0SVcrMEx4dHRG
dHZyOXNYU3MyNjk2K0Fpa2xkYlAKQU90ZnIxaWZuKzhmengrdkgvM0YxT3Vubng5K2ZsNmIrdy9E
TDFramhReVhsMys1ZXZ6b2VqdHkvR0I3WnJiV0huanF4dmFEZjNtNgovZFh0eDRlZHQ5ZTZBemR1
MFRXQnl3bU1BU1N1eC9BUjEzR1FJYjdYNHBTc0NBN1BQUE5NKzlXdmZ0V3V1KzY2ZHNzdHQxd0l3
aGVICmp6aHQ2M3ZmKzE3NzdHYy8rNnFIamJkdlhMeDhMUFROYjM2emZlcFRuMnFIRGgyNnNNNjRY
RnhIQ0luTUVldjNzNmRXMnZQUFB6OFUKRWtzLzk5eHp3MGU4d2VUaEY5L1VWby8xSjgreC9lM1lk
ZXZ0OGVkYmUrcUZyWDRFWkxXdDlaQXhQTS82QVkyTmZnUWpnczFtLy9WbApISUpzWitNSHlHcUxN
N0hpNjlYekw2ZXZjeEZDdHZyN1RPS0IrbTFuenNVYjNmdWJVWG9vc1Q0LzN6K2VQMTQvdkg3Nitl
SG41N1c2Ci94QW5lS3lzRG5zNHd4a2ZzVy96NVBOYjdkaVIyYkRmODF6ZjMvblgzNjhPTzJCeDFz
bjRpOS9ZSlhJaHNLekE5Z0F5dnRGN1BBSVMKcDEvRi9ZY1BIeDQrbm4zMjJSYnY0NGo5LzZOSGox
NElJV01OUC83eGo0Y3dFYWRhZmU1em54dHZ2bkE5YnZmQ0RhOTg4cDN2ZktmOQo1Q2MvR1VMTHh6
NzJzWXZ2SG1xSXg0enNNVHR3NE1EdzVwUklSSkdPb3FpNDQrbW5uMjVQclA5MU8zSjBmN3ZoMkw0
ZVFQYjFONSt2CnRIOSt1S2VXMWMxK2FsWEVqNWVEUjV4VUZVKzBlSS9IYW4vUHgvcStuclRhWmo4
RnF3ZVEvakhyeVgrdGg1UE56WDQ0cUgrYzcrRWsKTU9MVXJZMjQ3WlVqSTlibjUvdkg4OGZyaDlk
UFB6LzgvTHdXOXgvNnJ0UHdpOW40TGUrNXN4dDlIeWVPZ216MkFMTGVWdUpVa0g0Ngp6TzlmT05y
aU5QZlkzeEpBWHJWLzZvWWxCTVlBRXVFZ1BzWTNvY2MrZlh6RS9mRS9ZY1gzWGV6elJ3Z2U5L2tQ
SGp3NDNQN1FRdysxCnIzLzk2eTJ1eDFPbXh2ZVFiQzh0dG5XcDIyT2RKNTU0b24zMXExOXRQL3po
RDlzWHZ2Q0Y5cmEzdlczWVZoejFpSU1jY1dRbHNzY3MKQ29qRE01Rkk0aEROV0Z4OHZmOWdhOGY2
NGNNNCtuSDg2SUVXQmE3M01ER2I5Vk94ZXRCWVdlMUhNM29SL1FCUER4TG4ycXkvWXV6cgp6N0cx
bmlUaU9NZGEvM1ZtdlAwOGJsL3ZUN1o0YzlabVgyNnpQeW5QOTQ4SUlHYzMrbmxxZlducjgvUDk0
L25qOWNQcnA1OGZmbjVlCnEvc1BzYit6Mm5md3RzNzE4TkYvS2J1eGNhYWRQZjFTTzlOUE5WOVoy
V2puTjliYmMvM3NqOWh4aTMydDJPZUsvUzhYQWxNSWpBRWsKcmlPQWpLZEpqVUVpYmh0UCs0djNZ
RVFJaUVzRWd2aTQ5OTU3MjllKzlyVlhsZkw0NDQrLzZyWUlNSmU2UGNMMWVMbi8vdnZibDcvOAo1
ZmJGTDM2eHZlOTk3eHNDVU5ReXZ1OThGc1ZFQ0Jtdm8vQW9PZ3A3L2V6eHRuN2c1bmIwNEw1MjlI
QVBJSWNPdHdQNys3SjkrVGhWCkl0SitYN3dmd1hqNWlNWjZQK2RxdlQrWjRtakhFRHo2NXhGVVpx
K2NtdFV6UjMvaTlZKytUaHlrSEFMSjJjMjJzV1g5ZUVIaTUvdkgKODhmcmg5ZFBQei84L096N0Rk
Zmcvc05hLzZWcy82OTUrbjVSMy9uclIwRE9ubGx0cDlmN2YvSnorc1crNzdQVk5nN08ydlZubisz
NwpSTWVHZlM0QlpOeFZkVDJGUU96Y3h6NThmTVJPL25qa1k3dzlqb2lNWVNUZW94SDcvckZNWE9M
MkQzM29RKzExcjN0ZCs4WTN2dEYrCis5dmZEcmZIUDNIRTVPSkxySHVwMjdjSDZoTW5UclRQZi83
ekY0NkFqTFhGWThiMy9uQUVKRFlTSzhWMUxCQnZFTG54eGh2YjY1NzQKWFR0ejRLN2hQUitIRHUx
dlIvdHBXSWNPSCtwUG5uNnFVTHkzSXdKSXI2b0gvZjZtOGg1TSt0ZnhFVytpak45bXh4SEgrQzk2
MS9xZgpEWW5USW1QWnpmNmJnRmgrdUk3d3NqWHJoeWl0ejgvM2orZVAxdyt2bjM1KytQbDU3ZTQv
OU4yZnZ0OHo2NmVhOTQrTi9lMzBTK3Z0CnhkUDlESk4rU3ZycGZoams0SUcxZG1MbDJmNmUyemRl
Q0NEakRtQmYxWVhBVWdKajBJajkrUEg3YXJ3dGZza2RuOGYrZlJ5bGlEL0IKTVFhUVdEYldpY3M3
M3ZHTzlwV3ZmS1g5N0djL2E5LzYxcmN1bkIxMWNXSGpnWXVMYjQ4c0VXOXUvOHhuUHRNKzhwR1BE
S2VCamR1UAp4NDg2WXBsWWZ3Z2d3eWV2bkJjMkZ2SFd0NzYxM2ZyUVQ5dWpweDVvNnpkK3NCM29Q
eGtQOXZCeDZMcElRNjJ2L1BKUmpQaGZIK0tvClJvU0tmbVpXaXo5UkdPR2t2dzFrT0JleWg1eCtO
T1RsOTRMRVVZOSt3R000K3RIUHZCb09VY2E2RzlibjUvdkg4OGZyaDlkUFB6LzgKL0x5Rzl4LzY3
MTc3cWVrdi80SjFzLzluUEd2cmZXZXAvOEd6YzJkUHR4ZlhaKzNJQ3crMDk5OStmbmpUNy9hZHY3
NmFDNEZKQk9JbwpSMXhpWno5MjlHUG5md3doWXdDSjA2M3V1dXV1QzZkZ2pjdU02OFQxSno3eGlm
YmhEMys0ZmZ2YjM3N2trWTU0TS91bGpvQjg4cE9mCmJKLys5S2VIRUJMYkhjTkhaSXZZYnB4NkdD
Rmt5QjNqcVZmaitZaFJlQlQ5Z1E5OG9EMzQ0SU50ODdmM3RkT1A5amRRSGYrYjRROEcKOXFPSlEv
aVk5ZWRWaEl2Ky9xcitCd2o3RTY0SGluNTJWbHZyS1NPQ1NEOEEwbytDOUk5K3ZSTFgvWmtaWWVO
QXY3K2Y0ZFUyZW5DSgpRQkpIUXM1R2lMRStQOTgvbmo5ZVA3eCsrdm5oNStjMXV2OFFmMXg1RENB
YlBZREVFWkdOMC8wL2xZajlvTWZ1Yis4ODhyL3QzWGU4CnZkMXd3dzNEamxqc2E3a1FtRW9nZHZE
SGd3aXh6ZGo1SDYvanZqanlFZjhONzgwMzM5emU5YTUzRFNGZ1dPQ1ZmMktaY1oyNEtkNksKOGFV
dmZXbkhiZVB5eDQ0ZHV4Qmd4dHZpZWx3K3RqVmU0dlB4WXp3Q01weUNGV2xwL0JqVFVoUVFmMkw5
NHgvL2VOdjQvdmZiSTMvOApwM2JxM2tmYTJUZS90NTM3aS9lMTYyODUzdGI2KzB3MjRnOS85RXM4
VGh6Wk9OL2Z6N0t2UDUvT1JmTHZmVy8wNEJHQkpRd2lsTVFUCk1sTEhtYjVzUERQalRWcG4rbTN4
QndtdHo4LzNqK2VQMXcrdm4zNSsrUGw1cmU0L0RIR2k3ODhNKzBSOUgrbXAvenZWbnZydi9rdmMK
UHp6UTdyenVwZmIrZDc2dDNYYmJiUmYrUmtLOEtkaUZ3RlFDNDA1K2hKRDQzb3FkL2ZITjZISHFW
ZnpuVXJHLy81NzN2R2Y0cjNqSAp4NDMxWXIvLzR1dngva3RkeHhHUUt3WG83ZHVMejZPdWVQejRQ
SzVuVVZ4OHhJUEg5WGlKTzkvKzlyY1BEeER2akgvMDBVZmJpLy96CnZmYk1nOTlzai9kR3hnMXZU
MHZqdXE0SkVDQkFnQUFCQWxVRjRxeVMrSjlEYjczKytuYnI3YmUyRXlmdTZoOG4ydlg5NjloeEcv
ZTkKcXZyb2UzcUIyQytQUzN4dnhjNSsvSWRTOFJIaEkvN1hxamlpY2NjZGR3eEhRQ0tjWEh3Wjkr
c3Z2djFTWDhmN1BDNjFqVXN0Rzl1TgpqNmhwREVkUjR5eitLNjc0WXlRUk9MYWZ6eld1RUUrWWVM
TktCSkJUcDA0TnpjUURqTWxuKzFHVFN6Mncyd2dRSUVDQUFBRUNWUVRpCkY3T3hieFNubVVRSWlU
LzBGcWVzeEU1YjNEYnVJRmJ4ME9mVkVZaWQrKzA3K21NQWlVZC80eHZmT0h3UHh2ZGw3UE5QY1Zs
a094ZUgKajhnZS93OU1NeE02S3RqVGxRQUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86214</attachid>
            <date>2011-03-18 14:33:33 -0700</date>
            <delta_ts>2011-03-21 10:51:08 -0700</delta_ts>
            <desc>used narrowPrecisionToFloat per Simon&apos;s review notes</desc>
            <filename>newpatch_2.txt</filename>
            <type>text/plain</type>
            <size>57096</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBpbmxpbmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFu
aW0KIAogc3RhdGljIGlubGluZSBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2Uq
LCBjb25zdCBMZW5ndGgmIGZyb20sIGNvbnN0IExlbmd0aCYgdG8sIGRvdWJsZSBwcm9ncmVzcykK
IHsgIAotICAgIHJldHVybiB0by5ibGVuZChmcm9tLCBwcm9ncmVzcyk7CisgICAgcmV0dXJuIHRv
LmJsZW5kKGZyb20sIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3MpKTsKIH0KIAogc3Rh
dGljIGlubGluZSBMZW5ndGhTaXplIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBjb25zdCBMZW5ndGhTaXplJiBmcm9tLCBjb25zdCBMZW5ndGhTaXplJiB0bywgZG91YmxlIHBy
b2dyZXNzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgJKHJldmlzaW9uIDgwMzgxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQogICAgIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgICAgQ29weXJpZ2h0IChDKSAyMDExIFJpayBDYWJhbmllciAoY2FiYW5p
ZXJAYWRvYmUuY29tKQogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMCw3ICszMSw2IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGludCB1bmRlZmluZWRMZW5ndGggPSAtMTsKLWNvbnN0
IGludCBwZXJjZW50U2NhbGVGYWN0b3IgPSAxMjg7CiBjb25zdCBpbnQgaW50TWF4Rm9yTGVuZ3Ro
ID0gMHg3ZmZmZmZmOyAvLyBtYXggdmFsdWUgZm9yIGEgMjgtYml0IGludAogY29uc3QgaW50IGlu
dE1pbkZvckxlbmd0aCA9ICgtMHg3ZmZmZmZmIC0gMSk7IC8vIG1pbiB2YWx1ZSBmb3IgYSAyOC1i
aXQgaW50CiAKQEAgLTUyLDM0ICs1Miw0MCBAQCBwdWJsaWM6CiAgICAgTGVuZ3RoKGludCB2LCBM
ZW5ndGhUeXBlIHQsIGJvb2wgcSA9IGZhbHNlKQogICAgICAgICA6IG1faW50VmFsdWUodiksIG1f
cXVpcmsocSksIG1fdHlwZSh0KSwgbV9pc0Zsb2F0KGZhbHNlKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKHQgIT0gUGVyY2VudCk7CisgICAgfQorICAgIAorICAgIExlbmd0aChmbG9hdCB2LCBMZW5n
dGhUeXBlIHQsIGJvb2wgcSA9IGZhbHNlKQorICAgIDogbV9mbG9hdFZhbHVlKHYpLCBtX3F1aXJr
KHEpLCBtX3R5cGUodCksIG1faXNGbG9hdCh0cnVlKQorICAgIHsgICAgICAgICAgICAKICAgICB9
CiAKICAgICBMZW5ndGgoZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0g
ICAgICAgIDogbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewot
ICAgICAgICBpZiAobV90eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0g
c3RhdGljX2Nhc3Q8aW50Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgbV9pc0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1f
ZmxvYXRWYWx1ZSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDog
bV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAK
KyAgICAgICAgbV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9
CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAo
Z2V0RmxvYXRWYWx1ZSgpID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90
eXBlKSAmJiAobV9xdWlyayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IExlbmd0aCYgbykgY29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZs
b2F0VmFsdWUoKSkgfHwgKG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1
aXJrKTsgfQogCisgICAgY29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGZsb2F0IHYpCisgICAgeyAg
ICAgICAgCisgICAgICAgIGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICBtX2Zsb2F0VmFsdWUg
PSBzdGF0aWNfY2FzdDxmbG9hdD4obV9mbG9hdFZhbHVlKnYpOworICAgICAgICBlbHNlICAgICAg
ICAKKyAgICAgICAgICAgIG1faW50VmFsdWUgPSBzdGF0aWNfY2FzdDxpbnQ+KG1faW50VmFsdWUq
dik7CisgICAgICAgIAorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIAogICAgIGlu
dCB2YWx1ZSgpIGNvbnN0IHsKLSAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBQZXJjZW50KTsKLSAg
ICAgICAgcmV0dXJuIHJhd1ZhbHVlKCk7CisgICAgICAgIHJldHVybiBnZXRJbnRWYWx1ZSgpOwog
ICAgIH0KIAotICAgIGludCByYXdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEludFZhbHVlKCk7
IH0KLQotICAgIGRvdWJsZSBwZXJjZW50KCkgY29uc3QKKyAgICBmbG9hdCBwZXJjZW50KCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVCh0eXBlKCkgPT0gUGVyY2VudCk7Ci0gICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHJhd1ZhbHVlKCkpIC8gcGVyY2VudFNjYWxlRmFjdG9y
OworICAgICAgICByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpOwogICAgIH0KIAogICAgIExlbmd0aFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PExlbmd0aFR5cGU+KG1fdHlwZSk7
IH0KQEAgLTk0LDE4ICsxMDAsMTcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1ZShpbnQg
dmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQoIXZhbHVlIHx8IHR5cGUoKSAhPSBQZXJjZW50
KTsKICAgICAgICAgc2V0VmFsdWUoRml4ZWQsIHZhbHVlKTsKICAgICB9CiAKLSAgICB2b2lkIHNl
dFZhbHVlKExlbmd0aFR5cGUgdCwgZG91YmxlIHZhbHVlKQorICAgIHZvaWQgc2V0VmFsdWUoTGVu
Z3RoVHlwZSB0LCBmbG9hdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IHQ7Ci0gICAg
ICAgIG1fZmxvYXRWYWx1ZSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSk7CisgICAgICAgIG1f
ZmxvYXRWYWx1ZSA9IHZhbHVlOwogICAgICAgICBtX2lzRmxvYXQgPSB0cnVlOyAgICAKICAgICB9
CiAKLSAgICB2b2lkIHNldFZhbHVlKGRvdWJsZSB2YWx1ZSkKKyAgICB2b2lkIHNldFZhbHVlKGZs
b2F0IHZhbHVlKQogICAgIHsKICAgICAgICAgKnRoaXMgPSBMZW5ndGgodmFsdWUsIEZpeGVkKTsK
ICAgICB9CkBAIC0xMTksNyArMTI0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBQZXJj
ZW50OgogICAgICAgICAgICAgICAgIGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBlcmNlbnQo
KSAvIDEwMC4wKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3VmFsdWUo
KSAvICgxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxpbnQ+KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAgICAgICAg
ICAgY2FzZSBBdXRvOgogICAgICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZTsKICAgICAgICAg
ICAgIGRlZmF1bHQ6CkBAIC0xMzUsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2Fz
ZSBQZXJjZW50OgogICAgICAgICAgICAgICAgIGlmIChyb3VuZFBlcmNlbnRhZ2VzKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZChtYXhWYWx1ZSAqIHBl
cmNlbnQoKSAvIDEwMC4wKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogcmF3
VmFsdWUoKSAvICgxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpOworICAgICAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjApOwogICAg
ICAgICAgICAgY2FzZSBBdXRvOgogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKQEAgLTE1NiwxMCArMTYxLDE2IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAg
IH0KIAotICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiByYXdWYWx1ZSgpID09
IHVuZGVmaW5lZExlbmd0aDsgfQotICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgeyByZXR1cm4gIWdl
dEludFZhbHVlKCk7IH0KLSAgICBib29sIGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiByYXdW
YWx1ZSgpID4gMDsgfQotICAgIGJvb2wgaXNOZWdhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJhd1Zh
bHVlKCkgPCAwOyB9CisgICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVl
KCkgPT0gdW5kZWZpbmVkTGVuZ3RoOyB9CisgICAgYm9vbCBpc1plcm8oKSBjb25zdCAKKyAgICB7
IAorICAgICAgICBpZiAobV9pc0Zsb2F0KQorICAgICAgICAgICAgcmV0dXJuICFtX2Zsb2F0VmFs
dWU7IAorICAgICAgICAKKyAgICAgICAgcmV0dXJuICFtX2ludFZhbHVlOworICAgIH0KKyAgICBi
b29sIGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiBnZXRGbG9hdFZhbHVlKCkgPiAwOyB9Cisg
ICAgYm9vbCBpc05lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpIDwgMDsg
fQogCiAgICAgYm9vbCBpc0F1dG8oKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXV0bzsgfQog
ICAgIGJvb2wgaXNSZWxhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBSZWxhdGl2ZTsg
fQpAQCAtMTY3LDcgKzE3OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRml4ZWQoKSBjb25zdCB7
IHJldHVybiB0eXBlKCkgPT0gRml4ZWQ7IH0KICAgICBib29sIGlzSW50cmluc2ljT3JBdXRvKCkg
Y29uc3QgeyByZXR1cm4gdHlwZSgpID09IEF1dG8gfHwgdHlwZSgpID09IE1pbkludHJpbnNpYyB8
fCB0eXBlKCkgPT0gSW50cmluc2ljOyB9CiAKLSAgICBMZW5ndGggYmxlbmQoY29uc3QgTGVuZ3Ro
JiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgTGVuZ3RoIGJsZW5kKGNvbnN0IExl
bmd0aCYgZnJvbSwgZmxvYXQgcHJvZ3Jlc3MpIGNvbnN0CiAgICAgewogICAgICAgICAvLyBCbGVu
ZCB0d28gbGVuZ3RocyB0byBwcm9kdWNlIGEgbmV3IGxlbmd0aCB0aGF0IGlzIGluIGJldHdlZW4g
dGhlbS4gIFVzZWQgZm9yIGFuaW1hdGlvbi4KICAgICAgICAgaWYgKCFmcm9tLmlzWmVybygpICYm
ICFpc1plcm8oKSAmJiBmcm9tLnR5cGUoKSAhPSB0eXBlKCkpCkBAIC0xODEsMTMgKzE5MiwxMyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXN1bHRUeXBlID0gZnJvbS50eXBlKCk7CiAgICAgICAg
IAogICAgICAgICBpZiAocmVzdWx0VHlwZSA9PSBQZXJjZW50KSB7Ci0gICAgICAgICAgICBkb3Vi
bGUgZnJvbVBlcmNlbnQgPSBmcm9tLmlzWmVybygpID8gMC4gOiBmcm9tLnBlcmNlbnQoKTsKLSAg
ICAgICAgICAgIGRvdWJsZSB0b1BlcmNlbnQgPSBpc1plcm8oKSA/IDAuIDogcGVyY2VudCgpOwor
ICAgICAgICAgICAgZmxvYXQgZnJvbVBlcmNlbnQgPSBmcm9tLmlzWmVybygpID8gMC5mIDogZnJv
bS5wZXJjZW50KCk7CisgICAgICAgICAgICBmbG9hdCB0b1BlcmNlbnQgPSBpc1plcm8oKSA/IDAu
ZiA6IHBlcmNlbnQoKTsKICAgICAgICAgICAgIHJldHVybiBMZW5ndGgoZnJvbVBlcmNlbnQgKyAo
dG9QZXJjZW50IC0gZnJvbVBlcmNlbnQpICogcHJvZ3Jlc3MsIFBlcmNlbnQpOwogICAgICAgICB9
IAogICAgICAgICAgICAgCi0gICAgICAgIGRvdWJsZSBmcm9tVmFsdWUgPSBmcm9tLmlzWmVybygp
ID8gMCA6IGZyb20udmFsdWUoKTsKLSAgICAgICAgZG91YmxlIHRvVmFsdWUgPSBpc1plcm8oKSA/
IDAgOiB2YWx1ZSgpOworICAgICAgICBmbG9hdCBmcm9tVmFsdWUgPSBmcm9tLmlzWmVybygpID8g
MC5mIDogZnJvbS52YWx1ZSgpOworICAgICAgICBmbG9hdCB0b1ZhbHVlID0gaXNaZXJvKCkgPyAw
LmYgOiB2YWx1ZSgpOwogICAgICAgICByZXR1cm4gTGVuZ3RoKGZyb21WYWx1ZSArICh0b1ZhbHVl
IC0gZnJvbVZhbHVlKSAqIHByb2dyZXNzLCByZXN1bHRUeXBlKTsKICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNm
b3JtT3BlcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAJKHJldmlz
aW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2
ICsyMSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zMCwxNSArMzEsMTUgQEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1P
cGVyYXRpb24+IFRyYW5zbGF0ZQogICAgICAgICByZXR1cm4gdGhpczsKICAgICAKICAgICBpZiAo
YmxlbmRUb0lkZW50aXR5KQotICAgICAgICByZXR1cm4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uOjpjcmVhdGUoTGVuZ3RoKG1feC50eXBlKCkpLmJsZW5kKG1feCwgcHJvZ3Jlc3MpLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aCht
X3kudHlwZSgpKS5ibGVuZChtX3ksIHByb2dyZXNzKSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgobV96LnR5cGUoKSkuYmxlbmQobV96
LCBwcm9ncmVzcyksIG1fdHlwZSk7CisgICAgICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb246OmNyZWF0ZShMZW5ndGgobV94LnR5cGUoKSkuYmxlbmQobV94LCBuYXJyb3dQcmVj
aXNpb25Ub0Zsb2F0KHByb2dyZXNzKSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoKG1feS50eXBlKCkpLmJsZW5kKG1feSwgbmFycm93
UHJlY2lzaW9uVG9GbG9hdChwcm9ncmVzcykpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChtX3oudHlwZSgpKS5ibGVuZChtX3osIG5h
cnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3MpKSwgbV90eXBlKTsKIAogICAgIGNvbnN0IFRy
YW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKj4oZnJvbSk7CiAgICAgTGVuZ3RoIGZyb21YID0gZnJv
bU9wID8gZnJvbU9wLT5tX3ggOiBMZW5ndGgobV94LnR5cGUoKSk7CiAgICAgTGVuZ3RoIGZyb21Z
ID0gZnJvbU9wID8gZnJvbU9wLT5tX3kgOiBMZW5ndGgobV95LnR5cGUoKSk7CiAgICAgTGVuZ3Ro
IGZyb21aID0gZnJvbU9wID8gZnJvbU9wLT5tX3ogOiBMZW5ndGgobV96LnR5cGUoKSk7Ci0gICAg
cmV0dXJuIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKG1feC5ibGVuZChmcm9t
WCwgcHJvZ3Jlc3MpLCBtX3kuYmxlbmQoZnJvbVksIHByb2dyZXNzKSwgbV96LmJsZW5kKGZyb21a
LCBwcm9ncmVzcyksIG1fdHlwZSk7CisgICAgcmV0dXJuIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbjo6Y3JlYXRlKG1feC5ibGVuZChmcm9tWCwgbmFycm93UHJlY2lzaW9uVG9GbG9hdChwcm9n
cmVzcykpLCBtX3kuYmxlbmQoZnJvbVksIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3Mp
KSwgbV96LmJsZW5kKGZyb21aLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHByb2dyZXNzKSksIG1f
dHlwZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50
IGUKIAogICAgICAgICAgICAgICAgICAgICBMZW5ndGggY2VsbExvZ2ljYWxXaWR0aCA9IGNlbGwt
PnN0eWxlT3JDb2xMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IFdoYXQgaXMgdGhpcyBhcmJpdHJhcnkgdmFsdWU/Ci0gICAgICAgICAgICAgICAgICAgIGlmIChj
ZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkgPiAzMjc2MCkKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IDMyNzYwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2VsbExvZ2ljYWxXaWR0aC5zZXRWYWx1ZSgzMjc2MCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzTmVnYXRpdmUoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNlbGxMb2dpY2FsV2lkdGguc2V0VmFsdWUoMCk7CkBAIC0xMDUsMTMgKzEwNSwxMyBA
QCB2b2lkIEF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKGludCBlCiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAg
ICAgICAgICAgICAgICAgICAgICAgbV9oYXNQZXJjZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxh
eW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC52YWx1
ZSgpID4gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0
aDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBj
YXNlIFJlbGF0aXZlOgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8g
dW5kZXJzdGFuZCB0aGlzIGNhc2UgYW5kIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFy
ZSB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGFyZSBub3QgbmVjZXNz
YXJpbHkgb2YgdGhlIHNhbWUgdHlwZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxs
TG9naWNhbFdpZHRoLmlzQXV0bygpIHx8IChjZWxsTG9naWNhbFdpZHRoLmlzUmVsYXRpdmUoKSAm
JiBjZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJh
d1ZhbHVlKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgu
aXNBdXRvKCkgfHwgKGNlbGxMb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpICYmIGNlbGxMb2dpY2Fs
V2lkdGgudmFsdWUoKSA+IGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgudmFsdWUoKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aCA9IGNlbGxM
b2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKQEAgLTIzMiwxNiArMjMyLDE2IEBAIHZvaWQgQXV0b1RhYmxlTGF5
b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KIAogICAgIC8vIFdlIHN1YnN0aXR1dGUgMCBwZXJjZW50
IGJ5IChlcHNpbG9uIC8gcGVyY2VudFNjYWxlRmFjdG9yKSBwZXJjZW50IGluIHR3byBwbGFjZXMg
YmVsb3cgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyby4KICAgICAvLyBGSVhNRTogSGFuZGxlIHRo
ZSAwJSBjYXNlcyBwcm9wZXJseS4KLSAgICBjb25zdCBpbnQgZXBzaWxvbiA9IDE7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDEgLyAxMjguMGY7CiAKLSAgICBpbnQgcmVtYWluaW5nUGVyY2Vu
dCA9IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcjsKKyAgICBmbG9hdCByZW1haW5pbmdQZXJjZW50
ID0gMTAwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9sYXlvdXRTdHJ1Y3Quc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgbWluV2lkdGggKz0gbV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZl
TWluTG9naWNhbFdpZHRoOwogICAgICAgICBtYXhXaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5l
ZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGg7CiAgICAgICAgIGlmIChzY2FsZUNvbHVtbnMpIHsKICAg
ICAgICAgICAgIGlmIChtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQ
ZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpbnQgcGVyY2VudCA9IG1pbihtX2xheW91dFN0
cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSwgcmVtYWluaW5nUGVyY2Vu
dCk7Ci0gICAgICAgICAgICAgICAgZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KG1fbGF5b3V0U3RydWN0W2ldLmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgKiBw
ZXJjZW50U2NhbGVGYWN0b3IgLyBtYXgocGVyY2VudCwgZXBzaWxvbik7CisgICAgICAgICAgICAg
ICAgZmxvYXQgcGVyY2VudCA9IG1pbihzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3Rb
aV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLnBlcmNlbnQoKSksIHJlbWFpbmluZ1BlcmNlbnQpOwor
ICAgICAgICAgICAgICAgIGZsb2F0IGxvZ2ljYWxXaWR0aCA9IHN0YXRpY19jYXN0PGZsb2F0Piht
X2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpICogMTAwIC8gbWF4KHBl
cmNlbnQsIGVwc2lsb24pOwogICAgICAgICAgICAgICAgIG1heFBlcmNlbnQgPSBtYXgobG9naWNh
bFdpZHRoLCAgbWF4UGVyY2VudCk7CiAgICAgICAgICAgICAgICAgcmVtYWluaW5nUGVyY2VudCAt
PSBwZXJjZW50OwogICAgICAgICAgICAgfSBlbHNlCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBB
dXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMbwogICAgIH0KIAogICAgIGlmIChzY2Fs
ZUNvbHVtbnMpIHsKLSAgICAgICAgbWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAg
KiBwZXJjZW50U2NhbGVGYWN0b3IgLyBtYXgocmVtYWluaW5nUGVyY2VudCwgZXBzaWxvbik7Cisg
ICAgICAgIG1heE5vblBlcmNlbnQgPSBtYXhOb25QZXJjZW50ICogMTAwIC8gbWF4KHJlbWFpbmlu
Z1BlcmNlbnQsIGVwc2lsb24pOwogICAgICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3Rh
dGljX2Nhc3Q8aW50PihtaW4obWF4Tm9uUGVyY2VudCwgSU5UX01BWCAvIDIuMGYpKSk7CiAgICAg
ICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBzdGF0aWNfY2FzdDxpbnQ+KG1pbihtYXhQZXJj
ZW50LCBJTlRfTUFYIC8gMi4wZikpKTsKICAgICB9CkBAIC0yNjYsNiArMjY2LDEwIEBAIHZvaWQg
QXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVkTG8KICAgICAgICAgbWluV2lkdGggPSBt
YXgobWluV2lkdGgsIHRhYmxlTG9naWNhbFdpZHRoLnZhbHVlKCkpOwogICAgICAgICBtYXhXaWR0
aCA9IG1pbldpZHRoOwogICAgIH0KKyAgICAKKyAgICAvLyBpZiB0aGVyZSB3YXMgbm8gcmVtYWlu
aW5nIHBlcmNlbnQsIG1heFdpZHRoIGlzIGludmFsaWQuCisgICAgaWYgKCFyZW1haW5pbmdQZXJj
ZW50ICYmIG1heE5vblBlcmNlbnQpCisgICAgICAgIG1heFdpZHRoID0gaW50TWF4Rm9yTGVuZ3Ro
OyAgICAgICAgCiB9CiAKIC8qCkBAIC0zMDAsNyArMzA0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91
dDo6Y2FsY0VmZmVjdGl2ZUxvZ2ljYQogICAgICAgICBzaXplX3QgbGFzdENvbCA9IGVmZkNvbDsK
ICAgICAgICAgaW50IGNlbGxNaW5Mb2dpY2FsV2lkdGggPSBjZWxsLT5taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGgoKSArIHNwYWNpbmdJblJvd0RpcmVjdGlvbjsKICAgICAgICAgZmxvYXQgY2VsbE1h
eExvZ2ljYWxXaWR0aCA9IGNlbGwtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpICsgc3BhY2lu
Z0luUm93RGlyZWN0aW9uOwotICAgICAgICBpbnQgdG90YWxQZXJjZW50ID0gMDsKKyAgICAgICAg
ZmxvYXQgdG90YWxQZXJjZW50ID0gMDsKICAgICAgICAgaW50IHNwYW5NaW5Mb2dpY2FsV2lkdGgg
PSAwOwogICAgICAgICBmbG9hdCBzcGFuTWF4TG9naWNhbFdpZHRoID0gMDsKICAgICAgICAgYm9v
bCBhbGxDb2xzQXJlUGVyY2VudCA9IHRydWU7CkBAIC0zMTIsNyArMzE2LDcgQEAgaW50IEF1dG9U
YWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxvZ2ljYQogICAgICAgICAgICAgTGF5b3V0JiBjb2x1
bW5MYXlvdXQgPSBtX2xheW91dFN0cnVjdFtsYXN0Q29sXTsKICAgICAgICAgICAgIHN3aXRjaCAo
Y29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgUGVy
Y2VudDoKLSAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5b3V0LmxvZ2lj
YWxXaWR0aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1
bW5MYXlvdXQubG9naWNhbFdpZHRoLnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICBhbGxDb2xz
QXJlRml4ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgRml4ZWQ6CkBAIC0zMzksNyArMzQzLDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0Vm
ZmVjdGl2ZUxvZ2ljYQogICAgICAgICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQuZWZmZWN0aXZl
TG9naWNhbFdpZHRoID0gTGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgICAgIGFsbENvbHNBcmVQ
ZXJjZW50ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
ICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQuZWZmZWN0aXZlTG9naWNhbFdpZHRoLnJh
d1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlv
dXQuZWZmZWN0aXZlTG9naWNhbFdpZHRoLnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICBhbGxD
b2xzQXJlRml4ZWQgPSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghY29s
dW1uTGF5b3V0LmVtcHR5Q2VsbHNPbmx5KQpAQCAtMzU0LDE0ICszNTgsMTQgQEAgaW50IEF1dG9U
YWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxvZ2ljYQogCiAgICAgICAgIC8vIGFkanVzdCB0YWJs
ZSBtYXggd2lkdGggaWYgbmVlZGVkCiAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUGVy
Y2VudCgpKSB7Ci0gICAgICAgICAgICBpZiAodG90YWxQZXJjZW50ID4gY2VsbExvZ2ljYWxXaWR0
aC5yYXdWYWx1ZSgpIHx8IGFsbENvbHNBcmVQZXJjZW50KSB7CisgICAgICAgICAgICBpZiAodG90
YWxQZXJjZW50ID4gY2VsbExvZ2ljYWxXaWR0aC5wZXJjZW50KCkgfHwgYWxsQ29sc0FyZVBlcmNl
bnQpIHsKICAgICAgICAgICAgICAgICAvLyBjYW4ndCBzYXRpZnkgdGhpcyBjb25kaXRpb24sIHRy
ZWF0IGFzIHZhcmlhYmxlCiAgICAgICAgICAgICAgICAgY2VsbExvZ2ljYWxXaWR0aCA9IExlbmd0
aCgpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lk
dGggPSBtYXgobWF4TG9naWNhbFdpZHRoLCBtYXgoc3Bhbk1heExvZ2ljYWxXaWR0aCwgY2VsbE1h
eExvZ2ljYWxXaWR0aCkgKiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IgLyBjZWxsTG9naWNhbFdp
ZHRoLnJhd1ZhbHVlKCkpOworICAgICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IG1heCht
YXhMb2dpY2FsV2lkdGgsIHN0YXRpY19jYXN0PGZsb2F0PihtYXgoc3Bhbk1heExvZ2ljYWxXaWR0
aCwgY2VsbE1heExvZ2ljYWxXaWR0aCkgKiAxMDAgIC8gY2VsbExvZ2ljYWxXaWR0aC5wZXJjZW50
KCkpKTsKIAogICAgICAgICAgICAgICAgIC8vIGFsbCBub24gcGVyY2VudCBjb2x1bW5zIGluIHRo
ZSBzcGFuIGdldCBwZXJjZW50IHZhbHVlcyB0byBzdW0gdXAgY29ycmVjdGx5LgotICAgICAgICAg
ICAgICAgIGludCBwZXJjZW50TWlzc2luZyA9IGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSAt
IHRvdGFsUGVyY2VudDsKKyAgICAgICAgICAgICAgICBmbG9hdCBwZXJjZW50TWlzc2luZyA9IGNl
bGxMb2dpY2FsV2lkdGgucGVyY2VudCgpIC0gdG90YWxQZXJjZW50OwogICAgICAgICAgICAgICAg
IGZsb2F0IHRvdGFsV2lkdGggPSAwOwogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgcG9z
ID0gZWZmQ29sOyBwb3MgPCBsYXN0Q29sOyArK3BvcykgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoIW1fbGF5b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgp
KQpAQCAtMzcwLDcgKzM3NCw3IEBAIGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVM
b2dpY2EKIAogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgcG9zID0gZWZmQ29sOyBwb3Mg
PCBsYXN0Q29sICYmIHRvdGFsV2lkdGggPiAwOyArK3BvcykgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoIW1fbGF5b3V0U3RydWN0W3Bvc10uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2Vu
dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGVyY2VudCA9IHN0YXRpY19jYXN0
PGludD4ocGVyY2VudE1pc3NpbmcgKiBzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3Rb
cG9zXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpIC8gdG90YWxXaWR0aCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmbG9hdCBwZXJjZW50ID0gcGVyY2VudE1pc3NpbmcgKiBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpIC8g
dG90YWxXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsV2lkdGggLT0gbV9sYXlv
dXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBwZXJjZW50TWlzc2luZyAtPSBwZXJjZW50OwogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHBlcmNlbnQgPiAwKQpAQCAtNDkxLDcgKzQ5NSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5
b3V0OjpsYXlvdXQoKQogICAgIGludCBudW1GaXhlZCA9IDA7CiAgICAgZmxvYXQgdG90YWxBdXRv
ID0gMDsKICAgICBmbG9hdCB0b3RhbEZpeGVkID0gMDsKLSAgICBpbnQgdG90YWxQZXJjZW50ID0g
MDsKKyAgICBmbG9hdCB0b3RhbFBlcmNlbnQgPSAwOwogICAgIGludCBhbGxvY0F1dG8gPSAwOwog
ICAgIHVuc2lnbmVkIG51bUF1dG9FbXB0eUNlbGxzT25seSA9IDA7CiAKQEAgLTUwNCw3ICs1MDgs
NyBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICAgICAgc3dpdGNoIChsb2dp
Y2FsV2lkdGgudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgIGhh
dmVQZXJjZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBsb2dpY2FsV2lk
dGgucmF3VmFsdWUoKTsKKyAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBsb2dpY2FsV2lkdGgu
cGVyY2VudCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVsYXRpdmU6CiAg
ICAgICAgICAgICB0b3RhbFJlbGF0aXZlICs9IGxvZ2ljYWxXaWR0aC52YWx1ZSgpOwpAQCAtNTM4
LDkgKzU0Miw5IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICAgICAg
ICAgIG1fbGF5b3V0U3RydWN0W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxX
aWR0aDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAodG90YWxQZXJjZW50
ID4gMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSB7CisgICAgICAgIGlmICh0b3RhbFBlcmNlbnQg
PiAxMDApIHsKICAgICAgICAgICAgIC8vIHJlbW92ZSBvdmVyYWxsb2NhdGVkIHNwYWNlIGZyb20g
dGhlIGxhc3QgY29sdW1ucwotICAgICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNhbFdp
ZHRoICogKHRvdGFsUGVyY2VudCAtIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgLyAoMTAwICog
cGVyY2VudFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIGludCBleGNlc3MgPSB0YWJsZUxvZ2lj
YWxXaWR0aCAqICh0b3RhbFBlcmNlbnQgLSAxMDApIC8gMTAwOwogICAgICAgICAgICAgZm9yIChp
bnQgaSA9IG5FZmZDb2xzIC0gMTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgICAgICBpZiAo
bV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGludCBjZWxsTG9naWNhbFdpZHRoID0gbV9sYXlvdXRTdHJ1Y3Rb
aV0uY29tcHV0ZWRMb2dpY2FsV2lkdGg7CkBAIC02MDcsMTMgKzYxMSwxMyBAQCB2b2lkIEF1dG9U
YWJsZUxheW91dDo6bGF5b3V0KCkKICAgICB9CiAKICAgICAvLyBzcHJlYWQgb3ZlciBwZXJjZW50
IGNvbHVtcwotICAgIGlmIChhdmFpbGFibGUgPiAwICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBl
cmNlbnQgPCAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IpIHsKKyAgICBpZiAoYXZhaWxhYmxlID4g
MCAmJiBtX2hhc1BlcmNlbnQgJiYgdG90YWxQZXJjZW50IDwgMTAwKSB7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbkVmZkNvbHM7ICsraSkgewogICAgICAgICAgICAgTGVuZ3RoJiBs
b2dpY2FsV2lkdGggPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGg7CiAg
ICAgICAgICAgICBpZiAobG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaW50IGNlbGxMb2dpY2FsV2lkdGggPSBhdmFpbGFibGUgKiBsb2dpY2FsV2lkdGgucmF3VmFs
dWUoKSAvIHRvdGFsUGVyY2VudDsKKyAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0
aCA9IGF2YWlsYWJsZSAqIGxvZ2ljYWxXaWR0aC5wZXJjZW50KCkgLyB0b3RhbFBlcmNlbnQ7CiAg
ICAgICAgICAgICAgICAgYXZhaWxhYmxlIC09IGNlbGxMb2dpY2FsV2lkdGg7Ci0gICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50IC09IGxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpOworICAgICAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCAtPSBsb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAg
ICAgICAgIG1fbGF5b3V0U3RydWN0W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoICs9IGNlbGxMb2dp
Y2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgaWYgKCFhdmFpbGFibGUgfHwgIXRvdGFsUGVyY2Vu
dCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE4LDcgKzExOCw4IEBAIGludCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShp
bnQKICAgICAgICAgICAgICAgICAgICAgc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbiA9IG1f
dGFibGUtPnNwYW5PZkVmZkNvbChjdXJyZW50RWZmZWN0aXZlQ29sdW1uKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKCh3LmlzRml4ZWQoKSB8fCB3LmlzUGVyY2VudCgp
KSAmJiB3LmlzUG9zaXRpdmUoKSkgewotICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1cnJl
bnRFZmZlY3RpdmVDb2x1bW5dLnNldFZhbHVlKHcudHlwZSgpLCB3LnJhd1ZhbHVlKCkgKiBzcGFu
SW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uKTsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtj
dXJyZW50RWZmZWN0aXZlQ29sdW1uXSA9IHc7CisgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhb
Y3VycmVudEVmZmVjdGl2ZUNvbHVtbl0gKj0gc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsK
ICAgICAgICAgICAgICAgICAgICAgdXNlZFdpZHRoICs9IGVmZldpZHRoICogc3BhbkluQ3VycmVu
dEVmZmVjdGl2ZUNvbHVtbjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc3Bh
biAtPSBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29sdW1uOwpAQCAtMTY0LDEwICsxNjUsMTEgQEAg
aW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGludAogICAgICAgICAgICAgICAg
IGludCB1c2VkU3BhbiA9IDA7CiAgICAgICAgICAgICAgICAgaW50IGkgPSAwOwogICAgICAgICAg
ICAgICAgIHdoaWxlICh1c2VkU3BhbiA8IHNwYW4gJiYgY0NvbCArIGkgPCBuRWZmQ29scykgewot
ICAgICAgICAgICAgICAgICAgICBpbnQgZVNwYW4gPSBtX3RhYmxlLT5zcGFuT2ZFZmZDb2woY0Nv
bCArIGkpOworICAgICAgICAgICAgICAgICAgICBmbG9hdCBlU3BhbiA9IG1fdGFibGUtPnNwYW5P
ZkVmZkNvbChjQ29sICsgaSk7CiAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgc2V0IGlmIG5v
IGNvbCBlbGVtZW50IGhhcyBhbHJlYWR5IHNldCBpdC4KICAgICAgICAgICAgICAgICAgICAgaWYg
KG1fd2lkdGhbY0NvbCArIGldLmlzQXV0bygpICYmIHcudHlwZSgpICE9IEF1dG8pIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY0NvbCArIGldLnNldFZhbHVlKHcudHlwZSgpLCB3
LnJhd1ZhbHVlKCkgKiBlU3BhbiAvIHNwYW4pOworICAgICAgICAgICAgICAgICAgICAgICAgbV93
aWR0aFtjQ29sICsgaV0gPSB3OworICAgICAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29s
ICsgaV0gKj0gZVNwYW4gLyBzcGFuOwogICAgICAgICAgICAgICAgICAgICAgICAgdXNlZFdpZHRo
ICs9IGVmZldpZHRoICogZVNwYW4gLyBzcGFuOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgIHVzZWRTcGFuICs9IGVTcGFuOwpAQCAtMjM0LDcgKzIzNiw3IEBAIHZv
aWQgRml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICBpbnQgYXV0b1NwYW4gPSAwOwogICAg
IGludCB0b3RhbEZpeGVkV2lkdGggPSAwOwogICAgIGludCB0b3RhbFBlcmNlbnRXaWR0aCA9IDA7
Ci0gICAgaW50IHRvdGFsUmF3UGVyY2VudCA9IDA7CisgICAgZmxvYXQgdG90YWxQZXJjZW50ID0g
MDsKIAogICAgIC8vIENvbXB1dGUgcmVxdWlyZW1lbnRzIGFuZCB0cnkgdG8gc2F0aXNmeSBmaXhl
ZCBhbmQgcGVyY2VudCB3aWR0aHMuCiAgICAgLy8gUGVyY2VudGFnZXMgYXJlIG9mIHRoZSB0YWJs
ZSdzIHdpZHRoLCBzbyBmb3IgZXhhbXBsZQpAQCAtMjQ3LDcgKzI0OSw3IEBAIHZvaWQgRml4ZWRU
YWJsZUxheW91dDo6bGF5b3V0KCkKICAgICAgICAgfSBlbHNlIGlmIChtX3dpZHRoW2ldLmlzUGVy
Y2VudCgpKSB7CiAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLmNhbGNWYWx1
ZSh0YWJsZUxvZ2ljYWxXaWR0aCk7CiAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBj
YWxjV2lkdGhbaV07Ci0gICAgICAgICAgICB0b3RhbFJhd1BlcmNlbnQgKz0gbV93aWR0aFtpXS5y
YXdWYWx1ZSgpOworICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IG1fd2lkdGhbaV0ucGVyY2Vu
dCgpOwogICAgICAgICB9IGVsc2UgaWYgKG1fd2lkdGhbaV0uaXNBdXRvKCkpIHsKICAgICAgICAg
ICAgIG51bUF1dG8rKzsKICAgICAgICAgICAgIGF1dG9TcGFuICs9IG1fdGFibGUtPnNwYW5PZkVm
ZkNvbChpKTsKQEAgLTI3MCwxMSArMjcyLDExIEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6bGF5
b3V0KCkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmICh0b3RhbFJhd1BlcmNlbnQpIHsKKyAgICAgICAgICAgIGlm
ICh0b3RhbFBlcmNlbnQpIHsKICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCA9IDA7
CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRWZmQ29sczsgaSsrKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChtX3dpZHRoW2ldLmlzUGVyY2VudCgpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLnJhd1ZhbHVlKCkgKiAo
dGFibGVMb2dpY2FsV2lkdGggLSB0b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxSYXdQZXJjZW50Owor
ICAgICAgICAgICAgICAgICAgICAgICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5wZXJjZW50
KCkgKiAodGFibGVMb2dpY2FsV2lkdGggLSB0b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxQZXJjZW50
OwogICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50V2lkdGggKz0gY2FsY1dpZHRo
W2ldOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHJldmlz
aW9uIDgwMzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFJlbmRlclRhYmxl
U2VjdGlvbjo6YWRkQ2VsbChSZW5kZXJUCiAgICAgICAgICAgICBzd2l0Y2ggKGxvZ2ljYWxIZWln
aHQudHlwZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAg
ICAgICAgICBpZiAoIShjUm93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkgfHwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChjUm93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93TG9n
aWNhbEhlaWdodC5yYXdWYWx1ZSgpIDwgbG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChjUm93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93
TG9naWNhbEhlaWdodC5wZXJjZW50KCkgPCBsb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2dyaWRbbV9jUm93XS5sb2dpY2FsSGVpZ2h0ID0gbG9naWNh
bEhlaWdodDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IGNhc2UgRml4ZWQ6CkBAIC00MzQsMjIgKzQzNCwyMiBAQCBpbnQgUmVuZGVyVGFibGVTZWN0aW9u
OjpsYXlvdXRSb3dzKGludCB0CiAgICAgICAgICAgICBpZiAobV9ncmlkW3JdLmxvZ2ljYWxIZWln
aHQuaXNBdXRvKCkpCiAgICAgICAgICAgICAgICAgbnVtQXV0bysrOwogICAgICAgICAgICAgZWxz
ZSBpZiAobV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNQZXJjZW50KCkpCi0gICAgICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBl
cmNlbnQoKTsKICAgICAgICAgfQogICAgICAgICBpZiAodG90YWxQZXJjZW50KSB7CiAgICAgICAg
ICAgICAvLyB0cnkgdG8gc2F0aXNmeSBwZXJjZW50CiAgICAgICAgICAgICBpbnQgYWRkID0gMDsK
LSAgICAgICAgICAgIHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCAqIHBlcmNl
bnRTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICB0b3RhbFBlcmNlbnQgPSBtaW4odG90YWxQZXJj
ZW50LCAxMDApOwogICAgICAgICAgICAgaW50IHJoID0gbV9yb3dQb3NbMV0gLSBtX3Jvd1Bvc1sw
XTsKICAgICAgICAgICAgIGZvciAoaW50IHIgPSAwOyByIDwgdG90YWxSb3dzOyByKyspIHsKICAg
ICAgICAgICAgICAgICBpZiAodG90YWxQZXJjZW50ID4gMCAmJiBtX2dyaWRbcl0ubG9naWNhbEhl
aWdodC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgdG9BZGQgPSBtaW4o
ZGgsICh0b3RhbEhlaWdodCAqIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkgLyAo
MTAwICogcGVyY2VudFNjYWxlRmFjdG9yKSkgLSByaCk7CisgICAgICAgICAgICAgICAgICAgIGlu
dCB0b0FkZCA9IG1pbihkaCwgc3RhdGljX2Nhc3Q8aW50PigodG90YWxIZWlnaHQgKiBtX2dyaWRb
cl0ubG9naWNhbEhlaWdodC5wZXJjZW50KCkgLyAxMDApIC0gcmgpKTsKICAgICAgICAgICAgICAg
ICAgICAgLy8gSWYgdG9BZGQgaXMgbmVnYXRpdmUsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBzaHJp
bmsgdGhlIHJvdyAodGhpcyBidWcKICAgICAgICAgICAgICAgICAgICAgLy8gYWZmZWN0ZWQgT3V0
bG9vayBXZWIgQWNjZXNzKS4KICAgICAgICAgICAgICAgICAgICAgdG9BZGQgPSBtYXgoMCwgdG9B
ZGQpOwogICAgICAgICAgICAgICAgICAgICBhZGQgKz0gdG9BZGQ7CiAgICAgICAgICAgICAgICAg
ICAgIGRoIC09IHRvQWRkOwotICAgICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbV9n
cmlkW3JdLmxvZ2ljYWxIZWlnaHQucmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90
YWxQZXJjZW50IC09IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKHIgPCB0b3RhbFJvd3MgLSAxKQogICAgICAg
ICAgICAgICAgICAgICByaCA9IG1fcm93UG9zW3IgKyAyXSAtIG1fcm93UG9zW3IgKyAxXTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAkocmV2aXNp
b24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMyArNDksMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBo
YXNCb3JkZXJSYWRpdXMoKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKG1fdG9wTGVmdC53aWR0
aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fdG9wTGVmdC53aWR0aCgpLmlzWmVy
bygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX3RvcFJpZ2h0Lndp
ZHRoKCkucmF3VmFsdWUoKSA+IDApCisgICAgICAgIGlmICghbV90b3BSaWdodC53aWR0aCgpLmlz
WmVybygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRvbUxl
ZnQud2lkdGgoKS5yYXdWYWx1ZSgpID4gMCkKKyAgICAgICAgaWYgKCFtX2JvdHRvbUxlZnQud2lk
dGgoKS5pc1plcm8oKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobV9i
b3R0b21SaWdodC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9t
UmlnaHQud2lkdGgoKS5pc1plcm8oKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODA2NjUpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0w
My0wOSAgUmlrIENhYmFuaWVyICA8Y2FiYW5pZXJAZ21haWwuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGJ1ZyA1NjA1MjogcGVyY2VudGFnZXMg
YXJlIGluY29ycmVjdGx5IHJvdW5kZWQgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjA1MgorCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQudHh0OgorCiAyMDExLTAz
LTA5ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9u
LWludGVnZXItZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDgwMzgxKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQu
Y2hlY2tzdW0JKHdvcmtpbmcgY29weSkKQEAgLTEgKzEgQEAKLTQxNGNhYWEyZWUwOTgyM2ZjYzZi
MTIwMGQzMGVjMTI3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorYzZkOTA1NTM0MWE5OTA0
OTI5Y2NjNDk0NzZjN2JkOWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3Nz
L3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MDM4MSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2Vy
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg1ODUKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDQpIHNp
emUgOTEweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0
IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDgp
IHNpemUgOTEweDQKLSAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEw
MHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDEwMXg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsNTIpIHNpemUgOTAweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsNTYpIHNpemUgODkweDQKQEAgLTQ5LDcgKzQ5LDcgQEAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NTg1CiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg0KSBz
aXplIDg0MHg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4
NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg4
KSBzaXplIDgzNXg0Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAx
MDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMCkgc2l6ZSAxMDF4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDkyKSBzaXplIDgyNXg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDk2KSBzaXplIDgxNXg0CkBAIC04NCw2MSArODQsNjEgQEAgbGF5ZXIg
YXQgKDgsMTI2KSBzaXplIDEwMDB4MjAKICAgUmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMCwwKSBz
aXplIDEwMDB4MjAKICAgICBSZW5kZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXpl
IDEwMDB4MjAKICAgICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAxMDAweDIw
Ci0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDEpIHNpemUgMTF4MTggW2JnY29s
b3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCB7VER9IGF0ICgwLDEpIHNpemUgMTJ4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBy
cz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgx
OAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTEgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MTIsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDIxLDEpIHNpemUgMTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MiBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMiwxKSBzaXpl
IDEzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQogICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoMzQsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9
MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDM1LDEpIHNpemUgMTB4MTggW2Jn
Y29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9MyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NCwxKSBz
aXplIDE1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQorICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNDUsMSkgc2l6ZSAxNngxOCBbYmdjb2xvcj0jMDAw
MDAwN0ZdIFtyPTAgYz00IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0
OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDU5LDEpIHNpemUgMTB4MTgg
W2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9NSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRh
YmxlQ2VsbCB7VER9IGF0ICg2MSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9
MCBjPTUgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAg
ICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNjksMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0j
MDAwMDAwN0ZdIFtyPTAgYz02IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDcxLDEpIHNpemUgMTd4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0x
IGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAog
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRl
clRhYmxlQ2VsbCB7VER9IGF0ICg4NiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTcgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODgs
MSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDk2LDEpIHNpemUgMjB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBy
cz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg5OCwxKSBzaXplIDIw
eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTggcnM9MSBjcz0xXQogICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MTE2LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFd
CisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMTgsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz05IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyNiwxKSBz
aXplIDIxeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KKyAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyOCwxKSBzaXplIDIyeDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE0NywxKSBzaXplIDEw
eDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0KKyAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDE1MCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAi
ICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE1NywxKSBzaXplIDIzeDE4IFti
Z2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEyIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDE2MCwxKSBzaXplIDI0eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9
MCBjPTEyIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAg
ICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4MCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9y
PSMwMEZGMDA3Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDE5MCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0
IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4NCwxMCkgc2l6
ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KKyAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE5NCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0
OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxNSwxKSBzaXplIDEweDE4
IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE1IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDIxOSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTE1IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIK
LSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyNSwxKSBzaXplIDI3eDE4IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDIyOSwxKSBzaXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBj
PTE2IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI1MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMw
MEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDI1NiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJz
PTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4
CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2MiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDI2NiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDI5MiwxKSBzaXplIDcwOHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjk2LDEpIHNpemUgNzA0eDE4IFtyPTAg
Yz0xOSBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdl
ci1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKaVZCT1J3MEtHZ29BQUFB
TlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFB
ZUFHRgpWTTlyRTBFVS9qWnVxZEFpQ0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6
U2RadU51dnVKcldsaU9UaTBTcmVSZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVN
dHFYcXdNNSs4OTQzNzMxdmR0OEFEWExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFs
VmR2c1RpUUdRWU56K1h2bjJIb1BnVnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhD
bGtTQW9nOAozNkVweDNRSTMrUFk4dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRR
SU5JT0pUMWNWSStuTmVMbE5jZEIybHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9z
OTQrd2lIQ0N4bXRQMGE0alo3MWpOVS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFU
U2VpVkhIWkxnM3htSzc5VnZKS2duQ1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1Vl
RjVqeE5uM3RUZAo3MFhhQXE4d0RoME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJo
dVRlekoxSkdxN2RHSkVzVUY3TnR3OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkx
eXcyRmIzbEsyYm1ycnk0RHZGNVptNUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAr
eFhsekhtZ2pXUHhIT3crL0V0WDVYTWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJY
V2M2MkppemRXbTVkbgovV3BJKys2cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3
eGt0aExxd3ZpWUczSENKMlZoaW5TYlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxT
SjkzL0NLbVEwbmJrT2IvcVAyOGY4RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJ
WHY5Rjk4TFp1YTZOK09Qd0VXRHlyRnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82
NmNwaVVzeFEyME5TVXRjbAoxMlZMRnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3
L2JCUytmbXNVdGwrVGhyV2daZjZiOEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWUzZDNZOWNkM2tI
OE4vdXp2bzF0aE1uaEJBZ09DMUZDU2k4Vm9DRW9FalFDN2poa2hkeHlRMWM4QzhrbHZnVGtMamgK
RWdrUU55QlZCVUZCRkZWQ2JWb0ZKYVUwS2FTRWtsTHk0cndudG5mdDdlODV5VEc3anNmT2FNNmF4
L3Q4UmxyUDdzdzVaNTduOCt6TQpudStlTTk2VnJYNXBMZ1FJRUNCQWdBQUJBZ1FJRUxnS0FxdFg0
VEU4QkFFQ0JBZ1FJRUNBQUFFQ0JBWUJBY1EzQWdFQ0JBZ1FJRUNBCkFBRUNWMDFBQUxscTFCNklB
QUVDQkFnUUlFQ0FBQUVCeFBjQUFRSUVDQkFnUUlBQUFRSlhUVUFBdVdyVUhvZ0FBUUlFQ0JBZ1FJ
QUEKQVFIRTl3QUJBZ1FJRUNCQWdBQUJBbGROUUFDNWF0UWVpQUFCQWdRSUVDQkFnQUNCMlpVSVZr
NnVYR2tSOTE5RmdhMjcvZG1XcThqdApvUWdRSUVDQUFBRUNCQ1lXY0FSa1lsQ2JJMENBQUFFQ0JB
Z1FJRUJndm9BQU10L0dQUVFJRUNCQWdBQUJBZ1FJVEN3Z2dFd01hbk1FCkNCQWdRSUFBQVFJRUNN
d1hFRURtMjdpSEFBRUNCQWdRSUVDQUFJR0pCUVNRaVVGdGpnQUJBZ1FJRUNCQWdBQ0IrUUlDeUh3
Yjl4QWcKUUlBQUFRSUVDQkFnTUxHQUFESXhxTTBSSUVDQUFBRUNCQWdRSURCZlFBQ1piK01lQWdR
SUVDQkFnQUFCQWdRbUZoQkFKZ2ExT1FJRQpDQkFnUUlBQUFRSUU1Z3NJSVBOdDNFT0FBQUVDQkFn
UUlFQ0F3TVFDQXNqRW9EWkhnQUFCQWdRSUVDQkFnTUI4QVFGa3ZvMTdDQkFnClFJQUFBUUlFQ0JD
WVdFQUFtUmpVNWdnUUlFQ0FBQUVDQkFnUW1DOGdnTXkzY1E4QkFnUUlFQ0JBZ0FBQkFoTUxDQ0FU
ZzlvY0FRSUUKQ0JBZ1FJQUFBUUx6QlFTUStUYnVJVUNBQUFFQ0JBZ1FJRUJnWWdFQlpHSlFteU5B
Z0FBQkFnUUlFQ0JBWUw2QUFETGZ4ajBFQ0JBZwpRSUFBQVFJRUNFd3NJSUJNREdwekJBZ1FJRUNB
QUFFQ0JBak1GeEJBNXR1NGh3QUJBZ1FJRUNCQWdBQ0JpUVVFa0lsQmJZNEFBUUlFCkNCQWdRSUFB
Z2ZrQ0FzaDhHL2NRSUVDQUFBRUNCQWdRSURDeGdBQXlNYWpORVNCQWdBQUJBZ1FJRUNBd1gwQUFt
Vy9qSGdJRUNCQWcKUUlBQUFRSUVKaFlRUUNZR3RUa0NCQWdRSUVDQUFBRUNCT1lMQ0NEemJkeERn
QUFCQWdRSUVDQkFnTURFQWdMSXhLQTJSNEFBQVFJRQpDQkFnUUlEQWZBRUJaTDZOZXdnUUlFQ0FB
QUVDQkFnUW1GaEFBSmtZMU9ZSUVDQkFnQUFCQWdRSUVKZ3ZJSURNdDNFUEFRSUVDQkFnClFJQUFB
UUlUQ3dnZ0U0UGFIQUVDQkFnUUlFQ0FBQUVDOHdVRWtQazI3aUZBZ0FBQkFnUUlFQ0JBWUdJQkFX
UmlVSnNqUUlBQUFRSUUKQ0JBZ1FHQytnQUF5MzhZOUJBZ1FJRUNBQUFFQ0JBaE1MQ0NBVEF4cWN3
UUlFQ0JBZ0FBQkFnUUl6QmNRUU9iYnVJY0FBUUlFQ0JBZwpRSUFBZ1lrRkJKQ0pRVzJPQUFFQ0JB
Z1FJRUNBQUlINUFnTElmQnYzRUNCQWdBQUJBZ1FJRUNBd3NZQUFNakdvelJFZ1FJQUFBUUlFCkNC
QWdNRjlBQUpsdjR4NENCQWdRSUVDQUFBRUNCQ1lXRUVBbUJyVTVBZ1FJRUNCQWdBQUJBZ1RtQ3dn
ZzgyM2NRNEFBQVFJRUNCQWcKUUlEQXhBSUN5TVNnTmtlQUFBRUNCQWdRSUVDQXdId0JBV1Mralhz
SUVDQkFnQUFCQWdRSUVKaFlRQUNaR05UbUNCQWdRSUFBQVFJRQpDQkNZTHlDQXpMZHhEd0VDQkFn
UUlFQ0FBQUVDRXdzSUlCT0QyaHdCQWdRSUVDQkFnQUFCQXZNRkJKRDVOaW52T1hueVpNcTZGRVdB
CkFBRUNCQWdRSUVEZ3RRZ0lJSzlGeVRJRUNCQWdRSUFBQVFJRUNFd2lJSUJNd21nakJBZ1FJRUNB
QUFFQ0JBaThGZ0VCNUxVb1dZWUEKQVFJRUNCQWdRSUFBZ1VrRVZyYjY1WEpiV2ptNWNybTczWGVW
QmJidXZ1eTRybkkxSG80QUFRSUVDQkFnUUlEQVlnS09nQ3ptWldrQwpCQWdRSUVDQUFBRUNCSllR
RUVDV3dMTXFBUUlFQ0JBZ1FJQUFBUUtMQ1FnZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRWtDWHdy
RXFBCkFBRUNCQWdRSUVDQXdHSUNBc2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFn
QUFCQWdRSUVDQ3dtSUFBc3BpWHBRa1EKSUVDQUFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFB
UUlFQ0N3bUlJQXM1bVZwQWdRSUVDQkFnQUFCQWdTV0VCQkFsc0N6S2dFQwpCQWdRSUVDQUFBRUNp
d2tJSUl0NVdab0FBUUlFQ0JBZ1FJQUFnU1VFQkpBbDhLeEtnQUFCQWdRSUVDQkFnTUJpQWdMSVls
NldKa0NBCkFBRUNCQWdRSUVCZ0NRRUJaQWs4cXhJZ1FJQUFBUUlFQ0JBZ3NKaUFBTEtZbDZVSkVD
QkFnQUFCQWdRSUVGaENRQUJaQXMrcUJBZ1EKSUVDQUFBRUNCQWdzSmlDQUxPWmxhUUlFQ0JBZ1FJ
QUFBUUlFbGhBUVFKYkFzeW9CQWdRSUVDQkFnQUFCQW9zSkNDQ0xlVm1hQUFFQwpCQWdRSUVDQUFJ
RWxCQVNRSmZDc1NvQUFBUUlFQ0JBZ1FJREFZZ0lDeUdKZWxpWkFnQUFCQWdRSUVDQkFZQWtCQVdR
SlBLc1NJRUNBCkFBRUNCQWdRSUxDWWdBQ3ltSmVsQ1JBZ1FJQUFBUUlFQ0JCWVFrQUFXUUxQcWdR
SUVDQkFnQUFCQWdRSUxDWWdnQ3ptWldrQ0JBZ1EKSUVDQUFBRUNCSllRRUVDV3dMTXFBUUlFQ0JB
Z1FJQUFBUUtMQ1FnZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRWtDWHdyRXFBQUFFQwpCQWdRSUVD
QXdHSUNBc2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFB
c3BpWHBRa1FJRUNBCkFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZw
QWdRSUVDQkFnQUFCQWdTV0VCQkFsc0N6S2dFQ0JBZ1EKSUVDQUFBRUNpd2tJSUl0NVdab0FBUUlF
Q0JBZ1FJQUFnU1VFQkpBbDhQNGNxNTQ4ZWZMUDhiQWVrd0FCQWdRSUVDQkFnTUFrQWdMSQpKSXcy
UW9BQUFRSUVDQkFnUUlEQWF4RVFRRjZMa21VSUVDQkFnQUFCQWdRSUVKaEVRQUNaaE5GR0NCQWdR
SUFBQVFJRUNCQjRMUUlyClcvMXl1UVZYVHE1YzdtNzNYV1dCcmJzdk82NnJYSTJISTBDQUFBRUNC
QWdRSUxDWWdDTWdpM2xabWdBQkFnUUlFQ0JBZ0FDQkpRUUUKa0NYd3JFcUFBQUVDQkFnUUlFQ0F3
R0lDQXNoaVhwWW1RSUFBQVFJRUNCQWdRR0FKQVFGa0NUeXJFaUJBZ0FBQkFnUUlFQ0N3bUlBQQpz
cGlYcFFrUUlFQ0FBQUVDQkFnUVdFSkFBRmtDejZvRUNCQWdRSUFBQVFJRUNDd21JSUFzNW1WcEFn
UUlFQ0JBZ0FBQkFnU1dFTGppCjN3RlpZdHRXSlVDQUFBRUNCQWdRSUVDQXdBNEJSMEIyY1BpQ0FB
RUNCQWdRSUVDQUFJSGRGQkJBZGxQWHRna1FJRUNBQUFFQ0JBZ1EKMkNFZ2dPemc4QVVCQWdRSUVD
QkFnQUFCQXJzcElJRHNwcTV0RXlCQWdBQUJBZ1FJRUNDd1EwQUEyY0hoQ3dJRUNCQWdRSUFBQVFJ
RQpkbE5BQU5sTlhkc21RSUFBQVFJRUNCQWdRR0NIZ0FDeWc4TVhCQWdRSUVDQUFBRUNCQWpzcG9B
QXNwdTZ0azJBQUFFQ0JBZ1FJRUNBCndBNEJBV1FIaHk4SUVDQkFnQUFCQWdRSUVOaE5BUUZrTjNW
dG13QUJBZ1FJRUNCQWdBQ0JIUUlDeUE0T1h4QWdRSUFBQVFJRUNCQWcKc0pzQ0FzaHU2dG8yQVFJ
RUNCQWdRSUFBQVFJN0JBU1FIUnkrSUVDQUFBRUNCQWdRSUVCZ053VUVrTjNVdFcwQ0JBZ1FJRUNB
QUFFQwpCSFlJQ0NBN09IeEJnQUFCQWdRSUVDQkFnTUJ1Q2dnZ3U2bHIyd1FJRUNCQWdBQUJBZ1FJ
N0JBUVFIWncrSUlBQVFJRUNCQWdRSUFBCmdkMFVtRjFwNHlzblY2NjB5Si91djZkL2V2ZWZ2cHo3
V1N4M2N1NjlsNzRqMXRtdGJZK1BHSThSbHlzOXpqM0RVb3YzOE1wcXc5VzQKamF2eFdCa2VOMm9Z
ZTQ3UEw5ZjM5dVVXL1Q2SmJWL3VjczlGZDg2cjQrTGxwcTRqeXJqNE1mNmN0VVE5Y2JsbitQZFAv
MlNvNlUvVgpESi9kczYzSXUrK2VWK0JGSy9tU0FBRUNCQWdRU0NQZ0NFaWFVU2lFQUFFQ0JBZ1FJ
RUNBd040WEVFRDIvb3gxU0lBQUFRSUVDQkFnClFDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNC
UVNRdlQ5akhSSWdRSUFBQVFJRUNCQklJeUNBcEJtRlFnZ1FJRUNBQUFFQ0JBanMKZlFFQlpPL1BX
SWNFQ0JBZ1FJQUFBUUlFMGdnSUlHbEdvUkFDQkFnUUlFQ0FBQUVDZTE5QUFObjdNOVloQVFJRUNC
QWdRSUFBZ1RRQwpBa2lhVVNpRUFBRUNCQWdRSUVDQXdONFhFRUQyL294MVNJQUFBUUlFQ0JBZ1FD
Q05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNCUVNRCnZUOWpIUklnUUlBQUFRSUVDQkJJSXlDQXBC
bUZRZ2dRSUVDQUFBRUNCQWpzZlFFQlpPL1BXSWNFQ0JBZ1FJQUFBUUlFMGdnSUlHbEcKb1JBQ0JB
Z1FJRUNBQUFFQ2UxOUFBTm43TTlZaEFRSUVDQkFnUUlBQWdUUUNBa2lhVVNpRUFBRUNCQWdRSUVD
QXdONFhFRUQyL294MQpTSUFBQVFJRUNCQWdRQ0NOZ0FDU1poUUtJVUNBQUFFQ0JBZ1FJTEQzQlZh
MittWHZ0NmxEQWdRSUVDQkFnQUFCQWdReUNEZ0NrbUVLCmFpQkFnQUFCQWdRSUVDQlFSRUFBS1RK
b2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUkKRUNC
QWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVN
QWdKSWhpbW9nUUFCQWdRSQpFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBx
SUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJCkVNZ2dJSUJrbUlJYUNCQWdRSUFB
QVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUUK
QkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpn
QUFCQWdRSUVDQkFJSU9BQUpKaApDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNC
QWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFCkNCQWdRSUFBQVFJRU1nZ0lJ
Qm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFR
SUUKQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVD
QlFSRUFBS1RKb2JSSWdRSUFBQVFJRQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWln
eGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJBU1FJb1BXSmdFQ0JB
Z1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUND
RGdBQ1MKWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJ
YUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYgpCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNC
QWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDCkJBZ1FJRUNBUUJF
QkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBT
SUVDQUFBRUMKQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFB
QVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlD
U0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBCmttRUthaUJB
Z0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNC
QWdVRVJCQWlneGEKbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJ
b1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFB
UUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCCkFnUUlF
TWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBx
QUdBZ1FJRUNCQWdBQUIKQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JB
Z1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VF
UkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NCldw
c0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNC
QWdBQ0JEQUlDU0lZcHFJRUEKQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRB
QWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JESUlDQ0FaSmlDR2dn
UUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFB
CkFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdr
eUtDMVNZQUFBUUlFQ0JBZ1FDQ0QKZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJB
Z0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDSwpERnFiQkFnUUlFQ0FBQUVD
QkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdL
YWlCCkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFB
UUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlG
QkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpBQUVDUlFRRWtDS0Qx
aVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JB
Z1FJRUFnCmc0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlD
Q0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0Jn
SUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltbwpnUUFCQWdRSUVD
QkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFB
cE1taHRFaUJBCmdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFn
UUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlB
QWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQQpJSU9BQUpK
aENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JB
Z0FBQkFnUUlGQkVRClFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVD
UlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWln
dFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZwpRSUFB
QVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlD
QWdnR2FhZ0JnSUVDQkFnClFJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9n
UUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZUXBxSUVDQUFBRUNC
QWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUgpF
RUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFR
SUVDQkFnUUlBQWdRd0NBa2lHCkthaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVD
QkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFMKSUVDQUFBRUNCQWdReUNBZ2dH
U1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFn
UQpJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlC
QUVRRUJwTWlndFVtQUFBRUNCQWdRCklFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RK
b2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJCQWlneGFtd1FJRUNC
QWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVN
QWdKSQpoaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBx
SUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFB
QVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkKRUNCQWdBQUJBa1VF
QkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpn
QUFCQWdRSQpFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNC
QWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJ
Qm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUMKU0lZcHFJRUFB
UUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVD
QlFSRUFBS1RKbwpiUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWln
eGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JB
Z1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUUKQ0JBZ1FD
Q0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJ
YUNCQWdRSUFBQVFJRQpDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNC
QWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDCkFraUdLYWlCQUFFQ0JBZ1FJRUNBUUJF
QkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3kKYUcw
U0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFB
QVFJRU1nZ0lJQm1tb0FZQwpCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlD
U0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDCkJBZ1FJRUFnZzRBQWttRUthaUJB
Z0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUMK
QkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJ
b1BXSmdFQ0JBZ1FJRUNBQUlFTQpBZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFB
UUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwCk1taHRFaUJBZ0FBQkFnUUlF
TWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBx
QUcKQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JB
Z1FJRUNBUUJFQkFhVElvTFZKZ0FBQgpBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VF
UkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCCkFnUUlGQkVRUUlvTVdw
c0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNC
QWdBQ0IKREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRB
QWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQQpLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dn
UUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnCkJnSUVDQkFnUUlB
QUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdr
eUtDMVNZQUEKQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJB
Z0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQQpBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVD
QkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBCmdRd0NBa2lH
S2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFB
UUlFQ0JBZ1VFUkEKQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlG
QkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbQpvQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0Qx
aVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BCkFBRUNC
QWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlD
Q0FaSmlDR2dnUUlFQ0EKQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0Jn
SUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQQpBSUVNQWdKSWhpbW9nUUFCQWdRSUVD
QkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFClFB
QXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFn
UUlFQ0FBQUVDQkRJSUNDQVoKcHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlB
QWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSgpnQUFCQWdRSUVDQkFJSU9BQUpK
aENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JB
CmdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVD
UlFRRWtDS0QxaVlCQWdRSUVDQkEKZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWln
dFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUQpSRUFBS1RKb2JSSWdRSUFB
QVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlD
QWdnCkdhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9n
UUFCQWdRSUVDQkFnRUFSQVFHa3lLQzEKU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNC
QWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZwpRSUFBQVFJRUNCUVJF
RUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFR
SUVDQkFnClFJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVD
QkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWcKVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dH
U1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSQpJQm1tb0FZQ0JB
Z1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDRlk2V3hr
QUFCZHBTVVJCClZCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FB
QkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUUKQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFn
VUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRgpCQVNRSW9Q
V0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlF
Q0JBZ1FDQ0RnQUNTCllRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdn
SUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RGcWIKQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFH
QWdRSUVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQwpCQWdR
SUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFB
Q2t5YUcwU0lFQ0FBQUVDCkJBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VD
QkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUMKUlFRRWtDS0QxaVlCQWdRSUVDQkFn
QUNCREFJQ1NJWXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQQpr
bUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlF
Q0FBQUVDQkFnVUVSQkFpZ3hhCm13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFR
SkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltb2dRQUIKQWdRSUVDQkFnRUFSQVFHa3lL
QzFTWUFBQVFJRUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FB
QgpBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJ
SUNDQVpwcUFHQWdRSUVDQkFnQUFCCkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2Fp
QkFBRUNCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0EKQUpKaENtb2dRSUFBQVFJ
RUNCQWdVRVJBQUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVR
UUlvTQpXcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlC
QWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBCkFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdR
SUVBZ2c0QUFrbUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUEKQVFJRUNCRElJQ0NB
WkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVD
QkFnUUlBQQpBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFn
RUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NECmdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBN
bWh0RWlCQWdBQUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0sKREZxYkJBZ1FJ
RUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdR
d0NBa2lHS2FpQgpBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENt
b2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNBCkFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdB
QUJBZ1FJRkJFUVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0EKQUFFQ1JR
UUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVt
QUFBRUNCQWdRSUVBZwpnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJ
RUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBCmlneGFtd1FJRUNCQWdBQUJBZ1F5Q0Fn
Z0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW8KZ1FB
QkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdR
SUZCRVFBQXBNbWh0RWlCQQpnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNL
REZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBCmdBQUJBa1VFQkpBaWc5WW1BUUlF
Q0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkEK
SUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1ln
aG9JRUNCQWdBQUJBZ1FJRkJFUQpRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJ
RUNBQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwCnFJRUFBUUlFQ0JBZ1FJQkFF
UUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JS
SWcKUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdB
QUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZwpRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFn
SkloaW1vZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnClFDQ0RnQUNTWVFwcUlF
Q0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJ
RUNCUVIKRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpB
aWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpRwpLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FB
QkFnUUlFQ0JBSUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTCklFQ0FBQUVDQkFn
UXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1t
b0FZQ0JBZ1EKSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlF
Q0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUQpJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JR
UkVBQUtUSm9iUklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVCkVSQkFpZ3hh
bXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJ
RUNBQUlFTUFnSkkKaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0Rn
QUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1odApFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFD
QkFnUUlBQUFRSUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJCkVDQkFn
QUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFh
VElvTFZKZ0FBQkFnUUkKRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lF
Q0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSQpGQkVRUUlvTVdwc0VDQkFnUUlBQUFR
SUVNZ2dJSUJtbW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDClNJ
WXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FB
QkFnUUlFQ0JRUkVBQUtUSm8KYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFn
VUVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRQpDQkFnUUlBQUFRSkZCQVNRSW9Q
V0pnRUNCQWdRSUVDQUFJRU1BclB2ZnZlN2JUYWJ0YlcxdGJhK3ZqN1V0TFcxMVZaWFY5djU4K2Ri
CmZCNlhzMmZQdHRPblQxKzRMWlozSVVDQUFBRUNCQWdRZUxWQTdFZXRyS3dNKzFqeCtmang2aVhk
UW1CNmdYUG56ZzM3OE9QM1lPenIKai92MTR6NSszRGRleHYzOStEcnUzLzcxdU14NC9kaGpqN1di
Yjc1NS9QSlYxN0hkZUt6dGw3R2V1TjdjM0d5empZMk45cGEzdkdWNApzQWdWOFlEeEVTdkhBbi84
NHgvYmZmZi9ydjNiZjYyM1h6NnlyLzNQWTdQMnd0a0lLbjNEa1UzNmh0cE5oN2MvaHM4SkVDQkFn
QUFCCkF2VUV6dmNkbzlqdjZ2dFIxODAyMm0wM25HbnYrY3ZXUHZyZUErM050eDRhZnRFYk8zZmJk
L3pxSWVsNE53VEd3QkRYc2ZNZisvU3gKSHg5ZnYvamlpKzJsbDE1cWIzakRHOXJ4NDhjdkhHU0k3
OFB4STRKQlhHTDVNWURNK3o1OTRZVVgydXRmLy9wTHRoSHJ4M3BSdy9iMQo0L2E0eE8yLy92V3Yy
eXdLdWYzMjI0Y0gyNzdnbVRObjJuMzMzZGYrN2tjUHRoLzkrOUgyMExNM3RmMkg5N2NQL3UxTjdj
NFQxN1VqCmgxNDVBdEkzT0lzSE90ZVBsdlFuVmV0aGFtWDI4blYvNUxhMTBoOHdrbFIvMFBWWTVk
eFdCNGtHejdXVmVKTDJqN2paK3Z4OC8zaisKZVAzdyt1bm5oNStmOFRwd0xlNC9yUFhSYmZhZG5k
amZPWDNtZlB2UDN6M2ZmbjdmayswLzduMnAzZi9JYysyekh6M1hQdkR1NDIzZgp2bjNEem1GZnpJ
WEFaQUt4Z3ovdTVNZDE3T2pIUjRTUXVNVDFJNDg4TW56LzNYbm5uY09SdWZIQlkvOS9YSGU4YmJ6
ZW5nM0cyNTU4Cjhza2hPNHhmajlmenRoSDNqL2RGVGFkT25XcXpTRVNSZE9JSk1SWVE0ZVBoaHg5
dS8vRFQrOW9QSGpqZWZuUG0xclp5MDZ4OTZJTzMKdEkvZWRhd2Qyci9XUTBmZldpLzRYTjlReng2
dFArLzZQLzFRWXdTUWZ0MWJhV3Y5L3RYK2pPeFhMWDRwc05XWDYxRWxGdXhmOS9XRwoyN2JhMmY2
SjlmbjUvdkg4OGZyaDlkUFBEejgvcjlYOWgxZDJpNGI5bWZoZDhwdHZPOXdPM25pZy9mMC8vcUU5
OE15KzFuNzJaSHZUCkcwNjNPOTU2cE8zZnYzL1k5K3FMdVJDWVJDQjI3R01uUHo3aWFFWjhIZGV4
Yno5K3hOc3Bmdm5MWDdZalI0NjBFeWRPREVma3hvQVIKNjQyZlg2bWdlRXZHK0xhTkt5MDdiamV1
NHhJMVJQWVlUc0dLTCtMSkVBOGNCY2RwVjcvNHhTL2F6eDljYmIvWmVITmI2VStnbzBmMwp0WnV1
WHgrZU1KdjltUlZQcnQ1bUR4VHhVdEhhbVo0dyt0TnJDQnFyczhnaXcwdElXKzBMeHR0RnR2cjlz
WFNzMjY5NitBaWtsZGJQCkFPdGZyMWlmbis4Znp4K3ZILzNGMU91bm54OStmbDZiK3cvREwxa2po
UXlYbDMrNWV2em9lanR5L0dCN1pyYldIbmpxeHZhRGYzbTYKL2RYdHg0ZWR0OWU2QXpkdTBUV0J5
d21NQVNTdXgvQVIxM0dRSWI3WDRwU3NDQTdQUFBOTSs5V3ZmdFd1dSs2NmRzc3R0MXdJd2hlSApq
emh0NjN2ZisxNzc3R2MvKzZxSGpiZHZYTHg4TFBUTmIzNnpmZXBUbjJxSERoMjZzTTY0WEZ4SENJ
bk1FZXYzczZkVzJ2UFBQejhVCkVrcy85OXh6dzBlOHdlVGhGOS9VVm8vMUo4K3gvZTNZZGV2dDhl
ZGJlK3FGclg0RVpMV3Q5WkF4UE0vNkFZMk5mZ1FqZ3MxbS8vVmwKSElKc1orTUh5R3FMTTdIaTY5
WHpMNmV2Y3hGQ3R2cjdUT0tCK20xbnpzVWIzZnViVVhvb3NUNC8zeitlUDE0L3ZINzYrZUhuNTdX
NgoveEFuZUt5c0RuczR3eGtmc1cvejVQTmI3ZGlSMmJEZjgxemYzL25YMzY4T08yQngxc240aTkv
WUpYSWhzS3pBOWdBeXZ0RjdQQUlTCnAxL0YvWWNQSHg0K25uMzIyUmJ2NDRqOS82TkhqMTRJSVdN
TlAvN3hqNGN3RWFkYWZlNXpueHR2dm5BOWJ2ZkNEYTk4OHAzdmZLZjkKNUNjL0dVTEx4ejcyc1l2
dkhtcUl4NHpzTVR0dzRNRHc1cFJJUkpHT29xaTQ0K21ubjI1UHJQOTFPM0owZjd2aDJMNGVRUGIx
TjUrdgp0SDkrdUtlVzFjMSthbFhFajVlRFI1eFVGVSswZUkvSGFuL1B4L3ErbnJUYVpqOEZxd2VR
L2pIcnlYK3RoNVBOelg0NHFIK2M3K0VrCk1PTFVyWTI0N1pVakk5Ym41L3ZIODhmcmg5ZFBQei84
L0x3Vzl4LzZydFB3aTluNExlKzVzeHQ5SHllT2dtejJBTExlVnVKVWtINDYKek85Zk9OcmlOUGZZ
M3hKQVhyVi82b1lsQk1ZQUV1RWdQc1kzb2NjK2ZYekUvZkUvWWNYM1hlenpSd2dlOS9rUEhqdzQz
UDdRUXcrMQpyMy85NnkydXgxT214dmVRYkM4dHRuV3AyMk9kSjU1NG9uMzFxMTl0UC96aEQ5c1h2
dkNGOXJhM3ZXM1lWaHoxaUlNY2NXUWxzc2NzCkNvakRNNUZJNGhETldGeDh2ZjlnYThmNjRjTTQr
bkg4NklFV0JhNzNNREdiOVZPeGV0QllXZTFITTNvUi9RQlBEeExuMnF5L1l1enIKejdHMW5pVGlP
TWRhLzNWbXZQMDhibC92VDdaNGM5Wm1YMjZ6UHluUDk0OElJR2MzK25scWZXbnI4L1A5NC9uajlj
UHJwNThmZm41ZQpxL3NQc2IrejJuZnd0czcxOE5GL0tidXhjYWFkUGYxU085TlBOVjlaMldqbk45
YmJjLzNzajloeGkzMnQyT2VLL1M4WEFsTUlqQUVrCnJpT0FqS2RKalVFaWJodFArNHYzWUVRSWlF
c0Vndmk0OTk1NzI5ZSs5clZYbGZMNDQ0Ky82cllJTUplNlBjTDFlTG4vL3Z2Ymw3LzgKNWZiRkwz
Nnh2ZTk5N3hzQ1VOUXl2dTk4RnNWRUNCbXZvL0FvT2dwNy9lenh0bjdnNW5iMDRMNTI5SEFQSUlj
T3R3UDcrN0o5K1RoVgpJdEorWDd3ZndYajVpTVo2UCtkcXZUK1o0bWpIRUR6NjV4RlVacStjbXRV
elIzL2k5WSsrVGh5a0hBTEoyYzIyc1dYOWVFSGk1L3ZICjg4ZnJoOWRQUHovOC9PejdEZGZnL3NO
YS82VnMvNjk1K241UjMvbnJSMERPbmxsdHA5ZjdmL0p6K3NXKzc3UFZOZzdPMnZWbm4rMzcKUk1l
R2ZTNEJaTnhWZFQyRlFPemN4ejU4Zk1STy9uamtZN3c5am9pTVlTVGVveEg3L3JGTVhPTDJEMzNv
USsxMXIzdGQrOFkzdnRGKworOXZmRHJmSFAzSEU1T0pMckh1cDI3Y0g2aE1uVHJUUGYvN3pGNDZB
akxYRlk4YjMvbkFFSkRZU0s4VjFMQkJ2RUxueHhodmI2NTc0ClhUdHo0SzdoUFIrSER1MXZSL3Rw
V0ljT0grcFBubjZxVUx5M0l3SklyNm9IL2Y2bThoNU0rdGZ4RVcraWpOOW14eEhIK0M5NjEvcWYK
RFluVEltUFp6ZjZiZ0ZoK3VJN3dzalhyaHlpdHo4LzNqK2VQMXcrdm4zNSsrUGw1N2U0LzlOMmZ2
dDh6NjZlYTk0K04vZTMwUyt2dAp4ZFA5REpOK1N2cnBmaGprNElHMWRtTGwyZjZlMnpkZUNDRGpE
bUJmMVlYQVVnSmowSWo5K1BIN2Fyd3Rmc2tkbjhmK2ZSeWxpRC9CCk1RYVFXRGJXaWNzNzN2R085
cFd2ZktYOTdHYy9hOS82MXJjdW5CMTFjV0hqZ1l1TGI0OHNFVzl1Lzh4blB0TSs4cEdQREtlQmpk
dVAKeDQ4NllwbFlmd2dnd3lldm5CYzJGdkhXdDc2MTNmclFUOXVqcHg1bzZ6ZCtzQjNvUHhrUDl2
Qng2THBJUTYydi9QSlJqUGhmSCtLbwpSb1NLZm1aV2l6OVJHT0drdncxa09CZXloNXgrTk9UbDk0
TEVVWTkrd0dNNCt0SFB2Qm9PVWNhNkc5Ym41L3ZIODhmcmg5ZFBQei84Ci9MeUc5eC82NzE3N3Fl
a3YvNEoxcy85blBHdnJmV2VwLzhHemMyZFB0eGZYWiszSUN3KzA5OTkrZm5qVDcvYWR2NzZhQzRG
SkJPSW8KUjF4aVp6OTI5R1BuZnd3aFl3Q0owNjN1dXV1dUM2ZGdqY3VNNjhUMUp6N3hpZmJoRDMr
NGZmdmIzNzdra1k1NE0vdWxqb0I4OHBPZgpiSi8rOUtlSEVCTGJIY05IWkl2WWJweDZHQ0ZreUIz
anFWZmorWWhSZUJUOWdROThvRDM0NElOdDg3ZjN0ZE9QOWpkUUhmK2I0UThHCjlxT0pRL2lZOWVk
VmhJdisvcXIrQndqN0U2NEhpbjUyVmx2cktTT0NTRDhBMG8rQzlJOSt2UkxYL1prWlllTkF2Nytm
NGRVMmVuQ0oKUUJKSFFzNUdpTEUrUDk4L25qOWVQN3grK3ZuaDUrYzF1djhRZjF4NURDQWJQWURF
RVpHTjAvMC9sWWo5b01mdWIrODg4ci90M1hlOAp2ZDF3d3czRGpsanNhN2tRbUVvZ2R2REhnd2l4
emRqNUg2L2p2amp5RWY4Tjc4MDMzOXplOWE1M0RTRmdXT0NWZjJLWmNaMjRLZDZLCjhhVXZmV25I
YmVQeXg0NGR1eEJneHR2aWVsdyt0alZlNHZQeFl6d0NNcHlDRldscC9CalRVaFFRZjJMOTR4Ly9l
TnY0L3ZmYkkzLzgKcDNicTNrZmEyVGUvdDUzN2kvZTE2Mjg1M3RiNiswdzI0ZzkvOUVzOFRoelpP
Ti9mejdLdlA1L09SZkx2ZlcvMDRCR0JKUXdpbE1RVApNbExIbWI1c1BEUGpUVnBuK20zeEJ3bXR6
OC8zaitlUDF3K3ZuMzUrK1BsNXJlNC9ESEdpNzg4TSswUjlIK21wL3p2Vm52cnYva3ZjClB6elE3
cnp1cGZiK2Q3NnQzWGJiYlJmK1JrSzhLZGlGd0ZRQzQwNStoSkQ0M29xZC9mSE42SEhxVmZ6blVy
Ry8vNTczdkdmNHIzakgKeDQzMVlyLy80dXZ4L2t0ZHh4R1FLd1hvN2R1THo2T3VlUHo0UEs1blVW
eDh4SVBIOVhpSk85Lys5cmNQRHhEdmpILzAwVWZiaS8vegp2ZmJNZzk5c2ovZEd4ZzF2VDB2anVx
NEpFQ0JBZ0FBQkFsVUY0cXlTK0o5RGI3MysrbmJyN2JlMkV5ZnU2aDhuMnZYOTY5aHhHL2U5CnF2
cm9lM3FCMkMrUFMzeHZ4YzUrL0lkUzhSSGhJLzdYcWppaWNjY2Rkd3hIUUNLY1hId1o5K3N2dnYx
U1g4ZjdQQzYxalVzdEc5dU4KajZocERFZFI0eXorSzY3NFl5UVJPTGFmenpXdUVFK1llTE5LQkpC
VHAwNE56Y1FEak1sbisxR1RTejJ3MndnUUlFQ0FBQUVDVlFUaQpGN094YnhTbm1VUUlpVC8wRnFl
c3hFNWIzRGJ1SUZieDBPZlZFWWlkKyswNyttTUFpVWQvNHh2Zk9Id1B4dmRsN1BOUGNWbGtPeGVI
Cmo4Z2UvdzlNTXhNNkt0alRsUUFBQUFCSlJVNUVya0pnZ2c9PQoK
</data>
<flag name="review"
          id="78449"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="78450"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86334</attachid>
            <date>2011-03-21 10:51:08 -0700</date>
            <delta_ts>2011-03-21 11:00:00 -0700</delta_ts>
            <desc>updated per Simon&apos;s review</desc>
            <filename>newpatch_2.txt</filename>
            <type>text/plain</type>
            <size>57531</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDMtMDkgIFJpayBDYWJh
bmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBidWcgNTYwNTI6IHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3Rs
eSByb3VuZGVkIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYwNTIKKworICAgICAgICB0ZXN0OiBmYXN0L2Nzcy9wZXJjZW50YWdlLW5v
bi1pbnRlZ2VyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aDo6TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3Bl
cmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6cGVyY2VudCk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY01pblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6
aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoOjppc1Bvc2l0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0
aDo6aXNOZWdhdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvVGFibGVMYXlvdXQ6OmxheW91dCk6
CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpCb3JkZXJEYXRhOjpoYXNCb3JkZXJSYWRpdXMpOgorCiAyMDExLTAzLTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzMzIsOCArNTMzMiw4IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9
IExlbmd0aChwYWlyLT5zZWNvbmQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IExlbmd0aChtYXgoaW50TWluRm9y
TGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5zZWNvbmQoKS0+Y29tcHV0ZUxlbmd0
aEludChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsK
LSAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgucmF3VmFsdWUoKTsKLSAgICAgICAgaW50
IGhlaWdodCA9IHJhZGl1c0hlaWdodC5yYXdWYWx1ZSgpOworICAgICAgICBpbnQgd2lkdGggPSBy
YWRpdXNXaWR0aC52YWx1ZSgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gcmFkaXVzSGVpZ2h0LnZh
bHVlKCk7CiAgICAgICAgIGlmICh3aWR0aCA8IDAgfHwgaGVpZ2h0IDwgMCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHdpZHRoID09IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
cmludENvbnRleHQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UHJpbnRDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDE2ICsyODIsMTYgQEAgU3Ry
aW5nIFByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KEZyYW1lKgogICAgIGlmICghc3RyY21wKHBy
b3BlcnR5TmFtZSwgIm1hcmdpbi1sZWZ0IikpIHsKICAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5M
ZWZ0KCkuaXNBdXRvKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJhdXRvIik7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bWFyZ2luTGVmdCgpLnJhd1ZhbHVlKCkp
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPm1hcmdpbkxlZnQoKS52YWx1
ZSgpKTsKICAgICB9CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAibGluZS1oZWlnaHQi
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHN0eWxlLT5saW5lSGVpZ2h0KCkucmF3
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihzdHlsZS0+bGluZUhlaWdo
dCgpLnZhbHVlKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZvbnQtc2l6ZSIp
KQogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoc3R5bGUtPmZvbnREZXNjcmlwdGlvbigp
LmNvbXB1dGVkUGl4ZWxTaXplKCkpOwogICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImZv
bnQtZmFtaWx5IikpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkuZmFt
aWx5KCkuZmFtaWx5KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAi
c2l6ZSIpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihzdHlsZS0+
cGFnZVNpemUoKS53aWR0aCgpLnJhd1ZhbHVlKCkpLCAnICcsIFN0cmluZzo6bnVtYmVyKHN0eWxl
LT5wYWdlU2l6ZSgpLmhlaWdodCgpLnJhd1ZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcoU3RyaW5nOjpudW1iZXIoc3R5bGUtPnBhZ2VTaXplKCkud2lkdGgoKS52YWx1ZSgpKSwg
JyAnLCBTdHJpbmc6Om51bWJlcihzdHlsZS0+cGFnZVNpemUoKS5oZWlnaHQoKS52YWx1ZSgpKSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygicGFnZVByb3BlcnR5KCkgdW5pbXBsZW1lbnRlZCBm
b3I6ICIsIHByb3BlcnR5TmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBpbmxpbmUgQ29sb3IgYmxlbmRGdW5jKGNvbnN0IEFu
aW0KIAogc3RhdGljIGlubGluZSBMZW5ndGggYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2Uq
LCBjb25zdCBMZW5ndGgmIGZyb20sIGNvbnN0IExlbmd0aCYgdG8sIGRvdWJsZSBwcm9ncmVzcykK
IHsgIAotICAgIHJldHVybiB0by5ibGVuZChmcm9tLCBwcm9ncmVzcyk7CisgICAgcmV0dXJuIHRv
LmJsZW5kKGZyb20sIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3MpKTsKIH0KIAogc3Rh
dGljIGlubGluZSBMZW5ndGhTaXplIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBjb25zdCBMZW5ndGhTaXplJiBmcm9tLCBjb25zdCBMZW5ndGhTaXplJiB0bywgZG91YmxlIHBy
b2dyZXNzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgJKHJldmlzaW9uIDgwMzgxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQogICAgIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgICAgQ29weXJpZ2h0IChDKSAyMDExIFJpayBDYWJhbmllciAoY2FiYW5p
ZXJAYWRvYmUuY29tKQogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMCw3ICszMSw2IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGludCB1bmRlZmluZWRMZW5ndGggPSAtMTsKLWNvbnN0
IGludCBwZXJjZW50U2NhbGVGYWN0b3IgPSAxMjg7CiBjb25zdCBpbnQgaW50TWF4Rm9yTGVuZ3Ro
ID0gMHg3ZmZmZmZmOyAvLyBtYXggdmFsdWUgZm9yIGEgMjgtYml0IGludAogY29uc3QgaW50IGlu
dE1pbkZvckxlbmd0aCA9ICgtMHg3ZmZmZmZmIC0gMSk7IC8vIG1pbiB2YWx1ZSBmb3IgYSAyOC1i
aXQgaW50CiAKQEAgLTUyLDM0ICs1Miw0MCBAQCBwdWJsaWM6CiAgICAgTGVuZ3RoKGludCB2LCBM
ZW5ndGhUeXBlIHQsIGJvb2wgcSA9IGZhbHNlKQogICAgICAgICA6IG1faW50VmFsdWUodiksIG1f
cXVpcmsocSksIG1fdHlwZSh0KSwgbV9pc0Zsb2F0KGZhbHNlKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKHQgIT0gUGVyY2VudCk7CisgICAgfQorICAgIAorICAgIExlbmd0aChmbG9hdCB2LCBMZW5n
dGhUeXBlIHQsIGJvb2wgcSA9IGZhbHNlKQorICAgIDogbV9mbG9hdFZhbHVlKHYpLCBtX3F1aXJr
KHEpLCBtX3R5cGUodCksIG1faXNGbG9hdCh0cnVlKQorICAgIHsgICAgICAgICAgICAKICAgICB9
CiAKICAgICBMZW5ndGgoZG91YmxlIHYsIExlbmd0aFR5cGUgdCwgYm9vbCBxID0gZmFsc2UpCi0g
ICAgICAgIDogbV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQoZmFsc2UpCi0gICAgewot
ICAgICAgICBpZiAobV90eXBlID09IFBlcmNlbnQpCi0gICAgICAgICAgICBtX2ludFZhbHVlID0g
c3RhdGljX2Nhc3Q8aW50Pih2KnBlcmNlbnRTY2FsZUZhY3Rvcik7Ci0gICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgbV9pc0Zsb2F0ID0gdHJ1ZTsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1f
ZmxvYXRWYWx1ZSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2KTsKLSAgICAgICB9CisgICAgICAgIDog
bV9xdWlyayhxKSwgbV90eXBlKHQpLCBtX2lzRmxvYXQodHJ1ZSkKKyAgICB7ICAgICAgICAgICAK
KyAgICAgICAgbV9mbG9hdFZhbHVlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYpOyAgICAKICAgICB9
CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdCB7IHJldHVybiAo
Z2V0RmxvYXRWYWx1ZSgpID09IG8uZ2V0RmxvYXRWYWx1ZSgpKSAmJiAobV90eXBlID09IG8ubV90
eXBlKSAmJiAobV9xdWlyayA9PSBvLm1fcXVpcmspOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IExlbmd0aCYgbykgY29uc3QgeyByZXR1cm4gKGdldEZsb2F0VmFsdWUoKSAhPSBvLmdldEZs
b2F0VmFsdWUoKSkgfHwgKG1fdHlwZSAhPSBvLm1fdHlwZSkgfHwgKG1fcXVpcmsgIT0gby5tX3F1
aXJrKTsgfQogCisgICAgY29uc3QgTGVuZ3RoJiBvcGVyYXRvcio9KGZsb2F0IHYpCisgICAgeyAg
ICAgICAgCisgICAgICAgIGlmIChtX2lzRmxvYXQpCisgICAgICAgICAgICBtX2Zsb2F0VmFsdWUg
PSBzdGF0aWNfY2FzdDxmbG9hdD4obV9mbG9hdFZhbHVlICogdik7CisgICAgICAgIGVsc2UgICAg
ICAgIAorICAgICAgICAgICAgbV9pbnRWYWx1ZSA9IHN0YXRpY19jYXN0PGludD4obV9pbnRWYWx1
ZSAqIHYpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICAKICAg
ICBpbnQgdmFsdWUoKSBjb25zdCB7Ci0gICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gUGVyY2VudCk7
Ci0gICAgICAgIHJldHVybiByYXdWYWx1ZSgpOworICAgICAgICByZXR1cm4gZ2V0SW50VmFsdWUo
KTsKICAgICB9CiAKLSAgICBpbnQgcmF3VmFsdWUoKSBjb25zdCB7IHJldHVybiBnZXRJbnRWYWx1
ZSgpOyB9Ci0KLSAgICBkb3VibGUgcGVyY2VudCgpIGNvbnN0CisgICAgZmxvYXQgcGVyY2VudCgp
IGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQodHlwZSgpID09IFBlcmNlbnQpOwotICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihyYXdWYWx1ZSgpKSAvIHBlcmNlbnRTY2FsZUZh
Y3RvcjsKKyAgICAgICAgcmV0dXJuIGdldEZsb2F0VmFsdWUoKTsKICAgICB9CiAKICAgICBMZW5n
dGhUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMZW5ndGhUeXBlPihtX3R5
cGUpOyB9CkBAIC05NCwxOCArMTAwLDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUo
aW50IHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCF2YWx1ZSB8fCB0eXBlKCkgIT0gUGVy
Y2VudCk7CiAgICAgICAgIHNldFZhbHVlKEZpeGVkLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgdm9p
ZCBzZXRWYWx1ZShMZW5ndGhUeXBlIHQsIGRvdWJsZSB2YWx1ZSkKKyAgICB2b2lkIHNldFZhbHVl
KExlbmd0aFR5cGUgdCwgZmxvYXQgdmFsdWUpCiAgICAgewogICAgICAgICBtX3R5cGUgPSB0Owot
ICAgICAgICBtX2Zsb2F0VmFsdWUgPSBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpOworICAgICAg
ICBtX2Zsb2F0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgbV9pc0Zsb2F0ID0gdHJ1ZTsgICAgCiAg
ICAgfQogCi0gICAgdm9pZCBzZXRWYWx1ZShkb3VibGUgdmFsdWUpCisgICAgdm9pZCBzZXRWYWx1
ZShmbG9hdCB2YWx1ZSkKICAgICB7CiAgICAgICAgICp0aGlzID0gTGVuZ3RoKHZhbHVlLCBGaXhl
ZCk7CiAgICAgfQpAQCAtMTE5LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2Ug
UGVyY2VudDoKICAgICAgICAgICAgICAgICBpZiAocm91bmRQZXJjZW50YWdlcykKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocm91bmQobWF4VmFsdWUgKiBwZXJj
ZW50KCkgLyAxMDAuMCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHJhd1Zh
bHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsKICAgICAg
ICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgICAgICByZXR1cm4gbWF4VmFsdWU7CiAgICAg
ICAgICAgICBkZWZhdWx0OgpAQCAtMTM1LDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgICAgICBpZiAocm91bmRQZXJjZW50YWdlcykKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocm91bmQobWF4VmFsdWUg
KiBwZXJjZW50KCkgLyAxMDAuMCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZSAq
IHJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wKTsK
ICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CkBAIC0xNTYsMTAgKzE2MSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gcmF3VmFsdWUo
KSA9PSB1bmRlZmluZWRMZW5ndGg7IH0KLSAgICBib29sIGlzWmVybygpIGNvbnN0IHsgcmV0dXJu
ICFnZXRJbnRWYWx1ZSgpOyB9Ci0gICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4g
cmF3VmFsdWUoKSA+IDA7IH0KLSAgICBib29sIGlzTmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiBy
YXdWYWx1ZSgpIDwgMDsgfQorICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiB2
YWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aDsgfQorICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgCisg
ICAgeyAKKyAgICAgICAgaWYgKG1faXNGbG9hdCkKKyAgICAgICAgICAgIHJldHVybiAhbV9mbG9h
dFZhbHVlOyAKKyAgICAgICAgCisgICAgICAgIHJldHVybiAhbV9pbnRWYWx1ZTsKKyAgICB9Cisg
ICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxvYXRWYWx1ZSgpID4gMDsg
fQorICAgIGJvb2wgaXNOZWdhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsb2F0VmFsdWUoKSA8
IDA7IH0KIAogICAgIGJvb2wgaXNBdXRvKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IEF1dG87
IH0KICAgICBib29sIGlzUmVsYXRpdmUoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gUmVsYXRp
dmU7IH0KQEAgLTE2Nyw3ICsxNzgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZpeGVkKCkgY29u
c3QgeyByZXR1cm4gdHlwZSgpID09IEZpeGVkOyB9CiAgICAgYm9vbCBpc0ludHJpbnNpY09yQXV0
bygpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdXRvIHx8IHR5cGUoKSA9PSBNaW5JbnRyaW5z
aWMgfHwgdHlwZSgpID09IEludHJpbnNpYzsgfQogCi0gICAgTGVuZ3RoIGJsZW5kKGNvbnN0IExl
bmd0aCYgZnJvbSwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIExlbmd0aCBibGVuZChjb25z
dCBMZW5ndGgmIGZyb20sIGZsb2F0IHByb2dyZXNzKSBjb25zdAogICAgIHsKICAgICAgICAgLy8g
QmxlbmQgdHdvIGxlbmd0aHMgdG8gcHJvZHVjZSBhIG5ldyBsZW5ndGggdGhhdCBpcyBpbiBiZXR3
ZWVuIHRoZW0uICBVc2VkIGZvciBhbmltYXRpb24uCiAgICAgICAgIGlmICghZnJvbS5pc1plcm8o
KSAmJiAhaXNaZXJvKCkgJiYgZnJvbS50eXBlKCkgIT0gdHlwZSgpKQpAQCAtMTgxLDI5ICsxOTIs
MjUgQEAgcHVibGljOgogICAgICAgICAgICAgcmVzdWx0VHlwZSA9IGZyb20udHlwZSgpOwogICAg
ICAgICAKICAgICAgICAgaWYgKHJlc3VsdFR5cGUgPT0gUGVyY2VudCkgewotICAgICAgICAgICAg
ZG91YmxlIGZyb21QZXJjZW50ID0gZnJvbS5pc1plcm8oKSA/IDAuIDogZnJvbS5wZXJjZW50KCk7
Ci0gICAgICAgICAgICBkb3VibGUgdG9QZXJjZW50ID0gaXNaZXJvKCkgPyAwLiA6IHBlcmNlbnQo
KTsKKyAgICAgICAgICAgIGZsb2F0IGZyb21QZXJjZW50ID0gZnJvbS5pc1plcm8oKSA/IDAgOiBm
cm9tLnBlcmNlbnQoKTsKKyAgICAgICAgICAgIGZsb2F0IHRvUGVyY2VudCA9IGlzWmVybygpID8g
MCA6IHBlcmNlbnQoKTsKICAgICAgICAgICAgIHJldHVybiBMZW5ndGgoZnJvbVBlcmNlbnQgKyAo
dG9QZXJjZW50IC0gZnJvbVBlcmNlbnQpICogcHJvZ3Jlc3MsIFBlcmNlbnQpOwogICAgICAgICB9
IAogICAgICAgICAgICAgCi0gICAgICAgIGRvdWJsZSBmcm9tVmFsdWUgPSBmcm9tLmlzWmVybygp
ID8gMCA6IGZyb20udmFsdWUoKTsKLSAgICAgICAgZG91YmxlIHRvVmFsdWUgPSBpc1plcm8oKSA/
IDAgOiB2YWx1ZSgpOworICAgICAgICBmbG9hdCBmcm9tVmFsdWUgPSBmcm9tLmlzWmVybygpID8g
MCA6IGZyb20udmFsdWUoKTsKKyAgICAgICAgZmxvYXQgdG9WYWx1ZSA9IGlzWmVybygpID8gMCA6
IHZhbHVlKCk7CiAgICAgICAgIHJldHVybiBMZW5ndGgoZnJvbVZhbHVlICsgKHRvVmFsdWUgLSBm
cm9tVmFsdWUpICogcHJvZ3Jlc3MsIHJlc3VsdFR5cGUpOwogICAgIH0KIAogcHJpdmF0ZToKICAg
ICBpbnQgZ2V0SW50VmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKG1faXNGbG9hdCkK
LSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1fZmxvYXRWYWx1ZSk7Ci0gICAg
ICAgIHJldHVybiBtX2ludFZhbHVlOworICAgICAgICByZXR1cm4gbV9pc0Zsb2F0ID8gc3RhdGlj
X2Nhc3Q8aW50PihtX2Zsb2F0VmFsdWUpIDogbV9pbnRWYWx1ZTsKICAgICB9CiAKICAgICBmbG9h
dCBnZXRGbG9hdFZhbHVlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChtX2lzRmxvYXQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIG1fZmxvYXRWYWx1ZTsKLSAgICAgICAgcmV0dXJuIG1faW50
VmFsdWU7CisgICAgICAgIHJldHVybiBtX2lzRmxvYXQgPyBtX2Zsb2F0VmFsdWUgOiBtX2ludFZh
bHVlOwogICAgIH0KIAogICAgIHVuaW9uIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKyNp
bmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
MCwxNSArMzEsMTUgQEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFRyYW5zbGF0ZQog
ICAgICAgICByZXR1cm4gdGhpczsKICAgICAKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQotICAg
ICAgICByZXR1cm4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3RoKG1f
eC50eXBlKCkpLmJsZW5kKG1feCwgcHJvZ3Jlc3MpLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChtX3kudHlwZSgpKS5ibGVuZChtX3ks
IHByb2dyZXNzKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMZW5ndGgobV96LnR5cGUoKSkuYmxlbmQobV96LCBwcm9ncmVzcyksIG1fdHlwZSk7
CisgICAgICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShMZW5n
dGgobV94LnR5cGUoKSkuYmxlbmQobV94LCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHByb2dyZXNz
KSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVuZ3RoKG1feS50eXBlKCkpLmJsZW5kKG1feSwgbmFycm93UHJlY2lzaW9uVG9GbG9hdChwcm9n
cmVzcykpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExlbmd0aChtX3oudHlwZSgpKS5ibGVuZChtX3osIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQo
cHJvZ3Jlc3MpKSwgbV90eXBlKTsKIAogICAgIGNvbnN0IFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbiogZnJvbU9wID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uKj4oZnJvbSk7CiAgICAgTGVuZ3RoIGZyb21YID0gZnJvbU9wID8gZnJvbU9wLT5tX3ggOiBM
ZW5ndGgobV94LnR5cGUoKSk7CiAgICAgTGVuZ3RoIGZyb21ZID0gZnJvbU9wID8gZnJvbU9wLT5t
X3kgOiBMZW5ndGgobV95LnR5cGUoKSk7CiAgICAgTGVuZ3RoIGZyb21aID0gZnJvbU9wID8gZnJv
bU9wLT5tX3ogOiBMZW5ndGgobV96LnR5cGUoKSk7Ci0gICAgcmV0dXJuIFRyYW5zbGF0ZVRyYW5z
Zm9ybU9wZXJhdGlvbjo6Y3JlYXRlKG1feC5ibGVuZChmcm9tWCwgcHJvZ3Jlc3MpLCBtX3kuYmxl
bmQoZnJvbVksIHByb2dyZXNzKSwgbV96LmJsZW5kKGZyb21aLCBwcm9ncmVzcyksIG1fdHlwZSk7
CisgICAgcmV0dXJuIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKG1feC5ibGVu
ZChmcm9tWCwgbmFycm93UHJlY2lzaW9uVG9GbG9hdChwcm9ncmVzcykpLCBtX3kuYmxlbmQoZnJv
bVksIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQocHJvZ3Jlc3MpKSwgbV96LmJsZW5kKGZyb21aLCBu
YXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHByb2dyZXNzKSksIG1fdHlwZSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVM
YXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFi
bGVMYXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9BdXRvVGFibGVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3IEBAIHZv
aWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4oaW50IGUKIAogICAgICAgICAgICAgICAg
ICAgICBMZW5ndGggY2VsbExvZ2ljYWxXaWR0aCA9IGNlbGwtPnN0eWxlT3JDb2xMb2dpY2FsV2lk
dGgoKTsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoYXQgaXMgdGhpcyBhcmJpdHJh
cnkgdmFsdWU/Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLnJhd1Zh
bHVlKCkgPiAzMjc2MCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGgu
dmFsdWUoKSA+IDMyNzYwKQogICAgICAgICAgICAgICAgICAgICAgICAgY2VsbExvZ2ljYWxXaWR0
aC5zZXRWYWx1ZSgzMjc2MCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdp
ZHRoLmlzTmVnYXRpdmUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxMb2dpY2FsV2lk
dGguc2V0VmFsdWUoMCk7CkBAIC0xMDUsMTMgKzEwNSwxMyBAQCB2b2lkIEF1dG9UYWJsZUxheW91
dDo6cmVjYWxjQ29sdW1uKGludCBlCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAgICAgICAgICAg
bV9oYXNQZXJjZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9n
aWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGguaXNQ
ZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpID4gY29sdW1uTGF5b3V0Lmxv
Z2ljYWxXaWR0aC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxs
TG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAoIWNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGgu
aXNQZXJjZW50KCkgfHwgY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpID4gY29sdW1uTGF5b3V0Lmxv
Z2ljYWxXaWR0aC52YWx1ZSgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5M
YXlvdXQubG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIFJlbGF0aXZlOgogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGNhc2Ug
YW5kIHdoZXRoZXIgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFyZSB2YWx1ZXMKICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHdoaWNoIGFyZSBub3QgbmVjZXNzYXJpbHkgb2YgdGhlIHNhbWUgdHlw
ZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzQXV0bygp
IHx8IChjZWxsTG9naWNhbFdpZHRoLmlzUmVsYXRpdmUoKSAmJiBjZWxsTG9naWNhbFdpZHRoLnZh
bHVlKCkgPiBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNlbGxMb2dpY2FsV2lkdGguaXNBdXRvKCkgfHwgKGNlbGxMb2dp
Y2FsV2lkdGguaXNSZWxhdGl2ZSgpICYmIGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSA+IGNvbHVt
bkxheW91dC5sb2dpY2FsV2lkdGgudmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aCA9IGNlbGxMb2dpY2FsV2lkdGg7CiAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTIzMiwxNiArMjMyLDE2IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0Ojpjb21wdXRlUHJlZmVycmVk
TG8KIAogICAgIC8vIFdlIHN1YnN0aXR1dGUgMCBwZXJjZW50IGJ5IChlcHNpbG9uIC8gcGVyY2Vu
dFNjYWxlRmFjdG9yKSBwZXJjZW50IGluIHR3byBwbGFjZXMgYmVsb3cgdG8gYXZvaWQgZGl2aXNp
b24gYnkgemVyby4KICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSAwJSBjYXNlcyBwcm9wZXJseS4K
LSAgICBjb25zdCBpbnQgZXBzaWxvbiA9IDE7CisgICAgY29uc3QgZmxvYXQgZXBzaWxvbiA9IDEg
LyAxMjguMGY7CiAKLSAgICBpbnQgcmVtYWluaW5nUGVyY2VudCA9IDEwMCAqIHBlcmNlbnRTY2Fs
ZUZhY3RvcjsKKyAgICBmbG9hdCByZW1haW5pbmdQZXJjZW50ID0gMTAwOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9sYXlvdXRTdHJ1Y3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgbWlu
V2lkdGggKz0gbV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTWluTG9naWNhbFdpZHRoOwogICAg
ICAgICBtYXhXaWR0aCArPSBtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lk
dGg7CiAgICAgICAgIGlmIChzY2FsZUNvbHVtbnMpIHsKICAgICAgICAgICAgIGlmIChtX2xheW91
dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICBpbnQgcGVyY2VudCA9IG1pbihtX2xheW91dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dp
Y2FsV2lkdGgucmF3VmFsdWUoKSwgcmVtYWluaW5nUGVyY2VudCk7Ci0gICAgICAgICAgICAgICAg
ZmxvYXQgbG9naWNhbFdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fbGF5b3V0U3RydWN0W2ld
LmVmZmVjdGl2ZU1heExvZ2ljYWxXaWR0aCkgKiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3IgLyBt
YXgocGVyY2VudCwgZXBzaWxvbik7CisgICAgICAgICAgICAgICAgZmxvYXQgcGVyY2VudCA9IG1p
bihzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbaV0uZWZmZWN0aXZlTG9naWNhbFdp
ZHRoLnBlcmNlbnQoKSksIHJlbWFpbmluZ1BlcmNlbnQpOworICAgICAgICAgICAgICAgIGZsb2F0
IGxvZ2ljYWxXaWR0aCA9IHN0YXRpY19jYXN0PGZsb2F0PihtX2xheW91dFN0cnVjdFtpXS5lZmZl
Y3RpdmVNYXhMb2dpY2FsV2lkdGgpICogMTAwIC8gbWF4KHBlcmNlbnQsIGVwc2lsb24pOwogICAg
ICAgICAgICAgICAgIG1heFBlcmNlbnQgPSBtYXgobG9naWNhbFdpZHRoLCAgbWF4UGVyY2VudCk7
CiAgICAgICAgICAgICAgICAgcmVtYWluaW5nUGVyY2VudCAtPSBwZXJjZW50OwogICAgICAgICAg
ICAgfSBlbHNlCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OmNvbXB1
dGVQcmVmZXJyZWRMbwogICAgIH0KIAogICAgIGlmIChzY2FsZUNvbHVtbnMpIHsKLSAgICAgICAg
bWF4Tm9uUGVyY2VudCA9IG1heE5vblBlcmNlbnQgKiAxMDAgKiBwZXJjZW50U2NhbGVGYWN0b3Ig
LyBtYXgocmVtYWluaW5nUGVyY2VudCwgZXBzaWxvbik7CisgICAgICAgIG1heE5vblBlcmNlbnQg
PSBtYXhOb25QZXJjZW50ICogMTAwIC8gbWF4KHJlbWFpbmluZ1BlcmNlbnQsIGVwc2lsb24pOwog
ICAgICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgc3RhdGljX2Nhc3Q8aW50PihtaW4obWF4
Tm9uUGVyY2VudCwgSU5UX01BWCAvIDIuMGYpKSk7CiAgICAgICAgIG1heFdpZHRoID0gbWF4KG1h
eFdpZHRoLCBzdGF0aWNfY2FzdDxpbnQ+KG1pbihtYXhQZXJjZW50LCBJTlRfTUFYIC8gMi4wZikp
KTsKICAgICB9CkBAIC0yNjYsNiArMjY2LDEwIEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0Ojpjb21w
dXRlUHJlZmVycmVkTG8KICAgICAgICAgbWluV2lkdGggPSBtYXgobWluV2lkdGgsIHRhYmxlTG9n
aWNhbFdpZHRoLnZhbHVlKCkpOwogICAgICAgICBtYXhXaWR0aCA9IG1pbldpZHRoOwogICAgIH0K
KyAgICAKKyAgICAvLyBpZiB0aGVyZSB3YXMgbm8gcmVtYWluaW5nIHBlcmNlbnQsIG1heFdpZHRo
IGlzIGludmFsaWQuCisgICAgaWYgKCFyZW1haW5pbmdQZXJjZW50ICYmIG1heE5vblBlcmNlbnQp
CisgICAgICAgIG1heFdpZHRoID0gaW50TWF4Rm9yTGVuZ3RoOyAgICAgICAgCiB9CiAKIC8qCkBA
IC0zMDAsNyArMzA0LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxvZ2lj
YQogICAgICAgICBzaXplX3QgbGFzdENvbCA9IGVmZkNvbDsKICAgICAgICAgaW50IGNlbGxNaW5M
b2dpY2FsV2lkdGggPSBjZWxsLT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSArIHNwYWNpbmdJ
blJvd0RpcmVjdGlvbjsKICAgICAgICAgZmxvYXQgY2VsbE1heExvZ2ljYWxXaWR0aCA9IGNlbGwt
Pm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpICsgc3BhY2luZ0luUm93RGlyZWN0aW9uOwotICAg
ICAgICBpbnQgdG90YWxQZXJjZW50ID0gMDsKKyAgICAgICAgZmxvYXQgdG90YWxQZXJjZW50ID0g
MDsKICAgICAgICAgaW50IHNwYW5NaW5Mb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBmbG9hdCBz
cGFuTWF4TG9naWNhbFdpZHRoID0gMDsKICAgICAgICAgYm9vbCBhbGxDb2xzQXJlUGVyY2VudCA9
IHRydWU7CkBAIC0zMTIsNyArMzE2LDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVj
dGl2ZUxvZ2ljYQogICAgICAgICAgICAgTGF5b3V0JiBjb2x1bW5MYXlvdXQgPSBtX2xheW91dFN0
cnVjdFtsYXN0Q29sXTsKICAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uTGF5b3V0LmxvZ2ljYWxX
aWR0aC50eXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKLSAgICAgICAgICAgICAg
ICB0b3RhbFBlcmNlbnQgKz0gY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQubG9naWNhbFdpZHRo
LnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICBhbGxDb2xzQXJlRml4ZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgRml4ZWQ6CkBAIC0zMzksNyAr
MzQzLDcgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVjdGl2ZUxvZ2ljYQogICAgICAg
ICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQuZWZmZWN0aXZlTG9naWNhbFdpZHRoID0gTGVuZ3Ro
KCk7CiAgICAgICAgICAgICAgICAgICAgIGFsbENvbHNBcmVQZXJjZW50ID0gZmFsc2U7CiAgICAg
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBj
b2x1bW5MYXlvdXQuZWZmZWN0aXZlTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBjb2x1bW5MYXlvdXQuZWZmZWN0aXZlTG9naWNhbFdp
ZHRoLnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICBhbGxDb2xzQXJlRml4ZWQgPSBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghY29sdW1uTGF5b3V0LmVtcHR5Q2VsbHNP
bmx5KQpAQCAtMzU0LDE0ICszNTgsMTQgQEAgaW50IEF1dG9UYWJsZUxheW91dDo6Y2FsY0VmZmVj
dGl2ZUxvZ2ljYQogCiAgICAgICAgIC8vIGFkanVzdCB0YWJsZSBtYXggd2lkdGggaWYgbmVlZGVk
CiAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAg
ICBpZiAodG90YWxQZXJjZW50ID4gY2VsbExvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpIHx8IGFsbENv
bHNBcmVQZXJjZW50KSB7CisgICAgICAgICAgICBpZiAodG90YWxQZXJjZW50ID4gY2VsbExvZ2lj
YWxXaWR0aC5wZXJjZW50KCkgfHwgYWxsQ29sc0FyZVBlcmNlbnQpIHsKICAgICAgICAgICAgICAg
ICAvLyBjYW4ndCBzYXRpZnkgdGhpcyBjb25kaXRpb24sIHRyZWF0IGFzIHZhcmlhYmxlCiAgICAg
ICAgICAgICAgICAgY2VsbExvZ2ljYWxXaWR0aCA9IExlbmd0aCgpOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBtYXgobWF4TG9naWNhbFdp
ZHRoLCBtYXgoc3Bhbk1heExvZ2ljYWxXaWR0aCwgY2VsbE1heExvZ2ljYWxXaWR0aCkgKiAxMDAg
KiBwZXJjZW50U2NhbGVGYWN0b3IgLyBjZWxsTG9naWNhbFdpZHRoLnJhd1ZhbHVlKCkpOworICAg
ICAgICAgICAgICAgIG1heExvZ2ljYWxXaWR0aCA9IG1heChtYXhMb2dpY2FsV2lkdGgsIHN0YXRp
Y19jYXN0PGZsb2F0PihtYXgoc3Bhbk1heExvZ2ljYWxXaWR0aCwgY2VsbE1heExvZ2ljYWxXaWR0
aCkgKiAxMDAgIC8gY2VsbExvZ2ljYWxXaWR0aC5wZXJjZW50KCkpKTsKIAogICAgICAgICAgICAg
ICAgIC8vIGFsbCBub24gcGVyY2VudCBjb2x1bW5zIGluIHRoZSBzcGFuIGdldCBwZXJjZW50IHZh
bHVlcyB0byBzdW0gdXAgY29ycmVjdGx5LgotICAgICAgICAgICAgICAgIGludCBwZXJjZW50TWlz
c2luZyA9IGNlbGxMb2dpY2FsV2lkdGgucmF3VmFsdWUoKSAtIHRvdGFsUGVyY2VudDsKKyAgICAg
ICAgICAgICAgICBmbG9hdCBwZXJjZW50TWlzc2luZyA9IGNlbGxMb2dpY2FsV2lkdGgucGVyY2Vu
dCgpIC0gdG90YWxQZXJjZW50OwogICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsV2lkdGggPSAw
OwogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgcG9zID0gZWZmQ29sOyBwb3MgPCBsYXN0
Q29sOyArK3BvcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1fbGF5b3V0U3RydWN0W3Bv
c10uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKQpAQCAtMzcwLDcgKzM3NCw3IEBA
IGludCBBdXRvVGFibGVMYXlvdXQ6OmNhbGNFZmZlY3RpdmVMb2dpY2EKIAogICAgICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgcG9zID0gZWZmQ29sOyBwb3MgPCBsYXN0Q29sICYmIHRvdGFsV2lk
dGggPiAwOyArK3BvcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1fbGF5b3V0U3RydWN0
W3Bvc10uZWZmZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgcGVyY2VudCA9IHN0YXRpY19jYXN0PGludD4ocGVyY2VudE1pc3Npbmcg
KiBzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3RpdmVNYXhMb2dp
Y2FsV2lkdGgpIC8gdG90YWxXaWR0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBw
ZXJjZW50ID0gcGVyY2VudE1pc3NpbmcgKiBzdGF0aWNfY2FzdDxmbG9hdD4obV9sYXlvdXRTdHJ1
Y3RbcG9zXS5lZmZlY3RpdmVNYXhMb2dpY2FsV2lkdGgpIC8gdG90YWxXaWR0aDsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvdGFsV2lkdGggLT0gbV9sYXlvdXRTdHJ1Y3RbcG9zXS5lZmZlY3Rp
dmVNYXhMb2dpY2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50TWlzc2lu
ZyAtPSBwZXJjZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlcmNlbnQgPiAwKQpA
QCAtNDkxLDcgKzQ5NSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgIGlu
dCBudW1GaXhlZCA9IDA7CiAgICAgZmxvYXQgdG90YWxBdXRvID0gMDsKICAgICBmbG9hdCB0b3Rh
bEZpeGVkID0gMDsKLSAgICBpbnQgdG90YWxQZXJjZW50ID0gMDsKKyAgICBmbG9hdCB0b3RhbFBl
cmNlbnQgPSAwOwogICAgIGludCBhbGxvY0F1dG8gPSAwOwogICAgIHVuc2lnbmVkIG51bUF1dG9F
bXB0eUNlbGxzT25seSA9IDA7CiAKQEAgLTUwNCw3ICs1MDgsNyBAQCB2b2lkIEF1dG9UYWJsZUxh
eW91dDo6bGF5b3V0KCkKICAgICAgICAgc3dpdGNoIChsb2dpY2FsV2lkdGgudHlwZSgpKSB7CiAg
ICAgICAgIGNhc2UgUGVyY2VudDoKICAgICAgICAgICAgIGhhdmVQZXJjZW50ID0gdHJ1ZTsKLSAg
ICAgICAgICAgIHRvdGFsUGVyY2VudCArPSBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKTsKKyAgICAg
ICAgICAgIHRvdGFsUGVyY2VudCArPSBsb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVsYXRpdmU6CiAgICAgICAgICAgICB0b3RhbFJlbGF0
aXZlICs9IGxvZ2ljYWxXaWR0aC52YWx1ZSgpOwpAQCAtNTM4LDkgKzU0Miw5IEBAIHZvaWQgQXV0
b1RhYmxlTGF5b3V0OjpsYXlvdXQoKQogICAgICAgICAgICAgICAgIG1fbGF5b3V0U3RydWN0W2ld
LmNvbXB1dGVkTG9naWNhbFdpZHRoID0gY2VsbExvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgICAgICBpZiAodG90YWxQZXJjZW50ID4gMTAwICogcGVyY2VudFNjYWxl
RmFjdG9yKSB7CisgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAxMDApIHsKICAgICAgICAgICAg
IC8vIHJlbW92ZSBvdmVyYWxsb2NhdGVkIHNwYWNlIGZyb20gdGhlIGxhc3QgY29sdW1ucwotICAg
ICAgICAgICAgaW50IGV4Y2VzcyA9IHRhYmxlTG9naWNhbFdpZHRoICogKHRvdGFsUGVyY2VudCAt
IDEwMCAqIHBlcmNlbnRTY2FsZUZhY3RvcikgLyAoMTAwICogcGVyY2VudFNjYWxlRmFjdG9yKTsK
KyAgICAgICAgICAgIGludCBleGNlc3MgPSB0YWJsZUxvZ2ljYWxXaWR0aCAqICh0b3RhbFBlcmNl
bnQgLSAxMDApIC8gMTAwOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IG5FZmZDb2xzIC0gMTsg
aSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgICAgICBpZiAobV9sYXlvdXRTdHJ1Y3RbaV0uZWZm
ZWN0aXZlTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlu
dCBjZWxsTG9naWNhbFdpZHRoID0gbV9sYXlvdXRTdHJ1Y3RbaV0uY29tcHV0ZWRMb2dpY2FsV2lk
dGg7CkBAIC02MDcsMTMgKzYxMSwxMyBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6bGF5b3V0KCkK
ICAgICB9CiAKICAgICAvLyBzcHJlYWQgb3ZlciBwZXJjZW50IGNvbHVtcwotICAgIGlmIChhdmFp
bGFibGUgPiAwICYmIG1faGFzUGVyY2VudCAmJiB0b3RhbFBlcmNlbnQgPCAxMDAgKiBwZXJjZW50
U2NhbGVGYWN0b3IpIHsKKyAgICBpZiAoYXZhaWxhYmxlID4gMCAmJiBtX2hhc1BlcmNlbnQgJiYg
dG90YWxQZXJjZW50IDwgMTAwKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbkVm
ZkNvbHM7ICsraSkgewogICAgICAgICAgICAgTGVuZ3RoJiBsb2dpY2FsV2lkdGggPSBtX2xheW91
dFN0cnVjdFtpXS5lZmZlY3RpdmVMb2dpY2FsV2lkdGg7CiAgICAgICAgICAgICBpZiAobG9naWNh
bFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsV2lk
dGggPSBhdmFpbGFibGUgKiBsb2dpY2FsV2lkdGgucmF3VmFsdWUoKSAvIHRvdGFsUGVyY2VudDsK
KyAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxXaWR0aCA9IGF2YWlsYWJsZSAqIGxvZ2lj
YWxXaWR0aC5wZXJjZW50KCkgLyB0b3RhbFBlcmNlbnQ7CiAgICAgICAgICAgICAgICAgYXZhaWxh
YmxlIC09IGNlbGxMb2dpY2FsV2lkdGg7Ci0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50IC09
IGxvZ2ljYWxXaWR0aC5yYXdWYWx1ZSgpOworICAgICAgICAgICAgICAgIHRvdGFsUGVyY2VudCAt
PSBsb2dpY2FsV2lkdGgucGVyY2VudCgpOwogICAgICAgICAgICAgICAgIG1fbGF5b3V0U3RydWN0
W2ldLmNvbXB1dGVkTG9naWNhbFdpZHRoICs9IGNlbGxMb2dpY2FsV2lkdGg7CiAgICAgICAgICAg
ICAgICAgaWYgKCFhdmFpbGFibGUgfHwgIXRvdGFsUGVyY2VudCkKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVM
YXlvdXQuY3BwCShyZXZpc2lvbiA4MDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9G
aXhlZFRhYmxlTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw4IEBAIGlu
dCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShpbnQKICAgICAgICAgICAgICAgICAg
ICAgc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChj
dXJyZW50RWZmZWN0aXZlQ29sdW1uKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgaWYgKCh3LmlzRml4ZWQoKSB8fCB3LmlzUGVyY2VudCgpKSAmJiB3LmlzUG9zaXRpdmUoKSkg
ewotICAgICAgICAgICAgICAgICAgICBtX3dpZHRoW2N1cnJlbnRFZmZlY3RpdmVDb2x1bW5dLnNl
dFZhbHVlKHcudHlwZSgpLCB3LnJhd1ZhbHVlKCkgKiBzcGFuSW5DdXJyZW50RWZmZWN0aXZlQ29s
dW1uKTsKKyAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjdXJyZW50RWZmZWN0aXZlQ29sdW1u
XSA9IHc7CisgICAgICAgICAgICAgICAgICAgIG1fd2lkdGhbY3VycmVudEVmZmVjdGl2ZUNvbHVt
bl0gKj0gc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKICAgICAgICAgICAgICAgICAgICAg
dXNlZFdpZHRoICs9IGVmZldpZHRoICogc3BhbkluQ3VycmVudEVmZmVjdGl2ZUNvbHVtbjsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc3BhbiAtPSBzcGFuSW5DdXJyZW50RWZm
ZWN0aXZlQ29sdW1uOwpAQCAtMTY0LDEwICsxNjUsMTEgQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6
OmNhbGNXaWR0aEFycmF5KGludAogICAgICAgICAgICAgICAgIGludCB1c2VkU3BhbiA9IDA7CiAg
ICAgICAgICAgICAgICAgaW50IGkgPSAwOwogICAgICAgICAgICAgICAgIHdoaWxlICh1c2VkU3Bh
biA8IHNwYW4gJiYgY0NvbCArIGkgPCBuRWZmQ29scykgewotICAgICAgICAgICAgICAgICAgICBp
bnQgZVNwYW4gPSBtX3RhYmxlLT5zcGFuT2ZFZmZDb2woY0NvbCArIGkpOworICAgICAgICAgICAg
ICAgICAgICBmbG9hdCBlU3BhbiA9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChjQ29sICsgaSk7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgc2V0IGlmIG5vIGNvbCBlbGVtZW50IGhhcyBhbHJl
YWR5IHNldCBpdC4KICAgICAgICAgICAgICAgICAgICAgaWYgKG1fd2lkdGhbY0NvbCArIGldLmlz
QXV0bygpICYmIHcudHlwZSgpICE9IEF1dG8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1f
d2lkdGhbY0NvbCArIGldLnNldFZhbHVlKHcudHlwZSgpLCB3LnJhd1ZhbHVlKCkgKiBlU3BhbiAv
IHNwYW4pOworICAgICAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0gPSB3Owor
ICAgICAgICAgICAgICAgICAgICAgICAgbV93aWR0aFtjQ29sICsgaV0gKj0gZVNwYW4gLyBzcGFu
OwogICAgICAgICAgICAgICAgICAgICAgICAgdXNlZFdpZHRoICs9IGVmZldpZHRoICogZVNwYW4g
LyBzcGFuOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIHVzZWRT
cGFuICs9IGVTcGFuOwpAQCAtMjM0LDcgKzIzNiw3IEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6
bGF5b3V0KCkKICAgICBpbnQgYXV0b1NwYW4gPSAwOwogICAgIGludCB0b3RhbEZpeGVkV2lkdGgg
PSAwOwogICAgIGludCB0b3RhbFBlcmNlbnRXaWR0aCA9IDA7Ci0gICAgaW50IHRvdGFsUmF3UGVy
Y2VudCA9IDA7CisgICAgZmxvYXQgdG90YWxQZXJjZW50ID0gMDsKIAogICAgIC8vIENvbXB1dGUg
cmVxdWlyZW1lbnRzIGFuZCB0cnkgdG8gc2F0aXNmeSBmaXhlZCBhbmQgcGVyY2VudCB3aWR0aHMu
CiAgICAgLy8gUGVyY2VudGFnZXMgYXJlIG9mIHRoZSB0YWJsZSdzIHdpZHRoLCBzbyBmb3IgZXhh
bXBsZQpAQCAtMjQ3LDcgKzI0OSw3IEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KCkK
ICAgICAgICAgfSBlbHNlIGlmIChtX3dpZHRoW2ldLmlzUGVyY2VudCgpKSB7CiAgICAgICAgICAg
ICBjYWxjV2lkdGhbaV0gPSBtX3dpZHRoW2ldLmNhbGNWYWx1ZSh0YWJsZUxvZ2ljYWxXaWR0aCk7
CiAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCArPSBjYWxjV2lkdGhbaV07Ci0gICAgICAg
ICAgICB0b3RhbFJhd1BlcmNlbnQgKz0gbV93aWR0aFtpXS5yYXdWYWx1ZSgpOworICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IG1fd2lkdGhbaV0ucGVyY2VudCgpOwogICAgICAgICB9IGVsc2Ug
aWYgKG1fd2lkdGhbaV0uaXNBdXRvKCkpIHsKICAgICAgICAgICAgIG51bUF1dG8rKzsKICAgICAg
ICAgICAgIGF1dG9TcGFuICs9IG1fdGFibGUtPnNwYW5PZkVmZkNvbChpKTsKQEAgLTI3MCwxMSAr
MjcyLDExIEBAIHZvaWQgRml4ZWRUYWJsZUxheW91dDo6bGF5b3V0KCkKICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICh0b3RhbFJhd1BlcmNlbnQpIHsKKyAgICAgICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKICAg
ICAgICAgICAgICAgICB0b3RhbFBlcmNlbnRXaWR0aCA9IDA7CiAgICAgICAgICAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBuRWZmQ29sczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3dpZHRoW2ldLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYWxj
V2lkdGhbaV0gPSBtX3dpZHRoW2ldLnJhd1ZhbHVlKCkgKiAodGFibGVMb2dpY2FsV2lkdGggLSB0
b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxSYXdQZXJjZW50OworICAgICAgICAgICAgICAgICAgICAg
ICAgY2FsY1dpZHRoW2ldID0gbV93aWR0aFtpXS5wZXJjZW50KCkgKiAodGFibGVMb2dpY2FsV2lk
dGggLSB0b3RhbEZpeGVkV2lkdGgpIC8gdG90YWxQZXJjZW50OwogICAgICAgICAgICAgICAgICAg
ICAgICAgdG90YWxQZXJjZW50V2lkdGggKz0gY2FsY1dpZHRoW2ldOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHJldmlzaW9uIDgwMzgxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6YWRkQ2VsbChSZW5k
ZXJUCiAgICAgICAgICAgICBzd2l0Y2ggKGxvZ2ljYWxIZWlnaHQudHlwZSgpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgICAgICAgICBpZiAoIShjUm93TG9n
aWNhbEhlaWdodC5pc1BlcmNlbnQoKSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgIChjUm93
TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93TG9naWNhbEhlaWdodC5yYXdWYWx1ZSgp
IDwgbG9naWNhbEhlaWdodC5yYXdWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChj
Um93TG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSAmJiBjUm93TG9naWNhbEhlaWdodC5wZXJjZW50
KCkgPCBsb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBt
X2dyaWRbbV9jUm93XS5sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgRml4ZWQ6CkBAIC00MzQs
MjIgKzQzNCwyMiBAQCBpbnQgUmVuZGVyVGFibGVTZWN0aW9uOjpsYXlvdXRSb3dzKGludCB0CiAg
ICAgICAgICAgICBpZiAobV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNBdXRvKCkpCiAgICAgICAg
ICAgICAgICAgbnVtQXV0bysrOwogICAgICAgICAgICAgZWxzZSBpZiAobV9ncmlkW3JdLmxvZ2lj
YWxIZWlnaHQuaXNQZXJjZW50KCkpCi0gICAgICAgICAgICAgICAgdG90YWxQZXJjZW50ICs9IG1f
Z3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgdG90YWxQ
ZXJjZW50ICs9IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKICAgICAgICAgfQog
ICAgICAgICBpZiAodG90YWxQZXJjZW50KSB7CiAgICAgICAgICAgICAvLyB0cnkgdG8gc2F0aXNm
eSBwZXJjZW50CiAgICAgICAgICAgICBpbnQgYWRkID0gMDsKLSAgICAgICAgICAgIHRvdGFsUGVy
Y2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCAqIHBlcmNlbnRTY2FsZUZhY3Rvcik7CisgICAg
ICAgICAgICB0b3RhbFBlcmNlbnQgPSBtaW4odG90YWxQZXJjZW50LCAxMDApOwogICAgICAgICAg
ICAgaW50IHJoID0gbV9yb3dQb3NbMV0gLSBtX3Jvd1Bvc1swXTsKICAgICAgICAgICAgIGZvciAo
aW50IHIgPSAwOyByIDwgdG90YWxSb3dzOyByKyspIHsKICAgICAgICAgICAgICAgICBpZiAodG90
YWxQZXJjZW50ID4gMCAmJiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkgewot
ICAgICAgICAgICAgICAgICAgICBpbnQgdG9BZGQgPSBtaW4oZGgsICh0b3RhbEhlaWdodCAqIG1f
Z3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnJhd1ZhbHVlKCkgLyAoMTAwICogcGVyY2VudFNjYWxlRmFj
dG9yKSkgLSByaCk7CisgICAgICAgICAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbihkaCwgc3Rh
dGljX2Nhc3Q8aW50PigodG90YWxIZWlnaHQgKiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5wZXJj
ZW50KCkgLyAxMDApIC0gcmgpKTsKICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdG9BZGQgaXMg
bmVnYXRpdmUsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBzaHJpbmsgdGhlIHJvdyAodGhpcyBidWcK
ICAgICAgICAgICAgICAgICAgICAgLy8gYWZmZWN0ZWQgT3V0bG9vayBXZWIgQWNjZXNzKS4KICAg
ICAgICAgICAgICAgICAgICAgdG9BZGQgPSBtYXgoMCwgdG9BZGQpOwogICAgICAgICAgICAgICAg
ICAgICBhZGQgKz0gdG9BZGQ7CiAgICAgICAgICAgICAgICAgICAgIGRoIC09IHRvQWRkOwotICAg
ICAgICAgICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQu
cmF3VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50IC09IG1fZ3JpZFty
XS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgaWYgKHIgPCB0b3RhbFJvd3MgLSAxKQogICAgICAgICAgICAgICAgICAgICByaCA9IG1f
cm93UG9zW3IgKyAyXSAtIG1fcm93UG9zW3IgKyAxXTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAkocmV2aXNpb24gODAzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OSwxMyArNDksMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNCb3JkZXJSYWRpdXMoKSBjb25z
dAogICAgIHsKLSAgICAgICAgaWYgKG1fdG9wTGVmdC53aWR0aCgpLnJhd1ZhbHVlKCkgPiAwKQor
ICAgICAgICBpZiAoIW1fdG9wTGVmdC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX3RvcFJpZ2h0LndpZHRoKCkucmF3VmFsdWUoKSA+IDAp
CisgICAgICAgIGlmICghbV90b3BSaWdodC53aWR0aCgpLmlzWmVybygpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChtX2JvdHRvbUxlZnQud2lkdGgoKS5yYXdWYWx1ZSgp
ID4gMCkKKyAgICAgICAgaWYgKCFtX2JvdHRvbUxlZnQud2lkdGgoKS5pc1plcm8oKSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobV9ib3R0b21SaWdodC53aWR0aCgpLnJh
d1ZhbHVlKCkgPiAwKQorICAgICAgICBpZiAoIW1fYm90dG9tUmlnaHQud2lkdGgoKS5pc1plcm8o
KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gODA2NjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMy0wOSAgUmlrIENhYmFuaWVyICA8
Y2FiYW5pZXJAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGJ1ZyA1NjA1MjogcGVyY2VudGFnZXMgYXJlIGluY29ycmVjdGx5IHJvdW5k
ZWQgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjA1MgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXItZXhwZWN0ZWQudHh0OgorCiAyMDExLTAzLTA5ICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNz
ZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Ut
bm9uLWludGVnZXItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQuY2hl
Y2tzdW0JKHJldmlzaW9uIDgwMzgxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL3BlcmNlbnRhZ2Utbm9uLWludGVnZXItZXhwZWN0ZWQuY2hlY2tzdW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEgKzEgQEAKLTQxNGNhYWEyZWUwOTgyM2ZjYzZiMTIwMGQzMGVjMTI3ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorYzZkOTA1NTM0MWE5OTA0OTI5Y2NjNDk0NzZjN2JkOWUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3BlcmNlbnRhZ2Utbm9uLWludGVn
ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MDM4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9wZXJjZW50YWdlLW5vbi1pbnRlZ2VyLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDQpIHNpemUgOTEweDQKICAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3Rl0K
ICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDgpIHNpemUgOTEweDQKLSAgICAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0KKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMXg0IFtiZ2Nv
bG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUg
OTAweDQKICAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg0IFti
Z2NvbG9yPSMwMDAwMDA3Rl0KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYpIHNp
emUgODkweDQKQEAgLTQ5LDcgKzQ5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CiAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg0KSBzaXplIDg0MHg0CiAgICAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAwN0Zd
CiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg4KSBzaXplIDgzNXg0Ci0gICAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBbYmdjb2xvcj0jMDAwMDAw
N0ZdCisgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDF4NCBbYmdj
b2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkyKSBzaXpl
IDgyNXg0CiAgICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMDB4NCBb
Ymdjb2xvcj0jMDAwMDAwN0ZdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDk2KSBz
aXplIDgxNXg0CkBAIC04NCw2MSArODQsNjEgQEAgbGF5ZXIgYXQgKDgsMTI2KSBzaXplIDEwMDB4
MjAKICAgUmVuZGVyVGFibGUge1RBQkxFfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICBSZW5k
ZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMCwwKSBzaXplIDEwMDB4MjAKICAgICAgIFJlbmRl
clRhYmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSAxMDAweDIwCi0gICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgwLDEpIHNpemUgMTF4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9
MCBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDEpIHNpemUg
MTJ4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0
ICgxMSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEgcnM9MSBjcz0x
XQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTIsMSkgc2l6ZSAxMHgxOCBbYmdj
b2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIxLDEpIHNp
emUgMTN4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9MiBycz0xIGNzPTFdCisgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMiwxKSBzaXplIDEzeDE4IFtiZ2NvbG9yPSMwMDAw
MDA3Rl0gW3I9MCBjPTIgcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6
ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMSkgc2l6ZSAxMHgxOCBb
Ymdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAgYz0zIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDM1LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBbcj0w
IGM9MyBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NCwxKSBzaXplIDE1eDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTQgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1RE
fSBhdCAoNDUsMSkgc2l6ZSAxNngxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz00IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDU5LDEpIHNpemUgMTB4MTggW2JnY29sb3I9IzAwRkYwMDdGXSBb
cj0wIGM9NSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2MSwx
KSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTUgcnM9MSBjcz0xXQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoNjksMSkgc2l6ZSAxN3gxOCBbYmdjb2xvcj0jMDAwMDAwN0ZdIFtyPTAgYz02IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDcxLDEpIHNpemUgMTd4
MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9NiBycz0xIGNzPTFdCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg4
NiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTcgcnM9MSBjcz0xXQor
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoODgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xv
cj0jMDBGRjAwN0ZdIFtyPTAgYz03IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk2LDEpIHNpemUg
MjB4MTggW2JnY29sb3I9IzAwMDAwMDdGXSBbcj0wIGM9OCBycz0xIGNzPTFdCisgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICg5OCwxKSBzaXplIDIweDE4IFtiZ2NvbG9yPSMwMDAwMDA3
Rl0gW3I9MCBjPTggcnM9MSBjcz0xXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDR4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTE2LDEpIHNpemUgMTB4MTggW2Jn
Y29sb3I9IzAwRkYwMDdGXSBbcj0wIGM9OSBycz0xIGNzPTFdCisgICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgxMTgsMSkgc2l6ZSAxMHgxOCBbYmdjb2xvcj0jMDBGRjAwN0ZdIFtyPTAg
Yz05IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEyNiwxKSBzaXplIDIxeDE4IFtiZ2NvbG9yPSMw
MDAwMDA3Rl0gW3I9MCBjPTEwIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDEyOCwxKSBzaXplIDIyeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEwIHJz
PTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4
CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVu
ZGVyVGFibGVDZWxsIHtURH0gYXQgKDE0NywxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3
Rl0gW3I9MCBjPTExIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDE1MCwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTExIHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDE1NywxKSBzaXplIDIzeDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9
MCBjPTEyIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE2MCwx
KSBzaXplIDI0eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTEyIHJzPTEgY3M9MV0KICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxs
IHtURH0gYXQgKDE4MCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTEz
IHJzPTEgY3M9MV0KLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE5MCwxKSBzaXpl
IDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEgY3M9MV0KKyAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE4NCwxMCkgc2l6ZSAxMHgwIFtiZ2NvbG9yPSMwMEZG
MDA3Rl0gW3I9MCBjPTEzIHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDE5NCwxKSBzaXplIDI1eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE0IHJzPTEg
Y3M9MV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtURH0gYXQgKDIxNSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0g
W3I9MCBjPTE1IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIx
OSwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE1IHJzPTEgY3M9MV0K
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDIyNSwxKSBzaXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBj
PTE2IHJzPTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIyOSwxKSBz
aXplIDI3eDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE2IHJzPTEgY3M9MV0KICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDI1MiwxKSBzaXplIDEweDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJz
PTEgY3M9MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI1NiwxKSBzaXplIDEw
eDE4IFtiZ2NvbG9yPSMwMEZGMDA3Rl0gW3I9MCBjPTE3IHJzPTEgY3M9MV0KICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDI2MiwxKSBzaXplIDMweDE4IFtiZ2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9
MV0KKyAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI2NiwxKSBzaXplIDMweDE4IFti
Z2NvbG9yPSMwMDAwMDA3Rl0gW3I9MCBjPTE4IHJzPTEgY3M9MV0KICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI5Miwx
KSBzaXplIDcwOHgxOCBbcj0wIGM9MTkgcnM9MSBjcz0xXQorICAgICAgICBSZW5kZXJUYWJsZUNl
bGwge1REfSBhdCAoMjk2LDEpIHNpemUgNzA0eDE4IFtyPTAgYz0xOSBycz0xIGNzPTFdCiAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNHgxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDogIiAiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9jc3MvcGVyY2VudGFnZS1ub24taW50ZWdlci1leHBlY3RlZC5wbmcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1p
bWUtdHlwZSA9IGltYWdlL3BuZwoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlB
QUFDYWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFBZUFHRgpWTTlyRTBFVS9qWnVxZEFp
Q0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6U2RadU51dnVKcldsaU9UaTBTcmVS
ZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVNdHFYcXdNNSs4OTQzNzMxdmR0OEFE
WExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFsVmR2c1RpUUdRWU56K1h2bjJIb1Bn
VnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhDbGtTQW9nOAozNkVweDNRSTMrUFk4
dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRRSU5JT0pUMWNWSStuTmVMbE5jZEIy
bHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9zOTQrd2lIQ0N4bXRQMGE0alo3MWpO
VS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFUU2VpVkhIWkxnM3htSzc5VnZKS2du
Q1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1VlRjVqeE5uM3RUZAo3MFhhQXE4d0Ro
ME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJodVRlekoxSkdxN2RHSkVzVUY3TnR3
OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkxeXcyRmIzbEsyYm1ycnk0RHZGNVpt
NUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAreFhsekhtZ2pXUHhIT3crL0V0WDVY
TWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJYV2M2MkppemRXbTVkbgovV3BJKys2
cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3eGt0aExxd3ZpWUczSENKMlZoaW5T
YlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxTSjkzL0NLbVEwbmJrT2IvcVAyOGY4
RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJWHY5Rjk4TFp1YTZOK09Qd0VXRHly
RnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82NmNwaVVzeFEyME5TVXRjbAoxMlZM
RnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3L2JCUytmbXNVdGwrVGhyV2daZjZi
OEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWUzZDNZOWNkM2tIOE4vdXp2bzF0aE1uaEJBZ09DMUZD
U2k4Vm9DRW9FalFDN2poa2hkeHlRMWM4QzhrbHZnVGtMamgKRWdrUU55QlZCVUZCRkZWQ2JWb0ZK
YVUwS2FTRWtsTHk0cndudG5mdDdlODV5VEc3anNmT2FNNmF4L3Q4UmxyUDdzdzVaNTduOCt6TQpu
dStlTTk2VnJYNXBMZ1FJRUNCQWdBQUJBZ1FJRUxnS0FxdFg0VEU4QkFFQ0JBZ1FJRUNBQUFFQ0JB
WUJBY1EzQWdFQ0JBZ1FJRUNBCkFBRUNWMDFBQUxscTFCNklBQUVDQkFnUUlFQ0FBQUVCeFBjQUFR
SUVDQkFnUUlBQUFRSlhUVUFBdVdyVUhvZ0FBUUlFQ0JBZ1FJQUEKQVFIRTl3QUJBZ1FJRUNCQWdB
QUJBbGROUUFDNWF0UWVpQUFCQWdRSUVDQkFnQUNCMlpVSVZrNnVYR2tSOTE5RmdhMjcvZG1XcThq
dApvUWdRSUVDQUFBRUNCQ1lXY0FSa1lsQ2JJMENBQUFFQ0JBZ1FJRUJndm9BQU10L0dQUVFJRUNC
QWdBQUJBZ1FJVEN3Z2dFd01hbk1FCkNCQWdRSUFBQVFJRUNNd1hFRURtMjdpSEFBRUNCQWdRSUVD
QUFJR0pCUVNRaVVGdGpnQUJBZ1FJRUNCQWdBQ0IrUUlDeUh3Yjl4QWcKUUlBQUFRSUVDQkFnTUxH
QUFESXhxTTBSSUVDQUFBRUNCQWdRSURCZlFBQ1piK01lQWdRSUVDQkFnQUFCQWdRbUZoQkFKZ2Ex
T1FJRQpDQkFnUUlBQUFRSUU1Z3NJSVBOdDNFT0FBQUVDQkFnUUlFQ0F3TVFDQXNqRW9EWkhnQUFC
QWdRSUVDQkFnTUI4QVFGa3ZvMTdDQkFnClFJQUFBUUlFQ0JDWVdFQUFtUmpVNWdnUUlFQ0FBQUVD
QkFnUW1DOGdnTXkzY1E4QkFnUUlFQ0JBZ0FBQkFoTUxDQ0FUZzlvY0FRSUUKQ0JBZ1FJQUFBUUx6
QlFTUStUYnVJVUNBQUFFQ0JBZ1FJRUJnWWdFQlpHSlFteU5BZ0FBQkFnUUlFQ0JBWUw2QUFETGZ4
ajBFQ0JBZwpRSUFBQVFJRUNFd3NJSUJNREdwekJBZ1FJRUNBQUFFQ0JBak1GeEJBNXR1NGh3QUJB
Z1FJRUNCQWdBQ0JpUVVFa0lsQmJZNEFBUUlFCkNCQWdRSUFBZ2ZrQ0FzaDhHL2NRSUVDQUFBRUNC
QWdRSURDeGdBQXlNYWpORVNCQWdBQUJBZ1FJRUNBd1gwQUFtVy9qSGdJRUNCQWcKUUlBQUFRSUVK
aFlRUUNZR3RUa0NCQWdRSUVDQUFBRUNCT1lMQ0NEemJkeERnQUFCQWdRSUVDQkFnTURFQWdMSXhL
QTJSNEFBQVFJRQpDQkFnUUlEQWZBRUJaTDZOZXdnUUlFQ0FBQUVDQkFnUW1GaEFBSmtZMU9ZSUVD
QkFnQUFCQWdRSUVKZ3ZJSURNdDNFUEFRSUVDQkFnClFJQUFBUUlUQ3dnZ0U0UGFIQUVDQkFnUUlF
Q0FBQUVDOHdVRWtQazI3aUZBZ0FBQkFnUUlFQ0JBWUdJQkFXUmlVSnNqUUlBQUFRSUUKQ0JBZ1FH
QytnQUF5MzhZOUJBZ1FJRUNBQUFFQ0JBaE1MQ0NBVEF4cWN3UUlFQ0JBZ0FBQkFnUUl6QmNRUU9i
YnVJY0FBUUlFQ0JBZwpRSUFBZ1lrRkJKQ0pRVzJPQUFFQ0JBZ1FJRUNBQUlINUFnTElmQnYzRUNC
QWdBQUJBZ1FJRUNBd3NZQUFNakdvelJFZ1FJQUFBUUlFCkNCQWdNRjlBQUpsdjR4NENCQWdRSUVD
QUFBRUNCQ1lXRUVBbUJyVTVBZ1FJRUNCQWdBQUJBZ1RtQ3dnZzgyM2NRNEFBQVFJRUNCQWcKUUlE
QXhBSUN5TVNnTmtlQUFBRUNCQWdRSUVDQXdId0JBV1MralhzSUVDQkFnQUFCQWdRSUVKaFlRQUNa
R05UbUNCQWdRSUFBQVFJRQpDQkNZTHlDQXpMZHhEd0VDQkFnUUlFQ0FBQUVDRXdzSUlCT0QyaHdC
QWdRSUVDQkFnQUFCQXZNRkJKRDVOaW52T1hueVpNcTZGRVdBCkFBRUNCQWdRSUVEZ3RRZ0lJSzlG
eVRJRUNCQWdRSUFBQVFJRUNFd2lJSUJNd21nakJBZ1FJRUNBQUFFQ0JBaThGZ0VCNUxVb1dZWUEK
QVFJRUNCQWdRSUFBZ1VrRVZyYjY1WEpiV2ptNWNybTczWGVWQmJidXZ1eTRybkkxSG80QUFRSUVD
QkFnUUlEQVlnS09nQ3ptWldrQwpCQWdRSUVDQUFBRUNCSllRRUVDV3dMTXFBUUlFQ0JBZ1FJQUFB
UUtMQ1FnZ2kzbFptZ0FCQWdRSUVDQkFnQUNCSlFRRWtDWHdyRXFBCkFBRUNCQWdRSUVDQXdHSUNB
c2hpWHBZbVFJQUFBUUlFQ0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBc3BpWHBR
a1EKSUVDQUFBRUNCQWdRV0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdRSUVD
QkFnQUFCQWdTV0VCQkFsc0N6S2dFQwpCQWdRSUVDQUFBRUNpd2tJSUl0NVdab0FBUUlFQ0JBZ1FJ
QUFnU1VFQkpBbDhLeEtnQUFCQWdRSUVDQkFnTUJpQWdMSVlsNldKa0NBCkFBRUNCQWdRSUVCZ0NR
RUJaQWs4cXhJZ1FJQUFBUUlFQ0JBZ3NKaUFBTEtZbDZVSkVDQkFnQUFCQWdRSUVGaENRQUJaQXMr
cUJBZ1EKSUVDQUFBRUNCQWdzSmlDQUxPWmxhUUlFQ0JBZ1FJQUFBUUlFbGhBUVFKYkFzeW9CQWdR
SUVDQkFnQUFCQW9zSkNDQ0xlVm1hQUFFQwpCQWdRSUVDQUFJRWxCQVNRSmZDc1NvQUFBUUlFQ0JB
Z1FJREFZZ0lDeUdKZWxpWkFnQUFCQWdRSUVDQkFZQWtCQVdRSlBLc1NJRUNBCkFBRUNCQWdRSUxD
WWdBQ3ltSmVsQ1JBZ1FJQUFBUUlFQ0JCWVFrQUFXUUxQcWdRSUVDQkFnQUFCQWdRSUxDWWdnQ3pt
WldrQ0JBZ1EKSUVDQUFBRUNCSllRRUVDV3dMTXFBUUlFQ0JBZ1FJQUFBUUtMQ1FnZ2kzbFptZ0FC
QWdRSUVDQkFnQUNCSlFRRWtDWHdyRXFBQUFFQwpCQWdRSUVDQXdHSUNBc2hpWHBZbVFJQUFBUUlF
Q0JBZ1FHQUpBUUZrQ1R5ckVpQkFnQUFCQWdRSUVDQ3dtSUFBc3BpWHBRa1FJRUNBCkFBRUNCQWdR
V0VKQUFGa0N6Nm9FQ0JBZ1FJQUFBUUlFQ0N3bUlJQXM1bVZwQWdRSUVDQkFnQUFCQWdTV0VCQkFs
c0N6S2dFQ0JBZ1EKSUVDQUFBRUNpd2tJSUl0NVdab0FBUUlFQ0JBZ1FJQUFnU1VFQkpBbDhQNGNx
NTQ4ZWZMUDhiQWVrd0FCQWdRSUVDQkFnTUFrQWdMSQpKSXcyUW9BQUFRSUVDQkFnUUlEQWF4RVFR
RjZMa21VSUVDQkFnQUFCQWdRSUVKaEVRQUNaaE5GR0NCQWdRSUFBQVFJRUNCQjRMUUlyClcvMXl1
UVZYVHE1YzdtNzNYV1dCcmJzdk82NnJYSTJISTBDQUFBRUNCQWdRSUxDWWdDTWdpM2xabWdBQkFn
UUlFQ0JBZ0FDQkpRUUUKa0NYd3JFcUFBQUVDQkFnUUlFQ0F3R0lDQXNoaVhwWW1RSUFBQVFJRUNC
QWdRR0FKQVFGa0NUeXJFaUJBZ0FBQkFnUUlFQ0N3bUlBQQpzcGlYcFFrUUlFQ0FBQUVDQkFnUVdF
SkFBRmtDejZvRUNCQWdRSUFBQVFJRUNDd21JSUFzNW1WcEFnUUlFQ0JBZ0FBQkFnU1dFTGppCjN3
RlpZdHRXSlVDQUFBRUNCQWdRSUVDQXdBNEJSMEIyY1BpQ0FBRUNCQWdRSUVDQUFJSGRGQkJBZGxQ
WHRna1FJRUNBQUFFQ0JBZ1EKMkNFZ2dPemc4QVVCQWdRSUVDQkFnQUFCQXJzcElJRHNwcTV0RXlC
QWdBQUJBZ1FJRUNDd1EwQUEyY0hoQ3dJRUNCQWdRSUFBQVFJRQpkbE5BQU5sTlhkc21RSUFBQVFJ
RUNCQWdRR0NIZ0FDeWc4TVhCQWdRSUVDQUFBRUNCQWpzcG9BQXNwdTZ0azJBQUFFQ0JBZ1FJRUNB
CndBNEJBV1FIaHk4SUVDQkFnQUFCQWdRSUVOaE5BUUZrTjNWdG13QUJBZ1FJRUNCQWdBQ0JIUUlD
eUE0T1h4QWdRSUFBQVFJRUNCQWcKc0pzQ0FzaHU2dG8yQVFJRUNCQWdRSUFBQVFJN0JBU1FIUnkr
SUVDQUFBRUNCQWdRSUVCZ053VUVrTjNVdFcwQ0JBZ1FJRUNBQUFFQwpCSFlJQ0NBN09IeEJnQUFC
QWdRSUVDQkFnTUJ1Q2dnZ3U2bHIyd1FJRUNCQWdBQUJBZ1FJN0JBUVFIWncrSUlBQVFJRUNCQWdR
SUFBCmdkMFVtRjFwNHlzblY2NjB5Si91djZkL2V2ZWZ2cHo3V1N4M2N1NjlsNzRqMXRtdGJZK1BH
SThSbHlzOXpqM0RVb3YzOE1wcXc5VzQKamF2eFdCa2VOMm9ZZTQ3UEw5ZjM5dVVXL1Q2SmJWL3Vj
czlGZDg2cjQrTGxwcTRqeXJqNE1mNmN0VVE5Y2JsbitQZFAvMlNvNlUvVgpESi9kczYzSXUrK2VW
K0JGSy9tU0FBRUNCQWdRU0NQZ0NFaWFVU2lFQUFFQ0JBZ1FJRUNBd040WEVFRDIvb3gxU0lBQUFR
SUVDQkFnClFDQ05nQUNTWmhRS0lVQ0FBQUVDQkFnUUlMRDNCUVNRdlQ5akhSSWdRSUFBQVFJRUNC
QklJeUNBcEJtRlFnZ1FJRUNBQUFFQ0JBanMKZlFFQlpPL1BXSWNFQ0JBZ1FJQUFBUUlFMGdnSUlH
bEdvUkFDQkFnUUlFQ0FBQUVDZTE5QUFObjdNOVloQVFJRUNCQWdRSUFBZ1RRQwpBa2lhVVNpRUFB
RUNCQWdRSUVDQXdONFhFRUQyL294MVNJQUFBUUlFQ0JBZ1FDQ05nQUNTWmhRS0lVQ0FBQUVDQkFn
UUlMRDNCUVNRCnZUOWpIUklnUUlBQUFRSUVDQkJJSXlDQXBCbUZRZ2dRSUVDQUFBRUNCQWpzZlFF
QlpPL1BXSWNFQ0JBZ1FJQUFBUUlFMGdnSUlHbEcKb1JBQ0JBZ1FJRUNBQUFFQ2UxOUFBTm43TTlZ
aEFRSUVDQkFnUUlBQWdUUUNBa2lhVVNpRUFBRUNCQWdRSUVDQXdONFhFRUQyL294MQpTSUFBQVFJ
RUNCQWdRQ0NOZ0FDU1poUUtJVUNBQUFFQ0JBZ1FJTEQzQlZhMittWHZ0NmxEQWdRSUVDQkFnQUFC
QWdReUNEZ0NrbUVLCmFpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NB
WkppQ0dnZ1FJRUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUkKRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lF
Q0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSQpFQ0JB
Z0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBN
bWh0RWlCQWdBQUJBZ1FJCkVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJ
RUNBQUFFQ0JESUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUUKQkpBaWc5WW1BUUlFQ0JBZ1FJQUFn
UXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaApD
bW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdB
QUJBZ1FJRkJFUVFJb01XcHNFCkNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JR
UUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUUKQ0JBZ1FJQkFFUUVCcE1pZ3RV
bUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJ
RQpDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0Fn
Z0dhYWdCZ0lFQ0JBZ1FJQUFBUUpGCkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FB
QkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1MKWVFwcUlFQ0FBQUVDQkFn
UUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNL
REZxYgpCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlF
Q0JBZ1FJQUFnUXdDQWtpR0thaUJBQUVDCkJBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JB
SUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUMKQkFnUXlDQWdnR1NZ
Z2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJ
RUNBQUFFQwpSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFF
UUVCcE1pZ3RVbUFBQUVDQkFnUUlFQWdnNEFBCmttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9i
UklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGEKbXdRSUVDQkFn
QUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFn
SkloaW1vZ1FBQgpBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlF
Q0FBQUVDQkFnUUlGQkVRQUFwTW1odEVpQkFnQUFCCkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFR
SUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUIKQWtVRUJK
QWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FB
QkFnUUlFQ0JBSUlPQQpBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFn
UXlDQWdnR1NZZ2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NCldwc0VDQkFnUUlBQUFRSUVNZ2dJSUJt
bW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUEKQVFJ
RUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JR
UkVBQUtUSm9iUklnUUlBQQpBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hh
bXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBCkFRSkZCQVNRSW9QV0pnRUNCQWdR
SUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0QK
Z0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFD
QkFnUUlBQUFRSUVDQlFSRUVDSwpERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFn
QUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCCkFBRUNCQWdRSUVDQVFCRUJB
YVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lF
Q0EKQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFR
SUVNZ2dJSUJtbW9BWUNCQWdRSUVDQQpBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJ
WXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnCmc0QUFrbUVLYWlCQWdB
QUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFn
VUVSQkEKaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9Q
V0pnRUNCQWdRSUVDQUFJRU1BZ0pJaGltbwpnUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJ
RUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBCmdBQUJBZ1FJRU1n
Z0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFH
QWdRSUVDQkEKZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdR
SUVDQVFCRUJBYVRJb0xWSmdBQUJBZ1FJRUNCQQpJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJB
QUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRClFJb01XcHNF
Q0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFn
QUNCREFJQ1NJWXAKcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFr
bUVLYWlCQWdBQUJBZ1FJRUNCUVJFQUFLVEpvYlJJZwpRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJ
RUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnClFJQUFB
UUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lL
QzFTWUFBQVFJRUNCQWcKUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdB
QUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUgpFRUNLREZxYkJBZ1FJRUNBQUFFQ0JE
SUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHCkth
aUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJ
RUNCQWdVRVJBQUNreWFHMFMKSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJF
UVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUQpJRUNBQUFFQ1JRUUVrQ0tEMWlZ
QkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdR
CklFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NB
WkppQ0dnZ1FJRUNBQUFFQ0JBZ1UKRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lF
Q0JBZ1FJQUFBUUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSQpoaW1vZ1FBQkFnUUlFQ0JB
Z0VBUkFRR2t5S0MxU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBN
bWh0CkVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJ
RUNBQUFFQ0JESUlDQ0FacHFBR0FnUUkKRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFn
UXdDQWtpR0thaUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSQpFQ0JBSUlPQUFKSmhD
bW9nUUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdB
QUJBZ1FJCkZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JR
UUVrQ0tEMWlZQkFnUUlFQ0JBZ0FDQkRBSUMKU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RV
bUFBQUVDQkFnUUlFQWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKbwpiUklnUUlBQUFR
SUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0Fn
Z0dhYWdCZ0lFCkNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FB
QkFnUUlFQ0JBZ0VBUkFRR2t5S0MxU1lBQUFRSUUKQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFn
UUlGQkVRQUFwTW1odEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRQpDQlFSRUVD
S0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlF
Q0JBZ1FJQUFnUXdDCkFraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JB
SUlPQUFKSmhDbW9nUUlBQUFRSUVDQkFnVUVSQUFDa3kKYUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZ
Z2hvSUVDQkFnQUFCQWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQwpCQWdR
SUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFF
UUVCcE1pZ3RVbUFBQUVDCkJBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9i
UklnUUlBQUFRSUVDQkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUMKQkFnVUVSQkFpZ3hhbXdRSUVDQkFn
QUFCQWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTQpB
Z0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlF
Q0FBQUVDQkFnUUlGQkVRQUFwCk1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFR
SUVDQlFSRUVDS0RGcWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUcKQWdRSUVDQkFnQUFCQWtVRUJK
QWlnOVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FB
QgpBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFn
UXlDQWdnR1NZZ2hvSUVDQkFnQUFCCkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJt
bW9BWUNCQWdRSUVDQUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0IKREFJQ1NJWXBxSUVBQVFJ
RUNCQWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JR
UkVBQQpLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hh
bXdRSUVDQkFnQUFCQWdReUNBZ2dHYWFnCkJnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdR
SUVDQUFJRU1BZ0pJaGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUEKQVFJRUNCQWdRQ0NE
Z0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFD
QkFnUUlBQQpBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFn
QUFCQWtVRUJKQWlnOVltQVFJRUNCQWdRSUFBCmdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJB
YVRJb0xWSmdBQUJBZ1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkEKQUNreWFHMFNJ
RUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFR
SUVNZ2dJSUJtbQpvQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJ
WXBxSUVBQVFJRUNCQWdRSUJBRVFFQnBNaWd0VW1BCkFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdB
QUJBZ1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0EKQUFFQ0JB
Z1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9Q
V0pnRUNCQWdRSUVDQQpBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJ
RUNCQWdRQ0NEZ0FDU1lRcHFJRUNBQUFFQ0JBZ1FJRkJFClFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1n
Z0lJQmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVoKcHFB
R0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdR
SUVDQVFCRUJBYVRJb0xWSgpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJB
QUNreWFHMFNJRUNBQUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBCmdBQUJBZ1FJRkJFUVFJb01XcHNF
Q0JBZ1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkEK
Z0FDQkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFr
bUVLYWlCQWdBQUJBZ1FJRUNCUQpSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJ
RUNBQUFFQ0JBZ1VFUkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnCkdhYWdCZ0lFQ0JBZ1FJQUFB
UUpGQkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lL
QzEKU1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdB
QUJBZ1FJRU1nZ0lJQmttSUlhQ0JBZwpRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JE
SUlDQ0FacHFBR0FnUUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnClFJQUFnUXdDQWtpR0th
aUJBQUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJ
RUNCQWcKVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJF
UVFJb01XcHNFQ0JBZ1FJQUFBUUlFTWdnSQpJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZ
QkFnUUlFQ0JBZ0FDQkRBSUNTSVlwcUlFQUFRSUVDRlk2V3hrQUFCZHBTVVJCClZCQWdRSUJBRVFF
QnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUkln
UUlBQUFRSUUKQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFC
QWdReUNBZ2dHYWFnQmdJRUNCQWdRSUFBQVFKRgpCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BZ0pJ
aGltb2dRQUJBZ1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTCllRcHFJRUNB
QUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVD
QlFSRUVDS0RGcWIKQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFCQWtVRUJKQWln
OVltQVFJRUNCQWdRSUFBZ1F3Q0FraUdLYWlCQUFFQwpCQWdRSUVDQVFCRUJBYVRJb0xWSmdBQUJB
Z1FJRUNCQUlJT0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDCkJBZ1F5
Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9B
WUNCQWdRSUVDQUFBRUMKUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBxSUVBQVFJRUNC
QWdRSUJBRVFFQnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQQprbUVLYWlCQWdBQUJBZ1FJRUNCUVJF
QUFLVEpvYlJJZ1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhCm13
UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVD
QUFJRU1BZ0pJaGltb2dRQUIKQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNCQWdRQ0NEZ0FD
U1lRcHFJRUNBQUFFQ0JBZ1FJRkJFUUFBcE1taHRFaUJBZ0FBQgpBZ1FJRU1nZ0lJQmttSUlhQ0JB
Z1FJQUFBUUlFQ0JRUkVFQ0tERnFiQkFnUUlFQ0FBQUVDQkRJSUNDQVpwcUFHQWdRSUVDQkFnQUFC
CkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQkFBRUNCQWdRSUVDQVFCRUJBYVRJ
b0xWSmdBQUJBZ1FJRUNCQUlJT0EKQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNreWFHMFNJRUNB
QUFFQ0JBZ1F5Q0FnZ0dTWWdob0lFQ0JBZ0FBQkFnUUlGQkVRUUlvTQpXcHNFQ0JBZ1FJQUFBUUlF
TWdnSUlCbW1vQVlDQkFnUUlFQ0FBQUVDUlFRRWtDS0QxaVlCQWdRSUVDQkFnQUNCREFJQ1NJWXBx
SUVBCkFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZ2c0QUFrbUVLYWlCQWdBQUJB
Z1FJRUNCUVJFQUFLVEpvYlJJZ1FJQUEKQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNBQUFFQ0JBZ1VF
UkJBaWd4YW13UUlFQ0JBZ0FBQkFnUXlDQWdnR2FhZ0JnSUVDQkFnUUlBQQpBUUpGQkFTUUlvUFdK
Z0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW9nUUFCQWdRSUVDQkFnRUFSQVFHa3lLQzFTWUFBQVFJRUNC
QWdRQ0NECmdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQWdBQUJBZ1FJRU1nZ0lJ
QmttSUlhQ0JBZ1FJQUFBUUlFQ0JRUkVFQ0sKREZxYkJBZ1FJRUNBQUFFQ0JESUlDQ0FacHFBR0Fn
UUlFQ0JBZ0FBQkFrVUVCSkFpZzlZbUFRSUVDQkFnUUlBQWdRd0NBa2lHS2FpQgpBQUVDQkFnUUlF
Q0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkFJSU9BQUpKaENtb2dRSUFBQVFJRUNCQWdVRVJBQUNr
eWFHMFNJRUNBCkFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUVFJb01XcHNFQ0JB
Z1FJQUFBUUlFTWdnSUlCbW1vQVlDQkFnUUlFQ0EKQUFFQ1JRUUVrQ0tEMWlZQkFnUUlFQ0JBZ0FD
QkRBSUNTSVlwcUlFQUFRSUVDQkFnUUlCQUVRRUJwTWlndFVtQUFBRUNCQWdRSUVBZwpnNEFBa21F
S2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWdRSUFBQVFJRUNCRElJQ0NBWkppQ0dnZ1FJRUNB
QUFFQ0JBZ1VFUkJBCmlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JBZ1FJQUFBUUpG
QkFTUUlvUFdKZ0VDQkFnUUlFQ0FBSUVNQWdKSWhpbW8KZ1FBQkFnUUlFQ0JBZ0VBUkFRR2t5S0Mx
U1lBQUFRSUVDQkFnUUNDRGdBQ1NZUXBxSUVDQUFBRUNCQWdRSUZCRVFBQXBNbWh0RWlCQQpnQUFC
QWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVJFRUNLREZxYkJBZ1FJRUNBQUFFQ0JESUlD
Q0FacHFBR0FnUUlFQ0JBCmdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdDQWtpR0thaUJB
QUVDQkFnUUlFQ0FRQkVCQWFUSW9MVkpnQUFCQWdRSUVDQkEKSUlPQUFKSmhDbW9nUUlBQUFRSUVD
QkFnVUVSQUFDa3lhRzBTSUVDQUFBRUNCQWdReUNBZ2dHU1lnaG9JRUNCQWdBQUJBZ1FJRkJFUQpR
SW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1FJRUNBQUFFQ1JRUUVrQ0tEMWlZQkFn
UUlFQ0JBZ0FDQkRBSUNTSVlwCnFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFBQUVDQkFnUUlF
QWdnNEFBa21FS2FpQkFnQUFCQWdRSUVDQlFSRUFBS1RKb2JSSWcKUUlBQUFRSUVDQkRJSUNDQVpK
aUNHZ2dRSUVDQUFBRUNCQWdVRVJCQWlneGFtd1FJRUNCQWdBQUJBZ1F5Q0FnZ0dhYWdCZ0lFQ0JB
ZwpRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkloaW1vZ1FBQkFnUUlFQ0JBZ0VB
UkFRR2t5S0MxU1lBQUFRSUVDQkFnClFDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlGQkVRQUFwTW1o
dEVpQkFnQUFCQWdRSUVNZ2dJSUJrbUlJYUNCQWdRSUFBQVFJRUNCUVIKRUVDS0RGcWJCQWdRSUVD
QUFBRUNCRElJQ0NBWnBxQUdBZ1FJRUNCQWdBQUJBa1VFQkpBaWc5WW1BUUlFQ0JBZ1FJQUFnUXdD
QWtpRwpLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUlFQ0JBSUlPQUFKSmhDbW9n
UUlBQUFRSUVDQkFnVUVSQUFDa3lhRzBTCklFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hvSUVDQkFnQUFC
QWdRSUZCRVFRSW9NV3BzRUNCQWdRSUFBQVFJRU1nZ0lJQm1tb0FZQ0JBZ1EKSUVDQUFBRUNSUVFF
a0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDU0lZcHFJRUFBUUlFQ0JBZ1FJQkFFUUVCcE1pZ3RVbUFB
QUVDQkFnUQpJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm9iUklnUUlBQUFRSUVD
QkRJSUNDQVpKaUNHZ2dRSUVDQUFBRUNCQWdVCkVSQkFpZ3hhbXdRSUVDQkFnQUFCQWdReUNBZ2dH
YWFnQmdJRUNCQWdRSUFBQVFKRkJBU1FJb1BXSmdFQ0JBZ1FJRUNBQUlFTUFnSkkKaGltb2dRQUJB
Z1FJRUNCQWdFQVJBUUdreUtDMVNZQUFBUUlFQ0JBZ1FDQ0RnQUNTWVFwcUlFQ0FBQUVDQkFnUUlG
QkVRQUFwTW1odApFaUJBZ0FBQkFnUUlFTWdnSUlCa21JSWFDQkFnUUlBQUFRSUVDQlFSRUVDS0RG
cWJCQWdRSUVDQUFBRUNCRElJQ0NBWnBxQUdBZ1FJCkVDQkFnQUFCQWtVRUJKQWlnOVltQVFJRUNC
QWdRSUFBZ1F3Q0FraUdLYWlCQUFFQ0JBZ1FJRUNBUUJFQkFhVElvTFZKZ0FBQkFnUUkKRUNCQUlJ
T0FBSkpoQ21vZ1FJQUFBUUlFQ0JBZ1VFUkFBQ2t5YUcwU0lFQ0FBQUVDQkFnUXlDQWdnR1NZZ2hv
SUVDQkFnQUFCQWdRSQpGQkVRUUlvTVdwc0VDQkFnUUlBQUFRSUVNZ2dJSUJtbW9BWUNCQWdRSUVD
QUFBRUNSUVFFa0NLRDFpWUJBZ1FJRUNCQWdBQ0JEQUlDClNJWXBxSUVBQVFJRUNCQWdRSUJBRVFF
QnBNaWd0VW1BQUFFQ0JBZ1FJRUFnZzRBQWttRUthaUJBZ0FBQkFnUUlFQ0JRUkVBQUtUSm8KYlJJ
Z1FJQUFBUUlFQ0JESUlDQ0FaSmlDR2dnUUlFQ0FBQUVDQkFnVUVSQkFpZ3hhbXdRSUVDQkFnQUFC
QWdReUNBZ2dHYWFnQmdJRQpDQkFnUUlBQUFRSkZCQVNRSW9QV0pnRUNCQWdRSUVDQUFJRU1BclB2
ZnZlN2JUYWJ0YlcxdGJhK3ZqN1V0TFcxMVZaWFY5djU4K2RiCmZCNlhzMmZQdHRPblQxKzRMWloz
SVVDQUFBRUNCQWdRZUxWQTdFZXRyS3dNKzFqeCtmang2aVhkUW1CNmdYUG56ZzM3OE9QM1lPenIK
ai92MTR6NSszRGRleHYzOStEcnUzLzcxdU14NC9kaGpqN1diYjc1NS9QSlYxN0hkZUt6dGw3R2V1
TjdjM0d5empZMk45cGEzdkdWNApzQWdWOFlEeEVTdkhBbi84NHgvYmZmZi9ydjNiZjYyM1h6Nnly
LzNQWTdQMnd0a0lLbjNEa1UzNmh0cE5oN2MvaHM4SkVDQkFnQUFCCkF2VUV6dmNkbzlqdjZ2dFIx
ODAyMm0wM25HbnYrY3ZXUHZyZUErM050eDRhZnRFYk8zZmJkL3pxSWVsNE53VEd3QkRYc2ZNZisv
U3gKSHg5ZnYvamlpKzJsbDE1cWIzakRHOXJ4NDhjdkhHU0k3OFB4STRKQlhHTDVNWURNK3o1OTRZ
VVgydXRmLy9wTHRoSHJ4M3BSdy9iMQo0L2E0eE8yLy92V3YyeXdLdWYzMjI0Y0gyNzdnbVRObjJu
MzMzZGYrN2tjUHRoLzkrOUgyMExNM3RmMkg5N2NQL3UxTjdjNFQxN1VqCmgxNDVBdEkzT0lzSE90
ZVBsdlFuVmV0aGFtWDI4blYvNUxhMTBoOHdrbFIvMFBWWTVkeFdCNGtHejdXVmVKTDJqN2paK3Z4
OC8zaisKZVAzdyt1bm5oNStmOFRwd0xlNC9yUFhSYmZhZG5kamZPWDNtZlB2UDN6M2Zmbjdmaysw
LzduMnAzZi9JYysyekh6M1hQdkR1NDIzZgp2bjNEem1GZnpJWEFaQUt4Z3ovdTVNZDE3T2pIUjRT
UXVNVDFJNDg4TW56LzNYbm5uY09SdWZIQlkvOS9YSGU4YmJ6ZW5nM0cyNTU4Cjhza2hPNHhmajlm
enRoSDNqL2RGVGFkT25XcXpTRVNSZE9JSk1SWVE0ZVBoaHg5dS8vRFQrOW9QSGpqZWZuUG0xclp5
MDZ4OTZJTzMKdEkvZWRhd2Qyci9XUTBmZldpLzRYTjlReng2dFArLzZQLzFRWXdTUWZ0MWJhV3Y5
L3RYK2pPeFhMWDRwc05XWDYxRWxGdXhmOS9XRwoyN2JhMmY2SjlmbjUvdkg4OGZyaDlkUFBEejgv
cjlYOWgxZDJpNGI5bWZoZDhwdHZPOXdPM25pZy9mMC8vcUU5OE15KzFuNzJaSHZUCkcwNjNPOTU2
cE8zZnYzL1k5K3FMdVJDWVJDQjI3R01uUHo3aWFFWjhIZGV4Yno5K3hOc3Bmdm5MWDdZalI0NjBF
eWRPREVma3hvQVIKNjQyZlg2bWdlRXZHK0xhTkt5MDdiamV1NHhJMVJQWVlUc0dLTCtMSkVBOGNC
Y2RwVjcvNHhTL2F6eDljYmIvWmVITmI2VStnbzBmMwp0WnV1WHgrZU1KdjltUlZQcnQ1bUR4VHhV
dEhhbVo0dyt0TnJDQnFyczhnaXcwdElXKzBMeHR0RnR2cjlzWFNzMjY5NitBaWtsZGJQCkFPdGZy
MWlmbis4Znp4K3ZILzNGMU91bm54OStmbDZiK3cvREwxa2poUXlYbDMrNWV2em9lanR5L0dCN1py
YldIbmpxeHZhRGYzbTYKL2RYdHg0ZWR0OWU2QXpkdTBUV0J5d21NQVNTdXgvQVIxM0dRSWI3WDRw
U3NDQTdQUFBOTSs5V3ZmdFd1dSs2NmRzc3R0MXdJd2hlSApqemh0NjN2ZisxNzc3R2MvKzZxSGpi
ZHZYTHg4TFBUTmIzNnpmZXBUbjJxSERoMjZzTTY0WEZ4SENJbk1FZXYzczZkVzJ2UFBQejhVCkVr
cy85OXh6dzBlOHdlVGhGOS9VVm8vMUo4K3gvZTNZZGV2dDhlZGJlK3FGclg0RVpMV3Q5WkF4UE0v
NkFZMk5mZ1FqZ3MxbS8vVmwKSElKc1orTUh5R3FMTTdIaTY5WHpMNmV2Y3hGQ3R2cjdUT0tCK20x
bnpzVWIzZnViVVhvb3NUNC8zeitlUDE0L3ZINzYrZUhuNTdXNgoveEFuZUt5c0RuczR3eGtmc1cv
ejVQTmI3ZGlSMmJEZjgxemYzL25YMzY4T08yQngxc240aTkvWUpYSWhzS3pBOWdBeXZ0RjdQQUlT
CnAxL0YvWWNQSHg0K25uMzIyUmJ2NDRqOS82TkhqMTRJSVdNTlAvN3hqNGN3RWFkYWZlNXpueHR2
dm5BOWJ2ZkNEYTk4OHAzdmZLZjkKNUNjL0dVTEx4ejcyc1l2dkhtcUl4NHpzTVR0dzRNRHc1cFJJ
UkpHT29xaTQ0K21ubjI1UHJQOTFPM0owZjd2aDJMNGVRUGIxTjUrdgp0SDkrdUtlVzFjMSthbFhF
ajVlRFI1eFVGVSswZUkvSGFuL1B4L3ErbnJUYVpqOEZxd2VRL2pIcnlYK3RoNVBOelg0NHFIK2M3
K0VrCk1PTFVyWTI0N1pVakk5Ym41L3ZIODhmcmg5ZFBQei84L0x3Vzl4LzZydFB3aTluNExlKzVz
eHQ5SHllT2dtejJBTExlVnVKVWtINDYKek85Zk9OcmlOUGZZM3hKQVhyVi82b1lsQk1ZQUV1RWdQ
c1kzb2NjK2ZYekUvZkUvWWNYM1hlenpSd2dlOS9rUEhqdzQzUDdRUXcrMQpyMy85NnkydXgxT214
dmVRYkM4dHRuV3AyMk9kSjU1NG9uMzFxMTl0UC96aEQ5c1h2dkNGOXJhM3ZXM1lWaHoxaUlNY2NX
UWxzc2NzCkNvakRNNUZJNGhETldGeDh2ZjlnYThmNjRjTTQrbkg4NklFV0JhNzNNREdiOVZPeGV0
QllXZTFITTNvUi9RQlBEeExuMnF5L1l1enIKejdHMW5pVGlPTWRhLzNWbXZQMDhibC92VDdaNGM5
Wm1YMjZ6UHluUDk0OElJR2MzK25scWZXbnI4L1A5NC9uajljUHJwNThmZm41ZQpxL3NQc2IrejJu
Znd0czcxOE5GL0tidXhjYWFkUGYxU085TlBOVjlaMldqbk45YmJjLzNzajloeGkzMnQyT2VLL1M4
WEFsTUlqQUVrCnJpT0FqS2RKalVFaWJodFArNHYzWUVRSWlFc0Vndmk0OTk1NzI5ZSs5clZYbGZM
NDQ0Ky82cllJTUplNlBjTDFlTG4vL3Z2Ymw3LzgKNWZiRkwzNnh2ZTk5N3hzQ1VOUXl2dTk4RnNW
RUNCbXZvL0FvT2dwNy9lenh0bjdnNW5iMDRMNTI5SEFQSUljT3R3UDcrN0o5K1RoVgpJdEorWDd3
ZndYajVpTVo2UCtkcXZUK1o0bWpIRUR6NjV4RlVacStjbXRVelIzL2k5WSsrVGh5a0hBTEoyYzIy
c1dYOWVFSGk1L3ZICjg4ZnJoOWRQUHovOC9PejdEZGZnL3NOYS82VnMvNjk1K241UjMvbnJSMERP
bmxsdHA5ZjdmL0p6K3NXKzc3UFZOZzdPMnZWbm4rMzcKUk1lR2ZTNEJaTnhWZFQyRlFPemN4ejU4
Zk1STy9uamtZN3c5am9pTVlTVGVveEg3L3JGTVhPTDJEMzNvUSsxMXIzdGQrOFkzdnRGKworOXZm
RHJmSFAzSEU1T0pMckh1cDI3Y0g2aE1uVHJUUGYvN3pGNDZBakxYRlk4YjMvbkFFSkRZU0s4VjFM
QkJ2RUxueHhodmI2NTc0ClhUdHo0SzdoUFIrSER1MXZSL3RwV0ljT0grcFBubjZxVUx5M0l3Skly
Nm9IL2Y2bThoNU0rdGZ4RVcraWpOOW14eEhIK0M5NjEvcWYKRFluVEltUFp6ZjZiZ0ZoK3VJN3dz
alhyaHlpdHo4LzNqK2VQMXcrdm4zNSsrUGw1N2U0LzlOMmZ2dDh6NjZlYTk0K04vZTMwUyt2dAp4
ZFA5REpOK1N2cnBmaGprNElHMWRtTGwyZjZlMnpkZUNDRGpEbUJmMVlYQVVnSmowSWo5K1BIN2Fy
d3Rmc2tkbjhmK2ZSeWxpRC9CCk1RYVFXRGJXaWNzNzN2R085cFd2ZktYOTdHYy9hOS82MXJjdW5C
MTFjV0hqZ1l1TGI0OHNFVzl1Lzh4blB0TSs4cEdQREtlQmpkdVAKeDQ4NllwbFlmd2dnd3lldm5C
YzJGdkhXdDc2MTNmclFUOXVqcHg1bzZ6ZCtzQjNvUHhrUDl2Qng2THBJUTYydi9QSlJqUGhmSCtL
bwpSb1NLZm1aV2l6OVJHT0drdncxa09CZXloNXgrTk9UbDk0TEVVWTkrd0dNNCt0SFB2Qm9PVWNh
Nkc5Ym41L3ZIODhmcmg5ZFBQei84Ci9MeUc5eC82NzE3N3Fla3YvNEoxcy85blBHdnJmV2VwLzhH
emMyZFB0eGZYWiszSUN3KzA5OTkrZm5qVDcvYWR2NzZhQzRGSkJPSW8KUjF4aVp6OTI5R1BuZnd3
aFl3Q0owNjN1dXV1dUM2ZGdqY3VNNjhUMUp6N3hpZmJoRDMrNGZmdmIzNzdra1k1NE0vdWxqb0I4
OHBPZgpiSi8rOUtlSEVCTGJIY05IWkl2WWJweDZHQ0ZreUIzanFWZmorWWhSZUJUOWdROThvRDM0
NElOdDg3ZjN0ZE9QOWpkUUhmK2I0UThHCjlxT0pRL2lZOWVkVmhJdisvcXIrQndqN0U2NEhpbjUy
Vmx2cktTT0NTRDhBMG8rQzlJOSt2UkxYL1prWlllTkF2NytmNGRVMmVuQ0oKUUJKSFFzNUdpTEUr
UDk4L25qOWVQN3grK3ZuaDUrYzF1djhRZjF4NURDQWJQWURFRVpHTjAvMC9sWWo5b01mdWIrODg4
ci90M1hlOAp2ZDF3d3czRGpsanNhN2tRbUVvZ2R2REhnd2l4emRqNUg2L2p2amp5RWY4Tjc4MDMz
OXplOWE1M0RTRmdXT0NWZjJLWmNaMjRLZDZLCjhhVXZmV25IYmVQeXg0NGR1eEJneHR2aWVsdyt0
alZlNHZQeFl6d0NNcHlDRldscC9CalRVaFFRZjJMOTR4Ly9lTnY0L3ZmYkkzLzgKcDNicTNrZmEy
VGUvdDUzN2kvZTE2Mjg1M3RiNiswdzI0ZzkvOUVzOFRoelpPTi9mejdLdlA1L09SZkx2ZlcvMDRC
R0JKUXdpbE1RVApNbExIbWI1c1BEUGpUVnBuK20zeEJ3bXR6OC8zaitlUDF3K3ZuMzUrK1BsNXJl
NC9ESEdpNzg4TSswUjlIK21wL3p2Vm52cnYva3ZjClB6elE3cnp1cGZiK2Q3NnQzWGJiYlJmK1Jr
SzhLZGlGd0ZRQzQwNStoSkQ0M29xZC9mSE42SEhxVmZ6blVyRy8vNTczdkdmNHIzakgKeDQzMVly
Ly80dXZ4L2t0ZHh4R1FLd1hvN2R1THo2T3VlUHo0UEs1blVWeDh4SVBIOVhpSk85Lys5cmNQRHhE
dmpILzAwVWZiaS8vegp2ZmJNZzk5c2ovZEd4ZzF2VDB2anVxNEpFQ0JBZ0FBQkFsVUY0cXlTK0o5
RGI3MysrbmJyN2JlMkV5ZnU2aDhuMnZYOTY5aHhHL2U5CnF2cm9lM3FCMkMrUFMzeHZ4YzUrL0lk
UzhSSGhJLzdYcWppaWNjY2Rkd3hIUUNLY1hId1o5K3N2dnYxU1g4ZjdQQzYxalVzdEc5dU4KajZo
cERFZFI0eXorSzY3NFl5UVJPTGFmenpXdUVFK1llTE5LQkpCVHAwNE56Y1FEak1sbisxR1RTejJ3
MndnUUlFQ0FBQUVDVlFUaQpGN094YnhTbm1VUUlpVC8wRnFlc3hFNWIzRGJ1SUZieDBPZlZFWWlk
KyswNyttTUFpVWQvNHh2Zk9Id1B4dmRsN1BOUGNWbGtPeGVICmo4Z2UvdzlNTXhNNkt0alRsUUFB
QUFCSlJVNUVya0pnZ2c9PQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86335</attachid>
            <date>2011-03-21 11:00:00 -0700</date>
            <delta_ts>2011-04-26 12:39:50 -0700</delta_ts>
            <desc>updated per Simon&apos;s review </desc>
            <filename>newpatch_2.txt</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64"></data>

          </attachment>
      

    </bug>

</bugzilla>