<?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>15938</bug_id>
          
          <creation_ts>2007-11-10 17:35:54 -0800</creation_ts>
          <short_desc>Inspector/Qt requires patch to SecurityOrigin</short_desc>
          <delta_ts>2007-12-03 07:09:25 -0800</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 Qt</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>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="Holger Freyther">zecke</reporter>
          <assigned_to name="George Staikos">staikos</assigned_to>
          <cc>hausmann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60870</commentid>
    <comment_count>0</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-10 17:35:54 -0800</bug_when>
    <thetext>On the Qt port the Inspector will be embedded into the binary using QResources (qrc). The embedded files can be accessed using the qrc protocol.
The issue is that the Inspector JavaScript requires certain priviliges to function properly. This is where isSafeScript and SecurityOrigin are involved. For the mac/win port the inspector.html is found inside the bundle and can be accessed using the file protocol. So SecurityOrigin grants the needed priviliges when using &apos;file&apos; but not when using &apos;qrc&apos;. One solution would be to use FrameLoader::canTreatAsLocalURL in SecurityOrigin::canAccess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60873</commentid>
    <comment_count>1</comment_count>
      <attachid>17177</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-10 17:41:07 -0800</bug_when>
    <thetext>Created attachment 17177
Use FrameLoader::shouldTreatURLAsLocal from SecurityOrigin::canAccess

This patch is using FrameLoader::shouldTreatURLAsLocal instead of &apos;file&apos; in SecurityOrigin::canAccess. isSecureTransition is not changed. FrameLoader::shouldTreatURLAsLocal requires a String as argument and passing m_protocol would not work  so I decided to keep the KURL::url() in m_url. I wonder why the comparsion of &apos;file&apos; is hardcoded and not KURL::isLocalFile is used...

I would like to receive comments regarding:
    -Correctnes
    -Security
    -Speed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60916</commentid>
    <comment_count>2</comment_count>
      <attachid>17177</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-11-11 11:45:45 -0800</bug_when>
    <thetext>Comment on attachment 17177
Use FrameLoader::shouldTreatURLAsLocal from SecurityOrigin::canAccess

r-.  I don&apos;t think adding the m_url member variable is a good solution as it adds redundant information.  Either we should only have the m_url or we should make a new method that takes the protocol and determines if it should be treated as local (eg. FrameLoader::shouldTreatProtocolAsLocal).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60922</commentid>
    <comment_count>3</comment_count>
      <attachid>17188</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-11 13:26:03 -0800</bug_when>
    <thetext>Created attachment 17188
Use FrameLoader::shouldTreatURLAsLocal from SecurityOrigin::canAccess

Remove the unused m_portSet. Remove m_host, m_protocol and m_port in favor of storing a KURL directly. Use KURL::isLocalFile instead of comparing to &quot;file&quot; directly. Avoid calling lower() on (Deprecated)String but use the case insensitive compare besides in ::setFrame.

Like the last patch no regressions were introduced and please take a look at it in regard to:
   -performance
   -security
   -correctness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61124</commentid>
    <comment_count>4</comment_count>
      <attachid>17243</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-13 16:05:05 -0800</bug_when>
    <thetext>Created attachment 17243
Add FrameLoader::shouldTreatSchemeAsLocal

Altnernative implementation. Add FrameLoader::shouldTreatSchemeAsLocal and call it with KURL::protocol from within FrameLoader and SecurityOrigin when we have a KURL. In CachedResource and Document we continue to use the shouldTreatURLAsLocal function as we have (Deprecated)Strings there.

This function is doing the splitting of the URL first before it is comparing file and http as fast path. And due not using .find in shouldTreatSchemeAsLocal we need to check for the null string otherwise we end up with a crash in the HashTable.

This introduces no regressions and I would welcome feedback and specially in regard to Performance and Correctness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61490</commentid>
    <comment_count>5</comment_count>
      <attachid>17243</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-17 15:35:58 -0800</bug_when>
    <thetext>Comment on attachment 17243
Add FrameLoader::shouldTreatSchemeAsLocal

The additional string allocation from calling left() on the URL string will almost certainly cause an unacceptable slowdown; there&apos;s a reason we added those special cases for &quot;http&quot; and &quot;file&quot; to avoid memory allocation.

The concept of the patch is fine, but we need a more efficient version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61587</commentid>
    <comment_count>6</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-18 12:10:02 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 17243 [edit])
&gt; The additional string allocation from calling left() on the URL string will
&gt; almost certainly cause an unacceptable slowdown; there&apos;s a reason we added
&gt; those special cases for &quot;http&quot; and &quot;file&quot; to avoid memory allocation.

I don&apos;t wear my Knuth is my homeboy T-Shirt but seeing numbers would be appreciated. E.g. is FrameLoader calling the Scheme version more often than Document and CachedResource the URL version? I admit to have not researched the details of the original function because I assume(d) that the tests are not public.


&gt; 
&gt; The concept of the patch is fine, but we need a more efficient version.

This boils down to:
   a) Code duplication?
   b) Better data structure for the local schemes. e.g. a Trie?
   c) Something I miss.


So what solution is preferred?


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62160</commentid>
    <comment_count>7</comment_count>
      <attachid>17483</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-24 04:29:15 -0800</bug_when>
    <thetext>Created attachment 17483
ASCII Trie implemented with HasMap&lt;UChar,...&gt;

- Security: I changed both occurences of &quot;file&quot; in SecuritOrigin to use FrameLoader::shouldTreatSchemeAsLocal

- Implement looking up the scheme using a Trie. As of the URI RFC the scheme must be alpha and this is why I can use a fixed size array for lookup.

- No idea how the ASCIIType usage impacts the performance. Comments are welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62161</commentid>
    <comment_count>8</comment_count>
      <attachid>17483</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-24 04:30:52 -0800</bug_when>
    <thetext>Comment on attachment 17483
ASCII Trie implemented with HasMap&lt;UChar,...&gt;

-Sorry this is the HashMap implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62162</commentid>
    <comment_count>9</comment_count>
      <attachid>17484</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-24 04:33:24 -0800</bug_when>
    <thetext>Created attachment 17484
ASCII Trie with wasting memory for faster lookup

- SecurityOrigin now uses FrameLoader::shouldTreatSchemeAsLocal in two places, please verify that carefully!

- Use an array with &apos;z&apos;-&apos;a&apos; number of elements as we can guarantee to only use lower case ascii. This is backed by the URI RFC where the scheme is of type ALPHA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62228</commentid>
    <comment_count>10</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-24 18:55:11 -0800</bug_when>
    <thetext>I don&apos;t think using a custom data structure for this is necessary. Just having both shouldTreatURLAsLocal() and shouldTreatSchemeAsLocal functions do the fast path check for http and file and maybe share code through a common function should be sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62229</commentid>
    <comment_count>11</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-24 18:55:31 -0800</bug_when>
    <thetext>I would also be happy to performance test any patches that need it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62244</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-11-24 19:35:21 -0800</bug_when>
    <thetext>I agree with Maciej that the Trie seems a little overkill for this situation.  I would like to add that it might be helpful to test https in addition to http and file as it is also quite common.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62796</commentid>
    <comment_count>13</comment_count>
      <attachid>17607</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-30 09:58:14 -0800</bug_when>
    <thetext>Created attachment 17607
Add shouldTreatSchemeAsLocal to FrameLoader

Same as the older patch. For performance reasons the shouldTreatURLAsLocal case is not reduced to the shouldTreatSchemeAsLocal case. This adds a little code duplication to avoid doing the malloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62797</commentid>
    <comment_count>14</comment_count>
      <attachid>17608</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-11-30 10:04:07 -0800</bug_when>
    <thetext>Created attachment 17608
Performance question

This replaces the char compare s[0], s[1]... with WTF::Unicode::umemcasecmp. There should be no extra mallocs, we catch big and small letters and I wonder if that would be even faster?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62837</commentid>
    <comment_count>15</comment_count>
      <attachid>17608</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-30 17:35:08 -0800</bug_when>
    <thetext>Comment on attachment 17608
Performance question

I suspect umemcasecmp will be much slower because of function call overhead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63092</commentid>
    <comment_count>16</comment_count>
      <attachid>17607</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-12-02 23:01:49 -0800</bug_when>
    <thetext>Comment on attachment 17607
Add shouldTreatSchemeAsLocal to FrameLoader

I performance-tested this patch. It appears to be faster on both HTML iBench and PLT than baseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63095</commentid>
    <comment_count>17</comment_count>
      <attachid>17607</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-12-02 23:19:05 -0800</bug_when>
    <thetext>Comment on attachment 17607
Add shouldTreatSchemeAsLocal to FrameLoader

r=me if you address the comments I had in IRC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63138</commentid>
    <comment_count>18</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-12-03 07:09:25 -0800</bug_when>
    <thetext>This was landed in 28343.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17177</attachid>
            <date>2007-11-10 17:41:07 -0800</date>
            <delta_ts>2007-11-11 13:26:03 -0800</delta_ts>
            <desc>Use FrameLoader::shouldTreatURLAsLocal from SecurityOrigin::canAccess</desc>
            <filename>0001-2007-11-10-Holger-Hans-Peter-Freyther-zecke-selfi.patch</filename>
            <type>text/plain</type>
            <size>2496</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSBlMjAxOTIyMTc1ZjExOTdkMzA0OTM5OWZkYjg4ZGE3YjBlZDMwODc1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2Vs
