<?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>96126</bug_id>
          
          <creation_ts>2012-09-07 10:09:52 -0700</creation_ts>
          <short_desc>Appcache fallback URL match should use the longest candidate</short_desc>
          <delta_ts>2012-09-07 14:28:38 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>0</everconfirmed>
          <reporter name="Leo Yang">leoyang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>japhet</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714656</commentid>
    <comment_count>0</comment_count>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 10:09:52 -0700</bug_when>
    <thetext>http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#concept-appcache-matches-fallback states the match as following:

A URL matches a fallback namespace if there exists a relevant application cache whose manifest&apos;s URL has the same origin as the URL in question, and that has a fallback namespace that is a prefix match for the URL being examined. If multiple fallback namespaces match the same URL, the longest one is the one that matches. A URL looking for a fallback namespace can match more than one application cache at a time, but only matches one namespace in each cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714676</commentid>
    <comment_count>1</comment_count>
      <attachid>162801</attachid>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 10:20:24 -0700</bug_when>
    <thetext>Created attachment 162801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714695</commentid>
    <comment_count>2</comment_count>
      <attachid>162801</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-09-07 10:29:36 -0700</bug_when>
    <thetext>Comment on attachment 162801
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=162801&amp;action=review

basically lgtm. but we should get some AppCache experts involved.

&gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:42
&gt; +    bool operator()(const std::pair&lt;KURL, KURL&gt;&amp; lhs, const std::pair&lt;KURL, KURL&gt;&amp; rhs)

static bool operator() is better? If not static, it should be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714699</commentid>
    <comment_count>3</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-09-07 10:32:51 -0700</bug_when>
    <thetext>+Tony who reviewed r121062.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714714</commentid>
    <comment_count>4</comment_count>
      <attachid>162812</attachid>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 10:39:59 -0700</bug_when>
    <thetext>Created attachment 162812
Patch v2

Following Yong&apos;s comment -- making the operator const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714724</commentid>
    <comment_count>5</comment_count>
      <attachid>162801</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-07 10:46:45 -0700</bug_when>
    <thetext>Comment on attachment 162801
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=162801&amp;action=review

Looks good to me. Since there are quite a few comments for such a small patch, I&apos;d like to do another quick round of review on an updated one.

&gt; LayoutTests/http/tests/appcache/resources/fallback.manifest:4
&gt; +/resources/ empty.txt
&gt;  /resources/network-simulator.php? simple.txt

This is a bit subtle - it would be very hard to tell what exactly failed from an error output of this test. If I try to run this updated test with current trunk, it just says &quot;Loading an URL from fallback namespace when network is disabled returned unexpected response&quot;.

Not strictly a requirement for future r+, but please consider separating this new test from testing basic fallback functionality, or perhaps the test to have more informative failure output.

&gt; Source/WebCore/ChangeLog:14
&gt; +        http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#concept-appcache-matches-fallback
&gt; +        A URL matches a fallback namespace if there exists a relevant application cache
&gt; +        whose manifest&apos;s URL has the same origin as the URL in question, and that has a
&gt; +        fallback namespace that is a prefix match for the URL being examined. If multiple
&gt; +        fallback namespaces match the same URL, the longest one is the one that matches.
&gt; +        A URL looking for a fallback namespace can match more than one application cache
&gt; +        at a time, but only matches one namespace in each cache.

I&apos;d omit this whole explanation, bug title is explanatory enough.

&gt; Source/WebCore/ChangeLog:24
&gt; +        (WebCore):

It&apos;s best to remove unhelpful lines like this. There is no way it would ever help anyone reading the ChangeLog.

&gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:34
&gt; +

This blank line shouldn&apos;t be here.

&gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:42
&gt; +struct FallbackURLGreaterThan {
&gt; +    bool operator()(const std::pair&lt;KURL, KURL&gt;&amp; lhs, const std::pair&lt;KURL, KURL&gt;&amp; rhs)

Please just use a &quot;static inline bool&quot; function.

Also, the name would be more helpful if it said what the function was actually doing, e.g. &quot;FallbackURLLongerThan&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714750</commentid>
    <comment_count>6</comment_count>
      <attachid>162812</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-09-07 11:04:05 -0700</bug_when>
    <thetext>Comment on attachment 162812
Patch v2

View in context: https://bugs.webkit.org/attachment.cgi?id=162812&amp;action=review

&gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:173
&gt;  void ApplicationCache::setFallbackURLs(const FallbackURLVector&amp; fallbackURLs)
&gt;  {
&gt;      ASSERT(m_fallbackURLs.isEmpty());
&gt;      m_fallbackURLs = fallbackURLs;
&gt; +    std::sort(m_fallbackURLs.begin(), m_fallbackURLs.end(), FallbackURLGreaterThan());
&gt;  }
&gt;  

A silly question: would a std::stable_sort be better here? it will be slower, but keep the original order unchanged as long as possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714751</commentid>
    <comment_count>7</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-09-07 11:05:30 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 162801 [details])

&gt; &gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:42
&gt; &gt; +struct FallbackURLGreaterThan {
&gt; &gt; +    bool operator()(const std::pair&lt;KURL, KURL&gt;&amp; lhs, const std::pair&lt;KURL, KURL&gt;&amp; rhs)
&gt; 
&gt; Please just use a &quot;static inline bool&quot; function.
&gt; 

I would suggest the same, but not sure if it can be built with all STL providers and compilers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714780</commentid>
    <comment_count>8</comment_count>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 11:21:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 162812 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162812&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:173
&gt; &gt;  void ApplicationCache::setFallbackURLs(const FallbackURLVector&amp; fallbackURLs)
&gt; &gt;  {
&gt; &gt;      ASSERT(m_fallbackURLs.isEmpty());
&gt; &gt;      m_fallbackURLs = fallbackURLs;
&gt; &gt; +    std::sort(m_fallbackURLs.begin(), m_fallbackURLs.end(), FallbackURLGreaterThan());
&gt; &gt;  }
&gt; &gt;  
&gt; 
&gt; A silly question: would a std::stable_sort be better here? it will be slower, but keep the original order unchanged as long as possible

Unless there are 2 same namespaces with different fallback urls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714782</commentid>
    <comment_count>9</comment_count>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 11:23:21 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 162801 [details] [details])
&gt; 
&gt; &gt; &gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:42
&gt; &gt; &gt; +struct FallbackURLGreaterThan {
&gt; &gt; &gt; +    bool operator()(const std::pair&lt;KURL, KURL&gt;&amp; lhs, const std::pair&lt;KURL, KURL&gt;&amp; rhs)
&gt; &gt; 
&gt; &gt; Please just use a &quot;static inline bool&quot; function.
&gt; &gt; 
&gt; 
&gt; I would suggest the same, but not sure if it can be built with all STL providers and compilers.

Because we are going to use a function pointer, I think inline wouldn&apos;t help. And as Yong said, not sure if some compiler would complain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714785</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-07 11:25:02 -0700</bug_when>
    <thetext>That&apos;s a good idea. We already use std::stable_sort in cross platform code, so it should be fine.

Effect of switching stable sort are worth testing in a regression test, too.

&gt; Because we are going to use a function pointer, I think inline wouldn&apos;t help. And as Yong said, not sure if some compiler would complain.

std::sort does not use the function as a pointer, it uses its argument as a generic functor. You might be thinking of qsort() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714865</commentid>
    <comment_count>11</comment_count>
      <attachid>162845</attachid>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 12:44:32 -0700</bug_when>
    <thetext>Created attachment 162845
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714890</commentid>
    <comment_count>12</comment_count>
      <attachid>162845</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-07 13:09:25 -0700</bug_when>
    <thetext>Comment on attachment 162845
Patch v3

The change from sort to stable_sort is not tested AFAICT. Could you add a test?

In fact, I&apos;m not sure what the right behavior is - is it the first or the last identical entry that wins? If we are doing it wrong, then this patch doesn&apos;t change it, and we don&apos;t need a test. But we need a FIXME then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714902</commentid>
    <comment_count>13</comment_count>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 13:26:23 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 162845 [details])
&gt; The change from sort to stable_sort is not tested AFAICT. Could you add a test?
&gt; 
&gt; In fact, I&apos;m not sure what the right behavior is - is it the first or the last identical entry that wins? If we are doing it wrong, then this patch doesn&apos;t change it, and we don&apos;t need a test. But we need a FIXME then.

