<?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>15865</bug_id>
          
          <creation_ts>2007-11-06 20:01:03 -0800</creation_ts>
          <short_desc>Store .lut.h hashfile keys as UTF16 stings for faster key compares</short_desc>
          <delta_ts>2009-03-24 11:29:24 -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.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>emacemac7</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60468</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-06 20:01:03 -0800</bug_when>
    <thetext>Store .lut.h hashfile keys as UTF16 stings for faster key compares

I&apos;ve attached a patch which does that, I&apos;ve not yet perf tested it.  (About to do so.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60469</commentid>
    <comment_count>1</comment_count>
      <attachid>17077</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-06 20:01:48 -0800</bug_when>
    <thetext>Created attachment 17077
the fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60471</commentid>
    <comment_count>2</comment_count>
      <attachid>17079</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-06 20:40:06 -0800</bug_when>
    <thetext>Created attachment 17079
naive fix (0.5% slower according to SunSpider)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60478</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-06 21:02:37 -0800</bug_when>
    <thetext>Hum.. well, the shark diff makes no sense at all.

    spectral-norm:     2.2% *slower*    126.8ms +/- 0.8%    129.6ms +/- 0.9%     significant

is the worst regression.  four others are more than 1.0% slower.  Overall 0.2% slower according to my most recent run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60662</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-08 13:16:38 -0800</bug_when>
    <thetext>A good test to try and optimize this with might be string-validate-input.js.  I see that test spending 2.4% of total time in findEntry()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76126</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-04-02 02:29:48 -0700</bug_when>
    <thetext>I did a fancier version of this optimization recently. I think this bug is probably obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114963</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-24 10:57:45 -0700</bug_when>
    <thetext>Eric, is this bug still valid?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114976</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 11:29:24 -0700</bug_when>
    <thetext>Yeah, I think we tried this and it was slower.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17077</attachid>
            <date>2007-11-06 20:01:48 -0800</date>
            <delta_ts>2007-11-06 20:40:06 -0800</delta_ts>
            <desc>the fix</desc>
            <filename>utf16keys.patch</filename>
            <type>text/plain</type>
            <size>4611</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9jcmVhdGVfaGFzaF90YWJsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvY3JlYXRlX2hh
c2hfdGFibGUJKHJldmlzaW9uIDI3NDk1KQorKysga2pzL2NyZWF0ZV9oYXNoX3RhYmxlCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIHVzZSBzdHJpY3Q7CiBteSAkZmlsZSA9ICRBUkdW
WzBdOwogc2hpZnQ7CiBteSAkaW5jbHVkZWxvb2t1cCA9IDA7CitteSAkdXNlVUNoYXJBcnJheXMg
PSAxOwogCiAjIFVzZSAtaSBhcyBzZWNvbmQgYXJndW1lbnQgdG8gbWFrZSBpdCBpbmNsdWRlICJs
b29rdXAuaCIKICRpbmNsdWRlbG9va3VwID0gMSBpZiAoZGVmaW5lZCgkQVJHVlswXSkgJiYgJEFS
R1ZbMF0gZXEgIi1pIik7CkBAIC0yMDIsNiArMjAzLDMzIEBAIHN1YiBoYXNoVmFsdWUoJCkgewog
ICByZXR1cm4gJGhhc2g7CiB9CiAKK3N1YiBrZXlBc1VDaGFyQXJyYXkoJCkKK3sKKyAgICBteSAk
a2V5ID0gc2hpZnQ7CisgICAgbXkgJGtleUxlbmd0aCA9IGxlbmd0aCgka2V5KTsKKyAgICBteSBA
Y2hhcnMgPSBzcGxpdCgvLywgJGtleSk7CisgICAgbXkgJHJlc3VsdCA9ICIiOworICAgIGZvciAo
bXkgJHggPSAwOyAkeCA8ICRrZXlMZW5ndGg7ICR4KyspIHsKKyAgICAgICAgbXkgJGNoYXIgPSAk
Y2hhcnNbJHhdOworICAgICAgICAkY2hhciA9fiBzLycvXFwnLzsKKyAgICAgICAgJHJlc3VsdCAu
PSAiLCAiICBpZiAoJHggIT0gMCk7CisgICAgICAgICRyZXN1bHQgLj0gIiciIC4gJGNoYXIgLiAi
JyI7CisgICAgfQorICAgIHJldHVybiAieyAiIC4gJHJlc3VsdCAuICIgfSI7Cit9CisKK3N1YiBr
ZXlTdG9yYWdlTmFtZSgkKQoreworICAgIG15ICRrZXkgPSBzaGlmdDsKKyAgICAka2V5ID1+IHMv
XCQvRG9sbGFyLzsKKyAgICAka2V5ID1+IHMvXCcvU2lnUXVvdGUvOworICAgICRrZXkgPX4gcy9c
Ji9BbXAvOworICAgICRrZXkgPX4gcy9cYC9UaWNrLzsKKyAgICAka2V5ID1+IHMvXCsvUGx1cy87
CisgICAgJGtleSA9fiBzL1wqL1N0YXIvOworICAgIHJldHVybiAkbmFtZSAuICRrZXkgLiAiS2V5
IjsKK30KKwogc3ViIG91dHB1dCgpIHsKICAgaWYgKCEkYmFubmVyKSB7CiAgICAgJGJhbm5lciA9
IDE7CkBAIC0yMTgsMTMgKzI0NiwyNSBAQCBzdWIgb3V0cHV0KCkgewogICB9IGVsc2UgewogICAg
IHByaW50ICJcbm5hbWVzcGFjZSBLSlMge1xuIjsKICAgfQorICBpZiAoJHVzZVVDaGFyQXJyYXlz
KSB7CisgICAgZm9yZWFjaCBteSAka2V5IChAa2V5cykgeworICAgICAgcHJpbnQgIlxuc3RhdGlj
IGNvbnN0IFVDaGFyICIgLiBrZXlTdG9yYWdlTmFtZSgka2V5KSAuICJbXSA9ICIgLiBrZXlBc1VD
aGFyQXJyYXkoJGtleSkgLiAiOyI7CisgICAgfQorICAgIHByaW50ICJcbiI7CisgIH0KICAgcHJp
bnQgIlxuc3RhdGljIGNvbnN0IHN0cnVjdCBIYXNoRW50cnkgIi4kbmFtZUVudHJpZXMuIltdID0g
e1xuIjsKICAgbXkgJGkgPSAwOwogICAKICAgICBmb3JlYWNoIG15ICRlbnRyeSAoQHRhYmxlKSB7
CiAgICAgICBpZiAoZGVmaW5lZCgkZW50cnkpKSB7CiAgICAgICAgIG15ICRrZXkgPSAka2V5c1sk
ZW50cnldOwotICAgICAgICBwcmludCAiICAgXHsgXCIiIC4gJGtleSAuICJcIiI7CisgICAgICAg
IHByaW50ICIgICBceyAiOworICAgICAgICBpZiAoJHVzZVVDaGFyQXJyYXlzKSB7CisgICAgICAg
ICAgcHJpbnQga2V5U3RvcmFnZU5hbWUoJGtleSk7CisgICAgICAgICAgcHJpbnQgIiwgIiAuIGxl
bmd0aCgka2V5KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBwcmludCAiXCIiIC4gJGtl
eSAuICJcIiI7CisgICAgICAgIH0KICAgICAgICAgcHJpbnQgIiwgIiAuICR2YWx1ZXNbJGVudHJ5
XTsKICAgICAgICAgcHJpbnQgIiwgIiAuICRhdHRyc1skZW50cnldOwogICAgICAgICBwcmludCAi
LCAiIC4gJHBhcmFtc1skZW50cnldOwpAQCAtMjM2LDcgKzI3NiwxMSBAQCBzdWIgb3V0cHV0KCkg
ewogICAgICAgICB9CiAgICAgICAgIHByaW50ICIvKiAiIC4gJGhhc2hlc1skZW50cnldIC4gIiAq
LyAiOwogICAgICAgfSBlbHNlIHsKLSAgICAgICAgcHJpbnQgIiAgIHsgMCwgMCwgMCwgMCwgMCB9
IjsKKyAgICAgICAgaWYgKCR1c2VVQ2hhckFycmF5cykgeworICAgICAgICAgIHByaW50ICIgICB7
IDAsIDAsIDAsIDAsIDAsIDAgfSI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcHJpbnQg
IiAgIHsgMCwgMCwgMCwgMCwgMCB9IjsKKyAgICAgICAgfQogICAgICAgfSAgICAKICAgICAgIHBy
aW50ICIsIiB1bmxlc3MgKCRpID09ICRzaXplIC0gMSk7CiAgICAgICBwcmludCAiXG4iOwpJbmRl
eDoga2pzL2xvb2t1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL2xvb2t1cC5jcHAJKHJldmlzaW9u
IDI3NDk1KQorKysga2pzL2xvb2t1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE0ICsyNiwx
NCBAQAogCiBuYW1lc3BhY2UgS0pTIHsKIAotc3RhdGljIGlubGluZSBib29sIGtleXNNYXRjaChj
b25zdCBVQ2hhciogYywgdW5zaWduZWQgbGVuLCBjb25zdCBjaGFyKiBzKQorc3RhdGljIGlubGlu
ZSBib29sIGtleXNNYXRjaChjb25zdCBVQ2hhciogYywgdW5zaWduZWQgbGVuLCBjb25zdCBVQ2hh
cioga2V5LCB1bnNpZ25lZCBrZXlMZW5ndGgpCiB7Ci0gIC8vIEZJWE1FOiBUaGlzIGNhbiBydW4g
b2ZmIHRoZSBlbmQgb2YgfHN8IGlmIHxjfCBoYXMgYSBVKzAwMDAgY2hhcmFjdGVyIGluIGl0Lgot
ICBjb25zdCBjaGFyKiBlbmQgPSBzICsgbGVuOwotICBmb3IgKDsgcyAhPSBlbmQ7IGMrKywgcysr
KQotICAgIGlmIChjLT51YyAhPSAqcykKKyAgLy8gRklYTUU6IFRoaXMgY2FuIHJ1biBvZmYgdGhl
IGVuZCBvZiB8a2V5fCBpZiB8Y3wgaGFzIGEgVSswMDAwIGNoYXJhY3RlciBpbiBpdC4KKyAgY29u
c3QgVUNoYXIqIGVuZCA9IGtleSArIGxlbjsKKyAgZm9yICg7IGtleSAhPSBlbmQ7IGMrKywga2V5
KyspCisgICAgaWYgKGMgIT0ga2V5KQogICAgICAgcmV0dXJuIGZhbHNlOwotICByZXR1cm4gKnMg
PT0gMDsKKyAgcmV0dXJuIChsZW4gPT0ga2V5TGVuZ3RoKTsKIH0KIAogc3RhdGljIGlubGluZSBj
b25zdCBIYXNoRW50cnkqIGZpbmRFbnRyeShjb25zdCBzdHJ1Y3QgSGFzaFRhYmxlKiB0YWJsZSwg
dW5zaWduZWQgaW50IGhhc2gsCkBAIC00MywxMiArNDMsMTIgQEAgc3RhdGljIGlubGluZSBjb25z
dCBIYXNoRW50cnkqIGZpbmRFbnRyeQogICAgIAogICBjb25zdCBIYXNoRW50cnkqIGUgPSAmdGFi
bGUtPmVudHJpZXNbaGFzaCAmIHRhYmxlLT5oYXNoU2l6ZU1hc2tdOwogCi0gIGlmICghZS0+cykK
KyAgaWYgKCFlLT5rZXkpCiAgICAgcmV0dXJuIDA7CiAKICAgZG8gewogICAgIC8vIGNvbXBhcmUg
c3RyaW5ncwotICAgIGlmIChrZXlzTWF0Y2goYywgbGVuLCBlLT5zKSkKKyAgICBpZiAoa2V5c01h
dGNoKGMsIGxlbiwgZS0+a2V5LCBlLT5rZXlMZW5ndGgpKQogICAgICAgcmV0dXJuIGU7CiAKICAg
ICAvLyB0cnkgbmV4dCBidWNrZXQKSW5kZXg6IGtqcy9sb29rdXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
anMvbG9va3VwLmgJKHJldmlzaW9uIDI3NDk1KQorKysga2pzL2xvb2t1cC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMCArMzYsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICogQW4gZW50cnkgaW4g
YSBoYXNoIHRhYmxlLgogICAgKi8KICAgc3RydWN0IEhhc2hFbnRyeSB7Ci0gICAgLyoqCi0gICAg
ICogcyBpcyB0aGUga2V5IChlLmcuIGEgcHJvcGVydHkgbmFtZSkKLSAgICAgKi8KLSAgICBjb25z
dCBjaGFyKiBzOworICAgIGNvbnN0IFVDaGFyKiBrZXk7CisgICAgdW5zaWduZWQgIGtleUxlbmd0
aDsKIAogICAgIC8qKgogICAgICAqIHZhbHVlIGlzIHRoZSByZXN1bHQgdmFsdWUgKHVzdWFsbHkg
YW4gZW51bSB2YWx1ZSkKSW5kZXg6IGtqcy9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9v
YmplY3QuY3BwCShyZXZpc2lvbiAyNzQ5NSkKKysrIGtqcy9vYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MTMsOCArNTEzLDggQEAgdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhF
eGVjU3RhdAogICAgICAgaW50IHNpemUgPSBpbmZvLT5wcm9wSGFzaFRhYmxlLT5zaXplOwogICAg
ICAgY29uc3QgSGFzaEVudHJ5ICplID0gaW5mby0+cHJvcEhhc2hUYWJsZS0+ZW50cmllczsKICAg
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpLCArK2UpIHsKLSAgICAgICAgaWYgKGUt
PnMgJiYgIShlLT5hdHRyICYgRG9udEVudW0pKQotICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRk
KGUtPnMpOworICAgICAgICBpZiAoZS0+a2V5ICYmICEoZS0+YXR0ciAmIERvbnRFbnVtKSkKKyAg
ICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGUtPmtleSwgZS0+a2V5TGVuZ3Ro
KSk7CiAgICAgICB9CiAgICAgfQogICAgIGluZm8gPSBpbmZvLT5wYXJlbnRDbGFzczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17079</attachid>
            <date>2007-11-06 20:40:06 -0800</date>
            <delta_ts>2007-11-06 20:40:06 -0800</delta_ts>
            <desc>naive fix (0.5% slower according to SunSpider)</desc>
            <filename>utf16keys.patch</filename>
            <type>text/plain</type>
            <size>5805</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9jcmVhdGVfaGFzaF90YWJsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvY3JlYXRlX2hh
c2hfdGFibGUJKHJldmlzaW9uIDI3NDk1KQorKysga2pzL2NyZWF0ZV9oYXNoX3RhYmxlCSh3b3Jr
aW5nIGNvcHkpCkBAIC02LDggKzYsNyBAQAogIyAgICAgICAgICAgICAgICAgIERhdmlkIEZhdXJl
IDxmYXVyZUBrZGUub3JnPgogIyBNb2RpZmllZCAoYykgMjAwNCBieSBOaWtvbGFzIFppbW1lcm1h
bm4gPHdpbGRmb3hAa2RlLm9yZz4KICMgQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUGFydCBvZiB0aGUgS0pTIGxpYnJhcnkuCisjIENvcHly
aWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogIwogIyBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAj
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKQEAgLTI5LDYgKzI4LDcgQEAgdXNlIHN0cmljdDsKIG15ICRmaWxlID0gJEFSR1ZbMF07CiBz
aGlmdDsKIG15ICRpbmNsdWRlbG9va3VwID0gMDsKK215ICR1c2VVQ2hhckFycmF5cyA9IDE7CiAK
ICMgVXNlIC1pIGFzIHNlY29uZCBhcmd1bWVudCB0byBtYWtlIGl0IGluY2x1ZGUgImxvb2t1cC5o
IgogJGluY2x1ZGVsb29rdXAgPSAxIGlmIChkZWZpbmVkKCRBUkdWWzBdKSAmJiAkQVJHVlswXSBl
cSAiLWkiKTsKQEAgLTIwMiw2ICsyMDIsMzMgQEAgc3ViIGhhc2hWYWx1ZSgkKSB7CiAgIHJldHVy
biAkaGFzaDsKIH0KIAorc3ViIGtleUFzVUNoYXJBcnJheSgkKQoreworICAgIG15ICRrZXkgPSBz
aGlmdDsKKyAgICBteSAka2V5TGVuZ3RoID0gbGVuZ3RoKCRrZXkpOworICAgIG15IEBjaGFycyA9
IHNwbGl0KC8vLCAka2V5KTsKKyAgICBteSAkcmVzdWx0ID0gIiI7CisgICAgZm9yIChteSAkeCA9
IDA7ICR4IDwgJGtleUxlbmd0aDsgJHgrKykgeworICAgICAgICBteSAkY2hhciA9ICRjaGFyc1sk
eF07CisgICAgICAgICRjaGFyID1+IHMvJy9cXCcvOworICAgICAgICAkcmVzdWx0IC49ICIsICIg
IGlmICgkeCAhPSAwKTsKKyAgICAgICAgJHJlc3VsdCAuPSAiJyIgLiAkY2hhciAuICInIjsKKyAg
ICB9CisgICAgcmV0dXJuICJ7ICIgLiAkcmVzdWx0IC4gIiB9IjsKK30KKworc3ViIGtleVN0b3Jh
Z2VOYW1lKCQpCit7CisgICAgbXkgJGtleSA9IHNoaWZ0OworICAgICRrZXkgPX4gcy9cJC9Eb2xs
YXIvOworICAgICRrZXkgPX4gcy9cJy9TaWdRdW90ZS87CisgICAgJGtleSA9fiBzL1wmL0FtcC87
CisgICAgJGtleSA9fiBzL1xgL1RpY2svOworICAgICRrZXkgPX4gcy9cKy9QbHVzLzsKKyAgICAk
a2V5ID1+IHMvXCovU3Rhci87CisgICAgcmV0dXJuICRuYW1lIC4gJGtleSAuICJLZXkiOworfQor
CiBzdWIgb3V0cHV0KCkgewogICBpZiAoISRiYW5uZXIpIHsKICAgICAkYmFubmVyID0gMTsKQEAg
LTIxOCwxMyArMjQ1LDI1IEBAIHN1YiBvdXRwdXQoKSB7CiAgIH0gZWxzZSB7CiAgICAgcHJpbnQg
IlxubmFtZXNwYWNlIEtKUyB7XG4iOwogICB9CisgIGlmICgkdXNlVUNoYXJBcnJheXMpIHsKKyAg
ICBmb3JlYWNoIG15ICRrZXkgKEBrZXlzKSB7CisgICAgICBwcmludCAiXG5zdGF0aWMgY29uc3Qg
VUNoYXIgIiAuIGtleVN0b3JhZ2VOYW1lKCRrZXkpIC4gIltdID0gIiAuIGtleUFzVUNoYXJBcnJh
eSgka2V5KSAuICI7IjsKKyAgICB9CisgICAgcHJpbnQgIlxuIjsKKyAgfQogICBwcmludCAiXG5z
dGF0aWMgY29uc3Qgc3RydWN0IEhhc2hFbnRyeSAiLiRuYW1lRW50cmllcy4iW10gPSB7XG4iOwog
ICBteSAkaSA9IDA7CiAgIAogICAgIGZvcmVhY2ggbXkgJGVudHJ5IChAdGFibGUpIHsKICAgICAg
IGlmIChkZWZpbmVkKCRlbnRyeSkpIHsKICAgICAgICAgbXkgJGtleSA9ICRrZXlzWyRlbnRyeV07
Ci0gICAgICAgIHByaW50ICIgICBceyBcIiIgLiAka2V5IC4gIlwiIjsKKyAgICAgICAgcHJpbnQg
IiAgIFx7ICI7CisgICAgICAgIGlmICgkdXNlVUNoYXJBcnJheXMpIHsKKyAgICAgICAgICBwcmlu
dCBrZXlTdG9yYWdlTmFtZSgka2V5KTsKKyAgICAgICAgICBwcmludCAiLCAiIC4gbGVuZ3RoKCRr
ZXkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ICJcIiIgLiAka2V5IC4gIlwi
IjsKKyAgICAgICAgfQogICAgICAgICBwcmludCAiLCAiIC4gJHZhbHVlc1skZW50cnldOwogICAg
ICAgICBwcmludCAiLCAiIC4gJGF0dHJzWyRlbnRyeV07CiAgICAgICAgIHByaW50ICIsICIgLiAk
cGFyYW1zWyRlbnRyeV07CkBAIC0yMzYsNyArMjc1LDExIEBAIHN1YiBvdXRwdXQoKSB7CiAgICAg
ICAgIH0KICAgICAgICAgcHJpbnQgIi8qICIgLiAkaGFzaGVzWyRlbnRyeV0gLiAiICovICI7CiAg
ICAgICB9IGVsc2UgewotICAgICAgICBwcmludCAiICAgeyAwLCAwLCAwLCAwLCAwIH0iOworICAg
ICAgICBpZiAoJHVzZVVDaGFyQXJyYXlzKSB7CisgICAgICAgICAgcHJpbnQgIiAgIHsgMCwgMCwg
MCwgMCwgMCwgMCB9IjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBwcmludCAiICAgeyAw
LCAwLCAwLCAwLCAwIH0iOworICAgICAgICB9CiAgICAgICB9ICAgIAogICAgICAgcHJpbnQgIiwi
IHVubGVzcyAoJGkgPT0gJHNpemUgLSAxKTsKICAgICAgIHByaW50ICJcbiI7CkluZGV4OiBranMv
bG9va3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbG9va3VwLmNwcAkocmV2aXNpb24gMjc0OTUp
CisrKyBranMvbG9va3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKIC8qCiAg
KiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykK
ICAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3Jn
PgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsMTQgKzI3LDE1IEBACiAKIG5hbWVzcGFjZSBL
SlMgewogCi1zdGF0aWMgaW5saW5lIGJvb2wga2V5c01hdGNoKGNvbnN0IFVDaGFyKiBjLCB1bnNp
Z25lZCBsZW4sIGNvbnN0IGNoYXIqIHMpCitzdGF0aWMgaW5saW5lIGJvb2wga2V5c01hdGNoKGNv
bnN0IFVDaGFyKiBjLCB1bnNpZ25lZCBsZW4sIGNvbnN0IFVDaGFyKiBrZXksIHVuc2lnbmVkIGtl
eUxlbmd0aCkKIHsKLSAgLy8gRklYTUU6IFRoaXMgY2FuIHJ1biBvZmYgdGhlIGVuZCBvZiB8c3wg
aWYgfGN8IGhhcyBhIFUrMDAwMCBjaGFyYWN0ZXIgaW4gaXQuCi0gIGNvbnN0IGNoYXIqIGVuZCA9
IHMgKyBsZW47Ci0gIGZvciAoOyBzICE9IGVuZDsgYysrLCBzKyspCi0gICAgaWYgKGMtPnVjICE9
ICpzKQorICAgIC8vcHJpbnRmKCJMb29rdXAgb2YgJXMgKCVpKSBhZ2FpbnN0ICVzICglaSlcbiIs
IFVTdHJpbmcoYywgbGVuKS5hc2NpaSgpLCBsZW4sIFVTdHJpbmcoa2V5LCBrZXlMZW5ndGgpLmFz
Y2lpKCksIGtleUxlbmd0aCk7CisgIC8vIEZJWE1FOiBUaGlzIGNhbiBydW4gb2ZmIHRoZSBlbmQg
b2YgfGtleXwgaWYgfGN8IGhhcyBhIFUrMDAwMCBjaGFyYWN0ZXIgaW4gaXQuCisgIGNvbnN0IFVD
aGFyKiBlbmQgPSBrZXkgKyBsZW47CisgIGZvciAoOyBrZXkgIT0gZW5kOyBjKyssIGtleSsrKQor
ICAgIGlmIChjLT51YyAhPSBrZXktPnVjKQogICAgICAgcmV0dXJuIGZhbHNlOwotICByZXR1cm4g
KnMgPT0gMDsKKyAgcmV0dXJuIChsZW4gPT0ga2V5TGVuZ3RoKTsKIH0KIAogc3RhdGljIGlubGlu
ZSBjb25zdCBIYXNoRW50cnkqIGZpbmRFbnRyeShjb25zdCBzdHJ1Y3QgSGFzaFRhYmxlKiB0YWJs
ZSwgdW5zaWduZWQgaW50IGhhc2gsCkBAIC00MywxMiArNDUsMTIgQEAgc3RhdGljIGlubGluZSBj
b25zdCBIYXNoRW50cnkqIGZpbmRFbnRyeQogICAgIAogICBjb25zdCBIYXNoRW50cnkqIGUgPSAm
dGFibGUtPmVudHJpZXNbaGFzaCAmIHRhYmxlLT5oYXNoU2l6ZU1hc2tdOwogCi0gIGlmICghZS0+
cykKKyAgaWYgKCFlLT5rZXkpCiAgICAgcmV0dXJuIDA7CiAKICAgZG8gewogICAgIC8vIGNvbXBh
cmUgc3RyaW5ncwotICAgIGlmIChrZXlzTWF0Y2goYywgbGVuLCBlLT5zKSkKKyAgICBpZiAoa2V5
c01hdGNoKGMsIGxlbiwgZS0+a2V5LCBlLT5rZXlMZW5ndGgpKQogICAgICAgcmV0dXJuIGU7CiAK
ICAgICAvLyB0cnkgbmV4dCBidWNrZXQKSW5kZXg6IGtqcy9sb29rdXAuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBranMvbG9va3VwLmgJKHJldmlzaW9uIDI3NDk1KQorKysga2pzL2xvb2t1cC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBI
YXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICogIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC0zNiwxMCArMzcsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICogQW4gZW50cnkgaW4gYSBo
YXNoIHRhYmxlLgogICAgKi8KICAgc3RydWN0IEhhc2hFbnRyeSB7Ci0gICAgLyoqCi0gICAgICog
cyBpcyB0aGUga2V5IChlLmcuIGEgcHJvcGVydHkgbmFtZSkKLSAgICAgKi8KLSAgICBjb25zdCBj
aGFyKiBzOworICAgIGNvbnN0IFVDaGFyKiBrZXk7CisgICAgdW5zaWduZWQgIGtleUxlbmd0aDsK
IAogICAgIC8qKgogICAgICAqIHZhbHVlIGlzIHRoZSByZXN1bHQgdmFsdWUgKHVzdWFsbHkgYW4g
ZW51bSB2YWx1ZSkKSW5kZXg6IGtqcy9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9vYmpl
Y3QuY3BwCShyZXZpc2lvbiAyNzQ5NSkKKysrIGtqcy9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MTMsOCArNTEzLDggQEAgdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVj
U3RhdAogICAgICAgaW50IHNpemUgPSBpbmZvLT5wcm9wSGFzaFRhYmxlLT5zaXplOwogICAgICAg
Y29uc3QgSGFzaEVudHJ5ICplID0gaW5mby0+cHJvcEhhc2hUYWJsZS0+ZW50cmllczsKICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpLCArK2UpIHsKLSAgICAgICAgaWYgKGUtPnMg
JiYgIShlLT5hdHRyICYgRG9udEVudW0pKQotICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGUt
PnMpOworICAgICAgICBpZiAoZS0+a2V5ICYmICEoZS0+YXR0ciAmIERvbnRFbnVtKSkKKyAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGUtPmtleSwgZS0+a2V5TGVuZ3RoKSk7
CiAgICAgICB9CiAgICAgfQogICAgIGluZm8gPSBpbmZvLT5wYXJlbnRDbGFzczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>