ZmlzaC5vcmc+CkRhdGU6IFNhdCwgMTAgTm92IDIwMDcgMTc6MTk6MDkgLTA4MDAKU3ViamVjdDog
W1BBVENIXSAyMDA3LTExLTEwICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNl
bGZpc2gub3JnPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
V0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECgogICAgICAgIEluIGNvbnRy
YXN0IHRvIHRoZSBtYWMvd2luIHBvcnQgdGhlIFF0IHBvcnQgaXMgbG9hZGluZyB0aGUgSW5zcGVj
dG9yCiAgICAgICAgQ2xpZW50IGZyb20gdGhlIHFyYyBwcm90b2NvbC4gVGhlIEluc3BlY3RvciBD
bGllbnQgcmVxdWlyZXMgY2VydGFpbgogICAgICAgIHByaXZpbGlnZXMgdG8gb3BlcmF0ZSBwcm9w
ZXJseS4gVGhlc2UgcHJpdmlsZWdlcyBhcmUgZ3JhbnRlZCB3aGVuCiAgICAgICAgdXNpbmcgdGhl
IGZpbGUgcHJvdG9jb2wuIFRvIG1ha2UgdGhlIEluc3BlY3RvciBDbGllbnQgd29yayBvbiB0aGUg
UXQKICAgICAgICBwb3J0IHdlIG5lZWQgdG8gYWRkIHFyYyBhcyBsb2NhbCBwcm90b2NvbCB0byB0
aGUKICAgICAgICBGcmFtZUxvYWRlcjo6bG9jYWxTY2hlbWVzIGFuZCBtYWtlIFNlY3VyaXR5T3Jp
Z2luOjpjYW5BY2Nlc3MgdXNlIHRoaXMKICAgICAgICBmdW5jdGlvbi4KCiAgICAgICAgKiBwbGF0
Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpzZXRGb3JGcmFtZSk6CiAgICAgICAgKiBwbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5oOgotLS0K
IFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwIHwgICAgNCArKystCiBXZWJDb3Jl
L3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmggICB8ICAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA0
IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2lu
LmNwcAppbmRleCA4NjJkOGVmLi5mZjE3NmRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L1NlY3VyaXR5T3JpZ2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2lu
LmNwcApAQCAtNDgsNiArNDgsNyBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oKQog
CiB2b2lkIFNlY3VyaXR5T3JpZ2luOjpjbGVhcigpCiB7CisgICAgbV91cmwgPSBTdHJpbmcoKTsK
ICAgICBtX3Byb3RvY29sID0gU3RyaW5nKCk7CiAgICAgbV9ob3N0ID0gU3RyaW5nKCk7CiAgICAg
bV9wb3J0ID0gMDsKQEAgLTY5LDYgKzcwLDcgQEAgdm9pZCBTZWN1cml0eU9yaWdpbjo6c2V0Rm9y
RnJhbWUoRnJhbWUqIGZyYW1lKQogICAgIGNvbnN0IEtVUkwmIHNlY3VyaXR5UG9saWN5VVJMID0g
bG9hZGVyLT51cmwoKTsKIAogICAgIGlmICghc2VjdXJpdHlQb2xpY3lVUkwuaXNFbXB0eSgpKSB7
CisgICAgICAgIG1fdXJsID0gc2VjdXJpdHlQb2xpY3lVUkwudXJsKCk7CiAgICAgICAgIG1fcHJv
dG9jb2wgPSBzZWN1cml0eVBvbGljeVVSTC5wcm90b2NvbCgpLmxvd2VyKCk7CiAgICAgICAgIG1f
aG9zdCA9IHNlY3VyaXR5UG9saWN5VVJMLmhvc3QoKS5sb3dlcigpOwogICAgICAgICBtX3BvcnQg
PSBzZWN1cml0eVBvbGljeVVSTC5wb3J0KCk7CkBAIC0xMDksNyArMTExLDcgQEAgdm9pZCBTZWN1
cml0eU9yaWdpbjo6c2V0RG9tYWluRnJvbURPTShjb25zdCBTdHJpbmcmIG5ld0RvbWFpbikKIAog
Ym9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvdGhl
cikgY29uc3QKIHsKLSAgICBpZiAobV9wcm90b2NvbCA9PSAiZmlsZSIpCisgICAgaWYgKEZyYW1l
TG9hZGVyOjpzaG91bGRUcmVhdFVSTEFzTG9jYWwobV91cmwpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIGlmIChtX25vQWNjZXNzIHx8IG90aGVyLm1fbm9BY2Nlc3MpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmggYi9XZWJDb3JlL3BsYXRmb3JtL1Nl
Y3VyaXR5T3JpZ2luLmgKaW5kZXggNmQ5NzJiZC4uZGYwNjRiZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJp
dHlPcmlnaW4uaApAQCAtNTIsNiArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgY2xlYXIoKTsKICAgICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKKyAgICAgICAg
U3RyaW5nIG1fdXJsOwogICAgICAgICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICAgICAgU3RyaW5n
IG1faG9zdDsKICAgICAgICAgc2hvcnQgbV9wb3J0OwotLSAKMS41LjMuNAoK
</data>
<flag name="review"
          id="7314"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17188</attachid>
            <date>2007-11-11 13:26:03 -0800</date>
            <delta_ts>2007-11-17 15:51:48 -0800</delta_ts>
            <desc>Use FrameLoader::shouldTreatURLAsLocal from SecurityOrigin::canAccess</desc>
            <filename>0001-2007-11-10-Holger-Hans-Peter-Freyther-zecke-selfi.patch</filename>
            <type>text/plain</type>
            <size>7333</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSA0NGI1OTMxNmFiZmUyY2M4ZTA4ZGJjODhjMTk4Y2EwZTA4NzkwYjBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgRnJleXRoZXIgPGljaEBob2xnZXItZnJleXRoZXJz
