<?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>4425</bug_id>
          
          <creation_ts>2005-08-14 00:50:24 -0700</creation_ts>
          <short_desc>assorted speedups to kwq data structures</short_desc>
          <delta_ts>2005-08-14 17:46:09 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>16625</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-08-14 00:50:24 -0700</bug_when>
    <thetext>The various KWQ data structures show up on profiles of the HTML iBench, they show obvious 
opportunities for improvement via inlining and use of main_thread_malloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16626</commentid>
    <comment_count>1</comment_count>
      <attachid>3375</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-08-14 00:56:27 -0700</bug_when>
    <thetext>Created attachment 3375
assorted speedups</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16627</commentid>
    <comment_count>2</comment_count>
      <attachid>3375</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-14 01:00:11 -0700</bug_when>
    <thetext>Comment on attachment 3375
assorted speedups

All looks good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16628</commentid>
    <comment_count>3</comment_count>
      <attachid>3376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-14 01:02:18 -0700</bug_when>
    <thetext>Created attachment 3376
some similar speedups I have sitting around</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3375</attachid>
            <date>2005-08-14 00:56:27 -0700</date>
            <delta_ts>2005-08-14 01:00:11 -0700</delta_ts>
            <desc>assorted speedups</desc>
            <filename>misc-kwq-speedups.patch.txt</filename>
            <type>text/plain</type>
            <size>11275</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9D
aGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDU2NQpkaWZmIC11IC1wIC1yMS40NTY1
IENoYW5nZUxvZwotLS0gQ2hhbmdlTG9nCTEyIEF1ZyAyMDA1IDIyOjQzOjM2IC0wMDAwCTEuNDU2
NQorKysgQ2hhbmdlTG9nCTE0IEF1ZyAyMDA1IDA3OjU3OjIyIC0wMDAwCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMDUtMDgtMTQgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGFwcGx5IGEgdGFz
dHkgY2FuZHkgc2hlbGwgb2YgaW5saW5pbmcgYW5kIG1haW5fdGhyZWFkX21hbGxvYyBmb3IgYSAx
JSBzcGVlZHVwIG9uIEhUTUwgaUJlbmNoCisKKyAgICAgICAgKiBrd3EvS1dRQXJyYXlJbXBsLmg6
CisgICAgICAgIChLV1FBcnJheUltcGw6OnNpemUpOgorICAgICAgICAqIGt3cS9LV1FBcnJheUlt
cGwubW06CisgICAgICAgICoga3dxL0tXUU1hcEltcGwuaDoKKyAgICAgICAgKiBrd3EvS1dRTWFw
SW1wbC5tbToKKyAgICAgICAgKiBrd3EvS1dRUmVmUHRyLmg6CisgICAgICAgICg6OktXUVJlZlB0
cik6CisgICAgICAgICg6Om9wZXJhdG9yKToKKyAgICAgICAgKDo6cmVmKToKKyAgICAgICAgKDo6
dW5yZWYpOgorICAgICAgICAqIGt3cS9LV1FWYWx1ZUxpc3RJbXBsLmg6CisgICAgICAgIChLV1FW
YWx1ZUxpc3RJdGVyYXRvckltcGw6OktXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbCk6CisgICAgICAg
IChLV1FWYWx1ZUxpc3RJdGVyYXRvckltcGw6Om9wZXJhdG9yPT0pOgorICAgICAgICAoS1dRVmFs
dWVMaXN0SXRlcmF0b3JJbXBsOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEtXUVZhbHVlTGlzdEl0
ZXJhdG9ySW1wbDo6bm9kZSk6CisgICAgICAgIChLV1FWYWx1ZUxpc3RJdGVyYXRvckltcGw6Om9w
ZXJhdG9yKyspOgorICAgICAgICAoS1dRVmFsdWVMaXN0SXRlcmF0b3JJbXBsOjpvcGVyYXRvci0t
KToKKyAgICAgICAgKEtXUVZhbHVlTGlzdE5vZGVJbXBsOjpLV1FWYWx1ZUxpc3ROb2RlSW1wbCk6
CisgICAgICAgICoga3dxL0tXUVZhbHVlTGlzdEltcGwubW06CisgICAgICAgIChLV1FWYWx1ZUxp
c3RJbXBsOjpLV1FWYWx1ZUxpc3RQcml2YXRlOjpLV1FWYWx1ZUxpc3RQcml2YXRlKToKKyAgICAg
ICAgKEtXUVZhbHVlTGlzdEltcGw6OktXUVZhbHVlTGlzdFByaXZhdGU6On5LV1FWYWx1ZUxpc3RQ
cml2YXRlKToKKwogMjAwNS0wOC0xMiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IGFkZWxlLgpJbmRleDoga3dxL0tXUUFycmF5SW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FBcnJheUltcGwu
aCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRpZmYgLXUgLXAgLXIxLjcga3dxL0tXUUFycmF5
SW1wbC5oCi0tLSBrd3EvS1dRQXJyYXlJbXBsLmgJMzAgQXVnIDIwMDQgMjA6MzU6MzkgLTAwMDAJ
MS43CisrKyBrd3EvS1dRQXJyYXlJbXBsLmgJMTQgQXVnIDIwMDUgMDc6NTc6MjMgLTAwMDAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJLV1FSZWZQdHIuaCIKICNpbmNsdWRlICJLV1FEZWYu
aCIKICNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlICJtYWluX3RocmVhZF9tYWxsb2MuaCIK
IAogY2xhc3MgS1dRQXJyYXlJbXBsCiB7CkBAIC01Niw2ICs1Nyw5IEBAIGNsYXNzIEtXUUFycmF5
SW1wbAogICAgIHB1YmxpYzoJCiAJS1dRQXJyYXlQcml2YXRlKHNpemVfdCBwTnVtSXRlbXMsIHNp
emVfdCBwSXRlbVNpemUpOwogCX5LV1FBcnJheVByaXZhdGUoKTsKKworICAgICAgICBNQUlOX1RI
UkVBRF9BTExPQ0FURUQ7CisKIAlzaXplX3QgbnVtSXRlbXM7CiAJc2l6ZV90IGl0ZW1TaXplOwog
CWNoYXIgKmRhdGE7CkBAIC02NSw0ICs2OSw5IEBAIGNsYXNzIEtXUUFycmF5SW1wbAogICAgIEtX
UVJlZlB0cjxLV1FBcnJheVByaXZhdGU+IGQ7CiB9OwogCitpbmxpbmUgdWludCBLV1FBcnJheUlt
cGw6OnNpemUoKSBjb25zdAoreworICAgIHJldHVybiBkLT5udW1JdGVtczsKK30KKwogI2VuZGlm
CkluZGV4OiBrd3EvS1dRQXJyYXlJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FBcnJheUltcGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAK
ZGlmZiAtdSAtcCAtcjEuMTAga3dxL0tXUUFycmF5SW1wbC5tbQotLS0ga3dxL0tXUUFycmF5SW1w
bC5tbQkzMCBBdWcgMjAwNCAyMDozNTozOSAtMDAwMAkxLjEwCisrKyBrd3EvS1dRQXJyYXlJbXBs
Lm1tCTE0IEF1ZyAyMDA1IDA3OjU3OjIzIC0wMDAwCkBAIC0zNSwxNCArMzUsMTQgQEAgdXNpbmcg
c3RkOjpub3Rocm93OwogS1dRQXJyYXlJbXBsOjpLV1FBcnJheVByaXZhdGU6OktXUUFycmF5UHJp
dmF0ZShzaXplX3QgcEl0ZW1TaXplLCBzaXplX3QgcE51bUl0ZW1zKSA6IAogICAgIG51bUl0ZW1z
KHBOdW1JdGVtcyksIAogICAgIGl0ZW1TaXplKHBJdGVtU2l6ZSksIAotICAgIGRhdGEocE51bUl0
ZW1zID4gMCA/IG5ldyBjaGFyW2l0ZW1TaXplICogbnVtSXRlbXNdIDogTlVMTCksIAorICAgIGRh
dGEocE51bUl0ZW1zID4gMCA/IG1haW5fdGhyZWFkX21hbGxvYyhpdGVtU2l6ZSAqIG51bUl0ZW1z
KSA6IE5VTEwpLCAKICAgICByZWZDb3VudCgwKQogewogfQogCiBLV1FBcnJheUltcGw6OktXUUFy
cmF5UHJpdmF0ZTo6fktXUUFycmF5UHJpdmF0ZSgpCiB7Ci0gICAgZGVsZXRlW10gZGF0YTsKKyAg
ICBtYWluX3RocmVhZF9mcmVlKGRhdGEpOwogfQogCiAKQEAgLTcxLDE4ICs3MSwxMyBAQCB2b2lk
ICpLV1FBcnJheUltcGw6OmRhdGEoKSBjb25zdAogICAgIHJldHVybiBkLT5kYXRhOwogfQogCi11
aW50IEtXUUFycmF5SW1wbDo6c2l6ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGQtPm51bUl0ZW1z
OwotfQotCiBib29sIEtXUUFycmF5SW1wbDo6cmVzaXplKHNpemVfdCBuZXdTaXplKQogewogICAg
IGlmIChuZXdTaXplICE9IGQtPm51bUl0ZW1zKSB7CiAgICAgICAgIGNoYXIgKm5ld0RhdGE7CiAg
ICAgICAgIAogCWlmIChuZXdTaXplICE9IDApIHsKLQkgICAgbmV3RGF0YSA9IG5ldyAobm90aHJv
dykgY2hhcltuZXdTaXplICogZC0+aXRlbVNpemVdOworCSAgICBuZXdEYXRhID0gbWFpbl90aHJl
YWRfcmVhbGxvYyhkLT5kYXRhLCBuZXdTaXplICogZC0+aXRlbVNpemUpOwogCSAgICBpZiAobmV3
RGF0YSA9PSBOVUxMKSB7CiAJICAgICAgICByZXR1cm4gZmFsc2U7CiAJICAgIH0KQEAgLTkwLDkg
Kzg1LDYgQEAgYm9vbCBLV1FBcnJheUltcGw6OnJlc2l6ZShzaXplX3QgbmV3U2l6ZQogCSAgICBu
ZXdEYXRhID0gTlVMTDsKIAl9CiAKLQltZW1jcHkobmV3RGF0YSwgZC0+ZGF0YSwgTUlOKG5ld1Np
emUsIGQtPm51bUl0ZW1zKSAqIGQtPml0ZW1TaXplKTsKLQotICAgICAgICBkZWxldGVbXSBkLT5k
YXRhOwogCWQtPmRhdGEgPSBuZXdEYXRhOwogCWQtPm51bUl0ZW1zID0gbmV3U2l6ZTsKICAgICB9
CkluZGV4OiBrd3EvS1dRTWFwSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2t3cS9LV1FNYXBJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC11
IC1wIC1yMS44IGt3cS9LV1FNYXBJbXBsLmgKLS0tIGt3cS9LV1FNYXBJbXBsLmgJMjcgSnVsIDIw
MDUgMDE6MzQ6MjggLTAwMDAJMS44CisrKyBrd3EvS1dRTWFwSW1wbC5oCTE0IEF1ZyAyMDA1IDA3
OjU3OjIzIC0wMDAwCkBAIC0yOSwxMSArMjksMTUgQEAKICNpbmNsdWRlIDxuZXc+CiAKICNpbmNs
dWRlICJLV1FSZWZQdHIuaCIKKyNpbmNsdWRlICJtYWluX3RocmVhZF9tYWxsb2MuaCIKIAogY2xh
c3MgS1dRTWFwSW1wbDsKIAogY2xhc3MgS1dRTWFwTm9kZUltcGwKIHsKK3B1YmxpYzoKKyAgICBN
QUlOX1RIUkVBRF9BTExPQ0FURUQ7CisKIHByb3RlY3RlZDoKICAgICB0eXBlZGVmIGVudW0geyBS
ZWQgPSAwLCBCbGFjayA9IDEgfSBLV1FNYXBOb2RlQ29sb3I7CiAKQEAgLTY0LDYgKzY4LDkgQEAg
cHJvdGVjdGVkOgogfTsKIAogY2xhc3MgS1dRTWFwSXRlcmF0b3JJbXBsIHsKK3B1YmxpYzoKKyAg
ICBNQUlOX1RIUkVBRF9BTExPQ0FURUQ7CisKIHByb3RlY3RlZDoKICAgICBLV1FNYXBOb2RlSW1w
bCAqbm9kZTsKIApJbmRleDoga3dxL0tXUU1hcEltcGwubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva3dxL0tXUU1hcEltcGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuOQpkaWZmIC11IC1wIC1yMS45IGt3cS9LV1FNYXBJbXBsLm1tCi0tLSBrd3EvS1dRTWFwSW1w
bC5tbQkyMiBKYW4gMjAwMyAwMDoxMjozNSAtMDAwMAkxLjkKKysrIGt3cS9LV1FNYXBJbXBsLm1t
CTE0IEF1ZyAyMDA1IDA3OjU3OjIzIC0wMDAwCkBAIC0xMjQsNiArMTI0LDggQEAgcHVibGljOgog
CiAgICAgfktXUU1hcFByaXZhdGUoKTsKIAorICAgIE1BSU5fVEhSRUFEX0FMTE9DQVRFRDsKKwog
ICAgIEtXUU1hcE5vZGVJbXBsICpndWFyZDsKICAgICB1aW50IG51bU5vZGVzOwogICAgIGludCBy
ZWZDb3VudDsKSW5kZXg6IGt3cS9LV1FSZWZQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9rd3EvS1dRUmVmUHRyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpk
aWZmIC11IC1wIC1yMS4zIGt3cS9LV1FSZWZQdHIuaAotLS0ga3dxL0tXUVJlZlB0ci5oCTIyIEph
biAyMDAzIDAwOjEyOjM1IC0wMDAwCTEuMworKysga3dxL0tXUVJlZlB0ci5oCTE0IEF1ZyAyMDA1
IDA3OjU3OjIzIC0wMDAwCkBAIC00NiwxOSArNDYsMTkgQEAgcHJpdmF0ZToKICAgICBUKiBwb2lu
dGVyOwogfTsKIAotdGVtcGxhdGUgPGNsYXNzIFQ+IEtXUVJlZlB0cjxUPjo6S1dRUmVmUHRyKFQq
IHApCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIEtXUVJlZlB0cjxUPjo6S1dRUmVmUHRyKFQq
IHApCiAgICAgOiBwb2ludGVyKHApCiB7CiAgICAgcmVmKCk7CiB9CiAKLXRlbXBsYXRlIDxjbGFz
cyBUPiBLV1FSZWZQdHI8VD46OktXUVJlZlB0cihjb25zdCBLV1FSZWZQdHImIHIpCit0ZW1wbGF0
ZSA8Y2xhc3MgVD4gaW5saW5lIEtXUVJlZlB0cjxUPjo6S1dRUmVmUHRyKGNvbnN0IEtXUVJlZlB0
ciYgcikKICAgICA6IHBvaW50ZXIoci5wb2ludGVyKQogewogICAgIHJlZigpOwogfQogCi10ZW1w
bGF0ZSA8Y2xhc3MgVD4gS1dRUmVmUHRyPFQ+JiBLV1FSZWZQdHI8VD46Om9wZXJhdG9yPShjb25z
dCBLV1FSZWZQdHImIHIpCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIEtXUVJlZlB0cjxUPiYg
S1dRUmVmUHRyPFQ+OjpvcGVyYXRvcj0oY29uc3QgS1dRUmVmUHRyJiByKQogewogICAgIHIucmVm
KCk7CiAgICAgdW5yZWYoKTsKQEAgLTY2LDE0ICs2NiwxNCBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVD4g
S1dRUmVmUHRyPFQ+JiBLV1FSZWZQCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi10ZW1wbGF0ZSA8
Y2xhc3MgVD4gdm9pZCBLV1FSZWZQdHI8VD46OnJlZigpIGNvbnN0Cit0ZW1wbGF0ZSA8Y2xhc3Mg
VD4gaW5saW5lIHZvaWQgS1dRUmVmUHRyPFQ+OjpyZWYoKSBjb25zdAogewogICAgIGlmIChwb2lu
dGVyKSB7CiAgICAgICAgICsrcG9pbnRlci0+cmVmQ291bnQ7CiAgICAgfQogfQogCi10ZW1wbGF0
ZSA8Y2xhc3MgVD4gdm9pZCBLV1FSZWZQdHI8VD46OnVucmVmKCkKK3RlbXBsYXRlIDxjbGFzcyBU
PiBpbmxpbmUgdm9pZCBLV1FSZWZQdHI8VD46OnVucmVmKCkKIHsKICAgICBpZiAocG9pbnRlciAm
JiAtLXBvaW50ZXItPnJlZkNvdW50ID09IDApIHsKICAgICAgICAgZGVsZXRlIHBvaW50ZXI7Cklu
ZGV4OiBrd3EvS1dRVmFsdWVMaXN0SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FWYWx1ZUxpc3RJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTAKZGlmZiAtdSAtcCAtcjEuMTAga3dxL0tXUVZhbHVlTGlzdEltcGwuaAotLS0ga3dxL0tXUVZh
bHVlTGlzdEltcGwuaAkzIEp1bCAyMDA1IDA5OjU4OjMyIC0wMDAwCTEuMTAKKysrIGt3cS9LV1FW
YWx1ZUxpc3RJbXBsLmgJMTQgQXVnIDIwMDUgMDc6NTc6MjMgLTAwMDAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIktXUVJlZlB0ci5oIgogI2luY2x1ZGUgIktXUURlZi5oIgorI2luY2x1
ZGUgIm1haW5fdGhyZWFkX21hbGxvYy5oIgogCiBjbGFzcyBLV1FWYWx1ZUxpc3ROb2RlSW1wbDsK
IApAQCAtNTQsNyArNTUsNiBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBLV1FWYWx1ZUxp
c3RJbXBsOwogfTsKIAotCiBjbGFzcyBLV1FWYWx1ZUxpc3RJbXBsIAogewogcHVibGljOgpAQCAt
MTA5LDYgKzEwOSw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIEtXUVZhbHVlTGlzdE5vZGVJbXBsCiB7
CitwdWJsaWM6CisgICAgTUFJTl9USFJFQURfQUxMT0NBVEVEOworCiBwcm90ZWN0ZWQ6CiAgICAg
S1dRVmFsdWVMaXN0Tm9kZUltcGwoKTsKIApAQCAtMTIxLDQgKzEyNCw2NyBAQCBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBLV1FWYWx1ZUxpc3RJbXBsOjpLV1FWYWx1ZUxpc3RQcml2YXRlOwog
fTsKIAoraW5saW5lIEtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbDo6S1dRVmFsdWVMaXN0SXRlcmF0
b3JJbXBsKCkgOiAKKyAgICBub2RlSW1wbChOVUxMKQoreworfQorCitpbmxpbmUgYm9vbCBLV1FW
YWx1ZUxpc3RJdGVyYXRvckltcGw6Om9wZXJhdG9yPT0oY29uc3QgS1dRVmFsdWVMaXN0SXRlcmF0
b3JJbXBsICZvdGhlcikKK3sKKyAgICByZXR1cm4gbm9kZUltcGwgPT0gb3RoZXIubm9kZUltcGw7
Cit9CisKK2lubGluZSBib29sIEtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbDo6b3BlcmF0b3IhPShj
b25zdCBLV1FWYWx1ZUxpc3RJdGVyYXRvckltcGwgJm90aGVyKQoreworICAgIHJldHVybiBub2Rl
SW1wbCAhPSBvdGhlci5ub2RlSW1wbDsKK30KKworaW5saW5lIEtXUVZhbHVlTGlzdE5vZGVJbXBs
ICpLV1FWYWx1ZUxpc3RJdGVyYXRvckltcGw6Om5vZGUoKQoreworICAgIHJldHVybiBub2RlSW1w
bDsKK30KKworaW5saW5lIGNvbnN0IEtXUVZhbHVlTGlzdE5vZGVJbXBsICpLV1FWYWx1ZUxpc3RJ
dGVyYXRvckltcGw6Om5vZGUoKSBjb25zdAoreworICAgIHJldHVybiBub2RlSW1wbDsKK30KKwor
aW5saW5lIEtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbCYgS1dRVmFsdWVMaXN0SXRlcmF0b3JJbXBs
OjpvcGVyYXRvcisrKCkKK3sKKyAgICBpZiAobm9kZUltcGwgIT0gTlVMTCkgeworCW5vZGVJbXBs
ID0gbm9kZUltcGwtPm5leHQ7CisgICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5l
IEtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbCBLV1FWYWx1ZUxpc3RJdGVyYXRvckltcGw6Om9wZXJh
dG9yKysoaW50KQoreworICAgIEtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbCB0bXAoKnRoaXMpOwor
CisgICAgaWYgKG5vZGVJbXBsICE9IE5VTEwpIHsKKwlub2RlSW1wbCA9IG5vZGVJbXBsLT5uZXh0
OworICAgIH0KKworICAgIHJldHVybiB0bXA7Cit9CisKK2lubGluZSBLV1FWYWx1ZUxpc3RJdGVy
YXRvckltcGwmIEtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbDo6b3BlcmF0b3ItLSgpCit7CisgICAg
aWYgKG5vZGVJbXBsICE9IE5VTEwpIHsKKwlub2RlSW1wbCA9IG5vZGVJbXBsLT5wcmV2OworICAg
IH0KKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBLV1FWYWx1ZUxpc3RJdGVyYXRvcklt
cGw6OktXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbChjb25zdCBLV1FWYWx1ZUxpc3ROb2RlSW1wbCAq
bikgOgorICAgIG5vZGVJbXBsKChLV1FWYWx1ZUxpc3ROb2RlSW1wbCAqKW4pCit7Cit9CisKK2lu
bGluZSBLV1FWYWx1ZUxpc3ROb2RlSW1wbDo6S1dRVmFsdWVMaXN0Tm9kZUltcGwoKSA6IAorICAg
IHByZXYoTlVMTCksIAorICAgIG5leHQoTlVMTCkKK3sKK30KKwogI2VuZGlmCkluZGV4OiBrd3Ev
S1dRVmFsdWVMaXN0SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9rd3EvS1dRVmFsdWVMaXN0SW1wbC5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMgpkaWZm
IC11IC1wIC1yMS4xMiBrd3EvS1dRVmFsdWVMaXN0SW1wbC5tbQotLS0ga3dxL0tXUVZhbHVlTGlz
dEltcGwubW0JMyBKdWwgMjAwNSAwOTo1ODozMiAtMDAwMAkxLjEyCisrKyBrd3EvS1dRVmFsdWVM
aXN0SW1wbC5tbQkxNCBBdWcgMjAwNSAwNzo1NzoyMyAtMDAwMApAQCAtMjcsNzAgKzI3LDYgQEAK
IAogI2ltcG9ydCA8c3RkbGliLmg+CiAKLUtXUVZhbHVlTGlzdE5vZGVJbXBsOjpLV1FWYWx1ZUxp
c3ROb2RlSW1wbCgpIDogCi0gICAgcHJldihOVUxMKSwgCi0gICAgbmV4dChOVUxMKQotewotfQot
Ci1LV1FWYWx1ZUxpc3RJdGVyYXRvckltcGw6OktXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbCgpIDog
Ci0gICAgbm9kZUltcGwoTlVMTCkKLXsKLX0KLQotYm9vbCBLV1FWYWx1ZUxpc3RJdGVyYXRvcklt
cGw6Om9wZXJhdG9yPT0oY29uc3QgS1dRVmFsdWVMaXN0SXRlcmF0b3JJbXBsICZvdGhlcikKLXsK
LSAgICByZXR1cm4gbm9kZUltcGwgPT0gb3RoZXIubm9kZUltcGw7Ci19Ci0KLWJvb2wgS1dRVmFs
dWVMaXN0SXRlcmF0b3JJbXBsOjpvcGVyYXRvciE9KGNvbnN0IEtXUVZhbHVlTGlzdEl0ZXJhdG9y
SW1wbCAmb3RoZXIpCi17Ci0gICAgcmV0dXJuIG5vZGVJbXBsICE9IG90aGVyLm5vZGVJbXBsOwot
fQotCi1LV1FWYWx1ZUxpc3ROb2RlSW1wbCAqS1dRVmFsdWVMaXN0SXRlcmF0b3JJbXBsOjpub2Rl
KCkKLXsKLSAgICByZXR1cm4gbm9kZUltcGw7Ci19Ci0KLWNvbnN0IEtXUVZhbHVlTGlzdE5vZGVJ
bXBsICpLV1FWYWx1ZUxpc3RJdGVyYXRvckltcGw6Om5vZGUoKSBjb25zdAotewotICAgIHJldHVy
biBub2RlSW1wbDsKLX0KLQotS1dRVmFsdWVMaXN0SXRlcmF0b3JJbXBsJiBLV1FWYWx1ZUxpc3RJ
dGVyYXRvckltcGw6Om9wZXJhdG9yKysoKQotewotICAgIGlmIChub2RlSW1wbCAhPSBOVUxMKSB7
Ci0Jbm9kZUltcGwgPSBub2RlSW1wbC0+bmV4dDsKLSAgICB9Ci0gICAgcmV0dXJuICp0aGlzOwot
fQotCi1LV1FWYWx1ZUxpc3RJdGVyYXRvckltcGwgS1dRVmFsdWVMaXN0SXRlcmF0b3JJbXBsOjpv
cGVyYXRvcisrKGludCkKLXsKLSAgICBLV1FWYWx1ZUxpc3RJdGVyYXRvckltcGwgdG1wKCp0aGlz
KTsKLQotICAgIGlmIChub2RlSW1wbCAhPSBOVUxMKSB7Ci0Jbm9kZUltcGwgPSBub2RlSW1wbC0+
bmV4dDsKLSAgICB9Ci0KLSAgICByZXR1cm4gdG1wOwotfQotCi1LV1FWYWx1ZUxpc3RJdGVyYXRv
ckltcGwmIEtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbDo6b3BlcmF0b3ItLSgpCi17Ci0gICAgaWYg
KG5vZGVJbXBsICE9IE5VTEwpIHsKLQlub2RlSW1wbCA9IG5vZGVJbXBsLT5wcmV2OwotICAgIH0K
LSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUtXUVZhbHVlTGlzdEl0ZXJhdG9ySW1wbDo6S1dRVmFs
dWVMaXN0SXRlcmF0b3JJbXBsKGNvbnN0IEtXUVZhbHVlTGlzdE5vZGVJbXBsICpuKSA6Ci0gICAg
bm9kZUltcGwoKEtXUVZhbHVlTGlzdE5vZGVJbXBsICopbikKLXsKLX0KLQotCiBjbGFzcyBLV1FW
YWx1ZUxpc3RJbXBsOjpLV1FWYWx1ZUxpc3RQcml2YXRlCiB7CiBwdWJsaWM6CkBAIC05OSw2ICsz
NSw4IEBAIHB1YmxpYzoKIAogICAgIH5LV1FWYWx1ZUxpc3RQcml2YXRlKCk7CiAKKyAgICBNQUlO
X1RIUkVBRF9BTExPQ0FURUQ7CisKICAgICB2b2lkIGNvcHlMaXN0KEtXUVZhbHVlTGlzdE5vZGVJ
bXBsICpsLCBLV1FWYWx1ZUxpc3ROb2RlSW1wbCAqJmhlYWQsIEtXUVZhbHVlTGlzdE5vZGVJbXBs
IComdGFpbCkgY29uc3Q7CiAgICAgdm9pZCBkZWxldGVMaXN0KEtXUVZhbHVlTGlzdE5vZGVJbXBs
ICpsKTsKIApAQCAtMTEyLDcgKzUwLDcgQEAgcHVibGljOgogICAgIHVpbnQgcmVmQ291bnQ7CiB9
OwogCi1LV1FWYWx1ZUxpc3RJbXBsOjpLV1FWYWx1ZUxpc3RQcml2YXRlOjpLV1FWYWx1ZUxpc3RQ
cml2YXRlKHZvaWQgKCpkZWxldGVGdW5jKShLV1FWYWx1ZUxpc3ROb2RlSW1wbCAqKSwgCitpbmxp
bmUgS1dRVmFsdWVMaXN0SW1wbDo6S1dRVmFsdWVMaXN0UHJpdmF0ZTo6S1dRVmFsdWVMaXN0UHJp
dmF0ZSh2b2lkICgqZGVsZXRlRnVuYykoS1dRVmFsdWVMaXN0Tm9kZUltcGwgKiksIAogCQkJCQkJ
CSAgIEtXUVZhbHVlTGlzdE5vZGVJbXBsICooKmNvcHlGdW5jKShLV1FWYWx1ZUxpc3ROb2RlSW1w
bCAqKSkgOiAKICAgICBoZWFkKE5VTEwpLAogICAgIHRhaWwoTlVMTCksCkBAIC0xMjMsNyArNjEs
NyBAQCBLV1FWYWx1ZUxpc3RJbXBsOjpLV1FWYWx1ZUxpc3RQcml2YXRlOjpLCiB7CiB9CiAKLUtX
UVZhbHVlTGlzdEltcGw6OktXUVZhbHVlTGlzdFByaXZhdGU6OktXUVZhbHVlTGlzdFByaXZhdGUo
Y29uc3QgS1dRVmFsdWVMaXN0UHJpdmF0ZSAmb3RoZXIpIDoKK2lubGluZSBLV1FWYWx1ZUxpc3RJ
bXBsOjpLV1FWYWx1ZUxpc3RQcml2YXRlOjpLV1FWYWx1ZUxpc3RQcml2YXRlKGNvbnN0IEtXUVZh
bHVlTGlzdFByaXZhdGUgJm90aGVyKSA6CiAgICAgZGVsZXRlTm9kZShvdGhlci5kZWxldGVOb2Rl
KSwKICAgICBjb3B5Tm9kZShvdGhlci5jb3B5Tm9kZSksCiAgICAgY291bnQob3RoZXIuY291bnQp
LApAQCAtMTMyLDcgKzcwLDcgQEAgS1dRVmFsdWVMaXN0SW1wbDo6S1dRVmFsdWVMaXN0UHJpdmF0
ZTo6SwogICAgIG90aGVyLmNvcHlMaXN0KG90aGVyLmhlYWQsIGhlYWQsIHRhaWwpOwogfQogCi1L
V1FWYWx1ZUxpc3RJbXBsOjpLV1FWYWx1ZUxpc3RQcml2YXRlOjp+S1dRVmFsdWVMaXN0UHJpdmF0
ZSgpCitpbmxpbmUgS1dRVmFsdWVMaXN0SW1wbDo6S1dRVmFsdWVMaXN0UHJpdmF0ZTo6fktXUVZh
bHVlTGlzdFByaXZhdGUoKQogewogICAgIGRlbGV0ZUxpc3QoaGVhZCk7CiB9Cg==
</data>
<flag name="review"
          id="367"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3376</attachid>
            <date>2005-08-14 01:02:18 -0700</date>
            <delta_ts>2005-08-14 01:02:18 -0700</delta_ts>
            <desc>some similar speedups I have sitting around</desc>
            <filename>KWQListInlinePatch.txt</filename>
            <type>text/plain</type>
            <size>4472</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS10ZXN0cy5leHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUvV2ViQ29yZS10ZXN0cy5leHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MzQKZGlmZiAtcCAtdSAtcjEuMzQgV2ViQ29yZS9XZWJDb3JlLXRlc3RzLmV4cAotLS0gV2ViQ29y
