<?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>15903</bug_id>
          
          <creation_ts>2007-11-08 14:19:42 -0800</creation_ts>
          <short_desc>When empty &lt;input&gt; is focused, getSelection() exposes shadow tree nodes</short_desc>
          <delta_ts>2009-08-10 10:29:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (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="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>adele</cc>
    
    <cc>alexander.steitz</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60673</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-11-08 14:19:42 -0800</bug_when>
    <thetext>When an empty &lt;input&gt; element is focused, window.getSelection().getRangeAt(0).startContainer returns an HTMLDivElement. I believe this is the HTMLInnerTextField element we put in the shadow tree. We should be returning the HTMLInputElement itself, not this shadow child.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60676</commentid>
    <comment_count>1</comment_count>
      <attachid>17125</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-11-08 14:22:41 -0800</bug_when>
    <thetext>Created attachment 17125
testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60739</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-11-08 23:48:03 -0800</bug_when>
    <thetext>What should we return if the INPUT is not empty?

Firefox seems to behave differently - it returns last selection outside INPUT (such as (BODY, 0) - (BODY, 0)) or raises an exception because of not being able to execute getRange(), depending on some conditions that aren&apos;t clear to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60781</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-11-09 08:14:14 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; What should we return if the INPUT is not empty?
&gt; 
&gt; Firefox seems to behave differently - it returns last selection outside INPUT
&gt; (such as (BODY, 0) - (BODY, 0)) or raises an exception because of not being
&gt; able to execute getRange(), depending on some conditions that aren&apos;t clear to
&gt; me.

I guess we&apos;ll have to test other browsers as well. I only mentioned the empty case here because it was clearly wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86711</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Steitz">alexander.steitz</who>
    <bug_when>2008-07-23 02:44:20 -0700</bug_when>
    <thetext>I found out that this problem affects any input/textarea element whether empty or not.

I also encountered problems with the &quot;anchorNode&quot; and &quot;focusNode&quot; properties of the selection object. These properties as well as the &quot;startContainer&quot; and the &quot;endContainer&quot; are returning a DIV element as parentNode of the selected text node.

I&apos;ve attached a simple testcase to demonstrate this behaviour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86712</commentid>
    <comment_count>5</comment_count>
      <attachid>22445</attachid>
    <who name="Alex Steitz">alexander.steitz</who>
    <bug_when>2008-07-23 02:46:56 -0700</bug_when>
    <thetext>Created attachment 22445
testcase for input/textarea elements with selection/range objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107798</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-30 15:42:33 -0800</bug_when>
    <thetext>Does it return the parent div, or the shadow node?  If it&apos;s the shadow node, this will go away when Ojan&apos;s patch to remove shadow nodes on &lt;input&gt; elements is finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107944</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Steitz">alexander.steitz</who>
    <bug_when>2009-02-02 00:55:17 -0800</bug_when>
    <thetext>&gt; Does it return the parent div, or the shadow node?  If it&apos;s the shadow node,
&gt; this will go away when Ojan&apos;s patch to remove shadow nodes on &lt;input&gt; elements
&gt; is finished.
No, the problem is (as you can see at attached test) that the result is a DIV element with the text node inside, but the INPUT/TEXTAREA element is gone.

The result should be 

--snip--
&lt;div&gt;
  &lt;input id=&quot;a&quot; value=&quot;test input&quot;/&gt;
&lt;/div&gt;
--snip--

but it returns

--snip--
&lt;div&gt;
    test input
&lt;/div&gt;
--snip--

Same issue is also true for the TEXTAREA element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135730</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-29 16:47:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/7103776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138250</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-07 18:00:08 -0700</bug_when>
    <thetext>*** Bug 28086 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138252</commentid>
    <comment_count>10</comment_count>
      <attachid>34353</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-07 18:07:23 -0700</bug_when>
    <thetext>Created attachment 34353
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138711</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-10 10:29:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/46982</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17125</attachid>
            <date>2007-11-08 14:22:41 -0800</date>
            <delta_ts>2007-11-08 14:22:41 -0800</delta_ts>
            <desc>testcase</desc>
            <filename>shadow-tree.html</filename>
            <type>text/html</type>
            <size>495</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KZnVuY3Rpb24gbG9nKG1zZykKewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cgKyAnXG4n
KSk7Cn0KPC9zY3JpcHQ+CjxpbnB1dCBpZD0iYSI+CjxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgo8
c2NyaXB0Pgp2YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYScpOwppbnB1dC5m
b2N1cygpOwpsb2coJ0ZvY3VzZWQgPGlucHV0PicpOwp2YXIgcmFuZ2UgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKTsKdmFyIHJlc3VsdCA9IC9IVE1MSW5wdXRFbGVtZW50Ly50
ZXN0KHJhbmdlLnN0YXJ0Q29udGFpbmVyKSA/ICdQQVNTJyA6ICdGQUlMJzsKbG9nKHJlc3VsdCAr
ICc6IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyIGlz
OiAnICsgcmFuZ2Uuc3RhcnRDb250YWluZXIpOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>22445</attachid>
            <date>2008-07-23 02:46:56 -0700</date>
            <delta_ts>2008-07-23 02:46:56 -0700</delta_ts>
            <desc>testcase for input/textarea elements with selection/range objects</desc>
            <filename>testcase_input_textarea.html</filename>
            <type>text/html</type>
            <size>1626</size>
            <attacher name="Alex Steitz">alexander.steitz</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KICBmdW5jdGlvbiBsb2cobXNnKQogIHsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cg
KyAnXG4nKSk7CiAgfQogIDwvc2NyaXB0PgogIDxkaXY+CiAgICA8aW5wdXQgaWQ9ImEiIHZhbHVl
PSJ0ZXN0IGlucHV0Ii8+CiAgPC9kaXY+CiAgPGJyLz4KICA8ZGl2PgogICAgPHRleHRhcmVhIGlk
PSJiIj50ZXN0IHRleHRhcmVhPC90ZXh0YXJlYT4KICA8L2Rpdj4KICAKICA8cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KICA8c2NyaXB0PgogIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdhJyk7CiAgaW5wdXQuZm9jdXMoKTsKICBpbnB1dC5zZWxlY3QoKTsKICBsb2coJ0ZvY3Vz
ZWQgPGlucHV0PicpOwogIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAg
dmFyIHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7CiAgCiAgbG9nKCdvdXRlckhUTUwg
b2YgcGFyZW50IG9mIGFuY2hvck5vZGUgaXMgJyArIHNlbGVjdGlvbi5hbmNob3JOb2RlLnBhcmVu
dE5vZGUub3V0ZXJIVE1MKTsKICBsb2coJ291dGVySFRNTCBvZiBwYXJlbnQgb2YgZm9jdXNOb2Rl
IGlzICcgKyBzZWxlY3Rpb24uYW5jaG9yTm9kZS5wYXJlbnROb2RlLm91dGVySFRNTCk7CiAgCiAg
bG9nKCdvdXRlckhUTUwgb2YgcGFyZW50IG9mIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5nZXRSYW5n
ZUF0KDApLnN0YXJ0Q29udGFpbmVyIGlzOiAnICsgcmFuZ2Uuc3RhcnRDb250YWluZXIucGFyZW50
Tm9kZS5vdXRlckhUTUwpOwogIGxvZygnb3V0ZXJIVE1MIG9mIHBhcmVudCBvZiB3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIgaXM6ICcgKyByYW5nZS5lbmRD
b250YWluZXIucGFyZW50Tm9kZS5vdXRlckhUTUwpOwogIGxvZygnXG4nKTsKICAKICB2YXIgdGV4
dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpOwogIHRleHRhcmVhLmZvY3VzKCk7
CiAgdGV4dGFyZWEuc2VsZWN0KCk7CiAgbG9nKCdGb2N1c2VkIDx0ZXh0YXJlYT4nKTsKICB2YXIg
c2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogIHZhciByYW5nZSA9IHNlbGVjdGlv
bi5nZXRSYW5nZUF0KDApOwogIAogIGxvZygnb3V0ZXJIVE1MIG9mIHBhcmVudE5vZGUgb2YgYW5j
aG9yTm9kZSBpcyAnICsgc2VsZWN0aW9uLmFuY2hvck5vZGUucGFyZW50Tm9kZS5vdXRlckhUTUwp
OwogIGxvZygnb3V0ZXJIVE1MIG9mIHBhcmVudE5vZGUgb2YgZm9jdXNOb2RlIGlzICcgKyBzZWxl
Y3Rpb24uYW5jaG9yTm9kZS5wYXJlbnROb2RlLm91dGVySFRNTCk7CiAgCiAgbG9nKCdvdXRlckhU
TUwgb2YgcGFyZW50IG9mIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0
Q29udGFpbmVyIGlzOiAnICsgcmFuZ2Uuc3RhcnRDb250YWluZXIucGFyZW50Tm9kZS5vdXRlckhU
TUwpOwogIGxvZygnb3V0ZXJIVE1MIG9mIHBhcmVudCBvZiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
Z2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIgaXM6ICcgKyByYW5nZS5lbmRDb250YWluZXIucGFy
ZW50Tm9kZS5vdXRlckhUTUwpOwoKPC9zY3JpcHQ+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34353</attachid>
            <date>2009-08-07 18:07:23 -0700</date>
            <delta_ts>2009-08-07 19:11:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ShadowPatch2.txt</filename>
            <type>text/plain</type>
            <size>16141</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjkzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMDgtMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4g
ZW1wdHkgPGlucHV0PiBpcyBmb2N1c2VkLCBnZXRTZWxlY3Rpb24oKSBleHBvc2VzIHNoYWRvdyB0
cmVlIG5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTkwMworCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvc2hhZG93LXRyZWUtZXhwb3N1cmUu
aHRtbAorCisgICAgICAgICogcGFnZS9ET01TZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2VsZWN0aW9uU2hhZG93QW5jZXN0b3IpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNlbGVjdGlvbjo6YW5jaG9yTm9kZSk6IFJldHVybiB0aGUgcGFyZW50IG9mIHRoZSBzaGFkb3cK
KyAgICAgICAgYW5jZXN0b3IgaWYgdGhlIHNlbGVjdGlvbiBpcyBpbiBhIHNoYWRvdyB0cmVlLiBN
YXRjaGVzIEZpcmVmb3guCisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmFuY2hvck9m
ZnNldCk6IFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHNoYWRvdworICAgICAgICBhbmNlc3RvciBp
ZiB0aGUgc2VsZWN0aW9uIGlzIGluIGEgc2hhZG93IHRyZWUuIE1hdGNoZXMgRmlyZWZveC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6Zm9jdXNOb2RlKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpET01TZWxlY3Rpb246OmZvY3VzT2Zmc2V0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpET01TZWxlY3Rpb246OmJhc2VOb2RlKTogTW9yZSBvZiB0aGUgc2FtZSwgYnV0IHNp
bmNlIHRoaXMKKyAgICAgICAgaXMgYSBXZWJLaXQtaW52ZW50ZWQgcHJvcGVydHksIGl0IGRvZXMg
bm90IG1hdGNoIEZpcmVmb3guCisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmJhc2VP
ZmZzZXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6ZXh0ZW50Tm9k
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpleHRlbnRPZmZzZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6aXNDb2xsYXBzZWQpOiBS
ZXR1cm4gdHJ1ZSBldmVuIHdoZW4gdGhlCisgICAgICAgIHNlbGVjdGlvbiBpcyBhIHJhbmdlLCBp
ZiB0aGUgc2VsZWN0aW9uIGlzIGluIHRoZSBzaGFkb3cgdHJlZS4KKyAgICAgICAgTWF0Y2hlcyBG
aXJlZm94LiBBbHNvIGNoYW5nZWQgYmVoYXZpb3Igd2hlbiBjYWxsZWQgYW5kIHRoZSBmcmFtZQor
ICAgICAgICBpcyBnb25lIHRvIHJldHVybiB0cnVlIGluc3RlYWQgb2YgZmFsc2Ugd2hpY2ggbWFr
ZXMgbW9yZSBzZW5zZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6ZW1wdHkpOiBV
c2UgY2xlYXIoKSBqdXN0IGxpa2UgdGhlIG90aGVyCisgICAgICAgIHNlbGVjdGlvbi1jbGVhcmlu
ZyBmdW5jdGlvbiBpbiB0aGlzIGZpbGUgZG9lcy4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVj
dGlvbjo6Z2V0UmFuZ2VBdCk6IFJldHVybiBhIHJhbmdlIHRoYXQgc3RhcnRzCisgICAgICAgIGFu
ZCBlbmRzIGJlZm9yZSB0aGUgc2hhZG93IGFuY2VzdG9yLiBNYXRjaGVzIEZpcmVmb3guCisKIDIw
MDktMDgtMDcgIFN6YWJvIENhcm9sICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAJKHJldmlz
aW9uIDQ2OTI1KQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00MSw2ICs0MSwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBOb2Rl
KiBzZWxlY3Rpb25TaGFkb3dBbmNlc3RvcihGcmFtZSogZnJhbWUpCit7CisgICAgTm9kZSogbm9k
ZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkuYmFzZSgpLmFuY2hvck5vZGUoKTsK
KyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworICAgIE5vZGUqIHNoYWRvd0FuY2Vz
dG9yID0gbm9kZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7CisgICAgaWYgKHNoYWRvd0FuY2VzdG9y
ID09IG5vZGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzaGFkb3dBbmNlc3RvcjsK
K30KKwogRE9NU2VsZWN0aW9uOjpET01TZWxlY3Rpb24oRnJhbWUqIGZyYW1lKQogICAgIDogbV9m
cmFtZShmcmFtZSkKIHsKQEAgLTg4LDYgKzk5LDggQEAgTm9kZSogRE9NU2VsZWN0aW9uOjphbmNo
b3JOb2RlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwor
ICAgIGlmIChOb2RlKiBzaGFkb3dBbmNlc3RvciA9IHNlbGVjdGlvblNoYWRvd0FuY2VzdG9yKG1f
ZnJhbWUpKQorICAgICAgICByZXR1cm4gc2hhZG93QW5jZXN0b3ItPnBhcmVudE5vZGUoKTsKICAg
ICByZXR1cm4gYW5jaG9yUG9zaXRpb24odmlzaWJsZVNlbGVjdGlvbigpKS5ub2RlKCk7CiB9CiAK
QEAgLTk1LDYgKzEwOCw4IEBAIGludCBET01TZWxlY3Rpb246OmFuY2hvck9mZnNldCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoTm9kZSog
c2hhZG93QW5jZXN0b3IgPSBzZWxlY3Rpb25TaGFkb3dBbmNlc3RvcihtX2ZyYW1lKSkKKyAgICAg
ICAgcmV0dXJuIHNoYWRvd0FuY2VzdG9yLT5ub2RlSW5kZXgoKTsKICAgICByZXR1cm4gYW5jaG9y
UG9zaXRpb24odmlzaWJsZVNlbGVjdGlvbigpKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpOwog
fQogCkBAIC0xMDIsNiArMTE3LDggQEAgTm9kZSogRE9NU2VsZWN0aW9uOjpmb2N1c05vZGUoKSBj
b25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKE5v
ZGUqIHNoYWRvd0FuY2VzdG9yID0gc2VsZWN0aW9uU2hhZG93QW5jZXN0b3IobV9mcmFtZSkpCisg
ICAgICAgIHJldHVybiBzaGFkb3dBbmNlc3Rvci0+cGFyZW50Tm9kZSgpOwogICAgIHJldHVybiBm
b2N1c1Bvc2l0aW9uKHZpc2libGVTZWxlY3Rpb24oKSkubm9kZSgpOwogfQogCkBAIC0xMDksNiAr
MTI2LDggQEAgaW50IERPTVNlbGVjdGlvbjo6Zm9jdXNPZmZzZXQoKSBjb25zdAogewogICAgIGlm
ICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKE5vZGUqIHNoYWRvd0FuY2Vz
dG9yID0gc2VsZWN0aW9uU2hhZG93QW5jZXN0b3IobV9mcmFtZSkpCisgICAgICAgIHJldHVybiBz
aGFkb3dBbmNlc3Rvci0+bm9kZUluZGV4KCk7CiAgICAgcmV0dXJuIGZvY3VzUG9zaXRpb24odmlz
aWJsZVNlbGVjdGlvbigpKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpOwogfQogCkBAIC0xMTYs
NiArMTM1LDggQEAgTm9kZSogRE9NU2VsZWN0aW9uOjpiYXNlTm9kZSgpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoTm9kZSogc2hhZG93QW5j
ZXN0b3IgPSBzZWxlY3Rpb25TaGFkb3dBbmNlc3RvcihtX2ZyYW1lKSkKKyAgICAgICAgcmV0dXJu
IHNoYWRvd0FuY2VzdG9yLT5wYXJlbnROb2RlKCk7CiAgICAgcmV0dXJuIGJhc2VQb3NpdGlvbih2
aXNpYmxlU2VsZWN0aW9uKCkpLm5vZGUoKTsKIH0KIApAQCAtMTIzLDE0ICsxNDQsMTcgQEAgaW50
IERPTVNlbGVjdGlvbjo6YmFzZU9mZnNldCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQog
ICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoTm9kZSogc2hhZG93QW5jZXN0b3IgPSBzZWxlY3Rp
b25TaGFkb3dBbmNlc3RvcihtX2ZyYW1lKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvd0FuY2VzdG9y
LT5ub2RlSW5kZXgoKTsKICAgICByZXR1cm4gYmFzZVBvc2l0aW9uKHZpc2libGVTZWxlY3Rpb24o
KSkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKTsKIH0KIAotCiBOb2RlKiBET01TZWxlY3Rpb246
OmV4dGVudE5vZGUoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJu
IDA7CisgICAgaWYgKE5vZGUqIHNoYWRvd0FuY2VzdG9yID0gc2VsZWN0aW9uU2hhZG93QW5jZXN0
b3IobV9mcmFtZSkpCisgICAgICAgIHJldHVybiBzaGFkb3dBbmNlc3Rvci0+cGFyZW50Tm9kZSgp
OwogICAgIHJldHVybiBleHRlbnRQb3NpdGlvbih2aXNpYmxlU2VsZWN0aW9uKCkpLm5vZGUoKTsK
IH0KIApAQCAtMTM4LDEzICsxNjIsMTUgQEAgaW50IERPTVNlbGVjdGlvbjo6ZXh0ZW50T2Zmc2V0
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOworICAgIGlm
IChOb2RlKiBzaGFkb3dBbmNlc3RvciA9IHNlbGVjdGlvblNoYWRvd0FuY2VzdG9yKG1fZnJhbWUp
KQorICAgICAgICByZXR1cm4gc2hhZG93QW5jZXN0b3ItPm5vZGVJbmRleCgpOwogICAgIHJldHVy
biBleHRlbnRQb3NpdGlvbih2aXNpYmxlU2VsZWN0aW9uKCkpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zm
c2V0KCk7CiB9CiAKIGJvb2wgRE9NU2VsZWN0aW9uOjppc0NvbGxhcHNlZCgpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX2ZyYW1l
IHx8IHNlbGVjdGlvblNoYWRvd0FuY2VzdG9yKG1fZnJhbWUpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICByZXR1cm4gIW1fZnJhbWUtPnNlbGVjdGlvbigpLT5pc1JhbmdlKCk7CiB9CiAKQEAg
LTIwNiw3ICsyMzIsNyBAQCB2b2lkIERPTVNlbGVjdGlvbjo6ZW1wdHkoKQogewogICAgIGlmICgh
bV9mcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5tb3Zl
VG8oVmlzaWJsZVBvc2l0aW9uKCkpOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5jbGVhcigp
OwogfQogCiB2b2lkIERPTVNlbGVjdGlvbjo6c2V0QmFzZUFuZEV4dGVudChOb2RlKiBiYXNlTm9k
ZSwgaW50IGJhc2VPZmZzZXQsIE5vZGUqIGV4dGVudE5vZGUsIGludCBleHRlbnRPZmZzZXQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMzE3LDYgKzM0MywxMiBAQCBQYXNzUmVmUHRyPFJhbmdlPiBE
T01TZWxlY3Rpb246OmdldFJhbmdlCiAgICAgLy8gSWYgeW91J3JlIGhpdHRpbmcgdGhpcywgeW91
J3ZlIGFkZGVkIGJyb2tlbiBtdWx0aS1yYW5nZSBzZWxlY3Rpb24gc3VwcG9ydAogICAgIEFTU0VS
VChyYW5nZUNvdW50KCkgPT0gMSk7CiAKKyAgICBpZiAoTm9kZSogc2hhZG93QW5jZXN0b3IgPSBz
ZWxlY3Rpb25TaGFkb3dBbmNlc3RvcihtX2ZyYW1lKSkgeworICAgICAgICBOb2RlKiBjb250YWlu
ZXIgPSBzaGFkb3dBbmNlc3Rvci0+cGFyZW50Tm9kZSgpOworICAgICAgICBpbnQgb2Zmc2V0ID0g
c2hhZG93QW5jZXN0b3ItPm5vZGVJbmRleCgpOworICAgICAgICByZXR1cm4gUmFuZ2U6OmNyZWF0
ZShzaGFkb3dBbmNlc3Rvci0+ZG9jdW1lbnQoKSwgY29udGFpbmVyLCBvZmZzZXQsIGNvbnRhaW5l
ciwgb2Zmc2V0KTsKKyAgICB9CisKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24gPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCk7CiAgICAgcmV0dXJuIHNlbGVj
dGlvbi5maXJzdFJhbmdlKCk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjkzNikKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDA5LTA4
LTA3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGVtcHR5IDxpbnB1dD4gaXMgZm9jdXNl
ZCwgZ2V0U2VsZWN0aW9uKCkgZXhwb3NlcyBzaGFkb3cgdHJlZSBub2RlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MDMKKworICAgICAgICBBbHNv
IHVwZGF0ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIG5vbi1zdGFuZGFyZCB0ZXN0IHRvIHdvcmsg
aW4gYSBtb3JlCisgICAgICAgIHN0YW5kYXJkIHdheS4KKworICAgICAgICAqIGZhc3QvZm9ybXMv
cmVzb3VyY2VzL3NoYWRvdy10cmVlLWV4cG9zdXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL3NoYWRvdy10cmVlLWV4cG9zdXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9zaGFkb3ctdHJlZS1leHBvc3VyZS5odG1sOiBBZGRlZC4KKworICAgICAg
ICAqIGZhc3QvanMvbWV0aG9kLWNoZWNrLWV4cGVjdGVkLnR4dDogVXBkYXRlZC4KKyAgICAgICAg
KiBmYXN0L2pzL21ldGhvZC1jaGVjay5odG1sOiBSZWdlbmVyYXRlZCB1c2luZyB0aGUgbWFrZS1q
cy10ZXN0LXdyYXBwZXJzIHNjcmlwdC4KKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy9tZXRo
b2QtY2hlY2suanM6IFJlcGxhY2VkIGEgY29tbWVudCB0YWxraW5nIGFib3V0IHRoZSBsYWNrCisg
ICAgICAgIG9mIGEgZ2MoKSBmdW5jdGlvbiB3aXRoIGEgY2FsbCB0byBHQ0NvbnRyb2xsZXIuY29s
bGVjdCgpLiBBbHNvIHJlbW92ZWQgdGhlCisgICAgICAgIHNob3VsZEJlVHJ1ZSBjYWxsIGF0IHRo
ZSBlbmQgb2YgdGhlIGZpZWwgdGhhdCB3YXNuJ3QgbmVlZGVkLgorCiAyMDA5LTA4LTA3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lw
cGVkOiBTa2lwIGEgbmV3bHktZmFpbGluZyB0ZXN0LiBJIGZpbGVkIGEgYnVnIGFib3V0IGl0IHRv
by4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2hhZG93LXRyZWUtZXhwb3N1cmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2hhZG93LXRy
ZWUtZXhwb3N1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zaGFkb3ctdHJlZS1leHBvc3VyZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTcgQEAKK1Rlc3QgdG8gbWFrZSBzdXJlIHNoYWRvdyBub2RlcyBhcmUgbm90IGV4
cG9zZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdldFNlbGVjdGlv
bigpLmFuY2hvck5vZGUgaXMgbnVsbAorUEFTUyBnZXRTZWxlY3Rpb24oKS5hbmNob3JPZmZzZXQg
aXMgMAorUEFTUyBnZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUgaXMgbnVsbAorUEFTUyBnZXRTZWxl
Y3Rpb24oKS5mb2N1c09mZnNldCBpcyAwCitQQVNTIGdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2Vk
IGlzIHRydWUKK1BBU1MgZ2V0U2VsZWN0aW9uKCkucmFuZ2VDb3VudCBpcyAwCitQQVNTIGdldFNl
bGVjdGlvbigpLmJhc2VOb2RlIGlzIG51bGwKK1BBU1MgZ2V0U2VsZWN0aW9uKCkuYmFzZU9mZnNl
dCBpcyAwCitQQVNTIGdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUgaXMgbnVsbAorUEFTUyBnZXRT
ZWxlY3Rpb24oKS5leHRlbnRPZmZzZXQgaXMgMAorUEFTUyBnZXRTZWxlY3Rpb24oKS50eXBlIGlz
ICdOb25lJworCitBZGQgYW4gaW5wdXQgZWxlbWVudC4KKworUEFTUyBnZXRTZWxlY3Rpb24oKS5h
bmNob3JOb2RlIGlzIGNvbnRhaW5lcgorUEFTUyBnZXRTZWxlY3Rpb24oKS5hbmNob3JPZmZzZXQg
aXMgMQorUEFTUyBnZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUgaXMgY29udGFpbmVyCitQQVNTIGdl
dFNlbGVjdGlvbigpLmZvY3VzT2Zmc2V0IGlzIDEKK1BBU1MgZ2V0U2VsZWN0aW9uKCkuaXNDb2xs
YXBzZWQgaXMgdHJ1ZQorUEFTUyBnZXRTZWxlY3Rpb24oKS5yYW5nZUNvdW50IGlzIDEKK1BBU1Mg
Z2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lciBpcyBjb250YWluZXIK
K1BBU1MgZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydE9mZnNldCBpcyAxCitQQVNT
IGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVyIGlzIGNvbnRhaW5lcgor
UEFTUyBnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVuZE9mZnNldCBpcyAxCitQQVNTIGdl
dFNlbGVjdGlvbigpLmJhc2VOb2RlIGlzIGNvbnRhaW5lcgorUEFTUyBnZXRTZWxlY3Rpb24oKS5i
YXNlT2Zmc2V0IGlzIDEKK1BBU1MgZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSBpcyBjb250YWlu
ZXIKK1BBU1MgZ2V0U2VsZWN0aW9uKCkuZXh0ZW50T2Zmc2V0IGlzIDEKK1BBU1MgZ2V0U2VsZWN0
aW9uKCkudHlwZSBpcyAnUmFuZ2UnCisKK0FkZCBhIHRleHRhcmVhIGVsZW1lbnQuCisKK1BBU1Mg
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSBpcyBjb250YWluZXIKK1BBU1MgZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yT2Zmc2V0IGlzIDIKK1BBU1MgZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlIGlzIGNv
bnRhaW5lcgorUEFTUyBnZXRTZWxlY3Rpb24oKS5mb2N1c09mZnNldCBpcyAyCitQQVNTIGdldFNl
bGVjdGlvbigpLmlzQ29sbGFwc2VkIGlzIHRydWUKK1BBU1MgZ2V0U2VsZWN0aW9uKCkucmFuZ2VD
b3VudCBpcyAxCitQQVNTIGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWlu
ZXIgaXMgY29udGFpbmVyCitQQVNTIGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRP
ZmZzZXQgaXMgMgorUEFTUyBnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVuZENvbnRhaW5l
ciBpcyBjb250YWluZXIKK1BBU1MgZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRPZmZz
ZXQgaXMgMgorUEFTUyBnZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSBpcyBjb250YWluZXIKK1BBU1Mg
Z2V0U2VsZWN0aW9uKCkuYmFzZU9mZnNldCBpcyAyCitQQVNTIGdldFNlbGVjdGlvbigpLmV4dGVu
dE5vZGUgaXMgY29udGFpbmVyCitQQVNTIGdldFNlbGVjdGlvbigpLmV4dGVudE9mZnNldCBpcyAy
CitQQVNTIGdldFNlbGVjdGlvbigpLnR5cGUgaXMgJ1JhbmdlJworCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zaGFkb3ctdHJlZS1leHBvc3VyZS1leHBlY3RlZC50eHQK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2hhZG93LXRyZWUtZXhwb3N1cmUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NoYWRvdy10cmVlLWV4cG9zdXJlLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NoYWRvdy10cmVlLWV4cG9zdXJlLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy10cmVlLWV4
cG9zdXJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zaGFkb3ctdHJlZS1leHBvc3VyZS5o
dG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3Jlc291cmNlcy9zaGFkb3ctdHJlZS1leHBvc3VyZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zaGFkb3ctdHJlZS1leHBvc3VyZS5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NoYWRvdy10cmVlLWV4
cG9zdXJlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc1IEBACitkZXNjcmlwdGlvbigiVGVz
dCB0byBtYWtlIHN1cmUgc2hhZG93IG5vZGVzIGFyZSBub3QgZXhwb3NlZC4iKTsKKwordmFyIGNv
bnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoY29udGFpbmVyKTsKKworY29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJTb21lIHRleHQ6ICIpKTsKKworc2hvdWxkQmUoImdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUiLCAibnVsbCIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmFuY2hvck9m
ZnNldCIsICIwIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlIiwgIm51bGwi
KTsKK3Nob3VsZEJlKCJnZXRTZWxlY3Rpb24oKS5mb2N1c09mZnNldCIsICIwIik7CitzaG91bGRC
ZSgiZ2V0U2VsZWN0aW9uKCkuaXNDb2xsYXBzZWQiLCAidHJ1ZSIpOworc2hvdWxkQmUoImdldFNl
bGVjdGlvbigpLnJhbmdlQ291bnQiLCAiMCIpOworCitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCku
YmFzZU5vZGUiLCAibnVsbCIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmJhc2VPZmZzZXQi
LCAiMCIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUiLCAibnVsbCIpOwor
c2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmV4dGVudE9mZnNldCIsICIwIik7CitzaG91bGRCZSgi
Z2V0U2VsZWN0aW9uKCkudHlwZSIsICInTm9uZSciKTsKKworZGVidWcoIlxuQWRkIGFuIGlucHV0
IGVsZW1lbnQuXG4iKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5w
dXQiKTsKK2NvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7CitpbnB1dC52YWx1ZSA9ICJ0ZXh0
IjsKK2lucHV0LmZvY3VzKCk7CitpbnB1dC5zZWxlY3QoKTsKKworc2hvdWxkQmUoImdldFNlbGVj
dGlvbigpLmFuY2hvck5vZGUiLCAiY29udGFpbmVyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yT2Zmc2V0IiwgIjEiKTsKK3Nob3VsZEJlKCJnZXRTZWxlY3Rpb24oKS5mb2N1c05v
ZGUiLCAiY29udGFpbmVyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuZm9jdXNPZmZzZXQi
LCAiMSIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkIiwgInRydWUiKTsK
K3Nob3VsZEJlKCJnZXRTZWxlY3Rpb24oKS5yYW5nZUNvdW50IiwgIjEiKTsKK3Nob3VsZEJlKCJn
ZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyIiwgImNvbnRhaW5lciIp
Oworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRPZmZzZXQiLCAi
MSIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVy
IiwgImNvbnRhaW5lciIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCku
ZW5kT2Zmc2V0IiwgIjEiKTsKKworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmJhc2VOb2RlIiwg
ImNvbnRhaW5lciIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmJhc2VPZmZzZXQiLCAiMSIp
Oworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUiLCAiY29udGFpbmVyIik7Citz
aG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuZXh0ZW50T2Zmc2V0IiwgIjEiKTsKK3Nob3VsZEJlKCJn
ZXRTZWxlY3Rpb24oKS50eXBlIiwgIidSYW5nZSciKTsKKworZGVidWcoIlxuQWRkIGEgdGV4dGFy
ZWEgZWxlbWVudC5cbiIpOworCit2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJ0ZXh0YXJlYSIpOworY29udGFpbmVyLmFwcGVuZENoaWxkKHRleHRhcmVhKTsKK3RleHRhcmVh
LnZhbHVlID0gInRleHQiOwordGV4dGFyZWEuZm9jdXMoKTsKK3RleHRhcmVhLnNlbGVjdCgpOwor
CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSIsICJjb250YWluZXIiKTsKK3No
b3VsZEJlKCJnZXRTZWxlY3Rpb24oKS5hbmNob3JPZmZzZXQiLCAiMiIpOworc2hvdWxkQmUoImdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSIsICJjb250YWluZXIiKTsKK3Nob3VsZEJlKCJnZXRTZWxl
Y3Rpb24oKS5mb2N1c09mZnNldCIsICIyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuaXND
b2xsYXBzZWQiLCAidHJ1ZSIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLnJhbmdlQ291bnQi
LCAiMSIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250
YWluZXIiLCAiY29udGFpbmVyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VB
dCgwKS5zdGFydE9mZnNldCIsICIyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuZ2V0UmFu
Z2VBdCgwKS5lbmRDb250YWluZXIiLCAiY29udGFpbmVyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0
aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRPZmZzZXQiLCAiMiIpOworCitzaG91bGRCZSgiZ2V0U2Vs
ZWN0aW9uKCkuYmFzZU5vZGUiLCAiY29udGFpbmVyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9u
KCkuYmFzZU9mZnNldCIsICIyIik7CitzaG91bGRCZSgiZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9k
ZSIsICJjb250YWluZXIiKTsKK3Nob3VsZEJlKCJnZXRTZWxlY3Rpb24oKS5leHRlbnRPZmZzZXQi
LCAiMiIpOworc2hvdWxkQmUoImdldFNlbGVjdGlvbigpLnR5cGUiLCAiJ1JhbmdlJyIpOworCitk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGNvbnRhaW5lcik7CisKK2RlYnVnKCIiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL21l
dGhvZC1jaGVjay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9q
cy9tZXRob2QtY2hlY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NjkyNSkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvbWV0aG9kLWNoZWNrLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
Myw1ICszLDcgQEAgVGhpcyB0ZXN0IHlpZWxkcyBQQVNTLCBpZiBtYWxsb2MgZG9lcyBubwogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgdHJ1ZSBpcyB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9tZXRob2QtY2hlY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL21ldGhvZC1jaGVjay5odG1sCShyZXZpc2lvbiA0NjkyNSkKKysrIExheW91dFRlc3Rz
L2Zhc3QvanMvbWV0aG9kLWNoZWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNSArOCw2IEBA
CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNj
cmlwdCBzcmM9InJlc291cmNlcy9tZXRob2QtY2hlY2suanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvbWV0aG9kLWNoZWNrLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL21ldGhvZC1jaGVjay5q
cwkocmV2aXNpb24gNDY5MjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9tZXRo
b2QtY2hlY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTksMTYgKzksMTggQEAgZnVuY3Rpb24gZnVu
YygpCiAgICAgU3RyaW5nLnByb3RvdHlwZS5hID0gZnVuY3Rpb24oKSB7IH0KICAgICBTdHJpbmcu
cHJvdG90eXBlLmIgPSBmdW5jdGlvbigpIHsgfQogCi0gICAgLy8gdGhlcmUgaXMgbm8gZ2MoKSBj
YWxsIGluIExheW91dFRlc3RzIQotCi0gICAgLy8gVGhlIGZvbGxvd2luZyAzIGxpbmVzIGNhdXNl
IGdjKCkgZmx1c2ggb24gYSBEZWJpYW4KLSAgICAvLyBMaW51eCBtYWNoaW5lLCBidXQgdGhlcmUg
aXMgbm8gZ2FyYW50ZWUsIGl0IHdvcmtzIG9uCi0gICAgLy8gYW55IG90aGVyIGNvbXB1dGVyLiAo
Tm90IGV2ZW4gYW5vdGhlciBEZWJpYW4gTGludXgpCi0gICAgLy8gSWYgZnVuYzIoKSBpcyBub3Qg
Y2FsbGVkIG9yIGEgbXVjaCBiaWdnZXIgb3IgbG93ZXIKLSAgICAvLyB2YWx1ZSB0aGFuIDUwMDAg
aXMgY2hvc2VuLCB0aGUgY3Jhc2ggd29uJ3QgaGFwcGVuCi0gICAgZnVuYzIoKQotICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgNTAwMDsgKytpKQotICAgICAgICBuZXcgQm9vbGVhbigpCisgICAgaWYg
KHdpbmRvdy5HQ0NvbnRyb2xsZXIpCisgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Cisg
ICAgZWxzZSB7CisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgMyBsaW5lcyBjYXVzZSBnYygpIGZs
dXNoIG9uIGEgRGViaWFuCisgICAgICAgIC8vIExpbnV4IG1hY2hpbmUsIGJ1dCB0aGVyZSBpcyBu
byBnYXJhbnRlZSwgaXQgd29ya3Mgb24KKyAgICAgICAgLy8gYW55IG90aGVyIGNvbXB1dGVyLiAo
Tm90IGV2ZW4gYW5vdGhlciBEZWJpYW4gTGludXgpCisgICAgICAgIC8vIElmIGZ1bmMyKCkgaXMg
bm90IGNhbGxlZCBvciBhIG11Y2ggYmlnZ2VyIG9yIGxvd2VyCisgICAgICAgIC8vIHZhbHVlIHRo
YW4gNTAwMCBpcyBjaG9zZW4sIHRoZSBjcmFzaCB3b24ndCBoYXBwZW4KKyAgICAgICAgZnVuYzIo
KQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDUwMDA7ICsraSkKKyAgICAgICAgICAgIG5l
dyBCb29sZWFuKCkKKyAgICB9CiAKICAgICB2YXIgc3RyID0gIiIKICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDU7ICsraSkKQEAgLTI4LDYgKzMwLDQgQEAgZnVuY3Rpb24gZnVuYygpCiBmdW5jKCkK
IGZ1bmMoKQogCi1zaG91bGRCZVRydWUoInRydWUiKTsKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotCg==
</data>
<flag name="review"
          id="18531"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>