LWNvbXB1dGVyLmxvY2FsPgpEYXRlOiBTdW4sIDExIE5vdiAyMDA3IDIyOjIwOjIxICswMTAwClN1
YmplY3Q6IFtQQVRDSF0gMjAwNy0xMS0xMCAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6
ZWNrZUBzZWxmaXNoLm9yZz4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgog
ICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAoKICAgICAgICBJ
biBjb250cmFzdCB0byB0aGUgbWFjL3dpbiBwb3J0IHRoZSBRdCBwb3J0IGlzIGxvYWRpbmcgdGhl
IEluc3BlY3RvcgogICAgICAgIENsaWVudCBmcm9tIHRoZSBxcmMgcHJvdG9jb2wuIFRoZSBJbnNw
ZWN0b3IgQ2xpZW50IHJlcXVpcmVzIGNlcnRhaW4KICAgICAgICBwcml2aWxpZ2VzIHRvIG9wZXJh
dGUgcHJvcGVybHkuIFRoZXNlIHByaXZpbGVnZXMgYXJlIGdyYW50ZWQgd2hlbgogICAgICAgIHVz
aW5nIHRoZSBmaWxlIHByb3RvY29sLiBUbyBtYWtlIHRoZSBJbnNwZWN0b3IgQ2xpZW50IHdvcmsg
b24gdGhlIFF0CiAgICAgICAgcG9ydCB3ZSBuZWVkIHRvIGFkZCBxcmMgYXMgbG9jYWwgcHJvdG9j
b2wgdG8gdGhlCiAgICAgICAgRnJhbWVMb2FkZXI6OmxvY2FsU2NoZW1lcyBhbmQgbWFrZSBTZWN1
cml0eU9yaWdpbjo6Y2FuQWNjZXNzIHVzZQogICAgICAgIEZyYW1lTG9hZGVyOjpzaG91bGRUcmVh
dFVSTEFzTG9jYWwuCgogICAgICAgICogcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwOgogICAg
ICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4pOgogICAgICAgIChX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2xlYXIpOgogICAgICAgIChXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbjo6c2V0Rm9yRnJhbWUpOgogICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
c2V0RG9tYWluRnJvbURPTSk6CiAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjYW5B
Y2Nlc3MpOgogICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmVUcmFuc2l0
aW9uVG8pOgogICAgICAgICogcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uaDoKLS0tCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmNwcCB8ICAgNDUgKysrKysrKysrKysrKysr
Ky0tLS0tLS0tLS0tLS0tLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5oICAg
fCAgICA5ICsrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAzMCBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGJkZGVlY2EuLjk1YWRhMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDctMTEtMTAgIEhv
bGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBD
QVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgSW4gY29udHJhc3QgdG8gdGhlIG1hYy93
aW4gcG9ydCB0aGUgUXQgcG9ydCBpcyBsb2FkaW5nIHRoZSBJbnNwZWN0b3IKKyAgICAgICAgQ2xp
ZW50IGZyb20gdGhlIHFyYyBwcm90b2NvbC4gVGhlIEluc3BlY3RvciBDbGllbnQgcmVxdWlyZXMg
Y2VydGFpbgorICAgICAgICBwcml2aWxpZ2VzIHRvIG9wZXJhdGUgcHJvcGVybHkuIFRoZXNlIHBy
aXZpbGVnZXMgYXJlIGdyYW50ZWQgd2hlbgorICAgICAgICB1c2luZyB0aGUgZmlsZSBwcm90b2Nv
bC4gVG8gbWFrZSB0aGUgSW5zcGVjdG9yIENsaWVudCB3b3JrIG9uIHRoZSBRdAorICAgICAgICBw
b3J0IHdlIG5lZWQgdG8gYWRkIHFyYyBhcyBsb2NhbCBwcm90b2NvbCB0byB0aGUKKyAgICAgICAg
RnJhbWVMb2FkZXI6OmxvY2FsU2NoZW1lcyBhbmQgbWFrZSBTZWN1cml0eU9yaWdpbjo6Y2FuQWNj
ZXNzIHVzZQorICAgICAgICBGcmFtZUxvYWRlcjo6c2hvdWxkVHJlYXRVUkxBc0xvY2FsLgorCisg
ICAgICAgICogcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6c2V0
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnNldERvbWFpbkZy
b21ET00pOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhbkFjY2Vzcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmVUcmFuc2l0aW9uVG8pOgor
ICAgICAgICAqIHBsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMDctMTEtMTAgIEpvaG4g
U3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2Ft
IFdlaW5pZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmNwcAppbmRleCA4NjJkOGVmLi4zMzhi
NmE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA3IFRyb2xsdGVjaCBBU0EKICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzksMjYgKzQwLDIxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNl
Y3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbigpCi0gICAgOiBtX3BvcnQoMCkKLSAgICAsIG1f
cG9ydFNldChmYWxzZSkKLSAgICAsIG1fbm9BY2Nlc3MoZmFsc2UpCisgICAgOiBtX25vQWNjZXNz
KGZhbHNlKQogICAgICwgbV9kb21haW5XYXNTZXRJbkRPTShmYWxzZSkKIHsKIH0KIAogdm9pZCBT
ZWN1cml0eU9yaWdpbjo6Y2xlYXIoKQogewotICAgIG1fcHJvdG9jb2wgPSBTdHJpbmcoKTsKLSAg
ICBtX2hvc3QgPSBTdHJpbmcoKTsKLSAgICBtX3BvcnQgPSAwOwotICAgIG1fcG9ydFNldCA9IGZh
bHNlOworICAgIG1fdXJsID0gS1VSTCgpOwogICAgIG1fbm9BY2Nlc3MgPSBmYWxzZTsKICAgICBt
X2RvbWFpbldhc1NldEluRE9NID0gZmFsc2U7CiB9CiAKIGJvb2wgU2VjdXJpdHlPcmlnaW46Omlz
RW1wdHkoKSBjb25zdAogewotICAgIHJldHVybiBtX3Byb3RvY29sLmlzRW1wdHkoKTsKKyAgICBy
ZXR1cm4gbV91cmwucHJvdG9jb2woKS5pc0VtcHR5KCk7CiB9CiAKIHZvaWQgU2VjdXJpdHlPcmln
aW46OnNldEZvckZyYW1lKEZyYW1lKiBmcmFtZSkKQEAgLTY5LDIxICs2NSwxOCBAQCB2b2lkIFNl
Y3VyaXR5T3JpZ2luOjpzZXRGb3JGcmFtZShGcmFtZSogZnJhbWUpCiAgICAgY29uc3QgS1VSTCYg
c2VjdXJpdHlQb2xpY3lVUkwgPSBsb2FkZXItPnVybCgpOwogCiAgICAgaWYgKCFzZWN1cml0eVBv
bGljeVVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9wcm90b2NvbCA9IHNlY3VyaXR5UG9saWN5
VVJMLnByb3RvY29sKCkubG93ZXIoKTsKLSAgICAgICAgbV9ob3N0ID0gc2VjdXJpdHlQb2xpY3lV
UkwuaG9zdCgpLmxvd2VyKCk7Ci0gICAgICAgIG1fcG9ydCA9IHNlY3VyaXR5UG9saWN5VVJMLnBv
cnQoKTsKLSAgICAgICAgaWYgKG1fcG9ydCkKLSAgICAgICAgICAgIG1fcG9ydFNldCA9IHRydWU7
CisgICAgICAgIG1fdXJsID0gc2VjdXJpdHlQb2xpY3lVUkw7CisgICAgICAgIERlcHJlY2F0ZWRT
dHJpbmcgcHJvdG9jb2wgPSBtX3VybC5wcm90b2NvbCgpLmxvd2VyKCk7CiAKICAgICAgICAgLy8g
ZGF0YTogVVJMcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGFueXRoaW5nIG90aGVyIHRoYW4g
dGhlbXNlbHZlcy4KLSAgICAgICAgaWYgKG1fcHJvdG9jb2wgPT0gImRhdGEiKSB7CisgICAgICAg
IGlmIChwcm90b2NvbCA9PSAiZGF0YSIpIHsKICAgICAgICAgICAgIG1fbm9BY2Nlc3MgPSB0cnVl
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgLy8gT25seSBpbiB0
aGUgY2FzZSBvZiBhYm91dDpibGFuayBvciBqYXZhc2NyaXB0OiBVUkxzICh3aGljaCBjcmVhdGUg
ZG9jdW1lbnRzIHVzaW5nIHRoZSAiYWJvdXQiIAogICAgICAgICAvLyBwcm90b2NvbCkgZG8gd2Ug
d2FudCB0byB1c2UgdGhlIHBhcmVudCBvciBvcGVuZXJzIFVSTCBhcyB0aGUgb3JpZ2luLgotICAg
ICAgICBpZiAobV9wcm90b2NvbCAhPSAiYWJvdXQiKQorICAgICAgICBpZiAocHJvdG9jb2wgIT0g
ImFib3V0IikKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwNCwzOCArOTcsNDIg
QEAgdm9pZCBTZWN1cml0eU9yaWdpbjo6c2V0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQogdm9pZCBT
ZWN1cml0eU9yaWdpbjo6c2V0RG9tYWluRnJvbURPTShjb25zdCBTdHJpbmcmIG5ld0RvbWFpbikK
IHsKICAgICBtX2RvbWFpbldhc1NldEluRE9NID0gdHJ1ZTsKLSAgICBtX2hvc3QgPSBuZXdEb21h
aW4ubG93ZXIoKTsKKyAgICBtX3VybC5zZXRIb3N0KG5ld0RvbWFpbi5kZXByZWNhdGVkU3RyaW5n
KCkpOwogfQogCiBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MoY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG90aGVyKSBjb25zdAogewotICAgIGlmIChtX3Byb3RvY29sID09ICJmaWxlIikKKyAg
ICBpZiAoRnJhbWVMb2FkZXI6OnNob3VsZFRyZWF0VVJMQXNMb2NhbChtX3VybC51cmwoKSkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKG1fbm9BY2Nlc3MgfHwgb3RoZXIubV9ub0Fj
Y2VzcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fZG9tYWluV2FzU2V0SW5E
T00gJiYgb3RoZXIubV9kb21haW5XYXNTZXRJbkRPTSAmJiBtX2hvc3QgPT0gb3RoZXIubV9ob3N0
KQorICAgIGlmIChtX2RvbWFpbldhc1NldEluRE9NICYmIG90aGVyLm1fZG9tYWluV2FzU2V0SW5E
T00gJiYgZXF1YWxJZ25vcmluZ0Nhc2UobV91cmwuaG9zdCgpLCBvdGhlci5tX3VybC5ob3N0KCkp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAKLSAgICByZXR1cm4gbV9ob3N0ID09IG90aGVyLm1f
aG9zdCAmJiBtX3Byb3RvY29sID09IG90aGVyLm1fcHJvdG9jb2wgJiYgbV9wb3J0ID09IG90aGVy
Lm1fcG9ydDsKKworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShtX3VybC5ob3N0KCksIG90
aGVyLm1fdXJsLmhvc3QoKSkgJiYKKyAgICAgICAgICAgZXF1YWxJZ25vcmluZ0Nhc2UobV91cmwu
cHJvdG9jb2woKSwgb3RoZXIubV91cmwucHJvdG9jb2woKSkgJiYKKyAgICAgICAgICAgbV91cmwu
cG9ydCgpID09IG90aGVyLm1fdXJsLnBvcnQoKTsKIH0KIAogYm9vbCBTZWN1cml0eU9yaWdpbjo6
aXNTZWN1cmVUcmFuc2l0aW9uVG8oY29uc3QgS1VSTCYgdXJsKSBjb25zdAoteyAKK3sKICAgICAv
LyBOZXcgd2luZG93IGNyZWF0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uCiAgICAgaWYgKGlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAobV9wcm90b2NvbCA9PSAiZmlsZSIp
CisgICAgaWYgKG1fdXJsLmlzTG9jYWxGaWxlKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKG1faG9zdCwgU3RyaW5nKHVybC5ob3N0KCkpKSAm
JiBlcXVhbElnbm9yaW5nQ2FzZShtX3Byb3RvY29sLCBTdHJpbmcodXJsLnByb3RvY29sKCkpKSAm
JiBtX3BvcnQgPT0gdXJsLnBvcnQoKTsKKyAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV91
cmwuaG9zdCgpLCB1cmwuaG9zdCgpKSAmJgorICAgICAgICAgICBlcXVhbElnbm9yaW5nQ2FzZSht
X3VybC5wcm90b2NvbCgpLCB1cmwucHJvdG9jb2woKSkgJiYKKyAgICAgICAgICAgbV91cmwucG9y
dCgpID09IHVybC5wb3J0KCk7CiB9CiAKIFN0cmluZyBTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmco
KSBjb25zdAogewotICAgIHJldHVybiBtX3Byb3RvY29sICsgIjoiICsgbV9ob3N0ICsgIjoiICsg
U3RyaW5nOjpudW1iZXIobV9wb3J0KTsKKyAgICByZXR1cm4gbV91cmwucHJvdG9jb2woKSArICI6
IiArIG1fdXJsLmhvc3QoKSArICI6IiArIFN0cmluZzo6bnVtYmVyKG1fdXJsLnBvcnQoKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
U2VjdXJpdHlPcmlnaW4uaCBiL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uaAppbmRl
eCA2ZDk3MmJkLi42ZjcxNTIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5
T3JpZ2luLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5oCkBAIC0zMCwx
MSArMzAsMTEgQEAKICNkZWZpbmUgU2VjdXJpdHlPcmlnaW5faAogCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIGNsYXNzIEZyYW1lOwotICAgIGNsYXNzIEtVUkw7CiAKICAgICBjbGFzcyBTZWN1cml0eU9y
aWdpbiB7CiAgICAgcHVibGljOgpAQCAtNDcsMTUgKzQ3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBpc1NlY3VyZVRyYW5zaXRpb25Ubyhjb25zdCBLVVJMJikgY29uc3Q7
CiAKICAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0gICAgICAgIAorCiAgICAgcHJp
dmF0ZToKICAgICAgICAgdm9pZCBjbGVhcigpOwogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25z
dDsKIAotICAgICAgICBTdHJpbmcgbV9wcm90b2NvbDsKLSAgICAgICAgU3RyaW5nIG1faG9zdDsK
LSAgICAgICAgc2hvcnQgbV9wb3J0OwotICAgICAgICBib29sIG1fcG9ydFNldDsKKyAgICAgICAg
S1VSTCBtX3VybDsKICAgICAgICAgYm9vbCBtX25vQWNjZXNzOwogICAgICAgICBib29sIG1fZG9t
YWluV2FzU2V0SW5ET007CiAgICAgfTsKLS0gCjEuNS4zLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17243</attachid>
            <date>2007-11-13 16:05:05 -0800</date>
            <delta_ts>2007-11-24 04:29:15 -0800</delta_ts>
            <desc>Add FrameLoader::shouldTreatSchemeAsLocal</desc>
            <filename>webkit-frameloader-foo.diff</filename>
            <type>text/plain</type>
            <size>3340</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA4ZjEyZTBhLi40N2ZjYjc3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC0yMTE5LDcgKzIxMTksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGbwog
