<?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>116638</bug_id>
          
          <creation_ts>2013-05-22 14:46:43 -0700</creation_ts>
          <short_desc>[CSS Shapes] Support parsing inset-rectangle shapes</short_desc>
          <delta_ts>2013-05-29 09:54:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dev.w3.org/csswg/css-shapes/#supported-basic-shapes</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98664</blocked>
    
    <blocked>116641</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bem Jones-Bey">bjonesbe</reporter>
          <assigned_to name="Bem Jones-Bey">bjonesbe</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>giles_joplin</cc>
    
    <cc>glenn</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>892549</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-22 14:46:43 -0700</bug_when>
    <thetext>Add support to parse inset-rectangle shapes for shape-inside and shape-outside</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893078</commentid>
    <comment_count>1</comment_count>
      <attachid>202750</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-23 16:12:59 -0700</bug_when>
    <thetext>Created attachment 202750
Patch

Add support for parsing inset-rectangle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893079</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-23 16:14:51 -0700</bug_when>
    <thetext>Attachment 202750 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/exclusions/parsing/parsing-shape-lengths-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing/script-tests/parsing-shape-lengths.js&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/BasicShapeFunctions.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.h&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeOutsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/style/BasicShapes.cpp:177:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:178:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:179:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:181:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/css/CSSBasicShapes.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSBasicShapes.h:48:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:52:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:53:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 8 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893080</commentid>
    <comment_count>3</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-23 16:19:20 -0700</bug_when>
    <thetext>All of the following style errors reflect issues that area already in the file and for consistency&apos;s sake, I don&apos;t want to change it just for the lines I&apos;ve added. If this needs to be fixed, I would be happy to do so in a different patch, since it will require changes elsewhere as well.

(In reply to comment #2)
&gt; Attachment 202750 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/exclusions/parsing/parsing-shape-lengths-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing/script-tests/parsing-shape-lengths.js&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/BasicShapeFunctions.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.h&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeOutsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.h&apos;]&quot; exit_code: 1
&gt; Source/WebCore/rendering/style/BasicShapes.cpp:177:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; Source/WebCore/rendering/style/BasicShapes.cpp:178:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; Source/WebCore/rendering/style/BasicShapes.cpp:179:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; Source/WebCore/rendering/style/BasicShapes.cpp:181:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; Source/WebCore/css/CSSBasicShapes.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Source/WebCore/css/CSSBasicShapes.h:48:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Source/WebCore/rendering/style/BasicShapes.h:52:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Source/WebCore/rendering/style/BasicShapes.h:53:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Total errors found: 8 in 13 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893367</commentid>
    <comment_count>4</comment_count>
      <attachid>202835</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-24 10:35:04 -0700</bug_when>
    <thetext>Created attachment 202835
Patch

Fix calculation error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893368</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-24 10:38:01 -0700</bug_when>
    <thetext>Attachment 202835 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/exclusions/parsing/parsing-shape-lengths-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing/script-tests/parsing-shape-lengths.js&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/BasicShapeFunctions.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.h&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeOutsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/style/BasicShapes.cpp:179:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:180:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/css/CSSBasicShapes.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSBasicShapes.h:48:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:52:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:53:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 7 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893375</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-24 11:08:40 -0700</bug_when>
    <thetext>The style bot is unhappy..

&gt; Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp
&gt; return (shapeValue &amp;&amp; shapeValue-&gt;type() == ExclusionShapeValue::Shape &amp;&amp; shapeValue-&gt;shape()-&gt;type() != BasicShape::BASIC_SHAPE_INSET_RECTANGLE) ? shapeValue-&gt;shape() : 0;

This change, and the similar one for ExclusionShapeOutsideInfo, assumes that shapeValue-&gt;shape() is non-null, which it can&apos;t.

&gt; Source/WebCore/rendering/style/BasicShapes.cpp
&gt;   path.addRoundedRect(FloatRect(left + boundingBox.x(), top + boundingBox.y(),
&gt;                                  std::max&lt;float&gt;(boundingBox.width() - left - floatValueForLength(m_right, boundingBox.width()), 0),
&gt;                                  std::max&lt;float&gt;(boundingBox.height() - top - floatValueForLength(m_bottom, boundingBox.height()), 0)),
&gt;                       FloatSize(m_cornerRadiusX.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusX, boundingBox.width()),
&gt;                                  m_cornerRadiusY.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusY, boundingBox.height())));

I don&apos;t think the corner radius logic is correct here. If just radiusX is defined, it&apos;s supposed to be the value of radiusY too.

Likewise for BasicShapeInsetRectangle::blend().

&gt; LayoutTests...

You need to update all of the parsing tests, not just parsing-shape-lengths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893385</commentid>
    <comment_count>7</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-24 11:16:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; The style bot is unhappy..

Yeah, to make it happy, it will require another patch. I could change the formatting in this method to be different than all the others, which will make it happy about the indents, but to make it happy about the enum naming would require a new patch entirely that renames all of the enum values.

&gt; &gt; Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp
&gt; &gt; return (shapeValue &amp;&amp; shapeValue-&gt;type() == ExclusionShapeValue::Shape &amp;&amp; shapeValue-&gt;shape()-&gt;type() != BasicShape::BASIC_SHAPE_INSET_RECTANGLE) ? shapeValue-&gt;shape() : 0;
&gt; 
&gt; This change, and the similar one for ExclusionShapeOutsideInfo, assumes that shapeValue-&gt;shape() is non-null, which it can&apos;t.

Ok, I&apos;ll fix that.

&gt; 
&gt; &gt; Source/WebCore/rendering/style/BasicShapes.cpp
&gt; &gt;   path.addRoundedRect(FloatRect(left + boundingBox.x(), top + boundingBox.y(),
&gt; &gt;                                  std::max&lt;float&gt;(boundingBox.width() - left - floatValueForLength(m_right, boundingBox.width()), 0),
&gt; &gt;                                  std::max&lt;float&gt;(boundingBox.height() - top - floatValueForLength(m_bottom, boundingBox.height()), 0)),
&gt; &gt;                       FloatSize(m_cornerRadiusX.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusX, boundingBox.width()),
&gt; &gt;                                  m_cornerRadiusY.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusY, boundingBox.height())));
&gt; 
&gt; I don&apos;t think the corner radius logic is correct here. If just radiusX is defined, it&apos;s supposed to be the value of radiusY too.
&gt; 
&gt; Likewise for BasicShapeInsetRectangle::blend().

Hrm.. that&apos;s the same logic that BasicShapeRectangle uses. Is that incorrect there as well?

&gt; 
&gt; &gt; LayoutTests...
&gt; 
&gt; You need to update all of the parsing tests, not just parsing-shape-lengths.

Ok, I was thinking I needed to update those when I added support for it in shape-inside and shape-outside, but I&apos;ll add it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893409</commentid>
    <comment_count>8</comment_count>
      <attachid>202844</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-24 12:18:19 -0700</bug_when>
    <thetext>Created attachment 202844
Patch

Check for null shape. The style bot will be unhappy with this. I have filed Bug 116734 to fix the style problems, since they are bigger than just this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893410</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-24 12:19:43 -0700</bug_when>
    <thetext>Attachment 202844 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/exclusions/parsing/parsing-shape-lengths-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing/script-tests/parsing-shape-lengths.js&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/BasicShapeFunctions.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.h&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeOutsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/style/BasicShapes.cpp:179:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:180:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/css/CSSBasicShapes.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSBasicShapes.h:48:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:52:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:53:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 7 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893411</commentid>
    <comment_count>10</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-24 12:25:01 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; The style bot is unhappy..
&gt; 
&gt; Yeah, to make it happy, it will require another patch. I could change the formatting in this method to be different than all the others, which will make it happy about the indents, but to make it happy about the enum naming would require a new patch entirely that renames all of the enum values.

I have filed Bug 116734 to fix these problems.
 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/style/BasicShapes.cpp
&gt; &gt; &gt;   path.addRoundedRect(FloatRect(left + boundingBox.x(), top + boundingBox.y(),
&gt; &gt; &gt;                                  std::max&lt;float&gt;(boundingBox.width() - left - floatValueForLength(m_right, boundingBox.width()), 0),
&gt; &gt; &gt;                                  std::max&lt;float&gt;(boundingBox.height() - top - floatValueForLength(m_bottom, boundingBox.height()), 0)),
&gt; &gt; &gt;                       FloatSize(m_cornerRadiusX.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusX, boundingBox.width()),
&gt; &gt; &gt;                                  m_cornerRadiusY.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusY, boundingBox.height())));
&gt; &gt; 
&gt; &gt; I don&apos;t think the corner radius logic is correct here. If just radiusX is defined, it&apos;s supposed to be the value of radiusY too.
&gt; &gt; 
&gt; &gt; Likewise for BasicShapeInsetRectangle::blend().
&gt; 
&gt; Hrm.. that&apos;s the same logic that BasicShapeRectangle uses. Is that incorrect there as well?

If you can verify that this is incorrect, I&apos;ll file a bug and fix it in a subsequent patch, since it will need to be fixed for rectangle as well.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; LayoutTests...
&gt; &gt; 
&gt; &gt; You need to update all of the parsing tests, not just parsing-shape-lengths.
&gt; 
&gt; Ok, I was thinking I needed to update those when I added support for it in shape-inside and shape-outside, but I&apos;ll add it now.

I took a look, and the others don&apos;t test anything having to do with shapes, they just test parsing of the particular properties. So it seems to me that I don&apos;t need to add it to the other ones, or we would have needed to do so for circle, ellipse, and polygon. It also seems like adding all the shapes to the other ones wouldn&apos;t actually test anything that lengths isn&apos;t testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893466</commentid>
    <comment_count>11</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-24 15:19:13 -0700</bug_when>
    <thetext>&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/style/BasicShapes.cpp
&gt; &gt; &gt; &gt;   path.addRoundedRect(FloatRect(left + boundingBox.x(), top + boundingBox.y(),
&gt; &gt; &gt; &gt;                                  std::max&lt;float&gt;(boundingBox.width() - left - floatValueForLength(m_right, boundingBox.width()), 0),
&gt; &gt; &gt; &gt;                                  std::max&lt;float&gt;(boundingBox.height() - top - floatValueForLength(m_bottom, boundingBox.height()), 0)),
&gt; &gt; &gt; &gt;                       FloatSize(m_cornerRadiusX.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusX, boundingBox.width()),
&gt; &gt; &gt; &gt;                                  m_cornerRadiusY.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusY, boundingBox.height())));
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think the corner radius logic is correct here. If just radiusX is defined, it&apos;s supposed to be the value of radiusY too.
&gt; &gt; &gt; 
&gt; &gt; &gt; Likewise for BasicShapeInsetRectangle::blend().
&gt; &gt; 
&gt; &gt; Hrm.. that&apos;s the same logic that BasicShapeRectangle uses. Is that incorrect there as well?

I&apos;m not sure what is correct.  

What confused me is your comment at the top of CSSParser::parseBasicShapeInsetRectangle():

    // inset-rectangle(top, right, bottom, left, [[rx], ry])

Does that mean that if only one radius parameter is specified rx=0 and ry=parameterValue? The code doesn&apos;t appear to work that way. Since one or two radius parameters are acceptable, then there should be tests to verify as much (see below).

&gt; &gt; &gt; &gt; LayoutTests...
&gt; &gt; &gt; 
&gt; &gt; &gt; You need to update all of the parsing tests, not just parsing-shape-lengths.
&gt; &gt; 
&gt; &gt; Ok, I was thinking I needed to update those when I added support for it in shape-inside and shape-outside, but I&apos;ll add it now.
&gt; 
&gt; I took a look, and the others don&apos;t test anything having to do with shapes, they just test parsing of the particular properties. So it seems to me that I don&apos;t need to add it to the other ones, or we would have needed to do so for circle, ellipse, and polygon. It also seems like adding all the shapes to the other ones wouldn&apos;t actually test anything that lengths isn&apos;t testing.

fast/exclusions/parsing/ashape-inside.html and fast/exclusions/parsing/shape-outside.html check that valid/invalid shape values are handled correctly for ALL shapes. You should update the validShapeValues and invalidShapeValues in fast/exclusions/parsing/script-tests/parsing-test-utils.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893493</commentid>
    <comment_count>12</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-24 16:13:57 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/rendering/style/BasicShapes.cpp
&gt; &gt; &gt; &gt; &gt;   path.addRoundedRect(FloatRect(left + boundingBox.x(), top + boundingBox.y(),
&gt; &gt; &gt; &gt; &gt;                                  std::max&lt;float&gt;(boundingBox.width() - left - floatValueForLength(m_right, boundingBox.width()), 0),
&gt; &gt; &gt; &gt; &gt;                                  std::max&lt;float&gt;(boundingBox.height() - top - floatValueForLength(m_bottom, boundingBox.height()), 0)),
&gt; &gt; &gt; &gt; &gt;                       FloatSize(m_cornerRadiusX.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusX, boundingBox.width()),
&gt; &gt; &gt; &gt; &gt;                                  m_cornerRadiusY.isUndefined() ? 0 : floatValueForLength(m_cornerRadiusY, boundingBox.height())));
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I don&apos;t think the corner radius logic is correct here. If just radiusX is defined, it&apos;s supposed to be the value of radiusY too.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Likewise for BasicShapeInsetRectangle::blend().
&gt; &gt; &gt; 
&gt; &gt; &gt; Hrm.. that&apos;s the same logic that BasicShapeRectangle uses. Is that incorrect there as well?
&gt; 
&gt; I&apos;m not sure what is correct.  
&gt; 
&gt; What confused me is your comment at the top of CSSParser::parseBasicShapeInsetRectangle():
&gt; 
&gt;     // inset-rectangle(top, right, bottom, left, [[rx], ry])
&gt; 
&gt; Does that mean that if only one radius parameter is specified rx=0 and ry=parameterValue? The code doesn&apos;t appear to work that way. Since one or two radius parameters are acceptable, then there should be tests to verify as much (see below).

Ok, I looked at the SVG spec (Referenced by the shape spec), and you are correct that rx is supposed to default to ry if unspecified and vice-versa. However, the normal rectangle code doesn&apos;t do that, and thus the inset-rectangle code doesn&apos;t either, since it&apos;s based off the rectangle code. I&apos;ve filed bug 116745 to fix this for both the rectangle and inset rectangle cases.

&gt; 
&gt; &gt; &gt; &gt; &gt; LayoutTests...
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; You need to update all of the parsing tests, not just parsing-shape-lengths.
&gt; &gt; &gt; 
&gt; &gt; &gt; Ok, I was thinking I needed to update those when I added support for it in shape-inside and shape-outside, but I&apos;ll add it now.
&gt; &gt; 
&gt; &gt; I took a look, and the others don&apos;t test anything having to do with shapes, they just test parsing of the particular properties. So it seems to me that I don&apos;t need to add it to the other ones, or we would have needed to do so for circle, ellipse, and polygon. It also seems like adding all the shapes to the other ones wouldn&apos;t actually test anything that lengths isn&apos;t testing.
&gt; 
&gt; fast/exclusions/parsing/ashape-inside.html and fast/exclusions/parsing/shape-outside.html check that valid/invalid shape values are handled correctly for ALL shapes. You should update the validShapeValues and invalidShapeValues in fast/exclusions/parsing/script-tests/parsing-test-utils.js.

You&apos;re right, I read the code all wrong. I&apos;ll push up a patch with that fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893496</commentid>
    <comment_count>13</comment_count>
      <attachid>202863</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-24 16:16:26 -0700</bug_when>
    <thetext>Created attachment 202863
Patch

Update tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893498</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-24 16:18:41 -0700</bug_when>
    <thetext>Attachment 202863 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/exclusions/parsing/parsing-shape-inside-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing/parsing-shape-lengths-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing/parsing-shape-outside-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing/script-tests/parsing-shape-lengths.js&apos;, u&apos;LayoutTests/fast/exclusions/parsing/script-tests/parsing-test-utils.js&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/BasicShapeFunctions.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.cpp&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.h&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/ExclusionShapeOutsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.cpp&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/style/BasicShapes.cpp:179:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:180:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/style/BasicShapes.cpp:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/css/CSSBasicShapes.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSBasicShapes.h:48:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:52:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/BasicShapes.h:53:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 7 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894647</commentid>
    <comment_count>15</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-05-28 20:57:10 -0700</bug_when>
    <thetext>The review tool is broken for me, so I&apos;ll do this old skool!!!

ChangeLog:

- Could you include per-function comments here?
- Also, please remove the (WebCore:) lines until the tool is updated.

CSSBasicShapes.cpp:

- I&apos;m certainly not an expert here, but is it worth calculating how much to allocate up front in buildInsetRectangleString rather than just picking a sufficiently large value? I have no opinion.

CSSParser.cpp

- typo in the BNF comment (missing ])
- Do you think we should put an explicit return 0 if argumentNumber gets to 6?

ExclusionShapeInsideInfo.cpp
ExclusionShapeOutsideInfo.cpp
- we typically write the conditional the other way around so that we return false early

BasicShapes.cpp
- For BasicShapeInsetRectangle::blend, would it be better to blend from/to a 0 radius if only one of states specifies a radius?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894950</commentid>
    <comment_count>16</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-29 08:00:52 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; The review tool is broken for me, so I&apos;ll do this old skool!!!
&gt; 
&gt; ChangeLog:
&gt; 
&gt; - Could you include per-function comments here?
&gt; - Also, please remove the (WebCore:) lines until the tool is updated.

Sure, I&apos;ll do that.

&gt; 
&gt; CSSBasicShapes.cpp:
&gt; 
&gt; - I&apos;m certainly not an expert here, but is it worth calculating how much to allocate up front in buildInsetRectangleString rather than just picking a sufficiently large value? I have no opinion.

I don&apos;t know either, in this case, I&apos;m doing the same thing that all of the other basic shapes are doing. Given that you don&apos;t have an opinion, I wouldn&apos;t be inclined to change things unless there was some data saying that it isn&apos;t good to do it the way it is done. (And then, I&apos;d like to do it in a follow up patch to change all of the CSS Basic Shapes to do things the same way)

&gt; 
&gt; CSSParser.cpp
&gt; 
&gt; - typo in the BNF comment (missing ])

Oops. I&apos;ll fix that.

&gt; - Do you think we should put an explicit return 0 if argumentNumber gets to 6?

By my understanding of the code, it should already have returned because of the if statement at the top. This could be an argument to remove the assert, but then I&apos;d like to remove it from all of the shape parsing methods, again for consistency. I&apos;m personally kind of like having the assert there since it helps document the code and also is a failsafe if one happens to edit the if statement and gets it wrong (since it&apos;s a bit strange in that it has to count the commas as well as the arguments.

&gt; 
&gt; ExclusionShapeInsideInfo.cpp
&gt; ExclusionShapeOutsideInfo.cpp
&gt; - we typically write the conditional the other way around so that we return false early

You&apos;re right. I&apos;ll fix that.

&gt; 
&gt; BasicShapes.cpp
&gt; - For BasicShapeInsetRectangle::blend, would it be better to blend from/to a 0 radius if only one of states specifies a radius?

It might be. I&apos;ll talk it over with Hans (who understands this better than I do), and handle changes here as part of fixing bug 116745, since right now, rectangle also does it the same way and will need to be changed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894962</commentid>
    <comment_count>17</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-29 08:26:04 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; CSSParser.cpp
&gt; &gt; 
&gt; &gt; - typo in the BNF comment (missing ])
&gt; 
&gt; Oops. I&apos;ll fix that.

It looks to me (And Vim&apos;s brace matching) that all of my []&apos;s are matched in the comment. Are you sure one is missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894978</commentid>
    <comment_count>18</comment_count>
      <attachid>203205</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-05-29 09:18:50 -0700</bug_when>
    <thetext>Created attachment 203205
Patch

Update for review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894992</commentid>
    <comment_count>19</comment_count>
      <attachid>203205</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 09:54:29 -0700</bug_when>
    <thetext>Comment on attachment 203205
Patch

Clearing flags on attachment: 203205

Committed r150904: &lt;http://trac.webkit.org/changeset/150904&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894993</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 09:54:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202750</attachid>
            <date>2013-05-23 16:12:59 -0700</date>
            <delta_ts>2013-05-24 10:35:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116638-20130523161144.patch</filename>
            <type>text/plain</type>
            <size>31115</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk2Y2E5MzZkMzJkZjY0
