<?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>38814</bug_id>
          
          <creation_ts>2010-05-09 02:05:42 -0700</creation_ts>
          <short_desc>Improve string indexing performance</short_desc>
          <delta_ts>2010-05-12 16:40:10 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fu</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223013</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-09 02:05:42 -0700</bug_when>
    <thetext>Improve string indexing performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223021</commentid>
    <comment_count>1</comment_count>
      <attachid>55496</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-09 02:38:51 -0700</bug_when>
    <thetext>Created attachment 55496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223023</commentid>
    <comment_count>2</comment_count>
      <attachid>55497</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-09 02:42:33 -0700</bug_when>
    <thetext>Created attachment 55497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223031</commentid>
    <comment_count>3</comment_count>
      <attachid>55497</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-05-09 03:14:49 -0700</bug_when>
    <thetext>Comment on attachment 55497
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223039</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-09 04:42:37 -0700</bug_when>
    <thetext>Committed r59056: &lt;http://trac.webkit.org/changeset/59056&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224975</commentid>
    <comment_count>5</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2010-05-12 16:40:10 -0700</bug_when>
    <thetext>Hi,

  I think the code in JIT::stringGetByValStubGenerator() may contain redundant code.
Ex:
...
#if USE(JSVALUE64)
    jit.zeroExtend32ToPtr(regT1, regT1);
#else
    jit.emitFastArithImmToInt(regT1);
#endif
...

  The same code appears in &quot;JIT::emit_op_get_by_val()&quot;.  So, we may execute one more time in stringGetByValStubGenerator().

  I need to comment out jit.emitFastArithImmToInt(regT1) for MIPS to fix two new regressions.  Otherwise, regT1 is shifted right by 1 bit (twice) and the index to a string is wrong.  Thanks a lot!

Ex:
# svn diff JITPropertyAccess.cpp
...
-#if USE(JSVALUE64)
-    jit.zeroExtend32ToPtr(regT1, regT1);
-#else
-    jit.emitFastArithImmToInt(regT1);
-#endif


Regards,
Chao-ying</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55496</attachid>
            <date>2010-05-09 02:38:51 -0700</date>
            <delta_ts>2010-05-09 02:42:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38814-20100509023850.patch</filename>
            <type>text/plain</type>
            <size>11706</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhY2IwMjkzNTE3M2M5MDllNjc1ZDRlYzI1N2FlMGQwYTQwNmMxMzE5Li45