ZS9XZWJDb3JlLXRlc3RzLmV4cAkyNyBNYXkgMjAwNSAyMTozOTozOSAtMDAwMAkxLjM0CisrKyBX
ZWJDb3JlL1dlYkNvcmUtdGVzdHMuZXhwCTI2IEp1bCAyMDA1IDA0OjIyOjU3IC0wMDAwCkBAIC0x
NzMsOCArMTczLDYgQEAgX19aTksxMEtXUU1hcEltcGwxM2JlZ2luSW50ZXJuYWxFdgogX19aTksx
MEtXUU1hcEltcGwxM2NvdW50SW50ZXJuYWxFdgogX19aTksxMUtXUURpY3RJbXBsNGZpbmRFUks3
UVN0cmluZwogX19aTksxMUtXUUxpc3RJbXBsMTFjb250YWluc1JlZkVQS3YKLV9fWk5LMTFLV1FM
aXN0SW1wbDdjdXJyZW50RXYKLV9fWk5LMTFLV1FMaXN0SW1wbDdnZXRMYXN0RXYKIF9fWk5LMTFR
U3RyaW5nTGlzdDRqb2luRVJLN1FTdHJpbmcKIF9fWk5LMTJLV1FBcnJheUltcGw0ZGF0YUV2CiBf
X1pOSzEyS1dRQXJyYXlJbXBsNHNpemVFdgpAQCAtMTg4LDggKzE4Niw2IEBAIF9fWk5LMTZLV1FW
YWx1ZUxpc3RJbXBsNWNvdW50RXYKIF9fWk5LMTZLV1FWYWx1ZUxpc3RJbXBsNm5vZGVBdEVqCiBf
X1pOSzE2S1dRVmFsdWVMaXN0SW1wbDdpc0VtcHR5RXYKIF9fWk5LMTlLV1FEaWN0SXRlcmF0b3JJ
bXBsMTZjdXJyZW50U3RyaW5nS2V5RXYKLV9fWk5LMTlLV1FMaXN0SXRlcmF0b3JJbXBsNWNvdW50
RXYKLV9fWk5LMTlLV1FMaXN0SXRlcmF0b3JJbXBsN2N1cnJlbnRFdgogX19aTksyMktXUVB0ckRp
Y3RJdGVyYXRvckltcGwxMGN1cnJlbnRLZXlFdgogX19aTksyMktXUVB0ckRpY3RJdGVyYXRvcklt
cGw1Y291bnRFdgogX19aTksyMktXUVB0ckRpY3RJdGVyYXRvckltcGw3Y3VycmVudEV2CkluZGV4
OiBXZWJDb3JlL2t3cS9LV1FMaXN0SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FMaXN0SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgKZGlm
ZiAtcCAtdSAtcjEuOCBXZWJDb3JlL2t3cS9LV1FMaXN0SW1wbC5oCi0tLSBXZWJDb3JlL2t3cS9L
V1FMaXN0SW1wbC5oCTMgSnVsIDIwMDUgMDk6NDU6MDggLTAwMDAJMS44CisrKyBXZWJDb3JlL2t3
cS9LV1FMaXN0SW1wbC5oCTI2IEp1bCAyMDA1IDA0OjI0OjM4IC0wMDAwCkBAIC0yNywxMCArMjcs
MjIgQEAKICNkZWZpbmUgS1dRX0xJU1RfSU1QTF9ICiAKICNpbmNsdWRlICJLV1FEZWYuaCIKKyNp
bmNsdWRlICJtaXNjL21haW5fdGhyZWFkX21hbGxvYy5oIgogCi1jbGFzcyBLV1FMaXN0Tm9kZTsK
IGNsYXNzIEtXUUxpc3RJdGVyYXRvckltcGw7CiAKK2NsYXNzIEtXUUxpc3ROb2RlCit7CitwdWJs
aWM6CisgICAgS1dRTGlzdE5vZGUodm9pZCAqZCkgOiBkYXRhKGQpLCBuZXh0KE5VTEwpLCBwcmV2
KE5VTEwpIHsgfQorCisgICAgTUFJTl9USFJFQURfQUxMT0NBVEVEOworCisgICAgdm9pZCAqZGF0
YTsKKyAgICBLV1FMaXN0Tm9kZSAqbmV4dDsKKyAgICBLV1FMaXN0Tm9kZSAqcHJldjsKK307CisK
IGNsYXNzIEtXUUxpc3RJbXBsCiB7CiBwdWJsaWM6CkBAIC05MCw3ICsxMDIsNiBAQCBwdWJsaWM6
CiAgICAgZnJpZW5kIGNsYXNzIEtXUUxpc3RJdGVyYXRvckltcGw7CiB9OwogCi0KIGNsYXNzIEtX
UUxpc3RJdGVyYXRvckltcGwgewogcHVibGljOgogICAgIEtXUUxpc3RJdGVyYXRvckltcGwoKTsK
QEAgLTExNyw0ICsxMjgsMzMgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgS1dRTGlzdElt
cGw7CiB9OwogCitpbmxpbmUgdm9pZCAqS1dRTGlzdEltcGw6OmdldEZpcnN0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gaGVhZCA/IGhlYWQtPmRhdGEgOiBOVUxMOworfQorCitpbmxpbmUgdm9pZCAq
S1dRTGlzdEltcGw6OmdldExhc3QoKSBjb25zdAoreworICAgIHJldHVybiB0YWlsID8gdGFpbC0+
ZGF0YSA6IE5VTEw7Cit9CisKK2lubGluZSB2b2lkICpLV1FMaXN0SW1wbDo6Y3VycmVudCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGN1ciA/IGN1ci0+ZGF0YSA6IE5VTEw7Cit9CisKK2lubGluZSBL
V1FMaXN0SXRlcmF0b3JJbXBsOjpLV1FMaXN0SXRlcmF0b3JJbXBsKCkgOiBsaXN0KE5VTEwpLCBu
b2RlKE5VTEwpCit7Cit9CisKK2lubGluZSB1aW50IEtXUUxpc3RJdGVyYXRvckltcGw6OmNvdW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbGlzdCA/IGxpc3QtPmNvdW50KCkgOiAwOworfQorCitp
bmxpbmUgdm9pZCAqS1dRTGlzdEl0ZXJhdG9ySW1wbDo6Y3VycmVudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG5vZGUgPyBub2RlLT5kYXRhIDogTlVMTDsKK30KKwogI2VuZGlmCkluZGV4OiBXZWJD
b3JlL2t3cS9LV1FMaXN0SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvS1dRTGlzdEltcGwubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjEKZGlmZiAt
cCAtdSAtcjEuMjEgV2ViQ29yZS9rd3EvS1dRTGlzdEltcGwubW0KLS0tIFdlYkNvcmUva3dxL0tX
UUxpc3RJbXBsLm1tCTMgSnVsIDIwMDUgMDk6NDU6MDggLTAwMDAJMS4yMQorKysgV2ViQ29yZS9r
d3EvS1dRTGlzdEltcGwubW0JMjYgSnVsIDIwMDUgMDQ6MjQ6MzggLTAwMDAKQEAgLTI5LDIwICsy
OSw2IEBACiAjaW1wb3J0IDxhbGdvcml0aG0+CiAjaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9DRkFy
cmF5Lmg+CiAjaW1wb3J0ICJLV1FBc3NlcnRpb25zLmgiCi0jaW1wb3J0ICJtaXNjL21haW5fdGhy
ZWFkX21hbGxvYy5oIgotCi1jbGFzcyBLV1FMaXN0Tm9kZQotewotcHVibGljOgotICAgIEtXUUxp
c3ROb2RlKHZvaWQgKmQpIDogZGF0YShkKSwgbmV4dChOVUxMKSwgcHJldihOVUxMKSB7IH0KLQot
ICAgIE1BSU5fVEhSRUFEX0FMTE9DQVRFRDsKLQotICAgIHZvaWQgKmRhdGE7Ci0gICAgS1dRTGlz
dE5vZGUgKm5leHQ7Ci0gICAgS1dRTGlzdE5vZGUgKnByZXY7Ci19OwotCiAKIHN0YXRpYyBLV1FM
aXN0Tm9kZSAqY29weUxpc3QoS1dRTGlzdE5vZGUgKmwsIEtXUUxpc3ROb2RlIComdGFpbCkKIHsK
QEAgLTM2NCwyNSArMzUwLDYgQEAgYm9vbCBLV1FMaXN0SW1wbDo6cmVtb3ZlUmVmKGNvbnN0IHZv
aWQgKgogICAgIHJldHVybiByZW1vdmUoZGVsZXRlSXRlbSk7CiB9CiAKLXZvaWQgKktXUUxpc3RJ
bXBsOjpnZXRGaXJzdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGhlYWQgPyBoZWFkLT5kYXRhIDog
MDsKLX0KLQotdm9pZCAqS1dRTGlzdEltcGw6OmdldExhc3QoKSBjb25zdAotewotICAgIHJldHVy
biB0YWlsID8gdGFpbC0+ZGF0YSA6IDA7Ci19Ci0KLXZvaWQgKktXUUxpc3RJbXBsOjpjdXJyZW50
KCkgY29uc3QKLXsKLSAgICBpZiAoY3VyICE9IE5VTEwpIHsKLQlyZXR1cm4gY3VyLT5kYXRhOwot
ICAgIH0gZWxzZSB7Ci0JcmV0dXJuIE5VTEw7Ci0gICAgfQotfQotCiB2b2lkICpLV1FMaXN0SW1w
bDo6Zmlyc3QoKQogewogICAgIGN1ciA9IGhlYWQ7CkBAIC01MTQsMTMgKzQ4MSw2IEBAIHZvaWQg
S1dRTGlzdEltcGw6OnN3YXAoS1dRTGlzdEltcGwgJm90aGUKICAgICBzd2FwKGRlbGV0ZUl0ZW0s
IG90aGVyLmRlbGV0ZUl0ZW0pOwogfQogCi0KLUtXUUxpc3RJdGVyYXRvckltcGw6OktXUUxpc3RJ
dGVyYXRvckltcGwoKSA6Ci0gICAgbGlzdChOVUxMKSwKLSAgICBub2RlKE5VTEwpCi17Ci19Ci0K
IEtXUUxpc3RJdGVyYXRvckltcGw6OktXUUxpc3RJdGVyYXRvckltcGwoY29uc3QgS1dRTGlzdElt
cGwgJmltcGwpICA6CiAgICAgbGlzdCgmaW1wbCksCiAgICAgbm9kZShpbXBsLmhlYWQpCkBAIC01
NDQsMTEgKzUwNCw2IEBAIEtXUUxpc3RJdGVyYXRvckltcGw6OktXUUxpc3RJdGVyYXRvckltcGwK
ICAgICB9CiB9CiAKLXVpbnQgS1dRTGlzdEl0ZXJhdG9ySW1wbDo6Y291bnQoKSBjb25zdAotewot
ICAgIHJldHVybiBsaXN0ID09IE5VTEwgPyAwIDogbGlzdC0+Y291bnQoKTsKLX0KLQogdm9pZCAq
S1dRTGlzdEl0ZXJhdG9ySW1wbDo6dG9GaXJzdCgpCiB7CiAgICAgaWYgKGxpc3QgIT0gTlVMTCkg
ewpAQCAtNTY1LDExICs1MjAsNiBAQCB2b2lkICpLV1FMaXN0SXRlcmF0b3JJbXBsOjp0b0xhc3Qo
KQogICAgIHJldHVybiBjdXJyZW50KCk7CiB9CiAKLXZvaWQgKktXUUxpc3RJdGVyYXRvckltcGw6
OmN1cnJlbnQoKSBjb25zdAotewotICAgIHJldHVybiBub2RlID09IE5VTEwgPyBOVUxMIDogbm9k
ZS0+ZGF0YTsKLX0KLQogdm9pZCAqS1dRTGlzdEl0ZXJhdG9ySW1wbDo6b3BlcmF0b3ItLSgpCiB7
CiAgICAgaWYgKG5vZGUgIT0gTlVMTCkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>