ZTRmMjdmMWE5NDAxOWUyZmU4MGJiOWNjMS4uNGZmN2ZlZjczYjA5NjU1YWE3YzliN2M5N2ZmNGVl
ZTIyNGNmMjVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTA1LTIzICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBT
dXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFuZ2xlIHNoYXBlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHBhcnNpbmcgZm9yIGluc2V0LXJlY3Rh
bmdsZS4gSXQncyB2ZXJ5IHNpbWlsYXIgdG8gcGFyc2luZyBmb3IKKyAgICAgICAgcmVjdGFuZ2xl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0IHRvIGNvdmVy
IHRoaXMuCisKKyAgICAgICAgKiBjc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWx1ZUZvckJhc2ljU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzaWNT
aGFwZUZvclZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNTaGFwZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRJbnNldFJlY3RhbmdsZVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Y3NzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmVxdWFs
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNlcmlh
bGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKToKKyAgICAgICAgKiBjc3MvQ1NT
QmFzaWNTaGFwZXMuaDoKKyAgICAgICAgKENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJhZGl1c1gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpyYWRpdXNZKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmFkaXVz
WCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNldFJh
ZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Q1NT
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUJh
c2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxlZEZv
cik6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9y
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnBh
dGgpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpibGVuZCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNp
Y1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGU6OmNvcm5lclJhZGl1c1gpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpjb3JuZXJSYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZTo6c2V0Q29ybmVyUmFkaXVzWCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1No
YXBlSW5zZXRSZWN0YW5nbGU6OnNldENvcm5lclJhZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKwogMjAxMy0w
NS0yMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0gZnJvbSBGaWxlUmVhZGVyU3luYyBhbmQg
V29ya2VyTG9jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBl
RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNw
cAppbmRleCA5ZTlhMGZjN2Q1ZDhiMDU3YzEyZTEwMDEzNjhmZDU4ZWUwMWZhZTlhLi4wNmJhYzUz
MzQzNjYwNTM4YWEwYjEzZWNmNGE1MzMxM2E2MjE0MzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCkBAIC05NCw2ICs5NCwyMyBAQCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiB2YWx1ZUZvckJhc2ljU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSkK
ICAgICAgICAgYmFzaWNTaGFwZVZhbHVlID0gcG9seWdvblZhbHVlLnJlbGVhc2UoKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfSU5TRVRf
UkVDVEFOR0xFOiB7CisgICAgICAgIGNvbnN0IEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSogcmVj
dGFuZ2xlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKj4oYmFz
aWNTaGFwZSk7CisgICAgICAgIFJlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU+IHJl
Y3RhbmdsZVZhbHVlID0gQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpjcmVhdGUoKTsKKwor
ICAgICAgICByZWN0YW5nbGVWYWx1ZS0+c2V0VG9wKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KHJlY3RhbmdsZS0+dG9wKCkpKTsKKyAgICAgICAgcmVjdGFuZ2xlVmFsdWUtPnNldFJpZ2h0KGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHJlY3RhbmdsZS0+cmlnaHQoKSkpOworICAgICAgICBy
ZWN0YW5nbGVWYWx1ZS0+c2V0Qm90dG9tKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHJlY3Rh
bmdsZS0+Ym90dG9tKCkpKTsKKyAgICAgICAgcmVjdGFuZ2xlVmFsdWUtPnNldExlZnQoY3NzVmFs
dWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5sZWZ0KCkpKTsKKyAgICAgICAgaWYgKCFy
ZWN0YW5nbGUtPmNvcm5lclJhZGl1c1goKS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgICAgICBy
ZWN0YW5nbGVWYWx1ZS0+c2V0UmFkaXVzWChjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShyZWN0
YW5nbGUtPmNvcm5lclJhZGl1c1goKSkpOworICAgICAgICAgICAgaWYgKCFyZWN0YW5nbGUtPmNv
cm5lclJhZGl1c1koKS5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgICAgIHJlY3RhbmdsZVZh
bHVlLT5zZXRSYWRpdXNZKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHJlY3RhbmdsZS0+Y29y
bmVyUmFkaXVzWSgpKSk7CisgICAgICAgIH0KKworICAgICAgICBiYXNpY1NoYXBlVmFsdWUgPSBy
ZWN0YW5nbGVWYWx1ZS5yZWxlYXNlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBkZWZh
dWx0OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xNjEsNiArMTc4LDIyIEBAIFBhc3NSZWZQ
dHI8QmFzaWNTaGFwZT4gYmFzaWNTaGFwZUZvclZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSwgY29uc3QgUmVuZGVyCiAgICAgICAgIGJhc2ljU2hhcGUgPSBwb2x5Z29uLnJlbGVhc2UoKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgQ1NTQmFzaWNTaGFwZTo6Q1NTX0JBU0lD
X1NIQVBFX0lOU0VUX1JFQ1RBTkdMRTogeworICAgICAgICBjb25zdCBDU1NCYXNpY1NoYXBlSW5z
ZXRSZWN0YW5nbGUqIHJlY3RWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IENTU0Jhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZSAqPihiYXNpY1NoYXBlVmFsdWUpOworICAgICAgICBSZWZQdHI8QmFzaWNT
aGFwZUluc2V0UmVjdGFuZ2xlPiByZWN0ID0gQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpjcmVh
dGUoKTsKKworICAgICAgICByZWN0LT5zZXRUb3AoY29udmVydFRvTGVuZ3RoKHN0eWxlLCByb290
U3R5bGUsIHJlY3RWYWx1ZS0+dG9wKCkpKTsKKyAgICAgICAgcmVjdC0+c2V0UmlnaHQoY29udmVy
dFRvTGVuZ3RoKHN0eWxlLCByb290U3R5bGUsIHJlY3RWYWx1ZS0+cmlnaHQoKSkpOworICAgICAg
ICByZWN0LT5zZXRCb3R0b20oY29udmVydFRvTGVuZ3RoKHN0eWxlLCByb290U3R5bGUsIHJlY3RW
YWx1ZS0+Ym90dG9tKCkpKTsKKyAgICAgICAgcmVjdC0+c2V0TGVmdChjb252ZXJ0VG9MZW5ndGgo
c3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVlLT5sZWZ0KCkpKTsKKyAgICAgICAgaWYgKHJlY3RW
YWx1ZS0+cmFkaXVzWCgpKSB7CisgICAgICAgICAgICByZWN0LT5zZXRDb3JuZXJSYWRpdXNYKGNv
bnZlcnRUb0xlbmd0aChzdHlsZSwgcm9vdFN0eWxlLCByZWN0VmFsdWUtPnJhZGl1c1goKSkpOwor
ICAgICAgICAgICAgaWYgKHJlY3RWYWx1ZS0+cmFkaXVzWSgpKQorICAgICAgICAgICAgICAgIHJl
Y3QtPnNldENvcm5lclJhZGl1c1koY29udmVydFRvTGVuZ3RoKHN0eWxlLCByb290U3R5bGUsIHJl
Y3RWYWx1ZS0+cmFkaXVzWSgpKSk7CisgICAgICAgIH0KKyAgICAgICAgYmFzaWNTaGFwZSA9IHJl
Y3QucmVsZWFzZSgpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2lj
U2hhcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKaW5kZXgg
MTk3NGU2MDBkNDMyOGQxY2I1MGIzMzIwOTJmNGI3ZTU1ZTk3ODBjYy4uODhmNDRjZjc2NWNkMzk5
NDVkZGQzZDljOWM1YTg0NjlmMmQ0YjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Jhc2ljU2hhcGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwCkBAIC0yNjgsNSArMjY4LDc4IEBAIGJvb2wgQ1NTQmFzaWNTaGFwZVBvbHlnb246Omhh
c1ZhcmlhYmxlUmVmZXJlbmNlKCkgY29uc3QKIH0KICNlbmRpZgogCitzdGF0aWMgU3RyaW5nIGJ1
aWxkSW5zZXRSZWN0YW5nbGVTdHJpbmcoY29uc3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYg
cmlnaHQsIGNvbnN0IFN0cmluZyYgYm90dG9tLCBjb25zdCBTdHJpbmcmIGxlZnQsIGNvbnN0IFN0
cmluZyYgcmFkaXVzWCwgY29uc3QgU3RyaW5nJiByYWRpdXNZKQoreworICAgIGNoYXIgb3Blbmlu
Z1tdID0gImluc2V0LXJlY3RhbmdsZSgiOworICAgIGNoYXIgc2VwYXJhdG9yW10gPSAiLCAiOwor
ICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIC8vIENvbXB1dGUgdGhlIHJlcXVpcmVkIGNh
cGFjaXR5IGluIGFkdmFuY2UgdG8gcmVkdWNlIGFsbG9jYXRpb25zLgorICAgIHJlc3VsdC5yZXNl
cnZlQ2FwYWNpdHkoKHNpemVvZihvcGVuaW5nKSAtIDEpICsgKDUgKiAoc2l6ZW9mKHNlcGFyYXRv
cikgLSAxKSkgKyAxICsgdG9wLmxlbmd0aCgpICsgcmlnaHQubGVuZ3RoKCkgKyBib3R0b20ubGVu
Z3RoKCkgKyBsZWZ0Lmxlbmd0aCgpICsgcmFkaXVzWC5sZW5ndGgoKSArIHJhZGl1c1kubGVuZ3Ro
KCkpOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKG9wZW5pbmcpOworICAgIHJlc3VsdC5hcHBl
bmQodG9wKTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbChzZXBhcmF0b3IpOworICAgIHJlc3Vs
dC5hcHBlbmQocmlnaHQpOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRvcik7Cisg
ICAgcmVzdWx0LmFwcGVuZChib3R0b20pOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFy
YXRvcik7CisgICAgcmVzdWx0LmFwcGVuZChsZWZ0KTsKKyAgICBpZiAoIXJhZGl1c1guaXNOdWxs
KCkpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoc2VwYXJhdG9yKTsKKyAgICAgICAg
cmVzdWx0LmFwcGVuZChyYWRpdXNYKTsKKyAgICAgICAgaWYgKCFyYWRpdXNZLmlzTnVsbCgpKSB7
CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbChzZXBhcmF0b3IpOworICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZChyYWRpdXNZKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXN1bHQu
YXBwZW5kKCcpJyk7CisgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworfQorCitTdHJpbmcg
Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpjc3NUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gYnVpbGRJbnNldFJlY3RhbmdsZVN0cmluZyhtX3RvcC0+Y3NzVGV4dCgpLAorICAgICAgICBt
X3JpZ2h0LT5jc3NUZXh0KCksCisgICAgICAgIG1fYm90dG9tLT5jc3NUZXh0KCksCisgICAgICAg
IG1fbGVmdC0+Y3NzVGV4dCgpLAorICAgICAgICBtX3JhZGl1c1guZ2V0KCkgPyBtX3JhZGl1c1gt
PmNzc1RleHQoKSA6IFN0cmluZygpLAorICAgICAgICBtX3JhZGl1c1kuZ2V0KCkgPyBtX3JhZGl1
c1ktPmNzc1RleHQoKSA6IFN0cmluZygpKTsKK30KKworYm9vbCBDU1NCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGU6OmVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJiBzaGFwZSkgY29uc3QKK3sKKyAg
ICBpZiAoc2hhcGUudHlwZSgpICE9IENTU19CQVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5HTEUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNvbnN0IENTU0Jhc2ljU2hhcGVJbnNldFJlY3Rh
bmdsZSYgb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5n
bGUmPihzaGFwZSk7CisgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3RvcCwgb3RoZXIu
bV90b3ApCisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3JpZ2h0LCBvdGhlci5tX3Jp
Z2h0KQorICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9ib3R0b20sIG90aGVyLm1fYm90
dG9tKQorICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9sZWZ0LCBvdGhlci5tX2xlZnQp
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3JhZGl1c1gsIG90aGVyLm1fcmFkaXVz
WCkKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmFkaXVzWSwgb3RoZXIubV9yYWRp
dXNZKTsKK30KKworI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQorU3RyaW5nIENTU0Jhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFibGVzKGNvbnN0IEhhc2hN
YXA8QXRvbWljU3RyaW5nLCBTdHJpbmc+JiB2YXJpYWJsZXMpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGJ1aWxkSW5zZXRSZWN0YW5nbGVTdHJpbmcobV90b3AtPnNlcmlhbGl6ZVJlc29sdmluZ1Zhcmlh
Ymxlcyh2YXJpYWJsZXMpLAorICAgICAgICBtX3JpZ2h0LT5zZXJpYWxpemVSZXNvbHZpbmdWYXJp
YWJsZXModmFyaWFibGVzKSwKKyAgICAgICAgbV9ib3R0b20tPnNlcmlhbGl6ZVJlc29sdmluZ1Zh
cmlhYmxlcyh2YXJpYWJsZXMpLAorICAgICAgICBtX2xlZnQtPnNlcmlhbGl6ZVJlc29sdmluZ1Zh
cmlhYmxlcyh2YXJpYWJsZXMpLAorICAgICAgICBtX3JhZGl1c1guZ2V0KCkgPyBtX3JhZGl1c1gt
PnNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyh2YXJpYWJsZXMpIDogU3RyaW5nKCksCisgICAg
ICAgIG1fcmFkaXVzWS5nZXQoKSA/IG1fcmFkaXVzWS0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFi
bGVzKHZhcmlhYmxlcykgOiBTdHJpbmcoKSk7Cit9CisKK2Jvb2wgQ1NTQmFzaWNTaGFwZUluc2V0
UmVjdGFuZ2xlOjpoYXNWYXJpYWJsZVJlZmVyZW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dG9wLT5oYXNWYXJpYWJsZVJlZmVyZW5jZSgpCisgICAgICAgIHx8IG1fcmlnaHQtPmhhc1Zhcmlh
YmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgbV9ib3R0b20tPmhhc1ZhcmlhYmxlUmVmZXJlbmNl
KCkKKyAgICAgICAgfHwgbV9sZWZ0LT5oYXNWYXJpYWJsZVJlZmVyZW5jZSgpCisgICAgICAgIHx8
IChtX3JhZGl1c1guZ2V0KCkgJiYgbV9yYWRpdXNYLT5oYXNWYXJpYWJsZVJlZmVyZW5jZSgpKQor
ICAgICAgICB8fCAobV9yYWRpdXNZLmdldCgpICYmIG1fcmFkaXVzWS0+aGFzVmFyaWFibGVSZWZl
cmVuY2UoKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NCYXNpY1NoYXBlcy5oCmluZGV4IDhkYjBkMmYzMGM2MzUwODc1NmYzNzI3M2Y0MTk1
NzUyZmRjYjJhNjQuLmNkNTkyODMwM2YxOGVlZGEyOTA0MjUyNmIxYzUwNGZjMTg2YjQ4OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCkBAIC00NCw3ICs0NCw4IEBAIHB1YmxpYzoK
ICAgICAgICAgQ1NTX0JBU0lDX1NIQVBFX1JFQ1RBTkdMRSA9IDEsCiAgICAgICAgIENTU19CQVNJ
Q19TSEFQRV9DSVJDTEUgPSAyLAogICAgICAgICBDU1NfQkFTSUNfU0hBUEVfRUxMSVBTRSA9IDMs
Ci0gICAgICAgIENTU19CQVNJQ19TSEFQRV9QT0xZR09OID0gNAorICAgICAgICBDU1NfQkFTSUNf
U0hBUEVfUE9MWUdPTiA9IDQsCisgICAgICAgIENTU19CQVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5H
TEUgPSA1CiAgICAgfTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAwOwpAQCAt
MTAxLDYgKzEwMiw0NCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
bV9yYWRpdXNZOwogfTsKIAorY2xhc3MgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlIDogcHVi
bGljIENTU0Jhc2ljU2hhcGUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Jh
c2ljU2hhcGVJbnNldFJlY3RhbmdsZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk7IH0KKworICAgIENTU1ByaW1pdGl2ZVZhbHVlKiB0
b3AoKSBjb25zdCB7IHJldHVybiBtX3RvcC5nZXQoKTsgfQorICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQuZ2V0KCk7IH0KKyAgICBDU1NQcmltaXRp
dmVWYWx1ZSogYm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9ib3R0b20uZ2V0KCk7IH0KKyAgICBD
U1NQcmltaXRpdmVWYWx1ZSogbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdC5nZXQoKTsgfQor
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiByYWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNY
LmdldCgpOyB9CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJhZGl1c1koKSBjb25zdCB7IHJldHVy
biBtX3JhZGl1c1kuZ2V0KCk7IH0KKworICAgIHZvaWQgc2V0VG9wKFBhc3NSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IHRvcCkgeyBtX3RvcCA9IHRvcDsgfQorICAgIHZvaWQgc2V0UmlnaHQoUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmlnaHQpIHsgbV9yaWdodCA9IHJpZ2h0OyB9Cisg
ICAgdm9pZCBzZXRCb3R0b20oUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gYm90dG9tKSB7
IG1fYm90dG9tID0gYm90dG9tOyB9CisgICAgdm9pZCBzZXRMZWZ0KFBhc3NSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGxlZnQpIHsgbV9sZWZ0ID0gbGVmdDsgfQorICAgIHZvaWQgc2V0UmFkaXVz
WChQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByYWRpdXNYKSB7IG1fcmFkaXVzWCA9IHJh
ZGl1c1g7IH0KKyAgICB2b2lkIHNldFJhZGl1c1koUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gcmFkaXVzWSkgeyBtX3JhZGl1c1kgPSByYWRpdXNZOyB9CisKKyAgICB2aXJ0dWFsIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIENTU19CQVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5HTEU7IH0K
KyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGVx
dWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJikgY29uc3Q7CisKKyNpZiBFTkFCTEUoQ1NTX1ZBUklB
QkxFUykKKyAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJsZXMoY29u
c3QgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFN0cmluZz4mKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgaGFzVmFyaWFibGVSZWZlcmVuY2UoKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAg
IENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSgpIHsgfQorCisgICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBtX3JpZ2h0OworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV90b3A7
CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2JvdHRvbTsKKyAgICBSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IG1fbGVmdDsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1f
cmFkaXVzWDsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcmFkaXVzWTsKK307CisK
IGNsYXNzIENTU0Jhc2ljU2hhcGVDaXJjbGUgOiBwdWJsaWMgQ1NTQmFzaWNTaGFwZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZUNpcmNsZT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Jhc2ljU2hhcGVDaXJjbGUpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDFmMzhhNGM0NDRhMTM5Yzc4ODU1Y2FiNzdmM2RmYTk1MmNmNTg2
MzUuLmU1MTY5MmQzNTAzYjg1Njg1ZDUyMzU5Y2ZmNjgyNmIwMDc0NjFmODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC01MTM3LDYgKzUxMzcsNjAgQEAgUGFzc1JlZlB0cjxDU1NCYXNp
Y1NoYXBlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZVJlY3RhbmdsZShDU1NQYXJzZXJWYWx1
ZUxpc3QKICAgICByZXR1cm4gc2hhcGU7CiB9CiAKK1Bhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4g
Q1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZShDU1NQYXJzZXJWYWx1ZUxp
c3QqIGFyZ3MpCit7CisgICAgQVNTRVJUKGFyZ3MpOworCisgICAgLy8gaW5zZXQtcmVjdGFuZ2xl
KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgW1tyeF0sIHJ5XSkKKyAgICBpZiAoYXJncy0+c2l6
ZSgpICE9IDcgJiYgYXJncy0+c2l6ZSgpICE9IDkgJiYgYXJncy0+c2l6ZSgpICE9IDExKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU+
IHNoYXBlID0gQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpjcmVhdGUoKTsKKworICAgIHVu
c2lnbmVkIGFyZ3VtZW50TnVtYmVyID0gMDsKKyAgICBDU1NQYXJzZXJWYWx1ZSogYXJndW1lbnQg
PSBhcmdzLT5jdXJyZW50KCk7CisgICAgd2hpbGUgKGFyZ3VtZW50KSB7CisgICAgICAgIFVuaXRz
IHVuaXRGbGFncyA9IEZMZW5ndGggfCBGUGVyY2VudCB8IEZOb25OZWc7CisgICAgICAgIGlmICgh
dmFsaWRVbml0KGFyZ3VtZW50LCB1bml0RmxhZ3MpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisK
KyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBsZW5ndGggPSBjcmVhdGVQcmltaXRp
dmVOdW1lcmljVmFsdWUoYXJndW1lbnQpOworICAgICAgICBBU1NFUlQoYXJndW1lbnROdW1iZXIg
PCA2KTsKKyAgICAgICAgc3dpdGNoIChhcmd1bWVudE51bWJlcikgeworICAgICAgICBjYXNlIDA6
CisgICAgICAgICAgICBzaGFwZS0+c2V0VG9wKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgc2hhcGUtPnNldFJpZ2h0KGxlbmd0aCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgc2hhcGUtPnNl
dEJvdHRvbShsZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgIHNoYXBlLT5zZXRMZWZ0KGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0OgorICAgICAgICAgICAgc2hhcGUtPnNldFJhZGl1c1gobGVuZ3RoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBzaGFwZS0+c2V0
UmFkaXVzWShsZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YXJndW1lbnQgPSBhcmdzLT5uZXh0KCk7CisgICAgICAgIGlmIChhcmd1bWVudCkgeworICAgICAg
ICAgICAgaWYgKCFpc0NvbW1hKGFyZ3VtZW50KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsK
KworICAgICAgICAgICAgYXJndW1lbnQgPSBhcmdzLT5uZXh0KCk7CisgICAgICAgIH0KKyAgICAg
ICAgYXJndW1lbnROdW1iZXIrKzsKKyAgICB9CisKKyAgICBpZiAoYXJndW1lbnROdW1iZXIgPCA0
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc2hhcGU7Cit9CisKIFBhc3NSZWZQdHI8
Q1NTQmFzaWNTaGFwZT4gQ1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGVDaXJjbGUoQ1NTUGFyc2Vy
VmFsdWVMaXN0KiBhcmdzKQogewogICAgIEFTU0VSVChhcmdzKTsKQEAgLTUzMDcsNiArNTM2MSw4
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGUoQ1NTUHJvcGVydHlJRCBwcm9wSWQs
IGJvb2wgaW1wb3J0YW50KQogICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZUVsbGlwc2Uo
YXJncyk7CiAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9uLT5u
YW1lLCAicG9seWdvbigiKSkKICAgICAgICAgc2hhcGUgPSBwYXJzZUJhc2ljU2hhcGVQb2x5Z29u
KGFyZ3MpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLT5mdW5jdGlvbi0+
bmFtZSwgImluc2V0LXJlY3RhbmdsZSgiKSkKKyAgICAgICAgc2hhcGUgPSBwYXJzZUJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZShhcmdzKTsKIAogICAgIGlmICghc2hhcGUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA5YTIyMmE5ZGQ0NGExNTM4MjA4MDAz
NjUzOGUzMzRiZDE0ODg0NGI5Li5jYWQzOTI1NGUzNDY5YzQxNWQ3MTI5MmVhNDYyZDQ2ZjMyYTA0
ZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xNzcsNiArMTc3LDcgQEAgcHVibGljOgog
ICAgIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gcGFyc2VCYXNpY1NoYXBlQ2lyY2xlKENTU1Bh
cnNlclZhbHVlTGlzdCogYXJncyk7CiAgICAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJz
ZUJhc2ljU2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAgICAgUGFzc1Jl
ZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVQb2x5Z29uKENTU1BhcnNlclZhbHVl
TGlzdCogYXJncyk7CisgICAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZShDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MpOwogCiAgICAgYm9vbCBw
YXJzZUZvbnQoYm9vbCBpbXBvcnRhbnQpOwogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBw
YXJzZUZvbnRGYW1pbHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKaW5kZXggZTcyM2U0ZjM0NGUwZWYzZjc2ZTEyZjU1
OWNmYTBhMTA5NGVjYmFjZS4uZDRhZjZiZjU3NDY4YjVkMjU3ZjQyMDhiMmZjMDhmOGRlYjVkNGQy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgTGluZVNlZ21lbnRSYW5nZTo6TGluZVNl
Z21lbnRSYW5nZShjb25zdCBJbmxpbmVJdGVyYXRvciYgc3RhcnQsIGNvbnN0IElubGluZUl0ZXIK
IGJvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVy
QmxvY2sqIHJlbmRlcmVyKQogewogICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUg
PSByZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgpOwotICAgIHJldHVybiAo
c2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6
U2hhcGUpID8gc2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7CisgICAgcmV0dXJuIChzaGFwZVZhbHVl
ICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSAmJiBz
aGFwZVZhbHVlLT5zaGFwZSgpLT50eXBlKCkgIT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfSU5T
RVRfUkVDVEFOR0xFKSA/IHNoYXBlVmFsdWUtPnNoYXBlKCkgOiAwOwogfQogCiBib29sIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6YWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWluU2VnbWVu
dFdpZHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlT3V0c2lkZUluZm8uY3BwCmluZGV4IDJjN2Y4YmRmNWE5NDI1ZDY1NWNkZWM0MTgwYjI2ZWJl
YTIyMDUyN2UuLmMwNjY3OWFkNzIyN2RiMjE3MTQzNDUyNjYxNTI1YWM5YzdjOTRkZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mby5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogYm9vbCBFeGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQm94KiBib3gp
CiB7CiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogdmFsdWUgPSBib3gtPnN0eWxlKCktPnNoYXBl
T3V0c2lkZSgpOwotICAgIHJldHVybiAoYm94LT5pc0Zsb2F0aW5nV2l0aFNoYXBlT3V0c2lkZSgp
ICYmIHZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U2hhcGUpID8gdmFsdWUt
PnNoYXBlKCkgOiAwOworICAgIHJldHVybiAoYm94LT5pc0Zsb2F0aW5nV2l0aFNoYXBlT3V0c2lk
ZSgpICYmIHZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U2hhcGUgJiYgdmFs
dWUtPnNoYXBlKCktPnR5cGUoKSAhPSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9JTlNFVF9SRUNU
QU5HTEUpID8gdmFsdWUtPnNoYXBlKCkgOiAwOwogfQogCiBib29sIEV4Y2x1c2lvblNoYXBlT3V0
c2lkZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlv
dXRVbml0IGxpbmVIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvQmFzaWNTaGFwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jh
c2ljU2hhcGVzLmNwcAppbmRleCBiMjEzNThmZGM4ZmI0ZjdlZjU1MDA3YWRhZTE5NjlmODBjZGZh
OGQ4Li5mMDc2YmFjMTIyMTNmYmVlZTQ0ZTg3ODc4NGNhZTQwZjRjNTE3MzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKQEAgLTE2OSw0ICsx
NjksMzIgQEAgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBCYXNpY1NoYXBlUG9seWdvbjo6YmxlbmQo
Y29uc3QgQmFzaWNTaGFwZSogb3RoZXIsIGRvdWJsZQogCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlKCk7CiB9CisKK3ZvaWQgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpwYXRoKFBhdGgmIHBh
dGgsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gpCit7CisgICAgQVNTRVJUKHBhdGguaXNF
bXB0eSgpKTsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KEZsb2F0UmVjdChmbG9hdFZhbHVlRm9y
TGVuZ3RoKG1fbGVmdCwgYm91bmRpbmdCb3gud2lkdGgoKSkgKyBib3VuZGluZ0JveC54KCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChtX3Rv
cCwgYm91bmRpbmdCb3guaGVpZ2h0KCkpICsgYm91bmRpbmdCb3gueSgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94LndpZHRoKCkgLSBmbG9hdFZhbHVlRm9y
TGVuZ3RoKG1fcmlnaHQsIGJvdW5kaW5nQm94LndpZHRoKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94LmhlaWdodCgpIC0gZmxvYXRWYWx1ZUZvckxlbmd0
aChtX2JvdHRvbSwgYm91bmRpbmdCb3guaGVpZ2h0KCkpKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEZsb2F0U2l6ZShtX2Nvcm5lclJhZGl1c1guaXNVbmRlZmluZWQoKSA/IDAgOiBmbG9hdFZh
bHVlRm9yTGVuZ3RoKG1fY29ybmVyUmFkaXVzWCwgYm91bmRpbmdCb3gud2lkdGgoKSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JuZXJSYWRpdXNZLmlzVW5kZWZpbmVk
KCkgPyAwIDogZmxvYXRWYWx1ZUZvckxlbmd0aChtX2Nvcm5lclJhZGl1c1ksIGJvdW5kaW5nQm94
LmhlaWdodCgpKSkpOworfQorCitQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IEJhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZTo6YmxlbmQoY29uc3QgQmFzaWNTaGFwZSogb3RoZXIsIGRvdWJsZSBwcm9ncmVz
cykgY29uc3QKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IG90aGVyLT50eXBlKCkpOworCisgICAg
Y29uc3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKiBvID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmFz
aWNTaGFwZUluc2V0UmVjdGFuZ2xlKj4ob3RoZXIpOworICAgIFJlZlB0cjxCYXNpY1NoYXBlSW5z
ZXRSZWN0YW5nbGU+IHJlc3VsdCA9ICBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgp
OworICAgIHJlc3VsdC0+c2V0VG9wKG1fdG9wLmJsZW5kKG8tPnRvcCgpLCBwcm9ncmVzcykpOwor
ICAgIHJlc3VsdC0+c2V0UmlnaHQobV9yaWdodC5ibGVuZChvLT5yaWdodCgpLCBwcm9ncmVzcykp
OworICAgIHJlc3VsdC0+c2V0Qm90dG9tKG1fYm90dG9tLmJsZW5kKG8tPmJvdHRvbSgpLCBwcm9n
cmVzcykpOworICAgIHJlc3VsdC0+c2V0TGVmdChtX2xlZnQuYmxlbmQoby0+bGVmdCgpLCBwcm9n
cmVzcykpOworICAgIGlmICghbV9jb3JuZXJSYWRpdXNYLmlzVW5kZWZpbmVkKCkgJiYgIW8tPmNv
cm5lclJhZGl1c1goKS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXN1bHQtPnNldENvcm5lclJh
ZGl1c1gobV9jb3JuZXJSYWRpdXNYLmJsZW5kKG8tPmNvcm5lclJhZGl1c1goKSwgcHJvZ3Jlc3Mp
KTsKKyAgICBpZiAoIW1fY29ybmVyUmFkaXVzWS5pc1VuZGVmaW5lZCgpICYmICFvLT5jb3JuZXJS
YWRpdXNZKCkuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmVzdWx0LT5zZXRDb3JuZXJSYWRpdXNZ
KG1fY29ybmVyUmFkaXVzWS5ibGVuZChvLT5jb3JuZXJSYWRpdXNZKCksIHByb2dyZXNzKSk7Cisg
ICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7Cit9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCmluZGV4IDE3MWQ5YzFmNmNjOWI0MGMwODg5YzRlN2Ew
NTY0ZmNhYjc5M2FkMGIuLjRkYzZkZjJiNzJmODQ3NjlkNTQ1NTk0OWMyZDAwNjk5NThlMjEyODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCkBAIC00
OSw3ICs0OSw4IEBAIHB1YmxpYzoKICAgICAgICAgQkFTSUNfU0hBUEVfUkVDVEFOR0xFID0gMSwK
ICAgICAgICAgQkFTSUNfU0hBUEVfQ0lSQ0xFID0gMiwKICAgICAgICAgQkFTSUNfU0hBUEVfRUxM
SVBTRSA9IDMsCi0gICAgICAgIEJBU0lDX1NIQVBFX1BPTFlHT04gPSA0CisgICAgICAgIEJBU0lD
X1NIQVBFX1BPTFlHT04gPSA0LAorICAgICAgICBCQVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5HTEUg
PSA1CiAgICAgfTsKIAogICAgIGJvb2wgY2FuQmxlbmQoY29uc3QgQmFzaWNTaGFwZSopIGNvbnN0
OwpAQCAtMTc1LDUgKzE3Niw0MSBAQCBwcml2YXRlOgogICAgIFdpbmRSdWxlIG1fd2luZFJ1bGU7
CiAgICAgVmVjdG9yPExlbmd0aD4gbV92YWx1ZXM7CiB9OworCitjbGFzcyBCYXNpY1NoYXBlSW5z
ZXRSZWN0YW5nbGUgOiBwdWJsaWMgQmFzaWNTaGFwZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKTsgfQorCisgICAgTGVuZ3RoIHRvcCgp
IGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9CisgICAgTGVuZ3RoIHJpZ2h0KCkgY29uc3QgeyByZXR1
cm4gbV9yaWdodDsgfQorICAgIExlbmd0aCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRv
bTsgfQorICAgIExlbmd0aCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9CisgICAgTGVu
Z3RoIGNvcm5lclJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX2Nvcm5lclJhZGl1c1g7IH0KKyAg
ICBMZW5ndGggY29ybmVyUmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fY29ybmVyUmFkaXVzWTsg
fQorCisgICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHRvcCkgeyBtX3RvcCA9IHRvcDsgfQorICAgIHZv
aWQgc2V0UmlnaHQoTGVuZ3RoIHJpZ2h0KSB7IG1fcmlnaHQgPSByaWdodDsgfQorICAgIHZvaWQg
c2V0Qm90dG9tKExlbmd0aCBib3R0b20pIHsgbV9ib3R0b20gPSBib3R0b207IH0KKyAgICB2b2lk
IHNldExlZnQoTGVuZ3RoIGxlZnQpIHsgbV9sZWZ0ID0gbGVmdDsgfQorICAgIHZvaWQgc2V0Q29y
bmVyUmFkaXVzWChMZW5ndGggcmFkaXVzWCkgeyBtX2Nvcm5lclJhZGl1c1ggPSByYWRpdXNYOyB9
CisgICAgdm9pZCBzZXRDb3JuZXJSYWRpdXNZKExlbmd0aCByYWRpdXNZKSB7IG1fY29ybmVyUmFk
aXVzWSA9IHJhZGl1c1k7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBG
bG9hdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4g
YmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEJBU0lDX1NIQVBFX0lOU0VUX1JFQ1RB
TkdMRTsgfQorcHJpdmF0ZToKKyAgICBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUoKQorICAgICAg
ICA6IG1fY29ybmVyUmFkaXVzWChVbmRlZmluZWQpCisgICAgICAgICwgbV9jb3JuZXJSYWRpdXNZ
KFVuZGVmaW5lZCkKKyAgICB7IH0KKworICAgIExlbmd0aCBtX3JpZ2h0OworICAgIExlbmd0aCBt
X3RvcDsKKyAgICBMZW5ndGggbV9ib3R0b207CisgICAgTGVuZ3RoIG1fbGVmdDsKKyAgICBMZW5n
dGggbV9jb3JuZXJSYWRpdXNYOworICAgIExlbmd0aCBtX2Nvcm5lclJhZGl1c1k7Cit9OwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTI1ZWU1ZDhhMDJkN2I3MjM5MDE4MzA0MzcwNTc4NTQ2MDJhNjgwYS4u
ZjM0ZGJlNDFmZTg5YTZjYWVhZDYyMGQwOTkyMGQ0ZjU1NWVkMDhlYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEzLTA1LTIzICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgor
CisgICAgICAgIFtDU1MgU2hhcGVzXSBTdXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFuZ2xlIHNo
YXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2
NjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlZCB0byB0ZXN0IGZvciBpbnNldC1yZWN0YW5nbGUgY2FzZXMuCisKKyAgICAgICAgKiBmYXN0
L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXNo
YXBlLWxlbmd0aHMuanM6CisKIDIwMTMtMDUtMjMgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRv
YmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc11bTWFjXSBbV0syXSBMYXlvdXQgVGVzdCBm
YXN0L3JlZ2lvbnMvZml4ZWQtcG9zLWVsZW0taW4tcmVnaW9uLmh0bWwgaXMgZmxha3kgb24gRGVi
dWcgYnVpbGRlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJz
aW5nL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDkxZTRhZjhhOWQyNDEyNTYwOTZjNTgyMTMyOTgyMGQ2NTk1MDcyZjMuLjViZWE3ZDA3Y2Ix
MGFiYWM4ZDRjZGIyMTA4MmNiOTJiZDEzNTkyNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1s
ZW5ndGhzLWV4cGVjdGVkLnR4dApAQCAtOCw2ICs4LDcgQEAgUEFTUyBnZXRTdHlsZVZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLTFweCwgKzFweCwgMXB4KSIpIGlzICJjaXJj
bGUKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC0x
LjVweCwgKzEuNXB4LCAxLjVweCkiKSBpcyAiY2lyY2xlKC0xLjVweCwgMS41cHgsIDEuNXB4KSIK
IFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC0uNXB4
LCArLjVweCwgLjVweCkiKSBpcyAiY2lyY2xlKC0wLjVweCwgMC41cHgsIDAuNXB4KSIKIFBBU1Mg
Z2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1t
LCAxaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgs
IDFwdCwgMXBjKSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAi
aW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgImluc2V0
LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIKIFBBU1MgZ2V0U3R5bGVW
YWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC0xZW0sICsxZW0sIDFlbSkiKSBp
cyAiY2lyY2xlKC0xZW0sIDFlbSwgMWVtKSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1z
aGFwZS1pbnNpZGUiLCAiY2lyY2xlKC0xLjVlbSwgKzEuNWVtLCAxLjVlbSkiKSBpcyAiY2lyY2xl
KC0xLjVlbSwgMS41ZW0sIDEuNWVtKSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1pbnNpZGUiLCAiY2lyY2xlKC0uNWVtLCArLjVlbSwgLjVlbSkiKSBpcyAiY2lyY2xlKC0wLjVl
bSwgMC41ZW0sIDAuNWVtKSIKQEAgLTIzLDEwICsyNCwxMiBAQCBQQVNTIGdldENvbXB1dGVkU3R5
bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC41dmgsIDF2aCwgMS41dmgp
IikgaQogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwg
ImNpcmNsZSguNXZtaW4sIDF2bWluLCAxLjV2bWluKSIpIGlzICJjaXJjbGUoMC41dm1pbiwgMXZt
aW4sIDEuNXZtaW4pIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIs
ICJjaXJjbGUoMTAwJSwgMTAwJSwgMTAwJSkiKSBpcyAiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUp
IgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUo
NDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBpcyAicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5
MCUsIDYwJSwgMjUlLCAxMCUpIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWlu
c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBp
cyAiaW5zZXQtcmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIgogUEFTUyBn
ZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDEwMCUsIDEwMCUs
IDEwMCUsIDEwMCUpIikgaXMgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiCiBQQVNT
IGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInBvbHlnb24oMTAlIDIwJSwg
MzAlIDQwJSwgNDAlIDUwJSkiKSBpcyAicG9seWdvbihub256ZXJvLCAxMCUgMjAlLCAzMCUgNDAl
LCA0MCUgNTAlKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWlu
c2lkZSIsICJjaXJjbGUoNTAlLCAxMDAlLCAxNTAlKSIpIGlzICJjaXJjbGUoNTAlLCAxMDAlLCAx
NTAlKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIs
ICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBpcyAicmVjdGFuZ2xl
KDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFs
dWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAl
LCA2MCUsIDI1JSwgMTAlKSIpIGlzICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAl
LCAyNSUsIDEwJSkiCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpIGlzICJlbGxpcHNlKDEw
MCUsIDEwMCUsIDEwMCUsIDEwMCUpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJr
aXQtc2hhcGUtaW5zaWRlIiwgInBvbHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiKSBp
cyAicG9seWdvbihub256ZXJvLCAxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIKIFBBU1MgZ2V0
U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKDFweCwgMXB4LCAxKSIp
IGlzIG51bGwKQEAgLTQzLDYgKzQ2LDEwIEBAIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1z
aGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwKIFBBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUo
MWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNT
IGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFt
bSwgMWluLCAxcHgsIDFwdCwgLTFwYykiKSBpcyBudWxsCiBQQVNTIGdldENvbXB1dGVkU3R5bGVW
YWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFw
eCwgMXB0LCAtMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4
LCAtMXB0LCAxcGMpIikgaXMgbnVsbAorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJr
aXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIC0x
cHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtp
dC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0
LCAtMXBjKSIpIGlzIG51bGwKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNo
YXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0x
cGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hh
cGUtaW5zaWRlIiwgImVsbGlwc2UoMWVtLCAxZW0sIC0xZW0sIDFlbSkiKSBpcyBudWxsCiBQQVNT
IGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgx
ZW0sIDFlbSwgLTFlbSwgMWVtKSIpIGlzICJvdXRzaWRlLXNoYXBlIgogUEFTUyBnZXRTdHlsZVZh
bHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDFlbSwgMWVtLCAxZW0sIC0xZW0p
IikgaXMgbnVsbApAQCAtNTEsNiArNTgsMTQgQEAgUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LAogUEFT
UyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3Rhbmds
ZSgxY20sIDFtbSwgLTFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKIFBB
U1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwg
MW1tLCAxaW4sIC0xcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKIFBBU1MgZ2V0Q29tcHV0ZWRTdHls
ZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwg
LTFweCwgMXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldFN0eWxlVmFsdWUo
Ii13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgtMWNtLCAxbW0sIDFpbiwg
MXB4LCAxcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKC0xY20sIDFtbSwgMWluLCAxcHgs
IDFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Vi
a2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAtMW1tLCAxaW4sIDFweCwg
MXB0LCAxcGMpIikgaXMgbnVsbAorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQt
c2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIC0xbW0sIDFpbiwgMXB4LCAxcHQs
IDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1z
aGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwg
MXBjKSIpIGlzIG51bGwKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBl
LWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMp
IikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUt
aW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAtMXB4LCAxcHQsIDFwYyki
KSBpcyBudWxsCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNp
ZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIC0xcHgsIDFwdCwgMXBjKSIpIGlz
ICJvdXRzaWRlLXNoYXBlIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2lu
Zy9zY3JpcHQtdGVzdHMvcGFyc2luZy1zaGFwZS1sZW5ndGhzLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0LXRlc3RzL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy5q
cwppbmRleCAwZWMzNGY5NzExN2U3MDlkNDAxZjRmNjgwNGE3ODg4NDViZDNmZjVhLi43Y2U2NGUz
ODM2ZjgzOTEwZTJhMTQ3NDg2OWE2MzMzMmExMzRlZGM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9zY3JpcHQtdGVzdHMvcGFyc2luZy1zaGFwZS1sZW5n
dGhzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10
ZXN0cy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMuanMKQEAgLTMzLDYgKzMzLDcgQEAgdGVzdFN0eWxl
VmFsdWUoImNpcmNsZSgtMS41cHgsICsxLjVweCwgMS41cHgpIiwgImNpcmNsZSgtMS41cHgsIDEu
NXB4LCAxLjVweCkiKTsKIHRlc3RTdHlsZVZhbHVlKCJjaXJjbGUoLS41cHgsICsuNXB4LCAuNXB4
KSIsICJjaXJjbGUoLTAuNXB4LCAwLjVweCwgMC41cHgpIik7CiAKIHRlc3RTdHlsZVZhbHVlKCJy
ZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiLCAicmVjdGFuZ2xlKDFjbSwg
MW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIik7Cit0ZXN0U3R5bGVWYWx1ZSgiaW5zZXQtcmVjdGFu
Z2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIiwgImluc2V0LXJlY3RhbmdsZSgxY20s
IDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpOwogCiAvLyBmb250LXJlbGF0aXZlIGxlbmd0aHMg
LSBudW1iZXIgc2VyaWFsaXphdGlvbiwgdW5pdHMsIHJlc29sdXRpb24KIHRlc3RTdHlsZVZhbHVl
KCJjaXJjbGUoLTFlbSwgKzFlbSwgMWVtKSIsICJjaXJjbGUoLTFlbSwgMWVtLCAxZW0pIik7CkBA
IC01OCwxMSArNTksMTMgQEAgdGVzdENvbXB1dGVkU3R5bGVWYWx1ZSgiY2lyY2xlKC41dm1pbiwg
MXZtaW4sIDEuNXZtaW4pIiwgImNpcmNsZSgwLjV2bWluLCAxdm1pbiwKIC8vIHBlcmNlbnRhZ2Ug
bGVuZ3RocyAtIHVuaXRzCiB0ZXN0U3R5bGVWYWx1ZSgiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUp
IiwgImNpcmNsZSgxMDAlLCAxMDAlLCAxMDAlKSIpOwogdGVzdFN0eWxlVmFsdWUoInJlY3Rhbmds
ZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIsICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkw
JSwgNjAlLCAyNSUsIDEwJSkiKTsKK3Rlc3RTdHlsZVZhbHVlKCJpbnNldC1yZWN0YW5nbGUoNDUl
LCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiLCAiaW5zZXQtcmVjdGFuZ2xlKDQ1JSwgNDUlLCA5
MCUsIDYwJSwgMjUlLCAxMCUpIik7CiB0ZXN0U3R5bGVWYWx1ZSgiZWxsaXBzZSgxMDAlLCAxMDAl
LCAxMDAlLCAxMDAlKSIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIik7CiB0ZXN0
U3R5bGVWYWx1ZSgicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIsICJwb2x5Z29u
KG5vbnplcm8sIDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIik7CiAKIHRlc3RDb21wdXRlZFN0
eWxlVmFsdWUoImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1
MCUpIik7CiB0ZXN0Q29tcHV0ZWRTdHlsZVZhbHVlKCJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwg
NjAlLCAyNSUsIDEwJSkiLCAicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUp
Iik7Cit0ZXN0Q29tcHV0ZWRTdHlsZVZhbHVlKCJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkw
JSwgNjAlLCAyNSUsIDEwJSkiLCAiaW5zZXQtcmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwg
MjUlLCAxMCUpIik7CiB0ZXN0Q29tcHV0ZWRTdHlsZVZhbHVlKCJlbGxpcHNlKDEwMCUsIDEwMCUs
IDEwMCUsIDEwMCUpIiwgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKTsKIHRlc3RD
b21wdXRlZFN0eWxlVmFsdWUoInBvbHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiLCAi
cG9seWdvbihub256ZXJvLCAxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIpOwogCkBAIC03Niw5
ICs3OSwxNyBAQCB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJj
bGUoMXB4LCAxcHgsIGNhbGMoKSkiKTsKIHRlc3RJbnZhbGlkVmFsdWUoIi13ZWJraXQtc2hhcGUt
aW5zaWRlIiwgImNpcmNsZSgtMS41cHgsICsxLjVweCwgLTEuNXB4KSIpOwogdGVzdEludmFsaWRW
YWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFw
eCwgLTFwdCwgMXBjKSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUi
LCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpOwordGVzdEludmFs
aWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1t
LCAxaW4sIDFweCwgLTFwdCwgMXBjKSIpOwordGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBj
KSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgx
ZW0sIDFlbSwgLTFlbSwgMWVtKSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAiZWxsaXBzZSgxZW0sIDFlbSwgMWVtLCAtMWVtKSIpOwogCiAvLyByZWplY3QgbmVn
YXRpdmUgaGVpZ2h0IGFuZCB3aWR0aAogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBjKSIpOwogdGVz
dEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1t
LCAxaW4sIC0xcHgsIDFwdCwgMXBjKSIpOworCisvLyByZWplY3QgbmVnYXRpdmUgdG9wLCByaWdo
dCwgYm90dG9tLCBhbmQgbGVmdAordGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNp
ZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKC0xY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpOwor
dGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xl
KDFjbSwgLTFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpOwordGVzdEludmFsaWRWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgs
IDFwdCwgMXBjKSIpOwordGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAi
aW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIC0xcHgsIDFwdCwgMXBjKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202835</attachid>
            <date>2013-05-24 10:35:04 -0700</date>
            <delta_ts>2013-05-24 12:18:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116638-20130524103348.patch</filename>
            <type>text/plain</type>
            <size>31151</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ2MTMzOWEzYjVkOWNh
