<?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>82832</bug_id>
          
          <creation_ts>2012-03-31 09:02:30 -0700</creation_ts>
          <short_desc>CSSStyleRules should own their CSSStyleDeclarations</short_desc>
          <delta_ts>2012-04-11 20:52:41 -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>kling</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>592870</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-31 09:02:30 -0700</bug_when>
    <thetext>Move the rule properties CSSOM wrapper ownership from the StylePropertySet to the rule itself. This is preparation for bug 82728 (Split remaining CSSRules into internal and CSSOM types) easier to do. This temporarily grows the size of CSSStyleRule by a pointer (82728 will give the memory back and more).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592875</commentid>
    <comment_count>1</comment_count>
      <attachid>134961</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-31 09:59:20 -0700</bug_when>
    <thetext>Created attachment 134961
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592881</commentid>
    <comment_count>2</comment_count>
      <attachid>134961</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-31 10:18:06 -0700</bug_when>
    <thetext>Comment on attachment 134961
patch

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

r=me with some sherlocking.

&gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.h:93
&gt; +    ~StyleRuleCSSStyleDeclaration();

Should be marked virtual.

&gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.h:97
&gt; +    virtual CSSRule* parentRule() const { return m_parentRule;  }
&gt;      virtual void setNeedsStyleRecalc();
&gt;      virtual CSSStyleSheet* contextStyleSheet() const;

We&apos;re missing some OVERRIDE decorations here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592891</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-31 11:03:09 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/112798</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592900</commentid>
    <comment_count>4</comment_count>
      <attachid>134961</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-31 11:58:36 -0700</bug_when>
    <thetext>Comment on attachment 134961
patch

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

&gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:309
&gt; +void StyleRuleCSSStyleDeclaration::ref()
&gt; +{ 
&gt; +    ++m_refCount;
&gt; +}

Isn&apos;t this just RefCounted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592901</commentid>
    <comment_count>5</comment_count>
      <attachid>134961</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-31 12:04:30 -0700</bug_when>
    <thetext>Comment on attachment 134961
patch

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

&gt;&gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:309
&gt;&gt; +}
&gt; 
&gt; Isn&apos;t this just RefCounted?

ref() and deref() are virtual here, for this subclass it&apos;s a simple RefCounted workalike, for e.g PropertySetCSSStyleDeclaration it forwards the refs/derefs to the underlying StylePropertySet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134961</attachid>
            <date>2012-03-31 09:59:20 -0700</date>
            <delta_ts>2012-03-31 12:04:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>property-wrapper-ownership.patch</filename>
            <type>text/plain</type>
            <size>22140</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjc5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBACisyMDEyLTAzLTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZVJ1bGVzIHNob3Vs
