<?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>76261</bug_id>
          
          <creation_ts>2012-01-13 02:20:58 -0800</creation_ts>
          <short_desc>Select attribute of HTMLContentElement should be able to be changed dynamically.</short_desc>
          <delta_ts>2012-02-01 19:22:43 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56973</blocked>
    
    <blocked>75301</blocked>
    
    <blocked>77584</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>535546</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-13 02:20:58 -0800</bug_when>
    <thetext>The select attribute introduced in Bug 75302 cannot be changed dynamically.
When select is changed, re-layout or something should occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546868</commentid>
    <comment_count>1</comment_count>
      <attachid>124898</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-01 00:59:39 -0800</bug_when>
    <thetext>Created attachment 124898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546890</commentid>
    <comment_count>2</comment_count>
      <attachid>124898</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-01 01:29:35 -0800</bug_when>
    <thetext>Comment on attachment 124898
Patch

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

&gt; Source/WebCore/html/shadow/HTMLContentElement.cpp:128
&gt; +            root-&gt;shadowHost()-&gt;setNeedsStyleRecalc();

Do we need both? I hope setNeedsShadowTreeStyleRecalc() sufficient.

&gt; LayoutTests/fast/dom/shadow/content-element-select-dynamic.html:122
&gt; +            document.getElementById(&apos;expect-container&apos;).innerHTML = &quot;&lt;div&gt;&lt;span&gt;BEFORE&lt;/span&gt;&lt;span&gt;LIGHT 2&lt;/span&gt;&lt;span&gt;AFTER&lt;/span&gt;&lt;/div&gt;&quot;;

How about to reverse the order between above two lines to minimize side-effect of innerHTML setter?

&gt; LayoutTests/fast/dom/shadow/content-element-select-dynamic.html:244
&gt; +

If we already have similar test, could you consider to share the test framework?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546939</commentid>
    <comment_count>3</comment_count>
      <attachid>124898</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-01 02:28:00 -0800</bug_when>
    <thetext>Comment on attachment 124898
Patch

Attachment 124898 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11389387</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547503</commentid>
    <comment_count>4</comment_count>
      <attachid>125048</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-01 17:10:10 -0800</bug_when>
    <thetext>Created attachment 125048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547504</commentid>
    <comment_count>5</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-01 17:11:02 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 124898 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124898&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/HTMLContentElement.cpp:128
&gt; &gt; +            root-&gt;shadowHost()-&gt;setNeedsStyleRecalc();
&gt; 
&gt; Do we need both? I hope setNeedsShadowTreeStyleRecalc() sufficient.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/content-element-select-dynamic.html:122
&gt; &gt; +            document.getElementById(&apos;expect-container&apos;).innerHTML = &quot;&lt;div&gt;&lt;span&gt;BEFORE&lt;/span&gt;&lt;span&gt;LIGHT 2&lt;/span&gt;&lt;span&gt;AFTER&lt;/span&gt;&lt;/div&gt;&quot;;
&gt; 
&gt; How about to reverse the order between above two lines to minimize side-effect of innerHTML setter?

Done.

&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/content-element-select-dynamic.html:244
&gt; &gt; +
&gt; 
&gt; If we already have similar test, could you consider to share the test framework?

I want to do this in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547582</commentid>
    <comment_count>6</comment_count>
      <attachid>125048</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 19:22:38 -0800</bug_when>
    <thetext>Comment on attachment 125048
Patch

Clearing flags on attachment: 125048

Committed r106527: &lt;http://trac.webkit.org/changeset/106527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547583</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 19:22:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124898</attachid>
            <date>2012-02-01 00:59:39 -0800</date>
            <delta_ts>2012-02-01 17:10:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76261-20120201175938.patch</filename>
            <type>text/plain</type>
            <size>13055</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I4YTAwMmJmODRkZmFh