YjYxNDI2M2RhNTA1MGY0MjViNGRmNmIxMy4uZDBjZmYzNmQ3N2M4NjBlYzdlODk0MThhN2Q4ZWJl
NjQ5M2NkZTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTA1LTIzICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBT
dXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFuZ2xlIHNoYXBlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHBhcnNpbmcgZm9yIGluc2V0LXJlY3Rh
bmdsZS4gSXQncyB2ZXJ5IHNpbWlsYXIgdG8gcGFyc2luZyBmb3IKKyAgICAgICAgcmVjdGFuZ2xl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0IHRvIGNvdmVy
IHRoaXMuCisKKyAgICAgICAgKiBjc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWx1ZUZvckJhc2ljU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzaWNT
aGFwZUZvclZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNTaGFwZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRJbnNldFJlY3RhbmdsZVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Y3NzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmVxdWFs
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNlcmlh
bGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKToKKyAgICAgICAgKiBjc3MvQ1NT
QmFzaWNTaGFwZXMuaDoKKyAgICAgICAgKENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJhZGl1c1gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpyYWRpdXNZKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmFkaXVz
WCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNldFJh
ZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Q1NT
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUJh
c2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxlZEZv
cik6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9y
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnBh
dGgpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpibGVuZCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNp
Y1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGU6OmNvcm5lclJhZGl1c1gpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpjb3JuZXJSYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZTo6c2V0Q29ybmVyUmFkaXVzWCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1No
YXBlSW5zZXRSZWN0YW5nbGU6OnNldENvcm5lclJhZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKwogMjAxMy0w
NS0yNCAgWGlhb2JvIFdhbmcgIDx4aWFvYndhbmdAYmxhY2tiZXJyeS5jb20+CiAKICAgICAgICAg
W0JsYWNrQmVycnldIERSVCAtIGNyYXNoZWQgb24gR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5j
dGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCmlu
ZGV4IDllOWEwZmM3ZDVkOGIwNTdjMTJlMTAwMTM2OGZkNThlZTAxZmFlOWEuLjA2YmFjNTMzNDM2
NjA1MzhhYTBiMTNlY2Y0YTUzMzEzYTYyMTQzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFz
aWNTaGFwZUZ1bmN0aW9ucy5jcHAKQEAgLTk0LDYgKzk0LDIzIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlKQogICAg
ICAgICBiYXNpY1NoYXBlVmFsdWUgPSBwb2x5Z29uVmFsdWUucmVsZWFzZSgpOwogICAgICAgICBi
cmVhazsKICAgICB9CisgICAgY2FzZSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9JTlNFVF9SRUNU
QU5HTEU6IHsKKyAgICAgICAgY29uc3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKiByZWN0YW5n
bGUgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqPihiYXNpY1No
YXBlKTsKKyAgICAgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZT4gcmVjdGFu
Z2xlVmFsdWUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgpOworCisgICAg
ICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRUb3AoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVj
dGFuZ2xlLT50b3AoKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1ZS0+c2V0UmlnaHQoY3NzVmFs
dWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5yaWdodCgpKSk7CisgICAgICAgIHJlY3Rh
bmdsZVZhbHVlLT5zZXRCb3R0b20oY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xl
LT5ib3R0b20oKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1ZS0+c2V0TGVmdChjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZShyZWN0YW5nbGUtPmxlZnQoKSkpOworICAgICAgICBpZiAoIXJlY3Rh
bmdsZS0+Y29ybmVyUmFkaXVzWCgpLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgICAgIHJlY3Rh
bmdsZVZhbHVlLT5zZXRSYWRpdXNYKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHJlY3Rhbmds
ZS0+Y29ybmVyUmFkaXVzWCgpKSk7CisgICAgICAgICAgICBpZiAoIXJlY3RhbmdsZS0+Y29ybmVy
UmFkaXVzWSgpLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICAgICAgcmVjdGFuZ2xlVmFsdWUt
PnNldFJhZGl1c1koY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5jb3JuZXJS
YWRpdXNZKCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGJhc2ljU2hhcGVWYWx1ZSA9IHJlY3Rh
bmdsZVZhbHVlLnJlbGVhc2UoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE2MSw2ICsxNzgsMjIgQEAgUGFzc1JlZlB0cjxC
YXNpY1NoYXBlPiBiYXNpY1NoYXBlRm9yVmFsdWUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBj
b25zdCBSZW5kZXIKICAgICAgICAgYmFzaWNTaGFwZSA9IHBvbHlnb24ucmVsZWFzZSgpOwogICAg
ICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBDU1NCYXNpY1NoYXBlOjpDU1NfQkFTSUNfU0hB
UEVfSU5TRVRfUkVDVEFOR0xFOiB7CisgICAgICAgIGNvbnN0IENTU0Jhc2ljU2hhcGVJbnNldFJl
Y3RhbmdsZSogcmVjdFZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQmFzaWNTaGFwZUluc2V0
UmVjdGFuZ2xlICo+KGJhc2ljU2hhcGVWYWx1ZSk7CisgICAgICAgIFJlZlB0cjxCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU+IHJlY3QgPSBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgp
OworCisgICAgICAgIHJlY3QtPnNldFRvcChjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHls
ZSwgcmVjdFZhbHVlLT50b3AoKSkpOworICAgICAgICByZWN0LT5zZXRSaWdodChjb252ZXJ0VG9M
ZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVlLT5yaWdodCgpKSk7CisgICAgICAgIHJl
Y3QtPnNldEJvdHRvbShjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVl
LT5ib3R0b20oKSkpOworICAgICAgICByZWN0LT5zZXRMZWZ0KGNvbnZlcnRUb0xlbmd0aChzdHls
ZSwgcm9vdFN0eWxlLCByZWN0VmFsdWUtPmxlZnQoKSkpOworICAgICAgICBpZiAocmVjdFZhbHVl
LT5yYWRpdXNYKCkpIHsKKyAgICAgICAgICAgIHJlY3QtPnNldENvcm5lclJhZGl1c1goY29udmVy
dFRvTGVuZ3RoKHN0eWxlLCByb290U3R5bGUsIHJlY3RWYWx1ZS0+cmFkaXVzWCgpKSk7CisgICAg
ICAgICAgICBpZiAocmVjdFZhbHVlLT5yYWRpdXNZKCkpCisgICAgICAgICAgICAgICAgcmVjdC0+
c2V0Q29ybmVyUmFkaXVzWShjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZh
bHVlLT5yYWRpdXNZKCkpKTsKKyAgICAgICAgfQorICAgICAgICBiYXNpY1NoYXBlID0gcmVjdC5y
ZWxlYXNlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAppbmRleCAxOTc0
ZTYwMGQ0MzI4ZDFjYjUwYjMzMjA5MmY0YjdlNTVlOTc4MGNjLi44OGY0NGNmNzY1Y2QzOTk0NWRk
ZDNkOWM5YzVhODQ2OWYyZDRiOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
QmFzaWNTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5j
cHAKQEAgLTI2OCw1ICsyNjgsNzggQEAgYm9vbCBDU1NCYXNpY1NoYXBlUG9seWdvbjo6aGFzVmFy
aWFibGVSZWZlcmVuY2UoKSBjb25zdAogfQogI2VuZGlmCiAKK3N0YXRpYyBTdHJpbmcgYnVpbGRJ
bnNldFJlY3RhbmdsZVN0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiByaWdo
dCwgY29uc3QgU3RyaW5nJiBib3R0b20sIGNvbnN0IFN0cmluZyYgbGVmdCwgY29uc3QgU3RyaW5n
JiByYWRpdXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1kpCit7CisgICAgY2hhciBvcGVuaW5nW10g
PSAiaW5zZXQtcmVjdGFuZ2xlKCI7CisgICAgY2hhciBzZXBhcmF0b3JbXSA9ICIsICI7CisgICAg
U3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgLy8gQ29tcHV0ZSB0aGUgcmVxdWlyZWQgY2FwYWNp
dHkgaW4gYWR2YW5jZSB0byByZWR1Y2UgYWxsb2NhdGlvbnMuCisgICAgcmVzdWx0LnJlc2VydmVD
YXBhY2l0eSgoc2l6ZW9mKG9wZW5pbmcpIC0gMSkgKyAoNSAqIChzaXplb2Yoc2VwYXJhdG9yKSAt
IDEpKSArIDEgKyB0b3AubGVuZ3RoKCkgKyByaWdodC5sZW5ndGgoKSArIGJvdHRvbS5sZW5ndGgo
KSArIGxlZnQubGVuZ3RoKCkgKyByYWRpdXNYLmxlbmd0aCgpICsgcmFkaXVzWS5sZW5ndGgoKSk7
CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwob3BlbmluZyk7CisgICAgcmVzdWx0LmFwcGVuZCh0
b3ApOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRvcik7CisgICAgcmVzdWx0LmFw
cGVuZChyaWdodCk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoc2VwYXJhdG9yKTsKKyAgICBy
ZXN1bHQuYXBwZW5kKGJvdHRvbSk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoc2VwYXJhdG9y
KTsKKyAgICByZXN1bHQuYXBwZW5kKGxlZnQpOworICAgIGlmICghcmFkaXVzWC5pc051bGwoKSkg
eworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbChzZXBhcmF0b3IpOworICAgICAgICByZXN1
bHQuYXBwZW5kKHJhZGl1c1gpOworICAgICAgICBpZiAoIXJhZGl1c1kuaXNOdWxsKCkpIHsKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRvcik7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKHJhZGl1c1kpOworICAgICAgICB9CisgICAgfQorICAgIHJlc3VsdC5hcHBl
bmQoJyknKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK1N0cmluZyBDU1NC
YXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNzc1RleHQoKSBjb25zdAoreworICAgIHJldHVybiBi
dWlsZEluc2V0UmVjdGFuZ2xlU3RyaW5nKG1fdG9wLT5jc3NUZXh0KCksCisgICAgICAgIG1fcmln
aHQtPmNzc1RleHQoKSwKKyAgICAgICAgbV9ib3R0b20tPmNzc1RleHQoKSwKKyAgICAgICAgbV9s
ZWZ0LT5jc3NUZXh0KCksCisgICAgICAgIG1fcmFkaXVzWC5nZXQoKSA/IG1fcmFkaXVzWC0+Y3Nz
VGV4dCgpIDogU3RyaW5nKCksCisgICAgICAgIG1fcmFkaXVzWS5nZXQoKSA/IG1fcmFkaXVzWS0+
Y3NzVGV4dCgpIDogU3RyaW5nKCkpOworfQorCitib29sIENTU0Jhc2ljU2hhcGVJbnNldFJlY3Rh
bmdsZTo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdAoreworICAgIGlm
IChzaGFwZS50eXBlKCkgIT0gQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xl
JiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSY+
KHNoYXBlKTsKKyAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlUHRyKG1fdG9wLCBvdGhlci5tX3Rv
cCkKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmlnaHQsIG90aGVyLm1fcmlnaHQp
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2JvdHRvbSwgb3RoZXIubV9ib3R0b20p
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2xlZnQsIG90aGVyLm1fbGVmdCkKKyAg
ICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmFkaXVzWCwgb3RoZXIubV9yYWRpdXNYKQor
ICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9yYWRpdXNZLCBvdGhlci5tX3JhZGl1c1kp
OworfQorCisjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCitTdHJpbmcgQ1NTQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJsZXMoY29uc3QgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIFN0cmluZz4mIHZhcmlhYmxlcykgY29uc3QKK3sKKyAgICByZXR1cm4gYnVp
bGRJbnNldFJlY3RhbmdsZVN0cmluZyhtX3RvcC0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFibGVz
KHZhcmlhYmxlcyksCisgICAgICAgIG1fcmlnaHQtPnNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxl
cyh2YXJpYWJsZXMpLAorICAgICAgICBtX2JvdHRvbS0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFi
bGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fbGVmdC0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFi
bGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fcmFkaXVzWC5nZXQoKSA/IG1fcmFkaXVzWC0+c2Vy
aWFsaXplUmVzb2x2aW5nVmFyaWFibGVzKHZhcmlhYmxlcykgOiBTdHJpbmcoKSwKKyAgICAgICAg
bV9yYWRpdXNZLmdldCgpID8gbV9yYWRpdXNZLT5zZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJsZXMo
dmFyaWFibGVzKSA6IFN0cmluZygpKTsKK30KKworYm9vbCBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0
YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90b3At
Pmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgbV9yaWdodC0+aGFzVmFyaWFibGVS
ZWZlcmVuY2UoKQorICAgICAgICB8fCBtX2JvdHRvbS0+aGFzVmFyaWFibGVSZWZlcmVuY2UoKQor
ICAgICAgICB8fCBtX2xlZnQtPmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgKG1f
cmFkaXVzWC5nZXQoKSAmJiBtX3JhZGl1c1gtPmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkpCisgICAg
ICAgIHx8IChtX3JhZGl1c1kuZ2V0KCkgJiYgbV9yYWRpdXNZLT5oYXNWYXJpYWJsZVJlZmVyZW5j
ZSgpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Jhc2ljU2hhcGVzLmgKaW5kZXggOGRiMGQyZjMwYzYzNTA4NzU2ZjM3MjczZjQxOTU3NTJm
ZGNiMmE2NC4uY2Q1OTI4MzAzZjE4ZWVkYTI5MDQyNTI2YjFjNTA0ZmMxODZiNDg5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVibGljOgogICAg
ICAgICBDU1NfQkFTSUNfU0hBUEVfUkVDVEFOR0xFID0gMSwKICAgICAgICAgQ1NTX0JBU0lDX1NI
QVBFX0NJUkNMRSA9IDIsCiAgICAgICAgIENTU19CQVNJQ19TSEFQRV9FTExJUFNFID0gMywKLSAg
ICAgICAgQ1NTX0JBU0lDX1NIQVBFX1BPTFlHT04gPSA0CisgICAgICAgIENTU19CQVNJQ19TSEFQ
RV9QT0xZR09OID0gNCwKKyAgICAgICAgQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRSA9
IDUKICAgICB9OwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CkBAIC0xMDEs
NiArMTAyLDQ0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3Jh
ZGl1c1k7CiB9OwogCitjbGFzcyBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUgOiBwdWJsaWMg
Q1NTQmFzaWNTaGFwZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQmFzaWNT
aGFwZUluc2V0UmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQmFz
aWNTaGFwZUluc2V0UmVjdGFuZ2xlKTsgfQorCisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHRvcCgp
IGNvbnN0IHsgcmV0dXJuIG1fdG9wLmdldCgpOyB9CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJp
Z2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodC5nZXQoKTsgfQorICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbS5nZXQoKTsgfQorICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0LmdldCgpOyB9CisgICAg
Q1NTUHJpbWl0aXZlVmFsdWUqIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1guZ2V0
KCk7IH0KKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFkaXVzWS5nZXQoKTsgfQorCisgICAgdm9pZCBzZXRUb3AoUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gdG9wKSB7IG1fdG9wID0gdG9wOyB9CisgICAgdm9pZCBzZXRSaWdodChQYXNzUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByaWdodCkgeyBtX3JpZ2h0ID0gcmlnaHQ7IH0KKyAgICB2
b2lkIHNldEJvdHRvbShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBib3R0b20pIHsgbV9i
b3R0b20gPSBib3R0b207IH0KKyAgICB2b2lkIHNldExlZnQoUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gbGVmdCkgeyBtX2xlZnQgPSBsZWZ0OyB9CisgICAgdm9pZCBzZXRSYWRpdXNYKFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVz
WDsgfQorICAgIHZvaWQgc2V0UmFkaXVzWShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBy
YWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKworICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRTsgfQorICAg
IHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxz
KGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdDsKKworI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVT
KQorICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyhjb25zdCBI
YXNoTWFwPEF0b21pY1N0cmluZywgU3RyaW5nPiYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBo
YXNWYXJpYWJsZVJlZmVyZW5jZSgpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ1NT
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKCkgeyB9CisKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IG1fcmlnaHQ7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3RvcDsKKyAg
ICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fYm90dG9tOworICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbV9sZWZ0OworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRp
dXNYOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRpdXNZOworfTsKKwogY2xh
c3MgQ1NTQmFzaWNTaGFwZUNpcmNsZSA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgQ1NTQmFzaWNTaGFwZUNpcmNsZSk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggMWYzOGE0YzQ0NGExMzljNzg4NTVjYWI3N2YzZGZhOTUyY2Y1ODYzNS4u
ZTUxNjkyZDM1MDNiODU2ODVkNTIzNTljZmY2ODI2YjAwNzQ2MWY4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTUxMzcsNiArNTEzNyw2MCBAQCBQYXNzUmVmUHRyPENTU0Jhc2ljU2hh
cGU+IENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlUmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlz
dAogICAgIHJldHVybiBzaGFwZTsKIH0KIAorUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBDU1NQ
YXJzZXI6OnBhcnNlQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCog
YXJncykKK3sKKyAgICBBU1NFUlQoYXJncyk7CisKKyAgICAvLyBpbnNldC1yZWN0YW5nbGUodG9w
LCByaWdodCwgYm90dG9tLCBsZWZ0LCBbW3J4XSwgcnldKQorICAgIGlmIChhcmdzLT5zaXplKCkg
IT0gNyAmJiBhcmdzLT5zaXplKCkgIT0gOSAmJiBhcmdzLT5zaXplKCkgIT0gMTEpCisgICAgICAg
IHJldHVybiAwOworCisgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZT4gc2hh
cGUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgpOworCisgICAgdW5zaWdu
ZWQgYXJndW1lbnROdW1iZXIgPSAwOworICAgIENTU1BhcnNlclZhbHVlKiBhcmd1bWVudCA9IGFy
Z3MtPmN1cnJlbnQoKTsKKyAgICB3aGlsZSAoYXJndW1lbnQpIHsKKyAgICAgICAgVW5pdHMgdW5p
dEZsYWdzID0gRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZzsKKyAgICAgICAgaWYgKCF2YWxp
ZFVuaXQoYXJndW1lbnQsIHVuaXRGbGFncykpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGxlbmd0aCA9IGNyZWF0ZVByaW1pdGl2ZU51
bWVyaWNWYWx1ZShhcmd1bWVudCk7CisgICAgICAgIEFTU0VSVChhcmd1bWVudE51bWJlciA8IDYp
OworICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50TnVtYmVyKSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHNoYXBlLT5zZXRUb3AobGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICBzaGFwZS0+c2V0UmlnaHQobGVuZ3RoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBzaGFwZS0+c2V0Qm90
dG9tKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgc2hhcGUtPnNldExlZnQobGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICBzaGFwZS0+c2V0UmFkaXVzWChsZW5ndGgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIHNoYXBlLT5zZXRSYWRp
dXNZKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBhcmd1
bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgaWYgKGFyZ3VtZW50KSB7CisgICAgICAgICAg
ICBpZiAoIWlzQ29tbWEoYXJndW1lbnQpKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworCisg
ICAgICAgICAgICBhcmd1bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBh
cmd1bWVudE51bWJlcisrOworICAgIH0KKworICAgIGlmIChhcmd1bWVudE51bWJlciA8IDQpCisg
ICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzaGFwZTsKK30KKwogUGFzc1JlZlB0cjxDU1NC
YXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUNpcmNsZShDU1NQYXJzZXJWYWx1
ZUxpc3QqIGFyZ3MpCiB7CiAgICAgQVNTRVJUKGFyZ3MpOwpAQCAtNTMwNyw2ICs1MzYxLDggQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9v
bCBpbXBvcnRhbnQpCiAgICAgICAgIHNoYXBlID0gcGFyc2VCYXNpY1NoYXBlRWxsaXBzZShhcmdz
KTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZS0+ZnVuY3Rpb24tPm5hbWUs
ICJwb2x5Z29uKCIpKQogICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24oYXJn
cyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9uLT5uYW1l
LCAiaW5zZXQtcmVjdGFuZ2xlKCIpKQorICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlKGFyZ3MpOwogCiAgICAgaWYgKCFzaGFwZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDlhMjIyYTlkZDQ0YTE1MzgyMDgwMDM2NTM4
ZTMzNGJkMTQ4ODQ0YjkuLmNhZDM5MjU0ZTM0NjljNDE1ZDcxMjkyZWE0NjJkNDZmMzJhMDRlM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTE3Nyw2ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAg
UGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVDaXJjbGUoQ1NTUGFyc2Vy
VmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFz
aWNTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNzUmVmUHRy
PENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24oQ1NTUGFyc2VyVmFsdWVMaXN0
KiBhcmdzKTsKKyAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAKICAgICBib29sIHBhcnNl
Rm9udChib29sIGltcG9ydGFudCk7CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcnNl
Rm9udEZhbWlseSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCBlNzIzZTRmMzQ0ZTBlZjNmNzZlMTJmNTU5Y2Zh
MGExMDk0ZWNiYWNlLi5kNGFmNmJmNTc0NjhiNWQyNTdmNDIwOGIyZmMwOGY4ZGViNWQ0ZDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcApAQCAtNDYsNyArNDYsNyBAQCBMaW5lU2VnbWVudFJhbmdlOjpMaW5lU2VnbWVu
dFJhbmdlKGNvbnN0IElubGluZUl0ZXJhdG9yJiBzdGFydCwgY29uc3QgSW5saW5lSXRlcgogYm9v
bCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCbG9j
ayogcmVuZGVyZXIpCiB7CiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSA9IHJl
bmRlcmVyLT5zdHlsZSgpLT5yZXNvbHZlZFNoYXBlSW5zaWRlKCk7Ci0gICAgcmV0dXJuIChzaGFw
ZVZhbHVlICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFw
ZSkgPyBzaGFwZVZhbHVlLT5zaGFwZSgpIDogMDsKKyAgICByZXR1cm4gKHNoYXBlVmFsdWUgJiYg
c2hhcGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlICYmIHNoYXBl
VmFsdWUtPnNoYXBlKCktPnR5cGUoKSAhPSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9JTlNFVF9S
RUNUQU5HTEUpID8gc2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7CiB9CiAKIGJvb2wgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcChmbG9hdCBtaW5TZWdtZW50V2lk
dGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mby5jcHAKaW5kZXggMmM3ZjhiZGY1YTk0MjVkNjU1Y2RlYzQxODBiMjZlYmVhMjIw
NTI3ZS4uYzA2Njc5YWQ3MjI3ZGIyMTcxNDM0NTI2NjE1MjVhYzljN2M5NGRkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
LmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBib29sIEV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm86OmlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCb3gqIGJveCkKIHsK
ICAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiB2YWx1ZSA9IGJveC0+c3R5bGUoKS0+c2hhcGVPdXRz
aWRlKCk7Ci0gICAgcmV0dXJuIChib3gtPmlzRmxvYXRpbmdXaXRoU2hhcGVPdXRzaWRlKCkgJiYg
dmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSkgPyB2YWx1ZS0+c2hh
cGUoKSA6IDA7CisgICAgcmV0dXJuIChib3gtPmlzRmxvYXRpbmdXaXRoU2hhcGVPdXRzaWRlKCkg
JiYgdmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSAmJiB2YWx1ZS0+
c2hhcGUoKS0+dHlwZSgpICE9IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdM
RSkgPyB2YWx1ZS0+c2hhcGUoKSA6IDA7CiB9CiAKIGJvb2wgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVu
aXQgbGluZUhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9CYXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNT
aGFwZXMuY3BwCmluZGV4IGIyMTM1OGZkYzhmYjRmN2VmNTUwMDdhZGFlMTk2OWY4MGNkZmE4ZDgu
LjIzNjViY2VmZTk3MGY3ZmVhZWE3NWNkNzY0Y2ExMTM1ODUxOTU4ZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcApAQCAtMTY5LDQgKzE2OSwz
MyBAQCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IEJhc2ljU2hhcGVQb2x5Z29uOjpibGVuZChjb25z
dCBCYXNpY1NoYXBlKiBvdGhlciwgZG91YmxlCiAKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2Uo
KTsKIH0KKwordm9pZCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnBhdGgoUGF0aCYgcGF0aCwg
Y29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkKK3sKKyAgICBBU1NFUlQocGF0aC5pc0VtcHR5
KCkpOworICAgIGZsb2F0IGxlZnQgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fbGVmdCwgYm91bmRp
bmdCb3gud2lkdGgoKSk7CisgICAgZmxvYXQgdG9wID0gZmxvYXRWYWx1ZUZvckxlbmd0aChtX3Rv
cCwgYm91bmRpbmdCb3guaGVpZ2h0KCkpOworICAgIHBhdGguYWRkUm91bmRlZFJlY3QoRmxvYXRS
ZWN0KGxlZnQgKyBib3VuZGluZ0JveC54KCksIHRvcCArIGJvdW5kaW5nQm94LnkoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1heDxmbG9hdD4oYm91bmRpbmdCb3gu
d2lkdGgoKSAtIGxlZnQgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fcmlnaHQsIGJvdW5kaW5nQm94
LndpZHRoKCkpLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1h
eDxmbG9hdD4oYm91bmRpbmdCb3guaGVpZ2h0KCkgLSB0b3AgLSBmbG9hdFZhbHVlRm9yTGVuZ3Ro
KG1fYm90dG9tLCBib3VuZGluZ0JveC5oZWlnaHQoKSksIDApKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEZsb2F0U2l6ZShtX2Nvcm5lclJhZGl1c1guaXNVbmRlZmluZWQoKSA/IDAgOiBmbG9h
dFZhbHVlRm9yTGVuZ3RoKG1fY29ybmVyUmFkaXVzWCwgYm91bmRpbmdCb3gud2lkdGgoKSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JuZXJSYWRpdXNZLmlzVW5kZWZp
bmVkKCkgPyAwIDogZmxvYXRWYWx1ZUZvckxlbmd0aChtX2Nvcm5lclJhZGl1c1ksIGJvdW5kaW5n
Qm94LmhlaWdodCgpKSkpOworfQorCitQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IEJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6YmxlbmQoY29uc3QgQmFzaWNTaGFwZSogb3RoZXIsIGRvdWJsZSBwcm9n
cmVzcykgY29uc3QKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IG90aGVyLT50eXBlKCkpOworCisg
ICAgY29uc3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKiBvID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKj4ob3RoZXIpOworICAgIFJlZlB0cjxCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU+IHJlc3VsdCA9ICBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0
ZSgpOworICAgIHJlc3VsdC0+c2V0VG9wKG1fdG9wLmJsZW5kKG8tPnRvcCgpLCBwcm9ncmVzcykp
OworICAgIHJlc3VsdC0+c2V0UmlnaHQobV9yaWdodC5ibGVuZChvLT5yaWdodCgpLCBwcm9ncmVz
cykpOworICAgIHJlc3VsdC0+c2V0Qm90dG9tKG1fYm90dG9tLmJsZW5kKG8tPmJvdHRvbSgpLCBw
cm9ncmVzcykpOworICAgIHJlc3VsdC0+c2V0TGVmdChtX2xlZnQuYmxlbmQoby0+bGVmdCgpLCBw
cm9ncmVzcykpOworICAgIGlmICghbV9jb3JuZXJSYWRpdXNYLmlzVW5kZWZpbmVkKCkgJiYgIW8t
PmNvcm5lclJhZGl1c1goKS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXN1bHQtPnNldENvcm5l
clJhZGl1c1gobV9jb3JuZXJSYWRpdXNYLmJsZW5kKG8tPmNvcm5lclJhZGl1c1goKSwgcHJvZ3Jl
c3MpKTsKKyAgICBpZiAoIW1fY29ybmVyUmFkaXVzWS5pc1VuZGVmaW5lZCgpICYmICFvLT5jb3Ju
ZXJSYWRpdXNZKCkuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmVzdWx0LT5zZXRDb3JuZXJSYWRp
dXNZKG1fY29ybmVyUmFkaXVzWS5ibGVuZChvLT5jb3JuZXJSYWRpdXNZKCksIHByb2dyZXNzKSk7
CisgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7Cit9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCmluZGV4IDE3MWQ5YzFmNmNjOWI0MGMwODg5YzRl
N2EwNTY0ZmNhYjc5M2FkMGIuLjRkYzZkZjJiNzJmODQ3NjlkNTQ1NTk0OWMyZDAwNjk5NThlMjEy
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCkBA
IC00OSw3ICs0OSw4IEBAIHB1YmxpYzoKICAgICAgICAgQkFTSUNfU0hBUEVfUkVDVEFOR0xFID0g
MSwKICAgICAgICAgQkFTSUNfU0hBUEVfQ0lSQ0xFID0gMiwKICAgICAgICAgQkFTSUNfU0hBUEVf
RUxMSVBTRSA9IDMsCi0gICAgICAgIEJBU0lDX1NIQVBFX1BPTFlHT04gPSA0CisgICAgICAgIEJB
U0lDX1NIQVBFX1BPTFlHT04gPSA0LAorICAgICAgICBCQVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5H
TEUgPSA1CiAgICAgfTsKIAogICAgIGJvb2wgY2FuQmxlbmQoY29uc3QgQmFzaWNTaGFwZSopIGNv
bnN0OwpAQCAtMTc1LDUgKzE3Niw0MSBAQCBwcml2YXRlOgogICAgIFdpbmRSdWxlIG1fd2luZFJ1
bGU7CiAgICAgVmVjdG9yPExlbmd0aD4gbV92YWx1ZXM7CiB9OworCitjbGFzcyBCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGUgOiBwdWJsaWMgQmFzaWNTaGFwZSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKTsgfQorCisgICAgTGVuZ3RoIHRv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9CisgICAgTGVuZ3RoIHJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9yaWdodDsgfQorICAgIExlbmd0aCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2Jv
dHRvbTsgfQorICAgIExlbmd0aCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9CisgICAg
TGVuZ3RoIGNvcm5lclJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX2Nvcm5lclJhZGl1c1g7IH0K
KyAgICBMZW5ndGggY29ybmVyUmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fY29ybmVyUmFkaXVz
WTsgfQorCisgICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHRvcCkgeyBtX3RvcCA9IHRvcDsgfQorICAg
IHZvaWQgc2V0UmlnaHQoTGVuZ3RoIHJpZ2h0KSB7IG1fcmlnaHQgPSByaWdodDsgfQorICAgIHZv
aWQgc2V0Qm90dG9tKExlbmd0aCBib3R0b20pIHsgbV9ib3R0b20gPSBib3R0b207IH0KKyAgICB2
b2lkIHNldExlZnQoTGVuZ3RoIGxlZnQpIHsgbV9sZWZ0ID0gbGVmdDsgfQorICAgIHZvaWQgc2V0
Q29ybmVyUmFkaXVzWChMZW5ndGggcmFkaXVzWCkgeyBtX2Nvcm5lclJhZGl1c1ggPSByYWRpdXNY
OyB9CisgICAgdm9pZCBzZXRDb3JuZXJSYWRpdXNZKExlbmd0aCByYWRpdXNZKSB7IG1fY29ybmVy
UmFkaXVzWSA9IHJhZGl1c1k7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25z
dCBGbG9hdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFw
ZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CisKKyAg
ICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEJBU0lDX1NIQVBFX0lOU0VUX1JF
Q1RBTkdMRTsgfQorcHJpdmF0ZToKKyAgICBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUoKQorICAg
ICAgICA6IG1fY29ybmVyUmFkaXVzWChVbmRlZmluZWQpCisgICAgICAgICwgbV9jb3JuZXJSYWRp
dXNZKFVuZGVmaW5lZCkKKyAgICB7IH0KKworICAgIExlbmd0aCBtX3JpZ2h0OworICAgIExlbmd0
aCBtX3RvcDsKKyAgICBMZW5ndGggbV9ib3R0b207CisgICAgTGVuZ3RoIG1fbGVmdDsKKyAgICBM
ZW5ndGggbV9jb3JuZXJSYWRpdXNYOworICAgIExlbmd0aCBtX2Nvcm5lclJhZGl1c1k7Cit9Owog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggM2M5MzkyMzlkNTNjMmYwNmQ5M2YyYTZmZTdlNGM1OTkyNDRjMmQ2
Yi4uMGZhY2IzMzAzOGI5MzhmM2VhOTNkODhjZDI1NjkzYWQ4ZmRmNmY3MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEzLTA1LTIzICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29t
PgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBTdXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFuZ2xl
IHNoYXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE2NjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlZCB0byB0ZXN0IGZvciBpbnNldC1yZWN0YW5nbGUgY2FzZXMuCisKKyAgICAgICAgKiBm
YXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5n
LXNoYXBlLWxlbmd0aHMuanM6CisKIDIwMTMtMDUtMjQgIEdhYm9yIEFicmFoYW0gIDxhYnJobUBp
bmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4gVXBk
YXRlIHF0LTUuMC13azIgZXhwZWN0ZWQgcGljdHVyZXMgYWZ0ZXIgcjE1MDUwNi4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtbGVu
Z3Rocy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9w
YXJzaW5nLXNoYXBlLWxlbmd0aHMtZXhwZWN0ZWQudHh0CmluZGV4IDkxZTRhZjhhOWQyNDEyNTYw
OTZjNTgyMTMyOTgyMGQ2NTk1MDcyZjMuLjViZWE3ZDA3Y2IxMGFiYWM4ZDRjZGIyMTA4MmNiOTJi
ZDEzNTkyNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5n
L3BhcnNpbmctc2hhcGUtbGVuZ3Rocy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1sZW5ndGhzLWV4cGVjdGVkLnR4dApA
QCAtOCw2ICs4LDcgQEAgUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIs
ICJjaXJjbGUoLTFweCwgKzFweCwgMXB4KSIpIGlzICJjaXJjbGUKIFBBU1MgZ2V0U3R5bGVWYWx1
ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC0xLjVweCwgKzEuNXB4LCAxLjVweCki
KSBpcyAiY2lyY2xlKC0xLjVweCwgMS41cHgsIDEuNXB4KSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgi
LXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC0uNXB4LCArLjVweCwgLjVweCkiKSBpcyAi
Y2lyY2xlKC0wLjVweCwgMC41cHgsIDAuNXB4KSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtp
dC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMp
IikgaXMgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIKK1BBU1MgZ2V0
U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwg
MW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwg
MWluLCAxcHgsIDFwdCwgMXBjKSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAiY2lyY2xlKC0xZW0sICsxZW0sIDFlbSkiKSBpcyAiY2lyY2xlKC0xZW0sIDFlbSwg
MWVtKSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xl
KC0xLjVlbSwgKzEuNWVtLCAxLjVlbSkiKSBpcyAiY2lyY2xlKC0xLjVlbSwgMS41ZW0sIDEuNWVt
KSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC0u
NWVtLCArLjVlbSwgLjVlbSkiKSBpcyAiY2lyY2xlKC0wLjVlbSwgMC41ZW0sIDAuNWVtKSIKQEAg
LTIzLDEwICsyNCwxMiBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1pbnNpZGUiLCAiY2lyY2xlKC41dmgsIDF2aCwgMS41dmgpIikgaQogUEFTUyBnZXRDb21wdXRl
ZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSguNXZtaW4sIDF2bWlu
LCAxLjV2bWluKSIpIGlzICJjaXJjbGUoMC41dm1pbiwgMXZtaW4sIDEuNXZtaW4pIgogUEFTUyBn
ZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoMTAwJSwgMTAwJSwg
MTAwJSkiKSBpcyAiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUpIgogUEFTUyBnZXRTdHlsZVZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAy
NSUsIDEwJSkiKSBpcyAicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIgor
UEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5n
bGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDQ1
JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImVs
bGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJr
aXQtc2hhcGUtaW5zaWRlIiwgInBvbHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiKSBp
cyAicG9seWdvbihub256ZXJvLCAxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIKIFBBU1MgZ2V0
Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoNTAlLCAx
MDAlLCAxNTAlKSIpIGlzICJjaXJjbGUoNTAlLCAxMDAlLCAxNTAlKSIKIFBBU1MgZ2V0Q29tcHV0
ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoNDUlLCA0NSUs
IDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBpcyAicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwg
MjUlLCAxMCUpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5z
aWRlIiwgImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIpIGlz
ICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiCiBQQVNTIGdl
dENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgxMDAl
LCAxMDAlLCAxMDAlLCAxMDAlKSIpIGlzICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUp
IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInBv
bHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiKSBpcyAicG9seWdvbihub256ZXJvLCAx
MCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1z
aGFwZS1pbnNpZGUiLCAiY2lyY2xlKDFweCwgMXB4LCAxKSIpIGlzIG51bGwKQEAgLTQzLDYgKzQ2
LDEwIEBAIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFu
Z2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAt
MXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJr
aXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgLTFw
YykiKSBpcyBudWxsCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpIGlzICJv
dXRzaWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIs
ICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0LCAxcGMpIikgaXMgbnVs
bAorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImlu
c2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIC0xcHQsIDFwYykiKSBpcyAib3V0c2lk
ZS1zaGFwZSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5z
ZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpIGlzIG51bGwKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1y
ZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIikgaXMgIm91dHNpZGUtc2hh
cGUiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImVsbGlwc2Uo
MWVtLCAxZW0sIC0xZW0sIDFlbSkiKSBpcyBudWxsCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1
ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgxZW0sIDFlbSwgLTFlbSwgMWVtKSIp
IGlzICJvdXRzaWRlLXNoYXBlIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWlu
c2lkZSIsICJlbGxpcHNlKDFlbSwgMWVtLCAxZW0sIC0xZW0pIikgaXMgbnVsbApAQCAtNTEsNiAr
NTgsMTQgQEAgUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0
YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LAogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFs
dWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgLTFpbiwgMXB4
LCAxcHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIC0xcHgsIDFwdCwg
MXBjKSIpIGlzIG51bGwKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBl
LWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIikgaXMg
Im91dHNpZGUtc2hhcGUiCitQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRl
IiwgImluc2V0LXJlY3RhbmdsZSgtMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyBu
dWxsCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAi
aW5zZXQtcmVjdGFuZ2xlKC0xY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzICJvdXRz
aWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJp
bnNldC1yZWN0YW5nbGUoMWNtLCAtMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAor
UEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0
LXJlY3RhbmdsZSgxY20sIC0xbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAib3V0c2lkZS1z
aGFwZSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQt
cmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0
YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUi
CitQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3Rh
bmdsZSgxY20sIDFtbSwgMWluLCAtMXB4LCAxcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGdldENv
bXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xl
KDFjbSwgMW1tLCAxaW4sIC0xcHgsIDFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9zY3JpcHQtdGVzdHMvcGFyc2lu
Zy1zaGFwZS1sZW5ndGhzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcv
c2NyaXB0LXRlc3RzL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy5qcwppbmRleCAwZWMzNGY5NzExN2U3
MDlkNDAxZjRmNjgwNGE3ODg4NDViZDNmZjVhLi43Y2U2NGUzODM2ZjgzOTEwZTJhMTQ3NDg2OWE2
MzMzMmExMzRlZGM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFy
c2luZy9zY3JpcHQtdGVzdHMvcGFyc2luZy1zaGFwZS1sZW5ndGhzLmpzCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXNoYXBlLWxl
bmd0aHMuanMKQEAgLTMzLDYgKzMzLDcgQEAgdGVzdFN0eWxlVmFsdWUoImNpcmNsZSgtMS41cHgs
ICsxLjVweCwgMS41cHgpIiwgImNpcmNsZSgtMS41cHgsIDEuNXB4LCAxLjVweCkiKTsKIHRlc3RT
dHlsZVZhbHVlKCJjaXJjbGUoLS41cHgsICsuNXB4LCAuNXB4KSIsICJjaXJjbGUoLTAuNXB4LCAw
LjVweCwgMC41cHgpIik7CiAKIHRlc3RTdHlsZVZhbHVlKCJyZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgMXB4LCAxcHQsIDFwYykiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAx
cGMpIik7Cit0ZXN0U3R5bGVWYWx1ZSgiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFw
eCwgMXB0LCAxcGMpIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwg
MXBjKSIpOwogCiAvLyBmb250LXJlbGF0aXZlIGxlbmd0aHMgLSBudW1iZXIgc2VyaWFsaXphdGlv
biwgdW5pdHMsIHJlc29sdXRpb24KIHRlc3RTdHlsZVZhbHVlKCJjaXJjbGUoLTFlbSwgKzFlbSwg
MWVtKSIsICJjaXJjbGUoLTFlbSwgMWVtLCAxZW0pIik7CkBAIC01OCwxMSArNTksMTMgQEAgdGVz
dENvbXB1dGVkU3R5bGVWYWx1ZSgiY2lyY2xlKC41dm1pbiwgMXZtaW4sIDEuNXZtaW4pIiwgImNp
cmNsZSgwLjV2bWluLCAxdm1pbiwKIC8vIHBlcmNlbnRhZ2UgbGVuZ3RocyAtIHVuaXRzCiB0ZXN0
U3R5bGVWYWx1ZSgiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUpIiwgImNpcmNsZSgxMDAlLCAxMDAl
LCAxMDAlKSIpOwogdGVzdFN0eWxlVmFsdWUoInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUs
IDI1JSwgMTAlKSIsICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKTsK
K3Rlc3RTdHlsZVZhbHVlKCJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUs
IDEwJSkiLCAiaW5zZXQtcmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIik7
CiB0ZXN0U3R5bGVWYWx1ZSgiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIsICJlbGxp
cHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIik7CiB0ZXN0U3R5bGVWYWx1ZSgicG9seWdvbigx
MCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIsICJwb2x5Z29uKG5vbnplcm8sIDEwJSAyMCUsIDMw
JSA0MCUsIDQwJSA1MCUpIik7CiAKIHRlc3RDb21wdXRlZFN0eWxlVmFsdWUoImNpcmNsZSg1MCUs
IDEwMCUsIDE1MCUpIiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIik7CiB0ZXN0Q29tcHV0ZWRT
dHlsZVZhbHVlKCJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiLCAicmVj
dGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIik7Cit0ZXN0Q29tcHV0ZWRTdHls
ZVZhbHVlKCJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiLCAi
aW5zZXQtcmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIik7CiB0ZXN0Q29t
cHV0ZWRTdHlsZVZhbHVlKCJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIiwgImVsbGlw
c2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKTsKIHRlc3RDb21wdXRlZFN0eWxlVmFsdWUoInBv
bHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiLCAicG9seWdvbihub256ZXJvLCAxMCUg
MjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIpOwogCkBAIC03Niw5ICs3OSwxNyBAQCB0ZXN0SW52YWxp
ZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoMXB4LCAxcHgsIGNhbGMoKSki
KTsKIHRlc3RJbnZhbGlkVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgtMS41
cHgsICsxLjVweCwgLTEuNXB4KSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwgMXBjKSIpOwogdGVz
dEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1t
LCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpOwordGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwgMXBj
KSIpOwordGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVj
dGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpOwogdGVzdEludmFsaWRWYWx1
ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgxZW0sIDFlbSwgLTFlbSwgMWVtKSIp
OwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgxZW0s
IDFlbSwgMWVtLCAtMWVtKSIpOwogCiAvLyByZWplY3QgbmVnYXRpdmUgaGVpZ2h0IGFuZCB3aWR0
aAogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFj
bSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBjKSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtp
dC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIC0xcHgsIDFwdCwgMXBj
KSIpOworCisvLyByZWplY3QgbmVnYXRpdmUgdG9wLCByaWdodCwgYm90dG9tLCBhbmQgbGVmdAor
dGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xl
KC0xY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpOwordGVzdEludmFsaWRWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgLTFtbSwgMWluLCAxcHgs
IDFwdCwgMXBjKSIpOwordGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAi
aW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBjKSIpOwordGVzdElu
dmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwg
MW1tLCAxaW4sIC0xcHgsIDFwdCwgMXBjKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202844</attachid>
            <date>2013-05-24 12:18:19 -0700</date>
            <delta_ts>2013-05-24 16:16:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116638-20130524121703.patch</filename>
            <type>text/plain</type>
            <size>31270</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ2MTMzOWEzYjVkOWNh
