<?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>46487</bug_id>
          
          <creation_ts>2010-09-24 10:59:14 -0700</creation_ts>
          <short_desc>Implement CSSStyleRule::setSelectorText()</short_desc>
          <delta_ts>2010-09-27 06:41:18 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>hyatt</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284543</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-24 10:59:14 -0700</bug_when>
    <thetext>CSSStyleRule::setSelectorText() is needed for the new upcoming Web Inspector CSS editing approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284586</commentid>
    <comment_count>1</comment_count>
      <attachid>68722</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-24 11:43:01 -0700</bug_when>
    <thetext>Created attachment 68722
[PATCH] Suggested solution

The only thing is, I&apos;m not sure about the correct way of notifying the document about the selector change, doc-&gt;styleSelectorChanged(DeferRecalcStyle);
Should it perhaps use RecalcStyleImmediately instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284593</commentid>
    <comment_count>2</comment_count>
      <attachid>68722</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-24 12:00:10 -0700</bug_when>
    <thetext>Comment on attachment 68722
[PATCH] Suggested solution

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

Can you add some tests of invalid selectors?

&gt; WebCore/css/CSSStyleRule.cpp:57
&gt; +void CSSStyleRule::setSelectorText(const String&amp; selectorText, ExceptionCode&amp; /*ec*/)

