<?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>84752</bug_id>
          
          <creation_ts>2012-04-24 13:06:35 -0700</creation_ts>
          <short_desc>Implement StyleRule copying</short_desc>
          <delta_ts>2012-04-24 15:29:13 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>608972</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-24 13:06:35 -0700</bug_when>
    <thetext>We&apos;ll need this for copy-on-write when style sheet data is shared between documents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608998</commentid>
    <comment_count>1</comment_count>
      <attachid>138633</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-24 13:43:48 -0700</bug_when>
    <thetext>Created attachment 138633
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609011</commentid>
    <comment_count>2</comment_count>
      <attachid>138633</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-04-24 13:53:04 -0700</bug_when>
    <thetext>Comment on attachment 138633
patch

Looks legit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609019</commentid>
    <comment_count>3</comment_count>
      <attachid>138633</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-24 13:59:18 -0700</bug_when>
    <thetext>Comment on attachment 138633
patch

Attachment 138633 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12525331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609080</commentid>
    <comment_count>4</comment_count>
      <attachid>138633</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-24 14:34:49 -0700</bug_when>
    <thetext>Comment on attachment 138633
patch

Attachment 138633 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12490342</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609115</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-24 15:06:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/115115

Build fix: http://trac.webkit.org/changeset/115117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609150</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-24 15:29:13 -0700</bug_when>
    <thetext>Another build fix:  http://trac.webkit.org/changeset/115120</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138633</attachid>
            <date>2012-04-24 13:43:48 -0700</date>
            <delta_ts>2012-04-24 14:34:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>stylerule-copy.patch</filename>
            <type>text/plain</type>
            <size>17638</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNTEwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDczIEBACisyMDEyLTA0LTI0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgU3R5bGVSdWxl
IGNvcHlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0NzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBXZSdsbCBuZWVkIHRoaXMgZm9yIGNvcHktb24td3JpdGUgd2hlbiBzdHlsZSBzaGVl
dCBkYXRhIGlzIHNoYXJlZCBiZXR3ZWVuIGRvY3VtZW50cy4KKworICAgICAgICBJbXBsZW1lbnQg
Y29weSgpIGFuZCBjb3B5IGNvbnN0cnVjdG9yIGZvciBzdHlsZSBydWxlcyB0aGVpciBjaGlsZHJl
biBhcyBuZWVkZWQuCisgICAgICAgIAorICAgICAgICBUaGUgY29kZSBpcyBub3QgeWV0IHVzZWQu
CisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yTGlzdDo6Q1NTU2VsZWN0b3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuaDoKKyAgICAgICAgKENTU1NlbGVjdG9yTGlz
dCk6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFR
dWVyeVNldDo6Y29weSk6CisgICAgICAgIChNZWRpYVF1ZXJ5U2V0KToKKyAgICAgICAgKiBjc3Mv
TWVkaWFRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5OjpNZWRpYVF1ZXJ5
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5Lmg6CisgICAg
ICAgIChNZWRpYVF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6OmNvcHkpOgor
ICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5RXhwOjpjb3B5KToKKyAgICAgICAgKE1lZGlhUXVlcnlFeHApOgorICAgICAgICAqIGNzcy9T
dHlsZVByb3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6
OlN0eWxlUHJvcGVydHlTZXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVByb3BlcnR5U2V0Ojpjb3B5KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0eVNl
dC5oOgorICAgICAgICAKKyAgICAgICAgICAgIE1ha2UgdGhpcyBjb3B5IHBhcnNlIG1vZGUgdG9v
LiBBcyBhIHJlc3VsdCBFbGVtZW50QXR0cmlidXRlRGF0YSBubyBsb25nZXIgbmVlZHMgdG8gc2V0
IGl0IGV4cGxpY2l0bHkgYWZ0ZXIgY29weWluZy4KKworICAgICAgICAoU3R5bGVQcm9wZXJ0eVNl
dCk6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJ1bGVCYXNlOjpjb3B5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSdWxlOjpTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlUGFnZTo6
U3R5bGVSdWxlUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGb250RmFjZTo6U3R5
bGVSdWxlRm9udEZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQmxvY2s6OlN0eWxl
UnVsZUJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZU1lZGlhOjpTdHlsZVJ1bGVN
ZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVSZWdpb246OlN0eWxlUnVsZVJlZ2lv
bik6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5oOgorICAgICAgICAoU3R5bGVSdWxlQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVCYXNlOjpTdHlsZVJ1bGVCYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUnVsZTo6Y29weSk6CisgICAgICAgIChTdHlsZVJ1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlRm9udEZhY2U6OmNvcHkpOgorICAgICAgICAoU3R5bGVS
dWxlRm9udEZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlUGFnZTo6Y29weSk6Cisg
ICAgICAgIChTdHlsZVJ1bGVQYWdlKToKKyAgICAgICAgKFN0eWxlUnVsZUJsb2NrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUnVsZU1lZGlhOjpjb3B5KToKKyAgICAgICAgKFN0eWxlUnVsZU1l
ZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZVJlZ2lvbjo6Y29weSk6CisgICAgICAg
IChTdHlsZVJ1bGVSZWdpb24pOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5
ZnJhbWVzOjpTdHlsZVJ1bGVLZXlmcmFtZXMpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UnVsZUtleWZyYW1lczo6Y29weSk6CisgICAgICAgIChTdHlsZVJ1bGVLZXlmcmFtZXMpOgorCiAy
MDEyLTA0LTI0ICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJh
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgRml4IHdyb25nIEFTU0VSVCgpIGluIGZpbmRBdHRy
aWJ1dGVJblZlY3RvcigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNw
cAkocmV2aXNpb24gMTE1MTAyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDE2IEBAIENTU1NlbGVjdG9yTGlzdDo6
fkNTU1NlbGVjdG9yTGlzdCgpCiAgICAgZGVsZXRlU2VsZWN0b3JzKCk7CiB9CiAKK0NTU1NlbGVj
dG9yTGlzdDo6Q1NTU2VsZWN0b3JMaXN0KGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgbykKK3sKKyAg
ICBDU1NTZWxlY3RvciogY3VycmVudCA9IG8ubV9zZWxlY3RvckFycmF5OworICAgIHdoaWxlICgh
Y3VycmVudC0+aXNMYXN0SW5TZWxlY3Rvckxpc3QoKSkKKyAgICAgICAgKytjdXJyZW50OworICAg
IHVuc2lnbmVkIGxlbmd0aCA9IChjdXJyZW50IC0gby5tX3NlbGVjdG9yQXJyYXkpICsgMTsKKyAg
ICBtX3NlbGVjdG9yQXJyYXkgPSByZWludGVycHJldF9jYXN0PENTU1NlbGVjdG9yKj4oZmFzdE1h
bGxvYyhzaXplb2YoQ1NTU2VsZWN0b3IpICogbGVuZ3RoKSk7CisgICAgbWVtY3B5KG1fc2VsZWN0
b3JBcnJheSwgby5tX3NlbGVjdG9yQXJyYXksIHNpemVvZihDU1NTZWxlY3RvcikgKiBsZW5ndGgp
OworfQorCiB2b2lkIENTU1NlbGVjdG9yTGlzdDo6YWRvcHQoQ1NTU2VsZWN0b3JMaXN0JiBsaXN0
KQogewogICAgIGRlbGV0ZVNlbGVjdG9ycygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvckxpc3QuaAkocmV2aXNpb24gMTE1MTAyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1Nl
bGVjdG9yTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMywxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBDU1NQYXJzZXJTZWxlY3RvcjsKIAogY2xhc3MgQ1NTU2VsZWN0b3JM
aXN0IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDU1NTZWxlY3Rvckxpc3QpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBDU1NTZWxlY3Rvckxpc3QoKSA6IG1fc2VsZWN0b3JBcnJheSgwKSB7IH0KKyAgICBDU1NT
ZWxlY3Rvckxpc3QoY29uc3QgQ1NTU2VsZWN0b3JMaXN0Jik7CisKICAgICB+Q1NTU2VsZWN0b3JM
aXN0KCk7CiAKICAgICB2b2lkIGFkb3B0KENTU1NlbGVjdG9yTGlzdCYgbGlzdCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFMaXN0LmNwcAkocmV2aXNpb24gMTE1MTAyKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDE1IEBAIE1l
ZGlhUXVlcnlTZXQ6Ok1lZGlhUXVlcnlTZXQoY29uc3QgU3RyaW4KICAgICAgICAgcGFyc2UoImlu
dmFsaWQiKTsKIH0KIAorTWVkaWFRdWVyeVNldDo6TWVkaWFRdWVyeVNldChjb25zdCBNZWRpYVF1
ZXJ5U2V0JiBvKQorICAgIDogbV9mYWxsYmFja1RvRGVzY3JpcHRvcihvLm1fZmFsbGJhY2tUb0Rl
c2NyaXB0b3IpCisgICAgLCBtX2xhc3RMaW5lKG8ubV9sYXN0TGluZSkKKyAgICAsIG1fcXVlcmll
cyhvLm1fcXVlcmllcy5zaXplKCkpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
cXVlcmllcy5zaXplKCk7ICsraSkKKyAgICAgICAgbV9xdWVyaWVzW2ldID0gby5tX3F1ZXJpZXNb
aV0tPmNvcHkoKTsKK30KKwogTWVkaWFRdWVyeVNldDo6fk1lZGlhUXVlcnlTZXQoKQogewogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaAkocmV2aXNpb24gMTE1MTAyKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw5ICs2NCwxMiBAQCBw
dWJsaWM6CiAgICAgCiAgICAgU3RyaW5nIG1lZGlhVGV4dCgpIGNvbnN0OwogCisgICAgUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5U2V0PiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IE1l
ZGlhUXVlcnlTZXQoKnRoaXMpKTsgfQorCiBwcml2YXRlOgogICAgIE1lZGlhUXVlcnlTZXQoKTsK
ICAgICBNZWRpYVF1ZXJ5U2V0KGNvbnN0IFN0cmluZyYgbWVkaWFRdWVyeSwgYm9vbCBmYWxsYmFj
a1RvRGVzY3JpcHRpb24pOworICAgIE1lZGlhUXVlcnlTZXQoY29uc3QgTWVkaWFRdWVyeVNldCYp
OwogICAgIAogICAgIHVuc2lnbmVkIG1fZmFsbGJhY2tUb0Rlc2NyaXB0b3IgOiAxOyAvLyB0cnVl
IGlmIGZhaWxlZCBtZWRpYSBxdWVyeSBwYXJzaW5nIHNob3VsZCBmYWxsYmFjayB0byBtZWRpYSBk
ZXNjcmlwdGlvbiBwYXJzaW5nLgogICAgIHNpZ25lZCBtX2xhc3RMaW5lIDogMzE7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCShyZXZpc2lvbiAxMTUxMDIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsMTcg
QEAgTWVkaWFRdWVyeTo6TWVkaWFRdWVyeShSZXN0cmljdG9yIHIsIGNvbgogICAgIH0KIH0KIAor
TWVkaWFRdWVyeTo6TWVkaWFRdWVyeShjb25zdCBNZWRpYVF1ZXJ5JiBvKQorICAgIDogbV9yZXN0
cmljdG9yKG8ubV9yZXN0cmljdG9yKQorICAgICwgbV9tZWRpYVR5cGUoby5tX21lZGlhVHlwZSkK
KyAgICAsIG1fZXhwcmVzc2lvbnMoYWRvcHRQdHIobmV3IFZlY3RvcjxPd25QdHI8TWVkaWFRdWVy
eUV4cD4gPihvLm1fZXhwcmVzc2lvbnMtPnNpemUoKSkpKQorICAgICwgbV9pZ25vcmVkKG8ubV9p
Z25vcmVkKQorICAgICwgbV9zZXJpYWxpemF0aW9uQ2FjaGUoby5tX3NlcmlhbGl6YXRpb25DYWNo
ZSkKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9leHByZXNzaW9ucy0+c2l6ZSgp
OyArK2kpCisgICAgICAgICgqbV9leHByZXNzaW9ucylbaV0gPSBvLm1fZXhwcmVzc2lvbnMtPmF0
KGkpLT5jb3B5KCk7Cit9CisKIE1lZGlhUXVlcnk6On5NZWRpYVF1ZXJ5KCkKIHsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnkuaAkocmV2aXNpb24gMTE1MTAyKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVF1ZXJ5RXhwOwogCiBjbGFzcyBNZWRpYVF1ZXJ5
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVF1ZXJ5KTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51
bSBSZXN0cmljdG9yIHsKICAgICAgICAgT25seSwgTm90LCBOb25lCkBAIC01Niw3ICs1NiwxMSBA
QCBwdWJsaWM6CiAgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKICAgICBib29sIGlnbm9yZWQo
KSBjb25zdCB7IHJldHVybiBtX2lnbm9yZWQ7IH0KIAorICAgIFBhc3NPd25QdHI8TWVkaWFRdWVy
eT4gY29weSgpIGNvbnN0IHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVF1ZXJ5KCp0aGlzKSk7
IH0KKwogIHByaXZhdGU6CisgICAgTWVkaWFRdWVyeShjb25zdCBNZWRpYVF1ZXJ5Jik7CisKICAg
ICBSZXN0cmljdG9yIG1fcmVzdHJpY3RvcjsKICAgICBTdHJpbmcgbV9tZWRpYVR5cGU7CiAgICAg
T3duUHRyPEV4cHJlc3Npb25WZWN0b3I+IG1fZXhwcmVzc2lvbnM7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwLmgJKHJldmlzaW9uIDExNTEwMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwLmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDggQEAgcHVibGlj
OgogCiAgICAgU3RyaW5nIHNlcmlhbGl6ZSgpIGNvbnN0OwogCisgICAgUGFzc093blB0cjxNZWRp
YVF1ZXJ5RXhwPiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUXVlcnlF
eHAoKnRoaXMpKTsgfQorCiBwcml2YXRlOgogICAgIE1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWlj
U3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVzKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAkocmV2aXNpb24gMTE1MTAy
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04MSw2ICs4MSwxMyBAQCBTdHlsZVByb3BlcnR5U2V0OjpTdHlsZVByb3BlcnR5U2V0
KGNvbnN0CiAgICAgfQogfQogCitTdHlsZVByb3BlcnR5U2V0OjpTdHlsZVByb3BlcnR5U2V0KGNv
bnN0IFN0eWxlUHJvcGVydHlTZXQmIG8pCisgICAgOiBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRp
ZXMpCisgICAgLCBtX2Nzc1BhcnNlck1vZGUoby5tX2Nzc1BhcnNlck1vZGUpCisgICAgLCBtX293
bnNDU1NPTVdyYXBwZXIoZmFsc2UpCit7Cit9CisKIFN0eWxlUHJvcGVydHlTZXQ6On5TdHlsZVBy
b3BlcnR5U2V0KCkKIHsKICAgICBBU1NFUlQoIW1fb3duc0NTU09NV3JhcHBlciB8fCBwcm9wZXJ0
eVNldENTU09NV3JhcHBlck1hcCgpLmNvbnRhaW5zKHRoaXMpKTsKQEAgLTkzMSw3ICs5MzgsNyBA
QCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnJlbW92ZUVxdWl2YWxlbnRQCiAKIFBhc3NSZWZQdHI8
U3R5bGVQcm9wZXJ0eVNldD4gU3R5bGVQcm9wZXJ0eVNldDo6Y29weSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZVByb3BlcnR5U2V0KG1fcHJvcGVydGllcykpOworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVQcm9wZXJ0eVNldCgqdGhpcykpOwogfQogCiBQYXNz
UmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmNvcHlQcm9wZXJ0aWVz
SW5TZXQoY29uc3QgQ1NTUHJvcGVydHlJRCogc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgJKHJldmlzaW9uIDExNTEwMikK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTExMywxMCArMTEzLDEwIEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogRXhwYW5kIHRoZSBj
b25jZXB0IG9mIG11dGFibGUvaW1tdXRhYmxlIFN0eWxlUHJvcGVydHlTZXQuCiAgICAgYm9vbCBp
c011dGFibGUoKSBjb25zdCB7IHJldHVybiBtX293bnNDU1NPTVdyYXBwZXI7IH0KIAotICAgIAog
cHJpdmF0ZToKICAgICBTdHlsZVByb3BlcnR5U2V0KENTU1BhcnNlck1vZGUpOwogICAgIFN0eWxl
UHJvcGVydHlTZXQoY29uc3QgVmVjdG9yPENTU1Byb3BlcnR5PiYpOworICAgIFN0eWxlUHJvcGVy
dHlTZXQoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCYpOwogICAgIFN0eWxlUHJvcGVydHlTZXQoY29u
c3QgQ1NTUHJvcGVydHkqLCBpbnQgbnVtUHJvcGVydGllcywgQ1NTUGFyc2VyTW9kZSk7CiAKICAg
ICB2b2lkIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUu
Y3BwCShyZXZpc2lvbiAxMTUxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsMzUgQEAgdm9pZCBTdHlsZVJ1bGVCYXNlOjpk
ZXN0cm95KCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAorUGFzc1JlZlB0cjxTdHls
ZVJ1bGVCYXNlPiBTdHlsZVJ1bGVCYXNlOjpjb3B5KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHR5
cGUoKSkgeworICAgIGNhc2UgU3R5bGU6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25z
dCBTdHlsZVJ1bGUqPih0aGlzKS0+Y29weSgpOworICAgIGNhc2UgUGFnZToKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IFN0eWxlUnVsZVBhZ2UqPih0aGlzKS0+Y29weSgpOworICAg
IGNhc2UgRm9udEZhY2U6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBTdHlsZVJ1
bGVGb250RmFjZSo+KHRoaXMpLT5jb3B5KCk7CisgICAgY2FzZSBNZWRpYToKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IFN0eWxlUnVsZU1lZGlhKj4odGhpcyktPmNvcHkoKTsKKyAg
ICBjYXNlIFJlZ2lvbjoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFN0eWxlUnVs
ZVJlZ2lvbio+KHRoaXMpLT5jb3B5KCk7CisgICAgY2FzZSBJbXBvcnQ6CisgICAgICAgIC8vIEZJ
WE1FOiBDb3B5IGltcG9ydCBydWxlcy4KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiAwOworICAgIGNhc2UgS2V5ZnJhbWVzOgorICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Y29uc3QgU3R5bGVSdWxlS2V5ZnJhbWVzKj4odGhpcyktPmNvcHkoKTsKKyAgICBj
YXNlIFVua25vd246CisgICAgY2FzZSBDaGFyc2V0OgorICAgIGNhc2UgS2V5ZnJhbWU6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIFBhc3NSZWZQdHI8Q1NT
UnVsZT4gU3R5bGVSdWxlQmFzZTo6Y3JlYXRlQ1NTT01XcmFwcGVyKENTU1N0eWxlU2hlZXQqIHBh
cmVudFNoZWV0LCBDU1NSdWxlKiBwYXJlbnRSdWxlKSBjb25zdAogewogICAgIFJlZlB0cjxDU1NS
dWxlPiBydWxlOwpAQCAtMTE5LDYgKzE0OCwxMyBAQCBTdHlsZVJ1bGU6OlN0eWxlUnVsZShpbnQg
c291cmNlTGluZSkKIHsKIH0KIAorU3R5bGVSdWxlOjpTdHlsZVJ1bGUoY29uc3QgU3R5bGVSdWxl
JiBvKQorICAgIDogU3R5bGVSdWxlQmFzZShvKQorICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9w
ZXJ0aWVzLT5jb3B5KCkpCisgICAgLCBtX3NlbGVjdG9yTGlzdChvLm1fc2VsZWN0b3JMaXN0KQor
eworfQorCiBTdHlsZVJ1bGU6On5TdHlsZVJ1bGUoKQogewogfQpAQCAtMTMzLDYgKzE2OSwxMyBA
QCBTdHlsZVJ1bGVQYWdlOjpTdHlsZVJ1bGVQYWdlKCkKIHsKIH0KIAorU3R5bGVSdWxlUGFnZTo6
U3R5bGVSdWxlUGFnZShjb25zdCBTdHlsZVJ1bGVQYWdlJiBvKQorICAgIDogU3R5bGVSdWxlQmFz
ZShvKQorICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9wZXJ0aWVzLT5jb3B5KCkpCisgICAgLCBt
X3NlbGVjdG9yTGlzdChvLm1fc2VsZWN0b3JMaXN0KQoreworfQorCiBTdHlsZVJ1bGVQYWdlOjp+
U3R5bGVSdWxlUGFnZSgpCiB7CiB9CkBAIC0xNDcsNiArMTkwLDEyIEBAIFN0eWxlUnVsZUZvbnRG
YWNlOjpTdHlsZVJ1bGVGb250RmFjZSgpCiB7CiB9CiAKK1N0eWxlUnVsZUZvbnRGYWNlOjpTdHls
ZVJ1bGVGb250RmFjZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSYgbykKKyAgICA6IFN0eWxlUnVs
ZUJhc2UobykKKyAgICAsIG1fcHJvcGVydGllcyhvLm1fcHJvcGVydGllcy0+Y29weSgpKQorewor
fQorCiBTdHlsZVJ1bGVGb250RmFjZTo6flN0eWxlUnVsZUZvbnRGYWNlKCkKIHsKIH0KQEAgLTE2
Miw2ICsyMTEsMTQgQEAgU3R5bGVSdWxlQmxvY2s6OlN0eWxlUnVsZUJsb2NrKFR5cGUgdHlwZQog
ICAgIG1fY2hpbGRSdWxlcy5zd2FwKGFkb3B0UnVsZSk7CiB9CiAKK1N0eWxlUnVsZUJsb2NrOjpT
dHlsZVJ1bGVCbG9jayhjb25zdCBTdHlsZVJ1bGVCbG9jayYgbykKKyAgICA6IFN0eWxlUnVsZUJh
c2UobykKKyAgICAsIG1fY2hpbGRSdWxlcyhvLm1fY2hpbGRSdWxlcy5zaXplKCkpCit7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRSdWxlcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgbV9jaGlsZFJ1bGVzW2ldID0gby5tX2NoaWxkUnVsZXNbaV0tPmNvcHkoKTsKK30KKwogdm9p
ZCBTdHlsZVJ1bGVCbG9jazo6d3JhcHBlckluc2VydFJ1bGUodW5zaWduZWQgaW5kZXgsIFBhc3NS
ZWZQdHI8U3R5bGVSdWxlQmFzZT4gcnVsZSkKIHsKICAgICBtX2NoaWxkUnVsZXMuaW5zZXJ0KGlu
ZGV4LCBydWxlKTsKQEAgLTE3OCwxMCArMjM1LDIyIEBAIFN0eWxlUnVsZU1lZGlhOjpTdHlsZVJ1
bGVNZWRpYShQYXNzUmVmUHQKIHsKIH0KIAorU3R5bGVSdWxlTWVkaWE6OlN0eWxlUnVsZU1lZGlh
KGNvbnN0IFN0eWxlUnVsZU1lZGlhJiBvKQorICAgIDogU3R5bGVSdWxlQmxvY2sobykKKyAgICAs
IG1fbWVkaWFRdWVyaWVzKG8ubV9tZWRpYVF1ZXJpZXMtPmNvcHkoKSkKK3sKK30KKwogU3R5bGVS
dWxlUmVnaW9uOjpTdHlsZVJ1bGVSZWdpb24oVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4gPiogc2VsZWN0b3JzLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+ID4mIGFkb3B0UnVs
ZXMpCiAgICAgOiBTdHlsZVJ1bGVCbG9jayhSZWdpb24sIGFkb3B0UnVsZXMpCiB7CiAgICAgbV9z
ZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3Rvcigqc2VsZWN0b3JzKTsKIH0KIAorU3R5bGVS
dWxlUmVnaW9uOjpTdHlsZVJ1bGVSZWdpb24oY29uc3QgU3R5bGVSdWxlUmVnaW9uJiBvKQorICAg
IDogU3R5bGVSdWxlQmxvY2sobykKKyAgICAsIG1fc2VsZWN0b3JMaXN0KG8ubV9zZWxlY3Rvckxp
c3QpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlLmgJKHJldmlzaW9uIDExNTEwMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0
eWxlUnVsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBTdHlsZTsgfQogICAgIGJvb2wgaXNS
ZWdpb25SdWxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFJlZ2lvbjsgfQogICAgIGJvb2wg
aXNJbXBvcnRSdWxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IEltcG9ydDsgfQotICAgIAor
CisgICAgUGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPiBjb3B5KCkgY29uc3Q7CisKICAgICBpbnQg
c291cmNlTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlTGluZTsgfQogCiAgICAgdm9pZCBk
ZXJlZigpCkBAIC03Miw2ICs3NCw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFN0eWxl
UnVsZUJhc2UoVHlwZSB0eXBlLCBzaWduZWQgc291cmNlTGluZSA9IDApIDogbV90eXBlKHR5cGUp
LCBtX3NvdXJjZUxpbmUoc291cmNlTGluZSkgeyB9CisgICAgU3R5bGVSdWxlQmFzZShjb25zdCBT
dHlsZVJ1bGVCYXNlJiBvKSA6IG1fdHlwZShvLm1fdHlwZSksIG1fc291cmNlTGluZShvLm1fc291
cmNlTGluZSkgeyB9CisKICAgICB+U3R5bGVSdWxlQmFzZSgpIHsgfQogCiBwcml2YXRlOgpAQCAt
OTYsOCArMTAwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHdyYXBwZXJBZG9wdFNlbGVjdG9yTGlz
dChDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykgeyBtX3NlbGVjdG9yTGlzdC5hZG9wdChzZWxl
Y3RvcnMpOyB9CiAgICAgdm9pZCBzZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0
eVNldD4pOwogCisgICAgUGFzc1JlZlB0cjxTdHlsZVJ1bGU+IGNvcHkoKSBjb25zdCB7IHJldHVy
biBhZG9wdFJlZihuZXcgU3R5bGVSdWxlKCp0aGlzKSk7IH0KKwogcHJpdmF0ZToKICAgICBTdHls
ZVJ1bGUoaW50IHNvdXJjZUxpbmUpOworICAgIFN0eWxlUnVsZShjb25zdCBTdHlsZVJ1bGUmKTsK
IAogICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBtX3Byb3BlcnRpZXM7CiAgICAgQ1NTU2Vs
ZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwpAQCAtMTEzLDggKzEyMCwxMSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0Pik7CiAK
KyAgICBQYXNzUmVmUHRyPFN0eWxlUnVsZUZvbnRGYWNlPiBjb3B5KCkgY29uc3QgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFN0eWxlUnVsZUZvbnRGYWNlKCp0aGlzKSk7IH0KKwogcHJpdmF0ZToKICAg
ICBTdHlsZVJ1bGVGb250RmFjZSgpOworICAgIFN0eWxlUnVsZUZvbnRGYWNlKGNvbnN0IFN0eWxl
UnVsZUZvbnRGYWNlJik7CiAKICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gbV9wcm9wZXJ0
aWVzOwogfTsKQEAgLTEzMiw4ICsxNDIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgd3JhcHBlckFk
b3B0U2VsZWN0b3JMaXN0KENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JM
aXN0LmFkb3B0KHNlbGVjdG9ycyk7IH0KICAgICB2b2lkIHNldFByb3BlcnRpZXMoUGFzc1JlZlB0
cjxTdHlsZVByb3BlcnR5U2V0Pik7CiAKKyAgICBQYXNzUmVmUHRyPFN0eWxlUnVsZVBhZ2U+IGNv
cHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVSdWxlUGFnZSgqdGhpcykpOyB9
CisKIHByaXZhdGU6CiAgICAgU3R5bGVSdWxlUGFnZSgpOworICAgIFN0eWxlUnVsZVBhZ2UoY29u
c3QgU3R5bGVSdWxlUGFnZSYpOwogICAgIAogICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBt
X3Byb3BlcnRpZXM7CiAgICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwpAQCAtMTQ4
LDYgKzE2MSw3IEBAIHB1YmxpYzoKICAgICAKIHByb3RlY3RlZDoKICAgICBTdHlsZVJ1bGVCbG9j
ayhUeXBlLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+ID4mIGFkb3B0UnVsZSk7CisgICAg
U3R5bGVSdWxlQmxvY2soY29uc3QgU3R5bGVSdWxlQmxvY2smKTsKICAgICAKIHByaXZhdGU6CiAg
ICAgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+IG1fY2hpbGRSdWxlczsKQEAgLTE2Miw4
ICsxNzYsMTEgQEAgcHVibGljOgogCiAgICAgTWVkaWFRdWVyeVNldCogbWVkaWFRdWVyaWVzKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVF1ZXJpZXMuZ2V0KCk7IH0KIAorICAgIFBhc3NSZWZQdHI8
U3R5bGVSdWxlTWVkaWE+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVS
dWxlTWVkaWEoKnRoaXMpKTsgfQorCiBwcml2YXRlOgogICAgIFN0eWxlUnVsZU1lZGlhKFBhc3NS
ZWZQdHI8TWVkaWFRdWVyeVNldD4sIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRv
cHRSdWxlcyk7CisgICAgU3R5bGVSdWxlTWVkaWEoY29uc3QgU3R5bGVSdWxlTWVkaWEmKTsKIAog
ICAgIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBtX21lZGlhUXVlcmllczsKIH07CkBAIC0xNzcsOCAr
MTk0LDExIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JM
aXN0KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvckxpc3Q7IH0KIAorICAgIFBhc3NSZWZQdHI8
U3R5bGVSdWxlUmVnaW9uPiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxl
UnVsZVJlZ2lvbigqdGhpcykpOyB9CisKIHByaXZhdGU6CiAgICAgU3R5bGVSdWxlUmVnaW9uKFZl
Y3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVs
ZUJhc2U+ID4mIGFkb3B0UnVsZXMpOworICAgIFN0eWxlUnVsZVJlZ2lvbihjb25zdCBTdHlsZVJ1
bGVSZWdpb24mKTsKICAgICAKICAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rvckxpc3Q7CiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNw
cAkocmV2aXNpb24gMTE1MTAyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZy
YW1lc1J1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSwxNCBAQCBTdHlsZVJ1bGVL
ZXlmcmFtZXM6OlN0eWxlUnVsZUtleWZyYW1lcygpCiAgICAgOiBTdHlsZVJ1bGVCYXNlKEtleWZy
YW1lcywgMCkKIHsKIH0KLSAgICAKKworU3R5bGVSdWxlS2V5ZnJhbWVzOjpTdHlsZVJ1bGVLZXlm
cmFtZXMoY29uc3QgU3R5bGVSdWxlS2V5ZnJhbWVzJiBvKQorICAgIDogU3R5bGVSdWxlQmFzZShv
KQorICAgICwgbV9rZXlmcmFtZXMoby5tX2tleWZyYW1lcykKKyAgICAsIG1fbmFtZShvLm1fbmFt
ZSkKK3sKK30KKwogU3R5bGVSdWxlS2V5ZnJhbWVzOjp+U3R5bGVSdWxlS2V5ZnJhbWVzKCkKIHsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaAko
cmV2aXNpb24gMTE1MTAyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1l
c1J1bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlX2gKIAogI2luY2x1ZGUgIkNTU1J1bGUuaCIKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zOCw4ICszOSw2IEBAIGNsYXNzIENT
U1J1bGVMaXN0OwogY2xhc3MgU3R5bGVLZXlmcmFtZTsKIGNsYXNzIFdlYktpdENTU0tleWZyYW1l
UnVsZTsKIAotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLSAgICAKIGNsYXNzIFN0eWxlUnVs
ZUtleWZyYW1lcyA6IHB1YmxpYyBTdHlsZVJ1bGVCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTdHlsZVJ1bGVLZXlmcmFtZXMoKSk7IH0KQEAgLTU3LDkgKzU2LDEyIEBAIHB1YmxpYzoK
ICAgICAKICAgICBpbnQgZmluZEtleWZyYW1lSW5kZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0
OwogCisgICAgUGFzc1JlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+IGNvcHkoKSBjb25zdCB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU3R5bGVSdWxlS2V5ZnJhbWVzKCp0aGlzKSk7IH0KKwogcHJpdmF0
ZToKICAgICBTdHlsZVJ1bGVLZXlmcmFtZXMoKTsKLSAgICAKKyAgICBTdHlsZVJ1bGVLZXlmcmFt
ZXMoY29uc3QgU3R5bGVSdWxlS2V5ZnJhbWVzJik7CisKICAgICBWZWN0b3I8UmVmUHRyPFN0eWxl
S2V5ZnJhbWU+ID4gbV9rZXlmcmFtZXM7CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAJKHJldmlz
aW9uIDExNTEwMikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDYgQEAgU3R5bGVQcm9wZXJ0eVNldCogRWxl
bWVudEF0dHJpYnV0ZURhdGE6OgogewogICAgIGlmIChtX2lubGluZVN0eWxlRGVjbCAmJiAhbV9p
bmxpbmVTdHlsZURlY2wtPmlzTXV0YWJsZSgpKSB7CiAgICAgICAgIG1faW5saW5lU3R5bGVEZWNs
ID0gbV9pbmxpbmVTdHlsZURlY2wtPmNvcHkoKTsKLSAgICAgICAgbV9pbmxpbmVTdHlsZURlY2wt
PnNldENTU1BhcnNlck1vZGUoc3RyaWN0VG9DU1NQYXJzZXJNb2RlKGVsZW1lbnQtPmlzSFRNTEVs
ZW1lbnQoKSAmJiAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpKTsKICAgICAg
ICAgcmV0dXJuIG1faW5saW5lU3R5bGVEZWNsLmdldCgpOwogICAgIH0KICAgICByZXR1cm4gZW5z
dXJlSW5saW5lU3R5bGUoZWxlbWVudCk7Cg==
</data>
<flag name="review"
          id="144048"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="144051"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>