<?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>41269</bug_id>
          
          <creation_ts>2010-06-27 20:07:58 -0700</creation_ts>
          <short_desc>add python keyring support to webkit-patch</short_desc>
          <delta_ts>2010-09-28 15:56:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>243540</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-06-27 20:07:58 -0700</bug_when>
    <thetext>add python keyring support to webkit-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243545</commentid>
    <comment_count>1</comment_count>
      <attachid>59871</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-06-27 20:48:45 -0700</bug_when>
    <thetext>Created attachment 59871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243546</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-06-27 20:51:20 -0700</bug_when>
    <thetext>This patch isn&apos;t that awesome.  It requires that the user have keyring installed and that they have set bugzilla.username in their git config.  Otherwise, it does nothing.  It also doesn&apos;t provide a way to set a password and because of different URL formats, I&apos;m not sure if this will work out of the box if you already have gnome-keyring or kwallet with your password.  That is, gnome-keyring seems to use the full URL, and self.host is only &quot;bugs.webkit.org&quot;.  Maybe I should try to normalize the host?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243547</commentid>
    <comment_count>3</comment_count>
      <attachid>59872</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-06-27 21:10:26 -0700</bug_when>
    <thetext>Created attachment 59872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243549</commentid>
    <comment_count>4</comment_count>
      <attachid>59872</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-06-27 21:11:41 -0700</bug_when>
    <thetext>Comment on attachment 59872
Patch

Here&apos;s the same patch with a prompt to store the password.  I&apos;m not sure I like it because if you don&apos;t want to use keyring, you have to say no every time.  Maybe that&apos;s not a big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243554</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-27 21:25:52 -0700</bug_when>
    <thetext>See also bug 32728 and bug 36855.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243555</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-27 21:26:40 -0700</bug_when>
    <thetext>Should we just have autoinstall install the keyring module?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243557</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-06-27 21:34:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Should we just have autoinstall install the keyring module?

I can&apos;t seem to get the gnome-keyring integration to work on Hardy which causes it to silently fallback to an encrypted text file.  I&apos;m not sure you want that to happen automatically.

Also, how does autoinstall work with binary python modules?  Will it checkout the source and build it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243561</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-27 22:26:08 -0700</bug_when>
    <thetext>Love it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243778</commentid>
    <comment_count>9</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2010-06-28 11:20:40 -0700</bug_when>
    <thetext>BTW, the weird syntax in the pw prompt that it seems you copied from my other patch was to match the other prompts in that program -- may wanna consult the surrounding code for how to properly do a y/n prompt.

Realistically, it&apos;s fine to ask every time, especially if the default is N.  There&apos;s no good reason to not use your keyring and it&apos;s not too hard to hit enter a second time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243781</commentid>
    <comment_count>10</comment_count>
      <attachid>59872</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-28 11:23:53 -0700</bug_when>
    <thetext>Comment on attachment 59872
Patch

Good point Evan.

Please use User.confirm.  Feel free to extend it to support reversing the default or to add another method that does the reverse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286560</commentid>
    <comment_count>11</comment_count>
      <attachid>69114</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-28 15:00:46 -0700</bug_when>
    <thetext>Created attachment 69114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286568</commentid>
    <comment_count>12</comment_count>
      <attachid>69114</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 15:14:59 -0700</bug_when>
    <thetext>Comment on attachment 69114
Patch

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

I think this is great, but there are some nits above.  I&apos;m happy to look again.  It would be OK to land as is, but probably best to go one more round.

&gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:45
&gt; +    import keyring

Should we just autoinstall this instead?

&gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:57
&gt; +        self.keyring = keyring

Seems odd to hang this off of self, especially since it&apos;s not passed in via the constructor.

Also, despite our earlier lack of understanding of python design.  Adam and I know realize that we should be naming private members to _foo, so this should be _keyring and the other members will eventually get fixed.

&gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:126
&gt;          if not username or not password:
&gt;              (username, password) = self._credentials_from_keychain(username)

Would we need this apple-specific code if the keyring module was autoinstalled?  If you don&apos;t feel comfortable removing it, we could add a FIXME about removing it.

&gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:139
&gt; +                    &quot;Store password in system keyring?&quot;, User.DEFAULT_NO)

I wonder if keyring exposes some platform-specific naming here.  Since on OS X its called the keychain, and I expect windows has a specific name, etc.

&gt; WebKitTools/Scripts/webkitpy/common/net/credentials_unittest.py:124
&gt; +                self.keyring = MockKeyring()

Seems it would be better to pass it as an optional parameter to the constructor, which default to None and then set it in __init__ as self._keyring = keyring or keyring_module?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286583</commentid>
    <comment_count>13</comment_count>
      <attachid>69118</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-28 15:34:06 -0700</bug_when>
    <thetext>Created attachment 69118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286586</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-28 15:37:59 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:45
&gt; &gt; +    import keyring
&gt; 
&gt; Should we just autoinstall this instead?

I looked into how autoinstall is implemented and it won&apos;t work for python modules that need to be compiled like this one.  Also, I mentioned above that the default settings on oldering Linuxes is crummy, so I don&apos;t think we should autoinstall even if worked.

&gt; &gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:57
&gt; &gt; +        self.keyring = keyring
&gt; 
&gt; Seems odd to hang this off of self, especially since it&apos;s not passed in via the constructor.
&gt; 
&gt; Also, despite our earlier lack of understanding of python design.  Adam and I know realize that we should be naming private members to _foo, so this should be _keyring and the other members will eventually get fixed.

I switched to _keyring and made it a param (which is overridden during testing).  I can switch the other variables over in a separate change since mixing styles seems bad.

&gt; &gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:139
&gt; &gt; +                    &quot;Store password in system keyring?&quot;, User.DEFAULT_NO)
&gt; 
&gt; I wonder if keyring exposes some platform-specific naming here.  Since on OS X its called the keychain, and I expect windows has a specific name, etc.