YjYxNDI2M2RhNTA1MGY0MjViNGRmNmIxMy4uZDBjZmYzNmQ3N2M4NjBlYzdlODk0MThhN2Q4ZWJl
NjQ5M2NkZTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTA1LTIzICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBT
dXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFuZ2xlIHNoYXBlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHBhcnNpbmcgZm9yIGluc2V0LXJlY3Rh
bmdsZS4gSXQncyB2ZXJ5IHNpbWlsYXIgdG8gcGFyc2luZyBmb3IKKyAgICAgICAgcmVjdGFuZ2xl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0IHRvIGNvdmVy
IHRoaXMuCisKKyAgICAgICAgKiBjc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWx1ZUZvckJhc2ljU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzaWNT
aGFwZUZvclZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNTaGFwZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRJbnNldFJlY3RhbmdsZVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Y3NzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmVxdWFs
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNlcmlh
bGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKToKKyAgICAgICAgKiBjc3MvQ1NT
QmFzaWNTaGFwZXMuaDoKKyAgICAgICAgKENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJhZGl1c1gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpyYWRpdXNZKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmFkaXVz
WCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNldFJh
ZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Q1NT
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUJh
c2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxlZEZv
cik6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9y
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnBh
dGgpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpibGVuZCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNp
Y1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGU6OmNvcm5lclJhZGl1c1gpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpjb3JuZXJSYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZTo6c2V0Q29ybmVyUmFkaXVzWCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1No
YXBlSW5zZXRSZWN0YW5nbGU6OnNldENvcm5lclJhZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKwogMjAxMy0w
NS0yNCAgWGlhb2JvIFdhbmcgIDx4aWFvYndhbmdAYmxhY2tiZXJyeS5jb20+CiAKICAgICAgICAg
W0JsYWNrQmVycnldIERSVCAtIGNyYXNoZWQgb24gR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5j
dGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCmlu
ZGV4IDllOWEwZmM3ZDVkOGIwNTdjMTJlMTAwMTM2OGZkNThlZTAxZmFlOWEuLjA2YmFjNTMzNDM2
NjA1MzhhYTBiMTNlY2Y0YTUzMzEzYTYyMTQzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFz
aWNTaGFwZUZ1bmN0aW9ucy5jcHAKQEAgLTk0LDYgKzk0LDIzIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlKQogICAg
ICAgICBiYXNpY1NoYXBlVmFsdWUgPSBwb2x5Z29uVmFsdWUucmVsZWFzZSgpOwogICAgICAgICBi
cmVhazsKICAgICB9CisgICAgY2FzZSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9JTlNFVF9SRUNU
QU5HTEU6IHsKKyAgICAgICAgY29uc3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKiByZWN0YW5n
bGUgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqPihiYXNpY1No
YXBlKTsKKyAgICAgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZT4gcmVjdGFu
Z2xlVmFsdWUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgpOworCisgICAg
ICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRUb3AoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVj
dGFuZ2xlLT50b3AoKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1ZS0+c2V0UmlnaHQoY3NzVmFs
dWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5yaWdodCgpKSk7CisgICAgICAgIHJlY3Rh
bmdsZVZhbHVlLT5zZXRCb3R0b20oY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xl
LT5ib3R0b20oKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1ZS0+c2V0TGVmdChjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZShyZWN0YW5nbGUtPmxlZnQoKSkpOworICAgICAgICBpZiAoIXJlY3Rh
bmdsZS0+Y29ybmVyUmFkaXVzWCgpLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgICAgIHJlY3Rh
bmdsZVZhbHVlLT5zZXRSYWRpdXNYKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHJlY3Rhbmds
ZS0+Y29ybmVyUmFkaXVzWCgpKSk7CisgICAgICAgICAgICBpZiAoIXJlY3RhbmdsZS0+Y29ybmVy
UmFkaXVzWSgpLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICAgICAgcmVjdGFuZ2xlVmFsdWUt
PnNldFJhZGl1c1koY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5jb3JuZXJS
YWRpdXNZKCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGJhc2ljU2hhcGVWYWx1ZSA9IHJlY3Rh
bmdsZVZhbHVlLnJlbGVhc2UoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE2MSw2ICsxNzgsMjIgQEAgUGFzc1JlZlB0cjxC
YXNpY1NoYXBlPiBiYXNpY1NoYXBlRm9yVmFsdWUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBj
b25zdCBSZW5kZXIKICAgICAgICAgYmFzaWNTaGFwZSA9IHBvbHlnb24ucmVsZWFzZSgpOwogICAg
ICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBDU1NCYXNpY1NoYXBlOjpDU1NfQkFTSUNfU0hB
UEVfSU5TRVRfUkVDVEFOR0xFOiB7CisgICAgICAgIGNvbnN0IENTU0Jhc2ljU2hhcGVJbnNldFJl
Y3RhbmdsZSogcmVjdFZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQmFzaWNTaGFwZUluc2V0
UmVjdGFuZ2xlICo+KGJhc2ljU2hhcGVWYWx1ZSk7CisgICAgICAgIFJlZlB0cjxCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU+IHJlY3QgPSBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgp
OworCisgICAgICAgIHJlY3QtPnNldFRvcChjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHls
ZSwgcmVjdFZhbHVlLT50b3AoKSkpOworICAgICAgICByZWN0LT5zZXRSaWdodChjb252ZXJ0VG9M
ZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVlLT5yaWdodCgpKSk7CisgICAgICAgIHJl
Y3QtPnNldEJvdHRvbShjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVl
LT5ib3R0b20oKSkpOworICAgICAgICByZWN0LT5zZXRMZWZ0KGNvbnZlcnRUb0xlbmd0aChzdHls
ZSwgcm9vdFN0eWxlLCByZWN0VmFsdWUtPmxlZnQoKSkpOworICAgICAgICBpZiAocmVjdFZhbHVl
LT5yYWRpdXNYKCkpIHsKKyAgICAgICAgICAgIHJlY3QtPnNldENvcm5lclJhZGl1c1goY29udmVy
dFRvTGVuZ3RoKHN0eWxlLCByb290U3R5bGUsIHJlY3RWYWx1ZS0+cmFkaXVzWCgpKSk7CisgICAg
ICAgICAgICBpZiAocmVjdFZhbHVlLT5yYWRpdXNZKCkpCisgICAgICAgICAgICAgICAgcmVjdC0+
c2V0Q29ybmVyUmFkaXVzWShjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZh
bHVlLT5yYWRpdXNZKCkpKTsKKyAgICAgICAgfQorICAgICAgICBiYXNpY1NoYXBlID0gcmVjdC5y
ZWxlYXNlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAppbmRleCAxOTc0
ZTYwMGQ0MzI4ZDFjYjUwYjMzMjA5MmY0YjdlNTVlOTc4MGNjLi44OGY0NGNmNzY1Y2QzOTk0NWRk
ZDNkOWM5YzVhODQ2OWYyZDRiOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
QmFzaWNTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5j
cHAKQEAgLTI2OCw1ICsyNjgsNzggQEAgYm9vbCBDU1NCYXNpY1NoYXBlUG9seWdvbjo6aGFzVmFy
aWFibGVSZWZlcmVuY2UoKSBjb25zdAogfQogI2VuZGlmCiAKK3N0YXRpYyBTdHJpbmcgYnVpbGRJ
bnNldFJlY3RhbmdsZVN0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiByaWdo
dCwgY29uc3QgU3RyaW5nJiBib3R0b20sIGNvbnN0IFN0cmluZyYgbGVmdCwgY29uc3QgU3RyaW5n
JiByYWRpdXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1kpCit7CisgICAgY2hhciBvcGVuaW5nW10g
PSAiaW5zZXQtcmVjdGFuZ2xlKCI7CisgICAgY2hhciBzZXBhcmF0b3JbXSA9ICIsICI7CisgICAg
U3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgLy8gQ29tcHV0ZSB0aGUgcmVxdWlyZWQgY2FwYWNp
dHkgaW4gYWR2YW5jZSB0byByZWR1Y2UgYWxsb2NhdGlvbnMuCisgICAgcmVzdWx0LnJlc2VydmVD
YXBhY2l0eSgoc2l6ZW9mKG9wZW5pbmcpIC0gMSkgKyAoNSAqIChzaXplb2Yoc2VwYXJhdG9yKSAt
IDEpKSArIDEgKyB0b3AubGVuZ3RoKCkgKyByaWdodC5sZW5ndGgoKSArIGJvdHRvbS5sZW5ndGgo
KSArIGxlZnQubGVuZ3RoKCkgKyByYWRpdXNYLmxlbmd0aCgpICsgcmFkaXVzWS5sZW5ndGgoKSk7
CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwob3BlbmluZyk7CisgICAgcmVzdWx0LmFwcGVuZCh0
b3ApOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRvcik7CisgICAgcmVzdWx0LmFw
cGVuZChyaWdodCk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoc2VwYXJhdG9yKTsKKyAgICBy
ZXN1bHQuYXBwZW5kKGJvdHRvbSk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoc2VwYXJhdG9y
KTsKKyAgICByZXN1bHQuYXBwZW5kKGxlZnQpOworICAgIGlmICghcmFkaXVzWC5pc051bGwoKSkg
eworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbChzZXBhcmF0b3IpOworICAgICAgICByZXN1
bHQuYXBwZW5kKHJhZGl1c1gpOworICAgICAgICBpZiAoIXJhZGl1c1kuaXNOdWxsKCkpIHsKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRvcik7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKHJhZGl1c1kpOworICAgICAgICB9CisgICAgfQorICAgIHJlc3VsdC5hcHBl
bmQoJyknKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK1N0cmluZyBDU1NC
YXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNzc1RleHQoKSBjb25zdAoreworICAgIHJldHVybiBi
dWlsZEluc2V0UmVjdGFuZ2xlU3RyaW5nKG1fdG9wLT5jc3NUZXh0KCksCisgICAgICAgIG1fcmln
aHQtPmNzc1RleHQoKSwKKyAgICAgICAgbV9ib3R0b20tPmNzc1RleHQoKSwKKyAgICAgICAgbV9s
ZWZ0LT5jc3NUZXh0KCksCisgICAgICAgIG1fcmFkaXVzWC5nZXQoKSA/IG1fcmFkaXVzWC0+Y3Nz
VGV4dCgpIDogU3RyaW5nKCksCisgICAgICAgIG1fcmFkaXVzWS5nZXQoKSA/IG1fcmFkaXVzWS0+
Y3NzVGV4dCgpIDogU3RyaW5nKCkpOworfQorCitib29sIENTU0Jhc2ljU2hhcGVJbnNldFJlY3Rh
bmdsZTo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdAoreworICAgIGlm
IChzaGFwZS50eXBlKCkgIT0gQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xl
JiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSY+
KHNoYXBlKTsKKyAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlUHRyKG1fdG9wLCBvdGhlci5tX3Rv
cCkKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmlnaHQsIG90aGVyLm1fcmlnaHQp
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2JvdHRvbSwgb3RoZXIubV9ib3R0b20p
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2xlZnQsIG90aGVyLm1fbGVmdCkKKyAg
ICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmFkaXVzWCwgb3RoZXIubV9yYWRpdXNYKQor
ICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9yYWRpdXNZLCBvdGhlci5tX3JhZGl1c1kp
OworfQorCisjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCitTdHJpbmcgQ1NTQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJsZXMoY29uc3QgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIFN0cmluZz4mIHZhcmlhYmxlcykgY29uc3QKK3sKKyAgICByZXR1cm4gYnVp
bGRJbnNldFJlY3RhbmdsZVN0cmluZyhtX3RvcC0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFibGVz
KHZhcmlhYmxlcyksCisgICAgICAgIG1fcmlnaHQtPnNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxl
cyh2YXJpYWJsZXMpLAorICAgICAgICBtX2JvdHRvbS0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFi
bGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fbGVmdC0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFi
bGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fcmFkaXVzWC5nZXQoKSA/IG1fcmFkaXVzWC0+c2Vy
aWFsaXplUmVzb2x2aW5nVmFyaWFibGVzKHZhcmlhYmxlcykgOiBTdHJpbmcoKSwKKyAgICAgICAg
bV9yYWRpdXNZLmdldCgpID8gbV9yYWRpdXNZLT5zZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJsZXMo
dmFyaWFibGVzKSA6IFN0cmluZygpKTsKK30KKworYm9vbCBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0
YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90b3At
Pmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgbV9yaWdodC0+aGFzVmFyaWFibGVS
ZWZlcmVuY2UoKQorICAgICAgICB8fCBtX2JvdHRvbS0+aGFzVmFyaWFibGVSZWZlcmVuY2UoKQor
ICAgICAgICB8fCBtX2xlZnQtPmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgKG1f
cmFkaXVzWC5nZXQoKSAmJiBtX3JhZGl1c1gtPmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkpCisgICAg
ICAgIHx8IChtX3JhZGl1c1kuZ2V0KCkgJiYgbV9yYWRpdXNZLT5oYXNWYXJpYWJsZVJlZmVyZW5j
ZSgpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Jhc2ljU2hhcGVzLmgKaW5kZXggOGRiMGQyZjMwYzYzNTA4NzU2ZjM3MjczZjQxOTU3NTJm
ZGNiMmE2NC4uY2Q1OTI4MzAzZjE4ZWVkYTI5MDQyNTI2YjFjNTA0ZmMxODZiNDg5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVibGljOgogICAg
ICAgICBDU1NfQkFTSUNfU0hBUEVfUkVDVEFOR0xFID0gMSwKICAgICAgICAgQ1NTX0JBU0lDX1NI
QVBFX0NJUkNMRSA9IDIsCiAgICAgICAgIENTU19CQVNJQ19TSEFQRV9FTExJUFNFID0gMywKLSAg
ICAgICAgQ1NTX0JBU0lDX1NIQVBFX1BPTFlHT04gPSA0CisgICAgICAgIENTU19CQVNJQ19TSEFQ
RV9QT0xZR09OID0gNCwKKyAgICAgICAgQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRSA9
IDUKICAgICB9OwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CkBAIC0xMDEs
NiArMTAyLDQ0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3Jh
ZGl1c1k7CiB9OwogCitjbGFzcyBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUgOiBwdWJsaWMg
Q1NTQmFzaWNTaGFwZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQmFzaWNT
aGFwZUluc2V0UmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQmFz
aWNTaGFwZUluc2V0UmVjdGFuZ2xlKTsgfQorCisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHRvcCgp
IGNvbnN0IHsgcmV0dXJuIG1fdG9wLmdldCgpOyB9CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJp
Z2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodC5nZXQoKTsgfQorICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbS5nZXQoKTsgfQorICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0LmdldCgpOyB9CisgICAg
Q1NTUHJpbWl0aXZlVmFsdWUqIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1guZ2V0
KCk7IH0KKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFkaXVzWS5nZXQoKTsgfQorCisgICAgdm9pZCBzZXRUb3AoUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gdG9wKSB7IG1fdG9wID0gdG9wOyB9CisgICAgdm9pZCBzZXRSaWdodChQYXNzUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByaWdodCkgeyBtX3JpZ2h0ID0gcmlnaHQ7IH0KKyAgICB2
b2lkIHNldEJvdHRvbShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBib3R0b20pIHsgbV9i
b3R0b20gPSBib3R0b207IH0KKyAgICB2b2lkIHNldExlZnQoUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gbGVmdCkgeyBtX2xlZnQgPSBsZWZ0OyB9CisgICAgdm9pZCBzZXRSYWRpdXNYKFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVz
WDsgfQorICAgIHZvaWQgc2V0UmFkaXVzWShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBy
YWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKworICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRTsgfQorICAg
IHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxz
KGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdDsKKworI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVT
KQorICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyhjb25zdCBI
YXNoTWFwPEF0b21pY1N0cmluZywgU3RyaW5nPiYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBo
YXNWYXJpYWJsZVJlZmVyZW5jZSgpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ1NT
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKCkgeyB9CisKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IG1fcmlnaHQ7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3RvcDsKKyAg
ICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fYm90dG9tOworICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbV9sZWZ0OworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRp
dXNYOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRpdXNZOworfTsKKwogY2xh
c3MgQ1NTQmFzaWNTaGFwZUNpcmNsZSA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgQ1NTQmFzaWNTaGFwZUNpcmNsZSk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggMWYzOGE0YzQ0NGExMzljNzg4NTVjYWI3N2YzZGZhOTUyY2Y1ODYzNS4u
ZTUxNjkyZDM1MDNiODU2ODVkNTIzNTljZmY2ODI2YjAwNzQ2MWY4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTUxMzcsNiArNTEzNyw2MCBAQCBQYXNzUmVmUHRyPENTU0Jhc2ljU2hh
cGU+IENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlUmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlz
dAogICAgIHJldHVybiBzaGFwZTsKIH0KIAorUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBDU1NQ
YXJzZXI6OnBhcnNlQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCog
YXJncykKK3sKKyAgICBBU1NFUlQoYXJncyk7CisKKyAgICAvLyBpbnNldC1yZWN0YW5nbGUodG9w
LCByaWdodCwgYm90dG9tLCBsZWZ0LCBbW3J4XSwgcnldKQorICAgIGlmIChhcmdzLT5zaXplKCkg
IT0gNyAmJiBhcmdzLT5zaXplKCkgIT0gOSAmJiBhcmdzLT5zaXplKCkgIT0gMTEpCisgICAgICAg
IHJldHVybiAwOworCisgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZT4gc2hh
cGUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgpOworCisgICAgdW5zaWdu
ZWQgYXJndW1lbnROdW1iZXIgPSAwOworICAgIENTU1BhcnNlclZhbHVlKiBhcmd1bWVudCA9IGFy
Z3MtPmN1cnJlbnQoKTsKKyAgICB3aGlsZSAoYXJndW1lbnQpIHsKKyAgICAgICAgVW5pdHMgdW5p
dEZsYWdzID0gRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZzsKKyAgICAgICAgaWYgKCF2YWxp
ZFVuaXQoYXJndW1lbnQsIHVuaXRGbGFncykpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGxlbmd0aCA9IGNyZWF0ZVByaW1pdGl2ZU51
bWVyaWNWYWx1ZShhcmd1bWVudCk7CisgICAgICAgIEFTU0VSVChhcmd1bWVudE51bWJlciA8IDYp
OworICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50TnVtYmVyKSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHNoYXBlLT5zZXRUb3AobGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICBzaGFwZS0+c2V0UmlnaHQobGVuZ3RoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBzaGFwZS0+c2V0Qm90
dG9tKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgc2hhcGUtPnNldExlZnQobGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICBzaGFwZS0+c2V0UmFkaXVzWChsZW5ndGgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIHNoYXBlLT5zZXRSYWRp
dXNZKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBhcmd1
bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgaWYgKGFyZ3VtZW50KSB7CisgICAgICAgICAg
ICBpZiAoIWlzQ29tbWEoYXJndW1lbnQpKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworCisg
ICAgICAgICAgICBhcmd1bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBh
cmd1bWVudE51bWJlcisrOworICAgIH0KKworICAgIGlmIChhcmd1bWVudE51bWJlciA8IDQpCisg
ICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzaGFwZTsKK30KKwogUGFzc1JlZlB0cjxDU1NC
YXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUNpcmNsZShDU1NQYXJzZXJWYWx1
ZUxpc3QqIGFyZ3MpCiB7CiAgICAgQVNTRVJUKGFyZ3MpOwpAQCAtNTMwNyw2ICs1MzYxLDggQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9v
bCBpbXBvcnRhbnQpCiAgICAgICAgIHNoYXBlID0gcGFyc2VCYXNpY1NoYXBlRWxsaXBzZShhcmdz
KTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZS0+ZnVuY3Rpb24tPm5hbWUs
ICJwb2x5Z29uKCIpKQogICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24oYXJn
cyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9uLT5uYW1l
LCAiaW5zZXQtcmVjdGFuZ2xlKCIpKQorICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlKGFyZ3MpOwogCiAgICAgaWYgKCFzaGFwZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDlhMjIyYTlkZDQ0YTE1MzgyMDgwMDM2NTM4
ZTMzNGJkMTQ4ODQ0YjkuLmNhZDM5MjU0ZTM0NjljNDE1ZDcxMjkyZWE0NjJkNDZmMzJhMDRlM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTE3Nyw2ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAg
UGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVDaXJjbGUoQ1NTUGFyc2Vy
VmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFz
aWNTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNzUmVmUHRy
PENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24oQ1NTUGFyc2VyVmFsdWVMaXN0
KiBhcmdzKTsKKyAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAKICAgICBib29sIHBhcnNl
Rm9udChib29sIGltcG9ydGFudCk7CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcnNl
Rm9udEZhbWlseSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCBlNzIzZTRmMzQ0ZTBlZjNmNzZlMTJmNTU5Y2Zh
MGExMDk0ZWNiYWNlLi43MDE2MWMwYjc3YTU4YzI1MDk3ZTJhYmZiZjUzOTcyYzhlNjI5NmMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcApAQCAtNDYsNyArNDYsMTEgQEAgTGluZVNlZ21lbnRSYW5nZTo6TGluZVNlZ21l
bnRSYW5nZShjb25zdCBJbmxpbmVJdGVyYXRvciYgc3RhcnQsIGNvbnN0IElubGluZUl0ZXIKIGJv
b2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQmxv
Y2sqIHJlbmRlcmVyKQogewogICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSBy
ZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgpOwotICAgIHJldHVybiAoc2hh
cGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U2hh
cGUpID8gc2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7CisgICAgaWYgKHNoYXBlVmFsdWUgJiYgc2hh
cGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlKSB7CisgICAgICAg
IEJhc2ljU2hhcGUqIHNoYXBlID0gc2hhcGVWYWx1ZS0+c2hhcGUoKTsKKyAgICAgICAgcmV0dXJu
IHNoYXBlICYmIHNoYXBlLT50eXBlKCkgIT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfSU5TRVRf
UkVDVEFOR0xFOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcChmbG9hdCBtaW5TZWdtZW50V2lk
dGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mby5jcHAKaW5kZXggMmM3ZjhiZGY1YTk0MjVkNjU1Y2RlYzQxODBiMjZlYmVhMjIw
NTI3ZS4uMmRlNTkzMmMzYWYzODE3NDdjYWFhOGM3MDIyNmE0NTcwM2UyNjhjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
LmNwcApAQCAtMzksNyArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogYm9vbCBFeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQm94KiBib3gpCiB7
CiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogdmFsdWUgPSBib3gtPnN0eWxlKCktPnNoYXBlT3V0
c2lkZSgpOwotICAgIHJldHVybiAoYm94LT5pc0Zsb2F0aW5nV2l0aFNoYXBlT3V0c2lkZSgpICYm
IHZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U2hhcGUpID8gdmFsdWUtPnNo
YXBlKCkgOiAwOworICAgIGlmIChib3gtPmlzRmxvYXRpbmdXaXRoU2hhcGVPdXRzaWRlKCkgJiYg
dmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSkgeworICAgICAgICBC
YXNpY1NoYXBlKiBzaGFwZSA9IHZhbHVlLT5zaGFwZSgpOworICAgICAgICByZXR1cm4gc2hhcGUg
JiYgc2hhcGUtPnR5cGUoKSAhPSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5H
TEU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBFeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5
b3V0VW5pdCBsaW5lSGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0Jhc2ljU2hhcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9C
YXNpY1NoYXBlcy5jcHAKaW5kZXggYjIxMzU4ZmRjOGZiNGY3ZWY1NTAwN2FkYWUxOTY5ZjgwY2Rm
YThkOC4uMjM2NWJjZWZlOTcwZjdmZWFlYTc1Y2Q3NjRjYTExMzU4NTE5NThlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwCkBAIC0xNjksNCAr
MTY5LDMzIEBAIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gQmFzaWNTaGFwZVBvbHlnb246OmJsZW5k
KGNvbnN0IEJhc2ljU2hhcGUqIG90aGVyLCBkb3VibGUKIAogICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZSgpOwogfQorCit2b2lkIEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6cGF0aChQYXRoJiBw
YXRoLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94KQoreworICAgIEFTU0VSVChwYXRoLmlz
RW1wdHkoKSk7CisgICAgZmxvYXQgbGVmdCA9IGZsb2F0VmFsdWVGb3JMZW5ndGgobV9sZWZ0LCBi
b3VuZGluZ0JveC53aWR0aCgpKTsKKyAgICBmbG9hdCB0b3AgPSBmbG9hdFZhbHVlRm9yTGVuZ3Ro
KG1fdG9wLCBib3VuZGluZ0JveC5oZWlnaHQoKSk7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChG
bG9hdFJlY3QobGVmdCArIGJvdW5kaW5nQm94LngoKSwgdG9wICsgYm91bmRpbmdCb3gueSgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWF4PGZsb2F0Pihib3VuZGlu
Z0JveC53aWR0aCgpIC0gbGVmdCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgobV9yaWdodCwgYm91bmRp
bmdCb3gud2lkdGgoKSksIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
ZDo6bWF4PGZsb2F0Pihib3VuZGluZ0JveC5oZWlnaHQoKSAtIHRvcCAtIGZsb2F0VmFsdWVGb3JM
ZW5ndGgobV9ib3R0b20sIGJvdW5kaW5nQm94LmhlaWdodCgpKSwgMCkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgRmxvYXRTaXplKG1fY29ybmVyUmFkaXVzWC5pc1VuZGVmaW5lZCgpID8gMCA6
IGZsb2F0VmFsdWVGb3JMZW5ndGgobV9jb3JuZXJSYWRpdXNYLCBib3VuZGluZ0JveC53aWR0aCgp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nvcm5lclJhZGl1c1kuaXNV
bmRlZmluZWQoKSA/IDAgOiBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fY29ybmVyUmFkaXVzWSwgYm91
bmRpbmdCb3guaGVpZ2h0KCkpKSk7Cit9CisKK1Bhc3NSZWZQdHI8QmFzaWNTaGFwZT4gQmFzaWNT
aGFwZUluc2V0UmVjdGFuZ2xlOjpibGVuZChjb25zdCBCYXNpY1NoYXBlKiBvdGhlciwgZG91Ymxl
IHByb2dyZXNzKSBjb25zdAoreworICAgIEFTU0VSVCh0eXBlKCkgPT0gb3RoZXItPnR5cGUoKSk7
CisKKyAgICBjb25zdCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqIG8gPSBzdGF0aWNfY2FzdDxj
b25zdCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqPihvdGhlcik7CisgICAgUmVmUHRyPEJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZT4gcmVzdWx0ID0gIEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6
Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXRUb3AobV90b3AuYmxlbmQoby0+dG9wKCksIHByb2dy
ZXNzKSk7CisgICAgcmVzdWx0LT5zZXRSaWdodChtX3JpZ2h0LmJsZW5kKG8tPnJpZ2h0KCksIHBy
b2dyZXNzKSk7CisgICAgcmVzdWx0LT5zZXRCb3R0b20obV9ib3R0b20uYmxlbmQoby0+Ym90dG9t
KCksIHByb2dyZXNzKSk7CisgICAgcmVzdWx0LT5zZXRMZWZ0KG1fbGVmdC5ibGVuZChvLT5sZWZ0
KCksIHByb2dyZXNzKSk7CisgICAgaWYgKCFtX2Nvcm5lclJhZGl1c1guaXNVbmRlZmluZWQoKSAm
JiAhby0+Y29ybmVyUmFkaXVzWCgpLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJlc3VsdC0+c2V0
Q29ybmVyUmFkaXVzWChtX2Nvcm5lclJhZGl1c1guYmxlbmQoby0+Y29ybmVyUmFkaXVzWCgpLCBw
cm9ncmVzcykpOworICAgIGlmICghbV9jb3JuZXJSYWRpdXNZLmlzVW5kZWZpbmVkKCkgJiYgIW8t
PmNvcm5lclJhZGl1c1koKS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXN1bHQtPnNldENvcm5l
clJhZGl1c1kobV9jb3JuZXJSYWRpdXNZLmJsZW5kKG8tPmNvcm5lclJhZGl1c1koKSwgcHJvZ3Jl
c3MpKTsKKyAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKK30KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmgKaW5kZXggMTcxZDljMWY2Y2M5YjQwYzA4
ODljNGU3YTA1NjRmY2FiNzkzYWQwYi4uNGRjNmRmMmI3MmY4NDc2OWQ1NDU1OTQ5YzJkMDA2OTk1
OGUyMTI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2lj
U2hhcGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVz
LmgKQEAgLTQ5LDcgKzQ5LDggQEAgcHVibGljOgogICAgICAgICBCQVNJQ19TSEFQRV9SRUNUQU5H
TEUgPSAxLAogICAgICAgICBCQVNJQ19TSEFQRV9DSVJDTEUgPSAyLAogICAgICAgICBCQVNJQ19T
SEFQRV9FTExJUFNFID0gMywKLSAgICAgICAgQkFTSUNfU0hBUEVfUE9MWUdPTiA9IDQKKyAgICAg
ICAgQkFTSUNfU0hBUEVfUE9MWUdPTiA9IDQsCisgICAgICAgIEJBU0lDX1NIQVBFX0lOU0VUX1JF
Q1RBTkdMRSA9IDUKICAgICB9OwogCiAgICAgYm9vbCBjYW5CbGVuZChjb25zdCBCYXNpY1NoYXBl
KikgY29uc3Q7CkBAIC0xNzUsNSArMTc2LDQxIEBAIHByaXZhdGU6CiAgICAgV2luZFJ1bGUgbV93
aW5kUnVsZTsKICAgICBWZWN0b3I8TGVuZ3RoPiBtX3ZhbHVlczsKIH07CisKK2NsYXNzIEJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZSA6IHB1YmxpYyBCYXNpY1NoYXBlIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUpOyB9CisKKyAgICBMZW5n
dGggdG9wKCkgY29uc3QgeyByZXR1cm4gbV90b3A7IH0KKyAgICBMZW5ndGggcmlnaHQoKSBjb25z
dCB7IHJldHVybiBtX3JpZ2h0OyB9CisgICAgTGVuZ3RoIGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJu
IG1fYm90dG9tOyB9CisgICAgTGVuZ3RoIGxlZnQoKSBjb25zdCB7IHJldHVybiBtX2xlZnQ7IH0K
KyAgICBMZW5ndGggY29ybmVyUmFkaXVzWCgpIGNvbnN0IHsgcmV0dXJuIG1fY29ybmVyUmFkaXVz
WDsgfQorICAgIExlbmd0aCBjb3JuZXJSYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9jb3JuZXJS
YWRpdXNZOyB9CisKKyAgICB2b2lkIHNldFRvcChMZW5ndGggdG9wKSB7IG1fdG9wID0gdG9wOyB9
CisgICAgdm9pZCBzZXRSaWdodChMZW5ndGggcmlnaHQpIHsgbV9yaWdodCA9IHJpZ2h0OyB9Cisg
ICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIGJvdHRvbSkgeyBtX2JvdHRvbSA9IGJvdHRvbTsgfQor
ICAgIHZvaWQgc2V0TGVmdChMZW5ndGggbGVmdCkgeyBtX2xlZnQgPSBsZWZ0OyB9CisgICAgdm9p
ZCBzZXRDb3JuZXJSYWRpdXNYKExlbmd0aCByYWRpdXNYKSB7IG1fY29ybmVyUmFkaXVzWCA9IHJh
ZGl1c1g7IH0KKyAgICB2b2lkIHNldENvcm5lclJhZGl1c1koTGVuZ3RoIHJhZGl1c1kpIHsgbV9j
b3JuZXJSYWRpdXNZID0gcmFkaXVzWTsgfQorCisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYs
IGNvbnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCYXNp
Y1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlKSBjb25zdCBPVkVSUklERTsK
KworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQkFTSUNfU0hBUEVfSU5T
RVRfUkVDVEFOR0xFOyB9Citwcml2YXRlOgorICAgIEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSgp
CisgICAgICAgIDogbV9jb3JuZXJSYWRpdXNYKFVuZGVmaW5lZCkKKyAgICAgICAgLCBtX2Nvcm5l
clJhZGl1c1koVW5kZWZpbmVkKQorICAgIHsgfQorCisgICAgTGVuZ3RoIG1fcmlnaHQ7CisgICAg
TGVuZ3RoIG1fdG9wOworICAgIExlbmd0aCBtX2JvdHRvbTsKKyAgICBMZW5ndGggbV9sZWZ0Owor
ICAgIExlbmd0aCBtX2Nvcm5lclJhZGl1c1g7CisgICAgTGVuZ3RoIG1fY29ybmVyUmFkaXVzWTsK
K307CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYzkzOTIzOWQ1M2MyZjA2ZDkzZjJhNmZlN2U0YzU5OTI0
NGMyZDZiLi4wZmFjYjMzMDM4YjkzOGYzZWE5M2Q4OGNkMjU2OTNhZDhmZGY2ZjcwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTMtMDUtMjMgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9i
ZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIFN1cHBvcnQgcGFyc2luZyBpbnNldC1yZWN0
YW5nbGUgc2hhcGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTY2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVkIHRvIHRlc3QgZm9yIGluc2V0LXJlY3RhbmdsZSBjYXNlcy4KKworICAgICAg
ICAqIGZhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0LXRlc3RzL3Bh
cnNpbmctc2hhcGUtbGVuZ3Rocy5qczoKKwogMjAxMy0wNS0yNCAgR2Fib3IgQWJyYWhhbSAgPGFi
cmhtQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
LiBVcGRhdGUgcXQtNS4wLXdrMiBleHBlY3RlZCBwaWN0dXJlcyBhZnRlciByMTUwNTA2LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFw
ZS1sZW5ndGhzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJz
aW5nL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy1leHBlY3RlZC50eHQKaW5kZXggOTFlNGFmOGE5ZDI0
MTI1NjA5NmM1ODIxMzI5ODIwZDY1OTUwNzJmMy4uNWJlYTdkMDdjYjEwYWJhYzhkNGNkYjIxMDgy
Y2I5MmJkMTM1OTI0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Bh
cnNpbmcvcGFyc2luZy1zaGFwZS1sZW5ndGhzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMtZXhwZWN0ZWQu
dHh0CkBAIC04LDYgKzgsNyBAQCBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5z
aWRlIiwgImNpcmNsZSgtMXB4LCArMXB4LCAxcHgpIikgaXMgImNpcmNsZQogUEFTUyBnZXRTdHls
ZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLTEuNXB4LCArMS41cHgsIDEu
NXB4KSIpIGlzICJjaXJjbGUoLTEuNXB4LCAxLjVweCwgMS41cHgpIgogUEFTUyBnZXRTdHlsZVZh
bHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLS41cHgsICsuNXB4LCAuNXB4KSIp
IGlzICJjaXJjbGUoLTAuNXB4LCAwLjVweCwgMC41cHgpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQs
IDFwYykiKSBpcyAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIgorUEFT
UyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUo
MWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwg
MW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNo
YXBlLWluc2lkZSIsICJjaXJjbGUoLTFlbSwgKzFlbSwgMWVtKSIpIGlzICJjaXJjbGUoLTFlbSwg
MWVtLCAxZW0pIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJj
aXJjbGUoLTEuNWVtLCArMS41ZW0sIDEuNWVtKSIpIGlzICJjaXJjbGUoLTEuNWVtLCAxLjVlbSwg
MS41ZW0pIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJj
bGUoLS41ZW0sICsuNWVtLCAuNWVtKSIpIGlzICJjaXJjbGUoLTAuNWVtLCAwLjVlbSwgMC41ZW0p
IgpAQCAtMjMsMTAgKzI0LDEyIEBAIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLjV2aCwgMXZoLCAxLjV2aCkiKSBpCiBQQVNTIGdldENv
bXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC41dm1pbiwg
MXZtaW4sIDEuNXZtaW4pIikgaXMgImNpcmNsZSgwLjV2bWluLCAxdm1pbiwgMS41dm1pbikiCiBQ
QVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgxMDAlLCAx
MDAlLCAxMDAlKSIpIGlzICJjaXJjbGUoMTAwJSwgMTAwJSwgMTAwJSkiCiBQQVNTIGdldFN0eWxl
VmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2
MCUsIDI1JSwgMTAlKSIpIGlzICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEw
JSkiCitQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJl
Y3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIpIGlzICJpbnNldC1yZWN0YW5n
bGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13
ZWJraXQtc2hhcGUtaW5zaWRlIiwgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKSBp
cyAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgi
LXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAl
KSIpIGlzICJwb2x5Z29uKG5vbnplcm8sIDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIgogUEFT
UyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSg1
MCUsIDEwMCUsIDE1MCUpIikgaXMgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIgogUEFTUyBnZXRD
b21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSg0NSUs
IDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIpIGlzICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwg
NjAlLCAyNSUsIDEwJSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUp
IikgaXMgImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIKIFBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNl
KDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwg
MTAwJSkiCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUi
LCAicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIpIGlzICJwb2x5Z29uKG5vbnpl
cm8sIDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Vi
a2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoMXB4LCAxcHgsIDEpIikgaXMgbnVsbApAQCAtNDMs
NiArNDYsMTAgQEAgUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJy
ZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0LAogUEFTUyBnZXRDb21wdXRlZFN0eWxl
VmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAx
cHgsIC0xcHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgi
LXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0
LCAtMXBjKSIpIGlzIG51bGwKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNo
YXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIikg
aXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5z
aWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIC0xcHQsIDFwYykiKSBp
cyBudWxsCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUi
LCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwgMXBjKSIpIGlzICJv
dXRzaWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIs
ICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIikgaXMgbnVs
bAorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImlu
c2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgLTFwYykiKSBpcyAib3V0c2lk
ZS1zaGFwZSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxs
aXBzZSgxZW0sIDFlbSwgLTFlbSwgMWVtKSIpIGlzIG51bGwKIFBBU1MgZ2V0Q29tcHV0ZWRTdHls
ZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAx
ZW0pIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hh
cGUtaW5zaWRlIiwgImVsbGlwc2UoMWVtLCAxZW0sIDFlbSwgLTFlbSkiKSBpcyBudWxsCkBAIC01
MSw2ICs1OCwxNCBAQCBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwg
InJlY3RhbmdsZSgxY20sIDFtbSwgLTFpbiwgMXB4LCAxcHQsCiBQQVNTIGdldENvbXB1dGVkU3R5
bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWlu
LCAxcHgsIDFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgogUEFTUyBnZXRTdHlsZVZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwg
MXB0LCAxcGMpIikgaXMgbnVsbAogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQt
c2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAtMXB4LCAxcHQsIDFwYyki
KSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKC0xY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIp
IGlzIG51bGwKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJpbnNldC1yZWN0YW5nbGUoLTFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIikgaXMg
Im91dHNpZGUtc2hhcGUiCitQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRl
IiwgImluc2V0LXJlY3RhbmdsZSgxY20sIC0xbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyBu
dWxsCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAi
aW5zZXQtcmVjdGFuZ2xlKDFjbSwgLTFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzICJvdXRz
aWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJp
bnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAor
UEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0
LXJlY3RhbmdsZSgxY20sIDFtbSwgLTFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAib3V0c2lkZS1z
aGFwZSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQt
cmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIC0xcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0
YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUi
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9w
YXJzaW5nLXNoYXBlLWxlbmd0aHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFy
c2luZy9zY3JpcHQtdGVzdHMvcGFyc2luZy1zaGFwZS1sZW5ndGhzLmpzCmluZGV4IDBlYzM0Zjk3
MTE3ZTcwOWQ0MDFmNGY2ODA0YTc4ODg0NWJkM2ZmNWEuLjdjZTY0ZTM4MzZmODM5MTBlMmExNDc0
ODY5YTYzMzMyYTEzNGVkYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMuanMKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0LXRlc3RzL3BhcnNpbmctc2hh
cGUtbGVuZ3Rocy5qcwpAQCAtMzMsNiArMzMsNyBAQCB0ZXN0U3R5bGVWYWx1ZSgiY2lyY2xlKC0x
LjVweCwgKzEuNXB4LCAxLjVweCkiLCAiY2lyY2xlKC0xLjVweCwgMS41cHgsIDEuNXB4KSIpOwog
dGVzdFN0eWxlVmFsdWUoImNpcmNsZSgtLjVweCwgKy41cHgsIC41cHgpIiwgImNpcmNsZSgtMC41
cHgsIDAuNXB4LCAwLjVweCkiKTsKIAogdGVzdFN0eWxlVmFsdWUoInJlY3RhbmdsZSgxY20sIDFt
bSwgMWluLCAxcHgsIDFwdCwgMXBjKSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAx
cHQsIDFwYykiKTsKK3Rlc3RTdHlsZVZhbHVlKCJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgMXB4LCAxcHQsIDFwYykiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwg
MXB0LCAxcGMpIik7CiAKIC8vIGZvbnQtcmVsYXRpdmUgbGVuZ3RocyAtIG51bWJlciBzZXJpYWxp
emF0aW9uLCB1bml0cywgcmVzb2x1dGlvbgogdGVzdFN0eWxlVmFsdWUoImNpcmNsZSgtMWVtLCAr
MWVtLCAxZW0pIiwgImNpcmNsZSgtMWVtLCAxZW0sIDFlbSkiKTsKQEAgLTU4LDExICs1OSwxMyBA
QCB0ZXN0Q29tcHV0ZWRTdHlsZVZhbHVlKCJjaXJjbGUoLjV2bWluLCAxdm1pbiwgMS41dm1pbiki
LCAiY2lyY2xlKDAuNXZtaW4sIDF2bWluLAogLy8gcGVyY2VudGFnZSBsZW5ndGhzIC0gdW5pdHMK
IHRlc3RTdHlsZVZhbHVlKCJjaXJjbGUoMTAwJSwgMTAwJSwgMTAwJSkiLCAiY2lyY2xlKDEwMCUs
IDEwMCUsIDEwMCUpIik7CiB0ZXN0U3R5bGVWYWx1ZSgicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUs
IDYwJSwgMjUlLCAxMCUpIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAl
KSIpOwordGVzdFN0eWxlVmFsdWUoImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUs
IDI1JSwgMTAlKSIsICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEw
JSkiKTsKIHRlc3RTdHlsZVZhbHVlKCJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIiwg
ImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKTsKIHRlc3RTdHlsZVZhbHVlKCJwb2x5
Z29uKDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIiwgInBvbHlnb24obm9uemVybywgMTAlIDIw
JSwgMzAlIDQwJSwgNDAlIDUwJSkiKTsKIAogdGVzdENvbXB1dGVkU3R5bGVWYWx1ZSgiY2lyY2xl
KDUwJSwgMTAwJSwgMTUwJSkiLCAiY2lyY2xlKDUwJSwgMTAwJSwgMTUwJSkiKTsKIHRlc3RDb21w
dXRlZFN0eWxlVmFsdWUoInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIs
ICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKTsKK3Rlc3RDb21wdXRl
ZFN0eWxlVmFsdWUoImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAl
KSIsICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKTsKIHRl
c3RDb21wdXRlZFN0eWxlVmFsdWUoImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiLCAi
ZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpOwogdGVzdENvbXB1dGVkU3R5bGVWYWx1
ZSgicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIsICJwb2x5Z29uKG5vbnplcm8s
IDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIik7CiAKQEAgLTc2LDkgKzc5LDE3IEBAIHRlc3RJ
bnZhbGlkVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgxcHgsIDFweCwgY2Fs
YygpKSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xl
KC0xLjVweCwgKzEuNXB4LCAtMS41cHgpIik7CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNo
YXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0LCAxcGMpIik7
CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNt
LCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0
LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNl
dC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIik7CiB0ZXN0SW52YWxp
ZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAx
ZW0pIik7CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNl
KDFlbSwgMWVtLCAxZW0sIC0xZW0pIik7CiAKIC8vIHJlamVjdCBuZWdhdGl2ZSBoZWlnaHQgYW5k
IHdpZHRoCiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5n
bGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIik7CiB0ZXN0SW52YWxpZFZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0
LCAxcGMpIik7CisKKy8vIHJlamVjdCBuZWdhdGl2ZSB0b3AsIHJpZ2h0LCBib3R0b20sIGFuZCBs
ZWZ0Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0
YW5nbGUoLTFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAtMW1tLCAxaW4s
IDFweCwgMXB0LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIik7Cit0
ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUo
MWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202863</attachid>
            <date>2013-05-24 16:16:26 -0700</date>
            <delta_ts>2013-05-29 09:18:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116638-20130524161509.patch</filename>
            <type>text/plain</type>
            <size>40615</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ2MTMzOWEzYjVkOWNh