Neither me. I&apos;ll add a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714907</commentid>
    <comment_count>14</comment_count>
      <attachid>162855</attachid>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 13:31:48 -0700</bug_when>
    <thetext>Created attachment 162855
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714918</commentid>
    <comment_count>15</comment_count>
      <attachid>162855</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-07 13:42:49 -0700</bug_when>
    <thetext>Comment on attachment 162855
Patch v4

View in context: https://bugs.webkit.org/attachment.cgi?id=162855&amp;action=review

Thank you for updating the patch!

&gt; Source/WebCore/loader/appcache/ApplicationCache.cpp:169
&gt; +    std::stable_sort(m_fallbackURLs.begin(), m_fallbackURLs.end(), &amp;fallbackURLLongerThan);

Sorry, I didn&apos;t notice this at first. Please remove the &quot;&amp;&quot; sign.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714928</commentid>
    <comment_count>16</comment_count>
      <attachid>162860</attachid>
    <who name="Leo Yang">leoyang</who>
    <bug_when>2012-09-07 13:48:21 -0700</bug_when>
    <thetext>Created attachment 162860
Patch v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714984</commentid>
    <comment_count>17</comment_count>
      <attachid>162860</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 14:28:34 -0700</bug_when>
    <thetext>Comment on attachment 162860
Patch v5

Clearing flags on attachment: 162860

Committed r127922: &lt;http://trac.webkit.org/changeset/127922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714985</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 14:28:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162801</attachid>
            <date>2012-09-07 10:20:24 -0700</date>
            <delta_ts>2012-09-07 12:44:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Appcache-fallback-URL-match-should-use-the-longest-c.patch</filename>
            <type>text/plain</type>
            <size>5518</size>
            <attacher name="Leo Yang">leoyang</attacher>
            
              <data encoding="base64">RnJvbSA5MmQzMmZkODY2ZGI0ZTVkMWEyMzFjM2QwODY3Y2E5MjczMTY2MzRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVveWFuZ0ByaW0uY29tPgpEYXRlOiBGcmks
IDcgU2VwIDIwMTIgMTM6MTk6MDIgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBcHBjYWNoZSBmYWxs
YmFjayBVUkwgbWF0Y2ggc2hvdWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgoKUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKCmh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93
ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL29mZmxpbmUuaHRtbCNjb25jZXB0LWFwcGNh
Y2hlLW1hdGNoZXMtZmFsbGJhY2sKQSBVUkwgbWF0Y2hlcyBhIGZhbGxiYWNrIG5hbWVzcGFjZSBp
ZiB0aGVyZSBleGlzdHMgYSByZWxldmFudCBhcHBsaWNhdGlvbiBjYWNoZQp3aG9zZSBtYW5pZmVz
dCdzIFVSTCBoYXMgdGhlIHNhbWUgb3JpZ2luIGFzIHRoZSBVUkwgaW4gcXVlc3Rpb24sIGFuZCB0
aGF0IGhhcyBhCmZhbGxiYWNrIG5hbWVzcGFjZSB0aGF0IGlzIGEgcHJlZml4IG1hdGNoIGZvciB0
aGUgVVJMIGJlaW5nIGV4YW1pbmVkLiBJZiBtdWx0aXBsZQpmYWxsYmFjayBuYW1lc3BhY2VzIG1h
dGNoIHRoZSBzYW1lIFVSTCwgdGhlIGxvbmdlc3Qgb25lIGlzIHRoZSBvbmUgdGhhdCBtYXRjaGVz
LgpBIFVSTCBsb29raW5nIGZvciBhIGZhbGxiYWNrIG5hbWVzcGFjZSBjYW4gbWF0Y2ggbW9yZSB0
aGFuIG9uZSBhcHBsaWNhdGlvbiBjYWNoZQphdCBhIHRpbWUsIGJ1dCBvbmx5IG1hdGNoZXMgb25l
IG5hbWVzcGFjZSBpbiBlYWNoIGNhY2hlLgoKTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5OgogICAg
aHR0cC90ZXN0cy9hcHBjYWNoZS9mYWxsYmFjay5odG1sCiAgICBodHRwL3Rlc3RzL2FwcGNhY2hl
L29ubGluZS1mYWxsYmFjay1sYXllcmluZy5odG1sCiAgICBodHRwL3Rlc3RzL2FwcGNhY2hlL2Zv
cmVpZ24tZmFsbGJhY2suaHRtbAp3aXRoIG1vZGlmaWVkIG1hbmlmZXN0LgoKKiBsb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHA6CihXZWJDb3JlOjpGYWxsYmFja1VSTEdyZWF0ZXJU
aGFuOjpvcGVyYXRvcigpKToKKFdlYkNvcmUpOgooV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6
c2V0RmFsbGJhY2tVUkxzKToKCkxheW91dFRlc3RzOgoKKiBodHRwL3Rlc3RzL2FwcGNhY2hlL3Jl
c291cmNlcy9mYWxsYmFjay5tYW5pZmVzdDogTWFrZSAyIGNhbmRpZGF0ZSBuYW1lc3BhY2VzIGZv
ciBhIHByZWZpeCBtYXRjaC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDkgKysrKysrKwogLi4uL3Rlc3RzL2FwcGNhY2hlL3Jlc291
cmNlcy9mYWxsYmFjay5tYW5pZmVzdCAgICAgfCAgICAzICstCiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjYgKysrKysrKysrKysrKysrKysr
KysKIC4uLi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcCAgIHwg
ICAxMiArKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMTk3MDVhMy4uYjdhZmIyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEyLTA5LTA3ICBMZW8gWWFuZyAgPGxlb3lhbmdAcmltLmNvbT4KKworICAgICAgICBBcHBj
YWNoZSBmYWxsYmFjayBVUkwgbWF0Y2ggc2hvdWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL2FwcGNhY2hlL3Jlc291cmNlcy9mYWxsYmFjay5tYW5pZmVzdDogTWFrZSAyIGNhbmRpZGF0
ZSBuYW1lc3BhY2VzIGZvciBhIHByZWZpeCBtYXRjaC4KKwogMjAxMi0wOS0wNyAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEyNzc4MCBhbmQgcjEyNzg1OS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL2ZhbGxiYWNrLm1hbmlmZXN0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvZmFsbGJhY2subWFuaWZlc3QKaW5k
ZXggNzM3NWM3ZC4uNWVjMmJkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9yZXNvdXJjZXMvZmFsbGJhY2subWFuaWZlc3QKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvZmFsbGJhY2subWFuaWZlc3QKQEAgLTEsNSArMSw2
IEBACiBDQUNIRSBNQU5JRkVTVAogRkFMTEJBQ0s6CisvcmVzb3VyY2VzLyBlbXB0eS50eHQKIC9y
ZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwPyBzaW1wbGUudHh0CiBmYWxsYmFjay1yZWRp
cmVjdCBzaW1wbGUudHh0Ci1kb2VzLW5vdC1leGlzdCBzaW1wbGUudHh0ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQorZG9lcy1ub3QtZXhpc3Qgc2ltcGxlLnR4dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhi
NGRjOGMuLjJmNTkzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wOS0wNyAg
TGVvIFlhbmcgIDxsZW95YW5nQHJpbS5jb20+CisKKyAgICAgICAgQXBwY2FjaGUgZmFsbGJhY2sg
VVJMIG1hdGNoIHNob3VsZCB1c2UgdGhlIGxvbmdlc3QgY2FuZGlkYXRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL29mZmxpbmUuaHRtbCNjb25jZXB0
LWFwcGNhY2hlLW1hdGNoZXMtZmFsbGJhY2sKKyAgICAgICAgQSBVUkwgbWF0Y2hlcyBhIGZhbGxi
YWNrIG5hbWVzcGFjZSBpZiB0aGVyZSBleGlzdHMgYSByZWxldmFudCBhcHBsaWNhdGlvbiBjYWNo
ZQorICAgICAgICB3aG9zZSBtYW5pZmVzdCdzIFVSTCBoYXMgdGhlIHNhbWUgb3JpZ2luIGFzIHRo
ZSBVUkwgaW4gcXVlc3Rpb24sIGFuZCB0aGF0IGhhcyBhCisgICAgICAgIGZhbGxiYWNrIG5hbWVz
cGFjZSB0aGF0IGlzIGEgcHJlZml4IG1hdGNoIGZvciB0aGUgVVJMIGJlaW5nIGV4YW1pbmVkLiBJ
ZiBtdWx0aXBsZQorICAgICAgICBmYWxsYmFjayBuYW1lc3BhY2VzIG1hdGNoIHRoZSBzYW1lIFVS
TCwgdGhlIGxvbmdlc3Qgb25lIGlzIHRoZSBvbmUgdGhhdCBtYXRjaGVzLgorICAgICAgICBBIFVS
TCBsb29raW5nIGZvciBhIGZhbGxiYWNrIG5hbWVzcGFjZSBjYW4gbWF0Y2ggbW9yZSB0aGFuIG9u
ZSBhcHBsaWNhdGlvbiBjYWNoZQorICAgICAgICBhdCBhIHRpbWUsIGJ1dCBvbmx5IG1hdGNoZXMg
b25lIG5hbWVzcGFjZSBpbiBlYWNoIGNhY2hlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292
ZXJlZCBieToKKyAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwY2FjaGUvZmFsbGJhY2suaHRtbAor
ICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHBjYWNoZS9vbmxpbmUtZmFsbGJhY2stbGF5ZXJpbmcu
aHRtbAorICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHBjYWNoZS9mb3JlaWduLWZhbGxiYWNrLmh0
bWwKKyAgICAgICAgd2l0aCBtb2RpZmllZCBtYW5pZmVzdC4KKworICAgICAgICAqIGxvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZhbGxiYWNr
VVJMR3JlYXRlclRoYW46Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlOjpzZXRGYWxsYmFja1VSTHMpOgorCiAyMDEyLTA5
LTA3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBOTUk6IG1vdmUgV2ViQ29yZSBzcGVjaWZpYyBjb2RlIHRvIHNlcGFyYXRl
IGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGUuY3BwCmluZGV4IDYzY2Q3YmIuLjgwOGUwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKQEAgLTMxLDExICsz
MSwyMCBAQAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8
c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAKK3N0cnVjdCBGYWxsYmFja1VSTEdyZWF0ZXJUaGFuIHsKKyAgICBib29sIG9wZXJh
dG9yKCkoY29uc3Qgc3RkOjpwYWlyPEtVUkwsIEtVUkw+JiBsaHMsIGNvbnN0IHN0ZDo6cGFpcjxL
VVJMLCBLVVJMPiYgcmhzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxocy5maXJzdC5zdHJpbmco
KS5sZW5ndGgoKSA+IHJocy5maXJzdC5zdHJpbmcoKS5sZW5ndGgoKTsKKyAgICB9Cit9OworCiBB
cHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlKCkKICAgICA6IG1fZ3JvdXAoMCkKICAg
ICAsIG1fbWFuaWZlc3QoMCkKQEAgLTE1OSw2ICsxNjgsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2Fj
aGU6OnNldEZhbGxiYWNrVVJMcyhjb25zdCBGYWxsYmFja1VSTFZlY3RvciYgZmFsbGJhY2tVUkxz
KQogewogICAgIEFTU0VSVChtX2ZhbGxiYWNrVVJMcy5pc0VtcHR5KCkpOwogICAgIG1fZmFsbGJh
Y2tVUkxzID0gZmFsbGJhY2tVUkxzOworICAgIHN0ZDo6c29ydChtX2ZhbGxiYWNrVVJMcy5iZWdp
bigpLCBtX2ZhbGxiYWNrVVJMcy5lbmQoKSwgRmFsbGJhY2tVUkxHcmVhdGVyVGhhbigpKTsKIH0K
IAogYm9vbCBBcHBsaWNhdGlvbkNhY2hlOjp1cmxNYXRjaGVzRmFsbGJhY2tOYW1lc3BhY2UoY29u
c3QgS1VSTCYgdXJsLCBLVVJMKiBmYWxsYmFja1VSTCkKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162812</attachid>
            <date>2012-09-07 10:39:59 -0700</date>
            <delta_ts>2012-09-07 12:44:32 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>0001-Appcache-fallback-URL-match-should-use-the-longest-c.patch</filename>
            <type>text/plain</type>
            <size>5524</size>
            <attacher name="Leo Yang">leoyang</attacher>
            
              <data encoding="base64">RnJvbSAyYWY5MzNmMzUxMTViYTcwNzIwZWI5ZTU1ODQ2MzMyZTk5YjNiODA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVveWFuZ0ByaW0uY29tPgpEYXRlOiBGcmks