Ly8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgY29sbGFwc2UgdGhlc2UgaW50
byBvbmUgb3IgdHdvIGZ1bmN0aW9ucy4KIGJvb2wgRnJhbWVMb2FkZXI6OmNhbkxvYWQoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewotICAgIGlmICghc2hvdWxkVHJl
YXRVUkxBc0xvY2FsKHVybC51cmwoKSkpCisgICAgaWYgKCFzaG91bGRUcmVhdFNjaGVtZUFzTG9j
YWwodXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBz
aG91bGRUcmVhdFVSTEFzTG9jYWwocmVmZXJyZXIpOwpAQCAtMjEyNyw3ICsyMTI3LDcgQEAgYm9v
bCBGcmFtZUxvYWRlcjo6Y2FuTG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIpCiAKIGJvb2wgRnJhbWVMb2FkZXI6OmNhbkxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBEb2N1bWVudCogZG9jKQogewotICAgIGlmICghc2hvdWxkVHJlYXRVUkxBc0xvY2FsKHVybC51
cmwoKSkpCisgICAgaWYgKCFzaG91bGRUcmVhdFNjaGVtZUFzTG9jYWwodXJsLnByb3RvY29sKCkp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBkb2MgJiYgZG9jLT5pc0FsbG93
ZWRUb0xvYWRMb2NhbFJlc291cmNlcygpOwpAQCAtNDU5NCwyMSArNDU5NCwyOCBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiBzY2hlbWUp
CiAKIGJvb2wgRnJhbWVMb2FkZXI6OnNob3VsZFRyZWF0VVJMQXNMb2NhbChjb25zdCBTdHJpbmcm
IHVybCkKIHsKKyAgICBpbnQgbG9jID0gdXJsLmZpbmQoJzonKTsKKyAgICBpZiAobG9jID09IC0x
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gc2hvdWxkVHJlYXRTY2hlbWVB
c0xvY2FsKHVybC5sZWZ0KGxvYykpOworfQorCitib29sIEZyYW1lTG9hZGVyOjpzaG91bGRUcmVh
dFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNjaGVtZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIC8vIFRoaXMgYXZvaWRzIGFu
IGFsbG9jYXRpb24gb2YgYW5vdGhlciBTdHJpbmcgYW5kIHRoZSBIYXNoU2V0IGNvbnRhaW50cygp
CiAgICAgLy8gY2FsbCBmb3IgdGhlIGZpbGU6IGFuZCBodHRwOiBzY2hlbWVzLgotICAgIGlmICh1
cmwubGVuZ3RoKCkgPj0gNSkgewotICAgICAgICBjb25zdCBVQ2hhciogcyA9IHVybC5jaGFyYWN0
ZXJzKCk7Ci0gICAgICAgIGlmIChzWzBdID09ICdoJyAmJiBzWzFdID09ICd0JyAmJiBzWzJdID09
ICd0JyAmJiBzWzNdID09ICdwJyAmJiBzWzRdID09ICc6JykKKyAgICBpZiAoc2NoZW1lLmxlbmd0
aCgpID49IDQpIHsKKyAgICAgICAgY29uc3QgVUNoYXIqIHMgPSBzY2hlbWUuY2hhcmFjdGVycygp
OworICAgICAgICBpZiAoc1swXSA9PSAnaCcgJiYgc1sxXSA9PSAndCcgJiYgc1syXSA9PSAndCcg
JiYgc1szXSA9PSAncCcpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChz
WzBdID09ICdmJyAmJiBzWzFdID09ICdpJyAmJiBzWzJdID09ICdsJyAmJiBzWzNdID09ICdlJyAm
JiBzWzRdID09ICc6JykKKyAgICAgICAgaWYgKHNbMF0gPT0gJ2YnICYmIHNbMV0gPT0gJ2knICYm
IHNbMl0gPT0gJ2wnICYmIHNbM10gPT0gJ2UnKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgaW50IGxvYyA9IHVybC5maW5kKCc6Jyk7Ci0gICAgaWYgKGxvYyA9PSAtMSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgU3RyaW5nIHNjaGVtZSA9IHVybC5sZWZ0KGxv
Yyk7CiAgICAgcmV0dXJuIGxvY2FsU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCmluZGV4IGE0ZDU3NTQuLjk4ZTYxNzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApA
QCAtNDIxLDcgKzQyMSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgcmVzdHJpY3RBY2Nlc3NUb0xvY2FsKCk7CiAgICAgICAgIHN0YXRpYyB2
b2lkIHNldFJlc3RyaWN0QWNjZXNzVG9Mb2NhbChib29sKTsKLSAgICAgICAgc3RhdGljIGJvb2wg
c2hvdWxkVHJlYXRVUkxBc0xvY2FsKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkVHJlYXRVUkxBc0xvY2FsKGNvbnN0IFN0cmluZyYpOworICAgICAgICBzdGF0
aWMgYm9vbCBzaG91bGRUcmVhdFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJik7CiAKICNpZiBV
U0UoTE9XX0JBTkRXSURUSF9ESVNQTEFZKSAgICAKICAgICAgICAgYm9vbCBhZGRMb3dCYW5kd2lk
dGhEaXNwbGF5UmVxdWVzdChDYWNoZWRSZXNvdXJjZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3Jp
Z2luLmNwcAppbmRleCA4NjJkOGVmLi4wMjYzMjE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL1NlY3VyaXR5T3JpZ2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3Jp
Z2luLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OnNldERvbWFp
bkZyb21ET00oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pCiAKIGJvb2wgU2VjdXJpdHlPcmlnaW46
OmNhbkFjY2Vzcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fcHJvdG9jb2wgPT0gImZpbGUiKQorICAgIGlmIChGcmFtZUxvYWRlcjo6c2hvdWxkVHJlYXRT
Y2hlbWVBc0xvY2FsKG1fcHJvdG9jb2wpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlm
IChtX25vQWNjZXNzIHx8IG90aGVyLm1fbm9BY2Nlc3MpCg==
</data>
<flag name="review"
          id="7355"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17483</attachid>
            <date>2007-11-24 04:29:15 -0800</date>
            <delta_ts>2007-12-02 23:17:22 -0800</delta_ts>
            <desc>ASCII Trie implemented with HasMap&lt;UChar,...&gt;</desc>
            <filename>FrameLoader_Use_Ascii_HashMap_Trie_r0.patch</filename>
            <type>text/plain</type>
            <size>6788</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA4ZjEyZTBhLi5kYmQzZjFmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC04NCw2ICs4NCw3IEBACiAjaW5jbHVkZSAia2pzX3dpbmRvdy5oIgogI2lu