YjYxNDI2M2RhNTA1MGY0MjViNGRmNmIxMy4uZDBjZmYzNmQ3N2M4NjBlYzdlODk0MThhN2Q4ZWJl
NjQ5M2NkZTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTA1LTIzICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBT
dXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFuZ2xlIHNoYXBlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHBhcnNpbmcgZm9yIGluc2V0LXJlY3Rh
bmdsZS4gSXQncyB2ZXJ5IHNpbWlsYXIgdG8gcGFyc2luZyBmb3IKKyAgICAgICAgcmVjdGFuZ2xl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0IHRvIGNvdmVy
IHRoaXMuCisKKyAgICAgICAgKiBjc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWx1ZUZvckJhc2ljU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6YmFzaWNT
aGFwZUZvclZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNTaGFwZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRJbnNldFJlY3RhbmdsZVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Y3NzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmVxdWFs
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNlcmlh
bGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKToKKyAgICAgICAgKiBjc3MvQ1NT
QmFzaWNTaGFwZXMuaDoKKyAgICAgICAgKENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJhZGl1c1gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpyYWRpdXNZKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0UmFkaXVz
WCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNldFJh
ZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Q1NT
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUJh
c2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRW5hYmxlZEZv
cik6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9y
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnBh
dGgpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpibGVuZCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnRvcCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNp
Y1NoYXBlSW5zZXRSZWN0YW5nbGU6OnJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6Ym90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGU6OmNvcm5lclJhZGl1c1gpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpjb3JuZXJSYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZTo6c2V0UmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZTo6c2V0Q29ybmVyUmFkaXVzWCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1No
YXBlSW5zZXRSZWN0YW5nbGU6OnNldENvcm5lclJhZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKToKKwogMjAxMy0w
NS0yNCAgWGlhb2JvIFdhbmcgIDx4aWFvYndhbmdAYmxhY2tiZXJyeS5jb20+CiAKICAgICAgICAg
W0JsYWNrQmVycnldIERSVCAtIGNyYXNoZWQgb24gR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5j
dGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCmlu
ZGV4IDllOWEwZmM3ZDVkOGIwNTdjMTJlMTAwMTM2OGZkNThlZTAxZmFlOWEuLjA2YmFjNTMzNDM2
NjA1MzhhYTBiMTNlY2Y0YTUzMzEzYTYyMTQzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFz
aWNTaGFwZUZ1bmN0aW9ucy5jcHAKQEAgLTk0LDYgKzk0LDIzIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlKQogICAg
ICAgICBiYXNpY1NoYXBlVmFsdWUgPSBwb2x5Z29uVmFsdWUucmVsZWFzZSgpOwogICAgICAgICBi
cmVhazsKICAgICB9CisgICAgY2FzZSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9JTlNFVF9SRUNU
QU5HTEU6IHsKKyAgICAgICAgY29uc3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKiByZWN0YW5n
bGUgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqPihiYXNpY1No
YXBlKTsKKyAgICAgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZT4gcmVjdGFu
Z2xlVmFsdWUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgpOworCisgICAg
ICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRUb3AoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVj
dGFuZ2xlLT50b3AoKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1ZS0+c2V0UmlnaHQoY3NzVmFs
dWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5yaWdodCgpKSk7CisgICAgICAgIHJlY3Rh
bmdsZVZhbHVlLT5zZXRCb3R0b20oY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xl
LT5ib3R0b20oKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1ZS0+c2V0TGVmdChjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZShyZWN0YW5nbGUtPmxlZnQoKSkpOworICAgICAgICBpZiAoIXJlY3Rh
bmdsZS0+Y29ybmVyUmFkaXVzWCgpLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgICAgIHJlY3Rh
bmdsZVZhbHVlLT5zZXRSYWRpdXNYKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHJlY3Rhbmds
ZS0+Y29ybmVyUmFkaXVzWCgpKSk7CisgICAgICAgICAgICBpZiAoIXJlY3RhbmdsZS0+Y29ybmVy
UmFkaXVzWSgpLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICAgICAgcmVjdGFuZ2xlVmFsdWUt
PnNldFJhZGl1c1koY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5jb3JuZXJS
YWRpdXNZKCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGJhc2ljU2hhcGVWYWx1ZSA9IHJlY3Rh
bmdsZVZhbHVlLnJlbGVhc2UoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE2MSw2ICsxNzgsMjIgQEAgUGFzc1JlZlB0cjxC
YXNpY1NoYXBlPiBiYXNpY1NoYXBlRm9yVmFsdWUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBj
b25zdCBSZW5kZXIKICAgICAgICAgYmFzaWNTaGFwZSA9IHBvbHlnb24ucmVsZWFzZSgpOwogICAg
ICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBDU1NCYXNpY1NoYXBlOjpDU1NfQkFTSUNfU0hB
UEVfSU5TRVRfUkVDVEFOR0xFOiB7CisgICAgICAgIGNvbnN0IENTU0Jhc2ljU2hhcGVJbnNldFJl
Y3RhbmdsZSogcmVjdFZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQmFzaWNTaGFwZUluc2V0
UmVjdGFuZ2xlICo+KGJhc2ljU2hhcGVWYWx1ZSk7CisgICAgICAgIFJlZlB0cjxCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGU+IHJlY3QgPSBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgp
OworCisgICAgICAgIHJlY3QtPnNldFRvcChjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHls
ZSwgcmVjdFZhbHVlLT50b3AoKSkpOworICAgICAgICByZWN0LT5zZXRSaWdodChjb252ZXJ0VG9M
ZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVlLT5yaWdodCgpKSk7CisgICAgICAgIHJl
Y3QtPnNldEJvdHRvbShjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVl
LT5ib3R0b20oKSkpOworICAgICAgICByZWN0LT5zZXRMZWZ0KGNvbnZlcnRUb0xlbmd0aChzdHls
ZSwgcm9vdFN0eWxlLCByZWN0VmFsdWUtPmxlZnQoKSkpOworICAgICAgICBpZiAocmVjdFZhbHVl
LT5yYWRpdXNYKCkpIHsKKyAgICAgICAgICAgIHJlY3QtPnNldENvcm5lclJhZGl1c1goY29udmVy
dFRvTGVuZ3RoKHN0eWxlLCByb290U3R5bGUsIHJlY3RWYWx1ZS0+cmFkaXVzWCgpKSk7CisgICAg
ICAgICAgICBpZiAocmVjdFZhbHVlLT5yYWRpdXNZKCkpCisgICAgICAgICAgICAgICAgcmVjdC0+
c2V0Q29ybmVyUmFkaXVzWShjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZh
bHVlLT5yYWRpdXNZKCkpKTsKKyAgICAgICAgfQorICAgICAgICBiYXNpY1NoYXBlID0gcmVjdC5y
ZWxlYXNlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAppbmRleCAxOTc0
ZTYwMGQ0MzI4ZDFjYjUwYjMzMjA5MmY0YjdlNTVlOTc4MGNjLi44OGY0NGNmNzY1Y2QzOTk0NWRk
ZDNkOWM5YzVhODQ2OWYyZDRiOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
QmFzaWNTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5j
cHAKQEAgLTI2OCw1ICsyNjgsNzggQEAgYm9vbCBDU1NCYXNpY1NoYXBlUG9seWdvbjo6aGFzVmFy
aWFibGVSZWZlcmVuY2UoKSBjb25zdAogfQogI2VuZGlmCiAKK3N0YXRpYyBTdHJpbmcgYnVpbGRJ
bnNldFJlY3RhbmdsZVN0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiByaWdo
dCwgY29uc3QgU3RyaW5nJiBib3R0b20sIGNvbnN0IFN0cmluZyYgbGVmdCwgY29uc3QgU3RyaW5n
JiByYWRpdXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1kpCit7CisgICAgY2hhciBvcGVuaW5nW10g
PSAiaW5zZXQtcmVjdGFuZ2xlKCI7CisgICAgY2hhciBzZXBhcmF0b3JbXSA9ICIsICI7CisgICAg
U3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgLy8gQ29tcHV0ZSB0aGUgcmVxdWlyZWQgY2FwYWNp
dHkgaW4gYWR2YW5jZSB0byByZWR1Y2UgYWxsb2NhdGlvbnMuCisgICAgcmVzdWx0LnJlc2VydmVD
YXBhY2l0eSgoc2l6ZW9mKG9wZW5pbmcpIC0gMSkgKyAoNSAqIChzaXplb2Yoc2VwYXJhdG9yKSAt
IDEpKSArIDEgKyB0b3AubGVuZ3RoKCkgKyByaWdodC5sZW5ndGgoKSArIGJvdHRvbS5sZW5ndGgo
KSArIGxlZnQubGVuZ3RoKCkgKyByYWRpdXNYLmxlbmd0aCgpICsgcmFkaXVzWS5sZW5ndGgoKSk7
CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwob3BlbmluZyk7CisgICAgcmVzdWx0LmFwcGVuZCh0
b3ApOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRvcik7CisgICAgcmVzdWx0LmFw
cGVuZChyaWdodCk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoc2VwYXJhdG9yKTsKKyAgICBy
ZXN1bHQuYXBwZW5kKGJvdHRvbSk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoc2VwYXJhdG9y
KTsKKyAgICByZXN1bHQuYXBwZW5kKGxlZnQpOworICAgIGlmICghcmFkaXVzWC5pc051bGwoKSkg
eworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbChzZXBhcmF0b3IpOworICAgICAgICByZXN1
bHQuYXBwZW5kKHJhZGl1c1gpOworICAgICAgICBpZiAoIXJhZGl1c1kuaXNOdWxsKCkpIHsKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRvcik7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKHJhZGl1c1kpOworICAgICAgICB9CisgICAgfQorICAgIHJlc3VsdC5hcHBl
bmQoJyknKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK1N0cmluZyBDU1NC
YXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNzc1RleHQoKSBjb25zdAoreworICAgIHJldHVybiBi
dWlsZEluc2V0UmVjdGFuZ2xlU3RyaW5nKG1fdG9wLT5jc3NUZXh0KCksCisgICAgICAgIG1fcmln
aHQtPmNzc1RleHQoKSwKKyAgICAgICAgbV9ib3R0b20tPmNzc1RleHQoKSwKKyAgICAgICAgbV9s
ZWZ0LT5jc3NUZXh0KCksCisgICAgICAgIG1fcmFkaXVzWC5nZXQoKSA/IG1fcmFkaXVzWC0+Y3Nz
VGV4dCgpIDogU3RyaW5nKCksCisgICAgICAgIG1fcmFkaXVzWS5nZXQoKSA/IG1fcmFkaXVzWS0+
Y3NzVGV4dCgpIDogU3RyaW5nKCkpOworfQorCitib29sIENTU0Jhc2ljU2hhcGVJbnNldFJlY3Rh
bmdsZTo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdAoreworICAgIGlm
IChzaGFwZS50eXBlKCkgIT0gQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xl
JiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSY+
KHNoYXBlKTsKKyAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlUHRyKG1fdG9wLCBvdGhlci5tX3Rv
cCkKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmlnaHQsIG90aGVyLm1fcmlnaHQp
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2JvdHRvbSwgb3RoZXIubV9ib3R0b20p
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2xlZnQsIG90aGVyLm1fbGVmdCkKKyAg
ICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmFkaXVzWCwgb3RoZXIubV9yYWRpdXNYKQor
ICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9yYWRpdXNZLCBvdGhlci5tX3JhZGl1c1kp
OworfQorCisjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCitTdHJpbmcgQ1NTQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlOjpzZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJsZXMoY29uc3QgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIFN0cmluZz4mIHZhcmlhYmxlcykgY29uc3QKK3sKKyAgICByZXR1cm4gYnVp
bGRJbnNldFJlY3RhbmdsZVN0cmluZyhtX3RvcC0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFibGVz
KHZhcmlhYmxlcyksCisgICAgICAgIG1fcmlnaHQtPnNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxl
cyh2YXJpYWJsZXMpLAorICAgICAgICBtX2JvdHRvbS0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFi
bGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fbGVmdC0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFi
bGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fcmFkaXVzWC5nZXQoKSA/IG1fcmFkaXVzWC0+c2Vy
aWFsaXplUmVzb2x2aW5nVmFyaWFibGVzKHZhcmlhYmxlcykgOiBTdHJpbmcoKSwKKyAgICAgICAg
bV9yYWRpdXNZLmdldCgpID8gbV9yYWRpdXNZLT5zZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJsZXMo
dmFyaWFibGVzKSA6IFN0cmluZygpKTsKK30KKworYm9vbCBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0
YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90b3At
Pmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgbV9yaWdodC0+aGFzVmFyaWFibGVS
ZWZlcmVuY2UoKQorICAgICAgICB8fCBtX2JvdHRvbS0+aGFzVmFyaWFibGVSZWZlcmVuY2UoKQor
ICAgICAgICB8fCBtX2xlZnQtPmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgKG1f
cmFkaXVzWC5nZXQoKSAmJiBtX3JhZGl1c1gtPmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkpCisgICAg
ICAgIHx8IChtX3JhZGl1c1kuZ2V0KCkgJiYgbV9yYWRpdXNZLT5oYXNWYXJpYWJsZVJlZmVyZW5j
ZSgpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Jhc2ljU2hhcGVzLmgKaW5kZXggOGRiMGQyZjMwYzYzNTA4NzU2ZjM3MjczZjQxOTU3NTJm
ZGNiMmE2NC4uY2Q1OTI4MzAzZjE4ZWVkYTI5MDQyNTI2YjFjNTA0ZmMxODZiNDg5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVibGljOgogICAg
ICAgICBDU1NfQkFTSUNfU0hBUEVfUkVDVEFOR0xFID0gMSwKICAgICAgICAgQ1NTX0JBU0lDX1NI
QVBFX0NJUkNMRSA9IDIsCiAgICAgICAgIENTU19CQVNJQ19TSEFQRV9FTExJUFNFID0gMywKLSAg
ICAgICAgQ1NTX0JBU0lDX1NIQVBFX1BPTFlHT04gPSA0CisgICAgICAgIENTU19CQVNJQ19TSEFQ
RV9QT0xZR09OID0gNCwKKyAgICAgICAgQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRSA9
IDUKICAgICB9OwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CkBAIC0xMDEs
NiArMTAyLDQ0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3Jh
ZGl1c1k7CiB9OwogCitjbGFzcyBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUgOiBwdWJsaWMg
Q1NTQmFzaWNTaGFwZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQmFzaWNT
aGFwZUluc2V0UmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQmFz
aWNTaGFwZUluc2V0UmVjdGFuZ2xlKTsgfQorCisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHRvcCgp
IGNvbnN0IHsgcmV0dXJuIG1fdG9wLmdldCgpOyB9CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJp
Z2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodC5nZXQoKTsgfQorICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbS5nZXQoKTsgfQorICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0LmdldCgpOyB9CisgICAg
Q1NTUHJpbWl0aXZlVmFsdWUqIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1guZ2V0
KCk7IH0KKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFkaXVzWS5nZXQoKTsgfQorCisgICAgdm9pZCBzZXRUb3AoUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gdG9wKSB7IG1fdG9wID0gdG9wOyB9CisgICAgdm9pZCBzZXRSaWdodChQYXNzUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByaWdodCkgeyBtX3JpZ2h0ID0gcmlnaHQ7IH0KKyAgICB2
b2lkIHNldEJvdHRvbShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBib3R0b20pIHsgbV9i
b3R0b20gPSBib3R0b207IH0KKyAgICB2b2lkIHNldExlZnQoUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gbGVmdCkgeyBtX2xlZnQgPSBsZWZ0OyB9CisgICAgdm9pZCBzZXRSYWRpdXNYKFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVz
WDsgfQorICAgIHZvaWQgc2V0UmFkaXVzWShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBy
YWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKworICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQ1NTX0JBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRTsgfQorICAg
IHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxz
KGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdDsKKworI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVT
KQorICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyhjb25zdCBI
YXNoTWFwPEF0b21pY1N0cmluZywgU3RyaW5nPiYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBo
YXNWYXJpYWJsZVJlZmVyZW5jZSgpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ1NT
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKCkgeyB9CisKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IG1fcmlnaHQ7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3RvcDsKKyAg
ICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fYm90dG9tOworICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbV9sZWZ0OworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRp
dXNYOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRpdXNZOworfTsKKwogY2xh
c3MgQ1NTQmFzaWNTaGFwZUNpcmNsZSA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgQ1NTQmFzaWNTaGFwZUNpcmNsZSk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggMWYzOGE0YzQ0NGExMzljNzg4NTVjYWI3N2YzZGZhOTUyY2Y1ODYzNS4u
ZTUxNjkyZDM1MDNiODU2ODVkNTIzNTljZmY2ODI2YjAwNzQ2MWY4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTUxMzcsNiArNTEzNyw2MCBAQCBQYXNzUmVmUHRyPENTU0Jhc2ljU2hh
cGU+IENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlUmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlz
dAogICAgIHJldHVybiBzaGFwZTsKIH0KIAorUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBDU1NQ
YXJzZXI6OnBhcnNlQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCog
YXJncykKK3sKKyAgICBBU1NFUlQoYXJncyk7CisKKyAgICAvLyBpbnNldC1yZWN0YW5nbGUodG9w
LCByaWdodCwgYm90dG9tLCBsZWZ0LCBbW3J4XSwgcnldKQorICAgIGlmIChhcmdzLT5zaXplKCkg
IT0gNyAmJiBhcmdzLT5zaXplKCkgIT0gOSAmJiBhcmdzLT5zaXplKCkgIT0gMTEpCisgICAgICAg
IHJldHVybiAwOworCisgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZT4gc2hh
cGUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0ZSgpOworCisgICAgdW5zaWdu
ZWQgYXJndW1lbnROdW1iZXIgPSAwOworICAgIENTU1BhcnNlclZhbHVlKiBhcmd1bWVudCA9IGFy
Z3MtPmN1cnJlbnQoKTsKKyAgICB3aGlsZSAoYXJndW1lbnQpIHsKKyAgICAgICAgVW5pdHMgdW5p
dEZsYWdzID0gRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZzsKKyAgICAgICAgaWYgKCF2YWxp
ZFVuaXQoYXJndW1lbnQsIHVuaXRGbGFncykpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGxlbmd0aCA9IGNyZWF0ZVByaW1pdGl2ZU51
bWVyaWNWYWx1ZShhcmd1bWVudCk7CisgICAgICAgIEFTU0VSVChhcmd1bWVudE51bWJlciA8IDYp
OworICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50TnVtYmVyKSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHNoYXBlLT5zZXRUb3AobGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICBzaGFwZS0+c2V0UmlnaHQobGVuZ3RoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBzaGFwZS0+c2V0Qm90
dG9tKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgc2hhcGUtPnNldExlZnQobGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICBzaGFwZS0+c2V0UmFkaXVzWChsZW5ndGgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIHNoYXBlLT5zZXRSYWRp
dXNZKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBhcmd1
bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgaWYgKGFyZ3VtZW50KSB7CisgICAgICAgICAg
ICBpZiAoIWlzQ29tbWEoYXJndW1lbnQpKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworCisg
ICAgICAgICAgICBhcmd1bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBh
cmd1bWVudE51bWJlcisrOworICAgIH0KKworICAgIGlmIChhcmd1bWVudE51bWJlciA8IDQpCisg
ICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzaGFwZTsKK30KKwogUGFzc1JlZlB0cjxDU1NC
YXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUNpcmNsZShDU1NQYXJzZXJWYWx1
ZUxpc3QqIGFyZ3MpCiB7CiAgICAgQVNTRVJUKGFyZ3MpOwpAQCAtNTMwNyw2ICs1MzYxLDggQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9v
bCBpbXBvcnRhbnQpCiAgICAgICAgIHNoYXBlID0gcGFyc2VCYXNpY1NoYXBlRWxsaXBzZShhcmdz
KTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZS0+ZnVuY3Rpb24tPm5hbWUs
ICJwb2x5Z29uKCIpKQogICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24oYXJn
cyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9uLT5uYW1l
LCAiaW5zZXQtcmVjdGFuZ2xlKCIpKQorICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlKGFyZ3MpOwogCiAgICAgaWYgKCFzaGFwZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDlhMjIyYTlkZDQ0YTE1MzgyMDgwMDM2NTM4
ZTMzNGJkMTQ4ODQ0YjkuLmNhZDM5MjU0ZTM0NjljNDE1ZDcxMjkyZWE0NjJkNDZmMzJhMDRlM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTE3Nyw2ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAg
UGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVDaXJjbGUoQ1NTUGFyc2Vy
VmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFz
aWNTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNzUmVmUHRy
PENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24oQ1NTUGFyc2VyVmFsdWVMaXN0
KiBhcmdzKTsKKyAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZUlu
c2V0UmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAKICAgICBib29sIHBhcnNl
Rm9udChib29sIGltcG9ydGFudCk7CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcnNl
Rm9udEZhbWlseSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCBlNzIzZTRmMzQ0ZTBlZjNmNzZlMTJmNTU5Y2Zh
MGExMDk0ZWNiYWNlLi43MDE2MWMwYjc3YTU4YzI1MDk3ZTJhYmZiZjUzOTcyYzhlNjI5NmMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcApAQCAtNDYsNyArNDYsMTEgQEAgTGluZVNlZ21lbnRSYW5nZTo6TGluZVNlZ21l
bnRSYW5nZShjb25zdCBJbmxpbmVJdGVyYXRvciYgc3RhcnQsIGNvbnN0IElubGluZUl0ZXIKIGJv
b2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQmxv
Y2sqIHJlbmRlcmVyKQogewogICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSBy
ZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgpOwotICAgIHJldHVybiAoc2hh
cGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U2hh
cGUpID8gc2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7CisgICAgaWYgKHNoYXBlVmFsdWUgJiYgc2hh
cGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlKSB7CisgICAgICAg
IEJhc2ljU2hhcGUqIHNoYXBlID0gc2hhcGVWYWx1ZS0+c2hhcGUoKTsKKyAgICAgICAgcmV0dXJu
IHNoYXBlICYmIHNoYXBlLT50eXBlKCkgIT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfSU5TRVRf
UkVDVEFOR0xFOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcChmbG9hdCBtaW5TZWdtZW50V2lk
dGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mby5jcHAKaW5kZXggMmM3ZjhiZGY1YTk0MjVkNjU1Y2RlYzQxODBiMjZlYmVhMjIw
NTI3ZS4uMmRlNTkzMmMzYWYzODE3NDdjYWFhOGM3MDIyNmE0NTcwM2UyNjhjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
LmNwcApAQCAtMzksNyArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogYm9vbCBFeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQm94KiBib3gpCiB7
CiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogdmFsdWUgPSBib3gtPnN0eWxlKCktPnNoYXBlT3V0
c2lkZSgpOwotICAgIHJldHVybiAoYm94LT5pc0Zsb2F0aW5nV2l0aFNoYXBlT3V0c2lkZSgpICYm
IHZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U2hhcGUpID8gdmFsdWUtPnNo
YXBlKCkgOiAwOworICAgIGlmIChib3gtPmlzRmxvYXRpbmdXaXRoU2hhcGVPdXRzaWRlKCkgJiYg
dmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSkgeworICAgICAgICBC
YXNpY1NoYXBlKiBzaGFwZSA9IHZhbHVlLT5zaGFwZSgpOworICAgICAgICByZXR1cm4gc2hhcGUg
JiYgc2hhcGUtPnR5cGUoKSAhPSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5H
TEU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBFeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5
b3V0VW5pdCBsaW5lSGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0Jhc2ljU2hhcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9C
YXNpY1NoYXBlcy5jcHAKaW5kZXggYjIxMzU4ZmRjOGZiNGY3ZWY1NTAwN2FkYWUxOTY5ZjgwY2Rm
YThkOC4uMjM2NWJjZWZlOTcwZjdmZWFlYTc1Y2Q3NjRjYTExMzU4NTE5NThlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwCkBAIC0xNjksNCAr
MTY5LDMzIEBAIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gQmFzaWNTaGFwZVBvbHlnb246OmJsZW5k
KGNvbnN0IEJhc2ljU2hhcGUqIG90aGVyLCBkb3VibGUKIAogICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZSgpOwogfQorCit2b2lkIEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6cGF0aChQYXRoJiBw
YXRoLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94KQoreworICAgIEFTU0VSVChwYXRoLmlz
RW1wdHkoKSk7CisgICAgZmxvYXQgbGVmdCA9IGZsb2F0VmFsdWVGb3JMZW5ndGgobV9sZWZ0LCBi
b3VuZGluZ0JveC53aWR0aCgpKTsKKyAgICBmbG9hdCB0b3AgPSBmbG9hdFZhbHVlRm9yTGVuZ3Ro
KG1fdG9wLCBib3VuZGluZ0JveC5oZWlnaHQoKSk7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChG
bG9hdFJlY3QobGVmdCArIGJvdW5kaW5nQm94LngoKSwgdG9wICsgYm91bmRpbmdCb3gueSgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWF4PGZsb2F0Pihib3VuZGlu
Z0JveC53aWR0aCgpIC0gbGVmdCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgobV9yaWdodCwgYm91bmRp
bmdCb3gud2lkdGgoKSksIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
ZDo6bWF4PGZsb2F0Pihib3VuZGluZ0JveC5oZWlnaHQoKSAtIHRvcCAtIGZsb2F0VmFsdWVGb3JM
ZW5ndGgobV9ib3R0b20sIGJvdW5kaW5nQm94LmhlaWdodCgpKSwgMCkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgRmxvYXRTaXplKG1fY29ybmVyUmFkaXVzWC5pc1VuZGVmaW5lZCgpID8gMCA6
IGZsb2F0VmFsdWVGb3JMZW5ndGgobV9jb3JuZXJSYWRpdXNYLCBib3VuZGluZ0JveC53aWR0aCgp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nvcm5lclJhZGl1c1kuaXNV
bmRlZmluZWQoKSA/IDAgOiBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fY29ybmVyUmFkaXVzWSwgYm91
bmRpbmdCb3guaGVpZ2h0KCkpKSk7Cit9CisKK1Bhc3NSZWZQdHI8QmFzaWNTaGFwZT4gQmFzaWNT
aGFwZUluc2V0UmVjdGFuZ2xlOjpibGVuZChjb25zdCBCYXNpY1NoYXBlKiBvdGhlciwgZG91Ymxl
IHByb2dyZXNzKSBjb25zdAoreworICAgIEFTU0VSVCh0eXBlKCkgPT0gb3RoZXItPnR5cGUoKSk7
CisKKyAgICBjb25zdCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqIG8gPSBzdGF0aWNfY2FzdDxj
b25zdCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqPihvdGhlcik7CisgICAgUmVmUHRyPEJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZT4gcmVzdWx0ID0gIEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6
Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXRUb3AobV90b3AuYmxlbmQoby0+dG9wKCksIHByb2dy
ZXNzKSk7CisgICAgcmVzdWx0LT5zZXRSaWdodChtX3JpZ2h0LmJsZW5kKG8tPnJpZ2h0KCksIHBy
b2dyZXNzKSk7CisgICAgcmVzdWx0LT5zZXRCb3R0b20obV9ib3R0b20uYmxlbmQoby0+Ym90dG9t
KCksIHByb2dyZXNzKSk7CisgICAgcmVzdWx0LT5zZXRMZWZ0KG1fbGVmdC5ibGVuZChvLT5sZWZ0
KCksIHByb2dyZXNzKSk7CisgICAgaWYgKCFtX2Nvcm5lclJhZGl1c1guaXNVbmRlZmluZWQoKSAm
JiAhby0+Y29ybmVyUmFkaXVzWCgpLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJlc3VsdC0+c2V0
Q29ybmVyUmFkaXVzWChtX2Nvcm5lclJhZGl1c1guYmxlbmQoby0+Y29ybmVyUmFkaXVzWCgpLCBw
cm9ncmVzcykpOworICAgIGlmICghbV9jb3JuZXJSYWRpdXNZLmlzVW5kZWZpbmVkKCkgJiYgIW8t
PmNvcm5lclJhZGl1c1koKS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXN1bHQtPnNldENvcm5l
clJhZGl1c1kobV9jb3JuZXJSYWRpdXNZLmJsZW5kKG8tPmNvcm5lclJhZGl1c1koKSwgcHJvZ3Jl
c3MpKTsKKyAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKK30KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmgKaW5kZXggMTcxZDljMWY2Y2M5YjQwYzA4
ODljNGU3YTA1NjRmY2FiNzkzYWQwYi4uNGRjNmRmMmI3MmY4NDc2OWQ1NDU1OTQ5YzJkMDA2OTk1
OGUyMTI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2lj
U2hhcGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVz
LmgKQEAgLTQ5LDcgKzQ5LDggQEAgcHVibGljOgogICAgICAgICBCQVNJQ19TSEFQRV9SRUNUQU5H
TEUgPSAxLAogICAgICAgICBCQVNJQ19TSEFQRV9DSVJDTEUgPSAyLAogICAgICAgICBCQVNJQ19T
SEFQRV9FTExJUFNFID0gMywKLSAgICAgICAgQkFTSUNfU0hBUEVfUE9MWUdPTiA9IDQKKyAgICAg
ICAgQkFTSUNfU0hBUEVfUE9MWUdPTiA9IDQsCisgICAgICAgIEJBU0lDX1NIQVBFX0lOU0VUX1JF
Q1RBTkdMRSA9IDUKICAgICB9OwogCiAgICAgYm9vbCBjYW5CbGVuZChjb25zdCBCYXNpY1NoYXBl
KikgY29uc3Q7CkBAIC0xNzUsNSArMTc2LDQxIEBAIHByaXZhdGU6CiAgICAgV2luZFJ1bGUgbV93
aW5kUnVsZTsKICAgICBWZWN0b3I8TGVuZ3RoPiBtX3ZhbHVlczsKIH07CisKK2NsYXNzIEJhc2lj
U2hhcGVJbnNldFJlY3RhbmdsZSA6IHB1YmxpYyBCYXNpY1NoYXBlIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUpOyB9CisKKyAgICBMZW5n
dGggdG9wKCkgY29uc3QgeyByZXR1cm4gbV90b3A7IH0KKyAgICBMZW5ndGggcmlnaHQoKSBjb25z
dCB7IHJldHVybiBtX3JpZ2h0OyB9CisgICAgTGVuZ3RoIGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJu
IG1fYm90dG9tOyB9CisgICAgTGVuZ3RoIGxlZnQoKSBjb25zdCB7IHJldHVybiBtX2xlZnQ7IH0K
KyAgICBMZW5ndGggY29ybmVyUmFkaXVzWCgpIGNvbnN0IHsgcmV0dXJuIG1fY29ybmVyUmFkaXVz
WDsgfQorICAgIExlbmd0aCBjb3JuZXJSYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9jb3JuZXJS
YWRpdXNZOyB9CisKKyAgICB2b2lkIHNldFRvcChMZW5ndGggdG9wKSB7IG1fdG9wID0gdG9wOyB9
CisgICAgdm9pZCBzZXRSaWdodChMZW5ndGggcmlnaHQpIHsgbV9yaWdodCA9IHJpZ2h0OyB9Cisg
ICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIGJvdHRvbSkgeyBtX2JvdHRvbSA9IGJvdHRvbTsgfQor
ICAgIHZvaWQgc2V0TGVmdChMZW5ndGggbGVmdCkgeyBtX2xlZnQgPSBsZWZ0OyB9CisgICAgdm9p
ZCBzZXRDb3JuZXJSYWRpdXNYKExlbmd0aCByYWRpdXNYKSB7IG1fY29ybmVyUmFkaXVzWCA9IHJh
ZGl1c1g7IH0KKyAgICB2b2lkIHNldENvcm5lclJhZGl1c1koTGVuZ3RoIHJhZGl1c1kpIHsgbV9j
b3JuZXJSYWRpdXNZID0gcmFkaXVzWTsgfQorCisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYs
IGNvbnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCYXNp
Y1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlKSBjb25zdCBPVkVSUklERTsK
KworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQkFTSUNfU0hBUEVfSU5T
RVRfUkVDVEFOR0xFOyB9Citwcml2YXRlOgorICAgIEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSgp
CisgICAgICAgIDogbV9jb3JuZXJSYWRpdXNYKFVuZGVmaW5lZCkKKyAgICAgICAgLCBtX2Nvcm5l
clJhZGl1c1koVW5kZWZpbmVkKQorICAgIHsgfQorCisgICAgTGVuZ3RoIG1fcmlnaHQ7CisgICAg
TGVuZ3RoIG1fdG9wOworICAgIExlbmd0aCBtX2JvdHRvbTsKKyAgICBMZW5ndGggbV9sZWZ0Owor
ICAgIExlbmd0aCBtX2Nvcm5lclJhZGl1c1g7CisgICAgTGVuZ3RoIG1fY29ybmVyUmFkaXVzWTsK
K307CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYzkzOTIzOWQ1M2MyZjA2ZDkzZjJhNmZlN2U0YzU5OTI0
NGMyZDZiLi43YmE5Mjc5YzQ5ZDE5ZTY5MGU1OWNmMDRjMDA1ZTIwYTBlNzY0MWFjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTMtMDUtMjMgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9i
ZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIFN1cHBvcnQgcGFyc2luZyBpbnNldC1yZWN0
YW5nbGUgc2hhcGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTY2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVkIHRvIHRlc3QgZm9yIGluc2V0LXJlY3RhbmdsZSBjYXNlcy4KKworICAgICAg
ICAqIGZhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0LXRlc3RzL3Bh
cnNpbmctc2hhcGUtbGVuZ3Rocy5qczoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvcGFyc2lu
Zy9zY3JpcHQtdGVzdHMvcGFyc2luZy10ZXN0LXV0aWxzLmpzOgorCiAyMDEzLTA1LTI0ICBHYWJv
ciBBYnJhaGFtICA8YWJyaG1AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZp
ZXdlZCBnYXJkZW5pbmcuIFVwZGF0ZSBxdC01LjAtd2syIGV4cGVjdGVkIHBpY3R1cmVzIGFmdGVy
IHIxNTA1MDYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2lu
Zy9wYXJzaW5nLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQKaW5kZXgg
MDBkMTcwYzAwYThhZmExMzIzZGM3MTVjZTBjMDRjNGJiYWJlNDgwYy4uM2RlMjYwMDdlMDNjYzlj
YzViMTE0OTUxOTFiZjU0MjBiMDFmYjI2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1pbnNpZGUtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtaW5zaWRl
LWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsMTIgQEAgUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4KSIK
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4KSIpIGlzICJyZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCwgNXB4KSIKIFBBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiKSBp
cyAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiCiBQQVNTIGdl
dENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiKSBpcyAicmVjdGFuZ2xlKDEwcHgsIDIw
cHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hh
cGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlz
ICJpbnNldC1yZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiCitQQVNTIGdldENvbXB1
dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgsIDQwcHgpIikgaXMgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4KSIKK1BBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5z
ZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiKSBpcyAiaW5zZXQtcmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiCitQQVNTIGdldENvbXB1dGVkU3R5
bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIw
cHgsIDMwcHgsIDQwcHgsIDVweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgsIDVweCkiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwg
Imluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIikgaXMg
Imluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJl
Y3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIikgaXMgImluc2V0LXJl
Y3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIgogUEFTUyBnZXRDU1NU
ZXh0KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoMTBweCwgMjBweCwgMzBweCkiKSBp
cyAiY2lyY2xlKDEwcHgsIDIwcHgsIDMwcHgpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUo
Ii13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgxMHB4LCAyMHB4LCAzMHB4KSIpIGlzICJj
aXJjbGUoMTBweCwgMjBweCwgMzBweCkiCiBQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUt
aW5zaWRlIiwgImVsbGlwc2UoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAiZWxsaXBzZSgx
MHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKQEAgLTQxLDYgKzQ3LDE4IEBAIFBBU1MgZ2V0Q1NTVGV4
dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDEwcHggMjBweCAzMHB4IDQwcHgp
IikgaXMgIiIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJyZWN0YW5nbGUoMTBweCAyMHB4IDMwcHggNDBweCkiKSBpcyAib3V0c2lkZS1zaGFwZSIK
IFBBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgsIDUwcHgsIDYwcHgsIDcwcHgpIikgaXMgIiIKIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCwgNTBweCwgNjBweCwgNzBweCkiKSBpcyAib3V0c2lkZS1zaGFwZSIK
K1BBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xl
KCkiKSBpcyAiIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5z
aWRlIiwgImluc2V0LXJlY3RhbmdsZSgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldENT
U1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4KSIpIGlz
ICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAi
aW5zZXQtcmVjdGFuZ2xlKDEwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldENTU1Rl
eHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAxMHB4KSIp
IGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUi
LCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDEwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNT
IGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4
LCAyMHB4LCAzMHB4KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtp
dC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgpIikgaXMg
Im91dHNpZGUtc2hhcGUiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwg
Imluc2V0LXJlY3RhbmdsZSgxMHB4IDIwcHggMzBweCA0MHB4KSIpIGlzICIiCitQQVNTIGdldENv
bXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xl
KDEwcHggMjBweCAzMHB4IDQwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldENTU1Rl
eHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4LCA1MHB4LCA2MHB4LCA3MHB4KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5
bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIw
cHgsIDMwcHgsIDQwcHgsIDUwcHgsIDYwcHgsIDcwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQ
QVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgpIikgaXMgIiIK
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJj
bGUoKSIpIGlzICJvdXRzaWRlLXNoYXBlIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBl
LWluc2lkZSIsICJjaXJjbGUoMTBweCkiKSBpcyAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1sZW5ndGhzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtbGVu
Z3Rocy1leHBlY3RlZC50eHQKaW5kZXggOTFlNGFmOGE5ZDI0MTI1NjA5NmM1ODIxMzI5ODIwZDY1
OTUwNzJmMy4uNWJlYTdkMDdjYjEwYWJhYzhkNGNkYjIxMDgyY2I5MmJkMTM1OTI0YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1s
ZW5ndGhzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFy
c2luZy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMtZXhwZWN0ZWQudHh0CkBAIC04LDYgKzgsNyBAQCBQ
QVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgtMXB4LCAr
MXB4LCAxcHgpIikgaXMgImNpcmNsZQogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBl
LWluc2lkZSIsICJjaXJjbGUoLTEuNXB4LCArMS41cHgsIDEuNXB4KSIpIGlzICJjaXJjbGUoLTEu
NXB4LCAxLjVweCwgMS41cHgpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWlu
c2lkZSIsICJjaXJjbGUoLS41cHgsICsuNXB4LCAuNXB4KSIpIGlzICJjaXJjbGUoLTAuNXB4LCAw
LjVweCwgMC41cHgpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIs
ICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAicmVjdGFuZ2xl
KDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Vi
a2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAx
cHQsIDFwYykiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAx
cGMpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUo
LTFlbSwgKzFlbSwgMWVtKSIpIGlzICJjaXJjbGUoLTFlbSwgMWVtLCAxZW0pIgogUEFTUyBnZXRT
dHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLTEuNWVtLCArMS41ZW0s
IDEuNWVtKSIpIGlzICJjaXJjbGUoLTEuNWVtLCAxLjVlbSwgMS41ZW0pIgogUEFTUyBnZXRTdHls
ZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLS41ZW0sICsuNWVtLCAuNWVt
KSIpIGlzICJjaXJjbGUoLTAuNWVtLCAwLjVlbSwgMC41ZW0pIgpAQCAtMjMsMTAgKzI0LDEyIEBA
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJj
bGUoLjV2aCwgMXZoLCAxLjV2aCkiKSBpCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xlKC41dm1pbiwgMXZtaW4sIDEuNXZtaW4pIikgaXMg
ImNpcmNsZSgwLjV2bWluLCAxdm1pbiwgMS41dm1pbikiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13
ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgxMDAlLCAxMDAlLCAxMDAlKSIpIGlzICJjaXJj
bGUoMTAwJSwgMTAwJSwgMTAwJSkiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUt
aW5zaWRlIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIpIGlzICJy
ZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiCitQQVNTIGdldFN0eWxlVmFs
dWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAl
LCA2MCUsIDI1JSwgMTAlKSIpIGlzICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAl
LCAyNSUsIDEwJSkiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwg
ImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKSBpcyAiZWxsaXBzZSgxMDAlLCAxMDAl
LCAxMDAlLCAxMDAlKSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUi
LCAicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIpIGlzICJwb2x5Z29uKG5vbnpl
cm8sIDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFs
dWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIikgaXMg
ImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13
ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwg
MTAlKSIpIGlzICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiCitQQVNT
IGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVj
dGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIikgaXMgImluc2V0LXJlY3Rhbmds
ZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZh
bHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEw
MCUpIikgaXMgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiCiBQQVNTIGdldENvbXB1
dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicG9seWdvbigxMCUgMjAlLCAz
MCUgNDAlLCA0MCUgNTAlKSIpIGlzICJwb2x5Z29uKG5vbnplcm8sIDEwJSAyMCUsIDMwJSA0MCUs
IDQwJSA1MCUpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJj
aXJjbGUoMXB4LCAxcHgsIDEpIikgaXMgbnVsbApAQCAtNDMsNiArNDYsMTAgQEAgUEFTUyBnZXRT
dHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgMXB4LCAtMXB0LAogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUt
aW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIC0xcHQsIDFwYykiKSBpcyAi
b3V0c2lkZS1zaGFwZSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUi
LCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpIGlzIG51bGwKIFBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5n
bGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQ
QVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3Rhbmds
ZSgxY20sIDFtbSwgMWluLCAxcHgsIC0xcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGdldENvbXB1
dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFj
bSwgMW1tLCAxaW4sIDFweCwgLTFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgorUEFTUyBn
ZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNt
LCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIikgaXMgbnVsbAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFt
bSwgMWluLCAxcHgsIDFwdCwgLTFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKIFBBU1MgZ2V0U3R5
bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgxZW0sIDFlbSwgLTFlbSwg
MWVtKSIpIGlzIG51bGwKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBl
LWluc2lkZSIsICJlbGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAxZW0pIikgaXMgIm91dHNpZGUtc2hh
cGUiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImVsbGlwc2Uo
MWVtLCAxZW0sIDFlbSwgLTFlbSkiKSBpcyBudWxsCkBAIC01MSw2ICs1OCwxNCBAQCBQQVNTIGdl
dFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFtbSwg
LTFpbiwgMXB4LCAxcHQsCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlz
ICJvdXRzaWRlLXNoYXBlIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAog
UEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3Rh
bmdsZSgxY20sIDFtbSwgMWluLCAtMXB4LCAxcHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIK
K1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFu
Z2xlKC0xY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUo
LTFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNT
IGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgx
Y20sIC0xbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGdldENvbXB1dGVk
U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwg
LTFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgorUEFTUyBnZXRT
dHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAx
bW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAorUEFTUyBnZXRDb21wdXRlZFN0eWxl
VmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwg
LTFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgZ2V0U3R5bGVW
YWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAx
aW4sIC0xcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwg
LTFweCwgMXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNoYXBlLW91dHNp
ZGUtZXhwZWN0ZWQudHh0CmluZGV4IDAzMGQzMjEzMzRiMjdkNWRkODM4NjEzNzZkMDlkMGE5OGY4
ZTU3NmIuLjllNzlhZDRiN2MyZWIzNGY0MjY3ZTljZTIzYjk0NDZhOGRkYTllZDIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtb3V0
c2lkZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNp
bmcvcGFyc2luZy1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsMTIgQEAg
UEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAicmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgsIDVweCkKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Vi
a2l0LXNoYXBlLW91dHNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVw
eCkiKSBpcyAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiCiBQQVNTIGdl
dENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwg
MzBweCwgNDBweCwgNXB4LCAxMHB4KSIpIGlzICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCwgNXB4LCAxMHB4KSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNo
YXBlLW91dHNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBw
eCkiKSBpcyAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiCitQ
QVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUo
MTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgs
IDMwcHgsIDQwcHgpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUt
b3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAi
aW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgorUEFTUyBnZXRDU1NUZXh0
KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgsIDVweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgsIDVweCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1vdXRz
aWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgpIikgaXMg
Imluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgpIgorUEFTUyBnZXRD
U1NUZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIw
cHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIw
cHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgi
LXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4
LCA0MHB4LCA1cHgsIDEwcHgpIikgaXMgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4
LCA0MHB4LCA1cHgsIDEwcHgpIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLW91dHNp
ZGUiLCAiY2lyY2xlKDEwcHgsIDIwcHgsIDMwcHgpIikgaXMgImNpcmNsZSgxMHB4LCAyMHB4LCAz
MHB4KSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLW91dHNpZGUi
LCAiY2lyY2xlKDEwcHgsIDIwcHgsIDMwcHgpIikgaXMgImNpcmNsZSgxMHB4LCAyMHB4LCAzMHB4
KSIKIFBBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgImVsbGlwc2UoMTBw
eCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAiZWxsaXBzZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4
KSIKQEAgLTM5LDYgKzQ1LDE4IEBAIFBBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1vdXRz
aWRlIiwgInJlY3RhbmdsZSgxMHB4IDIwcHggMzBweCA0MHB4KSIpIGlzICIiCiBQQVNTIGdldENv
bXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgInJlY3RhbmdsZSgxMHB4
IDIwcHggMzBweCA0MHB4KSIpIGlzICJhdXRvIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNo
YXBlLW91dHNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDUwcHgsIDYw
cHgsIDcwcHgpIikgaXMgIiIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNo
YXBlLW91dHNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDUwcHgsIDYw
cHgsIDcwcHgpIikgaXMgImF1dG8iCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0
c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoKSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVW
YWx1ZSgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgpIikgaXMgImF1
dG8iCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0
YW5nbGUoMTBweCkiKSBpcyAiIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQt
c2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMTBweCkiKSBpcyAiYXV0byIKK1BBU1Mg
Z2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4
LCAxMHB4KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAxMHB4KSIpIGlzICJhdXRvIgorUEFT
UyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgpIikgaXMgIiIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Vi
a2l0LXNoYXBlLW91dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgpIikg
aXMgImF1dG8iCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNl
dC1yZWN0YW5nbGUoMTBweCAyMHB4IDMwcHggNDBweCkiKSBpcyAiIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMTBw
eCAyMHB4IDMwcHggNDBweCkiKSBpcyAiYXV0byIKK1BBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1z
aGFwZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1
MHB4LCA2MHB4LCA3MHB4KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0
MHB4LCA1MHB4LCA2MHB4LCA3MHB4KSIpIGlzICJhdXRvIgogUEFTUyBnZXRDU1NUZXh0KCItd2Vi
a2l0LXNoYXBlLW91dHNpZGUiLCAiY2lyY2xlKCkiKSBpcyAiIgogUEFTUyBnZXRDb21wdXRlZFN0
eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJjaXJjbGUoKSIpIGlzICJhdXRvIgog
UEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiY2lyY2xlKDEwcHgpIikg
aXMgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3Nj
cmlwdC10ZXN0cy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvcGFyc2luZy9zY3JpcHQtdGVzdHMvcGFyc2luZy1zaGFwZS1sZW5ndGhzLmpzCmlu
ZGV4IDBlYzM0Zjk3MTE3ZTcwOWQ0MDFmNGY2ODA0YTc4ODg0NWJkM2ZmNWEuLjdjZTY0ZTM4MzZm
ODM5MTBlMmExNDc0ODY5YTYzMzMyYTEzNGVkYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0LXRlc3Rz
L3BhcnNpbmctc2hhcGUtbGVuZ3Rocy5qcwpAQCAtMzMsNiArMzMsNyBAQCB0ZXN0U3R5bGVWYWx1
ZSgiY2lyY2xlKC0xLjVweCwgKzEuNXB4LCAxLjVweCkiLCAiY2lyY2xlKC0xLjVweCwgMS41cHgs
IDEuNXB4KSIpOwogdGVzdFN0eWxlVmFsdWUoImNpcmNsZSgtLjVweCwgKy41cHgsIC41cHgpIiwg
ImNpcmNsZSgtMC41cHgsIDAuNXB4LCAwLjVweCkiKTsKIAogdGVzdFN0eWxlVmFsdWUoInJlY3Rh
bmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIsICJyZWN0YW5nbGUoMWNtLCAxbW0s
IDFpbiwgMXB4LCAxcHQsIDFwYykiKTsKK3Rlc3RTdHlsZVZhbHVlKCJpbnNldC1yZWN0YW5nbGUo
MWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1t
LCAxaW4sIDFweCwgMXB0LCAxcGMpIik7CiAKIC8vIGZvbnQtcmVsYXRpdmUgbGVuZ3RocyAtIG51
bWJlciBzZXJpYWxpemF0aW9uLCB1bml0cywgcmVzb2x1dGlvbgogdGVzdFN0eWxlVmFsdWUoImNp
cmNsZSgtMWVtLCArMWVtLCAxZW0pIiwgImNpcmNsZSgtMWVtLCAxZW0sIDFlbSkiKTsKQEAgLTU4
LDExICs1OSwxMyBAQCB0ZXN0Q29tcHV0ZWRTdHlsZVZhbHVlKCJjaXJjbGUoLjV2bWluLCAxdm1p
biwgMS41dm1pbikiLCAiY2lyY2xlKDAuNXZtaW4sIDF2bWluLAogLy8gcGVyY2VudGFnZSBsZW5n
dGhzIC0gdW5pdHMKIHRlc3RTdHlsZVZhbHVlKCJjaXJjbGUoMTAwJSwgMTAwJSwgMTAwJSkiLCAi
Y2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUpIik7CiB0ZXN0U3R5bGVWYWx1ZSgicmVjdGFuZ2xlKDQ1
JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2
MCUsIDI1JSwgMTAlKSIpOwordGVzdFN0eWxlVmFsdWUoImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1
JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIsICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwg
NjAlLCAyNSUsIDEwJSkiKTsKIHRlc3RTdHlsZVZhbHVlKCJlbGxpcHNlKDEwMCUsIDEwMCUsIDEw
MCUsIDEwMCUpIiwgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKTsKIHRlc3RTdHls
ZVZhbHVlKCJwb2x5Z29uKDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIiwgInBvbHlnb24obm9u
emVybywgMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiKTsKIAogdGVzdENvbXB1dGVkU3R5bGVW
YWx1ZSgiY2lyY2xlKDUwJSwgMTAwJSwgMTUwJSkiLCAiY2lyY2xlKDUwJSwgMTAwJSwgMTUwJSki
KTsKIHRlc3RDb21wdXRlZFN0eWxlVmFsdWUoInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUs
IDI1JSwgMTAlKSIsICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKTsK
K3Rlc3RDb21wdXRlZFN0eWxlVmFsdWUoImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2
MCUsIDI1JSwgMTAlKSIsICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUs
IDEwJSkiKTsKIHRlc3RDb21wdXRlZFN0eWxlVmFsdWUoImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAw
JSwgMTAwJSkiLCAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpOwogdGVzdENvbXB1
dGVkU3R5bGVWYWx1ZSgicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIsICJwb2x5
Z29uKG5vbnplcm8sIDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIik7CiAKQEAgLTc2LDkgKzc5
LDE3IEBAIHRlc3RJbnZhbGlkVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgx
cHgsIDFweCwgY2FsYygpKSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNp
ZGUiLCAiY2lyY2xlKC0xLjVweCwgKzEuNXB4LCAtMS41cHgpIik7CiB0ZXN0SW52YWxpZFZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAt
MXB0LCAxcGMpIik7CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJy
ZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIik7Cit0ZXN0SW52YWxpZFZh
bHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgMXB4LCAtMXB0LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWlu
c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIik7
CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDFlbSwg
MWVtLCAtMWVtLCAxZW0pIik7CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJlbGxpcHNlKDFlbSwgMWVtLCAxZW0sIC0xZW0pIik7CiAKIC8vIHJlamVjdCBuZWdhdGl2
ZSBoZWlnaHQgYW5kIHdpZHRoCiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIik7CiB0ZXN0SW52
YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgLTFweCwgMXB0LCAxcGMpIik7CisKKy8vIHJlamVjdCBuZWdhdGl2ZSB0b3AsIHJpZ2h0LCBi
b3R0b20sIGFuZCBsZWZ0Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIs
ICJpbnNldC1yZWN0YW5nbGUoLTFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIik7Cit0ZXN0
SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNt
LCAtMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0
LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNl
dC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9zY3JpcHQtdGVzdHMvcGFyc2lu
Zy10ZXN0LXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2Ny
aXB0LXRlc3RzL3BhcnNpbmctdGVzdC11dGlscy5qcwppbmRleCA2MTU3OGY4NzhlMjA3NjlkYWQ4
ODAzYTBhY2FmMWQ3ZWJmYTg3M2Y3Li43MTAzYmI2ZGExZGU4Yzc5MjU0ZmE2MzFmOTQzOTYwZjlm
NmI0MDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9z
Y3JpcHQtdGVzdHMvcGFyc2luZy10ZXN0LXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXRlc3QtdXRpbHMuanMKQEAg
LTYsNiArNiwxMCBAQCB2YXIgdmFsaWRTaGFwZVZhbHVlcyA9IFsKICAgICAicmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiLCAKICAgICAicmVjdGFuZ2xlKDEwcHgsIDIwcHgs
IDMwcHgsIDQwcHgsIDVweCwgMTBweCkiLAogCisgICAgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAy
MHB4LCAzMHB4LCA0MHB4KSIsCisgICAgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4
LCA0MHB4LCA1cHgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgsIDVweCwgMTBweCkiLAorCiAgICAgImNpcmNsZSgxMHB4LCAyMHB4LCAzMHB4KSIsCiAKICAg
ICAiZWxsaXBzZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsCkBAIC0yOCw2ICszMiwxMyBAQCB2
YXIgaW52YWxpZFNoYXBlVmFsdWVzID0gWwogICAgICJyZWN0YW5nbGUoMTBweCAyMHB4IDMwcHgg
NDBweCkiLAogICAgICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNTBweCwgNjBw
eCwgNzBweCkiLAogCisgICAgImluc2V0LXJlY3RhbmdsZSgpIiwKKyAgICAiaW5zZXQtcmVjdGFu
Z2xlKDEwcHgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDEwcHgpIiwKKyAgICAiaW5z
ZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEw
cHggMjBweCAzMHB4IDQwcHgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgsIDUwcHgsIDYwcHgsIDcwcHgpIiwKKwogICAgICJjaXJjbGUoKSIsCiAgICAgImNp
cmNsZSgxMHB4KSIsCiAgICAgImNpcmNsZSgxMHB4LCAyMHB4KSIsCkBAIC0xNTgsNCArMTY5LDQg
QEAgZnVuY3Rpb24gdGVzdE5vdEluaGVyaXRlZFNoYXBlUHJvcGVydHkocHJvcGVydHksIHBhcmVu
dFZhbHVlLCBjaGlsZFZhbHVlLCBleHBlY3QKIGZ1bmN0aW9uIGFwcGx5VG9FYWNoQXJnbGlzdCh0
ZXN0RnVuY3Rpb24sIGFyZ2xpc3RzKQogewogICAgIGFyZ2xpc3RzLmZvckVhY2goZnVuY3Rpb24o
YXJnbGlzdCwgaSwgYSkge3Rlc3RGdW5jdGlvbi5hcHBseShudWxsLCBhcmdsaXN0KTt9KTsKLX0K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203205</attachid>
            <date>2013-05-29 09:18:50 -0700</date>
            <delta_ts>2013-05-29 09:54:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116638-20130529091727.patch</filename>
            <type>text/plain</type>
            <size>41914</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjczNjc0MWIwODRhY2Yx