IDcgU2VwIDIwMTIgMTM6MTk6MDIgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBcHBjYWNoZSBmYWxs
YmFjayBVUkwgbWF0Y2ggc2hvdWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgoKUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKCmh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93
ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL29mZmxpbmUuaHRtbCNjb25jZXB0LWFwcGNh
Y2hlLW1hdGNoZXMtZmFsbGJhY2sKQSBVUkwgbWF0Y2hlcyBhIGZhbGxiYWNrIG5hbWVzcGFjZSBp
ZiB0aGVyZSBleGlzdHMgYSByZWxldmFudCBhcHBsaWNhdGlvbiBjYWNoZQp3aG9zZSBtYW5pZmVz
dCdzIFVSTCBoYXMgdGhlIHNhbWUgb3JpZ2luIGFzIHRoZSBVUkwgaW4gcXVlc3Rpb24sIGFuZCB0
aGF0IGhhcyBhCmZhbGxiYWNrIG5hbWVzcGFjZSB0aGF0IGlzIGEgcHJlZml4IG1hdGNoIGZvciB0
aGUgVVJMIGJlaW5nIGV4YW1pbmVkLiBJZiBtdWx0aXBsZQpmYWxsYmFjayBuYW1lc3BhY2VzIG1h
dGNoIHRoZSBzYW1lIFVSTCwgdGhlIGxvbmdlc3Qgb25lIGlzIHRoZSBvbmUgdGhhdCBtYXRjaGVz
LgpBIFVSTCBsb29raW5nIGZvciBhIGZhbGxiYWNrIG5hbWVzcGFjZSBjYW4gbWF0Y2ggbW9yZSB0
aGFuIG9uZSBhcHBsaWNhdGlvbiBjYWNoZQphdCBhIHRpbWUsIGJ1dCBvbmx5IG1hdGNoZXMgb25l
IG5hbWVzcGFjZSBpbiBlYWNoIGNhY2hlLgoKTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5OgogICAg
aHR0cC90ZXN0cy9hcHBjYWNoZS9mYWxsYmFjay5odG1sCiAgICBodHRwL3Rlc3RzL2FwcGNhY2hl
L29ubGluZS1mYWxsYmFjay1sYXllcmluZy5odG1sCiAgICBodHRwL3Rlc3RzL2FwcGNhY2hlL2Zv
cmVpZ24tZmFsbGJhY2suaHRtbAp3aXRoIG1vZGlmaWVkIG1hbmlmZXN0LgoKKiBsb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHA6CihXZWJDb3JlOjpGYWxsYmFja1VSTEdyZWF0ZXJU
aGFuOjpvcGVyYXRvcigpKToKKFdlYkNvcmUpOgooV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6
c2V0RmFsbGJhY2tVUkxzKToKCkxheW91dFRlc3RzOgoKKiBodHRwL3Rlc3RzL2FwcGNhY2hlL3Jl
c291cmNlcy9mYWxsYmFjay5tYW5pZmVzdDogTWFrZSAyIGNhbmRpZGF0ZSBuYW1lc3BhY2VzIGZv
ciBhIHByZWZpeCBtYXRjaC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDkgKysrKysrKwogLi4uL3Rlc3RzL2FwcGNhY2hlL3Jlc291
cmNlcy9mYWxsYmFjay5tYW5pZmVzdCAgICAgfCAgICAzICstCiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjYgKysrKysrKysrKysrKysrKysr
KysKIC4uLi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcCAgIHwg
ICAxMiArKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMTk3MDVhMy4uYjdhZmIyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEyLTA5LTA3ICBMZW8gWWFuZyAgPGxlb3lhbmdAcmltLmNvbT4KKworICAgICAgICBBcHBj
YWNoZSBmYWxsYmFjayBVUkwgbWF0Y2ggc2hvdWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL2FwcGNhY2hlL3Jlc291cmNlcy9mYWxsYmFjay5tYW5pZmVzdDogTWFrZSAyIGNhbmRpZGF0
ZSBuYW1lc3BhY2VzIGZvciBhIHByZWZpeCBtYXRjaC4KKwogMjAxMi0wOS0wNyAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEyNzc4MCBhbmQgcjEyNzg1OS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL2ZhbGxiYWNrLm1hbmlmZXN0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvZmFsbGJhY2subWFuaWZlc3QKaW5k
ZXggNzM3NWM3ZC4uNWVjMmJkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9yZXNvdXJjZXMvZmFsbGJhY2subWFuaWZlc3QKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvZmFsbGJhY2subWFuaWZlc3QKQEAgLTEsNSArMSw2
IEBACiBDQUNIRSBNQU5JRkVTVAogRkFMTEJBQ0s6CisvcmVzb3VyY2VzLyBlbXB0eS50eHQKIC9y
ZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwPyBzaW1wbGUudHh0CiBmYWxsYmFjay1yZWRp
cmVjdCBzaW1wbGUudHh0Ci1kb2VzLW5vdC1leGlzdCBzaW1wbGUudHh0ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQorZG9lcy1ub3QtZXhpc3Qgc2ltcGxlLnR4dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhi
NGRjOGMuLjJmNTkzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wOS0wNyAg
TGVvIFlhbmcgIDxsZW95YW5nQHJpbS5jb20+CisKKyAgICAgICAgQXBwY2FjaGUgZmFsbGJhY2sg
VVJMIG1hdGNoIHNob3VsZCB1c2UgdGhlIGxvbmdlc3QgY2FuZGlkYXRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL29mZmxpbmUuaHRtbCNjb25jZXB0
LWFwcGNhY2hlLW1hdGNoZXMtZmFsbGJhY2sKKyAgICAgICAgQSBVUkwgbWF0Y2hlcyBhIGZhbGxi
YWNrIG5hbWVzcGFjZSBpZiB0aGVyZSBleGlzdHMgYSByZWxldmFudCBhcHBsaWNhdGlvbiBjYWNo
ZQorICAgICAgICB3aG9zZSBtYW5pZmVzdCdzIFVSTCBoYXMgdGhlIHNhbWUgb3JpZ2luIGFzIHRo
ZSBVUkwgaW4gcXVlc3Rpb24sIGFuZCB0aGF0IGhhcyBhCisgICAgICAgIGZhbGxiYWNrIG5hbWVz
cGFjZSB0aGF0IGlzIGEgcHJlZml4IG1hdGNoIGZvciB0aGUgVVJMIGJlaW5nIGV4YW1pbmVkLiBJ
ZiBtdWx0aXBsZQorICAgICAgICBmYWxsYmFjayBuYW1lc3BhY2VzIG1hdGNoIHRoZSBzYW1lIFVS
TCwgdGhlIGxvbmdlc3Qgb25lIGlzIHRoZSBvbmUgdGhhdCBtYXRjaGVzLgorICAgICAgICBBIFVS
TCBsb29raW5nIGZvciBhIGZhbGxiYWNrIG5hbWVzcGFjZSBjYW4gbWF0Y2ggbW9yZSB0aGFuIG9u
ZSBhcHBsaWNhdGlvbiBjYWNoZQorICAgICAgICBhdCBhIHRpbWUsIGJ1dCBvbmx5IG1hdGNoZXMg
b25lIG5hbWVzcGFjZSBpbiBlYWNoIGNhY2hlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292
ZXJlZCBieToKKyAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwY2FjaGUvZmFsbGJhY2suaHRtbAor
ICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHBjYWNoZS9vbmxpbmUtZmFsbGJhY2stbGF5ZXJpbmcu
aHRtbAorICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHBjYWNoZS9mb3JlaWduLWZhbGxiYWNrLmh0
bWwKKyAgICAgICAgd2l0aCBtb2RpZmllZCBtYW5pZmVzdC4KKworICAgICAgICAqIGxvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZhbGxiYWNr
VVJMR3JlYXRlclRoYW46Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlOjpzZXRGYWxsYmFja1VSTHMpOgorCiAyMDEyLTA5
LTA3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBOTUk6IG1vdmUgV2ViQ29yZSBzcGVjaWZpYyBjb2RlIHRvIHNlcGFyYXRl
IGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGUuY3BwCmluZGV4IDYzY2Q3YmIuLjRlZTRmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKQEAgLTMxLDExICsz
MSwyMCBAQAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8
c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAKK3N0cnVjdCBGYWxsYmFja1VSTEdyZWF0ZXJUaGFuIHsKKyAgICBib29sIG9wZXJh
dG9yKCkoY29uc3Qgc3RkOjpwYWlyPEtVUkwsIEtVUkw+JiBsaHMsIGNvbnN0IHN0ZDo6cGFpcjxL
VVJMLCBLVVJMPiYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGxocy5maXJzdC5z
dHJpbmcoKS5sZW5ndGgoKSA+IHJocy5maXJzdC5zdHJpbmcoKS5sZW5ndGgoKTsKKyAgICB9Cit9
OworCiBBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlKCkKICAgICA6IG1fZ3JvdXAo
MCkKICAgICAsIG1fbWFuaWZlc3QoMCkKQEAgLTE1OSw2ICsxNjgsNyBAQCB2b2lkIEFwcGxpY2F0
aW9uQ2FjaGU6OnNldEZhbGxiYWNrVVJMcyhjb25zdCBGYWxsYmFja1VSTFZlY3RvciYgZmFsbGJh
Y2tVUkxzKQogewogICAgIEFTU0VSVChtX2ZhbGxiYWNrVVJMcy5pc0VtcHR5KCkpOwogICAgIG1f
ZmFsbGJhY2tVUkxzID0gZmFsbGJhY2tVUkxzOworICAgIHN0ZDo6c29ydChtX2ZhbGxiYWNrVVJM
cy5iZWdpbigpLCBtX2ZhbGxiYWNrVVJMcy5lbmQoKSwgRmFsbGJhY2tVUkxHcmVhdGVyVGhhbigp
KTsKIH0KIAogYm9vbCBBcHBsaWNhdGlvbkNhY2hlOjp1cmxNYXRjaGVzRmFsbGJhY2tOYW1lc3Bh
Y2UoY29uc3QgS1VSTCYgdXJsLCBLVVJMKiBmYWxsYmFja1VSTCkKLS0gCjEuNy41LjQKCg==
</data>
<flag name="review"
          id="174037"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="174038"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162845</attachid>
            <date>2012-09-07 12:44:32 -0700</date>
            <delta_ts>2012-09-07 13:31:48 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>0001-Appcache-fallback-URL-match-should-use-the-longest-c.patch</filename>
            <type>text/plain</type>
            <size>7141</size>
            <attacher name="Leo Yang">leoyang</attacher>
            
              <data encoding="base64">RnJvbSBhMTAwODAyZDQyNGEwZDIyODRmYTUzMDFhODZlNjllZTM2OTcwMGIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVveWFuZ0ByaW0uY29tPgpEYXRlOiBGcmks