ZGI3ODNmOGQ0OTU4ODI3YzU0YzVjZTdhNC4uMzg4NmIzZDc5ZDVmMDc4N2M1ZDhiOTA0YzMyZmVj
M2Q0MTQyNWY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAyLTAxICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2VsZWN0IGF0dHJp
YnV0ZSBvZiBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIGJlIGFibGUgYmUgY2hhbmdlZCBkeW5h
bWljYWxseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNoYW5nZWQsIHRoZSBmbGFnIHRvIHJlY2FsYyBzdHls
ZSBpcyBzZXQuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVu
dC1zZWxlY3QtZHluYW1pYy5odG1sCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICAgU2V0cyByZWNhbGMgc3R5bGUgd2hlbiBzZWxl
Y3QgaXMgY2hhbmdlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
aDoKKyAgICAgICAgKEhUTUxDb250ZW50RWxlbWVudCk6CisKIDIwMTItMDEtMzEgIEhheWF0byBJ
dG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBBUElzLCBnZXRFbGVtZW50
c0J5WFhYIGZhbWlseSwgdG8gU2hhZG93Um9vdCBJREwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBhZWY1NzYwMWM1ZDhkMDAw
MWFkNGU4OGVhZmUyNTM4ZWZjNmRhNDdlLi42NjQ0Njk0MmJjZjg5NGE0MDdjYmJmMDc1NjFmNDg0
NGI0YTZkODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5jcHAKQEAgLTEyMCw0ICsxMjAsMTUgQEAgdm9pZCBIVE1MQ29udGVudEVsZW1l
bnQ6OnNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdFZhbHVlKQogICAgIHNldEF0
dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7CiB9CiAKK3ZvaWQgSFRNTENvbnRlbnRF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgaWYg
KGF0dHItPm5hbWUoKSA9PSBzZWxlY3RBdHRyKSB7CisgICAgICAgIGlmIChTaGFkb3dSb290KiBy
b290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkgeworICAgICAgICAgICAg
cm9vdC0+c2V0TmVlZHNTaGFkb3dUcmVlU3R5bGVSZWNhbGMoKTsKKyAgICAgICAgICAgIHJvb3Qt
PnNoYWRvd0hvc3QoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgICAgICB9CisgICAgfSBl
bHNlCisgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
aAppbmRleCA3NWI3ZDQ3ZTg1YWQ0ZWNiYzJjNmE2ZWNhZTU3YTlmZThiNDJkYWVkLi43ODQ1ZTA5
Mzc3YzliOWRhNGY2MjdiZTMyMzFjZWU3OTFjMjE0ZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtNzMsNiArNzMsOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJp
bmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCog
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIHsgcmV0dXJuIDA7IH0K
IAorICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKwog
ICAgIE93blB0cjxTaGFkb3dJbmNsdXNpb25MaXN0PiBtX2luY2x1c2lvbnM7CiB9OwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZWM2ZDBjOTA3MzFmZjliMzkyY2U5YWI0MTYwYTUyYzgxMTkxZjJkNS4uMjhlMDM0ZTM5YzQ1
NWI5OTY5MDYzYTIyYzYxMzAyN2YyMjRhMDhhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTAyLTAxICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAg
U2VsZWN0IGF0dHJpYnV0ZSBvZiBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIGJlIGFibGUgYmUg
Y2hhbmdlZCBkeW5hbWljYWxseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc2MjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCBjYXNlcyBmb3IgY2hhbmdpbmcgc2VsZWN0IGF0dHJpYnV0ZSBkeW5h
bWljYWxseS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2Vs
ZWN0LWR5bmFtaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAx
LTMxICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgQVBJ
cywgZ2V0RWxlbWVudHNCeVhYWCBmYW1pbHksIHRvIFNoYWRvd1Jvb3QgSURMLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1zZWxlY3QtZHlu
YW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1l
bGVtZW50LXNlbGVjdC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTdiN2IzNTkw
ZmM4NDA2NDdiNTk5ZDlkZDNlM2I4NTVkYmY4YjJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1zZWxlY3QtZHluYW1pYy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAordGVzdENoYW5nZVNlbGVjdDEKK1BBU1MKK3Rlc3RD
aGFuZ2VTZWxlY3QyCitQQVNTCit0ZXN0Q2hhbmdlU2VsZWN0VG9FbXB0eQorUEFTUwordGVzdENo
YW5nZVNlbGVjdFRvRmFsbGJhY2sKK1BBU1MKK3Rlc3RDaGFuZ2VTZWxlY3RGcm9tRmFsbGJhY2sK
K1BBU1MKK1RFU1QgQ09NUExFVEVECisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wY2Y0MGJlY2NkNzA0NWIwNDk4YjZiYWNiZTcwZTg1NjEwNmE2YjZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1z
ZWxlY3QtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjkzIEBACisgPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1
bmRlcmx5aW5nIFJlbmRlckxheWVyICovCisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7Cit9CisKKy5zcGFuIHsKKyAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7CisgICAgbWFy
Z2luOiAycHg7CisgICAgYm9yZGVyOiBzb2xpZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJcbiIpOworfQorCitmdW5jdGlvbiByZW1vdmVB
bGxDaGlsZHJlbihlbGVtKSB7CisgICAgd2hpbGUgKGVsZW0uZmlyc3RDaGlsZCkKKyAgICAgICAg
ZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hpbGQpOworfQorCitmdW5jdGlvbiBjbGVhblVw
KCkgeworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykpOworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOworfQorCitmdW5jdGlvbiByZW1vdmVDb250YWlu
ZXJMaW5lcyh0ZXh0KSB7CisgICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKKyAgICBs
aW5lcy5zcGxpY2UoMCwgMik7CisgICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xuJyk7Cit9CisKK2Z1
bmN0aW9uIGNoZWNrKCkgeworICAgIHZhciByZWZDb250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJu
YWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykpOworICAgIHZhciByZWZSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVy
TGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7CisKKyAgICB2YXIgdGFyZ2V0Q29udGFpbmVy
UmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpKTsKKyAgICB2YXIgdGFyZ2V0UmVuZGVy
VHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUpOwor
CisgICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0gcmVmUmVuZGVyVHJlZSkKKyAgICAgICAgbG9n
KCJQQVNTIik7CisgICAgZWxzZSB7CisgICAgICAgIGxvZygiRkFJTCIpOworICAgICAgICBsb2co
IkV4cGVjdGVkOiAiKTsKKyAgICAgICAgbG9nKHJlZlJlbmRlclRyZWUpOworICAgICAgICBsb2co
IkFjdHVhbDogIik7CisgICAgICAgIGxvZyh0YXJnZXRSZW5kZXJUcmVlKTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0ZXh0KSB7CisgICAgdmFyIHNwYW4gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CisgICAgcmV0dXJuIHNwYW47Cit9CisKK2Z1bmN0aW9u
IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KHNlbGVjdCwgZmFsbGJhY2spIHsKKyAgICB2YXIgY29u
dGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CisgICAgY29u
dGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7CisgICAgaWYgKCFmYWxsYmFjaykK
KyAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNL
IikpOworCisgICAgcmV0dXJuIGNvbnRlbnQ7Cit9CisKK2Z1bmN0aW9uIGFwcGVuZFNoYWRvdyh0
YXJnZXQsIHNlbGVjdCkgeworICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jv
b3QodGFyZ2V0KTsKKworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRF
bGVtZW50KGRvY3VtZW50KTsKKyAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2Vs
ZWN0KTsKKyAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJB
Q0siKSk7CisKKyAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7
U0hBRE9XOiAiKSk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICByb290LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOworfQorCitmdW5jdGlvbiBh
cHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgc2VsZWN0KSB7CisgICAgdmFyIHJvb3QgPSBpbnRlcm5h
bHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOworCisgICAgdmFyIGNoaWxkID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHsKKyAgICAgICAgdmFyIGNvbnRlbnQgPSBpbnRl
cm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOworICAgICAgICBjb250ZW50LnNl
dEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKKyAgICAgICAgY29udGVudC5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOworCisgICAgICAgIGNoaWxkLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7SU5ORVI6ICIpKTsKKyAgICAgICAgY2hp
bGQuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOworICAgIH0KKworICAgIHJvb3QuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsKKyAgICByb290LmFwcGVuZENo
aWxkKGNoaWxkKTsKKyAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJ9IikpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBUZXN0IEZ1bmN0aW9ucy4KKworZnVu
Y3Rpb24gdGVzdENoYW5nZVNlbGVjdDEoY2FsbElmRG9uZSkgeworICAgIHZhciByb290ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4K
KyAgICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hUIDE8L3NwYW4+PHNw
YW4gY2xhc3M9J2MyJz5MSUdIVCAyPC9zcGFuPiI7CisKKyAgICAvLyBDcmVhdGUgc2hhZG93IHRy
ZWUuCisgICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnLmMxJyk7Cisg
ICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7CisgICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7CisgICAgc3IuYXBwZW5kQ2hp
bGQoY29udGVudCk7CisgICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRF
UiIpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJyku
YXBwZW5kQ2hpbGQocm9vdCk7CisKKyAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50
LCBjYWxsSWZEb25lKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnLmMyJyk7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2
PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFu
PjwvZGl2PiI7CisgICAgICAgICAgICBjYWxsSWZEb25lKCk7CisgICAgICAgIH07CisgICAgfSko
cm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7CisKKyAgICBzZXRUaW1lb3V0KGYsIDApOworfQor
CitmdW5jdGlvbiB0ZXN0Q2hhbmdlU2VsZWN0MihjYWxsSWZEb25lKSB7CisgICAgdmFyIHJvb3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIC8vIENyZWF0ZSBsaWdodCB0
cmVlLgorICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+TElHSFQgMTwvc3Bh
bj48c3BhbiBjbGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+IjsKKworICAgIC8vIENyZWF0ZSBzaGFk
b3cgdHJlZS4KKyAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEn
KTsKKyAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKKyAgICBz
ci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKKyAgICBzci5hcHBl
bmRDaGlsZChjb250ZW50KTsKKyAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
IkFGVEVSIikpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWlu
ZXInKS5hcHBlbmRDaGlsZChyb290KTsKKworICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNv
bnRlbnQsIGNhbGxJZkRvbmUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJyk7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9
CisgICAgICAgICAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8
L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOworICAg
ICAgICAgICAgY2FsbElmRG9uZSgpOworICAgICAgICB9OworICAgIH0pKHJvb3QsIGNvbnRlbnQs
IGNhbGxJZkRvbmUpOworCisgICAgc2V0VGltZW91dChmLCAwKTsKK30KKworZnVuY3Rpb24gdGVz
dENoYW5nZVNlbGVjdFRvRW1wdHkoY2FsbElmRG9uZSkgeworICAgIHZhciByb290ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4KKyAg
ICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hUIDE8L3NwYW4+PHNwYW4g
Y2xhc3M9J2MyJz5MSUdIVCAyPC9zcGFuPiI7CisKKyAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUu
CisgICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnLmMxJyk7CisgICAg
dmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7CisgICAgc3IuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7CisgICAgc3IuYXBwZW5kQ2hpbGQo
Y29udGVudCk7CisgICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIp
KTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQocm9vdCk7CisKKyAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50LCBj
YWxsSWZEb25lKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNv
bnRlbnQucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3QnKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAgICAg
ICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5M
SUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7CisgICAgICAgICAgICBjYWxs
SWZEb25lKCk7CisgICAgICAgIH07CisgICAgfSkocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7
CisKKyAgICBzZXRUaW1lb3V0KGYsIDApOworfQorCitmdW5jdGlvbiB0ZXN0Q2hhbmdlU2VsZWN0
VG9GYWxsYmFjayhjYWxsSWZEb25lKSB7CisgICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKworICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgorICAgIHJvb3QuaW5u
ZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+TElHSFQgMTwvc3Bhbj48c3BhbiBjbGFzcz0nYzIn
PkxJR0hUIDI8L3NwYW4+IjsKKworICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4KKyAgICB2YXIg
Y29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnKTsKKyAgICBjb250ZW50Lmlu
bmVySFRNTCA9ICI8c3Bhbj5GQUxMQkFDSzwvc3Bhbj4iCisKKyAgICB2YXIgc3IgPSBpbnRlcm5h
bHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKKyAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoIkJFRk9SRSIpKTsKKyAgICBzci5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICBz
ci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOworCisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsK
KworICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpIHsKKyAg
ICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29udGVudC5zZXRBdHRyaWJ1
dGUoJ3NlbGVjdCcsICdkaXYnKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQorICAgICAgICAgICAgICAgICI8ZGl2Pjxz
cGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5GQUxMQkFDSzwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48
L2Rpdj4iOworICAgICAgICAgICAgY2FsbElmRG9uZSgpOworICAgICAgICB9OworICAgIH0pKHJv
b3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpOworCisgICAgc2V0VGltZW91dChmLCAwKTsKK30KKwor
ZnVuY3Rpb24gdGVzdENoYW5nZVNlbGVjdEZyb21GYWxsYmFjayhjYWxsSWZEb25lKSB7CisgICAg
dmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIC8vIENyZWF0
ZSBsaWdodCB0cmVlLgorICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+TElH
SFQgMTwvc3Bhbj48c3BhbiBjbGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+IjsKKworICAgIC8vIENy
ZWF0ZSBzaGFkb3cgdHJlZS4KKyAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2Vs
ZWN0KCdkaXYnKTsKKyAgICBjb250ZW50LmlubmVySFRNTCA9ICI8c3Bhbj5GQUxMQkFDSzwvc3Bh
bj4iCisKKyAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKKyAg
ICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKKyAgICBzci5h
cHBlbmRDaGlsZChjb250ZW50KTsKKyAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoIkFGVEVSIikpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250
YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKKworICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3Qs
IGNvbnRlbnQsIGNhbGxJZkRvbmUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJykKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1M
ID0KKyAgICAgICAgICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TElHSFQg
MTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Cisg
ICAgICAgICAgICBjYWxsSWZEb25lKCk7CisgICAgICAgIH07CisgICAgfSkocm9vdCwgY29udGVu
dCwgY2FsbElmRG9uZSk7CisKKyAgICBzZXRUaW1lb3V0KGYsIDApOworfQorCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisvLyBUZXN0IERyaXZlcnMuCisKK3ZhciB0ZXN0RnVuY3MgPSBbCisgICAgdGVzdENo
YW5nZVNlbGVjdDEsCisgICAgdGVzdENoYW5nZVNlbGVjdDIsCisgICAgdGVzdENoYW5nZVNlbGVj
dFRvRW1wdHksCisgICAgdGVzdENoYW5nZVNlbGVjdFRvRmFsbGJhY2ssCisgICAgdGVzdENoYW5n
ZVNlbGVjdEZyb21GYWxsYmFjaywKK107CisKK2Z1bmN0aW9uIGRvVGVzdElmTGVmdCgpIHsKKyAg
ICB2YXIgdGVzdCA9IHRlc3RGdW5jcy5zaGlmdCgpOworICAgIGlmICh0ZXN0ID09IG51bGwpCisg
ICAgICAgIHJldHVybiBkb25lVGVzdCgpOworCisgICAgdmFyIGNhbGxJZkRvbmUgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNoZWNr
KCk7CisgICAgICAgICAgICBjbGVhblVwKCk7CisgICAgICAgICAgICBkb1Rlc3RJZkxlZnQoKTsK
KyAgICAgICAgfSwgMCk7CisgICAgfTsKKworICAgIGxvZyh0ZXN0Lm5hbWUpOworICAgIHRlc3Qo
Y2FsbElmRG9uZSk7Cit9CisKK2Z1bmN0aW9uIGRvbmVUZXN0KCkgeworICAgIGxvZygiVEVTVCBD
T01QTEVURUQiKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisK
K2Z1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIH0KKworICAgIGNsZWFu
VXAoKTsKKyAgICBkb1Rlc3RJZkxlZnQoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJkb1Rlc3QoKSI+CisKKzxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJj
b250YWluZXIiPjwvZGl2PgorPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRh
aW5lciI+PC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125048</attachid>
            <date>2012-02-01 17:10:10 -0800</date>
            <delta_ts>2012-02-01 19:22:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76261-20120202101009.patch</filename>
            <type>text/plain</type>
            <size>13040</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E5ZDQ5OWM0YzQ3YWY0