Y2x1ZGUgPGtqcy9KU0xvY2suaD4KICNpbmNsdWRlIDxranMvb2JqZWN0Lmg+CisjaW5jbHVkZSAi
d3RmL0FTQ0lJQ1R5cGUuaCIKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRG9jdW1l
bnQuaCIKQEAgLTk5LDYgKzEwMCwxMyBAQCB1c2luZyBLSlM6OlVTdHJpbmc7CiB1c2luZyBLSlM6
OkpTTG9jazsKIHVzaW5nIEtKUzo6SlNWYWx1ZTsKIAorbmFtZXNwYWNlIFdURiB7CisgICAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8VUNoYXI+IHsgdHlwZWRlZiBJbnRIYXNoPHVuc2ln
bmVkIGxvbmc+IEhhc2g7IH07CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxVQ2hh
cj4gOiBHZW5lcmljSGFzaFRyYWl0czxVQ2hhcj4geworICAgICAgICBzdGF0aWMgaW50IGRlbGV0
ZWRWYWx1ZSgpIHsgcmV0dXJuIC0xOyB9CisgICAgfTsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTExMTUsOSArMTEyMywxMDggQEAgdm9pZCBGcmFtZUxv
YWRlcjo6c2V0UmVzdHJpY3RBY2Nlc3NUb0xvY2FsKGJvb2wgYWNjZXNzKQogICAgIG1fcmVzdHJp
Y3RBY2Nlc3NUb0xvY2FsID0gYWNjZXNzOwogfQogCi1zdGF0aWMgSGFzaFNldDxTdHJpbmcsIENh
c2VJbnNlbnNpdGl2ZUhhc2g8U3RyaW5nPiA+JiBsb2NhbFNjaGVtZXMoKQorCisKK2NsYXNzIFRy
aWUgeworcHVibGljOgorICAgIFRyaWUoKQorICAgICAgICA6IG1fYmFzZU5vZGUoMCkKKyAgICAg
ICAgLCBtX2lzRW1wdHkodHJ1ZSkKKyAgICB7fQorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7
CisgICAgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBzY2hlbWUpOworICAgIGJvb2wgcmV0cmlldmUo
Y29uc3QgU3RyaW5nJiBzY2hlbWUpOworICAgIGJvb2wgcmV0cmlldmVXaXRoVXJsKGNvbnN0IFN0
cmluZyYgdXJsKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgTm9kZSB7CisgICAgICAgIE5vZGUo
VUNoYXIgX2NoYXJhY3RlcikKKyAgICAgICAgICAgIDogY2hhcmFjdGVyKF9jaGFyYWN0ZXIpCisg
ICAgICAgICAgICAsIGZpbmFsKGZhbHNlKQorICAgICAgICB7fQorCisgICAgICAgIFVDaGFyIGNo
YXJhY3RlcjsKKyAgICAgICAgYm9vbCBmaW5hbDsKKyAgICAgICAgV1RGOjpIYXNoTWFwPFVDaGFy
LE5vZGUqPiBjaGlsZHJlbjsKKyAgICB9OworCisgICAgTm9kZSBtX2Jhc2VOb2RlOworICAgIGJv
b2wgbV9pc0VtcHR5OworfTsKKworYm9vbCBUcmllOjppc0VtcHR5KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9pc0VtcHR5OworfQorCit2b2lkIFRyaWU6OmFkZChjb25zdCBTdHJpbmcmIHNjaGVt
ZSkKK3sKKyAgICBtX2lzRW1wdHkgPSBmYWxzZTsKKyAgICBOb2RlKiBjdXJyZW50Tm9kZSA9ICZt
X2Jhc2VOb2RlOworICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgc2NoZW1lLmxlbmd0
aCgpOyArK2kpIHsKKworICAgICAgICAvLyBEb24ndCBhbGxvdyB0byBhZGQgbm9uIEFTQ0lJIGNo
YXJhY3RlcnMuIFRPRE86IENsZWFudXAgd2hhdCB3ZSBoYXZlIGRvbmUgc28gZmFyCisgICAgICAg
IGlmICghV1RGOjppc0FTQ0lJQWxwaGEoc2NoZW1lW2ldKSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBVQ2hhciBjdXJyZW50Q2hhciA9IFdURjo6dG9BU0NJSUxvd2VyKHNjaGVtZVtp
XSk7CisgICAgICAgIGlmICghY3VycmVudE5vZGUtPmNoaWxkcmVuLmNvbnRhaW5zKGN1cnJlbnRD
aGFyKSkgeworICAgICAgICAgICAgTm9kZSogbmV3Tm9kZSA9IG5ldyBOb2RlKHNjaGVtZVtpXSk7
CisgICAgICAgICAgICBjdXJyZW50Tm9kZS0+Y2hpbGRyZW4uYWRkKGN1cnJlbnRDaGFyLCBuZXdO
b2RlKTsKKyAgICAgICAgICAgIGN1cnJlbnROb2RlID0gbmV3Tm9kZTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPmNoaWxkcmVuLmdldChj
dXJyZW50Q2hhcik7CisgICAgICAgICAgICBBU1NFUlQoY3VycmVudE5vZGUpOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKCFzY2hlbWUuaXNFbXB0eSgpKQorICAgICAgICBjdXJyZW50Tm9k
ZS0+ZmluYWwgPSB0cnVlOworCisgICAgQVNTRVJUKCFtX2Jhc2VOb2RlLmZpbmFsKTsKK30KKwor
Ym9vbCBUcmllOjpyZXRyaWV2ZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBOb2RlKiBj
dXJyZW50Tm9kZSA9ICZtX2Jhc2VOb2RlOworCisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBzY2hlbWUubGVuZ3RoKCk7ICsraSkgeworICAgICAgICBpZiAoIVdURjo6aXNBU0NJSUFs
cGhhKHNjaGVtZVtpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgVUNo
YXIgY3VycmVudENoYXIgPSBXVEY6OnRvQVNDSUlMb3dlcihzY2hlbWVbaV0pOworICAgICAgICBp
ZiAoIWN1cnJlbnROb2RlLT5jaGlsZHJlbi5jb250YWlucyhjdXJyZW50Q2hhcikpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPmNo
aWxkcmVuLmdldChjdXJyZW50Q2hhcik7CisgICAgfQorCisgICAgcmV0dXJuIGN1cnJlbnROb2Rl
LT5maW5hbDsKK30KKworYm9vbCBUcmllOjpyZXRyaWV2ZVdpdGhVcmwoY29uc3QgU3RyaW5nJiB1
cmwpCit7CisgICAgTm9kZSogY3VycmVudE5vZGUgPSAmbV9iYXNlTm9kZTsKKworICAgIFVDaGFy
IGN1cnJlbnRDaGFyOworICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgdXJsLmxlbmd0
aCgpOyArK2kpIHsKKyAgICAgICAgY3VycmVudENoYXIgPSB1cmxbaV07CisgICAgICAgIGlmICgh
V1RGOjppc0FTQ0lJQWxwaGEodXJsW2ldKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
IGN1cnJlbnRDaGFyID0gV1RGOjp0b0FTQ0lJTG93ZXIoY3VycmVudENoYXIpOworICAgICAgICBp
ZiAoIWN1cnJlbnROb2RlLT5jaGlsZHJlbi5jb250YWlucyhjdXJyZW50Q2hhcikpCisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLT5jaGlsZHJl
bi5nZXQoY3VycmVudENoYXIpOworICAgIH0KKworICAgIHJldHVybiBjdXJyZW50Q2hhciA9PSAn
OicgJiYgY3VycmVudE5vZGUtPmZpbmFsOworfQorCitzdGF0aWMgVHJpZSYgbG9jYWxTY2hlbWVz
KCkKIHsKLSAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmcsIENhc2VJbnNlbnNpdGl2ZUhhc2g8U3Ry
aW5nPiA+IGxvY2FsU2NoZW1lczsKKyAgICBzdGF0aWMgVHJpZSBsb2NhbFNjaGVtZXM7CiAKICAg
ICBpZiAobG9jYWxTY2hlbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBsb2NhbFNjaGVtZXMuYWRk
KCJmaWxlIik7CkBAIC0yMTE5LDcgKzIyMjYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGbwog
Ly8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgY29sbGFwc2UgdGhlc2UgaW50
byBvbmUgb3IgdHdvIGZ1bmN0aW9ucy4KIGJvb2wgRnJhbWVMb2FkZXI6OmNhbkxvYWQoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewotICAgIGlmICghc2hvdWxkVHJl
YXRVUkxBc0xvY2FsKHVybC51cmwoKSkpCisgICAgaWYgKCFzaG91bGRUcmVhdFNjaGVtZUFzTG9j
YWwodXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBz
aG91bGRUcmVhdFVSTEFzTG9jYWwocmVmZXJyZXIpOwpAQCAtMjEyNyw3ICsyMjM0LDcgQEAgYm9v
bCBGcmFtZUxvYWRlcjo6Y2FuTG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIpCiAKIGJvb2wgRnJhbWVMb2FkZXI6OmNhbkxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBEb2N1bWVudCogZG9jKQogewotICAgIGlmICghc2hvdWxkVHJlYXRVUkxBc0xvY2FsKHVybC51
cmwoKSkpCisgICAgaWYgKCFzaG91bGRUcmVhdFNjaGVtZUFzTG9jYWwodXJsLnByb3RvY29sKCkp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBkb2MgJiYgZG9jLT5pc0FsbG93
ZWRUb0xvYWRMb2NhbFJlc291cmNlcygpOwpAQCAtNDU5MiwyNCArNDY5OSwxNCBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiBzY2hlbWUp
CiAgICAgbG9jYWxTY2hlbWVzKCkuYWRkKHNjaGVtZSk7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXI6
OnNob3VsZFRyZWF0VVJMQXNMb2NhbChjb25zdCBTdHJpbmcmIHVybCkKK2Jvb2wgRnJhbWVMb2Fk
ZXI6OnNob3VsZFRyZWF0U2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKLSAg
ICAvLyBUaGlzIGF2b2lkcyBhbiBhbGxvY2F0aW9uIG9mIGFub3RoZXIgU3RyaW5nIGFuZCB0aGUg
SGFzaFNldCBjb250YWludHMoKQotICAgIC8vIGNhbGwgZm9yIHRoZSBmaWxlOiBhbmQgaHR0cDog
c2NoZW1lcy4KLSAgICBpZiAodXJsLmxlbmd0aCgpID49IDUpIHsKLSAgICAgICAgY29uc3QgVUNo
YXIqIHMgPSB1cmwuY2hhcmFjdGVycygpOwotICAgICAgICBpZiAoc1swXSA9PSAnaCcgJiYgc1sx
XSA9PSAndCcgJiYgc1syXSA9PSAndCcgJiYgc1szXSA9PSAncCcgJiYgc1s0XSA9PSAnOicpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChzWzBdID09ICdmJyAmJiBzWzFd
ID09ICdpJyAmJiBzWzJdID09ICdsJyAmJiBzWzNdID09ICdlJyAmJiBzWzRdID09ICc6JykKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGludCBsb2MgPSB1cmwuZmluZCgn
OicpOwotICAgIGlmIChsb2MgPT0gLTEpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gbG9jYWxTY2hlbWVzKCkucmV0cmlldmUoc2NoZW1lKTsKK30KIAotICAgIFN0cmluZyBzY2hl
bWUgPSB1cmwubGVmdChsb2MpOwotICAgIHJldHVybiBsb2NhbFNjaGVtZXMoKS5jb250YWlucyhz
Y2hlbWUpOworYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkVHJlYXRVUkxBc0xvY2FsKGNvbnN0IFN0
cmluZyYgdXJsKQoreworICAgIHJldHVybiBsb2NhbFNjaGVtZXMoKS5yZXRyaWV2ZVdpdGhVcmwo
dXJsKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCmluZGV4IGE0ZDU3NTQuLjQxOGQwNDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApA
QCAtNDIyLDYgKzQyMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGJv
b2wgcmVzdHJpY3RBY2Nlc3NUb0xvY2FsKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldFJlc3Ry
aWN0QWNjZXNzVG9Mb2NhbChib29sKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRV
UkxBc0xvY2FsKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxk
VHJlYXRTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYpOwogCiAjaWYgVVNFKExPV19CQU5EV0lE
VEhfRElTUExBWSkgICAgCiAgICAgICAgIGJvb2wgYWRkTG93QmFuZHdpZHRoRGlzcGxheVJlcXVl
c3QoQ2FjaGVkUmVzb3VyY2UqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJp
dHlPcmlnaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXgg
NjQxNmUyMC4uMGE1NzkzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9y
aWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTEx
MCw3ICsxMTAsNyBAQCB2b2lkIFNlY3VyaXR5T3JpZ2luOjpzZXREb21haW5Gcm9tRE9NKGNvbnN0
IFN0cmluZyYgbmV3RG9tYWluKQogCiBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MoY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG90aGVyKSBjb25zdAogewotICAgIGlmIChtX3Byb3RvY29sID09
ICJmaWxlIikKKyAgICBpZiAoRnJhbWVMb2FkZXI6OnNob3VsZFRyZWF0U2NoZW1lQXNMb2NhbCht
X3Byb3RvY29sKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAobV9ub0FjY2VzcyB8
fCBvdGhlci5tX25vQWNjZXNzKQpAQCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgU2VjdXJpdHlPcmln
aW46OmlzU2VjdXJlVHJhbnNpdGlvblRvKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKICAgICBpZiAo
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX3Byb3RvY29sID09
ICJmaWxlIikKKyAgICBpZiAoRnJhbWVMb2FkZXI6OnNob3VsZFRyZWF0U2NoZW1lQXNMb2NhbCht
X3Byb3RvY29sKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZXF1YWxJZ25v
cmluZ0Nhc2UobV9ob3N0LCBTdHJpbmcodXJsLmhvc3QoKSkpICYmIGVxdWFsSWdub3JpbmdDYXNl
KG1fcHJvdG9jb2wsIFN0cmluZyh1cmwucHJvdG9jb2woKSkpICYmIG1fcG9ydCA9PSB1cmwucG9y
dCgpOwo=
</data>
<flag name="review"
          id="7503"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17484</attachid>
            <date>2007-11-24 04:33:24 -0800</date>
            <delta_ts>2007-12-02 23:18:03 -0800</delta_ts>
            <desc>ASCII Trie with wasting memory for faster lookup</desc>
            <filename>FrameLoader_Use_Ascii_Trie_r0.patch</filename>
            <type>text/plain</type>
            <size>6467</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA4ZjEyZTBhLi4xMzkzMzYyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC04NCw2ICs4NCw3IEBACiAjaW5jbHVkZSAia2pzX3dpbmRvdy5oIgogI2lu
