<?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>154366</bug_id>
          
          <creation_ts>2016-02-17 16:38:27 -0800</creation_ts>
          <short_desc>AX: AXObjectCache::visiblePositionForTextMarkerData() doesn&apos;t account for equivalent visibly equivalent positions</short_desc>
          <delta_ts>2016-02-19 20:17:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Doug Russell">d_russell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1165800</commentid>
    <comment_count>0</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-02-17 16:38:27 -0800</bug_when>
    <thetext>visiblePositionForTextMarkerData transforms TextMarkerData into a VisiblePosition. As a sanity check it compares the node and offset values of the position returned by createLegacyEditingPosition() with the deepEquivalent() of the resulting VisiblePosition. This doesn&apos;t account for canonicalization of the position via Position::upstream and Position::downstream causing the position to incorrectly be considered invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165803</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-02-17 16:39:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/24710269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165806</commentid>
    <comment_count>2</comment_count>
      <attachid>271607</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-02-17 16:44:17 -0800</bug_when>
    <thetext>Created attachment 271607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165841</commentid>
    <comment_count>3</comment_count>
      <attachid>271611</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-02-17 18:16:43 -0800</bug_when>
    <thetext>Created attachment 271611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165865</commentid>
    <comment_count>4</comment_count>
      <attachid>271611</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-02-17 19:37:40 -0800</bug_when>
    <thetext>Comment on attachment 271611
Patch

I think we need a test for this. We&apos;re adding new behavior here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165866</commentid>
    <comment_count>5</comment_count>
      <attachid>271611</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-02-17 19:37:49 -0800</bug_when>
    <thetext>Comment on attachment 271611
Patch

I think we need a test for this. We&apos;re adding new behavior here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165867</commentid>
    <comment_count>6</comment_count>
      <attachid>271611</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-17 19:40:10 -0800</bug_when>
    <thetext>Comment on attachment 271611
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1416
&gt; +    Position deepEquivalent = visiblePosition.deepEquivalent();
&gt; +    bool equivalent = deepEquivalent.deprecatedNode() == textMarkerData.node &amp;&amp; deepEquivalent.deprecatedEditingOffset() == textMarkerData.offset;
&gt; +    if (!equivalent &amp;&amp; visiblePosition.affinity() != textMarkerData.affinity) {
&gt; +        Position position;
&gt; +        if (textMarkerData.affinity == UPSTREAM)
&gt; +            position = deepEquivalent.upstream();
&gt; +        else
&gt; +            position = deepEquivalent.downstream();
&gt; +        if (position.deprecatedNode() == textMarkerData.node &amp;&amp; position.deprecatedEditingOffset() == textMarkerData.offset)
&gt; +            equivalent = true;
&gt; +    }
&gt; +    return equivalent;

Instead of manually adjusting the visible position&apos;s deep equivalent, you should just create a new VisiblePosition out of textMarkerData and check whether they match or not.

By the way, &apos;&amp;&apos; should be directly adjacent to type in C++ code: https://webkit.org/code-style-guidelines/#pointers-and-references</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165869</commentid>
    <comment_count>7</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-02-17 19:41:53 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 271611 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271611&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1416
&gt; &gt; +    Position deepEquivalent = visiblePosition.deepEquivalent();
&gt; &gt; +    bool equivalent = deepEquivalent.deprecatedNode() == textMarkerData.node &amp;&amp; deepEquivalent.deprecatedEditingOffset() == textMarkerData.offset;
&gt; &gt; +    if (!equivalent &amp;&amp; visiblePosition.affinity() != textMarkerData.affinity) {
&gt; &gt; +        Position position;
&gt; &gt; +        if (textMarkerData.affinity == UPSTREAM)
&gt; &gt; +            position = deepEquivalent.upstream();
&gt; &gt; +        else
&gt; &gt; +            position = deepEquivalent.downstream();
&gt; &gt; +        if (position.deprecatedNode() == textMarkerData.node &amp;&amp; position.deprecatedEditingOffset() == textMarkerData.offset)
&gt; &gt; +            equivalent = true;
&gt; &gt; +    }
&gt; &gt; +    return equivalent;
&gt; 
&gt; Instead of manually adjusting the visible position&apos;s deep equivalent, you
&gt; should just create a new VisiblePosition out of textMarkerData and check
&gt; whether they match or not.
&gt; 
&gt; By the way, &apos;&amp;&apos; should be directly adjacent to type in C++ code:
&gt; https://webkit.org/code-style-guidelines/#pointers-and-references

