<?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>38470</bug_id>
          
          <creation_ts>2010-05-03 09:22:24 -0700</creation_ts>
          <short_desc>Add first WTFURL file</short_desc>
          <delta_ts>2010-05-04 16:25:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>brettw</cc>
    
    <cc>darin</cc>
    
    <cc>fishd</cc>
    
    <cc>mjs</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>220136</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-03 09:22:24 -0700</bug_when>
    <thetext>Add empty folder to house URL parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220137</commentid>
    <comment_count>1</comment_count>
      <attachid>54932</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-03 09:22:56 -0700</bug_when>
    <thetext>Created attachment 54932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220138</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-03 09:23:32 -0700</bug_when>
    <thetext>I wasn&apos;t sure whether to put this at the root level or in the JavaScriptCore/wtf folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220143</commentid>
    <comment_count>3</comment_count>
      <attachid>54932</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-03 09:45:36 -0700</bug_when>
    <thetext>Comment on attachment 54932
Patch

Change log looks fine. There&apos;s no directory in the patch, but rs=me on adding the directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220165</commentid>
    <comment_count>4</comment_count>
      <attachid>54932</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-03 10:27:02 -0700</bug_when>
    <thetext>Comment on attachment 54932
Patch

I landed this patch and then reverted it in r58683 because Darin Adler would prefer that we not create a new top-level directory for this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220174</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-03 10:35:21 -0700</bug_when>
    <thetext>It’s a lot more convenient for Apple if the new code goes in some existing directory and shares in the existing build system in that directory. While I wouldn’t rule out making a new top-level project entirely, I’d prefer that this be somewhere in either JavaScriptCore or WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220180</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-03 10:46:27 -0700</bug_when>
    <thetext>Here are some locations that have been floated:

JavaScriptCore/wtf/url
JavaScriptCore/wtf/URLCore
JavaScriptCore/URLCore
WebCore/URLCore

It seems a bit silly to put the code in JavaScriptCore because it has very little to do with JavaScript.  It has more to do with WebCore, so maybe that makes the most sense.  My guess is that fishd&apos;s main concern is that the code not accrete dependencies on WebCore.

Perhaps WebCore/URLCore with its own ChangeLog file makes the most sense?  We already have folders in WebCore with special dependency rules (e.g., platform).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220264</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-03 13:25:30 -0700</bug_when>
    <thetext>If it&apos;s going to be in WebCore, why not put it in WebCore/platform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220302</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-03 14:47:49 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; If it&apos;s going to be in WebCore, why not put it in WebCore/platform?

You&apos;re suggesting WebCore/platform/url ?

Here&apos;s some more info from email:

On Mon, May 3, 2010 at 11:41 AM, Darin Adler &lt;darin@apple.com&gt; wrote:
&gt;
&gt; On May 3, 2010, at 10:17 AM, Adam Barth wrote:
&gt;
&gt; &gt; How about JavaScriptCore/wtf/url ?
&gt; &gt;
&gt; &gt; I originally used the name &quot;URLCore&quot; to fit in with the rest of the top-level &quot;Core&quot; directories.  It seems a bit odd to have the code inside the JavaScriptCore folder, but that might make sense if/when wtf is moved into its own top-level directory.
&gt;
&gt; Seems OK.
&gt;
&gt; I think the real choice isn’t WebCore vs. JavaScriptCore, but rather WebCore’s platform vs. WTF. Both of those are conceptually separate libraries although they live inside the WebCore and JavaScriptCore directory. At some point I’d like to make those link and compile separately to enforce correct layering, but there are costs associated so I am not in a rush to do that right away.
&gt;
&gt; For Chromium’s sake, I think WTF is right since they are basically treating URL as a low level thing, and probably don’t want to have the networking library depend on the WebCore platform layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220503</commentid>
    <comment_count>9</comment_count>
      <attachid>55000</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-04 00:31:29 -0700</bug_when>
    <thetext>Created attachment 55000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220510</commentid>
    <comment_count>10</comment_count>
      <attachid>55000</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-05-04 00:54:25 -0700</bug_when>
    <thetext>Comment on attachment 55000
Patch

JavaScriptCore/wtf/url/src/URLComponent.h:66
 +      int m_length; // Will be -1 if the component is unspecified.
I&apos;m not a fan of in-band signalling like this. It tends to be error-prone. Is the size of this class critical? In any case, I guess it&apos;s fine to initially land like this.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220513</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-04 00:57:45 -0700</bug_when>
    <thetext>Committed r58740: &lt;http://trac.webkit.org/changeset/58740&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220783</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-04 14:24:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; It’s a lot more convenient for Apple if the new code goes in some existing
