<?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>101878</bug_id>
          
          <creation_ts>2012-11-11 18:27:31 -0800</creation_ts>
          <short_desc>Add support for week/month to Locale::formatDateTime()</short_desc>
          <delta_ts>2012-11-12 05:24:10 -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>Forms</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>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>763958</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-11 18:27:31 -0800</bug_when>
    <thetext>Add support for week/month to Locale::formatDateTime()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764171</commentid>
    <comment_count>1</comment_count>
      <attachid>173592</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-12 02:28:27 -0800</bug_when>
    <thetext>Created attachment 173592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764174</commentid>
    <comment_count>2</comment_count>
      <attachid>173592</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-12 02:35:43 -0800</bug_when>
    <thetext>Comment on attachment 173592
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new tests. Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.

nit: &quot;No new tests.&quot; is unnecessary.

&gt; Source/WebCore/platform/text/PlatformLocale.cpp:102
&gt;      case DateTimeFormat::FieldTypeMonth:

We need to support FieldTypeMonthStandAlone too.  Some locales such as Russian use it.

&gt; Source/WebCore/platform/text/PlatformLocale.cpp:360
&gt; -    if (date.type() != DateComponents::Time &amp;&amp; date.type() != DateComponents::Date)
&gt; +    if (date.type() != DateComponents::Time &amp;&amp; date.type() != DateComponents::Date &amp;&amp; date.type() != DateComponents::Week &amp;&amp; date.type() != DateComponents::Month)
&gt;          return String();

nit:
if (date.type() == DateComponents::DateTime || date.type() == DateComponents::DateTimeLocal || date.type() == DateComponents::Invalid)

is shorter.

&gt; Source/WebCore/platform/text/PlatformLocale.cpp:371
&gt;          builder.build(formatType == FormatTypeShort ? shortTimeFormat() : timeFormat());
&gt;      else if (date.type() == DateComponents::Date)
&gt;          builder.build(dateFormat());
&gt; +    else if (date.type() == DateComponents::Week)
&gt; +        builder.build(weekFormatInLDML());
&gt; +    else if (date.type() == DateComponents::Month)
&gt; +        builder.build(monthFormat());

nit: It&apos;s time to apply switch-case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764236</commentid>
    <comment_count>3</comment_count>
      <attachid>173613</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-12 03:51:43 -0800</bug_when>
    <thetext>Created attachment 173613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764298</commentid>
    <comment_count>4</comment_count>
      <attachid>173613</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 05:24:07 -0800</bug_when>
    <thetext>Comment on attachment 173613
Patch

Clearing flags on attachment: 173613

Committed r134216: &lt;http://trac.webkit.org/changeset/134216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764299</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 05:24:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173592</attachid>
            <date>2012-11-12 02:28:27 -0800</date>
            <delta_ts>2012-11-12 03:51:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101878-20121112192630.patch</filename>
            <type>text/plain</type>
            <size>6498</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU5M2YxMGRlMjgzODNj