Y2x1ZGUgPGtqcy9KU0xvY2suaD4KICNpbmNsdWRlIDxranMvb2JqZWN0Lmg+CisjaW5jbHVkZSAi
d3RmL0FTQ0lJQ1R5cGUuaCIKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRG9jdW1l
bnQuaCIKQEAgLTExMTUsOSArMTExNiwxMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0UmVzdHJp
Y3RBY2Nlc3NUb0xvY2FsKGJvb2wgYWNjZXNzKQogICAgIG1fcmVzdHJpY3RBY2Nlc3NUb0xvY2Fs
ID0gYWNjZXNzOwogfQogCi1zdGF0aWMgSGFzaFNldDxTdHJpbmcsIENhc2VJbnNlbnNpdGl2ZUhh
c2g8U3RyaW5nPiA+JiBsb2NhbFNjaGVtZXMoKQorCisKK2NsYXNzIFRyaWUgeworcHVibGljOgor
ICAgIFRyaWUoKQorICAgICAgICA6IG1fYmFzZU5vZGUoMCkKKyAgICAgICAgLCBtX2lzRW1wdHko
dHJ1ZSkKKyAgICB7fQorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAgdm9pZCBhZGQo
Y29uc3QgU3RyaW5nJiBzY2hlbWUpOworICAgIGJvb2wgcmV0cmlldmUoY29uc3QgU3RyaW5nJiBz
Y2hlbWUpOworICAgIGJvb2wgcmV0cmlldmVXaXRoVXJsKGNvbnN0IFN0cmluZyYgdXJsKTsKKwor
cHJpdmF0ZToKKyAgICBzdHJ1Y3QgTm9kZSB7CisgICAgICAgIE5vZGUoVUNoYXIgX2NoYXJhY3Rl
cikKKyAgICAgICAgICAgIDogY2hhcmFjdGVyKF9jaGFyYWN0ZXIpCisgICAgICAgICAgICAsIGZp
bmFsKGZhbHNlKQorICAgICAgICB7CisgICAgICAgICAgICBiemVybygmY2hpbGRyZW4sIHNpemVv
ZihjaGlsZHJlbikpOworICAgICAgICB9CisKKworICAgICAgICBVQ2hhciBjaGFyYWN0ZXI7Cisg
ICAgICAgIGJvb2wgZmluYWw7CisgICAgICAgIE5vZGUqIGNoaWxkcmVuWyd6Jy0nYSddOworICAg
IH07CisKKyAgICBOb2RlIG1fYmFzZU5vZGU7CisgICAgYm9vbCBtX2lzRW1wdHk7Cit9OworCiti
b29sIFRyaWU6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiBtX2lzRW1wdHk7Cit9CisK
K3ZvaWQgVHJpZTo6YWRkKGNvbnN0IFN0cmluZyYgc2NoZW1lKQoreworICAgIG1faXNFbXB0eSA9
IGZhbHNlOworICAgIE5vZGUqIGN1cnJlbnROb2RlID0gJm1fYmFzZU5vZGU7CisgICAgZm9yICh1
bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBzY2hlbWUubGVuZ3RoKCk7ICsraSkgeworCisgICAgICAg
IC8vIERvbid0IGFsbG93IHRvIGFkZCBub24gQVNDSUkgY2hhcmFjdGVycy4gVE9ETzogQ2xlYW51
cCB3aGF0IHdlIGhhdmUgZG9uZSBzbyBmYXIKKyAgICAgICAgaWYgKCFXVEY6OmlzQVNDSUlBbHBo
YShzY2hlbWVbaV0pKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFVDaGFyIGN1cnJl
bnRDaGFyID0gV1RGOjp0b0FTQ0lJTG93ZXIoc2NoZW1lW2ldKTsKKyAgICAgICAgaWYgKCFjdXJy
ZW50Tm9kZS0+Y2hpbGRyZW5bY3VycmVudENoYXItJ2EnXSkgeworICAgICAgICAgICAgTm9kZSog
bmV3Tm9kZSA9IG5ldyBOb2RlKHNjaGVtZVtpXSk7CisgICAgICAgICAgICBjdXJyZW50Tm9kZS0+
Y2hpbGRyZW5bY3VycmVudENoYXItJ2EnXSA9IG5ld05vZGU7CisgICAgICAgICAgICBjdXJyZW50
Tm9kZSA9IG5ld05vZGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjdXJyZW50Tm9k
ZSA9IGN1cnJlbnROb2RlLT5jaGlsZHJlbltjdXJyZW50Q2hhci0nYSddOworICAgICAgICAgICAg
QVNTRVJUKGN1cnJlbnROb2RlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghc2NoZW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgY3VycmVudE5vZGUtPmZpbmFsID0gdHJ1ZTsKKworICAgIEFT
U0VSVCghbV9iYXNlTm9kZS5maW5hbCk7Cit9CisKK2Jvb2wgVHJpZTo6cmV0cmlldmUoY29uc3Qg
U3RyaW5nJiBzY2hlbWUpCit7CisgICAgTm9kZSogY3VycmVudE5vZGUgPSAmbV9iYXNlTm9kZTsK
KworICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgc2NoZW1lLmxlbmd0aCgpOyArK2kp
IHsKKyAgICAgICAgaWYgKCFXVEY6OmlzQVNDSUlBbHBoYShzY2hlbWVbaV0pKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFVDaGFyIGN1cnJlbnRDaGFyID0gV1RGOjp0b0FT
Q0lJTG93ZXIoc2NoZW1lW2ldKTsKKyAgICAgICAgaWYgKCFjdXJyZW50Tm9kZS0+Y2hpbGRyZW5b
Y3VycmVudENoYXItJ2EnXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY3Vy
cmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+Y2hpbGRyZW5bY3VycmVudENoYXItJ2EnXTsKKyAgICB9
CisKKyAgICByZXR1cm4gY3VycmVudE5vZGUtPmZpbmFsOworfQorCitib29sIFRyaWU6OnJldHJp
ZXZlV2l0aFVybChjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBOb2RlKiBjdXJyZW50Tm9kZSA9
ICZtX2Jhc2VOb2RlOworCisgICAgVUNoYXIgY3VycmVudENoYXI7CisgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCB1cmwubGVuZ3RoKCk7ICsraSkgeworICAgICAgICBjdXJyZW50Q2hh
ciA9IHVybFtpXTsKKyAgICAgICAgaWYgKCFXVEY6OmlzQVNDSUlBbHBoYSh1cmxbaV0pKQorICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY3VycmVudENoYXIgPSBXVEY6OnRvQVNDSUlMb3dl
cihjdXJyZW50Q2hhcik7CisgICAgICAgIGlmICghY3VycmVudE5vZGUtPmNoaWxkcmVuW2N1cnJl
bnRDaGFyLSdhJ10pCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjdXJyZW50Tm9kZSA9
IGN1cnJlbnROb2RlLT5jaGlsZHJlbltjdXJyZW50Q2hhci0nYSddOworICAgIH0KKworICAgIHJl
dHVybiBjdXJyZW50Q2hhciA9PSAnOicgJiYgY3VycmVudE5vZGUtPmZpbmFsOworfQorCitzdGF0
aWMgVHJpZSYgbG9jYWxTY2hlbWVzKCkKIHsKLSAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmcsIENh
c2VJbnNlbnNpdGl2ZUhhc2g8U3RyaW5nPiA+IGxvY2FsU2NoZW1lczsKKyAgICBzdGF0aWMgVHJp
ZSBsb2NhbFNjaGVtZXM7CiAKICAgICBpZiAobG9jYWxTY2hlbWVzLmlzRW1wdHkoKSkgewogICAg
ICAgICBsb2NhbFNjaGVtZXMuYWRkKCJmaWxlIik7CkBAIC0yMTE5LDcgKzIyMjIsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpsb2FkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUg
dHlwZSwgUGFzc1JlZlB0cjxGbwogLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgY291
bGQgY29sbGFwc2UgdGhlc2UgaW50byBvbmUgb3IgdHdvIGZ1bmN0aW9ucy4KIGJvb2wgRnJhbWVM
b2FkZXI6OmNhbkxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQog
ewotICAgIGlmICghc2hvdWxkVHJlYXRVUkxBc0xvY2FsKHVybC51cmwoKSkpCisgICAgaWYgKCFz
aG91bGRUcmVhdFNjaGVtZUFzTG9jYWwodXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIHJldHVybiBzaG91bGRUcmVhdFVSTEFzTG9jYWwocmVmZXJyZXIpOwpAQCAt
MjEyNyw3ICsyMjMwLDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2FuTG9hZChjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCiAKIGJvb2wgRnJhbWVMb2FkZXI6OmNhbkxvYWQo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBEb2N1bWVudCogZG9jKQogewotICAgIGlmICghc2hvdWxk
VHJlYXRVUkxBc0xvY2FsKHVybC51cmwoKSkpCisgICAgaWYgKCFzaG91bGRUcmVhdFNjaGVtZUFz
TG9jYWwodXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVy
biBkb2MgJiYgZG9jLT5pc0FsbG93ZWRUb0xvYWRMb2NhbFJlc291cmNlcygpOwpAQCAtNDU5Miwy
NCArNDY5NSwxNCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwo
Y29uc3QgU3RyaW5nJiBzY2hlbWUpCiAgICAgbG9jYWxTY2hlbWVzKCkuYWRkKHNjaGVtZSk7CiB9
CiAKLWJvb2wgRnJhbWVMb2FkZXI6OnNob3VsZFRyZWF0VVJMQXNMb2NhbChjb25zdCBTdHJpbmcm
IHVybCkKK2Jvb2wgRnJhbWVMb2FkZXI6OnNob3VsZFRyZWF0U2NoZW1lQXNMb2NhbChjb25zdCBT
dHJpbmcmIHNjaGVtZSkKIHsKLSAgICAvLyBUaGlzIGF2b2lkcyBhbiBhbGxvY2F0aW9uIG9mIGFu
b3RoZXIgU3RyaW5nIGFuZCB0aGUgSGFzaFNldCBjb250YWludHMoKQotICAgIC8vIGNhbGwgZm9y
IHRoZSBmaWxlOiBhbmQgaHR0cDogc2NoZW1lcy4KLSAgICBpZiAodXJsLmxlbmd0aCgpID49IDUp
IHsKLSAgICAgICAgY29uc3QgVUNoYXIqIHMgPSB1cmwuY2hhcmFjdGVycygpOwotICAgICAgICBp
ZiAoc1swXSA9PSAnaCcgJiYgc1sxXSA9PSAndCcgJiYgc1syXSA9PSAndCcgJiYgc1szXSA9PSAn
cCcgJiYgc1s0XSA9PSAnOicpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlm
IChzWzBdID09ICdmJyAmJiBzWzFdID09ICdpJyAmJiBzWzJdID09ICdsJyAmJiBzWzNdID09ICdl
JyAmJiBzWzRdID09ICc6JykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAg
IGludCBsb2MgPSB1cmwuZmluZCgnOicpOwotICAgIGlmIChsb2MgPT0gLTEpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gbG9jYWxTY2hlbWVzKCkucmV0cmlldmUoc2NoZW1lKTsK
K30KIAotICAgIFN0cmluZyBzY2hlbWUgPSB1cmwubGVmdChsb2MpOwotICAgIHJldHVybiBsb2Nh
bFNjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkVHJl
YXRVUkxBc0xvY2FsKGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIHJldHVybiBsb2NhbFNjaGVt
ZXMoKS5yZXRyaWV2ZVdpdGhVcmwodXJsKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0
Y2hEaWRDb21taXRMb2FkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGE0ZDU3NTQuLjQxOGQwNDkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNDIyLDYgKzQyMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgc3RhdGljIGJvb2wgcmVzdHJpY3RBY2Nlc3NUb0xvY2FsKCk7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHNldFJlc3RyaWN0QWNjZXNzVG9Mb2NhbChib29sKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgc2hvdWxkVHJlYXRVUkxBc0xvY2FsKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYpOwog
CiAjaWYgVVNFKExPV19CQU5EV0lEVEhfRElTUExBWSkgICAgCiAgICAgICAgIGJvb2wgYWRkTG93
QmFuZHdpZHRoRGlzcGxheVJlcXVlc3QoQ2FjaGVkUmVzb3VyY2UqKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1
cml0eU9yaWdpbi5jcHAKaW5kZXggNjQxNmUyMC4uMGE1NzkzNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1
cml0eU9yaWdpbi5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFNlY3VyaXR5T3JpZ2luOjpz
ZXREb21haW5Gcm9tRE9NKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKQogCiBib29sIFNlY3VyaXR5
T3JpZ2luOjpjYW5BY2Nlc3MoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG90aGVyKSBjb25zdAogewot
ICAgIGlmIChtX3Byb3RvY29sID09ICJmaWxlIikKKyAgICBpZiAoRnJhbWVMb2FkZXI6OnNob3Vs
ZFRyZWF0U2NoZW1lQXNMb2NhbChtX3Byb3RvY29sKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICBpZiAobV9ub0FjY2VzcyB8fCBvdGhlci5tX25vQWNjZXNzKQpAQCAtMTI4LDcgKzEyOCw3
IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmlzU2VjdXJlVHJhbnNpdGlvblRvKGNvbnN0IEtVUkwm
IHVybCkgY29uc3QKICAgICBpZiAoaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIGlmIChtX3Byb3RvY29sID09ICJmaWxlIikKKyAgICBpZiAoRnJhbWVMb2FkZXI6OnNob3Vs
ZFRyZWF0U2NoZW1lQXNMb2NhbChtX3Byb3RvY29sKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9ob3N0LCBTdHJpbmcodXJsLmhvc3QoKSkp
ICYmIGVxdWFsSWdub3JpbmdDYXNlKG1fcHJvdG9jb2wsIFN0cmluZyh1cmwucHJvdG9jb2woKSkp
ICYmIG1fcG9ydCA9PSB1cmwucG9ydCgpOwo=
</data>
<flag name="review"
          id="7504"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17607</attachid>
            <date>2007-11-30 09:58:14 -0800</date>
            <delta_ts>2007-12-02 23:19:05 -0800</delta_ts>
            <desc>Add shouldTreatSchemeAsLocal to FrameLoader</desc>
            <filename>0001-Add-FrameLoader-shouldTreatSchemeAsLocal-which-is.patch</filename>
            <type>text/plain</type>
            <size>3246</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSA5NDJjZjljMTFlNDkyNGU5MWQ2MzFkYTNmNTcyZGM0NmVlMTE1MmMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgRnJleXRoZXIgPGljaEBob2xnZXItZnJleXRoZXJz