IDcgU2VwIDIwMTIgMTU6Mzc6NTAgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBcHBjYWNoZSBmYWxs
YmFjayBVUkwgbWF0Y2ggc2hvdWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgoKUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRlc3Q6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVs
dGktZmFsbGJhY2suaHRtbAoKKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHA6
CihXZWJDb3JlOjpmYWxsYmFja1VSTExvbmdlclRoYW4pOgooV2ViQ29yZTo6QXBwbGljYXRpb25D
YWNoZTo6c2V0RmFsbGJhY2tVUkxzKToKCkxheW91dFRlc3RzOgoKVGVzdCB3aXRoIG11bHRpcGxl
IGNhbmRpZGF0ZXMgb2YgZmFsbGJhY2sgbWF0Y2guCgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVs
dGktZmFsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL211
bHRpLWZhbGxiYWNrLmh0bWw6IEFkZGVkLgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2Vz
L211bHRpLWZhbGxiYWNrLm1hbmlmZXN0OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL3Rlc3RzL2Fw
cGNhY2hlL211bHRpLWZhbGxiYWNrLWV4cGVjdGVkLnR4dCAgICAgfCAgICA2ICsrCiAuLi4vaHR0
cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxsYmFjay5odG1sICAgICAgICB8ICAgNzMgKysrKysr
KysrKysrKysrKysrKysKIC4uLi9hcHBjYWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFu
aWZlc3QgICAgIHwgICAgNSArKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysKIC4uLi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlLmNwcCAgIHwgICAgOSArKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTE4IGlu
c2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxsYmFjay1leHBlY3RlZC50eHQKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL211bHRpLWZhbGxi
YWNrLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNh
Y2hlL3Jlc291cmNlcy9tdWx0aS1mYWxsYmFjay5tYW5pZmVzdAoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxOTcwNWEzLi5i
ZTVjNDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMDcgIExlbyBZYW5nICA8bGVv
eWFuZ0ByaW0uY29tPgorCisgICAgICAgIEFwcGNhY2hlIGZhbGxiYWNrIFVSTCBtYXRjaCBzaG91
bGQgdXNlIHRoZSBsb25nZXN0IGNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYxMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0IHdpdGggbXVsdGlwbGUgY2FuZGlkYXRlcyBvZiBmYWxs
YmFjayBtYXRjaC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJh
Y2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL211
bHRpLWZhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUv
cmVzb3VyY2VzL211bHRpLWZhbGxiYWNrLm1hbmlmZXN0OiBBZGRlZC4KKwogMjAxMi0wOS0wNyAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNzc4MCBhbmQgcjEyNzg1OS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJhY2stZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxsYmFjay1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTlhNjM2YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJh
Y2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCBhcHBsaWNhdGlvbiBjYWNoZSBm
YWxsYmFjayBlbnRyaWVzIHdpdGggbXVsdGlwbGUgY2FuZGlkYXRlcy4KKworU2hvdWxkIHNheSBT
VUNDRVNTOgorCitTVUNDRVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvbXVsdGktZmFsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
Y2FjaGUvbXVsdGktZmFsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40NGRmZmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9tdWx0aS1mYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzxodG1sIG1hbmlm
ZXN0PSJyZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFuaWZlc3QiPgorPGJvZHk+Cis8cD5UZXN0
IGFwcGxpY2F0aW9uIGNhY2hlIGZhbGxiYWNrIGVudHJpZXMgd2l0aCBtdWx0aXBsZSBjYW5kaWRh
dGVzLjwvcD4KKzxwPlNob3VsZCBzYXkgU1VDQ0VTUzo8L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rp
dj4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIg
aGFkRXJyb3IgPSBmYWxzZTsKKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4i
OworfQorCitmdW5jdGlvbiBzZXROZXR3b3JrRW5hYmxlZChzdGF0ZSkKK3sKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgICAgICByZXEub3Blbigi
R0VUIiwgIi9yZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwP2NvbW1hbmQ9IiArIChzdGF0
ZSA/ICJjb25uZWN0IiA6ICJkaXNjb25uZWN0IiksIGZhbHNlKTsKKyAgICAgICAgcmVxLnNlbmQo
IiIpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIGxvZygiQ2Fubm90IGFjY2VzcyBuZXR3
b3JrIHNpbXVsYXRvciBVUkwsIGV4ID0gIiArIGV4KTsKKyAgICAgICAgaGFkRXJyb3IgPSB0cnVl
OworICAgIH0KK30KKworZnVuY3Rpb24gbG9hZCh1cmwpCit7CisgICAgdHJ5IHsKKyAgICAgICAg
dmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICByZXEub3BlbigiR0VUIiwg
dXJsLCBmYWxzZSk7CisgICAgICAgIHJlcS5zZW5kKCIiKTsKKyAgICAgICAgcmV0dXJuIHJlcS5y
ZXNwb25zZVRleHQ7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgbG9nKCJGQUlMOiBDYW5u
b3QgbG9hZCAiICsgdXJsICsgIiwgZXggPSAiICsgZXgpOworICAgICAgICBoYWRFcnJvciA9IHRy
dWU7CisgICAgICAgIHJldHVybiAiIjsgLy8gVGhpcyB2YWx1ZSBzaG91bGQgbm90IGJlIGV4cGVj
dGVkIGFzIHRoZSByZXNwb25zZVRleHQgZm9yIGEgdXJsIHByZXNlbnRlZCB0byB0aGlzIGZ1bmN0
aW9uLgorICAgIH0KK30KKwordmFyIG5vbmV4aXN0ZW50VVJMID0gInJlc291cmNlcy9kb2VzLW5v
dC1leGlzdCI7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGFwcGxpY2F0aW9uQ2FjaGUub25u
b3VwZGF0ZSA9IGZ1bmN0aW9uKCkgeyBsb2coIkZBSUw6IHJlY2VpdmVkIHVuZXhwZWN0ZWQgbm91
cGRhdGUgZXZlbnQiKSB9CisgICAgYXBwbGljYXRpb25DYWNoZS5vbmNhY2hlZCA9IGZ1bmN0aW9u
KCkgeyBsb2coIkZBSUw6IHJlY2VpdmVkIHVuZXhwZWN0ZWQgY2FjaGVkIGV2ZW50IikgfQorCisg
ICAgc2V0TmV0d29ya0VuYWJsZWQodHJ1ZSk7CisKKyAgICBpZiAobG9hZChub25leGlzdGVudFVS
TCkgIT0gIkhlbGxvLCBXb3JsZCEiKSB7CisgICAgICAgIGxvZygiRkFJTDogVGhlIGxvbmdlc3Qg
ZmFsbGJhY2sgbmFtZXNwYWNlIHdhc24ndCB1c2VkIGZvciBhIDQwNCByZXNwb25zZSIpOworICAg
ICAgICBoYWRFcnJvciA9IHRydWU7CisgICAgfQorCisgICAgbG9nKGhhZEVycm9yID8gIkZBSUxV
UkUiIDogIlNVQ0NFU1MiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCithcHBsaWNhdGlvbkNhY2hlLm9ubm91cGRhdGUg
PSBmdW5jdGlvbigpIHsgdGVzdCgpIH0KK2FwcGxpY2F0aW9uQ2FjaGUub25jYWNoZWQgPSBmdW5j
dGlvbigpIHsgdGVzdCgpIH0KKworYXBwbGljYXRpb25DYWNoZS5vbnVwZGF0ZXJlYWR5ID0gZnVu
Y3Rpb24oKSB7IGxvZygiRkFJTDogcmVjZWl2ZWQgdW5leHBlY3RlZCB1cGRhdGVyZWFkeSBldmVu
dCIpIH0KK2FwcGxpY2F0aW9uQ2FjaGUub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBsb2coIkZBSUw6
IHJlY2VpdmVkIHVuZXhwZWN0ZWQgZXJyb3IgZXZlbnQiKSB9CisKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9y
ZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFuaWZlc3QgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL3Jlc291cmNlcy9tdWx0aS1mYWxsYmFjay5tYW5pZmVzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTVjZWYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFuaWZl
c3QKQEAgLTAsMCArMSw1IEBACitDQUNIRSBNQU5JRkVTVAorRkFMTEJBQ0s6CisvcmVzb3VyY2Vz
L25ldHdvcmstc2ltdWxhdG9yLnBocD8gc2ltcGxlLnR4dAorZG9lcy1ub3QgZW1wdHkudHh0Citk
b2VzLW5vdC1leGlzdCBzaW1wbGUudHh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI0ZGM4Yy4uNWNhNmYwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA3ICBMZW8gWWFuZyAgPGxlb3lh
bmdAcmltLmNvbT4KKworICAgICAgICBBcHBjYWNoZSBmYWxsYmFjayBVUkwgbWF0Y2ggc2hvdWxk
IHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk2MTI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxsYmFj
ay5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmYWxsYmFja1VSTExvbmdlclRoYW4pOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGljYXRpb25DYWNoZTo6c2V0RmFsbGJhY2tVUkxzKToKKwogMjAxMi0wOS0wNyAg
SWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogTk1JOiBtb3ZlIFdlYkNvcmUgc3BlY2lmaWMgY29kZSB0byBzZXBhcmF0ZSBoZWFk
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlLmNwcAppbmRleCA2M2NkN2JiLi5iNGEzMWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCkBAIC0zMSwxMSArMzEsMTcg
QEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxzdGRpby5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
IAorc3RhdGljIGlubGluZSBib29sIGZhbGxiYWNrVVJMTG9uZ2VyVGhhbihjb25zdCBzdGQ6OnBh
aXI8S1VSTCwgS1VSTD4mIGxocywgY29uc3Qgc3RkOjpwYWlyPEtVUkwsIEtVUkw+JiByaHMpCit7
CisgICAgcmV0dXJuIGxocy5maXJzdC5zdHJpbmcoKS5sZW5ndGgoKSA+IHJocy5maXJzdC5zdHJp
bmcoKS5sZW5ndGgoKTsKK30KKwogQXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZSgp
CiAgICAgOiBtX2dyb3VwKDApCiAgICAgLCBtX21hbmlmZXN0KDApCkBAIC0xNTksNiArMTY1LDcg
QEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpzZXRGYWxsYmFja1VSTHMoY29uc3QgRmFsbGJhY2tV
UkxWZWN0b3ImIGZhbGxiYWNrVVJMcykKIHsKICAgICBBU1NFUlQobV9mYWxsYmFja1VSTHMuaXNF
bXB0eSgpKTsKICAgICBtX2ZhbGxiYWNrVVJMcyA9IGZhbGxiYWNrVVJMczsKKyAgICBzdGQ6OnN0
YWJsZV9zb3J0KG1fZmFsbGJhY2tVUkxzLmJlZ2luKCksIG1fZmFsbGJhY2tVUkxzLmVuZCgpLCAm
ZmFsbGJhY2tVUkxMb25nZXJUaGFuKTsKIH0KIAogYm9vbCBBcHBsaWNhdGlvbkNhY2hlOjp1cmxN
YXRjaGVzRmFsbGJhY2tOYW1lc3BhY2UoY29uc3QgS1VSTCYgdXJsLCBLVVJMKiBmYWxsYmFja1VS
TCkKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162855</attachid>
            <date>2012-09-07 13:31:48 -0700</date>
            <delta_ts>2012-09-07 13:48:21 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>0001-Appcache-fallback-URL-match-should-use-the-longest-c.patch</filename>
            <type>text/plain</type>
            <size>7230</size>
            <attacher name="Leo Yang">leoyang</attacher>
            
              <data encoding="base64">RnJvbSA1YTVlNGU3MGUzMDNiMTgzODNlMDcyNzdlMGMzM2ZhMjViZjE5ZGI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVveWFuZ0ByaW0uY29tPgpEYXRlOiBGcmks