MzczZGNmMTFkZTFkY2M4ODg1YzYwMGZjYS4uMzRkOWU1ZTZkYTA0MDE3ZWZhNTljODE4Mjg0MzFh
Y2M5NjgxMTRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTExLTEyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciB3ZWVrL21vbnRoIHRvIExvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxODc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHN1cHBvcnQgZm9yIHdlZWsv
bW9udGggdG8gTG9jYWxlOjpmb3JtYXREYXRlVGltZSgpIGluIHByZXBhcmF0aW9uIGZvciBkYXRh
bGlzdCBzdXBwb3J0IGZvciA8aW5wdXQgdHlwZT13ZWVrL21vbnRoPi4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIEFkZGVkIENocm9taXVtIHRlc3RzIExvY2FsZU1hY1Rlc3QuZm9ybWF0V2VlayBh
bmQgTG9jYWxlTWFjVGVzdC5mb3JtYXRNb250aC4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQv
UGxhdGZvcm1Mb2NhbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdCdWls
ZGVyOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZTo6Zm9ybWF0RGF0ZVRp
bWUpOiBTdXBwb3J0IHdlZWsgYW5kIG1vbnRoIHR5cGVzLgorCiAyMDEyLTExLTExICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFueSBET01XaW5kb3dQcm9wZXJ0
aWVzIHdvdWxkIGJlbmVmaXQgZnJvbSBiZWluZyBTY3JpcHRXcmFwcGFibGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggZmJiNWEyMmZmNjkwYmJmN2VjOThjYWE4NGVhNmQwZWY0NWFjNGJh
Ni4uOGYyNDc2MDc2NTQxYjc5M2NjMjlhNWEwN2ZhMmNkM2MzODUxODFhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0xMiAgS2Vpc2hpIEhhdHRv
cmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igd2Vlay9t
b250aCB0byBMb2NhbGU6OmZvcm1hdERhdGVUaW1lKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHA6CisgICAg
ICAgIChMb2NhbGVNYWNUZXN0Ojpmb3JtYXRXZWVrKTogVGFrZXMgSVNPIHN0cmluZyBhbmQgcmV0
dXJucyBsb2NhbGl6ZWQgc3RyaW5nLgorICAgICAgICAoTG9jYWxlTWFjVGVzdCk6CisgICAgICAg
IChMb2NhbGVNYWNUZXN0Ojpmb3JtYXRNb250aCk6IERpdHRvLgorICAgICAgICAoVEVTVF9GKToK
KwogMjAxMi0xMS0xMSAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgQ3VzdG9tRXZlbnQgdGhyb3VnaCBXZWJE
T01DdXN0b21FdmVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
UGxhdGZvcm1Mb2NhbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9y
bUxvY2FsZS5jcHAKaW5kZXggZWFmZGZkZGNkOTA5MzdkZjI4ZGIxMGM0MTNkMWFjYmVjODBiYTQ0
NS4uYjA5NjQyMmY1MTA1ZTM4NDEzMzI4Njc4NmZhY2YyODk3YmIwZjAwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgogCiAjaW5jbHVkZSAiRGF0ZVRpbWVG
b3JtYXQuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OSwxMyArMTAw
LDIzIEBAIHZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQKICAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0
ZS5mdWxsWWVhcigpLCA0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZU1vbnRoOgotICAgICAgICAvLyBBbHdheXMgdXNlIHBhZGRpbmcgd2lkdGgg
b2YgMiBzbyBpdCBtYXRjaGVzIERhdGVUaW1lRWRpdEVsZW1lbnQuCi0gICAgICAgIGFwcGVuZE51
bWJlcihtX2RhdGUubW9udGgoKSArIDEsIDIpOworICAgICAgICBpZiAobnVtYmVyT2ZQYXR0ZXJu
Q2hhcmFjdGVycyA9PSAzKQorICAgICAgICAgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2FsaXpl
ci5zaG9ydE1vbnRoTGFiZWxzKClbbV9kYXRlLm1vbnRoKCldKTsKKyAgICAgICAgZWxzZSBpZiAo
bnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyA9PSA0KQorICAgICAgICAgICAgbV9idWlsZGVyLmFw
cGVuZChtX2xvY2FsaXplci5tb250aExhYmVscygpW21fZGF0ZS5tb250aCgpXSk7CisgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgLy8gQWx3YXlzIHVzZSBwYWRkaW5nIHdpZHRoIG9mIDIgc28g
aXQgbWF0Y2hlcyBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAgICAgYXBwZW5kTnVtYmVy
KG1fZGF0ZS5tb250aCgpICsgMSwgMik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGg6CiAgICAgICAgIC8vIEFs
d2F5cyB1c2UgcGFkZGluZyB3aWR0aCBvZiAyIHNvIGl0IG1hdGNoZXMgRGF0ZVRpbWVFZGl0RWxl
bWVudC4KICAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS5tb250aERheSgpLCAyKTsKICAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZlllYXI6
CisgICAgICAgIC8vIEFsd2F5cyB1c2UgcGFkZGluZyB3aWR0aCBvZiAyIHNvIGl0IG1hdGNoZXMg
RGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS53ZWVrKCks
IDIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
UGVyaW9kOgogICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKG1fbG9jYWxpemVyLnRpbWVBTVBNTGFi
ZWxzKClbKG1fZGF0ZS5ob3VyKCkgPj0gMTIgPyAxIDogMCldKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMzQ1LDcgKzM1Niw3IEBAIFN0cmluZyBMb2NhbGU6OmRhdGVUaW1lRm9ybWF0V2l0aG91dFNl
Y29uZHMoKQogCiBTdHJpbmcgTG9jYWxlOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZSwgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewotICAgIGlmIChkYXRlLnR5cGUo
KSAhPSBEYXRlQ29tcG9uZW50czo6VGltZSAmJiBkYXRlLnR5cGUoKSAhPSBEYXRlQ29tcG9uZW50
czo6RGF0ZSkKKyAgICBpZiAoZGF0ZS50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OlRpbWUgJiYg
ZGF0ZS50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUgJiYgZGF0ZS50eXBlKCkgIT0gRGF0
ZUNvbXBvbmVudHM6OldlZWsgJiYgZGF0ZS50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6Ok1vbnRo
KQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgLy8gRklYTUU6IFN1cHBvcnRzIGFsbCB0
eXBlcy4KIApAQCAtMzU0LDYgKzM2NSwxMCBAQCBTdHJpbmcgTG9jYWxlOjpmb3JtYXREYXRlVGlt
ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSwgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogICAg
ICAgICBidWlsZGVyLmJ1aWxkKGZvcm1hdFR5cGUgPT0gRm9ybWF0VHlwZVNob3J0ID8gc2hvcnRU
aW1lRm9ybWF0KCkgOiB0aW1lRm9ybWF0KCkpOwogICAgIGVsc2UgaWYgKGRhdGUudHlwZSgpID09
IERhdGVDb21wb25lbnRzOjpEYXRlKQogICAgICAgICBidWlsZGVyLmJ1aWxkKGRhdGVGb3JtYXQo
KSk7CisgICAgZWxzZSBpZiAoZGF0ZS50eXBlKCkgPT0gRGF0ZUNvbXBvbmVudHM6OldlZWspCisg
ICAgICAgIGJ1aWxkZXIuYnVpbGQod2Vla0Zvcm1hdEluTERNTCgpKTsKKyAgICBlbHNlIGlmIChk
YXRlLnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6TW9udGgpCisgICAgICAgIGJ1aWxkZXIuYnVp
bGQobW9udGhGb3JtYXQoKSk7CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAK
aW5kZXggMGQyZmVkMTU0Y2I3YzBlNDI1MTc1NzNiNjM4ZjU5OGM2MzQwMjA4My4uY2IwMDEzOGI2
YTQyNTBiMzdkYWM3NTYwYjE3MmU0NmNjMTg2YzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwCkBAIC02OSw2ICs2OSwyNCBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHJldHVybiBkYXRlVG9EYXlzRnJvbTE5NzAoeWVhciwgbW9udGgsIGRheSkg
KiBtc1BlckRheTsKICAgICB9CiAKKyAgICBTdHJpbmcgZm9ybWF0V2Vlayhjb25zdCBTdHJpbmcm
IGxvY2FsZVN0cmluZywgY29uc3QgU3RyaW5nJiBpc29TdHJpbmcpCisgICAgeworICAgICAgICBP
d25QdHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcp
OworICAgICAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAgICAgICB1bnNpZ25lZCBlbmQ7Cisg
ICAgICAgIGRhdGUucGFyc2VXZWVrKGlzb1N0cmluZy5jaGFyYWN0ZXJzKCksIGlzb1N0cmluZy5s
ZW5ndGgoKSwgMCwgZW5kKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUo
ZGF0ZSk7CisgICAgfQorCisgICAgU3RyaW5nIGZvcm1hdE1vbnRoKGNvbnN0IFN0cmluZyYgbG9j
YWxlU3RyaW5nLCBjb25zdCBTdHJpbmcmIGlzb1N0cmluZykKKyAgICB7CisgICAgICAgIE93blB0
cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7Cisg
ICAgICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgICAgIHVuc2lnbmVkIGVuZDsKKyAgICAg
ICAgZGF0ZS5wYXJzZU1vbnRoKGlzb1N0cmluZy5jaGFyYWN0ZXJzKCksIGlzb1N0cmluZy5sZW5n
dGgoKSwgMCwgZW5kKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUoZGF0
ZSk7CisgICAgfQorCiAgICAgU3RyaW5nIGZvcm1hdERhdGUoY29uc3QgU3RyaW5nJiBsb2NhbGVT
dHJpbmcsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpCiAgICAgewogICAgICAgICBPd25Q
dHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOwpA
QCAtMTU4LDYgKzE3NiwxOSBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIH07CiAKK1RFU1RfRihMb2Nh
bGVNYWNUZXN0LCBmb3JtYXRXZWVrKQoreworICAgIEVYUEVDVF9TVFJFUSgiV2VlayAwNCwgMjAw
NSIsIGZvcm1hdFdlZWsoImVuX1VTIiwgIjIwMDUtVzA0IikudXRmOCgpLmRhdGEoKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJXZWVrIDUyLCAyMDA1IiwgZm9ybWF0V2VlaygiZW5fVVMiLCAiMjAwNS1X
NTIiKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZU1hY1Rlc3QsIGZvcm1hdE1v
bnRoKQoreworICAgIEVYUEVDVF9TVFJFUSgiQXByaWwgMjAwNSIsIGZvcm1hdE1vbnRoKCJlbl9V
UyIsICIyMDA1LTA0IikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJhdnJpbCAy
MDA1IiwgZm9ybWF0TW9udGgoImZyX0ZSIiwgIjIwMDUtMDQiKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoIjIwMDVceEU1XHhCOVx4QjQiICIwNFx4RTZceDlDXHg4OCIsIGZvcm1h
dE1vbnRoKCJqYV9KUCIsICIyMDA1LTA0IikudXRmOCgpLmRhdGEoKSk7Cit9CisKIFRFU1RfRihM
b2NhbGVNYWNUZXN0LCBmb3JtYXREYXRlKQogewogICAgIEVYUEVDVF9TVFJFUSgiMDQvMjcvMjAw
NSIsIGZvcm1hdERhdGUoImVuX1VTIiwgMjAwNSwgQXByaWwsIDI3KS51dGY4KCkuZGF0YSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173613</attachid>
            <date>2012-11-12 03:51:43 -0800</date>
            <delta_ts>2012-11-12 05:24:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101878-20121112204945.patch</filename>
            <type>text/plain</type>
            <size>7356</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU5M2YxMGRlMjgzODNj
