<?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>55587</bug_id>
          
          <creation_ts>2011-03-02 10:09:54 -0800</creation_ts>
          <short_desc>Support DOM memory usage estimation</short_desc>
          <delta_ts>2012-06-20 07:34:51 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>89568</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vitaly Repeshko">vitalyr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gregsimon</cc>
    
    <cc>koivisto</cc>
    
    <cc>loislo</cc>
    
    <cc>mnaganov</cc>
    
    <cc>pfeldman</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>360874</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-03-02 10:09:54 -0800</bug_when>
    <thetext>It would be useful to have an estimate on the amount of memory used by DOM structures. Using this data in the heap profiler in Web Inspector we can help web developers fix leaks in their applications. The heap profiler will be able to show that e.g. a particular JS wrapper is holding an XX megabyte DOM tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360886</commentid>
    <comment_count>1</comment_count>
      <attachid>84435</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-03-02 10:20:07 -0800</bug_when>
    <thetext>Created attachment 84435
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361443</commentid>
    <comment_count>2</comment_count>
      <attachid>84435</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-03-03 01:50:46 -0800</bug_when>
    <thetext>Comment on attachment 84435
WIP

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

&gt; Source/WebCore/dom/ContainerNode.cpp:691
&gt; +      child-&gt;estimateMemoryUsage(report);

nit: indent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361517</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-03-03 04:26:40 -0800</bug_when>
    <thetext>Looks good. It would also be nice to classify the memory usage to broad categories (strings, DOM, etc).

You could make addSelfSize a template function so you could avoid repeating sizeof() everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653452</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-06-20 07:34:51 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 89568 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84435</attachid>
            <date>2011-03-02 10:20:07 -0800</date>
            <delta_ts>2011-03-03 01:50:46 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>memory_usage.patch</filename>
            <type>text/plain</type>
            <size>14776</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMGE2MWM1Li40N2FiMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTEtMDMtMDIgIFZpdGFseSBSZXBlc2hrbyAgPHZpdGFseXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQg
RE9NIG1lbW9yeSB1c2FnZSBlc3RpbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NTU4NworCisgICAgICAgICogZG9tL0F0dHJpYnV0ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdHRyaWJ1dGU6OmVzdGltYXRlTWVtb3J5VXNhZ2UpOgorICAg
ICAgICAqIGRvbS9BdHRyaWJ1dGUuaDoKKyAgICAgICAgKiBkb20vQ2hhcmFjdGVyRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaGFyYWN0ZXJEYXRhOjplc3RpbWF0ZU1lbW9yeVVzYWdlKToK
KyAgICAgICAgKiBkb20vQ2hhcmFjdGVyRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hhcmFj
dGVyRGF0YTo6Z2V0T2JqZWN0U2l6ZSk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6ZXN0aW1hdGVNZW1vcnlVc2FnZSk6
CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRh
aW5lck5vZGU6OmdldE9iamVjdFNpemUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVzdGltYXRlTWVtb3J5VXNhZ2UpOgorICAgICAgICAq
IGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRPYmplY3RTaXpl
KToKKyAgICAgICAgKiBkb20vTWVtb3J5VXNhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlVc2FnZVJlcG9ydDo6TWVtb3J5VXNhZ2VSZXBvcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5VXNhZ2VSZXBvcnRJbXBsOjp+TWVtb3J5VXNhZ2VSZXBvcnRJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeVVzYWdlUmVwb3J0SW1wbDo6TWVtb3J5VXNhZ2VSZXBvcnRJbXBs
KToKKyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
bWVkTm9kZU1hcDo6ZXN0aW1hdGVNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL05hbWVkTm9k
ZU1hcC5oOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmVzdGltYXRlTWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpnZXRPYmplY3RTaXplKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRh
Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmVzdGltYXRlTWVtb3J5VXNhZ2Up
OgorICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1
YWxpZmllZE5hbWU6OmVzdGltYXRlTWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9RdWFsaWZp
ZWROYW1lLmg6CisKIDIwMTEtMDMtMDIgIE9sZWcgUm9tYXNoaW4gIDxyb21heGFAZ21haWwuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyaWJ1
dGUuY3BwCmluZGV4IDIwYzA1ZDguLjQwMDExMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyaWJ1dGUuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgorI2luY2x1ZGUgIk1lbW9yeVVzYWdlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIApAQCAtNjksNiArNzAsMTMgQEAgUGFzc1Jl
ZlB0cjxBdHRyPiBBdHRyaWJ1dGU6OmNyZWF0ZUF0dHJJZk5lZWRlZChFbGVtZW50KiBlKQogICAg
IHJldHVybiByLnJlbGVhc2UoKTsKIH0KIAordm9pZCBBdHRyaWJ1dGU6OmVzdGltYXRlTWVtb3J5
VXNhZ2UoTWVtb3J5VXNhZ2VSZXBvcnQmIHJlcG9ydCkKK3sKKyAgICByZXBvcnQuYWRkU2VsZlNp
emUoc2l6ZW9mKCp0aGlzKSk7CisgICAgbV9uYW1lLmVzdGltYXRlTWVtb3J5VXNhZ2UocmVwb3J0
KTsKKyAgICByZXBvcnQuYWRkU2hhcmVkU3RyaW5nKG1fdmFsdWUpOworfQorCiB2b2lkIEF0dHJp
YnV0ZTo6YmluZEF0dHIoQXR0ciogYXR0cikKIHsKICAgICBBU1NFUlQoIW1faGFzQXR0cik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQXR0cmlidXRlLmgKaW5kZXggY2Y4NGE2Zi4uNjM5YmM5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0F0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRy
aWJ1dGUuaApAQCAtODUsNiArODUsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzTWFwcGVkQXR0
cmlidXRlKCkgeyByZXR1cm4gbV9pc01hcHBlZEF0dHJpYnV0ZTsgfQogCisgICAgdm9pZCBlc3Rp
bWF0ZU1lbW9yeVVzYWdlKE1lbW9yeVVzYWdlUmVwb3J0Jik7CisKIHByaXZhdGU6CiAgICAgQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUsIGJvb2wgaXNNYXBwZWRBdHRyaWJ1dGUsIENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9u
KiBzdHlsZURlY2wpCiAgICAgICAgIDogbV9pc01hcHBlZEF0dHJpYnV0ZShpc01hcHBlZEF0dHJp
YnV0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAppbmRleCA2NDBlM2ZhLi4yYWU4
OGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJNZW1vcnlVc2Fn
ZS5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Lmgi
CiAKQEAgLTE3OSw2ICsxODAsMTIgQEAgdm9pZCBDaGFyYWN0ZXJEYXRhOjpkaXNwYXRjaE1vZGlm
aWVkRXZlbnQoU3RyaW5nSW1wbCogb2xkRGF0YSkKICNlbmRpZgogfQogCit2b2lkIENoYXJhY3Rl
ckRhdGE6OmVzdGltYXRlTWVtb3J5VXNhZ2UoTWVtb3J5VXNhZ2VSZXBvcnQmIHJlcG9ydCkKK3sK
KyAgICBOb2RlOjplc3RpbWF0ZU1lbW9yeVVzYWdlKHJlcG9ydCk7CisgICAgcmVwb3J0LmFkZFNo
YXJlZFN0cmluZyhtX2RhdGEpOworfQorCiB2b2lkIENoYXJhY3RlckRhdGE6OmNoZWNrQ2hhckRh
dGFPcGVyYXRpb24odW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBl
YyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaAppbmRleCAzMWRhNjNjLi5mOTY3MDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmgKQEAgLTU4LDYgKzU4LDkgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgc2V0RGF0YUltcGwoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBpbXBsKSB7
IG1fZGF0YSA9IGltcGw7IH0KICAgICB2b2lkIGRpc3BhdGNoTW9kaWZpZWRFdmVudChTdHJpbmdJ
bXBsKiBvbGRWYWx1ZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZXN0aW1hdGVNZW1vcnlVc2FnZShN
ZW1vcnlVc2FnZVJlcG9ydCYpOworICAgIHZpcnR1YWwgc2l6ZV90IGdldE9iamVjdFNpemUoKSBj
b25zdCB7IHJldHVybiBzaXplb2YoKnRoaXMpOyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBT
dHJpbmcgbm9kZVZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldE5vZGVWYWx1ZShj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAKaW5kZXggNTk0NWIxMy4uNzIxYzdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcApAQCAtNjg0LDYgKzY4NCwxMyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJlc3VtZVBv
c3RBdHRhY2hDYWxsYmFja3MoKQogICAgIC0tc19hdHRhY2hEZXB0aDsKIH0KIAordm9pZCBDb250
YWluZXJOb2RlOjplc3RpbWF0ZU1lbW9yeVVzYWdlKE1lbW9yeVVzYWdlUmVwb3J0JiByZXBvcnQp
Cit7CisgICAgTm9kZTo6ZXN0aW1hdGVNZW1vcnlVc2FnZShyZXBvcnQpOworICAgIGZvciAoTm9k
ZSogY2hpbGQgPSBtX2ZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKQorICAgICAgY2hpbGQtPmVzdGltYXRlTWVtb3J5VXNhZ2UocmVwb3J0KTsKK30KKwogdm9p
ZCBDb250YWluZXJOb2RlOjpxdWV1ZVBvc3RBdHRhY2hDYWxsYmFjayhOb2RlQ2FsbGJhY2sgY2Fs
bGJhY2ssIE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFzX3Bvc3RBdHRhY2hDYWxsYmFja1F1ZXVl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggNzZlYjFiZC4uNmQxYmU2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgc2V0Rmlyc3RDaGlsZChOb2RlKiBjaGlsZCkgeyBtX2ZpcnN0Q2hpbGQgPSBj
aGlsZDsgfQogICAgIHZvaWQgc2V0TGFzdENoaWxkKE5vZGUqIGNoaWxkKSB7IG1fbGFzdENoaWxk
ID0gY2hpbGQ7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBlc3RpbWF0ZU1lbW9yeVVzYWdlKE1lbW9y
eVVzYWdlUmVwb3J0Jik7CisgICAgdmlydHVhbCBzaXplX3QgZ2V0T2JqZWN0U2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIHNpemVvZigqdGhpcyk7IH0KKwogcHJpdmF0ZToKICAgICAvLyBOZXZlciBjYWxs
IHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkuICBJZiB5b3UncmUgdHJ5aW5nIHRvIGNhbGwgdGhpcwog
ICAgIC8vIGZ1bmN0aW9uLCB5b3VyIGNvZGUgaXMgZWl0aGVyIHdyb25nIG9yIHlvdSdyZSBzdXBw
b3NlZCB0byBjYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZThkOWY1OC4uYTFlMDBlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJNZW1vcnlVc2FnZS5oIgogI2luY2x1ZGUg
Ik5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgpAQCAtMjg3LDYgKzI4OCwxMyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZO
ZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCkKICAgICB9CiB9CiAKK3ZvaWQgRWxlbWVudDo6ZXN0
aW1hdGVNZW1vcnlVc2FnZShNZW1vcnlVc2FnZVJlcG9ydCYgcmVwb3J0KQoreworICAgIENvbnRh
aW5lck5vZGU6OmVzdGltYXRlTWVtb3J5VXNhZ2UocmVwb3J0KTsKKyAgICBpZiAobV9hdHRyaWJ1
dGVNYXApCisgICAgICAgIG1fYXR0cmlidXRlTWFwLT5lc3RpbWF0ZU1lbW9yeVVzYWdlKHJlcG9y
dCk7Cit9CisKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhpbnQgdW5pdHMsIFNjcm9sbEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNzUxZTdlOS4u
Y2YzMzg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zNjAsNiArMzYwLDkgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgcmVjYWxjU3R5bGVJZk5lZWRlZEFmdGVyQXR0cmlidXRlQ2hhbmdlZChBdHRy
aWJ1dGUqKTsKICAgICB2b2lkIHVwZGF0ZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUq
KTsKIAorICAgIHZpcnR1YWwgdm9pZCBlc3RpbWF0ZU1lbW9yeVVzYWdlKE1lbW9yeVVzYWdlUmVw
b3J0Jik7CisgICAgdmlydHVhbCBzaXplX3QgZ2V0T2JqZWN0U2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IHNpemVvZigqdGhpcyk7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbEJ5VW5pdHMoaW50
IHVuaXRzLCBTY3JvbGxHcmFudWxhcml0eSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZW1vcnlVc2FnZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeVVzYWdlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcwYTZjZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlVc2FnZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqIAorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIE1lbW9yeVVzYWdlX2gKKyNkZWZpbmUgTWVtb3J5VXNhZ2VfaAorCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBNZW1vcnlVc2FnZVJlcG9ydEltcGw7CisKK2NsYXNzIE1lbW9y
eVVzYWdlUmVwb3J0IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZW1vcnlVc2FnZVJlcG9y
dCk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVtb3J5VXNhZ2VSZXBvcnQoTWVtb3J5VXNhZ2VS
ZXBvcnRJbXBsKiBpbXBsKSA6IG1faW1wbChpbXBsKSB7IH0KKworICAgIHZvaWQgYWRkU2VsZlNp
emUoc2l6ZV90KTsKKyAgICB2b2lkIGFkZFNoYXJlZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAg
ICB2b2lkIGFkZFNoYXJlZFN0cmluZyhjb25zdCBBdG9taWNTdHJpbmcmKTsKKworcHJpdmF0ZToK
KyAgICBNZW1vcnlVc2FnZVJlcG9ydEltcGwqIG1faW1wbDsKK307CisKK2NsYXNzIE1lbW9yeVVz
YWdlUmVwb3J0SW1wbCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVtb3J5VXNhZ2VSZXBv
cnRJbXBsKTsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5NZW1vcnlVc2FnZVJlcG9ydEltcGwoKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWRkU2VsZlNpemUoc2l6ZV90KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGFkZFNoYXJlZE9iamVjdCh2b2lkKiwgc2l6ZV90LCBjb25zdCBjaGFyKiBsYWJlbCkg
PSAwOworCitwcm90ZWN0ZWQ6CisgICAgTWVtb3J5VXNhZ2VSZXBvcnRJbXBsKCkgeyB9Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBNZW1vcnlVc2FnZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTmFtZWROb2RlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAu
Y3BwCmluZGV4IDI4NjEyMjYuLmJiMTYyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9OYW1lZE5vZGVNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNZW1vcnlV
c2FnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMxMiw2ICszMTMsMTMgQEAgdm9p
ZCBOYW1lZE5vZGVNYXA6OnNldENsYXNzKGNvbnN0IFN0cmluZyYgY2xhc3NTdHIpCiAgICAgbV9j
bGFzc05hbWVzLnNldChjbGFzc1N0ciwgZWxlbWVudCgpLT5kb2N1bWVudCgpLT5pblF1aXJrc01v
ZGUoKSk7IAogfQogCit2b2lkIE5hbWVkTm9kZU1hcDo6ZXN0aW1hdGVNZW1vcnlVc2FnZShNZW1v
cnlVc2FnZVJlcG9ydCYgcmVwb3J0KQoreworICAgIHJlcG9ydC5hZGRTZWxmU2l6ZShzaXplb2Yo
KnRoaXMpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoKCk7IGkrKykKKyAg
ICAgICAgYXR0cmlidXRlSXRlbShpKS0+ZXN0aW1hdGVNZW1vcnlVc2FnZShyZXBvcnQpOworfQor
CiBpbnQgTmFtZWROb2RlTWFwOjpkZWNsQ291bnQoKSBjb25zdAogewogICAgIGludCByZXN1bHQg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5oCmluZGV4IGMzYzJjZDkuLjQyMGVhY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmgKQEAgLTEwMiw2ICsxMDIsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkZWNsUmVtb3ZlZCgpIHsgbV9tYXBwZWRBdHRyaWJ1dGVDb3VudC0tOyB9CiAgICAg
dm9pZCBkZWNsQWRkZWQoKSB7IG1fbWFwcGVkQXR0cmlidXRlQ291bnQrKzsgfQogCisgICAgdm9p
ZCBlc3RpbWF0ZU1lbW9yeVVzYWdlKE1lbW9yeVVzYWdlUmVwb3J0Jik7CisKIHByaXZhdGU6CiAg
ICAgTmFtZWROb2RlTWFwKEVsZW1lbnQqIGVsZW1lbnQpIAogICAgICAgICA6IG1fbWFwcGVkQXR0
cmlidXRlQ291bnQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAwYzAxMTdjLi5kMGIxYWVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgogI2luY2x1ZGUgIkxhYmVsc05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIk1lbW9yeVVzYWdlLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
Ik11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAgLTI1MzIsNiAr
MjUzMywxMyBAQCB2b2lkIE5vZGU6Om1hcmtDYWNoZWROb2RlTGlzdHNTbG93KEpTQzo6TWFya1N0
YWNrJiBtYXJrU3RhY2ssIEpTQzo6SlNHbG9iYWxEYXRhJgogCiAjZW5kaWYKIAordm9pZCBOb2Rl
Ojplc3RpbWF0ZU1lbW9yeVVzYWdlKE1lbW9yeVVzYWdlUmVwb3J0JiByZXBvcnQpCit7CisgICAg
cmVwb3J0LmFkZFNlbGZTaXplKGdldE9iamVjdFNpemUoKSk7CisgICAgaWYgKGhhc1JhcmVEYXRh
KCkpCisgICAgICAgIHJhcmVEYXRhKCktPmVzdGltYXRlTWVtb3J5VXNhZ2UocmVwb3J0KTsKK30K
Kwogdm9pZCBOb2RlOjpoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCogZXZlbnQpCiB7CiAgICAgaWYg
KCFoYXNSYXJlRGF0YSgpIHx8ICFyYXJlRGF0YSgpLT5ldmVudFRhcmdldERhdGEoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCmluZGV4IDM1Y2U3MTguLjlmMmI5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNTUsOSArNTUsMTAg
QEAgY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSW50UmVjdDsKIGNsYXNz
IEtleWJvYXJkRXZlbnQ7CitjbGFzcyBNZW1vcnlVc2FnZVJlcG9ydDsKIGNsYXNzIE5TUmVzb2x2
ZXI7Ci1jbGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFzcyBOYW1lTm9kZUxpc3Q7CitjbGFzcyBOYW1l
ZE5vZGVNYXA7CiBjbGFzcyBOb2RlTGlzdDsKIGNsYXNzIE5vZGVSYXJlRGF0YTsKIGNsYXNzIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudDsKQEAgLTU2MCw2ICs1NjEsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKIAorICAgIHZpcnR1YWwgdm9p
ZCBlc3RpbWF0ZU1lbW9yeVVzYWdlKE1lbW9yeVVzYWdlUmVwb3J0Jik7CisKICNpZiBVU0UoSlND
KQogICAgIHZvaWQgbWFya0NhY2hlZE5vZGVMaXN0cyhKU0M6Ok1hcmtTdGFjayYgbWFya1N0YWNr
LCBKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICB7CkBAIC01NzEsNiArNTc0LDkg
QEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBzaXpl
X3QgZ2V0T2JqZWN0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHNpemVvZigqdGhpcyk7IH0KKwogcHJp
dmF0ZToKICAgICBlbnVtIE5vZGVGbGFncyB7CiAgICAgICAgIElzVGV4dEZsYWcgPSAxLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IGJhZGM0ZTEuLjY0MTI0NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJhcmVEYXRhLmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNsYXNzTm9k
ZUxpc3QuaCIKICNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJNZW1vcnlV
c2FnZS5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5h
bWUuaCIKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5oIgpAQCAtMTE3LDYgKzExOCwxNSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQog
ICAgIHZvaWQgc2V0Rm9jdXNlZChib29sIGZvY3VzZWQpIHsgbV9pc0ZvY3VzZWQgPSBmb2N1c2Vk
OyB9CiAKKyAgICB2b2lkIGVzdGltYXRlTWVtb3J5VXNhZ2UoTWVtb3J5VXNhZ2VSZXBvcnQmIHJl
cG9ydCkKKyAgICB7CisgICAgICAgIHJlcG9ydC5hZGRTZWxmU2l6ZShzaXplb2YoKnRoaXMpKTsK
KyAgICAgICAgaWYgKG1fbm9kZUxpc3RzKQorICAgICAgICAgICAgcmVwb3J0LmFkZFNlbGZTaXpl
KHNpemVvZigqbV9ub2RlTGlzdHMuZ2V0KCkpKTsKKyAgICAgICAgaWYgKG1fZXZlbnRUYXJnZXRE
YXRhKQorICAgICAgICAgICAgcmVwb3J0LmFkZFNlbGZTaXplKHNpemVvZigqbV9ldmVudFRhcmdl
dERhdGEuZ2V0KCkpKTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICAvLyBmb3IgRWxlbWVudFJh
cmVEYXRhCiAgICAgYm9vbCBuZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFj
aCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJB
dHRhY2g7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAppbmRleCA5MGM2ZDI5Li5l
N2E0ZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlICJNZW1v
cnlVc2FnZS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvU3RhdGljQ29uc3RydWN0b3JzLmg+CkBAIC0xMDIsNiAr
MTAzLDE1IEBAIFN0cmluZyBRdWFsaWZpZWROYW1lOjp0b1N0cmluZygpIGNvbnN0CiAgICAgcmV0
dXJuIGxvY2FsOwogfQogCit2b2lkIFF1YWxpZmllZE5hbWU6OmVzdGltYXRlTWVtb3J5VXNhZ2Uo
TWVtb3J5VXNhZ2VSZXBvcnQmIHJlcG9ydCkKK3sKKyAgICByZXBvcnQuYWRkU2VsZlNpemUoc2l6
ZW9mKCptX2ltcGwpKTsKKyAgICByZXBvcnQuYWRkU2hhcmVkU3RyaW5nKG1faW1wbC0+bV9wcmVm
aXgpOworICAgIHJlcG9ydC5hZGRTaGFyZWRTdHJpbmcobV9pbXBsLT5tX2xvY2FsTmFtZSk7Cisg
ICAgcmVwb3J0LmFkZFNoYXJlZFN0cmluZyhtX2ltcGwtPm1fbmFtZXNwYWNlKTsKKyAgICByZXBv
cnQuYWRkU2hhcmVkU3RyaW5nKG1faW1wbC0+bV9sb2NhbE5hbWVVcHBlcik7Cit9CisKIC8vIEds
b2JhbCBpbml0IHJvdXRpbmVzCiBERUZJTkVfR0xPQkFMKFF1YWxpZmllZE5hbWUsIGFueU5hbWUs
IG51bGxBdG9tLCBzdGFyQXRvbSwgc3RhckF0b20pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9RdWFsaWZpZWROYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5oCmluZGV4IGNiOTVmMjAuLjlmNTIyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUu
aApAQCAtODcsNyArODcsOSBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7
CiAKICAgICBRdWFsaWZpZWROYW1lSW1wbCogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbDsg
fQotICAgIAorCisgICAgdm9pZCBlc3RpbWF0ZU1lbW9yeVVzYWdlKE1lbW9yeVVzYWdlUmVwb3J0
Jik7CisKICAgICAvLyBJbml0IHJvdXRpbmUgZm9yIGdsb2JhbHMKICAgICBzdGF0aWMgdm9pZCBp
bml0KCk7CiAgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>