<?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>83405</bug_id>
          
          <creation_ts>2012-04-06 15:41:33 -0700</creation_ts>
          <short_desc>REGRESSION(r105057): Infinite loop inside SVGTextLayoutEngine::currentLogicalCharacterMetrics</short_desc>
          <delta_ts>2012-05-16 00:20:40 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>86251</dependson>
          <blocked>86166</blocked>
    
    <blocked>86253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>597747</commentid>
    <comment_count>0</comment_count>
      <attachid>136076</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-06 15:41:33 -0700</bug_when>
    <thetext>Created attachment 136076
repro

Using the attached testcase, hover over one of the points in the graph. WebKit spins inside SVGTextLayoutEngine::currentLogicalCharacterMetrics, forever.

&lt;rdar://problem/10853526&gt;

I&apos;ll attach a sample momentarily. I believe this is a regression from Niko&apos;s text engine rework, but I have to re-determine which of the couple of patches broke this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597749</commentid>
    <comment_count>1</comment_count>
      <attachid>136078</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-06 15:44:05 -0700</bug_when>
    <thetext>Created attachment 136078
sample</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598022</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-08 00:30:29 -0700</bug_when>
    <thetext>Here&apos;s the spin, if this makes it blindingly obvious what&apos;s wrong. It&apos;s hard to reduce because of highcharts being so complicated.

Start here:

bool SVGTextLayoutEngine::currentLogicalCharacterMetrics(SVGTextLayoutAttributes*&amp; logicalAttributes, SVGTextMetrics&amp; logicalMetrics)
{
    Vector&lt;SVGTextMetrics&gt;* textMetricsValues = &amp;logicalAttributes-&gt;textMetricsValues();
    unsigned textMetricsSize = textMetricsValues-&gt;size();
    while (true) {
        if (m_logicalMetricsListOffset /* 0 */ == textMetricsSize /* 0 */) {
            if (!currentLogicalCharacterAttributes(logicalAttributes)) /* jump below; always returns true */
                return false;

            textMetricsValues = &amp;logicalAttributes-&gt;textMetricsValues() /* this never changes */;
            textMetricsSize = textMetricsValues-&gt;size() /* 0 */;
            continue;
        }
        ...
    }
    ...
}

bool SVGTextLayoutEngine::currentLogicalCharacterAttributes(SVGTextLayoutAttributes*&amp; logicalAttributes)
{
    if (m_layoutAttributesPosition /* 0 */ == m_layoutAttributes.size() /* 4 */)
        return false;

    logicalAttributes = m_layoutAttributes[m_layoutAttributesPosition]; /* m_layoutAttributesPosition never changes so this is always the same */

    if (m_logicalCharacterOffset /* 0 */ != logicalAttributes-&gt;context()-&gt;textLength() /* 1 */)
        return true;

    ...
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598566</commentid>
    <comment_count>3</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-04-09 13:29:34 -0700</bug_when>
    <thetext>*** Bug 83479 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618484</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-08 06:58:49 -0700</bug_when>
    <thetext>I have a new reduction without high charts usage (took me a day to reduce this!).
Patch coming today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618662</commentid>
    <comment_count>5</comment_count>
      <attachid>140752</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-08 11:40:17 -0700</bug_when>
    <thetext>Created attachment 140752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618676</commentid>
    <comment_count>6</comment_count>
      <attachid>140752</attachid>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-05-08 11:53:53 -0700</bug_when>
    <thetext>Comment on attachment 140752
Patch

Always good when the person that wrote the code comes back to fix the code. :-) Much better than our piecemeal fixes. Could you please make sure that there are no Skipped tests from previous security patches in this code (changes from Philip or myself)? I want to be sure that we do have maximal test coverage.

FWIW, I would r+ this but I am not allowed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618698</commentid>
    <comment_count>7</comment_count>
      <attachid>140752</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-08 12:12:36 -0700</bug_when>
    <thetext>Comment on attachment 140752
Patch

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

&gt; Source/WebCore/rendering/svg/RenderSVGInlineText.cpp:86
&gt; +    textRenderer-&gt;subtreeChildWasDestroyed(this, affectedAttributes);

This function doesn’t seem to be named right. As I understand it, at this point, the subtreeChild was not yet destroyed. It won’t be destroyed until after we return.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:122
&gt; +static inline void recursiveUpdateMetrics(RenderObject* start, SVGTextLayoutAttributesBuilder&amp; builder)
&gt; +{
&gt; +    if (start-&gt;isSVGInlineText()) {
&gt; +        builder.rebuildMetricsForTextRenderer(toRenderSVGInlineText(start));
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    for (RenderObject* child = start-&gt;firstChild(); child; child = child-&gt;nextSibling())
&gt; +        recursiveUpdateMetrics(child, builder);
&gt; +}

There is no need to write a function like this recursively. It can be written iteratively using the nextInPreOrder and nextInPreOrderAfterChildren functions.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:204
&gt; +    unsigned position = m_layoutAttributes.find(currentLayoutAttributes);

This should be size_t, not unsigned.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:205
&gt; +    ASSERT(position != notFound);

This assertion will never fire on a 64-bit system because position is a 32-bit unsigned and notFound is a 64-bit size_t constant.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:221
&gt; +static inline void recursiveCollectLayoutAttributes(RenderObject* start, Vector&lt;SVGTextLayoutAttributes*&gt;&amp; attributes)
&gt; +{
&gt; +    for (RenderObject* child = start-&gt;firstChild(); child; child = child-&gt;nextSibling()) {
&gt; +        if (child-&gt;isSVGInlineText()) {
&gt; +            attributes.append(toRenderSVGInlineText(child)-&gt;layoutAttributes());
&gt; +            continue;
&gt; +        }
&gt; +
&gt; +        recursiveCollectLayoutAttributes(child, attributes);
&gt; +    }
&gt; +}

Same comment about the fact that this can be written non-recursively easily using nextInPreOrder.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:242
&gt; +    unsigned size = affectedAttributes.size();

Should be size_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618702</commentid>
    <comment_count>8</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-08 12:14:30 -0700</bug_when>
    <thetext>It looks ok to me, I think the tests should have a line describing what it does specifically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619214</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-09 00:00:59 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGInlineText.cpp:86
&gt; &gt; +    textRenderer-&gt;subtreeChildWasDestroyed(this, affectedAttributes);
&gt; 
&gt; This function doesn’t seem to be named right. As I understand it, at this point, the subtreeChild was not yet destroyed. It won’t be destroyed until after we return.
No that&apos;s not correct. There are both subtreeChildWillBeDestroyed, and subtreeChildWasDestroyed.
RenderSVGInlineText::willBeDestroyed, uses it like this:
    Vector&lt;SVGTextLayoutAttributes*&gt; affectedAttributes;
    textRenderer-&gt;subtreeChildWillBeDestroyed(this, affectedAttributes);
    RenderText::willBeDestroyed();
    textRenderer-&gt;subtreeChildWasDestroyed(this, affectedAttributes);

Once subtreeChildWasDestroyed() is called, the RenderSVGInlineText is no longer part of the tree.
I could name it subtreeChildRemovedFromTree, but I thought it would be more consistent this way.
If you still have concerns with it, I can fix it in a follow-up patch.


&gt; &gt; +static inline void recursiveUpdateMetrics(RenderObject* start, SVGTextLayoutAttributesBuilder&amp; builder)
&gt; There is no need to write a function like this recursively. It can be written iteratively using the nextInPreOrder and nextInPreOrderAfterChildren functions.
Excellent suggestion! I&apos;m used to this recursive idiom since ages, I forgot that there are iterative ways to achieve the same goal. Going to play with that now, to avoid all the recursiveCollect/recursiveUpdate... methods.
 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:204
&gt; &gt; +    unsigned position = m_layoutAttributes.find(currentLayoutAttributes);
&gt; 
&gt; This should be size_t, not unsigned.
Good catch!

&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:205
&gt; &gt; +    ASSERT(position != notFound);
&gt; 
&gt; This assertion will never fire on a 64-bit system because position is a 32-bit unsigned and notFound is a 64-bit size_t constant.
Yickes! I just checked the rest of the SVG code for this, and fortunately the existing code is correct, and always compares the result of finds() with size_t&apos;s. Glad you spotted this one.

&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:221
&gt; Same comment about the fact that this can be written non-recursively easily using nextInPreOrder.
Fixing.

&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:242
&gt; &gt; +    unsigned size = affectedAttributes.size();
&gt; 
&gt; Should be size_t.
You&apos;re saying this should be size_t. Last time I&apos;ve heard that all of WTF/ is going to move to unsigned, and we shouldn&apos;t use size_t anymore. I used to store the result of size() in size_t&apos;s until I was told to stop that.
Can&apos;t remember who said that though and on which bug report, but I can look it up.

I&apos;ll fix for this for now as well.

(In reply to comment #8)
&gt; It looks ok to me, I think the tests should have a line describing what it does specifically.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619220</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-09 00:15:08 -0700</bug_when>
    <thetext>I&apos;ve included all fixes Darin &amp; Rob asked for - landing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619222</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-09 00:16:40 -0700</bug_when>
    <thetext>Committed r116498: &lt;http://trac.webkit.org/changeset/116498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620672</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-10 10:12:44 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt;     Vector&lt;SVGTextLayoutAttributes*&gt; affectedAttributes;
&gt;     textRenderer-&gt;subtreeChildWillBeDestroyed(this, affectedAttributes);
&gt;     RenderText::willBeDestroyed();
&gt;     textRenderer-&gt;subtreeChildWasDestroyed(this, affectedAttributes);

Let me reiterate for later fixing: The names here are not good. At no point is this code calling a function named “destroy” and yet somehow right after calling a “will be destroyed” it’s correct to call “was destroyed”. Given this, one of the names is wrong. I don’t know which is wrong. Either the “will be destroyed” function does destruction despite its name or the “was destroyed” function is called before destruction despite its name.

&gt; If you still have concerns with it, I can fix it in a follow-up patch.

I do have concerns about these names. We should figure out which name is misleading.

&gt; Can&apos;t remember who said that though and on which bug report, but I can look it up.

Please do find that. I’d like to learn more about the plan and weigh in on a good way to do the transition.

I agree that we may, at this point, be using 64-bit integers in many places where 32-bit integers would suffice. A new approach would be OK with me, but this has to be done carefully to avoid introducing bugs like buffer overflows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621952</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 14:01:22 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 86251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622881</commentid>
    <comment_count>14</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-05-14 05:59:53 -0700</bug_when>
    <thetext>This patch was rolled out in r116801: &lt;http://trac.webkit.org/changeset/116801&gt;

See https://bugs.webkit.org/show_bug.cgi?id=86251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623972</commentid>
    <comment_count>15</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 06:18:59 -0700</bug_when>
    <thetext>I&apos;ve reworked this patch, fixing the security problems it introduced and Darins comments regarding subtreeChildWillBeDestroyed/WasDestroyed. I&apos;m no longer relying on willBeDestroyed(), but instead listen for removeChild() calls, handling the layout attributes updating much earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624021</commentid>
    <comment_count>16</comment_count>
      <attachid>141956</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 06:52:55 -0700</bug_when>
    <thetext>Created attachment 141956
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624067</commentid>
    <comment_count>17</comment_count>
      <attachid>141956</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 07:31:18 -0700</bug_when>
    <thetext>Comment on attachment 141956
Patch v2

Oops, Patch v2 doesn&apos;t contain the new high charts testcase, reuploading in a minute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624074</commentid>
    <comment_count>18</comment_count>
      <attachid>141967</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 07:42:00 -0700</bug_when>
    <thetext>Created attachment 141967
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624106</commentid>
    <comment_count>19</comment_count>
      <attachid>141967</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-15 08:20:59 -0700</bug_when>
    <thetext>Comment on attachment 141967
Patch v3

Attachment 141967 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12685788</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624129</commentid>
    <comment_count>20</comment_count>
      <attachid>141980</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 08:39:05 -0700</bug_when>
    <thetext>Created attachment 141980
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624130</commentid>
    <comment_count>21</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 08:39:30 -0700</bug_when>
    <thetext>Patch v4 will fix release builds as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624156</commentid>
    <comment_count>22</comment_count>
      <attachid>141980</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-15 08:58:44 -0700</bug_when>
    <thetext>Comment on attachment 141980
Patch v4

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

Tests look good. Some minor points to fix.

&gt; Source/WebCore/ChangeLog:10
&gt; +        the managment of all caches (text positioning element cache / metrics map / layout attributes) in

Typo: management.

&gt; Source/WebCore/rendering/svg/RenderSVGBlock.h:38
&gt; +    virtual void willBeDestroyed();

Better use OVERRIDE.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:203
&gt; +#ifndef  NDEBUG

Two spaces.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:204
&gt; +    // Verify that m_layoutAttributes only differs by maxium one entry.

Typo: maximum

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:214
&gt; +#ifndef NDEBUG

Could the method be debug-only?

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:293
&gt; +        ASSERT(!m_layoutAttributesBuilder.numberOfTextPositioningElements());

We are doing this a lot, a helper method possible?

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:376
&gt; +        // If the root layout size changed (eg. window size changes) or or the transform to the root

or or? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624166</commentid>
    <comment_count>23</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 09:12:23 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 141980 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141980&amp;action=review
&gt; 
&gt; Tests look good. Some minor points to fix.
Thanks, fixed all typos.

&gt; Could the method be debug-only?
I&apos;d need to guard all call-sites with #ifndef NDEBUG then, I&apos;d rather let the compiler optimize away the empty inline function call in release builds.

&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:293
&gt; &gt; +        ASSERT(!m_layoutAttributesBuilder.numberOfTextPositioningElements());
&gt; 
&gt; We are doing this a lot, a helper method possible?
Good idea, will do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624173</commentid>
    <comment_count>24</comment_count>
      <attachid>141986</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 09:19:36 -0700</bug_when>
    <thetext>Created attachment 141986
Patch v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624196</commentid>
    <comment_count>25</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 09:55:16 -0700</bug_when>
    <thetext>I&apos;d like to hear both Darins &amp; Stephens okay on this before landing :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624224</commentid>
    <comment_count>26</comment_count>
      <attachid>141986</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-15 10:19:29 -0700</bug_when>
    <thetext>Comment on attachment 141986
Patch v5

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

This looks pretty good to me. I&apos;ll wait for comments from others though.

&gt; Source/WebCore/rendering/svg/RenderSVGText.h:80
&gt; +    virtual void removeChild(RenderObject*);

I think this needs OVERRIDE? Please check others as well.

&gt; Source/WebCore/rendering/svg/RenderSVGText.h:93
&gt; +    bool shallHandleSubtreeMutations() const;

shall sounds a bit strange. How about canHandleSubtreeMutations()?

&gt; Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.cpp:-30
&gt; -#define DUMP_TEXT_LAYOUT_ATTRIBUTES 0

Isn&apos;t this a helpful debug tool anymore?

&gt; Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h:46
&gt; +    bool buildLayoutAttributesForWholeTree(RenderSVGText*);

I am not sure about WholeTree in the name, can it be improved?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624436</commentid>
    <comment_count>27</comment_count>
      <attachid>141986</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-15 13:00:07 -0700</bug_when>
    <thetext>Comment on attachment 141986
Patch v5

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

A lot to review here, but it all looks good to me. r=me

&gt; Source/WebCore/rendering/svg/RenderSVGInline.cpp:136
&gt; +    RenderSVGText* textRenderer = RenderSVGText::locateRenderSVGTextAncestor(this);
&gt; +    if (!child-&gt;isSVGInlineText() || !textRenderer) {
&gt; +        RenderInline::removeChild(child);
&gt; +        return;
&gt; +    }

Seems a shame to call RenderSVGText::locateRenderSVGTextAncestor when !child-&gt;isSVGInlineText(). I suggest restructuring the code so we don’t do that. One way is to write this:

    RenderSVGText* textRenderer = child-&gt;isSVGInlineText() ? RenderSVGText::locateRenderSVGTextAncestor(this) : 0;
    if (!textRenderer)

But there may also be a clean way to write it.

&gt; Source/WebCore/rendering/svg/RenderSVGInline.h:62
&gt; +    virtual void removeChild(RenderObject*);

Please add OVERRIDE.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:184
&gt; +    if (newLayoutAttributes.isEmpty()) {
&gt; +        m_layoutAttributes.clear();
&gt; +        return;
&gt; +    }

This special case does not seem more optimal than falling into the general case below. I suggest leaving it out unless there is something I am missing.

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGText.h:80
&gt;&gt; +    virtual void removeChild(RenderObject*);
&gt; 
&gt; I think this needs OVERRIDE? Please check others as well.

Please add OVERRIDE.

&gt; Source/WebCore/rendering/svg/RenderSVGText.h:81
&gt; +    virtual void willBeDestroyed();

Please add OVERRIDE.

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGText.h:93
&gt;&gt; +    bool shallHandleSubtreeMutations() const;
&gt; 
&gt; shall sounds a bit strange. How about canHandleSubtreeMutations()?

We normally use “should” for functions like this, and I think it would work fine here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624437</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-15 13:00:42 -0700</bug_when>
    <thetext>Rob and I reviewed, but I see now that Stephen did not yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624452</commentid>
    <comment_count>29</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-05-15 13:10:36 -0700</bug_when>
    <thetext>Chromium issues to close when this lands:
http://code.google.com/p/chromium/issues/detail?id=127722
http://code.google.com/p/chromium/issues/detail?id=127679
http://code.google.com/p/chromium/issues/detail?id=127418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624506</commentid>
    <comment_count>30</comment_count>
      <attachid>141986</attachid>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-05-15 13:42:25 -0700</bug_when>
    <thetext>Comment on attachment 141986
Patch v5

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

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGInline.cpp:136
&gt;&gt; +    }
&gt; 
&gt; Seems a shame to call RenderSVGText::locateRenderSVGTextAncestor when !child-&gt;isSVGInlineText(). I suggest restructuring the code so we don’t do that. One way is to write this:
&gt; 
&gt;     RenderSVGText* textRenderer = child-&gt;isSVGInlineText() ? RenderSVGText::locateRenderSVGTextAncestor(this) : 0;
&gt;     if (!textRenderer)
&gt; 
&gt; But there may also be a clean way to write it.

I&apos;m with Darin on this.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:172
&gt; +        return;

It would be clearer to move documentBeingDestroyed() into shallHandleSubtreeMutations(), if we can. See comment below where this is used again.

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:184
&gt;&gt; +    }
&gt; 
&gt; This special case does not seem more optimal than falling into the general case below. I suggest leaving it out unless there is something I am missing.

I also find this confusing. It seems like the logic is such that newLayoutAttributes can only be empty if the child is not inline text and there are no other children that are. Is that right? But then shouldn&apos;t you fall through as Darin suggests and then assert that m_layoutAttributes is already empty?

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:241
&gt; +        return;

Could you explain why it is not necessary here to check documentBeingDestroyed? Why execute the next few lines before checking?

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:375
&gt; +

Looks like this could be cleaned up to share code with updateFontInAllDescendents, which would make it clearer and make it easier to avoid future problems.

&gt;&gt;&gt; Source/WebCore/rendering/svg/RenderSVGText.h:93
&gt;&gt;&gt; +    bool shallHandleSubtreeMutations() const;
&gt;&gt; 
&gt;&gt; shall sounds a bit strange. How about canHandleSubtreeMutations()?
&gt; 
&gt; We normally use “should” for functions like this, and I think it would work fine here.

I&apos;m with Darin.

&gt;&gt; Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h:46
&gt;&gt; +    bool buildLayoutAttributesForWholeTree(RenderSVGText*);
&gt; 
&gt; I am not sure about WholeTree in the name, can it be improved?

buildLayoutAttributesForSubtree? That seems to be what it&apos;s doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624516</commentid>
    <comment_count>31</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-15 13:50:52 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 141986 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141986&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h:46
&gt; &gt;&gt; +    bool buildLayoutAttributesForWholeTree(RenderSVGText*);
&gt; &gt; 
&gt; &gt; I am not sure about WholeTree in the name, can it be improved?
&gt; 
&gt; buildLayoutAttributesForSubtree? That seems to be what it&apos;s doing.

That was my first thought as well, I would be ok with that name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625032</commentid>
    <comment_count>32</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-15 23:59:50 -0700</bug_when>
    <thetext>Thanks Rob, Darin &amp; Stephen for your comments. Some comments regarding issues, that I did not fix:

&gt; &gt; Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.cpp:-30
&gt; &gt; -#define DUMP_TEXT_LAYOUT_ATTRIBUTES 0
&gt; 
&gt; Isn&apos;t this a helpful debug tool anymore?
While this might be useful, SVGCharacterData::dump() doesn&apos;t exist anymore, so this code doesn&apos;t build (as usual with ifdef&apos;ed code after a while..). We can always resurrect this code from the Attic (or for the not so old school ppl: from SVN history ;-)
 
&gt; &gt; Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h:46
&gt; &gt; +    bool buildLayoutAttributesForWholeTree(RenderSVGText*);
&gt; 
&gt; I am not sure about WholeTree in the name, can it be improved?
Yes, good idea, you&apos;re on the same track as Stephen - I&apos;ll name it buildLayoutAttributesForSubtree.

(In reply to comment #30)

&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:172
&gt; &gt; +        return;
&gt; 
&gt; It would be clearer to move documentBeingDestroyed() into shallHandleSubtreeMutations(), if we can. See comment below where this is used again.
I wantd to do that as well, though I can&apos;t fold the documentBeingDestroyed() check into shallHandleSubtreeMutations() because subtreeChildWillBeRemoved() still needs to update the m_layoutAttributes Vector even though the document is being destroyed, otherwise the assertion ASSERT(m_layoutAttribbutes.isEmpty()) in the RenderSVGText destructor will fire. I&apos;ve left it as-is.

&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:184
&gt; &gt;&gt; +    }
&gt; &gt; 
&gt; &gt; This special case does not seem more optimal than falling into the general case below. I suggest leaving it out unless there is something I am missing.
&gt; 
&gt; I also find this confusing. It seems like the logic is such that newLayoutAttributes can only be empty if the child is not inline text and there are no other children that are. Is that right? But then shouldn&apos;t you fall through as Darin suggests and then assert that m_layoutAttributes is already empty?

While Darins suggestions is valid and would work just fine, you&apos;re approach is even better. If the layout attributes are empty, _after_ calling subtreeChildWasAdded, then eg. a &lt;tspan&gt; element w/o children was added to the &lt;text&gt; subtree. The layout attributes stay (!) empty in that case. I can just ASSERT(m_layoutAttributes.isEmpty()) if newLayoutAttributes is empty.


&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:241
&gt; &gt; +        return;
&gt; 
&gt; Could you explain why it is not necessary here to check documentBeingDestroyed? Why execute the next few lines before checking?
I answered that above - m_layoutAttributes should always stay in-sync with the render tree state, even if the document is destructing (We need to avoid dangling pointers in the m_layoutAttributes vector).

&gt; &gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:375
&gt; &gt; +
&gt; 
&gt; Looks like this could be cleaned up to share code with updateFontInAllDescendents, which would make it clearer and make it easier to avoid future problems.
Good idea:
static inline void updateFontInAllDescendants(RenderObject* start, bool rebuildMetrics = false)
{
    for (RenderObject* descendant = start; descendant; descendant = descendant-&gt;nextInPreOrder(start)) {
        if (!descendant-&gt;isSVGInlineText())
            continue;
        toRenderSVGInlineText(descendant)-&gt;updateScaledFont();
        if (rebuildMetrics)
            m_layoutAttributesBuilder.rebuildMetricsForTextRenderer(text);
    }
}

&gt; &gt;&gt; Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h:46
&gt; &gt;&gt; +    bool buildLayoutAttributesForWholeTree(RenderSVGText*);
&gt; &gt; 
&gt; &gt; I am not sure about WholeTree in the name, can it be improved?
&gt; 
&gt; buildLayoutAttributesForSubtree? That seems to be what it&apos;s doing.
Agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625038</commentid>
    <comment_count>33</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-16 00:05:56 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; Good idea:
&gt; static inline void updateFontInAllDescendants(RenderObject* start, bool rebuildMetrics = false)

Yikes, wrong paste. m_layoutAttributesBuilder is not available in a static function. I&apos;m going for:
static inline void updateFontInAllDescendants(RenderObject* start, SVGTextLayoutAttributesBuilder* builder = 0)
{
    for (RenderObject* descendant = start; descendant; descendant = descendant-&gt;nextInPreOrder(start)) {
        if (!descendant-&gt;isSVGInlineText())
            continue;
        RenderSVGInlineText* text = toRenderSVGInlineText(descendant);
        text-&gt;updateScaledFont();
        if (builder)
            builder-&gt;rebuildMetricsForTextRenderer(text);
    }
}

If there&apos;s a builder passed, metrics will be rebuilt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625060</commentid>
    <comment_count>34</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-16 00:20:40 -0700</bug_when>
    <thetext>Committed r117225: &lt;http://trac.webkit.org/changeset/117225&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>136076</attachid>
            <date>2012-04-06 15:41:33 -0700</date>
            <delta_ts>2012-04-06 15:41:33 -0700</delta_ts>
            <desc>repro</desc>
            <filename>currentLogicalCharacterMetrics_spin.zip</filename>
            <type>application/zip</type>
            <size>197078</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAFEEdUAAAAAAAAAAAAAAAAAVABAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvVVgMAGbP
Tk+JhGlP9QEUAFBLAwQUAAgACADail1AAAAAAAAAAAAAAAAAHgAQAHNwb2RfaXNzdWVfc2FuaXRp
emVkLy5EU19TdG9yZVVYDACKhGlPa89OT/UBFADtmMFKw0AQhmfTqBtU2IsgnhbPRRqo1YKHUCp4
FFrowYomRmigNKVJ6aFUo/gUvoUv4/PYNH+12HrwYqvOB8s3YbPJbA47uyEiUen7NpEiIkmZRRos
QKLNYcAia4qirtcOvfHVi9dd/KyVI809RzcUUeQNZvNvB1FcKLwKI2eurW9Iy5JbzUbQ8cNBJex3
/Oii1goHtcC/9dze5SSO3bgfVdzepOfcjVse4noYtsdxE3c3Aj9uXam94dAuHxXz2i4fj/J6aBeK
dl4flkqjkSWlpZ7lzv7ByVndvbtPHh6RrUDa25+m8fRzX4xhGIb57aCYyM3lpsEwzAqSrg8aduAk
s0C/AZszYxSsYQdOMgvcZ8AmLGEFa9iBk8xYtAQOHwJvnh5ehII17Hxrygzzb8hlUmn9P/36/M8w
zB9GmNVatULvB4I50lqrx+16OoBQzWl+E2BkPwt36aNfww6cZOaNAMMsizdQSwcI0m7SXGUBAAAE
GAAAUEsDBAoAAAAAAK8EdUAAAAAAAAAAAAAAAAAJABAAX19NQUNPU1gvVVgMADqFaU86hWlP9QEU
AFBLAwQKAAAAAACvBHVAAAAAAAAAAAAAAAAAHgAQAF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRp
emVkL1VYDAA6hWlPOoVpT/UBFABQSwMEFAAIAAgA2opdQAAAAAAAAAAAAAAAACkAEABfX01BQ09T
WC9zcG9kX2lzc3VlX3Nhbml0aXplZC8uXy5EU19TdG9yZVVYDACKhGlPa89OT/UBFABjYBVjZ2Bi
YPBNTFbwD1aIUIACkBgDJxAbAfECIAbxLwExA1wFTuAYEhIEZYJ0zABiKzQljAhx0eT8XL3EgoKc
VL3C0sSixLySzLxUhkJ9AwMDQ2uTNJPUFAOLZGvfxMwcawNzSydLC2dHXXNnU1NdEycXE10LFyMX
XTcLEycDQzcjZydDZwYAUEsHCOad7n2IAAAA0gAAAFBLAwQKAAAAAABRBHVAAAAAAAAAAAAAAAAA
GQAQAHNwb2RfaXNzdWVfc2FuaXRpemVkL2Nzcy9VWAwAp89OT4mEaU/1ARQAUEsDBBQACAAIAPyK
XUAAAAAAAAAAAAAAAAAiABAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvY3NzLy5EU19TdG9yZVVYDAAV
305PrM9OT/UBFADtmL9OwzAQh3+XZghi8YLU0WMnJN7AqlokZl4AtXQABQL9M3TLA/JOYOd+LW0T
BhZa0fsk60tk38XJYPsCQIarxxvAASiglnTRQcHWItuxNDnmWOMaz3jHW3eukyPN/aqZ8QqzvfmX
qLCMdy94wmv0FAss7spqOimrCfST3cY2+Gxosl3EMcuYo4y5uiM+DiIMwzAM468RVXF53GkYhnGC
pPXB04Gu1cL+jM53Yhzt6UDXauG4jM7pgna0pwNdq7loCYsP4ZM3xYs42tPhV69sGGdDT+XS/j/+
uf43DOMfI/nofjTEtiBokfZaH9vDJgDczdE+BGT6s7CP735PB7pW20HAMI7FF1BLBwjLM8CEBwEA
AAQYAABQSwMECgAAAAAArwR1QAAAAAAAAAAAAAAAACIAEABfX01BQ09TWC9zcG9kX2lzc3VlX3Nh
bml0aXplZC9jc3MvVVgMADqFaU86hWlP9QEUAFBLAwQUAAgACAD8il1AAAAAAAAAAAAAAAAALQAQ
AF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVkL2Nzcy8uXy5EU19TdG9yZVVYDAAV305PrM9O
T/UBFABjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAfECIAbxLwExA1wFTuAYEhIEZYJ0zABiKzQl
jAhx0eT8XL3EgoKcVL3C0sSixLySzLxUhkJ9AwMDQ2uTNJPUFAOLZGvfxMwcawNzSydLC2dHXXNn
U1NdEycXE10LFyMXXTcLEycDQzcjZydDZwYAUEsHCOad7n2IAAAA0gAAAFBLAwQUAAgACAD5YxM/
AAAAAAAAAAAAAAAALgAQAHNwb2RfaXNzdWVfc2FuaXRpemVkL2Nzcy9qcXVlcnkuanFwbG90Lm1p
bi5jc3NVWAwAkYRpTya6Tk71ARQAzVbbjpswEP2VaKuVuhIgwm5IAKlSpUrtS5+6P2BgAm4cTI1z
W7T/XhtDsMHZXl7aBxT5zMX2zJnjeN9/1IRylyNWAG9r2mCOaRUzIIjjIyQZJZTF78IwTLa04u4W
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
Z3JhcGgvLkRTX1N0b3JlVVgMABXfTk9Rwk5P9QEUAO2XwUrDQBCG/42hRkSIN/G0Ry8KvkEoVfCq
d7FNi60kRJr24C0P6AP4AL6HzmZ/JSbpwVOLzlcmX9nOzG5ISbIAzHA9vQRiABG8gwP0EjE6BPRA
wtQ9VphhifImK9L+XsqO4a5dhDGmEs/N6zfJign8H+Na4uyjpq45whwLPMoxlRhLxQolLvDUqXxt
VR5vqCzlW9rXwdy2OuwjRyGrXSOTtbaz31rZp3V2IbO4YybznONFahfiVEZyOeel6yOfmXTtWUFw
3+o5kG5zyc678wfvrVxFUZTdxHhFh9tdhqIoO4i7P1g6oStvw98DOmzUxLSlE7ryNswL6JCO6Ji2
dEJX3rxpGW4+DGc23KGYmLZ08qtTVpR/w55X7J7/V5v3/4qi/GFMOLobDfG9IejgnrVW4uGrAD9f
BDgWMtc9ik8a45ZO6MpbXwQUZVt8AlBLBwif1ZqwTQEAAAQYAABQSwMECgAAAAAArwR1QAAAAAAA
AAAAAAAAACcAEABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9VWAwAOoVp
TzqFaU/1ARQAUEsDBBQACAAIAF2DXUAAAAAAAAAAAAAAAAAyABAAX19NQUNPU1gvc3BvZF9pc3N1
ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvLl8uRFNfU3RvcmVVWAwAFd9OT1HCTk/1ARQAY2AVY2dgYmDw
TUxW8A9WiFCAApAYAycQGwHxAiAG8S8BMQNcBU7gGBISBGWCdMwAYis0JYwIcdHk/Fy9xIKCnFS9
wtLEosS8ksy8VIZCfQMDA0NrkzST1BQDi2Rr38TMHGsDc0snSwtnR11zZ1NTXRMnFxNdCxcjF103
CxMnA0M3I2cnQ2cGAFBLBwjmne59iAAAANIAAABQSwMECgAAAAAAUQR1QAAAAAAAAAAAAAAAACcA
EABzcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9hZGFwdGVycy9VWAwA/spOT4mEaU/1ARQA
UEsDBBQACAAIANiK9D4AAAAAAAAAAAAAAAAwABAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3Jh
cGgvYWRhcHRlcnMvLkRTX1N0b3JlVVgMABXfTk9YcSdO9QEUAO2YvW7CMBRGvxsyROpiqR06euzS
SryBhQCpc1+gpbBUQamADt3ygLwT2LkfLW1AokMFgnuiq5PE9o2TwT8BIL2PcRdwAAqoJZ3soGC0
yLYsTY4qHiXmuMfL7lwnR+r7NaZNzxc/+j+O8R7vTTDDA94wfyyr11FZjaCfaxjjbtXQZLqJtWfM
ssBnvJoclGf5K49hGIZh/C+iKq6O2w3DME6QND54OtC1Wlie0flWG0d7OtC1Wlgvo3O6oB3t6UDX
ag5aws2H8MmbzYs42tPhT69sGBdDR+XS/D/Yv/83DOOMkbz/1O/ha0PQIs21PsbzpgE4m6O9CMj0
Z+Etvss9HehabQsBwzgWa1BLBwiJTZBtCAEAAAQYAABQSwMECgAAAAAArwR1QAAAAAAAAAAAAAAA
ADAAEABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9hZGFwdGVycy9VWAwA
OoVpTzqFaU/1ARQAUEsDBBQACAAIANiK9D4AAAAAAAAAAAAAAAA7ABAAX19NQUNPU1gvc3BvZF9p
c3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvYWRhcHRlcnMvLl8uRFNfU3RvcmVVWAwAFd9OT1hxJ071
ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwHxAiAG8S8BMQNcBU7gGBISBGWCdMwAYis0JYwI
cdHk/Fy9xIKCnFS9wtLEosS8ksy8VIZCfQMDA0NrkzST1BQDi2Rr38TMHGsDc0snSwtnR11zZ1NT
XRMnFxNdCxcjF103CxMnA0M3I2cnQ2cGAFBLBwjmne59iAAAANIAAABQSwMEFAAIAAgAYGQTPwAA
AAAAAAAAAAAAADoAEABzcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9hZGFwdGVycy9tb290
b29scy1hZGFwdGVyLmpzVVgMAJGEaU/juk5O9QEUAIVUUW/bOAx+969wgyCwdqqabPcUQygG7A67
w+2Gw/oW5IGWaFuFIxu23DTI/N9H2Y7jbi3uJZFIivxIfp/v3gXhZ5PlKofaNeHf38Kn92Ijfg+j
9+vN5nb94fbDmgXhl7J8KMuiCUFD5bAOgjBSLKSYdfhQ1o1DY8PP97Yx5PnHKLQNbsPj8SjyKblQ
5eGuGHzBu7sgSlurnCltxM5PUIeZPBqryyM38uYmE8sD1hnGS3x2aLUkw3D6/n32rkbX1jb8mjyi
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
8MoDWIFZQn/+Xx6JCA5zwyB0EgYnYTxTkZzDIozxI8IOdO8XhYu7VegQu4IvK11ZU0tbmKtoZozY
vMeQ6OLXr6JTF6PpAMUvD30kmLFdisIsazcMFZOR88WxVT/FPAe9tGmobm6ojEQgu5HqIsmGi7LM
N379sX0IrLnr5SumZ7c7fnUItu0Njdd2NUVE5yZp6rTOzkWdIi3Azuyw6XFv/Sr+Jt88XkSD+cU7
Jhfuf0IppA0oT3JcLaDdOF8W7avTXs56NidfZ/gvqbZ+QE/n9yRpcDH0bjdfdDtn74L7RV5fSz/B
pWuT4nHWvYypS9f7Sd27qmkCGg7+BVBLBwgk5ad5IwQAAPIJAABQSwMEFAAIAAgAYGQTPwAAAAAA
AAAAAAAAAEYAEABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9hZGFwdGVy
cy8uX3Byb3RvdHlwZS1hZGFwdGVyLmpzVVgMAJGEaU/juk5O9QEUAGNgFWNnYGJg8E1MVvAPVohQ
gAKQGAMnEBsB8QIgBvEvMRAFHENCgqBMkI4ZQGyFpoQRIS6anJ+rl1hQkJOqV1iaWJSYV5KZl8pQ
qG9gYGBobZJmkppiYJFs7ZuYmWNtYG7pZGnh7Khr7mxqqmvi5GKia+Fi5KLrZmHiZGDoZuTsZOjM
AABQSwcIx+D+BIUAAADSAAAAUEsDBBQACAAIAFEEdUAAAAAAAAAAAAAAAAAxABAAX19NQUNPU1gv
c3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvLl9hZGFwdGVyc1VYDAD+yk5PiYRpT/UBFABj
YBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAfECIAbxLzEQBRxDQoKgTJCOGUBshaaEESEumpyfq5dY
UJCTqldYmliUmFeSmZfKUKhvYGBgaG2SZpKaYmCRbO2bmJljbWBu6WRp4eyoa+5saqpr4uRiomvh
YuSi62Zh4mRg6Gbk7GTozAAAUEsHCMfg/gSFAAAA0gAAAFBLAwQUAAgACABgZBM/AAAAAAAAAAAA
AAAAKwAQAHNwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL2hpZ2hjaGFydHMuanNVWAwA3IRp
T+O6Tk71ARQApL15e9o41zj8P58i8d1SOwgC6TJTOypX9qRZ26RpU4b7d8kLS8JWAwkU+O7vOUeS
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
k0swFUvz2nUTBnLVDQSsQJbRPmuewHX3ZK0HSlRGuBdHL9KaD+Z2T1uZr3z5ktkJ6nsEb8sgiQsy
a7sgVoc+PD4sROt3ZP/GZ3+CvA7w1ZrysDaANVvXbGid/c9JWHsWZqLIARuqa1un23P7yGWx5abH
mRWXTT9am9nvKsAHha0ITVwrdndhb5fx0y6lmOwVnDfZv6Xd1P2PP23D/3V9tjvPD/Wrf+xOZzs4
7hndm7KYvI+KazniOQ6EULmF4TEKhTPBUAz2hHQtAlwkZh4ggQAUBjiOAPFXBbdYysMpM210cQip
WRRHqpkhjs7MDBxLYB3wTVkpvFOA89kzE1JAGgb1/vnkKFFsifUdgXJg1rkejTd/Sscq43WglvnF
GWqAX7AoCKAhfpxM0+boN/YbTEgBjSrtmn4jv3rYRLUntd/pA/EQUpB/Sh9RCt9vxDiVrTjxT3pk
N9L05q2J1V1nxbUNH/CTtWHm20Bj0ZdoFcjPYsSlS4iUpLYoaWhHc5B9AcF/MTm5gpFSH49+I79S
AcQKMhJBvwmPMHaj2fFgeqLf4zPkB7PcY5StAG/YRw4RHlB42me73/TiYnAJqEygGEAApz7hOME0
jI5/Iz8Zzcfmvu4hfQIuPo1DupIfbe5sftPtJMb7dg01T/8PUEsHCCypFkl9GAEAHfcDAFBLAwQU
AAgACABgZBM/AAAAAAAAAAAAAAAAOgAQAF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVkL2pz
L2dyYXBoLy5faGlnaGNoYXJ0cy5zcmMuanNVWAwAkYRpT+S6Tk71ARQAY2AVY2dgYmDwTUxW8A9W
iFCAApAYAycQGwHxAiAG8S8xEAUcQ0KCoEyQjhlAbIWmhBEhLpqcn6uXWFCQk6pXWJpYlJhXkpmX
ylCob2BgYGhtkmaSmmJgkWztm5iZY21gbulkaeHsqGvubGqqa+LkYqJr4WLkoutmYeJkYOhm5Oxk
6MwAAFBLBwjH4P4EhQAAANIAAABQSwMECgAAAAAAUQR1QAAAAAAAAAAAAAAAACYAEABzcG9kX2lz
c3VlX3Nhbml0aXplZC9qcy9ncmFwaC9tb2R1bGVzL1VYDAD+yk5PiYRpT/UBFABQSwMEFAAIAAgA
Bm7UPgAAAAAAAAAAAAAAAC8AEABzcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9tb2R1bGVz
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
uk5O9QEUAGNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsB8QIgBvEvMRAFHENCgqBMkI4ZQGyFpoQR
IS6anJ+rl1hQkJOqV1iaWJSYV5KZl8pQqG9gYGBobZJmkppiYJFs7ZuYmWNtYG7pZGnh7Khr7mxq
qmvi5GKia+Fi5KLrZmHiZGDoZuTsZOjMAABQSwcIx+D+BIUAAADSAAAAUEsDBBQACAAIAFEEdUAA
AAAAAAAAAAAAAAAwABAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvLl9t
b2R1bGVzVVgMAP7KTk+JhGlP9QEUAGNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsB8QIgBvEvMRAF
HENCgqBMkI4ZQGyFpoQRIS6anJ+rl1hQkJOqV1iaWJSYV5KZl8pQqG9gYGBobZJmkppiYJFs7ZuY
mWNtYG7pZGnh7Khr7mxqqmvi5GKia+Fi5KLrZmHiZGDoZuTsZOjMAABQSwcIx+D+BIUAAADSAAAA
UEsDBBQACAAIAGBkEz8AAAAAAAAAAAAAAAA4ABAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3Jh
cGgvbW9vdG9vbHMteXVpLWNvbXByZXNzZWQuanNVWAwA3IRpT+S6Tk71ARQA7L17f9tGkij6vz8F
hPFJQIuiJOcxCeXH2LKdeDdOsrHnzMyl6DkgAJKQSIIiQD0cez777ap+oB/VAGg7c3bv72ImFgg0
uqurq6urqquqD+/dOTg4uPOqKN4UxaIcBtU8C87jq7hMNvm6CqabeJldF5uLO3eus0kw2eaLdHgn
OAjmVbUeHh4ui6KCDwerrDpMik12+Ofkm2+TaTb9Pk3TZHr856P4m/Tb77KvppNvj5Np+uc7d9Zx
chHPso1Wm/koOIWK4B9+92SziW/57etqk69m/P7n7XLCPsH7F9tVUuXFiv/6ZXKeJRW/f36VrcTt
001xXcovThdxWWq3g+c31SYWT14v8uRi8Gu8UcX5kxf5KpVPni+ypapa/Bi8rm4XmflIA0A+epaz
PyUDVzT34kb+HZy+fq3u31xn2Ur9elVs1vP63SZmNVR1Hb9ll9usrIwfgx/fvPrJfPIfr3/5WeK3
uMgFrPXTZ7+8+i2LU4nu63w6vXMnKda3m3w2r0o2Wmy4RpJexhFBB707dxiyWAczVfzlm+An/oj8
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
HO3p8KtHNox/w57Kpf3//Pv63zCMP4yUo+vREJ8FQY+01/rYbpYJ4G6O/iGg0J+Fx/jq93SgW7Ud
BAxjW3wAUEsHCMZqeUkWAQAABBgAAFBLAwQKAAAAAACvBHVAAAAAAAAAAAAAAAAALgAQAF9fTUFD
T1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL3RoZW1lcy9VWAwAOoVpTzqFaU/1ARQA
UEsDBBQACAAIAAJp1D4AAAAAAAAAAAAAAAA5ABAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6
ZWQvanMvZ3JhcGgvdGhlbWVzLy5fLkRTX1N0b3JlVVgMABXfTk+jqP9N9QEUAGNgFWNnYGJg8E1M
VvAPVohQgAKQGAMnEBsB8QIgBvEvATEDXAVO4BgSEgRlgnTMAGIrNCWMCHHR5PxcvcSCgpxUvcLS
xKLEvJLMvFSGQn0DAwNDa5M0k9QUA4tka9/EzBxrA3NLJ0sLZ0ddc2dTU10TJxcTXQsXIxddNwsT
JwNDNyNnJ0NnBgBQSwcI5p3ufYgAAADSAAAAUEsDBBQACAAIAGBkEz8AAAAAAAAAAAAAAAAxABAA
c3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvdGhlbWVzL2RhcmstYmx1ZS5qc1VYDACRhGlP
5LpOTvUBFADNVl9v4jgQfw4S38FqH2grlqaFwLark66UzXVP++eBavehugcnMWBh7Mg2Fdxpv9e9
7xc7j52EGEJ396STziGR8cx4Zn6eTH6XFxftFrpAEyyXKGFrgvSCrAiaCYke6HyRLrDUCv0+tVq/
4rVeGMmjkEoTytHDt7+5oiC7bLfarZ1Fz23zC/qr3QpSwYzBLXo6OZ1MJnE4Oemik9MoGsf9sZ1O
4qgf9e10NLp5PY7tFGNihp3OZmE4HNopIbBupmbj4Md3+aMLgUBstzamIMHpci7Fmmf3EF6xGjDK
CZa/SZxRwo3uU9hF5ncdmUcUhnabIFBa5JCQ/ROATkfOk7PB6y6C+2Z43ik0g6erQug2Co3ECuzz
q1VKhMyILMLonIZ2dGqiLzTTi1t0bZdShpX6iFfE6Gbm2F6lgmtswpbOJGdCj/eTgwjw2XUUQSrl
o3d1XjPxg7i3Y19cBHJlVm3ommpGCuiU3lZzd+R2nxAut08wEwBpJxEsQ1fDfINOHiVJ1umCaPRh
ao7rM5EZ5riLFObqlSKSzjoWp9KhWidNPpHvdGhHk9Prf+N0c7ehqvA4lzR7b8CugOrb4XyVwhIm
u8hwQlhp7qO0i/guhMu6tX6LymB1T4WOFWiaLo8Idugcc1YdrAPnCzGvbQlRXTClf0KRAWj15Riv
KNsaQR3HYzC6jMDUg3T7o5D+J+itKBfy0UD4jmsinzG7RXzN2PeQTZfewf7foG4EmpE54VkRGNVk
Na0HWrwbN7lG3/fQ9V+yGuiVNy0E0zQ/1mJdFyoaofn1RlHRgZqbRxzCdegiwbIhI78JKMqeTUv0
bKGRfco1FbysKCiR0m2GNX7vlZt/jg5hh8LKNF5SfTT8SoPa3S9Fldc9/bR1irXeGfyEuc3clsTL
hXCQqHMMeg/C4NisHMfxvjLNMsKbtQeDgX8cqSQZ1erF7wf0cb+g6yd05JtT5lDamB/Hz3SO4ejL
4lxrLbhfDcdIwTFWAMSgpAR7nMCQgt6gCwmEcFV0ANaH3V2Tc2TAsYGyuF7gA4HarkzvmGopluTg
+7qwR7WnEdtxAAjZ5EJqyuceHhUSTjy2ixUMznlMGYONDfV62x97r0UuKX/ZyDCz0fjtQYm6mC4v
kcpJSjFDjjNaHqqEYZJiBsy0quMjBKfWWorO0qg+FYxmzuasb4gQ3KPQGey6wH29cG3rIRt930Bs
VlgtvTCAXZV32Oufm3S/voFvoUnwLs/ZFnJxTLvdesYSLSriXBSkYc41Mq1I2bbO9in2+Zt/AFBL
Bwg5J2RXvwMAAMMLAABQSwMEFAAIAAgAYGQTPwAAAAAAAAAAAAAAADwAEABfX01BQ09TWC9zcG9k
X2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC90aGVtZXMvLl9kYXJrLWJsdWUuanNVWAwAkYRpT+S6
Tk71ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwHxAiAG8S8xEAUcQ0KCoEyQjhlAbIWmhBEh
Lpqcn6uXWFCQk6pXWJpYlJhXkpmXylCob2BgYGhtkmaSmmJgkWztm5iZY21gbulkaeHsqGvubGqq
a+LkYqJr4WLkoutmYeJkYOhm5Oxk6MwAAFBLBwjH4P4EhQAAANIAAABQSwMEFAAIAAgAYGQTPwAA
AAAAAAAAAAAAADIAEABzcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC90aGVtZXMvZGFyay1n
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
w0WFZVpSyz4CbgeZueZS6U8A0/cShLZU7FklyiWAUCT07Kbbjcj+6/L6vFWiX48GAt+Izv8Cc8EW
TGbeHG7ZelqzrjJuPB63SldQ6EFtmX5VEuu8IcmzjMlXRdvtdq1U6mib92woGo5SwvL8n3Xc7nsN
l9Y6LiTL3VHXpbW2Wwh8ofW+6k+JlPcHX2yuP+aWK1nggB4UxzJq6WM9IY+A8ZcHa6pXrISg2WEK
wPdZafLaDX/rYEqtrYS/9mTpKcZuRvVX5lx5StItX1BEpwj6xlolG3i9kQjvZMJNkQnNVIBcuOxA
sE97Mb5lAiC5F3mv0DEXdhf3Ansf+cr52D2+qs3zGgp6arVaMeddjK/nLV01HQgk7mkgwHa50pbL
RR2A0nXPHDla6be/NOFCoEYYZ+7bo1qq5JrLd0/AqHM7um8G0GXq1RUxOUuh0xA/f7lxzigYytQc
BzySsbUibEfXuWCm7DJHs4Yvp84dDEHFirGeojcOTJXgmT91dgvR88vJ7+ujgr/T6SDHsp2taPcx
vkheU7M6+pcoV3zZPm+FLx/CEDwd5rlwU6ufXMMt1WRZzaJFAsIwWptPDSsL+exwaj3/EP4FUEsH
CMuYUnWnAwAADQsAAFBLAwQUAAgACABgZBM/AAAAAAAAAAAAAAAANwAQAF9fTUFDT1NYL3Nwb2Rf
aXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL3RoZW1lcy8uX2dyYXkuanNVWAwA3IRpT+S6Tk71ARQA
Y2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwHxAiAG8S8xEAUcQ0KCoEyQjhlAbIWmhBEhLpqcn6uX
WFCQk6pXWJpYlJhXkpmXylCob2BgYGhtkmaSmmJgkWztm5iZY21gbulkaeHsqGvubGqqa+LkYqJr
4WLkoutmYeJkYOhm5Oxk6MwAAFBLBwjH4P4EhQAAANIAAABQSwMEFAAIAAgAYGQTPwAAAAAAAAAA
AAAAACwAEABzcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC90aGVtZXMvZ3JpZC5qc1VYDACR
hGlP5LpOTvUBFADtVU2P2jAQPSdS/oO1HLKgdAkfYRuqSl2+llategB1D6gHhxhirYkj27DQiv/V
e/9YbSeBBNgK9VyErMnMeN7zmzhTr9UsE9TAI8MhEBFaIbCgDIzxMppHkAkOPk10wge4FpGMTCnj
AuEYjH//ijlWsbplWuZxx11a5j34aZnGnBK5oQtmdsX13g7697YD7Irn9tqtpjaHA6/T6GlzMBiM
XFebzXa/N/S02WkPvfs0dzTyO56XmaNmp5UmPIz8ftv+7ig4xaCrkY0Azp+XjK7jsK9IZF6D4BhB
9shgiFEsc2euA+Tfc9NFlzEMLmiiaOsHQ+XYbBncNj3PAflStbNkY9bI422ZmS46rsN63VumTg4o
CxF7wqGIuqCpXQmhondKVpWDZTwH3PlV+7BlEsGQvnSBYGt0rFMs35DevQoJLAjKBOBip22guc0z
tIqrlNeuBVWy2AElIWh0ki24mTIUrOcREuDL5MYB3xALYQwdwGHM33DE8MLOjpjC8XVwBWJH/y6B
Nv8FdPuwxTxDXMq3+bPsc66DxlCN758dV+D587mXwACRvNrhAGmzL0iW0280JPMi8dd5a+Ip81J7
XgNrtVpFsCck71uuWDEwwT+QYiI1LLpHcIXJTgauYZfyU1tLCu8KCq9wTNlUavcxFohtIJGl5ReC
2n+Rmpx2RGl/5vjfjHN2Z60gaIniMCOGBVpNMqJZYq6Bn4grJHBKFzMg8luUvQWpJApgTDeITYpy
HKVv+fZJMg5DFF/MXjK4K1/cUnv5RQTfD457LHP/TrGr18FDkpCdGlvp6LLMDWQgOkyir4nANOZy
FBWmE0ci89+ezqyqrCvl+wNQSwcIKKgKhXkCAAAUBwAAUEsDBBQACAAIAGBkEz8AAAAAAAAAAAAA
AAA3ABAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvdGhlbWVzLy5fZ3Jp
ZC5qc1VYDACRhGlP5LpOTvUBFABjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAfECIAbxLzEQBRxD
QoKgTJCOGUBshaaEESEumpyfq5dYUJCTqldYmliUmFeSmZfKUKhvYGBgaG2SZpKaYmCRbO2bmJlj
bWBu6WRp4eyoa+5saqpr4uRiomvhYuSi62Zh4mRg6Gbk7GTozAAAUEsHCMfg/gSFAAAA0gAAAFBL
AwQUAAgACABRBHVAAAAAAAAAAAAAAAAALwAQAF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVk
L2pzL2dyYXBoLy5fdGhlbWVzVVgMAP7KTk+JhGlP9QEUAGNgFWNnYGJg8E1MVvAPVohQgAKQGAMn
EBsB8QIgBvEvMRAFHENCgqBMkI4ZQGyFpoQRIS6anJ+rl1hQkJOqV1iaWJSYV5KZl8pQqG9gYGBo
bZJmkppiYJFs7ZuYmWNtYG7pZGnh7Khr7mxqqmvi5GKia+Fi5KLrZmHiZGDoZuTsZOjMAABQSwcI
x+D+BIUAAADSAAAAUEsDBBQACAAIAFEEdUAAAAAAAAAAAAAAAAAoABAAX19NQUNPU1gvc3BvZF9p
c3N1ZV9zYW5pdGl6ZWQvanMvLl9ncmFwaFVYDAD+yk5PiYRpT/UBFABjYBVjZ2BiYPBNTFbwD1aI
UIACkBgDJxAbAfECIAbxLzEQBRxDQoKgTJCOGUBshaaEESEumpyfq5dYUJCTqldYmliUmFeSmZfK
UKhvYGBgaG2SZpKaYmCRbO2bmJljbWBu6WRp4eyoa+5saqpr4uRiomvhYuSi62Zh4mRg6Gbk7GTo
zAAAUEsHCMfg/gSFAAAA0gAAAFBLAwQUAAgACABgZBM/AAAAAAAAAAAAAAAAKwAQAHNwb2RfaXNz
dWVfc2FuaXRpemVkL2pzL2pxdWVyeS0xLjUuMS5taW4uanNVWAwA3IRpT+S6Tk71ARQAxL3pgttG
li74/z4FiVKnATGSZMquniowIV5Zssqu8laWquxqJuULgCAJ7iKZmZKT7GeZZ5knm/OdExEIgGDK
fZcZL0kgEPtytjhL52nzvzWeNmZ/v822Hxt/je/iN+k23+wb3+bJNqaku6v2H9tXyDPd7zdhpzN7
j6ztdL3sUCo+vFxvPm7zyXTfeNa9ulKNv66nq8ZP2S6f4Our23jRWORpttplo8btapRtG/tp1vju
m7eN9bbxlx+/bfwz2+7y9arxzOTbtU8bXG8nHf1Zt/vNKl3cjrJd403+22+LrD3bOaV2nDbbmY6e
9PIt9eHVerZuvF5Tp+I9dQDZfsoWWXzSU9X48s0r1YhXI+7wt043eYzxPgsbP1Op11nSePZ54+rz
8I9/DJ/9mdtqXHb/2O1Svs5/88e3qxRN+bFKggfz1kgnfhw8bLP97XbVGLXz3c/5arS+p8R+HMbt
1XqUvf24yaIo+nM/bo+ycXy72P8zz+4Ph7i9ibfZai8lwubVsah1hFrzsd9M/mMQD4OHu3jbSKKR
7117rbjlPfeCdrzZZKvR27XvJevRRy9QaZS0093O90b5brOIKamXtLfZcn2X+UGPKkupF95qvcq8
w4GfvSCNvGSxTudejxuK0qMeCr86HUpl3OhHGj0ce6N2FqdTP6Um16s03qM7i4/+YKgoaYfl9rtU
IFB23oKHdLCf5rthFB+Dnm4mLZpI/kVZ9tuPZjJX2X0jbr+gj3fZLz8ksyzd+953ebpd79bjffuX
7779+u3bH73gSK1TT6hzR6eyX+oqQxnaZD9ltDF3+/qCP1NBzH77drVYxyPf6f94vfUxAXEjp4z/
CJJ/0BzRMK+CY+DU8HeaqjR4oNWO9/HrfLHPthcXNPlugp8qecXmCIIeqs2iImmnxjTLaqKmKo+y
9iJbTfZTNVPzKBt0h2qhlmql1mrTQ58m0VVvcp33Jq0Wb5oJre1VgC9T9DTGEt1lW2p2F+yp8vW4
McXy7/bbfDXxqHPjwbS9X3+7vs+2L+kM+QEtklNqMB0GvUU05+YnQ+ylOSp46gXzaNHLFrusQWmL
JqddXOBhHjwso0XLa3ituVpF48FyeDiMB95TJHAVzVXwsIkSHsIaHR0HD7No3abNm9NSNzzetDMa
L7W1OBz0E1qlcuPBbHA1lPq5uk3wsKbU9VCtKVez219Fm3DDjzTCVbSm47DN4vmR/mmuLi6am4sL
2sXbLTXvfb9uyHAZnI236yXVu6TTQweJtjK1orzGfk19CtSqqetMo1V/5adBuPHX9BMEx2PNtv4R
20GN5OxkMq97OvZYYnfBJ/S2zXabNcGn13m2GO2w+FhznqEcMzQJ+GeExgeTQT4cRiP6G/Tup/ki
o2W0MzRu76b5eO8HCkudUIEp1b/MlwyO6Py3J9n+J93c11lMINP3dM8usUlopJjVaWAbzwJ6z6i5
iwv8be/pDNF3Ohd0VqS13Mwx5URn0NdgFuGRd8mDrWwk4A1fAAmdvZbzmuLDEPsh1zXODwfadHlw
nEWzw4FbmNF3WgtkvbgoOjGz0GU0mA3ds/0DgBgtRsaNA1q/2G7jjwQCLi4SfcgCDdmSAnLRIwGv
wyF5L2Mm2J5RTeMgRI0tb+C1fH2uxpj+NQMrArJFC+Ogn4QEb1ve0FNj7gIBQXNwUHcUrW4XtMt1
RUmzqCjIGPja7G7HpZGvlpv9Rw0jCegiPzUmBQzUGjPUCmyXx9yXZDAeSneKafpedqzKqKcTWt5o
jP1idyoA0CSaHA4AUFScDgPDL9pgqCyPumoWTftTPaFhl8BGjE34tVrwVu7l1zPakLSizQVtMoJa
i2hKO8rnRgOlp2BRhlFNyj8ZLIb9RZSEvtMfu/CLQNG3ovcL6j3tYt0QnfgJgR+P9opfykZpyGg2
zcKZie8c5O5sB4Lu7jIVfSQUrBI+fz29Tq9NKYIPGgIkZVCr4V3yJeFKmrpJAe75+MuMja8nvTFN
1JQAMM3xLOq8u2l1zBFUMz7f0/buNqHO+Fe0LdAJWouYYDf/ORwIN+eDWd/T0+WF3uZ2N/Vo2glw
OYNeyymx3cUy3Oej/dTrJ3mYzKibblrcXo/Hu4zIGHoNzdvXGSg2S3Uk6y1BGC8wc2noh6xEH9AR
H19GRBURBCTku6cZBEFDm3kTj0aY4xYoiICG1wW9QxUv4+0kX3n9cau2nP5cFAvPNKA7yBlbHo/F
4wIFrTJ25igWcohInW3aH7XjWfzBf7jdLkJOUfHu4yolik6ZTRp6O6bOvWMQjtqTxTqJF1/dxQuf
NkP2YU/nn39fCgDGa75aZduv3373LS0lrWSiicXviaAEsCreNIn3kjDAiA5/0clfi83rEbD/apEt
gXa+/Pg2nnwfLzMPtAEtX903H9sn9JiAf0OEdbpfb18sFqZINV2yDxyC8YlMEK1/4hLBV4aElFQ0
VT4NRLKmRMdvX+zpUCW3tMF9DH6ZbSeZkxYXBK0Bkkl7TZ94ygjT2ecCyOKo5qvNLSBz3MYBRko6
zdJ5sv5Ax7dI3MajfO1x96WNDQaFNnY86GwUWWL+jU4pGoqchvgFS0vrFaMCwwLEi9usqIRfj1wD
IUN0KQOSt9lfShIofP1ks2F67lCcOh7LE5e80y3wb8EK2EmkvZ992BBjtA6c0/8fZ9YNtNI03hG/
RFs/MKtoq1AZPY/kI8EH/ZwQNMc6ZQS1Us3FAL5ld9hsPUIslMyV0K4f+YRPJD8hnRHN6p6QFzW6
Gi0ITOhC4D0MRpsKSWReBfFMCNZpAAo8w+hlJIXbBESoT9OWj0wgYVa0/3YbovD6Xttj/HzyRekU
88sjA8As5uxfMmeWCTQ7G3BlHycLoqXOHrO9MG+aDBKeTo4y7eF7AgGv1uktCrVT2kD7TFdhCwZh
XHTkBwO5q8iHaALbuwkRtaBeCn7W0qbNJu2vmI4zpanYAj5sgPTIK1Nsik9UqL8y3i+KG6zpYHbT
dk09RS2lrShV/VWQnzuysbBWtOtUM6UdH7lJwfGRDmcuC78S2gpr+jzqSueLOf6+6FczJsIidkBx
wdMzYHY77TD3r93t4scEd4Rv6hNdpndhYjmPrfL+BzH75nWnvAvP6c1X6A0LB0DEgV4zTIPlEd9H
hPi3+LOjCfmVDyawnPLkRAmtErcXxGe/zrfZiHqD7xcX+I+TiXQi2EioNNu3R/kOWxrQiRIJkOzX
qxI8Jd5/TvuS+F97hpj/Agv+Uzb56sPG9/x3h5ubduC1nEyG72vTcGfrfOV7lMXvh+2nyNoH7ezT
0+FJACbM6S/3linQfST9NQKIQDinqEuQYG+BAgGESbTnI91eb/MJlshO8AaEcwRIigH1t23QSP5E
w/31Ngj33FHKml9eEutPUAxnVWYnIOS13mFfbqmH6e0We+GtfOK+zCJQw2PTl9n1vDcD174EPzs8
190H6S/WaWl7Qp0suoXVoGVYyaGYFLMagO5dtinb0i5d8DCNJInANrgOhrntzdbsVm+5vt1l1HWi
iIjoPvlCCPqOgJrMUWS/Awn4YGIXBKhGbysz4swh2EG/SccFO2ZKPXwv0/yAPoVE+DLMJ34mnKgF
7dJFuGzz75EpVTuP70/mcRy9xzwCC4Ml5ELP04BZyF5lRWgZeA6ECY8MqqFmOYHSbYL7Ua1LWbGD
vua3rZaBmWq3EwbcOz5fLJO4wkHJdz9u15t4woLLN/s1gfyRT+cljXR/RX5xBSROP/p05rtvlsts
lNPM1hbXog0jvXOw00tmdDIBE+MytqWFoH0py0gAkQeTr0CaUschgBo7xyxRBo/K6AVVpMQHU7Z8
90oolR+3nAedgpygO8TuQIr+7jvQ6963oLRbpN4VqQ7UZDmrQfUJy7Ugj2AGbL/+65sfvjfcRfOq
d1rpmGdhzKhxLBKRuEKYQhxD26IgkDxsg0uvlbq4a1zCXRAxEhnDRN72NvP6TeIw8DaOiZaj1yt5
xSnz+vgbAjF/H38PkUAmx5WeRm1mSjAMeg3HocOjjI2Ik8iio6GyeDBCMBI7drQsitBltKU12aBG
kSvBNNPxjS/yF3TmpywefZShpLacpjPo/U26XYPCX2TEM5qu0FoQk/c2X2ZEaPvfAA5KF6iDW9RH
y8x9cZp3iSQgA8LOK8K2BPNBtUwC2o/UcbnQYNnYE2Az4nQJCQzeXQ+f+teDm/ubn4et58Hg3fPh
0yeHP/hIuRy2gidBh7jdzs2bjjDHu1aHAESHfp901IIeRh21pA/X/s19K7jZPb3p9J9Txdc3nZur
50Gfcq3o8+BmqMKH482Oau/QQezc3KB1QkU3nWS82u6Hh9tB9/LP8eX4xeXr4cMXx6AzUZuo4w3e
IdPqZjt86h2wFw68BQ4s1bns34xaVNFN+2b0NOijyuyr4aBFXceXoE+VvI86lP7uEB5UgKzUxUHQ
og9b+nCfJfN8HwwaN50hxtymIXcIoXf89SbbxgHjSS2+DPqVbHvKttzlWdAo0m6Rtv4tXyx04X5j
exea79QhdRet4ruc4Mx62yaYv30xwXa6Vx8IKKmP6jfa8dOMCKb1irZgnC8a2Em79eIuG/HjjLmi
xma7XuZ0FByxrnqhvoxEWkXAYb1f42gRG/iGT5V6efqNOI8f7lcAfNl2/1G9iphEczIAfaivTpKZ
DlCvI6nZbWybL9VfTvLnq1H24Yex+lquOMYrApf2a/SQrld08m+Bw8KRwtYNXSIS4IVZHC22xQGL
DXnKRAqDcktBPyBNxMEf9kzFQH4bK04WzBYZWMblIfSMRZxCtD8hdqKs0jZeKnWlytQmn6VKSzlI
+cfb0eAuLoG7STQl9JGlmv9uTogAngyuIBE2wBdYvS03f32fXsYBEeEr3KiEpotmDv3MfmMKhCoK
HohXJOC+28erFO2P+sAhYYarB4KXJZaIWgpTOu5L0yc16wOg/biI85WWhmZ02uJokFbYJ9wdBEPF
ICgmgG/YHuIcuuCposG8tkRIlMeIqF5i0F5v4wl/GaDjQzWYD4ksjfwZ1UWsOSgt6g1RP6uM0sY6
dxA6z8TCU0XgFXaFzFpkHUKiE6OZR6nDOn758ZsRTdSzIc9YfnGROwwHg/S8nYOC5zwGK9hZLq24
3SP5sWbzFLslrm6NEmsZB0UzAvmpndiWbsrlQ6VG+6hKLcfmyZ2NeJ4ZhoyleEdlChOrpGSnhR5f
dnvKipx3+W9Z6GA+Zwh6Ao5qv+aKa7J9JfuB16BLLdIChHV8qQjt+1yrrs2n3XPd5aSB01orHvL+
x62qArR6s4/TuQs+HJHryUEJeoXMPw76rzSlmdEGCc2GwYvKmNqSvc/VUIoLYMyLYhYc28KjU2UX
prRMrfKq9Ql0M3OahljRs6WIgWslxKsR3dTyiFezUgTC73Qwwlp6QIuDZdNT+lHxXipNOp076u9P
Ql2oj21gHr+QUvDuVNn7MwsVXV7JOglvaMCRflOtuHVFrY7z7W5/bt9k731shkX8aJZL1MPVnstk
l9//Si+kjNsyDMrj8p7S+7D4ojljRSzwUS3jTd1gK23gCG2khfIVhhWucBsQINC8o17iDs523e6u
w+Fkl+IsBLK7w1dqt97uw8GwjV8lLDO/8tNRWerPQbBIU4ZB4Tfz7HSHb+BdaUdkp4elaMS1zAi4
zYtkc5+yIMqlp/FaLmh0TazsyuMbobxU05Wp6Zm9j8qdKznCvSUomBOzQ5z7wzFQuBmf8RvP+eXl
TFh/y6QSBCWUVDQ1GwZNhiMsyUyFtSE8mA/SIehg+mFgT/WOA5zffHWb9RbE31IrVXw3Dg4HfxK5
N49EzfkT+g902zTKIMk1Hwk7YlGC0KZXcGdGxLDKS1LaBc05VRqONWjnr2MrXsuPqmAxV+uX69WY
Ftw5MAlEQ0+isUJhQ+9HWQHyqUHhSXCBwmDg55gorasakBDr633NdCDf5WVPGBubQky3vrF32R1k
0rSTbthhaHRpsDW2CK45QX/pui4vnSaed3UlvY+4wwcR/HO+nxJzPBgRVcA7mWioyQSqICM/Dcyb
73EdHtRNAN3s+/GoLLRzDyO6/SF4+KB7k0of6KTvWTyTrpcbCM69xwfFJePRiPn8b/MdrVa2DU6T
fO/VD9/pS6lv1/EoG3lEvDevIH87zQt9GU+ZZiC6sFciILIIwHOB4KH06nvrFZfYYRDpNF5NCPK9
4CbKuUr1i85MwkeaONeEiAeiq5aGXhPMrLlVooyO51nbiwvaid+AYcXOM0e6DrKOWFJCCYw89XcP
pYSQEHZCvxHp+4kaYmTj4loFrA5zXVy4lLgFPx4t7DcQ0N3FciuHar6Pv3+ETMEtuFFgOBxECEEE
JoO3x6gbYZ6AMb8efKkRUkDg0XQGLTtgo1QVs0DQUdDDdkAoZGGGFRItBqs6VwhymGFycAyd4ZeG
VvecdC9wvrgFCuyiPJa8ycsPY89phYUmPRf6WkUeiIoOB9tmGmC0jrpFabQV8dSpOEqxulGpzH66
Xd9j+awAqAQqnUsTR9WAljIxJ5wFuLjrAE9LRTBnWg5cXCOslfffnWuEjfKGzut7CL0tHR+30QvI
x/Argqm++0KNhD4kOBb9ebooUX5BwNSq1qv6ZkX7Mx81eFz8WQ/0l+++DV1yBALKuE3Q5kd83RLr
yBcGNkGlUSatv96ul3pLJoqvVjsflgvchEEhi8o8pjJI9UFTss0X9EZKR+8ALfQZ10kqi05ghWJp
dTOzV3tgcs0zziX3bMuDxlY8GT+Gy8MvFB/Var3euKCd2AyrF1A9RDE4PX12jTZo2iYuc6RVuWqu
FvFV3yyeDgiDrNwoag0FrN7udrMhsq0tSayoAGmlez1pir+lBQDziY6FWVv4OAX9BZqQ/ZcZnQnw
JkmbSWsuixtrV2khA7Yzs1nPH8R2to3cVqsO/IO6pFUHcFTLKaccRyEIV5Ooq6ATp4nDPJrKWa9w
t3x/LZy1HPCxlT2nmnpntacsYKm9FsRbzave5HraK2eetFq12eubEMCDFsYKP/XNYEgzIhW7QzQI
qRCXmxGFPAPQJSCEz63WZFgANwI6gBnh6/4j0N/zwtcG6B8fQxOUEZplDliZKfdtjjcwLZqfryy0
VguBmpIms5gktrfDGoH0zIIZnJZFLljMSphZv2+zSfZh41WQDHHR+gLDYaLxUihxKn0XXOkq34Nr
UaEBmjYBfTQrktIWg86GvqVKr0e9VBiABERzFFnpYKrhwuUVzRB6Utq0MgujYrNmUde5kkjtlOCi
YZlA0cpq/UXmay+7Hvcyaj4ejGgHRukgE6XMhiiP4h0kvfOdfor5HvWKbYMb9FrZxQj3zFkvjZrN
tFf0ocvarbofRpeN9Q301iaYTG0zD8I3gbzTHY6gzOqetPfJlkw7VE5lsrXAPA1GOuvQZUBOVNpH
EAHd5iPiQYic+PDxBKJUWU1aiWeQeun1cbYoEFusYlaIgcZ+EKZVXjIFL0nwmT8HqkkZYtYtPOXJ
YyMIEm7cESEQI8qF2ug3LraKH8YY/DviX5ogByvFaZrtdpURCqstU54X8+tsQVcTy9JBM8CxNBi1
pVKqa6ZS4ne5umLCYwgVM957D+OoOWXOtjQlWXGm5rT159d5b45rfFrVOdRXx/3MAEp6nyvzASiJ
+l00ZJjUPnJ0kSNMgHvuTwUeTOHAPiQAfgUTBYTy66tsTLg9K0lIWCSBnai1MKIHyKaqbFtmgJxd
pUJbowdmeM7ao1prQdCTPbxAI9Dvz+lcTqAAqiFiHtCz5SX6Y5aKmYtolQfhrAQRgT35gOVBb44b
cpdbnWNG5pBzm3kSmZqTpxjTSF+m4g6iSb1vprjCFmZMAAomOIiNHrruE4oV15lC/E6OY1w6L8DF
DSgDDkb3WNsHd07LnS/tFy2r4punoO+++SL3c2/nS+0Ul1g1IjDoaR9ViquJhfs5i64U1r9U1bHQ
G1Wnmya2Nj1tu6V86LSW37OeFaYk6gEXbhXEkBgxaBt3cAQ7ysNBYphyHppCHE9exdSdOv2hSFTF
9R0lFjOi9ByeEKeRxtVMKhlxb48AXfRw1DfSv5mNrJHN5SXhmd8ICA6jRH6LQ3oEgcjDAhmDydaj
S8yr0uqBJgGwzsoxCyKbFuu+PGVm1k9kgwRrr6HlGFcgT1xso5ioBHdp6HDaTcW6cc+vjJJFVW6r
ugHhpYQOdA0B5bJ7YxhhVTv3/KpfU2GYqMvLCYC5ewxwCUlbT2Y5wSxH40EyVI+NqxhGGzvMh02U
QrXYA0FIrfTq22HqAYg7BsWpPzsi+eyobuPvcNgrUru4ovQri7I193iHw6543BePsSWyWNAV73NW
rrzuXlzcFrnsOXxICLoQFxImLM71PKVvyCnhGRK6HjEeu9ukBFWMikRckpKLAZlRWMCXoz2Zza7S
d1MqBuuUbdNFvNuJ/BeFotgRciPVDzjdFVSAKoD+flHUvinbsN0+jUR6R7RBWrouJUDsl1LiQIzP
YIBQUDhG9l5ccwkPfizacrqMNGOi5oAYIgTNDD/g0H6sAC99qeN9KWL2xvdMmzaEebfCgwaT2Ixp
tX5gQ1j3kspAmQL/euANhNpo8GXT0BtWzSqoP/fUH73//Dt6bevesthcPw9sKuxYlE1v660S3Zun
wPko6hhuPe1dPI63OdURqL+IXF54h3r9l78YYBWjo5q19/6f/xvCA3/Giii7mw8vukNRY7FvTzoA
JJAgq1Npbf+FSyKmmsf+nQLdQm8nLIlnqT8n1dZKnJnaHGWfluvaloKjQ+ITFHBtLa0MApoYRt5R
EViM8ju2cd3tPy6ytrZ61RauyrGgiLxGo3G9yFfzzvNrVsh+ft3Rv3Fjus3G0Wed+LMG1xN9lq4X
621IW7g3hv5VCMWn3noTp/n+Y9j+4x97nz2Przvx82vW8W/wCfnMmBF81nnu9Yydz1nLCpjQnPka
s8iGFvlUPsM3rB4s+ia1ohib05grwADoXDtioMCqmEDbFxfG7IiowtL009GF6c3P03wvKqWhK8tx
deg+V6yUHjbPtal11q190365eJNt83iBy/rm2WJYuaIUr1LYofXR9k/jitYeZ8DgsbLfr7dLrp9o
r0o+fGZdX68Te8oscOddl9b4ia1bNpf+Sqdut2OtPOqu+WaSFO+BH1Zhrm0vwBKtULO1EQmn1oBE
kzBfif1ESLCH8r3SGrq4+eLaXkJ9BG+rNT/yyUJm/a7tQpBCm+87WotFCFpM5SuatexL2HZ/n2Wj
3bfxx/XtHjXtpgR+5z9v4w1/3ckt2yJHw1/no1G2+oEtuOhDl+hha3DC0NEIBsvNR7noubAckCCg
KaMmVue4XNwZKvF7NlNPxFgs0a4TQkZljgqsTSEkSmrEto9IOekImucWdvE9ASDwLp+Qcnr3LD9q
s/0ksTu4iC+0Mz8h9oQMok/dxlwIActyDuLRaA2qMlFiBbNoLNdYGkrOjtxFS/zuCyv2uXNm26Wt
RXUf6WhVkQWMyEpgnruaGZifVC/fRK/f4uHGwgXSbXd7ymAqmEAXXwRM3Jd3i223yBhg+PUAvwzZ
S0CYzbY+a0D5Xb9ghj5rmC38mX6wQHpp2zA6ZVarK+gtSzuhvJLFyItjGi2rp6D0BrURAZnmdJSc
C4gM4dyQo3NCfms+xBwI7lAEKLFxZmTetPnkt4TJIu9q8wHosWRrxMSNBiBRMTibVDLyhHRLeb+t
10u+eZQ2+DK/gokFCHnKfEARYpWL+uuhVE1rJ1WjUncb0DwZ/M1DD7/YfCBEfd2hD889p8kq+Cs3
RrzMs6BStaYU9lv6f2Qa0TMadntiOUoPum8h6A+0vB+hwPO9PHVQXlMdhkI4axQ2Kt3C1EJndgRR
MralieqySv/pXGXEANWTSZ9q5RPftYr/STdKM+hVYFsc1PcljsQchXgJnqBVdMq4nyECY0a1rZh1
P0qwy9zCio36KBLnHb3R4eDDmtMhCGKlrzEJqKtRZK5dwZG7IjScRsZQlnR1cdVtssz3X94mNFG7
aEXohhO8MsQAKezk0bRxCeIfA994BWEF+JuH9tOb4+FmQD/D4EmnkAs9sLop9HRuIaKmLaBJCk9U
a7yWz/yeaEq2iB2atrfIsCQK3N7OdG5edSa4oSHKAkae4UNGzBoTFsJohV662FH9r579Xy9fffnv
X12++OrfX11eXaXjyz//+5d/uvziiy/++MfP//hFl/6hpdyAKWAKQluNnkgADOEIJVmMYBAPrDnp
cBi6b+YCvRnDiJ+VFkblKkXuqg0fIW0mAsM1VZ04pqrTqEYuDzGs0yliumamY2GsFvTmdqjUO77u
lWdsP7+5OBzGFxcL6ut8sBgOJkNi6oisBkFobu17lMcv1xktohZRIryIi6K7gUIlcH5BPzDJmenn
tli9RCBe1psgOCONtx4l0vIuHvd15wrNLp0AoTg3VvqgYAUT8dOYtb4m6BR+WOstj/DIlyuFVlhW
WGlrW0OaE3wxQkKUubjAX2MTrD9M+8gW5kdIfgE5ylvIdeLhrHYSuFZOZrULm1Vc8tpVTdhLReKu
amkdqaMz01EehtQNPXR8IcItzLWt2dzaK8+1sh7t0rlRqDge5QpZZ9GFdS5uxGRE/YvIZDhDzx0O
eTOK+05t3A8GG2rR5xqxT6a8PLPqPlG6+mgRhFMWVNS2Yuovzc+JDXn/Mavy0C0rhDot56/Vk+tK
2ax1Exa4CWXbYnVPpM5WDaAQpQvsGsRnnAtoIslIh7UmX9Xqi2Vu+YhZQ2NZRYDsqPX4DNg9gUDm
rtpYVLp6W/BJNiZSZyROBRzFcNwe6GFrfXw5yfJc4zthYixF2HBB/CGoaa9iBV81gZ9GE2PWrqaF
GFUs3DDSbtmFyB+JQTKdUFMiIKZDx79RVrUQMVd/JV1oCP9KIp3C9hhir54cp9gx/O3h9inCHxjk
t/AQep4BIgnmSnTtRXtS2136cG+BhZcSLa/pqcGcHQipTGz9nAnny9XyjLPmfFSMFwbhJet3qoE7
xdVwSVQfhNnxsQEbp20iGs4i7pMiAJGcDGB3MoAM282ZMNxcn5YT0uGk6DGoh5sVJfHTFSoKFesk
O99se6IibrOT84vzGDwkkZ8cDt74A4y1OaOhdI3hOfsxYtVbe0/EAvtm5npLSoN+qYhyzUD4Ulcu
MVPnpoFIguy0b+iT7lLPuKzgXPyR5QP6frKXabcd2/Vkm+2AqnznM+Vlg1zgUPgKSa3XIbcMDDC0
pmB542dFo8cAslvZixi0M+X02cwbQ78qyDkZX+GIKK46IoKSAa9EcXoskJXOFJu/d35TJIUGTlGK
d2MvtpMBHqBZnb1i1MVOqlmjT+3I2koWJzo5McwFPvTxh+AJeEmi2w+HmIi3Yge4LUmtiaqc11S8
CThq07W9YVsJ3R32V/P3R4elV1+6oQbDwLA4U8j2Vzf7m+2QyO+cDVbZgvVmS+9zof0hqDzstumB
uaZADFrxQXtfYBEIJeds4VpJPwhoPojc8WBc0XB2WLzGlB/vfSSspTyLTg5GpI2sPbaD3OyiB48Q
jRd6kN2+picl6NIL5Zf9CrGi/nq1+BiyNvsP9OSpZfxBG2d59PgtP3oqzRYLCJXBSnt4eSMvVMf6
nj6sqIr1PSWuKO96ISn0ICnETTMmC+Fm5Rs8eep2l0FZyKPf7+KNp1gpXPPoHr98Ka6ejuWzBWR6
zjZJq68Y6yTFskwUsGD2xdnSZ7Y1SpsKwXVxtrLDHU6qkley5eLR6CWmu0oTnbHMO3+uU4Oeenyd
xJX6cflaUPqq1zngWxvRSK01ERWkx3vdM77N8rJKnEbiVisuY604TbkzVBIielymfjjF7jJDDLGz
wCIZzgNxzV6k9Ar9SPiMsNp4xhxnUlBDuEwk6hh18KWyP21FJhF+EmydRtt6akzwnU/xieYKSz7+
ty+XU+//yooRjBTSSuo/u3AZzd64tHBGn9ClSrOh+BIp7+SJs2xCKch68IxPyotXiCSmin2AOopf
BPesQtT8esE6YLNo5rrpbKWDOS+gFJ6crtlMr5n7yfMqi7ZfTyaLk0Ur9FTNRGIvOz6NjEHZife/
RxfXcg5mccG22PZLi0tsb3lxQcUkzkVqLbgxTHjpkBoNaEOfzqJEFdR4bn2KEjkOjWWa6Kw/C5tT
GONLx8aBmsKhoAEcHuC93ZTe0DcqIqb9ggvSjtHMfAViS2jWA8SD66jo11/tp19/1XbrxY6qvEfl
V9nfzSvoJz9WK1wmeoCtZng1WkPYXzE2V0XDtwzOrJIv70cNzx7f5BYEJcHzy6tCZGndoKgam4Bm
VU/IpWD0jYDxBWZdkqWquB3Wuy51GEm5uTTtspkDUVNpPs6zUT+Vr2HKWv7Hk4rNBbUB5am97GTc
TPttMGSdRunBTsG2fa8dC0nWSwiCGfZfd0sGLgUUyPvjEJCAfltX4bQKDx7kXmc6mJf8JbHDqtoL
yH6z8IwULqseYPQHZpFZhAFPS0vXy5fJcjg0nelws/CUT7br2w2AMUhVfxm02aiCDTut4Q2BK9F+
DlhmlEPaablWM1JLxvtTXB7qenTiBOXWcnctcxuwenHptuqHlVU7rwyX19eOtQ+ZepiW9oSvXwVL
lDT9C+dDIryvGlL8fuwGRzBGCFKRgKyYLaviO54DNt2RjgOihxowZ45afD9rRQwHCgNYLQ6AjXRW
63uuMG+AdcMxsK5dixr0hItogh16CwzS146FTzndU+LQn0ddx5+v3TYCmaoHyWV/s6A3shoeonV2
Au8dg/xS83p6dSfG6MQRzpsMM+qXCvKhjWDOzh3lb6LYQNx2RSoACPJ6FT4ATBF1nO6gPcAKHvgF
uMAvi8zoV27okIFvjPiSgW+Q+MKgSokXon2YEpa8Nn1eef9T5f2ZlfUxTBFluYZQ369XxUmKAwLR
mFohZYo6iKu94oOd72A9tmYvI9OIpdy9NJqwwQIYIypPOK3s4KWQ2eXRXJ/JQiJuptkrHVBHWcRQ
Sa5PwR4sy2cVuDor+YZ138oZAwAHbeJIE0VdZp17os8glg8epiw4gCsr+P++uDDWooWgldXHnbas
nRtKwNUP++dppPHqs30jyRoinhp5IofjcxRXaMP4hMVJgzAubg/K7jQJDSy9oCqz5Tv21DFgrPnI
1bCbVbsClmmUmV5HNQWdTAaArXHgC6y41lhxeTJb1h9fZQbBz/e7ofXahdEexWjd3iPKlTotjCbc
WKWJVygu1I6glULwrOWYUpQ/Hqdor3TLSXiaC/BxcjA/9YErJ/LHZma/j24Ce7m3RwqTtomcXpcV
rrj7eb8iXk/VM1rfSprt/8ZskyTcHHm0eie4U6VlJ5uoc9P2208hEHkvggsj3dCiD9n9LOrYInNn
ApdZDfrZR53Bu5v7m1378D8gebmtU8yOLX7bK+/m5gk8b/a0D7zogajeAkqlxlk62+w50ONziAqd
9z+JozXHEo3NfbQSdTMtGbFr1V2jYUQE3lG7r2teBePozmKQprFD44lhr+HaSd+WPVGMiXXLTQog
vtj/+PIQFXZAQmIZOlmgVXPuVr4gUCZ3dWpJj1InX2ea9GjBN4JLTpLv0bLGeEnjZ3grcjgDhobi
ZlALu+mMVRwPiinJsupnkU4UNcupES1IlLmhJJgmUWui1zeas1lF2WANzgZRBvquX8Q8CB/0ZIVj
wVqTo1oVgoK2Bzq972+ilXN7oVbRxoZdmBU+OJGqHZKyNxTfuHFps9XyBmSxmx3yoJkQxit60Gsl
D5EsmYznfbQYrODc1cwPQ6UYifBewov3PniQbJEYVja3gAe3m8NBPxgryInaqKW2Lq3RLa5xDrFS
S6gOV/WFT7w7eC3KSeQhaqDtyL+m1RmGque6GKmbYEYcKO0ldBZYR5RiMI3BEeGQas0JbUYNjQhB
LfXERFw5pnHlmGbGC2cW3WnCwFhrQRJhIrCo92rLnnUL79gF+0rEwj5iN7r6ehsLsCOCwqil9KDA
z0utrxv0yFWqWSN9W1K+xbdy/hTKJNsXe9pZSKf99EAFQZv3bPiXvXV/rWMBxWrashD3iIacYyJH
g5i0wZyPxjaaEnCVu+VoWjoB112CALR1cfaXuDksDgL8y5qDcMbzr5Dcy+rJULe/x/vvJtoPprKd
N4VLHG1kp/3D9mbXGyvrA2P4Ptro+/qFxczvXU+5J/O0pS1nFoR23cZ4/p2x59+jafi4PjmAUzmA
0pXx4fBYbzLZ5lH0Xjb6w/kejiNtulrpilrrToM0kSdzD/Wed9BYm1NrN7GUsilMVbuHw7hpK7bJ
V4HfBGcTbwlNrQ6H4tnUbcCFOOCxxgbYYWqnZw72Crx9tEIBFs44kXPDluw1t3MfmZK9ezoT9wLO
ufOmCnOainftJL5a587pmblgk4s1tnwHcql3DqDdPxORDHNi66npc621AR6+5va7pM7D5mIapYza
Mi/jQGzN7du4OFBND+wYk2AM+ccE90wcrUt2uJN9SBe3u/wuYyMT6hyTguuN4w/YPwGNY1FPAoOo
FV+qN15JyYs/y46SYY8NAmSaiydTm4udZd4MZsZiBZpHblovGQW3Vnr/U0FKcuij28U+SpTxpR1l
bA3pXvyq4taViKKqO+dM36gZ4JspT3pFYI3lJ8ZpXirgPBePItZ3e8W7pGiDY/CF6wmrYZKd0zCh
agaM8sYcJkk/Ok0brGJH3LxS8YmPZEPyzYTka55zG00EdlC3IDm2eUEexrX+mbVCk4J6r8w5AfRx
2RW6WkUOB7ZQsE+5uFhG1tO7OgV+S0t9AID8qkNYAICYZwEg8FhoAAhH5PIXYDprpntxbroDIafR
JhtQL2TGl0M1h1M382bgR5WwhCY+yhYTTuTSsVx0XlvuCjBEtld4Isgv/PADP85Lu9gxPE4jKITY
6RvnHxAJKpZXbPby/hZ3jpouqGBiZh0sgGDgMDE5HbycGo/tlkrFcwUDT+sR9ux34OXUoWKd58Nh
VlC8Kj8ThoB4FD/HzgkG0s+h9nE65hhUZaf+wop0ecNqtLq4XvYWRgKMiHMLQa+Hw1RQ6cpFpQ+W
1iIa3lJd4gp+JQ7gTQ44gBfmZ13kdT03zoPeWus9puZYrws37unJ8aaqTyB3oN2y/U5P79ZLiW7w
qFgOFXrxYv+37GMDnP1LFr/wI85OIxGd44boBzTEdhrCawhqti/piDXoUFNHf9G//2qk++0C1ZW2
YgPT04CFR75o8Mh+JOo347h5mnVt6GlqzLOPXPEi/phtf5GffzWWVBbV0k5jmUxD5H+/6N9/NWjc
2S/8l55p9iSXDi0AeN0ohRlo7NJtlq1+0b//avAGRwu7bWq6JDCusV+bhLucNvr9NMsWr7IFjYiI
33RaNjvNP5zoHTpIvpDca4X+HvRQBL07Piv0vSkvkDFjm/TGvWDifBhcXo6HKoZCLQdZNDCZ8bxG
iXG7GM7hkAYWWZbQrBARpoTO4LgJVs1KkAYwP87aaezkZIhK3yU8Bn/ow5JbJ4elTDpuAa+joVoJ
Y8v2cp37TGvstnLtt7pnKrAlWz6j8h177oM9y+HAXpDdhG5wKbmkjJPLTehi9niD2dr/Var97XpT
qpzfK3UXeZz3LmgT3ktm4LjD1Sesqf0WxW19Mpr2XskUqmbuFwmhLcarqI8Rz6wcVK5GJ0c2lTNz
5cgqx18DrKJRSb646l+F9uVZ//Pi5Yv+s7DrWn+LT5zsT9orDovCP3xUmg4IH8Rh5wOLGULHfa8y
jEQoSslHhSgTYVmkxh5/i7hNDGhfIyqSDtmiCi/S7k3EUcXKCm++ki7GJYEC+7g9kQwUrWn27/EG
Y/bQyWZ+EijWDLOqGelI+vjyxTjDXq/c0hEcC9pZKWsc1GV3vGpXvmg9a+hDujxZVGsO3q/2Nq7L
VQjpy/IfVtK+KnkFM7U41n8oXTEG9FrsQEFpUBlVL7atq+ECZ9rLYA4codnMoBebqG19PRmlACba
lb72YcBOIDnhlBguIrHZJBxRafSf2ppX4rcQ1Pux1DV9G/FjBcf378M77WRax1eR53yZvdnHy02k
rU7FDbujKY87MD1EN/hAeT7C6nVfzZjue2JUeDozmDe/ynX0T9mQsDwFTXZtXSZcajpySrZ8uiuV
Wvna4oS3jbW7F7GdithAALnqCKaafj1CV0X32ul9tU14BKpObHin6gbJyY+0Ed6JJ4MPNWZtFXzL
vGcu0W3gH8yN92gkh9rFy8VFogN2BUnk5uuZ9EKmIJGOqmF8al2QB47r3KP6WOryf702Gy/8oYgs
FUosKYIqW08VYaVM8i0cy5YBYZXPjIdRFeimNUiDYA0kpdaP/cfwg4rrwW09EkjEvZBbASCsa9NX
svsjiq3SVf39pLvGnaBVdBC+t/Ra5nhxWSKXoCfjFIbcNPlGDA9V3V7TzD6icGIle/pCWkpo1ax8
GcMmEe6qkyKIl27bKqW8tBaO6tQB3WkPiXbZQD38f76TuOEzXdzEu939ejv6ZC8t0QSp5ueP91qE
JoXi1e/eJV5lUKzjXb7VLVl+ykh/Uy9qwQEjq9SE7+yxdqFEJeVY0U7c0n5axAINE0eVakkwK98s
MslR0gTA5ZUI4GOrjFV7AWpKHY1U/hJhYb3wnIVV0by2QqhoIDiOBr8snBl9aUaeFuueqTFm773R
ZXJu0JvigwZ65WI9pW8rlferzDC/s0DhBaSGfhGdcEyMxm4tkVmr0V6La5tqTWqsw5iyg1jcv2aO
YaAl6ccmIp6x6C1FKUyqYiQ6/W68AVBE9nrZAg6pKXqQQJa78MGMIPxSk58jAqz7/I6QByUxCKjz
d3bmOJktlZa2FOIPf3J9ab6+dNSwAFHplJ0clbPtVw/luSabbgBdh28Cp/vMaKw4XXfGFei36oGo
6brMpZ3J8yPomU2SVDfJC9ifwqHYIzDeaDvScmZOvDqrTooLu99OQXvastDlpd5a8Jlnj9N7RwHN
HpT/Gdila/9ExUf1W1XoqzeqDri6U7+1eaNGv7XLM3s8vUe2FxSyt0M5pPnKU8nidhsWZ7ZKD1j4
kYpNuStIjVk2gtlOCq9np9ELzfpXSYvklLTQZOTJLXhsTFVPZ1sXqeOdTCmtRofhDzwwyJ7yoAM7
dMfKVM14xYE2ilRzkV1nh2ldsE7ElbTWQvYnVAoiJkA0V+G9qq8O5aXM6JkgsGeiL1fEtJw62Nfc
vj8uYQ6jYqjDWcSO99XxGdowCBnSaztZDvJA9FpTtxNoJjfTI+6VfF6Ltaurf10X85lHn8Ouc+q4
neWBV03spN81p9cxs3MCGFSY1E8bS9ScvkE25JhH5ZGlxcKZyUxV7B56sVTAHeikDLLYenpUtkAC
HmKGfcTgDvo2teUK3H/q0liiWtlIJajS0xzuKEftfM+bCnF9er36SZuoKnZMdMCvorqvjVJOHXCF
Ra6NS24lBL9P+H6Cm1PdOttjV0Xtxj7kMceiCs5wtbPTa2N0FJhDQ/0epFCwKGlFM/b2izzj4jjq
e2m/fHUCn0JvuSsIpczaAxA//lva+1Q+NW5dmXBh7uRY16kDe2tZOa+HA5HFEKFNwbo9ssAFqweP
LwWHBxvh2FpAvoo+BfbVf4ln7FloyvtTebQ1fyc0hf4eQznFYEViaEcTHenKhqxbRRM+CKEAliJm
XT0sZiXKCpyw4Hktpxyd8dcMm9dDtSwf8QpgJpJHg2QON1iy13JUePxpFA9ybDEjbJ9FG3GSOkWQ
KsTO4yvTGVv4R9PyvS+Phj3K8zJ74PpZ+8qNDd2aKzcgdGtOx83oxCyiqeLyvI4ELPkFS+v1fV3X
q8F0SIXQOv2E04hTKGvQmlstXQEzZsLe08rgxk6D1ffX2977CrRfDd4PFRdre63X/pTmU4m3hqwI
HbhUhYKfEfCGU+VEc6YPOq51uDBs4aoE/Irqx2WP2QVO5wE3eAoaen83zMZuANURp4lQhQ25YmgI
/mswIGiMkoU88ByDtJCn2438AoM07IFomDPQKFaoUayO1sVuyAw0hP9taIq9YRhzPFD1EsjkvP9V
Pj9J6fyw+29z3SHm57ztemfwyXONTXg6E7Yo18JSDYETFhCLpj7b7sgjmgXhFLh6LJYSvDXYT6gj
SwWJpVvVmbrWzR/huk2ib4jGPQIPRfkgHuqzlOvImrRSrEJD2zLFeRoNOI0IxWFPrmU5WyWsNPyw
FEVTZcpEExdkuOF9pDkxy4S3QF25NaabazKb5o3ImsDOKGuymswygiMGF82OTkDw/f/fc1SxAGiy
P6FHZig/z4wm7pCrIxaRc8eH+yz5M3jnB8PWTXCQhwCPNwN8Ggze3QxuhsOnN8PD4DNvOHhHf57i
6SBf6An5h9CGoKTG89Z/Kp8+3CD5MKDXYeDf7J4q+j/oo7n24WZ7uFkFTxEiWijC80GPdXS+Zped
ANxQCTgB+LnTG3RVV4IousTSNLJhpRpd60rF8Y+ExZ1wNF3411CjCGEfjIJUYVdhbFxE18a+/1mz
plplOLHqp6Vdaj29a6VzVohldVi1V7cYy300F8sZfxSoD1CG+UicxGj9EAsm8lgdRL981NZwDx9p
HT8fqg86UgECEvAXhLR9WPNHs8mPZvMhwwfrL/3iQscEJo7c+SBhORYiaycAPvjATmJm0Z2Pp9YH
iGFGAutpX1Uz9gejYTin2oz2zMggW9NAkETFV6d4Au2kpFV8hObNHS2TNkZ+aE4uLtzul/zq/pnO
yD36vYRIvv3NK2HK0SdIw07TTU2XV8jgv4/mEgHY6bm6h4+797h12vYtPJF39R6a4XAqGfKT8Uk0
gtbqpP+APCGtznpDNcFqa+NPgmNoG5EPzqRDCQa9BTr/TyIFzHNLhG7FnUXffQm5k7PHOyk9tI0R
VllFG38WhLc4IZXV2Ua219HWXZ/tsL8z38ItaKOdxWW7aBSU8/or2uH32ixuFWFfH1cE5VfRLFD0
MNdWUdvDQbzdjEXYsGLxmXFczupgQw/78xZ/RpVVv2KaZx91e6vBfihEXG9PEBmv1C/8gEPvHg54
rADVOZOlcb7a+SOF70EAVUZRoMdrwW2ebaKm2tMaJMUqOK508oYmiVjtNUhMomynDI7UnOin/P1t
9gbgzPWxdOy5n6oXwluOPI77d5TbSrRwSxImxGgl1zYoTcIhjhLMDf1cIjh5bLSlE1HcLjQY5nJ2
sl29m/Y5vTFTy39AkdgCb0z04zMFE6cgYaUCSaMOHJSoynizf8pS0HgCv2WJwqLNvkvqPTAQ+tDf
jRsGeofzcvaAT4S1CZFgUDjilvcmZm6udGDQmXEBNrNQhGWwNzcIAA//XBypvWwAnLOu6IgaxNCo
LX/Cg2KwYRiQOCosqjTQopwoacH5EfYfhe/NWv+oZXuh/iNu1hHa1sSCAJwaKQZd8VHWANCkRMIC
a1rnCAgOR8gJtjlEkixxD5sS3MLREpSWMlzUsW5ww2is8M2arcDcLXRD7BBgXFqRVbEiRv1+zDiO
OUOYlkSmtJj5jHnBQCmMq6u2Nau2LVYt0qtmDSTgMDtng7CBQPQFGNPXpgWoWZZT/DFh9ZHK6fQu
BZLxeWQLtK6tV/vTiNZQXeBMZgZ2BFr8DbGYO8OG9nbiG2EDTP6eeM0xwdKZEDD7KHvXbK57BAnX
WvNp36fhdkNUQMMO90wpMgjawLAAjAAM3iV2FNsORTnY4tONtpKNJvr79ngV9hBg2acBnxrZrgaK
xxqicdYebYrCG7fSeUrwimMaeW8+EvT9IIyUIrZum6XryQpmkQ3sQWK1oKMAfxJHa1ZnmNNd9CD+
igbeN6885X3/4ruv6Ofti794Q8WjCR++eRV2/gAqc3Bzf3Pb7abdy5vb1/TPzSWTqEEr6KiX3754
8yaEleQnMqIFyjdgz9kgep8+XoKz3Aw76sXbtz+hIBG9j5dAhn7o37zpR+YZlQR++2k/uPn84P+h
/0j5p8GB/qVyaJPmIey8q23uaWn0X3/zLc1S6MMV1WG1nx4gBjuwG+/gMmVXxGAK0B1IDw7r0eiA
WltUS/9m1HJfiKZfSb85BV0ZtYJ+wJ0Kgn5H/fjDGzSGdrL3h8n+sNBtSbOmhUC4EdSIcn4/Iv6C
ev2Eevzjm6/+8eoH1PLoXEoNmL5+YPiaG8PX0HiC4VPM+DPu11FZgAOLODDR38Wb8KHOb1fFt5fk
FnFI+ADj3tr4j7VhFR4JK1zJz8bmATt6FQqL+tbyHvO6k7h+e0esIDPTAW/ZpR9MSAFE/KQaFCY4
EylQFbECWezFbvkfrCBtyvK7fH27e5MnC2oWDn1L/FPwcEQZcFtT862eYe1PIUANOdjoMQM2sbx8
LPdI3vPa0Tsuqd3xC2HghuQbufPBDhAr0ZY4LqmlHVIabWacxYggIHXViPA1mjw2oknI5hDMyJTq
lqqhfuNzLXAh49D37gvz8li0k/mgCfFOLimYVqJxUyu0jLe9mplxZ6FuLyAyJ5XdEx7xvaIjHjUw
pqZHrKFI7Mr/+bbLe6vUgaMCPcXgvsblZg2Z9OXHb04Nqm2wzGpOWpYrJ85mhRkDu0uszVHQw7kr
sQr9dUqhmdPLYoia3LoTZUp3dHJxRhuoAjmArdhZDSoAAcaEATI6VzbO7RXQepjSeIBBfudwamnO
IuhrLenJ4znCIENTUuGDYOLqFZ0I4GLxKwUX/SVymh1NMTllrQxKsroeQaYETrc1ZQVpHXu3fedP
XV9a7IZqes4BVWdws79Zif/JkiuqGPaIQT+Fj1Ke2CnHKvXRJO6FzRxDSaq0PQtIfzKkuqk/m7kS
z0vj8xNrjCsWJRDaxR0Fx3WzlBsIdIW0CH+KIb+7aR0Ib4vDex1dquNfEjYFWiaMuvILvE84VJPp
qEi7MqdT5T1DgGGTSJhd0lpXiM4Od/ra9wcoevrSXbWwyOgfJ/W4JCLTtXwJR3cVXHapt58j9fPh
ZVfIamQDVHSG1MNfgB9HFZ8Jsfr9pX3aYKJOJ7kH6euirckCdscuc+qmYRK/IL4Pf9H9P9Zyf2Yq
/jPyuBIqIRv7C/Go6PRWEzolf+4jq9CQmDVd71k84msBIaYlkJaNpOxwoMW811PN3wP8jeb84rDg
qZbqyWQUSAa50Haz+24cICpERZ4xcba5Eb8bgRtRfKbhLjpm0nmjOl+q/twQlxLUYlmn1li2Nl0T
C8B/rfiVrcRFWS1JZcMsiclZofA25WgdcHZqXJx9snz3qIw6YW1e49ZKshr9vspoXC9B8VmPRI7b
GuOtSmqVAjXtN5uxE4jnqDKYe9flK2ebxrszig7N5pw4+c/hBlnvKsqdxaPS1bbJ3JnejDr5iVOf
o3i4Os0v6qpsL1VL9CrWU6srKApsYmlFefWSJOsPdZmt9puTHxpmdXlZ88zJZ5Ro6/JaBVsnv1wc
1uXWKrVOXtYhrssqysVOTmKIs9pK+YObU2yR6rLKlyKv8QVWr8WocyPG++a2rumO60PI+k0+SLm6
TcCaf6+tniZ2Xz2qA6VIexxs4XmtHWQaWVkObfS7rGoYZHL+2zOpcD2qKi6VclAli2qDRZbrVJCO
mpzP89zkWbmRoMuZJAtzNyp7/ztyGRAXPlSxgp0SIQuBFlgGqkGi5loseTRmEV6CWxmtrOsZGbih
2KAJTAupA2BKQNlVtoWrLJANiPNNjz7ktYJnrF9OoBb47DM1M27S2AQfLWk2jXCFZ+MvTK/z3lTY
yslgykLpQu3T4IWjQe9ZDZlTsL88AaMo7u3uc9hm4Mqd9rMH+YYX8iPvOi8UzhWOnaqMa+nmj28Z
bG+MwoXUUSAttMiVY8O6da9orn5HvbYirgSEWmgW9BkWNNF+NfQVA4SL3aJ1M8WspFJyhQdOHT6a
7c0x4bsJ0V5yJkXf3Fxfd3l9RsTJF1ihR/9WRjGqXHfoMYknxFYrD3pFa9HkaPzz2TyXYzdqRLcP
gWs3nP0bv11czDoZXC5W6GWXCD5xjldGGzYqyXk6mtnQp57rzyhiJ4aPAEOq75RBMTUy+wADVsej
bl3EFC8IWqe+bGso08p2FkJTpEyDdNivvBNADsVVoZjCIizQifs4lUWjlufxZnqG4KkJEZ2WrdUu
5bCxvGZEDD0eIq+PiZnI21O82p5PcNTlAxGzfZ6BrDw4yTKxlfZ590mZd5XKeBPwlyf8RUvqTcDV
SwMsgqI/B9M99sAr+bvKZGyxbH/S8i69sHkVwlMGYtlcVcnKKvx8JvCzQFPnQSgMSJeRQ+mqVe1N
Fy4YiIG57FKfjr2SWpsuHBgJPIIAFY4litT2bn27TbNWx+83oWsByXIgz/4QwtWOzoFr2OL2pFxd
x3/nqlz0baHWSUNOzLMbH1Jc4gNXgfEpWB5kHPE1raOxwV4ojAOkbqDDLiYu15A4ITUKJ48Su/OR
6k7M4NssowasQ7x3NxpQ4ayk2uHCKXXCgVWK2+e49va52h9nGNAUti5kjGJjIU8xPnUdpWcrhTQ+
/bXkQNSW7YVzD++n381xFcWdrdr1amYEYd+3Nlrnj+tdjrH3q9ew+kInwcVxwXd1tS+dM7UQ7kjO
fSt8i57rwuVVaFVyzuaCPPALznoM/WqntZgXkYJwUAdVjMfRnJ3XWTTtPTJQLJL1Lb0rQu8YD9KX
VxLmzGQx6hKzILPMKNzzRbOSA9oot/nGj+RLIwPf1Kjw0eI48+/Nr9OLi/n1iN12A/8P5nBIO6af
otdIVJxkxjaHZlkf40EyfGOFOlui2D755GLdzpEhPk0oSBf360GJ+7WRk52mqUImmCN9dYRGgyYa
a6z4CCGldsQjGnE8GA17Iy0YHw1V6qLoz2GS5rx/0U9aUVq4rQ3LfkRFoaigWVMHWgQO+Km6+zob
Y3ZUxEP2AVhfUZaAq8+XEFlnp346euVAqbGOvOu1CBkjxq7KyvGQY5WVouimVXH0CNJy0SFof/Oq
cjfvSmmrJU99iBbe7R8TeWdA1CMtQrZabtmJH+Bq/ac5hDgrlkvX2ScUGyYiRjecS2VoJ0ElPtl6
nZ9itN47Q0amxgmt6RkcpWaVmKxwui4eNP3g924a2gB10bJfrpeSCT6hzgW5fVqI8brFqhNdWzs3
j4nae44c+Kln7jrKyjO9FLQOX0rhIqE8PxoNpXxzkEYj61vpWI0FHDdwvRl99gcE+I2fw8Kz2NBF
fBUnsbRUpwt5JqO5RkWBP3g8PQVVzH6W6x0W19ShnkFZuljatM2BYI3+0gtWO6ku9/x8+G2CE7/+
SkzQbwuEzeiVo3FvGswLRJ+9/erNW8zR5rknKqQnrcLItJrme20UtDujCVbwoaTYqu00WLE1FXUO
BFrVOjlZYJwKdd75N/etJ8Hh3U3bx1365ZDf/lC8dIyOqGElswrLVHr/c8AAaIodZ7xV+1n9tkwC
bTI8Zem93tvMY2nYUZR5aQOZnKvV5uDq2NqA3YaWOseCcxZsISI4WsFDUedAEoamYxcXU8g0Hown
xAqU5I9CHxBZlJ/6n0CVprJcYCiXKb7m+HwE0esM7GTFeaocb4dWyp6dqB6etw+2Zo8S/CMjZiWr
YZ3VOiIib6Telzw/wjf4u5vd00HrP4fmJiHorfrraF2wCp/hskh8gIdZ2aM6qlbrQG0vLt6zF1+3
8sC48mhuD4f3wWMz4Q1oFgl5rgl5DhF1ypmZHc3MGD5TFh8faAjLE6f5PL7CK1xsT0rBlGViazTH
TTxf+SfaYXI9vK/65IIJdEX3EZKA5fq3705T77Nknu9rPix3lUQFZ4o8SckZNkh5AyxKM/rss2Eo
gMdz3JPAieMR3pAeVc1k85TUYf0iaPNAyx9K/1q1iJY4+uzJ1WdDrShmoEocBHoVEeXFMsUsrjRx
HQgIdZpRx7wWV8SaVUxdjypWSzQ9qyUa/NfQsAuEKc2AYfSmwdHoKfF59YtJ98RXWz3Q0eRGHTjy
sgqkJgYwNujMia6VPdqAW40jOewZZVer6dhVHoNQL1AuRK2j9+sv822TNRoS9Vf6RSflUt/gUUGk
p9ypiJv7hfZ1vXpwbJ2v2SLFI0GfEIov4e9nfz/RXrPpP8qRXv07q++f1mEruIKuIx+GGj7Hj6n3
Jd+5CLzZDU7YBTPH/cLXA1YC2xaCLNGEvKvnisEOwzU+ZHxF7PhBQtS1MbONKifTKNdmxEdxoNNT
tVCdlW/CY9fgIx724xZRk2FF6aJgZY2B1Jw50Qkbjphzba6XM0jSeiPR956zl7rN1tX01EkDL/Qk
3vpma10ojLRGfOSqxlMqbjAKxk8VsWmMsQ0l2aUsVpW2LM/vX6LOP1b7fPGko76WqBmCrXYH3BXw
J34ilBR01DdRR3XUXylje/Au/MPN4Kathk+p7N/qJWPqWzOMQnL4XfTAvCm1wsGB5PaFIwStdGQg
NIjgP72SMf64bIpv9pu4hyOK/c0+TufEZShvzJ4TiIlJtaj/cSv8h9TGgVSyOr64Z4O6mtCD2fNu
UKx8SsttI0di1Z3rnt70OjV3PInc8bBaDiE0DbombHZglI0L1rx8K10EjK4Ey9KbybV31K3HNMJi
KL2YOhJLR4otoH1YAbvYWxWY1K/Wdbeejcrk/mCClDavAsW3Xmzer6/s/ivluwGWCcWkinxXd23f
jMGO6RHHOr5VYTqhPTzV3icAQIDkcePfFXG6jNmDuGV+IHgWsfxrAvzmau5XFCrNlslFl3FGZC3U
zOnnZKML7s+D/sjPVaLNxo11eGgjKk4QELMELilBNNjRfg4ybRZMI7Sh/Gl7xpRiXwdfwM3D5VU4
ol8amz+FXY/WfHuw1s25giP2cKIW2V22COfHoDeJJi7NO2+1ChfCR9FA/1bfaWMA8ekAbBy+R85V
EQZUj1WiGfQX5c4L9q6Qa/5ExeyXmQczMeel3HHh+IgKm1QxzoRldvqMpTZQ6HN4uhL4ichSaa9+
n6Zwn8Z7S+9OjitcUTZD/LG6oLfWwYwJtKZ3oIoxk9quWcbgB20DC/1CTFeUjM1yQ8cr1AeAA/4+
GofU6Y0sHsIMOE7H+Yasvcy2E/E5AuwBEiY4Mx3fi3XL4fC9j+DeQT8L7SxmcP4Qr0a0bo5CeBkA
GK8rfP8sVq+BYxb/UKPfY9wsOWttIKVxDmW0ra/6Ce9GoydUB0loTkc5QIir2xvYEoznzmkn1BVl
deBVvZoPFVjtp1TgGYHIQk7MzQGxPV6iqv+r2yH8++iwahr6VJEzLf2+uXDb48mw5MKnp7Gq4Yzi
O3k5s3b6q1/SHSuEZXxGLVHxiRockfOxoD7qF8WJNZdzKC4v0KQ53HcU5K1JEte+ltItnzpXJH88
9WY5XsGFpU11wo+Ibz7jvRKWTn/TfGQRPeAvBloTOsoi3IFb+WNWUkX3UZ8lSMdBUAbeMDdufgeC
157wcRCOlV/Kczh8I+1lQDhfm7a5doSMuCOKNXMgWgWeQKF9ol0IKi+oRI88oSZkG7HdQOSFRHX4
HHg3KETcicMw9s/gE1YaIWw2wANU2SuIh9cBmpHnosAMoErAl5UO5nbN5Fncw04BS+kcMlIjaJqv
oBoPe2xQHFU/QfXm+r1OswoXHwmauOoZWbZcohLDwheneTXm5MVFq5UV2NDRu9Vn4gz55NRb0oo5
0UoR7jU1wWoLp47aE8GPUacx+zvQ2M2oFXkwURq1DmxV53Um6u8sb2t11E9R59rvN0WvbntI14tD
tkyy0WG6PeTLiY7iR32YH+DS/ECgIF4GPiS44bAVDN49h+im87yTT9Qb1KU/dNRbettD3tnJ1T/o
+XDxh/7NfavXUf/kNkO56jqI4FC3Kp4wDxxBMaCCP0cdreuqLb/eRcMD5EZGBbaNXL9ED1IwHFwp
71r7VzG+BqPPzNNnz2nnX3fk+3NvSLTZhHa/lBrn2WK0y/aSp3gbEgGQxTrTHiq6kkM/0udtOHhm
v8mYdRZ+dLNSNZ9Xs17vtzr79nlNGVqSmvptRvrMcY2lCvvmVIC1ld4TRJNs/DBUJhZMOOgqsHDe
8Nj7pW0iJUe/aMek6pc2N0YJ+/F6vadf0w4eY86Ej5gnZJ7iZeT45oU525tsm3NUSgKWv9gwNBE6
NsrvrlkIhr7xw7DiE+5EubfqLe/R6O7V4MY9CZ/tV2MYcyIBi2PJkZQj3dYHr9wU1J+JppRbON8Q
nuJCGBojFSI5DbQAEaIDvjiMXSqU+6BJzvttvKkSFP/VgRtvgLqu8pjtUF3fbcz+qtreB+3sPcLU
EJ2+ylhN3mRzlc2T8pWzqVwljFJPBKr4bmy4S1d5pau5kmIjwKOjRWihq10FmUBnYmQyv4GI9n/b
dHJtNRN6voJigrkWFhwYasjHthSM2k+L5QrCxAwqZj98+HKW6z/x6Fddfa7idlWupCI5MFzSqXvA
SpBsvuci4se0oiV7P+dEVwvj6hBfVB+NAXwLj+Zc66P18rt4lW8KOks1uyX/ltYTaoEOheFxrsFl
nET0/p9pqqJSoUVEBYlrvdm6TRfnrIANp3d6Z3t2ddozhy6v6ZE+21WvX+bYjYovYtHkKp6ZSAlr
IaPPEpVEo8tAPdedKK3xuERN/n8/+BL19PhEVIYkW5sH4A6qOj+V6auZqvhYF/00KUSHUBLMer6O
+JdaK8JU5IcQdThyOGhGmJ43E3MZW1KUThdZvOIoi2cuxaGbAcxaZESt7ITSgd/uW0lDpeK4tWr5
UxaKJj1f5MQQe+qRQTL6kJyofhTdecSTiJHdJe5JS0r9K30qQ3/GWJV1ICyi9ZKbVyGlRIkJkB4m
pf1eQVsWVwsa1NLVhI89KJ0TA8moQjOUToE7GX2TaO8S7W3Jj7ggEQFghTbRXObh8M+CHXU83tPc
juj7z9N8L4HXLi7+XmT8ZeC/Mbc0h8NAqMAANoqVKH8VLNn/fWQWpuOEzOJEJrPCOgpKq7yWfNX8
RJThkyuiap88e+7JhX7pFJVEoUb1VR+rx86JyfLIaTFZiutdGw18rEHRyQCO5c3n4MXq3ngMKP6v
EbmsLShT3UtLqLm8HhnTLDUbill/jEbHDqpigXrSpgp8icapgOteQS6wA2YiDPscOyLRADwIR34a
lKieeuwzqk5PP0bAnEB5znBFmCxDOEs32XjD7P7BYKB6mYQNLAn5sJqboN5ujAliTV8CNhANe+rD
+XMrJJqVhEQ/y6mcPbbIBUVXYEkOqM3+OHvVDfNoXdYu2RxXtmmeOZtjrNL+RO+hMAnUpNJqlXvI
o9nFhauC7LCALoLhaG3uqbzi8G2WWCzmyjnW/XH0MN7GE5bx5ccQIrXkloq81oka8yv2Zjtum7xq
WlvzVX8STUvGSOGkbJvEHs6gsmK8wjFQmChvv/WqETCdfqpVtLy8sqEwjWVB/18yT4uhmgjcw+NY
AgKDVT8clpADLq5XfYNZpqBHaWXDaXCc21AqWoA/V0lc4/O2NCVlvYzyBob8CFK5flLDpCItTHuO
rcFVoVqpXQfajYsEnfH6j1fPaC0jjpnE6aXo6NdQ9DBoSnwn+nXnhhDYz04uZINuPTtHNetKdAVk
iooN0MSBpj+OpgGEq4cDPeaazzajsvvEUkA0KzltcoKAasI9qdQd0aYLr6z/Mrv76FyYVQsnHObN
FsS1prlhEQD2dh168uQZhgRJ+tFTLvEaWmpaUl8wGW2IUQ3UIBEoAbhPi7WNJjYbNQC46iva8vKe
YCB9OTupntVJ/YmCVNXRIXoYD5KhBQ4lyrFsqWn1OYylpnaO51sPxVbeEArw46szwiPjwZSIFWpl
BnSXgZcmzExvZxBGRnTauAghWBaBn5KIyk5cLF1gcQ2u0fkMSXjlYv+u1rx52e99iQTTH16KyFLi
TNZZBtophipboVTCF+dPoLqPe4NfcZU4oR8d3RTqD5iHXqs1DZ7wlCjYubKGKu2G/+CC2rnQJ4r/
h1vczCEs33FaylPDniJYKJ4qq+pV0oyLKhpe7IOnBs4IGDoVk2m700HFsLfnQw9gankK3jC6B7lj
FAU/da3IOJzLCxd8Bfmcl8jnfxjlAVd9LXcvmQnB5edIUr1lNTGdP0ZME83wy2A2JOLbikHVggNR
EyZJ6tULlw79OYfHkrw1HzwztyKLy8tgGS0L1b8KRcLiWxOV+a0Zp1pHTIGwpBiQedVflgRw7ptz
5MO51vQ34nBd1MnhLNomWlsb+t4GBtyXl5vAwajrwWZISFWESVQV3k8BzMUFp5/hTPEtOP4uridH
8PSyyCCpSmT/blaR5ZbLksVMHrkjNcrS0UkdcIhcaMlNtCflgKgMowUwUbmokQfmIOLg8YZujhmA
FFQHe+nUxkG0t/DOHhYIGJvH+phNnVl8F+uCfa6nwg8Z76NasjFRg2nrCg6vNTB1r1O5eD2vZPoW
sDjBlcUxNAlCc+OGKhwPV5X30qpyyZD/GvQx0cAI3Nup7gKIUppexs7swUpH9FSTarAkJiXMZkEg
FjpxktduXI5A0fNB5+cW2iCuzQO7aDVrI9Qh+jOYndGPHxbAJ41mTqBRDZWTCGbWFxf4OxhzKitc
SFj2Qqwyh16STZ4M5rgwLgWzmRH1G5aiziJJJTriUtAzTwDHJgwTFJV00NppX+ai4fYynFV13UHl
V9Xfbf5A6TowHDiU1f6dkqgTLzbTGL4SA1gVd3KVpFFnTccz33+MJDnoqGQUdS79QXz52zDAvWKS
RR1/8OLyP4awE07GUefdJZxDQm/yQ9B/gnomOpFKT6OHjdasJdIp2a0X1D1P3eW7PMkX1FJoXPLA
Iw8Bc0pIFut0ToRUkkcDD8GpCXT/lE+me2+okhmlvV1vKOnL9X6/XiKN5nShkqVK6m2yG/A29w86
BMZ1lmhVprtdRSO+Ri4ZsYv0tCo0Kq6I4jTNdjsjd0rLQmthVA3qxm0V7RG+T9XfaHtQN0QdnuM7
WPpnt/t6vZ7vwge9IuHDJKvq+QlNoQ3CWP6rM3vFU3EbDSTh9b0rL0ytWYR0pq0zw8idGv6ecXb4
8Bv7cIA66phOzM8ZlgBvpkf0+Nt6vcTvgsiKr00GrgThhKj33nixjvde6DAWu91rpPU98+SFHndD
XhDC9mPJVw/z1OIKK3b9ODSZfS+9/0kC5eLC2jqBBghaZgte+1T863MONYt49nmeAetTeeeeS9wV
G+VQwMzFhUeL4EEfkZmgGdO+MUvE4bO42CMTM+s5jl1BwWQlmijffR9/b2KL8ZnXqv61uZvcO1kc
6h50LYik2nzQRNWMkBRBft0/0YKZwTKHSU7pHVttINCPsZifw8KI1+uceKU6fVN30iaVSZvQpE20
OZWZqqmwgmaqurYzRsmDIezcGhzMuQMTaETdx6fxw8WY8aFixpOwP0SzshxBzD5GCfQvU2P1Lyqb
UsjJhPI0EWao9a6+DLmZjAjWaI4lvd2+fPNGZqEIXTflw0Dn8D4fEVc4POEK7RwitF7laBfzr3FS
3F6Px7SUP6MymJb0x1Gy1nIEnK17hC4laFsKAlNkEdHQ+Bo2KWMBFYmCPRU2WJe2ECG4Ja9TstTf
pETT3ZYNzu5JxE8vvt2vCZygdDhmN9fXXf4kzs3HdjGSQp/nfHkDW2Xjj139zXE4bmGbi0OpUxDY
TMbWu6vZRL0kIjJmJyBFWzQmz60fnUaiaywFLdZwjcMVm+UxiSdr5GCXVJoHmRBjO4B8eoOh98uv
+vooNFBXO0Jnz0p9p7viwqP95CroXHW7Lc8LEwbbnlc3AwL+dZ20zQGSI6MbBb4VMCYJ+lSNxyjf
N0PyWslTbiCAFUmq+4Pu9MxLlCQyuHHQHxfbn7edydNidzCYytQEjf9nnt1DIcp5xfl/uV5uCP2P
eDZA9Cyis0LdHkQItsFMeZdPrqo+MBnu+XBbXOJX3WadLcEuICYn/dAhDYJAAylAMuJGPrJtuJ/p
Q6Lhr7EhOGmxYqKnNQELZO8Edxgfa22lnI2CqVmeMfuJKznL73TYYLfe3t4SibvMbB73HXns6ezZ
0wNRSDIpnv2UZUHjPRQp/XIVnF7pCqfRbMk3Nr0F2fAm/y0D1ZEtiQg4HLrs/WKTf8gWoOz4GJoy
6dmWnNkbaTKGwUc4orlM5lEC6+mlNh5ioaxjOMTCRDehLRRnbZxpB85yuGl5F9LG6lqK9yoQVN2S
aGmbLXIw4V9z/T9wUQk3LwdeU7i4SRaqz9MpxKmJE7VV5h1VpbdMKy+yGgP3Zu24+JJGqPxN1Pm3
Z13Q6e8jeKUfPiGSfEuP2/7NCsm7qPOHNsyXkj1sn+B8Phw0bvZD2ILebG9WUCjcElW/pMy3Yh6V
rhfr7WFE7DX/wVIdsmWcLw7S/mG5htN3oVsOxmfiYYtwa4ddFm/T6WGfLdiF4IFL324Xh/ssmwfM
PdwRg9EP38Ex4+EdoU86k4ebSyaMESQgCNHde+nLX756e/j6qxevAqR9gB5l56ZDjx9pjH36/S3q
XAszfJMM3l0P2dF+v3l905HU58E1JwdPi6TOhDrxQuqveDtkLulLqhvamslLcEL9i2HwazR4dzF8
SkmvKOkd9TYwHBNN21cnBpkWCaUVxkQlr9EuLPJbN21Y5YcBRoTF6PT/EA7ZG2/IXprgYz/5S8Ss
DILkqeRryLuTb/jvX1XyN7Ei/itMP9YpB/ZkTwma9Eu+DeRjRcSFQOHJX8WngufRY6TfjsnfouS1
9hHw14oj+bKGIPpzQtDU35QT0PmLhdF/qQ+xyXDeEZGXODFRTY6tfzF2rQtyBOjeOPsVYzyoXZsq
WKtXUruwKxeRpkcbirAfgwzn6i4N+tAph4pYEBqXK5GriuiDDmZ9XD9FmL5Z/OFNtt9Dob+9h/NS
1BMvQD97P/4Alw5yRHPRuJMS/gOdBBi5SPBFxGjkeIscgcDj95A6QdgLLP2pfjjf0e8269WOJV/w
1bH7KSOe+y4b+SLpHkF270ISKkQwNJeLxUl/5Hui/WmvfAsj8eQ3joQp9oETIgACVrLPhebN1ACu
0uIhhzItXbnvjLZpjfKXmTVeXpvRqO84ZTnpnPZYvVKI3LNq8VjflZ2VvshFxjGoMSx0K1qxfEn2
ofEPTHOqdev4NoGw0Iu6COGUfuukY31x0V/utkPNmXvlu3jhuww8K8Sw2/bCkI/2pphHpJWgrvqi
DN0OE+69umPHSQ4fs1UeoDxcJQRhTda0Pqvc+bhxPXnDE4zcN+RpveGHl3qv8stX8Okp329ZaiLP
uHj7r4TWLK+KiZcZlCKHg/dU3ma925/Guq0PdHsaVXYCb4NjZYLLOiIfPqp8SFMlJ9aEU5VxhePi
7E6OlZst6tobRjRh3XI1RppRhvjUynGPihL/+uaH78+bFjmlZrs1lklpIHS7qXAMEELp3hA7HlfA
FWzl/IQDlrrZTjIVt+4cmvtB20WGVzwlV8eAkxP2UEkseDoMOaFcDztGT2E66qa67u9iOw7+FDKI
JPSW774lpEaPd5r5+xscEqjJYp1QKnWY14fhubFxElgKDJMLOux8uLy/v7+kcSwvqdpsldKB5Zvh
NZaRxdqYod3HVcoPtLqbPfXhw3JRqWi5UA2W8H8ApGbFM5H4C+jmmZEEOk4I6oxFKteBFF2Jc02g
YHTvPe089RxbLe4AmupIU9xKR+rkejrsQpoxwWs2ntB9Nom/fPet6ZSLMaSNO2J/2Gez95S74xHE
0GE5eQgNHhMmRF55v4UMyHcZdqlOx1SYZGrwKCv5I5ESwgcn3/nJ1wEnviXqcAcamhO/kcTKATFv
jTumKBZqJcHwiJh4RgcheqY2RJQviMCEh7b17R4xsdZRopbwckOkzC0Bs3j0kcDUnnik/heheNN9
r/bqTt1Hi37yI2GxW7UIwkR9UB9ZT/V59KxLxH58/XmXiH1oD37e/YIbztr5+Lv1KB/nmfhi+xDd
4hj+pCf0a/aa7nvfxrv9pclI+HPEN4MmYTAfRh/Q0sf60l/t4wkXyugBmT+a6FzoR8qel5emcvUe
Tg/5Egy0H7Fhf6cR3UO33dOwSfJoGvA34H+PF2grMY7VXfSbDl1zF4k/qRThySmbzhBfd1kZrRsc
b4mvife3OwIW5pFd/6XqfR/xs5nyYC23sRrsac1uh0GIDyCaTPotpd/RyTU1vMR9HftPTNQON2Im
ADLjGK/lv+97Gn/QwWCcQkiDqsmo1X2IqvJq29QGJQPaVKoz+MnjCijP5SVE+nB5AS5NrnNKJYDa
2GCvNrS5jvScYMZp3h6OVg5jgbFP5HkKqUJmTMkPh0xNojHtY/C/YyvPJuxDEJNmZZWipRHs0McQ
93G3WBL7KhvTsoC6Uzm9/uq8z6iBYkbRFwRwB3Ow5MC0G4Smjbo6OO1DcTTCLqRMP2Xvbwmufl11
/c+Cr8PBXwziMgtQUAqviOcJhg7KFCoQ/qcWi/L+3tUQdFvcufSX2qL55EicXDTyLuVCIg4ksLCC
gNh4QUn2wrMsA8SVP9WmjdLBs+ExjVbVEQ2PBeUVJSZcjkJw8W0+yr4jKPP2JKgX5O7tpf4UxZU5
iBPAOLcAsSEEnDjdU+uLi3Wbn6EYckecSaWCYw+xt9bLnPp3y2dGTgLBDlD2lCAB+G7bY2LI6dUw
C1FuMhR7ohpW1IhBeD6vn/FFeCJOsmYgwQb4qxBLdKhDAEbxwFQ4pKr30wwu6ZKKunfWJuQa+X4M
D3L0GLTcYCnJTpVePyhG5S2v0/Fwe20oqR3tbzqJS79Iool7WpUJakoy+RJl0+2a0Ph6SRiX1uW9
ZV+5G1UOtpQ9guuy99SPZsTdORze0y7hF8SmoU+fy48oX0z3+03o9f/UDb/44nPcb4Ae4RxcuiZL
YMbGKv4FwVEYLfPXsgqwpFlOU16pHpfDJO79e8KrBA4J3gbF2TCei3o7+IJjMgklsUszo7LgyCLo
2zTe6cgAUTO51+bOwrwAlhpA2WqJPOwMuCSeQN9QuTUGD2b0shgtmrGPpgnskb53QeC97wUtyQhF
Hf7Cd3JtE1O9eSWb9h4uadf3iLMs2YoN9VJ5T65+jbzWfdCTrfihRbg6knz9s+16XCZEmCbxL2hW
qxgF3hzikp2Ow22tkxYsBp7OfYl3bxiVyvRcMgJe26K5PibqhFCA38uB983YUhOXb3LCDewqqZKV
OQ6hGGyp7wkAXLK7OXGuJJ8DeA97wZRt5Jw21gXL2prkHZS/DPtnv7T8ckKTnZD2PdUgGrbXeB91
212+y4DfQFMH5RAdpT3ADc2wIIfgtl3FRP5e2c8cdJlXRhQ1wUnyfipe5dJvTERdFkSyOnIagodb
DWidgEa2Bw+GkbtSDE/p10pdiLO5pZb9jJsn+pJO2zfOaVujaofQvKqhYpjnNSQHTQMYDMz2XghX
dgC7iXbiaxiUrIMlTb89nRmcni0ZiDnGllpd09wR67ZQd8ZC4mPwILD6+ln/zr+8Uh+ZmOBIGx8D
rTzFH7zv1w1LkhcqBLfsLiReVghzR521wmhGJa46CfoJdNdVNjC+sOkwMNP1j5++ASlGGxSq43T2
6OjVfCHM0mNkrAVuZ8VsVV9HUOoURzJamfNHcGHiiAUanVpwEJfuT30r9hErNhaJQLZuPbezdFEw
ZPID/PXA71kKL6BG50P7eLhwMdxGIdJ7WSogoJRIL/ccI0ApTin9Gon+TxbOJW+ijn8TBTd9/+Lw
JDj49ETPQSfvlahNcGeEeHAQkjidC+e5ealfayVyWneIIKDXSn6CZ6RA8/+WefNZysCs38YrZi1x
3UVYTVRGWgUi48vYEpDAR6kK0LPUQZsgV9HwkqtfObKXn5iYYwy9iWS+uCiSGHEEhSpIUq67sj3L
H2mzlhOwdcspSpRfwaowwJ5H0iSR2YRyvNa05T155qml60AQBaIcKu6lxqEIGXOccGg5HnuVUcKZ
vN0/b4hDVdwizRs0UcaCN8o5kEVP/Bw1EIbFnYixaynwnG6Kzxxr7EvVM1N+rrjPLrE4iQbxkMEO
KL6lWqJQITkYaMGVSAaG7vAnzFYxyKHZadzHuwYxsA3szszx2I1ZOKrKJhHBls5iZGPF3tT73Qpp
JENYVbxUjZLQ5Ux6li5r0z9cFl9KEhndmlPhocjZqchVWDyiKylxAyNNmX0FyW/sWq/WHUEjIirx
E5Y00g41+Q3e6mKXvuVvTPyJiCzWDSOnbcqigPqm2NGKU6cJBcu2boQAcXTr9VPx1YM+L7LUe8V8
2JWMxUVGe3pbZSSk6DGwaOTxDwYkn15OId3Yi6mhPEeVb6wDssXtiVBd6xXuryI8MB4H0syo7GqS
nSoMNkcOsj8cOiiajQ6GXNDnzc0EbPNYE+z8NivHngVx4CrjjiRkbno4TPxn3a6y0h0mBkr61KNy
kIETHpSmFW1Jj4jjvAocNdG3Bbr5h0r+2aug3A/TLc3aC8Zdvwg2/X+bu/bmtm0k/lVqXi8hLdiR
0+RmjiqP0+TaaWb6mjZpndPpMnyJoiSLGkke+8bWd7994UXSiXvTubk/EosACIDAYrFY7P427W0o
fGMi+lrgzpch3oe8D6NjnF9Cpd19HCoNXbMczExOTvJfnbQCo8Lnvz55Etw0h8XrXVXCQDXZeo8W
Z1ASas07VdCBxSPqDi2fZP550W9N6xoGqdONKyr9X6hmAgQFE4ECRFqft9tqI2tOMaVlTLLKFlMI
78X35VH8kVfYhR5bYu1uZIAS3cQaQRmdBHiELmndBKEudlQZQ2mhfSVSvUHK3DMdyFbVNLg8E4kd
zifkEkWmikPpSXD5/XffwrlYMhxnYvqYKqr7B4AGxMdm5kKk1yzpZt7BLKO9455RllSROHPViE8T
6sNQGaYhyfHat0HoKkd6T5IXEcGjkmtbPbRecYW0W21nnb8jC3lEgY/cmmAnf4HDqw8dpGJdJrWo
T0BkINOkvoYMaOkKtXabpD531PcKWPimyzuhi1fnt1frZIOOEgSMW3tXwvSpK9MqJslAthhXIAiO
S4oYJ6uVgN3sdFP8tovnz78gieT5+EUULxNuJwUuFL8YvwDWwfVtYU2BNIaniW10vHryZE7G71cg
mRw1GeN4+CMEp/F3qDR5R0YMv6FaBqS2txhZfGjoabAThLEMhxgbxvnocrR/UM2fs3nHoa3rdXW/
X7Q3aLxSkRnJBzLBwHjHSZSG03+WI7LEYJOOP89OyUqlAP6fJ1PH0PMq29XNhk3T+bcYqCNsYon+
L5wnD8Z6fSomovotMXjnh5+lcnlJ8uRJ28RPjbH3bOYDBuOHDTvRKTItzfhGY+w5Jmeb5irDMHIF
bK9QQaC+iBS/28F+dv38NfyzAGjUM9Jwe3ZPCvbKDyUhYqigXZfG+ImDHLL5E9nNdV5ExzFjhse2
U5VjO+W8O9yAKsrQhkuQm8saXXyk03cf6TXZkriGq9RU1O3iA5+GF0++NhTpbCh4/SfnAl8cmouP
wM+KSzmNGH1gNXPGbYIou3rkzNyYcv4MfSwbrbUFCNe0LeW6E0mt+TrxD7wKY6Jc/q0kadj/0715
ydsWPZCCSQd8oHO8ygUjQ9oaNjOKBYHk/r4aQtTQRoJVmsXaQKPZh0EsDiyRxlKY5ikvnJjnbBYa
dA13Prkr7ox6wzIH7v+27QyBExBXcI74JGD6QFNt3UDG0Tn2JBS8J9O+8SrJj4qDSSGELeV1W3RA
OPfbqirljK81LF8j3IZVpPQRDswVhPd90zkG/LhmFW4aYFEYLkqC8epjdBmWBgMTkWdZDw5K1Xh/
NjgzwqtoyRSsr5FAL753w6SAFdGQUQKKTtNiprd1+l0kjQRXKlilj7MLmxjGgOcUmnZYTLUT70I+
30I5sNKSVFhYCW8gcBLCJ94LIgTmQUFsvm5vkinbRrGnjiSqgbTLocT3gvutWUCHbzYbdN0xbJVL
sM+O5asMoK6lYX7lFTpp/QD0sP8u+zdqHsVPvCg7tk+TpdNO6vTQ8ATOO2O3rzh8uEjgfiDbuUes
tfxktUdHG4jmJTD6Ya79D7/O9rCdJp1nvDKNcF7xBYzNmpkHVNHYCWLNlDYF84ffRJwnDcn17itY
ZB41Z8ZqyVE+OqsOQ88BZ7wNF8wjUHf2uYGenU/JR0hYSVr7jCeuZgbAh8k9/yAXYHg/PMcOhSKr
3nEYQscNoaHgSuuk4Yss1/uomJE7AfkerXETIReSUJu7L2CBhqv7+4totMaG+Pczae90qdyCyxHq
qhoYYNJihY3cl50lAQWGjE5XoyXalRfXe5CYSIpcy7Q7iZWiixqjzSdMf8jrGj+JgR0pzHf7SSYg
csR5wumMIYZ6nN9iaRXWfzpD/+ns7CwqptmMHTcZJAXVkiB6QirhExQ67kEGoihqVzSUfFlxs507
XgsLvl/DNP69vdnEVhi7iBQlv9vGVirQiW9533S3F8jCreTNxroSck28xfx4fXAyqDa991BVNk8q
/DRwc9bfp/S+k+vdxlN+077yENiDhTpxLC1SfwnFd+Z6poDzC8j9OZ7fOxJBpsrrHanx4kxVtMZj
LprLrYAjL0D6cQLcRN5AO+tb9AZIx7G9oNWZ1k0vtamx/cmGb1ABfSmaoprfU1uK8Jh1ukUjAGay
LunSkD9R2Z+uZrViGhaNsUEm0iSmfANHrDNCrVK7Lp2d6WguLo56hO6Qi2ZdNGpngotReYpYyjdd
JGW3VIgXjwvo+D7MTunnT2+iZ89H5y+j03JUAFHxgozxGum2RwtERAyAu4ezuDHfTQRgcLtrt0kB
LLbdNTUeIOkHHPWE0mBYTWCW5O56W3qCjl8/8KZqK2zBTbLDRE0LsqFsxZEKefKg4NR0aUaggZxq
JjTSiLLADQdQGalypwqzu5yYXOaewkRsgvOSeOH54phfLx2HEWjP7vzOd2ERw5bYhyzzXeqi9ARX
jnXlG8d5nOFXIUfuzaCx3qsdC96KRgYdVkSyJ6ArWmsT2UyzHV2CGj2kTdZzD1xAk8T1pjmg3ZV5
6Oxb9uvN/mWmMbE1yxC0e5N2wENWzSRnR6oO6ZzBlKsxzDF6Fpo1FBle4L7ZgHyOyvw5FCtWsI01
kkLG7d75vEOGSMHulOpNc2imlE+tUC0iNLFpOu+QdpkYKVPGSSeKIJpexObNHXl22Bb1aaJ7iv3D
eo7VDvac+qLGtKdX254NWG7oo0ALSD5O539LvMo1nx35pGWQZYUEgJ4GCeBCaIyYR9jpuIh27lef
jH0f5aHy0WAlFVpNnIzphHByoeGCNH8wo9wRPx1HtP1i12xWv+2yLYnpe3Mja0nXG5qJMZwPVHAJ
/973PJbnwmMC3WwwymdJbXqBF4LRsTeZeicS8sGk0ODUeSWFGl0atlGlHhy/PmktVJ8WUSPrv947
lHEHj8YWROTlM59WJg49NM8GqUvAh/yPcc8V3a3FzXPoR638Oio5lKAzI/08px0XJH78A9yM9+lA
vhSJV5ecLu/vV7PQ9l01aqwu1GD/BzniKNRLwxmQ6FS35K8MK4I7iBbI09Ud8sC4c7rPrDSu5zsH
wTr/0sScykejCM0OQ7LjEGE65yBiupDZadttSPGKmMvGF190TgHRHdmIG8ZcYJQ0CWOoWPaKQfAG
xvyX8Rgk4f0hxhs2A8//YjwWJmREY/8GV1x+mRqtKgZxKm6gZ6Yi/9bWbuN4d+Fs6pkrBqRDWUmY
9Th71mPrJHRdZbdoVEpdifnPKKOdMuaaTZ2UedRy+mO8akXGL4dcdcrzegcbvZ5ox2DEoivglTX1
4aihlUVnX1TJs38dwjQmZMbyfsEa+Dnr8BGq6h49EjB1gp4/r9rrDerHX6+banP4Gc8LwD56F80p
KRzZwXfAF5i0VOOZIvPi7BNA9FIN3lax268LRMwBn+Fc0kFc03VqHOGcRsB3LHeDFptWMFGayfnK
TAKC9788dMOs8ibQaQJNz3t38GL377q818riKxTpHa4pdF/dKvTQjgty1D7GlD7mtDFbvyP+J/ZY
NUlRh3NUCNTnBfXwbbu9v1+4D2O1Mrl422Gz+WmMConzbVZX73kE3HvavL39vi2rNeFoFbt2vZYG
zIO6krcvH/O27oB9UpuEPnq0PluqNuGvHl2d6aAy9Pkb/vz2eIwfRWL/7wRmkhvgE+yMKbEzUQ+b
S+5PZKyA4UhV3aMxBF7oYiQ0kEZ0gfTgQDYABSzTZR+nIWechjj3YAeAHnQPeH71E06X+AAQ2KGD
5Qxne9bz4p+FQDvrAWZq2H/T3FalDgr75MnqXMNYEbABZgYSTqj4fd09Qz2jpUf7SPSFU4Sq4fXI
/6yR913KdLdsq/0P7eGrsnxF0YHxnOhlmpxv2t1bZKBfbcrX1Xq9Rz1JpQ3l7N0Yt+2c9AqYJHwf
ukGwCBEuwqvBItg1UybSnpMefUTKGen8sMuKw97070eRJeGDfmXQAwQRsXJuEggWQvAH9nKVFGje
7U+wjnsLO6mfgeJTUwQRtN7489O4dPffkBN/k9mmXa7V2N8RttUrRETROA8GMIM40po50hUJZMKO
7uxq7ktkBa/M/IEA2+w0S8DFzgAbVAt7FR7RPCwlCDdJLclTAwin8eAmtGlMeNOY8Nvwg6crfrm9
/QzKNeVnfxqPxxO5/IZ8knXii+3thGUc+vmUonrrAN/8PyFj/m9aB2FlvZZCydMxPyPmpTxTgKkv
DyXGhKL/djY61MQIy7kglA1i57k7rNLdVdLdseJ+BRcIrCI944cBzD3URTtYpktEDPCwOJUXLZBW
sxN0EO/KnccFPDpg8y5eqVOKNd8dtgUigllMsM5f2lIP8q9kYV9J8BU5odqVJevKZMDAJcFzBJwS
LdLQ2nR7gp4CiGnlpVwMtOS1EChtG9C7BDI5to+G0+g+fZopdrp49tIb0zebYn1dVt8TYbzZvDJb
uUGz4TFuVObH64jQcTGB2hMEYycrxIGdX8ydjsrKCINhSy1vtDA6Pmt0pYnehvbgV+DdyuhRXKf4
WDGypKFyHqPMRZplrLHe57kXE6ZCPZdw8q6cLcLB/RmY7UhwS0pGgNYzGhqAPayZXE3JsVMS1tRr
dO0ktatmCWTsIAFzWRmrpsCbZxhcGPa3u6Px+5ygufgaEZh0uPsIzcuWKXrDbWMaLzgZhwt1MaZB
3FAeDYrJbHRm78qEBC3G2SMMP2Qvh3ZrVNgrWiGUdlaTHE2W41i9U4YBpOgPlCIJexOp4BpVGWTf
mebn9KCbWiGgLQ7RKmIAeGsBZRior2g/EdHbk5BtBCI890n0DFd4IfWikxpSXA+NPqfjx5AclfoH
oTg3r0zoAHH2OBLmQXgUHStiPwM0T2E/A188Mq/Q6H78HSMv8UvucuFPqbrHwDOuF+bCHb1HYrc4
caDct9FSHFmODk6Hgq4e+syOuzZk8NalK7hRuDq3YidgnQchIrZ2OBldCBFmAAFLW8GoIKM7BJHs
gvzPDTURKubJvHsiK/oRDDs3zzUemvmGqU7tsTbEUNp15Eh8YRQXKkuL2El/i8owCXAB3Sso7jkd
wo2jRRo4x2FcXdDKNONUOWLjTYlTZhYPn5nLB8DwoGU0qi3dEyekxXNE3HRH/FttSvlbHzPTjHrR
gQCkoQ9IhoGZ8HxN/CBPaY/I9dxUxqISyEPczrna9vrQrTb7PfXCOPIyhSHkxdRpoZr11AJzVy1g
KSZz0X+wRC++zO+MujlF4xA/GBQmmYibWDdHcwZy0aaE84dnOWA1DY6WQTq0pVHhnqFjG+1cr3/5
5eI1pbD51LxDHU5dQDoELuqaev1Vf6g5B/U0WG4Vai61mgWLSb0XvFx+gfnEQy/YXLYKY6BgVnkx
JWA4E/+MtHBj3NO1ahOli7jxYmSwgetQLPsszggykVhVds5BhYGhfZ6Uxyi8oemKJv8BUEsHCKqY
Wy0BdAAADE0BAFBLAwQUAAgACABgZBM/AAAAAAAAAAAAAAAANgAQAF9fTUFDT1NYL3Nwb2RfaXNz
dWVfc2FuaXRpemVkL2pzLy5fanF1ZXJ5LTEuNS4xLm1pbi5qc1VYDADchGlP5LpOTvUBFABjYBVj
Z2BiYPBNTFbwD1aIUIACkBgDJxAbAfECIAbxLzEQBRxDQoKgTJCOGUBshaaEESEumpyfq5dYUJCT
qldYmliUmFeSmZfKUKhvYGBgaG2SZpKaYmCRbO2bmJljbWBu6WRp4eyoa+5saqpr4uRiomvhYuSi
62Zh4mRg6Gbk7GTozAAAUEsHCMfg/gSFAAAA0gAAAFBLAwQUAAgACABRBHVAAAAAAAAAAAAAAAAA
IgAQAF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVkLy5fanNVWAwA3c9OT4mEaU/1ARQAY2AV
Y2dgYmDwTUxW8A9WiFCAApAYAycQGwHxAiAG8S8xEAUcQ0KCoEyQjhlAbIWmhBEhLpqcn6uXWFCQ
k6pXWJpYlJhXkpmXylCob2BgYGhtkmaSmmJgkWztm5iZY21gbulkaeHsqGvubGqqa+LkYqJr4WLk
outmYeJkYOhm5Oxk6MwAAFBLBwjH4P4EhQAAANIAAABQSwMEFAAIAAgAUQR1QAAAAAAAAAAAAAAA
AB8AEABfX01BQ09TWC8uX3Nwb2RfaXNzdWVfc2FuaXRpemVkVVgMAGbPTk+JhGlP9QEUAGNgFWNn
YGJg8E1MVvAPVohQgAKQGAMnEBsB8QIgBvEvMRAFHENCgqBMkI4ZQGyFpoQRIS6anJ+rl1hQkJOq
V1iaWJSYV5KZl8pQqG9gYGBobZJmkppiYJFs7ZuYmWNtYG7pZGnh7Khr7mxqqmvi5GKia+Fi5KLr
ZmHiZGDoZuTsZOjMAABQSwcIx+D+BIUAAADSAAAAUEsBAhUDCgAAAAAAUQR1QAAAAAAAAAAAAAAA
ABUADAAAAAAAAAAAQO1BAAAAAHNwb2RfaXNzdWVfc2FuaXRpemVkL1VYCABmz05PiYRpT1BLAQIV
AxQACAAIANqKXUDSbtJcZQEAAAQYAAAeAAwAAAAAAAAAAECkgUMAAABzcG9kX2lzc3VlX3Nhbml0
aXplZC8uRFNfU3RvcmVVWAgAioRpT2vPTk9QSwECFQMKAAAAAACvBHVAAAAAAAAAAAAAAAAACQAM
AAAAAAAAAABA/UEEAgAAX19NQUNPU1gvVVgIADqFaU86hWlPUEsBAhUDCgAAAAAArwR1QAAAAAAA
AAAAAAAAAB4ADAAAAAAAAAAAQP1BOwIAAF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVkL1VY
CAA6hWlPOoVpT1BLAQIVAxQACAAIANqKXUDmne59iAAAANIAAAApAAwAAAAAAAAAAECkgYcCAABf
X01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC8uXy5EU19TdG9yZVVYCACKhGlPa89OT1BLAQIV
AwoAAAAAAFEEdUAAAAAAAAAAAAAAAAAZAAwAAAAAAAAAAEDtQXYDAABzcG9kX2lzc3VlX3Nhbml0
aXplZC9jc3MvVVgIAKfPTk+JhGlPUEsBAhUDFAAIAAgA/IpdQMszwIQHAQAABBgAACIADAAAAAAA
AAAAQKSBvQMAAHNwb2RfaXNzdWVfc2FuaXRpemVkL2Nzcy8uRFNfU3RvcmVVWAgAFd9OT6zPTk9Q
SwECFQMKAAAAAACvBHVAAAAAAAAAAAAAAAAAIgAMAAAAAAAAAABA/UEkBQAAX19NQUNPU1gvc3Bv
ZF9pc3N1ZV9zYW5pdGl6ZWQvY3NzL1VYCAA6hWlPOoVpT1BLAQIVAxQACAAIAPyKXUDmne59iAAA
ANIAAAAtAAwAAAAAAAAAAECkgXQFAABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9jc3Mv
Ll8uRFNfU3RvcmVVWAgAFd9OT6zPTk9QSwECFQMUAAgACAD5YxM/YaFOWksDAAC5DAAALgAMAAAA
AAAAAABApIFnBgAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvY3NzL2pxdWVyeS5qcXBsb3QubWluLmNz
c1VYCACRhGlPJrpOTlBLAQIVAxQACAAIAPljEz/H4P4EhQAAANIAAAA5AAwAAAAAAAAAAECkgR4K
AABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9jc3MvLl9qcXVlcnkuanFwbG90Lm1pbi5j
c3NVWAgAkYRpTya6Tk5QSwECFQMUAAgACACxbB4/pxh5HScJAACvHgAAIgAMAAAAAAAAAABApIEa
CwAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvY3NzL3N0eWxlLmNzc1VYCADchGlPDUpdTlBLAQIVAxQA
CAAIALFsHj/H4P4EhQAAANIAAAAtAAwAAAAAAAAAAECkgaEUAABfX01BQ09TWC9zcG9kX2lzc3Vl
X3Nhbml0aXplZC9jc3MvLl9zdHlsZS5jc3NVWAgA3IRpTw1KXU5QSwECFQMUAAgACABRBHVAx+D+
BIUAAADSAAAAIwAMAAAAAAAAAABApIGRFQAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQv
Ll9jc3NVWAgAp89OT4mEaU9QSwECFQMUAAgACACmBHVAwsMoIaMEAADWCgAAHwAMAAAAAAAAAABA
pIF3FgAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvZ3JhcGguaHRtbFVYCAA6hWlPJ4VpT1BLAQIVAxQA
CAAIAKYEdUB7oSNZZQAAALkAAAAqAAwAAAAAAAAAAECkgXcbAABfX01BQ09TWC9zcG9kX2lzc3Vl
X3Nhbml0aXplZC8uX2dyYXBoLmh0bWxVWAgAOoVpTyeFaU9QSwECFQMKAAAAAABRBHVAAAAAAAAA
AAAAAAAAGAAMAAAAAAAAAABA7UFEHAAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvVVgIAN3PTk+J
hGlPUEsBAhUDFAAIAAgAGYtdQPnMC+BkAQAABBgAACEADAAAAAAAAAAAQKSBihwAAHNwb2RfaXNz
dWVfc2FuaXRpemVkL2pzLy5EU19TdG9yZVVYCAAV305P4s9OT1BLAQIVAwoAAAAAAK8EdUAAAAAA
AAAAAAAAAAAhAAwAAAAAAAAAAED9QU0eAABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9q
cy9VWAgAOoVpTzqFaU9QSwECFQMUAAgACAAZi11A5p3ufYgAAADSAAAALAAMAAAAAAAAAABApIGc
HgAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvLl8uRFNfU3RvcmVVWAgAFd9OT+LP
Tk9QSwECFQMKAAAAAABRBHVAAAAAAAAAAAAAAAAAHgAMAAAAAAAAAABA7UGOHwAAc3BvZF9pc3N1
ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvVVgIAP7KTk+JhGlPUEsBAhUDFAAIAAgAXYNdQJ/VmrBNAQAA
BBgAACcADAAAAAAAAAAAQKSB2h8AAHNwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoLy5EU19T
dG9yZVVYCAAV305PUcJOT1BLAQIVAwoAAAAAAK8EdUAAAAAAAAAAAAAAAAAnAAwAAAAAAAAAAED9
QYwhAABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9VWAgAOoVpTzqFaU9Q
SwECFQMUAAgACABdg11A5p3ufYgAAADSAAAAMgAMAAAAAAAAAABApIHhIQAAX19NQUNPU1gvc3Bv
ZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvLl8uRFNfU3RvcmVVWAgAFd9OT1HCTk9QSwECFQMK
AAAAAABRBHVAAAAAAAAAAAAAAAAAJwAMAAAAAAAAAABA7UHZIgAAc3BvZF9pc3N1ZV9zYW5pdGl6
ZWQvanMvZ3JhcGgvYWRhcHRlcnMvVVgIAP7KTk+JhGlPUEsBAhUDFAAIAAgA2Ir0PolNkG0IAQAA
BBgAADAADAAAAAAAAAAAQKSBLiMAAHNwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL2FkYXB0
ZXJzLy5EU19TdG9yZVVYCAAV305PWHEnTlBLAQIVAwoAAAAAAK8EdUAAAAAAAAAAAAAAAAAwAAwA
AAAAAAAAAED9QaQkAABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9hZGFw
dGVycy9VWAgAOoVpTzqFaU9QSwECFQMUAAgACADYivQ+5p3ufYgAAADSAAAAOwAMAAAAAAAAAABA
pIECJQAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvYWRhcHRlcnMvLl8u
RFNfU3RvcmVVWAgAFd9OT1hxJ05QSwECFQMUAAgACABgZBM/82JEWjsDAAC+BgAAOgAMAAAAAAAA
AABA7YEDJgAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvYWRhcHRlcnMvbW9vdG9vbHMt
YWRhcHRlci5qc1VYCACRhGlP47pOTlBLAQIVAxQACAAIAGBkEz/H4P4EhQAAANIAAABFAAwAAAAA
AAAAAECkgbYpAABfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9hZGFwdGVy
cy8uX21vb3Rvb2xzLWFkYXB0ZXIuanNVWAgAkYRpT+O6Tk5QSwECFQMUAAgACABgZBM/JOWneSME
AADyCQAAOwAMAAAAAAAAAABA7YG+KgAAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvYWRh
cHRlcnMvcHJvdG90eXBlLWFkYXB0ZXIuanNVWAgAkYRpT+O6Tk5QSwECFQMUAAgACABgZBM/x+D+
BIUAAADSAAAARgAMAAAAAAAAAABApIFaLwAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQv
anMvZ3JhcGgvYWRhcHRlcnMvLl9wcm90b3R5cGUtYWRhcHRlci5qc1VYCACRhGlP47pOTlBLAQIV
AxQACAAIAFEEdUDH4P4EhQAAANIAAAAxAAwAAAAAAAAAAECkgWMwAABfX01BQ09TWC9zcG9kX2lz
c3VlX3Nhbml0aXplZC9qcy9ncmFwaC8uX2FkYXB0ZXJzVVgIAP7KTk+JhGlPUEsBAhUDFAAIAAgA
YGQTPy02fc/JegAAnDQBACsADAAAAAAAAAAAQO2BVzEAAHNwb2RfaXNzdWVfc2FuaXRpemVkL2pz
L2dyYXBoL2hpZ2hjaGFydHMuanNVWAgA3IRpT+O6Tk5QSwECFQMUAAgACABgZBM/x+D+BIUAAADS
AAAANgAMAAAAAAAAAABApIGJrAAAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3Jh
cGgvLl9oaWdoY2hhcnRzLmpzVVgIANyEaU/juk5OUEsBAhUDFAAIAAgAYGQTPyypFkl9GAEAHfcD
AC8ADAAAAAAAAAAAQO2Bgq0AAHNwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL2hpZ2hjaGFy
dHMuc3JjLmpzVVgIAJGEaU/kuk5OUEsBAhUDFAAIAAgAYGQTP8fg/gSFAAAA0gAAADoADAAAAAAA
AAAAQKSBbMYBAF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoLy5faGlnaGNo
YXJ0cy5zcmMuanNVWAgAkYRpT+S6Tk5QSwECFQMKAAAAAABRBHVAAAAAAAAAAAAAAAAAJgAMAAAA
AAAAAABA7UFpxwEAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvbW9kdWxlcy9VWAgA/spO
T4mEaU9QSwECFQMUAAgACAAGbtQ+wgIcU+4AAAAEGAAALwAMAAAAAAAAAABApIG9xwEAc3BvZF9p
c3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvbW9kdWxlcy8uRFNfU3RvcmVVWAgAFd9OTwuy/01QSwEC
FQMKAAAAAACvBHVAAAAAAAAAAAAAAAAALwAMAAAAAAAAAABA/UEYyQEAX19NQUNPU1gvc3BvZF9p
c3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvbW9kdWxlcy9VWAgAOoVpTzqFaU9QSwECFQMUAAgACAAG
btQ+5p3ufYgAAADSAAAAOgAMAAAAAAAAAABApIF1yQEAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5p
dGl6ZWQvanMvZ3JhcGgvbW9kdWxlcy8uXy5EU19TdG9yZVVYCAAV305PC7L/TVBLAQIVAxQACAAI
AGBkEz+Q76Pi9woAAJEZAAAyAAwAAAAAAAAAAEDtgXXKAQBzcG9kX2lzc3VlX3Nhbml0aXplZC9q
cy9ncmFwaC9tb2R1bGVzL2V4cG9ydGluZy5qc1VYCADchGlP5LpOTlBLAQIVAxQACAAIAGBkEz/H
4P4EhQAAANIAAAA9AAwAAAAAAAAAAECkgdzVAQBfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXpl
ZC9qcy9ncmFwaC9tb2R1bGVzLy5fZXhwb3J0aW5nLmpzVVgIANyEaU/kuk5OUEsBAhUDFAAIAAgA
UQR1QMfg/gSFAAAA0gAAADAADAAAAAAAAAAAQKSB3NYBAF9fTUFDT1NYL3Nwb2RfaXNzdWVfc2Fu
aXRpemVkL2pzL2dyYXBoLy5fbW9kdWxlc1VYCAD+yk5PiYRpT1BLAQIVAxQACAAIAGBkEz9+F0W5
P38AAJBaAgA4AAwAAAAAAAAAAECkgc/XAQBzcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC9t
b290b29scy15dWktY29tcHJlc3NlZC5qc1VYCADchGlP5LpOTlBLAQIVAxQACAAIAGBkEz/H4P4E
hQAAANIAAABDAAwAAAAAAAAAAECkgYRXAgBfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9q
cy9ncmFwaC8uX21vb3Rvb2xzLXl1aS1jb21wcmVzc2VkLmpzVVgIANyEaU/kuk5OUEsBAhUDCgAA
AAAAUQR1QAAAAAAAAAAAAAAAACUADAAAAAAAAAAAQO1BilgCAHNwb2RfaXNzdWVfc2FuaXRpemVk
L2pzL2dyYXBoL3RoZW1lcy9VWAgA/spOT4mEaU9QSwECFQMUAAgACAACadQ+xmp5SRYBAAAEGAAA
LgAMAAAAAAAAAABApIHdWAIAc3BvZF9pc3N1ZV9zYW5pdGl6ZWQvanMvZ3JhcGgvdGhlbWVzLy5E
U19TdG9yZVVYCAAV305Po6j/TVBLAQIVAwoAAAAAAK8EdUAAAAAAAAAAAAAAAAAuAAwAAAAAAAAA
AED9QV9aAgBfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC90aGVtZXMvVVgI
ADqFaU86hWlPUEsBAhUDFAAIAAgAAmnUPuad7n2IAAAA0gAAADkADAAAAAAAAAAAQKSBu1oCAF9f
TUFDT1NYL3Nwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL3RoZW1lcy8uXy5EU19TdG9yZVVY
CAAV305Po6j/TVBLAQIVAxQACAAIAGBkEz85J2RXvwMAAMMLAAAxAAwAAAAAAAAAAEDtgbpbAgBz
cG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC90aGVtZXMvZGFyay1ibHVlLmpzVVgIAJGEaU/k
uk5OUEsBAhUDFAAIAAgAYGQTP8fg/gSFAAAA0gAAADwADAAAAAAAAAAAQKSB6F8CAF9fTUFDT1NY
L3Nwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL3RoZW1lcy8uX2RhcmstYmx1ZS5qc1VYCACR
hGlP5LpOTlBLAQIVAxQACAAIAGBkEz9pdN0xvQMAAMMLAAAyAAwAAAAAAAAAAEDtgedgAgBzcG9k
X2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC90aGVtZXMvZGFyay1ncmVlbi5qc1VYCACRhGlP5LpO
TlBLAQIVAxQACAAIAGBkEz/H4P4EhQAAANIAAAA9AAwAAAAAAAAAAECkgRRlAgBfX01BQ09TWC9z
cG9kX2lzc3VlX3Nhbml0aXplZC9qcy9ncmFwaC90aGVtZXMvLl9kYXJrLWdyZWVuLmpzVVgIAJGE
aU/kuk5OUEsBAhUDFAAIAAgAYGQTP8uYUnWnAwAADQsAACwADAAAAAAAAAAAQO2BFGYCAHNwb2Rf
aXNzdWVfc2FuaXRpemVkL2pzL2dyYXBoL3RoZW1lcy9ncmF5LmpzVVgIANyEaU/kuk5OUEsBAhUD
FAAIAAgAYGQTP8fg/gSFAAAA0gAAADcADAAAAAAAAAAAQKSBJWoCAF9fTUFDT1NYL3Nwb2RfaXNz
dWVfc2FuaXRpemVkL2pzL2dyYXBoL3RoZW1lcy8uX2dyYXkuanNVWAgA3IRpT+S6Tk5QSwECFQMU
AAgACABgZBM/KKgKhXkCAAAUBwAALAAMAAAAAAAAAABA7YEfawIAc3BvZF9pc3N1ZV9zYW5pdGl6
ZWQvanMvZ3JhcGgvdGhlbWVzL2dyaWQuanNVWAgAkYRpT+S6Tk5QSwECFQMUAAgACABgZBM/x+D+
BIUAAADSAAAANwAMAAAAAAAAAABApIECbgIAX19NQUNPU1gvc3BvZF9pc3N1ZV9zYW5pdGl6ZWQv
anMvZ3JhcGgvdGhlbWVzLy5fZ3JpZC5qc1VYCACRhGlP5LpOTlBLAQIVAxQACAAIAFEEdUDH4P4E
hQAAANIAAAAvAAwAAAAAAAAAAECkgfxuAgBfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9q
cy9ncmFwaC8uX3RoZW1lc1VYCAD+yk5PiYRpT1BLAQIVAxQACAAIAFEEdUDH4P4EhQAAANIAAAAo
AAwAAAAAAAAAAECkge5vAgBfX01BQ09TWC9zcG9kX2lzc3VlX3Nhbml0aXplZC9qcy8uX2dyYXBo
VVgIAP7KTk+JhGlPUEsBAhUDFAAIAAgAYGQTP6qYWy0BdAAADE0BACsADAAAAAAAAAAAQKSB2XAC
AHNwb2RfaXNzdWVfc2FuaXRpemVkL2pzL2pxdWVyeS0xLjUuMS5taW4uanNVWAgA3IRpT+S6Tk5Q
SwECFQMUAAgACABgZBM/x+D+BIUAAADSAAAANgAMAAAAAAAAAABApIFD5QIAX19NQUNPU1gvc3Bv
ZF9pc3N1ZV9zYW5pdGl6ZWQvanMvLl9qcXVlcnktMS41LjEubWluLmpzVVgIANyEaU/kuk5OUEsB
AhUDFAAIAAgAUQR1QMfg/gSFAAAA0gAAACIADAAAAAAAAAAAQKSBPOYCAF9fTUFDT1NYL3Nwb2Rf
aXNzdWVfc2FuaXRpemVkLy5fanNVWAgA3c9OT4mEaU9QSwECFQMUAAgACABRBHVAx+D+BIUAAADS
AAAAHwAMAAAAAAAAAABApIEh5wIAX19NQUNPU1gvLl9zcG9kX2lzc3VlX3Nhbml0aXplZFVYCABm
z05PiYRpT1BLBQYAAAAAQABAAL0ZAAAD6AIAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>136078</attachid>
            <date>2012-04-06 15:44:05 -0700</date>
            <delta_ts>2012-04-06 15:44:05 -0700</delta_ts>
            <desc>sample</desc>
            <filename>sample.txt</filename>
            <type>text/plain</type>
            <size>7844</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdl
YktpdDo6aGFuZGxlTW91c2VFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgY29uc3QmLCBXZWJL
aXQ6OldlYlBhZ2UqLCBib29sKSAgKGluIFdlYktpdDIpICsgNDQ0ICBbMHg3ZmZmOGRhMmJlMTld
CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYw
IFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNl
RXZlbnQgY29uc3QmKSAgKGluIFdlYkNvcmUpICsgMTEwICBbMHg3ZmZmOTRlMGQ1YmVdCiAgICAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3NjAgV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudChXZWJDb3JlOjpQbGF0Zm9y
bU1vdXNlRXZlbnQgY29uc3QmLCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0KiwgYm9vbCkgIChpbiBX
ZWJDb3JlKSArIDEzNDMgIFsweDdmZmY5NTQwOWI5Zl0KICAgICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6ZGlzcGF0Y2hNb3VzZUV2ZW50KFdURjo6QXRvbWljU3RyaW5nIGNvbnN0JiwgV2ViQ29yZTo6
Tm9kZSosIGJvb2wsIGludCwgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50IGNvbnN0JiwgYm9v
bCkgIChpbiBXZWJDb3JlKSArIDEwNSAgWzB4N2ZmZjk0ZTBlODE5XQogICAgKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpO
b2RlOjpkaXNwYXRjaE1vdXNlRXZlbnQoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50IGNvbnN0
JiwgV1RGOjpBdG9taWNTdHJpbmcgY29uc3QmLCBpbnQsIFdlYkNvcmU6Ok5vZGUqKSAgKGluIFdl
YkNvcmUpICsgMTM0ICBbMHg3ZmZmOTRlMGYyOTZdCiAgICArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6RXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaEV2ZW50KFdlYkNvcmU6Ok5vZGUqLCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6RXZlbnREaXNwYXRjaE1lZGlhdG9yPikgIChpbiBXZWJDb3JlKSArIDEzOSAgWzB4N2Zm
Zjk1NDA3YzdiXQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6
OmRpc3BhdGNoRXZlbnQoV2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyKikgY29uc3QgIChpbiBXZWJD
b3JlKSArIDIyMCAgWzB4N2ZmZjk0ZTBmNjNjXQogICAgKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpFdmVudERp
c3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV2ZW50Pikg
IChpbiBXZWJDb3JlKSArIDk1NSAgWzB4N2ZmZjk0Y2U3ZTFiXQogICAgKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdlYkNv
cmU6OkV2ZW50Q29udGV4dDo6aGFuZGxlTG9jYWxFdmVudHMoV2ViQ29yZTo6RXZlbnQqKSBjb25z
dCAgKGluIFdlYkNvcmUpICsgODYgIFsweDdmZmY5NGQ4OTliNl0KICAgICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdl
YkNvcmU6Ok5vZGU6OmhhbmRsZUxvY2FsRXZlbnRzKFdlYkNvcmU6OkV2ZW50KikgIChpbiBXZWJD
b3JlKSArIDE3MCAgWzB4N2ZmZjk0Y2U4NjVhXQogICAgKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpF
dmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKFdlYkNvcmU6OkV2ZW50KikgIChpbiBXZWJD
b3JlKSArIDY5ICBbMHg3ZmZmOTRjZTg1ODVdCiAgICArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6
RXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyhXZWJDb3JlOjpFdmVudCosIFdlYkNvcmU6
OkV2ZW50VGFyZ2V0RGF0YSosIFdURjo6VmVjdG9yPFdlYkNvcmU6OlJlZ2lzdGVyZWRFdmVudExp
c3RlbmVyLCAxdWw+JikgIChpbiBXZWJDb3JlKSArIDIxMiAgWzB4N2ZmZjk0ZDdlMmQ0XQogICAg
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViQ29yZTo6RXZlbnQqKSAgKGluIFdl
YkNvcmUpICsgODk2ICBbMHg3ZmZmOTRkN2U3YjBdCiAgICArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIEpT
Qzo6Y2FsbChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpDYWxsVHlwZSwgSlND
OjpDYWxsRGF0YSBjb25zdCYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpBcmdMaXN0IGNvbnN0JikgIChp
biBKYXZhU2NyaXB0Q29yZSkgKyA1MiAgWzB4N2ZmZjhhMjVmNDk0XQogICAgKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3NzYwIEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6Q2FsbFR5cGUsIEpTQzo6Q2FsbERhdGEgY29uc3QmLCBKU0M6
OkpTVmFsdWUsIEpTQzo6QXJnTGlzdCBjb25zdCYpICAoaW4gSmF2YVNjcmlwdENvcmUpICsgOTA2
ICBbMHg3ZmZmOGEyNWY4MmFdCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc2MCA/Pz8gIChpbiA8
dW5rbm93biBiaW5hcnk+KSAgWzB4MjhjNmRmNjAxMjU4XQogICAgKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNzc2MCBXZWJDb3JlOjpqc0NTU1N0eWxlRGVjbGFyYXRpb25Qcm90b3R5cGVGdW5jdGlvbkdl
dFByb3BlcnR5VmFsdWUoSlNDOjpFeGVjU3RhdGUqKSAgKGluIFdlYkNvcmUpICsgMjk4ICBbMHg3
ZmZmOTRlYTkwY2FdCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6Q1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlKFdURjo6U3RyaW5nIGNv
bnN0JikgIChpbiBXZWJDb3JlKSArIDU3ICBbMHg3ZmZmOTUyYTNlYjldCiAgICArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50LCBXZWJDb3JlOjpFVXBkYXRlTGF5b3V0KSBjb25zdCAg
KGluIFdlYkNvcmUpICsgNzQgIFsweDdmZmY5NGU1OGNjYV0KICAgICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDc3NjAgV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpICAoaW4gV2ViQ29yZSkgKyAxMjMgIFsweDdmZmY5NGQyNWZhYl0KICAg
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpGcmFtZVZpZXc6Omxh
eW91dChib29sKSAgKGluIFdlYkNvcmUpICsgMTc4MiAgWzB4N2ZmZjk0ZDI2NzQ2XQogICAgKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6
bGF5b3V0KCkgIChpbiBXZWJDb3JlKSArIDM4NSAgWzB4N2ZmZjk0ZWNkNDUxXQogICAgKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0
OjpsYXlvdXRDaGlsZHJlbihXZWJDb3JlOjpSZW5kZXJPYmplY3QqLCBib29sKSAgKGluIFdlYkNv
cmUpICsgNDA5ICBbMHg3ZmZmOTRlY2Q5ODldCiAgICArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDc3NjAgV2ViQ29yZTo6UmVuZGVyU1ZHQ29udGFpbmVyOjpsYXlvdXQoKSAgKGlu
IFdlYkNvcmUpICsgMjc2ICBbMHg3ZmZmOTRmZjdhMzRdCiAgICArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRD
aGlsZHJlbihXZWJDb3JlOjpSZW5kZXJPYmplY3QqLCBib29sKSAgKGluIFdlYkNvcmUpICsgNDA5
ICBbMHg3ZmZmOTRlY2Q5ODldCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3NzYwIFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmxheW91dCgpICAoaW4gV2ViQ29yZSkg
KyA0MDEgIFsweDdmZmY5NGYwODdmMV0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNzc2MCBXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRy
ZW4oYm9vbCwgaW50JiwgaW50JikgIChpbiBXZWJDb3JlKSArIDEzODcgIFsweDdmZmY5NGQyYjFj
Yl0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzKFdlYkNvcmU6OkxpbmVMYXlv
dXRTdGF0ZSYsIGJvb2wpICAoaW4gV2ViQ29yZSkgKyAxMjI3ICBbMHg3ZmZmOTU3MTQ0OWJdCiAg
ICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShXZWJDb3JlOjpMaW5l
TGF5b3V0U3RhdGUmLCBXZWJDb3JlOjpCaWRpUmVzb2x2ZXI8V2ViQ29yZTo6SW5saW5lSXRlcmF0
b3IsIFdlYkNvcmU6OkJpZGlSdW4+JiwgV2ViQ29yZTo6SW5saW5lSXRlcmF0b3IgY29uc3QmLCBX
ZWJDb3JlOjpCaWRpU3RhdHVzIGNvbnN0JiwgdW5zaWduZWQgaW50KSAgKGluIFdlYkNvcmUpICsg
MzYwOCAgWzB4N2ZmZjk1NzE1ZDI4XQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3NzYwIFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVMaW5lQm94
ZXNGcm9tQmlkaVJ1bnMoV2ViQ29yZTo6QmlkaVJ1bkxpc3Q8V2ViQ29yZTo6QmlkaVJ1bj4mLCBX
ZWJDb3JlOjpJbmxpbmVJdGVyYXRvciBjb25zdCYsIFdlYkNvcmU6OkxpbmVJbmZvJiwgV2ViQ29y
ZTo6VmVydGljYWxQb3NpdGlvbkNhY2hlJiwgV2ViQ29yZTo6QmlkaVJ1biopICAoaW4gV2ViQ29y
ZSkgKyAyNTIgIFsweDdmZmY5NGQzMWE4Y10KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVCb3g6OmNv
bXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbigpICAoaW4gV2ViQ29yZSkgKyA0ODIg
IFsweDdmZmY5NGYwOThkMl0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6U1ZHUm9vdElubGluZUJveDo6bGF5b3V0Q2hh
cmFjdGVyc0luVGV4dEJveGVzKFdlYkNvcmU6OklubGluZUZsb3dCb3gqLCBXZWJDb3JlOjpTVkdU
ZXh0TGF5b3V0RW5naW5lJikgIChpbiBXZWJDb3JlKSArIDYwNCAgWzB4N2ZmZjk0ZjA5ZDRjXQog
ICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3
NzYwIFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVCb3g6OmxheW91dENoYXJhY3RlcnNJblRleHRCb3hl
cyhXZWJDb3JlOjpJbmxpbmVGbG93Qm94KiwgV2ViQ29yZTo6U1ZHVGV4dExheW91dEVuZ2luZSYp
ICAoaW4gV2ViQ29yZSkgKyAxMDUgIFsweDdmZmY5NGYwOWI1OV0KICAgICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NzYwIFdlYkNvcmU6OlNW
R1RleHRMYXlvdXRFbmdpbmU6OmxheW91dElubGluZVRleHRCb3goV2ViQ29yZTo6U1ZHSW5saW5l
VGV4dEJveCopICAoaW4gV2ViQ29yZSkgKyA4MCAgWzB4N2ZmZjk0ZjA5ZGQwXQogICAgKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc2MCBX
ZWJDb3JlOjpTVkdUZXh0TGF5b3V0RW5naW5lOjpsYXlvdXRUZXh0T25MaW5lT3JQYXRoKFdlYkNv
cmU6OlNWR0lubGluZVRleHRCb3gqLCBXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmVUZXh0KiwgV2Vi
Q29yZTo6UmVuZGVyU3R5bGUgY29uc3QqKSAgKGluIFdlYkNvcmUpICsgODkwICBbMHg3ZmZmOTRm
MGEyOWFdCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDc3NjAgV2ViQ29yZTo6U1ZHVGV4dExheW91dEVuZ2luZTo6Y3VycmVudExv
Z2ljYWxDaGFyYWN0ZXJNZXRyaWNzKFdlYkNvcmU6OlNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiYs
IFdlYkNvcmU6OlNWR1RleHRNZXRyaWNzJikgIChpbiBXZWJDb3JlKSArIDEwOSwxODMsLi4uICBb
MHg3ZmZmOTU3Njg1NWQsMHg3ZmZmOTU3Njg1YTcsLi4uXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140752</attachid>
            <date>2012-05-08 11:40:17 -0700</date>
            <delta_ts>2012-05-15 06:52:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83405-20120508204043.patch</filename>
            <type>text/plain</type>
            <size>23405</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFmODliZGM4MzI1OGVh
ZDA3ZmFjMmUwMTM2YzIyMmQyZDllZTYyNy4uYjNkZmZiZjBhMjkwZWExMWVlNDUwZDg4OWYwZjg2
NDYxMTFiMGVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA1LTA4ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04ocjEwNTA1Nyk6IEluZmluaXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1
cnJlbnRMb2dpY2FsQ2hhcmFjdGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEeW5hbWljYWxseSBhZGRpbmcgdHNwYW5zIGNhcnJ5aW5nIHBv
c2l0aW9uIGluZm9ybWF0aW9uIGluIHRoZSB4L3kvZHgvZHkvcm90YXRlIGxpc3RzIGlzIGJyb2tl
bi4KKyAgICAgICAgVG8gYXZvaWQgbWlzdGFrZXMgbGlrZSB0aGlzIGluIGZ1dHVyZSwgc2ltcGxp
ZnkgdGhlIGNhbGxpbmcgY29kZSBpbiBSZW5kZXJTVkdJbmxpbmVUZXh0IGFuZCBjZW50cmFsaXpl
CisgICAgICAgIHRoZSBtYW5hZ21lbnQgb2YgYWxsIGNhY2hlcyAodGV4dCBwb3NpdGlvbmluZyBl
bGVtZW50IGNhY2hlIC8gbWV0cmljcyBtYXAgLyBsYXlvdXQgYXR0cmlidXRlcykgaW4KKyAgICAg
ICAgUmVuZGVyU1ZHVGV4dC4gVGhpcyBhdm9pZHMgdGhlIGhhY2sgaW4gU1ZHUm9vdElubGluZUJv
eDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkgd2hpY2gKKyAgICAgICAg
Y2FsbGVkIHRleHRSb290LT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpLCB3aGljaCB3YXMgdXNl
ZCB0byBmaXggcHJldmlvdXMgc2VjdXJpdHkgaXNzdWVzIHdpdGggdGhpcyBjb2RlLgorICAgICAg
ICBJbnN0ZWFkIGNvcnJlY3RseSBoYW5kbGUgZGVzdHJ1Y3Rpb24gb2YgUmVuZGVyU1ZHSW5saW5l
VGV4dCBpbiBSZW5kZXJTVkdUZXh0LCBrZWVwaW5nIHRoZSBtX2xheW91dEF0dHJpYnV0ZXMKKyAg
ICAgICAgc3luY2hyb25pemVkIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHJlbmRlciB0
cmVlLiBGaXhlcyBoaWdoY2hhcnRzIHByb2JsZW1zLgorCisgICAgICAgIFRlc3RzOiBzdmcvdGV4
dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy90ZXh0L21v
ZGlmeS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lOjph
ZGRDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZVRleHQ6OndpbGxCZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmVUZXh0OjpzZXRUZXh0SW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lVGV4dDo6c3R5bGVEaWRDaGFu
Z2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZWN1cnNpdmVVcGRhdGVNZXRyaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1RleHQ6OnN1YnRyZWVDaGlsZEFkZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR1RleHQ6OnN1YnRyZWVDaGlsZFdpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3Jl
OjpyZWN1cnNpdmVDb2xsZWN0TGF5b3V0QXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpj
aGVja0xheW91dEF0dHJpYnV0ZXNDb25zaXN0ZW5jeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRXYXNEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHVGV4dDo6c3VidHJlZVN0eWxlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTVkdUZXh0OjpzdWJ0cmVlVGV4dENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHVGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmFk
ZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnJlYnVpbGRBbGxMYXlv
dXRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnJlYnVpbGRM
YXlvdXRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmxheW91dEF0dHJpYnV0ZXMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdSb290SW5saW5lQm94Ojpjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3Jt
YXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNC
dWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlcjo6YnVpbGRMYXlvdXRBdHRyaWJ1dGVzKToKKwogMjAxMi0wMy0zMSAgUm9iZXJ0IEhvZ2Fu
ICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTIDIuMSBmYWlsdXJlOiBmaXJzdC1s
ZXR0ZXItbmVzdGVkLTAwNC5odG0gZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCBhYjhjYzFhODc1NTU0YTkwM2M4ZDE0M2Rk
Y2MzZTVkMDk1M2Q3MTQzLi45OGFmOGU5NThiMjhjNDZhODkzOTI1NTBiZWEwY2FlZmZmNjBjYzA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
Y3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmFkZENoaWxkKFJl
bmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiB7CiAgICAgUmVu
ZGVySW5saW5lOjphZGRDaGlsZChjaGlsZCwgYmVmb3JlQ2hpbGQpOwogICAgIGlmIChSZW5kZXJT
VkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0
QW5jZXN0b3IodGhpcykpCi0gICAgICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0No
YW5nZWQoY2hpbGQpOworICAgICAgICB0ZXh0UmVuZGVyZXItPnN1YnRyZWVDaGlsZEFkZGVkKGNo
aWxkKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW5saW5lVGV4dC5jcHAKaW5kZXggMDlkNDQ2YjdkNmVlYjlmZjU3OGQ1NDZhMDk1MDI3
NGM1YTdmYWQ0Yi4uYTBkZjQxMTNlM2ZiODc5N2E3ZDZmYmEyZDI2MWQ4ZDcwZjU3MDc4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRl
eHQuY3BwCkBAIC04MSwyOCArODEsMTYgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0Ojp3aWxs
QmVEZXN0cm95ZWQoKQogICAgIH0KIAogICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRl
cyo+IGFmZmVjdGVkQXR0cmlidXRlczsKLSAgICB0ZXh0UmVuZGVyZXItPmxheW91dEF0dHJpYnV0
ZXNXaWxsQmVEZXN0cm95ZWQodGhpcywgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKLQorICAgIHRleHRS
ZW5kZXJlci0+c3VidHJlZUNoaWxkV2lsbEJlRGVzdHJveWVkKHRoaXMsIGFmZmVjdGVkQXR0cmli
dXRlcyk7CiAgICAgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKCk7Ci0gICAgaWYgKGFmZmVj
dGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQotICAgICAgICB0ZXh0UmVuZGVyZXItPnJlYnVpbGRMYXlv
dXRBdHRyaWJ1dGVzKGFmZmVjdGVkQXR0cmlidXRlcyk7CisgICAgdGV4dFJlbmRlcmVyLT5zdWJ0
cmVlQ2hpbGRXYXNEZXN0cm95ZWQodGhpcywgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKIH0KIAogdm9p
ZCBSZW5kZXJTVkdJbmxpbmVUZXh0OjpzZXRUZXh0SW50ZXJuYWwoUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiB0ZXh0KQogewogICAgIFJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5hbCh0ZXh0KTsKLQot
ICAgIC8vIFdoZW4gdGhlIHVuZGVybHlpbmcgdGV4dCBjb250ZW50IGNoYW5nZXMsIGNhbGwgYm90
aCB0ZXh0RE9NQ2hhbmdlZCgpICYgbGF5b3V0QXR0cmlidXRlc0NoYW5nZWQoKQotICAgIC8vIFRo
ZSBmb3JtZXIgd2lsbCBjbGVhciB0aGUgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCBjYWNoZSwg
d2hpY2ggZGVwZW5kcyBvbiB0aGUgdGV4dExlbmd0aCgpIG9mCi0gICAgLy8gdGhlIFJlbmRlclNW
R0lubGluZVRleHQgb2JqZWN0cywgYW5kIHRodXMgbmVlZHMgdG8gYmUgcmVidWlsZC4gVGhlIGxh
dHRlciB3aWxsIGFzc3VyZSB0aGF0IHRoZQotICAgIC8vIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVz
IGFzc29jaWF0ZWQgd2l0aCB0aGUgUmVuZGVyU1ZHSW5saW5lVGV4dCB3aWxsIGJlIHVwZGF0ZWQu
Ci0gICAgaWYgKFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1RleHQ6Omxv
Y2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKSkgewotICAgICAgICB0ZXh0UmVuZGVyZXIt
PmludmFsaWRhdGVUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOwotICAgICAgICB0ZXh0UmVuZGVy
ZXItPmxheW91dEF0dHJpYnV0ZXNDaGFuZ2VkKHRoaXMpOwotICAgIH0KKyAgICBpZiAoUmVuZGVy
U1ZHVGV4dCogdGV4dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4
dEFuY2VzdG9yKHRoaXMpKQorICAgICAgICB0ZXh0UmVuZGVyZXItPnN1YnRyZWVUZXh0Q2hhbmdl
ZCh0aGlzKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0OjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpAQCAtMTI3
LDcgKzExNSw3IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lVGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlCiAKICAgICAvLyBUaGUgdGV4dCBt
ZXRyaWNzIG1heSBiZSBpbmZsdWVuY2VkIGJ5IHN0eWxlIGNoYW5nZXMuCiAgICAgaWYgKFJlbmRl
clNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1Rl
eHRBbmNlc3Rvcih0aGlzKSkKLSAgICAgICAgdGV4dFJlbmRlcmVyLT5sYXlvdXRBdHRyaWJ1dGVz
Q2hhbmdlZCh0aGlzKTsKKyAgICAgICAgdGV4dFJlbmRlcmVyLT5zdWJ0cmVlU3R5bGVDaGFuZ2Vk
KHRoaXMpOwogfQogCiBJbmxpbmVUZXh0Qm94KiBSZW5kZXJTVkdJbmxpbmVUZXh0OjpjcmVhdGVU
ZXh0Qm94KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
Y3BwCmluZGV4IGY1MTJhYjg3YjQzODgwZjZlYzFmMjRlYWEwYTE5ZDI5MDdmMmJhZjYuLjg2NWU1
MDFmMDc0OTM1ZmRlODRkZDgzNTAzMWZjNTcxYTdhYTE2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtMTEwLDYgKzExMCwxNyBAQCB2
b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQp
OwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZlVXBkYXRlTWV0cmljcyhSZW5kZXJP
YmplY3QqIHN0YXJ0LCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXImIGJ1aWxkZXIpCit7
CisgICAgaWYgKHN0YXJ0LT5pc1NWR0lubGluZVRleHQoKSkgeworICAgICAgICBidWlsZGVyLnJl
YnVpbGRNZXRyaWNzRm9yVGV4dFJlbmRlcmVyKHRvUmVuZGVyU1ZHSW5saW5lVGV4dChzdGFydCkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxk
ID0gc3RhcnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpCisgICAgICAgIHJlY3Vyc2l2ZVVwZGF0ZU1ldHJpY3MoY2hpbGQsIGJ1aWxkZXIpOworfQor
CiBzdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZlVXBkYXRlTGF5b3V0QXR0cmlidXRlcyhSZW5k
ZXJPYmplY3QqIHN0YXJ0LCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXImIGJ1aWxkZXIp
CiB7CiAgICAgaWYgKHN0YXJ0LT5pc1NWR0lubGluZVRleHQoKSkgewpAQCAtMTIxLDExICsxMzIs
MTYgQEAgc3RhdGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZVVwZGF0ZUxheW91dEF0dHJpYnV0ZXMo
UmVuZGVyT2JqZWN0KiBzdGFydCwgU1ZHVGV4dEwKICAgICAgICAgcmVjdXJzaXZlVXBkYXRlTGF5
b3V0QXR0cmlidXRlcyhjaGlsZCwgYnVpbGRlcik7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6
bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKK3ZvaWQgUmVuZGVy
U1ZHVGV4dDo6c3VidHJlZUNoaWxkQWRkZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKICAgICBB
U1NFUlQoY2hpbGQpOwogICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCiAg
ICAgICAgIHJldHVybjsKKworICAgIC8vIFRoZSBwb3NpdGlvbmluZyBlbGVtZW50cyBjYWNoZSBk
b2Vzbid0IGluY2x1ZGUgdGhlIG5ldyAnY2hpbGQnIHlldC4gQ2xlYXIgdGhlCisgICAgLy8gY2Fj
aGUsIGFzIHRoZSBuZXh0IGJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5kZXJlcigpIGNh
bGwgcmVidWlsZHMgaXQuCisgICAgaW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7
CisKICAgICBGb250Q2FjaGVQdXJnZVByZXZlbnRlciBmb250Q2FjaGVQdXJnZVByZXZlbnRlcjsK
ICAgICByZWN1cnNpdmVVcGRhdGVMYXlvdXRBdHRyaWJ1dGVzKGNoaWxkLCBtX2xheW91dEF0dHJp
YnV0ZXNCdWlsZGVyKTsKICAgICByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpOwpAQCAtMTYyLDEy
ICsxNzgsMTggQEAgc3RhdGljIGlubGluZSBib29sIGZpbmRQcmV2aW91c0FuZE5leHRBdHRyaWJ1
dGVzKFJlbmRlck9iamVjdCogc3RhcnQsIFJlbmRlclNWR0kKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0QXR0cmlidXRlc1dpbGxCZURlc3Ryb3llZChS
ZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0LCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMq
PiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKQordm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRX
aWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCwgVmVjdG9yPFNWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0cmlidXRlcykKIHsKICAgICBBU1NFUlQodGV4
dCk7CisKKyAgICAvLyBUaGUgcG9zaXRpb25pbmcgZWxlbWVudHMgY2FjaGUgZGVwZW5kcyBvbiB0
aGUgc2l6ZSBvZiBlYWNoIHRleHQgcmVuZGVyZXIgaW4gdGhlCisgICAgLy8gc3VidHJlZS4gSWYg
dGhpcyBjaGFuZ2VzLCBjbGVhciB0aGUgY2FjaGUuIEl0J3MgZ29pbmcgdG8gYmUgcmVidWlsdCBi
ZWxvdy4KKyAgICBpbnZhbGlkYXRlVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKKwogICAgIGlm
IChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCiAgICAgICAgIHJldHVybjsKIAorICAg
IC8vIFRoaXMgbG9naWMgcmVxdWlyZXMgdGhhdCB0aGUgJ3RleHQnIGNoaWxkIGlzIHN0aWxsIGlu
c2VydGVkIGluIHRoZSB0cmVlLgogICAgIGJvb2wgc3RvcEFmdGVyTmV4dCA9IGZhbHNlOwogICAg
IFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiBwcmV2aW91cyA9IDA7CiAgICAgU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXMqIG5leHQgPSAwOwpAQCAtMTc2LDYgKzE5OCw3NyBAQCB2b2lkIFJlbmRlclNW
R1RleHQ6OmxheW91dEF0dHJpYnV0ZXNXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4
dCogdGV4dCwgVgogICAgICAgICBhZmZlY3RlZEF0dHJpYnV0ZXMuYXBwZW5kKHByZXZpb3VzKTsK
ICAgICBpZiAobmV4dCkKICAgICAgICAgYWZmZWN0ZWRBdHRyaWJ1dGVzLmFwcGVuZChuZXh0KTsK
KworICAgIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiBjdXJyZW50TGF5b3V0QXR0cmlidXRlcyA9
IHRleHQtPmxheW91dEF0dHJpYnV0ZXMoKTsKKworICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gbV9s
YXlvdXRBdHRyaWJ1dGVzLmZpbmQoY3VycmVudExheW91dEF0dHJpYnV0ZXMpOworICAgIEFTU0VS
VChwb3NpdGlvbiAhPSBub3RGb3VuZCk7CisgICAgbV9sYXlvdXRBdHRyaWJ1dGVzLnJlbW92ZShw
b3NpdGlvbik7CisKKyAgICBBU1NFUlQoIW1fbGF5b3V0QXR0cmlidXRlcy5jb250YWlucyhjdXJy
ZW50TGF5b3V0QXR0cmlidXRlcykpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZl
Q29sbGVjdExheW91dEF0dHJpYnV0ZXMoUmVuZGVyT2JqZWN0KiBzdGFydCwgVmVjdG9yPFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGF0dHJpYnV0ZXMpCit7CisgICAgZm9yIChSZW5kZXJPYmpl
Y3QqIGNoaWxkID0gc3RhcnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5l
eHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHQoKSkgewor
ICAgICAgICAgICAgYXR0cmlidXRlcy5hcHBlbmQodG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxk
KS0+bGF5b3V0QXR0cmlidXRlcygpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXMoY2hpbGQsIGF0dHJp
YnV0ZXMpOworICAgIH0KK30KKworc3RhdGljIGlubGluZSB2b2lkIGNoZWNrTGF5b3V0QXR0cmli
dXRlc0NvbnNpc3RlbmN5KFJlbmRlclNWR1RleHQqIHRleHQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0
QXR0cmlidXRlcyo+JiBleHBlY3RlZExheW91dEF0dHJpYnV0ZXMpCit7CisjaWZuZGVmIE5ERUJV
RworICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IG5ld0xheW91dEF0dHJpYnV0
ZXM7CisgICAgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXModGV4dCwgbmV3TGF5b3V0
QXR0cmlidXRlcyk7CisgICAgQVNTRVJUKG5ld0xheW91dEF0dHJpYnV0ZXMgPT0gZXhwZWN0ZWRM
YXlvdXRBdHRyaWJ1dGVzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRleHQpOworICAgIFVO
VVNFRF9QQVJBTShleHBlY3RlZExheW91dEF0dHJpYnV0ZXMpOworI2VuZGlmCit9CisKK3ZvaWQg
UmVuZGVyU1ZHVGV4dDo6c3VidHJlZUNoaWxkV2FzRGVzdHJveWVkKFJlbmRlclNWR0lubGluZVRl
eHQqLCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiYgYWZmZWN0ZWRBdHRyaWJ1dGVz
KQoreworICAgIGlmIChkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkgfHwgYWZmZWN0ZWRBdHRyaWJ1
dGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hlY2tMYXlvdXRBdHRyaWJ1
dGVzQ29uc2lzdGVuY3kodGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKKworICAgIHVuc2lnbmVk
IHNpemUgPSBhZmZlY3RlZEF0dHJpYnV0ZXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVp
bGRNZXRyaWNzRm9yVGV4dFJlbmRlcmVyKGFmZmVjdGVkQXR0cmlidXRlc1tpXS0+Y29udGV4dCgp
KTsKK30KKwordm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlU3R5bGVDaGFuZ2VkKFJlbmRlclNW
R0lubGluZVRleHQqIHRleHQpCit7CisgICAgQVNTRVJUKHRleHQpOworICAgIGlmIChtX25lZWRz
UG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkg
dXBkYXRlIHRoZSBtZXRyaWNzIGNhY2hlLCBidXQgbm90IHRoZSB0ZXh0IHBvc2l0aW9uaW5nIGVs
ZW1lbnQgY2FjaGUKKyAgICAvLyBub3IgdGhlIGxheW91dCBhdHRyaWJ1dGVzIGNhY2hlZCBpbiB0
aGUgbGVhZiAjdGV4dCByZW5kZXJlcnMuCisgICAgRm9udENhY2hlUHVyZ2VQcmV2ZW50ZXIgZm9u
dENhY2hlUHVyZ2VQcmV2ZW50ZXI7CisgICAgcmVjdXJzaXZlVXBkYXRlTWV0cmljcyh0ZXh0LCBt
X2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyKTsKK30KKwordm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0
cmVlVGV4dENoYW5nZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCkKK3sKKyAgICBBU1NFUlQo
dGV4dCk7CisKKyAgICAvLyBUaGUgcG9zaXRpb25pbmcgZWxlbWVudHMgY2FjaGUgZGVwZW5kcyBv
biB0aGUgc2l6ZSBvZiBlYWNoIHRleHQgcmVuZGVyZXIgaW4gdGhlCisgICAgLy8gc3VidHJlZS4g
SWYgdGhpcyBjaGFuZ2VzLCBjbGVhciB0aGUgY2FjaGUuIEl0J3MgZ29pbmcgdG8gYmUgcmVidWls
dCBiZWxvdy4KKyAgICBpbnZhbGlkYXRlVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKKworICAg
IGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOworICAg
IHJlY3Vyc2l2ZVVwZGF0ZUxheW91dEF0dHJpYnV0ZXModGV4dCwgbV9sYXlvdXRBdHRyaWJ1dGVz
QnVpbGRlcik7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHVGV4dDo6aW52YWxpZGF0ZVRleHRQb3NpdGlv
bmluZ0VsZW1lbnRzKCkKQEAgLTIxNiw3ICszMDksNyBAQCB2b2lkIFJlbmRlclNWR1RleHQ6Omxh
eW91dCgpCiAgICAgLy8gb3IgdGhlIHRyYW5zZm9ybSB0byB0aGUgcm9vdCBjb250ZXh0IGhhcyBj
aGFuZ2VkIHRoZW4gcmVjb21wdXRlIHRoZSBvbi1zY3JlZW4gZm9udCBzaXplLgogICAgIGlmICht
X25lZWRzVGV4dE1ldHJpY3NVcGRhdGUgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluZFRyZWVSb290
T2JqZWN0KHRoaXMpLT5pc0xheW91dFNpemVDaGFuZ2VkKCkpIHsKICAgICAgICAgcmVjdXJzaXZl
VXBkYXRlU2NhbGVkRm9udCh0aGlzKTsKLSAgICAgICAgcmVidWlsZExheW91dEF0dHJpYnV0ZXMo
dHJ1ZSk7CisgICAgICAgIHJlYnVpbGRBbGxMYXlvdXRBdHRyaWJ1dGVzKCk7CiAgICAgICAgIHVw
ZGF0ZUNhY2hlZEJvdW5kYXJpZXNJblBhcmVudHMgPSB0cnVlOwogICAgICAgICBtX25lZWRzVGV4
dE1ldHJpY3NVcGRhdGUgPSBmYWxzZTsKICAgICB9CkBAIC0zNjQsNyArNDU3LDcgQEAgRmxvYXRS
ZWN0IFJlbmRlclNWR1RleHQ6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QK
IHZvaWQgUmVuZGVyU1ZHVGV4dDo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBSZW5kZXJTVkdCbG9jazo6YWRkQ2hpbGQoY2hp
bGQsIGJlZm9yZUNoaWxkKTsKLSAgICBsYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZChjaGlsZCk7Cisg
ICAgc3VidHJlZUNoaWxkQWRkZWQoY2hpbGQpOwogfQogCiAvLyBGaXggZm9yIDxyZGFyOi8vcHJv
YmxlbS84MDQ4ODc1Pi4gV2Ugc2hvdWxkIG5vdCByZW5kZXIgOmZpcnN0LWxpbmUgQ1NTIFN0eWxl
CkBAIC0zODAsMzggKzQ3MywyMyBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OnVwZGF0ZUZpcnN0TGV0
dGVyKCkKIHsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRB
dHRyaWJ1dGVzKFJlbmRlck9iamVjdCogc3RhcnQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyo+JiBhdHRyaWJ1dGVzKQordm9pZCBSZW5kZXJTVkdUZXh0OjpyZWJ1aWxkQWxsTGF5b3V0
QXR0cmlidXRlcygpCiB7Ci0gICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gc3RhcnQtPmZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAg
ICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHQoKSkgewotICAgICAgICAgICAgYXR0cmlidXRl
cy5hcHBlbmQodG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxkKS0+bGF5b3V0QXR0cmlidXRlcygp
KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CisgICAgbV9sYXlvdXRBdHRyaWJ1
dGVzLmNsZWFyKCk7CisgICAgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXModGhpcywg
bV9sYXlvdXRBdHRyaWJ1dGVzKTsKKyAgICBpZiAobV9sYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRBdHRy
aWJ1dGVzKGNoaWxkLCBhdHRyaWJ1dGVzKTsKLSAgICB9CisgICAgbV9sYXlvdXRBdHRyaWJ1dGVz
QnVpbGRlci5yZWJ1aWxkTWV0cmljc0Zvcldob2xlVHJlZSh0aGlzKTsKIH0KIAotdm9pZCBSZW5k
ZXJTVkdUZXh0OjpyZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhib29sIHBlcmZvcm1GdWxsUmVidWls
ZCkKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6cmVidWlsZExheW91dEF0dHJpYnV0ZXMoKQogewotICAg
IGlmIChwZXJmb3JtRnVsbFJlYnVpbGQpCi0gICAgICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVh
cigpOwotCiAgICAgaWYgKG1fbGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAg
cmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXModGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVz
KTsKLSAgICAgICAgaWYgKG1fbGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkgfHwgIXBlcmZvcm1G
dWxsUmVidWlsZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2xheW91dEF0dHJp
YnV0ZXNCdWlsZGVyLnJlYnVpbGRNZXRyaWNzRm9yV2hvbGVUcmVlKHRoaXMpOworICAgICAgICBy
ZWJ1aWxkQWxsTGF5b3V0QXR0cmlidXRlcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4gYWZmZWN0ZWRBdHRyaWJ1dGVzOwot
ICAgIHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKGFmZmVjdGVkQXR0cmlidXRlcyk7Ci19Ci0KLXZv
aWQgUmVuZGVyU1ZHVGV4dDo6cmVidWlsZExheW91dEF0dHJpYnV0ZXMoVmVjdG9yPFNWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0cmlidXRlcykKLXsKICAgICAvLyBEZXRlY3Qg
Y2hhbmdlcyBpbiBsYXlvdXQgYXR0cmlidXRlcyBhbmQgb25seSBtZWFzdXJlIHRob3NlIHRleHQg
cGFydHMgdGhhdCBoYXZlIGNoYW5nZWQhCiAgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzKj4gbmV3TGF5b3V0QXR0cmlidXRlczsKICAgICByZWN1cnNpdmVDb2xsZWN0TGF5b3V0QXR0
cmlidXRlcyh0aGlzLCBuZXdMYXlvdXRBdHRyaWJ1dGVzKTsKQEAgLTQyMCw3ICs0OTgsNyBAQCB2
b2lkIFJlbmRlclNWR1RleHQ6OnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKFZlY3RvcjxTVkdUZXh0
TGF5b3V0QXR0cmlidXRlcyo+JiBhZgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
Q29tcGFyZSBtX2xheW91dEF0dHJpYnV0ZXMgd2l0aCBuZXdMYXlvdXRBdHRyaWJ1dGVzIHRvIGZp
Z3VyZSBvdXQgd2hpY2ggYXR0cmlidXRlcyBnb3QgYWRkZWQvcmVtb3ZlZC4KKyAgICAvLyBDb21w
YXJlIG1fbGF5b3V0QXR0cmlidXRlcyB3aXRoIG5ld0xheW91dEF0dHJpYnV0ZXMgdG8gZmlndXJl
IG91dCB3aGljaCBhdHRyaWJ1dGVzIGdvdCBhZGRlZC4KICAgICBzaXplX3Qgc2l6ZSA9IG5ld0xh
eW91dEF0dHJpYnV0ZXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsg
KytpKSB7CiAgICAgICAgIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiBhdHRyaWJ1dGVzID0gbmV3
TGF5b3V0QXR0cmlidXRlc1tpXTsKQEAgLTQyOCwxMCArNTA2LDYgQEAgdm9pZCBSZW5kZXJTVkdU
ZXh0OjpyZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0
ZXMqPiYgYWYKICAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIucmVidWlsZE1l
dHJpY3NGb3JUZXh0UmVuZGVyZXIoYXR0cmlidXRlcy0+Y29udGV4dCgpKTsKICAgICB9CiAKLSAg
ICBzaXplID0gYWZmZWN0ZWRBdHRyaWJ1dGVzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1
aWxkTWV0cmljc0ZvclRleHRSZW5kZXJlcihhZmZlY3RlZEF0dHJpYnV0ZXNbaV0tPmNvbnRleHQo
KSk7Ci0KICAgICBtX2xheW91dEF0dHJpYnV0ZXMgPSBuZXdMYXlvdXRBdHRyaWJ1dGVzOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IDU2
NjViNDQ0MmU0YzA3MTZlZTk1N2Y2ZDQwMzI3Njk4OGI2N2Q5ZmEuLjIzYTBiNmE5YTZjYmY0OGQw
YzYyNjI1Y2E5ZmIxNmUzNThjOWM3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC00OCwxOCArNDgsMTggQEAgcHVibGljOgogICAgIHN0YXRp
YyBjb25zdCBSZW5kZXJTVkdUZXh0KiBsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IoY29uc3Qg
UmVuZGVyT2JqZWN0Kik7CiAKICAgICBib29sIG5lZWRzUmVvcmRlcmluZygpIGNvbnN0IHsgcmV0
dXJuIG1fbmVlZHNSZW9yZGVyaW5nOyB9CisgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzKj4mIGxheW91dEF0dHJpYnV0ZXMoKSB7IHJldHVybiBtX2xheW91dEF0dHJpYnV0ZXM7IH0K
KworICAgIHZvaWQgc3VidHJlZUNoaWxkQWRkZWQoUmVuZGVyT2JqZWN0Kik7CisgICAgdm9pZCBz
dWJ0cmVlQ2hpbGRXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCosIFZlY3RvcjxT
VkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOworICAgIHZvaWQg
c3VidHJlZUNoaWxkV2FzRGVzdHJveWVkKFJlbmRlclNWR0lubGluZVRleHQqLCBWZWN0b3I8U1ZH
VGV4dExheW91dEF0dHJpYnV0ZXMqPiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKKyAgICB2b2lkIHN1
YnRyZWVTdHlsZUNoYW5nZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCopOworICAgIHZvaWQgc3VidHJl
ZVRleHRDaGFuZ2VkKFJlbmRlclNWR0lubGluZVRleHQqKTsKIAogICAgIC8vIENhbGwgdGhpcyBt
ZXRob2Qgd2hlbiBlaXRoZXIgdGhlIGNoaWxkcmVuIG9mIGEgRE9NIHRleHQgZWxlbWVudCBoYXZl
IGNoYW5nZWQsIG9yIHRoZSBsZW5ndGggb2YKICAgICAvLyB0aGUgdGV4dCBpbiBhbnkgY2hpbGQg
ZWxlbWVudCBoYXMgY2hhbmdlZC4KICAgICB2b2lkIGludmFsaWRhdGVUZXh0UG9zaXRpb25pbmdF
bGVtZW50cygpOwogCi0gICAgdm9pZCBsYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZChSZW5kZXJPYmpl
Y3QqKTsKLSAgICB2b2lkIGxheW91dEF0dHJpYnV0ZXNXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZH
SW5saW5lVGV4dCosIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBhZmZlY3RlZEF0
dHJpYnV0ZXMpOwotICAgIHZvaWQgcmVidWlsZExheW91dEF0dHJpYnV0ZXMoYm9vbCBwZXJmb3Jt
RnVsbFJlYnVpbGQgPSBmYWxzZSk7Ci0gICAgdm9pZCByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhW
ZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKLQot
ICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBsYXlvdXRBdHRyaWJ1dGVzKCkg
eyByZXR1cm4gbV9sYXlvdXRBdHRyaWJ1dGVzOyB9Ci0KIHByaXZhdGU6CiAgICAgdmlydHVhbCBj
b25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNWR1RleHQiOyB9
CiAgICAgdmlydHVhbCBib29sIGlzU1ZHVGV4dCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAg
LTkxLDYgKzkxLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBmaXJzdExp
bmVCbG9jaygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGaXJzdExldHRlcigpOwog
CisgICAgdm9pZCByZWJ1aWxkQWxsTGF5b3V0QXR0cmlidXRlcygpOworICAgIHZvaWQgcmVidWls
ZExheW91dEF0dHJpYnV0ZXMoKTsKKwogICAgIGJvb2wgbV9uZWVkc1Jlb3JkZXJpbmcgOiAxOwog
ICAgIGJvb2wgbV9uZWVkc1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlIDogMTsKICAgICBib29sIG1f
bmVlZHNUcmFuc2Zvcm1VcGRhdGUgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKaW5kZXggNTcxNDZjOTBjODM4YWI2NTMzYTQzZTcz
ODA1NmUzODJlNWU4NWM5Zi4uMzRlOTNhMDJlZjc0MzJlM2MyNmVmMjM2MGQxY2YzZmQ0MzdlNDE2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5l
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVC
b3guY3BwCkBAIC03Myw3ICs3Myw2IEBAIHZvaWQgU1ZHUm9vdElubGluZUJveDo6Y29tcHV0ZVBl
ckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkKICAgICBSZW5kZXJTVkdUZXh0KiB0ZXh0Um9v
dCA9IHRvUmVuZGVyU1ZHVGV4dChibG9jaygpKTsKICAgICBBU1NFUlQodGV4dFJvb3QpOwogCi0g
ICAgdGV4dFJvb3QtPnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKCk7CiAgICAgVmVjdG9yPFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGxheW91dEF0dHJpYnV0ZXMgPSB0ZXh0Um9vdC0+bGF5b3V0
QXR0cmlidXRlcygpOwogICAgIGlmIChsYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdU
ZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCmluZGV4IDAyYTIxMjNlYjY2
N2VjY2Y3M2YwODBmNmJiNGU2ZmVjYTVkMmYzZTYuLjA2N2JmNmJiOTdhMjdmMGUxNjE1MzAxNDZj
NWY5ZWRiOTc1OTViYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKQEAgLTI2LDkg
KzI2LDYgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCiAjaW5jbHVkZSAiU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudC5oIgogCi0vLyBTZXQgdG8gYSB2YWx1ZSA+IDAgdG8gZHVtcCB0aGUg
dGV4dCBsYXlvdXQgYXR0cmlidXRlcwotI2RlZmluZSBEVU1QX1RFWFRfTEFZT1VUX0FUVFJJQlVU
RVMgMAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlcjo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyKCkKQEAgLTE3MywxMSArMTcwLDYg
QEAgdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmli
dXRlcyhSZW5kZXJTVkdUZXh0KiB0ZXh0Um8KICAgICB1bnNpZ25lZCBzaXplID0gbV90ZXh0UG9z
aXRpb25zLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQog
ICAgICAgICBmaWxsQ2hhcmFjdGVyRGF0YU1hcChtX3RleHRQb3NpdGlvbnNbaV0pOwotCi0jaWYg
RFVNUF9URVhUX0xBWU9VVF9BVFRSSUJVVEVTID4gMAotICAgIGZwcmludGYoc3RkZXJyLCAiXG5E
dW1waW5nIEFMTCBsYXlvdXQgYXR0cmlidXRlcyBmb3IgUmVuZGVyU1ZHVGV4dCwgcmVuZGVyZXI9
JXAsIG5vZGU9JXAgKG1fdGV4dExlbmd0aDogJWkpXG4iLCB0ZXh0Um9vdCwgdGV4dFJvb3QtPm5v
ZGUoKSwgbV90ZXh0TGVuZ3RoKTsKLSAgICBtX2NoYXJhY3RlckRhdGFNYXAuZHVtcCgpOwotI2Vu
ZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVk
IGksIGZsb2F0JiBsYXN0Um90YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNW
R0xlbmd0aENvbnRleHQmIGxlbmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3QqIHhMaXN0
LCBjb25zdCBTVkdMZW5ndGhMaXN0KiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdCogZHhMaXN0
LCBjb25zdCBTVkdMZW5ndGhMaXN0KiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3QqIHJvdGF0
ZUxpc3QpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNzdmZWE4NWZiMGE2MmY5Mzk2MTlhZWY2N2IwOGVmZjVlZGU4MTYwZC4u
OGQ3ZmQyMTE1OGIwOWVmMzA5OGViZmQwYzg3NjhhZGY5ODNjNjRlMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA1LTA4ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0u
Y29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEwNTA1Nyk6IEluZmluaXRlIGxvb3AgaW5zaWRl
IFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1cnJlbnRMb2dpY2FsQ2hhcmFjdGVyTWV0cmljcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MDUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHdvIG5ldyB0
ZXN0Y2FzZXMgY292ZXJpbmcgdGhlIHByb2JsZW0uCisKKyAgICAgICAgKiBzdmcvdGV4dC9hZGQt
dHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy90
ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL3Rl
eHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvdGV4dC9tb2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLmh0bWw6IEFkZGVkLgorCiAy
MDEyLTAzLTMxICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBD
U1MgMi4xIGZhaWx1cmU6IGZpcnN0LWxldHRlci1uZXN0ZWQtMDA0Lmh0bSBmYWlscwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZjg4OWJjOWI2ZjJkYmM4MDAyMWRkZDU1YzRiOWYwZGI0
MmZmMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4t
cG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8c3ZnPgorPHRleHQgaWQ9InRleHQiIHk9IjUwIj48dHNwYW4+
U2hvdWxkIGJlIG9uPC90c3Bhbj48dHNwYW4gZHk9IjMwIj5kaWZmZXJlbnQgbGluZXM8L3RzcGFu
PjwvdGV4dD4KKzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sIGIvTGF5b3V0VGVzdHMvc3Zn
L3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmMDUzMzdiZTc0
MWZjN2MyNWNmZDY4OTVjNDIzZGFlNzU2MzRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgorPHN2
Zz4KKzx0ZXh0IGlkPSJ0ZXh0IiB5PSI1MCI+PC90ZXh0PgorCis8c2NyaXB0PgordmFyIHRleHQg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGV4dCIpWzBdOworCitmdW5jdGlvbiBh
ZGRTcGFucygpIHsKKyAgICB2YXIgdHNwYW4xID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJ0c3BhbiIpOworICAgIHRzcGFuMS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiU2hvdWxkIGJlIG9uIikpOworCisgICAgdmFy
IHRzcGFuMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciLCAidHNwYW4iKTsKKyAgICB0c3BhbjIuc2V0QXR0cmlidXRlKCJkeSIsICIzMCIpOwor
ICAgIHRzcGFuMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiZGlmZmVyZW50
IGxpbmVzIikpOworCisgICAgdGV4dC5hcHBlbmRDaGlsZCh0c3BhbjEpOworICAgIHRleHQuYXBw
ZW5kQ2hpbGQodHNwYW4yKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIGxvYWRlZCgpIHsKKyAgICAvLyBCdWcgaXMgb25seSB0
cmlnZ2VyIGZyb20gYW5vdGhlciBsb29wLgorICAgIHNldFRpbWVvdXQoYWRkU3BhbnMsIDApOwor
fQorPC9zY3JpcHQ+Cis8L3N2Zz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL3N2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMWY4ODliYzliNmYyZGJjODAwMjFkZGQ1NWM0YjlmMGRiNDJmZjA5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBv
c2l0aW9uLWJ1Zy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorPHN2Zz4KKzx0ZXh0IGlkPSJ0ZXh0IiB5PSI1MCI+PHRzcGFuPlNo
b3VsZCBiZSBvbjwvdHNwYW4+PHRzcGFuIGR5PSIzMCI+ZGlmZmVyZW50IGxpbmVzPC90c3Bhbj48
L3RleHQ+Cis8L3N2Zz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbCBiL0xheW91dFRlc3RzL3N2
Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTJmYWYx
NTI3ZDM3MjJjNjgxOTUwMDYyZTk5MTg4MGI3M2RkMzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCkBAIC0wLDAg
KzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgp
Ij4KKzxzdmc+Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAiPjwvdGV4dD4KKworPHNjcmlwdD4KK3Zh
ciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRleHQiKVswXTsKKworZnVu
Y3Rpb24gYWRkU3BhbnMoKSB7CisgICAgdmFyIHRzcGFuMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAidHNwYW4iKTsKKyAgICB0c3BhbjEu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlNob3VsZCBiZSBvbiIpKTsKKwor
ICAgIHRzcGFuMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciLCAidHNwYW4iKTsKKyAgICB0c3BhbjIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoImRpZmZlcmVudCBsaW5lcyIpKTsKKworICAgIHRleHQuYXBwZW5kQ2hpbGQo
dHNwYW4xKTsKKyAgICB0ZXh0LmFwcGVuZENoaWxkKHRzcGFuMik7CisKKyAgICAvLyBCdWcgaXMg
b25seSB0cmlnZ2VyIGZyb20gYW5vdGhlciBsb29wLgorICAgIHNldFRpbWVvdXQobW92ZVNwYW4s
IDApOworfQorCitmdW5jdGlvbiBtb3ZlU3BhbigpIHsKKyAgICB0c3BhbjIuc2V0QXR0cmlidXRl
KCJkeSIsICIzMCIpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKworZnVuY3Rpb24gbG9hZGVkKCkgeworICAgIC8vIEJ1ZyBpcyBvbmx5IHRyaWdn
ZXIgZnJvbSBhbm90aGVyIGxvb3AuCisgICAgc2V0VGltZW91dChhZGRTcGFucywgMCk7Cit9Cis8
L3NjcmlwdD4KKzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141956</attachid>
            <date>2012-05-15 06:52:55 -0700</date>
            <delta_ts>2012-05-15 07:31:18 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-83405-20120515155325.patch</filename>
            <type>text/plain</type>
            <size>44447</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQwNjcyODQ1OTJhNzVi
MWVkMTVlMWJmYTlmM2U5YTdhMjg5NDFkYy4uNTBlODE4ZTc4YTZhYTg1ZDE2MzdmZWFlODUxMzYz
NjA5ODFmMDM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTA1LTE1ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04ocjEwNTA1Nyk6IEluZmluaXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1
cnJlbnRMb2dpY2FsQ2hhcmFjdGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEeW5hbWljYWxseSBhZGRpbmcgdHNwYW5zIGNhcnJ5aW5nIHBv
c2l0aW9uIGluZm9ybWF0aW9uIGluIHRoZSB4L3kvZHgvZHkvcm90YXRlIGxpc3RzIGlzIGJyb2tl
bi4KKyAgICAgICAgVG8gYXZvaWQgbWlzdGFrZXMgbGlrZSB0aGlzIGluIGZ1dHVyZSwgc2ltcGxp
ZnkgdGhlIGNhbGxpbmcgY29kZSBpbiBSZW5kZXJTVkdJbmxpbmVUZXh0IGFuZCBjZW50cmFsaXpl
CisgICAgICAgIHRoZSBtYW5hZ21lbnQgb2YgYWxsIGNhY2hlcyAodGV4dCBwb3NpdGlvbmluZyBl
bGVtZW50IGNhY2hlIC8gbWV0cmljcyBtYXAgLyBsYXlvdXQgYXR0cmlidXRlcykgaW4KKyAgICAg
ICAgUmVuZGVyU1ZHVGV4dC4gVGhpcyBhdm9pZHMgdGhlIGhhY2sgaW4gU1ZHUm9vdElubGluZUJv
eDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkgd2hpY2gKKyAgICAgICAg
Y2FsbGVkIHRleHRSb290LT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpLCB3aGljaCB3YXMgdXNl
ZCB0byBmaXggcHJldmlvdXMgc2VjdXJpdHkgaXNzdWVzIHdpdGggdGhpcyBjb2RlLgorICAgICAg
ICBJbnN0ZWFkIGNvcnJlY3RseSBoYW5kbGUgZGVzdHJ1Y3Rpb24gb2YgUmVuZGVyU1ZHSW5saW5l
VGV4dCBpbiBSZW5kZXJTVkdUZXh0LCBrZWVwaW5nIHRoZSBtX2xheW91dEF0dHJpYnV0ZXMKKyAg
ICAgICAgc3luY2hyb25pemVkIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHJlbmRlciB0
cmVlLiBGaXhlcyBoaWdoY2hhcnRzIHByb2JsZW1zLgorCisgICAgICAgIFRlc3RzOiBzdmcvdGV4
dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy90ZXh0L21v
ZGlmeS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdCbG9jay5oOgorICAgICAgICAoUmVuZGVyU1ZHQmxvY2spOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0lubGluZTo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5l
OjpyZW1vdmVDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
aDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGlu
ZVRleHQ6OnNldFRleHRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxp
bmVUZXh0OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmVUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OlJlbmRlclNWR1RleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6flJlbmRlclNWR1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29sbGVjdExheW91dEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHVGV4dDo6c3VidHJlZUNoaWxkV2FzQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Zmlu
ZFByZXZpb3VzQW5kTmV4dEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tMYXlv
dXRBdHRyaWJ1dGVzQ29uc2lzdGVuY3kpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4
dDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnN1
YnRyZWVDaGlsZFdpbGxCZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4
dDo6c3VidHJlZUNoaWxkV2FzUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdU
ZXh0OjpzdWJ0cmVlU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
VGV4dDo6c3VidHJlZVRleHREaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlRm9u
dEluQWxsRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmFkZENoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKFJlbmRlclNWR1RleHQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJ
bmxpbmVCb3g6OmNvbXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91
dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1
aWxkTWV0cmljc0ZvclRleHRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TGF5
b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkQ2hhcmFjdGVyRGF0YU1hcCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaDoKKyAgICAgICAg
KFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6Om51bWJlck9mVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dHMpOgorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR0FF
bGVtZW50Lmg6CisgICAgICAgIChTVkdBRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5o
OgorICAgICAgICAoU1ZHVGV4dENvbnRlbnRFbGVtZW50KToKKwogMjAxMi0wNS0xNSAgWm9sdGFu
IEhlcmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIE5FT05pemluZyBmb3Jj
ZVZhbGlkUHJlTXVsdGlwbGllZFBpeGVscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdCbG9jay5oCmluZGV4IGNhMDAwZjUwYmEyMWU0MTQ1YWFjZWRiMTMxZDNhYzBj
Mjg5YTg4NjEuLjRhMjk3N2Q3MGIyMDQzNmY1NmJhYmM1OGJhMWM3YzE0NTFlZTJkNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKQEAgLTM0LDEz
ICszNCwxNSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgdmlzdWFsT3ZlcmZs
b3dSZWN0KCkgY29uc3Q7CiAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVz
dHJveWVkKCk7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlKFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQm94TW9kZWxJbmZvRnJv
bVN0eWxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVj
dD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogCi0gICAg
dmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdp
bGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwog
ICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5j
cHAKaW5kZXggYWI4Y2MxYTg3NTU1NGE5MDNjOGQxNDNkZGNjM2U1ZDA5NTNkNzE0My4uMmVlMTY5
YTcxYjE2Y2IyYTY5YzI0ZWJmN2IxYmJlMTM0MTRlNDA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcApAQCAtMTI0LDcgKzEyNCwyMiBA
QCB2b2lkIFJlbmRlclNWR0lubGluZTo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGNo
aWxkLCBiZWZvcmVDaGlsZCk7CiAgICAgaWYgKFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9
IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKSkKLSAgICAg
ICAgdGV4dFJlbmRlcmVyLT5sYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZChjaGlsZCk7CisgICAgICAg
IHRleHRSZW5kZXJlci0+c3VidHJlZUNoaWxkV2FzQWRkZWQoY2hpbGQpOworfQorCit2b2lkIFJl
bmRlclNWR0lubGluZTo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKK3sKKyAgICBS
ZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJT
VkdUZXh0QW5jZXN0b3IodGhpcyk7CisgICAgaWYgKCFjaGlsZC0+aXNTVkdJbmxpbmVUZXh0KCkg
fHwgIXRleHRSZW5kZXJlcikgeworICAgICAgICBSZW5kZXJJbmxpbmU6OnJlbW92ZUNoaWxkKGNo
aWxkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRlclNWR0lubGluZVRleHQq
IHRleHQgPSB0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQpOworICAgIFZlY3RvcjxTVkdUZXh0
TGF5b3V0QXR0cmlidXRlcyosIDI+IGFmZmVjdGVkQXR0cmlidXRlczsKKyAgICB0ZXh0UmVuZGVy
ZXItPnN1YnRyZWVDaGlsZFdpbGxCZVJlbW92ZWQodGV4dCwgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsK
KyAgICBSZW5kZXJJbmxpbmU6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICB0ZXh0UmVuZGVyZXIt
PnN1YnRyZWVDaGlsZFdhc1JlbW92ZWQoYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKaW5kZXggOGFh
NGFiODc1MGYyMmU4NmNiZmY3YWUxZDYzMGU0YzdmZmU0MTU3MS4uMjUzNGEwY2E1ZGIxYTc1MmIx
MTIyNTQyYzAyM2JmNTExMmUzYjk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZS5oCkBAIC01Nyw3ICs1Nyw5IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0
eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlRnJvbUVsZW1lbnQoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJP
YmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CisgICAgdmlydHVh
bCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCopOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKaW5kZXgg
MDlkNDQ2YjdkNmVlYjlmZjU3OGQ1NDZhMDk1MDI3NGM1YTdmYWQ0Yi4uZWZmNzA3NzI0ZTJjZjFi
MzE2MjZhODRhMzllMGEwMGEzYTI5ZWJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCkBAIC03MiwzNyArNzIsMTEgQEAg
UmVuZGVyU1ZHSW5saW5lVGV4dDo6UmVuZGVyU1ZHSW5saW5lVGV4dChOb2RlKiBuLCBQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+IHN0cmluZykKIHsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0
Ojp3aWxsQmVEZXN0cm95ZWQoKQotewotICAgIFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9
IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKTsKLSAgICBp
ZiAoIXRleHRSZW5kZXJlcikgewotICAgICAgICBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQo
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0
cmlidXRlcyo+IGFmZmVjdGVkQXR0cmlidXRlczsKLSAgICB0ZXh0UmVuZGVyZXItPmxheW91dEF0
dHJpYnV0ZXNXaWxsQmVEZXN0cm95ZWQodGhpcywgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKLQotICAg
IFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3llZCgpOwotICAgIGlmIChhZmZlY3RlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWRvY3VtZW50QmVpbmdE
ZXN0cm95ZWQoKSkKLSAgICAgICAgdGV4dFJlbmRlcmVyLT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRl
cyhhZmZlY3RlZEF0dHJpYnV0ZXMpOwotfQotCiB2b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OnNl
dFRleHRJbnRlcm5hbChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHRleHQpCiB7CiAgICAgUmVuZGVy
VGV4dDo6c2V0VGV4dEludGVybmFsKHRleHQpOwotCi0gICAgLy8gV2hlbiB0aGUgdW5kZXJseWlu
ZyB0ZXh0IGNvbnRlbnQgY2hhbmdlcywgY2FsbCBib3RoIHRleHRET01DaGFuZ2VkKCkgJiBsYXlv
dXRBdHRyaWJ1dGVzQ2hhbmdlZCgpCi0gICAgLy8gVGhlIGZvcm1lciB3aWxsIGNsZWFyIHRoZSBT
VkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IGNhY2hlLCB3aGljaCBkZXBlbmRzIG9uIHRoZSB0ZXh0
TGVuZ3RoKCkgb2YKLSAgICAvLyB0aGUgUmVuZGVyU1ZHSW5saW5lVGV4dCBvYmplY3RzLCBhbmQg
dGh1cyBuZWVkcyB0byBiZSByZWJ1aWxkLiBUaGUgbGF0dGVyIHdpbGwgYXNzdXJlIHRoYXQgdGhl
Ci0gICAgLy8gU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBSZW5k
ZXJTVkdJbmxpbmVUZXh0IHdpbGwgYmUgdXBkYXRlZC4KLSAgICBpZiAoUmVuZGVyU1ZHVGV4dCog
dGV4dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9y
KHRoaXMpKSB7Ci0gICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0ZVRleHRQb3NpdGlvbmlu
Z0VsZW1lbnRzKCk7Ci0gICAgICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0NoYW5n
ZWQodGhpcyk7Ci0gICAgfQorICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBS
ZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCisgICAgICAg
IHRleHRSZW5kZXJlci0+c3VidHJlZVRleHREaWRDaGFuZ2UodGhpcyk7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHSW5saW5lVGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKQEAgLTEyNyw3ICsxMDEsNyBAQCB2b2lkIFJlbmRl
clNWR0lubGluZVRleHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25z
dCBSZW5kZXJTdHlsZQogCiAgICAgLy8gVGhlIHRleHQgbWV0cmljcyBtYXkgYmUgaW5mbHVlbmNl
ZCBieSBzdHlsZSBjaGFuZ2VzLgogICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIg
PSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCi0gICAg
ICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQodGhpcyk7CisgICAgICAg
IHRleHRSZW5kZXJlci0+c3VidHJlZVN0eWxlRGlkQ2hhbmdlKHRoaXMpOwogfQogCiBJbmxpbmVU
ZXh0Qm94KiBSZW5kZXJTVkdJbmxpbmVUZXh0OjpjcmVhdGVUZXh0Qm94KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKaW5kZXggNTEz
NzhmZDA3YjZiMjMxOTNjODEwN2QwNTVjN2YwODE2ZWVkZWY2Ny4uYWI4MWNhOTlmYTY5Mzk0N2Zk
NDVmOWNjZDBlMDBlYjI4NzNiODgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJl
dHVybiAiUmVuZGVyU1ZHSW5saW5lVGV4dCI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEludGVybmFsKFBhc3NSZWZQdHI8
U3RyaW5nSW1wbD4pOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCmluZGV4IGY1MTJhYjg3YjQzODgwZjZlYzFmMjRlYWEw
YTE5ZDI5MDdmMmJhZjYuLjAzYzk3NzI2ZTYyZGQyZjAxMmRhOWFkNWVhNGY0MGYxMWMyYjFmYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApA
QCAtNTcsMTIgKzU3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJlbmRlclNWR1RleHQ6OlJl
bmRlclNWR1RleHQoU1ZHVGV4dEVsZW1lbnQqIG5vZGUpIAogICAgIDogUmVuZGVyU1ZHQmxvY2so
bm9kZSkKICAgICAsIG1fbmVlZHNSZW9yZGVyaW5nKGZhbHNlKQotICAgICwgbV9uZWVkc1Bvc2l0
aW9uaW5nVmFsdWVzVXBkYXRlKHRydWUpCisgICAgLCBtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNV
cGRhdGUoZmFsc2UpCiAgICAgLCBtX25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCi0gICAgLCBt
X25lZWRzVGV4dE1ldHJpY3NVcGRhdGUodHJ1ZSkKKyAgICAsIG1fbmVlZHNUZXh0TWV0cmljc1Vw
ZGF0ZShmYWxzZSkKIHsKIH0KIAorUmVuZGVyU1ZHVGV4dDo6flJlbmRlclNWR1RleHQoKQorewor
ICAgIEFTU0VSVChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKK30KKwogYm9vbCBSZW5k
ZXJTVkdUZXh0Ojppc0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJTdHls
ZSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNoaWxkLT5pc0lubGluZSgpOwpAQCAtMTEwLDMxICsx
MTUsNTMgQEAgdm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLAogICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1h
cExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IHdhc0ZpeGVkKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZVVwZGF0ZUxheW91
dEF0dHJpYnV0ZXMoUmVuZGVyT2JqZWN0KiBzdGFydCwgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNC
dWlsZGVyJiBidWlsZGVyKQorc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RMYXlvdXRBdHRyaWJ1
dGVzKFJlbmRlck9iamVjdCogdGV4dCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4m
IGF0dHJpYnV0ZXMpCiB7Ci0gICAgaWYgKHN0YXJ0LT5pc1NWR0lubGluZVRleHQoKSkgewotICAg
ICAgICBidWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5kZXJlcih0b1JlbmRl
clNWR0lubGluZVRleHQoc3RhcnQpKTsKLSAgICAgICAgcmV0dXJuOworICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBkZXNjZW5kYW50ID0gdGV4dDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2Nl
bmRhbnQtPm5leHRJblByZU9yZGVyKHRleHQpKSB7CisgICAgICAgIGlmIChkZXNjZW5kYW50LT5p
c1NWR0lubGluZVRleHQoKSkKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHRvUmVuZGVy
U1ZHSW5saW5lVGV4dChkZXNjZW5kYW50KS0+bGF5b3V0QXR0cmlidXRlcygpKTsKICAgICB9Ci0K
LSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgcmVjdXJzaXZlVXBkYXRl
TGF5b3V0QXR0cmlidXRlcyhjaGlsZCwgYnVpbGRlcik7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4
dDo6bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKK3ZvaWQgUmVu
ZGVyU1ZHVGV4dDo6c3VidHJlZUNoaWxkV2FzQWRkZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsK
ICAgICBBU1NFUlQoY2hpbGQpOwotICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRh
dGUpCisgICAgaWYgKCFldmVySGFkTGF5b3V0KCkpIHsKKyAgICAgICAgQVNTRVJUKG1fbGF5b3V0
QXR0cmlidXRlcy5pc0VtcHR5KCkpOworICAgICAgICBBU1NFUlQoIW1fbGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIubnVtYmVyT2ZUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpKTsKICAgICAgICAgcmV0
dXJuOwotICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVy
OwotICAgIHJlY3Vyc2l2ZVVwZGF0ZUxheW91dEF0dHJpYnV0ZXMoY2hpbGQsIG1fbGF5b3V0QXR0
cmlidXRlc0J1aWxkZXIpOwotICAgIHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKCk7CisgICAgfQor
CisgICAgQVNTRVJUKCFkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpOworCisgICAgLy8gVGhlIHBv
c2l0aW9uaW5nIGVsZW1lbnRzIGNhY2hlIGRvZXNuJ3QgaW5jbHVkZSB0aGUgbmV3ICdjaGlsZCcg
eWV0LiBDbGVhciB0aGUKKyAgICAvLyBjYWNoZSwgYXMgdGhlIG5leHQgYnVpbGRMYXlvdXRBdHRy
aWJ1dGVzRm9yVGV4dFJlbmRlcmVyKCkgY2FsbCByZWJ1aWxkcyBpdC4KKyAgICBtX2xheW91dEF0
dHJpYnV0ZXNCdWlsZGVyLmNsZWFyVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKKworICAgIC8v
IERldGVjdCBjaGFuZ2VzIGluIGxheW91dCBhdHRyaWJ1dGVzIGFuZCBvbmx5IG1lYXN1cmUgdGhv
c2UgdGV4dCBwYXJ0cyB0aGF0IGhhdmUgY2hhbmdlZCEKKyAgICBWZWN0b3I8U1ZHVGV4dExheW91
dEF0dHJpYnV0ZXMqPiBuZXdMYXlvdXRBdHRyaWJ1dGVzOworICAgIGNvbGxlY3RMYXlvdXRBdHRy
aWJ1dGVzKHRoaXMsIG5ld0xheW91dEF0dHJpYnV0ZXMpOworICAgIGlmIChuZXdMYXlvdXRBdHRy
aWJ1dGVzLmlzRW1wdHkoKSkgeworICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXMuY2xlYXIoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIENvbXBhcmUgbV9sYXlvdXRBdHRyaWJ1
dGVzIHdpdGggbmV3TGF5b3V0QXR0cmlidXRlcyB0byBmaWd1cmUgb3V0IHdoaWNoIGF0dHJpYnV0
ZXMgZ290IGFkZGVkLgorICAgIHNpemVfdCBzaXplID0gbmV3TGF5b3V0QXR0cmlidXRlcy5zaXpl
KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXMqIGF0dHJpYnV0ZXMgPSBuZXdMYXlvdXRBdHRyaWJ1dGVzW2ld
OworICAgICAgICBpZiAobV9sYXlvdXRBdHRyaWJ1dGVzLmZpbmQoYXR0cmlidXRlcykgPT0gbm90
Rm91bmQpCisgICAgICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0
QXR0cmlidXRlc0ZvclRleHRSZW5kZXJlcihhdHRyaWJ1dGVzLT5jb250ZXh0KCkpOworICAgIH0K
KworICAgIG1fbGF5b3V0QXR0cmlidXRlcyA9IG5ld0xheW91dEF0dHJpYnV0ZXM7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBmaW5kUHJldmlvdXNBbmROZXh0QXR0cmlidXRlcyhSZW5kZXJPYmpl
Y3QqIHN0YXJ0LCBSZW5kZXJTVkdJbmxpbmVUZXh0KiBsb2NhdGVFbGVtZW50LCBib29sJiBzdG9w
QWZ0ZXJOZXh0LCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyomIHByZXZpb3VzLCBTVkdUZXh0TGF5
b3V0QXR0cmlidXRlcyomIG5leHQpCiB7CiAgICAgQVNTRVJUKHN0YXJ0KTsKICAgICBBU1NFUlQo
bG9jYXRlRWxlbWVudCk7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBpdGVyYXRpdmUuCiAgICAg
Zm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gc3RhcnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lu
bGluZVRleHQoKSkgewogICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCA9IHRv
UmVuZGVyU1ZHSW5saW5lVGV4dChjaGlsZCk7CkBAIC0xNjIsNDAgKzE4OSwxMzIgQEAgc3RhdGlj
IGlubGluZSBib29sIGZpbmRQcmV2aW91c0FuZE5leHRBdHRyaWJ1dGVzKFJlbmRlck9iamVjdCog
c3RhcnQsIFJlbmRlclNWR0kKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyU1ZH
VGV4dDo6bGF5b3V0QXR0cmlidXRlc1dpbGxCZURlc3Ryb3llZChSZW5kZXJTVkdJbmxpbmVUZXh0
KiB0ZXh0LCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiYgYWZmZWN0ZWRBdHRyaWJ1
dGVzKQorc3RhdGljIGlubGluZSB2b2lkIGNoZWNrTGF5b3V0QXR0cmlidXRlc0NvbnNpc3RlbmN5
KFJlbmRlclNWR1RleHQqIHRleHQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBl
eHBlY3RlZExheW91dEF0dHJpYnV0ZXMpCit7CisjaWZuZGVmIE5ERUJVRworICAgIC8vIFRoZSBs
YXlvdXQgYXR0cmlidXRlcyBtdXN0IGVpdGhlciBiZSBlbXB0eSwgb3IgbWF0Y2ggdGhlIGN1cnJl
bnQgcmVuZGVyIHRyZWUgc3RydWN0dXJlLgorICAgIGlmIChleHBlY3RlZExheW91dEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzKj4gbmV3TGF5b3V0QXR0cmlidXRlczsKKyAgICBjb2xsZWN0TGF5b3V0QXR0cmli
dXRlcyh0ZXh0LCBuZXdMYXlvdXRBdHRyaWJ1dGVzKTsKKyAgICBBU1NFUlQobmV3TGF5b3V0QXR0
cmlidXRlcyA9PSBleHBlY3RlZExheW91dEF0dHJpYnV0ZXMpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0odGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGV4cGVjdGVkTGF5b3V0QXR0cmlidXRlcyk7
CisjZW5kaWYKK30KKwordm9pZCBSZW5kZXJTVkdUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKQorewor
ICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVhcigpOworICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOworCisgICAgUmVuZGVyU1ZHQmxv
Y2s6OndpbGxCZURlc3Ryb3llZCgpOworfQorCit2b2lkIFJlbmRlclNWR1RleHQ6OnN1YnRyZWVD
aGlsZFdpbGxCZVJlbW92ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCwgVmVjdG9yPFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzKiwgMj4mIGFmZmVjdGVkQXR0cmlidXRlcykKIHsKICAgICBBU1NF
UlQodGV4dCk7Ci0gICAgaWYgKG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSkKKyAgICBp
ZiAoIWV2ZXJIYWRMYXlvdXQoKSB8fCBiZWluZ0Rlc3Ryb3llZCgpKSB7CisgICAgICAgIEFTU0VS
VChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKCFtX2xheW91
dEF0dHJpYnV0ZXNCdWlsZGVyLm51bWJlck9mVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjaGVja0xheW91dEF0dHJpYnV0ZXNDb25zaXN0
ZW5jeSh0aGlzLCBtX2xheW91dEF0dHJpYnV0ZXMpOworCisgICAgLy8gVGhlIHBvc2l0aW9uaW5n
IGVsZW1lbnRzIGNhY2hlIGRlcGVuZHMgb24gdGhlIHNpemUgb2YgZWFjaCB0ZXh0IHJlbmRlcmVy
IGluIHRoZQorICAgIC8vIHN1YnRyZWUuIElmIHRoaXMgY2hhbmdlcywgY2xlYXIgdGhlIGNhY2hl
LiBJdCdzIGdvaW5nIHRvIGJlIHJlYnVpbHQgYmVsb3cuCisgICAgbV9sYXlvdXRBdHRyaWJ1dGVz
QnVpbGRlci5jbGVhclRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7CisgICAgaWYgKG1fbGF5b3V0
QXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFRoaXMgbG9n
aWMgcmVxdWlyZXMgdGhhdCB0aGUgJ3RleHQnIGNoaWxkIGlzIHN0aWxsIGluc2VydGVkIGluIHRo
ZSB0cmVlLgogICAgIGJvb2wgc3RvcEFmdGVyTmV4dCA9IGZhbHNlOwogICAgIFNWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzKiBwcmV2aW91cyA9IDA7CiAgICAgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMq
IG5leHQgPSAwOwotICAgIGZpbmRQcmV2aW91c0FuZE5leHRBdHRyaWJ1dGVzKHRoaXMsIHRleHQs
IHN0b3BBZnRlck5leHQsIHByZXZpb3VzLCBuZXh0KTsKKyAgICBpZiAoIWRvY3VtZW50QmVpbmdE
ZXN0cm95ZWQoKSkKKyAgICAgICAgZmluZFByZXZpb3VzQW5kTmV4dEF0dHJpYnV0ZXModGhpcywg
dGV4dCwgc3RvcEFmdGVyTmV4dCwgcHJldmlvdXMsIG5leHQpOworCiAgICAgaWYgKHByZXZpb3Vz
KQogICAgICAgICBhZmZlY3RlZEF0dHJpYnV0ZXMuYXBwZW5kKHByZXZpb3VzKTsKICAgICBpZiAo
bmV4dCkKICAgICAgICAgYWZmZWN0ZWRBdHRyaWJ1dGVzLmFwcGVuZChuZXh0KTsKKworICAgIHNp
emVfdCBwb3NpdGlvbiA9IG1fbGF5b3V0QXR0cmlidXRlcy5maW5kKHRleHQtPmxheW91dEF0dHJp
YnV0ZXMoKSk7CisgICAgQVNTRVJUKHBvc2l0aW9uICE9IG5vdEZvdW5kKTsKKyAgICBtX2xheW91
dEF0dHJpYnV0ZXMucmVtb3ZlKHBvc2l0aW9uKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0Ojpp
bnZhbGlkYXRlVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKQordm9pZCBSZW5kZXJTVkdUZXh0Ojpz
dWJ0cmVlQ2hpbGRXYXNSZW1vdmVkKGNvbnN0IFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRl
cyosIDI+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpCiB7Ci0gICAgLy8gQ2xlYXIgdGhlIHRleHQgcG9z
aXRpb25pbmcgZWxlbWVudHMuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIGVpdGhlciB0aGUg
Y2hpbGRyZW4KLSAgICAvLyBvZiBhIERPTSB0ZXh0IGVsZW1lbnQgaGF2ZSBjaGFuZ2VkLCBvciB0
aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGluIGFueSBjaGlsZCBlbGVtZW50Ci0gICAgLy8gaGFzIGNo
YW5nZWQuIEZhaWx1cmUgdG8gY2xlYXIgbWF5IGxlYXZlIHVzIHdpdGggaW52YWxpZCBlbGVtZW50
cywgYXMgb3RoZXIgY29kZSBwYXRocwotICAgIC8vIGRvIG5vdCBhbHdheXMgY2F1c2UgdGhlIHBv
c2l0aW9uIGVsZW1lbnRzIHRvIGJlIG1hcmtlZCBpbnZhbGlkIGJlZm9yZSB1c2UuCi0gICAgbV9s
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jbGVhclRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7Cisg
ICAgaWYgKGJlaW5nRGVzdHJveWVkKCkpIHsKKyAgICAgICAgQVNTRVJUKGFmZmVjdGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpOworICAgICAgICBBU1NFUlQobV9sYXlvdXRBdHRyaWJ1dGVzLmlzRW1w
dHkoKSk7CisgICAgICAgIEFTU0VSVCghbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5udW1iZXJP
ZlRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgeworICAgICAgICBBU1NFUlQoYWZmZWN0
ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv
LyBUaGlzIGlzIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciBzdWJ0cmVlQ2hpbGRXaWxsQmVEZXN0
cm95ZWQsIG9uY2UgdGhlIFJlbmRlclNWR0lubGluZVRleHQ6OndpbGxCZURlc3Ryb3llZCgpIG1l
dGhvZAorICAgIC8vIHBhc3NlcyBvbiB0byB0aGUgYmFzZSBjbGFzcywgd2hpY2ggcmVtb3ZlcyB1
cyBmcm9tIHRoZSByZW5kZXIgdHJlZS4gQXQgdGhpcyBwb2ludCB3ZSBjYW4gdXBkYXRlIHRoZSBs
YXlvdXQgYXR0cmlidXRlcy4KKyAgICB1bnNpZ25lZCBzaXplID0gYWZmZWN0ZWRBdHRyaWJ1dGVz
LnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAg
ICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRS
ZW5kZXJlcihhZmZlY3RlZEF0dHJpYnV0ZXNbaV0tPmNvbnRleHQoKSk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgdm9pZCByZWN1cnNpdmVVcGRhdGVTY2FsZWRGb250KFJlbmRlck9iamVjdCogc3RhcnQp
Cit2b2lkIFJlbmRlclNWR1RleHQ6OnN1YnRyZWVTdHlsZURpZENoYW5nZShSZW5kZXJTVkdJbmxp
bmVUZXh0KiB0ZXh0KQogewotICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHN0YXJ0LT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAg
ICAgIGlmIChjaGlsZC0+aXNTVkdJbmxpbmVUZXh0KCkpIHsKLSAgICAgICAgICAgIHRvUmVuZGVy
U1ZHSW5saW5lVGV4dChjaGlsZCktPnVwZGF0ZVNjYWxlZEZvbnQoKTsKLSAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICB9CisgICAgQVNTRVJUKHRleHQpOworICAgIEFTU0VSVCghYmVpbmdE
ZXN0cm95ZWQoKSk7CisgICAgaWYgKCFldmVySGFkTGF5b3V0KCkpIHsKKyAgICAgICAgQVNTRVJU
KG1fbGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpOworICAgICAgICBBU1NFUlQoIW1fbGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIubnVtYmVyT2ZUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghZG9jdW1lbnRCZWluZ0Rlc3Ryb3ll
ZCgpKTsKKyAgICBjaGVja0xheW91dEF0dHJpYnV0ZXNDb25zaXN0ZW5jeSh0aGlzLCBtX2xheW91
dEF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHJlY3Vyc2l2ZVVwZGF0ZVNjYWxlZEZvbnQoY2hpbGQp
OworICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBtZXRyaWNzIGNhY2hlLCBidXQgbm90IHRoZSB0ZXh0
IHBvc2l0aW9uaW5nIGVsZW1lbnQgY2FjaGUKKyAgICAvLyBub3IgdGhlIGxheW91dCBhdHRyaWJ1
dGVzIGNhY2hlZCBpbiB0aGUgbGVhZiAjdGV4dCByZW5kZXJlcnMuCisgICAgRm9udENhY2hlUHVy
Z2VQcmV2ZW50ZXIgZm9udENhY2hlUHVyZ2VQcmV2ZW50ZXI7CisgICAgZm9yIChSZW5kZXJPYmpl
Y3QqIGRlc2NlbmRhbnQgPSB0ZXh0OyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFu
dC0+bmV4dEluUHJlT3JkZXIodGV4dCkpIHsKKyAgICAgICAgaWYgKGRlc2NlbmRhbnQtPmlzU1ZH
SW5saW5lVGV4dCgpKQorICAgICAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1
aWxkTWV0cmljc0ZvclRleHRSZW5kZXJlcih0b1JlbmRlclNWR0lubGluZVRleHQoZGVzY2VuZGFu
dCkpOworICAgIH0KK30KKwordm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlVGV4dERpZENoYW5n
ZShSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0KQoreworICAgIEFTU0VSVCh0ZXh0KTsKKyAgICBB
U1NFUlQoIWJlaW5nRGVzdHJveWVkKCkpOworICAgIGlmICghZXZlckhhZExheW91dCgpKSB7Cisg
ICAgICAgIEFTU0VSVChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNT
RVJUKCFtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLm51bWJlck9mVGV4dFBvc2l0aW9uaW5nRWxl
bWVudHMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBUaGUgcG9zaXRpb25p
bmcgZWxlbWVudHMgY2FjaGUgZGVwZW5kcyBvbiB0aGUgc2l6ZSBvZiBlYWNoIHRleHQgcmVuZGVy
ZXIgaW4gdGhlCisgICAgLy8gc3VidHJlZS4gSWYgdGhpcyBjaGFuZ2VzLCBjbGVhciB0aGUgY2Fj
aGUuIEl0J3MgZ29pbmcgdG8gYmUgcmVidWlsdCBiZWxvdy4KKyAgICBtX2xheW91dEF0dHJpYnV0
ZXNCdWlsZGVyLmNsZWFyVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKKworICAgIGNoZWNrTGF5
b3V0QXR0cmlidXRlc0NvbnNpc3RlbmN5KHRoaXMsIG1fbGF5b3V0QXR0cmlidXRlcyk7CisgICAg
Zm9yIChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSB0ZXh0OyBkZXNjZW5kYW50OyBkZXNjZW5k
YW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIodGV4dCkpIHsKKyAgICAgICAgaWYgKGRl
c2NlbmRhbnQtPmlzU1ZHSW5saW5lVGV4dCgpKQorICAgICAgICAgICAgbV9sYXlvdXRBdHRyaWJ1
dGVzQnVpbGRlci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVyZXIodG9SZW5kZXJT
VkdJbmxpbmVUZXh0KGRlc2NlbmRhbnQpKTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p
ZCB1cGRhdGVGb250SW5BbGxEZXNjZW5kYW50cyhSZW5kZXJPYmplY3QqIHN0YXJ0KQoreworICAg
IGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gc3RhcnQ7IGRlc2NlbmRhbnQ7IGRlc2Nl
bmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcihzdGFydCkpIHsKKyAgICAgICAgaWYg
KGRlc2NlbmRhbnQtPmlzU1ZHSW5saW5lVGV4dCgpKQorICAgICAgICAgICAgdG9SZW5kZXJTVkdJ
bmxpbmVUZXh0KGRlc2NlbmRhbnQpLT51cGRhdGVTY2FsZWRGb250KCk7CiAgICAgfQogfQogCkBA
IC0yMTIsMjMgKzMzMSw1MyBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmxheW91dCgpCiAgICAgICAg
IHVwZGF0ZUNhY2hlZEJvdW5kYXJpZXNJblBhcmVudHMgPSB0cnVlOwogICAgIH0KIAotICAgIC8v
IElmIHRoZSByb290IGxheW91dCBzaXplIGNoYW5nZWQgKGVnLiB3aW5kb3cgc2l6ZSBjaGFuZ2Vz
KSBvciB0aGUgcG9zaXRpb25pbmcgdmFsdWVzIGNoYW5nZQotICAgIC8vIG9yIHRoZSB0cmFuc2Zv
cm0gdG8gdGhlIHJvb3QgY29udGV4dCBoYXMgY2hhbmdlZCB0aGVuIHJlY29tcHV0ZSB0aGUgb24t
c2NyZWVuIGZvbnQgc2l6ZS4KLSAgICBpZiAobV9uZWVkc1RleHRNZXRyaWNzVXBkYXRlIHx8IFNW
R1JlbmRlclN1cHBvcnQ6OmZpbmRUcmVlUm9vdE9iamVjdCh0aGlzKS0+aXNMYXlvdXRTaXplQ2hh
bmdlZCgpKSB7Ci0gICAgICAgIHJlY3Vyc2l2ZVVwZGF0ZVNjYWxlZEZvbnQodGhpcyk7Ci0gICAg
ICAgIHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKHRydWUpOwotICAgICAgICB1cGRhdGVDYWNoZWRC
b3VuZGFyaWVzSW5QYXJlbnRzID0gdHJ1ZTsKKyAgICBpZiAoIWV2ZXJIYWRMYXlvdXQoKSkgewor
ICAgICAgICAvLyBXaGVuIGxheWluZyBvdXQgaW5pdGlhbGx5LCBjb2xsZWN0IGFsbCBsYXlvdXQg
YXR0cmlidXRlcywgYnVpbGQgdGhlIGNoYXJhY3RlciBkYXRhIG1hcCwKKyAgICAgICAgLy8gYW5k
IHByb3BvZ2F0ZSByZXN1bHRpbmcgU1ZHTGF5b3V0QXR0cmlidXRlcyB0byBhbGwgUmVuZGVyU1ZH
SW5saW5lVGV4dCBjaGlsZHJlbiBpbiB0aGUgc3VidHJlZS4KKyAgICAgICAgQVNTRVJUKG1fbGF5
b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpOworICAgICAgICBjb2xsZWN0TGF5b3V0QXR0cmlidXRl
cyh0aGlzLCBtX2xheW91dEF0dHJpYnV0ZXMpOworICAgICAgICB1cGRhdGVGb250SW5BbGxEZXNj
ZW5kYW50cyh0aGlzKTsKKworICAgICAgICBpZiAoIW1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIu
YnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yV2hvbGVUcmVlKHRoaXMpKQorICAgICAgICAgICAgbV9s
YXlvdXRBdHRyaWJ1dGVzLmNsZWFyKCk7CisKKyAgICAgICAgbV9uZWVkc1Jlb3JkZXJpbmcgPSB0
cnVlOwogICAgICAgICBtX25lZWRzVGV4dE1ldHJpY3NVcGRhdGUgPSBmYWxzZTsKLSAgICB9Cisg
ICAgICAgIG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSA9IGZhbHNlOworICAgICAgICB1
cGRhdGVDYWNoZWRCb3VuZGFyaWVzSW5QYXJlbnRzID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKG1f
bmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSkgeworICAgICAgICAvLyBXaGVuIHRoZSB4L3kv
ZHgvZHkvcm90YXRlIGxpc3RzIGNoYW5nZSwgcmVjb21wdXRlIHRoZSBsYXlvdXQgYXR0cmlidXRl
cywgYW5kIGV2ZW50dWFsbHkKKyAgICAgICAgLy8gdXBkYXRlIHRoZSBvbi1zY3JlZW4gZm9udCBv
YmplY3RzIGFzIHdlbGwgaW4gYWxsIGRlc2NlbmRhbnRzLgorICAgICAgICBpZiAobV9uZWVkc1Rl
eHRNZXRyaWNzVXBkYXRlKSB7CisgICAgICAgICAgICB1cGRhdGVGb250SW5BbGxEZXNjZW5kYW50
cyh0aGlzKTsKKyAgICAgICAgICAgIG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0ZSA9IGZhbHNlOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxk
TGF5b3V0QXR0cmlidXRlc0Zvcldob2xlVHJlZSh0aGlzKSkKKyAgICAgICAgICAgIG1fbGF5b3V0
QXR0cmlidXRlcy5jbGVhcigpOwogCi0gICAgaWYgKG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1Vw
ZGF0ZSkgewotICAgICAgICAvLyBQZXJmb3JtIFNWRyB0ZXh0IGxheW91dCBwaGFzZSBvbmUgKHNl
ZSBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgZm9yIGRldGFpbHMpLgotICAgICAgICBt
X2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0Zvcldob2xlVHJl
ZSh0aGlzKTsKICAgICAgICAgbV9uZWVkc1Jlb3JkZXJpbmcgPSB0cnVlOwogICAgICAgICBtX25l
ZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUgPSBmYWxzZTsKICAgICAgICAgdXBkYXRlQ2FjaGVk
Qm91bmRhcmllc0luUGFyZW50cyA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtX25lZWRzVGV4dE1l
dHJpY3NVcGRhdGUgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluZFRyZWVSb290T2JqZWN0KHRoaXMp
LT5pc0xheW91dFNpemVDaGFuZ2VkKCkpIHsKKyAgICAgICAgLy8gSWYgdGhlIHJvb3QgbGF5b3V0
IHNpemUgY2hhbmdlZCAoZWcuIHdpbmRvdyBzaXplIGNoYW5nZXMpIG9yIG9yIHRoZSB0cmFuc2Zv
cm0gdG8gdGhlIHJvb3QKKyAgICAgICAgLy8gY29udGV4dCBoYXMgY2hhbmdlZCB0aGVuIHJlY29t
cHV0ZSB0aGUgb24tc2NyZWVuIGZvbnQgc2l6ZS4KKyAgICAgICAgZm9yIChSZW5kZXJPYmplY3Qq
IGRlc2NlbmRhbnQgPSB0aGlzOyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+
bmV4dEluUHJlT3JkZXIodGhpcykpIHsKKyAgICAgICAgICAgIGlmICghZGVzY2VuZGFudC0+aXNT
VkdJbmxpbmVUZXh0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0ID0gdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGRlc2NlbmRh
bnQpOworICAgICAgICAgICAgdGV4dC0+dXBkYXRlU2NhbGVkRm9udCgpOworICAgICAgICAgICAg
bV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmljc0ZvclRleHRSZW5kZXJlcih0
ZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVCghbV9uZWVkc1Jlb3JkZXJpbmcpOwor
ICAgICAgICBBU1NFUlQoIW1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSk7CisgICAgICAg
IG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0ZSA9IGZhbHNlOworICAgICAgICB1cGRhdGVDYWNoZWRC
b3VuZGFyaWVzSW5QYXJlbnRzID0gdHJ1ZTsKICAgICB9CiAKKyAgICBjaGVja0xheW91dEF0dHJp
YnV0ZXNDb25zaXN0ZW5jeSh0aGlzLCBtX2xheW91dEF0dHJpYnV0ZXMpOworCiAgICAgLy8gUmVk
dWNlZCB2ZXJzaW9uIG9mIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jaygpLCB3aGljaCBvbmx5IHRh
a2VzIGNhcmUgb2YgU1ZHIHRleHQuCiAgICAgLy8gQWxsIGlmIGJyYW5jaGVzIHRoYXQgY291bGQg
Y2F1c2UgZWFybHkgZXhpdCBpbiBSZW5kZXJCbG9ja3MgbGF5b3V0QmxvY2soKSBtZXRob2QgYXJl
IHR1cm5lZCBpbnRvIGFzc2VydGlvbnMuCiAgICAgQVNTRVJUKCFpc0lubGluZSgpKTsKQEAgLTM2
NCw3ICs1MTMsMjEgQEAgRmxvYXRSZWN0IFJlbmRlclNWR1RleHQ6OnJlcGFpbnRSZWN0SW5Mb2Nh
bENvb3JkaW5hdGVzKCkgY29uc3QKIHZvaWQgUmVuZGVyU1ZHVGV4dDo6YWRkQ2hpbGQoUmVuZGVy
T2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBSZW5kZXJT
VkdCbG9jazo6YWRkQ2hpbGQoY2hpbGQsIGJlZm9yZUNoaWxkKTsKLSAgICBsYXlvdXRBdHRyaWJ1
dGVzQ2hhbmdlZChjaGlsZCk7CisgICAgc3VidHJlZUNoaWxkV2FzQWRkZWQoY2hpbGQpOworfQor
Cit2b2lkIFJlbmRlclNWR1RleHQ6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCogY2hpbGQpCit7
CisgICAgaWYgKCFjaGlsZC0+aXNTVkdJbmxpbmVUZXh0KCkpIHsKKyAgICAgICAgUmVuZGVyU1ZH
QmxvY2s6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFJlbmRlclNWR0lubGluZVRleHQqIHRleHQgPSB0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQp
OworICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyosIDI+IGFmZmVjdGVkQXR0cmli
dXRlczsKKyAgICBzdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVkKHRleHQsIGFmZmVjdGVkQXR0cmli
dXRlcyk7CisgICAgUmVuZGVyU1ZHQmxvY2s6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICBzdWJ0
cmVlQ2hpbGRXYXNSZW1vdmVkKGFmZmVjdGVkQXR0cmlidXRlcyk7CiB9CiAKIC8vIEZpeCBmb3Ig
PHJkYXI6Ly9wcm9ibGVtLzgwNDg4NzU+LiBXZSBzaG91bGQgbm90IHJlbmRlciA6Zmlyc3QtbGlu
ZSBDU1MgU3R5bGUKQEAgLTM4MCw2MSArNTQzLDYgQEAgdm9pZCBSZW5kZXJTVkdUZXh0Ojp1cGRh
dGVGaXJzdExldHRlcigpCiB7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCByZWN1cnNpdmVDb2xs
ZWN0TGF5b3V0QXR0cmlidXRlcyhSZW5kZXJPYmplY3QqIHN0YXJ0LCBWZWN0b3I8U1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXMqPiYgYXR0cmlidXRlcykKLXsKLSAgICBmb3IgKFJlbmRlck9iamVjdCog
Y2hpbGQgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICBpZiAoY2hpbGQtPmlzU1ZHSW5saW5lVGV4dCgpKSB7Ci0gICAg
ICAgICAgICBhdHRyaWJ1dGVzLmFwcGVuZCh0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQpLT5s
YXlvdXRBdHRyaWJ1dGVzKCkpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQot
ICAgICAgICByZWN1cnNpdmVDb2xsZWN0TGF5b3V0QXR0cmlidXRlcyhjaGlsZCwgYXR0cmlidXRl
cyk7Ci0gICAgfQotfQotCi12b2lkIFJlbmRlclNWR1RleHQ6OnJlYnVpbGRMYXlvdXRBdHRyaWJ1
dGVzKGJvb2wgcGVyZm9ybUZ1bGxSZWJ1aWxkKQotewotICAgIGlmIChwZXJmb3JtRnVsbFJlYnVp
bGQpCi0gICAgICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVhcigpOwotCi0gICAgaWYgKG1fbGF5
b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVjdXJzaXZlQ29sbGVjdExheW91
dEF0dHJpYnV0ZXModGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKLSAgICAgICAgaWYgKG1fbGF5
b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkgfHwgIXBlcmZvcm1GdWxsUmVidWlsZCkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVpbGRN
ZXRyaWNzRm9yV2hvbGVUcmVlKHRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
VmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4gYWZmZWN0ZWRBdHRyaWJ1dGVzOwotICAg
IHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKGFmZmVjdGVkQXR0cmlidXRlcyk7Ci19Ci0KLXZvaWQg
UmVuZGVyU1ZHVGV4dDo6cmVidWlsZExheW91dEF0dHJpYnV0ZXMoVmVjdG9yPFNWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0cmlidXRlcykKLXsKLSAgICAvLyBEZXRlY3QgY2hh
bmdlcyBpbiBsYXlvdXQgYXR0cmlidXRlcyBhbmQgb25seSBtZWFzdXJlIHRob3NlIHRleHQgcGFy
dHMgdGhhdCBoYXZlIGNoYW5nZWQhCi0gICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVz
Kj4gbmV3TGF5b3V0QXR0cmlidXRlczsKLSAgICByZWN1cnNpdmVDb2xsZWN0TGF5b3V0QXR0cmli
dXRlcyh0aGlzLCBuZXdMYXlvdXRBdHRyaWJ1dGVzKTsKLSAgICBpZiAobmV3TGF5b3V0QXR0cmli
dXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBDb21wYXJlIG1fbGF5b3V0QXR0cmlidXRl
cyB3aXRoIG5ld0xheW91dEF0dHJpYnV0ZXMgdG8gZmlndXJlIG91dCB3aGljaCBhdHRyaWJ1dGVz
IGdvdCBhZGRlZC9yZW1vdmVkLgotICAgIHNpemVfdCBzaXplID0gbmV3TGF5b3V0QXR0cmlidXRl
cy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAg
ICAgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqIGF0dHJpYnV0ZXMgPSBuZXdMYXlvdXRBdHRyaWJ1
dGVzW2ldOwotICAgICAgICBpZiAobV9sYXlvdXRBdHRyaWJ1dGVzLmZpbmQoYXR0cmlidXRlcykg
PT0gbm90Rm91bmQpCi0gICAgICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVp
bGRNZXRyaWNzRm9yVGV4dFJlbmRlcmVyKGF0dHJpYnV0ZXMtPmNvbnRleHQoKSk7Ci0gICAgfQot
Ci0gICAgc2l6ZSA9IGFmZmVjdGVkQXR0cmlidXRlcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIu
cmVidWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIoYWZmZWN0ZWRBdHRyaWJ1dGVzW2ldLT5jb250
ZXh0KCkpOwotCi0gICAgbV9sYXlvdXRBdHRyaWJ1dGVzID0gbmV3TGF5b3V0QXR0cmlidXRlczsK
LX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKaW5kZXggNTY2NWI0NDQyZTRjMDcxNmVlOTU3ZjZkNDAz
Mjc2OTg4YjY3ZDlmYS4uNzQxYzhmZDUzODcyYmUwMTBlMjEyZWY1NjM4NTgxMWJjMDRkZTQ1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKQEAgLTM2
LDYgKzM2LDcgQEAgY2xhc3MgUmVuZGVyU1ZHSW5saW5lVGV4dDsKIGNsYXNzIFJlbmRlclNWR1Rl
eHQgOiBwdWJsaWMgUmVuZGVyU1ZHQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlclNWR1RleHQo
U1ZHVGV4dEVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJTVkdUZXh0KCk7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqKSBj
b25zdDsKIApAQCAtNDgsMTggKzQ5LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgUmVu
ZGVyU1ZHVGV4dCogbG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKGNvbnN0IFJlbmRlck9iamVj
dCopOwogCiAgICAgYm9vbCBuZWVkc1Jlb3JkZXJpbmcoKSBjb25zdCB7IHJldHVybiBtX25lZWRz
UmVvcmRlcmluZzsgfQotCi0gICAgLy8gQ2FsbCB0aGlzIG1ldGhvZCB3aGVuIGVpdGhlciB0aGUg
Y2hpbGRyZW4gb2YgYSBET00gdGV4dCBlbGVtZW50IGhhdmUgY2hhbmdlZCwgb3IgdGhlIGxlbmd0
aCBvZgotICAgIC8vIHRoZSB0ZXh0IGluIGFueSBjaGlsZCBlbGVtZW50IGhhcyBjaGFuZ2VkLgot
ICAgIHZvaWQgaW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7Ci0KLSAgICB2b2lk
IGxheW91dEF0dHJpYnV0ZXNDaGFuZ2VkKFJlbmRlck9iamVjdCopOwotICAgIHZvaWQgbGF5b3V0
QXR0cmlidXRlc1dpbGxCZURlc3Ryb3llZChSZW5kZXJTVkdJbmxpbmVUZXh0KiwgVmVjdG9yPFNW
R1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0cmlidXRlcyk7Ci0gICAgdm9pZCBy
ZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhib29sIHBlcmZvcm1GdWxsUmVidWlsZCA9IGZhbHNlKTsK
LSAgICB2b2lkIHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0
cmlidXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOwotCiAgICAgVmVjdG9yPFNWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzKj4mIGxheW91dEF0dHJpYnV0ZXMoKSB7IHJldHVybiBtX2xheW91dEF0dHJp
YnV0ZXM7IH0KIAorICAgIHZvaWQgc3VidHJlZUNoaWxkV2FzQWRkZWQoUmVuZGVyT2JqZWN0Kik7
CisgICAgdm9pZCBzdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVkKFJlbmRlclNWR0lubGluZVRleHQq
LCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqLCAyPiYgYWZmZWN0ZWRBdHRyaWJ1dGVz
KTsKKyAgICB2b2lkIHN1YnRyZWVDaGlsZFdhc1JlbW92ZWQoY29uc3QgVmVjdG9yPFNWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzKiwgMj4mIGFmZmVjdGVkQXR0cmlidXRlcyk7CisgICAgdm9pZCBzdWJ0
cmVlU3R5bGVEaWRDaGFuZ2UoUmVuZGVyU1ZHSW5saW5lVGV4dCopOworICAgIHZvaWQgc3VidHJl
ZVRleHREaWRDaGFuZ2UoUmVuZGVyU1ZHSW5saW5lVGV4dCopOworCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdU
ZXh0IjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1RleHQoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CkBAIC04MCw2ICs3Nyw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9v
bCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIEFwcGx5Q29udGFp
bmVyRmxpcE9yTm90ID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxk
KFJlbmRlck9iamVjdCopOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIAog
ICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4g
ZnJhbWVSZWN0KCk7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5jcHAKaW5kZXggYjIwNmNiNmMyY2RiMTBiYjY5OWUwNDMwYjMxZTdiYmYzMDU0OGM4YS4u
ZGRjN2M5MTU1Nzk0ODhkMDIwNTBhNTE0ZmFiYjY3MTFjMzhhMjlmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC0xOTcsOCAr
MTk3LDEwIEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bGF5b3V0Q2hpbGRyZW4oUmVuZGVyT2Jq
ZWN0KiBzdGFydCwgYm9vbCBzZWxmTmVlZHNMYXlvdXQpCiAgICAgICAgICAgICAgICAgICAgIC8v
IFdoZW4gdGhlIGxheW91dCBzaXplIGNoYW5nZWQgYW5kIHdoZW4gdXNpbmcgcmVsYXRpdmUgdmFs
dWVzIHRlbGwgdGhlIFJlbmRlclNWR1NoYXBlIHRvIHVwZGF0ZSBpdHMgc2hhcGUgb2JqZWN0CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNTVkdTaGFwZSgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgdG9SZW5kZXJTVkdTaGFwZShjaGlsZCktPnNldE5lZWRzU2hhcGVVcGRhdGUo
KTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGQtPmlzU1ZHVGV4dCgpKQorICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGlsZC0+aXNTVkdUZXh0KCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRvUmVuZGVyU1ZHVGV4dChjaGlsZCktPnNldE5lZWRzVGV4dE1ldHJp
Y3NVcGRhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRvUmVuZGVyU1ZHVGV4dChjaGls
ZCktPnNldE5lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAgICAgICAgIG5lZWRzTGF5b3V0ID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jv
b3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5s
aW5lQm94LmNwcAppbmRleCA1NzE0NmM5MGM4MzhhYjY1MzNhNDNlNzM4MDU2ZTM4MmU1ZTg1Yzlm
Li4zNGU5M2EwMmVmNzQzMmUzYzI2ZWYyMzYwZDFjZjNmZDQzN2U0MTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKQEAgLTczLDcg
KzczLDYgQEAgdm9pZCBTVkdSb290SW5saW5lQm94Ojpjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0
SW5mb3JtYXRpb24oKQogICAgIFJlbmRlclNWR1RleHQqIHRleHRSb290ID0gdG9SZW5kZXJTVkdU
ZXh0KGJsb2NrKCkpOwogICAgIEFTU0VSVCh0ZXh0Um9vdCk7CiAKLSAgICB0ZXh0Um9vdC0+cmVi
dWlsZExheW91dEF0dHJpYnV0ZXMoKTsKICAgICBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0
ZXMqPiYgbGF5b3V0QXR0cmlidXRlcyA9IHRleHRSb290LT5sYXlvdXRBdHRyaWJ1dGVzKCk7CiAg
ICAgaWYgKGxheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKaW5kZXggMDJhMjEyM2ViNjY3ZWNjZjczZjA4MGY2YmI0
ZTZmZWNhNWQyZjNlNi4uZGJlM2JjMTkxOTA0ZDc2YTA4ODc3OTFhNzI0ZTIyYWU4OWZiMDhkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0
cmlidXRlc0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcApAQCAtMjYsOSArMjYsNiBAQAogI2luY2x1
ZGUgIlJlbmRlclNWR1RleHQuaCIKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LmgiCiAKLS8vIFNldCB0byBhIHZhbHVlID4gMCB0byBkdW1wIHRoZSB0ZXh0IGxheW91dCBhdHRy
aWJ1dGVzCi0jZGVmaW5lIERVTVBfVEVYVF9MQVlPVVRfQVRUUklCVVRFUyAwCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpTVkdUZXh0TGF5
b3V0QXR0cmlidXRlc0J1aWxkZXIoKQpAQCAtNDQsNDEgKzQxLDI3IEBAIHZvaWQgU1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVy
ZXIoUmVuZGVyCiAgICAgaWYgKCF0ZXh0Um9vdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYg
KCFidWlsZExheW91dEF0dHJpYnV0ZXNJZk5lZWRlZCh0ZXh0Um9vdCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fbWV0cmljc0J1aWxkZXIuYnVpbGRNZXRyaWNzQW5kTGF5b3V0QXR0cmlidXRl
cyh0ZXh0Um9vdCwgdGV4dCwgbV9jaGFyYWN0ZXJEYXRhTWFwKTsKLX0KKyAgICBpZiAobV90ZXh0
UG9zaXRpb25zLmlzRW1wdHkoKSkgeworICAgICAgICBtX2NoYXJhY3RlckRhdGFNYXAuY2xlYXIo
KTsKIAotdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0
cmlidXRlc0Zvcldob2xlVHJlZShSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKLXsKLSAgICBBU1NF
UlQodGV4dFJvb3QpOworICAgICAgICBtX3RleHRMZW5ndGggPSAwOworICAgICAgICBjb25zdCBV
Q2hhciogbGFzdENoYXJhY3RlciA9IDA7CisgICAgICAgIGNvbGxlY3RUZXh0UG9zaXRpb25pbmdF
bGVtZW50cyh0ZXh0Um9vdCwgbGFzdENoYXJhY3Rlcik7CiAKLSAgICBpZiAoIWJ1aWxkTGF5b3V0
QXR0cmlidXRlc0lmTmVlZGVkKHRleHRSb290KSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBp
ZiAoIW1fdGV4dExlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIG1fbWV0cmljc0J1
aWxkZXIuYnVpbGRNZXRyaWNzQW5kTGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9vdCwgMCwgbV9jaGFy
YWN0ZXJEYXRhTWFwKTsKLX0KKyAgICAgICAgYnVpbGRDaGFyYWN0ZXJEYXRhTWFwKHRleHRSb290
KTsKKyAgICB9CiAKLXZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1aWxk
TWV0cmljc0ZvclRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0KQotewotICAg
IEFTU0VSVCh0ZXh0KTsKLSAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIo
dGV4dCk7CisgICAgbV9tZXRyaWNzQnVpbGRlci5idWlsZE1ldHJpY3NBbmRMYXlvdXRBdHRyaWJ1
dGVzKHRleHRSb290LCB0ZXh0LCBtX2NoYXJhY3RlckRhdGFNYXApOwogfQogCi12b2lkIFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6cmVidWlsZE1ldHJpY3NGb3JXaG9sZVRyZWUoUmVu
ZGVyU1ZHVGV4dCogdGV4dFJvb3QpCitib29sIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRl
cjo6YnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqIHRleHRS
b290KQogewogICAgIEFTU0VSVCh0ZXh0Um9vdCk7Ci0gICAgVmVjdG9yPFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzKj4mIGxheW91dEF0dHJpYnV0ZXMgPSB0ZXh0Um9vdC0+bGF5b3V0QXR0cmlidXRl
cygpOwogCi0gICAgc2l6ZV90IGxheW91dEF0dHJpYnV0ZXNTaXplID0gbGF5b3V0QXR0cmlidXRl
cy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXlvdXRBdHRyaWJ1dGVzU2l6
ZTsgKytpKQotICAgICAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIobGF5
b3V0QXR0cmlidXRlc1tpXS0+Y29udGV4dCgpKTsKLX0KLQotYm9vbCBTVkdUZXh0TGF5b3V0QXR0
cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkKFJlbmRlclNWR1Rl
eHQqIHRleHRSb290KQotewotICAgIEFTU0VSVCh0ZXh0Um9vdCk7CisgICAgbV9jaGFyYWN0ZXJE
YXRhTWFwLmNsZWFyKCk7CiAKICAgICBpZiAobV90ZXh0UG9zaXRpb25zLmlzRW1wdHkoKSkgewog
ICAgICAgICBtX3RleHRMZW5ndGggPSAwOwpAQCAtODYsMTQgKzY5LDIwIEBAIGJvb2wgU1ZHVGV4
dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNJZk5lZWRlZChS
ZW5kZXJTVkdUZXh0CiAgICAgICAgIGNvbGxlY3RUZXh0UG9zaXRpb25pbmdFbGVtZW50cyh0ZXh0
Um9vdCwgbGFzdENoYXJhY3Rlcik7CiAgICAgfQogCi0gICAgbV9jaGFyYWN0ZXJEYXRhTWFwLmNs
ZWFyKCk7CiAgICAgaWYgKCFtX3RleHRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGJ1aWxkTGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9vdCk7CisgICAgYnVpbGRDaGFyYWN0ZXJE
YXRhTWFwKHRleHRSb290KTsKKyAgICBtX21ldHJpY3NCdWlsZGVyLmJ1aWxkTWV0cmljc0FuZExh
eW91dEF0dHJpYnV0ZXModGV4dFJvb3QsIDAsIG1fY2hhcmFjdGVyRGF0YU1hcCk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK3ZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1
aWxkTWV0cmljc0ZvclRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0KQorewor
ICAgIEFTU0VSVCh0ZXh0KTsKKyAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVy
ZXIodGV4dCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBwcm9jZXNzUmVuZGVyU1ZHSW5saW5l
VGV4dChSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0LCB1bnNpZ25lZCYgYXRDaGFyYWN0ZXIsIGNv
bnN0IFVDaGFyKiYgbGFzdENoYXJhY3RlcikKIHsKICAgICBpZiAodGV4dC0+c3R5bGUoKS0+d2hp
dGVTcGFjZSgpID09IFBSRSkgewpAQCAtMTQzLDEwICsxMzIsOCBAQCB2b2lkIFNWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzQnVpbGRlcjo6Y29sbGVjdFRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKFJlbmRl
ck9iamVjdAogICAgIH0KIH0KIAotdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6
OmJ1aWxkTGF5b3V0QXR0cmlidXRlcyhSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKK3ZvaWQgU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZENoYXJhY3RlckRhdGFNYXAoUmVuZGVy
U1ZHVGV4dCogdGV4dFJvb3QpCiB7Ci0gICAgQVNTRVJUKG1fdGV4dExlbmd0aCk7Ci0KICAgICBT
VkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KiBvdXRlcm1vc3RUZXh0RWxlbWVudCA9IFNWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQ6OmVsZW1lbnRGcm9tUmVuZGVyZXIodGV4dFJvb3QpOwogICAgIEFT
U0VSVChvdXRlcm1vc3RUZXh0RWxlbWVudCk7CiAKQEAgLTE3MywxMSArMTYwLDYgQEAgdm9pZCBT
VkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlcyhSZW5k
ZXJTVkdUZXh0KiB0ZXh0Um8KICAgICB1bnNpZ25lZCBzaXplID0gbV90ZXh0UG9zaXRpb25zLnNp
emUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBm
aWxsQ2hhcmFjdGVyRGF0YU1hcChtX3RleHRQb3NpdGlvbnNbaV0pOwotCi0jaWYgRFVNUF9URVhU
X0xBWU9VVF9BVFRSSUJVVEVTID4gMAotICAgIGZwcmludGYoc3RkZXJyLCAiXG5EdW1waW5nIEFM
TCBsYXlvdXQgYXR0cmlidXRlcyBmb3IgUmVuZGVyU1ZHVGV4dCwgcmVuZGVyZXI9JXAsIG5vZGU9
JXAgKG1fdGV4dExlbmd0aDogJWkpXG4iLCB0ZXh0Um9vdCwgdGV4dFJvb3QtPm5vZGUoKSwgbV90
ZXh0TGVuZ3RoKTsKLSAgICBtX2NoYXJhY3RlckRhdGFNYXAuZHVtcCgpOwotI2VuZGlmCiB9CiAK
IHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0
JiBsYXN0Um90YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENv
bnRleHQmIGxlbmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3QqIHhMaXN0LCBjb25zdCBT
VkdMZW5ndGhMaXN0KiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdCogZHhMaXN0LCBjb25zdCBT
VkdMZW5ndGhMaXN0KiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3QqIHJvdGF0ZUxpc3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRy
aWJ1dGVzQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5
b3V0QXR0cmlidXRlc0J1aWxkZXIuaAppbmRleCA0NWZhZDI0MDA0Y2E5NmYyNGQ0MTc0MmE0MDE2
YjRlM2YzYTM4NmU3Li5jMWVkMzQ1Y2Y0MzY2ODQ2MzA3MTYyODA0MWE2NjdlNWU5Nzc2YzBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRy
aWJ1dGVzQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4
dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBjbGFzcyBTVkdU
ZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNW
R1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcik7CiBwdWJsaWM6CiAgICAgU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXNCdWlsZGVyKCk7Ci0gICAgdm9pZCBidWlsZExheW91dEF0dHJpYnV0ZXNGb3JX
aG9sZVRyZWUoUmVuZGVyU1ZHVGV4dCopOworICAgIGJvb2wgYnVpbGRMYXlvdXRBdHRyaWJ1dGVz
Rm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqKTsKICAgICB2b2lkIGJ1aWxkTGF5b3V0QXR0cmli
dXRlc0ZvclRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0Kik7CiAKLSAgICB2b2lkIHJl
YnVpbGRNZXRyaWNzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqKTsKICAgICB2b2lkIHJlYnVp
bGRNZXRyaWNzRm9yVGV4dFJlbmRlcmVyKFJlbmRlclNWR0lubGluZVRleHQqKTsKIAogICAgIC8v
IEludm9rZWQgd2hlbmV2ZXIgdGhlIHVuZGVybHlpbmcgRE9NIHRyZWUgY2hhbmdlcywgc28gdGhh
dCBtX3RleHRQb3NpdGlvbnMgaXMgcmVidWlsZC4KICAgICB2b2lkIGNsZWFyVGV4dFBvc2l0aW9u
aW5nRWxlbWVudHMoKSB7IG1fdGV4dFBvc2l0aW9ucy5jbGVhcigpOyB9CisgICAgdW5zaWduZWQg
bnVtYmVyT2ZUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBv
c2l0aW9ucy5zaXplKCk7IH0KIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgVGV4dFBvc2l0aW9uIHsK
QEAgLTY2LDkgKzY2LDggQEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoOwogICAg
IH07CiAKLSAgICBib29sIGJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkKFJlbmRlclNWR1Rl
eHQqKTsKKyAgICB2b2lkIGJ1aWxkQ2hhcmFjdGVyRGF0YU1hcChSZW5kZXJTVkdUZXh0Kik7CiAg
ICAgdm9pZCBjb2xsZWN0VGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoUmVuZGVyT2JqZWN0KiwgY29u
c3QgVUNoYXIqJiBsYXN0Q2hhcmFjdGVyKTsKLSAgICB2b2lkIGJ1aWxkTGF5b3V0QXR0cmlidXRl
cyhSZW5kZXJTVkdUZXh0Kik7CiAgICAgdm9pZCBmaWxsQ2hhcmFjdGVyRGF0YU1hcChjb25zdCBU
ZXh0UG9zaXRpb24mKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmlu
ZGV4IGM4YmE1MzNlMGU5OTBmYzE4OWY0YTIyYTMzZDA5Y2ZiNmFhZDYyYWQuLjQwZDFlZjYzMzJm
NTE5M2Q4MGM1N2Q1Y2FlNjkyYjc1MjU0YjdlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50
LmNwcApAQCAtMjM4LDE5ICsyMzgsNiBAQCBib29sIFNWR0FFbGVtZW50OjpjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjaGlsZENvbgogICAgIHJl
dHVybiBTVkdFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkQ29udGV4dCk7
CiB9CiAKLXZvaWQgU1ZHQUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBh
cnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291
bnREZWx0YSkKLXsKLSAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRD
b3VudERlbHRhKTsKLQotICAgIGlmIChjaGFuZ2VkQnlQYXJzZXIgfHwgIXJlbmRlcmVyKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIC8vIEludmFsaWRhdGUgdGhlIFRleHRQb3NpdGlvbiBjYWNo
ZSBpbiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgYXMgaXQgbWF5IG5vdyBwb2ludAot
ICAgIC8vIHRvIG5vLWxvbmdlciBleGlzdGluZyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50cyBh
bmQgdGh1cyBuZWVkcyB0byBiZSByZWJ1aWx0LgotICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0
UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IocmVu
ZGVyZXIoKSkpCi0gICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0ZVRleHRQb3NpdGlvbmlu
Z0VsZW1lbnRzKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCmluZGV4IDcyYWZkZWMxMjRiNWEzYTJl
OTllYzY1NGZjY2VmM2EwMmI1MmY5MzIuLmUzYjhmMjgwMjdiMzRhYjYwZWJjZDUyODVmYzQzZjZk
NjNkMTVhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCkBAIC00MCw5ICs0MCw2IEBAIGNs
YXNzIFNWR0FFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LAog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJl
Zm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0
YSA9IDApIE9WRVJSSURFOwotCiBwcml2YXRlOgogICAgIFNWR0FFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwCmluZGV4IGNiODRlMjliNzIyZjYzMTQ5ZmRlMWViZmVlZTBiNjc1YTMy
ZmVmOWQuLmRkN2U0OTZhNThiM2UyYTkyZjA4MGRlMDVmY2JhZWEyM2RiMDVlYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC0zMjEsMTkgKzMy
MSw2IEBAIFNWR1RleHRDb250ZW50RWxlbWVudCogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjplbGVt
ZW50RnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCoKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZH
VGV4dENvbnRlbnRFbGVtZW50Kj4obm9kZSk7CiB9CiAKLXZvaWQgU1ZHVGV4dENvbnRlbnRFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNo
YW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpCi17Ci0gICAgU1ZH
U3R5bGVkRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hh
bmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKLQotICAgIGlmIChjaGFuZ2VkQnlQ
YXJzZXIgfHwgIXJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEludmFsaWRh
dGUgdGhlIFRleHRQb3NpdGlvbiBjYWNoZSBpbiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxk
ZXIgYXMgaXQgbWF5IG5vdyBwb2ludAotICAgIC8vIHRvIG5vLWxvbmdlciBleGlzdGluZyBTVkdU
ZXh0UG9zaXRpb25pbmdFbGVtZW50cyBhbmQgdGh1cyBuZWVkcyB0byBiZSByZWJ1aWx0LgotICAg
IGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVS
ZW5kZXJTVkdUZXh0QW5jZXN0b3IocmVuZGVyZXIoKSkpCi0gICAgICAgIHRleHRSZW5kZXJlci0+
aW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7Ci19Ci0KIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgK
aW5kZXggMDk3NWFiYzM3MmYwZGVjZDY5YWU3YzY5N2FkNDM5MGNmNjk0MDI0My4uMTllMDMyYjlk
ODkxODUzN2UyYmIyYjUyNmQwNmM0Mjk2MTg1OWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0Q29udGVudEVsZW1lbnQuaApAQCAtMTA5LDcgKzEwOSw2IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwotICAg
IHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxz
ZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hp
bGRDb3VudERlbHRhID0gMCk7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVGV4dENv
bnRlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTdhOGU3OGFjMDIxMWYxOTky
M2M2NDk4MWM5NGJhZjc2NWVkMDdiOC4uMjg1MGM3ZGJkOTAyZTkwODBhNjBjMjUxOTU5MmJlZGFk
MjVkNjk3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTE1ICBOaWtvbGFzIFppbW1l
cm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEwNTA1
Nyk6IEluZmluaXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1cnJlbnRMb2dp
Y2FsQ2hhcmFjdGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgdHdvIG5ldyB0ZXN0Y2FzZXMgY292ZXJpbmcgdGhlIHByb2JsZW0uCisK
KyAgICAgICAgKiBzdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbDog
QWRkZWQuCisgICAgICAgICogc3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdGV4dC9tb2RpZnktdHNwYW4tcG9zaXRp
b24tYnVnLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0cyBhZGRlZCBpbiByMTE3MDEyIChwbHVnaW5zL25w
cnVudGltZS9kZWxldGUtcGx1Z2luLXdpdGhpbi0qKSBmYWlsaW5nIG9uIE1hYyBib3RzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmODg5YmM5YjZmMmRiYzgwMDIxZGRkNTVjNGI5ZjBk
YjQyZmYwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L2FkZC10c3Bh
bi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzdmc+Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAiPjx0c3Bh
bj5TaG91bGQgYmUgb248L3RzcGFuPjx0c3BhbiBkeT0iMzAiPmRpZmZlcmVudCBsaW5lczwvdHNw
YW4+PC90ZXh0PgorPC9zdmc+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzYzU3ZmZh
YWQyYjgzNWQxMTFhYmExYzAxNGJjNzlhMGFhNmNhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbApAQCAtMCwwICsxLDM2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJsb2FkZWQoKSI+Cis8
c3ZnPgorPHRpdGxlPlRoaXMgdGVzdCB1c2VkIHRvIGJlIGxhaWQgb3V0IG9uIGEgc2luZ2xlIGxp
bmUsIGluc3RlYWQgb2YgbXVsdGlwbGUgb25lczwvdGl0bGU+Cis8dGV4dCBpZD0idGV4dCIgeT0i
NTAiPjwvdGV4dD4KKworPHNjcmlwdD4KK3ZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoInRleHQiKVswXTsKKworZnVuY3Rpb24gYWRkU3BhbnMoKSB7CisgICAgdmFyIHRz
cGFuMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciLCAidHNwYW4iKTsKKyAgICB0c3BhbjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIlNob3VsZCBiZSBvbiIpKTsKKworICAgIHZhciB0c3BhbjIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInRzcGFuIik7CisgICAg
dHNwYW4yLnNldEF0dHJpYnV0ZSgiZHkiLCAiMzAiKTsKKyAgICB0c3BhbjIuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImRpZmZlcmVudCBsaW5lcyIpKTsKKworICAgIHRleHQu
YXBwZW5kQ2hpbGQodHNwYW4xKTsKKyAgICB0ZXh0LmFwcGVuZENoaWxkKHRzcGFuMik7CisKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlv
biBsb2FkZWQoKSB7CisgICAgLy8gQnVnIGlzIG9ubHkgdHJpZ2dlciBmcm9tIGFub3RoZXIgbG9v
cC4KKyAgICBzZXRUaW1lb3V0KGFkZFNwYW5zLCAwKTsKK30KKzwvc2NyaXB0PgorPC9zdmc+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnkt
dHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9t
b2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmODg5
YmM5YjZmMmRiYzgwMDIxZGRkNTVjNGI5ZjBkYjQyZmYwOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzdmc+
Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAiPjx0c3Bhbj5TaG91bGQgYmUgb248L3RzcGFuPjx0c3Bh
biBkeT0iMzAiPmRpZmZlcmVudCBsaW5lczwvdHNwYW4+PC90ZXh0PgorPC9zdmc+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnktdHNwYW4t
cG9zaXRpb24tYnVnLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnktdHNwYW4tcG9z
aXRpb24tYnVnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVhOWQwNzVhNjk1ZmYyZmQ0ZDhlNWFmMzFmOTBm
YWViYmE1MWZiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L21vZGlm
eS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJsb2FkZWQoKSI+Cis8c3ZnPgorPHRpdGxlPlRoaXMg
dGVzdCB1c2VkIHRvIGJlIGxhaWQgb3V0IG9uIGEgc2luZ2xlIGxpbmUsIGluc3RlYWQgb2YgbXVs
dGlwbGUgb25lczwvdGl0bGU+Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAiPjwvdGV4dD4KKworPHNj
cmlwdD4KK3ZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRleHQiKVsw
XTsKKworZnVuY3Rpb24gYWRkU3BhbnMoKSB7CisgICAgdmFyIHRzcGFuMSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAidHNwYW4iKTsKKyAg
ICB0c3BhbjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlNob3VsZCBiZSBv
biIpKTsKKworICAgIHRzcGFuMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciLCAidHNwYW4iKTsKKyAgICB0c3BhbjIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImRpZmZlcmVudCBsaW5lcyIpKTsKKworICAgIHRleHQuYXBw
ZW5kQ2hpbGQodHNwYW4xKTsKKyAgICB0ZXh0LmFwcGVuZENoaWxkKHRzcGFuMik7CisKKyAgICAv
LyBCdWcgaXMgb25seSB0cmlnZ2VyIGZyb20gYW5vdGhlciBsb29wLgorICAgIHNldFRpbWVvdXQo
bW92ZVNwYW4sIDApOworfQorCitmdW5jdGlvbiBtb3ZlU3BhbigpIHsKKyAgICB0c3BhbjIuc2V0
QXR0cmlidXRlKCJkeSIsICIzMCIpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gbG9hZGVkKCkgeworICAgIC8vIEJ1ZyBpcyBv
bmx5IHRyaWdnZXIgZnJvbSBhbm90aGVyIGxvb3AuCisgICAgc2V0VGltZW91dChhZGRTcGFucywg
MCk7Cit9Cis8L3NjcmlwdD4KKzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141967</attachid>
            <date>2012-05-15 07:42:00 -0700</date>
            <delta_ts>2012-05-15 08:38:55 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-83405-20120515164230.patch</filename>
            <type>text/plain</type>
            <size>46556</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA5YzNiYjk3ZGM3M2U4
YmZiZWI5MDNiNGEzMDRhNjQxODJiNGJjZC4uMGIxNjNmOWQ3ODE3NDA3MWNmZjgxYjg1OWE5Zjcz
ODhhN2I0MDdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTA1LTE1ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04ocjEwNTA1Nyk6IEluZmluaXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1
cnJlbnRMb2dpY2FsQ2hhcmFjdGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEeW5hbWljYWxseSBhZGRpbmcgdHNwYW5zIGNhcnJ5aW5nIHBv
c2l0aW9uIGluZm9ybWF0aW9uIGluIHRoZSB4L3kvZHgvZHkvcm90YXRlIGxpc3RzIGlzIGJyb2tl
bi4KKyAgICAgICAgVG8gYXZvaWQgbWlzdGFrZXMgbGlrZSB0aGlzIGluIGZ1dHVyZSwgc2ltcGxp
ZnkgdGhlIGNhbGxpbmcgY29kZSBpbiBSZW5kZXJTVkdJbmxpbmVUZXh0IGFuZCBjZW50cmFsaXpl
CisgICAgICAgIHRoZSBtYW5hZ21lbnQgb2YgYWxsIGNhY2hlcyAodGV4dCBwb3NpdGlvbmluZyBl
bGVtZW50IGNhY2hlIC8gbWV0cmljcyBtYXAgLyBsYXlvdXQgYXR0cmlidXRlcykgaW4KKyAgICAg
ICAgUmVuZGVyU1ZHVGV4dC4gVGhpcyBhdm9pZHMgdGhlIGhhY2sgaW4gU1ZHUm9vdElubGluZUJv
eDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkgd2hpY2gKKyAgICAgICAg
Y2FsbGVkIHRleHRSb290LT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpLCB3aGljaCB3YXMgdXNl
ZCB0byBmaXggcHJldmlvdXMgc2VjdXJpdHkgaXNzdWVzIHdpdGggdGhpcyBjb2RlLgorICAgICAg
ICBJbnN0ZWFkIGNvcnJlY3RseSBoYW5kbGUgZGVzdHJ1Y3Rpb24gb2YgUmVuZGVyU1ZHSW5saW5l
VGV4dCBpbiBSZW5kZXJTVkdUZXh0LCBrZWVwaW5nIHRoZSBtX2xheW91dEF0dHJpYnV0ZXMKKyAg
ICAgICAgc3luY2hyb25pemVkIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHJlbmRlciB0
cmVlLiBGaXhlcyBoaWdoY2hhcnRzIHByb2JsZW1zLgorCisgICAgICAgIFRlc3RzOiBzdmcvdGV4
dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy90ZXh0L2hp
Z2hjaGFydHMtYXNzZXJ0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy90ZXh0L21vZGlmeS10
c3Bhbi1wb3NpdGlvbi1idWcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5oOgorICAgICAgICAoUmVuZGVyU1ZHQmxvY2spOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lu
bGluZTo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lOjpyZW1v
dmVDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAg
ICAgICAgKFJlbmRlclNWR0lubGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZVRleHQ6
OnNldFRleHRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmVUZXh0
OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmVUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OlJlbmRlclNWR1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6flJlbmRlclNWR1RleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29sbGVjdExheW91dEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
VGV4dDo6c3VidHJlZUNoaWxkV2FzQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZFByZXZp
b3VzQW5kTmV4dEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tMYXlvdXRBdHRy
aWJ1dGVzQ29uc2lzdGVuY3kpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6d2ls
bEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnN1YnRyZWVD
aGlsZFdpbGxCZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6c3Vi
dHJlZUNoaWxkV2FzUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojpz
dWJ0cmVlU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6
c3VidHJlZVRleHREaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlRm9udEluQWxs
RGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bGF5b3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmFkZENoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR1RleHQ6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKFJlbmRlclNWR1RleHQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdSb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVC
b3g6OmNvbXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJp
YnV0ZXNGb3JUZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dExheW91dEF0
dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1aWxkTWV0
cmljc0ZvclRleHRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TGF5b3V0QXR0
cmlidXRlc0J1aWxkZXI6OmJ1aWxkQ2hhcmFjdGVyRGF0YU1hcCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaDoKKyAgICAgICAgKFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TGF5
b3V0QXR0cmlidXRlc0J1aWxkZXI6Om51bWJlck9mVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMpOgor
ICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50
Lmg6CisgICAgICAgIChTVkdBRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50
RWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oOgorICAg
ICAgICAoU1ZHVGV4dENvbnRlbnRFbGVtZW50KToKKwogMjAxMi0wNS0xNSAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZWZh
Y3RvciBTbmlwcGV0c01vZGVsOiBleHRyYWN0IFNuaXBwZXRTdG9yYWdlLCBtYWtlIFNuaXBwZXRT
Y3JpcHRNYXBwaW5nIGRlbGVnYXRlIGNhbGxzIHRvIFNjcmlwdFNuaXBwZXRNb2RlbCBhbmQgcHJv
dmlkZSBwdWJsaWMgaW50ZXJmYWNlIG9uIFNjcmlwdFNuaXBwZXRNb2RlbCBpbiB0ZXJtcyBvZiB1
aVNvdXJjZUNvZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0Jsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Js
b2NrLmgKaW5kZXggY2EwMDBmNTBiYTIxZTQxNDVhYWNlZGIxMzFkM2FjMGMyODlhODg2MS4uNGEy
OTc3ZDcwYjIwNDM2ZjU2YmFiYzU4YmExYzdjMTQ1MWVlMmQ1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaApAQCAtMzQsMTMgKzM0LDE1IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxvd1JlY3QoKSBjb25z
dDsKIAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKKwog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4pOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCb3hNb2RlbEluZm9Gcm9tU3R5bGUoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExh
eW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHls
ZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2
b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCBhYjhj
YzFhODc1NTU0YTkwM2M4ZDE0M2RkY2MzZTVkMDk1M2Q3MTQzLi4yZWUxNjlhNzFiMTZjYjJhNjlj
MjRlYmY3YjFiYmUxMzQxNGU0MDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCkBAIC0xMjQsNyArMTI0LDIyIEBAIHZvaWQgUmVuZGVy
U1ZHSW5saW5lOjphZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJl
Zm9yZUNoaWxkKQogewogICAgIFJlbmRlcklubGluZTo6YWRkQ2hpbGQoY2hpbGQsIGJlZm9yZUNo
aWxkKTsKICAgICBpZiAoUmVuZGVyU1ZHVGV4dCogdGV4dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4
dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKHRoaXMpKQotICAgICAgICB0ZXh0UmVuZGVy
ZXItPmxheW91dEF0dHJpYnV0ZXNDaGFuZ2VkKGNoaWxkKTsKKyAgICAgICAgdGV4dFJlbmRlcmVy
LT5zdWJ0cmVlQ2hpbGRXYXNBZGRlZChjaGlsZCk7Cit9CisKK3ZvaWQgUmVuZGVyU1ZHSW5saW5l
OjpyZW1vdmVDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKQoreworICAgIFJlbmRlclNWR1RleHQq
IHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rv
cih0aGlzKTsKKyAgICBpZiAoIWNoaWxkLT5pc1NWR0lubGluZVRleHQoKSB8fCAhdGV4dFJlbmRl
cmVyKSB7CisgICAgICAgIFJlbmRlcklubGluZTo6cmVtb3ZlQ2hpbGQoY2hpbGQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCA9IHRvUmVu
ZGVyU1ZHSW5saW5lVGV4dChjaGlsZCk7CisgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzKiwgMj4gYWZmZWN0ZWRBdHRyaWJ1dGVzOworICAgIHRleHRSZW5kZXJlci0+c3VidHJlZUNo
aWxkV2lsbEJlUmVtb3ZlZCh0ZXh0LCBhZmZlY3RlZEF0dHJpYnV0ZXMpOworICAgIFJlbmRlcklu
bGluZTo6cmVtb3ZlQ2hpbGQoY2hpbGQpOworICAgIHRleHRSZW5kZXJlci0+c3VidHJlZUNoaWxk
V2FzUmVtb3ZlZChhZmZlY3RlZEF0dHJpYnV0ZXMpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAppbmRleCA4YWE0YWI4NzUwZjIyZTg2
Y2JmZjdhZTFkNjMwZTRjN2ZmZTQxNTcxLi4yNTM0YTBjYTVkYjFhNzUyYjExMjI1NDJjMDIzYmY1
MTEyZTNiOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0lubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lLmgKQEAgLTU3LDcgKzU3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3R5
bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxl
KTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxl
bWVudCgpOworCiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQs
IFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
Q2hpbGQoUmVuZGVyT2JqZWN0Kik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAppbmRleCAwOWQ0NDZiN2Q2ZWVi
OWZmNTc4ZDU0NmEwOTUwMjc0YzVhN2ZhZDRiLi5lZmY3MDc3MjRlMmNmMWIzMTYyNmE4NGEzOWUw
YTAwYTNhMjllYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0lubGluZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKQEAgLTcyLDM3ICs3MiwxMSBAQCBSZW5kZXJTVkdJbmxp
bmVUZXh0OjpSZW5kZXJTVkdJbmxpbmVUZXh0KE5vZGUqIG4sIFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gc3RyaW5nKQogewogfQogCi12b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OndpbGxCZURlc3Ry
b3llZCgpCi17Ci0gICAgUmVuZGVyU1ZHVGV4dCogdGV4dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4
dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKHRoaXMpOwotICAgIGlmICghdGV4dFJlbmRl
cmVyKSB7Ci0gICAgICAgIFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3llZCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4gYWZm
ZWN0ZWRBdHRyaWJ1dGVzOwotICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc1dpbGxC
ZURlc3Ryb3llZCh0aGlzLCBhZmZlY3RlZEF0dHJpYnV0ZXMpOwotCi0gICAgUmVuZGVyVGV4dDo6
d2lsbEJlRGVzdHJveWVkKCk7Ci0gICAgaWYgKGFmZmVjdGVkQXR0cmlidXRlcy5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQot
ICAgICAgICB0ZXh0UmVuZGVyZXItPnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKGFmZmVjdGVkQXR0
cmlidXRlcyk7Ci19Ci0KIHZvaWQgUmVuZGVyU1ZHSW5saW5lVGV4dDo6c2V0VGV4dEludGVybmFs
KFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gdGV4dCkKIHsKICAgICBSZW5kZXJUZXh0OjpzZXRUZXh0
SW50ZXJuYWwodGV4dCk7Ci0KLSAgICAvLyBXaGVuIHRoZSB1bmRlcmx5aW5nIHRleHQgY29udGVu
dCBjaGFuZ2VzLCBjYWxsIGJvdGggdGV4dERPTUNoYW5nZWQoKSAmIGxheW91dEF0dHJpYnV0ZXND
aGFuZ2VkKCkKLSAgICAvLyBUaGUgZm9ybWVyIHdpbGwgY2xlYXIgdGhlIFNWR1RleHRQb3NpdGlv
bmluZ0VsZW1lbnQgY2FjaGUsIHdoaWNoIGRlcGVuZHMgb24gdGhlIHRleHRMZW5ndGgoKSBvZgot
ICAgIC8vIHRoZSBSZW5kZXJTVkdJbmxpbmVUZXh0IG9iamVjdHMsIGFuZCB0aHVzIG5lZWRzIHRv
IGJlIHJlYnVpbGQuIFRoZSBsYXR0ZXIgd2lsbCBhc3N1cmUgdGhhdCB0aGUKLSAgICAvLyBTVkdU
ZXh0TGF5b3V0QXR0cmlidXRlcyBhc3NvY2lhdGVkIHdpdGggdGhlIFJlbmRlclNWR0lubGluZVRl
eHQgd2lsbCBiZSB1cGRhdGVkLgotICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIg
PSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpIHsKLSAg
ICAgICAgdGV4dFJlbmRlcmVyLT5pbnZhbGlkYXRlVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsK
LSAgICAgICAgdGV4dFJlbmRlcmVyLT5sYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZCh0aGlzKTsKLSAg
ICB9CisgICAgaWYgKFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1RleHQ6
OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKSkKKyAgICAgICAgdGV4dFJlbmRlcmVy
LT5zdWJ0cmVlVGV4dERpZENoYW5nZSh0aGlzKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdJbmxpbmVU
ZXh0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKQpAQCAtMTI3LDcgKzEwMSw3IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lVGV4
dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
CiAKICAgICAvLyBUaGUgdGV4dCBtZXRyaWNzIG1heSBiZSBpbmZsdWVuY2VkIGJ5IHN0eWxlIGNo
YW5nZXMuCiAgICAgaWYgKFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1Rl
eHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKSkKLSAgICAgICAgdGV4dFJlbmRl
cmVyLT5sYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgdGV4dFJlbmRlcmVy
LT5zdWJ0cmVlU3R5bGVEaWRDaGFuZ2UodGhpcyk7CiB9CiAKIElubGluZVRleHRCb3gqIFJlbmRl
clNWR0lubGluZVRleHQ6OmNyZWF0ZVRleHRCb3goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAppbmRleCA1MTM3OGZkMDdiNmIyMzE5
M2M4MTA3ZDA1NWM3ZjA4MTZlZWRlZjY3Li5hYjgxY2E5OWZhNjkzOTQ3ZmQ0NWY5Y2NkMGUwMGVi
Mjg3M2I4ODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0lubGluZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0lubGluZVRleHQuaApAQCAtNDgsNyArNDgsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJT
VkdJbmxpbmVUZXh0IjsgfQogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW50ZXJuYWwoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPik7
CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3Qg
UmVuZGVyU3R5bGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5jcHAKaW5kZXggZjUxMmFiODdiNDM4ODBmNmVjMWYyNGVhYTBhMTlkMjkwN2YyYmFm
Ni4uODcxZThjNjZiOThiZDNiZTk4ZTQ5MjUzN2JjMThmNmQzMzQ5NTkyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCkBAIC01NywxMiArNTcs
MTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUmVuZGVyU1ZHVGV4dDo6UmVuZGVyU1ZHVGV4dChT
VkdUZXh0RWxlbWVudCogbm9kZSkgCiAgICAgOiBSZW5kZXJTVkdCbG9jayhub2RlKQogICAgICwg
bV9uZWVkc1Jlb3JkZXJpbmcoZmFsc2UpCi0gICAgLCBtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNV
cGRhdGUodHJ1ZSkKKyAgICAsIG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZShmYWxzZSkK
ICAgICAsIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKLSAgICAsIG1fbmVlZHNUZXh0TWV0
cmljc1VwZGF0ZSh0cnVlKQorICAgICwgbV9uZWVkc1RleHRNZXRyaWNzVXBkYXRlKGZhbHNlKQog
ewogfQogCitSZW5kZXJTVkdUZXh0Ojp+UmVuZGVyU1ZHVGV4dCgpCit7CisgICAgQVNTRVJUKG1f
bGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpOworfQorCiBib29sIFJlbmRlclNWR1RleHQ6Omlz
Q2hpbGRBbGxvd2VkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlclN0eWxlKikgY29uc3QKIHsK
ICAgICByZXR1cm4gY2hpbGQtPmlzSW5saW5lKCk7CkBAIC0xMTAsMzEgKzExNSwxOSBAQCB2b2lk
IFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRh
aW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwog
fQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZlVXBkYXRlTGF5b3V0QXR0cmlidXRlcyhS
ZW5kZXJPYmplY3QqIHN0YXJ0LCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXImIGJ1aWxk
ZXIpCitzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdExheW91dEF0dHJpYnV0ZXMoUmVuZGVyT2Jq
ZWN0KiB0ZXh0LCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiYgYXR0cmlidXRlcykK
IHsKLSAgICBpZiAoc3RhcnQtPmlzU1ZHSW5saW5lVGV4dCgpKSB7Ci0gICAgICAgIGJ1aWxkZXIu
YnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKHRvUmVuZGVyU1ZHSW5saW5lVGV4
dChzdGFydCkpOwotICAgICAgICByZXR1cm47CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGRlc2Nl
bmRhbnQgPSB0ZXh0OyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dElu
UHJlT3JkZXIodGV4dCkpIHsKKyAgICAgICAgaWYgKGRlc2NlbmRhbnQtPmlzU1ZHSW5saW5lVGV4
dCgpKQorICAgICAgICAgICAgYXR0cmlidXRlcy5hcHBlbmQodG9SZW5kZXJTVkdJbmxpbmVUZXh0
KGRlc2NlbmRhbnQpLT5sYXlvdXRBdHRyaWJ1dGVzKCkpOwogICAgIH0KLQotICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiBjaGlsZCA9IHN0YXJ0LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKQotICAgICAgICByZWN1cnNpdmVVcGRhdGVMYXlvdXRBdHRyaWJ1
dGVzKGNoaWxkLCBidWlsZGVyKTsKLX0KLQotdm9pZCBSZW5kZXJTVkdUZXh0OjpsYXlvdXRBdHRy
aWJ1dGVzQ2hhbmdlZChSZW5kZXJPYmplY3QqIGNoaWxkKQotewotICAgIEFTU0VSVChjaGlsZCk7
Ci0gICAgaWYgKG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSkKLSAgICAgICAgcmV0dXJu
OwotICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwot
ICAgIHJlY3Vyc2l2ZVVwZGF0ZUxheW91dEF0dHJpYnV0ZXMoY2hpbGQsIG1fbGF5b3V0QXR0cmli
dXRlc0J1aWxkZXIpOwotICAgIHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKCk7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgYm9vbCBmaW5kUHJldmlvdXNBbmROZXh0QXR0cmlidXRlcyhSZW5kZXJPYmplY3Qq
IHN0YXJ0LCBSZW5kZXJTVkdJbmxpbmVUZXh0KiBsb2NhdGVFbGVtZW50LCBib29sJiBzdG9wQWZ0
ZXJOZXh0LCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyomIHByZXZpb3VzLCBTVkdUZXh0TGF5b3V0
QXR0cmlidXRlcyomIG5leHQpCiB7CiAgICAgQVNTRVJUKHN0YXJ0KTsKICAgICBBU1NFUlQobG9j
YXRlRWxlbWVudCk7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBpdGVyYXRpdmUuCiAgICAgZm9y
IChSZW5kZXJPYmplY3QqIGNoaWxkID0gc3RhcnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGlu
ZVRleHQoKSkgewogICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCA9IHRvUmVu
ZGVyU1ZHSW5saW5lVGV4dChjaGlsZCk7CkBAIC0xNjIsNDAgKzE1NSwxODIgQEAgc3RhdGljIGlu
bGluZSBib29sIGZpbmRQcmV2aW91c0FuZE5leHRBdHRyaWJ1dGVzKFJlbmRlck9iamVjdCogc3Rh
cnQsIFJlbmRlclNWR0kKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4
dDo6bGF5b3V0QXR0cmlidXRlc1dpbGxCZURlc3Ryb3llZChSZW5kZXJTVkdJbmxpbmVUZXh0KiB0
ZXh0LCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiYgYWZmZWN0ZWRBdHRyaWJ1dGVz
KQordm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRXYXNBZGRlZChSZW5kZXJPYmplY3Qq
IGNoaWxkKQoreworICAgIEFTU0VSVChjaGlsZCk7CisgICAgaWYgKCFldmVySGFkTGF5b3V0KCkp
IHsKKyAgICAgICAgQVNTRVJUKG1fbGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpOworICAgICAg
ICBBU1NFUlQoIW1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIubnVtYmVyT2ZUZXh0UG9zaXRpb25p
bmdFbGVtZW50cygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpKTsKKworICAgIC8vIFRoZSBwb3NpdGlvbmluZyBlbGVtZW50
cyBjYWNoZSBkb2Vzbid0IGluY2x1ZGUgdGhlIG5ldyAnY2hpbGQnIHlldC4gQ2xlYXIgdGhlCisg
ICAgLy8gY2FjaGUsIGFzIHRoZSBuZXh0IGJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5k
ZXJlcigpIGNhbGwgcmVidWlsZHMgaXQuCisgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5j
bGVhclRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7CisKKyAgICAvLyBEZXRlY3QgY2hhbmdlcyBp
biBsYXlvdXQgYXR0cmlidXRlcyBhbmQgb25seSBtZWFzdXJlIHRob3NlIHRleHQgcGFydHMgdGhh
dCBoYXZlIGNoYW5nZWQhCisgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4gbmV3
TGF5b3V0QXR0cmlidXRlczsKKyAgICBjb2xsZWN0TGF5b3V0QXR0cmlidXRlcyh0aGlzLCBuZXdM
YXlvdXRBdHRyaWJ1dGVzKTsKKyAgICBpZiAobmV3TGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzLmNsZWFyKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBDb21wYXJlIG1fbGF5b3V0QXR0cmlidXRlcyB3aXRoIG5ld0xheW91
dEF0dHJpYnV0ZXMgdG8gZmlndXJlIG91dCB3aGljaCBhdHRyaWJ1dGUgZ290IGFkZGVkLgorICAg
IHNpemVfdCBzaXplID0gbmV3TGF5b3V0QXR0cmlidXRlcy5zaXplKCk7CisgICAgU1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXMqIGF0dHJpYnV0ZXMgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGF0dHJpYnV0ZXMgPSBuZXdMYXlvdXRBdHRyaWJ1dGVz
W2ldOworICAgICAgICBpZiAobV9sYXlvdXRBdHRyaWJ1dGVzLmZpbmQoYXR0cmlidXRlcykgPT0g
bm90Rm91bmQpIHsKKyAgICAgICAgICAgIC8vIEV2ZXJ5IHRpbWUgdGhpcyBpcyBpbnZva2VkLCB0
aGVyZSdzIG9ubHkgYSBzaW5nbGUgbmV3IGVudHJ5IGluIHRoZSBuZXdMYXlvdXRBdHRyaWJ1dGVz
IGxpc3QsIGNvbXBhcmVkIHRvIHRoZSBvbGQgaW4gbV9sYXlvdXRBdHRyaWJ1dGVzLgorICAgICAg
ICAgICAgYm9vbCBzdG9wQWZ0ZXJOZXh0ID0gZmFsc2U7CisgICAgICAgICAgICBTVkdUZXh0TGF5
b3V0QXR0cmlidXRlcyogcHJldmlvdXMgPSAwOworICAgICAgICAgICAgU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMqIG5leHQgPSAwOworICAgICAgICAgICAgZmluZFByZXZpb3VzQW5kTmV4dEF0dHJp
YnV0ZXModGhpcywgYXR0cmlidXRlcy0+Y29udGV4dCgpLCBzdG9wQWZ0ZXJOZXh0LCBwcmV2aW91
cywgbmV4dCk7CisKKyAgICAgICAgICAgIGlmIChwcmV2aW91cykKKyAgICAgICAgICAgICAgICBt
X2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5k
ZXJlcihwcmV2aW91cy0+Y29udGV4dCgpKTsKKyAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIuYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKGF0dHJpYnV0ZXMt
PmNvbnRleHQoKSk7CisgICAgICAgICAgICBpZiAobmV4dCkKKyAgICAgICAgICAgICAgICBtX2xh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5kZXJl
cihuZXh0LT5jb250ZXh0KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyNpZm5kZWYgIE5ERUJVRworICAgIC8vIFZlcmlmeSB0aGF0IG1fbGF5b3V0QXR0cmlidXRl
cyBvbmx5IGRpZmZlcnMgYnkgbWF4aXVtIG9uZSBlbnRyeS4KKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgQVNTRVJUKG1fbGF5b3V0QXR0cmlidXRlcy5maW5k
KG5ld0xheW91dEF0dHJpYnV0ZXNbaV0pICE9IG5vdEZvdW5kIHx8IG5ld0xheW91dEF0dHJpYnV0
ZXNbaV0gPT0gYXR0cmlidXRlcyk7CisjZW5kaWYKKworICAgIG1fbGF5b3V0QXR0cmlidXRlcyA9
IG5ld0xheW91dEF0dHJpYnV0ZXM7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGVja0xheW91
dEF0dHJpYnV0ZXNDb25zaXN0ZW5jeShSZW5kZXJTVkdUZXh0KiB0ZXh0LCBWZWN0b3I8U1ZHVGV4
dExheW91dEF0dHJpYnV0ZXMqPiYgZXhwZWN0ZWRMYXlvdXRBdHRyaWJ1dGVzKQoreworI2lmbmRl
ZiBOREVCVUcKKyAgICBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiBuZXdMYXlvdXRB
dHRyaWJ1dGVzOworICAgIGNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKHRleHQsIG5ld0xheW91dEF0
dHJpYnV0ZXMpOworICAgIEFTU0VSVChuZXdMYXlvdXRBdHRyaWJ1dGVzID09IGV4cGVjdGVkTGF5
b3V0QXR0cmlidXRlcyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0ZXh0KTsKKyAgICBVTlVT
RURfUEFSQU0oZXhwZWN0ZWRMYXlvdXRBdHRyaWJ1dGVzKTsKKyNlbmRpZgorfQorCit2b2lkIFJl
bmRlclNWR1RleHQ6OndpbGxCZURlc3Ryb3llZCgpCit7CisgICAgbV9sYXlvdXRBdHRyaWJ1dGVz
LmNsZWFyKCk7CisgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jbGVhclRleHRQb3NpdGlv
bmluZ0VsZW1lbnRzKCk7CisKKyAgICBSZW5kZXJTVkdCbG9jazo6d2lsbEJlRGVzdHJveWVkKCk7
Cit9CisKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6c3VidHJlZUNoaWxkV2lsbEJlUmVtb3ZlZChSZW5k
ZXJTVkdJbmxpbmVUZXh0KiB0ZXh0LCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqLCAy
PiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKQogewogICAgIEFTU0VSVCh0ZXh0KTsKLSAgICBpZiAobV9u
ZWVkc1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlKQorICAgIGlmICghZXZlckhhZExheW91dCgpIHx8
IGJlaW5nRGVzdHJveWVkKCkpIHsKKyAgICAgICAgQVNTRVJUKG1fbGF5b3V0QXR0cmlidXRlcy5p
c0VtcHR5KCkpOworICAgICAgICBBU1NFUlQoIW1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIubnVt
YmVyT2ZUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGNoZWNrTGF5b3V0QXR0cmlidXRlc0NvbnNpc3RlbmN5KHRoaXMsIG1fbGF5b3V0QXR0
cmlidXRlcyk7CisKKyAgICAvLyBUaGUgcG9zaXRpb25pbmcgZWxlbWVudHMgY2FjaGUgZGVwZW5k
cyBvbiB0aGUgc2l6ZSBvZiBlYWNoIHRleHQgcmVuZGVyZXIgaW4gdGhlCisgICAgLy8gc3VidHJl
ZS4gSWYgdGhpcyBjaGFuZ2VzLCBjbGVhciB0aGUgY2FjaGUuIEl0J3MgZ29pbmcgdG8gYmUgcmVi
dWlsdCBiZWxvdy4KKyAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNsZWFyVGV4dFBvc2l0
aW9uaW5nRWxlbWVudHMoKTsKKyAgICBpZiAobV9sYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gVGhpcyBsb2dpYyByZXF1aXJlcyB0aGF0IHRoZSAn
dGV4dCcgY2hpbGQgaXMgc3RpbGwgaW5zZXJ0ZWQgaW4gdGhlIHRyZWUuCiAgICAgYm9vbCBzdG9w
QWZ0ZXJOZXh0ID0gZmFsc2U7CiAgICAgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqIHByZXZpb3Vz
ID0gMDsKICAgICBTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyogbmV4dCA9IDA7Ci0gICAgZmluZFBy
ZXZpb3VzQW5kTmV4dEF0dHJpYnV0ZXModGhpcywgdGV4dCwgc3RvcEFmdGVyTmV4dCwgcHJldmlv
dXMsIG5leHQpOworICAgIGlmICghZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgICAgICBm
aW5kUHJldmlvdXNBbmROZXh0QXR0cmlidXRlcyh0aGlzLCB0ZXh0LCBzdG9wQWZ0ZXJOZXh0LCBw
cmV2aW91cywgbmV4dCk7CisKICAgICBpZiAocHJldmlvdXMpCiAgICAgICAgIGFmZmVjdGVkQXR0
cmlidXRlcy5hcHBlbmQocHJldmlvdXMpOwogICAgIGlmIChuZXh0KQogICAgICAgICBhZmZlY3Rl
ZEF0dHJpYnV0ZXMuYXBwZW5kKG5leHQpOworCisgICAgc2l6ZV90IHBvc2l0aW9uID0gbV9sYXlv
dXRBdHRyaWJ1dGVzLmZpbmQodGV4dC0+bGF5b3V0QXR0cmlidXRlcygpKTsKKyAgICBBU1NFUlQo
cG9zaXRpb24gIT0gbm90Rm91bmQpOworICAgIG1fbGF5b3V0QXR0cmlidXRlcy5yZW1vdmUocG9z
aXRpb24pOwogfQogCi12b2lkIFJlbmRlclNWR1RleHQ6OmludmFsaWRhdGVUZXh0UG9zaXRpb25p
bmdFbGVtZW50cygpCit2b2lkIFJlbmRlclNWR1RleHQ6OnN1YnRyZWVDaGlsZFdhc1JlbW92ZWQo
Y29uc3QgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiwgMj4mIGFmZmVjdGVkQXR0cmli
dXRlcykKIHsKLSAgICAvLyBDbGVhciB0aGUgdGV4dCBwb3NpdGlvbmluZyBlbGVtZW50cy4gVGhp
cyBzaG91bGQgYmUgY2FsbGVkIHdoZW4gZWl0aGVyIHRoZSBjaGlsZHJlbgotICAgIC8vIG9mIGEg
RE9NIHRleHQgZWxlbWVudCBoYXZlIGNoYW5nZWQsIG9yIHRoZSBsZW5ndGggb2YgdGhlIHRleHQg
aW4gYW55IGNoaWxkIGVsZW1lbnQKLSAgICAvLyBoYXMgY2hhbmdlZC4gRmFpbHVyZSB0byBjbGVh
ciBtYXkgbGVhdmUgdXMgd2l0aCBpbnZhbGlkIGVsZW1lbnRzLCBhcyBvdGhlciBjb2RlIHBhdGhz
Ci0gICAgLy8gZG8gbm90IGFsd2F5cyBjYXVzZSB0aGUgcG9zaXRpb24gZWxlbWVudHMgdG8gYmUg
bWFya2VkIGludmFsaWQgYmVmb3JlIHVzZS4KLSAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVy
LmNsZWFyVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKKyAgICBpZiAoYmVpbmdEZXN0cm95ZWQo
KSkgeworICAgICAgICBBU1NFUlQoYWZmZWN0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisgICAg
ICAgIEFTU0VSVChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJU
KCFtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLm51bWJlck9mVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dHMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnRCZWluZ0Rl
c3Ryb3llZCgpKSB7CisgICAgICAgIEFTU0VSVChhZmZlY3RlZEF0dHJpYnV0ZXMuaXNFbXB0eSgp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRoaXMgaXMgY2FsbGVkIGltbWVk
aWF0ZWx5IGFmdGVyIHN1YnRyZWVDaGlsZFdpbGxCZURlc3Ryb3llZCwgb25jZSB0aGUgUmVuZGVy
U1ZHSW5saW5lVGV4dDo6d2lsbEJlRGVzdHJveWVkKCkgbWV0aG9kCisgICAgLy8gcGFzc2VzIG9u
IHRvIHRoZSBiYXNlIGNsYXNzLCB3aGljaCByZW1vdmVzIHVzIGZyb20gdGhlIHJlbmRlciB0cmVl
LiBBdCB0aGlzIHBvaW50IHdlIGNhbiB1cGRhdGUgdGhlIGxheW91dCBhdHRyaWJ1dGVzLgorICAg
IHVuc2lnbmVkIHNpemUgPSBhZmZlY3RlZEF0dHJpYnV0ZXMuc2l6ZSgpOworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIuYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKGFmZmVjdGVkQXR0cmli
dXRlc1tpXS0+Y29udGV4dCgpKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZVVw
ZGF0ZVNjYWxlZEZvbnQoUmVuZGVyT2JqZWN0KiBzdGFydCkKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6
c3VidHJlZVN0eWxlRGlkQ2hhbmdlKFJlbmRlclNWR0lubGluZVRleHQqIHRleHQpCiB7Ci0gICAg
Zm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gc3RhcnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lu
bGluZVRleHQoKSkgewotICAgICAgICAgICAgdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxkKS0+
dXBkYXRlU2NhbGVkRm9udCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KKyAg
ICBBU1NFUlQodGV4dCk7CisgICAgQVNTRVJUKCFiZWluZ0Rlc3Ryb3llZCgpKTsKKyAgICBpZiAo
IWV2ZXJIYWRMYXlvdXQoKSkgeworICAgICAgICBBU1NFUlQobV9sYXlvdXRBdHRyaWJ1dGVzLmlz
RW1wdHkoKSk7CisgICAgICAgIEFTU0VSVCghbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5udW1i
ZXJPZlRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQVNTRVJUKCFkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpOworICAgIGNoZWNrTGF5b3V0
QXR0cmlidXRlc0NvbnNpc3RlbmN5KHRoaXMsIG1fbGF5b3V0QXR0cmlidXRlcyk7CiAKLSAgICAg
ICAgcmVjdXJzaXZlVXBkYXRlU2NhbGVkRm9udChjaGlsZCk7CisgICAgLy8gT25seSB1cGRhdGUg
dGhlIG1ldHJpY3MgY2FjaGUsIGJ1dCBub3QgdGhlIHRleHQgcG9zaXRpb25pbmcgZWxlbWVudCBj
YWNoZQorICAgIC8vIG5vciB0aGUgbGF5b3V0IGF0dHJpYnV0ZXMgY2FjaGVkIGluIHRoZSBsZWFm
ICN0ZXh0IHJlbmRlcmVycy4KKyAgICBGb250Q2FjaGVQdXJnZVByZXZlbnRlciBmb250Q2FjaGVQ
dXJnZVByZXZlbnRlcjsKKyAgICBmb3IgKFJlbmRlck9iamVjdCogZGVzY2VuZGFudCA9IHRleHQ7
IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcih0ZXh0
KSkgeworICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNTVkdJbmxpbmVUZXh0KCkpCisgICAgICAg
ICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVpbGRNZXRyaWNzRm9yVGV4dFJlbmRl
cmVyKHRvUmVuZGVyU1ZHSW5saW5lVGV4dChkZXNjZW5kYW50KSk7CisgICAgfQorfQorCit2b2lk
IFJlbmRlclNWR1RleHQ6OnN1YnRyZWVUZXh0RGlkQ2hhbmdlKFJlbmRlclNWR0lubGluZVRleHQq
IHRleHQpCit7CisgICAgQVNTRVJUKHRleHQpOworICAgIEFTU0VSVCghYmVpbmdEZXN0cm95ZWQo
KSk7CisgICAgaWYgKCFldmVySGFkTGF5b3V0KCkpIHsKKyAgICAgICAgQVNTRVJUKG1fbGF5b3V0
QXR0cmlidXRlcy5pc0VtcHR5KCkpOworICAgICAgICBBU1NFUlQoIW1fbGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIubnVtYmVyT2ZUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIC8vIFRoZSBwb3NpdGlvbmluZyBlbGVtZW50cyBjYWNoZSBkZXBl
bmRzIG9uIHRoZSBzaXplIG9mIGVhY2ggdGV4dCByZW5kZXJlciBpbiB0aGUKKyAgICAvLyBzdWJ0
cmVlLiBJZiB0aGlzIGNoYW5nZXMsIGNsZWFyIHRoZSBjYWNoZS4gSXQncyBnb2luZyB0byBiZSBy
ZWJ1aWx0IGJlbG93LgorICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY2xlYXJUZXh0UG9z
aXRpb25pbmdFbGVtZW50cygpOworCisgICAgY2hlY2tMYXlvdXRBdHRyaWJ1dGVzQ29uc2lzdGVu
Y3kodGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKKyAgICBmb3IgKFJlbmRlck9iamVjdCogZGVz
Y2VuZGFudCA9IHRleHQ7IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0
SW5QcmVPcmRlcih0ZXh0KSkgeworICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNTVkdJbmxpbmVU
ZXh0KCkpCisgICAgICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0
QXR0cmlidXRlc0ZvclRleHRSZW5kZXJlcih0b1JlbmRlclNWR0lubGluZVRleHQoZGVzY2VuZGFu
dCkpOworICAgIH0KK30KKworc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZUZvbnRJbkFsbERlc2Nl
bmRhbnRzKFJlbmRlck9iamVjdCogc3RhcnQpCit7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGRl
c2NlbmRhbnQgPSBzdGFydDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5l
eHRJblByZU9yZGVyKHN0YXJ0KSkgeworICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNTVkdJbmxp
bmVUZXh0KCkpCisgICAgICAgICAgICB0b1JlbmRlclNWR0lubGluZVRleHQoZGVzY2VuZGFudCkt
PnVwZGF0ZVNjYWxlZEZvbnQoKTsKICAgICB9CiB9CiAKQEAgLTIxMiwyMyArMzQ3LDQ5IEBAIHZv
aWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0KCkKICAgICAgICAgdXBkYXRlQ2FjaGVkQm91bmRhcmll
c0luUGFyZW50cyA9IHRydWU7CiAgICAgfQogCi0gICAgLy8gSWYgdGhlIHJvb3QgbGF5b3V0IHNp
emUgY2hhbmdlZCAoZWcuIHdpbmRvdyBzaXplIGNoYW5nZXMpIG9yIHRoZSBwb3NpdGlvbmluZyB2
YWx1ZXMgY2hhbmdlCi0gICAgLy8gb3IgdGhlIHRyYW5zZm9ybSB0byB0aGUgcm9vdCBjb250ZXh0
IGhhcyBjaGFuZ2VkIHRoZW4gcmVjb21wdXRlIHRoZSBvbi1zY3JlZW4gZm9udCBzaXplLgotICAg
IGlmIChtX25lZWRzVGV4dE1ldHJpY3NVcGRhdGUgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluZFRy
ZWVSb290T2JqZWN0KHRoaXMpLT5pc0xheW91dFNpemVDaGFuZ2VkKCkpIHsKLSAgICAgICAgcmVj
dXJzaXZlVXBkYXRlU2NhbGVkRm9udCh0aGlzKTsKLSAgICAgICAgcmVidWlsZExheW91dEF0dHJp
YnV0ZXModHJ1ZSk7Ci0gICAgICAgIHVwZGF0ZUNhY2hlZEJvdW5kYXJpZXNJblBhcmVudHMgPSB0
cnVlOworICAgIGlmICghZXZlckhhZExheW91dCgpKSB7CisgICAgICAgIC8vIFdoZW4gbGF5aW5n
IG91dCBpbml0aWFsbHksIGNvbGxlY3QgYWxsIGxheW91dCBhdHRyaWJ1dGVzLCBidWlsZCB0aGUg
Y2hhcmFjdGVyIGRhdGEgbWFwLAorICAgICAgICAvLyBhbmQgcHJvcG9nYXRlIHJlc3VsdGluZyBT
VkdMYXlvdXRBdHRyaWJ1dGVzIHRvIGFsbCBSZW5kZXJTVkdJbmxpbmVUZXh0IGNoaWxkcmVuIGlu
IHRoZSBzdWJ0cmVlLgorICAgICAgICBBU1NFUlQobV9sYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHko
KSk7CisgICAgICAgIGNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKHRoaXMsIG1fbGF5b3V0QXR0cmli
dXRlcyk7CisgICAgICAgIHVwZGF0ZUZvbnRJbkFsbERlc2NlbmRhbnRzKHRoaXMpOworICAgICAg
ICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0Zvcldob2xl
VHJlZSh0aGlzKTsKKworICAgICAgICBtX25lZWRzUmVvcmRlcmluZyA9IHRydWU7CiAgICAgICAg
IG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0ZSA9IGZhbHNlOwotICAgIH0KKyAgICAgICAgbV9uZWVk
c1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlID0gZmFsc2U7CisgICAgICAgIHVwZGF0ZUNhY2hlZEJv
dW5kYXJpZXNJblBhcmVudHMgPSB0cnVlOworICAgIH0gZWxzZSBpZiAobV9uZWVkc1Bvc2l0aW9u
aW5nVmFsdWVzVXBkYXRlKSB7CisgICAgICAgIC8vIFdoZW4gdGhlIHgveS9keC9keS9yb3RhdGUg
bGlzdHMgY2hhbmdlLCByZWNvbXB1dGUgdGhlIGxheW91dCBhdHRyaWJ1dGVzLCBhbmQgZXZlbnR1
YWxseQorICAgICAgICAvLyB1cGRhdGUgdGhlIG9uLXNjcmVlbiBmb250IG9iamVjdHMgYXMgd2Vs
bCBpbiBhbGwgZGVzY2VuZGFudHMuCisgICAgICAgIGlmIChtX25lZWRzVGV4dE1ldHJpY3NVcGRh
dGUpIHsKKyAgICAgICAgICAgIHVwZGF0ZUZvbnRJbkFsbERlc2NlbmRhbnRzKHRoaXMpOworICAg
ICAgICAgICAgbV9uZWVkc1RleHRNZXRyaWNzVXBkYXRlID0gZmFsc2U7CisgICAgICAgIH0KIAot
ICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpIHsKLSAgICAgICAgLy8gUGVy
Zm9ybSBTVkcgdGV4dCBsYXlvdXQgcGhhc2Ugb25lIChzZWUgU1ZHVGV4dExheW91dEF0dHJpYnV0
ZXNCdWlsZGVyIGZvciBkZXRhaWxzKS4KICAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRl
ci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUodGhpcyk7CiAgICAgICAgIG1fbmVl
ZHNSZW9yZGVyaW5nID0gdHJ1ZTsKICAgICAgICAgbV9uZWVkc1Bvc2l0aW9uaW5nVmFsdWVzVXBk
YXRlID0gZmFsc2U7CiAgICAgICAgIHVwZGF0ZUNhY2hlZEJvdW5kYXJpZXNJblBhcmVudHMgPSB0
cnVlOworICAgIH0gZWxzZSBpZiAobV9uZWVkc1RleHRNZXRyaWNzVXBkYXRlIHx8IFNWR1JlbmRl
clN1cHBvcnQ6OmZpbmRUcmVlUm9vdE9iamVjdCh0aGlzKS0+aXNMYXlvdXRTaXplQ2hhbmdlZCgp
KSB7CisgICAgICAgIC8vIElmIHRoZSByb290IGxheW91dCBzaXplIGNoYW5nZWQgKGVnLiB3aW5k
b3cgc2l6ZSBjaGFuZ2VzKSBvciBvciB0aGUgdHJhbnNmb3JtIHRvIHRoZSByb290CisgICAgICAg
IC8vIGNvbnRleHQgaGFzIGNoYW5nZWQgdGhlbiByZWNvbXB1dGUgdGhlIG9uLXNjcmVlbiBmb250
IHNpemUuCisgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gdGhpczsgZGVz
Y2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHRoaXMpKSB7
CisgICAgICAgICAgICBpZiAoIWRlc2NlbmRhbnQtPmlzU1ZHSW5saW5lVGV4dCgpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4
dCA9IHRvUmVuZGVyU1ZHSW5saW5lVGV4dChkZXNjZW5kYW50KTsKKyAgICAgICAgICAgIHRleHQt
PnVwZGF0ZVNjYWxlZEZvbnQoKTsKKyAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxk
ZXIucmVidWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIodGV4dCk7CisgICAgICAgIH0KKworICAg
ICAgICBBU1NFUlQoIW1fbmVlZHNSZW9yZGVyaW5nKTsKKyAgICAgICAgQVNTRVJUKCFtX25lZWRz
UG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpOworICAgICAgICBtX25lZWRzVGV4dE1ldHJpY3NVcGRh
dGUgPSBmYWxzZTsKKyAgICAgICAgdXBkYXRlQ2FjaGVkQm91bmRhcmllc0luUGFyZW50cyA9IHRy
dWU7CiAgICAgfQogCisgICAgY2hlY2tMYXlvdXRBdHRyaWJ1dGVzQ29uc2lzdGVuY3kodGhpcywg
bV9sYXlvdXRBdHRyaWJ1dGVzKTsKKwogICAgIC8vIFJlZHVjZWQgdmVyc2lvbiBvZiBSZW5kZXJC
bG9jazo6bGF5b3V0QmxvY2soKSwgd2hpY2ggb25seSB0YWtlcyBjYXJlIG9mIFNWRyB0ZXh0Lgog
ICAgIC8vIEFsbCBpZiBicmFuY2hlcyB0aGF0IGNvdWxkIGNhdXNlIGVhcmx5IGV4aXQgaW4gUmVu
ZGVyQmxvY2tzIGxheW91dEJsb2NrKCkgbWV0aG9kIGFyZSB0dXJuZWQgaW50byBhc3NlcnRpb25z
LgogICAgIEFTU0VSVCghaXNJbmxpbmUoKSk7CkBAIC0zNjQsNyArNTI1LDIxIEBAIEZsb2F0UmVj
dCBSZW5kZXJTVkdUZXh0OjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0CiB2
b2lkIFJlbmRlclNWR1RleHQ6OmFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9i
amVjdCogYmVmb3JlQ2hpbGQpCiB7CiAgICAgUmVuZGVyU1ZHQmxvY2s6OmFkZENoaWxkKGNoaWxk
LCBiZWZvcmVDaGlsZCk7Ci0gICAgbGF5b3V0QXR0cmlidXRlc0NoYW5nZWQoY2hpbGQpOworICAg
IHN1YnRyZWVDaGlsZFdhc0FkZGVkKGNoaWxkKTsKK30KKwordm9pZCBSZW5kZXJTVkdUZXh0Ojpy
ZW1vdmVDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKQoreworICAgIGlmICghY2hpbGQtPmlzU1ZH
SW5saW5lVGV4dCgpKSB7CisgICAgICAgIFJlbmRlclNWR0Jsb2NrOjpyZW1vdmVDaGlsZChjaGls
ZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZW5kZXJTVkdJbmxpbmVUZXh0KiB0
ZXh0ID0gdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxkKTsKKyAgICBWZWN0b3I8U1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXMqLCAyPiBhZmZlY3RlZEF0dHJpYnV0ZXM7CisgICAgc3VidHJlZUNoaWxk
V2lsbEJlUmVtb3ZlZCh0ZXh0LCBhZmZlY3RlZEF0dHJpYnV0ZXMpOworICAgIFJlbmRlclNWR0Js
b2NrOjpyZW1vdmVDaGlsZChjaGlsZCk7CisgICAgc3VidHJlZUNoaWxkV2FzUmVtb3ZlZChhZmZl
Y3RlZEF0dHJpYnV0ZXMpOwogfQogCiAvLyBGaXggZm9yIDxyZGFyOi8vcHJvYmxlbS84MDQ4ODc1
Pi4gV2Ugc2hvdWxkIG5vdCByZW5kZXIgOmZpcnN0LWxpbmUgQ1NTIFN0eWxlCkBAIC0zODAsNjEg
KzU1NSw2IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6dXBkYXRlRmlyc3RMZXR0ZXIoKQogewogfQog
Ci1zdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXMoUmVu
ZGVyT2JqZWN0KiBzdGFydCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGF0dHJp
YnV0ZXMpCi17Ci0gICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gc3RhcnQtPmZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYg
KGNoaWxkLT5pc1NWR0lubGluZVRleHQoKSkgewotICAgICAgICAgICAgYXR0cmlidXRlcy5hcHBl
bmQodG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxkKS0+bGF5b3V0QXR0cmlidXRlcygpKTsKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVjdXJzaXZlQ29sbGVj
dExheW91dEF0dHJpYnV0ZXMoY2hpbGQsIGF0dHJpYnV0ZXMpOwotICAgIH0KLX0KLQotdm9pZCBS
ZW5kZXJTVkdUZXh0OjpyZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhib29sIHBlcmZvcm1GdWxsUmVi
dWlsZCkKLXsKLSAgICBpZiAocGVyZm9ybUZ1bGxSZWJ1aWxkKQotICAgICAgICBtX2xheW91dEF0
dHJpYnV0ZXMuY2xlYXIoKTsKLQotICAgIGlmIChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKHRoaXMsIG1fbGF5
b3V0QXR0cmlidXRlcyk7Ci0gICAgICAgIGlmIChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgp
IHx8ICFwZXJmb3JtRnVsbFJlYnVpbGQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
bV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmljc0Zvcldob2xlVHJlZSh0aGlz
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0
cmlidXRlcyo+IGFmZmVjdGVkQXR0cmlidXRlczsKLSAgICByZWJ1aWxkTGF5b3V0QXR0cmlidXRl
cyhhZmZlY3RlZEF0dHJpYnV0ZXMpOwotfQotCi12b2lkIFJlbmRlclNWR1RleHQ6OnJlYnVpbGRM
YXlvdXRBdHRyaWJ1dGVzKFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBhZmZlY3Rl
ZEF0dHJpYnV0ZXMpCi17Ci0gICAgLy8gRGV0ZWN0IGNoYW5nZXMgaW4gbGF5b3V0IGF0dHJpYnV0
ZXMgYW5kIG9ubHkgbWVhc3VyZSB0aG9zZSB0ZXh0IHBhcnRzIHRoYXQgaGF2ZSBjaGFuZ2VkIQot
ICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IG5ld0xheW91dEF0dHJpYnV0ZXM7
Ci0gICAgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXModGhpcywgbmV3TGF5b3V0QXR0
cmlidXRlcyk7Ci0gICAgaWYgKG5ld0xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVhcigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgLy8gQ29tcGFyZSBtX2xheW91dEF0dHJpYnV0ZXMgd2l0aCBuZXdMYXlvdXRBdHRyaWJ1
dGVzIHRvIGZpZ3VyZSBvdXQgd2hpY2ggYXR0cmlidXRlcyBnb3QgYWRkZWQvcmVtb3ZlZC4KLSAg
ICBzaXplX3Qgc2l6ZSA9IG5ld0xheW91dEF0dHJpYnV0ZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFNWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzKiBhdHRyaWJ1dGVzID0gbmV3TGF5b3V0QXR0cmlidXRlc1tpXTsKLSAgICAgICAgaWYgKG1f
bGF5b3V0QXR0cmlidXRlcy5maW5kKGF0dHJpYnV0ZXMpID09IG5vdEZvdW5kKQotICAgICAgICAg
ICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmljc0ZvclRleHRSZW5kZXJl
cihhdHRyaWJ1dGVzLT5jb250ZXh0KCkpOwotICAgIH0KLQotICAgIHNpemUgPSBhZmZlY3RlZEF0
dHJpYnV0ZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQot
ICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVpbGRNZXRyaWNzRm9yVGV4dFJl
bmRlcmVyKGFmZmVjdGVkQXR0cmlidXRlc1tpXS0+Y29udGV4dCgpKTsKLQotICAgIG1fbGF5b3V0
QXR0cmlidXRlcyA9IG5ld0xheW91dEF0dHJpYnV0ZXM7Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5o
CmluZGV4IDU2NjViNDQ0MmU0YzA3MTZlZTk1N2Y2ZDQwMzI3Njk4OGI2N2Q5ZmEuLjc0MWM4ZmQ1
Mzg3MmJlMDEwZTIxMmVmNTYzODU4MTFiYzA0ZGU0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIFJlbmRl
clNWR0lubGluZVRleHQ7CiBjbGFzcyBSZW5kZXJTVkdUZXh0IDogcHVibGljIFJlbmRlclNWR0Js
b2NrIHsKIHB1YmxpYzoKICAgICBSZW5kZXJTVkdUZXh0KFNWR1RleHRFbGVtZW50Kik7CisgICAg
dmlydHVhbCB+UmVuZGVyU1ZHVGV4dCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzQ2hpbGRBbGxv
d2VkKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKikgY29uc3Q7CiAKQEAgLTQ4LDE4ICs0OSwx
NCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFJlbmRlclNWR1RleHQqIGxvY2F0ZVJlbmRl
clNWR1RleHRBbmNlc3Rvcihjb25zdCBSZW5kZXJPYmplY3QqKTsKIAogICAgIGJvb2wgbmVlZHNS
ZW9yZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1Jlb3JkZXJpbmc7IH0KLQotICAgIC8v
IENhbGwgdGhpcyBtZXRob2Qgd2hlbiBlaXRoZXIgdGhlIGNoaWxkcmVuIG9mIGEgRE9NIHRleHQg
ZWxlbWVudCBoYXZlIGNoYW5nZWQsIG9yIHRoZSBsZW5ndGggb2YKLSAgICAvLyB0aGUgdGV4dCBp
biBhbnkgY2hpbGQgZWxlbWVudCBoYXMgY2hhbmdlZC4KLSAgICB2b2lkIGludmFsaWRhdGVUZXh0
UG9zaXRpb25pbmdFbGVtZW50cygpOwotCi0gICAgdm9pZCBsYXlvdXRBdHRyaWJ1dGVzQ2hhbmdl
ZChSZW5kZXJPYmplY3QqKTsKLSAgICB2b2lkIGxheW91dEF0dHJpYnV0ZXNXaWxsQmVEZXN0cm95
ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCosIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+
JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOwotICAgIHZvaWQgcmVidWlsZExheW91dEF0dHJpYnV0ZXMo
Ym9vbCBwZXJmb3JtRnVsbFJlYnVpbGQgPSBmYWxzZSk7Ci0gICAgdm9pZCByZWJ1aWxkTGF5b3V0
QXR0cmlidXRlcyhWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiYgYWZmZWN0ZWRBdHRy
aWJ1dGVzKTsKLQogICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBsYXlvdXRB
dHRyaWJ1dGVzKCkgeyByZXR1cm4gbV9sYXlvdXRBdHRyaWJ1dGVzOyB9CiAKKyAgICB2b2lkIHN1
YnRyZWVDaGlsZFdhc0FkZGVkKFJlbmRlck9iamVjdCopOworICAgIHZvaWQgc3VidHJlZUNoaWxk
V2lsbEJlUmVtb3ZlZChSZW5kZXJTVkdJbmxpbmVUZXh0KiwgVmVjdG9yPFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzKiwgMj4mIGFmZmVjdGVkQXR0cmlidXRlcyk7CisgICAgdm9pZCBzdWJ0cmVlQ2hp
bGRXYXNSZW1vdmVkKGNvbnN0IFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyosIDI+JiBh
ZmZlY3RlZEF0dHJpYnV0ZXMpOworICAgIHZvaWQgc3VidHJlZVN0eWxlRGlkQ2hhbmdlKFJlbmRl
clNWR0lubGluZVRleHQqKTsKKyAgICB2b2lkIHN1YnRyZWVUZXh0RGlkQ2hhbmdlKFJlbmRlclNW
R0lubGluZVRleHQqKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHVGV4dCI7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNTVkdUZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtODAsNiArNzcsOCBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBm
aXhlZCwgVHJhbnNmb3JtU3RhdGUmLCBBcHBseUNvbnRhaW5lckZsaXBPck5vdCA9IEFwcGx5Q29u
dGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9
IDApOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBv
YmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIGZyYW1lUmVjdCgpOyB9CiAgICAgdmly
dHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCmluZGV4IGIyMDZjYjZj
MmNkYjEwYmI2OTllMDQzMGIzMWU3YmJmMzA1NDhjOGEuLmRkYzdjOTE1NTc5NDg4ZDAyMDUwYTUx
NGZhYmI2NzExYzM4YTI5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcApAQCAtMTk3LDggKzE5NywxMCBAQCB2b2lkIFNWR1JlbmRl
clN1cHBvcnQ6OmxheW91dENoaWxkcmVuKFJlbmRlck9iamVjdCogc3RhcnQsIGJvb2wgc2VsZk5l
ZWRzTGF5b3V0KQogICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBsYXlvdXQgc2l6ZSBj
aGFuZ2VkIGFuZCB3aGVuIHVzaW5nIHJlbGF0aXZlIHZhbHVlcyB0ZWxsIHRoZSBSZW5kZXJTVkdT
aGFwZSB0byB1cGRhdGUgaXRzIHNoYXBlIG9iamVjdAogICAgICAgICAgICAgICAgICAgICBpZiAo
Y2hpbGQtPmlzU1ZHU2hhcGUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRvUmVuZGVyU1ZH
U2hhcGUoY2hpbGQpLT5zZXROZWVkc1NoYXBlVXBkYXRlKCk7Ci0gICAgICAgICAgICAgICAgICAg
IGVsc2UgaWYgKGNoaWxkLT5pc1NWR1RleHQoKSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBp
ZiAoY2hpbGQtPmlzU1ZHVGV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b1JlbmRl
clNWR1RleHQoY2hpbGQpLT5zZXROZWVkc1RleHRNZXRyaWNzVXBkYXRlKCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB0b1JlbmRlclNWR1RleHQoY2hpbGQpLT5zZXROZWVkc1Bvc2l0aW9uaW5n
VmFsdWVzVXBkYXRlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
ICAgICBuZWVkc0xheW91dCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKaW5kZXggNTcxNDZj
OTBjODM4YWI2NTMzYTQzZTczODA1NmUzODJlNWU4NWM5Zi4uMzRlOTNhMDJlZjc0MzJlM2MyNmVm
MjM2MGQxY2YzZmQ0MzdlNDE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSb290SW5saW5lQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCkBAIC03Myw3ICs3Myw2IEBAIHZvaWQgU1ZHUm9vdElu
bGluZUJveDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkKICAgICBSZW5k
ZXJTVkdUZXh0KiB0ZXh0Um9vdCA9IHRvUmVuZGVyU1ZHVGV4dChibG9jaygpKTsKICAgICBBU1NF
UlQodGV4dFJvb3QpOwogCi0gICAgdGV4dFJvb3QtPnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKCk7
CiAgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGxheW91dEF0dHJpYnV0ZXMg
PSB0ZXh0Um9vdC0+bGF5b3V0QXR0cmlidXRlcygpOwogICAgIGlmIChsYXlvdXRBdHRyaWJ1dGVz
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3Bw
CmluZGV4IDAyYTIxMjNlYjY2N2VjY2Y3M2YwODBmNmJiNGU2ZmVjYTVkMmYzZTYuLmRiZTNiYzE5
MTkwNGQ3NmEwODg3NzkxYTcyNGUyMmFlODlmYjA4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlci5jcHAKQEAgLTI2LDkgKzI2LDYgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCiAj
aW5jbHVkZSAiU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIgogCi0vLyBTZXQgdG8gYSB2YWx1
ZSA+IDAgdG8gZHVtcCB0aGUgdGV4dCBsYXlvdXQgYXR0cmlidXRlcwotI2RlZmluZSBEVU1QX1RF
WFRfTEFZT1VUX0FUVFJJQlVURVMgMAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyKCkK
QEAgLTQ0LDQxICs0MSwyNyBAQCB2b2lkIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6
YnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKFJlbmRlcgogICAgIGlmICghdGV4
dFJvb3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghYnVpbGRMYXlvdXRBdHRyaWJ1dGVz
SWZOZWVkZWQodGV4dFJvb3QpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX21ldHJpY3NCdWls
ZGVyLmJ1aWxkTWV0cmljc0FuZExheW91dEF0dHJpYnV0ZXModGV4dFJvb3QsIHRleHQsIG1fY2hh
cmFjdGVyRGF0YU1hcCk7Ci19CisgICAgaWYgKG1fdGV4dFBvc2l0aW9ucy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgbV9jaGFyYWN0ZXJEYXRhTWFwLmNsZWFyKCk7CiAKLXZvaWQgU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUoUmVu
ZGVyU1ZHVGV4dCogdGV4dFJvb3QpCi17Ci0gICAgQVNTRVJUKHRleHRSb290KTsKKyAgICAgICAg
bV90ZXh0TGVuZ3RoID0gMDsKKyAgICAgICAgY29uc3QgVUNoYXIqIGxhc3RDaGFyYWN0ZXIgPSAw
OworICAgICAgICBjb2xsZWN0VGV4dFBvc2l0aW9uaW5nRWxlbWVudHModGV4dFJvb3QsIGxhc3RD
aGFyYWN0ZXIpOwogCi0gICAgaWYgKCFidWlsZExheW91dEF0dHJpYnV0ZXNJZk5lZWRlZCh0ZXh0
Um9vdCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCFtX3RleHRMZW5ndGgpCisgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICBtX21ldHJpY3NCdWlsZGVyLmJ1aWxkTWV0cmljc0FuZExh
eW91dEF0dHJpYnV0ZXModGV4dFJvb3QsIDAsIG1fY2hhcmFjdGVyRGF0YU1hcCk7Ci19CisgICAg
ICAgIGJ1aWxkQ2hhcmFjdGVyRGF0YU1hcCh0ZXh0Um9vdCk7CisgICAgfQogCi12b2lkIFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6cmVidWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIo
UmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCkKLXsKLSAgICBBU1NFUlQodGV4dCk7Ci0gICAgbV9t
ZXRyaWNzQnVpbGRlci5tZWFzdXJlVGV4dFJlbmRlcmVyKHRleHQpOworICAgIG1fbWV0cmljc0J1
aWxkZXIuYnVpbGRNZXRyaWNzQW5kTGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9vdCwgdGV4dCwgbV9j
aGFyYWN0ZXJEYXRhTWFwKTsKIH0KIAotdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxk
ZXI6OnJlYnVpbGRNZXRyaWNzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqIHRleHRSb290KQor
Ym9vbCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRl
c0Zvcldob2xlVHJlZShSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKIHsKICAgICBBU1NFUlQodGV4
dFJvb3QpOwotICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBsYXlvdXRBdHRy
aWJ1dGVzID0gdGV4dFJvb3QtPmxheW91dEF0dHJpYnV0ZXMoKTsKIAotICAgIHNpemVfdCBsYXlv
dXRBdHRyaWJ1dGVzU2l6ZSA9IGxheW91dEF0dHJpYnV0ZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGF5b3V0QXR0cmlidXRlc1NpemU7ICsraSkKLSAgICAgICAgbV9tZXRy
aWNzQnVpbGRlci5tZWFzdXJlVGV4dFJlbmRlcmVyKGxheW91dEF0dHJpYnV0ZXNbaV0tPmNvbnRl
eHQoKSk7Ci19Ci0KLWJvb2wgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExh
eW91dEF0dHJpYnV0ZXNJZk5lZWRlZChSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKLXsKLSAgICBB
U1NFUlQodGV4dFJvb3QpOworICAgIG1fY2hhcmFjdGVyRGF0YU1hcC5jbGVhcigpOwogCiAgICAg
aWYgKG1fdGV4dFBvc2l0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV90ZXh0TGVuZ3RoID0g
MDsKQEAgLTg2LDE0ICs2OSwyMCBAQCBib29sIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRl
cjo6YnVpbGRMYXlvdXRBdHRyaWJ1dGVzSWZOZWVkZWQoUmVuZGVyU1ZHVGV4dAogICAgICAgICBj
b2xsZWN0VGV4dFBvc2l0aW9uaW5nRWxlbWVudHModGV4dFJvb3QsIGxhc3RDaGFyYWN0ZXIpOwog
ICAgIH0KIAotICAgIG1fY2hhcmFjdGVyRGF0YU1hcC5jbGVhcigpOwogICAgIGlmICghbV90ZXh0
TGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBidWlsZExheW91dEF0dHJpYnV0
ZXModGV4dFJvb3QpOworICAgIGJ1aWxkQ2hhcmFjdGVyRGF0YU1hcCh0ZXh0Um9vdCk7CisgICAg
bV9tZXRyaWNzQnVpbGRlci5idWlsZE1ldHJpY3NBbmRMYXlvdXRBdHRyaWJ1dGVzKHRleHRSb290
LCAwLCBtX2NoYXJhY3RlckRhdGFNYXApOwogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFNW
R1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6cmVidWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVy
ZXIoUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCkKK3sKKyAgICBBU1NFUlQodGV4dCk7CisgICAg
bV9tZXRyaWNzQnVpbGRlci5tZWFzdXJlVGV4dFJlbmRlcmVyKHRleHQpOworfQorCiBzdGF0aWMg
aW5saW5lIHZvaWQgcHJvY2Vzc1JlbmRlclNWR0lubGluZVRleHQoUmVuZGVyU1ZHSW5saW5lVGV4
dCogdGV4dCwgdW5zaWduZWQmIGF0Q2hhcmFjdGVyLCBjb25zdCBVQ2hhciomIGxhc3RDaGFyYWN0
ZXIpCiB7CiAgICAgaWYgKHRleHQtPnN0eWxlKCktPndoaXRlU3BhY2UoKSA9PSBQUkUpIHsKQEAg
LTE0MywxMCArMTMyLDggQEAgdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmNv
bGxlY3RUZXh0UG9zaXRpb25pbmdFbGVtZW50cyhSZW5kZXJPYmplY3QKICAgICB9CiB9CiAKLXZv
aWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXMo
UmVuZGVyU1ZHVGV4dCogdGV4dFJvb3QpCit2b2lkIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlcjo6YnVpbGRDaGFyYWN0ZXJEYXRhTWFwKFJlbmRlclNWR1RleHQqIHRleHRSb290KQogewot
ICAgIEFTU0VSVChtX3RleHRMZW5ndGgpOwotCiAgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dCogb3V0ZXJtb3N0VGV4dEVsZW1lbnQgPSBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjplbGVt
ZW50RnJvbVJlbmRlcmVyKHRleHRSb290KTsKICAgICBBU1NFUlQob3V0ZXJtb3N0VGV4dEVsZW1l
bnQpOwogCkBAIC0xNzMsMTEgKzE2MCw2IEBAIHZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNC
dWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXMoUmVuZGVyU1ZHVGV4dCogdGV4dFJvCiAgICAg
dW5zaWduZWQgc2l6ZSA9IG1fdGV4dFBvc2l0aW9ucy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgZmlsbENoYXJhY3RlckRhdGFNYXAobV90
ZXh0UG9zaXRpb25zW2ldKTsKLQotI2lmIERVTVBfVEVYVF9MQVlPVVRfQVRUUklCVVRFUyA+IDAK
LSAgICBmcHJpbnRmKHN0ZGVyciwgIlxuRHVtcGluZyBBTEwgbGF5b3V0IGF0dHJpYnV0ZXMgZm9y
IFJlbmRlclNWR1RleHQsIHJlbmRlcmVyPSVwLCBub2RlPSVwIChtX3RleHRMZW5ndGg6ICVpKVxu
IiwgdGV4dFJvb3QsIHRleHRSb290LT5ub2RlKCksIG1fdGV4dExlbmd0aCk7Ci0gICAgbV9jaGFy
YWN0ZXJEYXRhTWFwLmR1bXAoKTsKLSNlbmRpZgogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBk
YXRlQ2hhcmFjdGVyRGF0YSh1bnNpZ25lZCBpLCBmbG9hdCYgbGFzdFJvdGF0aW9uLCBTVkdDaGFy
YWN0ZXJEYXRhJiBkYXRhLCBjb25zdCBTVkdMZW5ndGhDb250ZXh0JiBsZW5ndGhDb250ZXh0LCBj
b25zdCBTVkdMZW5ndGhMaXN0KiB4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdCogeUxpc3QsIGNv
bnN0IFNWR0xlbmd0aExpc3QqIGR4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdCogZHlMaXN0LCBj
b25zdCBTVkdOdW1iZXJMaXN0KiByb3RhdGVMaXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmgK
aW5kZXggNDVmYWQyNDAwNGNhOTZmMjRkNDE3NDJhNDAxNmI0ZTNmM2EzODZlNy4uYzFlZDM0NWNm
NDM2Njg0NjMwNzE2MjgwNDFhNjY3ZTVlOTc3NmMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRl
ci5oCkBAIC00MywxNCArNDMsMTQgQEAgY2xhc3MgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWls
ZGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIpOwogcHVibGljOgogICAgIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcigpOwot
ICAgIHZvaWQgYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQq
KTsKKyAgICBib29sIGJ1aWxkTGF5b3V0QXR0cmlidXRlc0Zvcldob2xlVHJlZShSZW5kZXJTVkdU
ZXh0Kik7CiAgICAgdm9pZCBidWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVyZXIoUmVu
ZGVyU1ZHSW5saW5lVGV4dCopOwogCi0gICAgdm9pZCByZWJ1aWxkTWV0cmljc0Zvcldob2xlVHJl
ZShSZW5kZXJTVkdUZXh0Kik7CiAgICAgdm9pZCByZWJ1aWxkTWV0cmljc0ZvclRleHRSZW5kZXJl
cihSZW5kZXJTVkdJbmxpbmVUZXh0Kik7CiAKICAgICAvLyBJbnZva2VkIHdoZW5ldmVyIHRoZSB1
bmRlcmx5aW5nIERPTSB0cmVlIGNoYW5nZXMsIHNvIHRoYXQgbV90ZXh0UG9zaXRpb25zIGlzIHJl
YnVpbGQuCiAgICAgdm9pZCBjbGVhclRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCkgeyBtX3RleHRQ
b3NpdGlvbnMuY2xlYXIoKTsgfQorICAgIHVuc2lnbmVkIG51bWJlck9mVGV4dFBvc2l0aW9uaW5n
RWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3RleHRQb3NpdGlvbnMuc2l6ZSgpOyB9CiAKIHBy
aXZhdGU6CiAgICAgc3RydWN0IFRleHRQb3NpdGlvbiB7CkBAIC02Niw5ICs2Niw4IEBAIHByaXZh
dGU6CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aDsKICAgICB9OwogCi0gICAgYm9vbCBidWlsZExh
eW91dEF0dHJpYnV0ZXNJZk5lZWRlZChSZW5kZXJTVkdUZXh0Kik7CisgICAgdm9pZCBidWlsZENo
YXJhY3RlckRhdGFNYXAoUmVuZGVyU1ZHVGV4dCopOwogICAgIHZvaWQgY29sbGVjdFRleHRQb3Np
dGlvbmluZ0VsZW1lbnRzKFJlbmRlck9iamVjdCosIGNvbnN0IFVDaGFyKiYgbGFzdENoYXJhY3Rl
cik7Ci0gICAgdm9pZCBidWlsZExheW91dEF0dHJpYnV0ZXMoUmVuZGVyU1ZHVGV4dCopOwogICAg
IHZvaWQgZmlsbENoYXJhY3RlckRhdGFNYXAoY29uc3QgVGV4dFBvc2l0aW9uJik7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBjOGJhNTMzZTBlOTkwZmMxODlm
NGEyMmEzM2QwOWNmYjZhYWQ2MmFkLi40MGQxZWY2MzMyZjUxOTNkODBjNTdkNWNhZTY5MmI3NTI1
NGI3ZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTIzOCwxOSArMjM4LDYg
QEAgYm9vbCBTVkdBRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
UmVuZGVyaW5nQ29udGV4dCYgY2hpbGRDb24KICAgICByZXR1cm4gU1ZHRWxlbWVudDo6Y2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZENvbnRleHQpOwogfQogCi12b2lkIFNWR0FFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5n
ZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpCi17Ci0gICAgU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIs
IGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7Ci0KLSAgICBpZiAo
Y2hhbmdlZEJ5UGFyc2VyIHx8ICFyZW5kZXJlcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAv
LyBJbnZhbGlkYXRlIHRoZSBUZXh0UG9zaXRpb24gY2FjaGUgaW4gU1ZHVGV4dExheW91dEF0dHJp
YnV0ZXNCdWlsZGVyIGFzIGl0IG1heSBub3cgcG9pbnQKLSAgICAvLyB0byBuby1sb25nZXIgZXhp
c3RpbmcgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMgYW5kIHRodXMgbmVlZHMgdG8gYmUgcmVi
dWlsdC4KLSAgICBpZiAoUmVuZGVyU1ZHVGV4dCogdGV4dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4
dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKHJlbmRlcmVyKCkpKQotICAgICAgICB0ZXh0
UmVuZGVyZXItPmludmFsaWRhdGVUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaAppbmRleCA3MmFmZGVjMTI0YjVhM2EyZTk5ZWM2NTRmY2NlZjNhMDJiNTJmOTMy
Li5lM2I4ZjI4MDI3YjM0YWI2MGViY2Q1Mjg1ZmM0M2Y2ZDYzZDE1YTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaApAQCAtNDAsOSArNDAsNiBAQCBjbGFzcyBTVkdBRWxlbWVudCA6IHB1Ymxp
YyBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudCwKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdBRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwogCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29s
IGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBh
ZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKSBPVkVSUklERTsKLQogcHJp
dmF0ZToKICAgICBTVkdBRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBj
Yjg0ZTI5YjcyMmY2MzE0OWZkZTFlYmZlZWUwYjY3NWEzMmZlZjlkLi5kZDdlNDk2YTU4YjNlMmE5
MmYwODBkZTA1ZmNiYWVhMjNkYjA1ZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMzIxLDE5ICszMjEsNiBAQCBTVkdUZXh0Q29udGVudEVs
ZW1lbnQqIFNWR1RleHRDb250ZW50RWxlbWVudDo6ZWxlbWVudEZyb21SZW5kZXJlcihSZW5kZXJP
YmplY3QqCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1RleHRDb250ZW50RWxlbWVudCo+KG5v
ZGUpOwogfQogCi12b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJv
b2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVyQ2hhbmdl
LCBpbnQgY2hpbGRDb3VudERlbHRhKQotewotICAgIFNWR1N0eWxlZEVsZW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxk
Q291bnREZWx0YSk7Ci0KLSAgICBpZiAoY2hhbmdlZEJ5UGFyc2VyIHx8ICFyZW5kZXJlcigpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBJbnZhbGlkYXRlIHRoZSBUZXh0UG9zaXRpb24gY2Fj
aGUgaW4gU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyIGFzIGl0IG1heSBub3cgcG9pbnQK
LSAgICAvLyB0byBuby1sb25nZXIgZXhpc3RpbmcgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMg
YW5kIHRodXMgbmVlZHMgdG8gYmUgcmVidWlsdC4KLSAgICBpZiAoUmVuZGVyU1ZHVGV4dCogdGV4
dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKHJl
bmRlcmVyKCkpKQotICAgICAgICB0ZXh0UmVuZGVyZXItPmludmFsaWRhdGVUZXh0UG9zaXRpb25p
bmdFbGVtZW50cygpOwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCmluZGV4IDA5NzVhYmMzNzJmMGRlY2Q2
OWFlN2M2OTdhZDQzOTBjZjY5NDAyNDMuLjE5ZTAzMmI5ZDg5MTg1MzdlMmJiMmI1MjZkMDZjNDI5
NjE4NTlmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgK
QEAgLTEwOSw3ICsxMDksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiAgICAgdmlydHVhbCBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9
IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRDb250ZW50KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDBkNjhjM2VhNjAyMjQ1YTAyODEyNTMyNzk5YjYxYmIzYjM0MjYyMzcu
LmJkYzJmZGUzOWJmZWM3NWVhYWQ3MGRjNjMzMzc0Y2JjOTgwMzI4YjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAxMi0wNS0xNSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMDUwNTcpOiBJbmZpbml0ZSBsb29wIGluc2lk
ZSBTVkdUZXh0TGF5b3V0RW5naW5lOjpjdXJyZW50TG9naWNhbENoYXJhY3Rlck1ldHJpY3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNDA1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRocmVlIG5l
dyB0ZXN0Y2FzZXMgY292ZXJpbmcgdGhlIHByb2JsZW0uCisKKyAgICAgICAgKiBzdmcvdGV4dC9h
ZGQtdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2
Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbDogQWRkZWQuCisgICAgICAgICogc3Zn
L3RleHQvaGlnaGNoYXJ0cy1hc3NlcnRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvdGV4dC9oaWdoY2hhcnRzLWFzc2VydGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvdGV4dC9tb2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbDogQWRkZWQu
CisKIDIwMTItMDUtMTUgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVmYWN0b3IgU25pcHBldHNNb2RlbDogZXh0cmFjdCBT
bmlwcGV0U3RvcmFnZSwgbWFrZSBTbmlwcGV0U2NyaXB0TWFwcGluZyBkZWxlZ2F0ZSBjYWxscyB0
byBTY3JpcHRTbmlwcGV0TW9kZWwgYW5kIHByb3ZpZGUgcHVibGljIGludGVyZmFjZSBvbiBTY3Jp
cHRTbmlwcGV0TW9kZWwgaW4gdGVybXMgb2YgdWlTb3VyY2VDb2RlcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQxZjg4OWJjOWI2ZjJkYmM4MDAyMWRkZDU1YzRiOWYwZGI0MmZmMDkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24t
YnVnLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c3ZnPgorPHRleHQgaWQ9InRleHQiIHk9IjUwIj48dHNwYW4+U2hvdWxkIGJl
IG9uPC90c3Bhbj48dHNwYW4gZHk9IjMwIj5kaWZmZXJlbnQgbGluZXM8L3RzcGFuPjwvdGV4dD4K
Kzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3Rl
eHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRk
LXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzM2M1N2ZmYWFkMmI4MzVkMTEx
YWJhMWMwMTRiYzc5YTBhYTZjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
dGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgorPHN2Zz4KKzx0aXRs
ZT5UaGlzIHRlc3QgdXNlZCB0byBiZSBsYWlkIG91dCBvbiBhIHNpbmdsZSBsaW5lLCBpbnN0ZWFk
IG9mIG11bHRpcGxlIG9uZXM8L3RpdGxlPgorPHRleHQgaWQ9InRleHQiIHk9IjUwIj48L3RleHQ+
CisKKzxzY3JpcHQ+Cit2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0
ZXh0IilbMF07CisKK2Z1bmN0aW9uIGFkZFNwYW5zKCkgeworICAgIHZhciB0c3BhbjEgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInRzcGFu
Iik7CisgICAgdHNwYW4xLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJTaG91
bGQgYmUgb24iKSk7CisKKyAgICB2YXIgdHNwYW4yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5T
KCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJ0c3BhbiIpOworICAgIHRzcGFuMi5zZXRB
dHRyaWJ1dGUoImR5IiwgIjMwIik7CisgICAgdHNwYW4yLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJkaWZmZXJlbnQgbGluZXMiKSk7CisKKyAgICB0ZXh0LmFwcGVuZENoaWxk
KHRzcGFuMSk7CisgICAgdGV4dC5hcHBlbmRDaGlsZCh0c3BhbjIpOworCisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gbG9hZGVkKCkg
eworICAgIC8vIEJ1ZyBpcyBvbmx5IHRyaWdnZXIgZnJvbSBhbm90aGVyIGxvb3AuCisgICAgc2V0
VGltZW91dChhZGRTcGFucywgMCk7Cit9Cis8L3NjcmlwdD4KKzwvc3ZnPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RleHQvaGlnaGNoYXJ0cy1hc3NlcnRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvaGlnaGNoYXJ0cy1hc3NlcnRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5Y2ZjNWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEz
NGFmOTczNmRkNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9oaWdo
Y2hhcnRzLWFzc2VydGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L2hpZ2hjaGFydHMtYXNzZXJ0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9oaWdoY2hhcnRzLWFzc2VydGlvbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMzODRlNTQ3YjI2OTI2YTU3MzRiY2U5NDE4OGVmZjk1OWRiNGI3ZjIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9oaWdoY2hhcnRzLWFzc2VydGlvbi5odG1sCkBA
IC0wLDAgKzEsMTQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRoaXMgdGVzdCBwYXNz
ZXMgaWYgaXQgZG9lc24ndCBjcmFzaDwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHN2
Zz4KKyAgICA8dGV4dCB5PSI1MCI+PHRzcGFuPiA8L3RzcGFuPjxzY3JpcHQ+ZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7PC9zY3JpcHQ+PHRzcGFuPlBBU1M8L3RzcGFuPjwvdGV4dD4KKzwvc3ZnPgor
PC9ib2R5PgorPC9odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnkt
dHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9t
b2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmODg5
YmM5YjZmMmRiYzgwMDIxZGRkNTVjNGI5ZjBkYjQyZmYwOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzdmc+
Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAiPjx0c3Bhbj5TaG91bGQgYmUgb248L3RzcGFuPjx0c3Bh
biBkeT0iMzAiPmRpZmZlcmVudCBsaW5lczwvdHNwYW4+PC90ZXh0PgorPC9zdmc+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnktdHNwYW4t
cG9zaXRpb24tYnVnLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnktdHNwYW4tcG9z
aXRpb24tYnVnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVhOWQwNzVhNjk1ZmYyZmQ0ZDhlNWFmMzFmOTBm
YWViYmE1MWZiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L21vZGlm
eS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJsb2FkZWQoKSI+Cis8c3ZnPgorPHRpdGxlPlRoaXMg
dGVzdCB1c2VkIHRvIGJlIGxhaWQgb3V0IG9uIGEgc2luZ2xlIGxpbmUsIGluc3RlYWQgb2YgbXVs
dGlwbGUgb25lczwvdGl0bGU+Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAiPjwvdGV4dD4KKworPHNj
cmlwdD4KK3ZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRleHQiKVsw
XTsKKworZnVuY3Rpb24gYWRkU3BhbnMoKSB7CisgICAgdmFyIHRzcGFuMSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAidHNwYW4iKTsKKyAg
ICB0c3BhbjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlNob3VsZCBiZSBv
biIpKTsKKworICAgIHRzcGFuMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciLCAidHNwYW4iKTsKKyAgICB0c3BhbjIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImRpZmZlcmVudCBsaW5lcyIpKTsKKworICAgIHRleHQuYXBw
ZW5kQ2hpbGQodHNwYW4xKTsKKyAgICB0ZXh0LmFwcGVuZENoaWxkKHRzcGFuMik7CisKKyAgICAv
LyBCdWcgaXMgb25seSB0cmlnZ2VyIGZyb20gYW5vdGhlciBsb29wLgorICAgIHNldFRpbWVvdXQo
bW92ZVNwYW4sIDApOworfQorCitmdW5jdGlvbiBtb3ZlU3BhbigpIHsKKyAgICB0c3BhbjIuc2V0
QXR0cmlidXRlKCJkeSIsICIzMCIpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gbG9hZGVkKCkgeworICAgIC8vIEJ1ZyBpcyBv
bmx5IHRyaWdnZXIgZnJvbSBhbm90aGVyIGxvb3AuCisgICAgc2V0VGltZW91dChhZGRTcGFucywg
MCk7Cit9Cis8L3NjcmlwdD4KKzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141980</attachid>
            <date>2012-05-15 08:39:05 -0700</date>
            <delta_ts>2012-05-15 09:19:26 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-83405-20120515173935.patch</filename>
            <type>text/plain</type>
            <size>46393</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JiYzcyOTAyZjc2MzNj
OGI3OWNiZDMxZmRhMDk5M2Q3ZTFmYThlYi4uNmRkNDRkZjhiZTQzOTViZDBkM2U2MWJmYmQzMDY0
NjRkMjY5MDkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTA1LTE1ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04ocjEwNTA1Nyk6IEluZmluaXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1
cnJlbnRMb2dpY2FsQ2hhcmFjdGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEeW5hbWljYWxseSBhZGRpbmcgdHNwYW5zIGNhcnJ5aW5nIHBv
c2l0aW9uIGluZm9ybWF0aW9uIGluIHRoZSB4L3kvZHgvZHkvcm90YXRlIGxpc3RzIGlzIGJyb2tl
bi4KKyAgICAgICAgVG8gYXZvaWQgbWlzdGFrZXMgbGlrZSB0aGlzIGluIGZ1dHVyZSwgc2ltcGxp
ZnkgdGhlIGNhbGxpbmcgY29kZSBpbiBSZW5kZXJTVkdJbmxpbmVUZXh0IGFuZCBjZW50cmFsaXpl
CisgICAgICAgIHRoZSBtYW5hZ21lbnQgb2YgYWxsIGNhY2hlcyAodGV4dCBwb3NpdGlvbmluZyBl
bGVtZW50IGNhY2hlIC8gbWV0cmljcyBtYXAgLyBsYXlvdXQgYXR0cmlidXRlcykgaW4KKyAgICAg
ICAgUmVuZGVyU1ZHVGV4dC4gVGhpcyBhdm9pZHMgdGhlIGhhY2sgaW4gU1ZHUm9vdElubGluZUJv
eDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkgd2hpY2gKKyAgICAgICAg
Y2FsbGVkIHRleHRSb290LT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpLCB3aGljaCB3YXMgdXNl
ZCB0byBmaXggcHJldmlvdXMgc2VjdXJpdHkgaXNzdWVzIHdpdGggdGhpcyBjb2RlLgorICAgICAg
ICBJbnN0ZWFkIGNvcnJlY3RseSBoYW5kbGUgZGVzdHJ1Y3Rpb24gb2YgUmVuZGVyU1ZHSW5saW5l
VGV4dCBpbiBSZW5kZXJTVkdUZXh0LCBrZWVwaW5nIHRoZSBtX2xheW91dEF0dHJpYnV0ZXMKKyAg
ICAgICAgc3luY2hyb25pemVkIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHJlbmRlciB0
cmVlLiBGaXhlcyBoaWdoY2hhcnRzIHByb2JsZW1zLgorCisgICAgICAgIFRlc3RzOiBzdmcvdGV4
dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy90ZXh0L2hp
Z2hjaGFydHMtYXNzZXJ0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy90ZXh0L21vZGlmeS10
c3Bhbi1wb3NpdGlvbi1idWcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5oOgorICAgICAgICAoUmVuZGVyU1ZHQmxvY2spOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lu
bGluZTo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lOjpyZW1v
dmVDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAg
ICAgICAgKFJlbmRlclNWR0lubGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZVRleHQ6
OnNldFRleHRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmVUZXh0
OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmVUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OlJlbmRlclNWR1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6flJlbmRlclNWR1RleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29sbGVjdExheW91dEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
VGV4dDo6c3VidHJlZUNoaWxkV2FzQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZFByZXZp
b3VzQW5kTmV4dEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tMYXlvdXRBdHRy
aWJ1dGVzQ29uc2lzdGVuY3kpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6d2ls
bEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnN1YnRyZWVD
aGlsZFdpbGxCZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6c3Vi
dHJlZUNoaWxkV2FzUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojpz
dWJ0cmVlU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6
c3VidHJlZVRleHREaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlRm9udEluQWxs
RGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bGF5b3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmFkZENoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR1RleHQ6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKFJlbmRlclNWR1RleHQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdSb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVC
b3g6OmNvbXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJp
YnV0ZXNGb3JUZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dExheW91dEF0
dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1aWxkTWV0
cmljc0ZvclRleHRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TGF5b3V0QXR0
cmlidXRlc0J1aWxkZXI6OmJ1aWxkQ2hhcmFjdGVyRGF0YU1hcCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaDoKKyAgICAgICAgKFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TGF5
b3V0QXR0cmlidXRlc0J1aWxkZXI6Om51bWJlck9mVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMpOgor
ICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50
Lmg6CisgICAgICAgIChTVkdBRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50
RWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oOgorICAg
ICAgICAoU1ZHVGV4dENvbnRlbnRFbGVtZW50KToKKwogMjAxMi0wNS0xNSAgSm9jZWx5biBUdXJj
b3R0ZSAgPGpvY2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUt
Zm9yLTQwNC5odG1sIHRpbWVzIG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdCbG9jay5oCmluZGV4IGNhMDAwZjUwYmEyMWU0MTQ1YWFjZWRiMTMxZDNhYzBjMjg5
YTg4NjEuLjRhMjk3N2Q3MGIyMDQzNmY1NmJhYmM1OGJhMWM3YzE0NTFlZTJkNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKQEAgLTM0LDEzICsz
NCwxNSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dS
ZWN0KCkgY29uc3Q7CiAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJv
eWVkKCk7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQm94TW9kZWxJbmZvRnJvbVN0
eWxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogCi0gICAgdmly
dHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwogICAg
IHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAK
aW5kZXggYWI4Y2MxYTg3NTU1NGE5MDNjOGQxNDNkZGNjM2U1ZDA5NTNkNzE0My4uMmVlMTY5YTcx
YjE2Y2IyYTY5YzI0ZWJmN2IxYmJlMTM0MTRlNDA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcApAQCAtMTI0LDcgKzEyNCwyMiBAQCB2
b2lkIFJlbmRlclNWR0lubGluZTo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGNoaWxk
LCBiZWZvcmVDaGlsZCk7CiAgICAgaWYgKFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJl
bmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKSkKLSAgICAgICAg
dGV4dFJlbmRlcmVyLT5sYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZChjaGlsZCk7CisgICAgICAgIHRl
eHRSZW5kZXJlci0+c3VidHJlZUNoaWxkV2FzQWRkZWQoY2hpbGQpOworfQorCit2b2lkIFJlbmRl
clNWR0lubGluZTo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKK3sKKyAgICBSZW5k
ZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdU
ZXh0QW5jZXN0b3IodGhpcyk7CisgICAgaWYgKCFjaGlsZC0+aXNTVkdJbmxpbmVUZXh0KCkgfHwg
IXRleHRSZW5kZXJlcikgeworICAgICAgICBSZW5kZXJJbmxpbmU6OnJlbW92ZUNoaWxkKGNoaWxk
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRlclNWR0lubGluZVRleHQqIHRl
eHQgPSB0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQpOworICAgIFZlY3RvcjxTVkdUZXh0TGF5
b3V0QXR0cmlidXRlcyosIDI+IGFmZmVjdGVkQXR0cmlidXRlczsKKyAgICB0ZXh0UmVuZGVyZXIt
PnN1YnRyZWVDaGlsZFdpbGxCZVJlbW92ZWQodGV4dCwgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKKyAg
ICBSZW5kZXJJbmxpbmU6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICB0ZXh0UmVuZGVyZXItPnN1
YnRyZWVDaGlsZFdhc1JlbW92ZWQoYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKaW5kZXggOGFhNGFi
ODc1MGYyMmU4NmNiZmY3YWUxZDYzMGU0YzdmZmU0MTU3MS4uMjUzNGEwY2E1ZGIxYTc1MmIxMTIy
NTQyYzAyM2JmNTExMmUzYjk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZS5oCkBAIC01Nyw3ICs1Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxl
KiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlRnJvbUVsZW1lbnQoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmpl
Y3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CisgICAgdmlydHVhbCB2
b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCopOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKaW5kZXggMDlk
NDQ2YjdkNmVlYjlmZjU3OGQ1NDZhMDk1MDI3NGM1YTdmYWQ0Yi4uZWZmNzA3NzI0ZTJjZjFiMzE2
MjZhODRhMzllMGEwMGEzYTI5ZWJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCkBAIC03MiwzNyArNzIsMTEgQEAgUmVu
ZGVyU1ZHSW5saW5lVGV4dDo6UmVuZGVyU1ZHSW5saW5lVGV4dChOb2RlKiBuLCBQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IHN0cmluZykKIHsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0Ojp3
aWxsQmVEZXN0cm95ZWQoKQotewotICAgIFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJl
bmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKTsKLSAgICBpZiAo
IXRleHRSZW5kZXJlcikgewotICAgICAgICBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyo+IGFmZmVjdGVkQXR0cmlidXRlczsKLSAgICB0ZXh0UmVuZGVyZXItPmxheW91dEF0dHJp
YnV0ZXNXaWxsQmVEZXN0cm95ZWQodGhpcywgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKLQotICAgIFJl
bmRlclRleHQ6OndpbGxCZURlc3Ryb3llZCgpOwotICAgIGlmIChhZmZlY3RlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWRvY3VtZW50QmVpbmdEZXN0
cm95ZWQoKSkKLSAgICAgICAgdGV4dFJlbmRlcmVyLT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhh
ZmZlY3RlZEF0dHJpYnV0ZXMpOwotfQotCiB2b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OnNldFRl
eHRJbnRlcm5hbChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHRleHQpCiB7CiAgICAgUmVuZGVyVGV4
dDo6c2V0VGV4dEludGVybmFsKHRleHQpOwotCi0gICAgLy8gV2hlbiB0aGUgdW5kZXJseWluZyB0
ZXh0IGNvbnRlbnQgY2hhbmdlcywgY2FsbCBib3RoIHRleHRET01DaGFuZ2VkKCkgJiBsYXlvdXRB
dHRyaWJ1dGVzQ2hhbmdlZCgpCi0gICAgLy8gVGhlIGZvcm1lciB3aWxsIGNsZWFyIHRoZSBTVkdU
ZXh0UG9zaXRpb25pbmdFbGVtZW50IGNhY2hlLCB3aGljaCBkZXBlbmRzIG9uIHRoZSB0ZXh0TGVu
Z3RoKCkgb2YKLSAgICAvLyB0aGUgUmVuZGVyU1ZHSW5saW5lVGV4dCBvYmplY3RzLCBhbmQgdGh1
cyBuZWVkcyB0byBiZSByZWJ1aWxkLiBUaGUgbGF0dGVyIHdpbGwgYXNzdXJlIHRoYXQgdGhlCi0g
ICAgLy8gU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBSZW5kZXJT
VkdJbmxpbmVUZXh0IHdpbGwgYmUgdXBkYXRlZC4KLSAgICBpZiAoUmVuZGVyU1ZHVGV4dCogdGV4
dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKHRo
aXMpKSB7Ci0gICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0Vs
ZW1lbnRzKCk7Ci0gICAgICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQo
dGhpcyk7Ci0gICAgfQorICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5k
ZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCisgICAgICAgIHRl
eHRSZW5kZXJlci0+c3VidHJlZVRleHREaWRDaGFuZ2UodGhpcyk7CiB9CiAKIHZvaWQgUmVuZGVy
U1ZHSW5saW5lVGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKQEAgLTEyNyw3ICsxMDEsNyBAQCB2b2lkIFJlbmRlclNW
R0lubGluZVRleHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBS
ZW5kZXJTdHlsZQogCiAgICAgLy8gVGhlIHRleHQgbWV0cmljcyBtYXkgYmUgaW5mbHVlbmNlZCBi
eSBzdHlsZSBjaGFuZ2VzLgogICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBS
ZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCi0gICAgICAg
IHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQodGhpcyk7CisgICAgICAgIHRl
eHRSZW5kZXJlci0+c3VidHJlZVN0eWxlRGlkQ2hhbmdlKHRoaXMpOwogfQogCiBJbmxpbmVUZXh0
Qm94KiBSZW5kZXJTVkdJbmxpbmVUZXh0OjpjcmVhdGVUZXh0Qm94KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKaW5kZXggNTEzNzhm
ZDA3YjZiMjMxOTNjODEwN2QwNTVjN2YwODE2ZWVkZWY2Ny4uYWI4MWNhOTlmYTY5Mzk0N2ZkNDVm
OWNjZDBlMDBlYjI4NzNiODgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVy
biAiUmVuZGVyU1ZHSW5saW5lVGV4dCI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEludGVybmFsKFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4pOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuY3BwCmluZGV4IGY1MTJhYjg3YjQzODgwZjZlYzFmMjRlYWEwYTE5
ZDI5MDdmMmJhZjYuLjE1M2QzYzdmMWZhOWQ5MTlmYzNlYjFlN2ViZThhOGViZTdkYzU0NDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApAQCAt
NTcsMTIgKzU3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJlbmRlclNWR1RleHQ6OlJlbmRl
clNWR1RleHQoU1ZHVGV4dEVsZW1lbnQqIG5vZGUpIAogICAgIDogUmVuZGVyU1ZHQmxvY2sobm9k
ZSkKICAgICAsIG1fbmVlZHNSZW9yZGVyaW5nKGZhbHNlKQotICAgICwgbV9uZWVkc1Bvc2l0aW9u
aW5nVmFsdWVzVXBkYXRlKHRydWUpCisgICAgLCBtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRh
dGUoZmFsc2UpCiAgICAgLCBtX25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCi0gICAgLCBtX25l
ZWRzVGV4dE1ldHJpY3NVcGRhdGUodHJ1ZSkKKyAgICAsIG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0
ZShmYWxzZSkKIHsKIH0KIAorUmVuZGVyU1ZHVGV4dDo6flJlbmRlclNWR1RleHQoKQoreworICAg
IEFTU0VSVChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKK30KKwogYm9vbCBSZW5kZXJT
VkdUZXh0Ojppc0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJTdHlsZSop
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGNoaWxkLT5pc0lubGluZSgpOwpAQCAtMTEwLDMxICsxMTUs
MTkgQEAgdm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLAogICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExv
Y2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIHdh
c0ZpeGVkKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZVVwZGF0ZUxheW91dEF0
dHJpYnV0ZXMoUmVuZGVyT2JqZWN0KiBzdGFydCwgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWls
ZGVyJiBidWlsZGVyKQorc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVz
KFJlbmRlck9iamVjdCogdGV4dCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGF0
dHJpYnV0ZXMpCiB7Ci0gICAgaWYgKHN0YXJ0LT5pc1NWR0lubGluZVRleHQoKSkgewotICAgICAg
ICBidWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5kZXJlcih0b1JlbmRlclNW
R0lubGluZVRleHQoc3RhcnQpKTsKLSAgICAgICAgcmV0dXJuOworICAgIGZvciAoUmVuZGVyT2Jq
ZWN0KiBkZXNjZW5kYW50ID0gdGV4dDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRh
bnQtPm5leHRJblByZU9yZGVyKHRleHQpKSB7CisgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1NW
R0lubGluZVRleHQoKSkKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHRvUmVuZGVyU1ZH
SW5saW5lVGV4dChkZXNjZW5kYW50KS0+bGF5b3V0QXR0cmlidXRlcygpKTsKICAgICB9Ci0KLSAg
ICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgcmVjdXJzaXZlVXBkYXRlTGF5
b3V0QXR0cmlidXRlcyhjaGlsZCwgYnVpbGRlcik7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHVGV4dDo6
bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKLXsKLSAgICBBU1NF
UlQoY2hpbGQpOwotICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCi0gICAg
ICAgIHJldHVybjsKLSAgICBGb250Q2FjaGVQdXJnZVByZXZlbnRlciBmb250Q2FjaGVQdXJnZVBy
ZXZlbnRlcjsKLSAgICByZWN1cnNpdmVVcGRhdGVMYXlvdXRBdHRyaWJ1dGVzKGNoaWxkLCBtX2xh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyKTsKLSAgICByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpOwog
fQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZmluZFByZXZpb3VzQW5kTmV4dEF0dHJpYnV0ZXMoUmVu
ZGVyT2JqZWN0KiBzdGFydCwgUmVuZGVyU1ZHSW5saW5lVGV4dCogbG9jYXRlRWxlbWVudCwgYm9v
bCYgc3RvcEFmdGVyTmV4dCwgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqJiBwcmV2aW91cywgU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXMqJiBuZXh0KQogewogICAgIEFTU0VSVChzdGFydCk7CiAgICAg
QVNTRVJUKGxvY2F0ZUVsZW1lbnQpOworICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgaXRlcmF0aXZl
LgogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHN0YXJ0LT5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+
aXNTVkdJbmxpbmVUZXh0KCkpIHsKICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQqIHRl
eHQgPSB0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQpOwpAQCAtMTYyLDQwICsxNTUsMTgzIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBmaW5kUHJldmlvdXNBbmROZXh0QXR0cmlidXRlcyhSZW5kZXJP
YmplY3QqIHN0YXJ0LCBSZW5kZXJTVkdJCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJl
bmRlclNWR1RleHQ6OmxheW91dEF0dHJpYnV0ZXNXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5s
aW5lVGV4dCogdGV4dCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVk
QXR0cmlidXRlcykKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6c3VidHJlZUNoaWxkV2FzQWRkZWQoUmVu
ZGVyT2JqZWN0KiBjaGlsZCkKK3sKKyAgICBBU1NFUlQoY2hpbGQpOworICAgIGlmICghZXZlckhh
ZExheW91dCgpKSB7CisgICAgICAgIEFTU0VSVChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgp
KTsKKyAgICAgICAgQVNTRVJUKCFtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLm51bWJlck9mVGV4
dFBvc2l0aW9uaW5nRWxlbWVudHMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBB
U1NFUlQoIWRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSk7CisKKyAgICAvLyBUaGUgcG9zaXRpb25p
bmcgZWxlbWVudHMgY2FjaGUgZG9lc24ndCBpbmNsdWRlIHRoZSBuZXcgJ2NoaWxkJyB5ZXQuIENs
ZWFyIHRoZQorICAgIC8vIGNhY2hlLCBhcyB0aGUgbmV4dCBidWlsZExheW91dEF0dHJpYnV0ZXNG
b3JUZXh0UmVuZGVyZXIoKSBjYWxsIHJlYnVpbGRzIGl0LgorICAgIG1fbGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOworCisgICAgLy8gRGV0ZWN0
IGNoYW5nZXMgaW4gbGF5b3V0IGF0dHJpYnV0ZXMgYW5kIG9ubHkgbWVhc3VyZSB0aG9zZSB0ZXh0
IHBhcnRzIHRoYXQgaGF2ZSBjaGFuZ2VkIQorICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyo+IG5ld0xheW91dEF0dHJpYnV0ZXM7CisgICAgY29sbGVjdExheW91dEF0dHJpYnV0ZXMo
dGhpcywgbmV3TGF5b3V0QXR0cmlidXRlcyk7CisgICAgaWYgKG5ld0xheW91dEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKSB7CisgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVhcigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ29tcGFyZSBtX2xheW91dEF0dHJpYnV0ZXMgd2l0
aCBuZXdMYXlvdXRBdHRyaWJ1dGVzIHRvIGZpZ3VyZSBvdXQgd2hpY2ggYXR0cmlidXRlIGdvdCBh
ZGRlZC4KKyAgICBzaXplX3Qgc2l6ZSA9IG5ld0xheW91dEF0dHJpYnV0ZXMuc2l6ZSgpOworICAg
IFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiBhdHRyaWJ1dGVzID0gMDsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBhdHRyaWJ1dGVzID0gbmV3TGF5b3V0
QXR0cmlidXRlc1tpXTsKKyAgICAgICAgaWYgKG1fbGF5b3V0QXR0cmlidXRlcy5maW5kKGF0dHJp
YnV0ZXMpID09IG5vdEZvdW5kKSB7CisgICAgICAgICAgICAvLyBFdmVyeSB0aW1lIHRoaXMgaXMg
aW52b2tlZCwgdGhlcmUncyBvbmx5IGEgc2luZ2xlIG5ldyBlbnRyeSBpbiB0aGUgbmV3TGF5b3V0
QXR0cmlidXRlcyBsaXN0LCBjb21wYXJlZCB0byB0aGUgb2xkIGluIG1fbGF5b3V0QXR0cmlidXRl
cy4KKyAgICAgICAgICAgIGJvb2wgc3RvcEFmdGVyTmV4dCA9IGZhbHNlOworICAgICAgICAgICAg
U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqIHByZXZpb3VzID0gMDsKKyAgICAgICAgICAgIFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzKiBuZXh0ID0gMDsKKyAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQo
Y2hpbGQsIGF0dHJpYnV0ZXMtPmNvbnRleHQoKSA9PSBjaGlsZCk7CisgICAgICAgICAgICBmaW5k
UHJldmlvdXNBbmROZXh0QXR0cmlidXRlcyh0aGlzLCBhdHRyaWJ1dGVzLT5jb250ZXh0KCksIHN0
b3BBZnRlck5leHQsIHByZXZpb3VzLCBuZXh0KTsKKworICAgICAgICAgICAgaWYgKHByZXZpb3Vz
KQorICAgICAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuYnVpbGRMYXlvdXRB
dHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKHByZXZpb3VzLT5jb250ZXh0KCkpOworICAgICAgICAg
ICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0
UmVuZGVyZXIoYXR0cmlidXRlcy0+Y29udGV4dCgpKTsKKyAgICAgICAgICAgIGlmIChuZXh0KQor
ICAgICAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuYnVpbGRMYXlvdXRBdHRy
aWJ1dGVzRm9yVGV4dFJlbmRlcmVyKG5leHQtPmNvbnRleHQoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKworI2lmbmRlZiAgTkRFQlVHCisgICAgLy8gVmVyaWZ5IHRo
YXQgbV9sYXlvdXRBdHRyaWJ1dGVzIG9ubHkgZGlmZmVycyBieSBtYXhpdW0gb25lIGVudHJ5Lgor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBBU1NFUlQobV9s
YXlvdXRBdHRyaWJ1dGVzLmZpbmQobmV3TGF5b3V0QXR0cmlidXRlc1tpXSkgIT0gbm90Rm91bmQg
fHwgbmV3TGF5b3V0QXR0cmlidXRlc1tpXSA9PSBhdHRyaWJ1dGVzKTsKKyNlbmRpZgorCisgICAg
bV9sYXlvdXRBdHRyaWJ1dGVzID0gbmV3TGF5b3V0QXR0cmlidXRlczsKK30KKworc3RhdGljIGlu
bGluZSB2b2lkIGNoZWNrTGF5b3V0QXR0cmlidXRlc0NvbnNpc3RlbmN5KFJlbmRlclNWR1RleHQq
IHRleHQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBleHBlY3RlZExheW91dEF0
dHJpYnV0ZXMpCit7CisjaWZuZGVmIE5ERUJVRworICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0
cmlidXRlcyo+IG5ld0xheW91dEF0dHJpYnV0ZXM7CisgICAgY29sbGVjdExheW91dEF0dHJpYnV0
ZXModGV4dCwgbmV3TGF5b3V0QXR0cmlidXRlcyk7CisgICAgQVNTRVJUKG5ld0xheW91dEF0dHJp
YnV0ZXMgPT0gZXhwZWN0ZWRMYXlvdXRBdHRyaWJ1dGVzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHRleHQpOworICAgIFVOVVNFRF9QQVJBTShleHBlY3RlZExheW91dEF0dHJpYnV0ZXMpOwor
I2VuZGlmCit9CisKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6d2lsbEJlRGVzdHJveWVkKCkKK3sKKyAg
ICBtX2xheW91dEF0dHJpYnV0ZXMuY2xlYXIoKTsKKyAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWls
ZGVyLmNsZWFyVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKKworICAgIFJlbmRlclNWR0Jsb2Nr
Ojp3aWxsQmVEZXN0cm95ZWQoKTsKK30KKwordm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hp
bGRXaWxsQmVSZW1vdmVkKFJlbmRlclNWR0lubGluZVRleHQqIHRleHQsIFZlY3RvcjxTVkdUZXh0
TGF5b3V0QXR0cmlidXRlcyosIDI+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpCiB7CiAgICAgQVNTRVJU
KHRleHQpOwotICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCisgICAgaWYg
KCFldmVySGFkTGF5b3V0KCkgfHwgYmVpbmdEZXN0cm95ZWQoKSkgeworICAgICAgICBBU1NFUlQo
bV9sYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisgICAgICAgIEFTU0VSVCghbV9sYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlci5udW1iZXJPZlRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgY2hlY2tMYXlvdXRBdHRyaWJ1dGVzQ29uc2lzdGVu
Y3kodGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKKworICAgIC8vIFRoZSBwb3NpdGlvbmluZyBl
bGVtZW50cyBjYWNoZSBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIGVhY2ggdGV4dCByZW5kZXJlciBp
biB0aGUKKyAgICAvLyBzdWJ0cmVlLiBJZiB0aGlzIGNoYW5nZXMsIGNsZWFyIHRoZSBjYWNoZS4g
SXQncyBnb2luZyB0byBiZSByZWJ1aWx0IGJlbG93LgorICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOworICAgIGlmIChtX2xheW91dEF0
dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBUaGlzIGxvZ2lj
IHJlcXVpcmVzIHRoYXQgdGhlICd0ZXh0JyBjaGlsZCBpcyBzdGlsbCBpbnNlcnRlZCBpbiB0aGUg
dHJlZS4KICAgICBib29sIHN0b3BBZnRlck5leHQgPSBmYWxzZTsKICAgICBTVkdUZXh0TGF5b3V0
QXR0cmlidXRlcyogcHJldmlvdXMgPSAwOwogICAgIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiBu
ZXh0ID0gMDsKLSAgICBmaW5kUHJldmlvdXNBbmROZXh0QXR0cmlidXRlcyh0aGlzLCB0ZXh0LCBz
dG9wQWZ0ZXJOZXh0LCBwcmV2aW91cywgbmV4dCk7CisgICAgaWYgKCFkb2N1bWVudEJlaW5nRGVz
dHJveWVkKCkpCisgICAgICAgIGZpbmRQcmV2aW91c0FuZE5leHRBdHRyaWJ1dGVzKHRoaXMsIHRl
eHQsIHN0b3BBZnRlck5leHQsIHByZXZpb3VzLCBuZXh0KTsKKwogICAgIGlmIChwcmV2aW91cykK
ICAgICAgICAgYWZmZWN0ZWRBdHRyaWJ1dGVzLmFwcGVuZChwcmV2aW91cyk7CiAgICAgaWYgKG5l
eHQpCiAgICAgICAgIGFmZmVjdGVkQXR0cmlidXRlcy5hcHBlbmQobmV4dCk7CisKKyAgICBzaXpl
X3QgcG9zaXRpb24gPSBtX2xheW91dEF0dHJpYnV0ZXMuZmluZCh0ZXh0LT5sYXlvdXRBdHRyaWJ1
dGVzKCkpOworICAgIEFTU0VSVChwb3NpdGlvbiAhPSBub3RGb3VuZCk7CisgICAgbV9sYXlvdXRB
dHRyaWJ1dGVzLnJlbW92ZShwb3NpdGlvbik7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6aW52
YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCkKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6c3Vi
dHJlZUNoaWxkV2FzUmVtb3ZlZChjb25zdCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMq
LCAyPiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKQogewotICAgIC8vIENsZWFyIHRoZSB0ZXh0IHBvc2l0
aW9uaW5nIGVsZW1lbnRzLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBlaXRoZXIgdGhlIGNo
aWxkcmVuCi0gICAgLy8gb2YgYSBET00gdGV4dCBlbGVtZW50IGhhdmUgY2hhbmdlZCwgb3IgdGhl
IGxlbmd0aCBvZiB0aGUgdGV4dCBpbiBhbnkgY2hpbGQgZWxlbWVudAotICAgIC8vIGhhcyBjaGFu
Z2VkLiBGYWlsdXJlIHRvIGNsZWFyIG1heSBsZWF2ZSB1cyB3aXRoIGludmFsaWQgZWxlbWVudHMs
IGFzIG90aGVyIGNvZGUgcGF0aHMKLSAgICAvLyBkbyBub3QgYWx3YXlzIGNhdXNlIHRoZSBwb3Np
dGlvbiBlbGVtZW50cyB0byBiZSBtYXJrZWQgaW52YWxpZCBiZWZvcmUgdXNlLgotICAgIG1fbGF5
b3V0QXR0cmlidXRlc0J1aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOworICAg
IGlmIChiZWluZ0Rlc3Ryb3llZCgpKSB7CisgICAgICAgIEFTU0VSVChhZmZlY3RlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKG1fbGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5
KCkpOworICAgICAgICBBU1NFUlQoIW1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIubnVtYmVyT2ZU
ZXh0UG9zaXRpb25pbmdFbGVtZW50cygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmIChkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKKyAgICAgICAgQVNTRVJUKGFmZmVjdGVk
QXR0cmlidXRlcy5pc0VtcHR5KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8g
VGhpcyBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgc3VidHJlZUNoaWxkV2lsbEJlRGVzdHJv
eWVkLCBvbmNlIHRoZSBSZW5kZXJTVkdJbmxpbmVUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKSBtZXRo
b2QKKyAgICAvLyBwYXNzZXMgb24gdG8gdGhlIGJhc2UgY2xhc3MsIHdoaWNoIHJlbW92ZXMgdXMg
ZnJvbSB0aGUgcmVuZGVyIHRyZWUuIEF0IHRoaXMgcG9pbnQgd2UgY2FuIHVwZGF0ZSB0aGUgbGF5
b3V0IGF0dHJpYnV0ZXMuCisgICAgdW5zaWduZWQgc2l6ZSA9IGFmZmVjdGVkQXR0cmlidXRlcy5z
aXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAg
bV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVu
ZGVyZXIoYWZmZWN0ZWRBdHRyaWJ1dGVzW2ldLT5jb250ZXh0KCkpOwogfQogCi1zdGF0aWMgaW5s
aW5lIHZvaWQgcmVjdXJzaXZlVXBkYXRlU2NhbGVkRm9udChSZW5kZXJPYmplY3QqIHN0YXJ0KQor
dm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlU3R5bGVEaWRDaGFuZ2UoUmVuZGVyU1ZHSW5saW5l
VGV4dCogdGV4dCkKIHsKLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBzdGFydC0+Zmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAg
ICBpZiAoY2hpbGQtPmlzU1ZHSW5saW5lVGV4dCgpKSB7Ci0gICAgICAgICAgICB0b1JlbmRlclNW
R0lubGluZVRleHQoY2hpbGQpLT51cGRhdGVTY2FsZWRGb250KCk7Ci0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgfQorICAgIEFTU0VSVCh0ZXh0KTsKKyAgICBBU1NFUlQoIWJlaW5nRGVz
dHJveWVkKCkpOworICAgIGlmICghZXZlckhhZExheW91dCgpKSB7CisgICAgICAgIEFTU0VSVCht
X2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKCFtX2xheW91dEF0
dHJpYnV0ZXNCdWlsZGVyLm51bWJlck9mVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIWRvY3VtZW50QmVpbmdEZXN0cm95ZWQo
KSk7CisgICAgY2hlY2tMYXlvdXRBdHRyaWJ1dGVzQ29uc2lzdGVuY3kodGhpcywgbV9sYXlvdXRB
dHRyaWJ1dGVzKTsKIAotICAgICAgICByZWN1cnNpdmVVcGRhdGVTY2FsZWRGb250KGNoaWxkKTsK
KyAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgbWV0cmljcyBjYWNoZSwgYnV0IG5vdCB0aGUgdGV4dCBw
b3NpdGlvbmluZyBlbGVtZW50IGNhY2hlCisgICAgLy8gbm9yIHRoZSBsYXlvdXQgYXR0cmlidXRl
cyBjYWNoZWQgaW4gdGhlIGxlYWYgI3RleHQgcmVuZGVyZXJzLgorICAgIEZvbnRDYWNoZVB1cmdl
UHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOworICAgIGZvciAoUmVuZGVyT2JqZWN0
KiBkZXNjZW5kYW50ID0gdGV4dDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQt
Pm5leHRJblByZU9yZGVyKHRleHQpKSB7CisgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1NWR0lu
bGluZVRleHQoKSkKKyAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIucmVidWls
ZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIodG9SZW5kZXJTVkdJbmxpbmVUZXh0KGRlc2NlbmRhbnQp
KTsKKyAgICB9Cit9CisKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6c3VidHJlZVRleHREaWRDaGFuZ2Uo
UmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCkKK3sKKyAgICBBU1NFUlQodGV4dCk7CisgICAgQVNT
RVJUKCFiZWluZ0Rlc3Ryb3llZCgpKTsKKyAgICBpZiAoIWV2ZXJIYWRMYXlvdXQoKSkgeworICAg
ICAgICBBU1NFUlQobV9sYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisgICAgICAgIEFTU0VS
VCghbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5udW1iZXJPZlRleHRQb3NpdGlvbmluZ0VsZW1l
bnRzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gVGhlIHBvc2l0aW9uaW5n
IGVsZW1lbnRzIGNhY2hlIGRlcGVuZHMgb24gdGhlIHNpemUgb2YgZWFjaCB0ZXh0IHJlbmRlcmVy
IGluIHRoZQorICAgIC8vIHN1YnRyZWUuIElmIHRoaXMgY2hhbmdlcywgY2xlYXIgdGhlIGNhY2hl
LiBJdCdzIGdvaW5nIHRvIGJlIHJlYnVpbHQgYmVsb3cuCisgICAgbV9sYXlvdXRBdHRyaWJ1dGVz
QnVpbGRlci5jbGVhclRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7CisKKyAgICBjaGVja0xheW91
dEF0dHJpYnV0ZXNDb25zaXN0ZW5jeSh0aGlzLCBtX2xheW91dEF0dHJpYnV0ZXMpOworICAgIGZv
ciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gdGV4dDsgZGVzY2VuZGFudDsgZGVzY2VuZGFu
dCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHRleHQpKSB7CisgICAgICAgIGlmIChkZXNj
ZW5kYW50LT5pc1NWR0lubGluZVRleHQoKSkKKyAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIuYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKHRvUmVuZGVyU1ZH
SW5saW5lVGV4dChkZXNjZW5kYW50KSk7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQg
dXBkYXRlRm9udEluQWxsRGVzY2VuZGFudHMoUmVuZGVyT2JqZWN0KiBzdGFydCkKK3sKKyAgICBm
b3IgKFJlbmRlck9iamVjdCogZGVzY2VuZGFudCA9IHN0YXJ0OyBkZXNjZW5kYW50OyBkZXNjZW5k
YW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3RhcnQpKSB7CisgICAgICAgIGlmIChk
ZXNjZW5kYW50LT5pc1NWR0lubGluZVRleHQoKSkKKyAgICAgICAgICAgIHRvUmVuZGVyU1ZHSW5s
aW5lVGV4dChkZXNjZW5kYW50KS0+dXBkYXRlU2NhbGVkRm9udCgpOwogICAgIH0KIH0KIApAQCAt
MjEyLDIzICszNDgsNDkgQEAgdm9pZCBSZW5kZXJTVkdUZXh0OjpsYXlvdXQoKQogICAgICAgICB1
cGRhdGVDYWNoZWRCb3VuZGFyaWVzSW5QYXJlbnRzID0gdHJ1ZTsKICAgICB9CiAKLSAgICAvLyBJ
ZiB0aGUgcm9vdCBsYXlvdXQgc2l6ZSBjaGFuZ2VkIChlZy4gd2luZG93IHNpemUgY2hhbmdlcykg
b3IgdGhlIHBvc2l0aW9uaW5nIHZhbHVlcyBjaGFuZ2UKLSAgICAvLyBvciB0aGUgdHJhbnNmb3Jt
IHRvIHRoZSByb290IGNvbnRleHQgaGFzIGNoYW5nZWQgdGhlbiByZWNvbXB1dGUgdGhlIG9uLXNj
cmVlbiBmb250IHNpemUuCi0gICAgaWYgKG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0ZSB8fCBTVkdS
ZW5kZXJTdXBwb3J0OjpmaW5kVHJlZVJvb3RPYmplY3QodGhpcyktPmlzTGF5b3V0U2l6ZUNoYW5n
ZWQoKSkgewotICAgICAgICByZWN1cnNpdmVVcGRhdGVTY2FsZWRGb250KHRoaXMpOwotICAgICAg
ICByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyh0cnVlKTsKLSAgICAgICAgdXBkYXRlQ2FjaGVkQm91
bmRhcmllc0luUGFyZW50cyA9IHRydWU7CisgICAgaWYgKCFldmVySGFkTGF5b3V0KCkpIHsKKyAg
ICAgICAgLy8gV2hlbiBsYXlpbmcgb3V0IGluaXRpYWxseSwgY29sbGVjdCBhbGwgbGF5b3V0IGF0
dHJpYnV0ZXMsIGJ1aWxkIHRoZSBjaGFyYWN0ZXIgZGF0YSBtYXAsCisgICAgICAgIC8vIGFuZCBw
cm9wb2dhdGUgcmVzdWx0aW5nIFNWR0xheW91dEF0dHJpYnV0ZXMgdG8gYWxsIFJlbmRlclNWR0lu
bGluZVRleHQgY2hpbGRyZW4gaW4gdGhlIHN1YnRyZWUuCisgICAgICAgIEFTU0VSVChtX2xheW91
dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgY29sbGVjdExheW91dEF0dHJpYnV0ZXMo
dGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKKyAgICAgICAgdXBkYXRlRm9udEluQWxsRGVzY2Vu
ZGFudHModGhpcyk7CisgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuYnVpbGRMYXlv
dXRBdHRyaWJ1dGVzRm9yV2hvbGVUcmVlKHRoaXMpOworCisgICAgICAgIG1fbmVlZHNSZW9yZGVy
aW5nID0gdHJ1ZTsKICAgICAgICAgbV9uZWVkc1RleHRNZXRyaWNzVXBkYXRlID0gZmFsc2U7Ci0g
ICAgfQorICAgICAgICBtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUgPSBmYWxzZTsKKyAg
ICAgICAgdXBkYXRlQ2FjaGVkQm91bmRhcmllc0luUGFyZW50cyA9IHRydWU7CisgICAgfSBlbHNl
IGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpIHsKKyAgICAgICAgLy8gV2hlbiB0
aGUgeC95L2R4L2R5L3JvdGF0ZSBsaXN0cyBjaGFuZ2UsIHJlY29tcHV0ZSB0aGUgbGF5b3V0IGF0
dHJpYnV0ZXMsIGFuZCBldmVudHVhbGx5CisgICAgICAgIC8vIHVwZGF0ZSB0aGUgb24tc2NyZWVu
IGZvbnQgb2JqZWN0cyBhcyB3ZWxsIGluIGFsbCBkZXNjZW5kYW50cy4KKyAgICAgICAgaWYgKG1f
bmVlZHNUZXh0TWV0cmljc1VwZGF0ZSkgeworICAgICAgICAgICAgdXBkYXRlRm9udEluQWxsRGVz
Y2VuZGFudHModGhpcyk7CisgICAgICAgICAgICBtX25lZWRzVGV4dE1ldHJpY3NVcGRhdGUgPSBm
YWxzZTsKKyAgICAgICAgfQogCi0gICAgaWYgKG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0
ZSkgewotICAgICAgICAvLyBQZXJmb3JtIFNWRyB0ZXh0IGxheW91dCBwaGFzZSBvbmUgKHNlZSBT
VkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgZm9yIGRldGFpbHMpLgogICAgICAgICBtX2xh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0Zvcldob2xlVHJlZSh0
aGlzKTsKICAgICAgICAgbV9uZWVkc1Jlb3JkZXJpbmcgPSB0cnVlOwogICAgICAgICBtX25lZWRz
UG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUgPSBmYWxzZTsKICAgICAgICAgdXBkYXRlQ2FjaGVkQm91
bmRhcmllc0luUGFyZW50cyA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtX25lZWRzVGV4dE1ldHJp
Y3NVcGRhdGUgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluZFRyZWVSb290T2JqZWN0KHRoaXMpLT5p
c0xheW91dFNpemVDaGFuZ2VkKCkpIHsKKyAgICAgICAgLy8gSWYgdGhlIHJvb3QgbGF5b3V0IHNp
emUgY2hhbmdlZCAoZWcuIHdpbmRvdyBzaXplIGNoYW5nZXMpIG9yIG9yIHRoZSB0cmFuc2Zvcm0g
dG8gdGhlIHJvb3QKKyAgICAgICAgLy8gY29udGV4dCBoYXMgY2hhbmdlZCB0aGVuIHJlY29tcHV0
ZSB0aGUgb24tc2NyZWVuIGZvbnQgc2l6ZS4KKyAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGRl
c2NlbmRhbnQgPSB0aGlzOyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4
dEluUHJlT3JkZXIodGhpcykpIHsKKyAgICAgICAgICAgIGlmICghZGVzY2VuZGFudC0+aXNTVkdJ
bmxpbmVUZXh0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBSZW5k
ZXJTVkdJbmxpbmVUZXh0KiB0ZXh0ID0gdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGRlc2NlbmRhbnQp
OworICAgICAgICAgICAgdGV4dC0+dXBkYXRlU2NhbGVkRm9udCgpOworICAgICAgICAgICAgbV9s
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmljc0ZvclRleHRSZW5kZXJlcih0ZXh0
KTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVCghbV9uZWVkc1Jlb3JkZXJpbmcpOworICAg
ICAgICBBU1NFUlQoIW1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSk7CisgICAgICAgIG1f
bmVlZHNUZXh0TWV0cmljc1VwZGF0ZSA9IGZhbHNlOworICAgICAgICB1cGRhdGVDYWNoZWRCb3Vu
ZGFyaWVzSW5QYXJlbnRzID0gdHJ1ZTsKICAgICB9CiAKKyAgICBjaGVja0xheW91dEF0dHJpYnV0
ZXNDb25zaXN0ZW5jeSh0aGlzLCBtX2xheW91dEF0dHJpYnV0ZXMpOworCiAgICAgLy8gUmVkdWNl
ZCB2ZXJzaW9uIG9mIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jaygpLCB3aGljaCBvbmx5IHRha2Vz
IGNhcmUgb2YgU1ZHIHRleHQuCiAgICAgLy8gQWxsIGlmIGJyYW5jaGVzIHRoYXQgY291bGQgY2F1
c2UgZWFybHkgZXhpdCBpbiBSZW5kZXJCbG9ja3MgbGF5b3V0QmxvY2soKSBtZXRob2QgYXJlIHR1
cm5lZCBpbnRvIGFzc2VydGlvbnMuCiAgICAgQVNTRVJUKCFpc0lubGluZSgpKTsKQEAgLTM2NCw3
ICs1MjYsMjEgQEAgRmxvYXRSZWN0IFJlbmRlclNWR1RleHQ6OnJlcGFpbnRSZWN0SW5Mb2NhbENv
b3JkaW5hdGVzKCkgY29uc3QKIHZvaWQgUmVuZGVyU1ZHVGV4dDo6YWRkQ2hpbGQoUmVuZGVyT2Jq
ZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBSZW5kZXJTVkdC
bG9jazo6YWRkQ2hpbGQoY2hpbGQsIGJlZm9yZUNoaWxkKTsKLSAgICBsYXlvdXRBdHRyaWJ1dGVz
Q2hhbmdlZChjaGlsZCk7CisgICAgc3VidHJlZUNoaWxkV2FzQWRkZWQoY2hpbGQpOworfQorCit2
b2lkIFJlbmRlclNWR1RleHQ6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCogY2hpbGQpCit7Cisg
ICAgaWYgKCFjaGlsZC0+aXNTVkdJbmxpbmVUZXh0KCkpIHsKKyAgICAgICAgUmVuZGVyU1ZHQmxv
Y2s6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJl
bmRlclNWR0lubGluZVRleHQqIHRleHQgPSB0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQpOwor
ICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyosIDI+IGFmZmVjdGVkQXR0cmlidXRl
czsKKyAgICBzdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVkKHRleHQsIGFmZmVjdGVkQXR0cmlidXRl
cyk7CisgICAgUmVuZGVyU1ZHQmxvY2s6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICBzdWJ0cmVl
Q2hpbGRXYXNSZW1vdmVkKGFmZmVjdGVkQXR0cmlidXRlcyk7CiB9CiAKIC8vIEZpeCBmb3IgPHJk
YXI6Ly9wcm9ibGVtLzgwNDg4NzU+LiBXZSBzaG91bGQgbm90IHJlbmRlciA6Zmlyc3QtbGluZSBD
U1MgU3R5bGUKQEAgLTM4MCw2MSArNTU2LDYgQEAgdm9pZCBSZW5kZXJTVkdUZXh0Ojp1cGRhdGVG
aXJzdExldHRlcigpCiB7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCByZWN1cnNpdmVDb2xsZWN0
TGF5b3V0QXR0cmlidXRlcyhSZW5kZXJPYmplY3QqIHN0YXJ0LCBWZWN0b3I8U1ZHVGV4dExheW91
dEF0dHJpYnV0ZXMqPiYgYXR0cmlidXRlcykKLXsKLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hp
bGQgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgewotICAgICAgICBpZiAoY2hpbGQtPmlzU1ZHSW5saW5lVGV4dCgpKSB7Ci0gICAgICAg
ICAgICBhdHRyaWJ1dGVzLmFwcGVuZCh0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQpLT5sYXlv
dXRBdHRyaWJ1dGVzKCkpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICByZWN1cnNpdmVDb2xsZWN0TGF5b3V0QXR0cmlidXRlcyhjaGlsZCwgYXR0cmlidXRlcyk7
Ci0gICAgfQotfQotCi12b2lkIFJlbmRlclNWR1RleHQ6OnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVz
KGJvb2wgcGVyZm9ybUZ1bGxSZWJ1aWxkKQotewotICAgIGlmIChwZXJmb3JtRnVsbFJlYnVpbGQp
Ci0gICAgICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVhcigpOwotCi0gICAgaWYgKG1fbGF5b3V0
QXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0
dHJpYnV0ZXModGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKLSAgICAgICAgaWYgKG1fbGF5b3V0
QXR0cmlidXRlcy5pc0VtcHR5KCkgfHwgIXBlcmZvcm1GdWxsUmVidWlsZCkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVpbGRNZXRy
aWNzRm9yV2hvbGVUcmVlKHRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgVmVj
dG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4gYWZmZWN0ZWRBdHRyaWJ1dGVzOwotICAgIHJl
YnVpbGRMYXlvdXRBdHRyaWJ1dGVzKGFmZmVjdGVkQXR0cmlidXRlcyk7Ci19Ci0KLXZvaWQgUmVu
ZGVyU1ZHVGV4dDo6cmVidWlsZExheW91dEF0dHJpYnV0ZXMoVmVjdG9yPFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0cmlidXRlcykKLXsKLSAgICAvLyBEZXRlY3QgY2hhbmdl
cyBpbiBsYXlvdXQgYXR0cmlidXRlcyBhbmQgb25seSBtZWFzdXJlIHRob3NlIHRleHQgcGFydHMg
dGhhdCBoYXZlIGNoYW5nZWQhCi0gICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4g
bmV3TGF5b3V0QXR0cmlidXRlczsKLSAgICByZWN1cnNpdmVDb2xsZWN0TGF5b3V0QXR0cmlidXRl
cyh0aGlzLCBuZXdMYXlvdXRBdHRyaWJ1dGVzKTsKLSAgICBpZiAobmV3TGF5b3V0QXR0cmlidXRl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzLmNsZWFyKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBDb21wYXJlIG1fbGF5b3V0QXR0cmlidXRlcyB3
aXRoIG5ld0xheW91dEF0dHJpYnV0ZXMgdG8gZmlndXJlIG91dCB3aGljaCBhdHRyaWJ1dGVzIGdv
dCBhZGRlZC9yZW1vdmVkLgotICAgIHNpemVfdCBzaXplID0gbmV3TGF5b3V0QXR0cmlidXRlcy5z
aXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAg
U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqIGF0dHJpYnV0ZXMgPSBuZXdMYXlvdXRBdHRyaWJ1dGVz
W2ldOwotICAgICAgICBpZiAobV9sYXlvdXRBdHRyaWJ1dGVzLmZpbmQoYXR0cmlidXRlcykgPT0g
bm90Rm91bmQpCi0gICAgICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVpbGRN
ZXRyaWNzRm9yVGV4dFJlbmRlcmVyKGF0dHJpYnV0ZXMtPmNvbnRleHQoKSk7Ci0gICAgfQotCi0g
ICAgc2l6ZSA9IGFmZmVjdGVkQXR0cmlidXRlcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIucmVi
dWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIoYWZmZWN0ZWRBdHRyaWJ1dGVzW2ldLT5jb250ZXh0
KCkpOwotCi0gICAgbV9sYXlvdXRBdHRyaWJ1dGVzID0gbmV3TGF5b3V0QXR0cmlidXRlczsKLX0K
LQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUZXh0LmgKaW5kZXggNTY2NWI0NDQyZTRjMDcxNmVlOTU3ZjZkNDAzMjc2
OTg4YjY3ZDlmYS4uNzQxYzhmZDUzODcyYmUwMTBlMjEyZWY1NjM4NTgxMWJjMDRkZTQ1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKQEAgLTM2LDYg
KzM2LDcgQEAgY2xhc3MgUmVuZGVyU1ZHSW5saW5lVGV4dDsKIGNsYXNzIFJlbmRlclNWR1RleHQg
OiBwdWJsaWMgUmVuZGVyU1ZHQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlclNWR1RleHQoU1ZH
VGV4dEVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJTVkdUZXh0KCk7CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqKSBjb25z
dDsKIApAQCAtNDgsMTggKzQ5LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgUmVuZGVy
U1ZHVGV4dCogbG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKGNvbnN0IFJlbmRlck9iamVjdCop
OwogCiAgICAgYm9vbCBuZWVkc1Jlb3JkZXJpbmcoKSBjb25zdCB7IHJldHVybiBtX25lZWRzUmVv
cmRlcmluZzsgfQotCi0gICAgLy8gQ2FsbCB0aGlzIG1ldGhvZCB3aGVuIGVpdGhlciB0aGUgY2hp
bGRyZW4gb2YgYSBET00gdGV4dCBlbGVtZW50IGhhdmUgY2hhbmdlZCwgb3IgdGhlIGxlbmd0aCBv
ZgotICAgIC8vIHRoZSB0ZXh0IGluIGFueSBjaGlsZCBlbGVtZW50IGhhcyBjaGFuZ2VkLgotICAg
IHZvaWQgaW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7Ci0KLSAgICB2b2lkIGxh
eW91dEF0dHJpYnV0ZXNDaGFuZ2VkKFJlbmRlck9iamVjdCopOwotICAgIHZvaWQgbGF5b3V0QXR0
cmlidXRlc1dpbGxCZURlc3Ryb3llZChSZW5kZXJTVkdJbmxpbmVUZXh0KiwgVmVjdG9yPFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0cmlidXRlcyk7Ci0gICAgdm9pZCByZWJ1
aWxkTGF5b3V0QXR0cmlidXRlcyhib29sIHBlcmZvcm1GdWxsUmVidWlsZCA9IGZhbHNlKTsKLSAg
ICB2b2lkIHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOwotCiAgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzKj4mIGxheW91dEF0dHJpYnV0ZXMoKSB7IHJldHVybiBtX2xheW91dEF0dHJpYnV0
ZXM7IH0KIAorICAgIHZvaWQgc3VidHJlZUNoaWxkV2FzQWRkZWQoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgdm9pZCBzdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVkKFJlbmRlclNWR0lubGluZVRleHQqLCBW
ZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqLCAyPiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsK
KyAgICB2b2lkIHN1YnRyZWVDaGlsZFdhc1JlbW92ZWQoY29uc3QgVmVjdG9yPFNWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzKiwgMj4mIGFmZmVjdGVkQXR0cmlidXRlcyk7CisgICAgdm9pZCBzdWJ0cmVl
U3R5bGVEaWRDaGFuZ2UoUmVuZGVyU1ZHSW5saW5lVGV4dCopOworICAgIHZvaWQgc3VidHJlZVRl
eHREaWRDaGFuZ2UoUmVuZGVyU1ZHSW5saW5lVGV4dCopOworCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdUZXh0
IjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1RleHQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CkBAIC04MCw2ICs3Nyw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1
c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIEFwcGx5Q29udGFpbmVy
RmxpcE9yTm90ID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJP
YmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJl
bmRlck9iamVjdCopOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIAogICAg
IHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gZnJh
bWVSZWN0KCk7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJT
dXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9y
dC5jcHAKaW5kZXggYjIwNmNiNmMyY2RiMTBiYjY5OWUwNDMwYjMxZTdiYmYzMDU0OGM4YS4uZGRj
N2M5MTU1Nzk0ODhkMDIwNTBhNTE0ZmFiYjY3MTFjMzhhMjlmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC0xOTcsOCArMTk3
LDEwIEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bGF5b3V0Q2hpbGRyZW4oUmVuZGVyT2JqZWN0
KiBzdGFydCwgYm9vbCBzZWxmTmVlZHNMYXlvdXQpCiAgICAgICAgICAgICAgICAgICAgIC8vIFdo
ZW4gdGhlIGxheW91dCBzaXplIGNoYW5nZWQgYW5kIHdoZW4gdXNpbmcgcmVsYXRpdmUgdmFsdWVz
IHRlbGwgdGhlIFJlbmRlclNWR1NoYXBlIHRvIHVwZGF0ZSBpdHMgc2hhcGUgb2JqZWN0CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNTVkdTaGFwZSgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgdG9SZW5kZXJTVkdTaGFwZShjaGlsZCktPnNldE5lZWRzU2hhcGVVcGRhdGUoKTsK
LSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGQtPmlzU1ZHVGV4dCgpKQorICAgICAg
ICAgICAgICAgICAgICBlbHNlIGlmIChjaGlsZC0+aXNTVkdUZXh0KCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRvUmVuZGVyU1ZHVGV4dChjaGlsZCktPnNldE5lZWRzVGV4dE1ldHJpY3NV
cGRhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRvUmVuZGVyU1ZHVGV4dChjaGlsZCkt
PnNldE5lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAgICAgICAgIG5lZWRzTGF5b3V0ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJ
bmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5l
Qm94LmNwcAppbmRleCA1NzE0NmM5MGM4MzhhYjY1MzNhNDNlNzM4MDU2ZTM4MmU1ZTg1YzlmLi4z
NGU5M2EwMmVmNzQzMmUzYzI2ZWYyMzYwZDFjZjNmZDQzN2U0MTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKQEAgLTczLDcgKzcz
LDYgQEAgdm9pZCBTVkdSb290SW5saW5lQm94Ojpjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5m
b3JtYXRpb24oKQogICAgIFJlbmRlclNWR1RleHQqIHRleHRSb290ID0gdG9SZW5kZXJTVkdUZXh0
KGJsb2NrKCkpOwogICAgIEFTU0VSVCh0ZXh0Um9vdCk7CiAKLSAgICB0ZXh0Um9vdC0+cmVidWls
ZExheW91dEF0dHJpYnV0ZXMoKTsKICAgICBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMq
PiYgbGF5b3V0QXR0cmlidXRlcyA9IHRleHRSb290LT5sYXlvdXRBdHRyaWJ1dGVzKCk7CiAgICAg
aWYgKGxheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVz
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlci5jcHAKaW5kZXggMDJhMjEyM2ViNjY3ZWNjZjczZjA4MGY2YmI0ZTZm
ZWNhNWQyZjNlNi4uZGJlM2JjMTkxOTA0ZDc2YTA4ODc3OTFhNzI0ZTIyYWU4OWZiMDhkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmli
dXRlc0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4
dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcApAQCAtMjYsOSArMjYsNiBAQAogI2luY2x1ZGUg
IlJlbmRlclNWR1RleHQuaCIKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Lmgi
CiAKLS8vIFNldCB0byBhIHZhbHVlID4gMCB0byBkdW1wIHRoZSB0ZXh0IGxheW91dCBhdHRyaWJ1
dGVzCi0jZGVmaW5lIERVTVBfVEVYVF9MQVlPVVRfQVRUUklCVVRFUyAwCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpTVkdUZXh0TGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIoKQpAQCAtNDQsNDEgKzQxLDI3IEBAIHZvaWQgU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVyZXIo
UmVuZGVyCiAgICAgaWYgKCF0ZXh0Um9vdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFi
dWlsZExheW91dEF0dHJpYnV0ZXNJZk5lZWRlZCh0ZXh0Um9vdCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fbWV0cmljc0J1aWxkZXIuYnVpbGRNZXRyaWNzQW5kTGF5b3V0QXR0cmlidXRlcyh0
ZXh0Um9vdCwgdGV4dCwgbV9jaGFyYWN0ZXJEYXRhTWFwKTsKLX0KKyAgICBpZiAobV90ZXh0UG9z
aXRpb25zLmlzRW1wdHkoKSkgeworICAgICAgICBtX2NoYXJhY3RlckRhdGFNYXAuY2xlYXIoKTsK
IAotdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmli
dXRlc0Zvcldob2xlVHJlZShSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKLXsKLSAgICBBU1NFUlQo
dGV4dFJvb3QpOworICAgICAgICBtX3RleHRMZW5ndGggPSAwOworICAgICAgICBjb25zdCBVQ2hh
ciogbGFzdENoYXJhY3RlciA9IDA7CisgICAgICAgIGNvbGxlY3RUZXh0UG9zaXRpb25pbmdFbGVt
ZW50cyh0ZXh0Um9vdCwgbGFzdENoYXJhY3Rlcik7CiAKLSAgICBpZiAoIWJ1aWxkTGF5b3V0QXR0
cmlidXRlc0lmTmVlZGVkKHRleHRSb290KSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAo
IW1fdGV4dExlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIG1fbWV0cmljc0J1aWxk
ZXIuYnVpbGRNZXRyaWNzQW5kTGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9vdCwgMCwgbV9jaGFyYWN0
ZXJEYXRhTWFwKTsKLX0KKyAgICAgICAgYnVpbGRDaGFyYWN0ZXJEYXRhTWFwKHRleHRSb290KTsK
KyAgICB9CiAKLXZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1aWxkTWV0
cmljc0ZvclRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0KQotewotICAgIEFT
U0VSVCh0ZXh0KTsKLSAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIodGV4
dCk7CisgICAgbV9tZXRyaWNzQnVpbGRlci5idWlsZE1ldHJpY3NBbmRMYXlvdXRBdHRyaWJ1dGVz
KHRleHRSb290LCB0ZXh0LCBtX2NoYXJhY3RlckRhdGFNYXApOwogfQogCi12b2lkIFNWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6cmVidWlsZE1ldHJpY3NGb3JXaG9sZVRyZWUoUmVuZGVy
U1ZHVGV4dCogdGV4dFJvb3QpCitib29sIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6
YnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqIHRleHRSb290
KQogewogICAgIEFTU0VSVCh0ZXh0Um9vdCk7Ci0gICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRy
aWJ1dGVzKj4mIGxheW91dEF0dHJpYnV0ZXMgPSB0ZXh0Um9vdC0+bGF5b3V0QXR0cmlidXRlcygp
OwogCi0gICAgc2l6ZV90IGxheW91dEF0dHJpYnV0ZXNTaXplID0gbGF5b3V0QXR0cmlidXRlcy5z
aXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXlvdXRBdHRyaWJ1dGVzU2l6ZTsg
KytpKQotICAgICAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIobGF5b3V0
QXR0cmlidXRlc1tpXS0+Y29udGV4dCgpKTsKLX0KLQotYm9vbCBTVkdUZXh0TGF5b3V0QXR0cmli
dXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkKFJlbmRlclNWR1RleHQq
IHRleHRSb290KQotewotICAgIEFTU0VSVCh0ZXh0Um9vdCk7CisgICAgbV9jaGFyYWN0ZXJEYXRh
TWFwLmNsZWFyKCk7CiAKICAgICBpZiAobV90ZXh0UG9zaXRpb25zLmlzRW1wdHkoKSkgewogICAg
ICAgICBtX3RleHRMZW5ndGggPSAwOwpAQCAtODYsMTQgKzY5LDIwIEBAIGJvb2wgU1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNJZk5lZWRlZChSZW5k
ZXJTVkdUZXh0CiAgICAgICAgIGNvbGxlY3RUZXh0UG9zaXRpb25pbmdFbGVtZW50cyh0ZXh0Um9v
dCwgbGFzdENoYXJhY3Rlcik7CiAgICAgfQogCi0gICAgbV9jaGFyYWN0ZXJEYXRhTWFwLmNsZWFy
KCk7CiAgICAgaWYgKCFtX3RleHRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGJ1aWxkTGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9vdCk7CisgICAgYnVpbGRDaGFyYWN0ZXJEYXRh
TWFwKHRleHRSb290KTsKKyAgICBtX21ldHJpY3NCdWlsZGVyLmJ1aWxkTWV0cmljc0FuZExheW91
dEF0dHJpYnV0ZXModGV4dFJvb3QsIDAsIG1fY2hhcmFjdGVyRGF0YU1hcCk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1aWxk
TWV0cmljc0ZvclRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0KQoreworICAg
IEFTU0VSVCh0ZXh0KTsKKyAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIo
dGV4dCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBwcm9jZXNzUmVuZGVyU1ZHSW5saW5lVGV4
dChSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0LCB1bnNpZ25lZCYgYXRDaGFyYWN0ZXIsIGNvbnN0
IFVDaGFyKiYgbGFzdENoYXJhY3RlcikKIHsKICAgICBpZiAodGV4dC0+c3R5bGUoKS0+d2hpdGVT
cGFjZSgpID09IFBSRSkgewpAQCAtMTQzLDEwICsxMzIsOCBAQCB2b2lkIFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlcjo6Y29sbGVjdFRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKFJlbmRlck9i
amVjdAogICAgIH0KIH0KIAotdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1
aWxkTGF5b3V0QXR0cmlidXRlcyhSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKK3ZvaWQgU1ZHVGV4
dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZENoYXJhY3RlckRhdGFNYXAoUmVuZGVyU1ZH
VGV4dCogdGV4dFJvb3QpCiB7Ci0gICAgQVNTRVJUKG1fdGV4dExlbmd0aCk7Ci0KICAgICBTVkdU
ZXh0UG9zaXRpb25pbmdFbGVtZW50KiBvdXRlcm1vc3RUZXh0RWxlbWVudCA9IFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQ6OmVsZW1lbnRGcm9tUmVuZGVyZXIodGV4dFJvb3QpOwogICAgIEFTU0VS
VChvdXRlcm1vc3RUZXh0RWxlbWVudCk7CiAKQEAgLTE3MywxMSArMTYwLDYgQEAgdm9pZCBTVkdU
ZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlcyhSZW5kZXJT
VkdUZXh0KiB0ZXh0Um8KICAgICB1bnNpZ25lZCBzaXplID0gbV90ZXh0UG9zaXRpb25zLnNpemUo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBmaWxs
Q2hhcmFjdGVyRGF0YU1hcChtX3RleHRQb3NpdGlvbnNbaV0pOwotCi0jaWYgRFVNUF9URVhUX0xB
WU9VVF9BVFRSSUJVVEVTID4gMAotICAgIGZwcmludGYoc3RkZXJyLCAiXG5EdW1waW5nIEFMTCBs
YXlvdXQgYXR0cmlidXRlcyBmb3IgUmVuZGVyU1ZHVGV4dCwgcmVuZGVyZXI9JXAsIG5vZGU9JXAg
KG1fdGV4dExlbmd0aDogJWkpXG4iLCB0ZXh0Um9vdCwgdGV4dFJvb3QtPm5vZGUoKSwgbV90ZXh0
TGVuZ3RoKTsKLSAgICBtX2NoYXJhY3RlckRhdGFNYXAuZHVtcCgpOwotI2VuZGlmCiB9CiAKIHN0
YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBs
YXN0Um90YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRl
eHQmIGxlbmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3QqIHhMaXN0LCBjb25zdCBTVkdM
ZW5ndGhMaXN0KiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdCogZHhMaXN0LCBjb25zdCBTVkdM
ZW5ndGhMaXN0KiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3QqIHJvdGF0ZUxpc3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIuaAppbmRleCA0NWZhZDI0MDA0Y2E5NmYyNGQ0MTc0MmE0MDE2YjRl
M2YzYTM4NmU3Li5jMWVkMzQ1Y2Y0MzY2ODQ2MzA3MTYyODA0MWE2NjdlNWU5Nzc2YzBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBjbGFzcyBTVkdUZXh0
TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcik7CiBwdWJsaWM6CiAgICAgU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXNCdWlsZGVyKCk7Ci0gICAgdm9pZCBidWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9s
ZVRyZWUoUmVuZGVyU1ZHVGV4dCopOworICAgIGJvb2wgYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9y
V2hvbGVUcmVlKFJlbmRlclNWR1RleHQqKTsKICAgICB2b2lkIGJ1aWxkTGF5b3V0QXR0cmlidXRl
c0ZvclRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0Kik7CiAKLSAgICB2b2lkIHJlYnVp
bGRNZXRyaWNzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqKTsKICAgICB2b2lkIHJlYnVpbGRN
ZXRyaWNzRm9yVGV4dFJlbmRlcmVyKFJlbmRlclNWR0lubGluZVRleHQqKTsKIAogICAgIC8vIElu
dm9rZWQgd2hlbmV2ZXIgdGhlIHVuZGVybHlpbmcgRE9NIHRyZWUgY2hhbmdlcywgc28gdGhhdCBt
X3RleHRQb3NpdGlvbnMgaXMgcmVidWlsZC4KICAgICB2b2lkIGNsZWFyVGV4dFBvc2l0aW9uaW5n
RWxlbWVudHMoKSB7IG1fdGV4dFBvc2l0aW9ucy5jbGVhcigpOyB9CisgICAgdW5zaWduZWQgbnVt
YmVyT2ZUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBvc2l0
aW9ucy5zaXplKCk7IH0KIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgVGV4dFBvc2l0aW9uIHsKQEAg
LTY2LDkgKzY2LDggQEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoOwogICAgIH07
CiAKLSAgICBib29sIGJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkKFJlbmRlclNWR1RleHQq
KTsKKyAgICB2b2lkIGJ1aWxkQ2hhcmFjdGVyRGF0YU1hcChSZW5kZXJTVkdUZXh0Kik7CiAgICAg
dm9pZCBjb2xsZWN0VGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
VUNoYXIqJiBsYXN0Q2hhcmFjdGVyKTsKLSAgICB2b2lkIGJ1aWxkTGF5b3V0QXR0cmlidXRlcyhS
ZW5kZXJTVkdUZXh0Kik7CiAgICAgdm9pZCBmaWxsQ2hhcmFjdGVyRGF0YU1hcChjb25zdCBUZXh0
UG9zaXRpb24mKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4
IGM4YmE1MzNlMGU5OTBmYzE4OWY0YTIyYTMzZDA5Y2ZiNmFhZDYyYWQuLjQwZDFlZjYzMzJmNTE5
M2Q4MGM1N2Q1Y2FlNjkyYjc1MjU0YjdlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNw
cApAQCAtMjM4LDE5ICsyMzgsNiBAQCBib29sIFNWR0FFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjaGlsZENvbgogICAgIHJldHVy
biBTVkdFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkQ29udGV4dCk7CiB9
CiAKLXZvaWQgU1ZHQUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNl
ciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnRE
ZWx0YSkKLXsKLSAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3Vu
dERlbHRhKTsKLQotICAgIGlmIChjaGFuZ2VkQnlQYXJzZXIgfHwgIXJlbmRlcmVyKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIC8vIEludmFsaWRhdGUgdGhlIFRleHRQb3NpdGlvbiBjYWNoZSBp
biBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgYXMgaXQgbWF5IG5vdyBwb2ludAotICAg
IC8vIHRvIG5vLWxvbmdlciBleGlzdGluZyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50cyBhbmQg
dGh1cyBuZWVkcyB0byBiZSByZWJ1aWx0LgotICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVu
ZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IocmVuZGVy
ZXIoKSkpCi0gICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0Vs
ZW1lbnRzKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCmluZGV4IDcyYWZkZWMxMjRiNWEzYTJlOTll
YzY1NGZjY2VmM2EwMmI1MmY5MzIuLmUzYjhmMjgwMjdiMzRhYjYwZWJjZDUyODVmYzQzZjZkNjNk
MTVhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCkBAIC00MCw5ICs0MCw2IEBAIGNsYXNz
IFNWR0FFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LAogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9y
ZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9
IDApIE9WRVJSSURFOwotCiBwcml2YXRlOgogICAgIFNWR0FFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuY3BwCmluZGV4IGNiODRlMjliNzIyZjYzMTQ5ZmRlMWViZmVlZTBiNjc1YTMyZmVm
OWQuLmRkN2U0OTZhNThiM2UyYTkyZjA4MGRlMDVmY2JhZWEyM2RiMDVlYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC0zMjEsMTkgKzMyMSw2
IEBAIFNWR1RleHRDb250ZW50RWxlbWVudCogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjplbGVtZW50
RnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCoKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHVGV4
dENvbnRlbnRFbGVtZW50Kj4obm9kZSk7CiB9CiAKLXZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5n
ZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpCi17Ci0gICAgU1ZHU3R5
bGVkRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdl
LCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKLQotICAgIGlmIChjaGFuZ2VkQnlQYXJz
ZXIgfHwgIXJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEludmFsaWRhdGUg
dGhlIFRleHRQb3NpdGlvbiBjYWNoZSBpbiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIg
YXMgaXQgbWF5IG5vdyBwb2ludAotICAgIC8vIHRvIG5vLWxvbmdlciBleGlzdGluZyBTVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50cyBhbmQgdGh1cyBuZWVkcyB0byBiZSByZWJ1aWx0LgotICAgIGlm
IChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5k
ZXJTVkdUZXh0QW5jZXN0b3IocmVuZGVyZXIoKSkpCi0gICAgICAgIHRleHRSZW5kZXJlci0+aW52
YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgKaW5k
ZXggMDk3NWFiYzM3MmYwZGVjZDY5YWU3YzY5N2FkNDM5MGNmNjk0MDI0My4uMTllMDMyYjlkODkx
ODUzN2UyYmIyYjUyNmQwNmM0Mjk2MTg1OWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaApAQCAtMTA5LDcgKzEwOSw2IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwotICAgIHZp
cnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwg
Tm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRD
b3VudERlbHRhID0gMCk7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVGV4dENvbnRl
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWU0MTA1NzJkMGFmOWNlZDE3YjU3
MTFkMjU0YjUxMmNmMjczZTIwNC4uMGM0NDA5YzVkNTJhZTE3ZWU4ZTg0Y2MxNWMwNjYzMDg3NTE0
MTNlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE1ICBOaWtvbGFzIFppbW1lcm1h
bm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEwNTA1Nyk6
IEluZmluaXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1cnJlbnRMb2dpY2Fs
Q2hhcmFjdGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgdGhyZWUgbmV3IHRlc3RjYXNlcyBjb3ZlcmluZyB0aGUgcHJvYmxlbS4KKwor
ICAgICAgICAqIHN2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvdGV4dC9oaWdoY2hhcnRzLWFzc2VydGlvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy90ZXh0L2hpZ2hjaGFydHMtYXNzZXJ0aW9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBvc2l0
aW9uLWJ1Zy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8
b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gY3NzMS9ib3hfcHJvcGVydGllcy9hY2lk
X3Rlc3QuaHRtbCBmYWlscyBpbiByZWxlYXNlIG1vZGUgb24gMzIgYml0IExpbnV4CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmODg5YmM5YjZmMmRiYzgwMDIxZGRkNTVjNGI5ZjBkYjQy
ZmYwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1w
b3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxzdmc+Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAiPjx0c3Bhbj5T
aG91bGQgYmUgb248L3RzcGFuPjx0c3BhbiBkeT0iMzAiPmRpZmZlcmVudCBsaW5lczwvdHNwYW4+
PC90ZXh0PgorPC9zdmc+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcv
dGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzYzU3ZmZhYWQy
YjgzNWQxMTFhYmExYzAxNGJjNzlhMGFhNmNhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbApAQCAtMCwwICsxLDM2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJsb2FkZWQoKSI+Cis8c3Zn
PgorPHRpdGxlPlRoaXMgdGVzdCB1c2VkIHRvIGJlIGxhaWQgb3V0IG9uIGEgc2luZ2xlIGxpbmUs
IGluc3RlYWQgb2YgbXVsdGlwbGUgb25lczwvdGl0bGU+Cis8dGV4dCBpZD0idGV4dCIgeT0iNTAi
PjwvdGV4dD4KKworPHNjcmlwdD4KK3ZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoInRleHQiKVswXTsKKworZnVuY3Rpb24gYWRkU3BhbnMoKSB7CisgICAgdmFyIHRzcGFu
MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
LCAidHNwYW4iKTsKKyAgICB0c3BhbjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlNob3VsZCBiZSBvbiIpKTsKKworICAgIHZhciB0c3BhbjIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInRzcGFuIik7CisgICAgdHNw
YW4yLnNldEF0dHJpYnV0ZSgiZHkiLCAiMzAiKTsKKyAgICB0c3BhbjIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImRpZmZlcmVudCBsaW5lcyIpKTsKKworICAgIHRleHQuYXBw
ZW5kQ2hpbGQodHNwYW4xKTsKKyAgICB0ZXh0LmFwcGVuZENoaWxkKHRzcGFuMik7CisKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBs
b2FkZWQoKSB7CisgICAgLy8gQnVnIGlzIG9ubHkgdHJpZ2dlciBmcm9tIGFub3RoZXIgbG9vcC4K
KyAgICBzZXRUaW1lb3V0KGFkZFNwYW5zLCAwKTsKK30KKzwvc2NyaXB0PgorPC9zdmc+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9oaWdoY2hhcnRz
LWFzc2VydGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9oaWdoY2hhcnRz
LWFzc2VydGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjljZmM1YTk4ZGI3NGZiZTMyYWM5
YjY3OGE2MTM0YWY5NzM2ZGQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90
ZXh0L2hpZ2hjaGFydHMtYXNzZXJ0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BB
U1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RleHQvaGlnaGNoYXJ0cy1hc3NlcnRp
b24uaHRtbCBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L2hpZ2hjaGFydHMtYXNzZXJ0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzM4NGU1NDdiMjY5MjZhNTczNGJjZTk0MTg4ZWZmOTU5ZGI0YjdmMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L2hpZ2hjaGFydHMtYXNzZXJ0aW9u
Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGhpcyB0
ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoPC90aXRsZT4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c3ZnPgorICAgIDx0ZXh0IHk9IjUwIj48dHNwYW4+IDwvdHNwYW4+PHNjcmlwdD5kb2N1
bWVudC5ib2R5Lm9mZnNldFRvcDs8L3NjcmlwdD48dHNwYW4+UEFTUzwvdHNwYW4+PC90ZXh0Pgor
PC9zdmc+Cis8L2JvZHk+Cis8L2h0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0
L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N2
Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMWY4ODliYzliNmYyZGJjODAwMjFkZGQ1NWM0YjlmMGRiNDJmZjA5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHN2Zz4KKzx0ZXh0IGlkPSJ0ZXh0IiB5PSI1MCI+PHRzcGFuPlNob3VsZCBiZSBvbjwvdHNw
YW4+PHRzcGFuIGR5PSIzMCI+ZGlmZmVyZW50IGxpbmVzPC90c3Bhbj48L3RleHQ+Cis8L3N2Zz4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L21vZGlm
eS10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L21vZGlmeS10
c3Bhbi1wb3NpdGlvbi1idWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWE5ZDA3NWE2OTVmZjJmZDRkOGU1
YWYzMWY5MGZhZWJiYTUxZmI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3Rl
eHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KKzxzdmc+Cis8dGl0
bGU+VGhpcyB0ZXN0IHVzZWQgdG8gYmUgbGFpZCBvdXQgb24gYSBzaW5nbGUgbGluZSwgaW5zdGVh
ZCBvZiBtdWx0aXBsZSBvbmVzPC90aXRsZT4KKzx0ZXh0IGlkPSJ0ZXh0IiB5PSI1MCI+PC90ZXh0
PgorCis8c2NyaXB0PgordmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
dGV4dCIpWzBdOworCitmdW5jdGlvbiBhZGRTcGFucygpIHsKKyAgICB2YXIgdHNwYW4xID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJ0c3Bh
biIpOworICAgIHRzcGFuMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiU2hv
dWxkIGJlIG9uIikpOworCisgICAgdHNwYW4yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJ0c3BhbiIpOworICAgIHRzcGFuMi5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiZGlmZmVyZW50IGxpbmVzIikpOworCisgICAg
dGV4dC5hcHBlbmRDaGlsZCh0c3BhbjEpOworICAgIHRleHQuYXBwZW5kQ2hpbGQodHNwYW4yKTsK
KworICAgIC8vIEJ1ZyBpcyBvbmx5IHRyaWdnZXIgZnJvbSBhbm90aGVyIGxvb3AuCisgICAgc2V0
VGltZW91dChtb3ZlU3BhbiwgMCk7Cit9CisKK2Z1bmN0aW9uIG1vdmVTcGFuKCkgeworICAgIHRz
cGFuMi5zZXRBdHRyaWJ1dGUoImR5IiwgIjMwIik7CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBsb2FkZWQoKSB7CisgICAgLy8g
QnVnIGlzIG9ubHkgdHJpZ2dlciBmcm9tIGFub3RoZXIgbG9vcC4KKyAgICBzZXRUaW1lb3V0KGFk
ZFNwYW5zLCAwKTsKK30KKzwvc2NyaXB0PgorPC9zdmc+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141986</attachid>
            <date>2012-05-15 09:19:36 -0700</date>
            <delta_ts>2012-05-15 13:42:25 -0700</delta_ts>
            <desc>Patch v5</desc>
            <filename>bug-83405-20120515182006.patch</filename>
            <type>text/plain</type>
            <size>46287</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZhZjMyNTExNjY1MTc3
ZDdkYzk4ZTk3M2Q0YmVmNjhmNGVkNTJkOC4uOTY0ZWM4YTllYTZiYmExMTdhNDVlNjBmZGY2YmI0
YzA4YzcyMWEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTA1LTE1ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJ
T04ocjEwNTA1Nyk6IEluZmluaXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1
cnJlbnRMb2dpY2FsQ2hhcmFjdGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEeW5hbWljYWxseSBhZGRpbmcgdHNwYW5zIGNhcnJ5aW5nIHBv
c2l0aW9uIGluZm9ybWF0aW9uIGluIHRoZSB4L3kvZHgvZHkvcm90YXRlIGxpc3RzIGlzIGJyb2tl
bi4KKyAgICAgICAgVG8gYXZvaWQgbWlzdGFrZXMgbGlrZSB0aGlzIGluIGZ1dHVyZSwgc2ltcGxp
ZnkgdGhlIGNhbGxpbmcgY29kZSBpbiBSZW5kZXJTVkdJbmxpbmVUZXh0IGFuZCBjZW50cmFsaXpl
CisgICAgICAgIHRoZSBtYW5hZ2VtZW50IG9mIGFsbCBjYWNoZXMgKHRleHQgcG9zaXRpb25pbmcg
ZWxlbWVudCBjYWNoZSAvIG1ldHJpY3MgbWFwIC8gbGF5b3V0IGF0dHJpYnV0ZXMpIGluCisgICAg
ICAgIFJlbmRlclNWR1RleHQuIFRoaXMgYXZvaWRzIHRoZSBoYWNrIGluIFNWR1Jvb3RJbmxpbmVC
b3g6OmNvbXB1dGVQZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbigpIHdoaWNoCisgICAgICAg
IGNhbGxlZCB0ZXh0Um9vdC0+cmVidWlsZExheW91dEF0dHJpYnV0ZXMoKSwgd2hpY2ggd2FzIHVz
ZWQgdG8gZml4IHByZXZpb3VzIHNlY3VyaXR5IGlzc3VlcyB3aXRoIHRoaXMgY29kZS4KKyAgICAg
ICAgSW5zdGVhZCBjb3JyZWN0bHkgaGFuZGxlIGRlc3RydWN0aW9uIG9mIFJlbmRlclNWR0lubGlu
ZVRleHQgaW4gUmVuZGVyU1ZHVGV4dCwga2VlcGluZyB0aGUgbV9sYXlvdXRBdHRyaWJ1dGVzCisg
ICAgICAgIHN5bmNocm9uaXplZCB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSByZW5kZXIg
dHJlZS4gRml4ZXMgaGlnaGNoYXJ0cyBwcm9ibGVtcy4KKworICAgICAgICBUZXN0czogc3ZnL3Rl
eHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCisgICAgICAgICAgICAgICBzdmcvdGV4dC9o
aWdoY2hhcnRzLWFzc2VydGlvbi5odG1sCisgICAgICAgICAgICAgICBzdmcvdGV4dC9tb2RpZnkt
dHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQmxvY2suaDoKKyAgICAgICAgKFJlbmRlclNWR0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bmxpbmU6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6cmVt
b3ZlQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmg6Cisg
ICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmVUZXh0
OjpzZXRUZXh0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lVGV4
dDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpSZW5kZXJTVkdUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6On5SZW5kZXJTVkdUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R1RleHQ6OnN1YnRyZWVDaGlsZFdhc0FkZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRQcmV2
aW91c0FuZE5leHRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrTGF5b3V0QXR0
cmlidXRlc0NvbnNpc3RlbmN5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6Ondp
bGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpzdWJ0cmVl
Q2hpbGRXaWxsQmVSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnN1
YnRyZWVDaGlsZFdhc1JlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6
c3VidHJlZVN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6
OnN1YnRyZWVUZXh0RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZUZvbnRJbkFs
bERlc2NlbmRhbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmxheW91dCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjphZGRDaGlsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpyZW1vdmVDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgIChSZW5kZXJTVkdUZXh0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUmVuZGVyU3VwcG9ydDo6bGF5b3V0Q2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvU1ZHUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSb290SW5saW5l
Qm94Ojpjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3JtYXRpb24pOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6YnVpbGRMYXlvdXRBdHRy
aWJ1dGVzRm9yVGV4dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlcjo6YnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yV2hvbGVUcmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6cmVidWlsZE1l
dHJpY3NGb3JUZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dExheW91dEF0
dHJpYnV0ZXNCdWlsZGVyOjpidWlsZENoYXJhY3RlckRhdGFNYXApOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmg6CisgICAgICAgIChTVkdU
ZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpudW1iZXJPZlRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKToK
KyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVu
dC5oOgorICAgICAgICAoU1ZHQUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaDoKKyAg
ICAgICAgKFNWR1RleHRDb250ZW50RWxlbWVudCk6CisKIDIwMTItMDUtMTUgIEV1Z2VuZSBLbHl1
Y2huaWtvdiAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEFkdmFuY2VkU2VhcmNoQ29udHJvbGxlciBpcyBub3Qgc3RvcHBlZCB0aGVuIHZpZXcgaXMgaGlk
ZGVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdC
bG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCmlu
ZGV4IGNhMDAwZjUwYmEyMWU0MTQ1YWFjZWRiMTMxZDNhYzBjMjg5YTg4NjEuLjllZjU1YTkxOTZh
M2JiOWMzMGVmNDc5Zjg1YjE2OTk2MWFhY2NmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKQEAgLTM0LDEzICszNCwxNSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3Q7CiAKK3By
b3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQm94TW9kZWxJbmZvRnJvbVN0eWxlKCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBM
YXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lk
IHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwogICAgIHZpcnR1YWwg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKaW5kZXggYWI4
Y2MxYTg3NTU1NGE5MDNjOGQxNDNkZGNjM2U1ZDA5NTNkNzE0My4uMmVlMTY5YTcxYjE2Y2IyYTY5
YzI0ZWJmN2IxYmJlMTM0MTRlNDA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcApAQCAtMTI0LDcgKzEyNCwyMiBAQCB2b2lkIFJlbmRl
clNWR0lubGluZTo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCkKIHsKICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGNoaWxkLCBiZWZvcmVD
aGlsZCk7CiAgICAgaWYgKFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1Rl
eHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKSkKLSAgICAgICAgdGV4dFJlbmRl
cmVyLT5sYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZChjaGlsZCk7CisgICAgICAgIHRleHRSZW5kZXJl
ci0+c3VidHJlZUNoaWxkV2FzQWRkZWQoY2hpbGQpOworfQorCit2b2lkIFJlbmRlclNWR0lubGlu
ZTo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKK3sKKyAgICBSZW5kZXJTVkdUZXh0
KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0
b3IodGhpcyk7CisgICAgaWYgKCFjaGlsZC0+aXNTVkdJbmxpbmVUZXh0KCkgfHwgIXRleHRSZW5k
ZXJlcikgeworICAgICAgICBSZW5kZXJJbmxpbmU6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRlclNWR0lubGluZVRleHQqIHRleHQgPSB0b1Jl
bmRlclNWR0lubGluZVRleHQoY2hpbGQpOworICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyosIDI+IGFmZmVjdGVkQXR0cmlidXRlczsKKyAgICB0ZXh0UmVuZGVyZXItPnN1YnRyZWVD
aGlsZFdpbGxCZVJlbW92ZWQodGV4dCwgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKKyAgICBSZW5kZXJJ
bmxpbmU6OnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICB0ZXh0UmVuZGVyZXItPnN1YnRyZWVDaGls
ZFdhc1JlbW92ZWQoYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKaW5kZXggOGFhNGFiODc1MGYyMmU4
NmNiZmY3YWUxZDYzMGU0YzdmZmU0MTU3MS4uMjUzNGEwY2E1ZGIxYTc1MmIxMTIyNTQyYzAyM2Jm
NTExMmUzYjk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5oCkBAIC01Nyw3ICs1Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0
eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHls
ZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVs
ZW1lbnQoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUNoaWxkKFJlbmRlck9iamVjdCopOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKaW5kZXggMDlkNDQ2YjdkNmVl
YjlmZjU3OGQ1NDZhMDk1MDI3NGM1YTdmYWQ0Yi4uZWZmNzA3NzI0ZTJjZjFiMzE2MjZhODRhMzll
MGEwMGEzYTI5ZWJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZVRleHQuY3BwCkBAIC03MiwzNyArNzIsMTEgQEAgUmVuZGVyU1ZHSW5s
aW5lVGV4dDo6UmVuZGVyU1ZHSW5saW5lVGV4dChOb2RlKiBuLCBQYXNzUmVmUHRyPFN0cmluZ0lt
cGw+IHN0cmluZykKIHsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0Ojp3aWxsQmVEZXN0
cm95ZWQoKQotewotICAgIFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1Rl
eHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKTsKLSAgICBpZiAoIXRleHRSZW5k
ZXJlcikgewotICAgICAgICBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IGFm
ZmVjdGVkQXR0cmlidXRlczsKLSAgICB0ZXh0UmVuZGVyZXItPmxheW91dEF0dHJpYnV0ZXNXaWxs
QmVEZXN0cm95ZWQodGhpcywgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKLQotICAgIFJlbmRlclRleHQ6
OndpbGxCZURlc3Ryb3llZCgpOwotICAgIGlmIChhZmZlY3RlZEF0dHJpYnV0ZXMuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkK
LSAgICAgICAgdGV4dFJlbmRlcmVyLT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhhZmZlY3RlZEF0
dHJpYnV0ZXMpOwotfQotCiB2b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OnNldFRleHRJbnRlcm5h
bChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHRleHQpCiB7CiAgICAgUmVuZGVyVGV4dDo6c2V0VGV4
dEludGVybmFsKHRleHQpOwotCi0gICAgLy8gV2hlbiB0aGUgdW5kZXJseWluZyB0ZXh0IGNvbnRl
bnQgY2hhbmdlcywgY2FsbCBib3RoIHRleHRET01DaGFuZ2VkKCkgJiBsYXlvdXRBdHRyaWJ1dGVz
Q2hhbmdlZCgpCi0gICAgLy8gVGhlIGZvcm1lciB3aWxsIGNsZWFyIHRoZSBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50IGNhY2hlLCB3aGljaCBkZXBlbmRzIG9uIHRoZSB0ZXh0TGVuZ3RoKCkgb2YK
LSAgICAvLyB0aGUgUmVuZGVyU1ZHSW5saW5lVGV4dCBvYmplY3RzLCBhbmQgdGh1cyBuZWVkcyB0
byBiZSByZWJ1aWxkLiBUaGUgbGF0dGVyIHdpbGwgYXNzdXJlIHRoYXQgdGhlCi0gICAgLy8gU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBSZW5kZXJTVkdJbmxpbmVU
ZXh0IHdpbGwgYmUgdXBkYXRlZC4KLSAgICBpZiAoUmVuZGVyU1ZHVGV4dCogdGV4dFJlbmRlcmVy
ID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKHRoaXMpKSB7Ci0g
ICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7
Ci0gICAgICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQodGhpcyk7Ci0g
ICAgfQorICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0
Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCisgICAgICAgIHRleHRSZW5kZXJl
ci0+c3VidHJlZVRleHREaWRDaGFuZ2UodGhpcyk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHSW5saW5l
VGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
eWxlKiBvbGRTdHlsZSkKQEAgLTEyNyw3ICsxMDEsNyBAQCB2b2lkIFJlbmRlclNWR0lubGluZVRl
eHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHls
ZQogCiAgICAgLy8gVGhlIHRleHQgbWV0cmljcyBtYXkgYmUgaW5mbHVlbmNlZCBieSBzdHlsZSBj
aGFuZ2VzLgogICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdU
ZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCi0gICAgICAgIHRleHRSZW5k
ZXJlci0+bGF5b3V0QXR0cmlidXRlc0NoYW5nZWQodGhpcyk7CisgICAgICAgIHRleHRSZW5kZXJl
ci0+c3VidHJlZVN0eWxlRGlkQ2hhbmdlKHRoaXMpOwogfQogCiBJbmxpbmVUZXh0Qm94KiBSZW5k
ZXJTVkdJbmxpbmVUZXh0OjpjcmVhdGVUZXh0Qm94KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKaW5kZXggNTEzNzhmZDA3YjZiMjMx
OTNjODEwN2QwNTVjN2YwODE2ZWVkZWY2Ny4uYWI4MWNhOTlmYTY5Mzk0N2ZkNDVmOWNjZDBlMDBl
YjI4NzNiODgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbmxpbmVUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbmxpbmVUZXh0LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVy
U1ZHSW5saW5lVGV4dCI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEludGVybmFsKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4p
OwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHQuY3BwCmluZGV4IGY1MTJhYjg3YjQzODgwZjZlYzFmMjRlYWEwYTE5ZDI5MDdmMmJh
ZjYuLjNiNjc5Yjg5NDE1NWYwM2EyZDVkOWY5Yzk3NDU4NGRlY2I5MjNkMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtNTcsMTIgKzU3
LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJlbmRlclNWR1RleHQ6OlJlbmRlclNWR1RleHQo
U1ZHVGV4dEVsZW1lbnQqIG5vZGUpIAogICAgIDogUmVuZGVyU1ZHQmxvY2sobm9kZSkKICAgICAs
IG1fbmVlZHNSZW9yZGVyaW5nKGZhbHNlKQotICAgICwgbV9uZWVkc1Bvc2l0aW9uaW5nVmFsdWVz
VXBkYXRlKHRydWUpCisgICAgLCBtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUoZmFsc2Up
CiAgICAgLCBtX25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCi0gICAgLCBtX25lZWRzVGV4dE1l
dHJpY3NVcGRhdGUodHJ1ZSkKKyAgICAsIG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0ZShmYWxzZSkK
IHsKIH0KIAorUmVuZGVyU1ZHVGV4dDo6flJlbmRlclNWR1RleHQoKQoreworICAgIEFTU0VSVCht
X2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKTsKK30KKwogYm9vbCBSZW5kZXJTVkdUZXh0Ojpp
c0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJTdHlsZSopIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGNoaWxkLT5pc0lubGluZSgpOwpAQCAtMTEwLDMxICsxMTUsMTkgQEAgdm9p
ZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLAogICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250
YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsK
IH0KIAotc3RhdGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZVVwZGF0ZUxheW91dEF0dHJpYnV0ZXMo
UmVuZGVyT2JqZWN0KiBzdGFydCwgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyJiBidWls
ZGVyKQorc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKFJlbmRlck9i
amVjdCogdGV4dCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGF0dHJpYnV0ZXMp
CiB7Ci0gICAgaWYgKHN0YXJ0LT5pc1NWR0lubGluZVRleHQoKSkgewotICAgICAgICBidWlsZGVy
LmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5kZXJlcih0b1JlbmRlclNWR0lubGluZVRl
eHQoc3RhcnQpKTsKLSAgICAgICAgcmV0dXJuOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNj
ZW5kYW50ID0gdGV4dDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJ
blByZU9yZGVyKHRleHQpKSB7CisgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1NWR0lubGluZVRl
eHQoKSkKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHRvUmVuZGVyU1ZHSW5saW5lVGV4
dChkZXNjZW5kYW50KS0+bGF5b3V0QXR0cmlidXRlcygpKTsKICAgICB9Ci0KLSAgICBmb3IgKFJl
bmRlck9iamVjdCogY2hpbGQgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgcmVjdXJzaXZlVXBkYXRlTGF5b3V0QXR0cmli
dXRlcyhjaGlsZCwgYnVpbGRlcik7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0QXR0
cmlidXRlc0NoYW5nZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKLXsKLSAgICBBU1NFUlQoY2hpbGQp
OwotICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCi0gICAgICAgIHJldHVy
bjsKLSAgICBGb250Q2FjaGVQdXJnZVByZXZlbnRlciBmb250Q2FjaGVQdXJnZVByZXZlbnRlcjsK
LSAgICByZWN1cnNpdmVVcGRhdGVMYXlvdXRBdHRyaWJ1dGVzKGNoaWxkLCBtX2xheW91dEF0dHJp
YnV0ZXNCdWlsZGVyKTsKLSAgICByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpOwogfQogCiBzdGF0
aWMgaW5saW5lIGJvb2wgZmluZFByZXZpb3VzQW5kTmV4dEF0dHJpYnV0ZXMoUmVuZGVyT2JqZWN0
KiBzdGFydCwgUmVuZGVyU1ZHSW5saW5lVGV4dCogbG9jYXRlRWxlbWVudCwgYm9vbCYgc3RvcEFm
dGVyTmV4dCwgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqJiBwcmV2aW91cywgU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXMqJiBuZXh0KQogewogICAgIEFTU0VSVChzdGFydCk7CiAgICAgQVNTRVJUKGxv
Y2F0ZUVsZW1lbnQpOworICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgaXRlcmF0aXZlLgogICAgIGZv
ciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHN0YXJ0LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+aXNTVkdJbmxp
bmVUZXh0KCkpIHsKICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQqIHRleHQgPSB0b1Jl
bmRlclNWR0lubGluZVRleHQoY2hpbGQpOwpAQCAtMTYyLDQwICsxNTUsMTczIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBmaW5kUHJldmlvdXNBbmROZXh0QXR0cmlidXRlcyhSZW5kZXJPYmplY3QqIHN0
YXJ0LCBSZW5kZXJTVkdJCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlbmRlclNWR1Rl
eHQ6OmxheW91dEF0dHJpYnV0ZXNXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCog
dGV4dCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0cmlidXRl
cykKK2lubGluZSBib29sIFJlbmRlclNWR1RleHQ6OnNoYWxsSGFuZGxlU3VidHJlZU11dGF0aW9u
cygpIGNvbnN0Cit7CisgICAgaWYgKGJlaW5nRGVzdHJveWVkKCkgfHwgIWV2ZXJIYWRMYXlvdXQo
KSkgeworICAgICAgICBBU1NFUlQobV9sYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisgICAg
ICAgIEFTU0VSVCghbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5udW1iZXJPZlRleHRQb3NpdGlv
bmluZ0VsZW1lbnRzKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIFJlbmRlclNWR1RleHQ6OnN1YnRyZWVDaGlsZFdhc0FkZGVkKFJl
bmRlck9iamVjdCogY2hpbGQpCit7CisgICAgQVNTRVJUKGNoaWxkKTsKKyAgICBpZiAoIXNoYWxs
SGFuZGxlU3VidHJlZU11dGF0aW9ucygpIHx8IGRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gVGhlIHBvc2l0aW9uaW5nIGVsZW1lbnRzIGNhY2hlIGRv
ZXNuJ3QgaW5jbHVkZSB0aGUgbmV3ICdjaGlsZCcgeWV0LiBDbGVhciB0aGUKKyAgICAvLyBjYWNo
ZSwgYXMgdGhlIG5leHQgYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKCkgY2Fs
bCByZWJ1aWxkcyBpdC4KKyAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNsZWFyVGV4dFBv
c2l0aW9uaW5nRWxlbWVudHMoKTsKKworICAgIC8vIERldGVjdCBjaGFuZ2VzIGluIGxheW91dCBh
dHRyaWJ1dGVzIGFuZCBvbmx5IG1lYXN1cmUgdGhvc2UgdGV4dCBwYXJ0cyB0aGF0IGhhdmUgY2hh
bmdlZCEKKyAgICBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiBuZXdMYXlvdXRBdHRy
aWJ1dGVzOworICAgIGNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKHRoaXMsIG5ld0xheW91dEF0dHJp
YnV0ZXMpOworICAgIGlmIChuZXdMYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgeworICAgICAg
ICBtX2xheW91dEF0dHJpYnV0ZXMuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIENvbXBhcmUgbV9sYXlvdXRBdHRyaWJ1dGVzIHdpdGggbmV3TGF5b3V0QXR0cmlidXRl
cyB0byBmaWd1cmUgb3V0IHdoaWNoIGF0dHJpYnV0ZSBnb3QgYWRkZWQuCisgICAgc2l6ZV90IHNp
emUgPSBuZXdMYXlvdXRBdHRyaWJ1dGVzLnNpemUoKTsKKyAgICBTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyogYXR0cmlidXRlcyA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsKKyAgICAgICAgYXR0cmlidXRlcyA9IG5ld0xheW91dEF0dHJpYnV0ZXNbaV07CisgICAg
ICAgIGlmIChtX2xheW91dEF0dHJpYnV0ZXMuZmluZChhdHRyaWJ1dGVzKSA9PSBub3RGb3VuZCkg
eworICAgICAgICAgICAgLy8gRXZlcnkgdGltZSB0aGlzIGlzIGludm9rZWQsIHRoZXJlJ3Mgb25s
eSBhIHNpbmdsZSBuZXcgZW50cnkgaW4gdGhlIG5ld0xheW91dEF0dHJpYnV0ZXMgbGlzdCwgY29t
cGFyZWQgdG8gdGhlIG9sZCBpbiBtX2xheW91dEF0dHJpYnV0ZXMuCisgICAgICAgICAgICBib29s
IHN0b3BBZnRlck5leHQgPSBmYWxzZTsKKyAgICAgICAgICAgIFNWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzKiBwcmV2aW91cyA9IDA7CisgICAgICAgICAgICBTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyog
bmV4dCA9IDA7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNoaWxkLCBhdHRyaWJ1dGVzLT5j
b250ZXh0KCkgPT0gY2hpbGQpOworICAgICAgICAgICAgZmluZFByZXZpb3VzQW5kTmV4dEF0dHJp
YnV0ZXModGhpcywgYXR0cmlidXRlcy0+Y29udGV4dCgpLCBzdG9wQWZ0ZXJOZXh0LCBwcmV2aW91
cywgbmV4dCk7CisKKyAgICAgICAgICAgIGlmIChwcmV2aW91cykKKyAgICAgICAgICAgICAgICBt
X2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5k
ZXJlcihwcmV2aW91cy0+Y29udGV4dCgpKTsKKyAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIuYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKGF0dHJpYnV0ZXMt
PmNvbnRleHQoKSk7CisgICAgICAgICAgICBpZiAobmV4dCkKKyAgICAgICAgICAgICAgICBtX2xh
eW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5kZXJl
cihuZXh0LT5jb250ZXh0KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gVmVyaWZ5IHRoYXQgbV9sYXlvdXRBdHRyaWJ1dGVz
IG9ubHkgZGlmZmVycyBieSBhIG1heGltdW0gb2Ygb25lIGVudHJ5LgorICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBBU1NFUlQobV9sYXlvdXRBdHRyaWJ1dGVz
LmZpbmQobmV3TGF5b3V0QXR0cmlidXRlc1tpXSkgIT0gbm90Rm91bmQgfHwgbmV3TGF5b3V0QXR0
cmlidXRlc1tpXSA9PSBhdHRyaWJ1dGVzKTsKKyNlbmRpZgorCisgICAgbV9sYXlvdXRBdHRyaWJ1
dGVzID0gbmV3TGF5b3V0QXR0cmlidXRlczsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNoZWNr
TGF5b3V0QXR0cmlidXRlc0NvbnNpc3RlbmN5KFJlbmRlclNWR1RleHQqIHRleHQsIFZlY3RvcjxT
VkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBleHBlY3RlZExheW91dEF0dHJpYnV0ZXMpCit7Cisj
aWZuZGVmIE5ERUJVRworICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IG5ld0xh
eW91dEF0dHJpYnV0ZXM7CisgICAgY29sbGVjdExheW91dEF0dHJpYnV0ZXModGV4dCwgbmV3TGF5
b3V0QXR0cmlidXRlcyk7CisgICAgQVNTRVJUKG5ld0xheW91dEF0dHJpYnV0ZXMgPT0gZXhwZWN0
ZWRMYXlvdXRBdHRyaWJ1dGVzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRleHQpOworICAg
IFVOVVNFRF9QQVJBTShleHBlY3RlZExheW91dEF0dHJpYnV0ZXMpOworI2VuZGlmCit9CisKK3Zv
aWQgUmVuZGVyU1ZHVGV4dDo6d2lsbEJlRGVzdHJveWVkKCkKK3sKKyAgICBtX2xheW91dEF0dHJp
YnV0ZXMuY2xlYXIoKTsKKyAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNsZWFyVGV4dFBv
c2l0aW9uaW5nRWxlbWVudHMoKTsKKworICAgIFJlbmRlclNWR0Jsb2NrOjp3aWxsQmVEZXN0cm95
ZWQoKTsKK30KKwordm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVk
KFJlbmRlclNWR0lubGluZVRleHQqIHRleHQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRl
cyosIDI+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpCiB7CiAgICAgQVNTRVJUKHRleHQpOwotICAgIGlm
IChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCisgICAgaWYgKCFzaGFsbEhhbmRsZVN1
YnRyZWVNdXRhdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hlY2tMYXlvdXRBdHRy
aWJ1dGVzQ29uc2lzdGVuY3kodGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKKworICAgIC8vIFRo
ZSBwb3NpdGlvbmluZyBlbGVtZW50cyBjYWNoZSBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIGVhY2gg
dGV4dCByZW5kZXJlciBpbiB0aGUKKyAgICAvLyBzdWJ0cmVlLiBJZiB0aGlzIGNoYW5nZXMsIGNs
ZWFyIHRoZSBjYWNoZS4gSXQncyBnb2luZyB0byBiZSByZWJ1aWx0IGJlbG93LgorICAgIG1fbGF5
b3V0QXR0cmlidXRlc0J1aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOworICAg
IGlmIChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKKyAg
ICAvLyBUaGlzIGxvZ2ljIHJlcXVpcmVzIHRoYXQgdGhlICd0ZXh0JyBjaGlsZCBpcyBzdGlsbCBp
bnNlcnRlZCBpbiB0aGUgdHJlZS4KICAgICBib29sIHN0b3BBZnRlck5leHQgPSBmYWxzZTsKICAg
ICBTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyogcHJldmlvdXMgPSAwOwogICAgIFNWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzKiBuZXh0ID0gMDsKLSAgICBmaW5kUHJldmlvdXNBbmROZXh0QXR0cmlidXRl
cyh0aGlzLCB0ZXh0LCBzdG9wQWZ0ZXJOZXh0LCBwcmV2aW91cywgbmV4dCk7CisgICAgaWYgKCFk
b2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIGZpbmRQcmV2aW91c0FuZE5leHRBdHRy
aWJ1dGVzKHRoaXMsIHRleHQsIHN0b3BBZnRlck5leHQsIHByZXZpb3VzLCBuZXh0KTsKKwogICAg
IGlmIChwcmV2aW91cykKICAgICAgICAgYWZmZWN0ZWRBdHRyaWJ1dGVzLmFwcGVuZChwcmV2aW91
cyk7CiAgICAgaWYgKG5leHQpCiAgICAgICAgIGFmZmVjdGVkQXR0cmlidXRlcy5hcHBlbmQobmV4
dCk7CisKKyAgICBzaXplX3QgcG9zaXRpb24gPSBtX2xheW91dEF0dHJpYnV0ZXMuZmluZCh0ZXh0
LT5sYXlvdXRBdHRyaWJ1dGVzKCkpOworICAgIEFTU0VSVChwb3NpdGlvbiAhPSBub3RGb3VuZCk7
CisgICAgbV9sYXlvdXRBdHRyaWJ1dGVzLnJlbW92ZShwb3NpdGlvbik7CiB9CiAKLXZvaWQgUmVu
ZGVyU1ZHVGV4dDo6aW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCkKK3ZvaWQgUmVu
ZGVyU1ZHVGV4dDo6c3VidHJlZUNoaWxkV2FzUmVtb3ZlZChjb25zdCBWZWN0b3I8U1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXMqLCAyPiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKQogewotICAgIC8vIENsZWFy
IHRoZSB0ZXh0IHBvc2l0aW9uaW5nIGVsZW1lbnRzLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgd2hl
biBlaXRoZXIgdGhlIGNoaWxkcmVuCi0gICAgLy8gb2YgYSBET00gdGV4dCBlbGVtZW50IGhhdmUg
Y2hhbmdlZCwgb3IgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBpbiBhbnkgY2hpbGQgZWxlbWVudAot
ICAgIC8vIGhhcyBjaGFuZ2VkLiBGYWlsdXJlIHRvIGNsZWFyIG1heSBsZWF2ZSB1cyB3aXRoIGlu
dmFsaWQgZWxlbWVudHMsIGFzIG90aGVyIGNvZGUgcGF0aHMKLSAgICAvLyBkbyBub3QgYWx3YXlz
IGNhdXNlIHRoZSBwb3NpdGlvbiBlbGVtZW50cyB0byBiZSBtYXJrZWQgaW52YWxpZCBiZWZvcmUg
dXNlLgotICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdF
bGVtZW50cygpOworICAgIGlmICghc2hhbGxIYW5kbGVTdWJ0cmVlTXV0YXRpb25zKCkgfHwgZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CisgICAgICAgIEFTU0VSVChhZmZlY3RlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRoaXMgaXMg
Y2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIHN1YnRyZWVDaGlsZFdpbGxCZURlc3Ryb3llZCwgb25j
ZSB0aGUgUmVuZGVyU1ZHSW5saW5lVGV4dDo6d2lsbEJlRGVzdHJveWVkKCkgbWV0aG9kCisgICAg
Ly8gcGFzc2VzIG9uIHRvIHRoZSBiYXNlIGNsYXNzLCB3aGljaCByZW1vdmVzIHVzIGZyb20gdGhl
IHJlbmRlciB0cmVlLiBBdCB0aGlzIHBvaW50IHdlIGNhbiB1cGRhdGUgdGhlIGxheW91dCBhdHRy
aWJ1dGVzLgorICAgIHVuc2lnbmVkIHNpemUgPSBhZmZlY3RlZEF0dHJpYnV0ZXMuc2l6ZSgpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG1fbGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIuYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKGFm
ZmVjdGVkQXR0cmlidXRlc1tpXS0+Y29udGV4dCgpKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lk
IHJlY3Vyc2l2ZVVwZGF0ZVNjYWxlZEZvbnQoUmVuZGVyT2JqZWN0KiBzdGFydCkKK3ZvaWQgUmVu
ZGVyU1ZHVGV4dDo6c3VidHJlZVN0eWxlRGlkQ2hhbmdlKFJlbmRlclNWR0lubGluZVRleHQqIHRl
eHQpCiB7Ci0gICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gc3RhcnQtPmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGNo
aWxkLT5pc1NWR0lubGluZVRleHQoKSkgewotICAgICAgICAgICAgdG9SZW5kZXJTVkdJbmxpbmVU
ZXh0KGNoaWxkKS0+dXBkYXRlU2NhbGVkRm9udCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIH0KKyAgICBBU1NFUlQodGV4dCk7CisgICAgaWYgKCFzaGFsbEhhbmRsZVN1YnRyZWVN
dXRhdGlvbnMoKSB8fCBkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNoZWNrTGF5b3V0QXR0cmlidXRlc0NvbnNpc3RlbmN5KHRoaXMsIG1fbGF5b3V0QXR0
cmlidXRlcyk7CisKKyAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgbWV0cmljcyBjYWNoZSwgYnV0IG5v
dCB0aGUgdGV4dCBwb3NpdGlvbmluZyBlbGVtZW50IGNhY2hlCisgICAgLy8gbm9yIHRoZSBsYXlv
dXQgYXR0cmlidXRlcyBjYWNoZWQgaW4gdGhlIGxlYWYgI3RleHQgcmVuZGVyZXJzLgorICAgIEZv
bnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOworICAgIGZvciAo
UmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gdGV4dDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9
IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHRleHQpKSB7CisgICAgICAgIGlmIChkZXNjZW5k
YW50LT5pc1NWR0lubGluZVRleHQoKSkKKyAgICAgICAgICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIucmVidWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIodG9SZW5kZXJTVkdJbmxpbmVUZXh0
KGRlc2NlbmRhbnQpKTsKKyAgICB9Cit9CiAKLSAgICAgICAgcmVjdXJzaXZlVXBkYXRlU2NhbGVk
Rm9udChjaGlsZCk7Cit2b2lkIFJlbmRlclNWR1RleHQ6OnN1YnRyZWVUZXh0RGlkQ2hhbmdlKFJl
bmRlclNWR0lubGluZVRleHQqIHRleHQpCit7CisgICAgQVNTRVJUKHRleHQpOworICAgIEFTU0VS
VCghYmVpbmdEZXN0cm95ZWQoKSk7CisgICAgaWYgKCFldmVySGFkTGF5b3V0KCkpIHsKKyAgICAg
ICAgQVNTRVJUKG1fbGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpOworICAgICAgICBBU1NFUlQo
IW1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIubnVtYmVyT2ZUZXh0UG9zaXRpb25pbmdFbGVtZW50
cygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRoZSBwb3NpdGlvbmluZyBl
bGVtZW50cyBjYWNoZSBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIGVhY2ggdGV4dCByZW5kZXJlciBp
biB0aGUKKyAgICAvLyBzdWJ0cmVlLiBJZiB0aGlzIGNoYW5nZXMsIGNsZWFyIHRoZSBjYWNoZS4g
SXQncyBnb2luZyB0byBiZSByZWJ1aWx0IGJlbG93LgorICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOworCisgICAgY2hlY2tMYXlvdXRB
dHRyaWJ1dGVzQ29uc2lzdGVuY3kodGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKKyAgICBmb3Ig
KFJlbmRlck9iamVjdCogZGVzY2VuZGFudCA9IHRleHQ7IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQg
PSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcih0ZXh0KSkgeworICAgICAgICBpZiAoZGVzY2Vu
ZGFudC0+aXNTVkdJbmxpbmVUZXh0KCkpCisgICAgICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNC
dWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRleHRSZW5kZXJlcih0b1JlbmRlclNWR0lu
bGluZVRleHQoZGVzY2VuZGFudCkpOworICAgIH0KK30KKworc3RhdGljIGlubGluZSB2b2lkIHVw
ZGF0ZUZvbnRJbkFsbERlc2NlbmRhbnRzKFJlbmRlck9iamVjdCogc3RhcnQpCit7CisgICAgZm9y
IChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSBzdGFydDsgZGVzY2VuZGFudDsgZGVzY2VuZGFu
dCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHN0YXJ0KSkgeworICAgICAgICBpZiAoZGVz
Y2VuZGFudC0+aXNTVkdJbmxpbmVUZXh0KCkpCisgICAgICAgICAgICB0b1JlbmRlclNWR0lubGlu
ZVRleHQoZGVzY2VuZGFudCktPnVwZGF0ZVNjYWxlZEZvbnQoKTsKICAgICB9CiB9CiAKQEAgLTIx
MiwyMyArMzM4LDQ5IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0KCkKICAgICAgICAgdXBk
YXRlQ2FjaGVkQm91bmRhcmllc0luUGFyZW50cyA9IHRydWU7CiAgICAgfQogCi0gICAgLy8gSWYg
dGhlIHJvb3QgbGF5b3V0IHNpemUgY2hhbmdlZCAoZWcuIHdpbmRvdyBzaXplIGNoYW5nZXMpIG9y
IHRoZSBwb3NpdGlvbmluZyB2YWx1ZXMgY2hhbmdlCi0gICAgLy8gb3IgdGhlIHRyYW5zZm9ybSB0
byB0aGUgcm9vdCBjb250ZXh0IGhhcyBjaGFuZ2VkIHRoZW4gcmVjb21wdXRlIHRoZSBvbi1zY3Jl
ZW4gZm9udCBzaXplLgotICAgIGlmIChtX25lZWRzVGV4dE1ldHJpY3NVcGRhdGUgfHwgU1ZHUmVu
ZGVyU3VwcG9ydDo6ZmluZFRyZWVSb290T2JqZWN0KHRoaXMpLT5pc0xheW91dFNpemVDaGFuZ2Vk
KCkpIHsKLSAgICAgICAgcmVjdXJzaXZlVXBkYXRlU2NhbGVkRm9udCh0aGlzKTsKLSAgICAgICAg
cmVidWlsZExheW91dEF0dHJpYnV0ZXModHJ1ZSk7Ci0gICAgICAgIHVwZGF0ZUNhY2hlZEJvdW5k
YXJpZXNJblBhcmVudHMgPSB0cnVlOworICAgIGlmICghZXZlckhhZExheW91dCgpKSB7CisgICAg
ICAgIC8vIFdoZW4gbGF5aW5nIG91dCBpbml0aWFsbHksIGNvbGxlY3QgYWxsIGxheW91dCBhdHRy
aWJ1dGVzLCBidWlsZCB0aGUgY2hhcmFjdGVyIGRhdGEgbWFwLAorICAgICAgICAvLyBhbmQgcHJv
cG9nYXRlIHJlc3VsdGluZyBTVkdMYXlvdXRBdHRyaWJ1dGVzIHRvIGFsbCBSZW5kZXJTVkdJbmxp
bmVUZXh0IGNoaWxkcmVuIGluIHRoZSBzdWJ0cmVlLgorICAgICAgICBBU1NFUlQobV9sYXlvdXRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisgICAgICAgIGNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKHRo
aXMsIG1fbGF5b3V0QXR0cmlidXRlcyk7CisgICAgICAgIHVwZGF0ZUZvbnRJbkFsbERlc2NlbmRh
bnRzKHRoaXMpOworICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmJ1aWxkTGF5b3V0
QXR0cmlidXRlc0Zvcldob2xlVHJlZSh0aGlzKTsKKworICAgICAgICBtX25lZWRzUmVvcmRlcmlu
ZyA9IHRydWU7CiAgICAgICAgIG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0ZSA9IGZhbHNlOwotICAg
IH0KKyAgICAgICAgbV9uZWVkc1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlID0gZmFsc2U7CisgICAg
ICAgIHVwZGF0ZUNhY2hlZEJvdW5kYXJpZXNJblBhcmVudHMgPSB0cnVlOworICAgIH0gZWxzZSBp
ZiAobV9uZWVkc1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlKSB7CisgICAgICAgIC8vIFdoZW4gdGhl
IHgveS9keC9keS9yb3RhdGUgbGlzdHMgY2hhbmdlLCByZWNvbXB1dGUgdGhlIGxheW91dCBhdHRy
aWJ1dGVzLCBhbmQgZXZlbnR1YWxseQorICAgICAgICAvLyB1cGRhdGUgdGhlIG9uLXNjcmVlbiBm
b250IG9iamVjdHMgYXMgd2VsbCBpbiBhbGwgZGVzY2VuZGFudHMuCisgICAgICAgIGlmIChtX25l
ZWRzVGV4dE1ldHJpY3NVcGRhdGUpIHsKKyAgICAgICAgICAgIHVwZGF0ZUZvbnRJbkFsbERlc2Nl
bmRhbnRzKHRoaXMpOworICAgICAgICAgICAgbV9uZWVkc1RleHRNZXRyaWNzVXBkYXRlID0gZmFs
c2U7CisgICAgICAgIH0KIAotICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUp
IHsKLSAgICAgICAgLy8gUGVyZm9ybSBTVkcgdGV4dCBsYXlvdXQgcGhhc2Ugb25lIChzZWUgU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyIGZvciBkZXRhaWxzKS4KICAgICAgICAgbV9sYXlv
dXRBdHRyaWJ1dGVzQnVpbGRlci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUodGhp
cyk7CiAgICAgICAgIG1fbmVlZHNSZW9yZGVyaW5nID0gdHJ1ZTsKICAgICAgICAgbV9uZWVkc1Bv
c2l0aW9uaW5nVmFsdWVzVXBkYXRlID0gZmFsc2U7CiAgICAgICAgIHVwZGF0ZUNhY2hlZEJvdW5k
YXJpZXNJblBhcmVudHMgPSB0cnVlOworICAgIH0gZWxzZSBpZiAobV9uZWVkc1RleHRNZXRyaWNz
VXBkYXRlIHx8IFNWR1JlbmRlclN1cHBvcnQ6OmZpbmRUcmVlUm9vdE9iamVjdCh0aGlzKS0+aXNM
YXlvdXRTaXplQ2hhbmdlZCgpKSB7CisgICAgICAgIC8vIElmIHRoZSByb290IGxheW91dCBzaXpl
IGNoYW5nZWQgKGVnLiB3aW5kb3cgc2l6ZSBjaGFuZ2VzKSBvciB0aGUgdHJhbnNmb3JtIHRvIHRo
ZSByb290CisgICAgICAgIC8vIGNvbnRleHQgaGFzIGNoYW5nZWQgdGhlbiByZWNvbXB1dGUgdGhl
IG9uLXNjcmVlbiBmb250IHNpemUuCisgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5k
YW50ID0gdGhpczsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblBy
ZU9yZGVyKHRoaXMpKSB7CisgICAgICAgICAgICBpZiAoIWRlc2NlbmRhbnQtPmlzU1ZHSW5saW5l
VGV4dCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCogdGV4dCA9IHRvUmVuZGVyU1ZHSW5saW5lVGV4dChkZXNjZW5kYW50KTsKKyAg
ICAgICAgICAgIHRleHQtPnVwZGF0ZVNjYWxlZEZvbnQoKTsKKyAgICAgICAgICAgIG1fbGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIucmVidWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIodGV4dCk7Cisg
ICAgICAgIH0KKworICAgICAgICBBU1NFUlQoIW1fbmVlZHNSZW9yZGVyaW5nKTsKKyAgICAgICAg
QVNTRVJUKCFtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpOworICAgICAgICBtX25lZWRz
VGV4dE1ldHJpY3NVcGRhdGUgPSBmYWxzZTsKKyAgICAgICAgdXBkYXRlQ2FjaGVkQm91bmRhcmll
c0luUGFyZW50cyA9IHRydWU7CiAgICAgfQogCisgICAgY2hlY2tMYXlvdXRBdHRyaWJ1dGVzQ29u
c2lzdGVuY3kodGhpcywgbV9sYXlvdXRBdHRyaWJ1dGVzKTsKKwogICAgIC8vIFJlZHVjZWQgdmVy
c2lvbiBvZiBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soKSwgd2hpY2ggb25seSB0YWtlcyBjYXJl
IG9mIFNWRyB0ZXh0LgogICAgIC8vIEFsbCBpZiBicmFuY2hlcyB0aGF0IGNvdWxkIGNhdXNlIGVh
cmx5IGV4aXQgaW4gUmVuZGVyQmxvY2tzIGxheW91dEJsb2NrKCkgbWV0aG9kIGFyZSB0dXJuZWQg
aW50byBhc3NlcnRpb25zLgogICAgIEFTU0VSVCghaXNJbmxpbmUoKSk7CkBAIC0zNjQsNyArNTE2
LDIxIEBAIEZsb2F0UmVjdCBSZW5kZXJTVkdUZXh0OjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGlu
YXRlcygpIGNvbnN0CiB2b2lkIFJlbmRlclNWR1RleHQ6OmFkZENoaWxkKFJlbmRlck9iamVjdCog
Y2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiB7CiAgICAgUmVuZGVyU1ZHQmxvY2s6
OmFkZENoaWxkKGNoaWxkLCBiZWZvcmVDaGlsZCk7Ci0gICAgbGF5b3V0QXR0cmlidXRlc0NoYW5n
ZWQoY2hpbGQpOworICAgIHN1YnRyZWVDaGlsZFdhc0FkZGVkKGNoaWxkKTsKK30KKwordm9pZCBS
ZW5kZXJTVkdUZXh0OjpyZW1vdmVDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKQoreworICAgIGlm
ICghY2hpbGQtPmlzU1ZHSW5saW5lVGV4dCgpKSB7CisgICAgICAgIFJlbmRlclNWR0Jsb2NrOjpy
ZW1vdmVDaGlsZChjaGlsZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZW5kZXJT
VkdJbmxpbmVUZXh0KiB0ZXh0ID0gdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxkKTsKKyAgICBW
ZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqLCAyPiBhZmZlY3RlZEF0dHJpYnV0ZXM7Cisg
ICAgc3VidHJlZUNoaWxkV2lsbEJlUmVtb3ZlZCh0ZXh0LCBhZmZlY3RlZEF0dHJpYnV0ZXMpOwor
ICAgIFJlbmRlclNWR0Jsb2NrOjpyZW1vdmVDaGlsZChjaGlsZCk7CisgICAgc3VidHJlZUNoaWxk
V2FzUmVtb3ZlZChhZmZlY3RlZEF0dHJpYnV0ZXMpOwogfQogCiAvLyBGaXggZm9yIDxyZGFyOi8v
cHJvYmxlbS84MDQ4ODc1Pi4gV2Ugc2hvdWxkIG5vdCByZW5kZXIgOmZpcnN0LWxpbmUgQ1NTIFN0
eWxlCkBAIC0zODAsNjEgKzU0Niw2IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6dXBkYXRlRmlyc3RM
ZXR0ZXIoKQogewogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZlQ29sbGVjdExheW91
dEF0dHJpYnV0ZXMoUmVuZGVyT2JqZWN0KiBzdGFydCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRy
aWJ1dGVzKj4mIGF0dHJpYnV0ZXMpCi17Ci0gICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0g
c3RhcnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKLSAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHQoKSkgewotICAgICAgICAgICAg
YXR0cmlidXRlcy5hcHBlbmQodG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxkKS0+bGF5b3V0QXR0
cmlidXRlcygpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXMoY2hpbGQsIGF0dHJpYnV0ZXMpOwotICAg
IH0KLX0KLQotdm9pZCBSZW5kZXJTVkdUZXh0OjpyZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhib29s
IHBlcmZvcm1GdWxsUmVidWlsZCkKLXsKLSAgICBpZiAocGVyZm9ybUZ1bGxSZWJ1aWxkKQotICAg
ICAgICBtX2xheW91dEF0dHJpYnV0ZXMuY2xlYXIoKTsKLQotICAgIGlmIChtX2xheW91dEF0dHJp
YnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRBdHRyaWJ1
dGVzKHRoaXMsIG1fbGF5b3V0QXR0cmlidXRlcyk7Ci0gICAgICAgIGlmIChtX2xheW91dEF0dHJp
YnV0ZXMuaXNFbXB0eSgpIHx8ICFwZXJmb3JtRnVsbFJlYnVpbGQpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmljc0Zv
cldob2xlVHJlZSh0aGlzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFZlY3RvcjxT
VkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IGFmZmVjdGVkQXR0cmlidXRlczsKLSAgICByZWJ1aWxk
TGF5b3V0QXR0cmlidXRlcyhhZmZlY3RlZEF0dHJpYnV0ZXMpOwotfQotCi12b2lkIFJlbmRlclNW
R1RleHQ6OnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpCi17Ci0gICAgLy8gRGV0ZWN0IGNoYW5nZXMgaW4g
bGF5b3V0IGF0dHJpYnV0ZXMgYW5kIG9ubHkgbWVhc3VyZSB0aG9zZSB0ZXh0IHBhcnRzIHRoYXQg
aGF2ZSBjaGFuZ2VkIQotICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IG5ld0xh
eW91dEF0dHJpYnV0ZXM7Ci0gICAgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXModGhp
cywgbmV3TGF5b3V0QXR0cmlidXRlcyk7Ci0gICAgaWYgKG5ld0xheW91dEF0dHJpYnV0ZXMuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVhcigpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ29tcGFyZSBtX2xheW91dEF0dHJpYnV0ZXMgd2l0aCBu
ZXdMYXlvdXRBdHRyaWJ1dGVzIHRvIGZpZ3VyZSBvdXQgd2hpY2ggYXR0cmlidXRlcyBnb3QgYWRk
ZWQvcmVtb3ZlZC4KLSAgICBzaXplX3Qgc2l6ZSA9IG5ld0xheW91dEF0dHJpYnV0ZXMuc2l6ZSgp
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFNWR1Rl
eHRMYXlvdXRBdHRyaWJ1dGVzKiBhdHRyaWJ1dGVzID0gbmV3TGF5b3V0QXR0cmlidXRlc1tpXTsK
LSAgICAgICAgaWYgKG1fbGF5b3V0QXR0cmlidXRlcy5maW5kKGF0dHJpYnV0ZXMpID09IG5vdEZv
dW5kKQotICAgICAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmlj
c0ZvclRleHRSZW5kZXJlcihhdHRyaWJ1dGVzLT5jb250ZXh0KCkpOwotICAgIH0KLQotICAgIHNp
emUgPSBhZmZlY3RlZEF0dHJpYnV0ZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc2l6ZTsgKytpKQotICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVpbGRN
ZXRyaWNzRm9yVGV4dFJlbmRlcmVyKGFmZmVjdGVkQXR0cmlidXRlc1tpXS0+Y29udGV4dCgpKTsK
LQotICAgIG1fbGF5b3V0QXR0cmlidXRlcyA9IG5ld0xheW91dEF0dHJpYnV0ZXM7Ci19Ci0KIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5oCmluZGV4IDU2NjViNDQ0MmU0YzA3MTZlZTk1N2Y2ZDQwMzI3Njk4OGI2
N2Q5ZmEuLjFjNzI5MzY2MDFhNjEzZTIzZmQ4MTI0MTNjN2JhZDg0ZDMxMDEyYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC0zNiw2ICszNiw3
IEBAIGNsYXNzIFJlbmRlclNWR0lubGluZVRleHQ7CiBjbGFzcyBSZW5kZXJTVkdUZXh0IDogcHVi
bGljIFJlbmRlclNWR0Jsb2NrIHsKIHB1YmxpYzoKICAgICBSZW5kZXJTVkdUZXh0KFNWR1RleHRF
bGVtZW50Kik7CisgICAgdmlydHVhbCB+UmVuZGVyU1ZHVGV4dCgpOwogCiAgICAgdmlydHVhbCBi
b29sIGlzQ2hpbGRBbGxvd2VkKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKikgY29uc3Q7CiAK
QEAgLTQ4LDE4ICs0OSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFJlbmRlclNWR1Rl
eHQqIGxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcihjb25zdCBSZW5kZXJPYmplY3QqKTsKIAog
ICAgIGJvb2wgbmVlZHNSZW9yZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1Jlb3JkZXJp
bmc7IH0KLQotICAgIC8vIENhbGwgdGhpcyBtZXRob2Qgd2hlbiBlaXRoZXIgdGhlIGNoaWxkcmVu
IG9mIGEgRE9NIHRleHQgZWxlbWVudCBoYXZlIGNoYW5nZWQsIG9yIHRoZSBsZW5ndGggb2YKLSAg
ICAvLyB0aGUgdGV4dCBpbiBhbnkgY2hpbGQgZWxlbWVudCBoYXMgY2hhbmdlZC4KLSAgICB2b2lk
IGludmFsaWRhdGVUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOwotCi0gICAgdm9pZCBsYXlvdXRB
dHRyaWJ1dGVzQ2hhbmdlZChSZW5kZXJPYmplY3QqKTsKLSAgICB2b2lkIGxheW91dEF0dHJpYnV0
ZXNXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCosIFZlY3RvcjxTVkdUZXh0TGF5
b3V0QXR0cmlidXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOwotICAgIHZvaWQgcmVidWlsZExh
eW91dEF0dHJpYnV0ZXMoYm9vbCBwZXJmb3JtRnVsbFJlYnVpbGQgPSBmYWxzZSk7Ci0gICAgdm9p
ZCByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMq
PiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKLQogICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmli
dXRlcyo+JiBsYXlvdXRBdHRyaWJ1dGVzKCkgeyByZXR1cm4gbV9sYXlvdXRBdHRyaWJ1dGVzOyB9
CiAKKyAgICB2b2lkIHN1YnRyZWVDaGlsZFdhc0FkZGVkKFJlbmRlck9iamVjdCopOworICAgIHZv
aWQgc3VidHJlZUNoaWxkV2lsbEJlUmVtb3ZlZChSZW5kZXJTVkdJbmxpbmVUZXh0KiwgVmVjdG9y
PFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiwgMj4mIGFmZmVjdGVkQXR0cmlidXRlcyk7CisgICAg
dm9pZCBzdWJ0cmVlQ2hpbGRXYXNSZW1vdmVkKGNvbnN0IFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0
cmlidXRlcyosIDI+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOworICAgIHZvaWQgc3VidHJlZVN0eWxl
RGlkQ2hhbmdlKFJlbmRlclNWR0lubGluZVRleHQqKTsKKyAgICB2b2lkIHN1YnRyZWVUZXh0RGlk
Q2hhbmdlKFJlbmRlclNWR0lubGluZVRleHQqKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHVGV4dCI7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdUZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAt
ODAsNiArNzcsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJh
bnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmLCBBcHBseUNvbnRhaW5lckZsaXBP
ck5vdCA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0
KiBiZWZvcmVDaGlsZCA9IDApOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJP
YmplY3QqKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKICAgICB2aXJ0
dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIGZyYW1lUmVj
dCgpOyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdDsK
QEAgLTkxLDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBmaXJz
dExpbmVCbG9jaygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGaXJzdExldHRlcigp
OwogCisgICAgYm9vbCBzaGFsbEhhbmRsZVN1YnRyZWVNdXRhdGlvbnMoKSBjb25zdDsKKwogICAg
IGJvb2wgbV9uZWVkc1Jlb3JkZXJpbmcgOiAxOwogICAgIGJvb2wgbV9uZWVkc1Bvc2l0aW9uaW5n
VmFsdWVzVXBkYXRlIDogMTsKICAgICBib29sIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgOiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAK
aW5kZXggYjIwNmNiNmMyY2RiMTBiYjY5OWUwNDMwYjMxZTdiYmYzMDU0OGM4YS4uZGRjN2M5MTU1
Nzk0ODhkMDIwNTBhNTE0ZmFiYjY3MTFjMzhhMjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC0xOTcsOCArMTk3LDEwIEBA
IHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bGF5b3V0Q2hpbGRyZW4oUmVuZGVyT2JqZWN0KiBzdGFy
dCwgYm9vbCBzZWxmTmVlZHNMYXlvdXQpCiAgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhl
IGxheW91dCBzaXplIGNoYW5nZWQgYW5kIHdoZW4gdXNpbmcgcmVsYXRpdmUgdmFsdWVzIHRlbGwg
dGhlIFJlbmRlclNWR1NoYXBlIHRvIHVwZGF0ZSBpdHMgc2hhcGUgb2JqZWN0CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChjaGlsZC0+aXNTVkdTaGFwZSgpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgdG9SZW5kZXJTVkdTaGFwZShjaGlsZCktPnNldE5lZWRzU2hhcGVVcGRhdGUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGQtPmlzU1ZHVGV4dCgpKQorICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmIChjaGlsZC0+aXNTVkdUZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRvUmVuZGVyU1ZHVGV4dChjaGlsZCktPnNldE5lZWRzVGV4dE1ldHJpY3NVcGRhdGUo
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRvUmVuZGVyU1ZHVGV4dChjaGlsZCktPnNldE5l
ZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAgICAgICAgIG5lZWRzTGF5b3V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNw
cAppbmRleCA1NzE0NmM5MGM4MzhhYjY1MzNhNDNlNzM4MDU2ZTM4MmU1ZTg1YzlmLi4zNGU5M2Ew
MmVmNzQzMmUzYzI2ZWYyMzYwZDFjZjNmZDQzN2U0MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKQEAgLTczLDcgKzczLDYgQEAg
dm9pZCBTVkdSb290SW5saW5lQm94Ojpjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3JtYXRp
b24oKQogICAgIFJlbmRlclNWR1RleHQqIHRleHRSb290ID0gdG9SZW5kZXJTVkdUZXh0KGJsb2Nr
KCkpOwogICAgIEFTU0VSVCh0ZXh0Um9vdCk7CiAKLSAgICB0ZXh0Um9vdC0+cmVidWlsZExheW91
dEF0dHJpYnV0ZXMoKTsKICAgICBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiYgbGF5
b3V0QXR0cmlidXRlcyA9IHRleHRSb290LT5sYXlvdXRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKGxh
eW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzQnVpbGRlci5jcHAKaW5kZXggMDJhMjEyM2ViNjY3ZWNjZjczZjA4MGY2YmI0ZTZmZWNhNWQy
ZjNlNi4uZGJlM2JjMTkxOTA0ZDc2YTA4ODc3OTFhNzI0ZTIyYWU4OWZiMDhkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcApAQCAtMjYsOSArMjYsNiBAQAogI2luY2x1ZGUgIlJlbmRl
clNWR1RleHQuaCIKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgiCiAKLS8v
IFNldCB0byBhIHZhbHVlID4gMCB0byBkdW1wIHRoZSB0ZXh0IGxheW91dCBhdHRyaWJ1dGVzCi0j
ZGVmaW5lIERVTVBfVEVYVF9MQVlPVVRfQVRUUklCVVRFUyAwCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpTVkdUZXh0TGF5b3V0QXR0cmli
dXRlc0J1aWxkZXIoKQpAQCAtNDQsNDEgKzQxLDI3IEBAIHZvaWQgU1ZHVGV4dExheW91dEF0dHJp
YnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVyZXIoUmVuZGVy
CiAgICAgaWYgKCF0ZXh0Um9vdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFidWlsZExh
eW91dEF0dHJpYnV0ZXNJZk5lZWRlZCh0ZXh0Um9vdCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fbWV0cmljc0J1aWxkZXIuYnVpbGRNZXRyaWNzQW5kTGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9v
dCwgdGV4dCwgbV9jaGFyYWN0ZXJEYXRhTWFwKTsKLX0KKyAgICBpZiAobV90ZXh0UG9zaXRpb25z
LmlzRW1wdHkoKSkgeworICAgICAgICBtX2NoYXJhY3RlckRhdGFNYXAuY2xlYXIoKTsKIAotdm9p
ZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlc0Zv
cldob2xlVHJlZShSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKLXsKLSAgICBBU1NFUlQodGV4dFJv
b3QpOworICAgICAgICBtX3RleHRMZW5ndGggPSAwOworICAgICAgICBjb25zdCBVQ2hhciogbGFz
dENoYXJhY3RlciA9IDA7CisgICAgICAgIGNvbGxlY3RUZXh0UG9zaXRpb25pbmdFbGVtZW50cyh0
ZXh0Um9vdCwgbGFzdENoYXJhY3Rlcik7CiAKLSAgICBpZiAoIWJ1aWxkTGF5b3V0QXR0cmlidXRl
c0lmTmVlZGVkKHRleHRSb290KSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoIW1fdGV4
dExlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIG1fbWV0cmljc0J1aWxkZXIuYnVp
bGRNZXRyaWNzQW5kTGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9vdCwgMCwgbV9jaGFyYWN0ZXJEYXRh
TWFwKTsKLX0KKyAgICAgICAgYnVpbGRDaGFyYWN0ZXJEYXRhTWFwKHRleHRSb290KTsKKyAgICB9
CiAKLXZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1aWxkTWV0cmljc0Zv
clRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0KQotewotICAgIEFTU0VSVCh0
ZXh0KTsKLSAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIodGV4dCk7Cisg
ICAgbV9tZXRyaWNzQnVpbGRlci5idWlsZE1ldHJpY3NBbmRMYXlvdXRBdHRyaWJ1dGVzKHRleHRS
b290LCB0ZXh0LCBtX2NoYXJhY3RlckRhdGFNYXApOwogfQogCi12b2lkIFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlcjo6cmVidWlsZE1ldHJpY3NGb3JXaG9sZVRyZWUoUmVuZGVyU1ZHVGV4
dCogdGV4dFJvb3QpCitib29sIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6YnVpbGRM
YXlvdXRBdHRyaWJ1dGVzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqIHRleHRSb290KQogewog
ICAgIEFTU0VSVCh0ZXh0Um9vdCk7Ci0gICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVz
Kj4mIGxheW91dEF0dHJpYnV0ZXMgPSB0ZXh0Um9vdC0+bGF5b3V0QXR0cmlidXRlcygpOwogCi0g
ICAgc2l6ZV90IGxheW91dEF0dHJpYnV0ZXNTaXplID0gbGF5b3V0QXR0cmlidXRlcy5zaXplKCk7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXlvdXRBdHRyaWJ1dGVzU2l6ZTsgKytpKQot
ICAgICAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIobGF5b3V0QXR0cmli
dXRlc1tpXS0+Y29udGV4dCgpKTsKLX0KLQotYm9vbCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1
aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkKFJlbmRlclNWR1RleHQqIHRleHRS
b290KQotewotICAgIEFTU0VSVCh0ZXh0Um9vdCk7CisgICAgbV9jaGFyYWN0ZXJEYXRhTWFwLmNs
ZWFyKCk7CiAKICAgICBpZiAobV90ZXh0UG9zaXRpb25zLmlzRW1wdHkoKSkgewogICAgICAgICBt
X3RleHRMZW5ndGggPSAwOwpAQCAtODYsMTQgKzY5LDIwIEBAIGJvb2wgU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91dEF0dHJpYnV0ZXNJZk5lZWRlZChSZW5kZXJTVkdU
ZXh0CiAgICAgICAgIGNvbGxlY3RUZXh0UG9zaXRpb25pbmdFbGVtZW50cyh0ZXh0Um9vdCwgbGFz
dENoYXJhY3Rlcik7CiAgICAgfQogCi0gICAgbV9jaGFyYWN0ZXJEYXRhTWFwLmNsZWFyKCk7CiAg
ICAgaWYgKCFtX3RleHRMZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGJ1aWxk
TGF5b3V0QXR0cmlidXRlcyh0ZXh0Um9vdCk7CisgICAgYnVpbGRDaGFyYWN0ZXJEYXRhTWFwKHRl
eHRSb290KTsKKyAgICBtX21ldHJpY3NCdWlsZGVyLmJ1aWxkTWV0cmljc0FuZExheW91dEF0dHJp
YnV0ZXModGV4dFJvb3QsIDAsIG1fY2hhcmFjdGVyRGF0YU1hcCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK3ZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpyZWJ1aWxkTWV0cmlj
c0ZvclRleHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0KQoreworICAgIEFTU0VS
VCh0ZXh0KTsKKyAgICBtX21ldHJpY3NCdWlsZGVyLm1lYXN1cmVUZXh0UmVuZGVyZXIodGV4dCk7
Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBwcm9jZXNzUmVuZGVyU1ZHSW5saW5lVGV4dChSZW5k
ZXJTVkdJbmxpbmVUZXh0KiB0ZXh0LCB1bnNpZ25lZCYgYXRDaGFyYWN0ZXIsIGNvbnN0IFVDaGFy
KiYgbGFzdENoYXJhY3RlcikKIHsKICAgICBpZiAodGV4dC0+c3R5bGUoKS0+d2hpdGVTcGFjZSgp
ID09IFBSRSkgewpAQCAtMTQzLDEwICsxMzIsOCBAQCB2b2lkIFNWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzQnVpbGRlcjo6Y29sbGVjdFRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKFJlbmRlck9iamVjdAog
ICAgIH0KIH0KIAotdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5
b3V0QXR0cmlidXRlcyhSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKK3ZvaWQgU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZENoYXJhY3RlckRhdGFNYXAoUmVuZGVyU1ZHVGV4dCog
dGV4dFJvb3QpCiB7Ci0gICAgQVNTRVJUKG1fdGV4dExlbmd0aCk7Ci0KICAgICBTVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50KiBvdXRlcm1vc3RUZXh0RWxlbWVudCA9IFNWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQ6OmVsZW1lbnRGcm9tUmVuZGVyZXIodGV4dFJvb3QpOwogICAgIEFTU0VSVChvdXRl
cm1vc3RUZXh0RWxlbWVudCk7CiAKQEAgLTE3MywxMSArMTYwLDYgQEAgdm9pZCBTVkdUZXh0TGF5
b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlcyhSZW5kZXJTVkdUZXh0
KiB0ZXh0Um8KICAgICB1bnNpZ25lZCBzaXplID0gbV90ZXh0UG9zaXRpb25zLnNpemUoKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBmaWxsQ2hhcmFj
dGVyRGF0YU1hcChtX3RleHRQb3NpdGlvbnNbaV0pOwotCi0jaWYgRFVNUF9URVhUX0xBWU9VVF9B
VFRSSUJVVEVTID4gMAotICAgIGZwcmludGYoc3RkZXJyLCAiXG5EdW1waW5nIEFMTCBsYXlvdXQg
YXR0cmlidXRlcyBmb3IgUmVuZGVyU1ZHVGV4dCwgcmVuZGVyZXI9JXAsIG5vZGU9JXAgKG1fdGV4
dExlbmd0aDogJWkpXG4iLCB0ZXh0Um9vdCwgdGV4dFJvb3QtPm5vZGUoKSwgbV90ZXh0TGVuZ3Ro
KTsKLSAgICBtX2NoYXJhY3RlckRhdGFNYXAuZHVtcCgpOwotI2VuZGlmCiB9CiAKIHN0YXRpYyBp
bmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBsYXN0Um90
YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGxl
bmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3QqIHhMaXN0LCBjb25zdCBTVkdMZW5ndGhM
aXN0KiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdCogZHhMaXN0LCBjb25zdCBTVkdMZW5ndGhM
aXN0KiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3QqIHJvdGF0ZUxpc3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmli
dXRlc0J1aWxkZXIuaAppbmRleCA0NWZhZDI0MDA0Y2E5NmYyNGQ0MTc0MmE0MDE2YjRlM2YzYTM4
NmU3Li5jMWVkMzQ1Y2Y0MzY2ODQ2MzA3MTYyODA0MWE2NjdlNWU5Nzc2YzBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXNCdWlsZGVyLmgKQEAgLTQzLDE0ICs0MywxNCBAQCBjbGFzcyBTVkdUZXh0TGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNWR1RleHRMYXlv
dXRBdHRyaWJ1dGVzQnVpbGRlcik7CiBwdWJsaWM6CiAgICAgU1ZHVGV4dExheW91dEF0dHJpYnV0
ZXNCdWlsZGVyKCk7Ci0gICAgdm9pZCBidWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUo
UmVuZGVyU1ZHVGV4dCopOworICAgIGJvb2wgYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yV2hvbGVU
cmVlKFJlbmRlclNWR1RleHQqKTsKICAgICB2b2lkIGJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRl
eHRSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0Kik7CiAKLSAgICB2b2lkIHJlYnVpbGRNZXRy
aWNzRm9yV2hvbGVUcmVlKFJlbmRlclNWR1RleHQqKTsKICAgICB2b2lkIHJlYnVpbGRNZXRyaWNz
Rm9yVGV4dFJlbmRlcmVyKFJlbmRlclNWR0lubGluZVRleHQqKTsKIAogICAgIC8vIEludm9rZWQg
d2hlbmV2ZXIgdGhlIHVuZGVybHlpbmcgRE9NIHRyZWUgY2hhbmdlcywgc28gdGhhdCBtX3RleHRQ
b3NpdGlvbnMgaXMgcmVidWlsZC4KICAgICB2b2lkIGNsZWFyVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dHMoKSB7IG1fdGV4dFBvc2l0aW9ucy5jbGVhcigpOyB9CisgICAgdW5zaWduZWQgbnVtYmVyT2ZU
ZXh0UG9zaXRpb25pbmdFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBvc2l0aW9ucy5z
aXplKCk7IH0KIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgVGV4dFBvc2l0aW9uIHsKQEAgLTY2LDkg
KzY2LDggQEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoOwogICAgIH07CiAKLSAg
ICBib29sIGJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkKFJlbmRlclNWR1RleHQqKTsKKyAg
ICB2b2lkIGJ1aWxkQ2hhcmFjdGVyRGF0YU1hcChSZW5kZXJTVkdUZXh0Kik7CiAgICAgdm9pZCBj
b2xsZWN0VGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoUmVuZGVyT2JqZWN0KiwgY29uc3QgVUNoYXIq
JiBsYXN0Q2hhcmFjdGVyKTsKLSAgICB2b2lkIGJ1aWxkTGF5b3V0QXR0cmlidXRlcyhSZW5kZXJT
VkdUZXh0Kik7CiAgICAgdm9pZCBmaWxsQ2hhcmFjdGVyRGF0YU1hcChjb25zdCBUZXh0UG9zaXRp
b24mKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGM4YmE1
MzNlMGU5OTBmYzE4OWY0YTIyYTMzZDA5Y2ZiNmFhZDYyYWQuLjQwZDFlZjYzMzJmNTE5M2Q4MGM1
N2Q1Y2FlNjkyYjc1MjU0YjdlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAt
MjM4LDE5ICsyMzgsNiBAQCBib29sIFNWR0FFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRl
cmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjaGlsZENvbgogICAgIHJldHVybiBTVkdF
bGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkQ29udGV4dCk7CiB9CiAKLXZv
aWQgU1ZHQUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9k
ZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkK
LXsKLSAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNo
YW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRh
KTsKLQotICAgIGlmIChjaGFuZ2VkQnlQYXJzZXIgfHwgIXJlbmRlcmVyKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIC8vIEludmFsaWRhdGUgdGhlIFRleHRQb3NpdGlvbiBjYWNoZSBpbiBTVkdU
ZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgYXMgaXQgbWF5IG5vdyBwb2ludAotICAgIC8vIHRv
IG5vLWxvbmdlciBleGlzdGluZyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50cyBhbmQgdGh1cyBu
ZWVkcyB0byBiZSByZWJ1aWx0LgotICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIg
PSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IocmVuZGVyZXIoKSkp
Ci0gICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRz
KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCmluZGV4IDcyYWZkZWMxMjRiNWEzYTJlOTllYzY1NGZj
Y2VmM2EwMmI1MmY5MzIuLmUzYjhmMjgwMjdiMzRhYjYwZWJjZDUyODVmYzQzZjZkNjNkMTVhNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCkBAIC00MCw5ICs0MCw2IEBAIGNsYXNzIFNWR0FF
bGVtZW50IDogcHVibGljIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LAogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAKLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5n
ZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApIE9W
RVJSSURFOwotCiBwcml2YXRlOgogICAgIFNWR0FFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuY3BwCmluZGV4IGNiODRlMjliNzIyZjYzMTQ5ZmRlMWViZmVlZTBiNjc1YTMyZmVmOWQuLmRk
N2U0OTZhNThiM2UyYTkyZjA4MGRlMDVmY2JhZWEyM2RiMDVlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC0zMjEsMTkgKzMyMSw2IEBAIFNW
R1RleHRDb250ZW50RWxlbWVudCogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjplbGVtZW50RnJvbVJl
bmRlcmVyKFJlbmRlck9iamVjdCoKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHVGV4dENvbnRl
bnRFbGVtZW50Kj4obm9kZSk7CiB9CiAKLXZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpjaGls
ZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9k
ZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpCi17Ci0gICAgU1ZHU3R5bGVkRWxl
bWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRl
ckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKLQotICAgIGlmIChjaGFuZ2VkQnlQYXJzZXIgfHwg
IXJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEludmFsaWRhdGUgdGhlIFRl
eHRQb3NpdGlvbiBjYWNoZSBpbiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIgYXMgaXQg
bWF5IG5vdyBwb2ludAotICAgIC8vIHRvIG5vLWxvbmdlciBleGlzdGluZyBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50cyBhbmQgdGh1cyBuZWVkcyB0byBiZSByZWJ1aWx0LgotICAgIGlmIChSZW5k
ZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdU
ZXh0QW5jZXN0b3IocmVuZGVyZXIoKSkpCi0gICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0
ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShT
VkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgKaW5kZXggMDk3
NWFiYzM3MmYwZGVjZDY5YWU3YzY5N2FkNDM5MGNmNjk0MDI0My4uMTllMDMyYjlkODkxODUzN2Uy
YmIyYjUyNmQwNmM0Mjk2MTg1OWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuaApAQCAtMTA5LDcgKzEwOSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwotICAgIHZpcnR1YWwg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSog
YmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERl
bHRhID0gMCk7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVGV4dENvbnRlbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDczMDgwOTVlNmJjZThjNGZiM2U5NjU2ZjU3
NzQ5NzM5M2ZlYWNlOC4uOWZhODM0OGIwMjY3YjMwYTFmZGU0OWMxZGRmODE2NThiNDBlMTJmMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE1ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxu
emltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEwNTA1Nyk6IEluZmlu
aXRlIGxvb3AgaW5zaWRlIFNWR1RleHRMYXlvdXRFbmdpbmU6OmN1cnJlbnRMb2dpY2FsQ2hhcmFj
dGVyTWV0cmljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODM0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgdGhyZWUgbmV3IHRlc3RjYXNlcyBjb3ZlcmluZyB0aGUgcHJvYmxlbS4KKworICAgICAg
ICAqIHN2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvdGV4dC9oaWdoY2hhcnRzLWFzc2VydGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy90ZXh0L2hpZ2hjaGFydHMtYXNzZXJ0aW9uLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1
Zy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9w
aGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWct
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1i
dWctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWY4ODliYzliNmYyZGJjODAwMjFkZGQ1NWM0
YjlmMGRiNDJmZjA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRk
LXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHN2Zz4KKzx0ZXh0IGlkPSJ0ZXh0IiB5PSI1MCI+
PHRzcGFuPlNob3VsZCBiZSBvbjwvdHNwYW4+PHRzcGFuIGR5PSIzMCI+ZGlmZmVyZW50IGxpbmVz
PC90c3Bhbj48L3RleHQ+Cis8L3N2Zz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbCBiL0xheW91dFRl
c3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzNj
NTdmZmFhZDJiODM1ZDExMWFiYTFjMDE0YmM3OWEwYWE2Y2FhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCkBAIC0wLDAg
KzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgp
Ij4KKzxzdmc+Cis8dGl0bGU+VGhpcyB0ZXN0IHVzZWQgdG8gYmUgbGFpZCBvdXQgb24gYSBzaW5n
bGUgbGluZSwgaW5zdGVhZCBvZiBtdWx0aXBsZSBvbmVzPC90aXRsZT4KKzx0ZXh0IGlkPSJ0ZXh0
IiB5PSI1MCI+PC90ZXh0PgorCis8c2NyaXB0PgordmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgidGV4dCIpWzBdOworCitmdW5jdGlvbiBhZGRTcGFucygpIHsKKyAgICB2
YXIgdHNwYW4xID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8y
MDAwL3N2ZyIsICJ0c3BhbiIpOworICAgIHRzcGFuMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiU2hvdWxkIGJlIG9uIikpOworCisgICAgdmFyIHRzcGFuMiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAidHNwYW4iKTsK
KyAgICB0c3BhbjIuc2V0QXR0cmlidXRlKCJkeSIsICIzMCIpOworICAgIHRzcGFuMi5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiZGlmZmVyZW50IGxpbmVzIikpOworCisgICAg
dGV4dC5hcHBlbmRDaGlsZCh0c3BhbjEpOworICAgIHRleHQuYXBwZW5kQ2hpbGQodHNwYW4yKTsK
KworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2Z1
bmN0aW9uIGxvYWRlZCgpIHsKKyAgICAvLyBCdWcgaXMgb25seSB0cmlnZ2VyIGZyb20gYW5vdGhl
ciBsb29wLgorICAgIHNldFRpbWVvdXQoYWRkU3BhbnMsIDApOworfQorPC9zY3JpcHQ+Cis8L3N2
Zz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L2hp
Z2hjaGFydHMtYXNzZXJ0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L2hp
Z2hjaGFydHMtYXNzZXJ0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWNmYzVhOThkYjc0
ZmJlMzJhYzliNjc4YTYxMzRhZjk3MzZkZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL3RleHQvaGlnaGNoYXJ0cy1hc3NlcnRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MiBAQAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9oaWdoY2hhcnRz
LWFzc2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvaGlnaGNoYXJ0cy1hc3NlcnRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMzg0ZTU0N2IyNjkyNmE1NzM0YmNlOTQxODhlZmY5NTlkYjRi
N2YyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvaGlnaGNoYXJ0cy1h
c3NlcnRpb24uaHRtbApAQCAtMCwwICsxLDE0IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2g8L3RpdGxlPgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzdmc+CisgICAgPHRleHQgeT0iNTAiPjx0c3Bhbj4gPC90c3Bhbj48c2Ny
aXB0PmRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOzwvc2NyaXB0Pjx0c3Bhbj5QQVNTPC90c3Bhbj48
L3RleHQ+Cis8L3N2Zz4KKzwvYm9keT4KKzwvaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvc3ZnL3RleHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQxZjg4OWJjOWI2ZjJkYmM4MDAyMWRkZDU1YzRiOWYwZGI0MmZmMDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnktdHNwYW4tcG9zaXRpb24t
YnVnLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c3ZnPgorPHRleHQgaWQ9InRleHQiIHk9IjUwIj48dHNwYW4+U2hvdWxkIGJl
IG9uPC90c3Bhbj48dHNwYW4gZHk9IjMwIj5kaWZmZXJlbnQgbGluZXM8L3RzcGFuPjwvdGV4dD4K
Kzwvc3ZnPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3Rl
eHQvbW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQv
bW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYTlkMDc1YTY5NWZm
MmZkNGQ4ZTVhZjMxZjkwZmFlYmJhNTFmYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdmcvdGV4dC9tb2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKQEAgLTAsMCArMSw0MiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgorPHN2
Zz4KKzx0aXRsZT5UaGlzIHRlc3QgdXNlZCB0byBiZSBsYWlkIG91dCBvbiBhIHNpbmdsZSBsaW5l
LCBpbnN0ZWFkIG9mIG11bHRpcGxlIG9uZXM8L3RpdGxlPgorPHRleHQgaWQ9InRleHQiIHk9IjUw
Ij48L3RleHQ+CisKKzxzY3JpcHQ+Cit2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJ0ZXh0IilbMF07CisKK2Z1bmN0aW9uIGFkZFNwYW5zKCkgeworICAgIHZhciB0c3Bh
bjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiwgInRzcGFuIik7CisgICAgdHNwYW4xLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJTaG91bGQgYmUgb24iKSk7CisKKyAgICB0c3BhbjIgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInRzcGFuIik7CisgICAgdHNwYW4y
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJkaWZmZXJlbnQgbGluZXMiKSk7
CisKKyAgICB0ZXh0LmFwcGVuZENoaWxkKHRzcGFuMSk7CisgICAgdGV4dC5hcHBlbmRDaGlsZCh0
c3BhbjIpOworCisgICAgLy8gQnVnIGlzIG9ubHkgdHJpZ2dlciBmcm9tIGFub3RoZXIgbG9vcC4K
KyAgICBzZXRUaW1lb3V0KG1vdmVTcGFuLCAwKTsKK30KKworZnVuY3Rpb24gbW92ZVNwYW4oKSB7
CisgICAgdHNwYW4yLnNldEF0dHJpYnV0ZSgiZHkiLCAiMzAiKTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIGxvYWRlZCgpIHsK
KyAgICAvLyBCdWcgaXMgb25seSB0cmlnZ2VyIGZyb20gYW5vdGhlciBsb29wLgorICAgIHNldFRp
bWVvdXQoYWRkU3BhbnMsIDApOworfQorPC9zY3JpcHQ+Cis8L3N2Zz4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>
<flag name="review"
          id="148207"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>