MDI0YzcyYTdjY2U0YjE4M2QwZmE2YWM5NzZkNGZhMjMxODlkZDhiIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTAtMDUtMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3Zl
IHN0cmluZyBpbmRleGluZyBwZXJmb3JtYW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4MTQKKworICAgICAgICBBZGQgYW4gYXNzZW1ibHkgc3R1
YiB0byBkbyBpbmRleGVkIGxvYWRzIGZyb20gc3RyaW5ncyBtdWNoCisgICAgICAgIG1vcmUgY2hl
YXBseSB0aGFuIHRoZSBjdXJyZW50IHN0dWIgZGlzcGF0Y2ggbG9naWMuICBXZSBjYW4KKyAgICAg
ICAgZG8gdGhpcyBiZWNhdXNlIHdlIGFyZSBhYmxlIHRvIG1ha2UgZ3VhcmFudGVlcyBhYm91dCB0
aGUKKyAgICAgICAgcmVnaXN0ZXIgY29udGVudHMgd2hlbiBlbnRlcmluZyB0aGUgc3R1YiBzbyB0
aGUgY2FsbCBvdmVyaGVhZAorICAgICAgICBpcyBuZWdsaWdpYmxlLgorCisgICAgICAgICogaml0
L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAgICogaml0
L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6c3RyaW5nR2V0QnlWYWxTdHViR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKiBqaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6c3RyaW5nR2V0QnlWYWxT
dHViR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFs
KToKKyAgICAgICAgKiBqaXQvSlNJbnRlcmZhY2VKSVQuaDoKKyAgICAgICAgKEpTQzo6SlNJbnRl
cmZhY2VKSVQ6OmVtaXRGYXN0QXJpdGhJbW1Ub0ludCk6CisKIDIwMTAtMDUtMDggIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJy
YWNsb3VnaC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAppbmRleCAwMTk0MjIyM2ZiYTdkZGI3NGU3NTEwNjc5OTljZDBmNDdk
MDk1ZjIyLi4xZDdlOTliYWRjZDk1ZDRhYTg1ZjY4MDFkYWE3ZDMzNmIyZTYyMWFlIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCkBAIC00NDcsNyArNDQ3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEp1bXAgZW1p
dEZhc3RBcml0aERlVGFnSW1tZWRpYXRlSnVtcElmWmVybyhSZWdpc3RlcklEKTsKICNlbmRpZgog
ICAgICAgICB2b2lkIGVtaXRGYXN0QXJpdGhSZVRhZ0ltbWVkaWF0ZShSZWdpc3RlcklEIHNyYywg
UmVnaXN0ZXJJRCBkZXN0KTsKLSAgICAgICAgdm9pZCBlbWl0RmFzdEFyaXRoSW1tVG9JbnQoUmVn
aXN0ZXJJRCk7CiAgICAgICAgIHZvaWQgZW1pdEZhc3RBcml0aEludFRvSW1tTm9DaGVjayhSZWdp
c3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KTsKIAogICAgICAgICB2b2lkIGVtaXRUYWdBc0Jv
b2xJbW1lZGlhdGUoUmVnaXN0ZXJJRCByZWcpOwpAQCAtOTA0LDYgKzkwMyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBpbnQgbV91bmludGVycnVwdGVkQ29uc3RhbnRTZXF1ZW5jZUJlZ2lu
OwogI2VuZGlmCiAjZW5kaWYKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8TmF0aXZlRXhlY3V0
YWJsZT4gc3RyaW5nR2V0QnlWYWxTdHViR2VuZXJhdG9yKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0
YSwgRXhlY3V0YWJsZVBvb2wqIHBvb2wpOwogICAgIH0gSklUX0NMQVNTX0FMSUdOTUVOVDsKIAog
ICAgIGlubGluZSB2b2lkIEpJVDo6ZW1pdF9vcF9sb29wKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9k
cy5oIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAppbmRleCA4OTJhYjM2
ZDc4YWNjYWJhODNkOTFiNzM3NTczOWFjMjU5NDk2MzYyLi4xNDhmNjE1ZjVlMjE5NjUyOGQ1ZmU4
MWNiMzFiYTAxZjQxZmI4NTUzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5s
aW5lTWV0aG9kcy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgK
QEAgLTgyMCwxNSArODIwLDYgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdEZhc3RBcml0
aFJlVGFnSW1tZWRpYXRlKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGQKICNlbmRpZgogfQog
Ci1BTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0RmFzdEFyaXRoSW1tVG9JbnQoUmVnaXN0ZXJJ
RCByZWcpCi17Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBVTlVTRURfUEFSQU0ocmVnKTsKLSNl
bHNlCi0gICAgcnNoaWZ0MzIoSW1tMzIoSlNJbW1lZGlhdGU6OkludGVnZXJQYXlsb2FkU2hpZnQp
LCByZWcpOwotI2VuZGlmCi19Ci0KIC8vIG9wZXJhbmQgaXMgaW50MzJfdCwgbXVzdCBoYXZlIGJl
ZW4gemVyby1leHRlbmRlZCBpZiByZWdpc3RlciBpcyA2NC1iaXQuCiBBTFdBWVNfSU5MSU5FIHZv
aWQgSklUOjplbWl0RmFzdEFyaXRoSW50VG9JbW1Ob0NoZWNrKFJlZ2lzdGVySUQgc3JjLCBSZWdp
c3RlcklEIGRlc3QpCiB7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggODUxNTIzM2Ji
ZjE3ZDk4NWJhYmQ5YzViYjUwMjM3NzAyMTQxOGJhNy4uMjFlOGM2Y2FhOWU4MWU3MDQ5ZTdkY2Q1
NGJjZTc1ZDA2MjllNmMzNSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTQwNywy
NCArMTQwNyw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDCiAgICAgc3R1YkNhbGwuY2FsbChj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKLXsKLSAgICB1bnNpZ25lZCBkc3QgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAgIHVuc2lnbmVkIGJhc2UgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIHVuc2lnbmVkIHByb3BlcnR5ID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLQotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8g
cHJvcGVydHkgaW50MzIgY2hlY2sKLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBi
YXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNl
IGFycmF5IGNoZWNrCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyB2ZWN0b3IgbGVuZ3RoIGNo
ZWNrCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBlbXB0eSB2YWx1ZQotCi0gICAgSklUU3R1
YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX2dldF9ieV92YWwpOwotICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KGJhc2UsIHJlZ1QyKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChwcm9wZXJ0
eSwgcmVnVDIpOwotICAgIHN0dWJDYWxsLmNhbGwoZHN0KTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRT
bG93X29wX2xvb3BfaWZfbGVzc2VxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgdW5zaWduZWQgb3Ay
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDMzOTlmMDMzZGUzNDQ0ZTgwMjQzYmIwNzI2Njc5Zjc4
NTk4NjZjZGUuLmY4NWNkYjI4MWY3MTdlM2M1M2MyNTFmNzEwNDIxYzMwODUzNGFhNDcgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtNTIsNiArNTIsNDIgQEAg
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIEpTQyB7CiAKK1Bhc3NSZWZQdHI8TmF0
aXZlRXhlY3V0YWJsZT4gSklUOjpzdHJpbmdHZXRCeVZhbFN0dWJHZW5lcmF0b3IoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBFeGVjdXRhYmxlUG9vbCogcG9vbCkKK3sKKyAgICBKU0ludGVyZmFj
ZUpJVCBqaXQ7CisgICAgSnVtcExpc3QgZmFpbHVyZXM7CisgICAgZmFpbHVyZXMuYXBwZW5kKGpp
dC5icmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBJbW1QdHIoZ2xvYmFsRGF0YS0+
anNTdHJpbmdWUHRyKSkpOworICAgIGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNoVGVzdDMyKE5v
blplcm8sIEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU1N0cmluZywgbV9maWJlckNv
dW50KSkpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGppdC56ZXJvRXh0ZW5kMzJUb1B0cihy
ZWdUMSwgcmVnVDEpOworI2Vsc2UKKyAgICBqaXQuZW1pdEZhc3RBcml0aEltbVRvSW50KHJlZ1Qx
KTsKKyNlbmRpZgorCisgICAgLy8gTG9hZCBzdHJpbmcgbGVuZ3RoIHRvIHJlZ1QxLCBhbmQgc3Rh
cnQgdGhlIHByb2Nlc3Mgb2YgbG9hZGluZyB0aGUgZGF0YSBwb2ludGVyIGludG8gcmVnVDAKKyAg
ICBqaXQubG9hZDMyKEFkZHJlc3MocmVnVDAsIFRodW5rSGVscGVyczo6anNTdHJpbmdMZW5ndGhP
ZmZzZXQoKSksIHJlZ1QyKTsKKyAgICBqaXQubG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBUaHVua0hl
bHBlcnM6OmpzU3RyaW5nVmFsdWVPZmZzZXQoKSksIHJlZ1QwKTsKKyAgICBqaXQubG9hZFB0cihB
ZGRyZXNzKHJlZ1QwLCBUaHVua0hlbHBlcnM6OnN0cmluZ0ltcGxEYXRhT2Zmc2V0KCkpLCByZWdU
MCk7CisgICAgCisgICAgLy8gRG8gYW4gdW5zaWduZWQgY29tcGFyZSB0byBzaW11bHRhbmVvdXNs
eSBmaWx0ZXIgbmVnYXRpdmUgaW5kaWNlcyBhcyB3ZWxsIGFzIGluZGljZXMgdGhhdCBhcmUgdG9v
IGxhcmdlCisgICAgZmFpbHVyZXMuYXBwZW5kKGppdC5icmFuY2gzMihBYm92ZU9yRXF1YWwsIHJl
Z1QxLCByZWdUMikpOworICAgIAorICAgIC8vIExvYWQgdGhlIGNoYXJhY3RlcgorICAgIGppdC5s
b2FkMTYoQmFzZUluZGV4KHJlZ1QwLCByZWdUMSwgVGltZXNUd28sIDApLCByZWdUMCk7CisgICAg
CisgICAgZmFpbHVyZXMuYXBwZW5kKGppdC5icmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ1QwLCBJ
bW0zMigweDEwMCkpKTsKKyAgICBqaXQubW92ZShJbW1QdHIoZ2xvYmFsRGF0YS0+c21hbGxTdHJp
bmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZ3MoKSksIHJlZ1QxKTsKKyAgICBqaXQubG9hZFB0cihC
YXNlSW5kZXgocmVnVDEsIHJlZ1QwLCBTY2FsZVB0ciwgMCksIHJlZ1QwKTsKKyAgICBqaXQucmV0
KCk7CisgICAgCisgICAgZmFpbHVyZXMubGluaygmaml0KTsKKyAgICBqaXQubW92ZShJbW0zMigw
KSwgcmVnVDApOworICAgIGppdC5yZXQoKTsKKyAgICAKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVm
ZmVyKCZqaXQsIHBvb2wpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmF0aXZlRXhlY3V0YWJs
ZShwYXRjaEJ1ZmZlci5maW5hbGl6ZUNvZGUoKSkpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgdW5zaWdu
ZWQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKQEAgLTgzLDYgKzExOSwz
NCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCit2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQoreworICAgIHVuc2lnbmVk
IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgYmFz
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgcHJvcGVy
dHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIAorICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKKyAgICBsaW5rU2xvd0Nhc2VJZk5v
dEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCisgICAgSnVtcCBub25DZWxs
ID0ganVtcCgpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawor
ICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwg
SW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyKSk7CisgICAgZW1pdE5ha2VkQ2FsbCht
X2dsb2JhbERhdGEtPmdldFRodW5rKHN0cmluZ0dldEJ5VmFsU3R1YkdlbmVyYXRvciktPmdlbmVy
YXRlZEpJVENvZGUoKS5hZGRyZXNzRm9yQ2FsbCgpKTsKKyAgICBKdW1wIGZhaWxlZCA9IGJyYW5j
aFRlc3RQdHIoWmVybywgcmVnVDApOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCBy
ZWdUMCk7CisgICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBPUENPREVfTEVOR1RIKG9wX2dl
dF9ieV92YWwpKTsKKyAgICBmYWlsZWQubGluayh0aGlzKTsKKyAgICBub3RTdHJpbmcubGluayh0
aGlzKTsKKyAgICBub25DZWxsLmxpbmsodGhpcyk7CisgICAgCisgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOyAvLyB2ZWN0b3IgbGVuZ3RoIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBl
bXB0eSB2YWx1ZQorICAgIAorICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9n
ZXRfYnlfdmFsKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChiYXNlLCByZWdUMik7CisgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQocHJvcGVydHksIHJlZ1QyKTsKKyAgICBzdHViQ2FsbC5jYWxs
KGRzdCk7Cit9CisKIHZvaWQgSklUOjpjb21waWxlR2V0RGlyZWN0T2Zmc2V0KFJlZ2lzdGVySUQg
YmFzZSwgUmVnaXN0ZXJJRCByZXN1bHQsIFJlZ2lzdGVySUQgc3RydWN0dXJlLCBSZWdpc3RlcklE
IG9mZnNldCwgUmVnaXN0ZXJJRCBzY3JhdGNoKQogewogICAgIEFTU0VSVChzaXplb2YoKChTdHJ1
Y3R1cmUqKTApLT5tX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5KSA9PSBzaXplb2YoaW50MzJfdCkp
OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4
IGVjMzMwMjZhN2VmZTlkNGQyY2ZlMzBiZDY3YTI2ZmIyYTUwOGE1YjYuLjBjMTRmYmZhZjE2NjE2
NzA0NzYyZDA1ZjJmZmRjNWE5YTY4ZWE2YWQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTI2OSw2ICsyNjksMzggQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX21ldGhvZF9jaGVjayhJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5
Pjo6aXRlcmF0b3IKIAogI2VuZGlmCiAKK1Bhc3NSZWZQdHI8TmF0aXZlRXhlY3V0YWJsZT4gSklU
OjpzdHJpbmdHZXRCeVZhbFN0dWJHZW5lcmF0b3IoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBF
eGVjdXRhYmxlUG9vbCogcG9vbCkKK3sKKyAgICBKU0ludGVyZmFjZUpJVCBqaXQ7CisgICAgSnVt
cExpc3QgZmFpbHVyZXM7CisgICAgZmFpbHVyZXMuYXBwZW5kKGppdC5icmFuY2hQdHIoTm90RXF1
YWwsIEFkZHJlc3MocmVnVDApLCBJbW1QdHIoZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyKSkpOwor
ICAgIGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNoVGVzdDMyKE5vblplcm8sIEFkZHJlc3MocmVn
VDAsIE9CSkVDVF9PRkZTRVRPRihKU1N0cmluZywgbV9maWJlckNvdW50KSkpKTsKKyAgICAKKyAg
ICAvLyBMb2FkIHN0cmluZyBsZW5ndGggdG8gcmVnVDEsIGFuZCBzdGFydCB0aGUgcHJvY2VzcyBv
ZiBsb2FkaW5nIHRoZSBkYXRhIHBvaW50ZXIgaW50byByZWdUMAorICAgIGppdC5sb2FkMzIoQWRk
cmVzcyhyZWdUMCwgVGh1bmtIZWxwZXJzOjpqc1N0cmluZ0xlbmd0aE9mZnNldCgpKSwgcmVnVDEp
OworICAgIGppdC5sb2FkUHRyKEFkZHJlc3MocmVnVDAsIFRodW5rSGVscGVyczo6anNTdHJpbmdW
YWx1ZU9mZnNldCgpKSwgcmVnVDApOworICAgIGppdC5sb2FkUHRyKEFkZHJlc3MocmVnVDAsIFRo
dW5rSGVscGVyczo6c3RyaW5nSW1wbERhdGFPZmZzZXQoKSksIHJlZ1QwKTsKKyAgICAKKyAgICAv
LyBEbyBhbiB1bnNpZ25lZCBjb21wYXJlIHRvIHNpbXVsdGFuZW91c2x5IGZpbHRlciBuZWdhdGl2
ZSBpbmRpY2VzIGFzIHdlbGwgYXMgaW5kaWNlcyB0aGF0IGFyZSB0b28gbGFyZ2UKKyAgICBmYWls
dXJlcy5hcHBlbmQoaml0LmJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDIsIHJlZ1QxKSk7Cisg
ICAgCisgICAgLy8gTG9hZCB0aGUgY2hhcmFjdGVyCisgICAgaml0LmxvYWQxNihCYXNlSW5kZXgo
cmVnVDAsIHJlZ1QyLCBUaW1lc1R3bywgMCksIHJlZ1QwKTsKKyAgICAKKyAgICBmYWlsdXJlcy5h
cHBlbmQoaml0LmJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDAsIEltbTMyKDB4MTAwKSkpOwor
ICAgIGppdC5tb3ZlKEltbVB0cihnbG9iYWxEYXRhLT5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFj
dGVyU3RyaW5ncygpKSwgcmVnVDEpOworICAgIGppdC5sb2FkUHRyKEJhc2VJbmRleChyZWdUMSwg
cmVnVDAsIFNjYWxlUHRyLCAwKSwgcmVnVDApOworICAgIGppdC5tb3ZlKEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCByZWdUMSk7IC8vIFdlIG51bGwgY2hlY2sgcmVnVDAgb24gcmV0dXJuIHNvIHRo
aXMgaXMgc2FmZQorICAgIGppdC5yZXQoKTsKKworICAgIGZhaWx1cmVzLmxpbmsoJmppdCk7Cisg
ICAgaml0Lm1vdmUoSW1tMzIoMCksIHJlZ1QwKTsKKyAgICBqaXQucmV0KCk7CisgICAgCisgICAg
TGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigmaml0LCBwb29sKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE5hdGl2ZUV4ZWN1dGFibGUocGF0Y2hCdWZmZXIuZmluYWxpemVDb2RlKCkpKTsKK30KKwog
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogewogICAgIHVuc2lnbmVkIGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQ7CkBAIC0zMDAsNyArMzMyLDE4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgCiAg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtT
bG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKworICAg
IEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2Ug
YXJyYXkgY2hlY2sKKyAgICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWRk
cmVzcyhyZWdUMCksIEltbVB0cihtX2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0cikpOworICAgIGVt
aXROYWtlZENhbGwobV9nbG9iYWxEYXRhLT5nZXRUaHVuayhzdHJpbmdHZXRCeVZhbFN0dWJHZW5l
cmF0b3IpLT5nZW5lcmF0ZWRKSVRDb2RlKCkuYWRkcmVzc0ZvckNhbGwoKSk7CisgICAgSnVtcCBm
YWlsZWQgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1QwKTsKKyAgICBlbWl0U3RvcmUoZHN0LCBy
ZWdUMSwgcmVnVDApOworICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwgT1BDT0RFX0xFTkdU
SChvcF9nZXRfYnlfdmFsKSk7CisgICAgZmFpbGVkLmxpbmsodGhpcyk7CisgICAgbm90U3RyaW5n
LmxpbmsodGhpcyk7CisgICAgbm9uQ2VsbC5saW5rKHRoaXMpOworCiAgICAgbGlua1Nsb3dDYXNl
KGl0ZXIpOyAvLyB2ZWN0b3IgbGVuZ3RoIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAv
LyBlbXB0eSB2YWx1ZQogICAgIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50
ZXJmYWNlSklULmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCAy
Y2QwZTMzMWNjNjkxZTMwNDNhZmE4ZTdiMGY4ZGIwYWYzZDQ2NDIyLi42ZDU2MTI3MTBkODg0NDEy
OThjYWQ2YmQ5MTc2MGJiNzc0ZWYyMjc2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQv
SlNJbnRlcmZhY2VKSVQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQu
aApAQCAtMTY5LDYgKzE2OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIFVTRShKU1ZBTFVFMzIp
IHx8IFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIEp1bXAgZW1pdEp1bXBJZkltbWVkaWF0ZU51bWJl
cihSZWdpc3RlcklEIHJlZyk7CiAgICAgICAgIEp1bXAgZW1pdEp1bXBJZk5vdEltbWVkaWF0ZU51
bWJlcihSZWdpc3RlcklEIHJlZyk7CisgICAgICAgIHZvaWQgZW1pdEZhc3RBcml0aEltbVRvSW50
KFJlZ2lzdGVySUQgcmVnKTsKICNlbmRpZgogCiAgICAgICAgIGlubGluZSBBZGRyZXNzIHBheWxv
YWRGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVy
KTsKQEAgLTI2MCw3ICsyNjEsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGRvbmUubGlu
ayh0aGlzKTsKICAgICAgICAgcmV0dXJuIG5vdE51bWJlcjsKICAgICB9Ci0KKyAgICAKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgSlNJbnRlcmZhY2VKSVQ6OmVtaXRGYXN0QXJpdGhJbW1Ub0ludChS
ZWdpc3RlcklEKQorICAgIHsKKyAgICB9CisgICAgCiAjZW5kaWYKIAogI2lmIFVTRShKU1ZBTFVF
MzIpCkBAIC0yODMsNiArMjg4LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGp1bXAoKTsKICAgICB9CisgICAgCisgICAg
QUxXQVlTX0lOTElORSB2b2lkIEpTSW50ZXJmYWNlSklUOjplbWl0RmFzdEFyaXRoSW1tVG9JbnQo
UmVnaXN0ZXJJRCByZWcpCisgICAgeworICAgICAgICByc2hpZnQzMihJbW0zMihKU0ltbWVkaWF0
ZTo6SW50ZWdlclBheWxvYWRTaGlmdCksIHJlZyk7CisgICAgfQorICAgIAogI2VuZGlmCiAKICNp
ZiAhVVNFKEpTVkFMVUUzMl82NCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55497</attachid>
            <date>2010-05-09 02:42:33 -0700</date>
            <delta_ts>2010-05-09 03:14:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38814-20100509024231.patch</filename>
            <type>text/plain</type>
            <size>11839</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhY2IwMjkzNTE3M2M5MDllNjc1ZDRlYzI1N2FlMGQwYTQwNmMxMzE5Li42