The VisiblePosition I have was created from the TextMarkerData so it would always match. I was considering making VisiblePosition::canonicalPosition() a public static method instead of this manual adjustment. What do you think of that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165871</commentid>
    <comment_count>8</comment_count>
      <attachid>271611</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-17 19:51:07 -0800</bug_when>
    <thetext>Comment on attachment 271611
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Existing tests coverage should be sufficient.

This is definitely not true.  There are no tests that got fixed by this change and there is no new test in this patch.
Please write a accessibility test that gets affected by this code change,
or a justification as to why writing such a test is hard/impossible.

&gt;&gt;&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1416
&gt;&gt;&gt; +    return equivalent;
&gt;&gt; 
&gt;&gt; Instead of manually adjusting the visible position&apos;s deep equivalent, you should just create a new VisiblePosition out of textMarkerData and check whether they match or not.
&gt;&gt; 
&gt;&gt; By the way, &apos;&amp;&apos; should be directly adjacent to type in C++ code: https://webkit.org/code-style-guidelines/#pointers-and-references
&gt; 
&gt; The VisiblePosition I have was created from the TextMarkerData so it would always match. I was considering making VisiblePosition::canonicalPosition() a public static method instead of this manual adjustment. What do you think of that?

I&apos;d suggest getting rid of this function altogether. Since the only interesting thing VisiblePosition&apos;s constructor does is to call canonicalPosition(),
calling canonicalPosition here and comparing the result will be a slightly-incorrect tautological check that doesn&apos;t buy us anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165873</commentid>
    <comment_count>9</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-02-17 19:52:28 -0800</bug_when>
    <thetext>So scrap the comparison and trust the result of creating VisiblePosition? Sounds good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165882</commentid>
    <comment_count>10</comment_count>
      <attachid>271621</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-02-17 20:26:13 -0800</bug_when>
    <thetext>Created attachment 271621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166445</commentid>
    <comment_count>11</comment_count>
      <attachid>271762</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-02-19 10:11:52 -0800</bug_when>
    <thetext>Created attachment 271762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166672</commentid>
    <comment_count>12</comment_count>
      <attachid>271762</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-19 20:17:11 -0800</bug_when>
    <thetext>Comment on attachment 271762
Patch

Clearing flags on attachment: 271762

Committed r196853: &lt;http://trac.webkit.org/changeset/196853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166673</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-19 20:17:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271607</attachid>
            <date>2016-02-17 16:44:17 -0800</date>
            <delta_ts>2016-02-17 18:16:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154366-20160217164357.patch</filename>
            <type>text/plain</type>
            <size>3391</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkwMzEzZGNjMTRhMTA2
