<?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>19911</bug_id>
          
          <creation_ts>2008-07-06 04:28:05 -0700</creation_ts>
          <short_desc>:read-only and :read-write pseudoclasses support</short_desc>
          <delta_ts>2008-07-07 16:35:29 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/web-forms-2/#relation</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>19264</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Michelangelo De Simone">michelangelo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>85249</commentid>
    <comment_count>0</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2008-07-06 04:28:05 -0700</bug_when>
    <thetext>WebKit should be able to deal with :read-only and :read-write CSS pseudoclasses which apply to editable form controls (text/password inputs and textareas) when &quot;readonly&quot; attribute is specified.

These pseudoclasses do not apply input types such radio, checkbox and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85250</commentid>
    <comment_count>1</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2008-07-06 04:30:06 -0700</bug_when>
    <thetext>A patch is going to be submitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85257</commentid>
    <comment_count>2</comment_count>
      <attachid>22107</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2008-07-06 06:02:40 -0700</bug_when>
    <thetext>Created attachment 22107
Support for :read-only and :read-write pseudoclasses

The attached patch includes Opera&apos;s test suite for :read-only and :read-write.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85352</commentid>
    <comment_count>3</comment_count>
      <attachid>22107</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2008-07-07 10:02:34 -0700</bug_when>
    <thetext>Comment on attachment 22107
Support for :read-only and :read-write pseudoclasses

Looks pretty good- I have just a few comments:

atomic strings in CSSSelector.cpp should be readOnly and readWrite

you shouldn&apos;t need the check  &amp;&amp; !e-&gt;isInputTypeHidden()

you&apos;ve left out checks for search fields and isindex - instead of using the specific checks for the type, you can use isTextField().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85370</commentid>
    <comment_count>4</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2008-07-07 11:43:08 -0700</bug_when>
    <thetext>Also, we may want to add the -webkit prefix for these pseudoclasses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85385</commentid>
    <comment_count>5</comment_count>
      <attachid>22140</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2008-07-07 14:09:27 -0700</bug_when>
    <thetext>Created attachment 22140
Support for :read-only and :read-write pseudoclasses (updated)

Patch updated according to Adele&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85387</commentid>
    <comment_count>6</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2008-07-07 14:34:54 -0700</bug_when>
    <thetext>Committed revision 35042.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85388</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-07 14:40:27 -0700</bug_when>
    <thetext>This patch does not deal with style sharing:

dhyatt: canShareStyleWithElement
[4:38pm] dhyatt: if (isControl &amp;&amp; (s-&gt;isEnabled() != m_element-&gt;isEnabled()) ||
[4:38pm] dhyatt:                             (s-&gt;isIndeterminate() != m_element-&gt;isIndeterminate()) ||
[4:38pm] dhyatt:                             (s-&gt;isChecked() != m_element-&gt;isChecked()))
[4:38pm] dhyatt:                 return false;
[4:38pm] dhyatt: has this check
[4:38pm] dhyatt: for enabled/indeterminate/checked
[4:38pm] dhyatt: you need to add readonlycontrol or whatever to this
[4:38pm] dhyatt: make a test with two adjacent textareas
[4:38pm] dhyatt: sibling textareas
[4:38pm] dhyatt: and make the first one read-only and the second one not be read-only
[4:38pm] dhyatt: and then write a pseudo rule
[4:39pm] dhyatt: the second one will incorrectly match
[4:39pm] dhyatt: because it will share style with the first</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85389</commentid>
    <comment_count>8</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2008-07-07 14:41:06 -0700</bug_when>
    <thetext>re-opening.  We need to address style-sharing with a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85393</commentid>
    <comment_count>9</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2008-07-07 15:41:16 -0700</bug_when>
    <thetext>Style sharing already checks for readonlyAttr. No issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22107</attachid>
            <date>2008-07-06 06:02:40 -0700</date>
            <delta_ts>2008-07-07 14:09:27 -0700</delta_ts>
            <desc>Support for :read-only and :read-write pseudoclasses</desc>
            <filename>pseudoro.patch</filename>
            <type>text/plain</type>
            <size>16886</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjZlMjRiLi4wMTYyZmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMDct
MDYgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtLmRlc0BtYWMuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIDpyZWFk
LW9ubHkgYW5kIDpyZWFkLXdyaXRlIHBzZXVkb2NsYXNzZXMsIGltcG9ydGVkIGZyb20KKyAgICAg
ICAgT3BlcmEuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVy
YS0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9yZWFkb25seS1w
c2V1ZG9jbGFzcy1vcGVyYS0wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcmVh
ZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9w
ZXJhLTAwMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9j
bGFzcy1vcGVyYS0wMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9y
ZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDA1LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDA1Lmh0bWw6
IEFkZGVkLgorCiAyMDA4LTA3LTA0ICBEYXZpZCBELiBLaWx6ZXIgIDxkZGtpbHplckB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEJ1ZyAxNTI5MDogUkVHUkVTU0lPTiAocjE0MTg0LXIxNDIxNik6IER1
cGxpY2F0ZSBET0NUWVBFIGRlZmluaXRpb25zIHdoZW4gc2F2aW5nIGZpbGVzIGFzIHdlYmFyY2hp
dmVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFz
cy1vcGVyYS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHkt
cHNldWRvY2xhc3Mtb3BlcmEtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41MzhiZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAxLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK1RoaXMgdGVzdCBjaGVja3MgZm9yIDpyZWFkLW9ubHkgcmlnaHQgYmVoYXZpb3Ig
b24gY2hlY2tib3hlcy4gRmFpbHMgaWYgRkFJTFVSRSBpcyBzaG93biBiZWxvdy4KKworU1VDQ0VT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mt
b3BlcmEtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFz
cy1vcGVyYS0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNGY2
MTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNl
dWRvY2xhc3Mtb3BlcmEtMDAxLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT4mbHQ7aW5wdXQgdHlwZT0iY2hlY2tib3giJmd0OyBhbmQgInJlYWRvbmx5IjwvdGl0
bGU+Cis8c3R5bGU+CisgaW5wdXQ6cmVhZC1vbmx5IHsgYmFja2dyb3VuZDpyZWQgfQorIGlucHV0
IHsgZGlzcGxheTpub25lIH0KKzwvc3R5bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6
Ly93aGF0d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlYWRvbmx5Ij4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWZvcm1zL2N1
cnJlbnQtd29yay8jcmVsYXRpb24iPgorPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIr
bWVzc2FnZSsiPC9saT4iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgdmFyIGkgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidmljdGltIik7CisgICAgICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKGksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2Rpc3BsYXknKSA9PSAi
bm9uZSIpCisgICAgICAgICAgICBsb2coIlNVQ0NFU1MiKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbG9nKCJGQUlMVVJFIik7CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIGZvciA6cmVhZC1vbmx5IHJpZ2h0
IGJlaGF2aW9yIG9uIGNoZWNrYm94ZXMuIEZhaWxzIGlmIEZBSUxVUkUgaXMgc2hvd24gYmVsb3cu
PC9wPgorPHA+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idmljdGltIiByZWFkb25seS8+PC9w
PgorPGhyPgorPG9sIGlkPSJjb25zb2xlIj48L29sPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNz
LW9wZXJhLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTc3NjhhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRv
bmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitU
aGlzIHRlc3QgY2hlY2tzIGZvciA6cmVhZC1vbmx5IHJpZ2h0IGJlaGF2aW9yLiBGYWlscyBpZiBG
QUlMVVJFIGlzIHNob3duIGJlbG93LgorCisKKworU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDNiZTJkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLmh0
bWwKQEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT4mbHQ7aW5wdXQmZ3Q7
IGFuZCAicmVhZG9ubHkiPC90aXRsZT4KKzxzdHlsZT4KKyBpbnB1dDpyZWFkLW9ubHkgeyBiYWNr
Z3JvdW5kOmxpbWUgfQorIGlucHV0IHsgYmFja2dyb3VuZDpyZWQgfQorPC9zdHlsZT4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWZvcm1zL2N1cnJl
bnQtd29yay8jcmVhZG9ubHkiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd2hhdHdn
Lm9yZy9zcGVjcy93ZWItZm9ybXMvY3VycmVudC13b3JrLyNyZWxhdGlvbiI+Cis8c2NyaXB0IGxh
bmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1bmN0aW9u
IGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gdGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgaSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aWN0aW0iKTsKKyAgICAgICAgaWYg
KGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoaSwgbnVsbCkuZ2V0UHJvcGVy
dHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpID09ICJyZ2IoMCwgMjU1LCAwKSIpCisgICAgICAg
ICAgICBsb2coIlNVQ0NFU1MiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlM
VVJFIik7CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+
Cis8cD5UaGlzIHRlc3QgY2hlY2tzIGZvciA6cmVhZC1vbmx5IHJpZ2h0IGJlaGF2aW9yLiBGYWls
cyBpZiBGQUlMVVJFIGlzIHNob3duIGJlbG93LjwvcD4KKzxwPjxpbnB1dCBpZD0idmljdGltIiBy
ZWFkb25seS8+PC9wPgorPGhyPgorPG9sIGlkPSJjb25zb2xlIj48L29sPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xh
c3Mtb3BlcmEtMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5
LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYzg1NTZjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorOnJlYWQtb25seSBkb2Vzbid0IGFwcGx5IHRvIGZvbGxvd2luZyBjb250cm9s
cy4gRmFpbHMgaWYgRkFJTFVSRSBpcyBzaG93biBzb21ld2hlcmUuCisKKzA6IFNVQ0NFU1MKKzE6
IFNVQ0NFU1MKKzI6IFNVQ0NFU1MKKzM6IFNVQ0NFU1MKKzQ6IFNVQ0NFU1MKKzU6IFNVQ0NFU1MK
KzY6IFNVQ0NFU1MKKzc6IFNVQ0NFU1MKKzg6IFNVQ0NFU1MKKzk6IFNVQ0NFU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTExNjA3ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9w
ZXJhLTAwMy5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+InJl
YWRvbmx5IiBhbmQgZWxlbWVudHMgaXQgZG9lcyBub3QgYXBwbHkgdG88L3RpdGxlPgorPHN0eWxl
PgorIGlucHV0OnJlYWQtb25seSB7IGJhY2tncm91bmQ6cmVkIH0KKyBpbnB1dCB7IGRpc3BsYXk6
IG5vbmUgfQorIHNlbGVjdDpyZWFkLW9ubHkgeyBiYWNrZ3JvdW5kOnJlZCB9Cisgc2VsZWN0IHsg
ZGlzcGxheTogbm9uZSB9CisgYnV0dG9uOnJlYWQtb25seSB7IGJhY2tncm91bmQ6cmVkIH0KKyBi
dXR0b24geyBkaXNwbGF5OiBub25lIH0KKzwvc3R5bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHA6Ly93aGF0d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlYWRvbmx5
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWZv
cm1zL2N1cnJlbnQtd29yay8jcmVsYXRpb24iPgorPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlw
dCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAi
PGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgdmFyIGkgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoYyA9IDA7IGMgPCBp
Lmxlbmd0aDsgYysrKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
Q29tcHV0ZWRTdHlsZShpW2NdLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXNwbGF5JykgPT0g
Im5vbmUiKQorICAgICAgICAgICAgICAgIGxvZyhjICsgIjogU1VDQ0VTUyIpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZyhjICsgIjogRkFJTFVSRSIpOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cD46
cmVhZC1vbmx5IGRvZXNuJ3QgYXBwbHkgdG8gZm9sbG93aW5nIGNvbnRyb2xzLiBGYWlscyBpZiBG
QUlMVVJFIGlzIHNob3duIHNvbWV3aGVyZS48L3A+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBl
PSJyYWRpbyIgcmVhZG9ubHk+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJmaWxlIiByZWFk
b25seT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InJhbmdlIiByZWFkb25seSBkaXNhYmxl
ZD4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9ImJ1dHRvbiIgcmVhZG9ubHk+Cis8aW5wdXQg
bmFtZT0idmljdGltIiB0eXBlPSJzdWJtaXQiIHJlYWRvbmx5PgorPGlucHV0IG5hbWU9InZpY3Rp
bSIgdHlwZT0icmVzZXQiIHJlYWRvbmx5PgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iIHJlYWRvbmx5
Pjwvc2VsZWN0PgorPGJ1dHRvbiBuYW1lPSJ2aWN0aW0iIHJlYWRvbmx5PjwvYnV0dG9uPgorPGJ1
dHRvbiBuYW1lPSJ2aWN0aW0iIHJlYWRvbmx5IHR5cGU9InJlc2V0Ij48L2J1dHRvbj4KKzxidXR0
b24gbmFtZT0idmljdGltIiByZWFkb25seSB0eXBlPSJzdWJtaXQiPjwvYnV0dG9uPgorPGhyPgor
PG9sIGlkPSJjb25zb2xlIj48L29sPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBz
ZXVkb2NsYXNzLW9wZXJhLTAwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9y
ZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzY4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBmb3IgOnJlYWQtb25seSByaWdodCBi
ZWhhdmlvci4gRmFpbHMgaWYgRkFJTFVSRSBpcyBzaG93biBiZWxvdy4KKworCisKK1NVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9w
ZXJhLTAwNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mt
b3BlcmEtMDA0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMyMTkw
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVk
b2NsYXNzLW9wZXJhLTAwNC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+Jmx0O3RleHRhcmVhJmd0OyBhbmQgInJlYWRvbmx5IjwvdGl0bGU+Cis8c3R5bGU+Cisg
dGV4dGFyZWE6cmVhZC1vbmx5IHsgYmFja2dyb3VuZDpsaW1lIH0KKyB0ZXh0YXJlYSB7IGJhY2tn
cm91bmQ6cmVkIH0KKzwvc3R5bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93aGF0
d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlYWRvbmx5Ij4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWZvcm1zL2N1cnJlbnQt
d29yay8jcmVsYXRpb24iPgorPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2Fn
ZSsiPC9saT4iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidmljdGltIik7CisgICAgICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlKHQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSA9
PSAicmdiKDAsIDI1NSwgMCkiKQorICAgICAgICAgICAgbG9nKCJTVUNDRVNTIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTFVSRSIpOworICAgIH0KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+VGhpcyB0ZXN0IGNoZWNrcyBmb3IgOnJl
YWQtb25seSByaWdodCBiZWhhdmlvci4gRmFpbHMgaWYgRkFJTFVSRSBpcyBzaG93biBiZWxvdy48
L3A+Cis8cD48dGV4dGFyZWEgaWQ9InZpY3RpbSIgcmVhZG9ubHk+PC90ZXh0YXJlYT48L3A+Cis8
aHI+Cis8b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3Bl
cmEtMDA1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
YTE0N2NmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHkt
cHNldWRvY2xhc3Mtb3BlcmEtMDA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMg
dGVzdCBjaGVja3MgZm9yIDpyZWFkLW9ubHkgYW5kIDpyZWFkLXdyaXRlIHJpZ2h0IGJlaGF2aW9y
IGFsb25nIHdpdGggcmVhZG9ubHkgYXR0cmlidXRlLiBGYWlscyBpZiBzb21lIEZBSUxVUkUgaXMg
c2hvd24gYmVsb3cuCisKKyAgICAgCiswOiBTVUNDRVNTCisxOiBTVUNDRVNTCisyOiBTVUNDRVNT
CiszOiBTVUNDRVNTCis0OiBTVUNDRVNTCis1OiBTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwNS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MGUwNTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDUuaHRt
bApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPiJyZWFkb25seSIsIDpy
ZWFkLW9ubHkgYW5kIDpyZWFkLXdyaXRlPC90aXRsZT4KKzxzdHlsZT4KKyBpbnB1dCB7IGJhY2tn
cm91bmQ6IHJlZDsgfQorICNpMTpyZWFkLXdyaXRlIHsgYmFja2dyb3VuZDogbGltZTsgfQorICNp
MiB7IGJhY2tncm91bmQ6IGxpbWU7IH0KKyAjaTI6cmVhZC1vbmx5IHsgYmFja2dyb3VuZDogcmVk
OyB9CisgI2kzOnJlYWQtd3JpdGUgeyBiYWNrZ3JvdW5kOiBsaW1lOyB9CisgI2k0OnJlYWQtb25s
eSB7IGJhY2tncm91bmQ6IGxpbWU7IH0KKyAjaTU6cmVhZC1vbmx5IHsgYmFja2dyb3VuZDogbGlt
ZTsgfQorICNpNjpyZWFkLXdyaXRlIHsgYmFja2dyb3VuZDogbGltZTsgfQorCis8L3N0eWxlPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd2hhdHdnLm9yZy9zcGVjcy93ZWItZm9ybXMv
Y3VycmVudC13b3JrLyNyZWFkb25seSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93
aGF0d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlbGF0aW9uIj4KKzxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMycpLnJlbW92ZUF0dHJpYnV0ZSgncmVh
ZG9ubHknKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k0JykucmVhZE9ubHkg
PSB0cnVlOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTUnKS5zZXRBdHRyaWJ1
dGUoJ3JlYWRvbmx5JywncmVhZG9ubHknKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2k2JykucmVhZE9ubHkgPSBmYWxzZTsKKworICAgICAgICB2YXIgaSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpOworICAgICAgICBmb3IgKGMgPSAwOyBjIDwgaS5s
ZW5ndGg7IGMrKykgeworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENv
bXB1dGVkU3R5bGUoaVtjXSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xv
cicpID09ICJyZ2IoMCwgMjU1LCAwKSIpCisgICAgICAgICAgICAgICAgbG9nKGMgKyAiOiBTVUND
RVNTIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKGMgKyAiOiBGQUlM
VVJFIik7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0idGVzdCgpIj4KKzxwPlRoaXMgdGVzdCBjaGVja3MgZm9yIDpyZWFkLW9ubHkgYW5kIDpyZWFk
LXdyaXRlIHJpZ2h0IGJlaGF2aW9yIGFsb25nIHdpdGggcmVhZG9ubHkgYXR0cmlidXRlLiBGYWls
cyBpZiBzb21lIEZBSUxVUkUgaXMgc2hvd24gYmVsb3cuPC9wPgorCis8aW5wdXQgaWQ9ImkxIi8+
Cis8aW5wdXQgdHlwZT0icmFkaW8iIHJlYWRvbmx5PSJyZWFkb25seSIgaWQ9ImkyIi8+Cis8aW5w
dXQgcmVhZG9ubHk9InJlYWRvbmx5IiBpZD0iaTMiLz4KKzxpbnB1dCBpZD0iaTQiLz4KKzxpbnB1
dCBpZD0iaTUiLz4KKzxpbnB1dCByZWFkb25seT0icmVhZG9ubHkiIGlkPSJpNiIvPgorPGhyPgor
PG9sIGlkPSJjb25zb2xlIj48L29sPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMDY2ZjMyNi4uM2Y4YzYwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOC0wNy0wNiAg
TWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG0uZGVzQG1hYy5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgOnJlYWQtb25seSBh
bmQgOnJlYWQtd3JpdGUgcHNldWRvY2xhc3NlcyBpbnRyb2R1Y2VkIGluCisgICAgICAgIFdlYiBG
b3JtcyAyLjAgc3BlYyBmb3IgcmVhZG9ubHkgZm9ybSBjb250cm9scy4KKworICAgICAgICBVUkw6
IGh0dHA6Ly93d3cudzMub3JnL1RSL3dlYi1mb3Jtcy0yLyNyZWxhdGlvbgorCisgICAgICAgIFRl
c3RzOiBmYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDEuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEt
MDA1Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOiBBZGRlZCAicmVhZC1vbmx5IiBh
bmQKKyAgICAgICAgInJlYWQtd3JpdGUiIHZhbHVlcyBmb3IgUHNldWRvVHlwZSBleHRyYWN0aW9u
LgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2Vs
ZWN0b3I6Oik6IEFkZGVkIFBzZXVkb1JlYWRPbmx5IGFuZCBQc2V1ZG9SZWFkV3JpdGUgZW50cmll
cworICAgICAgICBpbiBQc2V1ZG9UeXBlIGVudW0uCisgICAgICAgICogY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JD
aGVja2VyOjpjaGVja09uZVNlbGVjdG9yKTogQ2hlY2tzCisgICAgICAgIHRvIGRldGVybWluZSB3
aGV0aGVyIG1hdGNoIDpyZWFkLW9ubHkgYW5kIDpyZWFkLXdyaXRlIHBzZXVkb2NsYXNzZXMgb24K
KyAgICAgICAgZm9ybSBjb250cm9sczogb25seSB0byByZWFkb25seSB0ZXh0YXJlYXMgYW5kICh0
ZXh0L3Bhc3N3b3JkKSBpbnB1dHMuCisKIDIwMDgtMDctMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBDYW1lcm9uIFp3YXJpY2guCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5jcHAKaW5kZXggMmZkOGQyMS4uZWJkZmU4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAt
NzYsNiArNzYsOCBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0
CiAgICAgc3RhdGljIEF0b21pY1N0cmluZyBjaGVja2VkKCJjaGVja2VkIik7CiAgICAgc3RhdGlj
IEF0b21pY1N0cmluZyBmaWxlVXBsb2FkQnV0dG9uKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRv
biIpOwogICAgIHN0YXRpYyBBdG9taWNTdHJpbmcgZGlzYWJsZWQoImRpc2FibGVkIik7CisgICAg
c3RhdGljIEF0b21pY1N0cmluZyByZWFkb25seSgicmVhZC1vbmx5Iik7CisgICAgc3RhdGljIEF0
b21pY1N0cmluZyByZWFkd3JpdGUoInJlYWQtd3JpdGUiKTsKICAgICBzdGF0aWMgQXRvbWljU3Ry
aW5nIGRyYWcoIi13ZWJraXQtZHJhZyIpOwogICAgIHN0YXRpYyBBdG9taWNTdHJpbmcgZHJhZ0Fs
aWFzKCIta2h0bWwtZHJhZyIpOyAvLyB3YXMgZG9jdW1lbnRlZCB3aXRoIHRoaXMgbmFtZSBpbiBB
cHBsZSBkb2N1bWVudGF0aW9uLCBzbyBrZWVwIGFuIGFsaWFzCiAgICAgc3RhdGljIEF0b21pY1N0
cmluZyBlbXB0eSgiZW1wdHkiKTsKQEAgLTE0MSw2ICsxNDMsMTAgQEAgdm9pZCBDU1NTZWxlY3Rv
cjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgICAgICBlbGVtZW50ID0gdHJ1ZTsKICAg
ICB9IGVsc2UgaWYgKG1fdmFsdWUgPT0gZGlzYWJsZWQpCiAgICAgICAgIG1fcHNldWRvVHlwZSA9
IFBzZXVkb0Rpc2FibGVkOworICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gcmVhZG9ubHkpCisgICAg
ICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1JlYWRPbmx5OworICAgIGVsc2UgaWYgKG1fdmFsdWUg
PT0gcmVhZHdyaXRlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9SZWFkV3JpdGU7CiAg
ICAgZWxzZSBpZiAobV92YWx1ZSA9PSBkcmFnIHx8IG1fdmFsdWUgPT0gZHJhZ0FsaWFzKQogICAg
ICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9EcmFnOwogICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0g
ZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDMyZDc5NzguLmYxN2Q4ZWQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApA
QCAtMTQyLDYgKzE0Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVk
b0NoZWNrZWQsCiAgICAgICAgICAgICBQc2V1ZG9FbmFibGVkLAogICAgICAgICAgICAgUHNldWRv
RGlzYWJsZWQsCisgICAgICAgICAgICBQc2V1ZG9SZWFkT25seSwKKyAgICAgICAgICAgIFBzZXVk
b1JlYWRXcml0ZSwKICAgICAgICAgICAgIFBzZXVkb0luZGV0ZXJtaW5hdGUsCiAgICAgICAgICAg
ICBQc2V1ZG9UYXJnZXQsCiAgICAgICAgICAgICBQc2V1ZG9CZWZvcmUsCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCmluZGV4IGU3OTNhYzkuLjU3N2Q4NjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKQEAgLTIw
NTIsNiArMjA1MywyOCBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6
Y2hlY2tPbmVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLCBFbGVtZQogICAgICAgICAgICAgICAg
ICAgICAvLyB0aGF0IGFyZSBub24tImhpZGRlbiIgY29udHJvbHMuCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAhZS0+aXNFbmFibGVkKCk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlYWRP
bmx5OgorICAgICAgICAgICAgICAgIGlmIChlICYmIGUtPmlzQ29udHJvbCgpICYmICFlLT5pc0lu
cHV0VHlwZUhpZGRlbigpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gKChpbnB1dC0+aW5wdXRUeXBlKCkgPT0gSFRNTElucHV0RWxlbWVu
dDo6UEFTU1dPUkQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtPmlu
cHV0VHlwZSgpID09IEhUTUxJbnB1dEVsZW1lbnQ6OlRFWFQpICYmCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlucHV0LT5pc1JlYWRPbmx5Q29udHJvbCgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChlLT5oYXNUYWdOYW1lKHRleHRhcmVhVGFnKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAoKHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQq
PihlKSktPmlzUmVhZE9ubHlDb250cm9sKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlYWRX
cml0ZToKKyAgICAgICAgICAgICAgICBpZiAoZSAmJiBlLT5pc0NvbnRyb2woKSAmJiAhZS0+aXNJ
bnB1dFR5cGVIaWRkZW4oKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZS0+aGFzVGFnTmFt
ZShpbnB1dFRhZykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGUpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICgoaW5wdXQtPmlucHV0VHlwZSgpID09IEhUTUxJbnB1dEVsZW1l
bnQ6OlBBU1NXT1JEIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LT5p
bnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpURVhUKSAmJgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAhaW5wdXQtPmlzUmVhZE9ubHlDb250cm9sKCkpOworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGUtPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICghKHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1l
bnQqPihlKSktPmlzUmVhZE9ubHlDb250cm9sKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0No
ZWNrZWQ6CiAgICAgICAgICAgICAgICAgLy8gRXZlbiB0aG91Z2ggV2luSUUgYWxsb3dzIGNoZWNr
ZWQgYW5kIGluZGV0ZXJtaW5hdGUgdG8gY28tZXhpc3QsIHRoZSBDU1Mgc2VsZWN0b3Igc3BlYyBz
YXlzIHRoYXQKICAgICAgICAgICAgICAgICAvLyB5b3UgY2FuJ3QgYmUgYm90aCBjaGVja2VkIGFu
ZCBpbmRldGVybWluYXRlLiAgV2Ugd2lsbCBiZWhhdmUgbGlrZSBXaW5JRSBiZWhpbmQgdGhlIHNj
ZW5lcyBhbmQganVzdAo=
</data>
<flag name="review"
          id="9736"
          type_id="1"
          status="-"
          setter="adele"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22140</attachid>
            <date>2008-07-07 14:09:27 -0700</date>
            <delta_ts>2008-07-07 14:13:49 -0700</delta_ts>
            <desc>Support for :read-only and :read-write pseudoclasses (updated)</desc>
            <filename>pseudoro_r2.patch</filename>
            <type>text/plain</type>
            <size>16461</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzJlODQ0Li5hZjQzNmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMDct
MDcgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtLmRlc0BtYWMuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIDpyZWFk
LW9ubHkgYW5kIDpyZWFkLXdyaXRlIHBzZXVkb2NsYXNzZXMsIGltcG9ydGVkIGZyb20KKyAgICAg
ICAgT3BlcmEuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVy
YS0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9yZWFkb25seS1w
c2V1ZG9jbGFzcy1vcGVyYS0wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcmVh
ZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9w
ZXJhLTAwMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9j
bGFzcy1vcGVyYS0wMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9y
ZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDA1LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDA1Lmh0bWw6
IEFkZGVkLgorCiAyMDA4LTA3LTA3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBNaXR6IGFuZCBHZW9mZgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAxLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM4YmU4OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2Ns
YXNzLW9wZXJhLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3QgY2hl
Y2tzIGZvciA6cmVhZC1vbmx5IHJpZ2h0IGJlaGF2aW9yIG9uIGNoZWNrYm94ZXMuIEZhaWxzIGlm
IEZBSUxVUkUgaXMgc2hvd24gYmVsb3cuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDAxLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRmNjEwOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMS5odG1s
CkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Jmx0O2lucHV0IHR5cGU9
ImNoZWNrYm94IiZndDsgYW5kICJyZWFkb25seSI8L3RpdGxlPgorPHN0eWxlPgorIGlucHV0OnJl
YWQtb25seSB7IGJhY2tncm91bmQ6cmVkIH0KKyBpbnB1dCB7IGRpc3BsYXk6bm9uZSB9Cis8L3N0
eWxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd2hhdHdnLm9yZy9zcGVjcy93ZWIt
Zm9ybXMvY3VycmVudC13b3JrLyNyZWFkb25seSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHA6Ly93aGF0d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlbGF0aW9uIj4K
KzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
ICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCisgICAgICAgIHZhciBpID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpY3RpbSIpOwor
ICAgICAgICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShpLCBudWxs
KS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXNwbGF5JykgPT0gIm5vbmUiKQorICAgICAgICAgICAgbG9n
KCJTVUNDRVNTIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTFVSRSIpOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+VGhp
cyB0ZXN0IGNoZWNrcyBmb3IgOnJlYWQtb25seSByaWdodCBiZWhhdmlvciBvbiBjaGVja2JveGVz
LiBGYWlscyBpZiBGQUlMVVJFIGlzIHNob3duIGJlbG93LjwvcD4KKzxwPjxpbnB1dCB0eXBlPSJj
aGVja2JveCIgaWQ9InZpY3RpbSIgcmVhZG9ubHkvPjwvcD4KKzxocj4KKzxvbCBpZD0iY29uc29s
ZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzY4YTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0w
MDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBmb3IgOnJl
YWQtb25seSByaWdodCBiZWhhdmlvci4gRmFpbHMgaWYgRkFJTFVSRSBpcyBzaG93biBiZWxvdy4K
KworCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5
LXBzZXVkb2NsYXNzLW9wZXJhLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9u
bHktcHNldWRvY2xhc3Mtb3BlcmEtMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMzQzYmUyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMi5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8dGl0bGU+Jmx0O2lucHV0Jmd0OyBhbmQgInJlYWRvbmx5IjwvdGl0bGU+
Cis8c3R5bGU+CisgaW5wdXQ6cmVhZC1vbmx5IHsgYmFja2dyb3VuZDpsaW1lIH0KKyBpbnB1dCB7
IGJhY2tncm91bmQ6cmVkIH0KKzwvc3R5bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6
Ly93aGF0d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlYWRvbmx5Ij4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWZvcm1zL2N1
cnJlbnQtd29yay8jcmVsYXRpb24iPgorPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIr
bWVzc2FnZSsiPC9saT4iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgdmFyIGkgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidmljdGltIik7CisgICAgICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKGksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29s
b3InKSA9PSAicmdiKDAsIDI1NSwgMCkiKQorICAgICAgICAgICAgbG9nKCJTVUNDRVNTIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTFVSRSIpOworICAgIH0KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+VGhpcyB0ZXN0IGNoZWNrcyBm
b3IgOnJlYWQtb25seSByaWdodCBiZWhhdmlvci4gRmFpbHMgaWYgRkFJTFVSRSBpcyBzaG93biBi
ZWxvdy48L3A+Cis8cD48aW5wdXQgaWQ9InZpY3RpbSIgcmVhZG9ubHkvPjwvcD4KKzxocj4KKzxv
bCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NTU2YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9j
bGFzcy1vcGVyYS0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKzpyZWFkLW9ubHkg
ZG9lc24ndCBhcHBseSB0byBmb2xsb3dpbmcgY29udHJvbHMuIEZhaWxzIGlmIEZBSUxVUkUgaXMg
c2hvd24gc29tZXdoZXJlLgorCiswOiBTVUNDRVNTCisxOiBTVUNDRVNTCisyOiBTVUNDRVNTCisz
OiBTVUNDRVNTCis0OiBTVUNDRVNTCis1OiBTVUNDRVNTCis2OiBTVUNDRVNTCis3OiBTVUNDRVNT
Cis4OiBTVUNDRVNTCis5OiBTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjUxMTYwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDMuaHRtbApAQCAtMCwwICsx
LDQ4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPiJyZWFkb25seSIgYW5kIGVsZW1lbnRzIGl0
IGRvZXMgbm90IGFwcGx5IHRvPC90aXRsZT4KKzxzdHlsZT4KKyBpbnB1dDpyZWFkLW9ubHkgeyBi
YWNrZ3JvdW5kOnJlZCB9CisgaW5wdXQgeyBkaXNwbGF5OiBub25lIH0KKyBzZWxlY3Q6cmVhZC1v
bmx5IHsgYmFja2dyb3VuZDpyZWQgfQorIHNlbGVjdCB7IGRpc3BsYXk6IG5vbmUgfQorIGJ1dHRv
bjpyZWFkLW9ubHkgeyBiYWNrZ3JvdW5kOnJlZCB9CisgYnV0dG9uIHsgZGlzcGxheTogbm9uZSB9
Cis8L3N0eWxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd2hhdHdnLm9yZy9zcGVj
cy93ZWItZm9ybXMvY3VycmVudC13b3JrLyNyZWFkb25seSI+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHA6Ly93aGF0d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlbGF0
aW9uIj4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCisgICAgICAgIHZhciBpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZp
Y3RpbSIpOworICAgICAgICBmb3IgKGMgPSAwOyBjIDwgaS5sZW5ndGg7IGMrKykgeworICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoaVtjXSwgbnVs
bCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlzcGxheScpID09ICJub25lIikKKyAgICAgICAgICAgICAg
ICBsb2coYyArICI6IFNVQ0NFU1MiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBsb2coYyArICI6IEZBSUxVUkUiKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+OnJlYWQtb25seSBkb2Vzbid0IGFwcGx5
IHRvIGZvbGxvd2luZyBjb250cm9scy4gRmFpbHMgaWYgRkFJTFVSRSBpcyBzaG93biBzb21ld2hl
cmUuPC9wPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0icmFkaW8iIHJlYWRvbmx5PgorPGlu
cHV0IG5hbWU9InZpY3RpbSIgdHlwZT0iZmlsZSIgcmVhZG9ubHk+Cis8aW5wdXQgbmFtZT0idmlj
dGltIiB0eXBlPSJyYW5nZSIgcmVhZG9ubHkgZGlzYWJsZWQ+Cis8aW5wdXQgbmFtZT0idmljdGlt
IiB0eXBlPSJidXR0b24iIHJlYWRvbmx5PgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0ic3Vi
bWl0IiByZWFkb25seT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InJlc2V0IiByZWFkb25s
eT4KKzxzZWxlY3QgbmFtZT0idmljdGltIiByZWFkb25seT48L3NlbGVjdD4KKzxidXR0b24gbmFt
ZT0idmljdGltIiByZWFkb25seT48L2J1dHRvbj4KKzxidXR0b24gbmFtZT0idmljdGltIiByZWFk
b25seSB0eXBlPSJyZXNldCI+PC9idXR0b24+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSIgcmVhZG9u
bHkgdHlwZT0ic3VibWl0Ij48L2J1dHRvbj4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3Bl
cmEtMDA0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
Nzc2OGE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHkt
cHNldWRvY2xhc3Mtb3BlcmEtMDA0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMg
dGVzdCBjaGVja3MgZm9yIDpyZWFkLW9ubHkgcmlnaHQgYmVoYXZpb3IuIEZhaWxzIGlmIEZBSUxV
UkUgaXMgc2hvd24gYmVsb3cuCisKKworCitTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwNC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMjE5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDQuaHRtbApA
QCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPiZsdDt0ZXh0YXJlYSZndDsg
YW5kICJyZWFkb25seSI8L3RpdGxlPgorPHN0eWxlPgorIHRleHRhcmVhOnJlYWQtb25seSB7IGJh
Y2tncm91bmQ6bGltZSB9CisgdGV4dGFyZWEgeyBiYWNrZ3JvdW5kOnJlZCB9Cis8L3N0eWxlPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd2hhdHdnLm9yZy9zcGVjcy93ZWItZm9ybXMv
Y3VycmVudC13b3JrLyNyZWFkb25seSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93
aGF0d2cub3JnL3NwZWNzL3dlYi1mb3Jtcy9jdXJyZW50LXdvcmsvI3JlbGF0aW9uIj4KKzxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpY3RpbSIpOworICAgICAg
ICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0LCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgPT0gInJnYigwLCAyNTUsIDApIikKKyAg
ICAgICAgICAgIGxvZygiU1VDQ0VTUyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2co
IkZBSUxVUkUiKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KKzxwPlRoaXMgdGVzdCBjaGVja3MgZm9yIDpyZWFkLW9ubHkgcmlnaHQgYmVoYXZpb3Iu
IEZhaWxzIGlmIEZBSUxVUkUgaXMgc2hvd24gYmVsb3cuPC9wPgorPHA+PHRleHRhcmVhIGlkPSJ2
aWN0aW0iIHJlYWRvbmx5PjwvdGV4dGFyZWE+PC9wPgorPGhyPgorPG9sIGlkPSJjb25zb2xlIj48
L29sPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwNS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWExNDdjZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwNS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3QgY2hlY2tzIGZvciA6cmVhZC1v
bmx5IGFuZCA6cmVhZC13cml0ZSByaWdodCBiZWhhdmlvciBhbG9uZyB3aXRoIHJlYWRvbmx5IGF0
dHJpYnV0ZS4gRmFpbHMgaWYgc29tZSBGQUlMVVJFIGlzIHNob3duIGJlbG93LgorCisgICAgIAor
MDogU1VDQ0VTUworMTogU1VDQ0VTUworMjogU1VDQ0VTUworMzogU1VDQ0VTUworNDogU1VDQ0VT
UworNTogU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVhZG9ubHkt
cHNldWRvY2xhc3Mtb3BlcmEtMDA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZWFkb25s
eS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yNjBlMDUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDA1Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPGh0
bWw+Cis8aGVhZD4KKzx0aXRsZT4icmVhZG9ubHkiLCA6cmVhZC1vbmx5IGFuZCA6cmVhZC13cml0
ZTwvdGl0bGU+Cis8c3R5bGU+CisgaW5wdXQgeyBiYWNrZ3JvdW5kOiByZWQ7IH0KKyAjaTE6cmVh
ZC13cml0ZSB7IGJhY2tncm91bmQ6IGxpbWU7IH0KKyAjaTIgeyBiYWNrZ3JvdW5kOiBsaW1lOyB9
CisgI2kyOnJlYWQtb25seSB7IGJhY2tncm91bmQ6IHJlZDsgfQorICNpMzpyZWFkLXdyaXRlIHsg
YmFja2dyb3VuZDogbGltZTsgfQorICNpNDpyZWFkLW9ubHkgeyBiYWNrZ3JvdW5kOiBsaW1lOyB9
CisgI2k1OnJlYWQtb25seSB7IGJhY2tncm91bmQ6IGxpbWU7IH0KKyAjaTY6cmVhZC13cml0ZSB7
IGJhY2tncm91bmQ6IGxpbWU7IH0KKworPC9zdHlsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWZvcm1zL2N1cnJlbnQtd29yay8jcmVhZG9ubHki
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd2hhdHdnLm9yZy9zcGVjcy93ZWItZm9y
bXMvY3VycmVudC13b3JrLyNyZWxhdGlvbiI+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Cisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8
bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaTMnKS5yZW1vdmVBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7CisgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpNCcpLnJlYWRPbmx5ID0gdHJ1ZTsKKyAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2k1Jykuc2V0QXR0cmlidXRlKCdyZWFkb25seScsJ3JlYWRvbmx5
Jyk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpNicpLnJlYWRPbmx5ID0gZmFs
c2U7CisKKyAgICAgICAgdmFyIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5w
dXQiKTsKKyAgICAgICAgZm9yIChjID0gMDsgYyA8IGkubGVuZ3RoOyBjKyspIHsKKyAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGlbY10sIG51bGwp
LmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSA9PSAicmdiKDAsIDI1NSwgMCki
KQorICAgICAgICAgICAgICAgIGxvZyhjICsgIjogU1VDQ0VTUyIpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGxvZyhjICsgIjogRkFJTFVSRSIpOworICAgICAgICB9CisgICAg
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cD5UaGlzIHRl
c3QgY2hlY2tzIGZvciA6cmVhZC1vbmx5IGFuZCA6cmVhZC13cml0ZSByaWdodCBiZWhhdmlvciBh
bG9uZyB3aXRoIHJlYWRvbmx5IGF0dHJpYnV0ZS4gRmFpbHMgaWYgc29tZSBGQUlMVVJFIGlzIHNo
b3duIGJlbG93LjwvcD4KKworPGlucHV0IGlkPSJpMSIvPgorPGlucHV0IHR5cGU9InJhZGlvIiBy
ZWFkb25seT0icmVhZG9ubHkiIGlkPSJpMiIvPgorPGlucHV0IHJlYWRvbmx5PSJyZWFkb25seSIg
aWQ9ImkzIi8+Cis8aW5wdXQgaWQ9Imk0Ii8+Cis8aW5wdXQgaWQ9Imk1Ii8+Cis8aW5wdXQgcmVh
ZG9ubHk9InJlYWRvbmx5IiBpZD0iaTYiLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ4ZjdjNmMuLmRk
M2ExMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDgtMDctMDcgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUg
IDxtLmRlc0BtYWMuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN1cHBvcnQgZm9yIDpyZWFkLW9ubHkgYW5kIDpyZWFkLXdyaXRlIHBzZXVkb2Ns
YXNzZXMgaW50cm9kdWNlZCBpbgorICAgICAgICBXZWIgRm9ybXMgMi4wIHNwZWMgZm9yIHJlYWRv
bmx5IGZvcm0gY29udHJvbHMuCisKKyAgICAgICAgVVJMOiBodHRwOi8vd3d3LnczLm9yZy9UUi93
ZWItZm9ybXMtMi8jcmVsYXRpb24KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvcmVhZG9ubHkt
cHNldWRvY2xhc3Mtb3BlcmEtMDAxLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL3JlYWRv
bmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9y
ZWFkb25seS1wc2V1ZG9jbGFzcy1vcGVyYS0wMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9j
c3MvcmVhZG9ubHktcHNldWRvY2xhc3Mtb3BlcmEtMDA0Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvY3NzL3JlYWRvbmx5LXBzZXVkb2NsYXNzLW9wZXJhLTAwNS5odG1sCisKKyAgICAgICAgKiBj
c3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJh
Y3RQc2V1ZG9UeXBlKTogQWRkZWQgInJlYWQtb25seSIgYW5kCisgICAgICAgICJyZWFkLXdyaXRl
IiB2YWx1ZXMgZm9yIFBzZXVkb1R5cGUgZXh0cmFjdGlvbi4KKyAgICAgICAgKiBjc3MvQ1NTU2Vs
ZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjopOiBBZGRlZCBQc2V1ZG9S
ZWFkT25seSBhbmQgUHNldWRvUmVhZFdyaXRlIGVudHJpZXMKKyAgICAgICAgaW4gUHNldWRvVHlw
ZSBlbnVtLgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rv
cik6IENoZWNrcworICAgICAgICB0byBkZXRlcm1pbmUgd2hldGhlciBtYXRjaCA6cmVhZC1vbmx5
IGFuZCA6cmVhZC13cml0ZSBwc2V1ZG9jbGFzc2VzIG9uCisgICAgICAgIGZvcm0gY29udHJvbHM6
IG9ubHkgdG8gcmVhZG9ubHkgdGV4dGFyZWFzIGFuZCAodGV4dC9wYXNzd29yZCkgaW5wdXRzLgor
CiAyMDA4LTA3LTA3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBNaXR6IGFuZCBHZW9mZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDJmZDhkMjEu
LjZhNTczM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTc2LDYgKzc2LDggQEAgdm9pZCBDU1NTZWxl
Y3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgIHN0YXRpYyBBdG9taWNTdHJpbmcg
Y2hlY2tlZCgiY2hlY2tlZCIpOwogICAgIHN0YXRpYyBBdG9taWNTdHJpbmcgZmlsZVVwbG9hZEJ1
dHRvbigiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iKTsKICAgICBzdGF0aWMgQXRvbWljU3Ry
aW5nIGRpc2FibGVkKCJkaXNhYmxlZCIpOworICAgIHN0YXRpYyBBdG9taWNTdHJpbmcgcmVhZE9u
bHkoInJlYWQtb25seSIpOworICAgIHN0YXRpYyBBdG9taWNTdHJpbmcgcmVhZFdyaXRlKCJyZWFk
LXdyaXRlIik7CiAgICAgc3RhdGljIEF0b21pY1N0cmluZyBkcmFnKCItd2Via2l0LWRyYWciKTsK
ICAgICBzdGF0aWMgQXRvbWljU3RyaW5nIGRyYWdBbGlhcygiLWtodG1sLWRyYWciKTsgLy8gd2Fz
IGRvY3VtZW50ZWQgd2l0aCB0aGlzIG5hbWUgaW4gQXBwbGUgZG9jdW1lbnRhdGlvbiwgc28ga2Vl
cCBhbiBhbGlhcwogICAgIHN0YXRpYyBBdG9taWNTdHJpbmcgZW1wdHkoImVtcHR5Iik7CkBAIC0x
NDEsNiArMTQzLDEwIEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29u
c3QKICAgICAgICAgZWxlbWVudCA9IHRydWU7CiAgICAgfSBlbHNlIGlmIChtX3ZhbHVlID09IGRp
c2FibGVkKQogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9EaXNhYmxlZDsKKyAgICBlbHNl
IGlmIChtX3ZhbHVlID09IHJlYWRPbmx5KQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9S
ZWFkT25seTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IHJlYWRXcml0ZSkKKyAgICAgICAgbV9w
c2V1ZG9UeXBlID0gUHNldWRvUmVhZFdyaXRlOwogICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gZHJh
ZyB8fCBtX3ZhbHVlID09IGRyYWdBbGlhcykKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRv
RHJhZzsKICAgICBlbHNlIGlmIChtX3ZhbHVlID09IGVuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCAz
MmQ3OTc4Li5mMTdkOGVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisr
KyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTE0Miw2ICsxNDIsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9DaGVja2VkLAogICAgICAgICAgICAgUHNl
dWRvRW5hYmxlZCwKICAgICAgICAgICAgIFBzZXVkb0Rpc2FibGVkLAorICAgICAgICAgICAgUHNl
dWRvUmVhZE9ubHksCisgICAgICAgICAgICBQc2V1ZG9SZWFkV3JpdGUsCiAgICAgICAgICAgICBQ
c2V1ZG9JbmRldGVybWluYXRlLAogICAgICAgICAgICAgUHNldWRvVGFyZ2V0LAogICAgICAgICAg
ICAgUHNldWRvQmVmb3JlLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBlNzkzYWM5Li4w
MjQ3NjM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCkBAIC0yMDUyLDYgKzIwNTMsMjQgQEAgYm9vbCBDU1NT
dHlsZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0
b3IqIHNlbCwgRWxlbWUKICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBhcmUgbm9uLSJoaWRk
ZW4iIGNvbnRyb2xzLgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWUtPmlzRW5hYmxlZCgp
OyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZWFkT25seToKKyAgICAgICAgICAgICAgICBpZiAo
ZSAmJiBlLT5pc0NvbnRyb2woKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZS0+aGFzVGFn
TmFtZShpbnB1dFRhZykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIChpbnB1dC0+aXNUZXh0RmllbGQoKSAmJiBpbnB1dC0+aXNS
ZWFkT25seUNvbnRyb2woKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS0+aGFz
VGFnTmFtZSh0ZXh0YXJlYVRhZykpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChz
dGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZSkpLT5pc1JlYWRPbmx5Q29udHJvbCgp
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZWFkV3JpdGU6CisgICAgICAgICAgICAgICAgaWYg
KGUgJiYgZS0+aXNDb250cm9sKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUtPmhhc1Rh
Z05hbWUoaW5wdXRUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAoaW5wdXQtPmlzVGV4dEZpZWxkKCkgJiYgIWlucHV0LT5p
c1JlYWRPbmx5Q29udHJvbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLT5o
YXNUYWdOYW1lKHRleHRhcmVhVGFnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAo
IShzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZSkpLT5pc1JlYWRPbmx5Q29udHJv
bCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkOgogICAgICAgICAgICAgICAgIC8v
IEV2ZW4gdGhvdWdoIFdpbklFIGFsbG93cyBjaGVja2VkIGFuZCBpbmRldGVybWluYXRlIHRvIGNv
LWV4aXN0LCB0aGUgQ1NTIHNlbGVjdG9yIHNwZWMgc2F5cyB0aGF0CiAgICAgICAgICAgICAgICAg
Ly8geW91IGNhbid0IGJlIGJvdGggY2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0ZS4gIFdlIHdpbGwg
YmVoYXZlIGxpa2UgV2luSUUgYmVoaW5kIHRoZSBzY2VuZXMgYW5kIGp1c3QK
</data>
<flag name="review"
          id="9748"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>