LW1hY2Jvb2subG9jYWw+CkRhdGU6IEZyaSwgMzAgTm92IDIwMDcgMTk6Mjg6NTIgKzA1MzAKU3Vi
amVjdDogW1BBVENIXSAqIEFkZCBGcmFtZUxvYWRlcjo6c2hvdWxkVHJlYXRTY2hlbWVBc0xvY2Fs
IHdoaWNoIGlzIHNpbWlsYXIgdG8KICAgc2hvdWxkVHJlYXRVUkxBc0xvY2FsLgogKiBNYWtlIHVz
ZSBvZiBGcmFtZUxvYWRlcjo6c2hvdWxkVHJlYXRTY2hlbWVBc0xvY2FsIGluIFNlY3VyaXR5T3Jp
Z2luCiAgIHRvIG5vdCBoYXJkY29kZSAiZmlsZSIuIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgV2Vi
S2l0L3F0IHBvcnQgdG8gbWFrZQogICB0aGUgV2ViIEluc3BlY3RvciB3b3JrIGFzIGl0IHVzaW5n
IHRoZSBxcmMgcHJvdG9jb2wuCgotLS0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAg
ICAgIHwgICAxOCArKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmggICAgICAgIHwgICAgMyArKy0KIFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3Bw
IHwgICAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDMgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDQ3NjhmZWMuLjhjZmRkMzcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKQEAgLTQ2MzEsNiArNDYzMSwyNCBAQCBib29sIEZyYW1lTG9hZGVy
OjpzaG91bGRUcmVhdFVSTEFzTG9jYWwoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgcmV0dXJuIGxv
Y2FsU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKK2Jvb2wgRnJhbWVMb2FkZXI6OnNo
b3VsZFRyZWF0U2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICAvLyBU
aGlzIGF2b2lkcyBhbiBhbGxvY2F0aW9uIG9mIGFub3RoZXIgU3RyaW5nIGFuZCB0aGUgSGFzaFNl
dCBjb250YWludHMoKQorICAgIC8vIGNhbGwgZm9yIHRoZSBmaWxlOiBhbmQgaHR0cDogc2NoZW1l
cy4KKyAgICBpZiAoc2NoZW1lLmxlbmd0aCgpID49IDQpIHsKKyAgICAgICAgY29uc3QgVUNoYXIq
IHMgPSBzY2hlbWUuY2hhcmFjdGVycygpOworICAgICAgICBpZiAoc1swXSA9PSAnaCcgJiYgc1sx
XSA9PSAndCcgJiYgc1syXSA9PSAndCcgJiYgc1szXSA9PSAncCcpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGlmIChzWzBdID09ICdmJyAmJiBzWzFdID09ICdpJyAmJiBzWzJd
ID09ICdsJyAmJiBzWzNdID09ICdlJykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIGlmIChzY2hlbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gbG9jYWxTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKK30KKwogdm9pZCBGcmFt
ZUxvYWRlcjo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKIHsKICAgICBtX2NsaWVudC0+ZGlzcGF0
Y2hEaWRDb21taXRMb2FkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCAyMjExNjEwLi4wYjVmMWM4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTQyMSw3ICs0MjEsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBT
dHJpbmcmIHNjaGVtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIHJlc3RyaWN0QWNjZXNzVG9Mb2Nh
bCgpOwogICAgICAgICBzdGF0aWMgdm9pZCBzZXRSZXN0cmljdEFjY2Vzc1RvTG9jYWwoYm9vbCk7
Ci0gICAgICAgIHN0YXRpYyBib29sIHNob3VsZFRyZWF0VVJMQXNMb2NhbChjb25zdCBTdHJpbmcm
IHVybCk7CisgICAgICAgIHN0YXRpYyBib29sIHNob3VsZFRyZWF0VVJMQXNMb2NhbChjb25zdCBT
dHJpbmcmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRTY2hlbWVBc0xvY2FsKGNv
bnN0IFN0cmluZyYpOwogCiAjaWYgVVNFKExPV19CQU5EV0lEVEhfRElTUExBWSkgICAgCiAgICAg
ICAgIGJvb2wgYWRkTG93QmFuZHdpZHRoRGlzcGxheVJlcXVlc3QoQ2FjaGVkUmVzb3VyY2UqKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjQxNmUyMC4uMGE1NzkzNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFNl
Y3VyaXR5T3JpZ2luOjpzZXREb21haW5Gcm9tRE9NKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKQog
CiBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG90
aGVyKSBjb25zdAogewotICAgIGlmIChtX3Byb3RvY29sID09ICJmaWxlIikKKyAgICBpZiAoRnJh
bWVMb2FkZXI6OnNob3VsZFRyZWF0U2NoZW1lQXNMb2NhbChtX3Byb3RvY29sKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICBpZiAobV9ub0FjY2VzcyB8fCBvdGhlci5tX25vQWNjZXNzKQpA
QCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmlzU2VjdXJlVHJhbnNpdGlv
blRvKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKICAgICBpZiAoaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX3Byb3RvY29sID09ICJmaWxlIikKKyAgICBpZiAoRnJh
bWVMb2FkZXI6OnNob3VsZFRyZWF0U2NoZW1lQXNMb2NhbChtX3Byb3RvY29sKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9ob3N0LCBTdHJp
bmcodXJsLmhvc3QoKSkpICYmIGVxdWFsSWdub3JpbmdDYXNlKG1fcHJvdG9jb2wsIFN0cmluZyh1
cmwucHJvdG9jb2woKSkpICYmIG1fcG9ydCA9PSB1cmwucG9ydCgpOwotLSAKMS41LjMuNgoK
</data>
<flag name="review"
          id="7577"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17608</attachid>
            <date>2007-11-30 10:04:07 -0800</date>
            <delta_ts>2007-12-02 23:18:29 -0800</delta_ts>
            <desc>Performance question</desc>
            <filename>0002-Use-WTF-Unicode-umemcasecmp-to-compare-file-and.patch</filename>
            <type>text/plain</type>
            <size>2016</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSA0ZWUyZjAzMDE0YmZiODBiMDk0OWYzOWMzZmNlNTAzMzY3NTFkMDAzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgRnJleXRoZXIgPGljaEBob2xnZXItZnJleXRoZXJz
