<?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>129726</bug_id>
          
          <creation_ts>2014-03-04 20:59:27 -0800</creation_ts>
          <short_desc>[CSS Shapes] inset does not properly clamp large corner radii</short_desc>
          <delta_ts>2014-03-07 09:20:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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://www.w3.org/TR/css3-background/#corner-overlap</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>129887</dependson>
          <blocked>124173</blocked>
    
    <blocked>127982</blocked>
    
    <blocked>129739</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>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>krit</cc>
    
    <cc>mpakulavelrutka</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987103</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-04 20:59:27 -0800</bug_when>
    <thetext>inset should clamp large corner radii as described in http://www.w3.org/TR/css3-background/#corner-overlap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987247</commentid>
    <comment_count>1</comment_count>
      <attachid>225882</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-05 07:35:54 -0800</bug_when>
    <thetext>Created attachment 225882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987252</commentid>
    <comment_count>2</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-05 07:44:20 -0800</bug_when>
    <thetext>I did not add any tests for zero radii here because I ran into Bug 129739. I will add tests for that when I fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987312</commentid>
    <comment_count>3</comment_count>
      <attachid>225882</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-03-05 11:10:34 -0800</bug_when>
    <thetext>Comment on attachment 225882
Patch

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

&gt; Source/WebCore/rendering/shapes/Shape.cpp:131
&gt; +    float topRadiiExtent = radii.topLeft().width() + radii.topRight().width();
&gt; +    float rightRadiiExtent = radii.topRight().height() + radii.bottomRight().height();
&gt; +    float bottomRadiiExtent = radii.bottomLeft().width() + radii.bottomRight().width();
&gt; +    float leftRadiiExtent = radii.topLeft().height() + radii.bottomLeft().height();
&gt; +
&gt; +    float topRatio = topRadiiExtent ? (rect.width() / topRadiiExtent) : 1;
&gt; +    float rightRatio = rightRadiiExtent ? (rect.height() / rightRadiiExtent) : 1;
&gt; +    float bottomRatio = bottomRadiiExtent ? (rect.width() / bottomRadiiExtent) : 1;
&gt; +    float leftRatio = leftRadiiExtent ? (rect.height() / leftRadiiExtent) : 1;
&gt; +
&gt; +    float reductionRatio = std::min&lt;float&gt;(topRatio, std::min&lt;float&gt;(rightRatio, std::min&lt;float&gt;(bottomRatio, leftRatio)));
&gt; +    if (reductionRatio &lt; 1)
&gt; +        roundedRect.scaleRadii(reductionRatio);

Is there anything that can be shared with border-radius?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987402</commentid>
    <comment_count>4</comment_count>
      <attachid>225917</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-05 14:50:45 -0800</bug_when>
    <thetext>Created attachment 225917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987404</commentid>
    <comment_count>5</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-05 14:51:33 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 225882 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225882&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/shapes/Shape.cpp:131
&gt; &gt; +    float topRadiiExtent = radii.topLeft().width() + radii.topRight().width();
&gt; &gt; +    float rightRadiiExtent = radii.topRight().height() + radii.bottomRight().height();
&gt; &gt; +    float bottomRadiiExtent = radii.bottomLeft().width() + radii.bottomRight().width();
&gt; &gt; +    float leftRadiiExtent = radii.topLeft().height() + radii.bottomLeft().height();
&gt; &gt; +
&gt; &gt; +    float topRatio = topRadiiExtent ? (rect.width() / topRadiiExtent) : 1;
&gt; &gt; +    float rightRatio = rightRadiiExtent ? (rect.height() / rightRadiiExtent) : 1;
&gt; &gt; +    float bottomRatio = bottomRadiiExtent ? (rect.width() / bottomRadiiExtent) : 1;
&gt; &gt; +    float leftRatio = leftRadiiExtent ? (rect.height() / leftRadiiExtent) : 1;
&gt; &gt; +
&gt; &gt; +    float reductionRatio = std::min&lt;float&gt;(topRatio, std::min&lt;float&gt;(rightRatio, std::min&lt;float&gt;(bottomRatio, leftRatio)));
&gt; &gt; +    if (reductionRatio &lt; 1)
&gt; &gt; +        roundedRect.scaleRadii(reductionRatio);
&gt; 
&gt; Is there anything that can be shared with border-radius?

Yeah, I should have done that in the first place. The new patch reuses the same function as border-radius.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987618</commentid>
    <comment_count>6</comment_count>
      <attachid>225917</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-03-06 01:29:33 -0800</bug_when>
    <thetext>Comment on attachment 225917
Patch

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

&gt; Source/WebCore/rendering/style/BorderRadiiConstraintScale.h:29
&gt; +template &lt;class Rect, class Radii&gt;
&gt; +inline float calcBorderRadiiConstraintScaleFor(const Rect&amp; rect, const Radii&amp; radii)

Cause I hate to debugs templates, I am not a huge fan of templates and would like to avoid them as much as possible. For this particular case it seems you just created a template to be able to use the classes Rect and Radii. Isn&apos;t there a better way? Also, Can&apos;t you just add this to FloatRoundedRect or RoundedRect instead of creating another header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987716</commentid>
    <comment_count>7</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-06 08:57:22 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 225917 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225917&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/BorderRadiiConstraintScale.h:29
&gt; &gt; +template &lt;class Rect, class Radii&gt;
&gt; &gt; +inline float calcBorderRadiiConstraintScaleFor(const Rect&amp; rect, const Radii&amp; radii)
&gt; 
&gt; Cause I hate to debugs templates, I am not a huge fan of templates and would like to avoid them as much as possible. For this particular case it seems you just created a template to be able to use the classes Rect and Radii. Isn&apos;t there a better way? Also, Can&apos;t you just add this to FloatRoundedRect or RoundedRect instead of creating another header?

I would unfortunately have to add it to both of them. The shapes geometry code uses floats, and the style and layout code uses LayoutUnits. Converting in the middle of the geometry code to LayoutUnits and then back to floats has caused problems in the past due to the imprecise nature of that conversion. And I don&apos;t think we want to be converting to FloatRoundedRect and back every time we need to do this calculation in RenderStyle (or in my fix for Bug 127982, for that matter).

I did notice that there is an adjustRadii() call in RoundedRect, but it doesn&apos;t do exactly the same calculation as the border radii case, and it looks like it is only used for box shadow (RenderBoxModelObject::paintBoxShadow).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987727</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-03-06 09:37:30 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 225917 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225917&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/style/BorderRadiiConstraintScale.h:29
&gt; &gt; &gt; +template &lt;class Rect, class Radii&gt;
&gt; &gt; &gt; +inline float calcBorderRadiiConstraintScaleFor(const Rect&amp; rect, const Radii&amp; radii)
&gt; &gt; 
&gt; &gt; Cause I hate to debugs templates, I am not a huge fan of templates and would like to avoid them as much as possible. For this particular case it seems you just created a template to be able to use the classes Rect and Radii. Isn&apos;t there a better way? Also, Can&apos;t you just add this to FloatRoundedRect or RoundedRect instead of creating another header?
&gt; 
&gt; I would unfortunately have to add it to both of them. The shapes geometry code uses floats, and the style and layout code uses LayoutUnits. Converting in the middle of the geometry code to LayoutUnits and then back to floats has caused problems in the past due to the imprecise nature of that conversion. And I don&apos;t think we want to be converting to FloatRoundedRect and back every time we need to do this calculation in RenderStyle (or in my fix for Bug 127982, for that matter).
&gt; 
&gt; I did notice that there is an adjustRadii() call in RoundedRect, but it doesn&apos;t do exactly the same calculation as the border radii case, and it looks like it is only used for box shadow (RenderBoxModelObject::paintBoxShadow).

Is it possible to create two inline functions where one calls the other but does the conversion first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987735</commentid>
    <comment_count>9</comment_count>
      <attachid>226004</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-06 09:57:34 -0800</bug_when>
    <thetext>Created attachment 226004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987737</commentid>
    <comment_count>10</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-06 09:58:55 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 225917 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225917&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/style/BorderRadiiConstraintScale.h:29
&gt; &gt; &gt; &gt; +template &lt;class Rect, class Radii&gt;
&gt; &gt; &gt; &gt; +inline float calcBorderRadiiConstraintScaleFor(const Rect&amp; rect, const Radii&amp; radii)
&gt; &gt; &gt; 
&gt; &gt; &gt; Cause I hate to debugs templates, I am not a huge fan of templates and would like to avoid them as much as possible. For this particular case it seems you just created a template to be able to use the classes Rect and Radii. Isn&apos;t there a better way? Also, Can&apos;t you just add this to FloatRoundedRect or RoundedRect instead of creating another header?
&gt; &gt; 
&gt; &gt; I would unfortunately have to add it to both of them. The shapes geometry code uses floats, and the style and layout code uses LayoutUnits. Converting in the middle of the geometry code to LayoutUnits and then back to floats has caused problems in the past due to the imprecise nature of that conversion. And I don&apos;t think we want to be converting to FloatRoundedRect and back every time we need to do this calculation in RenderStyle (or in my fix for Bug 127982, for that matter).
&gt; &gt; 
&gt; &gt; I did notice that there is an adjustRadii() call in RoundedRect, but it doesn&apos;t do exactly the same calculation as the border radii case, and it looks like it is only used for box shadow (RenderBoxModelObject::paintBoxShadow).
&gt; 
&gt; Is it possible to create two inline functions where one calls the other but does the conversion first?

I looked into this and discovered that there are some implicit conversions from LayoutRect/RoundedRect -&gt; FloatRect/FloatRoundedRect. So I just changed the signature to take the float varieties, and not have a template. WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987765</commentid>
    <comment_count>11</comment_count>
      <attachid>226011</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-06 11:05:40 -0800</bug_when>
    <thetext>Created attachment 226011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987773</commentid>
    <comment_count>12</comment_count>
      <attachid>226011</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-03-06 11:22:55 -0800</bug_when>
    <thetext>Comment on attachment 226011
Patch

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

&gt; Source/WebCore/rendering/style/BorderRadiiConstraintScale.h:31
&gt; +inline float calcBorderRadiiConstraintScaleFor(const FloatRect&amp; rect, const FloatRoundedRect::Radii&amp; radii)

looks nicer already. Do you think we can put that on FloatRoundedRect.h instead of creating a new header file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987784</commentid>
    <comment_count>13</comment_count>
      <attachid>226019</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-06 11:37:45 -0800</bug_when>
    <thetext>Created attachment 226019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987785</commentid>
    <comment_count>14</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-06 11:38:47 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 226011 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226011&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/BorderRadiiConstraintScale.h:31
&gt; &gt; +inline float calcBorderRadiiConstraintScaleFor(const FloatRect&amp; rect, const FloatRoundedRect::Radii&amp; radii)
&gt; 
&gt; looks nicer already. Do you think we can put that on FloatRoundedRect.h instead of creating a new header file?

Ok, WDYT?

