<?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>25569</bug_id>
          
          <creation_ts>2009-05-05 09:58:51 -0700</creation_ts>
          <short_desc>make ParserRefCounted use conventional reference counting</short_desc>
          <delta_ts>2009-05-05 16:50:57 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119982</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-05 09:58:51 -0700</bug_when>
    <thetext>Maciej suggests that we use a conventional reference counting scheme for parser nodes now that they are no longer kept around after compilation. This should give us a modest speedup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119996</commentid>
    <comment_count>1</comment_count>
      <attachid>30026</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-05 11:10:13 -0700</bug_when>
    <thetext>Created attachment 30026
patch

Can&apos;t measure a speedup yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120015</commentid>
    <comment_count>2</comment_count>
      <attachid>30033</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-05-05 13:44:59 -0700</bug_when>
    <thetext>Created attachment 30033
Sunspider results with this patch

Sunspider compare with this patch.  1.6% speedup overall.  Small slowdown noise on 4 tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120021</commentid>
    <comment_count>3</comment_count>
      <attachid>30035</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-05 15:01:17 -0700</bug_when>
    <thetext>Created attachment 30035
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120041</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-05 16:50:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/43259</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30026</attachid>
            <date>2009-05-05 11:10:13 -0700</date>
            <delta_ts>2009-05-05 15:01:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ParserRefCountedSpeedupPatch.txt</filename>
            <type>text/plain</type>
            <size>10298</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDQzMjM5KQorKysgSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsOCAr
MTU0LDYgQEAgX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb240bmFtZUVQTlNfMTJKUwogX19aTjNK
U0MxNkludGVybmFsRnVuY3Rpb25DMkVQTlNfMTJKU0dsb2JhbERhdGFFTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfOVN0cnVjdHVyZUVFRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxNkpTVmFyaWFi
bGVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNmdldFByb3BlcnR5TmFtZXNFUE5TXzlFeGVj
U3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFCi1fX1pOM0pTQzE2UGFyc2VyUmVmQ291bnRl
ZDNyZWZFdgotX19aTjNKU0MxNlBhcnNlclJlZkNvdW50ZWQ1ZGVyZWZFdgogX19aTjNKU0MxNnRv
VUludDMyU2xvd0Nhc2VFZFJiCiBfX1pOM0pTQzE3Qnl0ZWNvZGVHZW5lcmF0b3IyMXNldER1bXBz
R2VuZXJhdGVkQ29kZUViCiBfX1pOM0pTQzE3UHJvcGVydHlOYW1lQXJyYXkzYWRkRVBOU183VVN0
cmluZzNSZXBFCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAJKHJldmlzaW9uIDQzMjM5KQor
KysgSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgs
MjMgKzI4LDE4IEBACiAKICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiSklULmgiCiAj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5j
bHVkZSAiSlNTdGF0aWNTY29wZU9iamVjdC5oIgogI2luY2x1ZGUgIkxhYmVsU2NvcGUuaCIKKyNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIKICNpbmNsdWRlICJT
YW1wbGluZ1Rvb2wuaCIKLSNpbmNsdWRlICJEZWJ1Z2dlci5oIgotI2luY2x1ZGUgIkxleGVyLmgi
Ci0jaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgogCkBAIC04MCw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPE5vZGVSZWxlYXNlVmVj
dG9yPiBtX3ZlY3RvcjsKIH07CiAKLXZvaWQgTm9kZVJlbGVhc2VyOjpyZWxlYXNlQWxsTm9kZXMo
UGFyc2VyUmVmQ291bnRlZCogcm9vdCkKK0FMV0FZU19JTkxJTkUgdm9pZCBOb2RlUmVsZWFzZXI6
OnJlbGVhc2VBbGxOb2RlcyhQYXJzZXJSZWZDb3VudGVkKiByb290KQogewogICAgIEFTU0VSVChy
b290KTsKICAgICBOb2RlUmVsZWFzZXIgcmVsZWFzZXI7CkBAIC05Niw3ICs5MSw3IEBAIHZvaWQg
Tm9kZVJlbGVhc2VyOjpyZWxlYXNlQWxsTm9kZXMoUGFyc2UKICAgICB9CiB9CiAKLXZvaWQgTm9k
ZVJlbGVhc2VyOjphZG9wdChQYXNzUmVmUHRyPFBhcnNlclJlZkNvdW50ZWQ+IG5vZGUpCitBTFdB
WVNfSU5MSU5FIHZvaWQgTm9kZVJlbGVhc2VyOjphZG9wdChQYXNzUmVmUHRyPFBhcnNlclJlZkNv
dW50ZWQ+IG5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIGlmICghbm9kZS0+aGFzT25l
UmVmKCkpCkBAIC0xMjEsMTAzICsxMTYsMjQgQEAgdm9pZCBOb2RlUmVsZWFzZXI6OmFkb3B0RnVu
Y3Rpb25Cb2R5Tm9kZQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBhcnNlclJl
ZkNvdW50ZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogI2lm
bmRlZiBOREVCVUcKKwogc3RhdGljIFJlZkNvdW50ZWRMZWFrQ291bnRlciBwYXJzZXJSZWZDb3Vu
dGVkQ291bnRlcigiSlNDOjpOb2RlIik7Ci0jZW5kaWYKIAotUGFyc2VyUmVmQ291bnRlZDo6UGFy
c2VyUmVmQ291bnRlZChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCi0gICAgOiBtX2dsb2JhbERh
dGEoZ2xvYmFsRGF0YSkKK0FMV0FZU19JTkxJTkUgUGFyc2VyUmVmQ291bnRlZDo6UGFyc2VyUmVm
Q291bnRlZChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCiB7Ci0jaWZuZGVmIE5ERUJVRworICAg
IGdsb2JhbERhdGEtPnBhcnNlck9iamVjdHMuYXBwZW5kKGFkb3B0UmVmKHRoaXMpKTsKICAgICBw
YXJzZXJSZWZDb3VudGVkQ291bnRlci5pbmNyZW1lbnQoKTsKLSNlbmRpZgotICAgIGlmICghbV9n
bG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzKQotICAgICAgICBtX2dsb2JhbERhdGEtPm5ld1Bh
cnNlck9iamVjdHMgPSBuZXcgSGFzaFNldDxQYXJzZXJSZWZDb3VudGVkKj47Ci0gICAgbV9nbG9i
YWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzLT5hZGQodGhpcyk7Ci0gICAgQVNTRVJUKG1fZ2xvYmFs
RGF0YS0+bmV3UGFyc2VyT2JqZWN0cy0+Y29udGFpbnModGhpcykpOwogfQogCi1QYXJzZXJSZWZD
b3VudGVkOjp+UGFyc2VyUmVmQ291bnRlZCgpCitBTFdBWVNfSU5MSU5FIFBhcnNlclJlZkNvdW50
ZWQ6On5QYXJzZXJSZWZDb3VudGVkKCkKIHsKLSNpZm5kZWYgTkRFQlVHCiAgICAgcGFyc2VyUmVm
Q291bnRlZENvdW50ZXIuZGVjcmVtZW50KCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBQYXJzZXJSZWZD
b3VudGVkOjpyZWxlYXNlTm9kZXMoTm9kZVJlbGVhc2VyJikKLXsKLX0KLQotdm9pZCBQYXJzZXJS
ZWZDb3VudGVkOjpyZWYoKQotewotICAgIC8vIGJ1bXBpbmcgZnJvbSAwIHRvIDEgaXMganVzdCBy
ZW1vdmluZyBmcm9tIHRoZSBuZXcgbm9kZXMgc2V0Ci0gICAgaWYgKG1fZ2xvYmFsRGF0YS0+bmV3
UGFyc2VyT2JqZWN0cykgewotICAgICAgICBIYXNoU2V0PFBhcnNlclJlZkNvdW50ZWQqPjo6aXRl
cmF0b3IgaXQgPSBtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMtPmZpbmQodGhpcyk7Ci0g
ICAgICAgIGlmIChpdCAhPSBtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMtPmVuZCgpKSB7
Ci0gICAgICAgICAgICBtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMtPnJlbW92ZShpdCk7
Ci0gICAgICAgICAgICBBU1NFUlQoIW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZD
b3VudHMgfHwgIW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMtPmNvbnRh
aW5zKHRoaXMpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IEFTU0VSVCghbV9nbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzIHx8ICFtX2dsb2JhbERhdGEt
Pm5ld1BhcnNlck9iamVjdHMtPmNvbnRhaW5zKHRoaXMpKTsKLQotICAgIGlmICghbV9nbG9iYWxE
YXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cykKLSAgICAgICAgbV9nbG9iYWxEYXRhLT5w
YXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cyA9IG5ldyBIYXNoQ291bnRlZFNldDxQYXJzZXJSZWZD
b3VudGVkKj47Ci0gICAgbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cy0+
YWRkKHRoaXMpOwotfQotCi12b2lkIFBhcnNlclJlZkNvdW50ZWQ6OmRlcmVmKCkKLXsKLSAgICBB
U1NFUlQoIW1fZ2xvYmFsRGF0YS0+bmV3UGFyc2VyT2JqZWN0cyB8fCAhbV9nbG9iYWxEYXRhLT5u
ZXdQYXJzZXJPYmplY3RzLT5jb250YWlucyh0aGlzKSk7Ci0KLSAgICBpZiAoIW1fZ2xvYmFsRGF0
YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMpIHsKLSAgICAgICAgZGVsZXRlIHRoaXM7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBIYXNoQ291bnRlZFNldDxQYXJzZXJSZWZDb3Vu
dGVkKj46Oml0ZXJhdG9yIGl0ID0gbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNv
dW50cy0+ZmluZCh0aGlzKTsKLSAgICBpZiAoaXQgPT0gbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmpl
Y3RFeHRyYVJlZkNvdW50cy0+ZW5kKCkpCi0gICAgICAgIGRlbGV0ZSB0aGlzOwotICAgIGVsc2UK
LSAgICAgICAgbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cy0+cmVtb3Zl
KGl0KTsKLX0KLQotYm9vbCBQYXJzZXJSZWZDb3VudGVkOjpoYXNPbmVSZWYoKQotewotICAgIGlm
IChtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMgJiYgbV9nbG9iYWxEYXRhLT5uZXdQYXJz
ZXJPYmplY3RzLT5jb250YWlucyh0aGlzKSkgewotICAgICAgICBBU1NFUlQoIW1fZ2xvYmFsRGF0
YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMgfHwgIW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2Jq
ZWN0RXh0cmFSZWZDb3VudHMtPmNvbnRhaW5zKHRoaXMpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQotICAgIEFTU0VSVCghbV9nbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzIHx8
ICFtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMtPmNvbnRhaW5zKHRoaXMpKTsKLQotICAg
IGlmICghbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cykKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gIW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0
cmFSZWZDb3VudHMtPmNvbnRhaW5zKHRoaXMpOwogfQogCi12b2lkIFBhcnNlclJlZkNvdW50ZWQ6
OmRlbGV0ZU5ld09iamVjdHMoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotewotICAgIGlmICgh
Z2xvYmFsRGF0YS0+bmV3UGFyc2VyT2JqZWN0cykKLSAgICAgICAgcmV0dXJuOwotCi0jaWZuZGVm
IE5ERUJVRwotICAgIEhhc2hTZXQ8UGFyc2VyUmVmQ291bnRlZCo+OjppdGVyYXRvciBlbmQgPSBn
bG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzLT5lbmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8UGFy
c2VyUmVmQ291bnRlZCo+OjppdGVyYXRvciBpdCA9IGdsb2JhbERhdGEtPm5ld1BhcnNlck9iamVj
dHMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgQVNTRVJUKCFnbG9iYWxEYXRh
LT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cyB8fCAhZ2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0
RXh0cmFSZWZDb3VudHMtPmNvbnRhaW5zKCppdCkpOwogI2VuZGlmCi0gICAgZGVsZXRlQWxsVmFs
dWVzKCpnbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzKTsKLSAgICBkZWxldGUgZ2xvYmFsRGF0
YS0+bmV3UGFyc2VyT2JqZWN0czsKLSAgICBnbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzID0g
MDsKLX0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE5vZGUgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotTm9kZTo6Tm9kZShKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEpCi0gICAgOiBQYXJzZXJSZWZDb3VudGVkKGdsb2JhbERhdGEpCit2b2lkIFBhcnNlclJl
ZkNvdW50ZWQ6OnJlbGVhc2VOb2RlcyhOb2RlUmVsZWFzZXImKQogewotICAgIG1fbGluZSA9IGds
b2JhbERhdGEtPmxleGVyLT5saW5lTnVtYmVyKCk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpJbmRleDogSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHJldmlzaW9uIDQzMjM5KQor
KysgSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEz
ICsyOCwxMyBAQAogCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCisj
aW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJSZXN1bHRU
eXBlLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN5bWJvbFRhYmxlLmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgUExBVEZPUk0oWDg2KSAmJiBDT01QSUxFUihH
Q0MpCiAjZGVmaW5lIEpTQ19GQVNUX0NBTEwgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpCkBA
IC0xMDIsNyArMTAyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN3aXRjaFR5cGUgc3dp
dGNoVHlwZTsKICAgICB9OwogCi0gICAgY2xhc3MgUGFyc2VyUmVmQ291bnRlZCA6IE5vbmNvcHlh
YmxlIHsKKyAgICBjbGFzcyBQYXJzZXJSZWZDb3VudGVkIDogcHVibGljIFJlZkNvdW50ZWQ8UGFy
c2VyUmVmQ291bnRlZD4gewogICAgIHByb3RlY3RlZDoKICAgICAgICAgUGFyc2VyUmVmQ291bnRl
ZChKU0dsb2JhbERhdGEqKSBKU0NfRkFTVF9DQUxMOwogCkBAIC0xMTEsMjAgKzExMSwyNiBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICAvLyBOb25yZWN1cnNpdmUgZGVzdHJ1Y3Rpb24uCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTm9kZXMoTm9kZVJlbGVhc2VyJik7CisgICAgfTsK
IAotICAgICAgICB2b2lkIHJlZigpIEpTQ19GQVNUX0NBTEw7Ci0gICAgICAgIHZvaWQgZGVyZWYo
KSBKU0NfRkFTVF9DQUxMOwotICAgICAgICBib29sIGhhc09uZVJlZigpIEpTQ19GQVNUX0NBTEw7
Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgZGVsZXRlTmV3T2JqZWN0cyhKU0dsb2JhbERhdGEqKSBK
U0NfRkFTVF9DQUxMOworI2lmZGVmIE5ERUJVRworICAgIGlubGluZSBQYXJzZXJSZWZDb3VudGVk
OjpQYXJzZXJSZWZDb3VudGVkKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICB7CisgICAg
ICAgIGdsb2JhbERhdGEtPnBhcnNlck9iamVjdHMuYXBwZW5kKGFkb3B0UmVmKHRoaXMpKTsKKyAg
ICB9CiAKLSAgICBwcml2YXRlOgotICAgICAgICBKU0dsb2JhbERhdGEqIG1fZ2xvYmFsRGF0YTsK
LSAgICB9OworICAgIGlubGluZSBQYXJzZXJSZWZDb3VudGVkOjp+UGFyc2VyUmVmQ291bnRlZCgp
CisgICAgeworICAgIH0KKyNlbmRpZgogCiAgICAgY2xhc3MgTm9kZSA6IHB1YmxpYyBQYXJzZXJS
ZWZDb3VudGVkIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIE5vZGUoSlNHbG9iYWxEYXRhKikgSlND
X0ZBU1RfQ0FMTDsKKyAgICAgICAgTm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpIEpTQ19G
QVNUX0NBTEwKKyAgICAgICAgICAgIDogUGFyc2VyUmVmQ291bnRlZChnbG9iYWxEYXRhKQorICAg
ICAgICAgICAgLCBtX2xpbmUoZ2xvYmFsRGF0YS0+bGV4ZXItPmxpbmVOdW1iZXIoKSkKKyAgICAg
ICAgeworICAgICAgICB9CiAKICAgICAgICAgLyoKICAgICAgICAgICAgIFJldHVybiB2YWx1ZTog
VGhlIHJlZ2lzdGVyIGhvbGRpbmcgdGhlIHByb2R1Y3Rpb24ncyB2YWx1ZS4KSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCShyZXZpc2lvbiA0MzIzOSkKKysrIEphdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUGFy
c2VyOjpwYXJzZShKU0dsb2JhbERhdGEqIGdsb2JhbEQKICAgICBpbnQgbGluZU51bWJlciA9IGxl
eGVyLmxpbmVOdW1iZXIoKTsKICAgICBsZXhlci5jbGVhcigpOwogCi0gICAgUGFyc2VyUmVmQ291
bnRlZDo6ZGVsZXRlTmV3T2JqZWN0cyhnbG9iYWxEYXRhKTsKKyAgICBnbG9iYWxEYXRhLT5wYXJz
ZXJPYmplY3RzLnNocmluaygwKTsKIAogICAgIGlmIChwYXJzZUVycm9yIHx8IGxleEVycm9yKSB7
CiAgICAgICAgICplcnJMaW5lID0gbGluZU51bWJlcjsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDQzMjM5KQorKysgSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsOCArMTM0LDYg
QEAgSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoYm9vbCBpc1NoYXJlZAogI2VuZGlmCiAgICAg
LCBoZWFwKHRoaXMpCiAgICAgLCBpbml0aWFsaXppbmdMYXp5TnVtZXJpY0NvbXBhcmVGdW5jdGlv
bihmYWxzZSkKLSAgICAsIG5ld1BhcnNlck9iamVjdHMoMCkKLSAgICAsIHBhcnNlck9iamVjdEV4
dHJhUmVmQ291bnRzKDApCiAgICAgLCBoZWFkKDApCiAgICAgLCBkeW5hbWljR2xvYmFsT2JqZWN0
KDApCiAgICAgLCBzY29wZU5vZGVCZWluZ1JlcGFyc2VkKDApCkBAIC0xODQsOSArMTgyLDYgQEAg
SlNHbG9iYWxEYXRhOjp+SlNHbG9iYWxEYXRhKCkKICAgICBkZWxldGUgcHJvcGVydHlOYW1lczsK
ICAgICBkZWxldGVJZGVudGlmaWVyVGFibGUoaWRlbnRpZmllclRhYmxlKTsKIAotICAgIGRlbGV0
ZSBuZXdQYXJzZXJPYmplY3RzOwotICAgIGRlbGV0ZSBwYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50
czsKLSAgICAKICAgICBkZWxldGUgY2xpZW50RGF0YTsKIH0KIApJbmRleDogSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsRGF0YS5oCShyZXZpc2lvbiA0MzIzOSkKKysrIEphdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw4ICsxNDEsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBIYXNoTWFwPE9wYXF1ZUpTQ2xhc3MqLCBPcGFx
dWVKU0NsYXNzQ29udGV4dERhdGEqPiBvcGFxdWVKU0NsYXNzRGF0YTsKIAotICAgICAgICBIYXNo
U2V0PFBhcnNlclJlZkNvdW50ZWQqPiogbmV3UGFyc2VyT2JqZWN0czsKLSAgICAgICAgSGFzaENv
dW50ZWRTZXQ8UGFyc2VyUmVmQ291bnRlZCo+KiBwYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50czsK
KyAgICAgICAgVmVjdG9yPFJlZlB0cjxQYXJzZXJSZWZDb3VudGVkPiA+IHBhcnNlck9iamVjdHM7
CiAKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGhlYWQ7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0
KiBkeW5hbWljR2xvYmFsT2JqZWN0OwpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL1Bhc3NSZWZQ
dHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvUGFzc1JlZlB0ci5oCShyZXZp
c2lvbiA0MzIzOSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9QYXNzUmVmUHRyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIFBhc3NSZWZQ
dHIoY29uc3QgUGFzc1JlZlB0ciYgbykgOiBtX3B0cihvLnJlbGVhc2VSZWYoKSkge30KICAgICAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IFBhc3NSZWZQdHIoY29uc3QgUGFzc1JlZlB0cjxVPiYg
bykgOiBtX3B0cihvLnJlbGVhc2VSZWYoKSkgeyB9CiAKLSAgICAgICAgQUxXQVlTX0lOTElORSB+
UGFzc1JlZlB0cigpIHsgaWYgKFQqIHB0ciA9IG1fcHRyKSBwdHItPmRlcmVmKCk7IH0KKyAgICAg
ICAgQUxXQVlTX0lOTElORSB+UGFzc1JlZlB0cigpIHsgaWYgKFVOTElLRUxZKG1fcHRyICE9IDAp
KSBtX3B0ci0+ZGVyZWYoKTsgfQogICAgICAgICAKICAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFU+
IAogICAgICAgICBQYXNzUmVmUHRyKGNvbnN0IFJlZlB0cjxVPiYgbykgOiBtX3B0cihvLmdldCgp
KSB7IGlmIChUKiBwdHIgPSBtX3B0cikgcHRyLT5yZWYoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>30033</attachid>
            <date>2009-05-05 13:44:59 -0700</date>
            <delta_ts>2009-05-05 13:44:59 -0700</delta_ts>
            <desc>Sunspider results with this patch</desc>
            <filename>sunspider-compare.txt</filename>
            <type>text/plain</type>
            <size>3515</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">VEVTVCAgICAgICAgICAgICAgICAgICBDT01QQVJJU09OICAgICAgICAgICAgRlJPTSAgICAgICAg