&gt; directory and shares in the existing build system in that directory. While I
&gt; wouldn’t rule out making a new top-level project entirely, I’d prefer that this
&gt; be somewhere in either JavaScriptCore or WebCore.

A goal for Chromium at least is to be able to make use of this code from our network stack without having the network stack depend on any other parts of WebKit.  This is why I would prefer a new top-level directory, so the separation is clearer to developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220793</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-04 14:34:41 -0700</bug_when>
    <thetext>The two issues seem somewhat separable:

1) Where the code lives.
2) What the dependency rules are.

My goal is to make the code have as few dependencies as possible.  Actually, I&apos;m aiming for zero (or maybe just ICU), like the current code has.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220795</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-04 14:36:33 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; The two issues seem somewhat separable:
&gt; 
&gt; 1) Where the code lives.
&gt; 2) What the dependency rules are.
&gt; 
&gt; My goal is to make the code have as few dependencies as possible.  Actually,
&gt; I&apos;m aiming for zero (or maybe just ICU), like the current code has.

OK.  There is a third concern:  how do we keep it that way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220797</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-04 14:40:11 -0700</bug_when>
    <thetext>&gt; OK.  There is a third concern:  how do we keep it that way?

The same way we keep most of our invariants: buildbots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220799</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-04 14:43:25 -0700</bug_when>
    <thetext>To be more specific, I imagine that the Chromium port will re-map JavaScriptCore/wtf/url to WebKit/chromium/wtfurl in the same way it current maps googleurl into that location.  The main Chromium build will probably re-map it to src/wtfurl (again, where googleurl is currently mapped).  By building the library using wtfurl.gyp, the Chromium buildbots will ensure that its dependencies remain in check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220842</commentid>
    <comment_count>17</comment_count>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2010-05-04 15:53:15 -0700</bug_when>
    <thetext>Currently the ICU dependency is in one source file only. It does require the headers to compile. We did this so other projects could use this coded without taking a 10MB hit, by supplying a simple converter file (assuming they don&apos;t want IDN). It is used by other projects at Google in this way.

I think we should try to maintain it being separate from ICU in this way when it lives in WebCore as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220859</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-04 16:25:11 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; To be more specific, I imagine that the Chromium port will re-map
&gt; JavaScriptCore/wtf/url to WebKit/chromium/wtfurl in the same way it current
&gt; maps googleurl into that location.  The main Chromium build will probably
&gt; re-map it to src/wtfurl (again, where googleurl is currently mapped).  By
&gt; building the library using wtfurl.gyp, the Chromium buildbots will ensure that
&gt; its dependencies remain in check.