Njg3YzA4M2ExMjM3MGUzMWU1MTVlNThlNC4uNmY0NzhjNWM4YjNjMmYzNTdmZjM1ZGYxMTVhY2Uw
NTEwMmQ1N2ZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTAyLTE3ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEJ1ZyAxNTQzNjYgLSBB
WDogQVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEoKSBkb2Vz
bid0IGFjY291bnQgZm9yIGVxdWl2YWxlbnQgdmlzaWJseSBlcXVpdmFsZW50IHBvc2l0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhpc3Rpbmcg
dGVzdHMgY292ZXJhZ2Ugc2hvdWxkIGJlIHN1ZmZpY2llbnQuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25NYXRj
aGVzVGV4dE1hcmtlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dmlz
aWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEpOgorCiAyMDE2LTAyLTE3ICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBNb3JlIEVuY29k
ZXIvRGVjb2Rlci9NZXNzYWdpbmcgc2NhZmZvbGRpbmcgZm9yIFdLMiBJUEMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA4ZWViNzMyMjYy
ZWE4N2M3YTMyMmEwNzRhMDM2YjhlMDE4ODBmYWJiLi41YjQ5MzFjNWZjYzUwYTE5NjdkZTU1ZWZj
Nzc1OWYyMzY1MWY3YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKQEAgLTE0MDAsMTMgKzE0MDAsMzUgQEAgdm9pZCBBWE9iamVjdENhY2hl
OjpzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpCiAgICAgbV9jb21wdXRlZE9i
amVjdEF0dHJpYnV0ZUNhY2hlID0gbnVsbHB0cjsKIH0KIAorc3RhdGljIGJvb2wgcG9zaXRpb25N
YXRjaGVzVGV4dE1hcmtlckRhdGEoY29uc3QgUG9zaXRpb24gJmEsIGNvbnN0IFRleHRNYXJrZXJE
YXRhICZiKQoreworICAgIGJvb2wgZXF1aXZhbGVudCA9IHRydWU7CisgICAgaWYgKGEuZGVwcmVj
YXRlZE5vZGUoKSAhPSBiLm5vZGUgfHwgYS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpICE9IGIu
b2Zmc2V0KQorICAgICAgICBlcXVpdmFsZW50ID0gZmFsc2U7CisKKyAgICBpZiAoIWVxdWl2YWxl
bnQpIHsKKyAgICAgICAgUG9zaXRpb24gdXBzdHJlYW0gPSBhLnVwc3RyZWFtKCk7CisgICAgICAg
IGlmIChhLmRlcHJlY2F0ZWROb2RlKCkgPT0gYi5ub2RlICYmIGEuZGVwcmVjYXRlZEVkaXRpbmdP
ZmZzZXQoKSA9PSBiLm9mZnNldCkKKyAgICAgICAgICAgIGVxdWl2YWxlbnQgPSB0cnVlOworICAg
IH0KKworICAgIGlmICghZXF1aXZhbGVudCkgeworICAgICAgICBQb3NpdGlvbiBkb3duU3RyZWFt
ID0gYS5kb3duc3RyZWFtKCk7CisgICAgICAgIGlmIChhLmRlcHJlY2F0ZWROb2RlKCkgPT0gYi5u
b2RlICYmIGEuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSA9PSBiLm9mZnNldCkKKyAgICAgICAg
ICAgIGVxdWl2YWxlbnQgPSB0cnVlOworICAgIH0KKworICAgIHJldHVybiBlcXVpdmFsZW50Owor
fQorCiBWaXNpYmxlUG9zaXRpb24gQVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4
dE1hcmtlckRhdGEoVGV4dE1hcmtlckRhdGEmIHRleHRNYXJrZXJEYXRhKQogewogICAgIGlmICgh
aXNOb2RlSW5Vc2UodGV4dE1hcmtlckRhdGEubm9kZSkpCiAgICAgICAgIHJldHVybiBWaXNpYmxl
UG9zaXRpb24oKTsKICAgICAKICAgICAvLyBGSVhNRTogQWNjZXNzYWJpbGl0eSBzaG91bGQgbWFr
ZSBpdCBjbGVhciB0aGVzZSBhcmUgRE9NLWNvbXBsaWFudCBvZmZzZXRzIG9yIHN0b3JlIFBvc2l0
aW9uIG9iamVjdHMuCi0gICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3MgPSBWaXNpYmxlUG9z
aXRpb24oY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHRleHRNYXJrZXJEYXRhLm5vZGUsIHRl
eHRNYXJrZXJEYXRhLm9mZnNldCksIHRleHRNYXJrZXJEYXRhLmFmZmluaXR5KTsKKyAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbih0ZXh0TWFya2VyRGF0
YS5ub2RlLCB0ZXh0TWFya2VyRGF0YS5vZmZzZXQpOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNp
YmxlUG9zID0gVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uLCB0ZXh0TWFya2VyRGF0YS5hZmZpbml0
eSk7CiAgICAgUG9zaXRpb24gZGVlcFBvcyA9IHZpc2libGVQb3MuZGVlcEVxdWl2YWxlbnQoKTsK
ICAgICBpZiAoZGVlcFBvcy5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlv
bigpOwpAQCAtMTQxOCwxMSArMTQ0MCw4IEBAIFZpc2libGVQb3NpdGlvbiBBWE9iamVjdENhY2hl
Ojp2aXNpYmxlUG9zaXRpb25Gb3JUZXh0TWFya2VyRGF0YShUZXh0TWFya2VyRGF0YSYKICAgICBB
WE9iamVjdENhY2hlKiBjYWNoZSA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLmF4T2JqZWN0Q2FjaGUo
KTsKICAgICBpZiAoIWNhY2hlLT5pc0lEaW5Vc2UodGV4dE1hcmtlckRhdGEuYXhJRCkpCiAgICAg
ICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICAKLSAgICBpZiAoZGVlcFBvcy5kZXBy
ZWNhdGVkTm9kZSgpICE9IHRleHRNYXJrZXJEYXRhLm5vZGUgfHwgZGVlcFBvcy5kZXByZWNhdGVk
RWRpdGluZ09mZnNldCgpICE9IHRleHRNYXJrZXJEYXRhLm9mZnNldCkKLSAgICAgICAgcmV0dXJu
IFZpc2libGVQb3NpdGlvbigpOwotICAgIAotICAgIHJldHVybiB2aXNpYmxlUG9zOworCisgICAg
cmV0dXJuIHBvc2l0aW9uTWF0Y2hlc1RleHRNYXJrZXJEYXRhKHBvc2l0aW9uLCB0ZXh0TWFya2Vy
RGF0YSkgPyB2aXNpYmxlUG9zIDogVmlzaWJsZVBvc2l0aW9uKCk7CiB9CiAKIENoYXJhY3Rlck9m
ZnNldCBBWE9iamVjdENhY2hlOjpjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyRGF0YShUZXh0
TWFya2VyRGF0YSYgdGV4dE1hcmtlckRhdGEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271611</attachid>
            <date>2016-02-17 18:16:43 -0800</date>
            <delta_ts>2016-02-17 20:26:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154366-20160217181624.patch</filename>
            <type>text/plain</type>
            <size>2970</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkwMzEzZGNjMTRhMTA2
Njg3YzA4M2ExMjM3MGUzMWU1MTVlNThlNC4uOWM0NjM3OWYxYTJmY2ZhNzFkOTVkNWYyOGY0OWRi
OGY4NzlhYTkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTAyLTE3ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEJ1ZyAxNTQzNjYgLSBB
WDogQVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEoKSBkb2Vz
bid0IGFjY291bnQgZm9yIGVxdWl2YWxlbnQgdmlzaWJseSBlcXVpdmFsZW50IHBvc2l0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhpc3Rpbmcg
dGVzdHMgY292ZXJhZ2Ugc2hvdWxkIGJlIHN1ZmZpY2llbnQuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlzaWJsZVBvc2l0
aW9uTWF0Y2hlc1RleHRNYXJrZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXJEYXRhKToKKwogMjAxNi0wMi0xNyAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQjogTW9y
ZSBFbmNvZGVyL0RlY29kZXIvTWVzc2FnaW5nIHNjYWZmb2xkaW5nIGZvciBXSzIgSVBDLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggOGVl
YjczMjI2MmVhODdjN2EzMjJhMDc0YTAzNmI4ZTAxODgwZmFiYi4uMmQ1NGUwNmM4ZmE4Zjc3ZWNi
NzE1Njc0MTk2NzFjYjY3NGE2MmM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDAwLDYgKzE0MDAsMjIgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpCiAgICAgbV9jb21w
dXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlID0gbnVsbHB0cjsKIH0KIAorc3RhdGljIGJvb2wgdmlz
aWJsZVBvc2l0aW9uTWF0Y2hlc1RleHRNYXJrZXJEYXRhKGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
dmlzaWJsZVBvc2l0aW9uLCBjb25zdCBUZXh0TWFya2VyRGF0YSAmdGV4dE1hcmtlckRhdGEpCit7
CisgICAgUG9zaXRpb24gZGVlcEVxdWl2YWxlbnQgPSB2aXNpYmxlUG9zaXRpb24uZGVlcEVxdWl2
YWxlbnQoKTsKKyAgICBib29sIGVxdWl2YWxlbnQgPSBkZWVwRXF1aXZhbGVudC5kZXByZWNhdGVk
Tm9kZSgpID09IHRleHRNYXJrZXJEYXRhLm5vZGUgJiYgZGVlcEVxdWl2YWxlbnQuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSA9PSB0ZXh0TWFya2VyRGF0YS5vZmZzZXQ7CisgICAgaWYgKCFlcXVp
dmFsZW50ICYmIHZpc2libGVQb3NpdGlvbi5hZmZpbml0eSgpICE9IHRleHRNYXJrZXJEYXRhLmFm
ZmluaXR5KSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uOworICAgICAgICBpZiAodGV4dE1h
cmtlckRhdGEuYWZmaW5pdHkgPT0gVVBTVFJFQU0pCisgICAgICAgICAgICBwb3NpdGlvbiA9IGRl
ZXBFcXVpdmFsZW50LnVwc3RyZWFtKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBvc2l0
aW9uID0gZGVlcEVxdWl2YWxlbnQuZG93bnN0cmVhbSgpOworICAgICAgICBpZiAocG9zaXRpb24u
ZGVwcmVjYXRlZE5vZGUoKSA9PSB0ZXh0TWFya2VyRGF0YS5ub2RlICYmIHBvc2l0aW9uLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCkgPT0gdGV4dE1hcmtlckRhdGEub2Zmc2V0KQorICAgICAgICAg
ICAgZXF1aXZhbGVudCA9IHRydWU7CisgICAgfQorICAgIHJldHVybiBlcXVpdmFsZW50OworfQor
CiBWaXNpYmxlUG9zaXRpb24gQVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1h
cmtlckRhdGEoVGV4dE1hcmtlckRhdGEmIHRleHRNYXJrZXJEYXRhKQogewogICAgIGlmICghaXNO
b2RlSW5Vc2UodGV4dE1hcmtlckRhdGEubm9kZSkpCkBAIC0xNDE4LDExICsxNDM0LDggQEAgVmlz
aWJsZVBvc2l0aW9uIEFYT2JqZWN0Q2FjaGU6OnZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXJE
YXRhKFRleHRNYXJrZXJEYXRhJgogICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gcmVuZGVyZXIt
PmRvY3VtZW50KCkuYXhPYmplY3RDYWNoZSgpOwogICAgIGlmICghY2FjaGUtPmlzSURpblVzZSh0
ZXh0TWFya2VyRGF0YS5heElEKSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwot
ICAgIAotICAgIGlmIChkZWVwUG9zLmRlcHJlY2F0ZWROb2RlKCkgIT0gdGV4dE1hcmtlckRhdGEu
bm9kZSB8fCBkZWVwUG9zLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgIT0gdGV4dE1hcmtlckRh
dGEub2Zmc2V0KQotICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgCi0gICAg
cmV0dXJuIHZpc2libGVQb3M7CisKKyAgICByZXR1cm4gdmlzaWJsZVBvc2l0aW9uTWF0Y2hlc1Rl
eHRNYXJrZXJEYXRhKHZpc2libGVQb3MsIHRleHRNYXJrZXJEYXRhKSA/IHZpc2libGVQb3MgOiBW
aXNpYmxlUG9zaXRpb24oKTsKIH0KIAogQ2hhcmFjdGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OmNo
YXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXJEYXRhKFRleHRNYXJrZXJEYXRhJiB0ZXh0TWFya2Vy
RGF0YSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271621</attachid>
            <date>2016-02-17 20:26:13 -0800</date>
            <delta_ts>2016-02-19 10:11:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154366-20160217202553.patch</filename>
            <type>text/plain</type>
            <size>1612</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkwMzEzZGNjMTRhMTA2
Njg3YzA4M2ExMjM3MGUzMWU1MTVlNThlNC4uYzk2ODZhZDBhNGZkZjIxZGExMzUzODllOGQ5NTEw
YTE2OTUxYTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTAyLTE3ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEJ1ZyAxNTQzNjYgLSBB
WDogQVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEoKSBkb2Vz
bid0IGFjY291bnQgZm9yIGVxdWl2YWxlbnQgdmlzaWJseSBlcXVpdmFsZW50IHBvc2l0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhpc3Rpbmcg
dGVzdHMgY292ZXJhZ2Ugc2hvdWxkIGJlIHN1ZmZpY2llbnQuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEpOgorCiAyMDE2LTAyLTE3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBNb3Jl
IEVuY29kZXIvRGVjb2Rlci9NZXNzYWdpbmcgc2NhZmZvbGRpbmcgZm9yIFdLMiBJUEMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA4ZWVi
NzMyMjYyZWE4N2M3YTMyMmEwNzRhMDM2YjhlMDE4ODBmYWJiLi5hYjE5MDRlMDc2ODVlNTc0NzI0
YjA4NzcxYjc1MmVkOTRkYmRiM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0MTgsMTAgKzE0MTgsNyBAQCBWaXNpYmxlUG9zaXRp
b24gQVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEoVGV4dE1h
cmtlckRhdGEmCiAgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSByZW5kZXJlci0+ZG9jdW1lbnQo
KS5heE9iamVjdENhY2hlKCk7CiAgICAgaWYgKCFjYWNoZS0+aXNJRGluVXNlKHRleHRNYXJrZXJE
YXRhLmF4SUQpKQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgCi0gICAg
aWYgKGRlZXBQb3MuZGVwcmVjYXRlZE5vZGUoKSAhPSB0ZXh0TWFya2VyRGF0YS5ub2RlIHx8IGRl
ZXBQb3MuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSAhPSB0ZXh0TWFya2VyRGF0YS5vZmZzZXQp
Ci0gICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICAKKwogICAgIHJldHVybiB2
aXNpYmxlUG9zOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271762</attachid>
            <date>2016-02-19 10:11:52 -0800</date>
            <delta_ts>2016-02-19 20:17:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154366-20160219101133.patch</filename>
            <type>text/plain</type>
            <size>4982</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ3Y2JkN2JlOGYzM2Rh