Doesn&apos;t look like it.  This module is pretty simple and doesn&apos;t expose many hooks.  You could do something like printing the class name of the backend (&apos;GnomeKeyring&apos;, &apos;KDEKWallet&apos;, &apos;KeyringBackend&apos;, &apos;OSXKeychain&apos;, &apos;UncryptedFileKeyring&apos;, &apos;Win32CryptoKeyring&apos;) but that seems hacky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286587</commentid>
    <comment_count>15</comment_count>
      <attachid>69118</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 15:38:43 -0700</bug_when>
    <thetext>Comment on attachment 69118
Patch

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

OK.  We should consider autoinstalling keyring in a later patch.

Thanks again!

&gt; WebKitTools/Scripts/webkitpy/common/net/credentials.py:53
&gt; +                 keyring=keyring):

I&apos;m told that foo=None followed by a self._foo = foo or default_foo  is better here, since keyring will be a singleton and thus shared between multiple instances of the object.

In this case, I think it&apos;s OK.  But for example foo=[] would be bad. :)  You wouldn&apos;t actually end up with a new [] for each object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286596</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-28 15:56:09 -0700</bug_when>
    <thetext>Committed r68599: &lt;http://trac.webkit.org/changeset/68599&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59871</attachid>
            <date>2010-06-27 20:48:45 -0700</date>
            <delta_ts>2010-06-27 21:10:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41269-20100627204844.patch</filename>
            <type>text/plain</type>
            <size>1802</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4NTc1OTVjMTY0ZWIwYjFhMzBkMWVlYjZjMzdiNTM2MWRmOWUxNDIwLi5iZGY4ZDJj
ZTMzNmQ1MDRkODg0OTNkMGY4N2IyMzgxZDZhYjRkYzk0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDYtMjcgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgcHl0aG9uIGtleXJpbmcg
c3VwcG9ydCB0byB3ZWJraXQtcGF0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxMjY5CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvY3JlZGVudGlhbHMucHk6IEFkZCB0aGUgYWJpbGl0eSB0byByZWFkIHBhc3N3b3JkcyB1
c2luZworICAgICAgICAgICAgdGhlIHB5dGhvbiBrZXlyaW5nIG1vZHVsZQorCiAyMDEwLTA2LTI1
ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFscy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFscy5weQppbmRleCAxZDVmODNkMjdlNWU0YjZkMWVm
Yjg2YmU3OTRkZDFkYzM0Y2MzN2RlLi4wNTk2MDE4NDlmOGExNmRkY2U1NDM0Mzg1ZTQyYzY0MDBm
ZmMwNTU0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvY3JlZGVudGlhbHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2NyZWRlbnRpYWxzLnB5CkBAIC0zOSw2ICszOSwxMyBAQCBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUsIFNjcmlwdEVycm9yCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNlciBpbXBvcnQgVXNlcgogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9nCiAKK3RyeToKKyAgICAj
IFVzZSBrZXlyaW5nLCBhIGNyb3NzIHBsYXRmb3JtIGtleXJpbmcgaW50ZXJmYWNlLCBhcyBhIGZh
bGxiYWNrOgorICAgICMgaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2tleXJpbmcKKyAgICBp
bXBvcnQga2V5cmluZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGtleXJpbmcgPSBOb25lCisK
IAogY2xhc3MgQ3JlZGVudGlhbHMob2JqZWN0KToKIApAQCAtMTE3LDYgKzEyNCw5IEBAIGNsYXNz
IENyZWRlbnRpYWxzKG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCB1c2VybmFtZSBvciBub3QgcGFz
c3dvcmQ6CiAgICAgICAgICAgICAodXNlcm5hbWUsIHBhc3N3b3JkKSA9IHNlbGYuX2NyZWRlbnRp
YWxzX2Zyb21fa2V5Y2hhaW4odXNlcm5hbWUpCiAKKyAgICAgICAgaWYgdXNlcm5hbWUgYW5kIG5v
dCBwYXNzd29yZCBhbmQga2V5cmluZzoKKyAgICAgICAgICAgIHBhc3N3b3JkID0ga2V5cmluZy5n
ZXRfcGFzc3dvcmQoc2VsZi5ob3N0LCB1c2VybmFtZSkKKwogICAgICAgICBpZiBub3QgdXNlcm5h
bWU6CiAgICAgICAgICAgICB1c2VybmFtZSA9IFVzZXIucHJvbXB0KCIlcyBsb2dpbjogIiAlIHNl
bGYuaG9zdCkKICAgICAgICAgaWYgbm90IHBhc3N3b3JkOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59872</attachid>
            <date>2010-06-27 21:10:26 -0700</date>
            <delta_ts>2010-09-28 15:00:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41269-20100627211025.patch</filename>
            <type>text/plain</type>
            <size>2227</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4NTc1OTVjMTY0ZWIwYjFhMzBkMWVlYjZjMzdiNTM2MWRmOWUxNDIwLi5iZGY4ZDJj