ZTBkY2I2NzBkNjY0NDZkNDAzZjg3ZGIzZC4uMDJiMTc5OTc0ZDdkZDRmMGQzMDdiOGFmNmM4YmYx
ZmM0NmRlMzIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTA1LTI5ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBT
dXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFuZ2xlIHNoYXBlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEFkZCBwYXJzaW5nIGZvciBpbnNldC1yZWN0YW5n
bGUuIEl0J3MgdmVyeSBzaW1pbGFyIHRvIHBhcnNpbmcgZm9yCisgICAgICAgIHJlY3RhbmdsZS4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZXhpc3RpbmcgdGVzdHMgdG8gY292ZXIg
dGhpcy4KKworICAgICAgICAqIGNzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZhbHVlRm9yQmFzaWNTaGFwZSk6IEFkZCBzdXBwb3J0IGZvciBpbnNldCByZWN0
YW5nbGVzLgorICAgICAgICAoV2ViQ29yZTo6YmFzaWNTaGFwZUZvclZhbHVlKTogQWRkIHN1cHBv
cnQgZm9yIGluc2V0IHJlY3RhbmdsZXMuCisgICAgICAgICogY3NzL0NTU0Jhc2ljU2hhcGVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkSW5zZXRSZWN0YW5nbGVTdHJpbmcpOiBDcmVhdGUg
YW4gaW5zZXQtcmVjdGFuZ2xlIGNzcworICAgICAgICAgICAgc3RyaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpjc3NUZXh0KTogQ29udmVydCBpbnNl
dAorICAgICAgICAgICAgcmVjdGFuZ2xlIHNoYXBlIHRvIGEgQ1NTIHN0cmluZy4KKyAgICAgICAg
KFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6ZXF1YWxzKTogQ29tcGFyZSB0
d28gaW5zZXQKKyAgICAgICAgICAgIHJlY3RhbmdsZXMuCisgICAgICAgIChXZWJDb3JlOjpDU1NC
YXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNlcmlhbGl6ZVJlc29sdmluZ1ZhcmlhYmxlcyk6Cisg
ICAgICAgICAgICBDcmVhdGUgYW4gaW5zZXQgcmVjdGFuZ2xlIHN0cmluZywgd2l0aCBDU1MgdmFy
aWFibGVzIHJlc29sdmVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVj
dGFuZ2xlOjpoYXNWYXJpYWJsZVJlZmVyZW5jZSk6CisgICAgICAgICAgICBEZXRlcm1pbmUgaWYg
dGhpcyBpbnNldCByZWN0YW5nbGUgaGFzIGFueSBDU1MgVmFyaWFibGUgcmVmZXJlbmNlcy4KKyAg
ICAgICAgKiBjc3MvQ1NTQmFzaWNTaGFwZXMuaDoKKyAgICAgICAgKENTU0Jhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZSk6IEFkZCBpbnNldCByZWN0YW5nbGUgY2xhc3MuIFRoaXMgaXMgYQorICAgICAg
ICAgICAgZGlyZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBDU1MgcHJvcGVydHkuIEFsbCB0aGUg
bWV0aG9kcyBiZWxvdworICAgICAgICAgICAgYXJlIGp1c3Qgc2ltcGxlIGdldHRlcnMgYW5kIHNl
dHRlcnMsIGFsb25nIHdpdGggYSBjb25zdHJ1dG9yIGFuZCBhCisgICAgICAgICAgICBmYWN0b3J5
IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6
Y3JlYXRlKTogCisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6
OnRvcCk6IAorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpy
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmJv
dHRvbSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6Omxl
ZnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpyYWRp
dXNYKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6cmFk
aXVzWSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNl
dFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNl
dFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6
c2V0Qm90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3Rhbmds
ZTo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5n
bGU6OnNldFJhZGl1c1gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVj
dGFuZ2xlOjpzZXRSYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZTo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUpOiBQYXJzZSB0aGUKKyAgICAgICAg
ICAgIGluc2V0LXJlY3RhbmdsZSBDU1MgcHJvcGVydHkgYW5kIGNyZWF0ZSBhCisgICAgICAgICAg
ICBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlQmFzaWNTaGFwZSk6IEFkZCBhIGNhbGwgdG8gcGFyc2UKKyAgICAgICAgICAgIGlu
c2V0LXJlY3RhbmdsZS4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNF
bmFibGVkRm9yKTogRGlzYWJsZQorICAgICAgICAgICAgaW5zZXQtcmVjdGFuZ2xlcywgc2luY2Ug
b25seSB0aGUgcGFyc2luZyBoYXMgYmVlbiBpbXBsZW1lbnRlZCBzbworICAgICAgICAgICAgZmFy
LgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmlzRW5hYmxlZEZvcik6
IERpc2FibGUKKyAgICAgICAgICAgIGluc2V0LXJlY3RhbmdsZXMsIHNpbmNlIG9ubHkgdGhlIHBh
cnNpbmcgaGFzIGJlZW4gaW1wbGVtZW50ZWQgc28KKyAgICAgICAgICAgIGZhci4KKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFz
aWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpwYXRoKTogQ2FsY3VsYXRlIHRoZSBQYXRoIGZvciBhbgor
ICAgICAgICAgICAgaW5zZXQtcmVjdGFuZ2xlLgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFw
ZUluc2V0UmVjdGFuZ2xlOjpibGVuZCk6IEJsZW5kIHR3byBpbnNldCByZWN0YW5nbGVzCisgICAg
ICAgICAgICB0b2dldGhlciBhdCBhIHBvaW50IGRlcGVuZGluZyBvbiB0aGUgInByb2dyZXNzIiBh
bmQgcmV0dXJuIHRoZQorICAgICAgICAgICAgYmxlbmRlZCByZWN0YW5nbGUuCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAgIChCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGUpOiBBZGQgaGlnaGVyIGxldmVsIGluc2V0IHJlY3RhbmdsZSBjbGFzcy4KKyAgICAg
ICAgICAgIFRoaXMgaXMgdXNlZCBvdXRzaWRlIG9mIHRoZSBDU1MgcmVwcmVzZW50YXRpb24uIFRo
ZSBtZXRob2RzIGJlbG93CisgICAgICAgICAgICBhcmUganVzdCBzaW1wbGUgZ2V0dGVycyBhbmQg
c2V0dGVycywgYWxvbmcgd2l0aCBhIGNvbnN0cnVjdG9yIGFuZAorICAgICAgICAgICAgYSBmYWN0
b3J5IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6dG9w
KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6cmlnaHQpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpib3R0b20pOgorICAg
ICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpsZWZ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6Y29ybmVyUmFkaXVzWCk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNvcm5lclJhZGl1c1kpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRUb3ApOgorICAg
ICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRSaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNldEJvdHRvbSk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnNldExlZnQpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXRDb3JuZXJSYWRpdXNYKToK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6c2V0Q29ybmVyUmFk
aXVzWSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGUpOgorCiAyMDEzLTA1LTI5ICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExl
YWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW3RleG1hcF1bR1N0cmVhbWVyXVtH
VEtdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hh
cGVGdW5jdGlvbnMuY3BwCmluZGV4IDllOWEwZmM3ZDVkOGIwNTdjMTJlMTAwMTM2OGZkNThlZTAx
ZmFlOWEuLjA2YmFjNTMzNDM2NjA1MzhhYTBiMTNlY2Y0YTUzMzEzYTYyMTQzNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAKQEAgLTk0LDYgKzk0LDIzIEBA
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBCYXNpY1NoYXBl
KiBiYXNpY1NoYXBlKQogICAgICAgICBiYXNpY1NoYXBlVmFsdWUgPSBwb2x5Z29uVmFsdWUucmVs
ZWFzZSgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBCYXNpY1NoYXBlOjpCQVNJ
Q19TSEFQRV9JTlNFVF9SRUNUQU5HTEU6IHsKKyAgICAgICAgY29uc3QgQmFzaWNTaGFwZUluc2V0
UmVjdGFuZ2xlKiByZWN0YW5nbGUgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGUqPihiYXNpY1NoYXBlKTsKKyAgICAgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZT4gcmVjdGFuZ2xlVmFsdWUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6
OmNyZWF0ZSgpOworCisgICAgICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRUb3AoY3NzVmFsdWVQb29s
KCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT50b3AoKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1
ZS0+c2V0UmlnaHQoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5yaWdodCgp
KSk7CisgICAgICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRCb3R0b20oY3NzVmFsdWVQb29sKCkuY3Jl
YXRlVmFsdWUocmVjdGFuZ2xlLT5ib3R0b20oKSkpOworICAgICAgICByZWN0YW5nbGVWYWx1ZS0+
c2V0TGVmdChjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShyZWN0YW5nbGUtPmxlZnQoKSkpOwor
ICAgICAgICBpZiAoIXJlY3RhbmdsZS0+Y29ybmVyUmFkaXVzWCgpLmlzVW5kZWZpbmVkKCkpIHsK
KyAgICAgICAgICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRSYWRpdXNYKGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZVZhbHVlKHJlY3RhbmdsZS0+Y29ybmVyUmFkaXVzWCgpKSk7CisgICAgICAgICAgICBpZiAo
IXJlY3RhbmdsZS0+Y29ybmVyUmFkaXVzWSgpLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICAg
ICAgcmVjdGFuZ2xlVmFsdWUtPnNldFJhZGl1c1koY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUo
cmVjdGFuZ2xlLT5jb3JuZXJSYWRpdXNZKCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGJhc2lj
U2hhcGVWYWx1ZSA9IHJlY3RhbmdsZVZhbHVlLnJlbGVhc2UoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE2MSw2ICsxNzgs
MjIgQEAgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBiYXNpY1NoYXBlRm9yVmFsdWUoY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXIKICAgICAgICAgYmFzaWNTaGFwZSA9IHBvbHln
b24ucmVsZWFzZSgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBDU1NCYXNpY1No
YXBlOjpDU1NfQkFTSUNfU0hBUEVfSU5TRVRfUkVDVEFOR0xFOiB7CisgICAgICAgIGNvbnN0IENT
U0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSogcmVjdFZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlICo+KGJhc2ljU2hhcGVWYWx1ZSk7CisgICAgICAg
IFJlZlB0cjxCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU+IHJlY3QgPSBCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGU6OmNyZWF0ZSgpOworCisgICAgICAgIHJlY3QtPnNldFRvcChjb252ZXJ0VG9MZW5n
dGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVlLT50b3AoKSkpOworICAgICAgICByZWN0LT5z
ZXRSaWdodChjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJvb3RTdHlsZSwgcmVjdFZhbHVlLT5yaWdo
dCgpKSk7CisgICAgICAgIHJlY3QtPnNldEJvdHRvbShjb252ZXJ0VG9MZW5ndGgoc3R5bGUsIHJv
b3RTdHlsZSwgcmVjdFZhbHVlLT5ib3R0b20oKSkpOworICAgICAgICByZWN0LT5zZXRMZWZ0KGNv
bnZlcnRUb0xlbmd0aChzdHlsZSwgcm9vdFN0eWxlLCByZWN0VmFsdWUtPmxlZnQoKSkpOworICAg
ICAgICBpZiAocmVjdFZhbHVlLT5yYWRpdXNYKCkpIHsKKyAgICAgICAgICAgIHJlY3QtPnNldENv
cm5lclJhZGl1c1goY29udmVydFRvTGVuZ3RoKHN0eWxlLCByb290U3R5bGUsIHJlY3RWYWx1ZS0+
cmFkaXVzWCgpKSk7CisgICAgICAgICAgICBpZiAocmVjdFZhbHVlLT5yYWRpdXNZKCkpCisgICAg
ICAgICAgICAgICAgcmVjdC0+c2V0Q29ybmVyUmFkaXVzWShjb252ZXJ0VG9MZW5ndGgoc3R5bGUs
IHJvb3RTdHlsZSwgcmVjdFZhbHVlLT5yYWRpdXNZKCkpKTsKKyAgICAgICAgfQorICAgICAgICBi
YXNpY1NoYXBlID0gcmVjdC5yZWxlYXNlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBk
ZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hh
cGVzLmNwcAppbmRleCAxOTc0ZTYwMGQ0MzI4ZDFjYjUwYjMzMjA5MmY0YjdlNTVlOTc4MGNjLi44
OGY0NGNmNzY1Y2QzOTk0NWRkZDNkOWM5YzVhODQ2OWYyZDRiOGNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NCYXNpY1NoYXBlcy5jcHAKQEAgLTI2OCw1ICsyNjgsNzggQEAgYm9vbCBDU1NCYXNpY1No
YXBlUG9seWdvbjo6aGFzVmFyaWFibGVSZWZlcmVuY2UoKSBjb25zdAogfQogI2VuZGlmCiAKK3N0
YXRpYyBTdHJpbmcgYnVpbGRJbnNldFJlY3RhbmdsZVN0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwg
Y29uc3QgU3RyaW5nJiByaWdodCwgY29uc3QgU3RyaW5nJiBib3R0b20sIGNvbnN0IFN0cmluZyYg
bGVmdCwgY29uc3QgU3RyaW5nJiByYWRpdXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1kpCit7Cisg
ICAgY2hhciBvcGVuaW5nW10gPSAiaW5zZXQtcmVjdGFuZ2xlKCI7CisgICAgY2hhciBzZXBhcmF0
b3JbXSA9ICIsICI7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgLy8gQ29tcHV0ZSB0
aGUgcmVxdWlyZWQgY2FwYWNpdHkgaW4gYWR2YW5jZSB0byByZWR1Y2UgYWxsb2NhdGlvbnMuCisg
ICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eSgoc2l6ZW9mKG9wZW5pbmcpIC0gMSkgKyAoNSAqIChz
aXplb2Yoc2VwYXJhdG9yKSAtIDEpKSArIDEgKyB0b3AubGVuZ3RoKCkgKyByaWdodC5sZW5ndGgo
KSArIGJvdHRvbS5sZW5ndGgoKSArIGxlZnQubGVuZ3RoKCkgKyByYWRpdXNYLmxlbmd0aCgpICsg
cmFkaXVzWS5sZW5ndGgoKSk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwob3BlbmluZyk7Cisg
ICAgcmVzdWx0LmFwcGVuZCh0b3ApOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRv
cik7CisgICAgcmVzdWx0LmFwcGVuZChyaWdodCk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
c2VwYXJhdG9yKTsKKyAgICByZXN1bHQuYXBwZW5kKGJvdHRvbSk7CisgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoc2VwYXJhdG9yKTsKKyAgICByZXN1bHQuYXBwZW5kKGxlZnQpOworICAgIGlmICgh
cmFkaXVzWC5pc051bGwoKSkgeworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbChzZXBhcmF0
b3IpOworICAgICAgICByZXN1bHQuYXBwZW5kKHJhZGl1c1gpOworICAgICAgICBpZiAoIXJhZGl1
c1kuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKHNlcGFyYXRv
cik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHJhZGl1c1kpOworICAgICAgICB9CisgICAg
fQorICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNzc1RleHQoKSBjb25z
dAoreworICAgIHJldHVybiBidWlsZEluc2V0UmVjdGFuZ2xlU3RyaW5nKG1fdG9wLT5jc3NUZXh0
KCksCisgICAgICAgIG1fcmlnaHQtPmNzc1RleHQoKSwKKyAgICAgICAgbV9ib3R0b20tPmNzc1Rl
eHQoKSwKKyAgICAgICAgbV9sZWZ0LT5jc3NUZXh0KCksCisgICAgICAgIG1fcmFkaXVzWC5nZXQo
KSA/IG1fcmFkaXVzWC0+Y3NzVGV4dCgpIDogU3RyaW5nKCksCisgICAgICAgIG1fcmFkaXVzWS5n
ZXQoKSA/IG1fcmFkaXVzWS0+Y3NzVGV4dCgpIDogU3RyaW5nKCkpOworfQorCitib29sIENTU0Jh
c2ljU2hhcGVJbnNldFJlY3RhbmdsZTo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBl
KSBjb25zdAoreworICAgIGlmIChzaGFwZS50eXBlKCkgIT0gQ1NTX0JBU0lDX1NIQVBFX0lOU0VU
X1JFQ1RBTkdMRSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgQ1NTQmFzaWNT
aGFwZUluc2V0UmVjdGFuZ2xlJiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IENTU0Jhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZSY+KHNoYXBlKTsKKyAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlUHRy
KG1fdG9wLCBvdGhlci5tX3RvcCkKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmln
aHQsIG90aGVyLm1fcmlnaHQpCisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2JvdHRv
bSwgb3RoZXIubV9ib3R0b20pCisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2xlZnQs
IG90aGVyLm1fbGVmdCkKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmFkaXVzWCwg
b3RoZXIubV9yYWRpdXNYKQorICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9yYWRpdXNZ
LCBvdGhlci5tX3JhZGl1c1kpOworfQorCisjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCitTdHJp
bmcgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpzZXJpYWxpemVSZXNvbHZpbmdWYXJpYWJs
ZXMoY29uc3QgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFN0cmluZz4mIHZhcmlhYmxlcykgY29uc3QK
K3sKKyAgICByZXR1cm4gYnVpbGRJbnNldFJlY3RhbmdsZVN0cmluZyhtX3RvcC0+c2VyaWFsaXpl
UmVzb2x2aW5nVmFyaWFibGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fcmlnaHQtPnNlcmlhbGl6
ZVJlc29sdmluZ1ZhcmlhYmxlcyh2YXJpYWJsZXMpLAorICAgICAgICBtX2JvdHRvbS0+c2VyaWFs
aXplUmVzb2x2aW5nVmFyaWFibGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fbGVmdC0+c2VyaWFs
aXplUmVzb2x2aW5nVmFyaWFibGVzKHZhcmlhYmxlcyksCisgICAgICAgIG1fcmFkaXVzWC5nZXQo
KSA/IG1fcmFkaXVzWC0+c2VyaWFsaXplUmVzb2x2aW5nVmFyaWFibGVzKHZhcmlhYmxlcykgOiBT
dHJpbmcoKSwKKyAgICAgICAgbV9yYWRpdXNZLmdldCgpID8gbV9yYWRpdXNZLT5zZXJpYWxpemVS
ZXNvbHZpbmdWYXJpYWJsZXModmFyaWFibGVzKSA6IFN0cmluZygpKTsKK30KKworYm9vbCBDU1NC
YXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6Omhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV90b3AtPmhhc1ZhcmlhYmxlUmVmZXJlbmNlKCkKKyAgICAgICAgfHwgbV9y
aWdodC0+aGFzVmFyaWFibGVSZWZlcmVuY2UoKQorICAgICAgICB8fCBtX2JvdHRvbS0+aGFzVmFy
aWFibGVSZWZlcmVuY2UoKQorICAgICAgICB8fCBtX2xlZnQtPmhhc1ZhcmlhYmxlUmVmZXJlbmNl
KCkKKyAgICAgICAgfHwgKG1fcmFkaXVzWC5nZXQoKSAmJiBtX3JhZGl1c1gtPmhhc1ZhcmlhYmxl
UmVmZXJlbmNlKCkpCisgICAgICAgIHx8IChtX3JhZGl1c1kuZ2V0KCkgJiYgbV9yYWRpdXNZLT5o
YXNWYXJpYWJsZVJlZmVyZW5jZSgpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKaW5kZXggOGRiMGQyZjMwYzYzNTA4
NzU2ZjM3MjczZjQxOTU3NTJmZGNiMmE2NC4uY2Q1OTI4MzAzZjE4ZWVkYTI5MDQyNTI2YjFjNTA0
ZmMxODZiNDg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKQEAgLTQ0LDcgKzQ0
LDggQEAgcHVibGljOgogICAgICAgICBDU1NfQkFTSUNfU0hBUEVfUkVDVEFOR0xFID0gMSwKICAg
ICAgICAgQ1NTX0JBU0lDX1NIQVBFX0NJUkNMRSA9IDIsCiAgICAgICAgIENTU19CQVNJQ19TSEFQ
RV9FTExJUFNFID0gMywKLSAgICAgICAgQ1NTX0JBU0lDX1NIQVBFX1BPTFlHT04gPSA0CisgICAg
ICAgIENTU19CQVNJQ19TSEFQRV9QT0xZR09OID0gNCwKKyAgICAgICAgQ1NTX0JBU0lDX1NIQVBF
X0lOU0VUX1JFQ1RBTkdMRSA9IDUKICAgICB9OwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBj
b25zdCA9IDA7CkBAIC0xMDEsNiArMTAyLDQ0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBtX3JhZGl1c1k7CiB9OwogCitjbGFzcyBDU1NCYXNpY1NoYXBlSW5zZXRS
ZWN0YW5nbGUgOiBwdWJsaWMgQ1NTQmFzaWNTaGFwZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKTsgfQorCisgICAgQ1NTUHJp
bWl0aXZlVmFsdWUqIHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wLmdldCgpOyB9CisgICAgQ1NT
UHJpbWl0aXZlVmFsdWUqIHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodC5nZXQoKTsgfQor
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbS5n
ZXQoKTsgfQorICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9s
ZWZ0LmdldCgpOyB9CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJhZGl1c1goKSBjb25zdCB7IHJl
dHVybiBtX3JhZGl1c1guZ2V0KCk7IH0KKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmFkaXVzWSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWS5nZXQoKTsgfQorCisgICAgdm9pZCBzZXRUb3AoUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gdG9wKSB7IG1fdG9wID0gdG9wOyB9CisgICAgdm9p
ZCBzZXRSaWdodChQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByaWdodCkgeyBtX3JpZ2h0
ID0gcmlnaHQ7IH0KKyAgICB2b2lkIHNldEJvdHRvbShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBib3R0b20pIHsgbV9ib3R0b20gPSBib3R0b207IH0KKyAgICB2b2lkIHNldExlZnQoUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbGVmdCkgeyBtX2xlZnQgPSBsZWZ0OyB9CisgICAg
dm9pZCBzZXRSYWRpdXNYKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1c1gpIHsg
bV9yYWRpdXNYID0gcmFkaXVzWDsgfQorICAgIHZvaWQgc2V0UmFkaXVzWShQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKworICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQ1NTX0JBU0lDX1NIQVBFX0lOU0VU
X1JFQ1RBTkdMRTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdDsKKworI2lmIEVO
QUJMRShDU1NfVkFSSUFCTEVTKQorICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZVJlc29sdmlu
Z1ZhcmlhYmxlcyhjb25zdCBIYXNoTWFwPEF0b21pY1N0cmluZywgU3RyaW5nPiYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBoYXNWYXJpYWJsZVJlZmVyZW5jZSgpIGNvbnN0OworI2VuZGlmCisK
K3ByaXZhdGU6CisgICAgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKCkgeyB9CisKKyAgICBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcmlnaHQ7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBtX3RvcDsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fYm90dG9tOwor
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9sZWZ0OworICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbV9yYWRpdXNYOworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9y
YWRpdXNZOworfTsKKwogY2xhc3MgQ1NTQmFzaWNTaGFwZUNpcmNsZSA6IHB1YmxpYyBDU1NCYXNp
Y1NoYXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlQ2ly
Y2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQmFzaWNTaGFwZUNpcmNsZSk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggYmQ1ZjFjZGQ2ODM1MzFjOTIwNDYwYTQ1
NmRmZDI0NTE1MDBkOGJhZS4uNjU5OGFiNjYxMzJhZTA1NGZhZGNkMTNmZjQyZWJiYzBhOGJjMTVk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTUxMzcsNiArNTEzNyw2MCBAQCBQYXNz
UmVmUHRyPENTU0Jhc2ljU2hhcGU+IENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlUmVjdGFuZ2xl
KENTU1BhcnNlclZhbHVlTGlzdAogICAgIHJldHVybiBzaGFwZTsKIH0KIAorUGFzc1JlZlB0cjxD
U1NCYXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKENT
U1BhcnNlclZhbHVlTGlzdCogYXJncykKK3sKKyAgICBBU1NFUlQoYXJncyk7CisKKyAgICAvLyBp
bnNldC1yZWN0YW5nbGUodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBbW3J4XSwgcnldKQorICAg
IGlmIChhcmdzLT5zaXplKCkgIT0gNyAmJiBhcmdzLT5zaXplKCkgIT0gOSAmJiBhcmdzLT5zaXpl
KCkgIT0gMTEpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZT4gc2hhcGUgPSBDU1NCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNyZWF0
ZSgpOworCisgICAgdW5zaWduZWQgYXJndW1lbnROdW1iZXIgPSAwOworICAgIENTU1BhcnNlclZh
bHVlKiBhcmd1bWVudCA9IGFyZ3MtPmN1cnJlbnQoKTsKKyAgICB3aGlsZSAoYXJndW1lbnQpIHsK
KyAgICAgICAgVW5pdHMgdW5pdEZsYWdzID0gRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZzsK
KyAgICAgICAgaWYgKCF2YWxpZFVuaXQoYXJndW1lbnQsIHVuaXRGbGFncykpCisgICAgICAgICAg
ICByZXR1cm4gMDsKKworICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGxlbmd0aCA9
IGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZShhcmd1bWVudCk7CisgICAgICAgIEFTU0VSVChh
cmd1bWVudE51bWJlciA8IDYpOworICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50TnVtYmVyKSB7Cisg
ICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHNoYXBlLT5zZXRUb3AobGVuZ3RoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBzaGFwZS0+c2V0Umln
aHQobGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBzaGFwZS0+c2V0Qm90dG9tKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzOgorICAgICAgICAgICAgc2hhcGUtPnNldExlZnQobGVuZ3RoKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBzaGFwZS0+c2V0UmFkaXVz
WChsZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAg
ICAgIHNoYXBlLT5zZXRSYWRpdXNZKGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBhcmd1bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgaWYgKGFyZ3Vt
ZW50KSB7CisgICAgICAgICAgICBpZiAoIWlzQ29tbWEoYXJndW1lbnQpKQorICAgICAgICAgICAg
ICAgIHJldHVybiAwOworCisgICAgICAgICAgICBhcmd1bWVudCA9IGFyZ3MtPm5leHQoKTsKKyAg
ICAgICAgfQorICAgICAgICBhcmd1bWVudE51bWJlcisrOworICAgIH0KKworICAgIGlmIChhcmd1
bWVudE51bWJlciA8IDQpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzaGFwZTsKK30K
KwogUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUNp
cmNsZShDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MpCiB7CiAgICAgQVNTRVJUKGFyZ3MpOwpAQCAt
NTMwNyw2ICs1MzYxLDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZShDU1NQcm9w
ZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIHNoYXBlID0gcGFyc2VCYXNp
Y1NoYXBlRWxsaXBzZShhcmdzKTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1
ZS0+ZnVuY3Rpb24tPm5hbWUsICJwb2x5Z29uKCIpKQogICAgICAgICBzaGFwZSA9IHBhcnNlQmFz
aWNTaGFwZVBvbHlnb24oYXJncyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFs
dWUtPmZ1bmN0aW9uLT5uYW1lLCAiaW5zZXQtcmVjdGFuZ2xlKCIpKQorICAgICAgICBzaGFwZSA9
IHBhcnNlQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKGFyZ3MpOwogCiAgICAgaWYgKCFzaGFwZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDMwOWUwZGY2
MjBiMmMzZmI2NzY0ZGMwNTlmMTI1NTUyMzM1MTEwZmMuLjYxZWJlODRmNGQ1ZWM2NjlkZDliYTUw
OWMxYWFkMzYyNzA0NzBmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTE3Nyw2ICsxNzcs
NyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hh
cGVDaXJjbGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNzUmVmUHRyPENTU0Jh
c2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdz
KTsKICAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24o
Q1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKKyAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+
IHBhcnNlQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7
CiAKICAgICBib29sIHBhcnNlRm9udChib29sIGltcG9ydGFudCk7CiAgICAgUGFzc1JlZlB0cjxD
U1NWYWx1ZUxpc3Q+IHBhcnNlRm9udEZhbWlseSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCBlNzIzZTRmMzQ0
ZTBlZjNmNzZlMTJmNTU5Y2ZhMGExMDk0ZWNiYWNlLi5iNWFmNjVjZWFiZmQyOWM1NWRiNmFkZjcz
MjY4M2EzZDBiNTAzNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApAQCAtNDYsNyArNDYsMTEgQEAgTGluZVNlZ21l
bnRSYW5nZTo6TGluZVNlZ21lbnRSYW5nZShjb25zdCBJbmxpbmVJdGVyYXRvciYgc3RhcnQsIGNv
bnN0IElubGluZUl0ZXIKIGJvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRG
b3IoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKQogewogICAgIEV4Y2x1c2lvblNoYXBlVmFs
dWUqIHNoYXBlVmFsdWUgPSByZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgp
OwotICAgIHJldHVybiAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVz
aW9uU2hhcGVWYWx1ZTo6U2hhcGUpID8gc2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7CisgICAgaWYg
KCFzaGFwZVZhbHVlIHx8IHNoYXBlVmFsdWUtPnR5cGUoKSAhPSBFeGNsdXNpb25TaGFwZVZhbHVl
OjpTaGFwZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQmFzaWNTaGFwZSogc2hhcGUg
PSBzaGFwZVZhbHVlLT5zaGFwZSgpOworICAgIHJldHVybiBzaGFwZSAmJiBzaGFwZS0+dHlwZSgp
ICE9IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX0lOU0VUX1JFQ1RBTkdMRTsKIH0KIAogYm9vbCBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm86OmFkanVzdExvZ2ljYWxMaW5lVG9wKGZsb2F0IG1pblNl
Z21lbnRXaWR0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCAyYzdmOGJkZjVhOTQyNWQ2NTVjZGVjNDE4MGIy
NmViZWEyMjA1MjdlLi40ZDZlM2E3ZTExOWE4ZWViODE2YTY1MzdlNjFjYjBjYjMwMDM2MTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0
c2lkZUluZm8uY3BwCkBAIC0zOSw3ICszOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBib29s
IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCb3gq
IGJveCkKIHsKICAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiB2YWx1ZSA9IGJveC0+c3R5bGUoKS0+
c2hhcGVPdXRzaWRlKCk7Ci0gICAgcmV0dXJuIChib3gtPmlzRmxvYXRpbmdXaXRoU2hhcGVPdXRz
aWRlKCkgJiYgdmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSkgPyB2
YWx1ZS0+c2hhcGUoKSA6IDA7CisgICAgaWYgKCFib3gtPmlzRmxvYXRpbmdXaXRoU2hhcGVPdXRz
aWRlKCkgfHwgdmFsdWUtPnR5cGUoKSAhPSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQmFzaWNTaGFwZSogc2hhcGUgPSB2YWx1ZS0+c2hh
cGUoKTsKKyAgICByZXR1cm4gc2hhcGUgJiYgc2hhcGUtPnR5cGUoKSAhPSBCYXNpY1NoYXBlOjpC
QVNJQ19TSEFQRV9JTlNFVF9SRUNUQU5HTEU7CiB9CiAKIGJvb2wgRXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91
dFVuaXQgbGluZUhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9CYXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFz
aWNTaGFwZXMuY3BwCmluZGV4IGIyMTM1OGZkYzhmYjRmN2VmNTUwMDdhZGFlMTk2OWY4MGNkZmE4
ZDguLjIzNjViY2VmZTk3MGY3ZmVhZWE3NWNkNzY0Y2ExMTM1ODUxOTU4ZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcApAQCAtMTY5LDQgKzE2
OSwzMyBAQCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IEJhc2ljU2hhcGVQb2x5Z29uOjpibGVuZChj
b25zdCBCYXNpY1NoYXBlKiBvdGhlciwgZG91YmxlCiAKICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2UoKTsKIH0KKwordm9pZCBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OnBhdGgoUGF0aCYgcGF0
aCwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkKK3sKKyAgICBBU1NFUlQocGF0aC5pc0Vt
cHR5KCkpOworICAgIGZsb2F0IGxlZnQgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fbGVmdCwgYm91
bmRpbmdCb3gud2lkdGgoKSk7CisgICAgZmxvYXQgdG9wID0gZmxvYXRWYWx1ZUZvckxlbmd0aCht
X3RvcCwgYm91bmRpbmdCb3guaGVpZ2h0KCkpOworICAgIHBhdGguYWRkUm91bmRlZFJlY3QoRmxv
YXRSZWN0KGxlZnQgKyBib3VuZGluZ0JveC54KCksIHRvcCArIGJvdW5kaW5nQm94LnkoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1heDxmbG9hdD4oYm91bmRpbmdC
b3gud2lkdGgoKSAtIGxlZnQgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fcmlnaHQsIGJvdW5kaW5n
Qm94LndpZHRoKCkpLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6
Om1heDxmbG9hdD4oYm91bmRpbmdCb3guaGVpZ2h0KCkgLSB0b3AgLSBmbG9hdFZhbHVlRm9yTGVu
Z3RoKG1fYm90dG9tLCBib3VuZGluZ0JveC5oZWlnaHQoKSksIDApKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIEZsb2F0U2l6ZShtX2Nvcm5lclJhZGl1c1guaXNVbmRlZmluZWQoKSA/IDAgOiBm
bG9hdFZhbHVlRm9yTGVuZ3RoKG1fY29ybmVyUmFkaXVzWCwgYm91bmRpbmdCb3gud2lkdGgoKSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JuZXJSYWRpdXNZLmlzVW5k
ZWZpbmVkKCkgPyAwIDogZmxvYXRWYWx1ZUZvckxlbmd0aChtX2Nvcm5lclJhZGl1c1ksIGJvdW5k
aW5nQm94LmhlaWdodCgpKSkpOworfQorCitQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IEJhc2ljU2hh
cGVJbnNldFJlY3RhbmdsZTo6YmxlbmQoY29uc3QgQmFzaWNTaGFwZSogb3RoZXIsIGRvdWJsZSBw
cm9ncmVzcykgY29uc3QKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IG90aGVyLT50eXBlKCkpOwor
CisgICAgY29uc3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKiBvID0gc3RhdGljX2Nhc3Q8Y29u
c3QgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKj4ob3RoZXIpOworICAgIFJlZlB0cjxCYXNpY1No
YXBlSW5zZXRSZWN0YW5nbGU+IHJlc3VsdCA9ICBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGU6OmNy
ZWF0ZSgpOworICAgIHJlc3VsdC0+c2V0VG9wKG1fdG9wLmJsZW5kKG8tPnRvcCgpLCBwcm9ncmVz
cykpOworICAgIHJlc3VsdC0+c2V0UmlnaHQobV9yaWdodC5ibGVuZChvLT5yaWdodCgpLCBwcm9n
cmVzcykpOworICAgIHJlc3VsdC0+c2V0Qm90dG9tKG1fYm90dG9tLmJsZW5kKG8tPmJvdHRvbSgp
LCBwcm9ncmVzcykpOworICAgIHJlc3VsdC0+c2V0TGVmdChtX2xlZnQuYmxlbmQoby0+bGVmdCgp
LCBwcm9ncmVzcykpOworICAgIGlmICghbV9jb3JuZXJSYWRpdXNYLmlzVW5kZWZpbmVkKCkgJiYg
IW8tPmNvcm5lclJhZGl1c1goKS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXN1bHQtPnNldENv
cm5lclJhZGl1c1gobV9jb3JuZXJSYWRpdXNYLmJsZW5kKG8tPmNvcm5lclJhZGl1c1goKSwgcHJv
Z3Jlc3MpKTsKKyAgICBpZiAoIW1fY29ybmVyUmFkaXVzWS5pc1VuZGVmaW5lZCgpICYmICFvLT5j
b3JuZXJSYWRpdXNZKCkuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmVzdWx0LT5zZXRDb3JuZXJS
YWRpdXNZKG1fY29ybmVyUmFkaXVzWS5ibGVuZChvLT5jb3JuZXJSYWRpdXNZKCksIHByb2dyZXNz
KSk7CisgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7Cit9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCmluZGV4IDE3MWQ5YzFmNmNjOWI0MGMwODg5
YzRlN2EwNTY0ZmNhYjc5M2FkMGIuLjRkYzZkZjJiNzJmODQ3NjlkNTQ1NTk0OWMyZDAwNjk5NThl
MjEyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1No
YXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5o
CkBAIC00OSw3ICs0OSw4IEBAIHB1YmxpYzoKICAgICAgICAgQkFTSUNfU0hBUEVfUkVDVEFOR0xF
ID0gMSwKICAgICAgICAgQkFTSUNfU0hBUEVfQ0lSQ0xFID0gMiwKICAgICAgICAgQkFTSUNfU0hB
UEVfRUxMSVBTRSA9IDMsCi0gICAgICAgIEJBU0lDX1NIQVBFX1BPTFlHT04gPSA0CisgICAgICAg
IEJBU0lDX1NIQVBFX1BPTFlHT04gPSA0LAorICAgICAgICBCQVNJQ19TSEFQRV9JTlNFVF9SRUNU
QU5HTEUgPSA1CiAgICAgfTsKIAogICAgIGJvb2wgY2FuQmxlbmQoY29uc3QgQmFzaWNTaGFwZSop
IGNvbnN0OwpAQCAtMTc1LDUgKzE3Niw0MSBAQCBwcml2YXRlOgogICAgIFdpbmRSdWxlIG1fd2lu
ZFJ1bGU7CiAgICAgVmVjdG9yPExlbmd0aD4gbV92YWx1ZXM7CiB9OworCitjbGFzcyBCYXNpY1No
YXBlSW5zZXRSZWN0YW5nbGUgOiBwdWJsaWMgQmFzaWNTaGFwZSB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKTsgfQorCisgICAgTGVuZ3Ro
IHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9CisgICAgTGVuZ3RoIHJpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9yaWdodDsgfQorICAgIExlbmd0aCBib3R0b20oKSBjb25zdCB7IHJldHVybiBt
X2JvdHRvbTsgfQorICAgIExlbmd0aCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9Cisg
ICAgTGVuZ3RoIGNvcm5lclJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX2Nvcm5lclJhZGl1c1g7
IH0KKyAgICBMZW5ndGggY29ybmVyUmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fY29ybmVyUmFk
aXVzWTsgfQorCisgICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHRvcCkgeyBtX3RvcCA9IHRvcDsgfQor
ICAgIHZvaWQgc2V0UmlnaHQoTGVuZ3RoIHJpZ2h0KSB7IG1fcmlnaHQgPSByaWdodDsgfQorICAg
IHZvaWQgc2V0Qm90dG9tKExlbmd0aCBib3R0b20pIHsgbV9ib3R0b20gPSBib3R0b207IH0KKyAg
ICB2b2lkIHNldExlZnQoTGVuZ3RoIGxlZnQpIHsgbV9sZWZ0ID0gbGVmdDsgfQorICAgIHZvaWQg
c2V0Q29ybmVyUmFkaXVzWChMZW5ndGggcmFkaXVzWCkgeyBtX2Nvcm5lclJhZGl1c1ggPSByYWRp
dXNYOyB9CisgICAgdm9pZCBzZXRDb3JuZXJSYWRpdXNZKExlbmd0aCByYWRpdXNZKSB7IG1fY29y
bmVyUmFkaXVzWSA9IHJhZGl1c1k7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBj
b25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNT
aGFwZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3QgT1ZFUlJJREU7CisK
KyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEJBU0lDX1NIQVBFX0lOU0VU
X1JFQ1RBTkdMRTsgfQorcHJpdmF0ZToKKyAgICBCYXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUoKQor
ICAgICAgICA6IG1fY29ybmVyUmFkaXVzWChVbmRlZmluZWQpCisgICAgICAgICwgbV9jb3JuZXJS
YWRpdXNZKFVuZGVmaW5lZCkKKyAgICB7IH0KKworICAgIExlbmd0aCBtX3JpZ2h0OworICAgIExl
bmd0aCBtX3RvcDsKKyAgICBMZW5ndGggbV9ib3R0b207CisgICAgTGVuZ3RoIG1fbGVmdDsKKyAg
ICBMZW5ndGggbV9jb3JuZXJSYWRpdXNYOworICAgIExlbmd0aCBtX2Nvcm5lclJhZGl1c1k7Cit9
OwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODE0YTQyNWU5ZDk1N2RiNzlhOTM3NzhiYTNiMjEwMDQ1YTg4
NjFlOC4uMzE5MjQ4MjJjZGEwZjI5ZWYxZjllMzgyMWZlNDUzZjgwZWMxZWNlMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDEzLTA1LTI5ICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUu
Y29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBTdXBwb3J0IHBhcnNpbmcgaW5zZXQtcmVjdGFu
Z2xlIHNoYXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE2NjM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAg
IFVwZGF0ZWQgdG8gdGVzdCBmb3IgaW5zZXQtcmVjdGFuZ2xlIGNhc2VzLgorCisgICAgICAgICog
ZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1pbnNpZGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtbGVuZ3Ro
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0
LXRlc3RzL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy5qczoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lv
bnMvcGFyc2luZy9zY3JpcHQtdGVzdHMvcGFyc2luZy10ZXN0LXV0aWxzLmpzOgorCiAyMDEzLTA1
LTI5ICBHYWJvciBBYnJhaGFtICA8YWJyaG1AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtR
dF1bV0syXSBVbnJldmlld2VkIGdhcmRlbmluZy4gVW5za2lwcGluZyBwYXNzaW5nIHRlc3QuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNo
YXBlLWluc2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFy
c2luZy9wYXJzaW5nLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQKaW5kZXggMDBkMTcwYzAwYThh
ZmExMzIzZGM3MTVjZTBjMDRjNGJiYWJlNDgwYy4uM2RlMjYwMDdlMDNjYzljYzViMTE0OTUxOTFi
ZjU0MjBiMDFmYjI2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Bh
cnNpbmcvcGFyc2luZy1zaGFwZS1pbnNpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtaW5zaWRlLWV4cGVjdGVkLnR4
dApAQCAtMTEsNiArMTEsMTIgQEAgUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4KSIKIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCwgNXB4KSIpIGlzICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCwgNXB4KSIKIFBBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiKSBpcyAicmVjdGFuZ2xl
KDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiCiBQQVNTIGdldENvbXB1dGVkU3R5
bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgsIDVweCwgMTBweCkiKSBpcyAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgsIDVweCwgMTBweCkiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwg
Imluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlzICJpbnNldC1yZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1
ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgpIikgaXMgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIK
K1BBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xl
KDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgsIDVweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVw
eCkiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIikgaXMgImluc2V0LXJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4
LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIikgaXMgImluc2V0LXJlY3RhbmdsZSgxMHB4
LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgsIDEwcHgpIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoMTBweCwgMjBweCwgMzBweCkiKSBpcyAiY2lyY2xlKDEw
cHgsIDIwcHgsIDMwcHgpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hh
cGUtaW5zaWRlIiwgImNpcmNsZSgxMHB4LCAyMHB4LCAzMHB4KSIpIGlzICJjaXJjbGUoMTBweCwg
MjBweCwgMzBweCkiCiBQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImVs
bGlwc2UoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAiZWxsaXBzZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4KSIKQEAgLTQxLDYgKzQ3LDE4IEBAIFBBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1z
aGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDEwcHggMjBweCAzMHB4IDQwcHgpIikgaXMgIiIKIFBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5n
bGUoMTBweCAyMHB4IDMwcHggNDBweCkiKSBpcyAib3V0c2lkZS1zaGFwZSIKIFBBU1MgZ2V0Q1NT
VGV4dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgs
IDQwcHgsIDUwcHgsIDYwcHgsIDcwcHgpIikgaXMgIiIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZh
bHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCwgNTBweCwgNjBweCwgNzBweCkiKSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgZ2V0Q1NT
VGV4dCgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKCkiKSBpcyAiIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0
LXJlY3RhbmdsZSgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldENTU1RleHQoIi13ZWJr
aXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4KSIpIGlzICIiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFu
Z2xlKDEwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQt
c2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAxMHB4KSIpIGlzICIiCitQQVNT
IGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVj
dGFuZ2xlKDEwcHgsIDEwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldENTU1RleHQo
Ii13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4
KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNp
ZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgpIikgaXMgIm91dHNpZGUtc2hh
cGUiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3Rh
bmdsZSgxMHB4IDIwcHggMzBweCA0MHB4KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVW
YWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHggMjBweCAz
MHB4IDQwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQt
c2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1
MHB4LCA2MHB4LCA3MHB4KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgsIDUwcHgsIDYwcHgsIDcwcHgpIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNTIGdldENTU1Rl
eHQoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgpIikgaXMgIiIKIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoKSIpIGlzICJv
dXRzaWRlLXNoYXBlIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJj
aXJjbGUoMTBweCkiKSBpcyAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1sZW5ndGhzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtbGVuZ3Rocy1leHBlY3Rl
ZC50eHQKaW5kZXggOTFlNGFmOGE5ZDI0MTI1NjA5NmM1ODIxMzI5ODIwZDY1OTUwNzJmMy4uNWJl
YTdkMDdjYjEwYWJhYzhkNGNkYjIxMDgyY2I5MmJkMTM1OTI0YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1zaGFwZS1sZW5ndGhzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5n
LXNoYXBlLWxlbmd0aHMtZXhwZWN0ZWQudHh0CkBAIC04LDYgKzgsNyBAQCBQQVNTIGdldFN0eWxl
VmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgtMXB4LCArMXB4LCAxcHgpIikg
aXMgImNpcmNsZQogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJj
aXJjbGUoLTEuNXB4LCArMS41cHgsIDEuNXB4KSIpIGlzICJjaXJjbGUoLTEuNXB4LCAxLjVweCwg
MS41cHgpIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJj
bGUoLS41cHgsICsuNXB4LCAuNXB4KSIpIGlzICJjaXJjbGUoLTAuNXB4LCAwLjVweCwgMC41cHgp
IgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUo
MWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAicmVjdGFuZ2xlKDFjbSwgMW1tLCAx
aW4sIDFweCwgMXB0LCAxcGMpIgorUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWlu
c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBp
cyAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIgogUEFTUyBn
ZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLTFlbSwgKzFlbSwg
MWVtKSIpIGlzICJjaXJjbGUoLTFlbSwgMWVtLCAxZW0pIgogUEFTUyBnZXRTdHlsZVZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLTEuNWVtLCArMS41ZW0sIDEuNWVtKSIpIGlz
ICJjaXJjbGUoLTEuNWVtLCAxLjVlbSwgMS41ZW0pIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Vi
a2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLS41ZW0sICsuNWVtLCAuNWVtKSIpIGlzICJjaXJj
bGUoLTAuNWVtLCAwLjVlbSwgMC41ZW0pIgpAQCAtMjMsMTAgKzI0LDEyIEBAIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoLjV2aCwgMXZo
LCAxLjV2aCkiKSBpCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1p
bnNpZGUiLCAiY2lyY2xlKC41dm1pbiwgMXZtaW4sIDEuNXZtaW4pIikgaXMgImNpcmNsZSgwLjV2
bWluLCAxdm1pbiwgMS41dm1pbikiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUt
aW5zaWRlIiwgImNpcmNsZSgxMDAlLCAxMDAlLCAxMDAlKSIpIGlzICJjaXJjbGUoMTAwJSwgMTAw
JSwgMTAwJSkiCiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJl
Y3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIpIGlzICJyZWN0YW5nbGUoNDUl
LCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiCitQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQt
c2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwg
MTAlKSIpIGlzICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSki
CiBQQVNTIGdldFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImVsbGlwc2UoMTAw
JSwgMTAwJSwgMTAwJSwgMTAwJSkiKSBpcyAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAl
KSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicG9seWdvbigx
MCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIpIGlzICJwb2x5Z29uKG5vbnplcm8sIDEwJSAyMCUs
IDMwJSA0MCUsIDQwJSA1MCUpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQt
c2hhcGUtaW5zaWRlIiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIikgaXMgImNpcmNsZSg1MCUs
IDEwMCUsIDE1MCUpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUt
aW5zaWRlIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIpIGlzICJy
ZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDQ1JSwg
NDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIikgaXMgImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwg
OTAlLCA2MCUsIDI1JSwgMTAlKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImVs
bGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1
ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUg
NTAlKSIpIGlzICJwb2x5Z29uKG5vbnplcm8sIDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIgog
UEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJjaXJjbGUoMXB4LCAx
cHgsIDEpIikgaXMgbnVsbApAQCAtNDMsNiArNDYsMTAgQEAgUEFTUyBnZXRTdHlsZVZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0
LAogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJl
Y3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIC0xcHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFw
ZSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAicmVjdGFuZ2xl
KDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpIGlzIG51bGwKIFBBU1MgZ2V0Q29tcHV0
ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0s
IDFpbiwgMXB4LCAxcHQsIC0xcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldFN0eWxl
VmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwg
MWluLCAxcHgsIC0xcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1
ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4s
IDFweCwgLTFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwg
MXB4LCAxcHQsIC0xcGMpIikgaXMgbnVsbAorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13
ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgs
IDFwdCwgLTFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKIFBBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdl
YmtpdC1zaGFwZS1pbnNpZGUiLCAiZWxsaXBzZSgxZW0sIDFlbSwgLTFlbSwgMWVtKSIpIGlzIG51
bGwKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJl
bGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAxZW0pIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNTIGdl
dFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImVsbGlwc2UoMWVtLCAxZW0sIDFl
bSwgLTFlbSkiKSBpcyBudWxsCkBAIC01MSw2ICs1OCwxNCBAQCBQQVNTIGdldFN0eWxlVmFsdWUo
Ii13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgLTFpbiwgMXB4LCAx
cHQsCiBQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAi
cmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNo
YXBlIgogUEFTUyBnZXRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5n
bGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAogUEFTUyBnZXRDb21w
dXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgInJlY3RhbmdsZSgxY20sIDFt
bSwgMWluLCAtMXB4LCAxcHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgZ2V0U3R5
bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKC0xY20sIDFt
bSwgMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZh
bHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoLTFjbSwgMW1tLCAx
aW4sIDFweCwgMXB0LCAxcGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCitQQVNTIGdldFN0eWxlVmFs
dWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIC0xbW0sIDFp
biwgMXB4LCAxcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgi
LXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgLTFtbSwgMWluLCAx
cHgsIDFwdCwgMXBjKSIpIGlzICJvdXRzaWRlLXNoYXBlIgorUEFTUyBnZXRTdHlsZVZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFw
eCwgMXB0LCAxcGMpIikgaXMgbnVsbAorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJr
aXQtc2hhcGUtaW5zaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxY20sIDFtbSwgLTFpbiwgMXB4LCAx
cHQsIDFwYykiKSBpcyAib3V0c2lkZS1zaGFwZSIKK1BBU1MgZ2V0U3R5bGVWYWx1ZSgiLXdlYmtp
dC1zaGFwZS1pbnNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIC0xcHgsIDFw
dCwgMXBjKSIpIGlzIG51bGwKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNo
YXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAx
cGMpIikgaXMgIm91dHNpZGUtc2hhcGUiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9wYXJzaW5nLXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQu
dHh0CmluZGV4IDAzMGQzMjEzMzRiMjdkNWRkODM4NjEzNzZkMDlkMGE5OGY4ZTU3NmIuLjllNzlh
ZDRiN2MyZWIzNGY0MjY3ZTljZTIzYjk0NDZhOGRkYTllZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3BhcnNpbmctc2hhcGUtb3V0c2lkZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvcGFyc2luZy1z
aGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsMTIgQEAgUEFTUyBnZXRDU1NU
ZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgs
IDQwcHgsIDVweCkKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLW91
dHNpZGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiKSBpcyAicmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiCiBQQVNTIGdldENTU1RleHQoIi13
ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwg
NXB4LCAxMHB4KSIpIGlzICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNXB4LCAx
MHB4KSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLW91dHNpZGUi
LCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiKSBpcyAicmVj
dGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBweCkiCitQQVNTIGdldENTU1Rl
eHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMTBweCwgMjBweCwg
MzBweCwgNDBweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJp
bnNldC1yZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAiaW5zZXQtcmVjdGFu
Z2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgorUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNo
YXBlLW91dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVw
eCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCkiCitQ
QVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgImluc2V0
LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgpIikgaXMgImluc2V0LXJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgpIgorUEFTUyBnZXRDU1NUZXh0KCItd2Vi
a2l0LXNoYXBlLW91dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgsIDVweCwgMTBweCkiKSBpcyAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQw
cHgsIDVweCwgMTBweCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFw
ZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgs
IDEwcHgpIikgaXMgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgs
IDEwcHgpIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiY2lyY2xl
KDEwcHgsIDIwcHgsIDMwcHgpIikgaXMgImNpcmNsZSgxMHB4LCAyMHB4LCAzMHB4KSIKIFBBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiY2lyY2xlKDEw
cHgsIDIwcHgsIDMwcHgpIikgaXMgImNpcmNsZSgxMHB4LCAyMHB4LCAzMHB4KSIKIFBBU1MgZ2V0
Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgImVsbGlwc2UoMTBweCwgMjBweCwgMzBw
eCwgNDBweCkiKSBpcyAiZWxsaXBzZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKQEAgLTM5LDYg
KzQ1LDE4IEBAIFBBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgInJlY3Rh
bmdsZSgxMHB4IDIwcHggMzBweCA0MHB4KSIpIGlzICIiCiBQQVNTIGdldENvbXB1dGVkU3R5bGVW
YWx1ZSgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgInJlY3RhbmdsZSgxMHB4IDIwcHggMzBweCA0
MHB4KSIpIGlzICJhdXRvIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUi
LCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDUwcHgsIDYwcHgsIDcwcHgpIikg
aXMgIiIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLW91dHNpZGUi
LCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDUwcHgsIDYwcHgsIDcwcHgpIikg
aXMgImF1dG8iCitQQVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNl
dC1yZWN0YW5nbGUoKSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtp
dC1zaGFwZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgpIikgaXMgImF1dG8iCitQQVNTIGdl
dENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMTBweCki
KSBpcyAiIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13ZWJraXQtc2hhcGUtb3V0c2lk
ZSIsICJpbnNldC1yZWN0YW5nbGUoMTBweCkiKSBpcyAiYXV0byIKK1BBU1MgZ2V0Q1NTVGV4dCgi
LXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAxMHB4KSIpIGlz
ICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1vdXRzaWRlIiwg
Imluc2V0LXJlY3RhbmdsZSgxMHB4LCAxMHB4KSIpIGlzICJhdXRvIgorUEFTUyBnZXRDU1NUZXh0
KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgpIikgaXMgIiIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItd2Via2l0LXNoYXBlLW91
dHNpZGUiLCAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgpIikgaXMgImF1dG8iCitQ
QVNTIGdldENTU1RleHQoIi13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUo
MTBweCAyMHB4IDMwcHggNDBweCkiKSBpcyAiIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUo
Ii13ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMTBweCAyMHB4IDMwcHgg
NDBweCkiKSBpcyAiYXV0byIKK1BBU1MgZ2V0Q1NTVGV4dCgiLXdlYmtpdC1zaGFwZS1vdXRzaWRl
IiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1MHB4LCA2MHB4LCA3
MHB4KSIpIGlzICIiCitQQVNTIGdldENvbXB1dGVkU3R5bGVWYWx1ZSgiLXdlYmtpdC1zaGFwZS1v
dXRzaWRlIiwgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1MHB4LCA2
MHB4LCA3MHB4KSIpIGlzICJhdXRvIgogUEFTUyBnZXRDU1NUZXh0KCItd2Via2l0LXNoYXBlLW91
dHNpZGUiLCAiY2lyY2xlKCkiKSBpcyAiIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlVmFsdWUoIi13
ZWJraXQtc2hhcGUtb3V0c2lkZSIsICJjaXJjbGUoKSIpIGlzICJhdXRvIgogUEFTUyBnZXRDU1NU
ZXh0KCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiY2lyY2xlKDEwcHgpIikgaXMgIiIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9w
YXJzaW5nLXNoYXBlLWxlbmd0aHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFy
c2luZy9zY3JpcHQtdGVzdHMvcGFyc2luZy1zaGFwZS1sZW5ndGhzLmpzCmluZGV4IDBlYzM0Zjk3
MTE3ZTcwOWQ0MDFmNGY2ODA0YTc4ODg0NWJkM2ZmNWEuLjdjZTY0ZTM4MzZmODM5MTBlMmExNDc0
ODY5YTYzMzMyYTEzNGVkYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9wYXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXNoYXBlLWxlbmd0aHMuanMKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0LXRlc3RzL3BhcnNpbmctc2hh
cGUtbGVuZ3Rocy5qcwpAQCAtMzMsNiArMzMsNyBAQCB0ZXN0U3R5bGVWYWx1ZSgiY2lyY2xlKC0x
LjVweCwgKzEuNXB4LCAxLjVweCkiLCAiY2lyY2xlKC0xLjVweCwgMS41cHgsIDEuNXB4KSIpOwog
dGVzdFN0eWxlVmFsdWUoImNpcmNsZSgtLjVweCwgKy41cHgsIC41cHgpIiwgImNpcmNsZSgtMC41
cHgsIDAuNXB4LCAwLjVweCkiKTsKIAogdGVzdFN0eWxlVmFsdWUoInJlY3RhbmdsZSgxY20sIDFt
bSwgMWluLCAxcHgsIDFwdCwgMXBjKSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAx
cHQsIDFwYykiKTsKK3Rlc3RTdHlsZVZhbHVlKCJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgMXB4LCAxcHQsIDFwYykiLCAiaW5zZXQtcmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwg
MXB0LCAxcGMpIik7CiAKIC8vIGZvbnQtcmVsYXRpdmUgbGVuZ3RocyAtIG51bWJlciBzZXJpYWxp
emF0aW9uLCB1bml0cywgcmVzb2x1dGlvbgogdGVzdFN0eWxlVmFsdWUoImNpcmNsZSgtMWVtLCAr
MWVtLCAxZW0pIiwgImNpcmNsZSgtMWVtLCAxZW0sIDFlbSkiKTsKQEAgLTU4LDExICs1OSwxMyBA
QCB0ZXN0Q29tcHV0ZWRTdHlsZVZhbHVlKCJjaXJjbGUoLjV2bWluLCAxdm1pbiwgMS41dm1pbiki
LCAiY2lyY2xlKDAuNXZtaW4sIDF2bWluLAogLy8gcGVyY2VudGFnZSBsZW5ndGhzIC0gdW5pdHMK
IHRlc3RTdHlsZVZhbHVlKCJjaXJjbGUoMTAwJSwgMTAwJSwgMTAwJSkiLCAiY2lyY2xlKDEwMCUs
IDEwMCUsIDEwMCUpIik7CiB0ZXN0U3R5bGVWYWx1ZSgicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUs
IDYwJSwgMjUlLCAxMCUpIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAl
KSIpOwordGVzdFN0eWxlVmFsdWUoImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUs
IDI1JSwgMTAlKSIsICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEw
JSkiKTsKIHRlc3RTdHlsZVZhbHVlKCJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIiwg
ImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKTsKIHRlc3RTdHlsZVZhbHVlKCJwb2x5
Z29uKDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIiwgInBvbHlnb24obm9uemVybywgMTAlIDIw
JSwgMzAlIDQwJSwgNDAlIDUwJSkiKTsKIAogdGVzdENvbXB1dGVkU3R5bGVWYWx1ZSgiY2lyY2xl
KDUwJSwgMTAwJSwgMTUwJSkiLCAiY2lyY2xlKDUwJSwgMTAwJSwgMTUwJSkiKTsKIHRlc3RDb21w
dXRlZFN0eWxlVmFsdWUoInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIs
ICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKTsKK3Rlc3RDb21wdXRl
ZFN0eWxlVmFsdWUoImluc2V0LXJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAl
KSIsICJpbnNldC1yZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKTsKIHRl
c3RDb21wdXRlZFN0eWxlVmFsdWUoImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiLCAi
ZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpOwogdGVzdENvbXB1dGVkU3R5bGVWYWx1
ZSgicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIsICJwb2x5Z29uKG5vbnplcm8s
IDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIik7CiAKQEAgLTc2LDkgKzc5LDE3IEBAIHRlc3RJ
bnZhbGlkVmFsdWUoIi13ZWJraXQtc2hhcGUtaW5zaWRlIiwgImNpcmNsZSgxcHgsIDFweCwgY2Fs
YygpKSIpOwogdGVzdEludmFsaWRWYWx1ZSgiLXdlYmtpdC1zaGFwZS1pbnNpZGUiLCAiY2lyY2xl
KC0xLjVweCwgKzEuNXB4LCAtMS41cHgpIik7CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNo
YXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0LCAxcGMpIik7
CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNt
LCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0
LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0
LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNl
dC1yZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIik7CiB0ZXN0SW52YWxp
ZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAx
ZW0pIik7CiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJlbGxpcHNl
KDFlbSwgMWVtLCAxZW0sIC0xZW0pIik7CiAKIC8vIHJlamVjdCBuZWdhdGl2ZSBoZWlnaHQgYW5k
IHdpZHRoCiB0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5n
bGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIik7CiB0ZXN0SW52YWxpZFZhbHVlKCIt
d2Via2l0LXNoYXBlLWluc2lkZSIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0
LCAxcGMpIik7CisKKy8vIHJlamVjdCBuZWdhdGl2ZSB0b3AsIHJpZ2h0LCBib3R0b20sIGFuZCBs
ZWZ0Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0
YW5nbGUoLTFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVl
KCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAtMW1tLCAxaW4s
IDFweCwgMXB0LCAxcGMpIik7Cit0ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lk
ZSIsICJpbnNldC1yZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIik7Cit0
ZXN0SW52YWxpZFZhbHVlKCItd2Via2l0LXNoYXBlLWluc2lkZSIsICJpbnNldC1yZWN0YW5nbGUo
MWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9zY3JpcHQtdGVzdHMvcGFyc2luZy10ZXN0LXV0aWxz
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmcvc2NyaXB0LXRlc3RzL3Bh
cnNpbmctdGVzdC11dGlscy5qcwppbmRleCA2MTU3OGY4NzhlMjA3NjlkYWQ4ODAzYTBhY2FmMWQ3
ZWJmYTg3M2Y3Li43MTAzYmI2ZGExZGU4Yzc5MjU0ZmE2MzFmOTQzOTYwZjlmNmI0MDNhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy9zY3JpcHQtdGVzdHMv
cGFyc2luZy10ZXN0LXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9w
YXJzaW5nL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXRlc3QtdXRpbHMuanMKQEAgLTYsNiArNiwxMCBA
QCB2YXIgdmFsaWRTaGFwZVZhbHVlcyA9IFsKICAgICAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgsIDVweCkiLCAKICAgICAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgs
IDVweCwgMTBweCkiLAogCisgICAgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0
MHB4KSIsCisgICAgImluc2V0LXJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4LCA1cHgp
IiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDVweCwgMTBw
eCkiLAorCiAgICAgImNpcmNsZSgxMHB4LCAyMHB4LCAzMHB4KSIsCiAKICAgICAiZWxsaXBzZSgx
MHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsCkBAIC0yOCw2ICszMiwxMyBAQCB2YXIgaW52YWxpZFNo
YXBlVmFsdWVzID0gWwogICAgICJyZWN0YW5nbGUoMTBweCAyMHB4IDMwcHggNDBweCkiLAogICAg
ICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCwgNTBweCwgNjBweCwgNzBweCkiLAog
CisgICAgImluc2V0LXJlY3RhbmdsZSgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgpIiwK
KyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDEwcHgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xl
KDEwcHgsIDIwcHgsIDMwcHgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHggMjBweCAzMHB4
IDQwcHgpIiwKKyAgICAiaW5zZXQtcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgsIDUw
cHgsIDYwcHgsIDcwcHgpIiwKKwogICAgICJjaXJjbGUoKSIsCiAgICAgImNpcmNsZSgxMHB4KSIs
CiAgICAgImNpcmNsZSgxMHB4LCAyMHB4KSIsCkBAIC0xNTgsNCArMTY5LDQgQEAgZnVuY3Rpb24g
dGVzdE5vdEluaGVyaXRlZFNoYXBlUHJvcGVydHkocHJvcGVydHksIHBhcmVudFZhbHVlLCBjaGls
ZFZhbHVlLCBleHBlY3QKIGZ1bmN0aW9uIGFwcGx5VG9FYWNoQXJnbGlzdCh0ZXN0RnVuY3Rpb24s
IGFyZ2xpc3RzKQogewogICAgIGFyZ2xpc3RzLmZvckVhY2goZnVuY3Rpb24oYXJnbGlzdCwgaSwg
YSkge3Rlc3RGdW5jdGlvbi5hcHBseShudWxsLCBhcmdsaXN0KTt9KTsKLX0KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>