LW1hY2Jvb2subG9jYWw+CkRhdGU6IEZyaSwgMzAgTm92IDIwMDcgMjM6MDc6MzIgKzA1MzAKU3Vi
amVjdDogW1BBVENIXSAqIFVzZSBXVEY6OlVuaWNvZGU6OnVtZW1jYXNlY21wIHRvIGNvbXBhcmUg
ZmlsZSBhbmQgaHR0cCB3aXRoCiAgIHRoZSBnaXZlbiBVUkwvc2NoZW1lLgoKLS0tCiBXZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgfCAgIDExICsrKysrKystLS0tCiAxIGZpbGVzIGNoYW5n
ZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggOGNmZGQzNy4uODc1ODg1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNDYxMSwx
NSArNDYxMSwxOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwo
Y29uc3QgU3RyaW5nJiBzY2hlbWUpCiAgICAgbG9jYWxTY2hlbWVzKCkuYWRkKHNjaGVtZSk7CiB9
CiAKK3N0YXRpYyBjb25zdCBVQ2hhciBmYXN0SHR0cFNjaGVtZVtdID0geydoJywgJ3QnLCAndCcs
ICdwJywgJzonfTsKK3N0YXRpYyBjb25zdCBVQ2hhciBmYXN0RmlsZVNjaGVtZVtdID0geydmJywg
J2knLCAnbCcsICdlJywgJzonfTsKKwogYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkVHJlYXRVUkxB
c0xvY2FsKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIC8vIFRoaXMgYXZvaWRzIGFuIGFsbG9j
YXRpb24gb2YgYW5vdGhlciBTdHJpbmcgYW5kIHRoZSBIYXNoU2V0IGNvbnRhaW50cygpCiAgICAg
Ly8gY2FsbCBmb3IgdGhlIGZpbGU6IGFuZCBodHRwOiBzY2hlbWVzLgogICAgIGlmICh1cmwubGVu
Z3RoKCkgPj0gNSkgewogICAgICAgICBjb25zdCBVQ2hhciogcyA9IHVybC5jaGFyYWN0ZXJzKCk7
Ci0gICAgICAgIGlmIChzWzBdID09ICdoJyAmJiBzWzFdID09ICd0JyAmJiBzWzJdID09ICd0JyAm
JiBzWzNdID09ICdwJyAmJiBzWzRdID09ICc6JykKKyAgICAgICAgaWYgKFdURjo6VW5pY29kZTo6
dW1lbWNhc2VjbXAocywgZmFzdEh0dHBTY2hlbWUsIDUpID09IDApCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGlmIChzWzBdID09ICdmJyAmJiBzWzFdID09ICdpJyAmJiBzWzJd
ID09ICdsJyAmJiBzWzNdID09ICdlJyAmJiBzWzRdID09ICc6JykKKyAgICAgICAgaWYgKFdURjo6
VW5pY29kZTo6dW1lbWNhc2VjbXAocywgZmFzdEZpbGVTY2hlbWUsIDUpID09IDApCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTQ2MzcsOSArNDY0MCw5IEBAIGJvb2wgRnJh
bWVMb2FkZXI6OnNob3VsZFRyZWF0U2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkK
ICAgICAvLyBjYWxsIGZvciB0aGUgZmlsZTogYW5kIGh0dHA6IHNjaGVtZXMuCiAgICAgaWYgKHNj
aGVtZS5sZW5ndGgoKSA+PSA0KSB7CiAgICAgICAgIGNvbnN0IFVDaGFyKiBzID0gc2NoZW1lLmNo
YXJhY3RlcnMoKTsKLSAgICAgICAgaWYgKHNbMF0gPT0gJ2gnICYmIHNbMV0gPT0gJ3QnICYmIHNb
Ml0gPT0gJ3QnICYmIHNbM10gPT0gJ3AnKQorICAgICAgICBpZiAoV1RGOjpVbmljb2RlOjp1bWVt
Y2FzZWNtcChzLCBmYXN0SHR0cFNjaGVtZSwgNCkgPT0gMCkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgaWYgKHNbMF0gPT0gJ2YnICYmIHNbMV0gPT0gJ2knICYmIHNbMl0gPT0g
J2wnICYmIHNbM10gPT0gJ2UnKQorICAgICAgICBpZiAoV1RGOjpVbmljb2RlOjp1bWVtY2FzZWNt
cChzLCBmYXN0RmlsZVNjaGVtZSwgNCkgPT0gMCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAotLSAKMS41LjMuNgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>