ZTMzNmQ1MDRkODg0OTNkMGY4N2IyMzgxZDZhYjRkYzk0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDYtMjcgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgcHl0aG9uIGtleXJpbmcg
c3VwcG9ydCB0byB3ZWJraXQtcGF0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxMjY5CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvY3JlZGVudGlhbHMucHk6IEFkZCB0aGUgYWJpbGl0eSB0byByZWFkIHBhc3N3b3JkcyB1
c2luZworICAgICAgICAgICAgdGhlIHB5dGhvbiBrZXlyaW5nIG1vZHVsZQorCiAyMDEwLTA2LTI1
ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFscy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFscy5weQppbmRleCAxZDVmODNkMjdlNWU0YjZkMWVm
Yjg2YmU3OTRkZDFkYzM0Y2MzN2RlLi5lMzI4YjIwY2Q4MWE2N2VmMDM5YTkwZmI1MTJkOWE4Mzg3
Njg3MjczIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvY3JlZGVudGlhbHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2NyZWRlbnRpYWxzLnB5CkBAIC0zOSw2ICszOSwxMyBAQCBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUsIFNjcmlwdEVycm9yCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNlciBpbXBvcnQgVXNlcgogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9nCiAKK3RyeToKKyAgICAj
IFVzZSBrZXlyaW5nLCBhIGNyb3NzIHBsYXRmb3JtIGtleXJpbmcgaW50ZXJmYWNlLCBhcyBhIGZh
bGxiYWNrOgorICAgICMgaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2tleXJpbmcKKyAgICBp
bXBvcnQga2V5cmluZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGtleXJpbmcgPSBOb25lCisK
IAogY2xhc3MgQ3JlZGVudGlhbHMob2JqZWN0KToKIApAQCAtMTE3LDEwICsxMjQsMTggQEAgY2xh
c3MgQ3JlZGVudGlhbHMob2JqZWN0KToKICAgICAgICAgaWYgbm90IHVzZXJuYW1lIG9yIG5vdCBw
YXNzd29yZDoKICAgICAgICAgICAgICh1c2VybmFtZSwgcGFzc3dvcmQpID0gc2VsZi5fY3JlZGVu
dGlhbHNfZnJvbV9rZXljaGFpbih1c2VybmFtZSkKIAorICAgICAgICBpZiB1c2VybmFtZSBhbmQg
bm90IHBhc3N3b3JkIGFuZCBrZXlyaW5nOgorICAgICAgICAgICAgcGFzc3dvcmQgPSBrZXlyaW5n
LmdldF9wYXNzd29yZChzZWxmLmhvc3QsIHVzZXJuYW1lKQorCiAgICAgICAgIGlmIG5vdCB1c2Vy
bmFtZToKICAgICAgICAgICAgIHVzZXJuYW1lID0gVXNlci5wcm9tcHQoIiVzIGxvZ2luOiAiICUg
c2VsZi5ob3N0KQogICAgICAgICBpZiBub3QgcGFzc3dvcmQ6CiAgICAgICAgICAgICBwYXNzd29y
ZCA9IGdldHBhc3MuZ2V0cGFzcygiJXMgcGFzc3dvcmQgZm9yICVzOiAiICUgKHNlbGYuaG9zdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdXNlcm5hbWUpKQogCisgICAgICAgICAgICBpZiBrZXlyaW5nOgorICAgICAgICAg
ICAgICAgIGFuc3dlciA9IHJhd19pbnB1dCgiU3RvcmUgcGFzc3dvcmQgaW4gc3lzdGVtIGtleXJp
bmc/KHkvTikgIikuc3RyaXAoKQorICAgICAgICAgICAgICAgIGlmIGFuc3dlci5sb3dlcigpID09
ICJ5IjoKKyAgICAgICAgICAgICAgICAgICAga2V5cmluZy5zZXRfcGFzc3dvcmQoc2VsZi5ob3N0
LCB1c2VybmFtZSwgcGFzc3dvcmQpCisKICAgICAgICAgcmV0dXJuIFt1c2VybmFtZSwgcGFzc3dv
cmRdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69114</attachid>
            <date>2010-09-28 15:00:46 -0700</date>
            <delta_ts>2010-09-28 15:34:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41269-20100928150051.patch</filename>
            <type>text/plain</type>
            <size>7848</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5ODVjMjZmY2UxMWU2MjcxYzEwNjExZjY0YzZhZGIyNWZjZDA3NDNjLi40ZWRlNmUy