It would be nice to avoid the extra duplication of svn checkouts.  What does re-mapping buy us?  (Maybe we should discuss this in another forum.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54932</attachid>
            <date>2010-05-03 09:22:56 -0700</date>
            <delta_ts>2010-05-04 00:31:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38470-20100503092254.patch</filename>
            <type>text/plain</type>
            <size>297</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFVSTENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFVSTENvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAwKQorKysgVVJMQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNSBAQAorMjAxMC0wNS0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBVUkxDb3Jl
IGRpcmVjdG9yeS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55000</attachid>
            <date>2010-05-04 00:31:29 -0700</date>
            <delta_ts>2010-05-04 00:54:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38470-20100504003127.patch</filename>
            <type>text/plain</type>
            <size>7551</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4NzM4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDUtMDQgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgZmlyc3QgV1RGVVJMIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NDcwCisKKyAgICAgICAgVGhpcyBjbGFz
cyByZXByZXNlbnRzIGEgY29tcG9uZW50IG9mIGEgVVJMLCBzdWNoIGFzIHRoZSBzY2hlbWUgb3Ig
cGF0aC4KKyAgICAgICAgRXNzZW50aWFsbHksIHRoZSBjbGFzcyBpcyBhbiBpbmRleCBpbnRvIGEg
c3RyaW5nIGJ1ZmZlci4KKworICAgICAgICAqIHd0Zi91cmw6IEFkZGVkLgorICAgICAgICAgICAg
LSBUaGVyZSB3YXMgc29tZSBkaXNjdXNzaW9uIGFib3V0IHdoZXJlIHRvIHB1dCB0aGUgVVJMIGxp
YnJhcnkuCisgICAgICAgICAgICAgIFRoZXJlIGFyZSBhIG51bWJlciBvZiByZWFzb25hYmxlIG9w
dGlvbnMsIGJ1dCBwdXR0aW5nIHRoZSBsaWJyYXJ5CisgICAgICAgICAgICAgIGluIHRoZSBXVEYg
ZGlyZWN0b3J5IHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIGFsdGVybmF0aXZlLiAgVGhpcworICAg
ICAgICAgICAgICBsb2NhdGlvbiB3aWxsIG1ha2UgbW9yZSBzZW5zZSBvbmNlIFdURiBpcyBtb3Zl
ZCBvdXQgb2YKKyAgICAgICAgICAgICAgSmF2YVNjcmlwdENvcmUgYW5kIGludG8gYSB0b3AtbGV2
ZWwgZGlyZWN0b3J5LgorICAgICAgICAqIHd0Zi91cmwvc3JjOiBBZGRlZC4KKyAgICAgICAgICAg
IC0gSSd2ZSBhZGRlZCB0aGlzIGV4dHJhIGRpcmVjdG9yeSB0byB0aGUgdXN1YWwgc3RydWN0dXJl
IGJlY2F1c2Ugd2UKKyAgICAgICAgICAgICAgZXZlbnR1YWxseSB3YW50IGEgInB1YmxpYyIgZm9s
ZGVyIHRoYXQgZGVmaW5lcyB0aGUgcHVibGljCisgICAgICAgICAgICAgIGludGVyZmFjZSB0byB0
aGlzIGxpYnJhcnkgdGhhdCBjbGllbnRzIG91dHNpZGUgb2Ygc3ZuLndlYmtpdC5vcmcKKyAgICAg
ICAgICAgICAgY2FuIHJlbHkgdXBvbiwgbXVjaCBsaWtlIHRoZSB2YXJpb3VzIHN1YmZvbGRlcnMg
b2YgdGhlIFdlYktpdAorICAgICAgICAgICAgICBkaXJlY3Rvcnkgb2Z0ZW4gZGVmaW5lIGEgcHVi
bGljIEFQSS4KKyAgICAgICAgKiB3dGYvdXJsL3NyYy9VUkxDb21wb25lbnQuaDogQWRkZWQuCisg
ICAgICAgICAgICAtIEkndmUgYWRkZWQgdGhpcyBzb21ld2hhdCB0cml2aWFsIGNsYXNzIHRvIGdl
dCB0aGUgYmFsbCByb2xsaW5nLgorICAgICAgICAoV1RGOjpVUkxDb21wb25lbnQ6OlVSTENvbXBv
bmVudCk6CisgICAgICAgIChXVEY6OlVSTENvbXBvbmVudDo6aXNWYWxpZCk6CisgICAgICAgIChX
VEY6OlVSTENvbXBvbmVudDo6aXNOb25lbXB0eSk6CisgICAgICAgIChXVEY6OlVSTENvbXBvbmVu
dDo6cmVzZXQpOgorICAgICAgICAoV1RGOjpVUkxDb21wb25lbnQ6Om9wZXJhdG9yPT0pOgorICAg
ICAgICAoV1RGOjpVUkxDb21wb25lbnQ6OmJlZ2luKToKKyAgICAgICAgKFdURjo6VVJMQ29tcG9u
ZW50OjpzZXRCZWdpbik6CisgICAgICAgIChXVEY6OlVSTENvbXBvbmVudDo6bGVuZ3RoKToKKyAg
ICAgICAgKFdURjo6VVJMQ29tcG9uZW50OjpzZXRMZW5ndGgpOgorICAgICAgICAoV1RGOjpVUkxD
b21wb25lbnQ6OmVuZCk6CisgICAgICAgICogd3RmL3VybC93dGZ1cmwuZ3lwOiBBZGRlZC4KKyAg
ICAgICAgICAgIC0gV1RGVVJMIHdpbGwgYmUgYW4gaW5kZXBlbmRlbnRseSBidWlsZGFibGUgbGli
cmFyeSwgaGVuY2UgdGhlCisgICAgICAgICAgICAgIGJlZ2lubmluZ3Mgb2YgYSB3dGZ1cmwuZ3lw
IGZpbGUuCisKIDIwMTAtMDUtMDMgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS93dGYvdXJsL3d0ZnVybC5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL3Vy
bC93dGZ1cmwuZ3lwCShyZXZpc2lvbiAwKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL3VybC93dGZ1
cmwuZ3lwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisjIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
eworICAndmFyaWFibGVzJzogeworICAgICdjaHJvbWl1bV9jb2RlJzogMSwKKyAgfSwKKyAgJ3Rh
cmdldHMnOiBbCisgICAgeworICAgICAgJ3RhcmdldF9uYW1lJzogJ3d0ZnVybCcsCisgICAgICAn
dHlwZSc6ICc8KGxpYnJhcnkpJywKKyAgICAgICdtc3ZzX2d1aWQnOiAnRUY1RTk0QUItQjY0Ni00
RTVCLUEwNTgtNTJFRjA3QjgzNTFDJywKKyAgICAgICdkZXBlbmRlbmNpZXMnOiBbCisgICAgICBd
LAorICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICdzcmMvVVJMQ29tcG9uZW50LmgnLAorICAg
ICAgXSwKKyAgICAgICdkaXJlY3RfZGVwZW5kZW50X3NldHRpbmdzJzogeworICAgICAgICAnaW5j
bHVkZV9kaXJzJzogWworICAgICAgICAgICdzcmMnLAorICAgICAgICBdLAorICAgICAgfSwKKyAg
ICB9LAorICBdLAorfQorCisjIExvY2FsIFZhcmlhYmxlczoKKyMgdGFiLXdpZHRoOjIKKyMgaW5k
ZW50LXRhYnMtbW9kZTpuaWwKKyMgRW5kOgorIyB2aW06IHNldCBleHBhbmR0YWIgdGFic3RvcD0y
IHNoaWZ0d2lkdGg9MjoKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi91cmwvc3JjL1VSTENvbXBv
bmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi91cmwvc3JjL1VSTENvbXBv
bmVudC5oCShyZXZpc2lvbiAwKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL3VybC9zcmMvVVJMQ29t
cG9uZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEgQEAKKy8vIENvcHlyaWdodCAyMDEw
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisv
LyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisv
LyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWZuZGVmIFVSTENvbXBvbmVudF9oCisjZGVmaW5l
IFVSTENvbXBvbmVudF9oCisKK25hbWVzcGFjZSBXVEYgeworCisvLyBSZXByZXNlbnRzIGEgc3Vi
c3RyaW5nIGZvciBVUkwgcGFyc2luZy4KK2NsYXNzIFVSTENvbXBvbmVudCB7CitwdWJsaWM6Cisg
ICAgVVJMQ29tcG9uZW50KCkgOiBtX2JlZ2luKDApLCBtX2xlbmd0aCgtMSkgeyB9CisgICAgVVJM
Q29tcG9uZW50KGludCBiZWdpbiwgaW50IGxlbmd0aCkgOiBtX2JlZ2luKGJlZ2luKSwgbV9sZW5n
dGgobGVuZ3RoKSB7IH0KKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbXBvbmVudCBp
cyB2YWxpZCwgbWVhbmluZyB0aGUgbGVuZ3RoIGlzIGdpdmVuLiBFdmVuCisgICAgLy8gdmFsaWQg
Y29tcG9uZW50cyBtYXkgYmUgZW1wdHkgdG8gcmVjb3JkIHRoZSBmYWN0IHRoYXQgdGhleSBleGlz
dC4KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aCAhPSAtMTsgfQor
CisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBjb21wb25lbnQgaXMgc3BlY2lmaWVk
IG9uIGZhbHNlLCB0aGUgY29tcG9uZW50CisgICAgLy8gaXMgZWl0aGVyIGVtcHR5IG9yIGludmFs
aWQuCisgICAgYm9vbCBpc05vbmVtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGggPiAwOyB9
CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1fYmVnaW4gPSAwOworICAgICAg
ICBtX2xlbmd0aCA9IC0xOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBVUkxD
b21wb25lbnQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2JlZ2luID09IG90aGVyLm1fYmVnaW4g
JiYgbV9sZW5ndGggPT0gb3RoZXIubV9sZW5ndGg7IH0KKworICAgIGludCBiZWdpbigpIGNvbnN0
IHsgcmV0dXJuIG1fYmVnaW47IH0KKyAgICB2b2lkIHNldEJlZ2luKGludCBiZWdpbikgeyBtX2Jl
Z2luID0gYmVnaW47IH0KKworICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0
aDsgfQorICAgIHZvaWQgc2V0TGVuZ3RoKGludCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7
IH0KKworICAgIGludCBlbmQoKSBjb25zdCB7IHJldHVybiBtX2JlZ2luICsgbV9sZW5ndGg7IH0K
KworcHJpdmF0ZToKKyAgICBpbnQgbV9iZWdpbjsgLy8gQnl0ZSBvZmZzZXQgaW4gdGhlIHN0cmlu
ZyBvZiB0aGlzIGNvbXBvbmVudC4KKyAgICBpbnQgbV9sZW5ndGg7IC8vIFdpbGwgYmUgLTEgaWYg
dGhlIGNvbXBvbmVudCBpcyB1bnNwZWNpZmllZC4KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgor
CisjZW5kaWYgLy8gVVJMQ29tcG9uZW50X2gK
</data>
<flag name="review"
          id="39087"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>