<?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>169273</bug_id>
          
          <creation_ts>2017-03-07 05:03:17 -0800</creation_ts>
          <short_desc>Implement stroke-width CSS property.</short_desc>
          <delta_ts>2018-03-15 09:48:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jonlee</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284269</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-07 05:03:17 -0800</bug_when>
    <thetext>Implement stroke-width, see https://drafts.fxtf.org/paint/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284274</commentid>
    <comment_count>1</comment_count>
      <attachid>303645</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-07 05:14:50 -0800</bug_when>
    <thetext>Created attachment 303645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284281</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-07 05:42:32 -0800</bug_when>
    <thetext>Attachment 303645 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284293</commentid>
    <comment_count>3</comment_count>
      <attachid>303649</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-07 06:44:02 -0800</bug_when>
    <thetext>Created attachment 303649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284305</commentid>
    <comment_count>4</comment_count>
      <attachid>303652</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-07 07:57:15 -0800</bug_when>
    <thetext>Created attachment 303652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284337</commentid>
    <comment_count>5</comment_count>
      <attachid>303660</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-07 09:00:53 -0800</bug_when>
    <thetext>Created attachment 303660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284338</commentid>
    <comment_count>6</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-07 09:02:28 -0800</bug_when>
    <thetext>rdar://problem/30754819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284361</commentid>
    <comment_count>7</comment_count>
      <attachid>303660</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-03-07 09:30:11 -0800</bug_when>
    <thetext>Comment on attachment 303660
Patch

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

I think Simon should do the full review of this, but it seems reasonable.

I do think that &quot;textStrokeWidht()&quot; might be able to encapsulate the &quot;explicitly set stroke width&quot; case, at least from the examples in this patch. Perhaps there are bigger picture issues that make it better to handle the two cases separately, but it seems like a lot of duplicated checks in multiple places.

&gt; Source/WebCore/rendering/InlineFlowBox.cpp:172
&gt; +            if (childStyle-&gt;letterSpacing() &lt; 0 || childStyle-&gt;textShadow() || childStyle-&gt;textEmphasisMark() != TextEmphasisMarkNone || childStyle-&gt;textStrokeWidth() || (childStyle-&gt;hasExplicitlySetStrokeWidth() &amp;&amp; childStyle-&gt;strokeWidth().value()))

You and Simon have probably already hashed all of this out, but reading this code makes me wonder why &quot;childStyle-&gt;textStrokeWidth()&quot; couldn&apos;t handle the explicit stroke width case internally. I guess there might be cases where we want the textStrokeWidth even if we have an explicitly set stroke width?

&gt; Source/WebCore/rendering/InlineFlowBox.cpp:908
&gt; +    int strokeOverflow = static_cast&lt;int&gt;(ceilf(lineStyle.computedTextStrokeWidth(viewport) / 2.0f));

I think this should be &quot;std::ceil&quot; so it will shift type if we ever modify lineStyle&apos;s return types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284546</commentid>
    <comment_count>8</comment_count>
      <attachid>303660</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-03-07 13:59:53 -0800</bug_when>
    <thetext>Comment on attachment 303660
Patch

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

&gt;&gt; Source/WebCore/rendering/InlineFlowBox.cpp:172
&gt;&gt; +            if (childStyle-&gt;letterSpacing() &lt; 0 || childStyle-&gt;textShadow() || childStyle-&gt;textEmphasisMark() != TextEmphasisMarkNone || childStyle-&gt;textStrokeWidth() || (childStyle-&gt;hasExplicitlySetStrokeWidth() &amp;&amp; childStyle-&gt;strokeWidth().value()))
&gt; 
&gt; You and Simon have probably already hashed all of this out, but reading this code makes me wonder why &quot;childStyle-&gt;textStrokeWidth()&quot; couldn&apos;t handle the explicit stroke width case internally. I guess there might be cases where we want the textStrokeWidth even if we have an explicitly set stroke width?

I don&apos;t know why we need hasExplicitlySetStrokeWidth() and the changelog is sorely lacking in explanation.

&gt;&gt; Source/WebCore/rendering/InlineFlowBox.cpp:908
&gt;&gt; +    int strokeOverflow = static_cast&lt;int&gt;(ceilf(lineStyle.computedTextStrokeWidth(viewport) / 2.0f));
&gt; 
&gt; I think this should be &quot;std::ceil&quot; so it will shift type if we ever modify lineStyle&apos;s return types.

Just adding half stroke width here seems naive, and doesn&apos;t take into account miters.

&gt; Source/WebCore/rendering/style/RenderStyle.h:1920
&gt; +        unsigned hasSetStrokeWidth : 1;

I don&apos;t think this should be here; it should be in StyleRareInheritedData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284808</commentid>
    <comment_count>9</comment_count>
      <attachid>303797</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-08 01:29:00 -0800</bug_when>
    <thetext>Created attachment 303797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284851</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-08 06:20:54 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 303660 [details]
&gt; Patch
&gt; 

Thanks for reviewing!

&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=303660&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/InlineFlowBox.cpp:172
&gt; &gt;&gt; +            if (childStyle-&gt;letterSpacing() &lt; 0 || childStyle-&gt;textShadow() || childStyle-&gt;textEmphasisMark() != TextEmphasisMarkNone || childStyle-&gt;textStrokeWidth() || (childStyle-&gt;hasExplicitlySetStrokeWidth() &amp;&amp; childStyle-&gt;strokeWidth().value()))
&gt; &gt; 
&gt; &gt; You and Simon have probably already hashed all of this out, but reading this code makes me wonder why &quot;childStyle-&gt;textStrokeWidth()&quot; couldn&apos;t handle the explicit stroke width case internally. I guess there might be cases where we want the textStrokeWidth even if we have an explicitly set stroke width?
&gt; 

Added a new member to simplify this in the last patch.

&gt; I don&apos;t know why we need hasExplicitlySetStrokeWidth() and the changelog is
&gt; sorely lacking in explanation.
&gt; 

I added hasExplicitlySetStrokeWidth() to fall back to the -webkit-text-stroke-width value when stroke-width is not set, to make sure the -webkit-text-stroke-width property still works.

Currently, a float member is holding the value of the -webkit-text-stroke-width value, and a Length member is holding the value of the stroke-width property. Would a better solution be to let both properties use the same Length member?

&gt; &gt;&gt; Source/WebCore/rendering/InlineFlowBox.cpp:908
&gt; &gt;&gt; +    int strokeOverflow = static_cast&lt;int&gt;(ceilf(lineStyle.computedTextStrokeWidth(viewport) / 2.0f));
&gt; &gt; 
&gt; &gt; I think this should be &quot;std::ceil&quot; so it will shift type if we ever modify lineStyle&apos;s return types.
&gt; 

Fixed.

&gt; Just adding half stroke width here seems naive, and doesn&apos;t take into
&gt; account miters.
&gt; 

Do you think we should involve the stroke-miterlimit property here  (https://bugs.webkit.org/show_bug.cgi?id=169078)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284921</commentid>
    <comment_count>11</comment_count>
      <attachid>303797</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-03-08 11:45:34 -0800</bug_when>
    <thetext>Comment on attachment 303797
Patch

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

r+ but please check SVG rendering.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:2267
&gt; +        ExceptionOr&lt;float&gt; result = length.value() * (viewportSize.width() + viewportSize.height()) / 200.0f;

Please add a comment here referencing the &quot;Percentages: relative to the scaled viewport size, scaled viewport size is the geometric mean of the viewport width and height&quot; part of the spec, otherwise this code is really confusing to see.

Does this code work when stroke-width is used inside SVG?

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:143
&gt; +    Length strokeWidth;    
&gt; +    unsigned hasSetStrokeWidth : 1;

You may get better packing by putting the bitfield before the Length</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285260</commentid>
    <comment_count>12</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-09 01:41:06 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 303797 [details]
&gt; Patch
&gt; 

Thanks for reviewing :)

&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=303797&amp;action=review
&gt; 
&gt; r+ but please check SVG rendering.
&gt; 

A quick test shows that rendering is correct when using stroke-width in SVG.


&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:2267
&gt; &gt; +        ExceptionOr&lt;float&gt; result = length.value() * (viewportSize.width() + viewportSize.height()) / 200.0f;
&gt; 
&gt; Please add a comment here referencing the &quot;Percentages: relative to the
&gt; scaled viewport size, scaled viewport size is the geometric mean of the
&gt; viewport width and height&quot; part of the spec, otherwise this code is really
&gt; confusing to see.
&gt; 
&gt; Does this code work when stroke-width is used inside SVG?

I believe this code path is not used by SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285261</commentid>
    <comment_count>13</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-09 01:52:36 -0800</bug_when>
    <thetext>Committed &lt;https://trac.webkit.org/changeset/213634&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285369</commentid>
    <comment_count>14</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-03-09 10:06:31 -0800</bug_when>
    <thetext>Per, could you add tests that show expected fallback behavior between stroke-width and -webkit-text-stroke-width?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285440</commentid>
    <comment_count>15</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-03-09 12:11:06 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Per, could you add tests that show expected fallback behavior between
&gt; stroke-width and -webkit-text-stroke-width?

Yes :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406492</commentid>
    <comment_count>16</comment_count>
      <attachid>303797</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-03-14 13:38:24 -0700</bug_when>
    <thetext>Comment on attachment 303797
Patch

I don&apos;t see anywhere where you inflate repaint rects to account of stroke-widths. Is this not a problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406688</commentid>
    <comment_count>17</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-03-15 09:48:59 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #16)
&gt; Comment on attachment 303797 [details]
&gt; Patch
&gt; 
&gt; I don&apos;t see anywhere where you inflate repaint rects to account of
&gt; stroke-widths. Is this not a problem?

I am not aware of any problems related to that. I might be mistaken, but I think this is handled by the computation of the &apos;strokeOverflow&apos; variable in the patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303645</attachid>
            <date>2017-03-07 05:14:50 -0800</date>
            <delta_ts>2017-03-07 06:43:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169273-20170307141448.patch</filename>
            <type>text/plain</type>
            <size>11286</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzUxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE3LTAzLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc3Ryb2tl
LXdpZHRoIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NTU1By
b3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVTdHJva2VXaWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVXZWJraXRU
ZXh0U3Ryb2tlV2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmFkZFRvTGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVGbG93Qm94OjphZGRUZXh0Qm94VmlzdWFsT3ZlcmZsb3cpOgorICAgICAg
ICAqIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OmNvbXB1dGVPdmVyZmxvdyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1RleHREZWNvcmF0aW9uUGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWNv
cmF0aW9uQ29sb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50U3R5bGUpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6UmVuZGVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbXB1dGVk
VGV4dFN0cm9rZVdpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRIYXNFeHBsaWNpdGx5U2V0U3Ry
b2tlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc0V4cGxpY2l0bHlT
ZXRTdHJva2VXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0SGFzRXhw
bGljaXRseVNldFdlYktpdFRleHRTdHJva2VXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6aGFzRXhwbGljaXRseVNldFdlYktpdFRleHRTdHJva2VXaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6SW5oZXJpdGVkRmxhZ3M6Om9wZXJhdG9yPT0pOgorCiAy
MDE3LTAzLTA3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjEzNDEyKTogSlBFRyBwcmVtdWx0aXBsaWNhdGlvbiB0ZXN0cyBmYWlsIHVuZGVy
IEd1YXJkTWFsbG9jCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29u
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24JKHJl
dmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24J
KHdvcmtpbmcgY29weSkKQEAgLTMwMjgsNiArMzAyOCw3IEBACiAgICAgICAgICJzdHJva2Utd2lk
dGgiOiB7CiAgICAgICAgICAgICAiaW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJjb2Rl
Z2VuLXByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgImN1c3RvbSI6ICJWYWx1ZSIsCiAg
ICAgICAgICAgICAgICAgImluaXRpYWwiOiAiaW5pdGlhbE9uZUxlbmd0aCIsCiAgICAgICAgICAg
ICAgICAgImNvbnZlcnRlciI6ICJMZW5ndGgiCiAgICAgICAgICAgICB9LApAQCAtNTgzOSw2ICs1
ODQwLDcgQEAKICAgICAgICAgIi13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGgiOiB7CiAgICAgICAg
ICAgICAiaW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMi
OiB7CisgICAgICAgICAgICAgICAgImN1c3RvbSI6ICJWYWx1ZSIsCiAgICAgICAgICAgICAgICAg
ImNvbnZlcnRlciI6ICJUZXh0U3Ryb2tlV2lkdGgiCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgInN0YXR1cyI6IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0
b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9t
LmgJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJD
dXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw5IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBhcHBseVZhbHVlQWx0KFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOwogICAg
IHN0YXRpYyB2b2lkIGFwcGx5VmFsdWVXaWxsQ2hhbmdlKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1
ZSYpOwogCisgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZVN0cm9rZVdpZHRoKFN0eWxlUmVzb2x2
ZXImLCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWVXZWJraXRUZXh0U3Ry
b2tlV2lkdGgoU3R5bGVSZXNvbHZlciYsIENTU1ZhbHVlJik7CisKIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgcmVzZXRFZmZlY3RpdmVab29tKFN0eWxlUmVzb2x2ZXImKTsKIApAQCAtMTc4MCw0
ICsxNzgzLDE2IEBAIGlubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWwKICAg
ICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldFdpbGxDaGFuZ2UoV1RGTW92ZSh3aWxsQ2hhbmdl
KSk7CiB9CiAKK2lubGluZSB2b2lkIFN0eWxlQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZVN0cm9r
ZVdpZHRoKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlJiB2YWx1ZSkKK3sK
KyAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldFN0cm9rZVdpZHRoKFN0eWxlQnVpbGRlckNv
bnZlcnRlcjo6Y29udmVydExlbmd0aChzdHlsZVJlc29sdmVyLCB2YWx1ZSkpOworICAgIHN0eWxl
UmVzb2x2ZXIuc3R5bGUoKS0+c2V0SGFzRXhwbGljaXRseVNldFN0cm9rZVdpZHRoKHRydWUpOwor
fQorCitpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVXZWJraXRUZXh0
U3Ryb2tlV2lkdGgoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUmIHZhbHVl
KQoreworICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0VGV4dFN0cm9rZVdpZHRoKFN0eWxl
QnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFRleHRTdHJva2VXaWR0aChzdHlsZVJlc29sdmVyLCB2
YWx1ZSkpOworICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0SGFzRXhwbGljaXRseVNldFdl
YktpdFRleHRTdHJva2VXaWR0aCh0cnVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNp
b24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojph
ZGRUb0xpbmUoSW5saW5lQm94KgogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgY2hpbGRTdHls
ZSA9IGNoaWxkLT5saW5lU3R5bGUoKTsKICAgICAgICAgaWYgKGNoaWxkLT5iZWhhdmVzTGlrZVRl
eHQoKSkgewogICAgICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNoaWxkU3R5bGUgPSAmY2hp
bGQtPmxpbmVTdHlsZSgpOwotICAgICAgICAgICAgaWYgKGNoaWxkU3R5bGUtPmxldHRlclNwYWNp
bmcoKSA8IDAgfHwgY2hpbGRTdHlsZS0+dGV4dFNoYWRvdygpIHx8IGNoaWxkU3R5bGUtPnRleHRF
bXBoYXNpc01hcmsoKSAhPSBUZXh0RW1waGFzaXNNYXJrTm9uZSB8fCBjaGlsZFN0eWxlLT50ZXh0
U3Ryb2tlV2lkdGgoKSkKKyAgICAgICAgICAgIGlmIChjaGlsZFN0eWxlLT5sZXR0ZXJTcGFjaW5n
KCkgPCAwIHx8IGNoaWxkU3R5bGUtPnRleHRTaGFkb3coKSB8fCBjaGlsZFN0eWxlLT50ZXh0RW1w
aGFzaXNNYXJrKCkgIT0gVGV4dEVtcGhhc2lzTWFya05vbmUgfHwgY2hpbGRTdHlsZS0+dGV4dFN0
cm9rZVdpZHRoKCkgfHwgKGNoaWxkU3R5bGUtPmhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCgp
ICYmIGNoaWxkU3R5bGUtPnN0cm9rZVdpZHRoKCkudmFsdWUoKSkpCiAgICAgICAgICAgICAgICAg
Y2hpbGQtPmNsZWFyS25vd25Ub0hhdmVOb092ZXJmbG93KCk7CiAgICAgICAgIH0gZWxzZSBpZiAo
Y2hpbGQtPnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpKSB7CiAgICAgICAgICAgICBjb25zdCBSZW5k
ZXJCb3gmIGJveCA9IGRvd25jYXN0PFJlbmRlckJveD4oY2hpbGQtPnJlbmRlcmVyKCkpOwpAQCAt
OTA0LDcgKzkwNCw4IEBAIGlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZFRleHRCb3hWaXMK
ICAgICBpbnQgbGVmdEdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5s
ZWZ0IDogMDsKICAgICBpbnQgcmlnaHRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhP
dmVyZmxvdy0+cmlnaHQgOiAwOwogCi0gICAgaW50IHN0cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nh
c3Q8aW50PihjZWlsZihsaW5lU3R5bGUudGV4dFN0cm9rZVdpZHRoKCkgLyAyLjBmKSk7CisgICAg
RmxvYXRTaXplIHZpZXdwb3J0ID0gdGV4dEJveC5yZW5kZXJlcigpLmZyYW1lKCkudmlldygpLT5z
aXplKCk7CisgICAgaW50IHN0cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihs
aW5lU3R5bGUuY29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgodmlld3BvcnQpIC8gMi4wZikpOwogICAg
IGludCB0b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOwog
ICAgIGludCBib3R0b21HbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlw
aEVkZ2U7CiAgICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVm
dEdseXBoRWRnZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5
b3V0RnVuY3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgdm9pZCBwYWludERlYnVnQm9yZGVycyhH
cmFwaGljc0NvCiBzdGF0aWMgRmxvYXRSZWN0IGNvbXB1dGVPdmVyZmxvdyhjb25zdCBSZW5kZXJC
bG9ja0Zsb3cmIGZsb3csIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0UmVjdCkKIHsKICAgICBhdXRv
IG92ZXJmbG93UmVjdCA9IGxheW91dFJlY3Q7Ci0gICAgYXV0byBzdHJva2VPdmVyZmxvdyA9IHN0
ZDo6Y2VpbChmbG93LnN0eWxlKCkudGV4dFN0cm9rZVdpZHRoKCkpOworICAgIGF1dG8gc3Ryb2tl
T3ZlcmZsb3cgPSBzdGQ6OmNlaWwoZmxvdy5zdHlsZSgpLmNvbXB1dGVkVGV4dFN0cm9rZVdpZHRo
KGZsb3cuZnJhbWUoKS52aWV3KCkgPyBmbG93LmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBGbG9h
dFNpemUoKSkpOwogICAgIG92ZXJmbG93UmVjdC5pbmZsYXRlKHN0cm9rZU92ZXJmbG93KTsKIAog
ICAgIGF1dG8gbGV0dGVyU3BhY2luZyA9IGZsb3cuc3R5bGUoKS5mb250Q2FzY2FkZSgpLmxldHRl
clNwYWNpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0RGVjb3JhdGlv
blBhaW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
RGVjb3JhdGlvblBhaW50ZXIuY3BwCShyZXZpc2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dERlY29yYXRpb25QYWludGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzU3LDcgKzM1Nyw3IEBAIHN0YXRpYyBDb2xvciBkZWNvcmF0aW9uQ29sb3IoY29uc3QgUmVuZGUK
ICAgICBDb2xvciByZXN1bHQgPSBzdHlsZS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVy
dHlXZWJraXRUZXh0RGVjb3JhdGlvbkNvbG9yKTsKICAgICBpZiAocmVzdWx0LmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoc3R5bGUudGV4dFN0cm9rZVdpZHRoKCkg
PiAwKSB7CisgICAgaWYgKHN0eWxlLnRleHRTdHJva2VXaWR0aCgpID4gMCB8fCAoc3R5bGUuaGFz
RXhwbGljaXRseVNldFN0cm9rZVdpZHRoKCkgJiYgc3R5bGUuc3Ryb2tlV2lkdGgoKS52YWx1ZSgp
ID4gMCkpIHsKICAgICAgICAgLy8gUHJlZmVyIHN0cm9rZSBjb2xvciBpZiBwb3NzaWJsZSBidXQg
bm90IGlmIGl0J3MgZnVsbHkgdHJhbnNwYXJlbnQuCiAgICAgICAgIHJlc3VsdCA9IHN0eWxlLnZp
c2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcik7CiAg
ICAgICAgIGlmIChyZXN1bHQuaXNWaXNpYmxlKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3
LDcgKzY3LDcgQEAgVGV4dFBhaW50U3R5bGUgY29tcHV0ZVRleHRQYWludFN0eWxlKGNvbgogI2lm
IEVOQUJMRShMRVRURVJQUkVTUykKICAgICBwYWludFN0eWxlLnVzZUxldHRlcnByZXNzRWZmZWN0
ID0gbGluZVN0eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkgJiBUZXh0RGVjb3JhdGlvbkxl
dHRlcnByZXNzOwogI2VuZGlmCi0gICAgcGFpbnRTdHlsZS5zdHJva2VXaWR0aCA9IGxpbmVTdHls
ZS50ZXh0U3Ryb2tlV2lkdGgoKTsKKyAgICBwYWludFN0eWxlLnN0cm9rZVdpZHRoID0gbGluZVN0
eWxlLmNvbXB1dGVkVGV4dFN0cm9rZVdpZHRoKGZyYW1lLnZpZXcoKSA/IGZyYW1lLnZpZXcoKS0+
c2l6ZSgpIDogRmxvYXRTaXplKCkpOwogICAgIHBhaW50U3R5bGUucGFpbnRPcmRlciA9IGxpbmVT
dHlsZS5wYWludE9yZGVyKCk7CiAgICAgcGFpbnRTdHlsZS5saW5lSm9pbiA9IGxpbmVTdHlsZS5q
b2luU3R5bGUoKTsKICAgICBwYWludFN0eWxlLmxpbmVDYXAgPSBsaW5lU3R5bGUuY2FwU3R5bGUo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcAkocmV2aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw4IEBAIFJlbmRl
clN0eWxlOjpSZW5kZXJTdHlsZShDcmVhdGVEZWZhdWx0U3QKICAgICBtX2luaGVyaXRlZEZsYWdz
Lmluc2lkZUxpbmsgPSBOb3RJbnNpZGVMaW5rOwogICAgIG1faW5oZXJpdGVkRmxhZ3MuaW5zaWRl
RGVmYXVsdEJ1dHRvbiA9IGZhbHNlOwogICAgIG1faW5oZXJpdGVkRmxhZ3Mud3JpdGluZ01vZGUg
PSBpbml0aWFsV3JpdGluZ01vZGUoKTsKKyAgICBtX2luaGVyaXRlZEZsYWdzLmhhc1NldFN0cm9r
ZVdpZHRoID0gZmFsc2U7CisgICAgbV9pbmhlcml0ZWRGbGFncy5oYXNTZXRXZWJLaXRUZXh0U3Ry
b2tlV2lkdGggPSBmYWxzZTsKIAogICAgIHN0YXRpY19hc3NlcnQoKHNpemVvZihJbmhlcml0ZWRG
bGFncykgPD0gOCksICJJbmhlcml0ZWRGbGFncyBkb2VzIG5vdCBncm93Iik7CiAgICAgc3RhdGlj
X2Fzc2VydCgoc2l6ZW9mKE5vbkluaGVyaXRlZEZsYWdzKSA8PSA4KSwgIk5vbkluaGVyaXRlZEZs
YWdzIGRvZXMgbm90IGdyb3ciKTsKQEAgLTIyNTYsNSArMjI1OCwyMCBAQCBWZWN0b3I8UGFpbnRU
eXBlLCAzPiBSZW5kZXJTdHlsZTo6cGFpbnRUCiAgICAgcmV0dXJuIHBhaW50T3JkZXI7CiB9CiAK
K2Zsb2F0IFJlbmRlclN0eWxlOjpjb21wdXRlZFRleHRTdHJva2VXaWR0aChjb25zdCBGbG9hdFNp
emUmIHZpZXdwb3J0KSBjb25zdAoreworICAgIGlmIChoYXNFeHBsaWNpdGx5U2V0V2ViS2l0VGV4
dFN0cm9rZVdpZHRoKCkpCisgICAgICAgIHJldHVybiB0ZXh0U3Ryb2tlV2lkdGgoKTsKKworICAg
IGlmICghaGFzRXhwbGljaXRseVNldFN0cm9rZVdpZHRoKCkpCisgICAgICAgIHJldHVybiBpbml0
aWFsVGV4dFN0cm9rZVdpZHRoKCk7CisgICAgCisgICAgY29uc3QgTGVuZ3RoJiBsZW5ndGggPSBz
dHJva2VXaWR0aCgpOworICAgIGlmIChsZW5ndGguaXNQZXJjZW50KCkpCisgICAgICAgIHJldHVy
biBsZW5ndGgudmFsdWUoKSAqICh2aWV3cG9ydC53aWR0aCgpICsgdmlld3BvcnQuaGVpZ2h0KCkp
IC8gMjAwLjBmOworCisgICAgcmV0dXJuIGZsb2F0VmFsdWVGb3JMZW5ndGgobGVuZ3RoLCB2aWV3
cG9ydC53aWR0aCgpKTsKK30KKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gMjEz
NTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEyNTcsNiArMTI1NywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
dHJva2VXaWR0aChMZW5ndGgmJiB3KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgc3Ry
b2tlV2lkdGgsIFdURk1vdmUodykpOyB9CiAgICAgYm9vbCBoYXNWaXNpYmxlU3Ryb2tlKCkgY29u
c3QgeyByZXR1cm4gc3ZnU3R5bGUoKS5oYXNTdHJva2UoKSAmJiAhc3Ryb2tlV2lkdGgoKS5pc1pl
cm8oKTsgfQogCisgICAgZmxvYXQgY29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgoY29uc3QgRmxvYXRT
aXplJiB2aWV3cG9ydCkgY29uc3Q7CisgICAgdm9pZCBzZXRIYXNFeHBsaWNpdGx5U2V0U3Ryb2tl
V2lkdGgoYm9vbCB2KSB7IG1faW5oZXJpdGVkRmxhZ3MuaGFzU2V0U3Ryb2tlV2lkdGggPSB2OyB9
CisgICAgYm9vbCBoYXNFeHBsaWNpdGx5U2V0U3Ryb2tlV2lkdGgoKSBjb25zdCB7IHJldHVybiBt
X2luaGVyaXRlZEZsYWdzLmhhc1NldFN0cm9rZVdpZHRoOyB9OworICAgIHZvaWQgc2V0SGFzRXhw
bGljaXRseVNldFdlYktpdFRleHRTdHJva2VXaWR0aChib29sIHYpIHsgbV9pbmhlcml0ZWRGbGFn
cy5oYXNTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGggPSB2OyB9CisgICAgYm9vbCBoYXNFeHBsaWNp
dGx5U2V0V2ViS2l0VGV4dFN0cm9rZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9pbmhlcml0ZWRG
bGFncy5oYXNTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGg7IH07CiAgICAgCiAgICAgY29uc3QgU1ZH
UmVuZGVyU3R5bGUmIHN2Z1N0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdmdTdHlsZTsgfQogICAg
IFNWR1JlbmRlclN0eWxlJiBhY2Nlc3NTVkdTdHlsZSgpIHsgcmV0dXJuIG1fc3ZnU3R5bGUuYWNj
ZXNzKCk7IH0KQEAgLTE5MTMsNiArMTkxOCw5IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIENTUyBU
ZXh0IExheW91dCBNb2R1bGUgTGV2ZWwgMzogVmVydGljYWwgd3JpdGluZyBzdXBwb3J0CiAgICAg
ICAgIHVuc2lnbmVkIHdyaXRpbmdNb2RlIDogMjsgLy8gV3JpdGluZ01vZGUKICAgICAgICAgLy8g
NDYgYml0cworICAgICAgICAKKyAgICAgICAgdW5zaWduZWQgaGFzU2V0U3Ryb2tlV2lkdGggOiAx
OworICAgICAgICB1bnNpZ25lZCBoYXNTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGggOiAxOwogICAg
IH07CiAKICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIGlzIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBy
ZXBsYWNlIG9wZXJhdGlvbi4KQEAgLTIwNzMsNyArMjA4MSw5IEBAIGlubGluZSBib29sIFJlbmRl
clN0eWxlOjpJbmhlcml0ZWRGbGFnczoKICAgICAgICAgJiYgcG9pbnRlckV2ZW50cyA9PSBvdGhl
ci5wb2ludGVyRXZlbnRzCiAgICAgICAgICYmIGluc2lkZUxpbmsgPT0gb3RoZXIuaW5zaWRlTGlu
awogICAgICAgICAmJiBpbnNpZGVEZWZhdWx0QnV0dG9uID09IG90aGVyLmluc2lkZURlZmF1bHRC
dXR0b24KLSAgICAgICAgJiYgd3JpdGluZ01vZGUgPT0gb3RoZXIud3JpdGluZ01vZGU7CisgICAg
ICAgICYmIHdyaXRpbmdNb2RlID09IG90aGVyLndyaXRpbmdNb2RlCisgICAgICAgICYmIGhhc1Nl
dFN0cm9rZVdpZHRoID09IG90aGVyLmhhc1NldFN0cm9rZVdpZHRoCisgICAgICAgICYmIGhhc1Nl
dFN0cm9rZVdpZHRoID09IG90aGVyLmhhc1NldFdlYktpdFRleHRTdHJva2VXaWR0aDsKIH0KIAog
aW5saW5lIHVuc2lnbmVkIFJlbmRlclN0eWxlOjpOb25Jbmhlcml0ZWRGbGFnczo6Z2V0VmFsdWUo
dWludDY0X3QgcG9zaXRpb25JbmRlcGVuZGVudE1hc2ssIHVpbnQ2NF90IG9mZnNldCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303649</attachid>
            <date>2017-03-07 06:44:02 -0800</date>
            <delta_ts>2017-03-07 07:57:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169273-20170307154400.patch</filename>
            <type>text/plain</type>
            <size>16304</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzUxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE3LTAzLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc3Ryb2tl
LXdpZHRoIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Nzcy9zdHJva2Utd2lkdGguaHRtbAorCisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVTdHJva2VX
aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVX
ZWJraXRUZXh0U3Ryb2tlV2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmFkZFRvTGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjphZGRUZXh0Qm94VmlzdWFsT3ZlcmZsb3cpOgor
ICAgICAgICAqIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OmNvbXB1dGVPdmVyZmxvdyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1RleHREZWNvcmF0aW9uUGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkZWNvcmF0aW9uQ29sb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50U3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcHV0ZVRleHRTZWxlY3Rpb25QYWludFN0eWxlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5
bGU6OlJlbmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb21wdXRl
ZFRleHRTdHJva2VXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0SGFzRXhwbGljaXRseVNldFN0
cm9rZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpoYXNFeHBsaWNpdGx5
U2V0U3Ryb2tlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEhhc0V4
cGxpY2l0bHlTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6Omhhc0V4cGxpY2l0bHlTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09KToKKwog
MjAxNy0wMy0wNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjIxMzQxMik6IEpQRUcgcHJlbXVsdGlwbGljYXRpb24gdGVzdHMgZmFpbCB1bmRl
ciBHdWFyZE1hbGxvYwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNv
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCShy
ZXZpc2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29u
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDI4LDYgKzMwMjgsNyBAQAogICAgICAgICAic3Ryb2tlLXdp
ZHRoIjogewogICAgICAgICAgICAgImluaGVyaXRlZCI6IHRydWUsCiAgICAgICAgICAgICAiY29k
ZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJjdXN0b20iOiAiVmFsdWUiLAog
ICAgICAgICAgICAgICAgICJpbml0aWFsIjogImluaXRpYWxPbmVMZW5ndGgiLAogICAgICAgICAg
ICAgICAgICJjb252ZXJ0ZXIiOiAiTGVuZ3RoIgogICAgICAgICAgICAgfSwKQEAgLTU4MzksNiAr
NTg0MCw3IEBACiAgICAgICAgICItd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoIjogewogICAgICAg
ICAgICAgImluaGVyaXRlZCI6IHRydWUsCiAgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVz
IjogeworICAgICAgICAgICAgICAgICJjdXN0b20iOiAiVmFsdWUiLAogICAgICAgICAgICAgICAg
ICJjb252ZXJ0ZXIiOiAiVGV4dFN0cm9rZVdpZHRoIgogICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgICJzdGF0dXMiOiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3Vz
dG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3Rv
bS5oCShyZXZpc2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVy
Q3VzdG9tLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw2ICsxMzksOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgYXBwbHlWYWx1ZUFsdChTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKICAg
ICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlV2lsbENoYW5nZShTdHlsZVJlc29sdmVyJiwgQ1NTVmFs
dWUmKTsKIAorICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWVTdHJva2VXaWR0aChTdHlsZVJlc29s
dmVyJiwgQ1NTVmFsdWUmKTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlV2Via2l0VGV4dFN0
cm9rZVdpZHRoKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOworCiBwcml2YXRlOgogICAgIHN0
YXRpYyB2b2lkIHJlc2V0RWZmZWN0aXZlWm9vbShTdHlsZVJlc29sdmVyJik7CiAKQEAgLTE3ODAs
NCArMTc4MywxNiBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsCiAg
ICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRXaWxsQ2hhbmdlKFdURk1vdmUod2lsbENoYW5n
ZSkpOwogfQogCitpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVTdHJv
a2VXaWR0aChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCit7
CisgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRTdHJva2VXaWR0aChTdHlsZUJ1aWxkZXJD
b252ZXJ0ZXI6OmNvbnZlcnRMZW5ndGgoc3R5bGVSZXNvbHZlciwgdmFsdWUpKTsKKyAgICBzdHls
ZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCh0cnVlKTsK
K30KKworaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlV2Via2l0VGV4
dFN0cm9rZVdpZHRoKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlJiB2YWx1
ZSkKK3sKKyAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldFRleHRTdHJva2VXaWR0aChTdHls
ZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRUZXh0U3Ryb2tlV2lkdGgoc3R5bGVSZXNvbHZlciwg
dmFsdWUpKTsKKyAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc0V4cGxpY2l0bHlTZXRX
ZWJLaXRUZXh0U3Ryb2tlV2lkdGgodHJ1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHJldmlz
aW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6
YWRkVG9MaW5lKElubGluZUJveCoKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIGNoaWxkU3R5
bGUgPSBjaGlsZC0+bGluZVN0eWxlKCk7CiAgICAgICAgIGlmIChjaGlsZC0+YmVoYXZlc0xpa2VU
ZXh0KCkpIHsKICAgICAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiBjaGlsZFN0eWxlID0gJmNo
aWxkLT5saW5lU3R5bGUoKTsKLSAgICAgICAgICAgIGlmIChjaGlsZFN0eWxlLT5sZXR0ZXJTcGFj
aW5nKCkgPCAwIHx8IGNoaWxkU3R5bGUtPnRleHRTaGFkb3coKSB8fCBjaGlsZFN0eWxlLT50ZXh0
RW1waGFzaXNNYXJrKCkgIT0gVGV4dEVtcGhhc2lzTWFya05vbmUgfHwgY2hpbGRTdHlsZS0+dGV4
dFN0cm9rZVdpZHRoKCkpCisgICAgICAgICAgICBpZiAoY2hpbGRTdHlsZS0+bGV0dGVyU3BhY2lu
ZygpIDwgMCB8fCBjaGlsZFN0eWxlLT50ZXh0U2hhZG93KCkgfHwgY2hpbGRTdHlsZS0+dGV4dEVt
cGhhc2lzTWFyaygpICE9IFRleHRFbXBoYXNpc01hcmtOb25lIHx8IGNoaWxkU3R5bGUtPnRleHRT
dHJva2VXaWR0aCgpIHx8IChjaGlsZFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0U3Ryb2tlV2lkdGgo
KSAmJiBjaGlsZFN0eWxlLT5zdHJva2VXaWR0aCgpLnZhbHVlKCkpKQogICAgICAgICAgICAgICAg
IGNoaWxkLT5jbGVhcktub3duVG9IYXZlTm9PdmVyZmxvdygpOwogICAgICAgICB9IGVsc2UgaWYg
KGNoaWxkLT5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSkgewogICAgICAgICAgICAgY29uc3QgUmVu
ZGVyQm94JiBib3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KGNoaWxkLT5yZW5kZXJlcigpKTsKQEAg
LTkwNCw3ICs5MDQsOCBAQCBpbmxpbmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRUZXh0Qm94Vmlz
CiAgICAgaW50IGxlZnRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+
bGVmdCA6IDA7CiAgICAgaW50IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBo
T3ZlcmZsb3ctPnJpZ2h0IDogMDsKIAotICAgIGludCBzdHJva2VPdmVyZmxvdyA9IHN0YXRpY19j
YXN0PGludD4oY2VpbGYobGluZVN0eWxlLnRleHRTdHJva2VXaWR0aCgpIC8gMi4wZikpOworICAg
IEZsb2F0U2l6ZSB2aWV3cG9ydCA9IHRleHRCb3gucmVuZGVyZXIoKS5mcmFtZSgpLnZpZXcoKSA/
IHRleHRCb3gucmVuZGVyZXIoKS5mcmFtZSgpLnZpZXcoKS0+c2l6ZSgpIDogRmxvYXRTaXplKCk7
CisgICAgaW50IHN0cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihsaW5lU3R5
bGUuY29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgodmlld3BvcnQpIC8gMi4wZikpOwogICAgIGludCB0
b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOwogICAgIGlu
dCBib3R0b21HbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlwaEVkZ2U7
CiAgICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVmdEdseXBo
RWRnZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVu
Y3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxl
TGluZUxheW91dEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgdm9pZCBwYWludERlYnVnQm9yZGVycyhHcmFwaGlj
c0NvCiBzdGF0aWMgRmxvYXRSZWN0IGNvbXB1dGVPdmVyZmxvdyhjb25zdCBSZW5kZXJCbG9ja0Zs
b3cmIGZsb3csIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0UmVjdCkKIHsKICAgICBhdXRvIG92ZXJm
bG93UmVjdCA9IGxheW91dFJlY3Q7Ci0gICAgYXV0byBzdHJva2VPdmVyZmxvdyA9IHN0ZDo6Y2Vp
bChmbG93LnN0eWxlKCkudGV4dFN0cm9rZVdpZHRoKCkpOworICAgIGF1dG8gc3Ryb2tlT3ZlcmZs
b3cgPSBzdGQ6OmNlaWwoZmxvdy5zdHlsZSgpLmNvbXB1dGVkVGV4dFN0cm9rZVdpZHRoKGZsb3cu
ZnJhbWUoKS52aWV3KCkgPyBmbG93LmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBGbG9hdFNpemUo
KSkpOwogICAgIG92ZXJmbG93UmVjdC5pbmZsYXRlKHN0cm9rZU92ZXJmbG93KTsKIAogICAgIGF1
dG8gbGV0dGVyU3BhY2luZyA9IGZsb3cuc3R5bGUoKS5mb250Q2FzY2FkZSgpLmxldHRlclNwYWNp
bmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0RGVjb3JhdGlvblBhaW50
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0RGVjb3Jh
dGlvblBhaW50ZXIuY3BwCShyZXZpc2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dERlY29yYXRpb25QYWludGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU3LDcg
KzM1Nyw3IEBAIHN0YXRpYyBDb2xvciBkZWNvcmF0aW9uQ29sb3IoY29uc3QgUmVuZGUKICAgICBD
b2xvciByZXN1bHQgPSBzdHlsZS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlXZWJr
aXRUZXh0RGVjb3JhdGlvbkNvbG9yKTsKICAgICBpZiAocmVzdWx0LmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoc3R5bGUudGV4dFN0cm9rZVdpZHRoKCkgPiAwKSB7
CisgICAgaWYgKHN0eWxlLnRleHRTdHJva2VXaWR0aCgpID4gMCB8fCAoc3R5bGUuaGFzRXhwbGlj
aXRseVNldFN0cm9rZVdpZHRoKCkgJiYgc3R5bGUuc3Ryb2tlV2lkdGgoKS52YWx1ZSgpID4gMCkp
IHsKICAgICAgICAgLy8gUHJlZmVyIHN0cm9rZSBjb2xvciBpZiBwb3NzaWJsZSBidXQgbm90IGlm
IGl0J3MgZnVsbHkgdHJhbnNwYXJlbnQuCiAgICAgICAgIHJlc3VsdCA9IHN0eWxlLnZpc2l0ZWRE
ZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcik7CiAgICAgICAg
IGlmIChyZXN1bHQuaXNWaXNpYmxlKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dFBhaW50U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHAJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3
LDcgQEAgVGV4dFBhaW50U3R5bGUgY29tcHV0ZVRleHRQYWludFN0eWxlKGNvbgogI2lmIEVOQUJM
RShMRVRURVJQUkVTUykKICAgICBwYWludFN0eWxlLnVzZUxldHRlcnByZXNzRWZmZWN0ID0gbGlu
ZVN0eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkgJiBUZXh0RGVjb3JhdGlvbkxldHRlcnBy
ZXNzOwogI2VuZGlmCi0gICAgcGFpbnRTdHlsZS5zdHJva2VXaWR0aCA9IGxpbmVTdHlsZS50ZXh0
U3Ryb2tlV2lkdGgoKTsKKyAgICBwYWludFN0eWxlLnN0cm9rZVdpZHRoID0gbGluZVN0eWxlLmNv
bXB1dGVkVGV4dFN0cm9rZVdpZHRoKGZyYW1lLnZpZXcoKSA/IGZyYW1lLnZpZXcoKS0+c2l6ZSgp
IDogRmxvYXRTaXplKCkpOwogICAgIHBhaW50U3R5bGUucGFpbnRPcmRlciA9IGxpbmVTdHlsZS5w
YWludE9yZGVyKCk7CiAgICAgcGFpbnRTdHlsZS5saW5lSm9pbiA9IGxpbmVTdHlsZS5qb2luU3R5
bGUoKTsKICAgICBwYWludFN0eWxlLmxpbmVDYXAgPSBsaW5lU3R5bGUuY2FwU3R5bGUoKTsKQEAg
LTE0Nyw3ICsxNDcsNyBAQCBUZXh0UGFpbnRTdHlsZSBjb21wdXRlVGV4dFNlbGVjdGlvblBhaW50
CiAgICAgICAgICAgICBzZWxlY3Rpb25TaGFkb3cgPSBzaGFkb3c7CiAgICAgICAgIH0KIAotICAg
ICAgICBmbG9hdCBzdHJva2VXaWR0aCA9IHBzZXVkb1N0eWxlLT50ZXh0U3Ryb2tlV2lkdGgoKTsK
KyAgICAgICAgZmxvYXQgc3Ryb2tlV2lkdGggPSBwc2V1ZG9TdHlsZS0+Y29tcHV0ZWRUZXh0U3Ry
b2tlV2lkdGgocmVuZGVyZXIuZnJhbWUoKS52aWV3KCkgPyByZW5kZXJlci5mcmFtZSgpLnZpZXco
KS0+c2l6ZSgpIDogRmxvYXRTaXplKCkpOwogICAgICAgICBpZiAoc3Ryb2tlV2lkdGggIT0gc2Vs
ZWN0aW9uUGFpbnRTdHlsZS5zdHJva2VXaWR0aCkgewogICAgICAgICAgICAgaWYgKCFwYWludFNl
bGVjdGVkVGV4dE9ubHkpCiAgICAgICAgICAgICAgICAgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0
ZWx5ID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAkocmV2aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw4
IEBAIFJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZShDcmVhdGVEZWZhdWx0U3QKICAgICBtX2luaGVy
aXRlZEZsYWdzLmluc2lkZUxpbmsgPSBOb3RJbnNpZGVMaW5rOwogICAgIG1faW5oZXJpdGVkRmxh
Z3MuaW5zaWRlRGVmYXVsdEJ1dHRvbiA9IGZhbHNlOwogICAgIG1faW5oZXJpdGVkRmxhZ3Mud3Jp
dGluZ01vZGUgPSBpbml0aWFsV3JpdGluZ01vZGUoKTsKKyAgICBtX2luaGVyaXRlZEZsYWdzLmhh
c1NldFN0cm9rZVdpZHRoID0gZmFsc2U7CisgICAgbV9pbmhlcml0ZWRGbGFncy5oYXNTZXRXZWJL
aXRUZXh0U3Ryb2tlV2lkdGggPSBmYWxzZTsKIAogICAgIHN0YXRpY19hc3NlcnQoKHNpemVvZihJ
bmhlcml0ZWRGbGFncykgPD0gOCksICJJbmhlcml0ZWRGbGFncyBkb2VzIG5vdCBncm93Iik7CiAg
ICAgc3RhdGljX2Fzc2VydCgoc2l6ZW9mKE5vbkluaGVyaXRlZEZsYWdzKSA8PSA4KSwgIk5vbklu
aGVyaXRlZEZsYWdzIGRvZXMgbm90IGdyb3ciKTsKQEAgLTIyNTYsNSArMjI1OCwyMCBAQCBWZWN0
b3I8UGFpbnRUeXBlLCAzPiBSZW5kZXJTdHlsZTo6cGFpbnRUCiAgICAgcmV0dXJuIHBhaW50T3Jk
ZXI7CiB9CiAKK2Zsb2F0IFJlbmRlclN0eWxlOjpjb21wdXRlZFRleHRTdHJva2VXaWR0aChjb25z
dCBGbG9hdFNpemUmIHZpZXdwb3J0KSBjb25zdAoreworICAgIGlmIChoYXNFeHBsaWNpdGx5U2V0
V2ViS2l0VGV4dFN0cm9rZVdpZHRoKCkpCisgICAgICAgIHJldHVybiB0ZXh0U3Ryb2tlV2lkdGgo
KTsKKworICAgIGlmICghaGFzRXhwbGljaXRseVNldFN0cm9rZVdpZHRoKCkpCisgICAgICAgIHJl
dHVybiBpbml0aWFsVGV4dFN0cm9rZVdpZHRoKCk7CisgICAgCisgICAgY29uc3QgTGVuZ3RoJiBs
ZW5ndGggPSBzdHJva2VXaWR0aCgpOworICAgIGlmIChsZW5ndGguaXNQZXJjZW50KCkpCisgICAg
ICAgIHJldHVybiBsZW5ndGgudmFsdWUoKSAqICh2aWV3cG9ydC53aWR0aCgpICsgdmlld3BvcnQu
aGVpZ2h0KCkpIC8gMjAwLjBmOworCisgICAgcmV0dXJuIGZsb2F0VmFsdWVGb3JMZW5ndGgobGVu
Z3RoLCB2aWV3cG9ydC53aWR0aCgpKTsKK30KKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkocmV2
aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNTcsNiArMTI1NywxMSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRTdHJva2VXaWR0aChMZW5ndGgmJiB3KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVk
RGF0YSwgc3Ryb2tlV2lkdGgsIFdURk1vdmUodykpOyB9CiAgICAgYm9vbCBoYXNWaXNpYmxlU3Ry
b2tlKCkgY29uc3QgeyByZXR1cm4gc3ZnU3R5bGUoKS5oYXNTdHJva2UoKSAmJiAhc3Ryb2tlV2lk
dGgoKS5pc1plcm8oKTsgfQogCisgICAgZmxvYXQgY29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgoY29u
c3QgRmxvYXRTaXplJiB2aWV3cG9ydCkgY29uc3Q7CisgICAgdm9pZCBzZXRIYXNFeHBsaWNpdGx5
U2V0U3Ryb2tlV2lkdGgoYm9vbCB2KSB7IG1faW5oZXJpdGVkRmxhZ3MuaGFzU2V0U3Ryb2tlV2lk
dGggPSB2OyB9CisgICAgYm9vbCBoYXNFeHBsaWNpdGx5U2V0U3Ryb2tlV2lkdGgoKSBjb25zdCB7
IHJldHVybiBtX2luaGVyaXRlZEZsYWdzLmhhc1NldFN0cm9rZVdpZHRoOyB9OworICAgIHZvaWQg
c2V0SGFzRXhwbGljaXRseVNldFdlYktpdFRleHRTdHJva2VXaWR0aChib29sIHYpIHsgbV9pbmhl
cml0ZWRGbGFncy5oYXNTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGggPSB2OyB9CisgICAgYm9vbCBo
YXNFeHBsaWNpdGx5U2V0V2ViS2l0VGV4dFN0cm9rZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9p
bmhlcml0ZWRGbGFncy5oYXNTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGg7IH07CiAgICAgCiAgICAg
Y29uc3QgU1ZHUmVuZGVyU3R5bGUmIHN2Z1N0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdmdTdHls
ZTsgfQogICAgIFNWR1JlbmRlclN0eWxlJiBhY2Nlc3NTVkdTdHlsZSgpIHsgcmV0dXJuIG1fc3Zn
U3R5bGUuYWNjZXNzKCk7IH0KQEAgLTE5MTMsNiArMTkxOCw5IEBAIHByaXZhdGU6CiAgICAgICAg
IC8vIENTUyBUZXh0IExheW91dCBNb2R1bGUgTGV2ZWwgMzogVmVydGljYWwgd3JpdGluZyBzdXBw
b3J0CiAgICAgICAgIHVuc2lnbmVkIHdyaXRpbmdNb2RlIDogMjsgLy8gV3JpdGluZ01vZGUKICAg
ICAgICAgLy8gNDYgYml0cworICAgICAgICAKKyAgICAgICAgdW5zaWduZWQgaGFzU2V0U3Ryb2tl
V2lkdGggOiAxOworICAgICAgICB1bnNpZ25lZCBoYXNTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGgg
OiAxOwogICAgIH07CiAKICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIGlzIHVzZWQgdG8gaW1wbGVt
ZW50IHRoZSByZXBsYWNlIG9wZXJhdGlvbi4KQEAgLTIwNzMsNyArMjA4MSw5IEBAIGlubGluZSBi
b29sIFJlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFnczoKICAgICAgICAgJiYgcG9pbnRlckV2ZW50
cyA9PSBvdGhlci5wb2ludGVyRXZlbnRzCiAgICAgICAgICYmIGluc2lkZUxpbmsgPT0gb3RoZXIu
aW5zaWRlTGluawogICAgICAgICAmJiBpbnNpZGVEZWZhdWx0QnV0dG9uID09IG90aGVyLmluc2lk
ZURlZmF1bHRCdXR0b24KLSAgICAgICAgJiYgd3JpdGluZ01vZGUgPT0gb3RoZXIud3JpdGluZ01v
ZGU7CisgICAgICAgICYmIHdyaXRpbmdNb2RlID09IG90aGVyLndyaXRpbmdNb2RlCisgICAgICAg
ICYmIGhhc1NldFN0cm9rZVdpZHRoID09IG90aGVyLmhhc1NldFN0cm9rZVdpZHRoCisgICAgICAg
ICYmIGhhc1NldFN0cm9rZVdpZHRoID09IG90aGVyLmhhc1NldFdlYktpdFRleHRTdHJva2VXaWR0
aDsKIH0KIAogaW5saW5lIHVuc2lnbmVkIFJlbmRlclN0eWxlOjpOb25Jbmhlcml0ZWRGbGFnczo6
Z2V0VmFsdWUodWludDY0X3QgcG9zaXRpb25JbmRlcGVuZGVudE1hc2ssIHVpbnQ2NF90IG9mZnNl
dCkgY29uc3QKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzUxMCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAzLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc3Ryb2tl
LXdpZHRoIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50LWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3N0cm9rZS13aWR0aC5odG1sOiBBZGRlZC4KKwogMjAx
Ny0wMy0wNyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBFQ0RIIHRlc3RzIGZyb20gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkgZmFpbC4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1leHBlY3RlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgZGl2IHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTog
ODBweDsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5OworICAgICAgICAgICAgdGV4dC1zaGFkb3c6
IG5vbmU7CisgICAgICAgICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiBibHVlOworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSItd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAyNXB4OyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9
Ii13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDAuMmluOyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYg
c3R5bGU9Ii13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDJtbTsiPiYjeDI1ZmM7PC9kaXY+Cis8
ZGl2IHN0eWxlPSItd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwLjFjbTsiPiYjeDI1ZmM7PC9k
aXY+CisKKzxkaXYgc3R5bGU9Ii13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDI1cHg7Ij48c3Bh
bj4mI3gyNWZjOzwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdGV4dC1zdHJva2Ut
d2lkdGg6IDAuMmluOyI+PHNwYW4+JiN4MjVmYzs8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSIt
d2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAybW07Ij48c3Bhbj4mI3gyNWZjOzwvc3Bhbj48L2Rp
dj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDAuMWNtOyI+PHNwYW4+
JiN4MjVmYzs8L3NwYW4+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50LWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQtZXhwZWN0ZWQu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgt
cGVyY2VudC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKzwh
RE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgZGl2
IHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3Jh
eTsKKyAgICAgICAgICAgIHRleHQtc2hhZG93OiBub25lOworICAgICAgICAgICAgLXdlYmtpdC10
ZXh0LXN0cm9rZS1jb2xvcjogYmx1ZTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKworPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAwcHg7Ij4mI3gyNWZjOzwvZGl2
PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiA3cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBz
dHlsZT0ic3Ryb2tlLXdpZHRoOiAxNHB4OyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0
cm9rZS13aWR0aDogMzVweDsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lk
dGg6IDcwcHg7Ij4mI3gyNWZjOzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50Lmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+
Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGRpdiB7CisgICAgICAgICAgICBmb250LXNp
emU6IDIwMHB4OworICAgICAgICAgICAgY29sb3I6IGdyYXk7CisgICAgICAgICAgICB0ZXh0LXNo
YWRvdzogbm9uZTsKKyAgICAgICAgICAgIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6IGJsdWU7
CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9
InN0cm9rZS13aWR0aDogMCU7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdp
ZHRoOiAxJTsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDIlOyI+
JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogNSU7Ij4mI3gyNWZjOzwv
ZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxMCU7Ij4mI3gyNWZjOzwvZGl2PgorCis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGguaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGguaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0
bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGRpdiB7CisgICAgICAgICAgICBmb250
LXNpemU6IDgwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgICAgIHRleHQt
c2hhZG93OiBub25lOworICAgICAgICAgICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogYmx1
ZTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBzdHls
ZT0ic3Ryb2tlLXdpZHRoOiAyNXB4OyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9r
ZS13aWR0aDogMC4yaW47Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRo
OiAybW07Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAwLjFjbTsi
PiYjeDI1ZmM7PC9kaXY+CisKKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMjVweDsiPjxzcGFu
PiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAwLjJpbjsi
PjxzcGFuPiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAy
bW07Ij48c3Bhbj4mI3gyNWZjOzwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0
aDogMC4xY207Ij48c3Bhbj4mI3gyNWZjOzwvc3Bhbj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303652</attachid>
            <date>2017-03-07 07:57:15 -0800</date>
            <delta_ts>2017-03-07 09:00:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169273-20170307165713.patch</filename>
            <type>text/plain</type>
            <size>15159</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzUxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE3LTAzLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc3Ryb2tl
LXdpZHRoIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Nzcy9zdHJva2Utd2lkdGguaHRtbAorCisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVTdHJva2VX
aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVX
ZWJraXRUZXh0U3Ryb2tlV2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmFkZFRvTGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjphZGRUZXh0Qm94VmlzdWFsT3ZlcmZsb3cpOgor
ICAgICAgICAqIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OmNvbXB1dGVPdmVyZmxvdyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1RleHREZWNvcmF0aW9uUGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkZWNvcmF0aW9uQ29sb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50U3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcHV0ZVRleHRTZWxlY3Rpb25QYWludFN0eWxlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5
bGU6OlJlbmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb21wdXRl
ZFRleHRTdHJva2VXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0SGFzRXhwbGljaXRseVNldFN0
cm9rZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpoYXNFeHBsaWNpdGx5
U2V0U3Ryb2tlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEhhc0V4
cGxpY2l0bHlTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6Omhhc0V4cGxpY2l0bHlTZXRXZWJLaXRUZXh0U3Ryb2tlV2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09KToKKwog
MjAxNy0wMy0wNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjIxMzQxMik6IEpQRUcgcHJlbXVsdGlwbGljYXRpb24gdGVzdHMgZmFpbCB1bmRl
ciBHdWFyZE1hbGxvYwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNv
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCShy
ZXZpc2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29u
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDI4LDYgKzMwMjgsNyBAQAogICAgICAgICAic3Ryb2tlLXdp
ZHRoIjogewogICAgICAgICAgICAgImluaGVyaXRlZCI6IHRydWUsCiAgICAgICAgICAgICAiY29k
ZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJjdXN0b20iOiAiVmFsdWUiLAog
ICAgICAgICAgICAgICAgICJpbml0aWFsIjogImluaXRpYWxPbmVMZW5ndGgiLAogICAgICAgICAg
ICAgICAgICJjb252ZXJ0ZXIiOiAiTGVuZ3RoIgogICAgICAgICAgICAgfSwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAt
MTM5LDYgKzEzOSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlQWx0KFN0
eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWVXaWxs
Q2hhbmdlKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOwogCisgICAgc3RhdGljIHZvaWQgYXBw
bHlWYWx1ZVN0cm9rZVdpZHRoKFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOworCiBwcml2YXRl
OgogICAgIHN0YXRpYyB2b2lkIHJlc2V0RWZmZWN0aXZlWm9vbShTdHlsZVJlc29sdmVyJik7CiAK
QEAgLTE3ODAsNCArMTc4MiwxMCBAQCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFw
cGx5VmFsCiAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRXaWxsQ2hhbmdlKFdURk1vdmUo
d2lsbENoYW5nZSkpOwogfQogCitpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5
VmFsdWVTdHJva2VXaWR0aChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYg
dmFsdWUpCit7CisgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRTdHJva2VXaWR0aChTdHls
ZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRMZW5ndGgoc3R5bGVSZXNvbHZlciwgdmFsdWUpKTsK
KyAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0
aCh0cnVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gMjEzNTEwKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjksNyArMTY5LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRUb0xpbmUoSW5saW5lQm94
KgogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgY2hpbGRTdHlsZSA9IGNoaWxkLT5saW5lU3R5
bGUoKTsKICAgICAgICAgaWYgKGNoaWxkLT5iZWhhdmVzTGlrZVRleHQoKSkgewogICAgICAgICAg
ICAgY29uc3QgUmVuZGVyU3R5bGUqIGNoaWxkU3R5bGUgPSAmY2hpbGQtPmxpbmVTdHlsZSgpOwot
ICAgICAgICAgICAgaWYgKGNoaWxkU3R5bGUtPmxldHRlclNwYWNpbmcoKSA8IDAgfHwgY2hpbGRT
dHlsZS0+dGV4dFNoYWRvdygpIHx8IGNoaWxkU3R5bGUtPnRleHRFbXBoYXNpc01hcmsoKSAhPSBU
ZXh0RW1waGFzaXNNYXJrTm9uZSB8fCBjaGlsZFN0eWxlLT50ZXh0U3Ryb2tlV2lkdGgoKSkKKyAg
ICAgICAgICAgIGlmIChjaGlsZFN0eWxlLT5sZXR0ZXJTcGFjaW5nKCkgPCAwIHx8IGNoaWxkU3R5
bGUtPnRleHRTaGFkb3coKSB8fCBjaGlsZFN0eWxlLT50ZXh0RW1waGFzaXNNYXJrKCkgIT0gVGV4
dEVtcGhhc2lzTWFya05vbmUgfHwgY2hpbGRTdHlsZS0+dGV4dFN0cm9rZVdpZHRoKCkgfHwgKGNo
aWxkU3R5bGUtPmhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCgpICYmIGNoaWxkU3R5bGUtPnN0
cm9rZVdpZHRoKCkudmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgY2hpbGQtPmNsZWFyS25vd25U
b0hhdmVOb092ZXJmbG93KCk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQtPnJlbmRlcmVyKCku
aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgICAgICBjb25zdCBSZW5kZXJCb3gmIGJveCA9IGRvd25j
YXN0PFJlbmRlckJveD4oY2hpbGQtPnJlbmRlcmVyKCkpOwpAQCAtOTA0LDcgKzkwNCw4IEBAIGlu
bGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZFRleHRCb3hWaXMKICAgICBpbnQgbGVmdEdseXBo
RWRnZSA9IGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5sZWZ0IDogMDsKICAgICBpbnQg
cmlnaHRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+cmlnaHQgOiAw
OwogCi0gICAgaW50IHN0cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihsaW5l
U3R5bGUudGV4dFN0cm9rZVdpZHRoKCkgLyAyLjBmKSk7CisgICAgRmxvYXRTaXplIHZpZXdwb3J0
ID0gdGV4dEJveC5yZW5kZXJlcigpLmZyYW1lKCkudmlldygpID8gdGV4dEJveC5yZW5kZXJlcigp
LmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBGbG9hdFNpemUoKTsKKyAgICBpbnQgc3Ryb2tlT3Zl
cmZsb3cgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKGxpbmVTdHlsZS5jb21wdXRlZFRleHRTdHJv
a2VXaWR0aCh2aWV3cG9ydCkgLyAyLjBmKSk7CiAgICAgaW50IHRvcEdseXBoT3ZlcmZsb3cgPSAt
c3Ryb2tlT3ZlcmZsb3cgLSB0b3BHbHlwaEVkZ2U7CiAgICAgaW50IGJvdHRvbUdseXBoT3ZlcmZs
b3cgPSBzdHJva2VPdmVyZmxvdyArIGJvdHRvbUdseXBoRWRnZTsKICAgICBpbnQgbGVmdEdseXBo
T3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSBsZWZ0R2x5cGhFZGdlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25z
LmNwcAkocmV2aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBs
ZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBA
IHN0YXRpYyB2b2lkIHBhaW50RGVidWdCb3JkZXJzKEdyYXBoaWNzQ28KIHN0YXRpYyBGbG9hdFJl
Y3QgY29tcHV0ZU92ZXJmbG93KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdywgY29uc3QgRmxv
YXRSZWN0JiBsYXlvdXRSZWN0KQogewogICAgIGF1dG8gb3ZlcmZsb3dSZWN0ID0gbGF5b3V0UmVj
dDsKLSAgICBhdXRvIHN0cm9rZU92ZXJmbG93ID0gc3RkOjpjZWlsKGZsb3cuc3R5bGUoKS50ZXh0
U3Ryb2tlV2lkdGgoKSk7CisgICAgYXV0byBzdHJva2VPdmVyZmxvdyA9IHN0ZDo6Y2VpbChmbG93
LnN0eWxlKCkuY29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgoZmxvdy5mcmFtZSgpLnZpZXcoKSA/IGZs
b3cuZnJhbWUoKS52aWV3KCktPnNpemUoKSA6IEZsb2F0U2l6ZSgpKSk7CiAgICAgb3ZlcmZsb3dS
ZWN0LmluZmxhdGUoc3Ryb2tlT3ZlcmZsb3cpOwogCiAgICAgYXV0byBsZXR0ZXJTcGFjaW5nID0g
Zmxvdy5zdHlsZSgpLmZvbnRDYXNjYWRlKCkubGV0dGVyU3BhY2luZygpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHREZWNvcmF0aW9uUGFpbnRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHREZWNvcmF0aW9uUGFpbnRlci5jcHAJKHJl
dmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0RGVjb3JhdGlv
blBhaW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTcsNyArMzU3LDcgQEAgc3RhdGljIENv
bG9yIGRlY29yYXRpb25Db2xvcihjb25zdCBSZW5kZQogICAgIENvbG9yIHJlc3VsdCA9IHN0eWxl
LnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uQ29s
b3IpOwogICAgIGlmIChyZXN1bHQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIGlmIChzdHlsZS50ZXh0U3Ryb2tlV2lkdGgoKSA+IDApIHsKKyAgICBpZiAoc3R5bGUudGV4
dFN0cm9rZVdpZHRoKCkgPiAwIHx8IChzdHlsZS5oYXNFeHBsaWNpdGx5U2V0U3Ryb2tlV2lkdGgo
KSAmJiBzdHlsZS5zdHJva2VXaWR0aCgpLnZhbHVlKCkgPiAwKSkgewogICAgICAgICAvLyBQcmVm
ZXIgc3Ryb2tlIGNvbG9yIGlmIHBvc3NpYmxlIGJ1dCBub3QgaWYgaXQncyBmdWxseSB0cmFuc3Bh
cmVudC4KICAgICAgICAgcmVzdWx0ID0gc3R5bGUudmlzaXRlZERlcGVuZGVudENvbG9yKENTU1By
b3BlcnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yKTsKICAgICAgICAgaWYgKHJlc3VsdC5pc1Zpc2li
bGUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNw
cAkocmV2aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWlu
dFN0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBUZXh0UGFpbnRTdHls
ZSBjb21wdXRlVGV4dFBhaW50U3R5bGUoY29uCiAjaWYgRU5BQkxFKExFVFRFUlBSRVNTKQogICAg
IHBhaW50U3R5bGUudXNlTGV0dGVycHJlc3NFZmZlY3QgPSBsaW5lU3R5bGUudGV4dERlY29yYXRp
b25zSW5FZmZlY3QoKSAmIFRleHREZWNvcmF0aW9uTGV0dGVycHJlc3M7CiAjZW5kaWYKLSAgICBw
YWludFN0eWxlLnN0cm9rZVdpZHRoID0gbGluZVN0eWxlLnRleHRTdHJva2VXaWR0aCgpOworICAg
IHBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPSBsaW5lU3R5bGUuY29tcHV0ZWRUZXh0U3Ryb2tlV2lk
dGgoZnJhbWUudmlldygpID8gZnJhbWUudmlldygpLT5zaXplKCkgOiBGbG9hdFNpemUoKSk7CiAg
ICAgcGFpbnRTdHlsZS5wYWludE9yZGVyID0gbGluZVN0eWxlLnBhaW50T3JkZXIoKTsKICAgICBw
YWludFN0eWxlLmxpbmVKb2luID0gbGluZVN0eWxlLmpvaW5TdHlsZSgpOwogICAgIHBhaW50U3R5
bGUubGluZUNhcCA9IGxpbmVTdHlsZS5jYXBTdHlsZSgpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIFRl
eHRQYWludFN0eWxlIGNvbXB1dGVUZXh0U2VsZWN0aW9uUGFpbnQKICAgICAgICAgICAgIHNlbGVj
dGlvblNoYWRvdyA9IHNoYWRvdzsKICAgICAgICAgfQogCi0gICAgICAgIGZsb2F0IHN0cm9rZVdp
ZHRoID0gcHNldWRvU3R5bGUtPnRleHRTdHJva2VXaWR0aCgpOworICAgICAgICBmbG9hdCBzdHJv
a2VXaWR0aCA9IHBzZXVkb1N0eWxlLT5jb21wdXRlZFRleHRTdHJva2VXaWR0aChyZW5kZXJlci5m
cmFtZSgpLnZpZXcoKSA/IHJlbmRlcmVyLmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBGbG9hdFNp
emUoKSk7CiAgICAgICAgIGlmIChzdHJva2VXaWR0aCAhPSBzZWxlY3Rpb25QYWludFN0eWxlLnN0
cm9rZVdpZHRoKSB7CiAgICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0T25seSkKICAg
ICAgICAgICAgICAgICBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgPSB0cnVlOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZp
c2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDcgQEAgUmVuZGVyU3R5bGU6OlJl
bmRlclN0eWxlKENyZWF0ZURlZmF1bHRTdAogICAgIG1faW5oZXJpdGVkRmxhZ3MuaW5zaWRlTGlu
ayA9IE5vdEluc2lkZUxpbms7CiAgICAgbV9pbmhlcml0ZWRGbGFncy5pbnNpZGVEZWZhdWx0QnV0
dG9uID0gZmFsc2U7CiAgICAgbV9pbmhlcml0ZWRGbGFncy53cml0aW5nTW9kZSA9IGluaXRpYWxX
cml0aW5nTW9kZSgpOworICAgIG1faW5oZXJpdGVkRmxhZ3MuaGFzU2V0U3Ryb2tlV2lkdGggPSBm
YWxzZTsKIAogICAgIHN0YXRpY19hc3NlcnQoKHNpemVvZihJbmhlcml0ZWRGbGFncykgPD0gOCks
ICJJbmhlcml0ZWRGbGFncyBkb2VzIG5vdCBncm93Iik7CiAgICAgc3RhdGljX2Fzc2VydCgoc2l6
ZW9mKE5vbkluaGVyaXRlZEZsYWdzKSA8PSA4KSwgIk5vbkluaGVyaXRlZEZsYWdzIGRvZXMgbm90
IGdyb3ciKTsKQEAgLTIyNTYsNSArMjI1NywxNyBAQCBWZWN0b3I8UGFpbnRUeXBlLCAzPiBSZW5k
ZXJTdHlsZTo6cGFpbnRUCiAgICAgcmV0dXJuIHBhaW50T3JkZXI7CiB9CiAKK2Zsb2F0IFJlbmRl
clN0eWxlOjpjb21wdXRlZFRleHRTdHJva2VXaWR0aChjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0
KSBjb25zdAoreworICAgIGlmICghaGFzRXhwbGljaXRseVNldFN0cm9rZVdpZHRoKCkpCisgICAg
ICAgIHJldHVybiB0ZXh0U3Ryb2tlV2lkdGgoKTsKKyAgICAKKyAgICBjb25zdCBMZW5ndGgmIGxl
bmd0aCA9IHN0cm9rZVdpZHRoKCk7CisgICAgaWYgKGxlbmd0aC5pc1BlcmNlbnQoKSkKKyAgICAg
ICAgcmV0dXJuIGxlbmd0aC52YWx1ZSgpICogKHZpZXdwb3J0LndpZHRoKCkgKyB2aWV3cG9ydC5o
ZWlnaHQoKSkgLyAyMDAuMGY7CisKKyAgICByZXR1cm4gZmxvYXRWYWx1ZUZvckxlbmd0aChsZW5n
dGgsIHZpZXdwb3J0LndpZHRoKCkpOworfQorCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZp
c2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1Nyw2ICsxMjU3LDkgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U3Ryb2tlV2lkdGgoTGVuZ3RoJiYgdykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERh
dGEsIHN0cm9rZVdpZHRoLCBXVEZNb3ZlKHcpKTsgfQogICAgIGJvb2wgaGFzVmlzaWJsZVN0cm9r
ZSgpIGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCkuaGFzU3Ryb2tlKCkgJiYgIXN0cm9rZVdpZHRo
KCkuaXNaZXJvKCk7IH0KIAorICAgIGZsb2F0IGNvbXB1dGVkVGV4dFN0cm9rZVdpZHRoKGNvbnN0
IEZsb2F0U2l6ZSYgdmlld3BvcnQpIGNvbnN0OworICAgIHZvaWQgc2V0SGFzRXhwbGljaXRseVNl
dFN0cm9rZVdpZHRoKGJvb2wgdikgeyBtX2luaGVyaXRlZEZsYWdzLmhhc1NldFN0cm9rZVdpZHRo
ID0gdjsgfQorICAgIGJvb2wgaGFzRXhwbGljaXRseVNldFN0cm9rZVdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbmhlcml0ZWRGbGFncy5oYXNTZXRTdHJva2VXaWR0aDsgfTsKICAgICAKICAgICBj
b25zdCBTVkdSZW5kZXJTdHlsZSYgc3ZnU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N2Z1N0eWxl
OyB9CiAgICAgU1ZHUmVuZGVyU3R5bGUmIGFjY2Vzc1NWR1N0eWxlKCkgeyByZXR1cm4gbV9zdmdT
dHlsZS5hY2Nlc3MoKTsgfQpAQCAtMTkxMyw2ICsxOTE2LDggQEAgcHJpdmF0ZToKICAgICAgICAg
Ly8gQ1NTIFRleHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0aW5nIHN1cHBv
cnQKICAgICAgICAgdW5zaWduZWQgd3JpdGluZ01vZGUgOiAyOyAvLyBXcml0aW5nTW9kZQogICAg
ICAgICAvLyA0NiBiaXRzCisgICAgICAgIAorICAgICAgICB1bnNpZ25lZCBoYXNTZXRTdHJva2VX
aWR0aCA6IDE7CiAgICAgfTsKIAogICAgIC8vIFRoaXMgY29uc3RydWN0b3IgaXMgdXNlZCB0byBp
bXBsZW1lbnQgdGhlIHJlcGxhY2Ugb3BlcmF0aW9uLgpAQCAtMjA3Myw3ICsyMDc4LDggQEAgaW5s
aW5lIGJvb2wgUmVuZGVyU3R5bGU6OkluaGVyaXRlZEZsYWdzOgogICAgICAgICAmJiBwb2ludGVy
RXZlbnRzID09IG90aGVyLnBvaW50ZXJFdmVudHMKICAgICAgICAgJiYgaW5zaWRlTGluayA9PSBv
dGhlci5pbnNpZGVMaW5rCiAgICAgICAgICYmIGluc2lkZURlZmF1bHRCdXR0b24gPT0gb3RoZXIu
aW5zaWRlRGVmYXVsdEJ1dHRvbgotICAgICAgICAmJiB3cml0aW5nTW9kZSA9PSBvdGhlci53cml0
aW5nTW9kZTsKKyAgICAgICAgJiYgd3JpdGluZ01vZGUgPT0gb3RoZXIud3JpdGluZ01vZGUKKyAg
ICAgICAgJiYgaGFzU2V0U3Ryb2tlV2lkdGggPT0gb3RoZXIuaGFzU2V0U3Ryb2tlV2lkdGg7CiB9
CiAKIGlubGluZSB1bnNpZ25lZCBSZW5kZXJTdHlsZTo6Tm9uSW5oZXJpdGVkRmxhZ3M6OmdldFZh
bHVlKHVpbnQ2NF90IHBvc2l0aW9uSW5kZXBlbmRlbnRNYXNrLCB1aW50NjRfdCBvZmZzZXQpIGNv
bnN0CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTM1MTApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wMy0wNyAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHN0cm9rZS13aWR0
aCBDU1MgcHJvcGVydHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjkyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvY3NzL3N0cm9rZS13aWR0aC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9zdHJva2Utd2lkdGguaHRtbDogQWRkZWQuCisKIDIwMTctMDMt
MDcgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gRUNESCB0ZXN0cyBmcm9tIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5IGZhaWwuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9zdHJva2Utd2lkdGgtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4K
KyAgICA8c3R5bGU+CisgICAgICAgIGRpdiB7CisgICAgICAgICAgICBmb250LXNpemU6IDgwcHg7
CisgICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgICAgIHRleHQtc2hhZG93OiBub25l
OworICAgICAgICAgICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogYmx1ZTsKKyAgICAgICAg
fQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBzdHlsZT0iLXdlYmtpdC10
ZXh0LXN0cm9rZS13aWR0aDogMjVweDsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwLjJpbjsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxl
PSItd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAybW07Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBz
dHlsZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4xY207Ij4mI3gyNWZjOzwvZGl2Pgor
Cis8ZGl2IHN0eWxlPSItd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAyNXB4OyI+PHNwYW4+JiN4
MjVmYzs8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRo
OiAwLjJpbjsiPjxzcGFuPiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtp
dC10ZXh0LXN0cm9rZS13aWR0aDogMm1tOyI+PHNwYW4+JiN4MjVmYzs8L3NwYW4+PC9kaXY+Cis8
ZGl2IHN0eWxlPSItd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwLjFjbTsiPjxzcGFuPiYjeDI1
ZmM7PC9zcGFuPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50LWV4cGVjdGVkLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNl
bnQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGRpdiB7Cisg
ICAgICAgICAgICBmb250LXNpemU6IDIwMHB4OworICAgICAgICAgICAgY29sb3I6IGdyYXk7Cisg
ICAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTsKKyAgICAgICAgICAgIC13ZWJraXQtdGV4dC1z
dHJva2UtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisKKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMHB4OyI+JiN4MjVmYzs8L2Rpdj4KKzxk
aXYgc3R5bGU9InN0cm9rZS13aWR0aDogN3B4OyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9
InN0cm9rZS13aWR0aDogMTRweDsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Ut
d2lkdGg6IDM1cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiA3
MHB4OyI+JiN4MjVmYzs8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhl
YWQ+CisgICAgPHN0eWxlPgorICAgICAgICBkaXYgeworICAgICAgICAgICAgZm9udC1zaXplOiAy
MDBweDsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5OworICAgICAgICAgICAgdGV4dC1zaGFkb3c6
IG5vbmU7CisgICAgICAgICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiBibHVlOworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJzdHJv
a2Utd2lkdGg6IDAlOyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDog
MSU7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAyJTsiPiYjeDI1
ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDUlOyI+JiN4MjVmYzs8L2Rpdj4K
KzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMTAlOyI+JiN4MjVmYzs8L2Rpdj4KKworPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgor
PGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBkaXYgeworICAgICAgICAgICAgZm9udC1zaXpl
OiA4MHB4OworICAgICAgICAgICAgY29sb3I6IGdyYXk7CisgICAgICAgICAgICB0ZXh0LXNoYWRv
dzogbm9uZTsKKyAgICAgICAgICAgIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6IGJsdWU7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9InN0
cm9rZS13aWR0aDogMjVweDsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lk
dGg6IDAuMmluOyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMm1t
OyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMC4xY207Ij4mI3gy
NWZjOzwvZGl2PgorCis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDI1cHg7Ij48c3Bhbj4mI3gy
NWZjOzwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMC4yaW47Ij48c3Bh
bj4mI3gyNWZjOzwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMm1tOyI+
PHNwYW4+JiN4MjVmYzs8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDAu
MWNtOyI+PHNwYW4+JiN4MjVmYzs8L3NwYW4+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303660</attachid>
            <date>2017-03-07 09:00:53 -0800</date>
            <delta_ts>2017-03-08 01:28:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169273-20170307180051.patch</filename>
            <type>text/plain</type>
            <size>15280</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzUxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE3LTAzLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc3Ryb2tl
LXdpZHRoIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRleHQgc3Ryb2tlIHdpZHRoIHdp
dGggQ1NTIHByb3BlcnR5IHN0cm9rZS13aWR0aCwgc2VlIGh0dHBzOi8vZHJhZnRzLmZ4dGYub3Jn
L3BhaW50Ly4KKworICAgICAgICBUZXN0czogZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0aWVzLmpzb246CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlckN1
c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVl
U3Ryb2tlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBs
eVZhbHVlV2Via2l0VGV4dFN0cm9rZVdpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjphZGRUb0xpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJm
bG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojpjb21wdXRlT3ZlcmZsb3cpOgor
ICAgICAgICAqIHJlbmRlcmluZy9UZXh0RGVjb3JhdGlvblBhaW50ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZGVjb3JhdGlvbkNvbG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVRleHRQYWludFN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbXB1dGVUZXh0U2VsZWN0aW9uUGFpbnRTdHlsZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjpSZW5kZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6
Y29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEhhc0V4cGxpY2l0
bHlTZXRTdHJva2VXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzRXhw
bGljaXRseVNldFN0cm9rZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpz
ZXRIYXNFeHBsaWNpdGx5U2V0V2ViS2l0VGV4dFN0cm9rZVdpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpoYXNFeHBsaWNpdGx5U2V0V2ViS2l0VGV4dFN0cm9rZVdpZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFnczo6b3BlcmF0b3I9
PSk6CisKIDIwMTctMDMtMDcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyMTM0MTIpOiBKUEVHIHByZW11bHRpcGxpY2F0aW9uIHRlc3RzIGZh
aWwgdW5kZXIgR3VhcmRNYWxsb2MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
aWVzLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMu
anNvbgkocmV2aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRp
ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMzAyOCw2ICszMDI4LDcgQEAKICAgICAgICAgInN0
cm9rZS13aWR0aCI6IHsKICAgICAgICAgICAgICJpbmhlcml0ZWQiOiB0cnVlLAogICAgICAgICAg
ICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAiY3VzdG9tIjogIlZh
bHVlIiwKICAgICAgICAgICAgICAgICAiaW5pdGlhbCI6ICJpbml0aWFsT25lTGVuZ3RoIiwKICAg
ICAgICAgICAgICAgICAiY29udmVydGVyIjogIkxlbmd0aCIKICAgICAgICAgICAgIH0sCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCShyZXZpc2lvbiAyMTM1MTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEzOSw2ICsxMzksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1
ZUFsdChTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgdm9pZCBhcHBseVZh
bHVlV2lsbENoYW5nZShTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKIAorICAgIHN0YXRpYyB2
b2lkIGFwcGx5VmFsdWVTdHJva2VXaWR0aChTdHlsZVJlc29sdmVyJiwgQ1NTVmFsdWUmKTsKKwog
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCByZXNldEVmZmVjdGl2ZVpvb20oU3R5bGVSZXNvbHZl
ciYpOwogCkBAIC0xNzgwLDQgKzE3ODIsMTAgQEAgaW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3Vz
dG9tOjphcHBseVZhbAogICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0V2lsbENoYW5nZShX
VEZNb3ZlKHdpbGxDaGFuZ2UpKTsKIH0KIAoraW5saW5lIHZvaWQgU3R5bGVCdWlsZGVyQ3VzdG9t
OjphcHBseVZhbHVlU3Ryb2tlV2lkdGgoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1NT
VmFsdWUmIHZhbHVlKQoreworICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0U3Ryb2tlV2lk
dGgoU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0TGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHZh
bHVlKSk7CisgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRIYXNFeHBsaWNpdGx5U2V0U3Ry
b2tlV2lkdGgodHJ1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDIxMzUxMCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6YWRkVG9MaW5lKElu
bGluZUJveCoKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIGNoaWxkU3R5bGUgPSBjaGlsZC0+
bGluZVN0eWxlKCk7CiAgICAgICAgIGlmIChjaGlsZC0+YmVoYXZlc0xpa2VUZXh0KCkpIHsKICAg
ICAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiBjaGlsZFN0eWxlID0gJmNoaWxkLT5saW5lU3R5
bGUoKTsKLSAgICAgICAgICAgIGlmIChjaGlsZFN0eWxlLT5sZXR0ZXJTcGFjaW5nKCkgPCAwIHx8
IGNoaWxkU3R5bGUtPnRleHRTaGFkb3coKSB8fCBjaGlsZFN0eWxlLT50ZXh0RW1waGFzaXNNYXJr
KCkgIT0gVGV4dEVtcGhhc2lzTWFya05vbmUgfHwgY2hpbGRTdHlsZS0+dGV4dFN0cm9rZVdpZHRo
KCkpCisgICAgICAgICAgICBpZiAoY2hpbGRTdHlsZS0+bGV0dGVyU3BhY2luZygpIDwgMCB8fCBj
aGlsZFN0eWxlLT50ZXh0U2hhZG93KCkgfHwgY2hpbGRTdHlsZS0+dGV4dEVtcGhhc2lzTWFyaygp
ICE9IFRleHRFbXBoYXNpc01hcmtOb25lIHx8IGNoaWxkU3R5bGUtPnRleHRTdHJva2VXaWR0aCgp
IHx8IChjaGlsZFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0U3Ryb2tlV2lkdGgoKSAmJiBjaGlsZFN0
eWxlLT5zdHJva2VXaWR0aCgpLnZhbHVlKCkpKQogICAgICAgICAgICAgICAgIGNoaWxkLT5jbGVh
cktub3duVG9IYXZlTm9PdmVyZmxvdygpOwogICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLT5yZW5k
ZXJlcigpLmlzUmVwbGFjZWQoKSkgewogICAgICAgICAgICAgY29uc3QgUmVuZGVyQm94JiBib3gg
PSBkb3duY2FzdDxSZW5kZXJCb3g+KGNoaWxkLT5yZW5kZXJlcigpKTsKQEAgLTkwNCw3ICs5MDQs
OCBAQCBpbmxpbmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRUZXh0Qm94VmlzCiAgICAgaW50IGxl
ZnRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+bGVmdCA6IDA7CiAg
ICAgaW50IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJp
Z2h0IDogMDsKIAotICAgIGludCBzdHJva2VPdmVyZmxvdyA9IHN0YXRpY19jYXN0PGludD4oY2Vp
bGYobGluZVN0eWxlLnRleHRTdHJva2VXaWR0aCgpIC8gMi4wZikpOworICAgIEZsb2F0U2l6ZSB2
aWV3cG9ydCA9IHRleHRCb3gucmVuZGVyZXIoKS5mcmFtZSgpLnZpZXcoKSA/IHRleHRCb3gucmVu
ZGVyZXIoKS5mcmFtZSgpLnZpZXcoKS0+c2l6ZSgpIDogRmxvYXRTaXplKCk7CisgICAgaW50IHN0
cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihsaW5lU3R5bGUuY29tcHV0ZWRU
ZXh0U3Ryb2tlV2lkdGgodmlld3BvcnQpIC8gMi4wZikpOwogICAgIGludCB0b3BHbHlwaE92ZXJm
bG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOwogICAgIGludCBib3R0b21HbHlw
aE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlwaEVkZ2U7CiAgICAgaW50IGxl
ZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVmdEdseXBoRWRnZTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1
bmN0aW9ucy5jcHAJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyAr
NjgsNyBAQCBzdGF0aWMgdm9pZCBwYWludERlYnVnQm9yZGVycyhHcmFwaGljc0NvCiBzdGF0aWMg
RmxvYXRSZWN0IGNvbXB1dGVPdmVyZmxvdyhjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3csIGNv
bnN0IEZsb2F0UmVjdCYgbGF5b3V0UmVjdCkKIHsKICAgICBhdXRvIG92ZXJmbG93UmVjdCA9IGxh
eW91dFJlY3Q7Ci0gICAgYXV0byBzdHJva2VPdmVyZmxvdyA9IHN0ZDo6Y2VpbChmbG93LnN0eWxl
KCkudGV4dFN0cm9rZVdpZHRoKCkpOworICAgIGF1dG8gc3Ryb2tlT3ZlcmZsb3cgPSBzdGQ6OmNl
aWwoZmxvdy5zdHlsZSgpLmNvbXB1dGVkVGV4dFN0cm9rZVdpZHRoKGZsb3cuZnJhbWUoKS52aWV3
KCkgPyBmbG93LmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBGbG9hdFNpemUoKSkpOwogICAgIG92
ZXJmbG93UmVjdC5pbmZsYXRlKHN0cm9rZU92ZXJmbG93KTsKIAogICAgIGF1dG8gbGV0dGVyU3Bh
Y2luZyA9IGZsb3cuc3R5bGUoKS5mb250Q2FzY2FkZSgpLmxldHRlclNwYWNpbmcoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0RGVjb3JhdGlvblBhaW50ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0RGVjb3JhdGlvblBhaW50ZXIu
Y3BwCShyZXZpc2lvbiAyMTM1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dERl
Y29yYXRpb25QYWludGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU3LDcgKzM1Nyw3IEBAIHN0
YXRpYyBDb2xvciBkZWNvcmF0aW9uQ29sb3IoY29uc3QgUmVuZGUKICAgICBDb2xvciByZXN1bHQg
PSBzdHlsZS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3Jh
dGlvbkNvbG9yKTsKICAgICBpZiAocmVzdWx0LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICBpZiAoc3R5bGUudGV4dFN0cm9rZVdpZHRoKCkgPiAwKSB7CisgICAgaWYgKHN0
eWxlLnRleHRTdHJva2VXaWR0aCgpID4gMCB8fCAoc3R5bGUuaGFzRXhwbGljaXRseVNldFN0cm9r
ZVdpZHRoKCkgJiYgc3R5bGUuc3Ryb2tlV2lkdGgoKS52YWx1ZSgpID4gMCkpIHsKICAgICAgICAg
Ly8gUHJlZmVyIHN0cm9rZSBjb2xvciBpZiBwb3NzaWJsZSBidXQgbm90IGlmIGl0J3MgZnVsbHkg
dHJhbnNwYXJlbnQuCiAgICAgICAgIHJlc3VsdCA9IHN0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xv
cihDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcik7CiAgICAgICAgIGlmIChyZXN1bHQu
aXNWaXNpYmxlKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRT
dHlsZS5jcHAJKHJldmlzaW9uIDIxMzUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0UGFpbnRTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAgVGV4dFBh
aW50U3R5bGUgY29tcHV0ZVRleHRQYWludFN0eWxlKGNvbgogI2lmIEVOQUJMRShMRVRURVJQUkVT
UykKICAgICBwYWludFN0eWxlLnVzZUxldHRlcnByZXNzRWZmZWN0ID0gbGluZVN0eWxlLnRleHRE
ZWNvcmF0aW9uc0luRWZmZWN0KCkgJiBUZXh0RGVjb3JhdGlvbkxldHRlcnByZXNzOwogI2VuZGlm
Ci0gICAgcGFpbnRTdHlsZS5zdHJva2VXaWR0aCA9IGxpbmVTdHlsZS50ZXh0U3Ryb2tlV2lkdGgo
KTsKKyAgICBwYWludFN0eWxlLnN0cm9rZVdpZHRoID0gbGluZVN0eWxlLmNvbXB1dGVkVGV4dFN0
cm9rZVdpZHRoKGZyYW1lLnZpZXcoKSA/IGZyYW1lLnZpZXcoKS0+c2l6ZSgpIDogRmxvYXRTaXpl
KCkpOwogICAgIHBhaW50U3R5bGUucGFpbnRPcmRlciA9IGxpbmVTdHlsZS5wYWludE9yZGVyKCk7
CiAgICAgcGFpbnRTdHlsZS5saW5lSm9pbiA9IGxpbmVTdHlsZS5qb2luU3R5bGUoKTsKICAgICBw
YWludFN0eWxlLmxpbmVDYXAgPSBsaW5lU3R5bGUuY2FwU3R5bGUoKTsKQEAgLTE0Nyw3ICsxNDcs
NyBAQCBUZXh0UGFpbnRTdHlsZSBjb21wdXRlVGV4dFNlbGVjdGlvblBhaW50CiAgICAgICAgICAg
ICBzZWxlY3Rpb25TaGFkb3cgPSBzaGFkb3c7CiAgICAgICAgIH0KIAotICAgICAgICBmbG9hdCBz
dHJva2VXaWR0aCA9IHBzZXVkb1N0eWxlLT50ZXh0U3Ryb2tlV2lkdGgoKTsKKyAgICAgICAgZmxv
YXQgc3Ryb2tlV2lkdGggPSBwc2V1ZG9TdHlsZS0+Y29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgocmVu
ZGVyZXIuZnJhbWUoKS52aWV3KCkgPyByZW5kZXJlci5mcmFtZSgpLnZpZXcoKS0+c2l6ZSgpIDog
RmxvYXRTaXplKCkpOwogICAgICAgICBpZiAoc3Ryb2tlV2lkdGggIT0gc2VsZWN0aW9uUGFpbnRT
dHlsZS5zdHJva2VXaWR0aCkgewogICAgICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9u
bHkpCiAgICAgICAgICAgICAgICAgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5ID0gdHJ1ZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAkocmV2aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw3IEBAIFJlbmRlclN0
eWxlOjpSZW5kZXJTdHlsZShDcmVhdGVEZWZhdWx0U3QKICAgICBtX2luaGVyaXRlZEZsYWdzLmlu
c2lkZUxpbmsgPSBOb3RJbnNpZGVMaW5rOwogICAgIG1faW5oZXJpdGVkRmxhZ3MuaW5zaWRlRGVm
YXVsdEJ1dHRvbiA9IGZhbHNlOwogICAgIG1faW5oZXJpdGVkRmxhZ3Mud3JpdGluZ01vZGUgPSBp
bml0aWFsV3JpdGluZ01vZGUoKTsKKyAgICBtX2luaGVyaXRlZEZsYWdzLmhhc1NldFN0cm9rZVdp
ZHRoID0gZmFsc2U7CiAKICAgICBzdGF0aWNfYXNzZXJ0KChzaXplb2YoSW5oZXJpdGVkRmxhZ3Mp
IDw9IDgpLCAiSW5oZXJpdGVkRmxhZ3MgZG9lcyBub3QgZ3JvdyIpOwogICAgIHN0YXRpY19hc3Nl
cnQoKHNpemVvZihOb25Jbmhlcml0ZWRGbGFncykgPD0gOCksICJOb25Jbmhlcml0ZWRGbGFncyBk
b2VzIG5vdCBncm93Iik7CkBAIC0yMjU2LDUgKzIyNTcsMTcgQEAgVmVjdG9yPFBhaW50VHlwZSwg
Mz4gUmVuZGVyU3R5bGU6OnBhaW50VAogICAgIHJldHVybiBwYWludE9yZGVyOwogfQogCitmbG9h
dCBSZW5kZXJTdHlsZTo6Y29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgoY29uc3QgRmxvYXRTaXplJiB2
aWV3cG9ydCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCgp
KQorICAgICAgICByZXR1cm4gdGV4dFN0cm9rZVdpZHRoKCk7CisgICAgCisgICAgY29uc3QgTGVu
Z3RoJiBsZW5ndGggPSBzdHJva2VXaWR0aCgpOworICAgIGlmIChsZW5ndGguaXNQZXJjZW50KCkp
CisgICAgICAgIHJldHVybiBsZW5ndGgudmFsdWUoKSAqICh2aWV3cG9ydC53aWR0aCgpICsgdmll
d3BvcnQuaGVpZ2h0KCkpIC8gMjAwLjBmOworCisgICAgcmV0dXJuIGZsb2F0VmFsdWVGb3JMZW5n
dGgobGVuZ3RoLCB2aWV3cG9ydC53aWR0aCgpKTsKK30KKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAkocmV2aXNpb24gMjEzNTEwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNTcsNiArMTI1Nyw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFN0cm9rZVdpZHRoKExlbmd0aCYmIHcpIHsgU0VUX1ZBUihtX3JhcmVJbmhl
cml0ZWREYXRhLCBzdHJva2VXaWR0aCwgV1RGTW92ZSh3KSk7IH0KICAgICBib29sIGhhc1Zpc2li
bGVTdHJva2UoKSBjb25zdCB7IHJldHVybiBzdmdTdHlsZSgpLmhhc1N0cm9rZSgpICYmICFzdHJv
a2VXaWR0aCgpLmlzWmVybygpOyB9CiAKKyAgICBmbG9hdCBjb21wdXRlZFRleHRTdHJva2VXaWR0
aChjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0KSBjb25zdDsKKyAgICB2b2lkIHNldEhhc0V4cGxp
Y2l0bHlTZXRTdHJva2VXaWR0aChib29sIHYpIHsgbV9pbmhlcml0ZWRGbGFncy5oYXNTZXRTdHJv
a2VXaWR0aCA9IHY7IH0KKyAgICBib29sIGhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCgpIGNv
bnN0IHsgcmV0dXJuIG1faW5oZXJpdGVkRmxhZ3MuaGFzU2V0U3Ryb2tlV2lkdGg7IH07CiAgICAg
CiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUmIHN2Z1N0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9z
dmdTdHlsZTsgfQogICAgIFNWR1JlbmRlclN0eWxlJiBhY2Nlc3NTVkdTdHlsZSgpIHsgcmV0dXJu
IG1fc3ZnU3R5bGUuYWNjZXNzKCk7IH0KQEAgLTE5MTMsNiArMTkxNiw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIC8vIENTUyBUZXh0IExheW91dCBNb2R1bGUgTGV2ZWwgMzogVmVydGljYWwgd3JpdGlu
ZyBzdXBwb3J0CiAgICAgICAgIHVuc2lnbmVkIHdyaXRpbmdNb2RlIDogMjsgLy8gV3JpdGluZ01v
ZGUKICAgICAgICAgLy8gNDYgYml0cworICAgICAgICAKKyAgICAgICAgdW5zaWduZWQgaGFzU2V0
U3Ryb2tlV2lkdGggOiAxOwogICAgIH07CiAKICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIGlzIHVz
ZWQgdG8gaW1wbGVtZW50IHRoZSByZXBsYWNlIG9wZXJhdGlvbi4KQEAgLTIwNzMsNyArMjA3OCw4
IEBAIGlubGluZSBib29sIFJlbmRlclN0eWxlOjpJbmhlcml0ZWRGbGFnczoKICAgICAgICAgJiYg
cG9pbnRlckV2ZW50cyA9PSBvdGhlci5wb2ludGVyRXZlbnRzCiAgICAgICAgICYmIGluc2lkZUxp
bmsgPT0gb3RoZXIuaW5zaWRlTGluawogICAgICAgICAmJiBpbnNpZGVEZWZhdWx0QnV0dG9uID09
IG90aGVyLmluc2lkZURlZmF1bHRCdXR0b24KLSAgICAgICAgJiYgd3JpdGluZ01vZGUgPT0gb3Ro
ZXIud3JpdGluZ01vZGU7CisgICAgICAgICYmIHdyaXRpbmdNb2RlID09IG90aGVyLndyaXRpbmdN
b2RlCisgICAgICAgICYmIGhhc1NldFN0cm9rZVdpZHRoID09IG90aGVyLmhhc1NldFN0cm9rZVdp
ZHRoOwogfQogCiBpbmxpbmUgdW5zaWduZWQgUmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdz
OjpnZXRWYWx1ZSh1aW50NjRfdCBwb3NpdGlvbkluZGVwZW5kZW50TWFzaywgdWludDY0X3Qgb2Zm
c2V0KSBjb25zdApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzNTEwKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDMtMDcgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBzdHJv
a2Utd2lkdGggQ1NTIHByb3BlcnR5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5MjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9zdHJva2Utd2lkdGgtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLmh0bWw6IEFkZGVkLgorCiAy
MDE3LTAzLTA3ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIEVDREggdGVzdHMgZnJvbSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleSBmYWlsLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLWV4cGVjdGVkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgor
PGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBkaXYgeworICAgICAgICAgICAgZm9udC1zaXpl
OiA4MHB4OworICAgICAgICAgICAgY29sb3I6IGdyYXk7CisgICAgICAgICAgICB0ZXh0LXNoYWRv
dzogbm9uZTsKKyAgICAgICAgICAgIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6IGJsdWU7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9Ii13
ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDI1cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHls
ZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4yaW47Ij4mI3gyNWZjOzwvZGl2PgorPGRp
diBzdHlsZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMm1tOyI+JiN4MjVmYzs8L2Rpdj4K
KzxkaXYgc3R5bGU9Ii13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDAuMWNtOyI+JiN4MjVmYzs8
L2Rpdj4KKworPGRpdiBzdHlsZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMjVweDsiPjxz
cGFuPiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10ZXh0LXN0cm9r
ZS13aWR0aDogMC4yaW47Ij48c3Bhbj4mI3gyNWZjOzwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9
Ii13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDJtbTsiPjxzcGFuPiYjeDI1ZmM7PC9zcGFuPjwv
ZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4xY207Ij48c3Bh
bj4mI3gyNWZjOzwvc3Bhbj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQtZXhwZWN0ZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC1leHBlY3Rl
ZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0
aC1wZXJjZW50LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAor
PCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBk
aXYgeworICAgICAgICAgICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIGNvbG9yOiBn
cmF5OworICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7CisgICAgICAgICAgICAtd2Via2l0
LXRleHQtc3Ryb2tlLWNvbG9yOiBibHVlOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDBweDsiPiYjeDI1ZmM7PC9k
aXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDdweDsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2
IHN0eWxlPSJzdHJva2Utd2lkdGg6IDE0cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0i
c3Ryb2tlLXdpZHRoOiAzNXB4OyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13
aWR0aDogNzBweDsiPiYjeDI1ZmM7PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRt
bD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgZGl2IHsKKyAgICAgICAgICAgIGZvbnQt
c2l6ZTogMjAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgICAgIHRleHQt
c2hhZG93OiBub25lOworICAgICAgICAgICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogYmx1
ZTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBzdHls
ZT0ic3Ryb2tlLXdpZHRoOiAwJTsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Ut
d2lkdGg6IDElOyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMiU7
Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiA1JTsiPiYjeDI1ZmM7
PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDEwJTsiPiYjeDI1ZmM7PC9kaXY+CisK
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8
aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgZGl2IHsKKyAgICAgICAgICAgIGZv
bnQtc2l6ZTogODBweDsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5OworICAgICAgICAgICAgdGV4
dC1zaGFkb3c6IG5vbmU7CisgICAgICAgICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiBi
bHVlOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0
eWxlPSJzdHJva2Utd2lkdGg6IDI1cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ry
b2tlLXdpZHRoOiAwLjJpbjsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lk
dGg6IDJtbTsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDAuMWNt
OyI+JiN4MjVmYzs8L2Rpdj4KKworPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAyNXB4OyI+PHNw
YW4+JiN4MjVmYzs8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDAuMmlu
OyI+PHNwYW4+JiN4MjVmYzs8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6
IDJtbTsiPjxzcGFuPiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdp
ZHRoOiAwLjFjbTsiPjxzcGFuPiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303797</attachid>
            <date>2017-03-08 01:29:00 -0800</date>
            <delta_ts>2017-03-08 11:45:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169273-20170308102858.patch</filename>
            <type>text/plain</type>
            <size>16747</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzU2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE3LTAzLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgc3Ryb2tl
LXdpZHRoIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN1cHBvcnQgc2V0dGluZyB0ZXh0IHN0cm9rZSB3aWR0aCB1c2luZyB0aGUg
Q1NTIHByb3BlcnR5IHN0cm9rZS13aWR0aCwgc2VlIGh0dHBzOi8vZHJhZnRzLmZ4dGYub3JnL3Bh
aW50Ly4KKyAgICAgICAgVGV4dCBzdHJva2Ugd2lkdGggY2FuIGN1cnJlbnRseSBiZSBzZXQgd2l0
aCB0aGUgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aCBwcm9wZXJ0eS4gVG8gbWFrZSBzdXJlIHRo
aXMgc3RpbGwKKyAgICAgICAgd29ya3MsIEkgYWRkZWQgYSBjaGVjayB0byBkZXRlcm1pbmUgaWYg
dGhlIHN0cm9rZS13aWR0aCBwcm9wZXJ0eSBoYXMgYmVlbiBleHBsaWNpdGx5IHNldC4gSWYgaXQg
aGFzIG5vdCBiZWVuCisgICAgICAgIHNldCwgd2UgZmFsbCBiYWNrIHRvIHRoZSB2YWx1ZSBvZiB0
aGUgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aCBwcm9wZXJ0eS4KKworICAgICAgICBUZXN0czog
ZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9j
c3Mvc3Ryb2tlLXdpZHRoLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0aWVzLmpzb246
CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlU3Ryb2tlV2lkdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlV2Via2l0VGV4dFN0cm9rZVdpZHRo
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbmxpbmVGbG93Qm94OjphZGRUb0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
Rmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcv
U2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVM
aW5lTGF5b3V0Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0RGVj
b3JhdGlvblBhaW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGVjb3JhdGlvbkNvbG9yKToK
KyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcHV0ZVRleHRQYWludFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVUZXh0
U2VsZWN0aW9uUGFpbnRTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29tcHV0ZWRUZXh0U3Ryb2tlV2lkdGgpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OnNldEhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzRXhwbGljaXRseVNldFN0cm9rZVdpZHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRIYXNFeHBsaWNpdGx5U2V0V2ViS2l0VGV4
dFN0cm9rZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpoYXNFeHBsaWNp
dGx5U2V0V2ViS2l0VGV4dFN0cm9rZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpJbmhlcml0ZWRGbGFnczo6b3BlcmF0b3I9PSk6CisKIDIwMTctMDMtMDcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5ldmVyLWlt
cGxlbWVudGVkIENTUzMgdGV4dCBkZWNvcmF0aW9uLXJlbGF0ZWQgcHJvcGVydGllcwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCShyZXZpc2lvbiAyMTM1NjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0z
MDI4LDYgKzMwMjgsNyBAQAogICAgICAgICAic3Ryb2tlLXdpZHRoIjogewogICAgICAgICAgICAg
ImluaGVyaXRlZCI6IHRydWUsCiAgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewor
ICAgICAgICAgICAgICAgICJjdXN0b20iOiAiVmFsdWUiLAogICAgICAgICAgICAgICAgICJpbml0
aWFsIjogImluaXRpYWxPbmVMZW5ndGgiLAogICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAi
TGVuZ3RoIgogICAgICAgICAgICAgfSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1
aWxkZXJDdXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyQ3VzdG9tLmgJKHJldmlzaW9uIDIxMzU2NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUJ1aWxkZXJDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw4IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlQWx0KFN0eWxlUmVzb2x2ZXImLCBDU1NWYWx1
ZSYpOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWVXaWxsQ2hhbmdlKFN0eWxlUmVzb2x2ZXIm
LCBDU1NWYWx1ZSYpOwogCisgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZVN0cm9rZVdpZHRoKFN0
eWxlUmVzb2x2ZXImLCBDU1NWYWx1ZSYpOworCiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHJl
c2V0RWZmZWN0aXZlWm9vbShTdHlsZVJlc29sdmVyJik7CiAKQEAgLTE3ODAsNCArMTc4MiwxMCBA
QCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsCiAgICAgc3R5bGVSZXNv
bHZlci5zdHlsZSgpLT5zZXRXaWxsQ2hhbmdlKFdURk1vdmUod2lsbENoYW5nZSkpOwogfQogCitp
bmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVTdHJva2VXaWR0aChTdHls
ZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgc3R5bGVS
ZXNvbHZlci5zdHlsZSgpLT5zZXRTdHJva2VXaWR0aChTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNv
bnZlcnRMZW5ndGgoc3R5bGVSZXNvbHZlciwgdmFsdWUpKTsKKyAgICBzdHlsZVJlc29sdmVyLnN0
eWxlKCktPnNldEhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCh0cnVlKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcAkocmV2aXNpb24gMjEzNTY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNyArMTY5LDcgQEAgdm9p
ZCBJbmxpbmVGbG93Qm94OjphZGRUb0xpbmUoSW5saW5lQm94KgogICAgICAgICBjb25zdCBSZW5k
ZXJTdHlsZSYgY2hpbGRTdHlsZSA9IGNoaWxkLT5saW5lU3R5bGUoKTsKICAgICAgICAgaWYgKGNo
aWxkLT5iZWhhdmVzTGlrZVRleHQoKSkgewogICAgICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUq
IGNoaWxkU3R5bGUgPSAmY2hpbGQtPmxpbmVTdHlsZSgpOwotICAgICAgICAgICAgaWYgKGNoaWxk
U3R5bGUtPmxldHRlclNwYWNpbmcoKSA8IDAgfHwgY2hpbGRTdHlsZS0+dGV4dFNoYWRvdygpIHx8
IGNoaWxkU3R5bGUtPnRleHRFbXBoYXNpc01hcmsoKSAhPSBUZXh0RW1waGFzaXNNYXJrTm9uZSB8
fCBjaGlsZFN0eWxlLT50ZXh0U3Ryb2tlV2lkdGgoKSkKKyAgICAgICAgICAgIGlmIChjaGlsZFN0
eWxlLT5sZXR0ZXJTcGFjaW5nKCkgPCAwIHx8IGNoaWxkU3R5bGUtPnRleHRTaGFkb3coKSB8fCBj
aGlsZFN0eWxlLT50ZXh0RW1waGFzaXNNYXJrKCkgIT0gVGV4dEVtcGhhc2lzTWFya05vbmUgfHwg
Y2hpbGRTdHlsZS0+aGFzUG9zaXRpdmVTdHJva2VXaWR0aCgpKQogICAgICAgICAgICAgICAgIGNo
aWxkLT5jbGVhcktub3duVG9IYXZlTm9PdmVyZmxvdygpOwogICAgICAgICB9IGVsc2UgaWYgKGNo
aWxkLT5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSkgewogICAgICAgICAgICAgY29uc3QgUmVuZGVy
Qm94JiBib3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KGNoaWxkLT5yZW5kZXJlcigpKTsKQEAgLTkw
NCw3ICs5MDQsOCBAQCBpbmxpbmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRUZXh0Qm94VmlzCiAg
ICAgaW50IGxlZnRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+bGVm
dCA6IDA7CiAgICAgaW50IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3Zl
cmZsb3ctPnJpZ2h0IDogMDsKIAotICAgIGludCBzdHJva2VPdmVyZmxvdyA9IHN0YXRpY19jYXN0
PGludD4oY2VpbGYobGluZVN0eWxlLnRleHRTdHJva2VXaWR0aCgpIC8gMi4wZikpOworICAgIGF1
dG8gdmlld3BvcnRTaXplID0gdGV4dEJveC5yZW5kZXJlcigpLmZyYW1lKCkudmlldygpID8gdGV4
dEJveC5yZW5kZXJlcigpLmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBJbnRTaXplKCk7CisgICAg
aW50IHN0cm9rZU92ZXJmbG93ID0gc3RkOjpjZWlsKGxpbmVTdHlsZS5jb21wdXRlZFN0cm9rZVdp
ZHRoKHZpZXdwb3J0U2l6ZSkgLyAyLjBmKTsKICAgICBpbnQgdG9wR2x5cGhPdmVyZmxvdyA9IC1z
dHJva2VPdmVyZmxvdyAtIHRvcEdseXBoRWRnZTsKICAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxv
dyA9IHN0cm9rZU92ZXJmbG93ICsgYm90dG9tR2x5cGhFZGdlOwogICAgIGludCBsZWZ0R2x5cGhP
dmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIGxlZnRHbHlwaEVkZ2U7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMu
Y3BwCShyZXZpc2lvbiAyMTM1NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxl
TGluZUxheW91dEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDggQEAg
c3RhdGljIHZvaWQgcGFpbnREZWJ1Z0JvcmRlcnMoR3JhcGhpY3NDbwogc3RhdGljIEZsb2F0UmVj
dCBjb21wdXRlT3ZlcmZsb3coY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93LCBjb25zdCBGbG9h
dFJlY3QmIGxheW91dFJlY3QpCiB7CiAgICAgYXV0byBvdmVyZmxvd1JlY3QgPSBsYXlvdXRSZWN0
OwotICAgIGF1dG8gc3Ryb2tlT3ZlcmZsb3cgPSBzdGQ6OmNlaWwoZmxvdy5zdHlsZSgpLnRleHRT
dHJva2VXaWR0aCgpKTsKKyAgICBhdXRvIHZpZXdwb3J0U2l6ZSA9IGZsb3cuZnJhbWUoKS52aWV3
KCkgPyBmbG93LmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBJbnRTaXplKCk7CisgICAgYXV0byBz
dHJva2VPdmVyZmxvdyA9IHN0ZDo6Y2VpbChmbG93LnN0eWxlKCkuY29tcHV0ZWRTdHJva2VXaWR0
aCh2aWV3cG9ydFNpemUpKTsKICAgICBvdmVyZmxvd1JlY3QuaW5mbGF0ZShzdHJva2VPdmVyZmxv
dyk7CiAKICAgICBhdXRvIGxldHRlclNwYWNpbmcgPSBmbG93LnN0eWxlKCkuZm9udENhc2NhZGUo
KS5sZXR0ZXJTcGFjaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dERl
Y29yYXRpb25QYWludGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dERlY29yYXRpb25QYWludGVyLmNwcAkocmV2aXNpb24gMjEzNTY3KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHREZWNvcmF0aW9uUGFpbnRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1Nyw3ICszNTcsNyBAQCBzdGF0aWMgQ29sb3IgZGVjb3JhdGlvbkNvbG9yKGNvbnN0
IFJlbmRlCiAgICAgQ29sb3IgcmVzdWx0ID0gc3R5bGUudmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Db2xvcik7CiAgICAgaWYgKHJlc3VsdC5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKHN0eWxlLnRleHRTdHJva2VX
aWR0aCgpID4gMCkgeworICAgIGlmIChzdHlsZS5oYXNQb3NpdGl2ZVN0cm9rZVdpZHRoKCkpIHsK
ICAgICAgICAgLy8gUHJlZmVyIHN0cm9rZSBjb2xvciBpZiBwb3NzaWJsZSBidXQgbm90IGlmIGl0
J3MgZnVsbHkgdHJhbnNwYXJlbnQuCiAgICAgICAgIHJlc3VsdCA9IHN0eWxlLnZpc2l0ZWREZXBl
bmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcik7CiAgICAgICAgIGlm
IChyZXN1bHQuaXNWaXNpYmxlKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dFBhaW50U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0UGFpbnRTdHlsZS5jcHAJKHJldmlzaW9uIDIxMzU2NykKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDgg
QEAgVGV4dFBhaW50U3R5bGUgY29tcHV0ZVRleHRQYWludFN0eWxlKGNvbgogI2lmIEVOQUJMRShM
RVRURVJQUkVTUykKICAgICBwYWludFN0eWxlLnVzZUxldHRlcnByZXNzRWZmZWN0ID0gbGluZVN0
eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkgJiBUZXh0RGVjb3JhdGlvbkxldHRlcnByZXNz
OwogI2VuZGlmCi0gICAgcGFpbnRTdHlsZS5zdHJva2VXaWR0aCA9IGxpbmVTdHlsZS50ZXh0U3Ry
b2tlV2lkdGgoKTsKKyAgICBhdXRvIHZpZXdwb3J0U2l6ZSA9IGZyYW1lLnZpZXcoKSA/IGZyYW1l
LnZpZXcoKS0+c2l6ZSgpIDogSW50U2l6ZSgpOworICAgIHBhaW50U3R5bGUuc3Ryb2tlV2lkdGgg
PSBsaW5lU3R5bGUuY29tcHV0ZWRTdHJva2VXaWR0aCh2aWV3cG9ydFNpemUpOwogICAgIHBhaW50
U3R5bGUucGFpbnRPcmRlciA9IGxpbmVTdHlsZS5wYWludE9yZGVyKCk7CiAgICAgcGFpbnRTdHls
ZS5saW5lSm9pbiA9IGxpbmVTdHlsZS5qb2luU3R5bGUoKTsKICAgICBwYWludFN0eWxlLmxpbmVD
YXAgPSBsaW5lU3R5bGUuY2FwU3R5bGUoKTsKQEAgLTE0Nyw3ICsxNDgsOCBAQCBUZXh0UGFpbnRT
dHlsZSBjb21wdXRlVGV4dFNlbGVjdGlvblBhaW50CiAgICAgICAgICAgICBzZWxlY3Rpb25TaGFk
b3cgPSBzaGFkb3c7CiAgICAgICAgIH0KIAotICAgICAgICBmbG9hdCBzdHJva2VXaWR0aCA9IHBz
ZXVkb1N0eWxlLT50ZXh0U3Ryb2tlV2lkdGgoKTsKKyAgICAgICAgYXV0byB2aWV3cG9ydFNpemUg
PSByZW5kZXJlci5mcmFtZSgpLnZpZXcoKSA/IHJlbmRlcmVyLmZyYW1lKCkudmlldygpLT5zaXpl
KCkgOiBJbnRTaXplKCk7CisgICAgICAgIGZsb2F0IHN0cm9rZVdpZHRoID0gcHNldWRvU3R5bGUt
PmNvbXB1dGVkU3Ryb2tlV2lkdGgodmlld3BvcnRTaXplKTsKICAgICAgICAgaWYgKHN0cm9rZVdp
ZHRoICE9IHNlbGVjdGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGgpIHsKICAgICAgICAgICAgIGlm
ICghcGFpbnRTZWxlY3RlZFRleHRPbmx5KQogICAgICAgICAgICAgICAgIHBhaW50U2VsZWN0ZWRU
ZXh0U2VwYXJhdGVseSA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDIxMzU2NykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
NTYsNSArMjI1NiwzMiBAQCBWZWN0b3I8UGFpbnRUeXBlLCAzPiBSZW5kZXJTdHlsZTo6cGFpbnRU
CiAgICAgcmV0dXJuIHBhaW50T3JkZXI7CiB9CiAKK2Zsb2F0IFJlbmRlclN0eWxlOjpjb21wdXRl
ZFN0cm9rZVdpZHRoKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkgY29uc3QKK3sKKyAgICBp
ZiAoIWhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0aCgpKQorICAgICAgICByZXR1cm4gdGV4dFN0
cm9rZVdpZHRoKCk7CisgICAgCisgICAgY29uc3QgTGVuZ3RoJiBsZW5ndGggPSBzdHJva2VXaWR0
aCgpOworCisgICAgaWYgKGxlbmd0aC5pc1BlcmNlbnQoKSkgeworICAgICAgICBFeGNlcHRpb25P
cjxmbG9hdD4gcmVzdWx0ID0gbGVuZ3RoLnZhbHVlKCkgKiAodmlld3BvcnRTaXplLndpZHRoKCkg
KyB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpIC8gMjAwLjBmOworICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiByZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgfQorICAgIAorICAgIGlmIChsZW5ndGguaXNB
dXRvKCkgfHwgIWxlbmd0aC5pc1NwZWNpZmllZCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICAK
KyAgICByZXR1cm4gZmxvYXRWYWx1ZUZvckxlbmd0aChsZW5ndGgsIHZpZXdwb3J0U2l6ZS53aWR0
aCgpKTsKK30KKworYm9vbCBSZW5kZXJTdHlsZTo6aGFzUG9zaXRpdmVTdHJva2VXaWR0aCgpIGNv
bnN0Cit7CisgICAgaWYgKCFoYXNFeHBsaWNpdGx5U2V0U3Ryb2tlV2lkdGgoKSkKKyAgICAgICAg
cmV0dXJuIHRleHRTdHJva2VXaWR0aCgpID4gMDsKKworICAgIHJldHVybiBzdHJva2VXaWR0aCgp
LmlzUG9zaXRpdmUoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDIxMzU2
NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjU3LDYgKzEyNTcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3Ry
b2tlV2lkdGgoTGVuZ3RoJiYgdykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIHN0cm9r
ZVdpZHRoLCBXVEZNb3ZlKHcpKTsgfQogICAgIGJvb2wgaGFzVmlzaWJsZVN0cm9rZSgpIGNvbnN0
IHsgcmV0dXJuIHN2Z1N0eWxlKCkuaGFzU3Ryb2tlKCkgJiYgIXN0cm9rZVdpZHRoKCkuaXNaZXJv
KCk7IH0KIAorICAgIGZsb2F0IGNvbXB1dGVkU3Ryb2tlV2lkdGgoY29uc3QgSW50U2l6ZSYgdmll
d3BvcnRTaXplKSBjb25zdDsKKyAgICB2b2lkIHNldEhhc0V4cGxpY2l0bHlTZXRTdHJva2VXaWR0
aChib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCBoYXNTZXRTdHJva2VXaWR0
aCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIGJvb2wgaGFzRXhwbGljaXRseVNl
dFN0cm9rZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+aGFzU2V0
U3Ryb2tlV2lkdGg7IH07CisgICAgYm9vbCBoYXNQb3NpdGl2ZVN0cm9rZVdpZHRoKCkgY29uc3Q7
CisgICAgCiAgICAgCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUmIHN2Z1N0eWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9zdmdTdHlsZTsgfQogICAgIFNWR1JlbmRlclN0eWxlJiBhY2Nlc3NTVkdTdHls
ZSgpIHsgcmV0dXJuIG1fc3ZnU3R5bGUuYWNjZXNzKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5j
cHAJKHJldmlzaW9uIDIxMzU2NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw3
IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXQKICAgICAsIGNhcFN0
eWxlKFJlbmRlclN0eWxlOjppbml0aWFsQ2FwU3R5bGUoKSkKICAgICAsIGpvaW5TdHlsZShSZW5k
ZXJTdHlsZTo6aW5pdGlhbEpvaW5TdHlsZSgpKQogICAgICwgc3Ryb2tlV2lkdGgoUmVuZGVyU3R5
bGU6OmluaXRpYWxPbmVMZW5ndGgoKSkKKyAgICAsIGhhc1NldFN0cm9rZVdpZHRoKGZhbHNlKQog
ICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRB
ZnRlcigtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRMaW5lcygtMSkKQEAgLTIxNSw2ICsyMTYs
NyBAQCBpbmxpbmUgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlCiAgICAgLCBjYXBT
dHlsZShvLmNhcFN0eWxlKQogICAgICwgam9pblN0eWxlKG8uam9pblN0eWxlKQogICAgICwgc3Ry
b2tlV2lkdGgoby5zdHJva2VXaWR0aCkKKyAgICAsIGhhc1NldFN0cm9rZVdpZHRoKG8uaGFzU2V0
U3Ryb2tlV2lkdGgpCiAgICAgLCBoeXBoZW5hdGlvblN0cmluZyhvLmh5cGhlbmF0aW9uU3RyaW5n
KQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5cGhlbmF0aW9uTGltaXRCZWZvcmUp
CiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoby5oeXBoZW5hdGlvbkxpbWl0QWZ0ZXIpCkBA
IC0zMjUsNiArMzI3LDcgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09
KAogICAgICAgICAmJiBjYXBTdHlsZSA9PSBvLmNhcFN0eWxlCiAgICAgICAgICYmIGpvaW5TdHls
ZSA9PSBvLmpvaW5TdHlsZQogICAgICAgICAmJiBzdHJva2VXaWR0aCA9PSBvLnN0cm9rZVdpZHRo
CisgICAgICAgICYmIGhhc1NldFN0cm9rZVdpZHRoID09IG8uaGFzU2V0U3Ryb2tlV2lkdGgKICAg
ICAgICAgJiYgY3VzdG9tUHJvcGVydGllcyA9PSBvLmN1c3RvbVByb3BlcnRpZXMKICAgICAgICAg
JiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShsaXN0U3R5bGVJbWFnZSwgby5saXN0U3R5bGVJbWFn
ZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgJKHJldmlzaW9uIDIxMzU2NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEzOSw4ICsxMzksOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgcGFpbnRPcmRl
ciA6IDM7IC8vIFBhaW50T3JkZXIKICAgICB1bnNpZ25lZCBjYXBTdHlsZSA6IDI7IC8vIExpbmVD
YXAKICAgICB1bnNpZ25lZCBqb2luU3R5bGUgOiAyOyAvLyBMaW5lSm9pbgotICAgIExlbmd0aCBz
dHJva2VXaWR0aDsKLSAgICAKKyAgICBMZW5ndGggc3Ryb2tlV2lkdGg7ICAgIAorICAgIHVuc2ln
bmVkIGhhc1NldFN0cm9rZVdpZHRoIDogMTsKKwogICAgIEF0b21pY1N0cmluZyBoeXBoZW5hdGlv
blN0cmluZzsKICAgICBzaG9ydCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlOwogICAgIHNob3J0IGh5
cGhlbmF0aW9uTGltaXRBZnRlcjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzU2NykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAz
LTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgc3Ryb2tlLXdpZHRoIENTUyBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50LWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJj
ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3N0cm9rZS13aWR0aC5odG1sOiBB
ZGRlZC4KKwogMjAxNy0wMy0wNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBIYXZlIGZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0IGJl
IG9uIGJ5IGRlZmF1bHQgZXZlcnl3aGVyZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3Ry
b2tlLXdpZHRoLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
c3Mvc3Ryb2tlLXdpZHRoLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0
eWxlPgorICAgICAgICBkaXYgeworICAgICAgICAgICAgZm9udC1zaXplOiA4MHB4OworICAgICAg
ICAgICAgY29sb3I6IGdyYXk7CisgICAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTsKKyAgICAg
ICAgICAgIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9Ii13ZWJraXQtdGV4dC1zdHJv
a2Utd2lkdGg6IDI1cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10ZXh0
LXN0cm9rZS13aWR0aDogMC4yaW47Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtp
dC10ZXh0LXN0cm9rZS13aWR0aDogMm1tOyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13
ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDAuMWNtOyI+JiN4MjVmYzs8L2Rpdj4KKworPGRpdiBz
dHlsZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMjVweDsiPjxzcGFuPiYjeDI1ZmM7PC9z
cGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4yaW47
Ij48c3Bhbj4mI3gyNWZjOzwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdGV4dC1z
dHJva2Utd2lkdGg6IDJtbTsiPjxzcGFuPiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHls
ZT0iLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4xY207Ij48c3Bhbj4mI3gyNWZjOzwvc3Bh
bj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
c3Ryb2tlLXdpZHRoLXBlcmNlbnQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC1leHBlY3RlZC5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC1wZXJjZW50LWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+
CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBkaXYgeworICAgICAgICAg
ICAgZm9udC1zaXplOiAyMDBweDsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5OworICAgICAgICAg
ICAgdGV4dC1zaGFkb3c6IG5vbmU7CisgICAgICAgICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNv
bG9yOiBibHVlOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8
ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDBweDsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxl
PSJzdHJva2Utd2lkdGg6IDdweDsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Ut
d2lkdGg6IDE0cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAz
NXB4OyI+JiN4MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogNzBweDsiPiYj
eDI1ZmM7PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL3N0cm9rZS13aWR0aC1wZXJjZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3Mvc3Ryb2tlLXdpZHRoLXBlcmNlbnQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9zdHJva2Utd2lkdGgtcGVyY2VudC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAg
IDxzdHlsZT4KKyAgICAgICAgZGl2IHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7Cisg
ICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgICAgIHRleHQtc2hhZG93OiBub25lOwor
ICAgICAgICAgICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogYmx1ZTsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRo
OiAwJTsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDElOyI+JiN4
MjVmYzs8L2Rpdj4KKzxkaXYgc3R5bGU9InN0cm9rZS13aWR0aDogMiU7Ij4mI3gyNWZjOzwvZGl2
PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiA1JTsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0
eWxlPSJzdHJva2Utd2lkdGg6IDEwJTsiPiYjeDI1ZmM7PC9kaXY+CisKKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0cm9rZS13aWR0aC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzdHlsZT4KKyAgICAgICAgZGl2IHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogODBweDsK
KyAgICAgICAgICAgIGNvbG9yOiBncmF5OworICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7
CisgICAgICAgICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiBibHVlOworICAgICAgICB9
CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJzdHJva2Utd2lk
dGg6IDI1cHg7Ij4mI3gyNWZjOzwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAwLjJp
bjsiPiYjeDI1ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDJtbTsiPiYjeDI1
ZmM7PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDAuMWNtOyI+JiN4MjVmYzs8L2Rp
dj4KKworPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAyNXB4OyI+PHNwYW4+JiN4MjVmYzs8L3Nw
YW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDAuMmluOyI+PHNwYW4+JiN4MjVm
Yzs8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJzdHJva2Utd2lkdGg6IDJtbTsiPjxzcGFuPiYj
eDI1ZmM7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAwLjFjbTsiPjxz
cGFuPiYjeDI1ZmM7PC9zcGFuPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="325406"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>