ODNkMDJjNmJhZTY0NmZkODkzZjZkYzgwOC4uYTY0NmNhNGI4MGFlYTNiZDNjMWJmMmQ1ZGE1Mzk3
OTZhNTA4OTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTAyLTE5ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEJ1ZyAxNTQzNjYgLSBB
WDogQVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEoKSBkb2Vz
bid0IGFjY291bnQgZm9yIGVxdWl2YWxlbnQgdmlzaWJseSBlcXVpdmFsZW50IHBvc2l0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNj
ZXNzaWJpbGl0eS9tYWMvdGV4dC1tYXJrZXItbGluZS1ib3VuZGFyeS5odG1sCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEpOgorCiAyMDE2LTAy
LTE5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvY2tlZCBw
bHVnLWluIHBsYWNlaG9sZGVyIGlzIHNvbWV0aW1lcyBub3Qgc2hvd24uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA4ZWViNzMyMjYyZWE4
N2M3YTMyMmEwNzRhMDM2YjhlMDE4ODBmYWJiLi5hYjE5MDRlMDc2ODVlNTc0NzI0YjA4NzcxYjc1
MmVkOTRkYmRiM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTE0MTgsMTAgKzE0MTgsNyBAQCBWaXNpYmxlUG9zaXRpb24gQVhPYmpl
Y3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEoVGV4dE1hcmtlckRhdGEm
CiAgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS5heE9iamVj
dENhY2hlKCk7CiAgICAgaWYgKCFjYWNoZS0+aXNJRGluVXNlKHRleHRNYXJrZXJEYXRhLmF4SUQp
KQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgCi0gICAgaWYgKGRlZXBQ
b3MuZGVwcmVjYXRlZE5vZGUoKSAhPSB0ZXh0TWFya2VyRGF0YS5ub2RlIHx8IGRlZXBQb3MuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSAhPSB0ZXh0TWFya2VyRGF0YS5vZmZzZXQpCi0gICAgICAg
IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICAKKwogICAgIHJldHVybiB2aXNpYmxlUG9z
OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTRjYjVkMWU1YjJlMDI5YmE1MDUzNTZhNjM0MjQwNzIzNDBiYmNlNS4u
YjM0MzdlNjU5Y2Y0YTViNmU1N2QxMjRkNDg1YzEyZGUwY2QyMGI0MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE2LTAyLTE5ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEJ1ZyAxNTQzNjY6IEFYOiBBWE9iamVjdENhY2hlOjp2aXNpYmxlUG9zaXRpb25G
b3JUZXh0TWFya2VyRGF0YSgpIGRvZXNuJ3QgYWNjb3VudCBmb3IgdmlzaWJseSBlcXVpdmFsZW50
IHBvc2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU0MzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy90ZXh0LW1hcmtlci1saW5lLWJvdW5kYXJ5LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvdGV4dC1tYXJrZXItbGlu
ZS1ib3VuZGFyeS5odG1sOiBBZGRlZC4KKwogMjAxNi0wMi0xOSAgUnlhbiBIYWRkYWQgIDxyeWFu
aGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJhc2VsaW5lIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy5odG1sIGZvciBpb3Mtc2ltdWxhdG9y
IGFmdGVyIHIxOTY3OTcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3RleHQtbWFya2VyLWxpbmUtYm91bmRhcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvdGV4dC1tYXJrZXItbGluZS1ib3VuZGFyeS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzJlM2UzMWI0ZjFjZDYwNzVkMTk1YTliYzgwNTA5MTI5NGMxMmVmOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3RleHQtbWFya2VyLWxp
bmUtYm91bmRhcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKzEgCisyCitUaGlzIHZl
cmlmaWVzIHRoYXQgbmF2aWdhdGluZyB0aHJvdWdoIGEgbGluZSBib3VuZGFyeSB3aXRoIGFycm93
cyByZXR1cm5zCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGluZGV4ID09
IC0xIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGV4dC1t
YXJrZXItbGluZS1ib3VuZGFyeS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
dGV4dC1tYXJrZXItbGluZS1ib3VuZGFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NjM1ZGU3ZTFkOGZk
ODk1NjQyOGNiOTEyOGE1NzA5ZTcyMDliMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy90ZXh0LW1hcmtlci1saW5lLWJvdW5kYXJ5Lmh0bWwKQEAgLTAs
MCArMSw0MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgPGJvZHkgaWQ9ImJvZHkiIHRhYmluZGV4PSIwIj4KKyAgICAgICAg
PGRpdiB0YWJpbmRleD0iMCIgaWQ9InRleHQiIGNvbnRlbnRlZGl0YWJsZT10cnVlPgorICAgICAg
ICAgICAgMQorICAgICAgICAgICAgPGJyPjIKKyAgICAgICAgPC9kaXY+CisKKyAgICAgICAgPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHZlcmlm
aWVzIHRoYXQgbmF2aWdhdGluZyB0aHJvdWdoIGEgbGluZSBib3VuZGFyeSB3aXRoIGFycm93cyBy
ZXR1cm5zIik7CisKKyAgICAgICAgICAgIHZhciBpbmRleCA9IDA7CisgICAgICAgICAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworICAg
ICAgICAgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVs
ZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgICAgIHdlYkFyZWEuc2V0Qm9vbEF0
dHJpYnV0ZVZhbHVlKCJBWENhcmV0QnJvd3NpbmdFbmFibGVkIiwgdHJ1ZSk7CisKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpLmZvY3VzKCk7CisgICAgICAg
ICAgICAgICAgdmFyIHRleHQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dDsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsK
KyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAg
ICAgICAgICAgICAgdmFyIHRleHRNYXJrZXJSYW5nZSA9IHRleHQuc2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2UoKQorICAgICAgICAgICAgICAgIHZhciBlbmRNYXJrZXIgPSB0ZXh0LmVuZFRleHRNYXJr
ZXJGb3JUZXh0TWFya2VyUmFuZ2UodGV4dE1hcmtlclJhbmdlKTsKKyAgICAgICAgICAgICAgICB2
YXIgbmV4dE1hcmtlciA9IHRleHQubmV4dFRleHRNYXJrZXIoZW5kTWFya2VyKTsKKyAgICAgICAg
ICAgICAgICB2YXIgbGluZVRleHRNYXJrZXJSYW5nZSA9IHRleHQubGluZVRleHRNYXJrZXJSYW5n
ZUZvclRleHRNYXJrZXIobmV4dE1hcmtlcik7CisgICAgICAgICAgICAgICAgaW5kZXggPSB0ZXh0
LmluZGV4Rm9yVGV4dE1hcmtlcihuZXh0TWFya2VyKTsKKyAgICAgICAgICAgICAgICAvLyAtMSBm
b3IgTlNOb3RGb3VuZAorICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImluZGV4ID09IC0x
Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIDwvc2NyaXB0PgorCisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKwor
ICAgIDwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>