ZCBvd24gdGhlaXIgQ1NTU3R5bGVEZWNsYXJhdGlvbnMgCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjgzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIHJ1bGUgcHJvcGVydGllcyBDU1NPTSB3
cmFwcGVyIG93bmVyc2hpcCBmcm9tIHRoZSBTdHlsZVByb3BlcnR5U2V0IHRvIHRoZSBydWxlIGl0
c2VsZi4KKyAgICAgICAgVGhpcyBpcyBwcmVwYXJhdGlvbiBmb3IgYnVnIDgyNzI4IChTcGxpdCBy
ZW1haW5pbmcgQ1NTUnVsZXMgaW50byBpbnRlcm5hbCBhbmQgQ1NTT00gdHlwZXMpIGVhc2llciAK
KyAgICAgICAgdG8gZG8uIFRoaXMgdGVtcG9yYXJpbHkgZ3Jvd3MgdGhlIHNpemUgb2YgQ1NTU3R5
bGVSdWxlIGJ5IGEgcG9pbnRlciAoODI3Mjggd2lsbCBnaXZlIHRoZSBtZW1vcnkgYmFjayBhbmQg
bW9yZSkKKworICAgICAgICAqIGNzcy9DU1NGb250RmFjZVJ1bGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udEZhY2VSdWxlOjp+Q1NTRm9udEZhY2VSdWxlKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VSdWxlOjpzdHlsZSk6CisgICAgICAg
ICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChD
U1NGb250RmFjZVJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYWdlUnVsZTo6fkNTU1BhZ2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFnZVJ1bGU6OnN0eWxlKToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFnZVJ1bGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ1NTUGFnZVJ1bGUp
OgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVSdWxlOjp+Q1NTU3R5bGVSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVs
ZTo6c3R5bGUpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoQ1NTU3R5bGVSdWxlKToKKyAgICAgICAgCisgICAgICAgICAgICBNYWtl
IHRoZSBydWxlcyBvd24gdGhlIHByb3BlcnR5IENTU09NIHdyYXBwZXIuCisgICAgICAgIAorICAg
ICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogY3Nz
L1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpyZWYpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpkZXJlZik6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXROZWVkc1N0
eWxlUmVjYWxjKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRp
b246OmNvbnRleHRTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUNTU1N0eWxl
RGVjbGFyYXRpb246OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVDU1NTdHlsZURlY2xh
cmF0aW9uOjpkZXJlZik6CisgICAgICAgICogY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJh
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9u
OjpwYXJlbnRFbGVtZW50KToKKyAgICAgICAgKFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpjbGVhclBhcmVudFJ1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6U3R5bGVSdWxl
Q1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVDU1NTdHls
ZURlY2xhcmF0aW9uOjpwYXJlbnRSdWxlKToKKyAgICAgICAgCisgICAgICAgICAgICAtIFJlbmFt
ZSBSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbiAtPiBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9u
CisgICAgICAgICAgICAtIE1ha2UgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbiB1c2UgcmVn
dWxhciByZWZjb3VudGluZyBzaW5jZQorICAgICAgICAgICAgICBpdCBpcyBubyBsb25nZXIgb3du
ZWQgYnkgdGhlIHdyYXBwZWQgb2JqZWN0LgorICAgICAgICAgICAgLSBSZW5hbWUgaGFzQ1NTT01X
cmFwcGVyKCkgLT4gaXNNdXRhYmxlKCksIG1faGFzQ1NTT01XcmFwcGVyIC0+IG1fb3duc0NTU09N
V3JhcHBlcgorICAgICAgICAgICAgICB0byBtYXRjaCB0aGUgcHVycG9zZS4KKyAgICAgICAgCisg
ICAgICAgIChJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvU3R5bGVQ
cm9wZXJ0eVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0OjpTdHls
ZVByb3BlcnR5U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6On5TdHls
ZVByb3BlcnR5U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OmVuc3Vy
ZUNTU1N0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVByb3BlcnR5U2V0OjplbnN1cmVJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OmNsZWFyUGFyZW50RWxlbWVudCk6
CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuaDoKKyAgICAgICAgKFN0eWxlUHJvcGVy
dHlTZXQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6aXNNdXRhYmxlKToK
KyAgICAgICAgKiBkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudEF0dHJpYnV0ZURhdGE6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0YTo6dXBkYXRlSW5saW5lU3R5bGVBdm9p
ZGluZ011dGF0aW9uKToKKwogMjAxMi0wMy0zMSAgSm9uYXRoYW4gRG9uZyAgPGpvbmF0aGFuLmRv
bmdAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBodHRwIGF1dGhl
bnRpY2F0ZSBkaWFsb2cgcG9wdXAgb25seSBvbmNlIG5vIG1hdHRlciBhdXRoZW50aWNhdGlvbiBw
YXNzIG9yIGZhaWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwCShy
ZXZpc2lvbiAxMTI3MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsMTUgQEAgQ1NTRm9udEZhY2VSdWxlOjpDU1NG
b250RmFjZVJ1bGUoQ1NTU3R5bAogCiBDU1NGb250RmFjZVJ1bGU6On5DU1NGb250RmFjZVJ1bGUo
KQogewotICAgIGlmIChtX3N0eWxlKQotICAgICAgICBtX3N0eWxlLT5jbGVhclBhcmVudFJ1bGUo
dGhpcyk7CisgICAgaWYgKG1fcHJvcGVydGllc0NTU09NV3JhcHBlcikKKyAgICAgICAgbV9wcm9w
ZXJ0aWVzQ1NTT01XcmFwcGVyLT5jbGVhclBhcmVudFJ1bGUoKTsKK30KKworQ1NTU3R5bGVEZWNs
YXJhdGlvbiogQ1NTRm9udEZhY2VSdWxlOjpzdHlsZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3By
b3BlcnRpZXNDU1NPTVdyYXBwZXIpCisgICAgICAgIG1fcHJvcGVydGllc0NTU09NV3JhcHBlciA9
IFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShtX3N0eWxlLmdldCgpLCBjb25z
dF9jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KHRoaXMpKTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVz
Q1NTT01XcmFwcGVyLmdldCgpOwogfQogCiBTdHJpbmcgQ1NTRm9udEZhY2VSdWxlOjpjc3NUZXh0
KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmgJKHJldmlzaW9u
IDExMjcyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsMTEgKzIzLDE0IEBACiAjZGVmaW5lIENTU0ZvbnRGYWNlUnVsZV9oCiAK
ICNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCitjbGFzcyBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOwogCiBjbGFzcyBD
U1NGb250RmFjZVJ1bGUgOiBwdWJsaWMgQ1NTUnVsZSB7CiBwdWJsaWM6CkBAIC00Miw3ICs0NSw3
IEBAIHB1YmxpYzoKIAogICAgIH5DU1NGb250RmFjZVJ1bGUoKTsKIAotICAgIENTU1N0eWxlRGVj
bGFyYXRpb24qIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZS0+ZW5zdXJlUnVsZUNTU1N0
eWxlRGVjbGFyYXRpb24odGhpcyk7IH0KKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSgp
IGNvbnN0OwogCiAgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKIApAQCAtNTUsNiArNTgsOCBA
QCBwcml2YXRlOgogICAgIENTU0ZvbnRGYWNlUnVsZShDU1NTdHlsZVNoZWV0KiBwYXJlbnQpOwog
CiAgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1fc3R5bGU7CisgICAgCisgICAgbXV0YWJs
ZSBSZWZQdHI8U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9wcm9wZXJ0aWVzQ1NTT01X
cmFwcGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhZ2VSdWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFnZVJ1bGUuY3BwCShyZXZpc2lvbiAxMTI3MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFnZVJ1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNywxNSBAQCBDU1NQYWdl
UnVsZTo6Q1NTUGFnZVJ1bGUoQ1NTU3R5bGVTaGVldCogCiAKIENTU1BhZ2VSdWxlOjp+Q1NTUGFn
ZVJ1bGUoKQogewotICAgIG1fc3R5bGUtPmNsZWFyUGFyZW50UnVsZSh0aGlzKTsKKyAgICBpZiAo
bV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyKQorICAgICAgICBtX3Byb3BlcnRpZXNDU1NPTVdyYXBw
ZXItPmNsZWFyUGFyZW50UnVsZSgpOworfQorCitDU1NTdHlsZURlY2xhcmF0aW9uKiBDU1NQYWdl
UnVsZTo6c3R5bGUoKSBjb25zdAoreworICAgIGlmICghbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVy
KQorICAgICAgICBtX3Byb3BlcnRpZXNDU1NPTVdyYXBwZXIgPSBTdHlsZVJ1bGVDU1NTdHlsZURl
Y2xhcmF0aW9uOjpjcmVhdGUobV9zdHlsZS5nZXQoKSwgY29uc3RfY2FzdDxDU1NQYWdlUnVsZSo+
KHRoaXMpKTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyLmdldCgpOwogfQog
CiBTdHJpbmcgQ1NTUGFnZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuaAkocmV2aXNpb24gMTEyNzI5KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhZ2VSdWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1
ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKKyNpbmNsdWRlICJQ
cm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5
U2V0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CkBAIC0zMiw2ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTU2Vs
ZWN0b3I7CiBjbGFzcyBDU1NTZWxlY3Rvckxpc3Q7CitjbGFzcyBTdHlsZVJ1bGVDU1NTdHlsZURl
Y2xhcmF0aW9uOwogCiBjbGFzcyBDU1NQYWdlUnVsZSA6IHB1YmxpYyBDU1NSdWxlIHsKIHB1Ymxp
YzoKQEAgLTQxLDcgKzQzLDcgQEAgcHVibGljOgogICAgIH0KICAgICB+Q1NTUGFnZVJ1bGUoKTsK
IAotICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHls
ZS0+ZW5zdXJlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24odGhpcyk7IH0KKyAgICBDU1NTdHlsZURl
Y2xhcmF0aW9uKiBzdHlsZSgpIGNvbnN0OwogCiAgICAgU3RyaW5nIHNlbGVjdG9yVGV4dCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYpOwpAQCAtNTksNiAr
NjEsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1fc3R5bGU7
CiAgICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OworCisgICAgbXV0YWJsZSBSZWZQ
dHI8U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVy
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlUnVsZS5jcHAJKHJldmlzaW9uIDExMjcyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVJ1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
Q1NTU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNp
bmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtNDAsMTQgKzQxLDE2IEBAIENTU1N0
eWxlUnVsZTo6Q1NTU3R5bGVSdWxlKENTU1N0eWxlU2hlZXQKIAogQ1NTU3R5bGVSdWxlOjp+Q1NT
U3R5bGVSdWxlKCkKIHsKLSAgICBpZiAobV9zdHlsZVJ1bGUtPnByb3BlcnRpZXMoKSkKLSAgICAg
ICAgbV9zdHlsZVJ1bGUtPnByb3BlcnRpZXMoKS0+Y2xlYXJQYXJlbnRSdWxlKHRoaXMpOwogICAg
IGNsZWFudXAoKTsKKyAgICBpZiAobV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyKQorICAgICAgICBt
X3Byb3BlcnRpZXNDU1NPTVdyYXBwZXItPmNsZWFyUGFyZW50UnVsZSgpOwogfQogCiBDU1NTdHls
ZURlY2xhcmF0aW9uKiBDU1NTdHlsZVJ1bGU6OnN0eWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9zdHlsZVJ1bGUtPnByb3BlcnRpZXMoKS0+ZW5zdXJlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24o
dGhpcyk7CisgICAgaWYgKCFtX3Byb3BlcnRpZXNDU1NPTVdyYXBwZXIpCisgICAgICAgIG1fcHJv
cGVydGllc0NTU09NV3JhcHBlciA9IFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OmNyZWF0
ZShtX3N0eWxlUnVsZS0+cHJvcGVydGllcygpLCBjb25zdF9jYXN0PENTU1N0eWxlUnVsZSo+KHRo
aXMpKTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyLmdldCgpOwogfQogCiB0
eXBlZGVmIEhhc2hNYXA8Y29uc3QgQ1NTU3R5bGVSdWxlKiwgU3RyaW5nPiBTZWxlY3RvclRleHRD
YWNoZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgJKHJldmlzaW9uIDExMjcyOSkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1NlbGVjdG9yOwog
Y2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFy
YXRpb247CiBjbGFzcyBTdHlsZVJ1bGU7CiAKIGNsYXNzIENTU1N0eWxlUnVsZSA6IHB1YmxpYyBD
U1NSdWxlIHsKQEAgLTU2LDYgKzU3LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZ2VuZXJhdGVT
ZWxlY3RvclRleHQoKSBjb25zdDsKIAogICAgIE93blB0cjxTdHlsZVJ1bGU+IG1fc3R5bGVSdWxl
OworCisgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9w
cm9wZXJ0aWVzQ1NTT01XcmFwcGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gMTEyNzI5
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTAxLDcgKzExMDEsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hdGNoQWxs
UnVsZXMoTWF0CiAgICAgaWYgKG1fbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzICYmIG1fc3R5bGVk
RWxlbWVudCAmJiBtX3N0eWxlZEVsZW1lbnQtPmlubGluZVN0eWxlKCkpIHsKICAgICAgICAgLy8g
SW5saW5lIHN0eWxlIGlzIGltbXV0YWJsZSBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIENTU09NIHdy
YXBwZXIuCiAgICAgICAgIC8vIEZJWE1FOiBNZWRpYSBjb250cm9sIHNoYWRvdyB0cmVlcyBzZWVt
IHRvIGhhdmUgcHJvYmxlbXMgd2l0aCBjYWNoaW5nLgotICAgICAgICBib29sIGlzSW5saW5lU3R5
bGVDYWNoZWFibGUgPSAhbV9zdHlsZWRFbGVtZW50LT5pbmxpbmVTdHlsZSgpLT5oYXNDU1NPTVdy
YXBwZXIoKSAmJiAhbV9zdHlsZWRFbGVtZW50LT5pc0luU2hhZG93VHJlZSgpOworICAgICAgICBi
b29sIGlzSW5saW5lU3R5bGVDYWNoZWFibGUgPSAhbV9zdHlsZWRFbGVtZW50LT5pbmxpbmVTdHls
ZSgpLT5pc011dGFibGUoKSAmJiAhbV9zdHlsZWRFbGVtZW50LT5pc0luU2hhZG93VHJlZSgpOwog
ICAgICAgICAvLyBGSVhNRTogQ29uc3RpZnkuCiAgICAgICAgIGFkZEVsZW1lbnRTdHlsZVByb3Bl
cnRpZXMocmVzdWx0LCBjb25zdF9jYXN0PFN0eWxlUHJvcGVydHlTZXQqPihtX3N0eWxlZEVsZW1l
bnQtPmlubGluZVN0eWxlKCkpLCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uLmNwcAkocmV2aXNpb24gMTEyNzI5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1Byb3Bl
cnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsx
MTgsNyBAQCBib29sIFN0eWxlQXR0cmlidXRlTXV0YXRpb25TY29wZTo6c19zaG91CiAjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UKLSAgICAKKwogdm9pZCBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb246OnJlZigpCiB7IAogICAgIG1fcHJvcGVydHlTZXQtPnJlZigpOwpAQCAtMjg5LDggKzI4
OSwzMyBAQCBib29sIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Y3NzCiB7CiAgICAg
cmV0dXJuIG1fcHJvcGVydHlTZXQtPnByb3BlcnR5TWF0Y2hlcyhwcm9wZXJ0eSk7CiB9CisgICAg
CitTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0
aW9uKFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0LCBDU1NSdWxlKiBwYXJlbnRSdWxlKQor
ICAgIDogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKHByb3BlcnR5U2V0KQorICAgICwg
bV9yZWZDb3VudCgxKQorICAgICwgbV9wYXJlbnRSdWxlKHBhcmVudFJ1bGUpIAoreworICAgIG1f
cHJvcGVydHlTZXQtPnJlZigpOworfQorCitTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjp+
U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbigpCit7CisgICAgbV9wcm9wZXJ0eVNldC0+ZGVy
ZWYoKTsKK30KKwordm9pZCBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpyZWYoKQoreyAK
KyAgICArK21fcmVmQ291bnQ7Cit9CisKK3ZvaWQgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlv
bjo6ZGVyZWYoKQoreyAKKyAgICBBU1NFUlQobV9yZWZDb3VudCk7CisgICAgaWYgKCEtLW1fcmVm
Q291bnQpCisgICAgICAgIGRlbGV0ZSB0aGlzOworfQogCi12b2lkIFJ1bGVDU1NTdHlsZURlY2xh
cmF0aW9uOjpzZXROZWVkc1N0eWxlUmVjYWxjKCkKK3ZvaWQgU3R5bGVSdWxlQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6c2V0TmVlZHNTdHlsZVJlY2FsYygpCiB7CiAgICAgaWYgKENTU1N0eWxlU2hlZXQq
IHN0eWxlU2hlZXQgPSBjb250ZXh0U3R5bGVTaGVldCgpKSB7CiAgICAgICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSBzdHlsZVNoZWV0LT5maW5kRG9jdW1lbnQoKSkKQEAgLTI5OCw3ICszMjMs
NyBAQCB2b2lkIFJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXROZWVkc1N0CiAgICAgfQogfQog
ICAgIAotQ1NTU3R5bGVTaGVldCogUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OmNvbnRleHRTdHls
ZVNoZWV0KCkgY29uc3QKK0NTU1N0eWxlU2hlZXQqIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRp
b246OmNvbnRleHRTdHlsZVNoZWV0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wYXJlbnRSdWxl
ID8gbV9wYXJlbnRSdWxlLT5wYXJlbnRTdHlsZVNoZWV0KCkgOiAwOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAko
cmV2aXNpb24gMTEyNzI5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxNCArNDIsMTMgQEAgcHVibGlj
OgogICAgIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbihTdHlsZVByb3BlcnR5U2V0KiBw
cm9wZXJ0eVNldCkgOiBtX3Byb3BlcnR5U2V0KHByb3BlcnR5U2V0KSB7IH0KICAgICAKICAgICB2
aXJ0dWFsIFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAwOyB9
Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyUGFyZW50UnVsZSgpIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQYXJlbnRFbGVtZW50KCkgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogY29udGV4dFN0eWxlU2hl
ZXQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgCi1wcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCByZWYoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBPVkVSUklERTsKLSAg
ICAKKworcHJpdmF0ZToKICAgICB2aXJ0dWFsIENTU1J1bGUqIHBhcmVudFJ1bGUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiAwOyB9OwogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29u
c3QgT1ZFUlJJREU7CkBAIC03NiwyMSArNzUsMjggQEAgcHJvdGVjdGVkOgogICAgIFN0eWxlUHJv
cGVydHlTZXQqIG1fcHJvcGVydHlTZXQ7CiB9OwogCi1jbGFzcyBSdWxlQ1NTU3R5bGVEZWNsYXJh
dGlvbiA6IHB1YmxpYyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24KK2NsYXNzIFN0eWxl
UnVsZUNTU1N0eWxlRGVjbGFyYXRpb24gOiBwdWJsaWMgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uCiB7CiBwdWJsaWM6Ci0gICAgUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24oU3R5bGVQcm9w
ZXJ0eVNldCogcHJvcGVydHlTZXQsIENTU1J1bGUqIHBhcmVudFJ1bGUpCi0gICAgICAgIDogUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKHByb3BlcnR5U2V0KQotICAgICAgICAsIG1fcGFy
ZW50UnVsZShwYXJlbnRSdWxlKSAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVJ1bGVDU1NT
dHlsZURlY2xhcmF0aW9uPiBjcmVhdGUoU3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydHlTZXQsIENT
U1J1bGUqIHBhcmVudFJ1bGUpCiAgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0
eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24ocHJvcGVydHlTZXQsIHBhcmVudFJ1bGUpKTsKICAg
ICB9CisKKyAgICB2b2lkIGNsZWFyUGFyZW50UnVsZSgpIHsgbV9wYXJlbnRSdWxlID0gMDsgfQog
ICAgIAotcHJpdmF0ZTogICAgCi0gICAgdmlydHVhbCBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29u
c3QgeyByZXR1cm4gbV9wYXJlbnRSdWxlOyB9OwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclBhcmVu
dFJ1bGUoKSB7IG1fcGFyZW50UnVsZSA9IDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgT1ZFUlJJREU7CisKK3ByaXZhdGU6Cisg
ICAgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbihTdHlsZVByb3BlcnR5U2V0KiwgQ1NTUnVs
ZSopOworICAgIH5TdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uKCk7CisKKyAgICB2aXJ0dWFs
IENTU1J1bGUqIHBhcmVudFJ1bGUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudFJ1bGU7ICB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICB2aXJ0dWFsIENTU1N0
eWxlU2hlZXQqIGNvbnRleHRTdHlsZVNoZWV0KCkgY29uc3Q7CiAgICAgCisgICAgdW5zaWduZWQg
bV9yZWZDb3VudDsKICAgICBDU1NSdWxlKiBtX3BhcmVudFJ1bGU7CiB9OwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCShyZXZpc2lvbiAxMTI3MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDIxICs0NiwyMSBAQCBzdGF0aWMgUHJvcGVydHlTZXRDU1NPTVdyYXBwZXJNYXAmIHByb3Bl
CiAKIFN0eWxlUHJvcGVydHlTZXQ6OlN0eWxlUHJvcGVydHlTZXQoQ1NTUGFyc2VyTW9kZSBjc3NQ
YXJzZXJNb2RlKQogICAgIDogbV9jc3NQYXJzZXJNb2RlKGNzc1BhcnNlck1vZGUpCi0gICAgLCBt
X2hhc0NTU09NV3JhcHBlcihmYWxzZSkKKyAgICAsIG1fb3duc0NTU09NV3JhcHBlcihmYWxzZSkK
IHsKIH0KIAogU3R5bGVQcm9wZXJ0eVNldDo6U3R5bGVQcm9wZXJ0eVNldChjb25zdCBWZWN0b3I8
Q1NTUHJvcGVydHk+JiBwcm9wZXJ0aWVzKQogICAgIDogbV9wcm9wZXJ0aWVzKHByb3BlcnRpZXMp
CiAgICAgLCBtX2Nzc1BhcnNlck1vZGUoQ1NTU3RyaWN0TW9kZSkKLSAgICAsIG1faGFzQ1NTT01X
cmFwcGVyKGZhbHNlKQorICAgICwgbV9vd25zQ1NTT01XcmFwcGVyKGZhbHNlKQogewogICAgIG1f
cHJvcGVydGllcy5zaHJpbmtUb0ZpdCgpOwogfQogCiBTdHlsZVByb3BlcnR5U2V0OjpTdHlsZVBy
b3BlcnR5U2V0KGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGll
cywgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogICAgIDogbV9jc3NQYXJzZXJNb2RlKGNz
c1BhcnNlck1vZGUpCi0gICAgLCBtX2hhc0NTU09NV3JhcHBlcihmYWxzZSkKKyAgICAsIG1fb3du
c0NTU09NV3JhcHBlcihmYWxzZSkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBiZWxvbmdz
IGluIENTU1BhcnNlci4KIApAQCAtODQsOCArODQsOCBAQCBTdHlsZVByb3BlcnR5U2V0OjpTdHls
ZVByb3BlcnR5U2V0KGNvbnN0CiAKIFN0eWxlUHJvcGVydHlTZXQ6On5TdHlsZVByb3BlcnR5U2V0
KCkKIHsKLSAgICBBU1NFUlQoIW1faGFzQ1NTT01XcmFwcGVyIHx8IHByb3BlcnR5U2V0Q1NTT01X
cmFwcGVyTWFwKCkuY29udGFpbnModGhpcykpOwotICAgIGlmIChtX2hhc0NTU09NV3JhcHBlcikK
KyAgICBBU1NFUlQoIW1fb3duc0NTU09NV3JhcHBlciB8fCBwcm9wZXJ0eVNldENTU09NV3JhcHBl
ck1hcCgpLmNvbnRhaW5zKHRoaXMpKTsKKyAgICBpZiAobV9vd25zQ1NTT01XcmFwcGVyKQogICAg
ICAgICBwcm9wZXJ0eVNldENTU09NV3JhcHBlck1hcCgpLnJlbW92ZSh0aGlzKTsKIH0KIApAQCAt
OTQwLDUyICs5NDAsMzIgQEAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBTdHlsZVByb3Bl
cgogCiBDU1NTdHlsZURlY2xhcmF0aW9uKiBTdHlsZVByb3BlcnR5U2V0OjplbnN1cmVDU1NTdHls
ZURlY2xhcmF0aW9uKCkgY29uc3QKIHsKLSAgICBpZiAobV9oYXNDU1NPTVdyYXBwZXIpIHsKKyAg
ICBpZiAobV9vd25zQ1NTT01XcmFwcGVyKSB7CiAgICAgICAgIEFTU0VSVCghc3RhdGljX2Nhc3Q8
Q1NTU3R5bGVEZWNsYXJhdGlvbio+KHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRo
aXMpKS0+cGFyZW50UnVsZSgpKTsKICAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eVNldENTU09NV3Jh
cHBlck1hcCgpLmdldCh0aGlzKS0+cGFyZW50RWxlbWVudCgpKTsKICAgICAgICAgcmV0dXJuIHBy
b3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpOwogICAgIH0KLSAgICBtX2hhc0NT
U09NV3JhcHBlciA9IHRydWU7CisgICAgbV9vd25zQ1NTT01XcmFwcGVyID0gdHJ1ZTsKICAgICBQ
cm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29tV3JhcHBlciA9IG5ldyBQcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb24oY29uc3RfY2FzdDxTdHlsZVByb3BlcnR5U2V0Kj4odGhp
cykpOwogICAgIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuYWRkKHRoaXMsIGFkb3B0UHRy
KGNzc29tV3JhcHBlcikpOwogICAgIHJldHVybiBjc3NvbVdyYXBwZXI7CiB9CiAKLUNTU1N0eWxl
RGVjbGFyYXRpb24qIFN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZVJ1bGVDU1NTdHlsZURlY2xhcmF0
aW9uKGNvbnN0IENTU1J1bGUqIHBhcmVudFJ1bGUpIGNvbnN0Ci17Ci0gICAgaWYgKG1faGFzQ1NT
T01XcmFwcGVyKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxDU1NTdHlsZURlY2xhcmF0
aW9uKj4ocHJvcGVydHlTZXRDU1NPTVdyYXBwZXJNYXAoKS5nZXQodGhpcykpLT5wYXJlbnRSdWxl
KCkgPT0gcGFyZW50UnVsZSk7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVNldENTU09NV3JhcHBl
ck1hcCgpLmdldCh0aGlzKTsKLSAgICB9Ci0gICAgbV9oYXNDU1NPTVdyYXBwZXIgPSB0cnVlOwot
ICAgIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbiogY3Nzb21XcmFwcGVyID0gbmV3IFJ1
bGVDU1NTdHlsZURlY2xhcmF0aW9uKGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0eVNldCo+KHRoaXMp
LCBjb25zdF9jYXN0PENTU1J1bGUqPihwYXJlbnRSdWxlKSk7Ci0gICAgcHJvcGVydHlTZXRDU1NP
TVdyYXBwZXJNYXAoKS5hZGQodGhpcywgYWRvcHRQdHIoY3Nzb21XcmFwcGVyKSk7Ci0gICAgcmV0
dXJuIGNzc29tV3JhcHBlcjsKLX0KLQogQ1NTU3R5bGVEZWNsYXJhdGlvbiogU3R5bGVQcm9wZXJ0
eVNldDo6ZW5zdXJlSW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbihjb25zdCBTdHlsZWRFbGVtZW50
KiBwYXJlbnRFbGVtZW50KSBjb25zdAogewotICAgIGlmIChtX2hhc0NTU09NV3JhcHBlcikgewor
ICAgIGlmIChtX293bnNDU1NPTVdyYXBwZXIpIHsKICAgICAgICAgQVNTRVJUKHByb3BlcnR5U2V0
Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpLT5wYXJlbnRFbGVtZW50KCkgPT0gcGFyZW50RWxl
bWVudCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eVNldENTU09NV3JhcHBlck1hcCgpLmdldCh0
aGlzKTsKICAgICB9Ci0gICAgbV9oYXNDU1NPTVdyYXBwZXIgPSB0cnVlOworICAgIG1fb3duc0NT
U09NV3JhcHBlciA9IHRydWU7CiAgICAgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBj
c3NvbVdyYXBwZXIgPSBuZXcgSW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbihjb25zdF9jYXN0PFN0
eWxlUHJvcGVydHlTZXQqPih0aGlzKSwgY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50Kj4ocGFyZW50
RWxlbWVudCkpOwogICAgIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuYWRkKHRoaXMsIGFk
b3B0UHRyKGNzc29tV3JhcHBlcikpOwogICAgIHJldHVybiBjc3NvbVdyYXBwZXI7CiB9CiAKLXZv
aWQgU3R5bGVQcm9wZXJ0eVNldDo6Y2xlYXJQYXJlbnRSdWxlKENTU1J1bGUqIHJ1bGUpCi17Ci0g
ICAgaWYgKCFtX2hhc0NTU09NV3JhcHBlcikKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVF9V
TlVTRUQocnVsZSwgc3RhdGljX2Nhc3Q8Q1NTU3R5bGVEZWNsYXJhdGlvbio+KHByb3BlcnR5U2V0
Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpKS0+cGFyZW50UnVsZSgpID09IHJ1bGUpOwotICAg
IHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpLT5jbGVhclBhcmVudFJ1bGUo
KTsKLX0KLQogdm9pZCBTdHlsZVByb3BlcnR5U2V0OjpjbGVhclBhcmVudEVsZW1lbnQoU3R5bGVk
RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIW1faGFzQ1NTT01XcmFwcGVyKQorICAgIGlm
ICghbV9vd25zQ1NTT01XcmFwcGVyKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUX1VOVVNF
RChlbGVtZW50LCBwcm9wZXJ0eVNldENTU09NV3JhcHBlck1hcCgpLmdldCh0aGlzKS0+cGFyZW50
RWxlbWVudCgpID09IGVsZW1lbnQpOwogICAgIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCku
Z2V0KHRoaXMpLT5jbGVhclBhcmVudEVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnR5U2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydHlTZXQuaAkocmV2aXNpb24gMTEyNzI5KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydHlTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDE1ICsxMDMsMTUgQEAg
cHVibGljOgogICAgIAogICAgIFN0cmluZyBhc1RleHQoKSBjb25zdDsKICAgICAKLSAgICB2b2lk
IGNsZWFyUGFyZW50UnVsZShDU1NSdWxlKik7CiAgICAgdm9pZCBjbGVhclBhcmVudEVsZW1lbnQo
U3R5bGVkRWxlbWVudCopOwogCiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogZW5zdXJlQ1NTU3R5
bGVEZWNsYXJhdGlvbigpIGNvbnN0OwotICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGVuc3VyZVJ1
bGVDU1NTdHlsZURlY2xhcmF0aW9uKGNvbnN0IENTU1J1bGUqIHBhcmVudFJ1bGUpIGNvbnN0Owog
ICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGVuc3VyZUlubGluZUNTU1N0eWxlRGVjbGFyYXRpb24o
Y29uc3QgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCkgY29uc3Q7CiAgICAgCi0gICAgYm9v
bCBoYXNDU1NPTVdyYXBwZXIoKSBjb25zdCB7IHJldHVybiBtX2hhc0NTU09NV3JhcHBlcjsgfQor
ICAgIC8vIEZJWE1FOiBFeHBhbmQgdGhlIGNvbmNlcHQgb2YgbXV0YWJsZS9pbW11dGFibGUgU3R5
bGVQcm9wZXJ0eVNldC4KKyAgICBib29sIGlzTXV0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3du
c0NTU09NV3JhcHBlcjsgfQogCisgICAgCiBwcml2YXRlOgogICAgIFN0eWxlUHJvcGVydHlTZXQo
Q1NTUGFyc2VyTW9kZSk7CiAgICAgU3R5bGVQcm9wZXJ0eVNldChjb25zdCBWZWN0b3I8Q1NTUHJv
cGVydHk+Jik7CkBAIC0xMzYsNyArMTM2LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Q1NTUHJv
cGVydHksIDQ+IG1fcHJvcGVydGllczsKIAogICAgIHVuc2lnbmVkIG1fY3NzUGFyc2VyTW9kZSA6
IDI7Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBtX2hhc0NTU09NV3JhcHBlciA6IDE7CisgICAgbXV0
YWJsZSB1bnNpZ25lZCBtX293bnNDU1NPTVdyYXBwZXIgOiAxOwogICAgIAogICAgIGZyaWVuZCBj
bGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb247CiB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAJKHJldmlzaW9uIDExMjcyOSkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAKKyNpbmNsdWRlICJQcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAi
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogCkBAIC04NiwxMiArODcsMTUgQEAgV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlOjpXZWJLaXRDU1NLZXlmcmFtZQogCiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6
On5XZWJLaXRDU1NLZXlmcmFtZVJ1bGUoKQogewotICAgIG1fa2V5ZnJhbWUtPnByb3BlcnRpZXMo
KS0+Y2xlYXJQYXJlbnRSdWxlKHRoaXMpOworICAgIGlmIChtX3Byb3BlcnRpZXNDU1NPTVdyYXBw
ZXIpCisgICAgICAgIG1fcHJvcGVydGllc0NTU09NV3JhcHBlci0+Y2xlYXJQYXJlbnRSdWxlKCk7
CiB9CiAKLUNTU1N0eWxlRGVjbGFyYXRpb24qIFdlYktpdENTU0tleWZyYW1lUnVsZTo6c3R5bGUo
KSBjb25zdCAKLXsgCi0gICAgcmV0dXJuIG1fa2V5ZnJhbWUtPnByb3BlcnRpZXMoKSA/IG1fa2V5
ZnJhbWUtPnByb3BlcnRpZXMoKS0+ZW5zdXJlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24odGhpcykg
OiAwOyAKK0NTU1N0eWxlRGVjbGFyYXRpb24qIFdlYktpdENTU0tleWZyYW1lUnVsZTo6c3R5bGUo
KSBjb25zdAoreworICAgIGlmICghbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyKQorICAgICAgICBt
X3Byb3BlcnRpZXNDU1NPTVdyYXBwZXIgPSBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpj
cmVhdGUobV9rZXlmcmFtZS0+cHJvcGVydGllcygpLCBjb25zdF9jYXN0PFdlYktpdENTU0tleWZy
YW1lUnVsZSo+KHRoaXMpKTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyLmdl
dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oCShyZXZpc2lvbiAxMTI3MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDYgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTdHlsZVJ1bGVDU1NT
dHlsZURlY2xhcmF0aW9uOwogY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTsKIAogY2xhc3Mg
U3R5bGVLZXlmcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPFN0eWxlS2V5ZnJhbWU+IHsKQEAgLTgw
LDYgKzgxLDggQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxTdHlsZUtleWZyYW1lPiBtX2tleWZy
YW1lOwogICAgIAorICAgIG11dGFibGUgUmVmUHRyPFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRp
b24+IG1fcHJvcGVydGllc0NTU09NV3JhcHBlcjsKKyAgICAKICAgICBmcmllbmQgY2xhc3MgV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50QXR0cmlidXRlRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAkocmV2aXNpb24gMTEyNzI5KQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyAr
NjQsNyBAQCBTdHlsZVByb3BlcnR5U2V0KiBFbGVtZW50QXR0cmlidXRlRGF0YTo6CiAKIFN0eWxl
UHJvcGVydHlTZXQqIEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjplbnN1cmVNdXRhYmxlSW5saW5lU3R5
bGUoU3R5bGVkRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAobV9pbmxpbmVTdHlsZURlY2wg
JiYgIW1faW5saW5lU3R5bGVEZWNsLT5oYXNDU1NPTVdyYXBwZXIoKSkgeworICAgIGlmIChtX2lu
bGluZVN0eWxlRGVjbCAmJiAhbV9pbmxpbmVTdHlsZURlY2wtPmlzTXV0YWJsZSgpKSB7CiAgICAg
ICAgIG1faW5saW5lU3R5bGVEZWNsID0gbV9pbmxpbmVTdHlsZURlY2wtPmNvcHkoKTsKICAgICAg
ICAgbV9pbmxpbmVTdHlsZURlY2wtPnNldENTU1BhcnNlck1vZGUoc3RyaWN0VG9DU1NQYXJzZXJN
b2RlKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSAmJiAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5R
dWlya3NNb2RlKCkpKTsKICAgICAgICAgcmV0dXJuIG1faW5saW5lU3R5bGVEZWNsLmdldCgpOwpA
QCAtNzYsNyArNzYsNyBAQCB2b2lkIEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjp1cGRhdGVJbmxpbmVT
CiB7CiAgICAgLy8gV2UgcmVjb25zdHJ1Y3QgdGhlIHByb3BlcnR5IHNldCBpbnN0ZWFkIG9mIG11
dGF0aW5nIGlmIHRoZXJlIGlzIG5vIENTU09NIHdyYXBwZXIuCiAgICAgLy8gVGhpcyBtYWtlcyB3
cmFwcGVybGVzcyBwcm9wZXJ0eSBzZXRzIGltbXV0YWJsZSBhbmQgc28gY2FjaGVhYmxlLgotICAg
IGlmIChtX2lubGluZVN0eWxlRGVjbCAmJiAhbV9pbmxpbmVTdHlsZURlY2wtPmhhc0NTU09NV3Jh
cHBlcigpKQorICAgIGlmIChtX2lubGluZVN0eWxlRGVjbCAmJiAhbV9pbmxpbmVTdHlsZURlY2wt
PmlzTXV0YWJsZSgpKQogICAgICAgICBtX2lubGluZVN0eWxlRGVjbC5jbGVhcigpOwogICAgIGlm
ICghbV9pbmxpbmVTdHlsZURlY2wpIHsKICAgICAgICAgbV9pbmxpbmVTdHlsZURlY2wgPSBTdHls
ZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsK
</data>
<flag name="review"
          id="139358"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>