NjllNTU3MWE3MTllNTY2ZDEyNTY2MTliMDBmOGZkMmFkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDktMjggIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgcHl0aG9uIGtleXJpbmcg
c3VwcG9ydCB0byB3ZWJraXQtcGF0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxMjY5CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvY3JlZGVudGlhbHMucHk6IEFkZCB0aGUgYWJpbGl0eSB0byByZWFkIHBhc3N3b3JkcyB1
c2luZworICAgICAgICAgICAgdGhlIHB5dGhvbiBrZXlyaW5nIG1vZHVsZQorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weTogQWxsb3cgY29uZmly
bSgpIHRvIGRlZmF1bHQgdG8gbm8gYW5kIGFkZCB0ZXN0aW5nIHBhcmFtcy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlcl91bml0dGVzdC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHk6CisKIDIwMTAtMDktMjggIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBmb3IgdGhlIGFkZGl0
aW9uIG9mIFdLUGFnZVVJQ2xpZW50OjpkaWROb3RIYW5kbGVLZXlFdmVudApkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2NyZWRlbnRpYWxzLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2NyZWRlbnRpYWxzLnB5Cmlu
ZGV4IDFkNWY4M2QyN2U1ZTRiNmQxZWZiODZiZTc5NGRkMWRjMzRjYzM3ZGUuLjYxOTViYmY1NmM1
MzdjZjUxODYwMWRmNDA0N2YwMjBkZmU3ODZjN2EgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFscy5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvY3JlZGVudGlhbHMucHkKQEAgLTM5LDYgKzM5
LDEzIEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1
dGl2ZSwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyIGltcG9y
dCBVc2VyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGlt
cG9ydCBsb2cKIAordHJ5OgorICAgICMgVXNlIGtleXJpbmcsIGEgY3Jvc3MgcGxhdGZvcm0ga2V5
cmluZyBpbnRlcmZhY2UsIGFzIGEgZmFsbGJhY2s6CisgICAgIyBodHRwOi8vcHlwaS5weXRob24u
b3JnL3B5cGkva2V5cmluZworICAgIGltcG9ydCBrZXlyaW5nCitleGNlcHQgSW1wb3J0RXJyb3I6
CisgICAga2V5cmluZyA9IE5vbmUKKwogCiBjbGFzcyBDcmVkZW50aWFscyhvYmplY3QpOgogCkBA
IC00Nyw2ICs1NCw3IEBAIGNsYXNzIENyZWRlbnRpYWxzKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
Z2l0X3ByZWZpeCA9ICIlcy4iICUgZ2l0X3ByZWZpeCBpZiBnaXRfcHJlZml4IGVsc2UgIiIKICAg
ICAgICAgc2VsZi5leGVjdXRpdmUgPSBleGVjdXRpdmUgb3IgRXhlY3V0aXZlKCkKICAgICAgICAg
c2VsZi5jd2QgPSBjd2QKKyAgICAgICAgc2VsZi5rZXlyaW5nID0ga2V5cmluZwogCiAgICAgZGVm
IF9jcmVkZW50aWFsc19mcm9tX2dpdChzZWxmKToKICAgICAgICAgcmV0dXJuIFtHaXQucmVhZF9n
aXRfY29uZmlnKHNlbGYuZ2l0X3ByZWZpeCArICJ1c2VybmFtZSIpLApAQCAtMTE3LDEwICsxMjUs
MTkgQEAgY2xhc3MgQ3JlZGVudGlhbHMob2JqZWN0KToKICAgICAgICAgaWYgbm90IHVzZXJuYW1l
IG9yIG5vdCBwYXNzd29yZDoKICAgICAgICAgICAgICh1c2VybmFtZSwgcGFzc3dvcmQpID0gc2Vs
Zi5fY3JlZGVudGlhbHNfZnJvbV9rZXljaGFpbih1c2VybmFtZSkKIAorICAgICAgICBpZiB1c2Vy
bmFtZSBhbmQgbm90IHBhc3N3b3JkIGFuZCBzZWxmLmtleXJpbmc6CisgICAgICAgICAgICBwYXNz
d29yZCA9IHNlbGYua2V5cmluZy5nZXRfcGFzc3dvcmQoc2VsZi5ob3N0LCB1c2VybmFtZSkKKwog
ICAgICAgICBpZiBub3QgdXNlcm5hbWU6CiAgICAgICAgICAgICB1c2VybmFtZSA9IFVzZXIucHJv
bXB0KCIlcyBsb2dpbjogIiAlIHNlbGYuaG9zdCkKICAgICAgICAgaWYgbm90IHBhc3N3b3JkOgog
ICAgICAgICAgICAgcGFzc3dvcmQgPSBnZXRwYXNzLmdldHBhc3MoIiVzIHBhc3N3b3JkIGZvciAl
czogIiAlIChzZWxmLmhvc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lKSkKIAorICAgICAgICAgICAgaWYg
c2VsZi5rZXlyaW5nOgorICAgICAgICAgICAgICAgIHN0b3JlX3Bhc3N3b3JkID0gVXNlcigpLmNv
bmZpcm0oCisgICAgICAgICAgICAgICAgICAgICJTdG9yZSBwYXNzd29yZCBpbiBzeXN0ZW0ga2V5
cmluZz8iLCBVc2VyLkRFRkFVTFRfTk8pCisgICAgICAgICAgICAgICAgaWYgc3RvcmVfcGFzc3dv
cmQ6CisgICAgICAgICAgICAgICAgICAgIHNlbGYua2V5cmluZy5zZXRfcGFzc3dvcmQoc2VsZi5o
b3N0LCB1c2VybmFtZSwgcGFzc3dvcmQpCisKICAgICAgICAgcmV0dXJuIFt1c2VybmFtZSwgcGFz
c3dvcmRdCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkKaW5kZXggOWE0MmJkZGYyMGNjYjUy
MTQ5Yjk0ZGI5ZmQzNzJkNDE5NDNhNTUzZi4uM2RlMjc5N2NlM2ZhMzdjMTAxYWZiYTI4YTdmMGZl
Y2U4ZGZiMzA4NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weQpAQCAtMTEzLDUgKzEx
MywyOCBAQCBwYXNzd29yZDogIlNFQ1JFVFNBVUNFIgogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNyZWRlbnRpYWxzLnJlYWRfY3JlZGVudGlhbHMoKSwgWyJ0ZXN0QHdlYmtpdC5vcmciLCAiU0VD
UkVUU0FVQ0UiXSkKICAgICAgICAgb3Mucm1kaXIodGVtcF9kaXJfcGF0aCkKIAorICAgIGRlZiB0
ZXN0X2tleXJpbmdfd2l0aG91dF9naXRfcmVwbyhzZWxmKToKKyAgICAgICAgY2xhc3MgTW9ja0tl
eXJpbmcob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBnZXRfcGFzc3dvcmQoc2VsZiwgaG9zdCwg
dXNlcm5hbWUpOgorICAgICAgICAgICAgICAgIHJldHVybiAiTk9NTk9NTk9NIgorCisgICAgICAg
IGNsYXNzIEZha2VDcmVkZW50aWFscyhDcmVkZW50aWFscyk6CisgICAgICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgY3dkKToKKyAgICAgICAgICAgICAgICBDcmVkZW50aWFscy5fX2luaXRfXyhz
ZWxmLCAiZmFrZS5ob3N0bmFtZSIsIGN3ZD1jd2QpCisgICAgICAgICAgICAgICAgc2VsZi5rZXly
aW5nID0gTW9ja0tleXJpbmcoKQorCisgICAgICAgICAgICBkZWYgX2lzX21hY19vc194KHNlbGYp
OgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIGRlZiBfY3JlZGVu
dGlhbHNfZnJvbV9rZXljaGFpbihzZWxmLCB1c2VybmFtZSk6CisgICAgICAgICAgICAgICAgcmV0
dXJuICgidGVzdEB3ZWJraXQub3JnIiwgTm9uZSkKKworICAgICAgICB0ZW1wX2Rpcl9wYXRoID0g
dGVtcGZpbGUubWtkdGVtcChzdWZmaXg9Im5vdF9hX2dpdF9yZXBvIikKKyAgICAgICAgY3JlZGVu
dGlhbHMgPSBGYWtlQ3JlZGVudGlhbHModGVtcF9kaXJfcGF0aCkKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcmVkZW50aWFscy5yZWFkX2NyZWRlbnRpYWxzKCks
IFsidGVzdEB3ZWJraXQub3JnIiwgIk5PTU5PTU5PTSJdKQorICAgICAgICBmaW5hbGx5OgorICAg
ICAgICAgICAgb3Mucm1kaXIodGVtcF9kaXJfcGF0aCkKKwogaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkKaW5kZXggZGZmYTAyNzdhYmQ3ZDNkZjg2ZWZl
Njk2Y2RmMjRlZGRjOTJiZGU2ZC4uMjQwYjY3YjQ1ZTQ2Mjc1MDgyMWQ4OThkM2I5ODRiOTdkMWRh
OTY0MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3VzZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3VzZXIucHkKQEAgLTUyLDYgKzUyLDkgQEAgZXhjZXB0IEltcG9ydEVycm9yOgogCiAKIGNs
YXNzIFVzZXIob2JqZWN0KToKKyAgICBERUZBVUxUX05PID0gJ24nCisgICAgREVGQVVMVF9ZRVMg
PSAneScKKwogICAgICMgRklYTUU6IFRoZXNlIGFyZSBAY2xhc3NtZXRob2RzIGJlY2F1c2UgYnVn
emlsbGEucHkgZG9lc24ndCBoYXZlIGEgVG9vbCBvYmplY3QgKHRodXMgbm8gVXNlciBpbnN0YW5j
ZSkuCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHByb21wdChjbHMsIG1lc3NhZ2UsIHJlcGVh
dD0xLCByYXdfaW5wdXQ9cmF3X2lucHV0KToKQEAgLTExNSwxMSArMTE4LDE0IEBAIGNsYXNzIFVz
ZXIob2JqZWN0KToKICAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6CiAgICAgICAgICAgICBwYXNz
CiAKLSAgICBkZWYgY29uZmlybShzZWxmLCBtZXNzYWdlPU5vbmUpOgorICAgIGRlZiBjb25maXJt
KHNlbGYsIG1lc3NhZ2U9Tm9uZSwgZGVmYXVsdD1ERUZBVUxUX1lFUywgcmF3X2lucHV0PXJhd19p
bnB1dCk6CiAgICAgICAgIGlmIG5vdCBtZXNzYWdlOgogICAgICAgICAgICAgbWVzc2FnZSA9ICJD
b250aW51ZT8iCi0gICAgICAgIHJlc3BvbnNlID0gcmF3X2lucHV0KCIlcyBbWS9uXTogIiAlIG1l
c3NhZ2UpCi0gICAgICAgIHJldHVybiBub3QgcmVzcG9uc2Ugb3IgcmVzcG9uc2UubG93ZXIoKSA9
PSAieSIKKyAgICAgICAgY2hvaWNlID0geyd5JzogJ1kvbicsICduJzogJ3kvTid9W2RlZmF1bHRd
CisgICAgICAgIHJlc3BvbnNlID0gcmF3X2lucHV0KCIlcyBbJXNdOiAiICUgKG1lc3NhZ2UsIGNo
b2ljZSkpCisgICAgICAgIGlmIG5vdCByZXNwb25zZToKKyAgICAgICAgICAgIHJlc3BvbnNlID0g
ZGVmYXVsdAorICAgICAgICByZXR1cm4gcmVzcG9uc2UubG93ZXIoKSA9PSAneScKIAogICAgIGRl
ZiBjYW5fb3Blbl91cmwoc2VsZik6CiAgICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyX3VuaXR0ZXN0LnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5pdHRlc3QucHkK
aW5kZXggMjNiNTQ2ZjllYWJiMzMzZDlkZGRkNGQ2OGMzMTUwNTJkMTMzMGI2ZC4uYWUxYmFkNTli
NDQ5YTM1NmJjMmE0MmRlYzg1NTdiOTgxMmE0ZTI4YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5pdHRlc3QucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5pdHRlc3QucHkK
QEAgLTc1LDUgKzc1LDI3IEBAIGNsYXNzIFVzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgcnVuX3Byb21wdF90ZXN0KFsiICAiXSwgWyJmb28iLCAiYmFyIl0sIGNhbl9jaG9vc2Vf
bXVsdGlwbGU9VHJ1ZSkKICAgICAgICAgcnVuX3Byb21wdF90ZXN0KFsiYmFkaW5wdXQiLCAiYWxs
Il0sIFsiZm9vIiwgImJhciJdLCBjYW5fY2hvb3NlX211bHRpcGxlPVRydWUpCiAKKyAgICBkZWYg
dGVzdF9jb25maXJtKHNlbGYpOgorICAgICAgICB0ZXN0X2Nhc2VzID0gKAorICAgICAgICAgICAg
KCgiQ29udGludWU/IFtZL25dOiAiLCBUcnVlKSwgKFVzZXIuREVGQVVMVF9ZRVMsICd5JykpLAor
ICAgICAgICAgICAgKCgiQ29udGludWU/IFtZL25dOiAiLCBGYWxzZSksIChVc2VyLkRFRkFVTFRf
WUVTLCAnbicpKSwKKyAgICAgICAgICAgICgoIkNvbnRpbnVlPyBbWS9uXTogIiwgVHJ1ZSksIChV
c2VyLkRFRkFVTFRfWUVTLCAnJykpLAorICAgICAgICAgICAgKCgiQ29udGludWU/IFtZL25dOiAi
LCBGYWxzZSksIChVc2VyLkRFRkFVTFRfWUVTLCAncScpKSwKKyAgICAgICAgICAgICgoIkNvbnRp
bnVlPyBbeS9OXTogIiwgVHJ1ZSksIChVc2VyLkRFRkFVTFRfTk8sICd5JykpLAorICAgICAgICAg
ICAgKCgiQ29udGludWU/IFt5L05dOiAiLCBGYWxzZSksIChVc2VyLkRFRkFVTFRfTk8sICduJykp
LAorICAgICAgICAgICAgKCgiQ29udGludWU/IFt5L05dOiAiLCBGYWxzZSksIChVc2VyLkRFRkFV
TFRfTk8sICcnKSksCisgICAgICAgICAgICAoKCJDb250aW51ZT8gW3kvTl06ICIsIEZhbHNlKSwg
KFVzZXIuREVGQVVMVF9OTywgJ3EnKSksCisgICAgICAgICkKKyAgICAgICAgZm9yIHRlc3RfY2Fz
ZSBpbiB0ZXN0X2Nhc2VzOgorICAgICAgICAgICAgZXhwZWN0ZWQsIGlucHV0cyA9IHRlc3RfY2Fz
ZQorCisgICAgICAgICAgICBkZWYgbW9ja19yYXdfaW5wdXQobWVzc2FnZSk6CisgICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRbMF0sIG1lc3NhZ2UpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGlucHV0c1sxXQorCisgICAgICAgICAgICByZXN1bHQgPSBVc2VyKCkuY29u
ZmlybShkZWZhdWx0PWlucHV0c1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJhd19pbnB1dD1tb2NrX3Jhd19pbnB1dCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGV4cGVjdGVkWzFdLCByZXN1bHQpCisKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAg
ICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvbW9ja3Rvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
bW9ja3Rvb2wucHkKaW5kZXggOGE2MTg4YTVkMTI2YmI0OWIzZjgxM2M4YTA4NjI3YWI0OTcyN2Nl
OS4uMzgyOTVmZjAyZTFiNDE1ODFkMGQ5N2I2ZjUwMDc2NGUyYTQ0ZmFhNiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQpAQCAtNDgzLDggKzQ4Myw4
IEBAIGNsYXNzIE1vY2tVc2VyKG9iamVjdCk6CiAgICAgZGVmIHBhZ2Uoc2VsZiwgbWVzc2FnZSk6
CiAgICAgICAgIHBhc3MKIAotICAgIGRlZiBjb25maXJtKHNlbGYsIG1lc3NhZ2U9Tm9uZSk6Ci0g
ICAgICAgIHJldHVybiBUcnVlCisgICAgZGVmIGNvbmZpcm0oc2VsZiwgbWVzc2FnZT1Ob25lLCBk
ZWZhdWx0PSd5Jyk6CisgICAgICAgIHJldHVybiBkZWZhdWx0ID09ICd5JwogCiAgICAgZGVmIGNh
bl9vcGVuX3VybChzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69118</attachid>
            <date>2010-09-28 15:34:06 -0700</date>
            <delta_ts>2010-09-28 15:38:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41269-20100928153412.patch</filename>
            <type>text/plain</type>
            <size>8027</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlYjdjNzVlMTRlZTI5OTdkMDMzOWI4NjBkNjA2OTBjZWQ0MmNhYjY4Li45ODU3ZGY3