YjBiMjJlMjdiMWVhYmQ4NzliN2Y4MmUzMS4uOTQ5NWM4MTRkMzI0Mjg4ZTNkZTM4YTI1N2Q2MzMx
NjVmMDM2MzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAyLTAxICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2VsZWN0IGF0dHJp
YnV0ZSBvZiBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIGJlIGFibGUgYmUgY2hhbmdlZCBkeW5h
bWljYWxseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNoYW5nZWQsIHRoZSBmbGFnIHRvIHJlY2FsYyBzdHls
ZSBpcyBzZXQuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVu
dC1zZWxlY3QtZHluYW1pYy5odG1sCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICAgU2V0cyByZWNhbGMgc3R5bGUgd2hlbiBzZWxl
Y3QgaXMgY2hhbmdlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
aDoKKyAgICAgICAgKEhUTUxDb250ZW50RWxlbWVudCk6CisKIDIwMTItMDItMDEgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJDb3JlIHBhcnQgb2YgPHJkYXI6
Ly9wcm9ibGVtLzEwNDQyNjYzPiBQYWdpbmF0ZWQgZGlzcGxheSBkb2VzIG5vdCByZXNwZWN0IHBh
Z2UtYnJlYWste2JlZm9yZSxhZnRlcn0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDRhZjQ1YjI5MTBlYmRhYWI0OGE5NWIyMDEw
MTIxZThkM2M3YWU1MWEuLmMxYTFlZjA4M2ZiZTQxYmY1ZGVhYWZhYWMyZDVjMzhmOWIxNDVjYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmNwcApAQCAtMTE4LDQgKzExOCwxMyBAQCB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCiAgICAgc2V0QXR0cmlidXRlKHNl
bGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKIH0KIAordm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKK3sKKyAgICBpZiAoYXR0ci0+bmFt
ZSgpID09IHNlbGVjdEF0dHIpIHsKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1No
YWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKQorICAgICAgICAgICAgcm9vdC0+c2V0TmVl
ZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIH0gZWxzZQorICAgICAgICBI
VE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgKaW5kZXggNzViN2Q0
N2U4NWFkNGVjYmMyYzZhNmVjYWU1N2E5ZmU4YjQyZGFlZC4uNzg0NWUwOTM3N2M5YjlkYTRmNjI3
YmUzMjMxY2VlNzkxYzIxNGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
SFRNTENvbnRlbnRFbGVtZW50LmgKQEAgLTczLDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSB7IHJldHVybiAwOyB9CiAKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CisKICAgICBPd25QdHI8U2hh
ZG93SW5jbHVzaW9uTGlzdD4gbV9pbmNsdXNpb25zOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRlYTUwY2NiZGRl
MDg2M2I0ZTFiNmU4ZWM4ZGYxZjIwZmVjMGRhY2YuLjFjMTJjYzIyNDdlNjMxY2U4MzA3ZWU1OWIz
Mjg0ODQ2MmQ2M2JkZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0wMSAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFNlbGVjdCBhdHRyaWJ1
dGUgb2YgSFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBiZSBhYmxlIGJlIGNoYW5nZWQgZHluYW1p
Y2FsbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NjI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3QgY2FzZXMgZm9yIGNoYW5naW5nIHNlbGVjdCBhdHRyaWJ1dGUgZHluYW1pY2FsbHkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1zZWxlY3QtZHluYW1pYy5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0wMSAgR2F2aW4gQmFy
cmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgY2FsbGluZyBmdW5j
dGlvbiBvbiBjYXRjaCBibG9jayBzY29wZSBjb250YWluaW5nIGFuIGV2YWwgcmVzdWx0IGluIHdy
b25nIHRoaXMgdmFsdWUgYmVpbmcgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFt
aWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllN2I3YjM1OTBmYzg0MDY0N2I1OTlkOWRkM2Uz
Yjg1NWRiZjhiMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACit0ZXN0Q2hhbmdlU2VsZWN0MQorUEFTUwordGVzdENoYW5nZVNlbGVjdDIKK1BBU1MK
K3Rlc3RDaGFuZ2VTZWxlY3RUb0VtcHR5CitQQVNTCit0ZXN0Q2hhbmdlU2VsZWN0VG9GYWxsYmFj
aworUEFTUwordGVzdENoYW5nZVNlbGVjdEZyb21GYWxsYmFjaworUEFTUworVEVTVCBDT01QTEVU
RUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1zZWxlY3QtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtZWxlbWVudC1zZWxlY3QtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1ZDcyNGI5NTI4
MDI1N2U4NTNmNDRlNzA4NDk2NTYxM2NlMzI4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLmh0bWwK
QEAgLTAsMCArMSwyOTkgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CisvKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5
ZXIgKi8KKy5jb250YWluZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKworLnNwYW4g
eworICAgIGRpc3BsYXk6IGJveGVkLWlubGluZTsKKyAgICBtYXJnaW46IDJweDsKKyAgICBib3Jk
ZXI6IHNvbGlkOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkg
eworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICht
ZXNzYWdlICsgIlxuIik7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVsZW0pIHsK
KyAgICB3aGlsZSAoZWxlbS5maXJzdENoaWxkKQorICAgICAgICBlbGVtLnJlbW92ZUNoaWxkKGVs
ZW0uZmlyc3RDaGlsZCk7Cit9CisKK2Z1bmN0aW9uIGNsZWFuVXAoKSB7CisgICAgcmVtb3ZlQWxs
Q2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKSk7Cisg
ICAgcmVtb3ZlQWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250
YWluZXInKSk7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUNvbnRhaW5lckxpbmVzKHRleHQpIHsKKyAg
ICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcbicpOworICAgIGxpbmVzLnNwbGljZSgwLCAyKTsK
KyAgICByZXR1cm4gbGluZXMuam9pbignXG4nKTsKK30KKworZnVuY3Rpb24gY2hlY2soKSB7Cisg
ICAgdmFyIHJlZkNvbnRhaW5lclJlbmRlclRyZWUgPSBpbnRlcm5hbHMuZWxlbWVudFJlbmRlclRy
ZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKSk7Cisg
ICAgdmFyIHJlZlJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyhyZWZDb250YWluZXJS
ZW5kZXJUcmVlKTsKKworICAgIHZhciB0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJu
YWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykpOworICAgIHZhciB0YXJnZXRSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFp
bmVyTGluZXModGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSk7CisKKyAgICBpZiAodGFyZ2V0UmVu
ZGVyVHJlZSA9PSByZWZSZW5kZXJUcmVlKQorICAgICAgICBsb2coIlBBU1MiKTsKKyAgICBlbHNl
IHsKKyAgICAgICAgbG9nKCJGQUlMIik7CisgICAgICAgIGxvZygiRXhwZWN0ZWQ6ICIpOworICAg
ICAgICBsb2cocmVmUmVuZGVyVHJlZSk7CisgICAgICAgIGxvZygiQWN0dWFsOiAiKTsKKyAgICAg
ICAgbG9nKHRhcmdldFJlbmRlclRyZWUpOworICAgIH0KK30KKworZnVuY3Rpb24gY3JlYXRlU3Bh
bldpdGhUZXh0KHRleHQpIHsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NwYW4nKTsKKyAgICBzcGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRl
eHQpKTsKKyAgICByZXR1cm4gc3BhbjsKK30KKworZnVuY3Rpb24gY3JlYXRlQ29udGVudFdpdGhT
ZWxlY3Qoc2VsZWN0LCBmYWxsYmFjaykgeworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNy
ZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgn
c2VsZWN0Jywgc2VsZWN0KTsKKyAgICBpZiAoIWZhbGxiYWNrKQorICAgICAgICBjb250ZW50LmFw
cGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7CisKKyAgICByZXR1cm4g
Y29udGVudDsKK30KKworZnVuY3Rpb24gYXBwZW5kU2hhZG93KHRhcmdldCwgc2VsZWN0KSB7Cisg
ICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOworCisgICAg
dmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwor
ICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOworICAgIGNvbnRlbnQu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJGQUxMQkFDSyIpKTsKKworICAgIHJvb3Qu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsKKyAgICBy
b290LmFwcGVuZENoaWxkKGNvbnRlbnQpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIn0iKSk7Cit9CisKK2Z1bmN0aW9uIGFwcGVuZFNoYWRvd0RlZXAodGFy
Z2V0LCBzZWxlY3QpIHsKKyAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290
KHRhcmdldCk7CisKKyAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CisgICAgeworICAgICAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50
RWxlbWVudChkb2N1bWVudCk7CisgICAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3Qn
LCBzZWxlY3QpOworICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgiRkFMTEJBQ0siKSk7CisKKyAgICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIntJTk5FUjogIikpOworICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChjb250
ZW50KTsKKyAgICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
In0iKSk7CisgICAgfQorCisgICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgie1NIQURPVzogIikpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQpOworICAgIHJv
b3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7Cit9CisKKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKy8vIFRlc3QgRnVuY3Rpb25zLgorCitmdW5jdGlvbiB0ZXN0Q2hhbmdlU2Vs
ZWN0MShjYWxsSWZEb25lKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1j
b250YWluZXInKS5pbm5lckhUTUwgPQorICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+
PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOworCisgICAgdmFy
IHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIC8vIENyZWF0ZSBs
aWdodCB0cmVlLgorICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+TElHSFQg
MTwvc3Bhbj48c3BhbiBjbGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+IjsKKworICAgIC8vIENyZWF0
ZSBzaGFkb3cgdHJlZS4KKyAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0
KCcuYzEnKTsKKyAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsK
KyAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKKyAgICBz
ci5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0
aFRleHQoIkFGVEVSIikpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1j
b250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKKworICAgIHZhciBmID0gKGZ1bmN0aW9uKHJv
b3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICcuYzInKTsKKyAgICAg
ICAgICAgIGNhbGxJZkRvbmUoKTsKKyAgICAgICAgfTsKKyAgICB9KShyb290LCBjb250ZW50LCBj
YWxsSWZEb25lKTsKKworICAgIHNldFRpbWVvdXQoZiwgMCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RD
aGFuZ2VTZWxlY3QyKGNhbGxJZkRvbmUpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9CisgICAgICAgICI8ZGl2PjxzcGFuPkJFRk9S
RTwvc3Bhbj48c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuPkxJR0hUIDI8L3NwYW4+PHNwYW4+QUZU
RVI8L3NwYW4+PC9kaXY+IjsKKworICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisKKyAgICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4KKyAgICByb290LmlubmVySFRN
TCA9ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MyJz5MSUdI
VCAyPC9zcGFuPiI7CisKKyAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCisgICAgdmFyIGNvbnRl
bnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnLmMxJyk7CisgICAgdmFyIHNyID0gaW50ZXJu
YWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7CisgICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCJCRUZPUkUiKSk7CisgICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAg
c3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKKworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7
CisKKyAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Cisg
ICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNvbnRlbnQuc2V0QXR0cmli
dXRlKCdzZWxlY3QnLCAnc3BhbicpOworICAgICAgICAgICAgY2FsbElmRG9uZSgpOworICAgICAg
ICB9OworICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpOworCisgICAgc2V0VGltZW91
dChmLCAwKTsKK30KKworZnVuY3Rpb24gdGVzdENoYW5nZVNlbGVjdFRvRW1wdHkoY2FsbElmRG9u
ZSkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5u
ZXJIVE1MID0KKyAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8
L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOworCisg
ICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIC8vIENy
ZWF0ZSBsaWdodCB0cmVlLgorICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+
TElHSFQgMTwvc3Bhbj48c3BhbiBjbGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+IjsKKworICAgIC8v
IENyZWF0ZSBzaGFkb3cgdHJlZS4KKyAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRo
U2VsZWN0KCcuYzEnKTsKKyAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChy
b290KTsKKyAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsK
KyAgICBzci5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoIkFGVEVSIikpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fj
dHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKKworICAgIHZhciBmID0gKGZ1bmN0
aW9uKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgY29udGVudC5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdCcpOworICAg
ICAgICAgICAgY2FsbElmRG9uZSgpOworICAgICAgICB9OworICAgIH0pKHJvb3QsIGNvbnRlbnQs
IGNhbGxJZkRvbmUpOworCisgICAgc2V0VGltZW91dChmLCAwKTsKK30KKworZnVuY3Rpb24gdGVz
dENoYW5nZVNlbGVjdFRvRmFsbGJhY2soY2FsbElmRG9uZSkgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAgIjxkaXY+
PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkZBTExCQUNLPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFu
PjwvZGl2PiI7CisKKyAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworCisgICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCisgICAgcm9vdC5pbm5lckhUTUwgPSAiPHNw
YW4gY2xhc3M9J2MxJz5MSUdIVCAxPC9zcGFuPjxzcGFuIGNsYXNzPSdjMic+TElHSFQgMjwvc3Bh
bj4iOworCisgICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgorICAgIHZhciBjb250ZW50ID0gY3Jl
YXRlQ29udGVudFdpdGhTZWxlY3QoJy5jMScpOworICAgIGNvbnRlbnQuaW5uZXJIVE1MID0gIjxz
cGFuPkZBTExCQUNLPC9zcGFuPiIKKworICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFk
b3dSb290KHJvb3QpOworICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVG
T1JFIikpOworICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOworICAgIHNyLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOworCisgICAgdmFyIGYg
PSAoZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgeworICAgICAgICByZXR1cm4g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywg
J2RpdicpCisgICAgICAgICAgICBjYWxsSWZEb25lKCk7CisgICAgICAgIH07CisgICAgfSkocm9v
dCwgY29udGVudCwgY2FsbElmRG9uZSk7CisKKyAgICBzZXRUaW1lb3V0KGYsIDApOworfQorCitm
dW5jdGlvbiB0ZXN0Q2hhbmdlU2VsZWN0RnJvbUZhbGxiYWNrKGNhbGxJZkRvbmUpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Cisg
ICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFu
PkxJR0hUIDI8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+IjsKKworICAgIHZhciByb290
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAvLyBDcmVhdGUgbGlnaHQg
dHJlZS4KKyAgICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hUIDE8L3Nw
YW4+PHNwYW4gY2xhc3M9J2MyJz5MSUdIVCAyPC9zcGFuPiI7CisKKyAgICAvLyBDcmVhdGUgc2hh
ZG93IHRyZWUuCisgICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnZGl2
Jyk7CisgICAgY29udGVudC5pbm5lckhUTUwgPSAiPHNwYW4+RkFMTEJBQ0s8L3NwYW4+IgorCisg
ICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7CisgICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7CisgICAgc3IuYXBwZW5kQ2hp
bGQoY29udGVudCk7CisgICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRF
UiIpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJyku
YXBwZW5kQ2hpbGQocm9vdCk7CisKKyAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50
LCBjYWxsSWZEb25lKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnc3BhbicpCisgICAgICAgICAgICBjYWxs
SWZEb25lKCk7CisgICAgICAgIH07CisgICAgfSkocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7
CisKKyAgICBzZXRUaW1lb3V0KGYsIDApOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBUZXN0
IERyaXZlcnMuCisKK3ZhciB0ZXN0RnVuY3MgPSBbCisgICAgdGVzdENoYW5nZVNlbGVjdDEsCisg
ICAgdGVzdENoYW5nZVNlbGVjdDIsCisgICAgdGVzdENoYW5nZVNlbGVjdFRvRW1wdHksCisgICAg
dGVzdENoYW5nZVNlbGVjdFRvRmFsbGJhY2ssCisgICAgdGVzdENoYW5nZVNlbGVjdEZyb21GYWxs
YmFjaywKK107CisKK2Z1bmN0aW9uIGRvVGVzdElmTGVmdCgpIHsKKyAgICB2YXIgdGVzdCA9IHRl
c3RGdW5jcy5zaGlmdCgpOworICAgIGlmICh0ZXN0ID09IG51bGwpCisgICAgICAgIHJldHVybiBk
b25lVGVzdCgpOworCisgICAgdmFyIGNhbGxJZkRvbmUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNoZWNrKCk7CisgICAgICAgICAg
ICBjbGVhblVwKCk7CisgICAgICAgICAgICBkb1Rlc3RJZkxlZnQoKTsKKyAgICAgICAgfSwgMCk7
CisgICAgfTsKKworICAgIGxvZyh0ZXN0Lm5hbWUpOworICAgIHRlc3QoY2FsbElmRG9uZSk7Cit9
CisKK2Z1bmN0aW9uIGRvbmVUZXN0KCkgeworICAgIGxvZygiVEVTVCBDT01QTEVURUQiKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGRvVGVz
dCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIH0KKworICAgIGNsZWFuVXAoKTsKKyAgICBkb1Rl
c3RJZkxlZnQoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rlc3Qo
KSI+CisKKzxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2
PgorPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Cis8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>