ICAgICAgICAgVE8gICAgICAgICAgICAgREVUQUlMUwoKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioq
IFRPVEFMICoqOiAgICAgICAgICAgMS4wMTZ4IGFzIGZhc3QgICAgNzk2LjltcyArLy0gMC4zJSAg
IDc4NC40bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50Cgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoK
ICAzZDogICAgICAgICAgICAgICAgICAxLjAxNXggYXMgZmFzdCAgICAxNTQuNG1zICsvLSAwLjIl
ICAgMTUyLjFtcyArLy0gMC4xJSAgICAgc2lnbmlmaWNhbnQKICAgIGN1YmU6ICAgICAgICAgICAg
ICAtICAgICAgICAgICAgICAgICAgNTcuMW1zICsvLSAwLjIlICAgIDU3LjBtcyArLy0gMC4xJSAK
ICAgIG1vcnBoOiAgICAgICAgICAgICAxLjAzMHggYXMgZmFzdCAgICAgNTguOW1zICsvLSAwLjMl
ICAgIDU3LjJtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIHJheXRyYWNlOiAgICAgICAg
ICAxLjAxM3ggYXMgZmFzdCAgICAgMzguNG1zICsvLSAwLjUlICAgIDM3LjltcyArLy0gMC4zJSAg
ICAgc2lnbmlmaWNhbnQKCiAgYWNjZXNzOiAgICAgICAgICAgICAgMS4wMTF4IGFzIGZhc3QgICAg
IDc0LjltcyArLy0gMC40JSAgICA3NC4xbXMgKy8tIDAuNSUgICAgIHNpZ25pZmljYW50CiAgICBi
aW5hcnktdHJlZXM6ICAgICAgLSAgICAgICAgICAgICAgICAgIDEwLjZtcyArLy0gMS44JSAgICAx
MC41bXMgKy8tIDEuOCUgCiAgICBmYW5ua3VjaDogICAgICAgICAgPz8gICAgICAgICAgICAgICAg
IDE1LjJtcyArLy0gMS4wJSAgICAxNS4zbXMgKy8tIDEuMSUgICAgIG5vdCBjb25jbHVzaXZlOiBt
aWdodCBiZSAqMS4wMDR4IGFzIHNsb3cqCiAgICBuYm9keTogICAgICAgICAgICAgMS4wMTh4IGFz
IGZhc3QgICAgIDQwLjFtcyArLy0gMC4zJSAgICAzOS40bXMgKy8tIDAuNSUgICAgIHNpZ25pZmlj
YW50CiAgICBuc2lldmU6ICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgICA5LjBtcyArLy0g
MC44JSAgICAgOC45bXMgKy8tIDEuMSUgCgogIGJpdG9wczogICAgICAgICAgICAgIC0gICAgICAg
ICAgICAgICAgICAzMy40bXMgKy8tIDAuOCUgICAgMzMuMm1zICsvLSAwLjglIAogICAgM2JpdC1i
aXRzLWluLWJ5dGU6IC0gICAgICAgICAgICAgICAgICAgMy43bXMgKy8tIDQuOSUgICAgIDMuNm1z
ICsvLSA1LjIlIAogICAgYml0cy1pbi1ieXRlOiAgICAgIC0gICAgICAgICAgICAgICAgICAgNy43
bXMgKy8tIDIuMyUgICAgIDcuN21zICsvLSAyLjMlIAogICAgYml0d2lzZS1hbmQ6ICAgICAgID8/
ICAgICAgICAgICAgICAgICAgMy40bXMgKy8tIDUuNSUgICAgIDMuNG1zICsvLSA1LjUlICAgICBu
b3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDEweCBhcyBzbG93KgogICAgbnNpZXZlLWJpdHM6
ICAgICAgIC0gICAgICAgICAgICAgICAgICAxOC42bXMgKy8tIDEuMCUgICAgMTguNW1zICsvLSAx
LjAlIAoKICBjb250cm9sZmxvdzogICAgICAgICAtICAgICAgICAgICAgICAgICAgIDQuOG1zICsv
LSAzLjIlICAgICA0LjdtcyArLy0gMy42JSAKICAgIHJlY3Vyc2l2ZTogICAgICAgICAtICAgICAg
ICAgICAgICAgICAgIDQuOG1zICsvLSAzLjIlICAgICA0LjdtcyArLy0gMy42JSAKCiAgY3J5cHRv
OiAgICAgICAgICAgICAgMS4wMjl4IGFzIGZhc3QgICAgIDU2LjBtcyArLy0gMC40JSAgICA1NC40
bXMgKy8tIDAuMyUgICAgIHNpZ25pZmljYW50CiAgICBhZXM6ICAgICAgICAgICAgICAgMS4wNDl4
IGFzIGZhc3QgICAgIDE3LjhtcyArLy0gMC44JSAgICAxNy4wbXMgKy8tIDAuMCUgICAgIHNpZ25p
ZmljYW50CiAgICBtZDU6ICAgICAgICAgICAgICAgMS4wMzV4IGFzIGZhc3QgICAgIDIwLjBtcyAr
Ly0gMC42JSAgICAxOS4zbXMgKy8tIDAuOSUgICAgIHNpZ25pZmljYW50CiAgICBzaGExOiAgICAg
ICAgICAgICAgLSAgICAgICAgICAgICAgICAgIDE4LjJtcyArLy0gMC44JSAgICAxOC4xbXMgKy8t
IDAuNiUgCgogIGRhdGU6ICAgICAgICAgICAgICAgIDEuMDQxeCBhcyBmYXN0ICAgICA4NC4wbXMg
Ky8tIDAuMyUgICAgODAuN21zICsvLSAwLjMlICAgICBzaWduaWZpY2FudAogICAgZm9ybWF0LXRv
ZnRlOiAgICAgIDEuMDM3eCBhcyBmYXN0ICAgICAzMy42bXMgKy8tIDAuNiUgICAgMzIuNG1zICsv
LSAwLjYlICAgICBzaWduaWZpY2FudAogICAgZm9ybWF0LXhwYXJiOiAgICAgIDEuMDQzeCBhcyBm
YXN0ICAgICA1MC40bXMgKy8tIDAuNCUgICAgNDguM21zICsvLSAwLjQlICAgICBzaWduaWZpY2Fu
dAoKICBtYXRoOiAgICAgICAgICAgICAgICAxLjAxMnggYXMgZmFzdCAgICAgOTMuNG1zICsvLSAw
LjQlICAgIDkyLjNtcyArLy0gMC4zJSAgICAgc2lnbmlmaWNhbnQKICAgIGNvcmRpYzogICAgICAg
ICAgICAtICAgICAgICAgICAgICAgICAgMzUuN21zICsvLSAwLjYlICAgIDM1LjVtcyArLy0gMC41
JSAKICAgIHBhcnRpYWwtc3VtczogICAgICAxLjAyM3ggYXMgZmFzdCAgICAgNDEuMW1zICsvLSAw
LjMlICAgIDQwLjFtcyArLy0gMC4zJSAgICAgc2lnbmlmaWNhbnQKICAgIHNwZWN0cmFsLW5vcm06
ICAgICAtICAgICAgICAgICAgICAgICAgMTYuN21zICsvLSAxLjElICAgIDE2LjdtcyArLy0gMS4x
JSAKCiAgcmVnZXhwOiAgICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgIDMyLjNtcyArLy0g
MS4zJSAgICAzMi4wbXMgKy8tIDEuMSUgCiAgICBkbmE6ICAgICAgICAgICAgICAgLSAgICAgICAg
ICAgICAgICAgIDMyLjNtcyArLy0gMS4zJSAgICAzMi4wbXMgKy8tIDEuMSUgCgogIHN0cmluZzog
ICAgICAgICAgICAgIDEuMDExeCBhcyBmYXN0ICAgIDI2My43bXMgKy8tIDAuNiUgICAyNjAuOG1z
ICsvLSAwLjIlICAgICBzaWduaWZpY2FudAogICAgYmFzZTY0OiAgICAgICAgICAgID8/ICAgICAg
ICAgICAgICAgICAyMS43bXMgKy8tIDEuNCUgICAgMjEuOW1zICsvLSAwLjclICAgICBub3QgY29u
Y2x1c2l2ZTogbWlnaHQgYmUgKjEuMDA5eCBhcyBzbG93KgogICAgZmFzdGE6ICAgICAgICAgICAg
IDEuMDE2eCBhcyBmYXN0ICAgICA0MS41bXMgKy8tIDAuNSUgICAgNDAuOG1zICsvLSAwLjMlICAg
ICBzaWduaWZpY2FudAogICAgdGFnY2xvdWQ6ICAgICAgICAgIDEuMDQyeCBhcyBmYXN0ICAgICA5
MC43bXMgKy8tIDAuNiUgICAgODcuMW1zICsvLSAwLjQlICAgICBzaWduaWZpY2FudAogICAgdW5w
YWNrLWNvZGU6ICAgICAgICoxLjAxMXggYXMgc2xvdyogICA2NC4ybXMgKy8tIDAuOSUgICAgNjQu
OW1zICsvLSAwLjMlICAgICBzaWduaWZpY2FudAogICAgdmFsaWRhdGUtaW5wdXQ6ICAgID8/ICAg
ICAgICAgICAgICAgICA0NS42bXMgKy8tIDEuNSUgICAgNDYuMm1zICsvLSAxLjAlICAgICBub3Qg
Y29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDEyeCBhcyBzbG93Kgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30035</attachid>
            <date>2009-05-05 15:01:17 -0700</date>
            <delta_ts>2009-05-05 15:42:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ParserRefPatch.txt</filename>
            <type>text/plain</type>
            <size>12203</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQzMjUyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMDktMDUtMDUgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEJ1ZyAyNTU2OTogbWFrZSBQYXJzZXJSZWZDb3VudGVkIHVzZSBjb252