NDE4ZDk0MTZmZmM1ZTFjOTgxYjRlMzdkZDU4ZWI2NTI4MzIwYjNlIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMTAtMDUtMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3Zl
IHN0cmluZyBpbmRleGluZyBwZXJmb3JtYW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4MTQKKworICAgICAgICBBZGQgYW4gYXNzZW1ibHkgc3R1
YiB0byBkbyBpbmRleGVkIGxvYWRzIGZyb20gc3RyaW5ncyBtdWNoCisgICAgICAgIG1vcmUgY2hl
YXBseSB0aGFuIHRoZSBjdXJyZW50IHN0dWIgZGlzcGF0Y2ggbG9naWMuICBXZSBjYW4KKyAgICAg
ICAgZG8gdGhpcyBiZWNhdXNlIHdlIGFyZSBhYmxlIHRvIG1ha2UgZ3VhcmFudGVlcyBhYm91dCB0
aGUKKyAgICAgICAgcmVnaXN0ZXIgY29udGVudHMgd2hlbiBlbnRlcmluZyB0aGUgc3R1YiBzbyB0
aGUgY2FsbCBvdmVyaGVhZAorICAgICAgICBpcyBuZWdsaWdpYmxlLgorCisgICAgICAgICogaml0
L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAgICogaml0
L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6c3RyaW5nR2V0QnlWYWxTdHViR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgICAgTW92ZWQgZnJv
bSBKSVRPcGNvZGVzLmNwcCB0byBrZWVwIHRoZSBzbG93Y2FzZSBuZXh0IHRvCisgICAgICAgICAg
IHRoZSBub3JtYWwgY2FzZSBjb2RlZ2VuIGFzIHdlIGRvIGZvciBldmVyeXRoaW5nIGVsc2UuCisg
ICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpK
SVQ6OnN0cmluZ0dldEJ5VmFsU3R1YkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgICogaml0L0pTSW50ZXJmYWNlSklULmg6Cisg
ICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjplbWl0RmFzdEFyaXRoSW1tVG9JbnQpOgorCiAy
MDEwLTA1LTA4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2guCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggMDE5NDIyMjNmYmE3ZGRi
NzRlNzUxMDY3OTk5Y2QwZjQ3ZDA5NWYyMi4uMWQ3ZTk5YmFkY2Q5NWQ0YWE4NWY2ODAxZGFhN2Qz
MzZiMmU2MjFhZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNDQ3LDcgKzQ0Nyw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBKdW1wIGVtaXRGYXN0QXJpdGhEZVRhZ0ltbWVkaWF0ZUp1bXBJZlplcm8oUmVn
aXN0ZXJJRCk7CiAjZW5kaWYKICAgICAgICAgdm9pZCBlbWl0RmFzdEFyaXRoUmVUYWdJbW1lZGlh
dGUoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCk7Ci0gICAgICAgIHZvaWQgZW1pdEZh
c3RBcml0aEltbVRvSW50KFJlZ2lzdGVySUQpOwogICAgICAgICB2b2lkIGVtaXRGYXN0QXJpdGhJ
bnRUb0ltbU5vQ2hlY2soUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCk7CiAKICAgICAg
ICAgdm9pZCBlbWl0VGFnQXNCb29sSW1tZWRpYXRlKFJlZ2lzdGVySUQgcmVnKTsKQEAgLTkwNCw2
ICs5MDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaW50IG1fdW5pbnRlcnJ1cHRlZENv
bnN0YW50U2VxdWVuY2VCZWdpbjsKICNlbmRpZgogI2VuZGlmCisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE5hdGl2ZUV4ZWN1dGFibGU+IHN0cmluZ0dldEJ5VmFsU3R1YkdlbmVyYXRvcihKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGEsIEV4ZWN1dGFibGVQb29sKiBwb29sKTsKICAgICB9IEpJVF9D
TEFTU19BTElHTk1FTlQ7CiAKICAgICBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZU1ldGhvZHMuaCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRo
b2RzLmgKaW5kZXggODkyYWIzNmQ3OGFjY2FiYTgzZDkxYjczNzU3MzlhYzI1OTQ5NjM2Mi4uMTQ4
ZjYxNWY1ZTIxOTY1MjhkNWZlODFjYjMxYmEwMWY0MWZiODU1MyAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lTWV0aG9kcy5oCkBAIC04MjAsMTUgKzgyMCw2IEBAIEFMV0FZU19JTkxJTkUgdm9p
ZCBKSVQ6OmVtaXRGYXN0QXJpdGhSZVRhZ0ltbWVkaWF0ZShSZWdpc3RlcklEIHNyYywgUmVnaXN0
ZXJJRCBkCiAjZW5kaWYKIH0KIAotQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdEZhc3RBcml0
aEltbVRvSW50KFJlZ2lzdGVySUQgcmVnKQotewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgVU5V
U0VEX1BBUkFNKHJlZyk7Ci0jZWxzZQotICAgIHJzaGlmdDMyKEltbTMyKEpTSW1tZWRpYXRlOjpJ
bnRlZ2VyUGF5bG9hZFNoaWZ0KSwgcmVnKTsKLSNlbmRpZgotfQotCiAvLyBvcGVyYW5kIGlzIGlu
dDMyX3QsIG11c3QgaGF2ZSBiZWVuIHplcm8tZXh0ZW5kZWQgaWYgcmVnaXN0ZXIgaXMgNjQtYml0
LgogQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdEZhc3RBcml0aEludFRvSW1tTm9DaGVjayhS
ZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMu
Y3BwCmluZGV4IDg1MTUyMzNiYmYxN2Q5ODViYWJkOWM1YmI1MDIzNzcwMjE0MThiYTcuLjIxZThj
NmNhYTllODFlNzA0OWU3ZGNkNTRiY2U3NWQwNjI5ZTZjMzUgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAKQEAgLTE0MDcsMjQgKzE0MDcsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9f
cHJpbWl0aXZlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Qwog
ICAgIHN0dWJDYWxsLmNhbGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAK
LXZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCi17Ci0gICAg
dW5zaWduZWQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLSAgICB1bnNp
Z25lZCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICB1bnNpZ25l
ZCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0KLSAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCi0gICAgbGlua1Nsb3dDYXNl
SWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawotICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsg
Ly8gdmVjdG9yIGxlbmd0aCBjaGVjawotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gZW1wdHkg
dmFsdWUKLQotICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9nZXRfYnlfdmFs
KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChiYXNlLCByZWdUMik7Ci0gICAgc3R1YkNhbGwu
YWRkQXJndW1lbnQocHJvcGVydHksIHJlZ1QyKTsKLSAgICBzdHViQ2FsbC5jYWxsKGRzdCk7Ci19
Ci0KIHZvaWQgSklUOjplbWl0U2xvd19vcF9sb29wX2lmX2xlc3NlcShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQog
ewogICAgIHVuc2lnbmVkIG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCAzMzk5ZjAzM2RlMzQ0
NGU4MDI0M2JiMDcyNjY3OWY3ODU5ODY2Y2RlLi5mODVjZGIyODFmNzE3ZTNjNTNjMjUxZjcxMDQy
MWMzMDg1MzRhYTQ3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
QEAgLTUyLDYgKzUyLDQyIEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBKU0Mg
ewogCitQYXNzUmVmUHRyPE5hdGl2ZUV4ZWN1dGFibGU+IEpJVDo6c3RyaW5nR2V0QnlWYWxTdHVi
R2VuZXJhdG9yKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvb2wqIHBvb2wp
Cit7CisgICAgSlNJbnRlcmZhY2VKSVQgaml0OworICAgIEp1bXBMaXN0IGZhaWx1cmVzOworICAg
IGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwg
SW1tUHRyKGdsb2JhbERhdGEtPmpzU3RyaW5nVlB0cikpKTsKKyAgICBmYWlsdXJlcy5hcHBlbmQo
aml0LmJyYW5jaFRlc3QzMihOb25aZXJvLCBBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0Yo
SlNTdHJpbmcsIG1fZmliZXJDb3VudCkpKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBqaXQu
emVyb0V4dGVuZDMyVG9QdHIocmVnVDEsIHJlZ1QxKTsKKyNlbHNlCisgICAgaml0LmVtaXRGYXN0
QXJpdGhJbW1Ub0ludChyZWdUMSk7CisjZW5kaWYKKworICAgIC8vIExvYWQgc3RyaW5nIGxlbmd0
aCB0byByZWdUMSwgYW5kIHN0YXJ0IHRoZSBwcm9jZXNzIG9mIGxvYWRpbmcgdGhlIGRhdGEgcG9p
bnRlciBpbnRvIHJlZ1QwCisgICAgaml0LmxvYWQzMihBZGRyZXNzKHJlZ1QwLCBUaHVua0hlbHBl
cnM6OmpzU3RyaW5nTGVuZ3RoT2Zmc2V0KCkpLCByZWdUMik7CisgICAgaml0LmxvYWRQdHIoQWRk
cmVzcyhyZWdUMCwgVGh1bmtIZWxwZXJzOjpqc1N0cmluZ1ZhbHVlT2Zmc2V0KCkpLCByZWdUMCk7
CisgICAgaml0LmxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgVGh1bmtIZWxwZXJzOjpzdHJpbmdJbXBs
RGF0YU9mZnNldCgpKSwgcmVnVDApOworICAgIAorICAgIC8vIERvIGFuIHVuc2lnbmVkIGNvbXBh
cmUgdG8gc2ltdWx0YW5lb3VzbHkgZmlsdGVyIG5lZ2F0aXZlIGluZGljZXMgYXMgd2VsbCBhcyBp
bmRpY2VzIHRoYXQgYXJlIHRvbyBsYXJnZQorICAgIGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNo
MzIoQWJvdmVPckVxdWFsLCByZWdUMSwgcmVnVDIpKTsKKyAgICAKKyAgICAvLyBMb2FkIHRoZSBj
aGFyYWN0ZXIKKyAgICBqaXQubG9hZDE2KEJhc2VJbmRleChyZWdUMCwgcmVnVDEsIFRpbWVzVHdv
LCAwKSwgcmVnVDApOworICAgIAorICAgIGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNoMzIoQWJv
dmVPckVxdWFsLCByZWdUMCwgSW1tMzIoMHgxMDApKSk7CisgICAgaml0Lm1vdmUoSW1tUHRyKGds
b2JhbERhdGEtPnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzKCkpLCByZWdUMSk7
CisgICAgaml0LmxvYWRQdHIoQmFzZUluZGV4KHJlZ1QxLCByZWdUMCwgU2NhbGVQdHIsIDApLCBy
ZWdUMCk7CisgICAgaml0LnJldCgpOworICAgIAorICAgIGZhaWx1cmVzLmxpbmsoJmppdCk7Cisg
ICAgaml0Lm1vdmUoSW1tMzIoMCksIHJlZ1QwKTsKKyAgICBqaXQucmV0KCk7CisgICAgCisgICAg
TGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigmaml0LCBwb29sKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE5hdGl2ZUV4ZWN1dGFibGUocGF0Y2hCdWZmZXIuZmluYWxpemVDb2RlKCkpKTsKK30KKwog
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogewogICAgIHVuc2lnbmVkIGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQ7CkBAIC04Myw2ICsxMTksMzQgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
ZHN0KTsKIH0KIAordm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRl
cikKK3sKKyAgICB1bnNpZ25lZCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
OworICAgIHVuc2lnbmVkIGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwor
ICAgIHVuc2lnbmVkIHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
KyAgICAKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCisg
ICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVj
aworICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8v
IGJhc2UgYXJyYXkgY2hlY2sKKyAgICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFB0cihOb3RFcXVh
bCwgQWRkcmVzcyhyZWdUMCksIEltbVB0cihtX2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0cikpOwor
ICAgIGVtaXROYWtlZENhbGwobV9nbG9iYWxEYXRhLT5nZXRUaHVuayhzdHJpbmdHZXRCeVZhbFN0
dWJHZW5lcmF0b3IpLT5nZW5lcmF0ZWRKSVRDb2RlKCkuYWRkcmVzc0ZvckNhbGwoKSk7CisgICAg
SnVtcCBmYWlsZWQgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1QwKTsKKyAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGRzdCwgcmVnVDApOworICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwg
T1BDT0RFX0xFTkdUSChvcF9nZXRfYnlfdmFsKSk7CisgICAgZmFpbGVkLmxpbmsodGhpcyk7Cisg
ICAgbm90U3RyaW5nLmxpbmsodGhpcyk7CisgICAgbm9uQ2VsbC5saW5rKHRoaXMpOworICAgIAor
ICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gdmVjdG9yIGxlbmd0aCBjaGVjaworICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsgLy8gZW1wdHkgdmFsdWUKKyAgICAKKyAgICBKSVRTdHViQ2FsbCBzdHVi
Q2FsbCh0aGlzLCBjdGlfb3BfZ2V0X2J5X3ZhbCk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQo
YmFzZSwgcmVnVDIpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KHByb3BlcnR5LCByZWdUMik7
CisgICAgc3R1YkNhbGwuY2FsbChkc3QpOworfQorCiB2b2lkIEpJVDo6Y29tcGlsZUdldERpcmVj
dE9mZnNldChSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgcmVzdWx0LCBSZWdpc3RlcklEIHN0
cnVjdHVyZSwgUmVnaXN0ZXJJRCBvZmZzZXQsIFJlZ2lzdGVySUQgc2NyYXRjaCkKIHsKICAgICBB
U1NFUlQoc2l6ZW9mKCgoU3RydWN0dXJlKikwKS0+bV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSkg
PT0gc2l6ZW9mKGludDMyX3QpKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcAppbmRleCBlYzMzMDI2YTdlZmU5ZDRkMmNmZTMwYmQ2N2EyNmZiMmE1MDhh
NWI2Li4wYzE0ZmJmYWYxNjYxNjcwNDc2MmQwNWYyZmZkYzVhOWE2OGVhNmFkIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0yNjksNiArMjY5
LDM4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tZXRob2RfY2hlY2soSW5zdHJ1Y3Rpb24qLCBW
ZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yCiAKICNlbmRpZgogCitQYXNzUmVmUHRyPE5h
dGl2ZUV4ZWN1dGFibGU+IEpJVDo6c3RyaW5nR2V0QnlWYWxTdHViR2VuZXJhdG9yKEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSwgRXhlY3V0YWJsZVBvb2wqIHBvb2wpCit7CisgICAgSlNJbnRlcmZh
Y2VKSVQgaml0OworICAgIEp1bXBMaXN0IGZhaWx1cmVzOworICAgIGZhaWx1cmVzLmFwcGVuZChq
aXQuYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgSW1tUHRyKGdsb2JhbERhdGEt
PmpzU3RyaW5nVlB0cikpKTsKKyAgICBmYWlsdXJlcy5hcHBlbmQoaml0LmJyYW5jaFRlc3QzMihO
b25aZXJvLCBBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNTdHJpbmcsIG1fZmliZXJD
b3VudCkpKSk7CisgICAgCisgICAgLy8gTG9hZCBzdHJpbmcgbGVuZ3RoIHRvIHJlZ1QxLCBhbmQg
c3RhcnQgdGhlIHByb2Nlc3Mgb2YgbG9hZGluZyB0aGUgZGF0YSBwb2ludGVyIGludG8gcmVnVDAK
KyAgICBqaXQubG9hZDMyKEFkZHJlc3MocmVnVDAsIFRodW5rSGVscGVyczo6anNTdHJpbmdMZW5n
dGhPZmZzZXQoKSksIHJlZ1QxKTsKKyAgICBqaXQubG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBUaHVu
a0hlbHBlcnM6OmpzU3RyaW5nVmFsdWVPZmZzZXQoKSksIHJlZ1QwKTsKKyAgICBqaXQubG9hZFB0
cihBZGRyZXNzKHJlZ1QwLCBUaHVua0hlbHBlcnM6OnN0cmluZ0ltcGxEYXRhT2Zmc2V0KCkpLCBy
ZWdUMCk7CisgICAgCisgICAgLy8gRG8gYW4gdW5zaWduZWQgY29tcGFyZSB0byBzaW11bHRhbmVv
dXNseSBmaWx0ZXIgbmVnYXRpdmUgaW5kaWNlcyBhcyB3ZWxsIGFzIGluZGljZXMgdGhhdCBhcmUg
dG9vIGxhcmdlCisgICAgZmFpbHVyZXMuYXBwZW5kKGppdC5icmFuY2gzMihBYm92ZU9yRXF1YWws
IHJlZ1QyLCByZWdUMSkpOworICAgIAorICAgIC8vIExvYWQgdGhlIGNoYXJhY3RlcgorICAgIGpp
dC5sb2FkMTYoQmFzZUluZGV4KHJlZ1QwLCByZWdUMiwgVGltZXNUd28sIDApLCByZWdUMCk7Cisg
ICAgCisgICAgZmFpbHVyZXMuYXBwZW5kKGppdC5icmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ1Qw
LCBJbW0zMigweDEwMCkpKTsKKyAgICBqaXQubW92ZShJbW1QdHIoZ2xvYmFsRGF0YS0+c21hbGxT
dHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZ3MoKSksIHJlZ1QxKTsKKyAgICBqaXQubG9hZFB0
cihCYXNlSW5kZXgocmVnVDEsIHJlZ1QwLCBTY2FsZVB0ciwgMCksIHJlZ1QwKTsKKyAgICBqaXQu
bW92ZShJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVnVDEpOyAvLyBXZSBudWxsIGNoZWNrIHJl
Z1QwIG9uIHJldHVybiBzbyB0aGlzIGlzIHNhZmUKKyAgICBqaXQucmV0KCk7CisKKyAgICBmYWls
dXJlcy5saW5rKCZqaXQpOworICAgIGppdC5tb3ZlKEltbTMyKDApLCByZWdUMCk7CisgICAgaml0
LnJldCgpOworICAgIAorICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoJmppdCwgcG9vbCk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYXRpdmVFeGVjdXRhYmxlKHBhdGNoQnVmZmVyLmZpbmFs
aXplQ29kZSgpKSk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICB1bnNpZ25lZCBkc3QgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAtMzAwLDcgKzMzMiwxOCBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0NhcwogICAgIAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50
MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFz
ZSBjZWxsIGNoZWNrCisKKyAgICBKdW1wIG5vbkNlbGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCisgICAgSnVtcCBub3RTdHJpbmcgPSBicmFu
Y2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBJbW1QdHIobV9nbG9iYWxEYXRhLT5qc1N0
cmluZ1ZQdHIpKTsKKyAgICBlbWl0TmFrZWRDYWxsKG1fZ2xvYmFsRGF0YS0+Z2V0VGh1bmsoc3Ry
aW5nR2V0QnlWYWxTdHViR2VuZXJhdG9yKS0+Z2VuZXJhdGVkSklUQ29kZSgpLmFkZHJlc3NGb3JD
YWxsKCkpOworICAgIEp1bXAgZmFpbGVkID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMCk7Cisg
ICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0SnVtcFNsb3dUb0hvdChq
dW1wKCksIE9QQ09ERV9MRU5HVEgob3BfZ2V0X2J5X3ZhbCkpOworICAgIGZhaWxlZC5saW5rKHRo
aXMpOworICAgIG5vdFN0cmluZy5saW5rKHRoaXMpOworICAgIG5vbkNlbGwubGluayh0aGlzKTsK
KwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gdmVjdG9yIGxlbmd0aCBjaGVjawogICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsgLy8gZW1wdHkgdmFsdWUKICAgICAKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50
ZXJmYWNlSklULmgKaW5kZXggMmNkMGUzMzFjYzY5MWUzMDQzYWZhOGU3YjBmOGRiMGFmM2Q0NjQy
Mi4uNmQ1NjEyNzEwZDg4NDQxMjk4Y2FkNmJkOTE3NjBiYjc3NGVmMjI3NiAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
aml0L0pTSW50ZXJmYWNlSklULmgKQEAgLTE2OSw2ICsxNjksNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICNpZiBVU0UoSlNWQUxVRTMyKSB8fCBVU0UoSlNWQUxVRTY0KQogICAgICAgICBKdW1wIGVtaXRK
dW1wSWZJbW1lZGlhdGVOdW1iZXIoUmVnaXN0ZXJJRCByZWcpOwogICAgICAgICBKdW1wIGVtaXRK
dW1wSWZOb3RJbW1lZGlhdGVOdW1iZXIoUmVnaXN0ZXJJRCByZWcpOworICAgICAgICB2b2lkIGVt
aXRGYXN0QXJpdGhJbW1Ub0ludChSZWdpc3RlcklEIHJlZyk7CiAjZW5kaWYKIAogICAgICAgICBp
bmxpbmUgQWRkcmVzcyBwYXlsb2FkRm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2Ug
PSBjYWxsRnJhbWVSZWdpc3Rlcik7CkBAIC0yNjAsNyArMjYxLDExIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgICAgIHJldHVybiBub3ROdW1iZXI7CiAg
ICAgfQotCisgICAgCisgICAgQUxXQVlTX0lOTElORSB2b2lkIEpTSW50ZXJmYWNlSklUOjplbWl0
RmFzdEFyaXRoSW1tVG9JbnQoUmVnaXN0ZXJJRCkKKyAgICB7CisgICAgfQorICAgIAogI2VuZGlm
CiAKICNpZiBVU0UoSlNWQUxVRTMyKQpAQCAtMjgzLDYgKzI4OCwxMiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBqdW1wKCk7
CiAgICAgfQorICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBKU0ludGVyZmFjZUpJVDo6ZW1p
dEZhc3RBcml0aEltbVRvSW50KFJlZ2lzdGVySUQgcmVnKQorICAgIHsKKyAgICAgICAgcnNoaWZ0
MzIoSW1tMzIoSlNJbW1lZGlhdGU6OkludGVnZXJQYXlsb2FkU2hpZnQpLCByZWcpOworICAgIH0K
KyAgICAKICNlbmRpZgogCiAjaWYgIVVTRShKU1ZBTFVFMzJfNjQpCg==
</data>
<flag name="review"
          id="39698"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>