OWY3MGUwYTMwNDNmNzFjMmIzMmE1YzcwZDIwYzQ5Y2I4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDktMjggIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgcHl0aG9uIGtleXJpbmcg
c3VwcG9ydCB0byB3ZWJraXQtcGF0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxMjY5CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvY3JlZGVudGlhbHMucHk6IEFkZCB0aGUgYWJpbGl0eSB0byByZWFkIHBhc3N3b3JkcyB1
c2luZworICAgICAgICAgICAgdGhlIHB5dGhvbiBrZXlyaW5nIG1vZHVsZQorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weTogQWxsb3cgY29uZmly
bSgpIHRvIGRlZmF1bHQgdG8gbm8gYW5kIGFkZCB0ZXN0aW5nIHBhcmFtcy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlcl91bml0dGVzdC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHk6CisKIDIwMTAtMDktMjggIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFscy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFscy5weQppbmRleCAxZDVmODNkMjdlNWU0YjZk
MWVmYjg2YmU3OTRkZDFkYzM0Y2MzN2RlLi4xYzNlNmMwZWE0MTBlMGU0NDE4Zjg4OTBiMDYwOTE3
OTI5MGIyYjNjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvY3JlZGVudGlhbHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2NyZWRlbnRpYWxzLnB5CkBAIC0zOSwxNCArMzksMjMgQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBTY3JpcHRFcnJvcgog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXIgaW1wb3J0IFVzZXIKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5kZXByZWNhdGVkX2xvZ2dpbmcgaW1wb3J0IGxvZwogCit0cnk6Cisg
ICAgIyBVc2Uga2V5cmluZywgYSBjcm9zcyBwbGF0Zm9ybSBrZXlyaW5nIGludGVyZmFjZSwgYXMg
YSBmYWxsYmFjazoKKyAgICAjIGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9rZXlyaW5nCisg
ICAgaW1wb3J0IGtleXJpbmcKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBrZXlyaW5nID0gTm9u
ZQorCiAKIGNsYXNzIENyZWRlbnRpYWxzKG9iamVjdCk6CiAKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgaG9zdCwgZ2l0X3ByZWZpeD1Ob25lLCBleGVjdXRpdmU9Tm9uZSwgY3dkPW9zLmdldGN3ZCgp
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgZ2l0X3ByZWZpeD1Ob25lLCBleGVjdXRp
dmU9Tm9uZSwgY3dkPW9zLmdldGN3ZCgpLAorICAgICAgICAgICAgICAgICBrZXlyaW5nPWtleXJp
bmcpOgogICAgICAgICBzZWxmLmhvc3QgPSBob3N0CiAgICAgICAgIHNlbGYuZ2l0X3ByZWZpeCA9
ICIlcy4iICUgZ2l0X3ByZWZpeCBpZiBnaXRfcHJlZml4IGVsc2UgIiIKICAgICAgICAgc2VsZi5l
eGVjdXRpdmUgPSBleGVjdXRpdmUgb3IgRXhlY3V0aXZlKCkKICAgICAgICAgc2VsZi5jd2QgPSBj
d2QKKyAgICAgICAgc2VsZi5fa2V5cmluZyA9IGtleXJpbmcKIAogICAgIGRlZiBfY3JlZGVudGlh
bHNfZnJvbV9naXQoc2VsZik6CiAgICAgICAgIHJldHVybiBbR2l0LnJlYWRfZ2l0X2NvbmZpZyhz
ZWxmLmdpdF9wcmVmaXggKyAidXNlcm5hbWUiKSwKQEAgLTExNywxMCArMTI2LDE5IEBAIGNsYXNz
IENyZWRlbnRpYWxzKG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCB1c2VybmFtZSBvciBub3QgcGFz
c3dvcmQ6CiAgICAgICAgICAgICAodXNlcm5hbWUsIHBhc3N3b3JkKSA9IHNlbGYuX2NyZWRlbnRp
YWxzX2Zyb21fa2V5Y2hhaW4odXNlcm5hbWUpCiAKKyAgICAgICAgaWYgdXNlcm5hbWUgYW5kIG5v
dCBwYXNzd29yZCBhbmQgc2VsZi5fa2V5cmluZzoKKyAgICAgICAgICAgIHBhc3N3b3JkID0gc2Vs
Zi5fa2V5cmluZy5nZXRfcGFzc3dvcmQoc2VsZi5ob3N0LCB1c2VybmFtZSkKKwogICAgICAgICBp
ZiBub3QgdXNlcm5hbWU6CiAgICAgICAgICAgICB1c2VybmFtZSA9IFVzZXIucHJvbXB0KCIlcyBs
b2dpbjogIiAlIHNlbGYuaG9zdCkKICAgICAgICAgaWYgbm90IHBhc3N3b3JkOgogICAgICAgICAg
ICAgcGFzc3dvcmQgPSBnZXRwYXNzLmdldHBhc3MoIiVzIHBhc3N3b3JkIGZvciAlczogIiAlIChz
ZWxmLmhvc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lKSkKIAorICAgICAgICAgICAgaWYgc2VsZi5fa2V5
cmluZzoKKyAgICAgICAgICAgICAgICBzdG9yZV9wYXNzd29yZCA9IFVzZXIoKS5jb25maXJtKAor
ICAgICAgICAgICAgICAgICAgICAiU3RvcmUgcGFzc3dvcmQgaW4gc3lzdGVtIGtleXJpbmc/Iiwg
VXNlci5ERUZBVUxUX05PKQorICAgICAgICAgICAgICAgIGlmIHN0b3JlX3Bhc3N3b3JkOgorICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9rZXlyaW5nLnNldF9wYXNzd29yZChzZWxmLmhvc3QsIHVz
ZXJuYW1lLCBwYXNzd29yZCkKKwogICAgICAgICByZXR1cm4gW3VzZXJuYW1lLCBwYXNzd29yZF0K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVk
ZW50aWFsc191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weQppbmRleCA5YTQyYmRkZjIwY2NiNTIxNDliOTRk
YjlmZDM3MmQ0MTk0M2E1NTNmLi5kMzAyOTFiNGM3ZTA3YWFhODgyNmI4YjQ5YmE3ZWMyNTc5MjJl
NGM0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQv
Y3JlZGVudGlhbHNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5CkBAIC0xMTMsNSArMTEzLDI4IEBA
IHBhc3N3b3JkOiAiU0VDUkVUU0FVQ0UiCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3JlZGVu
dGlhbHMucmVhZF9jcmVkZW50aWFscygpLCBbInRlc3RAd2Via2l0Lm9yZyIsICJTRUNSRVRTQVVD
RSJdKQogICAgICAgICBvcy5ybWRpcih0ZW1wX2Rpcl9wYXRoKQogCisgICAgZGVmIHRlc3Rfa2V5
cmluZ193aXRob3V0X2dpdF9yZXBvKHNlbGYpOgorICAgICAgICBjbGFzcyBNb2NrS2V5cmluZyhv
YmplY3QpOgorICAgICAgICAgICAgZGVmIGdldF9wYXNzd29yZChzZWxmLCBob3N0LCB1c2VybmFt
ZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuICJOT01OT01OT00iCisKKyAgICAgICAgY2xhc3Mg
RmFrZUNyZWRlbnRpYWxzKENyZWRlbnRpYWxzKToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBjd2QpOgorICAgICAgICAgICAgICAgIENyZWRlbnRpYWxzLl9faW5pdF9fKHNlbGYsICJm
YWtlLmhvc3RuYW1lIiwgY3dkPWN3ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrZXlyaW5nPU1vY2tLZXlyaW5nKCkpCisKKyAgICAgICAgICAgIGRlZiBfaXNfbWFjX29z
X3goc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICAgICAgZGVm
IF9jcmVkZW50aWFsc19mcm9tX2tleWNoYWluKHNlbGYsIHVzZXJuYW1lKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gKCJ0ZXN0QHdlYmtpdC5vcmciLCBOb25lKQorCisgICAgICAgIHRlbXBfZGly
X3BhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKHN1ZmZpeD0ibm90X2FfZ2l0X3JlcG8iKQorICAgICAg
ICBjcmVkZW50aWFscyA9IEZha2VDcmVkZW50aWFscyh0ZW1wX2Rpcl9wYXRoKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNyZWRlbnRpYWxzLnJlYWRfY3JlZGVu
dGlhbHMoKSwgWyJ0ZXN0QHdlYmtpdC5vcmciLCAiTk9NTk9NTk9NIl0pCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICBvcy5ybWRpcih0ZW1wX2Rpcl9wYXRoKQorCiBpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weQppbmRleCBkZmZhMDI3N2FiZDdk
M2RmODZlZmU2OTZjZGYyNGVkZGM5MmJkZTZkLi4yNDBiNjdiNDVlNDYyNzUwODIxZDg5OGQzYjk4
NGI5N2QxZGE5NjQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vdXNlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vdXNlci5weQpAQCAtNTIsNiArNTIsOSBAQCBleGNlcHQgSW1wb3J0RXJyb3I6
CiAKIAogY2xhc3MgVXNlcihvYmplY3QpOgorICAgIERFRkFVTFRfTk8gPSAnbicKKyAgICBERUZB
VUxUX1lFUyA9ICd5JworCiAgICAgIyBGSVhNRTogVGhlc2UgYXJlIEBjbGFzc21ldGhvZHMgYmVj
YXVzZSBidWd6aWxsYS5weSBkb2Vzbid0IGhhdmUgYSBUb29sIG9iamVjdCAodGh1cyBubyBVc2Vy
IGluc3RhbmNlKS4KICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgcHJvbXB0KGNscywgbWVzc2Fn
ZSwgcmVwZWF0PTEsIHJhd19pbnB1dD1yYXdfaW5wdXQpOgpAQCAtMTE1LDExICsxMTgsMTQgQEAg
Y2xhc3MgVXNlcihvYmplY3QpOgogICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKICAgICAgICAg
ICAgIHBhc3MKIAotICAgIGRlZiBjb25maXJtKHNlbGYsIG1lc3NhZ2U9Tm9uZSk6CisgICAgZGVm
IGNvbmZpcm0oc2VsZiwgbWVzc2FnZT1Ob25lLCBkZWZhdWx0PURFRkFVTFRfWUVTLCByYXdfaW5w
dXQ9cmF3X2lucHV0KToKICAgICAgICAgaWYgbm90IG1lc3NhZ2U6CiAgICAgICAgICAgICBtZXNz
YWdlID0gIkNvbnRpbnVlPyIKLSAgICAgICAgcmVzcG9uc2UgPSByYXdfaW5wdXQoIiVzIFtZL25d
OiAiICUgbWVzc2FnZSkKLSAgICAgICAgcmV0dXJuIG5vdCByZXNwb25zZSBvciByZXNwb25zZS5s
b3dlcigpID09ICJ5IgorICAgICAgICBjaG9pY2UgPSB7J3knOiAnWS9uJywgJ24nOiAneS9OJ31b
ZGVmYXVsdF0KKyAgICAgICAgcmVzcG9uc2UgPSByYXdfaW5wdXQoIiVzIFslc106ICIgJSAobWVz
c2FnZSwgY2hvaWNlKSkKKyAgICAgICAgaWYgbm90IHJlc3BvbnNlOgorICAgICAgICAgICAgcmVz
cG9uc2UgPSBkZWZhdWx0CisgICAgICAgIHJldHVybiByZXNwb25zZS5sb3dlcigpID09ICd5Jwog
CiAgICAgZGVmIGNhbl9vcGVuX3VybChzZWxmKToKICAgICAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXJfdW5pdHRlc3Qu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlcl91bml0
dGVzdC5weQppbmRleCAyM2I1NDZmOWVhYmIzMzNkOWRkZGQ0ZDY4YzMxNTA1MmQxMzMwYjZkLi5h
ZTFiYWQ1OWI0NDlhMzU2YmMyYTQyZGVjODU1N2I5ODEyYTRlMjhhIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlcl91bml0dGVzdC5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlcl91bml0
dGVzdC5weQpAQCAtNzUsNSArNzUsMjcgQEAgY2xhc3MgVXNlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBydW5fcHJvbXB0X3Rlc3QoWyIgICJdLCBbImZvbyIsICJiYXIiXSwgY2Fu
X2Nob29zZV9tdWx0aXBsZT1UcnVlKQogICAgICAgICBydW5fcHJvbXB0X3Rlc3QoWyJiYWRpbnB1
dCIsICJhbGwiXSwgWyJmb28iLCAiYmFyIl0sIGNhbl9jaG9vc2VfbXVsdGlwbGU9VHJ1ZSkKIAor
ICAgIGRlZiB0ZXN0X2NvbmZpcm0oc2VsZik6CisgICAgICAgIHRlc3RfY2FzZXMgPSAoCisgICAg
ICAgICAgICAoKCJDb250aW51ZT8gW1kvbl06ICIsIFRydWUpLCAoVXNlci5ERUZBVUxUX1lFUywg
J3knKSksCisgICAgICAgICAgICAoKCJDb250aW51ZT8gW1kvbl06ICIsIEZhbHNlKSwgKFVzZXIu
REVGQVVMVF9ZRVMsICduJykpLAorICAgICAgICAgICAgKCgiQ29udGludWU/IFtZL25dOiAiLCBU
cnVlKSwgKFVzZXIuREVGQVVMVF9ZRVMsICcnKSksCisgICAgICAgICAgICAoKCJDb250aW51ZT8g
W1kvbl06ICIsIEZhbHNlKSwgKFVzZXIuREVGQVVMVF9ZRVMsICdxJykpLAorICAgICAgICAgICAg
KCgiQ29udGludWU/IFt5L05dOiAiLCBUcnVlKSwgKFVzZXIuREVGQVVMVF9OTywgJ3knKSksCisg
ICAgICAgICAgICAoKCJDb250aW51ZT8gW3kvTl06ICIsIEZhbHNlKSwgKFVzZXIuREVGQVVMVF9O
TywgJ24nKSksCisgICAgICAgICAgICAoKCJDb250aW51ZT8gW3kvTl06ICIsIEZhbHNlKSwgKFVz
ZXIuREVGQVVMVF9OTywgJycpKSwKKyAgICAgICAgICAgICgoIkNvbnRpbnVlPyBbeS9OXTogIiwg
RmFsc2UpLCAoVXNlci5ERUZBVUxUX05PLCAncScpKSwKKyAgICAgICAgKQorICAgICAgICBmb3Ig
dGVzdF9jYXNlIGluIHRlc3RfY2FzZXM6CisgICAgICAgICAgICBleHBlY3RlZCwgaW5wdXRzID0g
dGVzdF9jYXNlCisKKyAgICAgICAgICAgIGRlZiBtb2NrX3Jhd19pbnB1dChtZXNzYWdlKToKKyAg
ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZFswXSwgbWVzc2FnZSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gaW5wdXRzWzFdCisKKyAgICAgICAgICAgIHJlc3VsdCA9IFVz
ZXIoKS5jb25maXJtKGRlZmF1bHQ9aW5wdXRzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmF3X2lucHV0PW1vY2tfcmF3X2lucHV0KQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoZXhwZWN0ZWRbMV0sIHJlc3VsdCkKKwogaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9tb2NrdG9vbC5weQppbmRleCA1MDg0ZWQ1MDNlNDNmNDVmY2NmZTYxMmExM2UwNDU4
OGVjNTJmYmFhLi4yNzdiZDA4ZmRiODMwZWEwNjc3YjU0NDZjZWE0YTBjZDU5NzNlNjFkIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CkBAIC00OTEs
OCArNDkxLDggQEAgY2xhc3MgTW9ja1VzZXIob2JqZWN0KToKICAgICBkZWYgcGFnZShzZWxmLCBt
ZXNzYWdlKToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIGNvbmZpcm0oc2VsZiwgbWVzc2FnZT1O
b25lKToKLSAgICAgICAgcmV0dXJuIFRydWUKKyAgICBkZWYgY29uZmlybShzZWxmLCBtZXNzYWdl
PU5vbmUsIGRlZmF1bHQ9J3knKToKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQgPT0gJ3knCiAKICAg
ICBkZWYgY2FuX29wZW5fdXJsKHNlbGYpOgogICAgICAgICByZXR1cm4gVHJ1ZQo=
</data>
<flag name="review"
          id="58751"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>