ZW50aW9uYWwgcmVmZXJlbmNlIGNvdW50aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTU2OQorCisgICAgICAgIFN1blNwaWRlciBzcGVlZHVwIG9m
IGFib3V0IDEuNiUuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6IFVwZGF0ZWQuCisK
KyAgICAgICAgKiBwYXJzZXIvTm9kZXMuY3BwOgorICAgICAgICAoSlNDOjpOb2RlUmVsZWFzZXI6
OnJlbGVhc2VBbGxOb2Rlcyk6IEFMV0FZU19JTkxJTkUuCisgICAgICAgIChKU0M6Ok5vZGVSZWxl
YXNlcjo6YWRvcHQpOiBEaXR0by4KKyAgICAgICAgKEpTQzo6UGFyc2VyUmVmQ291bnRlZDo6UGFy
c2VyUmVmQ291bnRlZCk6IFJlbW92ZWQgbW9zdCBvZiB0aGUgY29kZS4KKyAgICAgICAgQWRkIHRo
ZSBvYmplY3QgdG8gYSBWZWN0b3I8UmVmUHRyPiB0aGF0IGdldHMgY2xlYXJlZCBhZnRlciBwYXJz
aW5nLgorICAgICAgICAoSlNDOjpQYXJzZXJSZWZDb3VudGVkOjp+UGFyc2VyUmVmQ291bnRlZCk6
IFJlbW92ZWQgbW9zdCBvZiB0aGUgY29kZS4KKworICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOiBN
YWRlIFBhcnNlclJlZkNvdW50ZWQgaW5oZXJpdCBmcm9tIFJlZkNvdW50ZWQgYW5kCisgICAgICAg
IG1hZGUgaW5saW5lIHZlcnNpb25zIG9mIHRoZSBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3Rvci4g
TWFkZSB0aGUKKyAgICAgICAgTm9kZSBjb25zdHJ1Y3RvciBpbmxpbmUuCisKKyAgICAgICAgKiBw
YXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyOjpwYXJzZSk6IENhbGwgZ2xv
YmFsRGF0YS0+cGFyc2VyT2JqZWN0cy5zaHJpbmsoMCkgYWZ0ZXIKKyAgICAgICAgcGFyc2luZywg
d2hlcmUgaXQgdXNlZCB0byBjYWxsIFBhcnNlclJlZkNvdW50ZWQ6OmRlbGV0ZU5ld09iamVjdHMu
CisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKTogRWxpbWluYXRlZCBjb2RlIHRvIG1hbmFnZSB0aGUK
KyAgICAgICAgbmV3UGFyc2VyT2JqZWN0cyBhbmQgcGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMu
CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6fkpTR2xvYmFsRGF0YSk6IERpdHRvLgorCisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDogUmVwbGFjZWQgdGhlIEhhc2hTZXQgYW5k
IEhhc2hDb3VudGVkU2V0CisgICAgICAgIHdpdGggYSBWZWN0b3IuCisKKyAgICAgICAgKiB3dGYv
UGFzc1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpQYXNzUmVmUHRyOjp+UGFzc1JlZlB0cik6IFRo
ZSBtb3N0IGNvbW1vbiB0aGluZyB0byBkbyB3aXRoIGEKKyAgICAgICAgUGFzc1JlZlB0ciBpbiBo
b3QgY29kZSBpcyB0byBwYXNzIGl0IGFuZCB0aGVuIGRlc3Ryb3kgaXQgb25jZSBpdCdzCisgICAg
ICAgIHNldCB0byB6ZXJvLiBIZWxwIHRoZSBvcHRpbWl6ZXIgYnkgdGVsbGluZyBpdCB0aGF0J3Mg
dHJ1ZS4KKwogMjAwOS0wNS0wNSAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCBidWlsZC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJ
KHJldmlzaW9uIDQzMjUwKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTUsOCArMTU1LDYgQEAgX19aTjNKU0MxNkludGVybmFsRnVuY3Rp
b240bmFtZUVQTlNfMTJKUwogX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb25DMkVQTlNfMTJKU0ds
b2JhbERhdGFFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOVN0cnVjdHVyZUVFRVJLTlNfMTBJZGVudGlm
aWVyRQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNmdl
dFByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFCi1f
X1pOM0pTQzE2UGFyc2VyUmVmQ291bnRlZDNyZWZFdgotX19aTjNKU0MxNlBhcnNlclJlZkNvdW50
ZWQ1ZGVyZWZFdgogX19aTjNKU0MxNnRvVUludDMyU2xvd0Nhc2VFZFJiCiBfX1pOM0pTQzE3Qnl0
ZWNvZGVHZW5lcmF0b3IyMXNldER1bXBzR2VuZXJhdGVkQ29kZUViCiBfX1pOM0pTQzE3UHJvcGVy
dHlOYW1lQXJyYXkzYWRkRVBOU183VVN0cmluZzNSZXBFCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5jcHAJKHJldmlzaW9uIDQzMjUwKQorKysgSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsMjMgKzI4LDE4IEBACiAKICNpbmNsdWRlICJCeXRlY29k
ZUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkRlYnVnZ2Vy
LmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdGF0aWNTY29wZU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkxhYmVsU2NvcGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRlICJSZWdF
eHBPYmplY3QuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKLSNpbmNsdWRlICJEZWJ1Z2dl
ci5oIgotI2luY2x1ZGUgIkxleGVyLmgiCi0jaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgotI2luY2x1
ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoQ291bnRlZFNldC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC04MCw3ICs3NSw3IEBAIHByaXZhdGU6CiAg
ICAgT3duUHRyPE5vZGVSZWxlYXNlVmVjdG9yPiBtX3ZlY3RvcjsKIH07CiAKLXZvaWQgTm9kZVJl
bGVhc2VyOjpyZWxlYXNlQWxsTm9kZXMoUGFyc2VyUmVmQ291bnRlZCogcm9vdCkKK0FMV0FZU19J
TkxJTkUgdm9pZCBOb2RlUmVsZWFzZXI6OnJlbGVhc2VBbGxOb2RlcyhQYXJzZXJSZWZDb3VudGVk
KiByb290KQogewogICAgIEFTU0VSVChyb290KTsKICAgICBOb2RlUmVsZWFzZXIgcmVsZWFzZXI7
CkBAIC05Niw3ICs5MSw3IEBAIHZvaWQgTm9kZVJlbGVhc2VyOjpyZWxlYXNlQWxsTm9kZXMoUGFy
c2UKICAgICB9CiB9CiAKLXZvaWQgTm9kZVJlbGVhc2VyOjphZG9wdChQYXNzUmVmUHRyPFBhcnNl
clJlZkNvdW50ZWQ+IG5vZGUpCitBTFdBWVNfSU5MSU5FIHZvaWQgTm9kZVJlbGVhc2VyOjphZG9w
dChQYXNzUmVmUHRyPFBhcnNlclJlZkNvdW50ZWQ+IG5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUp
OwogICAgIGlmICghbm9kZS0+aGFzT25lUmVmKCkpCkBAIC0xMjEsMTAzICsxMTYsMjQgQEAgdm9p
ZCBOb2RlUmVsZWFzZXI6OmFkb3B0RnVuY3Rpb25Cb2R5Tm9kZQogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIFBhcnNlclJlZkNvdW50ZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAogI2lmbmRlZiBOREVCVUcKKwogc3RhdGljIFJlZkNvdW50ZWRM
ZWFrQ291bnRlciBwYXJzZXJSZWZDb3VudGVkQ291bnRlcigiSlNDOjpOb2RlIik7Ci0jZW5kaWYK
IAotUGFyc2VyUmVmQ291bnRlZDo6UGFyc2VyUmVmQ291bnRlZChKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEpCi0gICAgOiBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKK0FMV0FZU19JTkxJTkUgUGFy
c2VyUmVmQ291bnRlZDo6UGFyc2VyUmVmQ291bnRlZChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEp
CiB7Ci0jaWZuZGVmIE5ERUJVRworICAgIGdsb2JhbERhdGEtPnBhcnNlck9iamVjdHMuYXBwZW5k
KGFkb3B0UmVmKHRoaXMpKTsKICAgICBwYXJzZXJSZWZDb3VudGVkQ291bnRlci5pbmNyZW1lbnQo
KTsKLSNlbmRpZgotICAgIGlmICghbV9nbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzKQotICAg
ICAgICBtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMgPSBuZXcgSGFzaFNldDxQYXJzZXJS
ZWZDb3VudGVkKj47Ci0gICAgbV9nbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzLT5hZGQodGhp
cyk7Ci0gICAgQVNTRVJUKG1fZ2xvYmFsRGF0YS0+bmV3UGFyc2VyT2JqZWN0cy0+Y29udGFpbnMo
dGhpcykpOwogfQogCi1QYXJzZXJSZWZDb3VudGVkOjp+UGFyc2VyUmVmQ291bnRlZCgpCitBTFdB
WVNfSU5MSU5FIFBhcnNlclJlZkNvdW50ZWQ6On5QYXJzZXJSZWZDb3VudGVkKCkKIHsKLSNpZm5k
ZWYgTkRFQlVHCiAgICAgcGFyc2VyUmVmQ291bnRlZENvdW50ZXIuZGVjcmVtZW50KCk7Ci0jZW5k
aWYKLX0KLQotdm9pZCBQYXJzZXJSZWZDb3VudGVkOjpyZWxlYXNlTm9kZXMoTm9kZVJlbGVhc2Vy
JikKLXsKLX0KLQotdm9pZCBQYXJzZXJSZWZDb3VudGVkOjpyZWYoKQotewotICAgIC8vIGJ1bXBp
bmcgZnJvbSAwIHRvIDEgaXMganVzdCByZW1vdmluZyBmcm9tIHRoZSBuZXcgbm9kZXMgc2V0Ci0g
ICAgaWYgKG1fZ2xvYmFsRGF0YS0+bmV3UGFyc2VyT2JqZWN0cykgewotICAgICAgICBIYXNoU2V0
PFBhcnNlclJlZkNvdW50ZWQqPjo6aXRlcmF0b3IgaXQgPSBtX2dsb2JhbERhdGEtPm5ld1BhcnNl
ck9iamVjdHMtPmZpbmQodGhpcyk7Ci0gICAgICAgIGlmIChpdCAhPSBtX2dsb2JhbERhdGEtPm5l
d1BhcnNlck9iamVjdHMtPmVuZCgpKSB7Ci0gICAgICAgICAgICBtX2dsb2JhbERhdGEtPm5ld1Bh
cnNlck9iamVjdHMtPnJlbW92ZShpdCk7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fZ2xvYmFsRGF0
YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMgfHwgIW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2Jq
ZWN0RXh0cmFSZWZDb3VudHMtPmNvbnRhaW5zKHRoaXMpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIEFTU0VSVCghbV9nbG9iYWxEYXRhLT5uZXdQYXJzZXJP
YmplY3RzIHx8ICFtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMtPmNvbnRhaW5zKHRoaXMp
KTsKLQotICAgIGlmICghbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cykK
LSAgICAgICAgbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cyA9IG5ldyBI
YXNoQ291bnRlZFNldDxQYXJzZXJSZWZDb3VudGVkKj47Ci0gICAgbV9nbG9iYWxEYXRhLT5wYXJz
ZXJPYmplY3RFeHRyYVJlZkNvdW50cy0+YWRkKHRoaXMpOwotfQotCi12b2lkIFBhcnNlclJlZkNv
dW50ZWQ6OmRlcmVmKCkKLXsKLSAgICBBU1NFUlQoIW1fZ2xvYmFsRGF0YS0+bmV3UGFyc2VyT2Jq
ZWN0cyB8fCAhbV9nbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzLT5jb250YWlucyh0aGlzKSk7
Ci0KLSAgICBpZiAoIW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMpIHsK
LSAgICAgICAgZGVsZXRlIHRoaXM7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBIYXNo
Q291bnRlZFNldDxQYXJzZXJSZWZDb3VudGVkKj46Oml0ZXJhdG9yIGl0ID0gbV9nbG9iYWxEYXRh
LT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cy0+ZmluZCh0aGlzKTsKLSAgICBpZiAoaXQgPT0g
bV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cy0+ZW5kKCkpCi0gICAgICAg
IGRlbGV0ZSB0aGlzOwotICAgIGVsc2UKLSAgICAgICAgbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmpl
Y3RFeHRyYVJlZkNvdW50cy0+cmVtb3ZlKGl0KTsKLX0KLQotYm9vbCBQYXJzZXJSZWZDb3VudGVk
OjpoYXNPbmVSZWYoKQotewotICAgIGlmIChtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMg
JiYgbV9nbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzLT5jb250YWlucyh0aGlzKSkgewotICAg
ICAgICBBU1NFUlQoIW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMgfHwg
IW1fZ2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMtPmNvbnRhaW5zKHRoaXMp
KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEFTU0VSVCghbV9nbG9iYWxE
YXRhLT5uZXdQYXJzZXJPYmplY3RzIHx8ICFtX2dsb2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMt
PmNvbnRhaW5zKHRoaXMpKTsKLQotICAgIGlmICghbV9nbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RF
eHRyYVJlZkNvdW50cykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gIW1fZ2xv
YmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMtPmNvbnRhaW5zKHRoaXMpOwogfQog
Ci12b2lkIFBhcnNlclJlZkNvdW50ZWQ6OmRlbGV0ZU5ld09iamVjdHMoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhKQotewotICAgIGlmICghZ2xvYmFsRGF0YS0+bmV3UGFyc2VyT2JqZWN0cykKLSAg
ICAgICAgcmV0dXJuOwotCi0jaWZuZGVmIE5ERUJVRwotICAgIEhhc2hTZXQ8UGFyc2VyUmVmQ291
bnRlZCo+OjppdGVyYXRvciBlbmQgPSBnbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3RzLT5lbmQo
KTsKLSAgICBmb3IgKEhhc2hTZXQ8UGFyc2VyUmVmQ291bnRlZCo+OjppdGVyYXRvciBpdCA9IGds
b2JhbERhdGEtPm5ld1BhcnNlck9iamVjdHMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAg
ICAgICAgQVNTRVJUKCFnbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RFeHRyYVJlZkNvdW50cyB8fCAh
Z2xvYmFsRGF0YS0+cGFyc2VyT2JqZWN0RXh0cmFSZWZDb3VudHMtPmNvbnRhaW5zKCppdCkpOwog
I2VuZGlmCi0gICAgZGVsZXRlQWxsVmFsdWVzKCpnbG9iYWxEYXRhLT5uZXdQYXJzZXJPYmplY3Rz
KTsKLSAgICBkZWxldGUgZ2xvYmFsRGF0YS0+bmV3UGFyc2VyT2JqZWN0czsKLSAgICBnbG9iYWxE
YXRhLT5uZXdQYXJzZXJPYmplY3RzID0gMDsKLX0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotTm9kZTo6
Tm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCi0gICAgOiBQYXJzZXJSZWZDb3VudGVkKGds
b2JhbERhdGEpCit2b2lkIFBhcnNlclJlZkNvdW50ZWQ6OnJlbGVhc2VOb2RlcyhOb2RlUmVsZWFz
ZXImKQogewotICAgIG1fbGluZSA9IGdsb2JhbERhdGEtPmxleGVyLT5saW5lTnVtYmVyKCk7CiB9
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUaHJvd2FibGVFeHByZXNzaW9u
RGF0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgJKHJldmlzaW9uIDQzMjUwKQorKysgSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDEzICsyOCwxMyBAQAogCiAjaW5jbHVkZSAiRXJyb3IuaCIK
ICNpbmNsdWRlICJKSVRDb2RlLmgiCisjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJPcGNv
ZGUuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgog
I2luY2x1ZGUgIlN5bWJvbFRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgUExB
VEZPUk0oWDg2KSAmJiBDT01QSUxFUihHQ0MpCiAjZGVmaW5lIEpTQ19GQVNUX0NBTEwgX19hdHRy
aWJ1dGVfXygocmVncGFybSgzKSkpCkBAIC0xMDIsNyArMTAyLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFN3aXRjaFR5cGUgc3dpdGNoVHlwZTsKICAgICB9OwogCi0gICAgY2xhc3MgUGFy
c2VyUmVmQ291bnRlZCA6IE5vbmNvcHlhYmxlIHsKKyAgICBjbGFzcyBQYXJzZXJSZWZDb3VudGVk
IDogcHVibGljIFJlZkNvdW50ZWQ8UGFyc2VyUmVmQ291bnRlZD4gewogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgUGFyc2VyUmVmQ291bnRlZChKU0dsb2JhbERhdGEqKSBKU0NfRkFTVF9DQUxMOwog
CkBAIC0xMTEsMjAgKzExMSwyNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICAvLyBOb25y
ZWN1cnNpdmUgZGVzdHJ1Y3Rpb24uCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTm9kZXMo
Tm9kZVJlbGVhc2VyJik7CisgICAgfTsKIAotICAgICAgICB2b2lkIHJlZigpIEpTQ19GQVNUX0NB
TEw7Ci0gICAgICAgIHZvaWQgZGVyZWYoKSBKU0NfRkFTVF9DQUxMOwotICAgICAgICBib29sIGhh
c09uZVJlZigpIEpTQ19GQVNUX0NBTEw7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgZGVsZXRlTmV3
T2JqZWN0cyhKU0dsb2JhbERhdGEqKSBKU0NfRkFTVF9DQUxMOworI2lmZGVmIE5ERUJVRworICAg
IGlubGluZSBQYXJzZXJSZWZDb3VudGVkOjpQYXJzZXJSZWZDb3VudGVkKEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSkKKyAgICB7CisgICAgICAgIGdsb2JhbERhdGEtPnBhcnNlck9iamVjdHMuYXBw
ZW5kKGFkb3B0UmVmKHRoaXMpKTsKKyAgICB9CiAKLSAgICBwcml2YXRlOgotICAgICAgICBKU0ds
b2JhbERhdGEqIG1fZ2xvYmFsRGF0YTsKLSAgICB9OworICAgIGlubGluZSBQYXJzZXJSZWZDb3Vu
dGVkOjp+UGFyc2VyUmVmQ291bnRlZCgpCisgICAgeworICAgIH0KKyNlbmRpZgogCiAgICAgY2xh
c3MgTm9kZSA6IHB1YmxpYyBQYXJzZXJSZWZDb3VudGVkIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IE5vZGUoSlNHbG9iYWxEYXRhKikgSlNDX0ZBU1RfQ0FMTDsKKyAgICAgICAgTm9kZShKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEpIEpTQ19GQVNUX0NBTEwKKyAgICAgICAgICAgIDogUGFyc2VyUmVm
Q291bnRlZChnbG9iYWxEYXRhKQorICAgICAgICAgICAgLCBtX2xpbmUoZ2xvYmFsRGF0YS0+bGV4
ZXItPmxpbmVOdW1iZXIoKSkKKyAgICAgICAgeworICAgICAgICB9CiAKICAgICAgICAgLyoKICAg
ICAgICAgICAgIFJldHVybiB2YWx1ZTogVGhlIHJlZ2lzdGVyIGhvbGRpbmcgdGhlIHByb2R1Y3Rp
b24ncyB2YWx1ZS4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCShyZXZpc2lvbiA0MzI1
MCkKKysrIEphdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MCw3ICs2MCw3IEBAIHZvaWQgUGFyc2VyOjpwYXJzZShKU0dsb2JhbERhdGEqIGdsb2JhbEQK
ICAgICBpbnQgbGluZU51bWJlciA9IGxleGVyLmxpbmVOdW1iZXIoKTsKICAgICBsZXhlci5jbGVh
cigpOwogCi0gICAgUGFyc2VyUmVmQ291bnRlZDo6ZGVsZXRlTmV3T2JqZWN0cyhnbG9iYWxEYXRh
KTsKKyAgICBnbG9iYWxEYXRhLT5wYXJzZXJPYmplY3RzLnNocmluaygwKTsKIAogICAgIGlmIChw
YXJzZUVycm9yIHx8IGxleEVycm9yKSB7CiAgICAgICAgICplcnJMaW5lID0gbGluZU51bWJlcjsK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDQz
MjUwKQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzQsOCArMTM0LDYgQEAgSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoYm9v
bCBpc1NoYXJlZAogI2VuZGlmCiAgICAgLCBoZWFwKHRoaXMpCiAgICAgLCBpbml0aWFsaXppbmdM
YXp5TnVtZXJpY0NvbXBhcmVGdW5jdGlvbihmYWxzZSkKLSAgICAsIG5ld1BhcnNlck9iamVjdHMo
MCkKLSAgICAsIHBhcnNlck9iamVjdEV4dHJhUmVmQ291bnRzKDApCiAgICAgLCBoZWFkKDApCiAg
ICAgLCBkeW5hbWljR2xvYmFsT2JqZWN0KDApCiAgICAgLCBzY29wZU5vZGVCZWluZ1JlcGFyc2Vk
KDApCkBAIC0xODQsOSArMTgyLDYgQEAgSlNHbG9iYWxEYXRhOjp+SlNHbG9iYWxEYXRhKCkKICAg
ICBkZWxldGUgcHJvcGVydHlOYW1lczsKICAgICBkZWxldGVJZGVudGlmaWVyVGFibGUoaWRlbnRp
ZmllclRhYmxlKTsKIAotICAgIGRlbGV0ZSBuZXdQYXJzZXJPYmplY3RzOwotICAgIGRlbGV0ZSBw
YXJzZXJPYmplY3RFeHRyYVJlZkNvdW50czsKLSAgICAKICAgICBkZWxldGUgY2xpZW50RGF0YTsK
IH0KIApJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCShyZXZpc2lvbiA0
MzI1MCkKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MSw4ICsxNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBIYXNo
TWFwPE9wYXF1ZUpTQ2xhc3MqLCBPcGFxdWVKU0NsYXNzQ29udGV4dERhdGEqPiBvcGFxdWVKU0Ns
YXNzRGF0YTsKIAotICAgICAgICBIYXNoU2V0PFBhcnNlclJlZkNvdW50ZWQqPiogbmV3UGFyc2Vy
T2JqZWN0czsKLSAgICAgICAgSGFzaENvdW50ZWRTZXQ8UGFyc2VyUmVmQ291bnRlZCo+KiBwYXJz
ZXJPYmplY3RFeHRyYVJlZkNvdW50czsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxQYXJzZXJSZWZD
b3VudGVkPiA+IHBhcnNlck9iamVjdHM7CiAKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGhlYWQ7
CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBkeW5hbWljR2xvYmFsT2JqZWN0OwpJbmRleDogSmF2
YVNjcmlwdENvcmUvd3RmL1Bhc3NSZWZQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS93dGYvUGFzc1JlZlB0ci5oCShyZXZpc2lvbiA0MzI1MCkKKysrIEphdmFTY3JpcHRDb3JlL3d0
Zi9QYXNzUmVmUHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNl
IFdURiB7CiAgICAgICAgIFBhc3NSZWZQdHIoY29uc3QgUGFzc1JlZlB0ciYgbykgOiBtX3B0cihv
LnJlbGVhc2VSZWYoKSkge30KICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IFBhc3NSZWZQ
dHIoY29uc3QgUGFzc1JlZlB0cjxVPiYgbykgOiBtX3B0cihvLnJlbGVhc2VSZWYoKSkgeyB9CiAK
LSAgICAgICAgQUxXQVlTX0lOTElORSB+UGFzc1JlZlB0cigpIHsgaWYgKFQqIHB0ciA9IG1fcHRy
KSBwdHItPmRlcmVmKCk7IH0KKyAgICAgICAgQUxXQVlTX0lOTElORSB+UGFzc1JlZlB0cigpIHsg
aWYgKFVOTElLRUxZKG1fcHRyICE9IDApKSBtX3B0ci0+ZGVyZWYoKTsgfQogICAgICAgICAKICAg
ICAgICAgdGVtcGxhdGUgPGNsYXNzIFU+IAogICAgICAgICBQYXNzUmVmUHRyKGNvbnN0IFJlZlB0
cjxVPiYgbykgOiBtX3B0cihvLmdldCgpKSB7IGlmIChUKiBwdHIgPSBtX3B0cikgcHRyLT5yZWYo
KTsgfQo=
</data>
<flag name="review"
          id="15070"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>