IDcgU2VwIDIwMTIgMTU6Mzc6NTAgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBcHBjYWNoZSBmYWxs
YmFjayBVUkwgbWF0Y2ggc2hvdWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgoKUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRlc3Q6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVs
dGktZmFsbGJhY2suaHRtbAoKKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHA6
CihXZWJDb3JlOjpmYWxsYmFja1VSTExvbmdlclRoYW4pOgooV2ViQ29yZTo6QXBwbGljYXRpb25D
YWNoZTo6c2V0RmFsbGJhY2tVUkxzKToKCkxheW91dFRlc3RzOgoKVGVzdCB3aXRoIG11bHRpcGxl
IGNhbmRpZGF0ZXMgb2YgZmFsbGJhY2sgbWF0Y2guCgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVs
dGktZmFsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL211
bHRpLWZhbGxiYWNrLmh0bWw6IEFkZGVkLgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2Vz
L211bHRpLWZhbGxiYWNrLm1hbmlmZXN0OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL3Rlc3RzL2Fw
cGNhY2hlL211bHRpLWZhbGxiYWNrLWV4cGVjdGVkLnR4dCAgICAgfCAgICA2ICsrCiAuLi4vaHR0
cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxsYmFjay5odG1sICAgICAgICB8ICAgNzMgKysrKysr
KysrKysrKysrKysrKysKIC4uLi9hcHBjYWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFu
aWZlc3QgICAgIHwgICAgNSArKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysKIC4uLi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlLmNwcCAgIHwgICAxMCArKystCiA2IGZpbGVzIGNoYW5nZWQsIDExOSBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJhY2stZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxs
YmFjay5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBj
YWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFuaWZlc3QKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTk3MDVhMy4u
YmU1YzQxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA3ICBMZW8gWWFuZyAgPGxl
b3lhbmdAcmltLmNvbT4KKworICAgICAgICBBcHBjYWNoZSBmYWxsYmFjayBVUkwgbWF0Y2ggc2hv
dWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdCB3aXRoIG11bHRpcGxlIGNhbmRpZGF0ZXMgb2YgZmFs
bGJhY2sgbWF0Y2guCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL211bHRpLWZhbGxi
YWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9t
dWx0aS1mYWxsYmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hl
L3Jlc291cmNlcy9tdWx0aS1mYWxsYmFjay5tYW5pZmVzdDogQWRkZWQuCisKIDIwMTItMDktMDcg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjc3ODAgYW5kIHIxMjc4NTkuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL211bHRpLWZhbGxiYWNrLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJhY2stZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YTYzNmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL211bHRpLWZhbGxi
YWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgYXBwbGljYXRpb24gY2FjaGUg
ZmFsbGJhY2sgZW50cmllcyB3aXRoIG11bHRpcGxlIGNhbmRpZGF0ZXMuCisKK1Nob3VsZCBzYXkg
U1VDQ0VTUzoKKworU1VDQ0VTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL211bHRpLWZhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL211bHRpLWZhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDRkZmZmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvbXVsdGktZmFsbGJhY2suaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbCBtYW5p
ZmVzdD0icmVzb3VyY2VzL211bHRpLWZhbGxiYWNrLm1hbmlmZXN0Ij4KKzxib2R5PgorPHA+VGVz
dCBhcHBsaWNhdGlvbiBjYWNoZSBmYWxsYmFjayBlbnRyaWVzIHdpdGggbXVsdGlwbGUgY2FuZGlk
YXRlcy48L3A+Cis8cD5TaG91bGQgc2F5IFNVQ0NFU1M6PC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9k
aXY+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFy
IGhhZEVycm9yID0gZmFsc2U7CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+
IjsKK30KKworZnVuY3Rpb24gc2V0TmV0d29ya0VuYWJsZWQoc3RhdGUpCit7CisgICAgdHJ5IHsK
KyAgICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAgICAgICAgcmVxLm9wZW4o
IkdFVCIsICIvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9jb21tYW5kPSIgKyAoc3Rh
dGUgPyAiY29ubmVjdCIgOiAiZGlzY29ubmVjdCIpLCBmYWxzZSk7CisgICAgICAgIHJlcS5zZW5k
KCIiKTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICBsb2coIkNhbm5vdCBhY2Nlc3MgbmV0
d29yayBzaW11bGF0b3IgVVJMLCBleCA9ICIgKyBleCk7CisgICAgICAgIGhhZEVycm9yID0gdHJ1
ZTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGxvYWQodXJsKQoreworICAgIHRyeSB7CisgICAgICAg
IHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgcmVxLm9wZW4oIkdFVCIs
IHVybCwgZmFsc2UpOworICAgICAgICByZXEuc2VuZCgiIik7CisgICAgICAgIHJldHVybiByZXEu
cmVzcG9uc2VUZXh0OworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIGxvZygiRkFJTDogQ2Fu
bm90IGxvYWQgIiArIHVybCArICIsIGV4ID0gIiArIGV4KTsKKyAgICAgICAgaGFkRXJyb3IgPSB0
cnVlOworICAgICAgICByZXR1cm4gIiI7IC8vIFRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBleHBl
Y3RlZCBhcyB0aGUgcmVzcG9uc2VUZXh0IGZvciBhIHVybCBwcmVzZW50ZWQgdG8gdGhpcyBmdW5j
dGlvbi4KKyAgICB9Cit9CisKK3ZhciBub25leGlzdGVudFVSTCA9ICJyZXNvdXJjZXMvZG9lcy1u
b3QtZXhpc3QiOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBhcHBsaWNhdGlvbkNhY2hlLm9u
bm91cGRhdGUgPSBmdW5jdGlvbigpIHsgbG9nKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIG5v
dXBkYXRlIGV2ZW50IikgfQorICAgIGFwcGxpY2F0aW9uQ2FjaGUub25jYWNoZWQgPSBmdW5jdGlv
bigpIHsgbG9nKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIGNhY2hlZCBldmVudCIpIH0KKwor
ICAgIHNldE5ldHdvcmtFbmFibGVkKHRydWUpOworCisgICAgaWYgKGxvYWQobm9uZXhpc3RlbnRV
UkwpICE9ICJIZWxsbywgV29ybGQhIikgeworICAgICAgICBsb2coIkZBSUw6IFRoZSBsb25nZXN0
IGZhbGxiYWNrIG5hbWVzcGFjZSB3YXNuJ3QgdXNlZCBmb3IgYSA0MDQgcmVzcG9uc2UiKTsKKyAg
ICAgICAgaGFkRXJyb3IgPSB0cnVlOworICAgIH0KKworICAgIGxvZyhoYWRFcnJvciA/ICJGQUlM
VVJFIiA6ICJTVUNDRVNTIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworYXBwbGljYXRpb25DYWNoZS5vbm5vdXBkYXRl
ID0gZnVuY3Rpb24oKSB7IHRlc3QoKSB9CithcHBsaWNhdGlvbkNhY2hlLm9uY2FjaGVkID0gZnVu
Y3Rpb24oKSB7IHRlc3QoKSB9CisKK2FwcGxpY2F0aW9uQ2FjaGUub251cGRhdGVyZWFkeSA9IGZ1
bmN0aW9uKCkgeyBsb2coIkZBSUw6IHJlY2VpdmVkIHVuZXhwZWN0ZWQgdXBkYXRlcmVhZHkgZXZl
bnQiKSB9CithcHBsaWNhdGlvbkNhY2hlLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgbG9nKCJGQUlM
OiByZWNlaXZlZCB1bmV4cGVjdGVkIGVycm9yIGV2ZW50IikgfQorCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUv
cmVzb3VyY2VzL211bHRpLWZhbGxiYWNrLm1hbmlmZXN0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFuaWZlc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE1Y2VmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL211bHRpLWZhbGxiYWNrLm1hbmlm
ZXN0CkBAIC0wLDAgKzEsNSBAQAorQ0FDSEUgTUFOSUZFU1QKK0ZBTExCQUNLOgorL3Jlc291cmNl
cy9uZXR3b3JrLXNpbXVsYXRvci5waHA/IHNpbXBsZS50eHQKK2RvZXMtbm90IGVtcHR5LnR4dAor
ZG9lcy1ub3QtZXhpc3Qgc2ltcGxlLnR4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhiNGRjOGMuLjVjYTZmMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0wNyAgTGVvIFlhbmcgIDxsZW95
YW5nQHJpbS5jb20+CisKKyAgICAgICAgQXBwY2FjaGUgZmFsbGJhY2sgVVJMIG1hdGNoIHNob3Vs
ZCB1c2UgdGhlIGxvbmdlc3QgY2FuZGlkYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJh
Y2suaHRtbAorCisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmFsbGJhY2tVUkxMb25nZXJUaGFuKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGU6OnNldEZhbGxiYWNrVVJMcyk6CisKIDIwMTItMDktMDcg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IE5NSTogbW92ZSBXZWJDb3JlIHNwZWNpZmljIGNvZGUgdG8gc2VwYXJhdGUgaGVh
ZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5jcHAKaW5kZXggNjNjZDdiYi4uYmNlYWIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcApAQCAtMzEsMTEgKzMxLDE3
IEBACiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmYWxsYmFja1VSTExvbmdlclRoYW4oY29uc3Qgc3RkOjpw
YWlyPEtVUkwsIEtVUkw+JiBsaHMsIGNvbnN0IHN0ZDo6cGFpcjxLVVJMLCBLVVJMPiYgcmhzKQor
eworICAgIHJldHVybiBsaHMuZmlyc3Quc3RyaW5nKCkubGVuZ3RoKCkgPiByaHMuZmlyc3Quc3Ry
aW5nKCkubGVuZ3RoKCk7Cit9CisKIEFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGUo
KQogICAgIDogbV9ncm91cCgwKQogICAgICwgbV9tYW5pZmVzdCgwKQpAQCAtMTU5LDYgKzE2NSw4
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZTo6c2V0RmFsbGJhY2tVUkxzKGNvbnN0IEZhbGxiYWNr
VVJMVmVjdG9yJiBmYWxsYmFja1VSTHMpCiB7CiAgICAgQVNTRVJUKG1fZmFsbGJhY2tVUkxzLmlz
RW1wdHkoKSk7CiAgICAgbV9mYWxsYmFja1VSTHMgPSBmYWxsYmFja1VSTHM7CisgICAgLy8gRklY
TUU6IFdoYXQncyB0aGUgcmlnaHQgYmVoYXZpb3IgaWYgd2UgaGF2ZSAyIG9yIG1vcmUgaWRlbnRp
Y2FsIG5hbWVzcGFjZSBVUkxzPworICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9mYWxsYmFja1VSTHMu
YmVnaW4oKSwgbV9mYWxsYmFja1VSTHMuZW5kKCksICZmYWxsYmFja1VSTExvbmdlclRoYW4pOwog
fQogCiBib29sIEFwcGxpY2F0aW9uQ2FjaGU6OnVybE1hdGNoZXNGYWxsYmFja05hbWVzcGFjZShj
b25zdCBLVVJMJiB1cmwsIEtVUkwqIGZhbGxiYWNrVVJMKQotLSAKMS43LjUuNAoK
</data>
<flag name="review"
          id="174094"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="174095"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162860</attachid>
            <date>2012-09-07 13:48:21 -0700</date>
            <delta_ts>2012-09-07 14:28:34 -0700</delta_ts>
            <desc>Patch v5</desc>
            <filename>0001-Appcache-fallback-URL-match-should-use-the-longest-c.patch</filename>
            <type>text/plain</type>
            <size>7229</size>
            <attacher name="Leo Yang">leoyang</attacher>
            
              <data encoding="base64">RnJvbSA4N2Y2M2Q2ZTNiYzFiZTIzMzdlZmM4ZmQzNDQ3M2VhM2E2YmY1MTY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVveWFuZ0ByaW0uY29tPgpEYXRlOiBGcmks