MzczZGNmMTFkZTFkY2M4ODg1YzYwMGZjYS4uZWVlMDE2NWMyMzUxY2NiZGFiNGUxZDdlYjJmNjQ0
OTk1ZDkzZTM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTExLTEyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciB3ZWVrL21vbnRoIHRvIExvY2FsZTo6Zm9ybWF0RGF0ZVRpbWUoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxODc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHN1cHBvcnQgZm9yIHdlZWsv
bW9udGggdG8gTG9jYWxlOjpmb3JtYXREYXRlVGltZSgpIGluIHByZXBhcmF0aW9uIGZvciBkYXRh
bGlzdCBzdXBwb3J0IGZvciA8aW5wdXQgdHlwZT13ZWVrL21vbnRoPi4KKworICAgICAgICBBZGRl
ZCBDaHJvbWl1bSB0ZXN0cyBMb2NhbGVNYWNUZXN0LmZvcm1hdFdlZWsgYW5kIExvY2FsZU1hY1Rl
c3QuZm9ybWF0TW9udGguCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRlcjo6dmlzaXRGaWVs
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGU6OmZvcm1hdERhdGVUaW1lKTogU3VwcG9ydCB3
ZWVrIGFuZCBtb250aCB0eXBlcy4KKwogMjAxMi0xMS0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIE1hbnkgRE9NV2luZG93UHJvcGVydGllcyB3b3VsZCBiZW5l
Zml0IGZyb20gYmVpbmcgU2NyaXB0V3JhcHBhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGZiYjVhMjJmZjY5MGJiZjdlYzk4Y2FhODRlYTZkMGVmNDVhYzRiYTYuLjhmMjQ3NjA3NjU0
MWI3OTNjYzI5YTVhMDdmYTJjZDNjMzg1MTgxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMTIgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHdlZWsvbW9udGggdG8gTG9jYWxl
Ojpmb3JtYXREYXRlVGltZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDE4NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHRlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwOgorICAgICAgICAoTG9jYWxlTWFj
VGVzdDo6Zm9ybWF0V2Vlayk6IFRha2VzIElTTyBzdHJpbmcgYW5kIHJldHVybnMgbG9jYWxpemVk
IHN0cmluZy4KKyAgICAgICAgKExvY2FsZU1hY1Rlc3QpOgorICAgICAgICAoTG9jYWxlTWFjVGVz
dDo6Zm9ybWF0TW9udGgpOiBEaXR0by4KKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTItMTEtMTEg
IFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gRXhwb3NlIEN1c3RvbUV2ZW50IHRocm91Z2ggV2ViRE9NQ3VzdG9tRXZlbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCmlu
ZGV4IGVhZmRmZGRjZDkwOTM3ZGYyOGRiMTBjNDEzZDFhY2JlYzgwYmE0NDUuLmU1Y2Y5M2IwMzhh
ZmM1M2RjMjY3ZDBiNjk4YzIyM2Q3MTFlNmU5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiUGxhdGZvcm1Mb2NhbGUuaCIKIAogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCisjaW5j
bHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTgsMTQgKzk5LDM0IEBAIHZvaWQgRGF0
ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUg
ZmllbGRUeXBlLCBpbnQKICAgICAgICAgLy8gQWx3YXlzIHVzZSBwYWRkaW5nIHdpZHRoIG9mIDQg
c28gaXQgbWF0Y2hlcyBEYXRlVGltZUVkaXRFbGVtZW50LgogICAgICAgICBhcHBlbmROdW1iZXIo
bV9kYXRlLmZ1bGxZZWFyKCksIDQpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlTW9udGg6Ci0gICAgICAgIC8vIEFsd2F5cyB1c2UgcGFkZGluZyB3
aWR0aCBvZiAyIHNvIGl0IG1hdGNoZXMgRGF0ZVRpbWVFZGl0RWxlbWVudC4KLSAgICAgICAgYXBw
ZW5kTnVtYmVyKG1fZGF0ZS5tb250aCgpICsgMSwgMik7CisgICAgY2FzZSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTW9udGg6ICAgIAorICAgICAgICBpZiAobnVtYmVyT2ZQYXR0ZXJuQ2hhcmFj
dGVycyA9PSAzKQorICAgICAgICAgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2FsaXplci5zaG9y
dE1vbnRoTGFiZWxzKClbbV9kYXRlLm1vbnRoKCldKTsKKyAgICAgICAgZWxzZSBpZiAobnVtYmVy
T2ZQYXR0ZXJuQ2hhcmFjdGVycyA9PSA0KQorICAgICAgICAgICAgbV9idWlsZGVyLmFwcGVuZCht
X2xvY2FsaXplci5tb250aExhYmVscygpW21fZGF0ZS5tb250aCgpXSk7CisgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgLy8gQWx3YXlzIHVzZSBwYWRkaW5nIHdpZHRoIG9mIDIgc28gaXQgbWF0
Y2hlcyBEYXRlVGltZUVkaXRFbGVtZW50LgorICAgICAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0
ZS5tb250aCgpICsgMSwgMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZToKKyAgICAgICAgaWYgKG51
bWJlck9mUGF0dGVybkNoYXJhY3RlcnMgPT0gMykKKyAgICAgICAgICAgIG1fYnVpbGRlci5hcHBl
bmQobV9sb2NhbGl6ZXIuc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMoKVttX2RhdGUubW9udGgo
KV0pOworICAgICAgICBlbHNlIGlmIChudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzID09IDQpCisg
ICAgICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKG1fbG9jYWxpemVyLnN0YW5kQWxvbmVNb250aExh
YmVscygpW21fZGF0ZS5tb250aCgpXSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8g
QWx3YXlzIHVzZSBwYWRkaW5nIHdpZHRoIG9mIDIgc28gaXQgbWF0Y2hlcyBEYXRlVGltZUVkaXRF
bGVtZW50LgorICAgICAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS5tb250aCgpICsgMSwgMik7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZURheU9mTW9udGg6CiAgICAgICAgIC8vIEFsd2F5cyB1c2UgcGFkZGluZyB3aWR0aCBv
ZiAyIHNvIGl0IG1hdGNoZXMgRGF0ZVRpbWVFZGl0RWxlbWVudC4KICAgICAgICAgYXBwZW5kTnVt
YmVyKG1fZGF0ZS5tb250aERheSgpLCAyKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZlllYXI6CisgICAgICAgIC8vIEFsd2F5cyB1c2Ug
cGFkZGluZyB3aWR0aCBvZiAyIHNvIGl0IG1hdGNoZXMgRGF0ZVRpbWVFZGl0RWxlbWVudC4KKyAg
ICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS53ZWVrKCksIDIpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kOgogICAgICAgICBtX2J1aWxk
ZXIuYXBwZW5kKG1fbG9jYWxpemVyLnRpbWVBTVBNTGFiZWxzKClbKG1fZGF0ZS5ob3VyKCkgPj0g
MTIgPyAxIDogMCldKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ1LDE1ICszNjYsMzAgQEAgU3Ry
aW5nIExvY2FsZTo6ZGF0ZVRpbWVGb3JtYXRXaXRob3V0U2Vjb25kcygpCiAKIFN0cmluZyBMb2Nh
bGU6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlLCBGb3JtYXRUeXBl
IGZvcm1hdFR5cGUpCiB7Ci0gICAgaWYgKGRhdGUudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpU
aW1lICYmIGRhdGUudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlKQorICAgIGlmIChkYXRl
LnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6RGF0ZVRpbWUgfHwgZGF0ZS50eXBlKCkgPT0gRGF0
ZUNvbXBvbmVudHM6OkRhdGVUaW1lTG9jYWwgfHwgZGF0ZS50eXBlKCkgPT0gRGF0ZUNvbXBvbmVu
dHM6OkludmFsaWQpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAvLyBGSVhNRTogU3Vw
cG9ydHMgYWxsIHR5cGVzLgogCiAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIGJ1aWxkZXIoKnRo
aXMsIGRhdGUpOwotICAgIGlmIChkYXRlLnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6VGltZSkK
KyAgICBzd2l0Y2ggKGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBEYXRlQ29tcG9uZW50czo6VGlt
ZToKICAgICAgICAgYnVpbGRlci5idWlsZChmb3JtYXRUeXBlID09IEZvcm1hdFR5cGVTaG9ydCA/
IHNob3J0VGltZUZvcm1hdCgpIDogdGltZUZvcm1hdCgpKTsKLSAgICBlbHNlIGlmIChkYXRlLnR5
cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6RGF0ZSkKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
YXRlQ29tcG9uZW50czo6RGF0ZToKICAgICAgICAgYnVpbGRlci5idWlsZChkYXRlRm9ybWF0KCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVDb21wb25lbnRzOjpXZWVrOgorICAgICAg
ICBidWlsZGVyLmJ1aWxkKHdlZWtGb3JtYXRJbkxETUwoKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRGF0ZUNvbXBvbmVudHM6Ok1vbnRoOgorICAgICAgICBidWlsZGVyLmJ1aWxkKG1vbnRo
Rm9ybWF0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVDb21wb25lbnRzOjpJbnZh
bGlkOgorICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGVUaW1lOgorICAgIGNhc2UgRGF0ZUNv
bXBvbmVudHM6OkRhdGVUaW1lTG9jYWw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBicmVhazsKKyAgICB9CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVN
YWNUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5j
cHAKaW5kZXggMGQyZmVkMTU0Y2I3YzBlNDI1MTc1NzNiNjM4ZjU5OGM2MzQwMjA4My4uY2IwMDEz
OGI2YTQyNTBiMzdkYWM3NTYwYjE3MmU0NmNjMTg2YzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwCkBAIC02OSw2ICs2OSwyNCBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBkYXRlVG9EYXlzRnJvbTE5NzAoeWVhciwgbW9udGgsIGRh
eSkgKiBtc1BlckRheTsKICAgICB9CiAKKyAgICBTdHJpbmcgZm9ybWF0V2Vlayhjb25zdCBTdHJp
bmcmIGxvY2FsZVN0cmluZywgY29uc3QgU3RyaW5nJiBpc29TdHJpbmcpCisgICAgeworICAgICAg
ICBPd25QdHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJp
bmcpOworICAgICAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAgICAgICB1bnNpZ25lZCBlbmQ7
CisgICAgICAgIGRhdGUucGFyc2VXZWVrKGlzb1N0cmluZy5jaGFyYWN0ZXJzKCksIGlzb1N0cmlu
Zy5sZW5ndGgoKSwgMCwgZW5kKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRp
bWUoZGF0ZSk7CisgICAgfQorCisgICAgU3RyaW5nIGZvcm1hdE1vbnRoKGNvbnN0IFN0cmluZyYg
bG9jYWxlU3RyaW5nLCBjb25zdCBTdHJpbmcmIGlzb1N0cmluZykKKyAgICB7CisgICAgICAgIE93
blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7
CisgICAgICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgICAgIHVuc2lnbmVkIGVuZDsKKyAg
ICAgICAgZGF0ZS5wYXJzZU1vbnRoKGlzb1N0cmluZy5jaGFyYWN0ZXJzKCksIGlzb1N0cmluZy5s
ZW5ndGgoKSwgMCwgZW5kKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUo
ZGF0ZSk7CisgICAgfQorCiAgICAgU3RyaW5nIGZvcm1hdERhdGUoY29uc3QgU3RyaW5nJiBsb2Nh
bGVTdHJpbmcsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpCiAgICAgewogICAgICAgICBP
d25QdHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcp
OwpAQCAtMTU4LDYgKzE3NiwxOSBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIH07CiAKK1RFU1RfRihM
b2NhbGVNYWNUZXN0LCBmb3JtYXRXZWVrKQoreworICAgIEVYUEVDVF9TVFJFUSgiV2VlayAwNCwg
MjAwNSIsIGZvcm1hdFdlZWsoImVuX1VTIiwgIjIwMDUtVzA0IikudXRmOCgpLmRhdGEoKSk7Cisg
ICAgRVhQRUNUX1NUUkVRKCJXZWVrIDUyLCAyMDA1IiwgZm9ybWF0V2VlaygiZW5fVVMiLCAiMjAw
NS1XNTIiKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZU1hY1Rlc3QsIGZvcm1h
dE1vbnRoKQoreworICAgIEVYUEVDVF9TVFJFUSgiQXByaWwgMjAwNSIsIGZvcm1hdE1vbnRoKCJl
bl9VUyIsICIyMDA1LTA0IikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJhdnJp
bCAyMDA1IiwgZm9ybWF0TW9udGgoImZyX0ZSIiwgIjIwMDUtMDQiKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIjIwMDVceEU1XHhCOVx4QjQiICIwNFx4RTZceDlDXHg4OCIsIGZv
cm1hdE1vbnRoKCJqYV9KUCIsICIyMDA1LTA0IikudXRmOCgpLmRhdGEoKSk7Cit9CisKIFRFU1Rf
RihMb2NhbGVNYWNUZXN0LCBmb3JtYXREYXRlKQogewogICAgIEVYUEVDVF9TVFJFUSgiMDQvMjcv
MjAwNSIsIGZvcm1hdERhdGUoImVuX1VTIiwgMjAwNSwgQXByaWwsIDI3KS51dGY4KCkuZGF0YSgp
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>