(I wish I could make it just take a FloatRoundedRect, but that would require some serious surgery to how RenderStyle does it&apos;s thing.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988087</commentid>
    <comment_count>15</comment_count>
      <attachid>226019</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-03-07 02:47:22 -0800</bug_when>
    <thetext>Comment on attachment 226019
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988167</commentid>
    <comment_count>16</comment_count>
      <attachid>226019</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-07 08:19:27 -0800</bug_when>
    <thetext>Comment on attachment 226019
Patch

Clearing flags on attachment: 226019

Committed r165261: &lt;http://trac.webkit.org/changeset/165261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988168</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-07 08:19:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988173</commentid>
    <comment_count>18</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2014-03-07 08:43:49 -0800</bug_when>
    <thetext>Committed r165262: &lt;http://trac.webkit.org/changeset/165262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988181</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-07 09:02:06 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 129887</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988189</commentid>
    <comment_count>20</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-03-07 09:20:52 -0800</bug_when>
    <thetext>The reopen was spurious; a different commit got tangled up with this one, and that&apos;s the one that got reverted.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225882</attachid>
            <date>2014-03-05 07:35:54 -0800</date>
            <delta_ts>2014-03-05 14:50:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129726-20140305073554.patch</filename>
            <type>text/plain</type>
            <size>8684</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFiODFhNDA2NWVkMmMz
ZmM1NzhmNTMxYjNjYTEzZjQ3NDcwMzE2ZC4uODc0MmE4YjI1ZTYwOWI4NTE0ODllYTMwNGNhMTlk
ODA0NjgxMGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTAzLTA1ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBp
bnNldCBkb2VzIG5vdCBwcm9wZXJseSBjbGFtcCBsYXJnZSBjb3JuZXIgcmFkaWkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTcyNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHJh
ZGlpIHRoYXQgYXJlIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgYXNzb2NpYXRlZCBzaGFwZQorICAg
ICAgICBkaW1lbnNpb24gKGhlaWdodCBvciB3aWR0aCkgYXJlIHByb3Blcmx5IHJlZHVjZWQgdGhl
IHNhbWUgd2F5IGFzCisgICAgICAgIGJvcmRlci1yYWRpdXMgcmFkaWkgYXJlLgorCisgICAgICAg
IFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxv
YXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91
bmRlZFJlY3Q6OnNjYWxlUmFkaWkpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlUmFkaWlEb05vdE92ZXJsYXApOiBJbXBsZW1l
bnQgdGhlIGJvcmRlci1yYWRpdXMKKyAgICAgICAgICAgIHNjYWxpbmcgYWxnb3JpdGhtLgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcGU6OmNyZWF0ZVNoYXBlKTogQ2FsbCBlbnN1cmVSYWRpaURvTm90
T3ZlcmxhcC4KKwogMjAxNC0wMy0wNCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWRGb3JOb2RlKE5v
ZGUmKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
Um91bmRlZFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91
bmRlZFJlY3QuaAppbmRleCA5NWJmNTI2NzEyZmFiYTAzMDA1NTkwNTY0NzUyODFiYjA5ODY2Y2E3
Li42MGZlNTY2YmIzNjk4ZWIwNmY0MzlmOWI1Zjk0YWY2OGU2YzFmZmRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5oCkBAIC05
OCw2ICs5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluZmxhdGUoZmxvYXQgc2l6ZSkgeyBtX3Jl
Y3QuaW5mbGF0ZShzaXplKTsgIH0KICAgICB2b2lkIGV4cGFuZFJhZGlpKGZsb2F0IHNpemUpIHsg
bV9yYWRpaS5leHBhbmQoc2l6ZSk7IH0KICAgICB2b2lkIHNocmlua1JhZGlpKGZsb2F0IHNpemUp
IHsgbV9yYWRpaS5zaHJpbmsoc2l6ZSk7IH0KKyAgICB2b2lkIHNjYWxlUmFkaWkoZmxvYXQgZmFj
dG9yKSB7IG1fcmFkaWkuc2NhbGUoZmFjdG9yKTsgfQogCiAgICAgRmxvYXRSZWN0IHRvcExlZnRD
b3JuZXIoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHAKaW5kZXggM2ZlOWI1ODFiMzUzNWM1OWI1NzhiYzQxZGNmNTY4YTRlODRjYjk3Ny4uYTc3
NTlkZGUxNjM3MzcwOTMwNWVhZTE3NDc4MzhhMGU3Y2E5NTE2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgaW5s
aW5lIEZsb2F0U2l6ZSBwaHlzaWNhbFNpemVUb0xvZ2ljYWwoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBXcml0aW5nTW9kZQogICAgIHJldHVybiBzaXplLnRyYW5zcG9zZWRTaXplKCk7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgdm9pZCBlbnN1cmVSYWRpaURvTm90T3ZlcmxhcChGbG9hdFJlY3QgJmJvdW5k
cywgRmxvYXRTaXplICZyYWRpaSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBlbnN1cmVSYWRpaURvTm90
T3ZlcmxhcChGbG9hdFJlY3QmIGJvdW5kcywgRmxvYXRTaXplJiByYWRpaSkKIHsKICAgICBmbG9h
dCB3aWR0aFJhdGlvID0gYm91bmRzLndpZHRoKCkgLyAoMiAqIHJhZGlpLndpZHRoKCkpOwogICAg
IGZsb2F0IGhlaWdodFJhdGlvID0gYm91bmRzLmhlaWdodCgpIC8gKDIgKiByYWRpaS5oZWlnaHQo
KSk7CkBAIC0xMTEsNiArMTExLDI2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbnN1cmVSYWRpaURv
Tm90T3ZlcmxhcChGbG9hdFJlY3QgJmJvdW5kcywgRmxvYXRTaXplICZyYWRpaSkKICAgICB9CiB9
CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBlbnN1cmVSYWRpaURvTm90T3ZlcmxhcChGbG9hdFJvdW5k
ZWRSZWN0JiByb3VuZGVkUmVjdCkKK3sKKyAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QgPSByb3Vu
ZGVkUmVjdC5yZWN0KCk7CisgICAgY29uc3QgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWkmIHJhZGlp
ID0gcm91bmRlZFJlY3QucmFkaWkoKTsKKworICAgIGZsb2F0IHRvcFJhZGlpRXh0ZW50ID0gcmFk
aWkudG9wTGVmdCgpLndpZHRoKCkgKyByYWRpaS50b3BSaWdodCgpLndpZHRoKCk7CisgICAgZmxv
YXQgcmlnaHRSYWRpaUV4dGVudCA9IHJhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkgKyByYWRpaS5i
b3R0b21SaWdodCgpLmhlaWdodCgpOworICAgIGZsb2F0IGJvdHRvbVJhZGlpRXh0ZW50ID0gcmFk
aWkuYm90dG9tTGVmdCgpLndpZHRoKCkgKyByYWRpaS5ib3R0b21SaWdodCgpLndpZHRoKCk7Cisg
ICAgZmxvYXQgbGVmdFJhZGlpRXh0ZW50ID0gcmFkaWkudG9wTGVmdCgpLmhlaWdodCgpICsgcmFk
aWkuYm90dG9tTGVmdCgpLmhlaWdodCgpOworCisgICAgZmxvYXQgdG9wUmF0aW8gPSB0b3BSYWRp
aUV4dGVudCA/IChyZWN0LndpZHRoKCkgLyB0b3BSYWRpaUV4dGVudCkgOiAxOworICAgIGZsb2F0
IHJpZ2h0UmF0aW8gPSByaWdodFJhZGlpRXh0ZW50ID8gKHJlY3QuaGVpZ2h0KCkgLyByaWdodFJh
ZGlpRXh0ZW50KSA6IDE7CisgICAgZmxvYXQgYm90dG9tUmF0aW8gPSBib3R0b21SYWRpaUV4dGVu
dCA/IChyZWN0LndpZHRoKCkgLyBib3R0b21SYWRpaUV4dGVudCkgOiAxOworICAgIGZsb2F0IGxl
ZnRSYXRpbyA9IGxlZnRSYWRpaUV4dGVudCA/IChyZWN0LmhlaWdodCgpIC8gbGVmdFJhZGlpRXh0
ZW50KSA6IDE7CisKKyAgICBmbG9hdCByZWR1Y3Rpb25SYXRpbyA9IHN0ZDo6bWluPGZsb2F0Pih0
b3BSYXRpbywgc3RkOjptaW48ZmxvYXQ+KHJpZ2h0UmF0aW8sIHN0ZDo6bWluPGZsb2F0Pihib3R0
b21SYXRpbywgbGVmdFJhdGlvKSkpOworICAgIGlmIChyZWR1Y3Rpb25SYXRpbyA8IDEpCisgICAg
ICAgIHJvdW5kZWRSZWN0LnNjYWxlUmFkaWkocmVkdWN0aW9uUmF0aW8pOworfQorCiBQYXNzT3du
UHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFw
ZSwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUsIFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZykKIHsKICAgICBBU1NFUlQoYmFzaWNT
aGFwZSk7CkBAIC0yMzksNyArMjU5LDEwIEBAIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVh
dGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYXlvdXRTCiAgICAg
ICAgICAgICBmbG9hdFNpemVGb3JMZW5ndGhTaXplKGluc2V0LmJvdHRvbUxlZnRSYWRpdXMoKSwg
Ym94U2l6ZSksCiAgICAgICAgICAgICBmbG9hdFNpemVGb3JMZW5ndGhTaXplKGluc2V0LmJvdHRv
bVJpZ2h0UmFkaXVzKCksIGJveFNpemUpKTsKIAotICAgICAgICBzaGFwZSA9IGNyZWF0ZUluc2V0
U2hhcGUoRmxvYXRSb3VuZGVkUmVjdChsb2dpY2FsUmVjdCwgY29ybmVyUmFkaWkpKTsKKyAgICAg
ICAgRmxvYXRSb3VuZGVkUmVjdCByb3VuZGVkUmVjdCA9IEZsb2F0Um91bmRlZFJlY3QobG9naWNh
bFJlY3QsIGNvcm5lclJhZGlpKTsKKyAgICAgICAgZW5zdXJlUmFkaWlEb05vdE92ZXJsYXAocm91
bmRlZFJlY3QpOworCisgICAgICAgIHNoYXBlID0gY3JlYXRlSW5zZXRTaGFwZShyb3VuZGVkUmVj
dCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdmNTM0YTMyOTYxZGQxMGVhYWJj
YzZjMmM0YTljZGY4MWQyZDFmYjUuLmQ2ZDkzMzE0MjRiZWFmYTY0NjE3NTgyZmY2ODFiYjA4MjZh
ZmJjYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMy0wNSAgQmVtIEpvbmVzLUJleSAg
PGJqb25lc2JlQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gaW5zZXQgZG9lcyBu
b3QgcHJvcGVybHkgY2xhbXAgbGFyZ2UgY29ybmVyIHJhZGlpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk3MjYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUt
ZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUt
ZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLmh0
bWw6IEFkZGVkLgorCiAyMDE0LTAzLTA0ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBBZGQgdGVzdCBmb3IgYWRqdXN0ZWQgbGluZVRv
cCBwb3NpdGlvbiBiZXR3ZWVuIGxlZnQgYW5kIHJpZ2h0IHNoYXBlLW91dHNpZGUgZmxvYXRzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9z
aGFwZS1vdXRzaWRlLWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUt
b3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRpdXMtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYmEwMzU5MmFkMjVkMmEyMTcxZTk4NTYyMDFjZDcxMzcwNWE1NTc0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRpdXMtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgZm9u
dDogMjBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdo
dDogMjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9CisKKy5yb3VuZGVkLXJl
Y3QgeworICAgIHdpZHRoOiAzMjBweDsKKyAgICBoZWlnaHQ6IDE2MHB4OworICAgIGJvcmRlci1y
YWRpdXM6IDgwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKworI3JpZ2h0LXJv
dW5kZWQtcmVjdC1vdXRsaW5lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAy
MHB4OworICAgIHJpZ2h0OiAwcHg7Cit9CisKKworLnJpZ2h0LXJvdW5kZWQtcmVjdC1mbG9hdC1s
aW5lIHsKKyAgICBmbG9hdDogcmlnaHQ7CisgICAgY2xlYXI6IHJpZ2h0OworICAgIGhlaWdodDog
MjBweDsKK30KKzwvc3R5bGU+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9
InRleHQtYWxpZ246IHJpZ2h0Ij4KK1g8YnIvPgorICAgIDxkaXYgaWQ9InJpZ2h0LXJvdW5kZWQt
cmVjdC1vdXRsaW5lIiBjbGFzcz0icm91bmRlZC1yZWN0Ij48L2Rpdj4KKyAgICA8IS0tIGdlbmVy
YXRlZCByaWdodC1yb3VuZGVkLXJlY3QtZmxvYXQtbGluZSBkaXZzIHdpbGwgYmUgaW5zZXJ0ZWQg
aGVyZSAtLT4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4K
K1g8YnIvPgorWDxici8+CitYCis8L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcm91
bmRlZC1yZWN0YW5nbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9z
dWJwaXhlbC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZ2VuUmlnaHRSb3VuZGVkUmVj
dEZsb2F0U2hhcGVPdXRzaWRlUmVmVGVzdCh7CisgICAgcm91bmRlZFJlY3Q6IHt4OiAwLCB5OiAy
MCwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAxNjAsIHJ4OiA4MCwgcnk6IDgwfSwKKyAgICBjb250YWlu
ZXJXaWR0aDogNTAwLAorICAgIGNvbnRhaW5lckhlaWdodDogMjAwLAorICAgIGxpbmVIZWlnaHQ6
IDIwLAorICAgIGZsb2F0RWxlbWVudENsYXNzU3VmZml4OiAicm91bmRlZC1yZWN0LWZsb2F0LWxp
bmUiLAorICAgIGluc2VydEVsZW1lbnRJZFN1ZmZpeDogInJvdW5kZWQtcmVjdC1vdXRsaW5lIiwK
K30pOworPC9zY3JpcHQ+CisKKzxwPlJlcXVpcmVzIEFoZW0gZm9udC4gVGhlcmUgaXMgYSAwcHgg
c2l6ZSBpbnNldCBhcHBsaWVkIG9uIHRoZSByaWdodCBmbG9hdCB3aXRoIDIwMHB4IHJhZGl1cy48
YnI+CitUaGUgYmxhY2sgc3F1YXJlcyBzaG91bGQgdHJhY2UgdGhlIGxlZnQgc2lkZSBvZiB0aGUg
cm91bmRlZCByZWN0YW5nbGUncyBibHVlIG91dGxpbmUuPC9wPgorPHA+QnVnIDxhIGhyZWY9Imh0
dHA6Ly93ZWJraXQub3JnL2IvMTI5NzI2Ij4xMjk3MjY8L2E+OiBbQ1NTIFNoYXBlc10gaW5zZXQg
ZG9lcyBub3QgcHJvcGVybHkgY2xhbXAgbGFyZ2UgY29ybmVyIHJhZGlpPC9wPgorCis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRz
aWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hh
cGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRpdXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZmRiYzc0OWJmZjIwNjhjOTBiNWI1YjdhZDRiZjQ1OTc2YmViY2EwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hh
cGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRpdXMuaHRtbApAQCAtMCww
ICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHN0eWxlPgorLmNvbnRhaW5lciB7
CisgICAgZm9udDogMjBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgd2lkdGg6IDUwMHB4Owor
ICAgIGhlaWdodDogMjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9CisKKy5y
b3VuZGVkLXJlY3QgeworICAgIHdpZHRoOiAzMjBweDsKKyAgICBoZWlnaHQ6IDE2MHB4OworICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7CisgICAg
LXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBpbnNldCgwcHggcm91bmQgMjAwcHgpOworfQorPC9zdHls
ZT4KKworPGJvZHk+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOiBy
aWdodCI+CitYPGJyLz4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQiIGNsYXNzPSJyb3Vu
ZGVkLXJlY3QiPjwvZGl2PgorWDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4K
K1g8YnIvPgorWDxici8+CitYPGJyLz4KK1gKKzwvZGl2PgorCis8cD5SZXF1aXJlcyBBaGVtIGZv
bnQuIFRoZXJlIGlzIGEgMHB4IHNpemUgaW5zZXQgYXBwbGllZCBvbiB0aGUgcmlnaHQgZmxvYXQg
d2l0aCAyMDBweCByYWRpdXMuPGJyPgorVGhlIGJsYWNrIHNxdWFyZXMgc2hvdWxkIHRyYWNlIHRo
ZSBsZWZ0IHNpZGUgb2YgdGhlIHJvdW5kZWQgcmVjdGFuZ2xlJ3MgYmx1ZSBvdXRsaW5lLjwvcD4K
KzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEyOTcyNiI+MTI5NzI2PC9hPjog
W0NTUyBTaGFwZXNdIGluc2V0IGRvZXMgbm90IHByb3Blcmx5IGNsYW1wIGxhcmdlIGNvcm5lciBy
YWRpaTwvcD4KKworPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225917</attachid>
            <date>2014-03-05 14:50:45 -0800</date>
            <delta_ts>2014-03-06 09:57:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129726-20140305145045.patch</filename>
            <type>text/plain</type>
            <size>16850</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4NGRlNDA3YjFmNGEy
NzE0NmQ1YjFjYzYwZDAwNjQwZTRhN2M5Mi4uYTIxODY5YWViNDZmYWMyYjY4ZjExMjBmZThkOWQ5
MDQ1OTRmMWQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAzLTA1ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBp
bnNldCBkb2VzIG5vdCBwcm9wZXJseSBjbGFtcCBsYXJnZSBjb3JuZXIgcmFkaWkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTcyNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHJh
ZGlpIHRoYXQgYXJlIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgYXNzb2NpYXRlZCBzaGFwZQorICAg
ICAgICBkaW1lbnNpb24gKGhlaWdodCBvciB3aWR0aCkgYXJlIHByb3Blcmx5IHJlZHVjZWQgdGhl
IHNhbWUgd2F5IGFzCisgICAgICAgIGJvcmRlci1yYWRpdXMgcmFkaWkgYXJlLgorCisgICAgICAg
IFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxv
YXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IEFkZCBuZXcgaGVhZGVyIGZpbGUuCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZVJhZGlpRG9O
b3RPdmVybGFwKTogRHJpdmUgYnkgc3R5bGUgZml4LgorICAgICAgICAoV2ViQ29yZTo6U2hhcGU6
OmNyZWF0ZVNoYXBlKTogU2NhbGUgcmFkaWkgdGhlIHNhbWUgd2F5IGFzIGJvcmRlcgorICAgICAg
ICAgICAgcmFkaWkgYXJlIHNjYWxlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQm9yZGVy
UmFkaWlDb25zdHJhaW50U2NhbGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWxjQm9y
ZGVyUmFkaWlDb25zdHJhaW50U2NhbGVGb3IpOiBNb3ZlIGJvcmRlciByYWRpaQorICAgICAgICAg
ICAgY29uc3RyYWludCBjYWxjdWxhdGlvbiBmdW5jdGlvbiBvdXQgc28gdGhhdCBpdCBjYW4gYmUg
c2hhcmVkIGJ5CisgICAgICAgICAgICB0aGUgc2hhcGUgY29kZS4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OmdldFJvdW5kZWRCb3JkZXJGb3IpOiBDYWxsIHJlbmFtZWQgc2NhbGUgZnVuY3Rpb24uCisKIDIw
MTQtMDMtMDUgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0FUS10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxlQ2VsbCB0
byBBVC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CmluZGV4IDE0MTU3NzA1MDI5OTc0ZjVmNmIxNjVhNmNjZDY2ZjdkNjQ2NDJmMjcuLjAzNjYwZTQz
OGVkZWFlMDNiNTM2MDZlZGRmNDBkNGJkZWMzZWE4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTk4NDgsNiArMTk4NDgsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXG1hdGhtbFxSZW5kZXJNYXRoTUxV
bmRlck92ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHls
ZVxCYXNpY1NoYXBlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHN0eWxlXEJvcmRlckRhdGEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEJvcmRlclZhbHVlLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcQ29sbGFwc2VkQm9yZGVyVmFsdWUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxDb250ZW50
RGF0YS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGU4NGJjNzU3ZGRkMWEyMzMzODk3MzA3NTAwYzkxNWIwMTllNjAzY2Uu
LjAxNjIyZWUyMWY2NmRlNTkyY2RjMzJiMTUxMWEzZTk3N2E1M2IxNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1MjUsNiAr
MzUyNSw3IEBACiAJCTk5RTQ1QTE3MThBMDYzQkUwMDI2RDg4RiAvKiBFdmVudExvb3BJbnB1dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMTYx
OEEwNjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggKi87IH07CiAJCTlBMTE0MjA0MTgz
MkQxMzUwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTExNDIwMzE4MzJEMTM0MDAwQkI4QUQgLyogVmFsdWVU
b1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlBMUI2Rjk3MTU4ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUExQjZGOTYx
NTg4NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi87IH07CisJCTlB
NDk4Q0U5MThDN0NCNjIwMDEwRjMwQiAvKiBCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE0OThDRTgxOEM3
Q0I2MjAwMTBGMzBCIC8qIEJvcmRlclJhZGlpQ29uc3RyYWludFNjYWxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUE1MjhFODMxN0Q3RjUyRjAw
QUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QTUyOEU4MTE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdP
YmplY3RzLmNwcCAqLzsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5n
T2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMUFCMDdDMTY0OEM3QzQw
MDUxRjNGMiAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMUFCMDdCMTY0OEM3QzQw
MDUxRjNGMiAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLzsgfTsK
QEAgLTEwNTEzLDYgKzEwNTE0LDcgQEAKIAkJOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8qIEV2
ZW50TG9vcElucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9v
cElucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBMTE0MjAzMTgzMkQxMzQw
MDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZhbHVlVG9TdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUExQjZG
OTYxNTg4NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QTQ5OENFODE4QzdDQjYyMDAxMEYzMEIgLyog
Qm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaDsgcGF0aCA9IHN0eWxlL0JvcmRlclJh
ZGlpQ29uc3RyYWludFNjYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBNTI4
RTgxMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRpbmdPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2Jq
ZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdGluZ09iamVjdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxQUIwNzkxNjQ4QzY5RDAwNTFGM0Yy
IC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRm9ybUNvbnRyb2xz
Q29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDU0Nyw2ICsy
MDU0OSw3IEBACiAJCQkJQkMyMjc0NzYwRTgzNjZFMjAwRTdGOTc1IC8qIFNWR1JlbmRlclN0eWxl
RGVmcy5jcHAgKi8sCiAJCQkJQkMyMjc0NzcwRTgzNjZFMjAwRTdGOTc1IC8qIFNWR1JlbmRlclN0
eWxlRGVmcy5oICovLAogCQkJCTQ0OEIxQjc4MEYzQTJGOUIwMDQ3QTlFMiAvKiBUZXh0U2l6ZUFk
anVzdG1lbnQuaCAqLywKKwkJCQk5QTQ5OENFODE4QzdDQjYyMDAxMEYzMEIgLyogQm9yZGVyUmFk
aWlDb25zdHJhaW50U2NhbGUuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gc3R5bGU7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjI3MTAsNiArMjI3MTMsNyBAQAogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUZFMTE1RkFCMTY3OTg4Q0Qw
MDI0OTEzNCAvKiBBYnN0cmFjdERhdGFiYXNlU2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
QTQ5OENFOTE4QzdDQjYyMDAxMEYzMEIgLyogQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFNEFBREVFMTZEMkMzNzQwMDAyNkZGQyAvKiBBYnN0cmFjdFNR
TFN0YXRlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU0QUFERUYxNkQyQzM3NDAwMDI2RkZD
IC8qIEFic3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFF
MUIxRDEwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggM2ZlOWI1ODFi
MzUzNWM1OWI1NzhiYzQxZGNmNTY4YTRlODRjYjk3Ny4uN2Q2NmRhODIzMDNmY2I3NDg0NTliNWYz
YTcyODhiYjM3ZmU2OTY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFwZS5oIgogCiAjaW5jbHVkZSAi
QmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIkJvcmRlclJhZGlpQ29uc3RyYWludFNj
YWxlLmgiCiAjaW5jbHVkZSAiQm94U2hhcGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgog
I2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgpAQCAtMTAwLDcgKzEwMSw3IEBAIHN0YXRpYyBpbmxpbmUg
RmxvYXRTaXplIHBoeXNpY2FsU2l6ZVRvTG9naWNhbChjb25zdCBGbG9hdFNpemUmIHNpemUsIFdy
aXRpbmdNb2RlCiAgICAgcmV0dXJuIHNpemUudHJhbnNwb3NlZFNpemUoKTsKIH0KIAotc3RhdGlj
IGlubGluZSB2b2lkIGVuc3VyZVJhZGlpRG9Ob3RPdmVybGFwKEZsb2F0UmVjdCAmYm91bmRzLCBG
bG9hdFNpemUgJnJhZGlpKQorc3RhdGljIGlubGluZSB2b2lkIGVuc3VyZVJhZGlpRG9Ob3RPdmVy
bGFwKEZsb2F0UmVjdCYgYm91bmRzLCBGbG9hdFNpemUmIHJhZGlpKQogewogICAgIGZsb2F0IHdp
ZHRoUmF0aW8gPSBib3VuZHMud2lkdGgoKSAvICgyICogcmFkaWkud2lkdGgoKSk7CiAgICAgZmxv
YXQgaGVpZ2h0UmF0aW8gPSBib3VuZHMuaGVpZ2h0KCkgLyAoMiAqIHJhZGlpLmhlaWdodCgpKTsK
QEAgLTIzOSw2ICsyNDAsOCBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUo
Y29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGF5b3V0UwogICAgICAgICAgICAg
ZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNldC5ib3R0b21MZWZ0UmFkaXVzKCksIGJveFNpemUp
LAogICAgICAgICAgICAgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNldC5ib3R0b21SaWdodFJh
ZGl1cygpLCBib3hTaXplKSk7CiAKKyAgICAgICAgY29ybmVyUmFkaWkuc2NhbGUoY2FsY0JvcmRl
clJhZGlpQ29uc3RyYWludFNjYWxlRm9yKGxvZ2ljYWxSZWN0LCBjb3JuZXJSYWRpaSkpOworCiAg
ICAgICAgIHNoYXBlID0gY3JlYXRlSW5zZXRTaGFwZShGbG9hdFJvdW5kZWRSZWN0KGxvZ2ljYWxS
ZWN0LCBjb3JuZXJSYWRpaSkpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJSYWRpaUNvbnN0cmFpbnRT
Y2FsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2YWExNDczMjZmMTQyMmMzMjdmZGVjMWI4ZjczM2FjNDZiMDA1
NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9y
ZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgQm9yZGVy
UmFkaWlDb25zdHJhaW50U2NhbGVfaAorI2RlZmluZSBCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2Fs
ZV9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIFJlY3QsIGNsYXNz
IFJhZGlpPgoraW5saW5lIGZsb2F0IGNhbGNCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZUZvcihj
b25zdCBSZWN0JiByZWN0LCBjb25zdCBSYWRpaSYgcmFkaWkpCit7CisgICAgLy8gQ29uc3RyYWlu
IGNvcm5lciByYWRpaSB1c2luZyBDU1MzIHJ1bGVzOgorICAgIC8vIGh0dHA6Ly93d3cudzMub3Jn
L1RSL2NzczMtYmFja2dyb3VuZC8jdGhlLWJvcmRlci1yYWRpdXMKKworICAgIGZsb2F0IGZhY3Rv
ciA9IDE7CisgICAgZmxvYXQgcmFkaWlTdW07CisKKyAgICAvLyB0b3AKKyAgICByYWRpaVN1bSA9
IHJhZGlpLnRvcExlZnQoKS53aWR0aCgpICsgcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpOyAvLyBD
YXN0cyB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93LgorICAgIGlmIChyYWRpaVN1bSA+IHJlY3Qu
d2lkdGgoKSkKKyAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53aWR0aCgpIC8gcmFkaWlT
dW0sIGZhY3Rvcik7CisKKyAgICAvLyBib3R0b20KKyAgICByYWRpaVN1bSA9IHJhZGlpLmJvdHRv
bUxlZnQoKS53aWR0aCgpICsgcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgpOworICAgIGlmIChy
YWRpaVN1bSA+IHJlY3Qud2lkdGgoKSkKKyAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53
aWR0aCgpIC8gcmFkaWlTdW0sIGZhY3Rvcik7CisKKyAgICAvLyBsZWZ0CisgICAgcmFkaWlTdW0g
PSByYWRpaS50b3BMZWZ0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21MZWZ0KCkuaGVpZ2h0KCk7
CisgICAgaWYgKHJhZGlpU3VtID4gcmVjdC5oZWlnaHQoKSkKKyAgICAgICAgZmFjdG9yID0gc3Rk
OjptaW4ocmVjdC5oZWlnaHQoKSAvIHJhZGlpU3VtLCBmYWN0b3IpOworCisgICAgLy8gcmlnaHQK
KyAgICByYWRpaVN1bSA9IHJhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21S
aWdodCgpLmhlaWdodCgpOworICAgIGlmIChyYWRpaVN1bSA+IHJlY3QuaGVpZ2h0KCkpCisgICAg
ICAgIGZhY3RvciA9IHN0ZDo6bWluKHJlY3QuaGVpZ2h0KCkgLyByYWRpaVN1bSwgZmFjdG9yKTsK
KworICAgIEFTU0VSVChmYWN0b3IgPD0gMSk7CisgICAgcmV0dXJuIGZhY3RvcjsKK30KKworfQor
CisjZW5kaWYgLy8gQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGVfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZTAxMDdmZDZkOWUzYzRk
YzA2ODJlODYzZjY1YTNhYTUxMGZkYTIwYy4uNGJjNDdkMTU3ODFlODVmODU1MjA0ZTU1YzFmYTE1
ZmEwZGM5NTM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKIAorI2luY2x1ZGUgIkJvcmRlclJhZGlpQ29uc3RyYWludFNjYWxl
LmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgpAQCAtMTA2NiwzOCArMTA2Nyw2IEBAIHN0YXRp
YyBSb3VuZGVkUmVjdDo6UmFkaWkgY2FsY1JhZGlpRm9yKGNvbnN0IEJvcmRlckRhdGEmIGJvcmRl
ciwgY29uc3QgTGF5b3V0U2l6CiAgICAgICAgICAgICB2YWx1ZUZvckxlbmd0aChib3JkZXIuYm90
dG9tUmlnaHQoKS5oZWlnaHQoKSwgc2l6ZS5oZWlnaHQoKSwgcmVuZGVyVmlldykpKTsKIH0KIAot
c3RhdGljIGZsb2F0IGNhbGNDb25zdHJhaW50U2NhbGVGb3IoY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCwgY29uc3QgUm91bmRlZFJlY3Q6OlJhZGlpJiByYWRpaSkKLXsKLSAgICAvLyBDb25zdHJhaW4g
Y29ybmVyIHJhZGlpIHVzaW5nIENTUzMgcnVsZXM6Ci0gICAgLy8gaHR0cDovL3d3dy53My5vcmcv
VFIvY3NzMy1iYWNrZ3JvdW5kLyN0aGUtYm9yZGVyLXJhZGl1cwotICAgIAotICAgIGZsb2F0IGZh
Y3RvciA9IDE7Ci0gICAgZmxvYXQgcmFkaWlTdW07Ci0KLSAgICAvLyB0b3AKLSAgICByYWRpaVN1
bSA9IHJhZGlpLnRvcExlZnQoKS53aWR0aCgpICsgcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpOyAv
LyBDYXN0cyB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93LgotICAgIGlmIChyYWRpaVN1bSA+IHJl
Y3Qud2lkdGgoKSkKLSAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53aWR0aCgpIC8gcmFk
aWlTdW0sIGZhY3Rvcik7Ci0KLSAgICAvLyBib3R0b20KLSAgICByYWRpaVN1bSA9IHJhZGlpLmJv
dHRvbUxlZnQoKS53aWR0aCgpICsgcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgpOwotICAgIGlm
IChyYWRpaVN1bSA+IHJlY3Qud2lkdGgoKSkKLSAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVj
dC53aWR0aCgpIC8gcmFkaWlTdW0sIGZhY3Rvcik7Ci0gICAgCi0gICAgLy8gbGVmdAotICAgIHJh
ZGlpU3VtID0gcmFkaWkudG9wTGVmdCgpLmhlaWdodCgpICsgcmFkaWkuYm90dG9tTGVmdCgpLmhl
aWdodCgpOwotICAgIGlmIChyYWRpaVN1bSA+IHJlY3QuaGVpZ2h0KCkpCi0gICAgICAgIGZhY3Rv
ciA9IHN0ZDo6bWluKHJlY3QuaGVpZ2h0KCkgLyByYWRpaVN1bSwgZmFjdG9yKTsKLSAgICAKLSAg
ICAvLyByaWdodAotICAgIHJhZGlpU3VtID0gcmFkaWkudG9wUmlnaHQoKS5oZWlnaHQoKSArIHJh
ZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCk7Ci0gICAgaWYgKHJhZGlpU3VtID4gcmVjdC5oZWln
aHQoKSkKLSAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC5oZWlnaHQoKSAvIHJhZGlpU3Vt
LCBmYWN0b3IpOwotICAgIAotICAgIEFTU0VSVChmYWN0b3IgPD0gMSk7Ci0gICAgcmV0dXJuIGZh
Y3RvcjsKLX0KLQogU3R5bGVJbWFnZSogUmVuZGVyU3R5bGU6Omxpc3RTdHlsZUltYWdlKCkgY29u
c3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmxpc3RTdHlsZUltYWdlLmdldCgpOyB9CiB2
b2lkIFJlbmRlclN0eWxlOjpzZXRMaXN0U3R5bGVJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+
IHYpCiB7CkBAIC0xMTIwLDcgKzEwODksNyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJTdHlsZTo6Z2V0
Um91bmRlZEJvcmRlckZvcihjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBSZW5kZQogICAg
IFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KGJvcmRlclJlY3QpOwogICAgIGlmIChoYXNCb3JkZXJS
YWRpdXMoKSkgewogICAgICAgICBSb3VuZGVkUmVjdDo6UmFkaWkgcmFkaWkgPSBjYWxjUmFkaWlG
b3Ioc3Vycm91bmQtPmJvcmRlciwgYm9yZGVyUmVjdC5zaXplKCksIHJlbmRlclZpZXcpOwotICAg
ICAgICByYWRpaS5zY2FsZShjYWxjQ29uc3RyYWludFNjYWxlRm9yKGJvcmRlclJlY3QsIHJhZGlp
KSk7CisgICAgICAgIHJhZGlpLnNjYWxlKGNhbGNCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZUZv
cihib3JkZXJSZWN0LCByYWRpaSkpOwogICAgICAgICByb3VuZGVkUmVjdC5pbmNsdWRlTG9naWNh
bEVkZ2VzKHJhZGlpLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpLCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAgICAgfQogICAgIHJldHVybiByb3Vu
ZGVkUmVjdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxMDA0OTcwMGEzNTYyZWJkNmY2ZWIxODg2YWY4YTg1YmEyM2VhMDlm
Li4zMjEyZTliYjcxNjEwNzFmZDlhODc5ODgxM2Q1N2ExYmM0ZDY4NDRmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTQtMDMtMDUgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+
CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIGluc2V0IGRvZXMgbm90IHByb3Blcmx5IGNsYW1wIGxh
cmdlIGNvcm5lciByYWRpaQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI5NzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy5odG1sOiBBZGRlZC4KKwogMjAxNC0w
My0wNSAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgogCiAgICAgICAgIENvcHlpbmcgd3Jh
cHBpbmcgdGV4dCByZXN1bHRzIGluIG11bHRpcGxlIHNwYWNlcyBiZXR3ZWVuIHdyYXBwZWQgbGlu
ZXMgc3RyaXBwZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1v
dXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJh
ZGl1cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lk
ZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRpdXMt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmEwMzU5MmFkMjVkMmEyMTcxZTk4NTYyMDFjZDcx
MzcwNWE1NTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hh
cGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJn
ZS1yYWRpdXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgZm9udDogMjBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgd2lkdGg6IDUw
MHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9
CisKKy5yb3VuZGVkLXJlY3QgeworICAgIHdpZHRoOiAzMjBweDsKKyAgICBoZWlnaHQ6IDE2MHB4
OworICAgIGJvcmRlci1yYWRpdXM6IDgwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsK
K30KKworI3JpZ2h0LXJvdW5kZWQtcmVjdC1vdXRsaW5lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgdG9wOiAyMHB4OworICAgIHJpZ2h0OiAwcHg7Cit9CisKKworLnJpZ2h0LXJvdW5k
ZWQtcmVjdC1mbG9hdC1saW5lIHsKKyAgICBmbG9hdDogcmlnaHQ7CisgICAgY2xlYXI6IHJpZ2h0
OworICAgIGhlaWdodDogMjBweDsKK30KKzwvc3R5bGU+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImNv
bnRhaW5lciIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij4KK1g8YnIvPgorICAgIDxkaXYgaWQ9
InJpZ2h0LXJvdW5kZWQtcmVjdC1vdXRsaW5lIiBjbGFzcz0icm91bmRlZC1yZWN0Ij48L2Rpdj4K
KyAgICA8IS0tIGdlbmVyYXRlZCByaWdodC1yb3VuZGVkLXJlY3QtZmxvYXQtbGluZSBkaXZzIHdp
bGwgYmUgaW5zZXJ0ZWQgaGVyZSAtLT4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1g8YnIvPgor
WDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYCis8L2Rpdj4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5nbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9zdWJwaXhlbC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZ2Vu
UmlnaHRSb3VuZGVkUmVjdEZsb2F0U2hhcGVPdXRzaWRlUmVmVGVzdCh7CisgICAgcm91bmRlZFJl
Y3Q6IHt4OiAwLCB5OiAyMCwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAxNjAsIHJ4OiA4MCwgcnk6IDgw
fSwKKyAgICBjb250YWluZXJXaWR0aDogNTAwLAorICAgIGNvbnRhaW5lckhlaWdodDogMjAwLAor
ICAgIGxpbmVIZWlnaHQ6IDIwLAorICAgIGZsb2F0RWxlbWVudENsYXNzU3VmZml4OiAicm91bmRl
ZC1yZWN0LWZsb2F0LWxpbmUiLAorICAgIGluc2VydEVsZW1lbnRJZFN1ZmZpeDogInJvdW5kZWQt
cmVjdC1vdXRsaW5lIiwKK30pOworPC9zY3JpcHQ+CisKKzxwPlJlcXVpcmVzIEFoZW0gZm9udC4g
VGhlcmUgaXMgYSAwcHggc2l6ZSBpbnNldCBhcHBsaWVkIG9uIHRoZSByaWdodCBmbG9hdCB3aXRo
IDIwMHB4IHJhZGl1cy48YnI+CitUaGUgYmxhY2sgc3F1YXJlcyBzaG91bGQgdHJhY2UgdGhlIGxl
ZnQgc2lkZSBvZiB0aGUgcm91bmRlZCByZWN0YW5nbGUncyBibHVlIG91dGxpbmUuPC9wPgorPHA+
QnVnIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvMTI5NzI2Ij4xMjk3MjY8L2E+OiBbQ1NT
IFNoYXBlc10gaW5zZXQgZG9lcyBub3QgcHJvcGVybHkgY2xhbXAgbGFyZ2UgY29ybmVyIHJhZGlp
PC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3No
YXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1pbnNldC1yb3Vu
ZGVkLWxhcmdlLXJhZGl1cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRp
dXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZmRiYzc0OWJmZjIwNjhjOTBiNWI1YjdhZDRiZjQ1OTc2YmVi
Y2EwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRp
dXMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHN0eWxl
PgorLmNvbnRhaW5lciB7CisgICAgZm9udDogMjBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAg
d2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7Cit9CisKKy5yb3VuZGVkLXJlY3QgeworICAgIHdpZHRoOiAzMjBweDsKKyAgICBoZWln
aHQ6IDE2MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgYm9yZGVyLXJhZGl1
czogMjAwcHg7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBpbnNldCgwcHggcm91bmQgMjAw
cHgpOworfQorPC9zdHlsZT4KKworPGJvZHk+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxl
PSJ0ZXh0LWFsaWduOiByaWdodCI+CitYPGJyLz4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmln
aHQiIGNsYXNzPSJyb3VuZGVkLXJlY3QiPjwvZGl2PgorWDxici8+CitYPGJyLz4KK1g8YnIvPgor
WDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1gKKzwvZGl2PgorCis8cD5S
ZXF1aXJlcyBBaGVtIGZvbnQuIFRoZXJlIGlzIGEgMHB4IHNpemUgaW5zZXQgYXBwbGllZCBvbiB0
aGUgcmlnaHQgZmxvYXQgd2l0aCAyMDBweCByYWRpdXMuPGJyPgorVGhlIGJsYWNrIHNxdWFyZXMg
c2hvdWxkIHRyYWNlIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHJvdW5kZWQgcmVjdGFuZ2xlJ3MgYmx1
ZSBvdXRsaW5lLjwvcD4KKzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEyOTcy
NiI+MTI5NzI2PC9hPjogW0NTUyBTaGFwZXNdIGluc2V0IGRvZXMgbm90IHByb3Blcmx5IGNsYW1w
IGxhcmdlIGNvcm5lciByYWRpaTwvcD4KKworPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226004</attachid>
            <date>2014-03-06 09:57:34 -0800</date>
            <delta_ts>2014-03-06 11:05:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129726-20140306095733.patch</filename>
            <type>text/plain</type>
            <size>10938</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4NGRlNDA3YjFmNGEy
NzE0NmQ1YjFjYzYwZDAwNjQwZTRhN2M5Mi4uYTIxODY5YWViNDZmYWMyYjY4ZjExMjBmZThkOWQ5
MDQ1OTRmMWQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAzLTA1ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBp
bnNldCBkb2VzIG5vdCBwcm9wZXJseSBjbGFtcCBsYXJnZSBjb3JuZXIgcmFkaWkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTcyNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHJh
ZGlpIHRoYXQgYXJlIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgYXNzb2NpYXRlZCBzaGFwZQorICAg
ICAgICBkaW1lbnNpb24gKGhlaWdodCBvciB3aWR0aCkgYXJlIHByb3Blcmx5IHJlZHVjZWQgdGhl
IHNhbWUgd2F5IGFzCisgICAgICAgIGJvcmRlci1yYWRpdXMgcmFkaWkgYXJlLgorCisgICAgICAg
IFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxv
YXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IEFkZCBuZXcgaGVhZGVyIGZpbGUuCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZVJhZGlpRG9O
b3RPdmVybGFwKTogRHJpdmUgYnkgc3R5bGUgZml4LgorICAgICAgICAoV2ViQ29yZTo6U2hhcGU6
OmNyZWF0ZVNoYXBlKTogU2NhbGUgcmFkaWkgdGhlIHNhbWUgd2F5IGFzIGJvcmRlcgorICAgICAg
ICAgICAgcmFkaWkgYXJlIHNjYWxlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQm9yZGVy
UmFkaWlDb25zdHJhaW50U2NhbGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWxjQm9y
ZGVyUmFkaWlDb25zdHJhaW50U2NhbGVGb3IpOiBNb3ZlIGJvcmRlciByYWRpaQorICAgICAgICAg
ICAgY29uc3RyYWludCBjYWxjdWxhdGlvbiBmdW5jdGlvbiBvdXQgc28gdGhhdCBpdCBjYW4gYmUg
c2hhcmVkIGJ5CisgICAgICAgICAgICB0aGUgc2hhcGUgY29kZS4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OmdldFJvdW5kZWRCb3JkZXJGb3IpOiBDYWxsIHJlbmFtZWQgc2NhbGUgZnVuY3Rpb24uCisKIDIw
MTQtMDMtMDUgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0FUS10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxlQ2VsbCB0
byBBVC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CmluZGV4IDE0MTU3NzA1MDI5OTc0ZjVmNmIxNjVhNmNjZDY2ZjdkNjQ2NDJmMjcuLjAzNjYwZTQz
OGVkZWFlMDNiNTM2MDZlZGRmNDBkNGJkZWMzZWE4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTk4NDgsNiArMTk4NDgsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXG1hdGhtbFxSZW5kZXJNYXRoTUxV
bmRlck92ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHls
ZVxCYXNpY1NoYXBlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHN0eWxlXEJvcmRlckRhdGEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEJvcmRlclZhbHVlLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcQ29sbGFwc2VkQm9yZGVyVmFsdWUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxDb250ZW50
RGF0YS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGU4NGJjNzU3ZGRkMWEyMzMzODk3MzA3NTAwYzkxNWIwMTllNjAzY2Uu
Ljg5ZTk3NmQ3MmYxMjYzNjAxMTIyZjg4MjkyYWUwYTY4OTg4OTAxZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1MjUsNiAr
MzUyNSw3IEBACiAJCTk5RTQ1QTE3MThBMDYzQkUwMDI2RDg4RiAvKiBFdmVudExvb3BJbnB1dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMTYx
OEEwNjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggKi87IH07CiAJCTlBMTE0MjA0MTgz
MkQxMzUwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTExNDIwMzE4MzJEMTM0MDAwQkI4QUQgLyogVmFsdWVU
b1N0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlBMUI2Rjk3MTU4ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUExQjZGOTYx
NTg4NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi87IH07CisJCTlB
NDk4Q0U5MThDN0NCNjIwMDEwRjMwQiAvKiBCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE0OThDRTgxOEM3
Q0I2MjAwMTBGMzBCIC8qIEJvcmRlclJhZGlpQ29uc3RyYWludFNjYWxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUE1MjhFODMxN0Q3RjUyRjAw
QUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QTUyOEU4MTE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdP
YmplY3RzLmNwcCAqLzsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5n
T2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMUFCMDdDMTY0OEM3QzQw
MDUxRjNGMiAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMUFCMDdCMTY0OEM3QzQw
MDUxRjNGMiAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLzsgfTsK
QEAgLTEwNTEzLDYgKzEwNTE0LDcgQEAKIAkJOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8qIEV2
ZW50TG9vcElucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9v
cElucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBMTE0MjAzMTgzMkQxMzQw
MDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZhbHVlVG9TdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUExQjZG
OTYxNTg4NjlDODAwMTFBOEM0IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QTQ5OENFODE4QzdDQjYyMDAxMEYzMEIgLyog
Qm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaDsgcGF0aCA9IHN0eWxlL0JvcmRlclJh
ZGlpQ29uc3RyYWludFNjYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBNTI4
RTgxMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRpbmdPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2Jq
ZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdGluZ09iamVjdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxQUIwNzkxNjQ4QzY5RDAwNTFGM0Yy
IC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRm9ybUNvbnRyb2xz
Q29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDQ3Miw2ICsy
MDQ3NCw3IEBACiAJCQkJRkJENkFGODIxNUVGMjFBMzAwOEI3MTEwIC8qIEJhc2ljU2hhcGVzLmNw
cCAqLywKIAkJCQlGQkQ2QUY4MzE1RUYyMUEzMDA4QjcxMTAgLyogQmFzaWNTaGFwZXMuaCAqLywK
IAkJCQlCQzVFQjVFMDBFODFCRTg3MDBCMjU5NjUgLyogQm9yZGVyRGF0YS5oICovLAorCQkJCTlB
NDk4Q0U4MThDN0NCNjIwMDEwRjMwQiAvKiBCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZS5oICov
LAogCQkJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovLAogCQkJ
CUZCOTJERjQ5MTVGRUQwODcwMDk5NDQzMyAvKiBDbGlwUGF0aE9wZXJhdGlvbi5oICovLAogCQkJ
CUJDNUVCNURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovLApA
QCAtMjI3MTAsNiArMjI3MTMsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCUZFMTE1RkFCMTY3OTg4Q0QwMDI0OTEzNCAvKiBBYnN0cmFjdERh
dGFiYXNlU2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QTQ5OENFOTE4QzdDQjYyMDAxMEYz
MEIgLyogQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZF
NEFBREVFMTZEMkMzNzQwMDAyNkZGQyAvKiBBYnN0cmFjdFNRTFN0YXRlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkU0QUFERUYxNkQyQzM3NDAwMDI2RkZDIC8qIEFic3RyYWN0U1FMU3RhdGVt
ZW50QmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFMUIxRDEwRkY1OTg2OTAwNTc2QjNC
IC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggM2ZlOWI1ODFiMzUzNWM1OWI1NzhiYzQxZGNmNTY4
YTRlODRjYjk3Ny4uN2Q2NmRhODIzMDNmY2I3NDg0NTliNWYzYTcyODhiYjM3ZmU2OTY2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJTaGFwZS5oIgogCiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5o
IgorI2luY2x1ZGUgIkJvcmRlclJhZGlpQ29uc3RyYWludFNjYWxlLmgiCiAjaW5jbHVkZSAiQm94
U2hhcGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5o
IgpAQCAtMTAwLDcgKzEwMSw3IEBAIHN0YXRpYyBpbmxpbmUgRmxvYXRTaXplIHBoeXNpY2FsU2l6
ZVRvTG9naWNhbChjb25zdCBGbG9hdFNpemUmIHNpemUsIFdyaXRpbmdNb2RlCiAgICAgcmV0dXJu
IHNpemUudHJhbnNwb3NlZFNpemUoKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGVuc3VyZVJh
ZGlpRG9Ob3RPdmVybGFwKEZsb2F0UmVjdCAmYm91bmRzLCBGbG9hdFNpemUgJnJhZGlpKQorc3Rh
dGljIGlubGluZSB2b2lkIGVuc3VyZVJhZGlpRG9Ob3RPdmVybGFwKEZsb2F0UmVjdCYgYm91bmRz
LCBGbG9hdFNpemUmIHJhZGlpKQogewogICAgIGZsb2F0IHdpZHRoUmF0aW8gPSBib3VuZHMud2lk
dGgoKSAvICgyICogcmFkaWkud2lkdGgoKSk7CiAgICAgZmxvYXQgaGVpZ2h0UmF0aW8gPSBib3Vu
ZHMuaGVpZ2h0KCkgLyAoMiAqIHJhZGlpLmhlaWdodCgpKTsKQEAgLTIzOSw2ICsyNDAsOCBAQCBQ
YXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFz
aWNTaGFwZSwgY29uc3QgTGF5b3V0UwogICAgICAgICAgICAgZmxvYXRTaXplRm9yTGVuZ3RoU2l6
ZShpbnNldC5ib3R0b21MZWZ0UmFkaXVzKCksIGJveFNpemUpLAogICAgICAgICAgICAgZmxvYXRT
aXplRm9yTGVuZ3RoU2l6ZShpbnNldC5ib3R0b21SaWdodFJhZGl1cygpLCBib3hTaXplKSk7CiAK
KyAgICAgICAgY29ybmVyUmFkaWkuc2NhbGUoY2FsY0JvcmRlclJhZGlpQ29uc3RyYWludFNjYWxl
Rm9yKGxvZ2ljYWxSZWN0LCBjb3JuZXJSYWRpaSkpOworCiAgICAgICAgIHNoYXBlID0gY3JlYXRl
SW5zZXRTaGFwZShGbG9hdFJvdW5kZWRSZWN0KGxvZ2ljYWxSZWN0LCBjb3JuZXJSYWRpaSkpOwog
ICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAppbmRleCBlMDEwN2ZkNmQ5ZTNjNGRjMDY4MmU4NjNmNjVhM2FhNTEw
ZmRhMjBjLi40YmM0N2QxNTc4MWU4NWY4NTUyMDRlNTVjMWZhMTVmYTBkYzk1MzQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTIzLDYg
KzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgog
CisjaW5jbHVkZSAiQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaCIKICNpbmNsdWRlICJDb250
ZW50RGF0YS5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCkBAIC0xMDY2LDM4ICsxMDY3LDYgQEAgc3RhdGljIFJvdW5kZWRSZWN0OjpSYWRp
aSBjYWxjUmFkaWlGb3IoY29uc3QgQm9yZGVyRGF0YSYgYm9yZGVyLCBjb25zdCBMYXlvdXRTaXoK
ICAgICAgICAgICAgIHZhbHVlRm9yTGVuZ3RoKGJvcmRlci5ib3R0b21SaWdodCgpLmhlaWdodCgp
LCBzaXplLmhlaWdodCgpLCByZW5kZXJWaWV3KSkpOwogfQogCi1zdGF0aWMgZmxvYXQgY2FsY0Nv
bnN0cmFpbnRTY2FsZUZvcihjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBSb3VuZGVkUmVj
dDo6UmFkaWkmIHJhZGlpKQotewotICAgIC8vIENvbnN0cmFpbiBjb3JuZXIgcmFkaWkgdXNpbmcg
Q1NTMyBydWxlczoKLSAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWJhY2tncm91bmQv
I3RoZS1ib3JkZXItcmFkaXVzCi0gICAgCi0gICAgZmxvYXQgZmFjdG9yID0gMTsKLSAgICBmbG9h
dCByYWRpaVN1bTsKLQotICAgIC8vIHRvcAotICAgIHJhZGlpU3VtID0gcmFkaWkudG9wTGVmdCgp
LndpZHRoKCkgKyByYWRpaS50b3BSaWdodCgpLndpZHRoKCk7IC8vIENhc3RzIHRvIGF2b2lkIGlu
dGVnZXIgb3ZlcmZsb3cuCi0gICAgaWYgKHJhZGlpU3VtID4gcmVjdC53aWR0aCgpKQotICAgICAg
ICBmYWN0b3IgPSBzdGQ6Om1pbihyZWN0LndpZHRoKCkgLyByYWRpaVN1bSwgZmFjdG9yKTsKLQot
ICAgIC8vIGJvdHRvbQotICAgIHJhZGlpU3VtID0gcmFkaWkuYm90dG9tTGVmdCgpLndpZHRoKCkg
KyByYWRpaS5ib3R0b21SaWdodCgpLndpZHRoKCk7Ci0gICAgaWYgKHJhZGlpU3VtID4gcmVjdC53
aWR0aCgpKQotICAgICAgICBmYWN0b3IgPSBzdGQ6Om1pbihyZWN0LndpZHRoKCkgLyByYWRpaVN1
bSwgZmFjdG9yKTsKLSAgICAKLSAgICAvLyBsZWZ0Ci0gICAgcmFkaWlTdW0gPSByYWRpaS50b3BM
ZWZ0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21MZWZ0KCkuaGVpZ2h0KCk7Ci0gICAgaWYgKHJh
ZGlpU3VtID4gcmVjdC5oZWlnaHQoKSkKLSAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC5o
ZWlnaHQoKSAvIHJhZGlpU3VtLCBmYWN0b3IpOwotICAgIAotICAgIC8vIHJpZ2h0Ci0gICAgcmFk
aWlTdW0gPSByYWRpaS50b3BSaWdodCgpLmhlaWdodCgpICsgcmFkaWkuYm90dG9tUmlnaHQoKS5o
ZWlnaHQoKTsKLSAgICBpZiAocmFkaWlTdW0gPiByZWN0LmhlaWdodCgpKQotICAgICAgICBmYWN0
b3IgPSBzdGQ6Om1pbihyZWN0LmhlaWdodCgpIC8gcmFkaWlTdW0sIGZhY3Rvcik7Ci0gICAgCi0g
ICAgQVNTRVJUKGZhY3RvciA8PSAxKTsKLSAgICByZXR1cm4gZmFjdG9yOwotfQotCiBTdHlsZUlt
YWdlKiBSZW5kZXJTdHlsZTo6bGlzdFN0eWxlSW1hZ2UoKSBjb25zdCB7IHJldHVybiByYXJlSW5o
ZXJpdGVkRGF0YS0+bGlzdFN0eWxlSW1hZ2UuZ2V0KCk7IH0KIHZvaWQgUmVuZGVyU3R5bGU6OnNl
dExpc3RTdHlsZUltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gdikKIHsKQEAgLTExMjAsNyAr
MTA4OSw3IEBAIFJvdW5kZWRSZWN0IFJlbmRlclN0eWxlOjpnZXRSb3VuZGVkQm9yZGVyRm9yKGNv
bnN0IExheW91dFJlY3QmIGJvcmRlclJlY3QsIFJlbmRlCiAgICAgUm91bmRlZFJlY3Qgcm91bmRl
ZFJlY3QoYm9yZGVyUmVjdCk7CiAgICAgaWYgKGhhc0JvcmRlclJhZGl1cygpKSB7CiAgICAgICAg
IFJvdW5kZWRSZWN0OjpSYWRpaSByYWRpaSA9IGNhbGNSYWRpaUZvcihzdXJyb3VuZC0+Ym9yZGVy
LCBib3JkZXJSZWN0LnNpemUoKSwgcmVuZGVyVmlldyk7Ci0gICAgICAgIHJhZGlpLnNjYWxlKGNh
bGNDb25zdHJhaW50U2NhbGVGb3IoYm9yZGVyUmVjdCwgcmFkaWkpKTsKKyAgICAgICAgcmFkaWku
c2NhbGUoY2FsY0JvcmRlclJhZGlpQ29uc3RyYWludFNjYWxlRm9yKGJvcmRlclJlY3QsIHJhZGlp
KSk7CiAgICAgICAgIHJvdW5kZWRSZWN0LmluY2x1ZGVMb2dpY2FsRWRnZXMocmFkaWksIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCksIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlKTsKICAgICB9CiAgICAgcmV0dXJuIHJvdW5kZWRSZWN0OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEw
MDQ5NzAwYTM1NjJlYmQ2ZjZlYjE4ODZhZjhhODViYTIzZWEwOWYuLjMyMTJlOWJiNzE2MTA3MWZk
OWE4Nzk4ODEzZDU3YTFiYzRkNjg0NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMy0w
NSAgQmVtIEpvbmVzLUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNo
YXBlc10gaW5zZXQgZG9lcyBub3QgcHJvcGVybHkgY2xhbXAgbGFyZ2UgY29ybmVyIHJhZGlpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk3MjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc2hh
cGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWluc2V0LXJvdW5k
ZWQtbGFyZ2UtcmFkaXVzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hh
cGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWluc2V0LXJvdW5k
ZWQtbGFyZ2UtcmFkaXVzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTAzLTA1ICBDaGFuZyBTaHUgIDxj
c2h1QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ29weWluZyB3cmFwcGluZyB0ZXh0IHJlc3VsdHMg
aW4gbXVsdGlwbGUgc3BhY2VzIGJldHdlZW4gd3JhcHBlZCBsaW5lcyBzdHJpcHBlZC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226011</attachid>
            <date>2014-03-06 11:05:40 -0800</date>
            <delta_ts>2014-03-06 11:37:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129726-20140306110538.patch</filename>
            <type>text/plain</type>
            <size>17728</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJjNzg0YWFkYzYxMmFm
YjYzNGNhYTgzNzc4MjQyMDQ2ZDU1MTkyZC4uMjI4YzliMjE5OWMwZWExMWNiMWVkODJjZDkwYTFi
MWQxNGFhY2ZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAzLTA1ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBp
bnNldCBkb2VzIG5vdCBwcm9wZXJseSBjbGFtcCBsYXJnZSBjb3JuZXIgcmFkaWkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTcyNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHJh
ZGlpIHRoYXQgYXJlIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgYXNzb2NpYXRlZCBzaGFwZQorICAg
ICAgICBkaW1lbnNpb24gKGhlaWdodCBvciB3aWR0aCkgYXJlIHByb3Blcmx5IHJlZHVjZWQgdGhl
IHNhbWUgd2F5IGFzCisgICAgICAgIGJvcmRlci1yYWRpdXMgcmFkaWkgYXJlLgorCisgICAgICAg
IFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxv
YXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLmh0bWwKKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IEFkZCBuZXcgaGVhZGVyIGZpbGUuCisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZVJhZGlpRG9Ob3RPdmVybGFwKTogRHJpdmUg
Ynkgc3R5bGUgZml4LgorICAgICAgICAoV2ViQ29yZTo6U2hhcGU6OmNyZWF0ZVNoYXBlKTogU2Nh
bGUgcmFkaWkgdGhlIHNhbWUgd2F5IGFzIGJvcmRlcgorICAgICAgICAgICAgcmFkaWkgYXJlIHNj
YWxlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQm9yZGVyUmFkaWlDb25zdHJhaW50U2Nh
bGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWxjQm9yZGVyUmFkaWlDb25zdHJhaW50
U2NhbGVGb3IpOiBNb3ZlIGJvcmRlciByYWRpaQorICAgICAgICAgICAgY29uc3RyYWludCBjYWxj
dWxhdGlvbiBmdW5jdGlvbiBvdXQgc28gdGhhdCBpdCBjYW4gYmUgc2hhcmVkIGJ5CisgICAgICAg
ICAgICB0aGUgc2hhcGUgY29kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmdldFJvdW5kZWRCb3JkZXJG
b3IpOiBDYWxsIHJlbmFtZWQgc2NhbGUgZnVuY3Rpb24uCisKIDIwMTQtMDMtMDYgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBMZWFrOiBkaXNw
YXRjaF9zZW1hcGhvcmUgbGVhayBhbGxvY2F0ZWQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDIxY2ViZDUzY2U5OWFjYWIzZTBmNWRkOWI4YTcx
MDE1YTZiMDdlNi4uZWE1YjAzNDY0OWQ1NzllZDQwNDY2MDg1ZmYxZjY0OTQ2OGNhODY2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00NTQ2LDYgKzQ1NDYsNyBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBl
cy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlclZhbHVlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db2xsYXBzZWRCb3JkZXJWYWx1ZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDE0MTU3NzA1MDI5OTc0
ZjVmNmIxNjVhNmNjZDY2ZjdkNjQ2NDJmMjcuLjAzNjYwZTQzOGVkZWFlMDNiNTM2MDZlZGRmNDBk
NGJkZWMzZWE4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagpAQCAtMTk4NDgsNiArMTk4NDgsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXG1hdGhtbFxSZW5kZXJNYXRoTUxVbmRlck92ZXIuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxCYXNpY1NoYXBlcy5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEJvcmRlckRhdGEuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxCb3JkZXJSYWRp
aUNvbnN0cmFpbnRTY2FsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVy
aW5nXHN0eWxlXEJvcmRlclZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcc3R5bGVcQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxDb250ZW50RGF0YS5oIiAvPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU4NGJj
NzU3ZGRkMWEyMzMzODk3MzA3NTAwYzkxNWIwMTllNjAzY2UuLjg5ZTk3NmQ3MmYxMjYzNjAxMTIy
Zjg4MjkyYWUwYTY4OTg4OTAxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1MjUsNiArMzUyNSw3IEBACiAJCTk5RTQ1QTE3
MThBMDYzQkUwMDI2RDg4RiAvKiBFdmVudExvb3BJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8qIEV2
ZW50TG9vcElucHV0LmggKi87IH07CiAJCTlBMTE0MjA0MTgzMkQxMzUwMDBCQjhBRCAvKiBWYWx1
ZVRvU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QTExNDIwMzE4MzJEMTM0MDAwQkI4QUQgLyogVmFsdWVUb1N0cmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlBMUI2Rjk3MTU4ODY5Qzgw
MDExQThDNCAvKiBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUExQjZGOTYxNTg4NjlDODAwMTFBOEM0IC8qIEpT
RE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi87IH07CisJCTlBNDk4Q0U5MThDN0NCNjIwMDEwRjMw
QiAvKiBCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE0OThDRTgxOEM3Q0I2MjAwMTBGMzBCIC8qIEJvcmRl
clJhZGlpQ29uc3RyYWludFNjYWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOUE1MjhFODMxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2Jq
ZWN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QTUyOEU4MTE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmNwcCAqLzsgfTsKIAkJ
OUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3RjUyRjAwQUE5
NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTlCMUFCMDdDMTY0OEM3QzQwMDUxRjNGMiAvKiBKU0hUTUxGb3Jt
Q29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMUFCMDdCMTY0OEM3QzQwMDUxRjNGMiAvKiBKU0hUTUxGb3Jt
Q29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKQEAgLTEwNTEzLDYgKzEwNTE0LDcg
QEAKIAkJOTlFNDVBMTYxOEEwNjNCRTAwMjZEODhGIC8qIEV2ZW50TG9vcElucHV0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TG9vcElucHV0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlBMTE0MjAzMTgzMkQxMzQwMDBCQjhBRCAvKiBWYWx1ZVRvU3Ry
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlVG9TdHJpbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUExQjZGOTYxNTg4NjlDODAwMTFBOEM0IC8q
IEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5QTQ5OENFODE4QzdDQjYyMDAxMEYzMEIgLyogQm9yZGVyUmFkaWlDb25zdHJhaW50
U2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQm9yZGVyUmFkaWlDb25z
dHJhaW50U2NhbGUuaDsgcGF0aCA9IHN0eWxlL0JvcmRlclJhZGlpQ29uc3RyYWludFNjYWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBNTI4RTgxMTdEN0Y1MkYwMEFBOTUxOCAv
KiBGbG9hdGluZ09iamVjdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRmxvYXRpbmdPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUE1
MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdGluZ09iamVjdHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIxQUIwNzkxNjQ4QzY5RDAwNTFGM0YyIC8qIEhUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDQ3Miw2ICsyMDQ3NCw3IEBACiAJCQkJRkJENkFG
ODIxNUVGMjFBMzAwOEI3MTEwIC8qIEJhc2ljU2hhcGVzLmNwcCAqLywKIAkJCQlGQkQ2QUY4MzE1
RUYyMUEzMDA4QjcxMTAgLyogQmFzaWNTaGFwZXMuaCAqLywKIAkJCQlCQzVFQjVFMDBFODFCRTg3
MDBCMjU5NjUgLyogQm9yZGVyRGF0YS5oICovLAorCQkJCTlBNDk4Q0U4MThDN0NCNjIwMDEwRjMw
QiAvKiBCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZS5oICovLAogCQkJCUJDNUVCNURBMEU4MUI3
RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovLAogCQkJCUZCOTJERjQ5MTVGRUQwODcwMDk5
NDQzMyAvKiBDbGlwUGF0aE9wZXJhdGlvbi5oICovLAogCQkJCUJDNUVCNURFMEU4MUI5QUIwMEIy
NTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovLApAQCAtMjI3MTAsNiArMjI3MTMsNyBA
QAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUZF
MTE1RkFCMTY3OTg4Q0QwMDI0OTEzNCAvKiBBYnN0cmFjdERhdGFiYXNlU2VydmVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5QTQ5OENFOTE4QzdDQjYyMDAxMEYzMEIgLyogQm9yZGVyUmFkaWlDb25z
dHJhaW50U2NhbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNEFBREVFMTZEMkMzNzQwMDAyNkZG
QyAvKiBBYnN0cmFjdFNRTFN0YXRlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU0QUFERUYx
NkQyQzM3NDAwMDI2RkZDIC8qIEFic3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFFMUIxRDEwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAK
aW5kZXggM2ZlOWI1ODFiMzUzNWM1OWI1NzhiYzQxZGNmNTY4YTRlODRjYjk3Ny4uN2Q2NmRhODIz
MDNmY2I3NDg0NTliNWYzYTcyODhiYjM3ZmU2OTY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFwZS5o
IgogCiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIkJvcmRlclJh
ZGlpQ29uc3RyYWludFNjYWxlLmgiCiAjaW5jbHVkZSAiQm94U2hhcGUuaCIKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgpAQCAtMTAwLDcgKzEwMSw3IEBA
IHN0YXRpYyBpbmxpbmUgRmxvYXRTaXplIHBoeXNpY2FsU2l6ZVRvTG9naWNhbChjb25zdCBGbG9h
dFNpemUmIHNpemUsIFdyaXRpbmdNb2RlCiAgICAgcmV0dXJuIHNpemUudHJhbnNwb3NlZFNpemUo
KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGVuc3VyZVJhZGlpRG9Ob3RPdmVybGFwKEZsb2F0
UmVjdCAmYm91bmRzLCBGbG9hdFNpemUgJnJhZGlpKQorc3RhdGljIGlubGluZSB2b2lkIGVuc3Vy
ZVJhZGlpRG9Ob3RPdmVybGFwKEZsb2F0UmVjdCYgYm91bmRzLCBGbG9hdFNpemUmIHJhZGlpKQog
ewogICAgIGZsb2F0IHdpZHRoUmF0aW8gPSBib3VuZHMud2lkdGgoKSAvICgyICogcmFkaWkud2lk
dGgoKSk7CiAgICAgZmxvYXQgaGVpZ2h0UmF0aW8gPSBib3VuZHMuaGVpZ2h0KCkgLyAoMiAqIHJh
ZGlpLmhlaWdodCgpKTsKQEAgLTIzOSw2ICsyNDAsOCBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFw
ZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGF5b3V0
UwogICAgICAgICAgICAgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNldC5ib3R0b21MZWZ0UmFk
aXVzKCksIGJveFNpemUpLAogICAgICAgICAgICAgZmxvYXRTaXplRm9yTGVuZ3RoU2l6ZShpbnNl
dC5ib3R0b21SaWdodFJhZGl1cygpLCBib3hTaXplKSk7CiAKKyAgICAgICAgY29ybmVyUmFkaWku
c2NhbGUoY2FsY0JvcmRlclJhZGlpQ29uc3RyYWludFNjYWxlRm9yKGxvZ2ljYWxSZWN0LCBjb3Ju
ZXJSYWRpaSkpOworCiAgICAgICAgIHNoYXBlID0gY3JlYXRlSW5zZXRTaGFwZShGbG9hdFJvdW5k
ZWRSZWN0KGxvZ2ljYWxSZWN0LCBjb3JuZXJSYWRpaSkpOwogICAgICAgICBicmVhazsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyUmFkaWlD
b25zdHJhaW50U2NhbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJS
YWRpaUNvbnN0cmFpbnRTY2FsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNzA0MThmMGIwOTJkODEyNDlmNzc1
ZGFkZjU3MThlZGZjZjJkZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGUuaApAQCAtMCwwICsxLDY1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUu
b3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpZm5kZWYgQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGVfaAorI2RlZmluZSBCb3JkZXJSYWRp
aUNvbnN0cmFpbnRTY2FsZV9oCisKKyNpbXBvcnQgIkZsb2F0UmVjdC5oIgorI2ltcG9ydCAiRmxv
YXRSb3VuZGVkUmVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBmbG9hdCBj
YWxjQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGVGb3IoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaSYgcmFkaWkpCit7CisgICAgLy8gQ29uc3RyYWlu
IGNvcm5lciByYWRpaSB1c2luZyBDU1MzIHJ1bGVzOgorICAgIC8vIGh0dHA6Ly93d3cudzMub3Jn
L1RSL2NzczMtYmFja2dyb3VuZC8jdGhlLWJvcmRlci1yYWRpdXMKKworICAgIGZsb2F0IGZhY3Rv
ciA9IDE7CisgICAgZmxvYXQgcmFkaWlTdW07CisKKyAgICAvLyB0b3AKKyAgICByYWRpaVN1bSA9
IHJhZGlpLnRvcExlZnQoKS53aWR0aCgpICsgcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpOyAvLyBD
YXN0cyB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93LgorICAgIGlmIChyYWRpaVN1bSA+IHJlY3Qu
d2lkdGgoKSkKKyAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53aWR0aCgpIC8gcmFkaWlT
dW0sIGZhY3Rvcik7CisKKyAgICAvLyBib3R0b20KKyAgICByYWRpaVN1bSA9IHJhZGlpLmJvdHRv
bUxlZnQoKS53aWR0aCgpICsgcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgpOworICAgIGlmIChy
YWRpaVN1bSA+IHJlY3Qud2lkdGgoKSkKKyAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53
aWR0aCgpIC8gcmFkaWlTdW0sIGZhY3Rvcik7CisKKyAgICAvLyBsZWZ0CisgICAgcmFkaWlTdW0g
PSByYWRpaS50b3BMZWZ0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21MZWZ0KCkuaGVpZ2h0KCk7
CisgICAgaWYgKHJhZGlpU3VtID4gcmVjdC5oZWlnaHQoKSkKKyAgICAgICAgZmFjdG9yID0gc3Rk
OjptaW4ocmVjdC5oZWlnaHQoKSAvIHJhZGlpU3VtLCBmYWN0b3IpOworCisgICAgLy8gcmlnaHQK
KyAgICByYWRpaVN1bSA9IHJhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21S
aWdodCgpLmhlaWdodCgpOworICAgIGlmIChyYWRpaVN1bSA+IHJlY3QuaGVpZ2h0KCkpCisgICAg
ICAgIGZhY3RvciA9IHN0ZDo6bWluKHJlY3QuaGVpZ2h0KCkgLyByYWRpaVN1bSwgZmFjdG9yKTsK
KworICAgIEFTU0VSVChmYWN0b3IgPD0gMSk7CisgICAgcmV0dXJuIGZhY3RvcjsKK30KKworfQor
CisjZW5kaWYgLy8gQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGVfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZTAxMDdmZDZkOWUzYzRk
YzA2ODJlODYzZjY1YTNhYTUxMGZkYTIwYy4uNGJjNDdkMTU3ODFlODVmODU1MjA0ZTU1YzFmYTE1
ZmEwZGM5NTM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKIAorI2luY2x1ZGUgIkJvcmRlclJhZGlpQ29uc3RyYWludFNjYWxl
LmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgpAQCAtMTA2NiwzOCArMTA2Nyw2IEBAIHN0YXRp
YyBSb3VuZGVkUmVjdDo6UmFkaWkgY2FsY1JhZGlpRm9yKGNvbnN0IEJvcmRlckRhdGEmIGJvcmRl
ciwgY29uc3QgTGF5b3V0U2l6CiAgICAgICAgICAgICB2YWx1ZUZvckxlbmd0aChib3JkZXIuYm90
dG9tUmlnaHQoKS5oZWlnaHQoKSwgc2l6ZS5oZWlnaHQoKSwgcmVuZGVyVmlldykpKTsKIH0KIAot
c3RhdGljIGZsb2F0IGNhbGNDb25zdHJhaW50U2NhbGVGb3IoY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCwgY29uc3QgUm91bmRlZFJlY3Q6OlJhZGlpJiByYWRpaSkKLXsKLSAgICAvLyBDb25zdHJhaW4g
Y29ybmVyIHJhZGlpIHVzaW5nIENTUzMgcnVsZXM6Ci0gICAgLy8gaHR0cDovL3d3dy53My5vcmcv
VFIvY3NzMy1iYWNrZ3JvdW5kLyN0aGUtYm9yZGVyLXJhZGl1cwotICAgIAotICAgIGZsb2F0IGZh
Y3RvciA9IDE7Ci0gICAgZmxvYXQgcmFkaWlTdW07Ci0KLSAgICAvLyB0b3AKLSAgICByYWRpaVN1
bSA9IHJhZGlpLnRvcExlZnQoKS53aWR0aCgpICsgcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpOyAv
LyBDYXN0cyB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93LgotICAgIGlmIChyYWRpaVN1bSA+IHJl
Y3Qud2lkdGgoKSkKLSAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53aWR0aCgpIC8gcmFk
aWlTdW0sIGZhY3Rvcik7Ci0KLSAgICAvLyBib3R0b20KLSAgICByYWRpaVN1bSA9IHJhZGlpLmJv
dHRvbUxlZnQoKS53aWR0aCgpICsgcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgpOwotICAgIGlm
IChyYWRpaVN1bSA+IHJlY3Qud2lkdGgoKSkKLSAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVj
dC53aWR0aCgpIC8gcmFkaWlTdW0sIGZhY3Rvcik7Ci0gICAgCi0gICAgLy8gbGVmdAotICAgIHJh
ZGlpU3VtID0gcmFkaWkudG9wTGVmdCgpLmhlaWdodCgpICsgcmFkaWkuYm90dG9tTGVmdCgpLmhl
aWdodCgpOwotICAgIGlmIChyYWRpaVN1bSA+IHJlY3QuaGVpZ2h0KCkpCi0gICAgICAgIGZhY3Rv
ciA9IHN0ZDo6bWluKHJlY3QuaGVpZ2h0KCkgLyByYWRpaVN1bSwgZmFjdG9yKTsKLSAgICAKLSAg
ICAvLyByaWdodAotICAgIHJhZGlpU3VtID0gcmFkaWkudG9wUmlnaHQoKS5oZWlnaHQoKSArIHJh
ZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCk7Ci0gICAgaWYgKHJhZGlpU3VtID4gcmVjdC5oZWln
aHQoKSkKLSAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC5oZWlnaHQoKSAvIHJhZGlpU3Vt
LCBmYWN0b3IpOwotICAgIAotICAgIEFTU0VSVChmYWN0b3IgPD0gMSk7Ci0gICAgcmV0dXJuIGZh
Y3RvcjsKLX0KLQogU3R5bGVJbWFnZSogUmVuZGVyU3R5bGU6Omxpc3RTdHlsZUltYWdlKCkgY29u
c3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmxpc3RTdHlsZUltYWdlLmdldCgpOyB9CiB2
b2lkIFJlbmRlclN0eWxlOjpzZXRMaXN0U3R5bGVJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+
IHYpCiB7CkBAIC0xMTIwLDcgKzEwODksNyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJTdHlsZTo6Z2V0
Um91bmRlZEJvcmRlckZvcihjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBSZW5kZQogICAg
IFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KGJvcmRlclJlY3QpOwogICAgIGlmIChoYXNCb3JkZXJS
YWRpdXMoKSkgewogICAgICAgICBSb3VuZGVkUmVjdDo6UmFkaWkgcmFkaWkgPSBjYWxjUmFkaWlG
b3Ioc3Vycm91bmQtPmJvcmRlciwgYm9yZGVyUmVjdC5zaXplKCksIHJlbmRlclZpZXcpOwotICAg
ICAgICByYWRpaS5zY2FsZShjYWxjQ29uc3RyYWludFNjYWxlRm9yKGJvcmRlclJlY3QsIHJhZGlp
KSk7CisgICAgICAgIHJhZGlpLnNjYWxlKGNhbGNCb3JkZXJSYWRpaUNvbnN0cmFpbnRTY2FsZUZv
cihib3JkZXJSZWN0LCByYWRpaSkpOwogICAgICAgICByb3VuZGVkUmVjdC5pbmNsdWRlTG9naWNh
bEVkZ2VzKHJhZGlpLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpLCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAgICAgfQogICAgIHJldHVybiByb3Vu
ZGVkUmVjdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA3YzRkN2I3ZDVlMWExYjBjYjM0MTg4N2YyNzkxOTRlMWUwZDM5NzFk
Li4xMTI1NGQ5ZjlmOWQ3ZGQ2NzQxMzJhNTlkNDMwNTljY2VkNzU4MTJkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTQtMDMtMDUgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+
CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIGluc2V0IGRvZXMgbm90IHByb3Blcmx5IGNsYW1wIGxh
cmdlIGNvcm5lciByYWRpaQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI5NzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy5odG1sOiBBZGRlZC4KKwogMjAxNC0w
My0wNiAgQnJlbmRhbiBMb25nICA8Yi5sb25nQGNhYmxlbGFicy5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50IFZpZGVvVHJhY2tMaXN0LnNlbGVjdGVkSW5kZXgKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRz
LWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1pbnNl
dC1yb3VuZGVkLWxhcmdlLXJhZGl1cy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiYTAzNTky
YWQyNWQyYTIxNzFlOTg1NjIwMWNkNzEzNzA1YTU1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZs
b2F0cy1pbnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
NjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5jb250YWlu
ZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBmb250OiAyMHB4LzEgQWhlbSwgc2Fu
cy1zZXJpZjsKKyAgICB3aWR0aDogNTAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKK30KKworLnJvdW5kZWQtcmVjdCB7CisgICAgd2lkdGg6IDMy
MHB4OworICAgIGhlaWdodDogMTYwcHg7CisgICAgYm9yZGVyLXJhZGl1czogODBweDsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjcmlnaHQtcm91bmRlZC1yZWN0LW91dGxpbmUg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDIwcHg7CisgICAgcmlnaHQ6IDBw
eDsKK30KKworCisucmlnaHQtcm91bmRlZC1yZWN0LWZsb2F0LWxpbmUgeworICAgIGZsb2F0OiBy
aWdodDsKKyAgICBjbGVhcjogcmlnaHQ7CisgICAgaGVpZ2h0OiAyMHB4OworfQorPC9zdHlsZT4K
Kzxib2R5PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQi
PgorWDxici8+CisgICAgPGRpdiBpZD0icmlnaHQtcm91bmRlZC1yZWN0LW91dGxpbmUiIGNsYXNz
PSJyb3VuZGVkLXJlY3QiPjwvZGl2PgorICAgIDwhLS0gZ2VuZXJhdGVkIHJpZ2h0LXJvdW5kZWQt
cmVjdC1mbG9hdC1saW5lIGRpdnMgd2lsbCBiZSBpbnNlcnRlZCBoZXJlIC0tPgorWDxici8+CitY
PGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1gK
KzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3N1YnBpeGVsLXV0aWxzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitnZW5SaWdodFJvdW5kZWRSZWN0RmxvYXRTaGFwZU91dHNpZGVS
ZWZUZXN0KHsKKyAgICByb3VuZGVkUmVjdDoge3g6IDAsIHk6IDIwLCB3aWR0aDogMzIwLCBoZWln
aHQ6IDE2MCwgcng6IDgwLCByeTogODB9LAorICAgIGNvbnRhaW5lcldpZHRoOiA1MDAsCisgICAg
Y29udGFpbmVySGVpZ2h0OiAyMDAsCisgICAgbGluZUhlaWdodDogMjAsCisgICAgZmxvYXRFbGVt
ZW50Q2xhc3NTdWZmaXg6ICJyb3VuZGVkLXJlY3QtZmxvYXQtbGluZSIsCisgICAgaW5zZXJ0RWxl
bWVudElkU3VmZml4OiAicm91bmRlZC1yZWN0LW91dGxpbmUiLAorfSk7Cis8L3NjcmlwdD4KKwor
PHA+UmVxdWlyZXMgQWhlbSBmb250LiBUaGVyZSBpcyBhIDBweCBzaXplIGluc2V0IGFwcGxpZWQg
b24gdGhlIHJpZ2h0IGZsb2F0IHdpdGggMjAwcHggcmFkaXVzLjxicj4KK1RoZSBibGFjayBzcXVh
cmVzIHNob3VsZCB0cmFjZSB0aGUgbGVmdCBzaWRlIG9mIHRoZSByb3VuZGVkIHJlY3RhbmdsZSdz
IGJsdWUgb3V0bGluZS48L3A+Cis8cD5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi8x
Mjk3MjYiPjEyOTcyNjwvYT46IFtDU1MgU2hhcGVzXSBpbnNldCBkb2VzIG5vdCBwcm9wZXJseSBj
bGFtcCBsYXJnZSBjb3JuZXIgcmFkaWk8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91
dHNpZGUtZmxvYXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1p
bnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZGJjNzQ5YmZmMjA2
OGM5MGI1YjViN2FkNGJmNDU5NzZiZWJjYTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1p
bnNldC1yb3VuZGVkLWxhcmdlLXJhZGl1cy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8c3R5bGU+CisuY29udGFpbmVyIHsKKyAgICBmb250OiAyMHB4LzEg
QWhlbSwgc2Fucy1zZXJpZjsKKyAgICB3aWR0aDogNTAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKworLnJvdW5kZWQtcmVjdCB7CisgICAg
d2lkdGg6IDMyMHB4OworICAgIGhlaWdodDogMTYwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKKyAgICBib3JkZXItcmFkaXVzOiAyMDBweDsKKyAgICAtd2Via2l0LXNoYXBlLW91dHNp
ZGU6IGluc2V0KDBweCByb3VuZCAyMDBweCk7Cit9Cis8L3N0eWxlPgorCis8Ym9keT4KKzxkaXYg
Y2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij4KK1g8YnIvPgorICAg
IDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodCIgY2xhc3M9InJvdW5kZWQtcmVjdCI+PC9kaXY+CitY
PGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1g8
YnIvPgorWAorPC9kaXY+CisKKzxwPlJlcXVpcmVzIEFoZW0gZm9udC4gVGhlcmUgaXMgYSAwcHgg
c2l6ZSBpbnNldCBhcHBsaWVkIG9uIHRoZSByaWdodCBmbG9hdCB3aXRoIDIwMHB4IHJhZGl1cy48
YnI+CitUaGUgYmxhY2sgc3F1YXJlcyBzaG91bGQgdHJhY2UgdGhlIGxlZnQgc2lkZSBvZiB0aGUg
cm91bmRlZCByZWN0YW5nbGUncyBibHVlIG91dGxpbmUuPC9wPgorPHA+QnVnIDxhIGhyZWY9Imh0
dHA6Ly93ZWJraXQub3JnL2IvMTI5NzI2Ij4xMjk3MjY8L2E+OiBbQ1NTIFNoYXBlc10gaW5zZXQg
ZG9lcyBub3QgcHJvcGVybHkgY2xhbXAgbGFyZ2UgY29ybmVyIHJhZGlpPC9wPgorCis8L2JvZHk+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226019</attachid>
            <date>2014-03-06 11:37:45 -0800</date>
            <delta_ts>2014-03-07 08:19:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129726-20140306113743.patch</filename>
            <type>text/plain</type>
            <size>11039</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJjNzg0YWFkYzYxMmFm
YjYzNGNhYTgzNzc4MjQyMDQ2ZDU1MTkyZC4uN2VjNTIwZTNmMzdkODkyNGU3N2U1YzE3ZTRhYmY0
ZmRjMTVlZjE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAzLTA2ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBp
bnNldCBkb2VzIG5vdCBwcm9wZXJseSBjbGFtcCBsYXJnZSBjb3JuZXIgcmFkaWkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTcyNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHJh
ZGlpIHRoYXQgYXJlIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgYXNzb2NpYXRlZCBzaGFwZQorICAg
ICAgICBkaW1lbnNpb24gKGhlaWdodCBvciB3aWR0aCkgYXJlIHByb3Blcmx5IHJlZHVjZWQgdGhl
IHNhbWUgd2F5IGFzCisgICAgICAgIGJvcmRlci1yYWRpdXMgcmFkaWkgYXJlLgorCisgICAgICAg
IFRlc3Q6IGZhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxv
YXRzLWluc2V0LXJvdW5kZWQtbGFyZ2UtcmFkaXVzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlUmFkaWlEb05vdE92
ZXJsYXApOiBEcml2ZSBieSBzdHlsZSBmaXguCisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3Jl
YXRlU2hhcGUpOiBTY2FsZSByYWRpaSB0aGUgc2FtZSB3YXkgYXMgYm9yZGVyCisgICAgICAgICAg
ICByYWRpaSBhcmUgc2NhbGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91
bmRlZFJlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGNCb3JkZXJSYWRpaUNvbnN0cmFpbnRT
Y2FsZUZvcik6IE1vdmUgYm9yZGVyIHJhZGlpCisgICAgICAgICAgICBjb25zdHJhaW50IGNhbGN1
bGF0aW9uIGZ1bmN0aW9uIG91dCBzbyB0aGF0IGl0IGNhbiBiZSBzaGFyZWQgYnkKKyAgICAgICAg
ICAgIHRoZSBzaGFwZSBjb2RlLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Z2V0Um91bmRlZEJvcmRlckZv
cik6IENhbGwgcmVuYW1lZCBzY2FsZSBmdW5jdGlvbi4KKwogMjAxNC0wMy0wNiAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIExlYWs6IGRpc3Bh
dGNoX3NlbWFwaG9yZSBsZWFrIGFsbG9jYXRlZCBpbiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjp3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKaW5k
ZXggOTViZjUyNjcxMmZhYmEwMzAwNTU5MDU2NDc1MjgxYmIwOTg2NmNhNy4uNjBhNmE1ZGZiODE5
N2UzZTFiY2M0MWMxYTJiYjczZDEwMDMwMDJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaApAQCAtMTM0LDYgKzEzNCwzOCBA
QCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGEsIGNvbnN0
IEZsb2F0Um91bmRlZFJlY3QmIGIpCiAgICAgcmV0dXJuIGEucmVjdCgpID09IGIucmVjdCgpICYm
IGEucmFkaWkoKSA9PSBiLnJhZGlpKCk7CiB9CiAKK2lubGluZSBmbG9hdCBjYWxjQm9yZGVyUmFk
aWlDb25zdHJhaW50U2NhbGVGb3IoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJv
dW5kZWRSZWN0OjpSYWRpaSYgcmFkaWkpCit7CisgICAgLy8gQ29uc3RyYWluIGNvcm5lciByYWRp
aSB1c2luZyBDU1MzIHJ1bGVzOgorICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYmFj
a2dyb3VuZC8jdGhlLWJvcmRlci1yYWRpdXMKKworICAgIGZsb2F0IGZhY3RvciA9IDE7CisgICAg
ZmxvYXQgcmFkaWlTdW07CisKKyAgICAvLyB0b3AKKyAgICByYWRpaVN1bSA9IHJhZGlpLnRvcExl
ZnQoKS53aWR0aCgpICsgcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpOyAvLyBDYXN0cyB0byBhdm9p
ZCBpbnRlZ2VyIG92ZXJmbG93LgorICAgIGlmIChyYWRpaVN1bSA+IHJlY3Qud2lkdGgoKSkKKyAg
ICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53aWR0aCgpIC8gcmFkaWlTdW0sIGZhY3Rvcik7
CisKKyAgICAvLyBib3R0b20KKyAgICByYWRpaVN1bSA9IHJhZGlpLmJvdHRvbUxlZnQoKS53aWR0
aCgpICsgcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgpOworICAgIGlmIChyYWRpaVN1bSA+IHJl
Y3Qud2lkdGgoKSkKKyAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC53aWR0aCgpIC8gcmFk
aWlTdW0sIGZhY3Rvcik7CisKKyAgICAvLyBsZWZ0CisgICAgcmFkaWlTdW0gPSByYWRpaS50b3BM
ZWZ0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21MZWZ0KCkuaGVpZ2h0KCk7CisgICAgaWYgKHJh
ZGlpU3VtID4gcmVjdC5oZWlnaHQoKSkKKyAgICAgICAgZmFjdG9yID0gc3RkOjptaW4ocmVjdC5o
ZWlnaHQoKSAvIHJhZGlpU3VtLCBmYWN0b3IpOworCisgICAgLy8gcmlnaHQKKyAgICByYWRpaVN1
bSA9IHJhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21SaWdodCgpLmhlaWdo
dCgpOworICAgIGlmIChyYWRpaVN1bSA+IHJlY3QuaGVpZ2h0KCkpCisgICAgICAgIGZhY3RvciA9
IHN0ZDo6bWluKHJlY3QuaGVpZ2h0KCkgLyByYWRpaVN1bSwgZmFjdG9yKTsKKworICAgIEFTU0VS
VChmYWN0b3IgPD0gMSk7CisgICAgcmV0dXJuIGZhY3RvcjsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRmxvYXRSb3VuZGVkUmVjdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCmluZGV4IDNmZTliNTgxYjM1MzVjNTliNTc4YmM0MWRj
ZjU2OGE0ZTg0Y2I5NzcuLmNlMjE1YWM0MmE0Njc3MTRmYjA5M2I3ODExY2Q3ODNmODc0YTVjZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCkBAIC0xMDAsNyAr
MTAwLDcgQEAgc3RhdGljIGlubGluZSBGbG9hdFNpemUgcGh5c2ljYWxTaXplVG9Mb2dpY2FsKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgV3JpdGluZ01vZGUKICAgICByZXR1cm4gc2l6ZS50cmFuc3Bv
c2VkU2l6ZSgpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZW5zdXJlUmFkaWlEb05vdE92ZXJs
YXAoRmxvYXRSZWN0ICZib3VuZHMsIEZsb2F0U2l6ZSAmcmFkaWkpCitzdGF0aWMgaW5saW5lIHZv
aWQgZW5zdXJlUmFkaWlEb05vdE92ZXJsYXAoRmxvYXRSZWN0JiBib3VuZHMsIEZsb2F0U2l6ZSYg
cmFkaWkpCiB7CiAgICAgZmxvYXQgd2lkdGhSYXRpbyA9IGJvdW5kcy53aWR0aCgpIC8gKDIgKiBy
YWRpaS53aWR0aCgpKTsKICAgICBmbG9hdCBoZWlnaHRSYXRpbyA9IGJvdW5kcy5oZWlnaHQoKSAv
ICgyICogcmFkaWkuaGVpZ2h0KCkpOwpAQCAtMjM5LDYgKzIzOSw4IEBAIFBhc3NPd25QdHI8U2hh
cGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25z
dCBMYXlvdXRTCiAgICAgICAgICAgICBmbG9hdFNpemVGb3JMZW5ndGhTaXplKGluc2V0LmJvdHRv
bUxlZnRSYWRpdXMoKSwgYm94U2l6ZSksCiAgICAgICAgICAgICBmbG9hdFNpemVGb3JMZW5ndGhT
aXplKGluc2V0LmJvdHRvbVJpZ2h0UmFkaXVzKCksIGJveFNpemUpKTsKIAorICAgICAgICBjb3Ju
ZXJSYWRpaS5zY2FsZShjYWxjQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGVGb3IobG9naWNhbFJl
Y3QsIGNvcm5lclJhZGlpKSk7CisKICAgICAgICAgc2hhcGUgPSBjcmVhdGVJbnNldFNoYXBlKEZs
b2F0Um91bmRlZFJlY3QobG9naWNhbFJlY3QsIGNvcm5lclJhZGlpKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCmluZGV4IGUwMTA3ZmQ2ZDllM2M0ZGMwNjgyZTg2M2Y2NWEzYWE1MTBmZGEyMGMuLjNlMDYx
N2RjNjNhYjM5YzhkMWIxODhmZTM4ODg3ZDUzMmM4MjQ1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgIkNvbnRlbnREYXRhLmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5j
bHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIlBhZ2lu
YXRpb24uaCIKQEAgLTEwNjYsMzggKzEwNjcsNiBAQCBzdGF0aWMgUm91bmRlZFJlY3Q6OlJhZGlp
IGNhbGNSYWRpaUZvcihjb25zdCBCb3JkZXJEYXRhJiBib3JkZXIsIGNvbnN0IExheW91dFNpegog
ICAgICAgICAgICAgdmFsdWVGb3JMZW5ndGgoYm9yZGVyLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCks
IHNpemUuaGVpZ2h0KCksIHJlbmRlclZpZXcpKSk7CiB9CiAKLXN0YXRpYyBmbG9hdCBjYWxjQ29u
c3RyYWludFNjYWxlRm9yKGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJvdW5kZWRSZWN0
OjpSYWRpaSYgcmFkaWkpCi17Ci0gICAgLy8gQ29uc3RyYWluIGNvcm5lciByYWRpaSB1c2luZyBD
U1MzIHJ1bGVzOgotICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYmFja2dyb3VuZC8j
dGhlLWJvcmRlci1yYWRpdXMKLSAgICAKLSAgICBmbG9hdCBmYWN0b3IgPSAxOwotICAgIGZsb2F0
IHJhZGlpU3VtOwotCi0gICAgLy8gdG9wCi0gICAgcmFkaWlTdW0gPSByYWRpaS50b3BMZWZ0KCku
d2lkdGgoKSArIHJhZGlpLnRvcFJpZ2h0KCkud2lkdGgoKTsgLy8gQ2FzdHMgdG8gYXZvaWQgaW50
ZWdlciBvdmVyZmxvdy4KLSAgICBpZiAocmFkaWlTdW0gPiByZWN0LndpZHRoKCkpCi0gICAgICAg
IGZhY3RvciA9IHN0ZDo6bWluKHJlY3Qud2lkdGgoKSAvIHJhZGlpU3VtLCBmYWN0b3IpOwotCi0g
ICAgLy8gYm90dG9tCi0gICAgcmFkaWlTdW0gPSByYWRpaS5ib3R0b21MZWZ0KCkud2lkdGgoKSAr
IHJhZGlpLmJvdHRvbVJpZ2h0KCkud2lkdGgoKTsKLSAgICBpZiAocmFkaWlTdW0gPiByZWN0Lndp
ZHRoKCkpCi0gICAgICAgIGZhY3RvciA9IHN0ZDo6bWluKHJlY3Qud2lkdGgoKSAvIHJhZGlpU3Vt
LCBmYWN0b3IpOwotICAgIAotICAgIC8vIGxlZnQKLSAgICByYWRpaVN1bSA9IHJhZGlpLnRvcExl
ZnQoKS5oZWlnaHQoKSArIHJhZGlpLmJvdHRvbUxlZnQoKS5oZWlnaHQoKTsKLSAgICBpZiAocmFk
aWlTdW0gPiByZWN0LmhlaWdodCgpKQotICAgICAgICBmYWN0b3IgPSBzdGQ6Om1pbihyZWN0Lmhl
aWdodCgpIC8gcmFkaWlTdW0sIGZhY3Rvcik7Ci0gICAgCi0gICAgLy8gcmlnaHQKLSAgICByYWRp
aVN1bSA9IHJhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkgKyByYWRpaS5ib3R0b21SaWdodCgpLmhl
aWdodCgpOwotICAgIGlmIChyYWRpaVN1bSA+IHJlY3QuaGVpZ2h0KCkpCi0gICAgICAgIGZhY3Rv
ciA9IHN0ZDo6bWluKHJlY3QuaGVpZ2h0KCkgLyByYWRpaVN1bSwgZmFjdG9yKTsKLSAgICAKLSAg
ICBBU1NFUlQoZmFjdG9yIDw9IDEpOwotICAgIHJldHVybiBmYWN0b3I7Ci19Ci0KIFN0eWxlSW1h
Z2UqIFJlbmRlclN0eWxlOjpsaXN0U3R5bGVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhl
cml0ZWREYXRhLT5saXN0U3R5bGVJbWFnZS5nZXQoKTsgfQogdm9pZCBSZW5kZXJTdHlsZTo6c2V0
TGlzdFN0eWxlSW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiB2KQogewpAQCAtMTEyMCw3ICsx
MDg5LDcgQEAgUm91bmRlZFJlY3QgUmVuZGVyU3R5bGU6OmdldFJvdW5kZWRCb3JkZXJGb3IoY29u
c3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgUmVuZGUKICAgICBSb3VuZGVkUmVjdCByb3VuZGVk
UmVjdChib3JkZXJSZWN0KTsKICAgICBpZiAoaGFzQm9yZGVyUmFkaXVzKCkpIHsKICAgICAgICAg
Um91bmRlZFJlY3Q6OlJhZGlpIHJhZGlpID0gY2FsY1JhZGlpRm9yKHN1cnJvdW5kLT5ib3JkZXIs
IGJvcmRlclJlY3Quc2l6ZSgpLCByZW5kZXJWaWV3KTsKLSAgICAgICAgcmFkaWkuc2NhbGUoY2Fs
Y0NvbnN0cmFpbnRTY2FsZUZvcihib3JkZXJSZWN0LCByYWRpaSkpOworICAgICAgICByYWRpaS5z
Y2FsZShjYWxjQm9yZGVyUmFkaWlDb25zdHJhaW50U2NhbGVGb3IoYm9yZGVyUmVjdCwgcmFkaWkp
KTsKICAgICAgICAgcm91bmRlZFJlY3QuaW5jbHVkZUxvZ2ljYWxFZGdlcyhyYWRpaSwgaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UpOwogICAgIH0KICAgICByZXR1cm4gcm91bmRlZFJlY3Q7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2M0
ZDdiN2Q1ZTFhMWIwY2IzNDE4ODdmMjc5MTk0ZTFlMGQzOTcxZC4uNDQ1OTQ4OWNhOGJkOTdlZjli
NGMyYTQ3ZTg3YmNkNmNhOGNmYmMyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTAzLTA2
ICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
cGVzXSBpbnNldCBkb2VzIG5vdCBwcm9wZXJseSBjbGFtcCBsYXJnZSBjb3JuZXIgcmFkaWkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTcyNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zaGFw
ZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRl
ZC1sYXJnZS1yYWRpdXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFw
ZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRl
ZC1sYXJnZS1yYWRpdXMuaHRtbDogQWRkZWQuCisKIDIwMTQtMDMtMDYgIEJyZW5kYW4gTG9uZyAg
PGIubG9uZ0BjYWJsZWxhYnMuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBWaWRlb1RyYWNrTGlz
dC5zZWxlY3RlZEluZGV4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFw
ZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1pbnNldC1yb3VuZGVkLWxhcmdl
LXJhZGl1cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1yYWRp
dXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmEwMzU5MmFkMjVkMmEyMTcxZTk4NTYyMDFj
ZDcxMzcwNWE1NTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMv
c2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1s
YXJnZS1yYWRpdXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgZm9udDogMjBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgd2lkdGg6
IDUwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7
Cit9CisKKy5yb3VuZGVkLXJlY3QgeworICAgIHdpZHRoOiAzMjBweDsKKyAgICBoZWlnaHQ6IDE2
MHB4OworICAgIGJvcmRlci1yYWRpdXM6IDgwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKK30KKworI3JpZ2h0LXJvdW5kZWQtcmVjdC1vdXRsaW5lIHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgdG9wOiAyMHB4OworICAgIHJpZ2h0OiAwcHg7Cit9CisKKworLnJpZ2h0LXJv
dW5kZWQtcmVjdC1mbG9hdC1saW5lIHsKKyAgICBmbG9hdDogcmlnaHQ7CisgICAgY2xlYXI6IHJp
Z2h0OworICAgIGhlaWdodDogMjBweDsKK30KKzwvc3R5bGU+Cis8Ym9keT4KKzxkaXYgY2xhc3M9
ImNvbnRhaW5lciIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij4KK1g8YnIvPgorICAgIDxkaXYg
aWQ9InJpZ2h0LXJvdW5kZWQtcmVjdC1vdXRsaW5lIiBjbGFzcz0icm91bmRlZC1yZWN0Ij48L2Rp
dj4KKyAgICA8IS0tIGdlbmVyYXRlZCByaWdodC1yb3VuZGVkLXJlY3QtZmxvYXQtbGluZSBkaXZz
IHdpbGwgYmUgaW5zZXJ0ZWQgaGVyZSAtLT4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1g8YnIv
PgorWDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYCis8L2Rpdj4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5nbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9zdWJwaXhlbC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
Z2VuUmlnaHRSb3VuZGVkUmVjdEZsb2F0U2hhcGVPdXRzaWRlUmVmVGVzdCh7CisgICAgcm91bmRl
ZFJlY3Q6IHt4OiAwLCB5OiAyMCwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAxNjAsIHJ4OiA4MCwgcnk6
IDgwfSwKKyAgICBjb250YWluZXJXaWR0aDogNTAwLAorICAgIGNvbnRhaW5lckhlaWdodDogMjAw
LAorICAgIGxpbmVIZWlnaHQ6IDIwLAorICAgIGZsb2F0RWxlbWVudENsYXNzU3VmZml4OiAicm91
bmRlZC1yZWN0LWZsb2F0LWxpbmUiLAorICAgIGluc2VydEVsZW1lbnRJZFN1ZmZpeDogInJvdW5k
ZWQtcmVjdC1vdXRsaW5lIiwKK30pOworPC9zY3JpcHQ+CisKKzxwPlJlcXVpcmVzIEFoZW0gZm9u
dC4gVGhlcmUgaXMgYSAwcHggc2l6ZSBpbnNldCBhcHBsaWVkIG9uIHRoZSByaWdodCBmbG9hdCB3
aXRoIDIwMHB4IHJhZGl1cy48YnI+CitUaGUgYmxhY2sgc3F1YXJlcyBzaG91bGQgdHJhY2UgdGhl
IGxlZnQgc2lkZSBvZiB0aGUgcm91bmRlZCByZWN0YW5nbGUncyBibHVlIG91dGxpbmUuPC9wPgor
PHA+QnVnIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvMTI5NzI2Ij4xMjk3MjY8L2E+OiBb
Q1NTIFNoYXBlc10gaW5zZXQgZG9lcyBub3QgcHJvcGVybHkgY2xhbXAgbGFyZ2UgY29ybmVyIHJh
ZGlpPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1pbnNldC1y
b3VuZGVkLWxhcmdlLXJhZGl1cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUt
b3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1y
YWRpdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmRiYzc0OWJmZjIwNjhjOTBiNWI1YjdhZDRiZjQ1OTc2
YmViY2EwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUt
b3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtaW5zZXQtcm91bmRlZC1sYXJnZS1y
YWRpdXMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHN0
eWxlPgorLmNvbnRhaW5lciB7CisgICAgZm9udDogMjBweC8xIEFoZW0sIHNhbnMtc2VyaWY7Cisg
ICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29s
aWQgYmxhY2s7Cit9CisKKy5yb3VuZGVkLXJlY3QgeworICAgIHdpZHRoOiAzMjBweDsKKyAgICBo
ZWlnaHQ6IDE2MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgYm9yZGVyLXJh
ZGl1czogMjAwcHg7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBpbnNldCgwcHggcm91bmQg
MjAwcHgpOworfQorPC9zdHlsZT4KKworPGJvZHk+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0
eWxlPSJ0ZXh0LWFsaWduOiByaWdodCI+CitYPGJyLz4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
cmlnaHQiIGNsYXNzPSJyb3VuZGVkLXJlY3QiPjwvZGl2PgorWDxici8+CitYPGJyLz4KK1g8YnIv
PgorWDxici8+CitYPGJyLz4KK1g8YnIvPgorWDxici8+CitYPGJyLz4KK1gKKzwvZGl2PgorCis8
cD5SZXF1aXJlcyBBaGVtIGZvbnQuIFRoZXJlIGlzIGEgMHB4IHNpemUgaW5zZXQgYXBwbGllZCBv
biB0aGUgcmlnaHQgZmxvYXQgd2l0aCAyMDBweCByYWRpdXMuPGJyPgorVGhlIGJsYWNrIHNxdWFy
ZXMgc2hvdWxkIHRyYWNlIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHJvdW5kZWQgcmVjdGFuZ2xlJ3Mg
Ymx1ZSBvdXRsaW5lLjwvcD4KKzxwPkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzEy
OTcyNiI+MTI5NzI2PC9hPjogW0NTUyBTaGFwZXNdIGluc2V0IGRvZXMgbm90IHByb3Blcmx5IGNs
YW1wIGxhcmdlIGNvcm5lciByYWRpaTwvcD4KKworPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>