We should remove the ExcpectionCode parameter (and the raises in the IDL file) since the latest spec (http://dev.w3.org/csswg/cssom/#dom-cssstylerule-selectortext) doesn&apos;t have it ever raising.

&gt; WebCore/css/CSSStyleRule.cpp:60
&gt; +    CSSParser p;
&gt; +    CSSSelectorList selectorList;

There is no reason to declare these at the top of the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285377</commentid>
    <comment_count>3</comment_count>
      <attachid>68890</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-27 02:36:36 -0700</bug_when>
    <thetext>Created attachment 68890
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285385</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-27 03:10:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 68722 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68722&amp;action=review
&gt; 
&gt; Can you add some tests of invalid selectors?

Done.

&gt; &gt; WebCore/css/CSSStyleRule.cpp:57
&gt; &gt; +void CSSStyleRule::setSelectorText(const String&amp; selectorText, ExceptionCode&amp; /*ec*/)
&gt; 
&gt; We should remove the ExcpectionCode parameter (and the raises in the IDL file) since the latest spec (http://dev.w3.org/csswg/cssom/#dom-cssstylerule-selectortext) doesn&apos;t have it ever raising.

Good point. Fixed &quot;raises&quot; in CSSStyleRule.idl and CSSPageRule.idl

&gt; &gt; WebCore/css/CSSStyleRule.cpp:60
&gt; &gt; +    CSSParser p;
&gt; &gt; +    CSSSelectorList selectorList;
&gt; 
&gt; There is no reason to declare these at the top of the function.

Right, was moving the code around and forgot to follow on these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285427</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-27 06:41:18 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       LayoutTests/ChangeLog
        A       LayoutTests/fast/css/css-set-selector-text-expected.txt
        A       LayoutTests/fast/css/css-set-selector-text.html
        M       WebCore/ChangeLog
        M       WebCore/css/CSSPageRule.idl
        M       WebCore/css/CSSStyleRule.cpp
        M       WebCore/css/CSSStyleRule.h
        M       WebCore/css/CSSStyleRule.idl
Committed r68388</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68722</attachid>
            <date>2010-09-24 11:43:01 -0700</date>
            <delta_ts>2010-09-27 02:36:36 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>setselectortext.patch</filename>
            <type>text/plain</type>
            <size>11624</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGRiM2FlYmU3Mjk2NjJkMDM5ODczMGVkN2ExZjIwNDgwOWIzYWIwNjAKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDI0
IDIyOjIyOjI5IDIwMTAgKzA0MDAKCiAgICBzZXRTZWxlY3RvclRleHQtaW1wbGVtZW50ZWQKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZTU2MGRlZC4uOTU5NjkwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA5LTI0
ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IENTU1N0eWxlUnVs
ZTo6c2V0U2VsZWN0b3JUZXh0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ2NDg3CisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9y
LXRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2V0LXNl
bGVjdG9yLXRleHQuaHRtbDogQWRkZWQuCisKIDIwMTAtMDktMjIgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3ItdGV4
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU5N2Jh
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0
b3ItdGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4NiBAQAorVGhpcyB0ZXN0cyBzZXR0aW5n
IGFuZCByZS1zZXJpYWxpemF0aW9uIG9mIHNvbWUgQ1NTIHNlbGVjdG9ycy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJyonKSBp
cyAnKicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EnKSBpcyAnYScKK1BBU1Mgc2V0
VGhlblJlYWRTZWxlY3RvclRleHQoJyNhJykgaXMgJyNhJworUEFTUyBzZXRUaGVuUmVhZFNlbGVj
dG9yVGV4dCgnLmEnKSBpcyAnLmEnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6YWN0
aXZlJykgaXMgJzphY3RpdmUnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbYV0nKSBp
cyAnW2FdJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnW2E9ImIiXScpIGlzICdbYT0i
YiJdJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnW2F+PSJiIl0nKSBpcyAnW2F+PSJi
Il0nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbYXw9ImIiXScpIGlzICdbYXw9ImIi
XScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ1thXj0iYiJdJykgaXMgJ1thXj0iYiJd
JworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnW2EkPSJiIl0nKSBpcyAnW2EkPSJiIl0n
CitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbYSo9ImIiXScpIGlzICdbYSo9ImIiXScK
KworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnKnxhJykgaXMgJyp8YScKK1BBU1Mgc2V0
VGhlblJlYWRTZWxlY3RvclRleHQoJ258YScpIGlzICdufGEnCitQQVNTIHNldFRoZW5SZWFkU2Vs
ZWN0b3JUZXh0KCcqfConKSBpcyAnKnwqJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgn
bnwqJykgaXMgJ258KicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ1sqfGFdJykgaXMg
J1sqfGFdJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnW258YV0nKSBpcyAnW258YV0n
CisKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2E6YWN0aXZlJykgaXMgJ2E6YWN0aXZl
JworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYSBiJykgaXMgJ2EgYicKK1BBU1Mgc2V0
VGhlblJlYWRTZWxlY3RvclRleHQoJ2EgKyBiJykgaXMgJ2EgKyBiJworUEFTUyBzZXRUaGVuUmVh
ZFNlbGVjdG9yVGV4dCgnYSB+IGInKSBpcyAnYSB+IGInCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0
b3JUZXh0KCdhID4gYicpIGlzICdhID4gYicKKworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4
dCgnOmFjdGl2ZScpIGlzICc6YWN0aXZlJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgn
OmNoZWNrZWQnKSBpcyAnOmNoZWNrZWQnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6
ZGlzYWJsZWQnKSBpcyAnOmRpc2FibGVkJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgn
OmVtcHR5JykgaXMgJzplbXB0eScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzplbmFi
bGVkJykgaXMgJzplbmFibGVkJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOmZpcnN0
LWNoaWxkJykgaXMgJzpmaXJzdC1jaGlsZCcKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQo
JzpmaXJzdC1vZi10eXBlJykgaXMgJzpmaXJzdC1vZi10eXBlJworUEFTUyBzZXRUaGVuUmVhZFNl
bGVjdG9yVGV4dCgnOmZvY3VzJykgaXMgJzpmb2N1cycKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3Rv
clRleHQoJzpob3ZlcicpIGlzICc6aG92ZXInCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCc6aW5kZXRlcm1pbmF0ZScpIGlzICc6aW5kZXRlcm1pbmF0ZScKK1BBU1Mgc2V0VGhlblJlYWRT
ZWxlY3RvclRleHQoJzpsaW5rJykgaXMgJzpsaW5rJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9y
VGV4dCgnOnJvb3QnKSBpcyAnOnJvb3QnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6
dGFyZ2V0JykgaXMgJzp0YXJnZXQnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6dmlz
aXRlZCcpIGlzICc6dmlzaXRlZCcKKworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOmxh
bmcoYSknKSBpcyAnOmxhbmcoYSknCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6bm90
KGEpJykgaXMgJzpub3QoYSknCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzo6YWZ0
ZXInKSBpcyAnOjphZnRlcicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzo6YmVmb3Jl
JykgaXMgJzo6YmVmb3JlJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOjpmaXJzdC1s
ZXR0ZXInKSBpcyAnOjpmaXJzdC1sZXR0ZXInCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCc6OmZpcnN0LWxpbmUnKSBpcyAnOjpmaXJzdC1saW5lJworUEFTUyBzZXRUaGVuUmVhZFNlbGVj
dG9yVGV4dCgnOjpzZWxlY3Rpb24nKSBpcyAnOjpzZWxlY3Rpb24nCisKK1BBU1Mgc2V0VGhlblJl
YWRTZWxlY3RvclRleHQoJzotd2Via2l0LWFueS1saW5rJykgaXMgJzotd2Via2l0LWFueS1saW5r
JworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOi13ZWJraXQtYXV0b2ZpbGwnKSBpcyAn
Oi13ZWJraXQtYXV0b2ZpbGwnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6LXdlYmtp
dC1kcmFnJykgaXMgJzotd2Via2l0LWRyYWcnCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJzo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24nKSBpcyAnOjotd2Via2l0LWZpbGUtdXBs
b2FkLWJ1dHRvbicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzo6LXdlYmtpdC1zZWFy
Y2gtY2FuY2VsLWJ1dHRvbicpIGlzICc6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24nCitQ
QVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24n
KSBpcyAnOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uJworUEFTUyBzZXRUaGVuUmVhZFNlbGVj
dG9yVGV4dCgnOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbicpIGlzICc6Oi13ZWJraXQt
c2VhcmNoLXJlc3VsdHMtYnV0dG9uJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOjot
d2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24nKSBpcyAnOjotd2Via2l0LXNlYXJjaC1y
ZXN1bHRzLWRlY29yYXRpb24nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iJykgaXMgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInCisKK1BBU1Mgc2V0
VGhlblJlYWRTZWxlY3RvclRleHQoJ2lucHV0Om5vdChbdHlwZT0iZmlsZSJdKTpmb2N1cycpIGlz
ICdpbnB1dDpub3QoW3R5cGU9ImZpbGUiXSk6Zm9jdXMnCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxl
Y3RvclRleHQoJyo6YWN0aXZlJykgaXMgJzphY3RpdmUnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0
b3JUZXh0KCd8YScpIGlzICdhJworCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdpbnB1
dFt0eXBlPWZpbGVdOmZvY3VzJykgaXMgJ2lucHV0W3R5cGU9ImZpbGUiXTpmb2N1cycKKworUEFT
UyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYStiJykgaXMgJ2EgKyBiJworUEFTUyBzZXRUaGVu
UmVhZFNlbGVjdG9yVGV4dCgnYX5iJykgaXMgJ2EgfiBiJworUEFTUyBzZXRUaGVuUmVhZFNlbGVj
dG9yVGV4dCgnYT5iJykgaXMgJ2EgPiBiJworCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCc6YWZ0ZXInKSBpcyAnOjphZnRlcicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzpi
ZWZvcmUnKSBpcyAnOjpiZWZvcmUnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Zmly
c3QtbGV0dGVyJykgaXMgJzo6Zmlyc3QtbGV0dGVyJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9y
VGV4dCgnOmZpcnN0LWxpbmUnKSBpcyAnOjpmaXJzdC1saW5lJworCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi40MmUyNTBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAgLTAsMCArMSwxNDUgQEAKKzxodG1sPgor
PGhlYWQgaWQ9ImhlYWQiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyBzZXR0aW5nIGFuZCByZS1zZXJpYWxpemF0aW9uIG9mIHNvbWUgQ1NT
IHNlbGVjdG9ycy4iKTsKKworZnVuY3Rpb24gc2V0VGhlblJlYWRTZWxlY3RvclRleHQoc2VsZWN0
b3IpCit7CisgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
dHlsZSIpOworICAgIHZhciBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWQiKTsK
KyAgICBpZiAoc3R5bGVFbGVtZW50KQorICAgICAgICBoZWFkLnJlbW92ZUNoaWxkKHN0eWxlRWxl
bWVudCk7CisKKyAgICBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHls
ZSIpOworICAgIHN0eWxlRWxlbWVudC5pZCA9ICJzdHlsZSI7CisgICAgdmFyIGhlYWQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZCIpOworICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVF
bGVtZW50KTsKKworICAgIC8vIEZpcnN0LCBjcmVhdGUgYSBydWxlIHdpdGggYSBib2d1cyBzZWxl
Y3Rvci4KKyAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIl9mb28geyB9IikpOworICAgIC8vIE5vdywgc2V0IHRoZSBkZXNpcmVkIHNlbGVjdG9yIHRl
eHQuCisgICAgc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLnNlbGVjdG9yVGV4dCA9IHNl
bGVjdG9yOworICAgIHJldHVybiBzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uc2VsZWN0
b3JUZXh0OworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoc2VsZWN0b3IpCit7
CisgICAgc2hvdWxkQmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCciICsgc2VsZWN0b3IgKyAi
JykiLCAiJyIgKyBzZWxlY3RvciArICInIik7Cit9CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgn
KicpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCdhJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAo
JyNhJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJy5hJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoJzphY3RpdmUnKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnW2FdJyk7Cit0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoJ1thPSJiIl0nKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnW2F+PSJiIl0n
KTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnW2F8PSJiIl0nKTsKK3Rlc3RTZWxlY3RvclJvdW5k
VHJpcCgnW2FePSJiIl0nKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnW2EkPSJiIl0nKTsKK3Rl
c3RTZWxlY3RvclJvdW5kVHJpcCgnW2EqPSJiIl0nKTsKKworZGVidWcoJycpOworCit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoJyp8YScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCdufGEnKTsKK3Rl
c3RTZWxlY3RvclJvdW5kVHJpcCgnKnwqJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJ258Kicp
OwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCdbKnxhXScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlw
KCdbbnxhXScpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnYTphY3Rp
dmUnKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnYSBiJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoJ2EgKyBiJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJ2EgfiBiJyk7Cit0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoJ2EgPiBiJyk7CisKK2RlYnVnKCcnKTsKKwordGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6YWN0aXZlIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpjaGVja2VkIik7Cit0ZXN0
U2VsZWN0b3JSb3VuZFRyaXAoIjpkaXNhYmxlZCIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6
ZW1wdHkiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmVuYWJsZWQiKTsKK3Rlc3RTZWxlY3Rv
clJvdW5kVHJpcCgiOmZpcnN0LWNoaWxkIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpmaXJz
dC1vZi10eXBlIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpmb2N1cyIpOwordGVzdFNlbGVj
dG9yUm91bmRUcmlwKCI6aG92ZXIiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmluZGV0ZXJt
aW5hdGUiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxpbmsiKTsKK3Rlc3RTZWxlY3RvclJv
dW5kVHJpcCgiOnJvb3QiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOnRhcmdldCIpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCI6dmlzaXRlZCIpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxl
Y3RvclJvdW5kVHJpcCgiOmxhbmcoYSkiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOm5vdChh
KSIpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOjphZnRlciIpOwor
dGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6OmJlZm9yZSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlw
KCI6OmZpcnN0LWxldHRlciIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6OmZpcnN0LWxpbmUi
KTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOjpzZWxlY3Rpb24iKTsKKworZGVidWcoJycpOwor
Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjotd2Via2l0LWFueS1saW5rIik7Cit0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoIjotd2Via2l0LWF1dG9maWxsIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAo
Ijotd2Via2l0LWRyYWciKTsKKworZGVidWcoJycpOworCit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAo
Ijo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgi
Ojotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAo
Ijo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6
Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAo
Ijo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIik7Cit0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoIjo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsKKworZGVidWcoJycpOworCit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoJ2lucHV0Om5vdChbdHlwZT0iZmlsZSJdKTpmb2N1cycpOworCitkZWJ1
ZygnJyk7CisKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnKjphY3RpdmUnKSIs
ICInOmFjdGl2ZSciKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnfGEnKSIs
ICInYSciKTsKKworZGVidWcoJycpOworCitzaG91bGRCZSgic2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJ2lucHV0W3R5cGU9ZmlsZV06Zm9jdXMnKSIsICInaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9j
dXMnIik7CisKK2RlYnVnKCcnKTsKKworc2hvdWxkQmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCdhK2InKSIsICInYSArIGInIik7CitzaG91bGRCZSgic2V0VGhlblJlYWRTZWxlY3RvclRleHQo
J2F+YicpIiwgIidhIH4gYiciKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgn
YT5iJykiLCAiJ2EgPiBiJyIpOworCitkZWJ1ZygnJyk7CisKK3Nob3VsZEJlKCJzZXRUaGVuUmVh
ZFNlbGVjdG9yVGV4dCgnOmFmdGVyJykiLCAiJzo6YWZ0ZXInIik7CitzaG91bGRCZSgic2V0VGhl
blJlYWRTZWxlY3RvclRleHQoJzpiZWZvcmUnKSIsICInOjpiZWZvcmUnIik7CitzaG91bGRCZSgi
c2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzpmaXJzdC1sZXR0ZXInKSIsICInOjpmaXJzdC1sZXR0
ZXInIik7CitzaG91bGRCZSgic2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzpmaXJzdC1saW5lJyki
LCAiJzo6Zmlyc3QtbGluZSciKTsKKworZGVidWcoJycpOworCitzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFjZmZiNi4uYWQ5ODM5MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMC0wOS0yNCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBDU1NTdHlsZVJ1bGU6OnNldFNlbGVjdG9yVGV4dCgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjQ4NworCisgICAgICAgIFRl
c3Q6IGZhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC5odG1sCisKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6c2V0U2Vs
ZWN0b3JUZXh0KToKKwogMjAxMC0wOS0yMiAgTHVrZSBNYWNwaGVyc29uICA8bWFjcGhlcnNvbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAgYi9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuY3BwCmluZGV4IDEwMzZlOGYuLjEzZThjZGIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNw
cApAQCAtMjMsNyArMjMsMTEgQEAKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKIAogI2luY2x1
ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgi
CiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNTAsOSArNTQsMzQgQEAgU3RyaW5nIENTU1N0eWxlUnVsZTo6c2Vs
ZWN0b3JUZXh0KCkgY29uc3QKICAgICByZXR1cm4gc3RyOwogfQogCi12b2lkIENTU1N0eWxlUnVs
ZTo6c2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgLypzZWxlY3RvclRleHQqLywgRXhjZXB0
aW9uQ29kZSYgLyplYyovKQordm9pZCBDU1NTdHlsZVJ1bGU6OnNldFNlbGVjdG9yVGV4dChjb25z
dCBTdHJpbmcmIHNlbGVjdG9yVGV4dCwgRXhjZXB0aW9uQ29kZSYgLyplYyovKQogewotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQhCisgICAgQ1NTUGFyc2VyIHA7CisgICAgQ1NTU2VsZWN0b3JMaXN0
IHNlbGVjdG9yTGlzdDsKKyAgICBEb2N1bWVudCogZG9jID0gMDsKKyAgICBTdHlsZVNoZWV0KiBv
d25lclN0eWxlU2hlZXQgPSBtX3N0eWxlLT5zdHlsZXNoZWV0KCk7CisgICAgaWYgKG93bmVyU3R5
bGVTaGVldCkgeworICAgICAgICBpZiAob3duZXJTdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQo
KSkKKyAgICAgICAgICAgIGRvYyA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihvd25lclN0
eWxlU2hlZXQpLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvYykKKyAgICAgICAgICAgIGRv
YyA9IG93bmVyU3R5bGVTaGVldC0+b3duZXJOb2RlKCkgPyBvd25lclN0eWxlU2hlZXQtPm93bmVy
Tm9kZSgpLT5kb2N1bWVudCgpIDogMDsKKyAgICB9CisgICAgaWYgKCFkb2MpCisgICAgICAgIGRv
YyA9IG1fc3R5bGUtPm5vZGUoKSA/IG1fc3R5bGUtPm5vZGUoKS0+ZG9jdW1lbnQoKSA6IDA7CisK
KyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuOworCisgICAgcC5wYXJzZVNlbGVjdG9yKHNl
bGVjdG9yVGV4dCwgZG9jLCBzZWxlY3Rvckxpc3QpOworICAgIGlmICghc2VsZWN0b3JMaXN0LmZp
cnN0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBvbGRTZWxlY3RvclRleHQgPSB0
aGlzLT5zZWxlY3RvclRleHQoKTsKKyAgICBtX3NlbGVjdG9yTGlzdC5hZG9wdChzZWxlY3Rvckxp
c3QpOworICAgIGlmICh0aGlzLT5zZWxlY3RvclRleHQoKSA9PSBvbGRTZWxlY3RvclRleHQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGRvYy0+c3R5bGVTZWxlY3RvckNoYW5nZWQoRGVmZXJSZWNh
bGNTdHlsZSk7CiB9CiAKIFN0cmluZyBDU1NTdHlsZVJ1bGU6OmNzc1RleHQoKSBjb25zdAo=
</data>
<flag name="review"
          id="58280"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68890</attachid>
            <date>2010-09-27 02:36:36 -0700</date>
            <delta_ts>2010-09-27 06:04:28 -0700</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>selector.patch</filename>
            <type>text/plain</type>
            <size>14219</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkODdkZTlhLi4zY2FhNTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDkt
MjcgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQ1NTU3R5bGVS
dWxlOjpzZXRTZWxlY3RvclRleHQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDY0ODcKKworICAgICAgICAqIGZhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0
b3ItdGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Nzcy1zZXQt
c2VsZWN0b3ItdGV4dC5odG1sOiBBZGRlZC4KKwogMjAxMC0wOS0yNyAgSmFtZXMgS296aWFuc2tp
ICA8a296QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxYzU2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3It
dGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5NiBAQAorVGhpcyB0ZXN0cyBzZXR0aW5nIGFu
ZCByZS1zZXJpYWxpemF0aW9uIG9mIHNvbWUgQ1NTIHNlbGVjdG9ycy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJycpIGlzICdf
Zm9vJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnMTIzJykgaXMgJ19mb28nCitQQVNT
IHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCctJykgaXMgJ19mb28nCitQQVNTIHNldFRoZW5SZWFk
U2VsZWN0b3JUZXh0KCckJykgaXMgJ19mb28nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCc6JykgaXMgJ19mb28nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCcuJykgaXMgJ19m
b28nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCcjJykgaXMgJ19mb28nCitQQVNTIHNl
dFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbXScpIGlzICdfZm9vJworUEFTUyBzZXRUaGVuUmVhZFNl
bGVjdG9yVGV4dCgnKCknKSBpcyAnX2ZvbycKKworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4
dCgnKicpIGlzICcqJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYScpIGlzICdhJwor
UEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnI2EnKSBpcyAnI2EnCitQQVNTIHNldFRoZW5S
ZWFkU2VsZWN0b3JUZXh0KCcuYScpIGlzICcuYScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJzphY3RpdmUnKSBpcyAnOmFjdGl2ZScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQo
J1thXScpIGlzICdbYV0nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbYT0iYiJdJykg
aXMgJ1thPSJiIl0nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbYX49ImIiXScpIGlz
ICdbYX49ImIiXScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ1thfD0iYiJdJykgaXMg
J1thfD0iYiJdJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnW2FePSJiIl0nKSBpcyAn
W2FePSJiIl0nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbYSQ9ImIiXScpIGlzICdb
YSQ9ImIiXScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ1thKj0iYiJdJykgaXMgJ1th
Kj0iYiJdJworCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCcqfGEnKSBpcyAnKnxhJwor
UEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnbnxhJykgaXMgJ258YScKK1BBU1Mgc2V0VGhl
blJlYWRTZWxlY3RvclRleHQoJyp8KicpIGlzICcqfConCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0
b3JUZXh0KCdufConKSBpcyAnbnwqJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnWyp8
YV0nKSBpcyAnWyp8YV0nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdbbnxhXScpIGlz
ICdbbnxhXScKKworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYTphY3RpdmUnKSBpcyAn
YTphY3RpdmUnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhIGInKSBpcyAnYSBiJwor
UEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYSArIGInKSBpcyAnYSArIGInCitQQVNTIHNl
dFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhIH4gYicpIGlzICdhIH4gYicKK1BBU1Mgc2V0VGhlblJl
YWRTZWxlY3RvclRleHQoJ2EgPiBiJykgaXMgJ2EgPiBiJworCitQQVNTIHNldFRoZW5SZWFkU2Vs
ZWN0b3JUZXh0KCc6YWN0aXZlJykgaXMgJzphY3RpdmUnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0
b3JUZXh0KCc6Y2hlY2tlZCcpIGlzICc6Y2hlY2tlZCcKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3Rv
clRleHQoJzpkaXNhYmxlZCcpIGlzICc6ZGlzYWJsZWQnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0
b3JUZXh0KCc6ZW1wdHknKSBpcyAnOmVtcHR5JworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4
dCgnOmVuYWJsZWQnKSBpcyAnOmVuYWJsZWQnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCc6Zmlyc3QtY2hpbGQnKSBpcyAnOmZpcnN0LWNoaWxkJworUEFTUyBzZXRUaGVuUmVhZFNlbGVj
dG9yVGV4dCgnOmZpcnN0LW9mLXR5cGUnKSBpcyAnOmZpcnN0LW9mLXR5cGUnCitQQVNTIHNldFRo
ZW5SZWFkU2VsZWN0b3JUZXh0KCc6Zm9jdXMnKSBpcyAnOmZvY3VzJworUEFTUyBzZXRUaGVuUmVh
ZFNlbGVjdG9yVGV4dCgnOmhvdmVyJykgaXMgJzpob3ZlcicKK1BBU1Mgc2V0VGhlblJlYWRTZWxl
Y3RvclRleHQoJzppbmRldGVybWluYXRlJykgaXMgJzppbmRldGVybWluYXRlJworUEFTUyBzZXRU
aGVuUmVhZFNlbGVjdG9yVGV4dCgnOmxpbmsnKSBpcyAnOmxpbmsnCitQQVNTIHNldFRoZW5SZWFk
U2VsZWN0b3JUZXh0KCc6cm9vdCcpIGlzICc6cm9vdCcKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3Rv
clRleHQoJzp0YXJnZXQnKSBpcyAnOnRhcmdldCcKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJzp2aXNpdGVkJykgaXMgJzp2aXNpdGVkJworCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JU
ZXh0KCc6bGFuZyhhKScpIGlzICc6bGFuZyhhKScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJzpub3QoYSknKSBpcyAnOm5vdChhKScKKworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4
dCgnOjphZnRlcicpIGlzICc6OmFmdGVyJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgn
OjpiZWZvcmUnKSBpcyAnOjpiZWZvcmUnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6
OmZpcnN0LWxldHRlcicpIGlzICc6OmZpcnN0LWxldHRlcicKK1BBU1Mgc2V0VGhlblJlYWRTZWxl
Y3RvclRleHQoJzo6Zmlyc3QtbGluZScpIGlzICc6OmZpcnN0LWxpbmUnCitQQVNTIHNldFRoZW5S
ZWFkU2VsZWN0b3JUZXh0KCc6OnNlbGVjdGlvbicpIGlzICc6OnNlbGVjdGlvbicKKworUEFTUyBz
ZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOi13ZWJraXQtYW55LWxpbmsnKSBpcyAnOi13ZWJraXQt
YW55LWxpbmsnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6LXdlYmtpdC1hdXRvZmls
bCcpIGlzICc6LXdlYmtpdC1hdXRvZmlsbCcKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQo
Jzotd2Via2l0LWRyYWcnKSBpcyAnOi13ZWJraXQtZHJhZycKKworUEFTUyBzZXRUaGVuUmVhZFNl
bGVjdG9yVGV4dCgnOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbicpIGlzICc6Oi13ZWJraXQt
ZmlsZS11cGxvYWQtYnV0dG9uJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOjotd2Vi
a2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uJykgaXMgJzo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1
dHRvbicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzo6LXdlYmtpdC1zZWFyY2gtZGVj
b3JhdGlvbicpIGlzICc6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24nCitQQVNTIHNldFRoZW5S
ZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uJykgaXMgJzo6
LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JU
ZXh0KCc6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbicpIGlzICc6Oi13ZWJraXQt
c2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQo
Jzo6LXdlYmtpdC1zbGlkZXItdGh1bWInKSBpcyAnOjotd2Via2l0LXNsaWRlci10aHVtYicKKwor
UEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0pOmZv
Y3VzJykgaXMgJ2lucHV0Om5vdChbdHlwZT0iZmlsZSJdKTpmb2N1cycKKworUEFTUyBzZXRUaGVu
UmVhZFNlbGVjdG9yVGV4dCgnKjphY3RpdmUnKSBpcyAnOmFjdGl2ZScKK1BBU1Mgc2V0VGhlblJl
YWRTZWxlY3RvclRleHQoJ3xhJykgaXMgJ2EnCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJ2lucHV0W3R5cGU9ZmlsZV06Zm9jdXMnKSBpcyAnaW5wdXRbdHlwZT0iZmlsZSJdOmZvY3Vz
JworCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhK2InKSBpcyAnYSArIGInCitQQVNT
IHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhfmInKSBpcyAnYSB+IGInCitQQVNTIHNldFRoZW5S
ZWFkU2VsZWN0b3JUZXh0KCdhPmInKSBpcyAnYSA+IGInCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxl
Y3RvclRleHQoJzphZnRlcicpIGlzICc6OmFmdGVyJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9y
VGV4dCgnOmJlZm9yZScpIGlzICc6OmJlZm9yZScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJzpmaXJzdC1sZXR0ZXInKSBpcyAnOjpmaXJzdC1sZXR0ZXInCitQQVNTIHNldFRoZW5SZWFk
U2VsZWN0b3JUZXh0KCc6Zmlyc3QtbGluZScpIGlzICc6OmZpcnN0LWxpbmUnCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmM5NTRmODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbApAQCAtMCwwICsxLDE1OSBAQAor
PGh0bWw+Cis8aGVhZCBpZD0iaGVhZCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNldHRpbmcgYW5kIHJlLXNlcmlhbGl6YXRpb24gb2Yg
c29tZSBDU1Mgc2VsZWN0b3JzLiIpOworCit2YXIgYm9ndXNTZWxlY3RvciA9ICJfZm9vIjsKKwor
ZnVuY3Rpb24gc2V0VGhlblJlYWRTZWxlY3RvclRleHQoc2VsZWN0b3IpCit7CisgICAgdmFyIHN0
eWxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZSIpOworICAgIHZhciBo
ZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWQiKTsKKyAgICBpZiAoc3R5bGVFbGVt
ZW50KQorICAgICAgICBoZWFkLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7CisKKyAgICBzdHls
ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworICAgIHN0eWxlRWxl
bWVudC5pZCA9ICJzdHlsZSI7CisgICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaGVhZCIpOworICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsKKworICAgIC8v
IEZpcnN0LCBjcmVhdGUgYSBydWxlIHdpdGggYSBib2d1cyBzZWxlY3Rvci4KKyAgICBzdHlsZUVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYm9ndXNTZWxlY3RvciAr
ICIgeyB9IikpOworICAgIC8vIE5vdywgc2V0IHRoZSBkZXNpcmVkIHNlbGVjdG9yIHRleHQuCisg
ICAgc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLnNlbGVjdG9yVGV4dCA9IHNlbGVjdG9y
OworICAgIHJldHVybiBzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uc2VsZWN0b3JUZXh0
OworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoc2VsZWN0b3IsIGV4cGVjdEZh
aWx1cmUpCit7CisgICAgc2hvdWxkQmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCciICsgc2Vs
ZWN0b3IgKyAiJykiLCAiJyIgKyAoZXhwZWN0RmFpbHVyZSA/IGJvZ3VzU2VsZWN0b3IgOiBzZWxl
Y3RvcikgKyAiJyIpOworfQorCit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJycsIHRydWUpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCcxMjMnLCB0cnVlKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgn
LScsIHRydWUpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCckJywgdHJ1ZSk7Cit0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoJzonLCB0cnVlKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnLicsIHRydWUp
OwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCcjJywgdHJ1ZSk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoJ1tdJywgdHJ1ZSk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJygpJywgdHJ1ZSk7CisKK2Rl
YnVnKCcnKTsKKwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCcqJyk7Cit0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoJ2EnKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnI2EnKTsKK3Rlc3RTZWxlY3RvclJv
dW5kVHJpcCgnLmEnKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmFjdGl2ZScpOwordGVzdFNl
bGVjdG9yUm91bmRUcmlwKCdbYV0nKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnW2E9ImIiXScp
OwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCdbYX49ImIiXScpOwordGVzdFNlbGVjdG9yUm91bmRU
cmlwKCdbYXw9ImIiXScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCdbYV49ImIiXScpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCdbYSQ9ImIiXScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCdb
YSo9ImIiXScpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnKnxhJyk7
Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJ258YScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCcq
fConKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnbnwqJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoJ1sqfGFdJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJ1tufGFdJyk7CisKK2RlYnVnKCcn
KTsKKwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCdhOmFjdGl2ZScpOwordGVzdFNlbGVjdG9yUm91
bmRUcmlwKCdhIGInKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnYSArIGInKTsKK3Rlc3RTZWxl
Y3RvclJvdW5kVHJpcCgnYSB+IGInKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnYSA+IGInKTsK
KworZGVidWcoJycpOworCit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjphY3RpdmUiKTsKK3Rlc3RT
ZWxlY3RvclJvdW5kVHJpcCgiOmNoZWNrZWQiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmRp
c2FibGVkIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjplbXB0eSIpOwordGVzdFNlbGVjdG9y
Um91bmRUcmlwKCI6ZW5hYmxlZCIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6Zmlyc3QtY2hp
bGQiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmZpcnN0LW9mLXR5cGUiKTsKK3Rlc3RTZWxl
Y3RvclJvdW5kVHJpcCgiOmZvY3VzIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpob3ZlciIp
OwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6aW5kZXRlcm1pbmF0ZSIpOwordGVzdFNlbGVjdG9y
Um91bmRUcmlwKCI6bGluayIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6cm9vdCIpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCI6dGFyZ2V0Iik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjp2
aXNpdGVkIik7CisKK2RlYnVnKCcnKTsKKwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bGFuZyhh
KSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bm90KGEpIik7CisKK2RlYnVnKCcnKTsKKwor
dGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6OmFmdGVyIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAo
Ijo6YmVmb3JlIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjo6Zmlyc3QtbGV0dGVyIik7Cit0
ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjo6Zmlyc3QtbGluZSIpOwordGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6OnNlbGVjdGlvbiIpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJp
cCgiOi13ZWJraXQtYW55LWxpbmsiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOi13ZWJraXQt
YXV0b2ZpbGwiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOi13ZWJraXQtZHJhZyIpOworCitk
ZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOjotd2Via2l0LWZpbGUtdXBsb2Fk
LWJ1dHRvbiIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6Oi13ZWJraXQtc2VhcmNoLWNhbmNl
bC1idXR0b24iKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOjotd2Via2l0LXNlYXJjaC1kZWNv
cmF0aW9uIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0
cy1idXR0b24iKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOjotd2Via2l0LXNlYXJjaC1yZXN1
bHRzLWRlY29yYXRpb24iKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOjotd2Via2l0LXNsaWRl
ci10aHVtYiIpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnaW5wdXQ6
bm90KFt0eXBlPSJmaWxlIl0pOmZvY3VzJyk7CisKK2RlYnVnKCcnKTsKKworc2hvdWxkQmUoInNl
dFRoZW5SZWFkU2VsZWN0b3JUZXh0KCcqOmFjdGl2ZScpIiwgIic6YWN0aXZlJyIpOworc2hvdWxk
QmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCd8YScpIiwgIidhJyIpOworCitkZWJ1ZygnJyk7
CisKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnaW5wdXRbdHlwZT1maWxlXTpm
b2N1cycpIiwgIidpbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyciKTsKKworZGVidWcoJycpOwor
CitzaG91bGRCZSgic2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2ErYicpIiwgIidhICsgYiciKTsK
K3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYX5iJykiLCAiJ2EgfiBiJyIpOwor
c2hvdWxkQmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhPmInKSIsICInYSA+IGInIik7CisK
K2RlYnVnKCcnKTsKKworc2hvdWxkQmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6YWZ0ZXIn
KSIsICInOjphZnRlciciKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOmJl
Zm9yZScpIiwgIic6OmJlZm9yZSciKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4
dCgnOmZpcnN0LWxldHRlcicpIiwgIic6OmZpcnN0LWxldHRlciciKTsKK3Nob3VsZEJlKCJzZXRU
aGVuUmVhZFNlbGVjdG9yVGV4dCgnOmZpcnN0LWxpbmUnKSIsICInOjpmaXJzdC1saW5lJyIpOwor
CitkZWJ1ZygnJyk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAyNTQ5ZjA1Li5iNmJiZmExIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA5
LTI3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IENTU1N0eWxl
UnVsZTo6c2V0U2VsZWN0b3JUZXh0KCkKKworICAgICAgICBUaGlzIGludm9sdmVzIHJlbW92aW5n
IHRoZSAic2VsZWN0b3JUZXh0IiAic2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pIiBjbGF1c2Ug
ZnJvbSB0aGUgSURMIGZpbGVzLAorICAgICAgICBzaW5jZSB0aGUgc2V0dGVyIG5vIGxvbmdlciBy
YWlzZXMgdGhlIGV4Y2VwdGlvbiwgYXMgcGVyIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29t
LyNkb20tY3Nzc3R5bGVydWxlLXNlbGVjdG9ydGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0ODcKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9j
c3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbAorCisgICAgICAgICogY3NzL0NTU1BhZ2VSdWxlLmlk
bDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVSdWxl
Lmg6CisgICAgICAgICogY3NzL0NTU1N0eWxlUnVsZS5pZGw6CisKIDIwMTAtMDktMjcgIEd5dXlv
dW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5pZGwg
Yi9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5pZGwKaW5kZXggNmI1MGI2ZC4uOTg5ZmQ4ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1BhZ2VSdWxlLmlkbApAQCAtMjMsOCArMjMsNyBAQCBtb2R1bGUgY3NzIHsKICAgICAvLyBJbnRy
b2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVyZmFjZSBDU1NQYWdlUnVsZSA6IENTU1J1
bGUgewogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1O
dWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9yVGV4dAotICAg
ICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RvclRleHQ7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCmlu
ZGV4IDEwMzZlOGYuLmZhZjYwYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVs
ZS5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcApAQCAtMjMsNyArMjMsMTEg
QEAKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKIAogI2luY2x1ZGUgIkNTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTU2Vs
ZWN0b3IuaCIKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTAsOSArNTQsMzQgQEAgU3RyaW5nIENTU1N0eWxlUnVsZTo6c2VsZWN0b3JUZXh0KCkgY29uc3QK
ICAgICByZXR1cm4gc3RyOwogfQogCi12b2lkIENTU1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JUZXh0
KGNvbnN0IFN0cmluZyYgLypzZWxlY3RvclRleHQqLywgRXhjZXB0aW9uQ29kZSYgLyplYyovKQor
dm9pZCBDU1NTdHlsZVJ1bGU6OnNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHNlbGVjdG9y
VGV4dCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IQorICAgIERvY3VtZW50KiBkb2MgPSAw
OworICAgIFN0eWxlU2hlZXQqIG93bmVyU3R5bGVTaGVldCA9IG1fc3R5bGUtPnN0eWxlc2hlZXQo
KTsKKyAgICBpZiAob3duZXJTdHlsZVNoZWV0KSB7CisgICAgICAgIGlmIChvd25lclN0eWxlU2hl
ZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgICAgICAgICAgZG9jID0gc3RhdGljX2Nhc3Q8Q1NT
U3R5bGVTaGVldCo+KG93bmVyU3R5bGVTaGVldCktPmRvY3VtZW50KCk7CisgICAgICAgIGlmICgh
ZG9jKQorICAgICAgICAgICAgZG9jID0gb3duZXJTdHlsZVNoZWV0LT5vd25lck5vZGUoKSA/IG93
bmVyU3R5bGVTaGVldC0+b3duZXJOb2RlKCktPmRvY3VtZW50KCkgOiAwOworICAgIH0KKyAgICBp
ZiAoIWRvYykKKyAgICAgICAgZG9jID0gbV9zdHlsZS0+bm9kZSgpID8gbV9zdHlsZS0+bm9kZSgp
LT5kb2N1bWVudCgpIDogMDsKKworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm47CisKKyAg
ICBDU1NQYXJzZXIgcDsKKyAgICBDU1NTZWxlY3Rvckxpc3Qgc2VsZWN0b3JMaXN0OworICAgIHAu
cGFyc2VTZWxlY3RvcihzZWxlY3RvclRleHQsIGRvYywgc2VsZWN0b3JMaXN0KTsKKyAgICBpZiAo
IXNlbGVjdG9yTGlzdC5maXJzdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgb2xk
U2VsZWN0b3JUZXh0ID0gdGhpcy0+c2VsZWN0b3JUZXh0KCk7CisgICAgbV9zZWxlY3Rvckxpc3Qu
YWRvcHQoc2VsZWN0b3JMaXN0KTsKKyAgICBpZiAodGhpcy0+c2VsZWN0b3JUZXh0KCkgPT0gb2xk
U2VsZWN0b3JUZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBkb2MtPnN0eWxlU2VsZWN0b3JD
aGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUpOwogfQogCiBTdHJpbmcgQ1NTU3R5bGVSdWxlOjpjc3NU
ZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oIGIvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgKaW5kZXggZDc5N2M3My4uMTcxYjYzNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVS
dWxlLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkNTU1N0eWxlUnVs
ZSgpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgc2VsZWN0b3JUZXh0KCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRTZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgc2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZS5nZXQoKTsgfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaWRsIGIvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVSdWxlLmlkbAppbmRleCA4NjJhY2Q4Li40YWJmYmZjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVJ1bGUuaWRsCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5pZGwK
QEAgLTIzLDggKzIzLDcgQEAgbW9kdWxlIGNzcyB7CiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00g
TGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgQ1NTU3R5bGVSdWxlIDogQ1NTUnVsZSB7CiAKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JUZXh0Ci0gICAgICAgICAgICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHNlbGVjdG9yVGV4dDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NT
U3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKIAo=
</data>
<flag name="review"
          id="58477"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>