IDcgU2VwIDIwMTIgMTU6Mzc6NTAgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBcHBjYWNoZSBmYWxs
YmFjayBVUkwgbWF0Y2ggc2hvdWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgoKUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRlc3Q6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVs
dGktZmFsbGJhY2suaHRtbAoKKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHA6
CihXZWJDb3JlOjpmYWxsYmFja1VSTExvbmdlclRoYW4pOgooV2ViQ29yZTo6QXBwbGljYXRpb25D
YWNoZTo6c2V0RmFsbGJhY2tVUkxzKToKCkxheW91dFRlc3RzOgoKVGVzdCB3aXRoIG11bHRpcGxl
IGNhbmRpZGF0ZXMgb2YgZmFsbGJhY2sgbWF0Y2guCgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVs
dGktZmFsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL211
bHRpLWZhbGxiYWNrLmh0bWw6IEFkZGVkLgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2Vz
L211bHRpLWZhbGxiYWNrLm1hbmlmZXN0OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL3Rlc3RzL2Fw
cGNhY2hlL211bHRpLWZhbGxiYWNrLWV4cGVjdGVkLnR4dCAgICAgfCAgICA2ICsrCiAuLi4vaHR0
cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxsYmFjay5odG1sICAgICAgICB8ICAgNzMgKysrKysr
KysrKysrKysrKysrKysKIC4uLi9hcHBjYWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFu
aWZlc3QgICAgIHwgICAgNSArKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysKIC4uLi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlLmNwcCAgIHwgICAxMCArKystCiA2IGZpbGVzIGNoYW5nZWQsIDExOSBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJhY2stZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9tdWx0aS1mYWxs
YmFjay5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBj
YWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFuaWZlc3QKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTk3MDVhMy4u
YmU1YzQxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA3ICBMZW8gWWFuZyAgPGxl
b3lhbmdAcmltLmNvbT4KKworICAgICAgICBBcHBjYWNoZSBmYWxsYmFjayBVUkwgbWF0Y2ggc2hv
dWxkIHVzZSB0aGUgbG9uZ2VzdCBjYW5kaWRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdCB3aXRoIG11bHRpcGxlIGNhbmRpZGF0ZXMgb2YgZmFs
bGJhY2sgbWF0Y2guCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL211bHRpLWZhbGxi
YWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9t
dWx0aS1mYWxsYmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hl
L3Jlc291cmNlcy9tdWx0aS1mYWxsYmFjay5tYW5pZmVzdDogQWRkZWQuCisKIDIwMTItMDktMDcg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjc3ODAgYW5kIHIxMjc4NTkuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL211bHRpLWZhbGxiYWNrLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJhY2stZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YTYzNmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL211bHRpLWZhbGxi
YWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgYXBwbGljYXRpb24gY2FjaGUg
ZmFsbGJhY2sgZW50cmllcyB3aXRoIG11bHRpcGxlIGNhbmRpZGF0ZXMuCisKK1Nob3VsZCBzYXkg
U1VDQ0VTUzoKKworU1VDQ0VTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL211bHRpLWZhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL211bHRpLWZhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDRkZmZmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvbXVsdGktZmFsbGJhY2suaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbCBtYW5p
ZmVzdD0icmVzb3VyY2VzL211bHRpLWZhbGxiYWNrLm1hbmlmZXN0Ij4KKzxib2R5PgorPHA+VGVz
dCBhcHBsaWNhdGlvbiBjYWNoZSBmYWxsYmFjayBlbnRyaWVzIHdpdGggbXVsdGlwbGUgY2FuZGlk
YXRlcy48L3A+Cis8cD5TaG91bGQgc2F5IFNVQ0NFU1M6PC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9k
aXY+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFy
IGhhZEVycm9yID0gZmFsc2U7CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+
IjsKK30KKworZnVuY3Rpb24gc2V0TmV0d29ya0VuYWJsZWQoc3RhdGUpCit7CisgICAgdHJ5IHsK
KyAgICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAgICAgICAgcmVxLm9wZW4o
IkdFVCIsICIvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9jb21tYW5kPSIgKyAoc3Rh
dGUgPyAiY29ubmVjdCIgOiAiZGlzY29ubmVjdCIpLCBmYWxzZSk7CisgICAgICAgIHJlcS5zZW5k
KCIiKTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICBsb2coIkNhbm5vdCBhY2Nlc3MgbmV0
d29yayBzaW11bGF0b3IgVVJMLCBleCA9ICIgKyBleCk7CisgICAgICAgIGhhZEVycm9yID0gdHJ1
ZTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGxvYWQodXJsKQoreworICAgIHRyeSB7CisgICAgICAg
IHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgcmVxLm9wZW4oIkdFVCIs
IHVybCwgZmFsc2UpOworICAgICAgICByZXEuc2VuZCgiIik7CisgICAgICAgIHJldHVybiByZXEu
cmVzcG9uc2VUZXh0OworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIGxvZygiRkFJTDogQ2Fu
bm90IGxvYWQgIiArIHVybCArICIsIGV4ID0gIiArIGV4KTsKKyAgICAgICAgaGFkRXJyb3IgPSB0
cnVlOworICAgICAgICByZXR1cm4gIiI7IC8vIFRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBleHBl
Y3RlZCBhcyB0aGUgcmVzcG9uc2VUZXh0IGZvciBhIHVybCBwcmVzZW50ZWQgdG8gdGhpcyBmdW5j
dGlvbi4KKyAgICB9Cit9CisKK3ZhciBub25leGlzdGVudFVSTCA9ICJyZXNvdXJjZXMvZG9lcy1u
b3QtZXhpc3QiOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBhcHBsaWNhdGlvbkNhY2hlLm9u
bm91cGRhdGUgPSBmdW5jdGlvbigpIHsgbG9nKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIG5v
dXBkYXRlIGV2ZW50IikgfQorICAgIGFwcGxpY2F0aW9uQ2FjaGUub25jYWNoZWQgPSBmdW5jdGlv
bigpIHsgbG9nKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIGNhY2hlZCBldmVudCIpIH0KKwor
ICAgIHNldE5ldHdvcmtFbmFibGVkKHRydWUpOworCisgICAgaWYgKGxvYWQobm9uZXhpc3RlbnRV
UkwpICE9ICJIZWxsbywgV29ybGQhIikgeworICAgICAgICBsb2coIkZBSUw6IFRoZSBsb25nZXN0
IGZhbGxiYWNrIG5hbWVzcGFjZSB3YXNuJ3QgdXNlZCBmb3IgYSA0MDQgcmVzcG9uc2UiKTsKKyAg
ICAgICAgaGFkRXJyb3IgPSB0cnVlOworICAgIH0KKworICAgIGxvZyhoYWRFcnJvciA/ICJGQUlM
VVJFIiA6ICJTVUNDRVNTIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworYXBwbGljYXRpb25DYWNoZS5vbm5vdXBkYXRl
ID0gZnVuY3Rpb24oKSB7IHRlc3QoKSB9CithcHBsaWNhdGlvbkNhY2hlLm9uY2FjaGVkID0gZnVu
Y3Rpb24oKSB7IHRlc3QoKSB9CisKK2FwcGxpY2F0aW9uQ2FjaGUub251cGRhdGVyZWFkeSA9IGZ1
bmN0aW9uKCkgeyBsb2coIkZBSUw6IHJlY2VpdmVkIHVuZXhwZWN0ZWQgdXBkYXRlcmVhZHkgZXZl
bnQiKSB9CithcHBsaWNhdGlvbkNhY2hlLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgbG9nKCJGQUlM
OiByZWNlaXZlZCB1bmV4cGVjdGVkIGVycm9yIGV2ZW50IikgfQorCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUv
cmVzb3VyY2VzL211bHRpLWZhbGxiYWNrLm1hbmlmZXN0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9yZXNvdXJjZXMvbXVsdGktZmFsbGJhY2subWFuaWZlc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE1Y2VmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL211bHRpLWZhbGxiYWNrLm1hbmlm
ZXN0CkBAIC0wLDAgKzEsNSBAQAorQ0FDSEUgTUFOSUZFU1QKK0ZBTExCQUNLOgorL3Jlc291cmNl
cy9uZXR3b3JrLXNpbXVsYXRvci5waHA/IHNpbXBsZS50eHQKK2RvZXMtbm90IGVtcHR5LnR4dAor
ZG9lcy1ub3QtZXhpc3Qgc2ltcGxlLnR4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhiNGRjOGMuLjVjYTZmMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0wNyAgTGVvIFlhbmcgIDxsZW95
YW5nQHJpbS5jb20+CisKKyAgICAgICAgQXBwY2FjaGUgZmFsbGJhY2sgVVJMIG1hdGNoIHNob3Vs
ZCB1c2UgdGhlIGxvbmdlc3QgY2FuZGlkYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NjEyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbXVsdGktZmFsbGJh
Y2suaHRtbAorCisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmFsbGJhY2tVUkxMb25nZXJUaGFuKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGU6OnNldEZhbGxiYWNrVVJMcyk6CisKIDIwMTItMDktMDcg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IE5NSTogbW92ZSBXZWJDb3JlIHNwZWNpZmljIGNvZGUgdG8gc2VwYXJhdGUgaGVh
ZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5jcHAKaW5kZXggNjNjZDdiYi4uYWJiMDAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcApAQCAtMzEsMTEgKzMxLDE3
IEBACiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmYWxsYmFja1VSTExvbmdlclRoYW4oY29uc3Qgc3RkOjpw
YWlyPEtVUkwsIEtVUkw+JiBsaHMsIGNvbnN0IHN0ZDo6cGFpcjxLVVJMLCBLVVJMPiYgcmhzKQor
eworICAgIHJldHVybiBsaHMuZmlyc3Quc3RyaW5nKCkubGVuZ3RoKCkgPiByaHMuZmlyc3Quc3Ry
aW5nKCkubGVuZ3RoKCk7Cit9CisKIEFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGUo
KQogICAgIDogbV9ncm91cCgwKQogICAgICwgbV9tYW5pZmVzdCgwKQpAQCAtMTU5LDYgKzE2NSw4
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZTo6c2V0RmFsbGJhY2tVUkxzKGNvbnN0IEZhbGxiYWNr
VVJMVmVjdG9yJiBmYWxsYmFja1VSTHMpCiB7CiAgICAgQVNTRVJUKG1fZmFsbGJhY2tVUkxzLmlz
RW1wdHkoKSk7CiAgICAgbV9mYWxsYmFja1VSTHMgPSBmYWxsYmFja1VSTHM7CisgICAgLy8gRklY
TUU6IFdoYXQncyB0aGUgcmlnaHQgYmVoYXZpb3IgaWYgd2UgaGF2ZSAyIG9yIG1vcmUgaWRlbnRp
Y2FsIG5hbWVzcGFjZSBVUkxzPworICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9mYWxsYmFja1VSTHMu
YmVnaW4oKSwgbV9mYWxsYmFja1VSTHMuZW5kKCksIGZhbGxiYWNrVVJMTG9uZ2VyVGhhbik7CiB9
CiAKIGJvb2wgQXBwbGljYXRpb25DYWNoZTo6dXJsTWF0Y2hlc0ZhbGxiYWNrTmFtZXNwYWNlKGNv
bnN0IEtVUkwmIHVybCwgS1VSTCogZmFsbGJhY2tVUkwpCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>