<?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>116376</bug_id>
          
          <creation_ts>2013-05-17 19:31:52 -0700</creation_ts>
          <short_desc>[GTK] [CMake] Add support for generating gtkdoc</short_desc>
          <delta_ts>2013-12-23 13:57:49 -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>WebKitGTK</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>
          
          <blocked>115966</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Gustavo Noronha (kov)">gustavo</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>890782</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-17 19:31:52 -0700</bug_when>
    <thetext>We need the CMake build to generate gtkdoc just like the autotools one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961667</commentid>
    <comment_count>1</comment_count>
      <attachid>219711</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-19 18:25:26 -0800</bug_when>
    <thetext>Created attachment 219711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962356</commentid>
    <comment_count>2</comment_count>
      <attachid>219882</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-22 12:39:32 -0800</bug_when>
    <thetext>Created attachment 219882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962362</commentid>
    <comment_count>3</comment_count>
      <attachid>219884</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-22 12:55:59 -0800</bug_when>
    <thetext>Created attachment 219884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962373</commentid>
    <comment_count>4</comment_count>
      <attachid>219884</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-12-22 15:07:07 -0800</bug_when>
    <thetext>Comment on attachment 219884
Patch

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

Nice!

&gt; Tools/gtk/CMakeLists.txt:1
&gt; +set(GTK_DOCS_DEPENDENCIES

Perhaps it makes sense to put this into Source/PlatformGTK.cmake ? I think that would be a better match for the CMake build structure and would also fit well next to the parts that will trigger the GObject API test builds. I sort of regret putting the makefile into the tools directory now, as it depends  on the sources.

&gt; Tools/gtk/CMakeLists.txt:11
&gt; +if (ENABLE_WEBKIT)
&gt; +    list(APPEND GTK_DOCS_DEPENDENCIES
&gt; +        WebKit
&gt; +        &quot;${CMAKE_SOURCE_DIR}/Source/WebKit/gtk/docs/webkitgtk-docs.sgml&quot;
&gt; +        &quot;${CMAKE_SOURCE_DIR}/Source/WebKit/gtk/docs/webkitgtk-sections.txt&quot;
&gt; +    )
&gt; +endif ()

This is probably okay for a first cut, but eventually we want to have the actual API source files listed here as well -- perhaps just an overly greedy glob of the directory. The reasoning is that we want the build to error out when someone forgets to update the sections file. Without the dependencies set up properly, a developer might miss keeping the docs up-to-date and worse the build bot will also not complain. Unless of course, I&apos;m misunderstanding this!

&gt; Tools/gtk/generate-gtkdoc:69
&gt; +    # CMake uses lib instead of .libs.
&gt; +    library_path = common.build_path(&apos;.libs&apos;)
&gt; +    if not os.path.exists(library_path):
&gt; +        library_path = common.build_path(&apos;lib&apos;)
&gt; +
&gt;      return {
&gt;          &apos;decorator&apos;: &apos;WEBKIT_API|WEBKIT_DEPRECATED|WEBKIT_DEPRECATED_FOR\(.+\)&apos;,
&gt;          &apos;deprecation_guard&apos;: &apos;WEBKIT_DISABLE_DEPRECATED&apos;,
&gt; -        &apos;library_path&apos; : common.build_path(&apos;.libs&apos;),
&gt; +        &apos;library_path&apos; : library_path,

Maybe we could abstract this away into common to be something like common.library_build_path()?

&gt; Tools/gtk/generate-gtkdoc:157
&gt; +    # The CMake build puts the webkitversion.h file in DerivedSources/webkit, the
&gt; +    # autotools one uses Source/WebKit/gtk/webkit.
&gt; +    built_webkit_path = common.build_path(&apos;Source&apos;, &apos;WebKit&apos;, &apos;gtk&apos;, &apos;webkit&apos;)
&gt; +    if os.path.exists(built_webkit_path):
&gt; +        source_dirs.append(built_webkit_path)
&gt; +    else:
&gt; +        source_dirs.append(common.build_path(&apos;DerivedSources&apos;, &apos;webkit&apos;))
&gt; +

Looks like this could be abstracted away into a helper?

Imagine:

[src_path(&apos;webkit&apos;), path_to_webkitversionh()],

&gt; Tools/gtk/generate-gtkdoc:256
&gt; +webkitdom_docs_path = common.build_path(&apos;DerivedSources&apos;, &apos;webkitdom&apos;, &apos;docs&apos;)
&gt; +if os.path.exists(webkitdom_docs_path):
&gt; +    generator = gtkdoc.PkgConfigGTKDoc(pkg_config_path, get_webkitdom_options())
&gt; +    if &apos;--rebase&apos; not in sys.argv:
&gt; +        print(&quot;\nGenerating WebKitDOM documentation...&quot;)
&gt; +        saw_webkitdom_warnings = generate_doc(generator)
&gt; +    else:
&gt; +        print(&quot;\nRebasing WebKitDOM documentation...&quot;)
&gt; +        try:
&gt; +            generator.rebase_installed_docs()
&gt; +        except Exception:
&gt; +            print(&quot;Rebase did not happen, likely no documentation is present.&quot;)

Maybe instead of checking for the path, do this conditionally based on whether or not it&apos;s a cmake build? That way we&apos;ll get an error if something goes wrong.

&gt; Tools/gtk/generate-gtkdoc:289
&gt; +# For CMake we are still generating warnings because we lack DOM bindings docs,
&gt; +# so do not cause the build to fail for now.
&gt; +if not os.path.exists(os.path.join(os.getcwd(), &apos;CMakeCache.txt&apos;)):
&gt; +    sys.exit(saw_webkit1_warnings or saw_webkit2_warnings)

It seems that we could make a helper like common.is_cmake_build_path(dir).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962460</commentid>
    <comment_count>5</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-23 05:57:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Tools/gtk/CMakeLists.txt:11
&gt; &gt; +if (ENABLE_WEBKIT)
&gt; &gt; +    list(APPEND GTK_DOCS_DEPENDENCIES
&gt; &gt; +        WebKit
&gt; &gt; +        &quot;${CMAKE_SOURCE_DIR}/Source/WebKit/gtk/docs/webkitgtk-docs.sgml&quot;
&gt; &gt; +        &quot;${CMAKE_SOURCE_DIR}/Source/WebKit/gtk/docs/webkitgtk-sections.txt&quot;
&gt; &gt; +    )
&gt; &gt; +endif ()
&gt; 
&gt; This is probably okay for a first cut, but eventually we want to have the actual API source files listed here as well -- perhaps just an overly greedy glob of the directory. The reasoning is that we want the build to error out when someone forgets to update the sections file. Without the dependencies set up properly, a developer might miss keeping the docs up-to-date and worse the build bot will also not complain. Unless of course, I&apos;m misunderstanding this!
&gt; 

Yeah, I intended to do this in this patch, but then I ended up spending too much energy on fixing the other bits and the patch started looking quite complex already so I decided to take the easy way on this front (I planned to comment that when I submitted the patch but got distracted by bees).

&gt; &gt; Tools/gtk/generate-gtkdoc:69
&gt; &gt; +    # CMake uses lib instead of .libs.
&gt; &gt; +    library_path = common.build_path(&apos;.libs&apos;)
&gt; &gt; +    if not os.path.exists(library_path):
&gt; &gt; +        library_path = common.build_path(&apos;lib&apos;)
&gt; &gt; +
&gt; &gt;      return {
&gt; &gt;          &apos;decorator&apos;: &apos;WEBKIT_API|WEBKIT_DEPRECATED|WEBKIT_DEPRECATED_FOR\(.+\)&apos;,
&gt; &gt;          &apos;deprecation_guard&apos;: &apos;WEBKIT_DISABLE_DEPRECATED&apos;,
&gt; &gt; -        &apos;library_path&apos; : common.build_path(&apos;.libs&apos;),
&gt; &gt; +        &apos;library_path&apos; : library_path,
&gt; 
&gt; Maybe we could abstract this away into common to be something like common.library_build_path()?

Sounds good!

&gt; &gt; Tools/gtk/generate-gtkdoc:157
&gt; &gt; +    # The CMake build puts the webkitversion.h file in DerivedSources/webkit, the
&gt; &gt; +    # autotools one uses Source/WebKit/gtk/webkit.
&gt; &gt; +    built_webkit_path = common.build_path(&apos;Source&apos;, &apos;WebKit&apos;, &apos;gtk&apos;, &apos;webkit&apos;)
&gt; &gt; +    if os.path.exists(built_webkit_path):
&gt; &gt; +        source_dirs.append(built_webkit_path)
&gt; &gt; +    else:
&gt; &gt; +        source_dirs.append(common.build_path(&apos;DerivedSources&apos;, &apos;webkit&apos;))
&gt; &gt; +
&gt; 
&gt; Looks like this could be abstracted away into a helper?
&gt; 
&gt; Imagine:
&gt; 
&gt; [src_path(&apos;webkit&apos;), path_to_webkitversionh()],

Yep!

&gt; &gt; Tools/gtk/generate-gtkdoc:256
&gt; &gt; +webkitdom_docs_path = common.build_path(&apos;DerivedSources&apos;, &apos;webkitdom&apos;, &apos;docs&apos;)
&gt; &gt; +if os.path.exists(webkitdom_docs_path):
&gt; &gt; +    generator = gtkdoc.PkgConfigGTKDoc(pkg_config_path, get_webkitdom_options())
&gt; &gt; +    if &apos;--rebase&apos; not in sys.argv:
&gt; &gt; +        print(&quot;\nGenerating WebKitDOM documentation...&quot;)
&gt; &gt; +        saw_webkitdom_warnings = generate_doc(generator)
&gt; &gt; +    else:
&gt; &gt; +        print(&quot;\nRebasing WebKitDOM documentation...&quot;)
&gt; &gt; +        try:
&gt; &gt; +            generator.rebase_installed_docs()
&gt; &gt; +        except Exception:
&gt; &gt; +            print(&quot;Rebase did not happen, likely no documentation is present.&quot;)
&gt; 
&gt; Maybe instead of checking for the path, do this conditionally based on whether or not it&apos;s a cmake build? That way we&apos;ll get an error if something goes wrong.

Yes, maybe a helper function that caches whether it&apos;s a cmake build and we can use that knowledge on those other helpers above.

&gt; &gt; Tools/gtk/generate-gtkdoc:289
&gt; &gt; +# For CMake we are still generating warnings because we lack DOM bindings docs,
&gt; &gt; +# so do not cause the build to fail for now.
&gt; &gt; +if not os.path.exists(os.path.join(os.getcwd(), &apos;CMakeCache.txt&apos;)):
&gt; &gt; +    sys.exit(saw_webkit1_warnings or saw_webkit2_warnings)
&gt; 
&gt; It seems that we could make a helper like common.is_cmake_build_path(dir).

This =) thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962555</commentid>
    <comment_count>6</comment_count>
      <attachid>219927</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-23 13:04:09 -0800</bug_when>
    <thetext>Created attachment 219927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962559</commentid>
    <comment_count>7</comment_count>
      <attachid>219927</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-12-23 13:08:15 -0800</bug_when>
    <thetext>Comment on attachment 219927
Patch

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

Thanks! A couple things to consider for landing...

&gt; Source/PlatformGTK.cmake:1
&gt; +set(GTK_DOCS_DEPENDENCIES

I have been using camel case for most CMake variables, so perhaps this could be DocumentationDependencies instead of GTK_DOCS_DEPENDENCIES?

&gt; Tools/gtk/common.py:33
&gt; +    if type(is_cmake) is not bool:

is_cmake == None ?

&gt; Tools/gtk/generate-gtkdoc:140
&gt; +    source_dirs = [src_path(&apos;webkit&apos;)]
&gt; +

Looks like this is unused now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962564</commentid>
    <comment_count>8</comment_count>
      <attachid>219928</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-23 13:22:53 -0800</bug_when>
    <thetext>Created attachment 219928
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962578</commentid>
    <comment_count>9</comment_count>
      <attachid>219928</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 13:57:46 -0800</bug_when>
    <thetext>Comment on attachment 219928
Patch for landing

Clearing flags on attachment: 219928

Committed r161017: &lt;http://trac.webkit.org/changeset/161017&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962579</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 13:57:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219711</attachid>
            <date>2013-12-19 18:25:26 -0800</date>
            <delta_ts>2013-12-22 12:39:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116376-20131220002525.patch</filename>
            <type>text/plain</type>
            <size>2601</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwODI3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzRiM2Y3OWM2YzczMGZjM2M3YjM1M2NlNjFkNGFiMWUz
MTUzNzUwZC4uMzVkNjY5ZjJhZjNkNzM1NmQ5OTJmNmVmZDBkNjdjMDg5OWNjMGIyZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEzLTEyLTE5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgor
CisgICAgICAgIFtHVEtdIFtDTWFrZV0gQWRkIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgZ3RrZG9j
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzNzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiBhZGQgdGhlIG5ldyBzdWJkaXJlY3RvcnkuCisgICAgICAgICogZ3RrL0NNYWtl
TGlzdHMudHh0OiBBZGRlZC4gTmV3IGN1c3RvbSB0YXJnZXQgdGhhdCBkZXBlbmRzIG9uIGEgY3Vz
dG9tIGNvbW1hbmQKKyAgICAgICAgd2hpY2ggY2FsbHMgb3VyIGdlbmVyYXRlLWd0a2RvYyBzY3Jp
cHQuIEl0IHVzZXMgYSBkb2NzLWJ1aWxkLnN0YW1wIGZvciBzaW1wbGljaXR5LAorICAgICAgICBs
aWtlIHRoZSBhdXRvdG9vbHMgYnVpbGQuCisKIDIwMTMtMTItMTggIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBEZXByZWNhdGUgc29tZSBXS011dGFibGVE
aWN0aW9uYXJ5IGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01ha2VMaXN0cy50eHQgYi9U
b29scy9DTWFrZUxpc3RzLnR4dAppbmRleCAzZGQ1MzI0NzI1YjFhZWVhNzAwNzFhYjBhNGFhYWYw
ZmNlMzRmZDA4Li45YWVjY2JmMGEyNTAwYzE4OTY0NDg5MTY4MzJiOTVmMjZkYjI5M2UyIDEwMDY0
NAotLS0gYS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApA
QCAtMTYsNiArMTYsNyBAQCBpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJFZmwiKQogICAgIGVuZGlm
ICgpCiAgICAgYWRkX3N1YmRpcmVjdG9yeShEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVn
SW4pCiBlbHNlaWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiR1RLIikKKyAgICBhZGRfc3ViZGlyZWN0
b3J5KGd0aykKICAgICBpZiAoRU5BQkxFX1dFQktJVDIpCiAgICAgICAgIGFkZF9zdWJkaXJlY3Rv
cnkoTWluaUJyb3dzZXIvZ3RrKQogICAgIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Ub29scy9ndGsv
Q01ha2VMaXN0cy50eHQgYi9Ub29scy9ndGsvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I0
MzZkNWI3Y2UwYjdkMTkyZTU1M2MyNmUxNjhlNTlmODg0MWQyNwotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL2d0ay9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDM5IEBACitzZXQoR1RLX0RPQ1Nf
REVQRU5ERU5DSUVTCisgICAgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYktpdC9ndGsv
ZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWwiCispCisKK2lmIChFTkFCTEVfV0VCS0lUKQorICAg
IGxpc3QoQVBQRU5EIEdUS19ET0NTX0RFUEVOREVOQ0lFUworICAgICAgICBXZWJLaXQKKyAgICAg
ICAgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGst
ZG9jcy5zZ21sIgorICAgICAgICAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViS2l0L2d0
ay9kb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQiCisgICAgKQorZW5kaWYgKCkKKworaWYgKEVO
QUJMRV9XRUJLSVQyKQorICAgIGxpc3QoQVBQRU5EIEdUS19ET0NTX0RFUEVOREVOQ0lFUworICAg
ICAgICBXZWJLaXQyCisgICAgICAgICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwiCisgICAgICAgICIk
e0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay1zZWN0aW9ucy50eHQiCisgICAgKQorZW5kaWYgKCkKKworYWRkX2N1c3RvbV9j
b21tYW5kKAorICAgIE9VVFBVVCBkb2NzLWJ1aWxkLnN0YW1wCisgICAgREVQRU5EUyAke0dUS19E
T0NTX0RFUEVOREVOQ0lFU30KKyAgICBDT01NQU5EIENDPSIke0NNQUtFX0NfQ09NUElMRVJ9IiAk
e0NNQUtFX1NPVVJDRV9ESVJ9L1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKKyAgICBDT01NQU5E
IHRvdWNoIGRvY3MtYnVpbGQuc3RhbXAKKykKKworYWRkX2N1c3RvbV90YXJnZXQoZmFrZS1kb2Nz
LXRhcmdldCBBTEwKKyAgICBERVBFTkRTIGRvY3MtYnVpbGQuc3RhbXAKKykKKworaWYgKEVOQUJM
RV9XRUJLSVQpCisgICAgYWRkX2RlcGVuZGVuY2llcyhmYWtlLWRvY3MtdGFyZ2V0IFdlYktpdCkK
K2VuZGlmICgpCisKK2lmIChFTkFCTEVfV0VCS0lUMikKKyAgICBhZGRfZGVwZW5kZW5jaWVzKGZh
a2UtZG9jcy10YXJnZXQgV2ViS2l0MikKK2VuZGlmICgpCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219882</attachid>
            <date>2013-12-22 12:39:32 -0800</date>
            <delta_ts>2013-12-22 12:55:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116376-20131222183930.patch</filename>
            <type>text/plain</type>
            <size>9445</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmM1ZDI5MmEyYzE4MTc1
YjJkMzg0NjU2MWM0M2ViZDY0YTVhNjE4OS4uZjlhNDVhY2RiMDJiNDY0N2JiMjlkNTJlOWRhMzRl
MjJiNWI2NzRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEyLTE5ICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFtDTWFr
ZV0gQWRkIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgZ3RrZG9jCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzNzYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBtYWtlIGdl
bmVyYXRlZCBBUEkgZmlsZXMgZ28gdG8gRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiwgdG8KKyAgICAg
ICAgbWF0Y2ggdGhlIGF1dG90b29scyBidWlsZCBhbmQgZ3RrZG9jLnB5J3MgZXhwZWN0YXRpb24u
CisKIDIwMTMtMTItMjIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAK
ICAgICAgICAgW0dUS10gW0NNYWtlXSBHZW5lcmF0ZSBwa2ctY29uZmlnIGZpbGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtR1RLLmNtYWtlCmluZGV4IGY1YTY0MjQxZWZkMWViODhlZGFhOGIxMDg1MzM0ZjkzMmJk
MDA1MmUuLjZlMjFiOWQ4MGRmZWU2MTllY2M1M2Y1ZTViNzJhZjNiMDMyZmQ4NjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xLDUgKzEsNSBAQAogc2V0KERFUklWRURfU09VUkNFU19H
T0JKRUNUX0RPTV9CSU5ESU5HU19ESVIgJHtERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXRkb20p
Ci1zZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vd2Via2l0Mmd0aykKK3NldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19ESVIgJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9XZWJLaXQyL3dlYmtpdDJndGspCiBzZXQoV0VCS0lUMl9CVUlMVF9B
UElfRElSICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfS93ZWJraXQyKQogc2V0KFdF
QktJVDJfRk9SV0FSRElOR19IRUFERVJTX0RJUiAke0RFUklWRURfU09VUkNFU19ESVJ9L0Zvcndh
cmRpbmdIZWFkZXJzL3dlYmtpdDJndGspCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNGIzZjc5YzZjNzMwZmMzYzdiMzUzY2U2MWQ0YWIxZTMx
NTM3NTBkLi5iNjk1OGRhMjM1ZDZkOTc5ZDU4MWUzMGQ3MTdkODVjNjM3MDM0OWRiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTMtMTItMTkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CisK
KyAgICAgICAgW0dUS10gW0NNYWtlXSBBZGQgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBndGtkb2MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjM3Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IGFkZCB0aGUgbmV3IHN1YmRpcmVjdG9yeS4KKyAgICAgICAgKiBndGsvQ01ha2VM
aXN0cy50eHQ6IEFkZGVkLiBOZXcgY3VzdG9tIHRhcmdldCB0aGF0IGRlcGVuZHMgb24gYSBjdXN0
b20gY29tbWFuZAorICAgICAgICB3aGljaCBjYWxscyBvdXIgZ2VuZXJhdGUtZ3RrZG9jIHNjcmlw
dC4gSXQgdXNlcyBhIGRvY3MtYnVpbGQuc3RhbXAgZm9yIHNpbXBsaWNpdHksCisgICAgICAgIGxp
a2UgdGhlIGF1dG90b29scyBidWlsZC4KKyAgICAgICAgKiBndGsvY29tbW9uLnB5OiBsb29rIGZv
ciBmaWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMgdXNlZCBieSB0aGUgY21ha2UgYnVpbGQgYXMgd2Vs
bC4KKwogMjAxMy0xMi0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIERlcHJlY2F0ZSBzb21lIFdLTXV0YWJsZURpY3Rpb25hcnkgZnVuY3Rpb25zCmRp
ZmYgLS1naXQgYS9Ub29scy9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDNkZDUzMjQ3MjViMWFlZWE3MDA3MWFiMGE0YWFhZjBmY2UzNGZkMDguLjlhZWNjYmYwYTI1
MDBjMTg5NjQ0ODkxNjgzMmI5NWYyNmRiMjkzZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NNYWtlTGlz
dHMudHh0CisrKyBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CkBAIC0xNiw2ICsxNiw3IEBAIGlmICgi
JHtQT1JUfSIgU1RSRVFVQUwgIkVmbCIpCiAgICAgZW5kaWYgKCkKICAgICBhZGRfc3ViZGlyZWN0
b3J5KER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbikKIGVsc2VpZiAoIiR7UE9SVH0i
IFNUUkVRVUFMICJHVEsiKQorICAgIGFkZF9zdWJkaXJlY3RvcnkoZ3RrKQogICAgIGlmIChFTkFC
TEVfV0VCS0lUMikKICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShNaW5pQnJvd3Nlci9ndGspCiAg
ICAgZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xz
L2d0ay9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTVkMzVmMDIyYzNhNzliY2JhY2Q4YWJi
ODZlYjMxMzljYWNkODg1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvZ3RrL0NNYWtlTGlzdHMu
dHh0CkBAIC0wLDAgKzEsNDAgQEAKK3NldChHVEtfRE9DU19ERVBFTkRFTkNJRVMKKyAgICAiJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGVudmlyb25tZW50
LnhtbCIKKykKKworaWYgKEVOQUJMRV9XRUJLSVQpCisgICAgbGlzdChBUFBFTkQgR1RLX0RPQ1Nf
REVQRU5ERU5DSUVTCisgICAgICAgIFdlYktpdAorICAgICAgICAiJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWwiCisgICAgICAgICIk
e0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJLaXQvZ3RrL2RvY3Mvd2Via2l0Z3RrLXNlY3Rp
b25zLnR4dCIKKyAgICApCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX1dFQktJVDIpCisgICAgbGlz
dChBUFBFTkQgR1RLX0RPQ1NfREVQRU5ERU5DSUVTCisgICAgICAgIFdlYktpdDIKKyAgICAgICAg
IiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLWRvY3Muc2dtbCIKKyAgICAgICAgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dCIKKyAgICApCitlbmRpZiAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUIGRv
Y3MtYnVpbGQuc3RhbXAKKyAgICBERVBFTkRTICR7R1RLX0RPQ1NfREVQRU5ERU5DSUVTfQorICAg
IENPTU1BTkQgQ0M9IiR7Q01BS0VfQ19DT01QSUxFUn0iICR7Q01BS0VfU09VUkNFX0RJUn0vVG9v
bHMvZ3RrL2dlbmVyYXRlLWd0a2RvYyAtdgorICAgIENPTU1BTkQgdG91Y2ggZG9jcy1idWlsZC5z
dGFtcAorICAgIFdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9IgorKQorCith
ZGRfY3VzdG9tX3RhcmdldChmYWtlLWRvY3MtdGFyZ2V0IEFMTAorICAgIERFUEVORFMgZG9jcy1i
dWlsZC5zdGFtcAorKQorCitpZiAoRU5BQkxFX1dFQktJVCkKKyAgICBhZGRfZGVwZW5kZW5jaWVz
KGZha2UtZG9jcy10YXJnZXQgV2ViS2l0KQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9XRUJLSVQy
KQorICAgIGFkZF9kZXBlbmRlbmNpZXMoZmFrZS1kb2NzLXRhcmdldCBXZWJLaXQyKQorZW5kaWYg
KCkKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2NvbW1vbi5weSBiL1Rvb2xzL2d0ay9jb21tb24u
cHkKaW5kZXggNDI1NWM5YjczOTAzMzRkMmUyOTU3ZjlkODQyMDFmY2U2MjJkNGRiNy4uZTFiZmE4
M2FkZDlhNjY5ZTAxYmM4ZjViMmY4OWE1NWQ0MTQyOWZmNyAxMDA2NDQKLS0tIGEvVG9vbHMvZ3Rr
L2NvbW1vbi5weQorKysgYi9Ub29scy9ndGsvY29tbW9uLnB5CkBAIC00Myw3ICs0MywxMSBAQCBk
ZWYgZ2V0X2J1aWxkX3BhdGgoYnVpbGRfdHlwZXM9KCdSZWxlYXNlJywgJ0RlYnVnJyksIGZhdGFs
PVRydWUpOgogCiAgICAgZGVmIGlzX3ZhbGlkX2J1aWxkX2RpcmVjdG9yeShwYXRoKToKICAgICAg
ICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihwYXRoLCAnR05VbWFrZWZpbGUn
KSkgb3IgXAotICAgICAgICAgICAgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHBhdGgsICdQ
cm9ncmFtcycsICdEdW1wUmVuZGVyVHJlZScpKQorICAgICAgICAgICAgb3MucGF0aC5leGlzdHMo
b3MucGF0aC5qb2luKHBhdGgsICdQcm9ncmFtcycsICdHdGtMYXVuY2hlcicpKSBvciBcCisgICAg
ICAgICAgICBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4ocGF0aCwgJ1Byb2dyYW1zJywgJ01p
bmlCcm93c2VyJykpIG9yIFwKKyAgICAgICAgICAgIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9p
bihwYXRoLCAnQ01ha2VDYWNoZS50eHQnKSkgb3IgXAorICAgICAgICAgICAgb3MucGF0aC5leGlz
dHMob3MucGF0aC5qb2luKHBhdGgsICdiaW4vR3RrTGF1bmNoZXInKSkgb3IgXAorICAgICAgICAg
ICAgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHBhdGgsICdiaW4vTWluaUJyb3dzZXInKSkK
IAogICAgIGlmIGxlbihzeXMuYXJndlsxOl0pID4gMSBhbmQgb3MucGF0aC5leGlzdHMoc3lzLmFy
Z3ZbLTFdKSBhbmQgaXNfdmFsaWRfYnVpbGRfZGlyZWN0b3J5KHN5cy5hcmd2Wy0xXSk6CiAgICAg
ICAgIHJldHVybiBzeXMuYXJndlstMV0KZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1n
dGtkb2MgYi9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jCmluZGV4IDM2ZmFjNGRkN2VhNzRhYmJl
Y2Y3ZThiZGVkZjk3MmUxMTBhNGYyZmEuLjJlMGI5MzA4ZjA0NzE5YTJmYmVjYzUwMjZhYWQ5Mzhk
Mzc3YTI1NjQgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKKysrIGIvVG9v
bHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwpAQCAtNTgsMTAgKzU4LDE1IEBAIGRlZiBnZXRfY29tbW9u
X29wdGlvbnMoKToKICAgICAgICAgICAgIHZpcnR1YWxfcm9vdCA9IGFyZ3VtZW50LnNwbGl0KCc9
JylbMV0KICAgICAgICAgICAgIGJyZWFrCiAKKyAgICAjIENNYWtlIHVzZXMgbGliIGluc3RlYWQg
b2YgLmxpYnMuCisgICAgbGlicmFyeV9wYXRoID0gY29tbW9uLmJ1aWxkX3BhdGgoJy5saWJzJykK
KyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMobGlicmFyeV9wYXRoKToKKyAgICAgICAgbGlicmFy
eV9wYXRoID0gY29tbW9uLmJ1aWxkX3BhdGgoJ2xpYicpCisKICAgICByZXR1cm4gewogICAgICAg
ICAnZGVjb3JhdG9yJzogJ1dFQktJVF9BUEl8V0VCS0lUX0RFUFJFQ0FURUR8V0VCS0lUX0RFUFJF
Q0FURURfRk9SXCguK1wpJywKICAgICAgICAgJ2RlcHJlY2F0aW9uX2d1YXJkJzogJ1dFQktJVF9E
SVNBQkxFX0RFUFJFQ0FURUQnLAotICAgICAgICAnbGlicmFyeV9wYXRoJyA6IGNvbW1vbi5idWls
ZF9wYXRoKCcubGlicycpLAorICAgICAgICAnbGlicmFyeV9wYXRoJyA6IGxpYnJhcnlfcGF0aCwK
ICAgICAgICAgJ3ZpcnR1YWxfcm9vdCcgOiB2aXJ0dWFsX3Jvb3QsCiAgICAgfQogCkBAIC04OCw2
ICs5MywxNiBAQCBkZWYgZ2V0X3dlYmtpdDJfb3B0aW9ucygpOgogICAgICAgICAnZ3RrKy0zLjAn
IDogWydndGszJywgJ2dkazMnXQogICAgIH0pCiAKKyAgICBzb3VyY2VfZGlycyA9IFtzcmNfcGF0
aCgnd2Via2l0JyldCisKKyAgICAjIFRoZSBDTWFrZSBidWlsZCBwdXRzIHRoZSB3ZWJraXR2ZXJz
aW9uLmggZmlsZSBpbiBEZXJpdmVkU291cmNlcy93ZWJraXQsIHRoZQorICAgICMgYXV0b3Rvb2xz
IG9uZSB1c2VzIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC4KKyAgICBidWlsdF93ZWJraXRfcGF0
aCA9IGNvbW1vbi5idWlsZF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0JywgJ2d0aycsICd3ZWJraXQn
KQorICAgIGlmIG9zLnBhdGguZXhpc3RzKGJ1aWx0X3dlYmtpdF9wYXRoKToKKyAgICAgICAgc291
cmNlX2RpcnMuYXBwZW5kKGJ1aWx0X3dlYmtpdF9wYXRoKQorICAgIGVsc2U6CisgICAgICAgIHNv
dXJjZV9kaXJzLmFwcGVuZChjb21tb24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMnLCAnd2Vi
a2l0JykpCisKICAgICBvcHRpb25zID0gZ2V0X2NvbW1vbl9vcHRpb25zKCkuY29weSgpCiAgICAg
b3B0aW9ucy51cGRhdGUoewogICAgICAgICAnbW9kdWxlX25hbWUnIDogJ3dlYmtpdDJndGsnLApA
QCAtMTMwLDEzICsxNDUsMjMgQEAgZGVmIGdldF93ZWJraXQxX29wdGlvbnMoZ3RrX3ZlcnNpb24p
OgogICAgICAgICAgICAgICAgICdndGsrLTIuMCcgOiBbJ2d0aycsICdnZGsnXQogICAgICAgICB9
KQogCisgICAgc291cmNlX2RpcnMgPSBbc3JjX3BhdGgoJ3dlYmtpdCcpXQorCisgICAgIyBUaGUg
Q01ha2UgYnVpbGQgcHV0cyB0aGUgd2Via2l0dmVyc2lvbi5oIGZpbGUgaW4gRGVyaXZlZFNvdXJj
ZXMvd2Via2l0LCB0aGUKKyAgICAjIGF1dG90b29scyBvbmUgdXNlcyBTb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQuCisgICAgYnVpbHRfd2Via2l0X3BhdGggPSBjb21tb24uYnVpbGRfcGF0aCgnU291
cmNlJywgJ1dlYktpdCcsICdndGsnLCAnd2Via2l0JykKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhi
dWlsdF93ZWJraXRfcGF0aCk6CisgICAgICAgIHNvdXJjZV9kaXJzLmFwcGVuZChidWlsdF93ZWJr
aXRfcGF0aCkKKyAgICBlbHNlOgorICAgICAgICBzb3VyY2VfZGlycy5hcHBlbmQoY29tbW9uLmJ1
aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2VzJywgJ3dlYmtpdCcpKQorCiAgICAgb3B0aW9ucyA9IGdl
dF9jb21tb25fb3B0aW9ucygpLmNvcHkoKQogICAgIG9wdGlvbnMudXBkYXRlKHsKICAgICAgICAg
J21vZHVsZV9uYW1lJyA6ICd3ZWJraXRndGsnLAogICAgICAgICAnbmFtZXNwYWNlJyA6ICd3ZWJr
aXQnLAogICAgICAgICAnZG9jX2RpcicgOiBzcmNfcGF0aCgnZG9jcycpLAogICAgICAgICAnb3V0
cHV0X2RpcicgOiBjb21tb24uYnVpbGRfcGF0aCgnRG9jdW1lbnRhdGlvbicsICd3ZWJraXRndGsn
KSwKLSAgICAgICAgJ3NvdXJjZV9kaXJzJyA6IFtzcmNfcGF0aCgnd2Via2l0JyksIGNvbW1vbi5i
dWlsZF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0JywgJ2d0aycsICd3ZWJraXQnKV0sCisgICAgICAg
ICdzb3VyY2VfZGlycycgOiBzb3VyY2VfZGlycywKICAgICAgICAgJ2NmbGFncycgOiAnIC1JJyAr
IGNvbW1vbi5idWlsZF9wYXRoKCdXZWJLaXQnLCAnZ3RrJykgKyBcCiAgICAgICAgICAgICAgICAg
ICAgJyAtSScgKyBjb21tb24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMnKSArIFwKICAgICAg
ICAgICAgICAgICAgICAnIC1JJyArIHNyY19wYXRoKCkgKyBcCkBAIC0yMTYsMTYgKzI0MSwxOSBA
QCBpZiBvcy5wYXRoLmV4aXN0cyh3azJfcGtnX2NvbmZpZ19wYXRoKToKICAgICBwa2dfY29uZmln
X3BhdGggPSB3azJfcGtnX2NvbmZpZ19wYXRoCiBlbGlmIG9zLnBhdGguZXhpc3RzKHdrMV9wa2df
Y29uZmlnX3BhdGgpOgogICAgIHBrZ19jb25maWdfcGF0aCA9IHdrMV9wa2dfY29uZmlnX3BhdGgK
LWdlbmVyYXRvciA9IGd0a2RvYy5Qa2dDb25maWdHVEtEb2MocGtnX2NvbmZpZ19wYXRoLCBnZXRf
d2Via2l0ZG9tX29wdGlvbnMoKSkKLWlmICctLXJlYmFzZScgbm90IGluIHN5cy5hcmd2OgotICAg
IHByaW50KCJcbkdlbmVyYXRpbmcgV2ViS2l0RE9NIGRvY3VtZW50YXRpb24uLi4iKQotICAgIHNh
d193ZWJraXRkb21fd2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yKQotZWxzZToKLSAg
ICBwcmludCgiXG5SZWJhc2luZyBXZWJLaXRET00gZG9jdW1lbnRhdGlvbi4uLiIpCi0gICAgdHJ5
OgotICAgICAgICBnZW5lcmF0b3IucmViYXNlX2luc3RhbGxlZF9kb2NzKCkKLSAgICBleGNlcHQg
RXhjZXB0aW9uOgotICAgICAgICBwcmludCgiUmViYXNlIGRpZCBub3QgaGFwcGVuLCBsaWtlbHkg
bm8gZG9jdW1lbnRhdGlvbiBpcyBwcmVzZW50LiIpCisKK3dlYmtpdGRvbV9kb2NzX3BhdGggPSBj
b21tb24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMnLCAnd2Via2l0ZG9tJywgJ2RvY3MnKQor
aWYgb3MucGF0aC5leGlzdHMod2Via2l0ZG9tX2RvY3NfcGF0aCk6CisgICAgZ2VuZXJhdG9yID0g
Z3RrZG9jLlBrZ0NvbmZpZ0dUS0RvYyhwa2dfY29uZmlnX3BhdGgsIGdldF93ZWJraXRkb21fb3B0
aW9ucygpKQorICAgIGlmICctLXJlYmFzZScgbm90IGluIHN5cy5hcmd2OgorICAgICAgICBwcmlu
dCgiXG5HZW5lcmF0aW5nIFdlYktpdERPTSBkb2N1bWVudGF0aW9uLi4uIikKKyAgICAgICAgc2F3
X3dlYmtpdGRvbV93YXJuaW5ncyA9IGdlbmVyYXRlX2RvYyhnZW5lcmF0b3IpCisgICAgZWxzZToK
KyAgICAgICAgcHJpbnQoIlxuUmViYXNpbmcgV2ViS2l0RE9NIGRvY3VtZW50YXRpb24uLi4iKQor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBnZW5lcmF0b3IucmViYXNlX2luc3RhbGxlZF9kb2Nz
KCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHByaW50KCJSZWJhc2Ug
ZGlkIG5vdCBoYXBwZW4sIGxpa2VseSBubyBkb2N1bWVudGF0aW9uIGlzIHByZXNlbnQuIikKIAog
cGtnX2NvbmZpZ19wYXRoID0gd2sxX3BrZ19jb25maWdfcGF0aAogaWYgb3MucGF0aC5leGlzdHMo
cGtnX2NvbmZpZ19wYXRoKToKQEAgLTI1NSw0ICsyODMsNyBAQCBpZiBvcy5wYXRoLmV4aXN0cyhw
a2dfY29uZmlnX3BhdGgpOgogICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAg
cHJpbnQoIlJlYmFzZSBkaWQgbm90IGhhcHBlbiwgbGlrZWx5IG5vIGRvY3VtZW50YXRpb24gaXMg
cHJlc2VudC4iKQogCi1zeXMuZXhpdChzYXdfd2Via2l0MV93YXJuaW5ncyBvciBzYXdfd2Via2l0
Ml93YXJuaW5ncykKKyMgRm9yIENNYWtlIHdlIGFyZSBzdGlsbCBnZW5lcmF0aW5nIHdhcm5pbmdz
IGJlY2F1c2Ugd2UgbGFjayBET00gYmluZGluZ3MgZG9jcywKKyMgc28gZG8gbm90IGNhdXNlIHRo
ZSBidWlsZCB0byBmYWlsIGZvciBub3cuCitpZiBub3Qgb3MucGF0aC5leGlzdHMob3MucGF0aC5q
b2luKG9zLmdldGN3ZCgpLCAnQ01ha2VDYWNoZS50eHQnKSk6CisgICAgc3lzLmV4aXQoc2F3X3dl
YmtpdDFfd2FybmluZ3Mgb3Igc2F3X3dlYmtpdDJfd2FybmluZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219884</attachid>
            <date>2013-12-22 12:55:59 -0800</date>
            <delta_ts>2013-12-23 13:04:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116376-20131222185558.patch</filename>
            <type>text/plain</type>
            <size>9794</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwOTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzg3ODIxOThkMGQ2Y2Fi
NTk2NWRhNjFmZmRlNjM3MWI1OTM2ZGFjNi4uZGE4MmQzYmZkNmIxNTFkZTQ4MWIxOTYyYjRiY2Iw
NTA0ZDY4Y2ZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEyLTE5ICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFtDTWFr
ZV0gQWRkIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgZ3RrZG9jCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzNzYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBtYWtlIGdl
bmVyYXRlZCBBUEkgZmlsZXMgZ28gdG8gRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiwgdG8KKyAgICAg
ICAgbWF0Y2ggdGhlIGF1dG90b29scyBidWlsZCBhbmQgZ3RrZG9jLnB5J3MgZXhwZWN0YXRpb24u
CisKIDIwMTMtMTItMjIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAK
ICAgICAgICAgW0dUS10gW0NNYWtlXSBHZW5lcmF0ZSBwa2ctY29uZmlnIGZpbGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtR1RLLmNtYWtlCmluZGV4IGY1YTY0MjQxZWZkMWViODhlZGFhOGIxMDg1MzM0ZjkzMmJk
MDA1MmUuLjZlMjFiOWQ4MGRmZWU2MTllY2M1M2Y1ZTViNzJhZjNiMDMyZmQ4NjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xLDUgKzEsNSBAQAogc2V0KERFUklWRURfU09VUkNFU19H
T0JKRUNUX0RPTV9CSU5ESU5HU19ESVIgJHtERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXRkb20p
Ci1zZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vd2Via2l0Mmd0aykKK3NldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19ESVIgJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9XZWJLaXQyL3dlYmtpdDJndGspCiBzZXQoV0VCS0lUMl9CVUlMVF9B
UElfRElSICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfS93ZWJraXQyKQogc2V0KFdF
QktJVDJfRk9SV0FSRElOR19IRUFERVJTX0RJUiAke0RFUklWRURfU09VUkNFU19ESVJ9L0Zvcndh
cmRpbmdIZWFkZXJzL3dlYmtpdDJndGspCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNzY2NDk0Y2MyNjZkNGFiY2VhYTI0MGE3NWI0MjdmYjg1
OWViZWNmLi44ZDcyYjRlOWE1MTE5MmZmZDRkY2NjNTc4ZGIwMTIzZmE4OGE0YTZiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTMtMTItMTkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CisK
KyAgICAgICAgW0dUS10gW0NNYWtlXSBBZGQgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBndGtkb2MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjM3Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IGFkZCB0aGUgbmV3IHN1YmRpcmVjdG9yeS4KKyAgICAgICAgKiBndGsvQ01ha2VM
aXN0cy50eHQ6IEFkZGVkLiBOZXcgY3VzdG9tIHRhcmdldCB0aGF0IGRlcGVuZHMgb24gYSBjdXN0
b20gY29tbWFuZAorICAgICAgICB3aGljaCBjYWxscyBvdXIgZ2VuZXJhdGUtZ3RrZG9jIHNjcmlw
dC4gSXQgdXNlcyBhIGRvY3MtYnVpbGQuc3RhbXAgZm9yIHNpbXBsaWNpdHksCisgICAgICAgIGxp
a2UgdGhlIGF1dG90b29scyBidWlsZC4KKyAgICAgICAgKiBndGsvY29tbW9uLnB5OiBsb29rIGZv
ciBmaWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMgdXNlZCBieSB0aGUgY21ha2UgYnVpbGQgYXMgd2Vs
bC4KKwogMjAxMy0xMi0yMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgog
CiAgICAgICAgIExhc3QgVVJUQkYgYWZ0ZXIgcjE2MDk3MSB0byBtYWtlIEVGTCBidWlsZCBoYXBw
eS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01ha2VMaXN0cy50
eHQKaW5kZXggNDFmZjk5YTZjZjc3ODlhMTk4NTgzMzY2MWM2MDdkM2I1MDJjMGMxNC4uM2Y1MWFh
ZWRmMTJkMzQxZDFjZDUyZDMxODgzMTVjNGFmNGNmMDI3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ01h
a2VMaXN0cy50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKQEAgLTE2LDcgKzE2LDcgQEAg
aWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiRWZsIikKICAgICBlbmRpZiAoKQogICAgIGFkZF9zdWJk
aXJlY3RvcnkoRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luKQogZWxzZWlmICgiJHtQ
T1JUfSIgU1RSRVFVQUwgIkdUSyIpCi0gICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCisg
ICAgYWRkX3N1YmRpcmVjdG9yeShndGspCiAgICAgaWYgKEVOQUJMRV9XRUJLSVQyKQogICAgICAg
ICBhZGRfc3ViZGlyZWN0b3J5KE1pbmlCcm93c2VyL2d0aykKICAgICBlbmRpZiAoKQpAQCAtMjQs
NiArMjQsNyBAQCBlbHNlaWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiR1RLIikKICAgICAgICAgYWRk
X3N1YmRpcmVjdG9yeShHdGtMYXVuY2hlcikKICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShEdW1w
UmVuZGVyVHJlZSkKICAgICBlbmRpZiAoKQorICAgIGFkZF9zdWJkaXJlY3RvcnkoSW1hZ2VEaWZm
KQogICAgIGFkZF9zdWJkaXJlY3RvcnkoRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0lu
KQogZWxzZWlmICgiJHtQT1JUfSIgU1RSRVFVQUwgIldpbkNFIikKICAgICBhZGRfc3ViZGlyZWN0
b3J5KFdpbkNFTGF1bmNoZXIpCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvQ01ha2VMaXN0cy50eHQg
Yi9Ub29scy9ndGsvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U1ZDM1ZjAyMmMzYTc5YmNi
YWNkOGFiYjg2ZWIzMTM5Y2FjZDg4NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL2d0ay9DTWFr
ZUxpc3RzLnR4dApAQCAtMCwwICsxLDQwIEBACitzZXQoR1RLX0RPQ1NfREVQRU5ERU5DSUVTCisg
ICAgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRlbnZp
cm9ubWVudC54bWwiCispCisKK2lmIChFTkFCTEVfV0VCS0lUKQorICAgIGxpc3QoQVBQRU5EIEdU
S19ET0NTX0RFUEVOREVOQ0lFUworICAgICAgICBXZWJLaXQKKyAgICAgICAgIiR7Q01BS0VfU09V
UkNFX0RJUn0vU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGstZG9jcy5zZ21sIgorICAg
ICAgICAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0
ay1zZWN0aW9ucy50eHQiCisgICAgKQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9XRUJLSVQyKQor
ICAgIGxpc3QoQVBQRU5EIEdUS19ET0NTX0RFUEVOREVOQ0lFUworICAgICAgICBXZWJLaXQyCisg
ICAgICAgICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwiCisgICAgICAgICIke0NNQUtFX1NPVVJDRV9E
SVJ9L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0
aW9ucy50eHQiCisgICAgKQorZW5kaWYgKCkKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9V
VFBVVCBkb2NzLWJ1aWxkLnN0YW1wCisgICAgREVQRU5EUyAke0dUS19ET0NTX0RFUEVOREVOQ0lF
U30KKyAgICBDT01NQU5EIENDPSIke0NNQUtFX0NfQ09NUElMRVJ9IiAke0NNQUtFX1NPVVJDRV9E
SVJ9L1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MgLXYKKyAgICBDT01NQU5EIHRvdWNoIGRvY3Mt
YnVpbGQuc3RhbXAKKyAgICBXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfSIK
KykKKworYWRkX2N1c3RvbV90YXJnZXQoZmFrZS1kb2NzLXRhcmdldCBBTEwKKyAgICBERVBFTkRT
IGRvY3MtYnVpbGQuc3RhbXAKKykKKworaWYgKEVOQUJMRV9XRUJLSVQpCisgICAgYWRkX2RlcGVu
ZGVuY2llcyhmYWtlLWRvY3MtdGFyZ2V0IFdlYktpdCkKK2VuZGlmICgpCisKK2lmIChFTkFCTEVf
V0VCS0lUMikKKyAgICBhZGRfZGVwZW5kZW5jaWVzKGZha2UtZG9jcy10YXJnZXQgV2ViS2l0MikK
K2VuZGlmICgpCisKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9jb21tb24ucHkgYi9Ub29scy9ndGsv
Y29tbW9uLnB5CmluZGV4IDQyNTVjOWI3MzkwMzM0ZDJlMjk1N2Y5ZDg0MjAxZmNlNjIyZDRkYjcu
LmUxYmZhODNhZGQ5YTY2OWUwMWJjOGY1YjJmODlhNTVkNDE0MjlmZjcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL2d0ay9jb21tb24ucHkKKysrIGIvVG9vbHMvZ3RrL2NvbW1vbi5weQpAQCAtNDMsNyArNDMs
MTEgQEAgZGVmIGdldF9idWlsZF9wYXRoKGJ1aWxkX3R5cGVzPSgnUmVsZWFzZScsICdEZWJ1Zycp
LCBmYXRhbD1UcnVlKToKIAogICAgIGRlZiBpc192YWxpZF9idWlsZF9kaXJlY3RvcnkocGF0aCk6
CiAgICAgICAgIHJldHVybiBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4ocGF0aCwgJ0dOVW1h
a2VmaWxlJykpIG9yIFwKLSAgICAgICAgICAgIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihw
YXRoLCAnUHJvZ3JhbXMnLCAnRHVtcFJlbmRlclRyZWUnKSkKKyAgICAgICAgICAgIG9zLnBhdGgu
ZXhpc3RzKG9zLnBhdGguam9pbihwYXRoLCAnUHJvZ3JhbXMnLCAnR3RrTGF1bmNoZXInKSkgb3Ig
XAorICAgICAgICAgICAgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHBhdGgsICdQcm9ncmFt
cycsICdNaW5pQnJvd3NlcicpKSBvciBcCisgICAgICAgICAgICBvcy5wYXRoLmV4aXN0cyhvcy5w
YXRoLmpvaW4ocGF0aCwgJ0NNYWtlQ2FjaGUudHh0JykpIG9yIFwKKyAgICAgICAgICAgIG9zLnBh
dGguZXhpc3RzKG9zLnBhdGguam9pbihwYXRoLCAnYmluL0d0a0xhdW5jaGVyJykpIG9yIFwKKyAg
ICAgICAgICAgIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihwYXRoLCAnYmluL01pbmlCcm93
c2VyJykpCiAKICAgICBpZiBsZW4oc3lzLmFyZ3ZbMTpdKSA+IDEgYW5kIG9zLnBhdGguZXhpc3Rz
KHN5cy5hcmd2Wy0xXSkgYW5kIGlzX3ZhbGlkX2J1aWxkX2RpcmVjdG9yeShzeXMuYXJndlstMV0p
OgogICAgICAgICByZXR1cm4gc3lzLmFyZ3ZbLTFdCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvZ2Vu
ZXJhdGUtZ3RrZG9jIGIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwppbmRleCAzNmZhYzRkZDdl
YTc0YWJiZWNmN2U4YmRlZGY5NzJlMTEwYTRmMmZhLi4yZTBiOTMwOGYwNDcxOWEyZmJlY2M1MDI2
YWFkOTM4ZDM3N2EyNTY0IDEwMDc1NQotLS0gYS9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jCisr
KyBiL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKQEAgLTU4LDEwICs1OCwxNSBAQCBkZWYgZ2V0
X2NvbW1vbl9vcHRpb25zKCk6CiAgICAgICAgICAgICB2aXJ0dWFsX3Jvb3QgPSBhcmd1bWVudC5z
cGxpdCgnPScpWzFdCiAgICAgICAgICAgICBicmVhawogCisgICAgIyBDTWFrZSB1c2VzIGxpYiBp
bnN0ZWFkIG9mIC5saWJzLgorICAgIGxpYnJhcnlfcGF0aCA9IGNvbW1vbi5idWlsZF9wYXRoKCcu
bGlicycpCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGxpYnJhcnlfcGF0aCk6CisgICAgICAg
IGxpYnJhcnlfcGF0aCA9IGNvbW1vbi5idWlsZF9wYXRoKCdsaWInKQorCiAgICAgcmV0dXJuIHsK
ICAgICAgICAgJ2RlY29yYXRvcic6ICdXRUJLSVRfQVBJfFdFQktJVF9ERVBSRUNBVEVEfFdFQktJ
VF9ERVBSRUNBVEVEX0ZPUlwoLitcKScsCiAgICAgICAgICdkZXByZWNhdGlvbl9ndWFyZCc6ICdX
RUJLSVRfRElTQUJMRV9ERVBSRUNBVEVEJywKLSAgICAgICAgJ2xpYnJhcnlfcGF0aCcgOiBjb21t
b24uYnVpbGRfcGF0aCgnLmxpYnMnKSwKKyAgICAgICAgJ2xpYnJhcnlfcGF0aCcgOiBsaWJyYXJ5
X3BhdGgsCiAgICAgICAgICd2aXJ0dWFsX3Jvb3QnIDogdmlydHVhbF9yb290LAogICAgIH0KIApA
QCAtODgsNiArOTMsMTYgQEAgZGVmIGdldF93ZWJraXQyX29wdGlvbnMoKToKICAgICAgICAgJ2d0
aystMy4wJyA6IFsnZ3RrMycsICdnZGszJ10KICAgICB9KQogCisgICAgc291cmNlX2RpcnMgPSBb
c3JjX3BhdGgoJ3dlYmtpdCcpXQorCisgICAgIyBUaGUgQ01ha2UgYnVpbGQgcHV0cyB0aGUgd2Vi
a2l0dmVyc2lvbi5oIGZpbGUgaW4gRGVyaXZlZFNvdXJjZXMvd2Via2l0LCB0aGUKKyAgICAjIGF1
dG90b29scyBvbmUgdXNlcyBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQuCisgICAgYnVpbHRfd2Vi
a2l0X3BhdGggPSBjb21tb24uYnVpbGRfcGF0aCgnU291cmNlJywgJ1dlYktpdCcsICdndGsnLCAn
d2Via2l0JykKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhidWlsdF93ZWJraXRfcGF0aCk6CisgICAg
ICAgIHNvdXJjZV9kaXJzLmFwcGVuZChidWlsdF93ZWJraXRfcGF0aCkKKyAgICBlbHNlOgorICAg
ICAgICBzb3VyY2VfZGlycy5hcHBlbmQoY29tbW9uLmJ1aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2Vz
JywgJ3dlYmtpdCcpKQorCiAgICAgb3B0aW9ucyA9IGdldF9jb21tb25fb3B0aW9ucygpLmNvcHko
KQogICAgIG9wdGlvbnMudXBkYXRlKHsKICAgICAgICAgJ21vZHVsZV9uYW1lJyA6ICd3ZWJraXQy
Z3RrJywKQEAgLTEzMCwxMyArMTQ1LDIzIEBAIGRlZiBnZXRfd2Via2l0MV9vcHRpb25zKGd0a192
ZXJzaW9uKToKICAgICAgICAgICAgICAgICAnZ3RrKy0yLjAnIDogWydndGsnLCAnZ2RrJ10KICAg
ICAgICAgfSkKIAorICAgIHNvdXJjZV9kaXJzID0gW3NyY19wYXRoKCd3ZWJraXQnKV0KKworICAg
ICMgVGhlIENNYWtlIGJ1aWxkIHB1dHMgdGhlIHdlYmtpdHZlcnNpb24uaCBmaWxlIGluIERlcml2
ZWRTb3VyY2VzL3dlYmtpdCwgdGhlCisgICAgIyBhdXRvdG9vbHMgb25lIHVzZXMgU291cmNlL1dl
YktpdC9ndGsvd2Via2l0LgorICAgIGJ1aWx0X3dlYmtpdF9wYXRoID0gY29tbW9uLmJ1aWxkX3Bh
dGgoJ1NvdXJjZScsICdXZWJLaXQnLCAnZ3RrJywgJ3dlYmtpdCcpCisgICAgaWYgb3MucGF0aC5l
eGlzdHMoYnVpbHRfd2Via2l0X3BhdGgpOgorICAgICAgICBzb3VyY2VfZGlycy5hcHBlbmQoYnVp
bHRfd2Via2l0X3BhdGgpCisgICAgZWxzZToKKyAgICAgICAgc291cmNlX2RpcnMuYXBwZW5kKGNv
bW1vbi5idWlsZF9wYXRoKCdEZXJpdmVkU291cmNlcycsICd3ZWJraXQnKSkKKwogICAgIG9wdGlv
bnMgPSBnZXRfY29tbW9uX29wdGlvbnMoKS5jb3B5KCkKICAgICBvcHRpb25zLnVwZGF0ZSh7CiAg
ICAgICAgICdtb2R1bGVfbmFtZScgOiAnd2Via2l0Z3RrJywKICAgICAgICAgJ25hbWVzcGFjZScg
OiAnd2Via2l0JywKICAgICAgICAgJ2RvY19kaXInIDogc3JjX3BhdGgoJ2RvY3MnKSwKICAgICAg
ICAgJ291dHB1dF9kaXInIDogY29tbW9uLmJ1aWxkX3BhdGgoJ0RvY3VtZW50YXRpb24nLCAnd2Vi
a2l0Z3RrJyksCi0gICAgICAgICdzb3VyY2VfZGlycycgOiBbc3JjX3BhdGgoJ3dlYmtpdCcpLCBj
b21tb24uYnVpbGRfcGF0aCgnU291cmNlJywgJ1dlYktpdCcsICdndGsnLCAnd2Via2l0JyldLAor
ICAgICAgICAnc291cmNlX2RpcnMnIDogc291cmNlX2RpcnMsCiAgICAgICAgICdjZmxhZ3MnIDog
JyAtSScgKyBjb21tb24uYnVpbGRfcGF0aCgnV2ViS2l0JywgJ2d0aycpICsgXAogICAgICAgICAg
ICAgICAgICAgICcgLUknICsgY29tbW9uLmJ1aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2VzJykgKyBc
CiAgICAgICAgICAgICAgICAgICAgJyAtSScgKyBzcmNfcGF0aCgpICsgXApAQCAtMjE2LDE2ICsy
NDEsMTkgQEAgaWYgb3MucGF0aC5leGlzdHMod2syX3BrZ19jb25maWdfcGF0aCk6CiAgICAgcGtn
X2NvbmZpZ19wYXRoID0gd2syX3BrZ19jb25maWdfcGF0aAogZWxpZiBvcy5wYXRoLmV4aXN0cyh3
azFfcGtnX2NvbmZpZ19wYXRoKToKICAgICBwa2dfY29uZmlnX3BhdGggPSB3azFfcGtnX2NvbmZp
Z19wYXRoCi1nZW5lcmF0b3IgPSBndGtkb2MuUGtnQ29uZmlnR1RLRG9jKHBrZ19jb25maWdfcGF0
aCwgZ2V0X3dlYmtpdGRvbV9vcHRpb25zKCkpCi1pZiAnLS1yZWJhc2UnIG5vdCBpbiBzeXMuYXJn
djoKLSAgICBwcmludCgiXG5HZW5lcmF0aW5nIFdlYktpdERPTSBkb2N1bWVudGF0aW9uLi4uIikK
LSAgICBzYXdfd2Via2l0ZG9tX3dhcm5pbmdzID0gZ2VuZXJhdGVfZG9jKGdlbmVyYXRvcikKLWVs
c2U6Ci0gICAgcHJpbnQoIlxuUmViYXNpbmcgV2ViS2l0RE9NIGRvY3VtZW50YXRpb24uLi4iKQot
ICAgIHRyeToKLSAgICAgICAgZ2VuZXJhdG9yLnJlYmFzZV9pbnN0YWxsZWRfZG9jcygpCi0gICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgcHJpbnQoIlJlYmFzZSBkaWQgbm90IGhhcHBlbiwg
bGlrZWx5IG5vIGRvY3VtZW50YXRpb24gaXMgcHJlc2VudC4iKQorCit3ZWJraXRkb21fZG9jc19w
YXRoID0gY29tbW9uLmJ1aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2VzJywgJ3dlYmtpdGRvbScsICdk
b2NzJykKK2lmIG9zLnBhdGguZXhpc3RzKHdlYmtpdGRvbV9kb2NzX3BhdGgpOgorICAgIGdlbmVy
YXRvciA9IGd0a2RvYy5Qa2dDb25maWdHVEtEb2MocGtnX2NvbmZpZ19wYXRoLCBnZXRfd2Via2l0
ZG9tX29wdGlvbnMoKSkKKyAgICBpZiAnLS1yZWJhc2UnIG5vdCBpbiBzeXMuYXJndjoKKyAgICAg
ICAgcHJpbnQoIlxuR2VuZXJhdGluZyBXZWJLaXRET00gZG9jdW1lbnRhdGlvbi4uLiIpCisgICAg
ICAgIHNhd193ZWJraXRkb21fd2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yKQorICAg
IGVsc2U6CisgICAgICAgIHByaW50KCJcblJlYmFzaW5nIFdlYktpdERPTSBkb2N1bWVudGF0aW9u
Li4uIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZ2VuZXJhdG9yLnJlYmFzZV9pbnN0YWxs
ZWRfZG9jcygpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBwcmludCgi
UmViYXNlIGRpZCBub3QgaGFwcGVuLCBsaWtlbHkgbm8gZG9jdW1lbnRhdGlvbiBpcyBwcmVzZW50
LiIpCiAKIHBrZ19jb25maWdfcGF0aCA9IHdrMV9wa2dfY29uZmlnX3BhdGgKIGlmIG9zLnBhdGgu
ZXhpc3RzKHBrZ19jb25maWdfcGF0aCk6CkBAIC0yNTUsNCArMjgzLDcgQEAgaWYgb3MucGF0aC5l
eGlzdHMocGtnX2NvbmZpZ19wYXRoKToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAg
ICAgICAgIHByaW50KCJSZWJhc2UgZGlkIG5vdCBoYXBwZW4sIGxpa2VseSBubyBkb2N1bWVudGF0
aW9uIGlzIHByZXNlbnQuIikKIAotc3lzLmV4aXQoc2F3X3dlYmtpdDFfd2FybmluZ3Mgb3Igc2F3
X3dlYmtpdDJfd2FybmluZ3MpCisjIEZvciBDTWFrZSB3ZSBhcmUgc3RpbGwgZ2VuZXJhdGluZyB3
YXJuaW5ncyBiZWNhdXNlIHdlIGxhY2sgRE9NIGJpbmRpbmdzIGRvY3MsCisjIHNvIGRvIG5vdCBj
YXVzZSB0aGUgYnVpbGQgdG8gZmFpbCBmb3Igbm93LgoraWYgbm90IG9zLnBhdGguZXhpc3RzKG9z
LnBhdGguam9pbihvcy5nZXRjd2QoKSwgJ0NNYWtlQ2FjaGUudHh0JykpOgorICAgIHN5cy5leGl0
KHNhd193ZWJraXQxX3dhcm5pbmdzIG9yIHNhd193ZWJraXQyX3dhcm5pbmdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219927</attachid>
            <date>2013-12-23 13:04:09 -0800</date>
            <delta_ts>2013-12-23 13:22:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116376-20131223190408.patch</filename>
            <type>text/plain</type>
            <size>9323</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTdjNDU5NGE0MDQ5Mjg4
YmE5ODQ4Y2U4MzI4OGNjZjg0NDZkOTk0Ny4uMzk1NjRkYWI1OTM1ZjU5NDBkYWRkZWI2NzJiYWFj
NzVhNjRkZWVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEyLTIzICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFtDTWFr
ZV0gQWRkIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgZ3RrZG9jCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzNzYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBtYWtlIGdl
bmVyYXRlZCBBUEkgZmlsZXMgZ28gdG8gRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiwgdG8KKyAgICAg
ICAgbWF0Y2ggdGhlIGF1dG90b29scyBidWlsZCBhbmQgZ3RrZG9jLnB5J3MgZXhwZWN0YXRpb24u
CisKIDIwMTMtMTItMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdW0NNYWtlXSBsaWJ0b29sLWNvbXBhdGlibGUgc292ZXJzaW9uIGNhbGN1
bGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvUGxh
dGZvcm1HVEsuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U1ZDM1ZjAyMmMzYTc5YmNiYWNkOGFiYjg2ZWIz
MTM5Y2FjZDg4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybUdUSy5jbWFrZQpA
QCAtMCwwICsxLDQwIEBACitzZXQoR1RLX0RPQ1NfREVQRU5ERU5DSUVTCisgICAgIiR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWwi
CispCisKK2lmIChFTkFCTEVfV0VCS0lUKQorICAgIGxpc3QoQVBQRU5EIEdUS19ET0NTX0RFUEVO
REVOQ0lFUworICAgICAgICBXZWJLaXQKKyAgICAgICAgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGstZG9jcy5zZ21sIgorICAgICAgICAiJHtDTUFL
RV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50
eHQiCisgICAgKQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9XRUJLSVQyKQorICAgIGxpc3QoQVBQ
RU5EIEdUS19ET0NTX0RFUEVOREVOQ0lFUworICAgICAgICBXZWJLaXQyCisgICAgICAgICIke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay1kb2NzLnNnbWwiCisgICAgICAgICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQiCisg
ICAgKQorZW5kaWYgKCkKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCBkb2NzLWJ1
aWxkLnN0YW1wCisgICAgREVQRU5EUyAke0dUS19ET0NTX0RFUEVOREVOQ0lFU30KKyAgICBDT01N
QU5EIENDPSIke0NNQUtFX0NfQ09NUElMRVJ9IiAke0NNQUtFX1NPVVJDRV9ESVJ9L1Rvb2xzL2d0
ay9nZW5lcmF0ZS1ndGtkb2MgLXYKKyAgICBDT01NQU5EIHRvdWNoIGRvY3MtYnVpbGQuc3RhbXAK
KyAgICBXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfSIKKykKKworYWRkX2N1
c3RvbV90YXJnZXQoZmFrZS1kb2NzLXRhcmdldCBBTEwKKyAgICBERVBFTkRTIGRvY3MtYnVpbGQu
c3RhbXAKKykKKworaWYgKEVOQUJMRV9XRUJLSVQpCisgICAgYWRkX2RlcGVuZGVuY2llcyhmYWtl
LWRvY3MtdGFyZ2V0IFdlYktpdCkKK2VuZGlmICgpCisKK2lmIChFTkFCTEVfV0VCS0lUMikKKyAg
ICBhZGRfZGVwZW5kZW5jaWVzKGZha2UtZG9jcy10YXJnZXQgV2ViS2l0MikKK2VuZGlmICgpCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjhjYzFmMGM0NWI5NGQwNWRjMzY2N2EyMWJk
ZDY3MDRhMjAwOTNkZC4uY2NiNjgxZDE0YzQ4ZDVkNWEwNTZiZWVmN2JhNTAxMmEyZWMwMzJhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEsNSArMSw1IEBACiBzZXQoREVSSVZFRF9T
T1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUiAke0RFUklWRURfU09VUkNFU19ESVJ9L3dl
YmtpdGRvbSkKLXNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19ESVIgJHtERVJJVkVEX1NP
VVJDRVNfRElSfS93ZWJraXQyZ3RrKQorc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0RJ
UiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdDIvd2Via2l0Mmd0aykKIHNldChXRUJLSVQy
X0JVSUxUX0FQSV9ESVIgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19ESVJ9L3dlYmtpdDIp
CiBzZXQoV0VCS0lUMl9GT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vRm9yd2FyZGluZ0hlYWRlcnMvd2Via2l0Mmd0aykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA0YjJhMGZhODMzYWU3YTRjMmI3OTI3ZmZi
ZDFjZTY0OGM3MjkzOWUuLjhhNTE5YmI2NTdmNWI4YTM1OTI4NTQ0YTk3YTRmOWE1MWNjNjJjNTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0xMi0yMyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21l
Lm9yZz4KKworICAgICAgICBbR1RLXSBbQ01ha2VdIEFkZCBzdXBwb3J0IGZvciBnZW5lcmF0aW5n
IGd0a2RvYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE2Mzc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBndGsvY29tbW9uLnB5OiBsb29rIGZvciBmaWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMgdXNlZCBi
eSB0aGUgY21ha2UgYnVpbGQgYXMgd2VsbC4KKwogMjAxMy0xMi0yMyAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQnVpbGQgd2l0aCBu
ZXR3b3JrIHByb2Nlc3MgdW5jb25kaXRpb25hbGx5CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvY29t
bW9uLnB5IGIvVG9vbHMvZ3RrL2NvbW1vbi5weQppbmRleCA0MjU1YzliNzM5MDMzNGQyZTI5NTdm
OWQ4NDIwMWZjZTYyMmQ0ZGI3Li41OTcxZmY3MDBjOWIzYzIwYzczNzEyMTk2NzMzYjk4Y2YwYTMx
ZDExIDEwMDY0NAotLS0gYS9Ub29scy9ndGsvY29tbW9uLnB5CisrKyBiL1Rvb2xzL2d0ay9jb21t
b24ucHkKQEAgLTIzLDYgKzIzLDMwIEBAIGltcG9ydCBzeXMKIAogc2NyaXB0X2RpciA9IE5vbmUK
IGJ1aWxkX2RpciA9IE5vbmUKK2xpYnJhcnlfYnVpbGRfZGlyID0gTm9uZQoraXNfY21ha2UgPSBO
b25lCisKKworZGVmIGlzX2NtYWtlX2J1aWxkKCk6CisgICAgZ2xvYmFsIGlzX2NtYWtlCisKKyAg
ICBpZiB0eXBlKGlzX2NtYWtlKSBpcyBub3QgYm9vbDoKKyAgICAgICAgaWYgYnVpbGRfcGF0aCgn
Q01ha2VDYWNoZS50eHQnKToKKyAgICAgICAgICAgIGlzX2NtYWtlID0gVHJ1ZQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgaXNfY21ha2UgPSBGYWxzZQorCisgICAgcmV0dXJuIGlzX2NtYWtl
CisKKworZGVmIGxpYnJhcnlfYnVpbGRfcGF0aCgqYXJncyk6CisgICAgZ2xvYmFsIGxpYnJhcnlf
YnVpbGRfZGlyCisgICAgaWYgbm90IGxpYnJhcnlfYnVpbGRfZGlyOgorICAgICAgICBpZiBpc19j
bWFrZV9idWlsZCgpOgorICAgICAgICAgICAgbGlicmFyeV9idWlsZF9kaXIgPSBidWlsZF9wYXRo
KCdsaWInLCAqYXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxpYnJhcnlfYnVpbGRf
ZGlyID0gYnVpbGRfcGF0aCgnLmxpYnMnLCAqYXJncykKKyAgICByZXR1cm4gbGlicmFyeV9idWls
ZF9kaXIKIAogCiBkZWYgc2NyaXB0X3BhdGgoKmFyZ3MpOgpAQCAtNDMsNyArNjcsMTEgQEAgZGVm
IGdldF9idWlsZF9wYXRoKGJ1aWxkX3R5cGVzPSgnUmVsZWFzZScsICdEZWJ1ZycpLCBmYXRhbD1U
cnVlKToKIAogICAgIGRlZiBpc192YWxpZF9idWlsZF9kaXJlY3RvcnkocGF0aCk6CiAgICAgICAg
IHJldHVybiBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4ocGF0aCwgJ0dOVW1ha2VmaWxlJykp
IG9yIFwKLSAgICAgICAgICAgIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihwYXRoLCAnUHJv
Z3JhbXMnLCAnRHVtcFJlbmRlclRyZWUnKSkKKyAgICAgICAgICAgIG9zLnBhdGguZXhpc3RzKG9z
LnBhdGguam9pbihwYXRoLCAnUHJvZ3JhbXMnLCAnR3RrTGF1bmNoZXInKSkgb3IgXAorICAgICAg
ICAgICAgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHBhdGgsICdQcm9ncmFtcycsICdNaW5p
QnJvd3NlcicpKSBvciBcCisgICAgICAgICAgICBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4o
cGF0aCwgJ0NNYWtlQ2FjaGUudHh0JykpIG9yIFwKKyAgICAgICAgICAgIG9zLnBhdGguZXhpc3Rz
KG9zLnBhdGguam9pbihwYXRoLCAnYmluL0d0a0xhdW5jaGVyJykpIG9yIFwKKyAgICAgICAgICAg
IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihwYXRoLCAnYmluL01pbmlCcm93c2VyJykpCiAK
ICAgICBpZiBsZW4oc3lzLmFyZ3ZbMTpdKSA+IDEgYW5kIG9zLnBhdGguZXhpc3RzKHN5cy5hcmd2
Wy0xXSkgYW5kIGlzX3ZhbGlkX2J1aWxkX2RpcmVjdG9yeShzeXMuYXJndlstMV0pOgogICAgICAg
ICByZXR1cm4gc3lzLmFyZ3ZbLTFdCmRpZmYgLS1naXQgYS9Ub29scy9ndGsvZ2VuZXJhdGUtZ3Rr
ZG9jIGIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwppbmRleCAzNmZhYzRkZDdlYTc0YWJiZWNm
N2U4YmRlZGY5NzJlMTEwYTRmMmZhLi5mZDQ1NzI4YWU1ZGFmMmMxYTM0MzIyOGIwZjg3NWIwYWQ4
ODUwYmE4IDEwMDc1NQotLS0gYS9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jCisrKyBiL1Rvb2xz
L2d0ay9nZW5lcmF0ZS1ndGtkb2MKQEAgLTYxLDcgKzYxLDcgQEAgZGVmIGdldF9jb21tb25fb3B0
aW9ucygpOgogICAgIHJldHVybiB7CiAgICAgICAgICdkZWNvcmF0b3InOiAnV0VCS0lUX0FQSXxX
RUJLSVRfREVQUkVDQVRFRHxXRUJLSVRfREVQUkVDQVRFRF9GT1JcKC4rXCknLAogICAgICAgICAn
ZGVwcmVjYXRpb25fZ3VhcmQnOiAnV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCcsCi0gICAgICAg
ICdsaWJyYXJ5X3BhdGgnIDogY29tbW9uLmJ1aWxkX3BhdGgoJy5saWJzJyksCisgICAgICAgICds
aWJyYXJ5X3BhdGgnIDogY29tbW9uLmxpYnJhcnlfYnVpbGRfcGF0aCgpLAogICAgICAgICAndmly
dHVhbF9yb290JyA6IHZpcnR1YWxfcm9vdCwKICAgICB9CiAKQEAgLTEyMCw2ICsxMjAsMTIgQEAg
ZGVmIGdldF93ZWJraXQxX29wdGlvbnMoZ3RrX3ZlcnNpb24pOgogICAgIGRlZiBzcmNfcGF0aCgq
YXJncyk6CiAgICAgICAgIHJldHVybiBjb21tb24udG9wX2xldmVsX3BhdGgoKigoJ1NvdXJjZScs
ICdXZWJLaXQnLCAnZ3RrJykgKyBhcmdzKSkKIAorICAgIGRlZiB3ZWJraXR2ZXJzaW9uaF9wYXRo
KCk6CisgICAgICAgIGlmIGNvbW1vbi5pc19jbWFrZV9idWlsZCgpOgorICAgICAgICAgICAgcmV0
dXJuIGNvbW1vbi5idWlsZF9wYXRoKCdEZXJpdmVkU291cmNlcycsICd3ZWJraXQnKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGNvbW1vbi5idWlsZF9wYXRoKCdTb3VyY2UnLCAn
V2ViS2l0JywgJ2d0aycsICd3ZWJraXQnKQorCiAgICAgeHJlZl9kZXBzID0gZ2V0X2NvbW1vbl94
cmVmX2RlcHMoKS5jb3B5KCkKICAgICBpZiBndGtfdmVyc2lvbiA9PSAzOgogICAgICAgICB4cmVm
X2RlcHMudXBkYXRlKHsKQEAgLTEzMCwxMyArMTM2LDE1IEBAIGRlZiBnZXRfd2Via2l0MV9vcHRp
b25zKGd0a192ZXJzaW9uKToKICAgICAgICAgICAgICAgICAnZ3RrKy0yLjAnIDogWydndGsnLCAn
Z2RrJ10KICAgICAgICAgfSkKIAorICAgIHNvdXJjZV9kaXJzID0gW3NyY19wYXRoKCd3ZWJraXQn
KV0KKwogICAgIG9wdGlvbnMgPSBnZXRfY29tbW9uX29wdGlvbnMoKS5jb3B5KCkKICAgICBvcHRp
b25zLnVwZGF0ZSh7CiAgICAgICAgICdtb2R1bGVfbmFtZScgOiAnd2Via2l0Z3RrJywKICAgICAg
ICAgJ25hbWVzcGFjZScgOiAnd2Via2l0JywKICAgICAgICAgJ2RvY19kaXInIDogc3JjX3BhdGgo
J2RvY3MnKSwKICAgICAgICAgJ291dHB1dF9kaXInIDogY29tbW9uLmJ1aWxkX3BhdGgoJ0RvY3Vt
ZW50YXRpb24nLCAnd2Via2l0Z3RrJyksCi0gICAgICAgICdzb3VyY2VfZGlycycgOiBbc3JjX3Bh
dGgoJ3dlYmtpdCcpLCBjb21tb24uYnVpbGRfcGF0aCgnU291cmNlJywgJ1dlYktpdCcsICdndGsn
LCAnd2Via2l0JyldLAorICAgICAgICAnc291cmNlX2RpcnMnIDogW3NyY19wYXRoKCd3ZWJraXQn
KSwgd2Via2l0dmVyc2lvbmhfcGF0aCgpXSwKICAgICAgICAgJ2NmbGFncycgOiAnIC1JJyArIGNv
bW1vbi5idWlsZF9wYXRoKCdXZWJLaXQnLCAnZ3RrJykgKyBcCiAgICAgICAgICAgICAgICAgICAg
JyAtSScgKyBjb21tb24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMnKSArIFwKICAgICAgICAg
ICAgICAgICAgICAnIC1JJyArIHNyY19wYXRoKCkgKyBcCkBAIC0yMTYsMTYgKzIyNCwxOSBAQCBp
ZiBvcy5wYXRoLmV4aXN0cyh3azJfcGtnX2NvbmZpZ19wYXRoKToKICAgICBwa2dfY29uZmlnX3Bh
dGggPSB3azJfcGtnX2NvbmZpZ19wYXRoCiBlbGlmIG9zLnBhdGguZXhpc3RzKHdrMV9wa2dfY29u
ZmlnX3BhdGgpOgogICAgIHBrZ19jb25maWdfcGF0aCA9IHdrMV9wa2dfY29uZmlnX3BhdGgKLWdl
bmVyYXRvciA9IGd0a2RvYy5Qa2dDb25maWdHVEtEb2MocGtnX2NvbmZpZ19wYXRoLCBnZXRfd2Vi
a2l0ZG9tX29wdGlvbnMoKSkKLWlmICctLXJlYmFzZScgbm90IGluIHN5cy5hcmd2OgotICAgIHBy
aW50KCJcbkdlbmVyYXRpbmcgV2ViS2l0RE9NIGRvY3VtZW50YXRpb24uLi4iKQotICAgIHNhd193
ZWJraXRkb21fd2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yKQotZWxzZToKLSAgICBw
cmludCgiXG5SZWJhc2luZyBXZWJLaXRET00gZG9jdW1lbnRhdGlvbi4uLiIpCi0gICAgdHJ5Ogot
ICAgICAgICBnZW5lcmF0b3IucmViYXNlX2luc3RhbGxlZF9kb2NzKCkKLSAgICBleGNlcHQgRXhj
ZXB0aW9uOgotICAgICAgICBwcmludCgiUmViYXNlIGRpZCBub3QgaGFwcGVuLCBsaWtlbHkgbm8g
ZG9jdW1lbnRhdGlvbiBpcyBwcmVzZW50LiIpCisKK3dlYmtpdGRvbV9kb2NzX3BhdGggPSBjb21t
b24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMnLCAnd2Via2l0ZG9tJywgJ2RvY3MnKQoraWYg
bm90IGNvbW1vbi5pc19jbWFrZV9idWlsZCgpOgorICAgIGdlbmVyYXRvciA9IGd0a2RvYy5Qa2dD
b25maWdHVEtEb2MocGtnX2NvbmZpZ19wYXRoLCBnZXRfd2Via2l0ZG9tX29wdGlvbnMoKSkKKyAg
ICBpZiAnLS1yZWJhc2UnIG5vdCBpbiBzeXMuYXJndjoKKyAgICAgICAgcHJpbnQoIlxuR2VuZXJh
dGluZyBXZWJLaXRET00gZG9jdW1lbnRhdGlvbi4uLiIpCisgICAgICAgIHNhd193ZWJraXRkb21f
d2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MoZ2VuZXJhdG9yKQorICAgIGVsc2U6CisgICAgICAgIHBy
aW50KCJcblJlYmFzaW5nIFdlYktpdERPTSBkb2N1bWVudGF0aW9uLi4uIikKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgZ2VuZXJhdG9yLnJlYmFzZV9pbnN0YWxsZWRfZG9jcygpCisgICAgICAg
IGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBwcmludCgiUmViYXNlIGRpZCBub3QgaGFw
cGVuLCBsaWtlbHkgbm8gZG9jdW1lbnRhdGlvbiBpcyBwcmVzZW50LiIpCiAKIHBrZ19jb25maWdf
cGF0aCA9IHdrMV9wa2dfY29uZmlnX3BhdGgKIGlmIG9zLnBhdGguZXhpc3RzKHBrZ19jb25maWdf
cGF0aCk6CkBAIC0yNTUsNCArMjY2LDcgQEAgaWYgb3MucGF0aC5leGlzdHMocGtnX2NvbmZpZ19w
YXRoKToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHByaW50KCJSZWJh
c2UgZGlkIG5vdCBoYXBwZW4sIGxpa2VseSBubyBkb2N1bWVudGF0aW9uIGlzIHByZXNlbnQuIikK
IAotc3lzLmV4aXQoc2F3X3dlYmtpdDFfd2FybmluZ3Mgb3Igc2F3X3dlYmtpdDJfd2FybmluZ3Mp
CisjIEZvciBDTWFrZSB3ZSBhcmUgc3RpbGwgZ2VuZXJhdGluZyB3YXJuaW5ncyBiZWNhdXNlIHdl
IGxhY2sgRE9NIGJpbmRpbmdzIGRvY3MsCisjIHNvIGRvIG5vdCBjYXVzZSB0aGUgYnVpbGQgdG8g
ZmFpbCBmb3Igbm93LgoraWYgbm90IGNvbW1vbi5pc19jbWFrZV9idWlsZCgpOgorICAgIHN5cy5l
eGl0KHNhd193ZWJraXQxX3dhcm5pbmdzIG9yIHNhd193ZWJraXQyX3dhcm5pbmdzKQpkaWZmIC0t
Z2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDRjYjMyNjc3MjEyODk1NThkN2YyNTZm
YTA3YzczODRkM2NjOGIyZDQuLjNhMWJmMzI0MDFlMGUzMTY1NmE4ZTY2ZGY0ZWMxOTRjNTdhOTJm
MTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMy0xMi0yMyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KKwor
ICAgICAgICBbR1RLXSBbQ01ha2VdIEFkZCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIGd0a2RvYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2Mzc2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
UGxhdGZvcm1HVEsuY21ha2U6IEFkZGVkLiBOZXcgY3VzdG9tIHRhcmdldCB0aGF0IGRlcGVuZHMg
b24gYSBjdXN0b20gY29tbWFuZAorICAgICAgICB3aGljaCBjYWxscyBvdXIgZ2VuZXJhdGUtZ3Rr
ZG9jIHNjcmlwdC4gSXQgdXNlcyBhIGRvY3MtYnVpbGQuc3RhbXAgZm9yIHNpbXBsaWNpdHksCisg
ICAgICAgIGxpa2UgdGhlIGF1dG90b29scyBidWlsZC4KKwogMjAxMy0xMi0yMiAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTUxMQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219928</attachid>
            <date>2013-12-23 13:22:53 -0800</date>
            <delta_ts>2013-12-23 13:57:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-116376-20131223192252.patch</filename>
            <type>text/plain</type>
            <size>9123</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTdjNDU5NGE0MDQ5Mjg4
YmE5ODQ4Y2U4MzI4OGNjZjg0NDZkOTk0Ny4uNmZiMzVlNmQ3ZDliNzY5N2I4Yjg5NDQzNjk5YzE3
NTlhMjMzMjJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEyLTIzICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFtDTWFr
ZV0gQWRkIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgZ3RrZG9jCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzNzYKKworICAgICAgICBSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogbWFrZSBn
ZW5lcmF0ZWQgQVBJIGZpbGVzIGdvIHRvIERlcml2ZWRTb3VyY2VzL1dlYktpdDIsIHRvCisgICAg
ICAgIG1hdGNoIHRoZSBhdXRvdG9vbHMgYnVpbGQgYW5kIGd0a2RvYy5weSdzIGV4cGVjdGF0aW9u
LgorCiAyMDEzLTEyLTIyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtDTWFrZV0gbGlidG9vbC1jb21wYXRpYmxlIHNvdmVyc2lvbiBjYWxj
dWxhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1Bs
YXRmb3JtR1RLLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NmZiM2U2ZmU5MzY1ODVhOTE1MTQyZTI0Mzc1
YmRkZjMwNDFhNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTAsMCArMSw0MCBAQAorc2V0KERvY3VtZW50YXRpb25EZXBlbmRlbmNpZXMKKyAgICAiJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGVudmlyb25tZW50
LnhtbCIKKykKKworaWYgKEVOQUJMRV9XRUJLSVQpCisgICAgbGlzdChBUFBFTkQgRG9jdW1lbnRh
dGlvbkRlcGVuZGVuY2llcworICAgICAgICBXZWJLaXQKKyAgICAgICAgIiR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGstZG9jcy5zZ21sIgorICAgICAg
ICAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay1z
ZWN0aW9ucy50eHQiCisgICAgKQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9XRUJLSVQyKQorICAg
IGxpc3QoQVBQRU5EIERvY3VtZW50YXRpb25EZXBlbmRlbmNpZXMKKyAgICAgICAgV2ViS2l0Mgor
ICAgICAgICAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sIgorICAgICAgICAiJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2Vj
dGlvbnMudHh0IgorICAgICkKK2VuZGlmICgpCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBP
VVRQVVQgZG9jcy1idWlsZC5zdGFtcAorICAgIERFUEVORFMgJHtEb2N1bWVudGF0aW9uRGVwZW5k
ZW5jaWVzfQorICAgIENPTU1BTkQgQ0M9IiR7Q01BS0VfQ19DT01QSUxFUn0iICR7Q01BS0VfU09V
UkNFX0RJUn0vVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYworICAgIENPTU1BTkQgdG91Y2ggZG9j
cy1idWlsZC5zdGFtcAorICAgIFdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9
IgorKQorCithZGRfY3VzdG9tX3RhcmdldChmYWtlLWRvY3MtdGFyZ2V0IEFMTAorICAgIERFUEVO
RFMgZG9jcy1idWlsZC5zdGFtcAorKQorCitpZiAoRU5BQkxFX1dFQktJVCkKKyAgICBhZGRfZGVw
ZW5kZW5jaWVzKGZha2UtZG9jcy10YXJnZXQgV2ViS2l0KQorZW5kaWYgKCkKKworaWYgKEVOQUJM
RV9XRUJLSVQyKQorICAgIGFkZF9kZXBlbmRlbmNpZXMoZmFrZS1kb2NzLXRhcmdldCBXZWJLaXQy
KQorZW5kaWYgKCkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBiOGNjMWYwYzQ1Yjk0
ZDA1ZGMzNjY3YTIxYmRkNjcwNGEyMDA5M2RkLi5jY2I2ODFkMTRjNDhkNWQ1YTA1NmJlZWY3YmE1
MDEyYTJlYzAzMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMSw1ICsxLDUgQEAK
IHNldChERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklORElOR1NfRElSICR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vd2Via2l0ZG9tKQotc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0RJ
UiAke0RFUklWRURfU09VUkNFU19ESVJ9L3dlYmtpdDJndGspCitzZXQoREVSSVZFRF9TT1VSQ0VT
X1dFQktJVDJHVEtfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0Mi93ZWJraXQyZ3Rr
KQogc2V0KFdFQktJVDJfQlVJTFRfQVBJX0RJUiAke0RFUklWRURfU09VUkNFU19XRUJLSVQyR1RL
X0RJUn0vd2Via2l0MikKIHNldChXRUJLSVQyX0ZPUldBUkRJTkdfSEVBREVSU19ESVIgJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy93ZWJraXQyZ3RrKQogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDRiMmEwZmE4MzNh
ZTdhNGMyYjc5MjdmZmJkMWNlNjQ4YzcyOTM5ZS4uNWQ5NDczMWMyMGRjYjdmNWY2YTQxNjhiY2U3
NzI0NzNlZWY1MzI4MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTEyLTIzICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFtDTWFrZV0gQWRkIHN1cHBvcnQg
Zm9yIGdlbmVyYXRpbmcgZ3RrZG9jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYzNzYKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCisKKyAgICAgICAgKiBndGsvY29tbW9uLnB5OiBsb29rIGZvciBmaWxlcyBpbiB0aGUgZGly
ZWN0b3JpZXMgdXNlZCBieSB0aGUgY21ha2UgYnVpbGQgYXMgd2VsbC4KKwogMjAxMy0xMi0yMyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gQnVpbGQgd2l0aCBuZXR3b3JrIHByb2Nlc3MgdW5jb25kaXRpb25hbGx5CmRpZmYgLS1naXQg
YS9Ub29scy9ndGsvY29tbW9uLnB5IGIvVG9vbHMvZ3RrL2NvbW1vbi5weQppbmRleCA0MjU1Yzli
NzM5MDMzNGQyZTI5NTdmOWQ4NDIwMWZjZTYyMmQ0ZGI3Li5hNTQzNmYwOGRhNjY3YmQ0ODNkNzNk
YTk0MzNlODg1YmMzNGE1ZmJiIDEwMDY0NAotLS0gYS9Ub29scy9ndGsvY29tbW9uLnB5CisrKyBi
L1Rvb2xzL2d0ay9jb21tb24ucHkKQEAgLTIzLDYgKzIzLDMwIEBAIGltcG9ydCBzeXMKIAogc2Ny
aXB0X2RpciA9IE5vbmUKIGJ1aWxkX2RpciA9IE5vbmUKK2xpYnJhcnlfYnVpbGRfZGlyID0gTm9u
ZQoraXNfY21ha2UgPSBOb25lCisKKworZGVmIGlzX2NtYWtlX2J1aWxkKCk6CisgICAgZ2xvYmFs
IGlzX2NtYWtlCisKKyAgICBpZiBpc19jbWFrZSBpcyBOb25lOgorICAgICAgICBpZiBidWlsZF9w
YXRoKCdDTWFrZUNhY2hlLnR4dCcpOgorICAgICAgICAgICAgaXNfY21ha2UgPSBUcnVlCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBpc19jbWFrZSA9IEZhbHNlCisKKyAgICByZXR1cm4gaXNf
Y21ha2UKKworCitkZWYgbGlicmFyeV9idWlsZF9wYXRoKCphcmdzKToKKyAgICBnbG9iYWwgbGli
cmFyeV9idWlsZF9kaXIKKyAgICBpZiBub3QgbGlicmFyeV9idWlsZF9kaXI6CisgICAgICAgIGlm
IGlzX2NtYWtlX2J1aWxkKCk6CisgICAgICAgICAgICBsaWJyYXJ5X2J1aWxkX2RpciA9IGJ1aWxk
X3BhdGgoJ2xpYicsICphcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGlicmFyeV9i
dWlsZF9kaXIgPSBidWlsZF9wYXRoKCcubGlicycsICphcmdzKQorICAgIHJldHVybiBsaWJyYXJ5
X2J1aWxkX2RpcgogCiAKIGRlZiBzY3JpcHRfcGF0aCgqYXJncyk6CkBAIC00Myw3ICs2NywxMSBA
QCBkZWYgZ2V0X2J1aWxkX3BhdGgoYnVpbGRfdHlwZXM9KCdSZWxlYXNlJywgJ0RlYnVnJyksIGZh
dGFsPVRydWUpOgogCiAgICAgZGVmIGlzX3ZhbGlkX2J1aWxkX2RpcmVjdG9yeShwYXRoKToKICAg
ICAgICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihwYXRoLCAnR05VbWFrZWZp
bGUnKSkgb3IgXAotICAgICAgICAgICAgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHBhdGgs
ICdQcm9ncmFtcycsICdEdW1wUmVuZGVyVHJlZScpKQorICAgICAgICAgICAgb3MucGF0aC5leGlz
dHMob3MucGF0aC5qb2luKHBhdGgsICdQcm9ncmFtcycsICdHdGtMYXVuY2hlcicpKSBvciBcCisg
ICAgICAgICAgICBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4ocGF0aCwgJ1Byb2dyYW1zJywg
J01pbmlCcm93c2VyJykpIG9yIFwKKyAgICAgICAgICAgIG9zLnBhdGguZXhpc3RzKG9zLnBhdGgu
am9pbihwYXRoLCAnQ01ha2VDYWNoZS50eHQnKSkgb3IgXAorICAgICAgICAgICAgb3MucGF0aC5l
eGlzdHMob3MucGF0aC5qb2luKHBhdGgsICdiaW4vR3RrTGF1bmNoZXInKSkgb3IgXAorICAgICAg
ICAgICAgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHBhdGgsICdiaW4vTWluaUJyb3dzZXIn
KSkKIAogICAgIGlmIGxlbihzeXMuYXJndlsxOl0pID4gMSBhbmQgb3MucGF0aC5leGlzdHMoc3lz
LmFyZ3ZbLTFdKSBhbmQgaXNfdmFsaWRfYnVpbGRfZGlyZWN0b3J5KHN5cy5hcmd2Wy0xXSk6CiAg
ICAgICAgIHJldHVybiBzeXMuYXJndlstMV0KZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9nZW5lcmF0
ZS1ndGtkb2MgYi9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jCmluZGV4IDM2ZmFjNGRkN2VhNzRh
YmJlY2Y3ZThiZGVkZjk3MmUxMTBhNGYyZmEuLjI4MDc0OWIwOWNiMjY1OTkzYTQ5NzdjYTI5YjI4
MGVhMGU2MDljZmQgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKKysrIGIv
VG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwpAQCAtNjEsNyArNjEsNyBAQCBkZWYgZ2V0X2NvbW1v
bl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgJ2RlY29yYXRvcic6ICdXRUJLSVRf
QVBJfFdFQktJVF9ERVBSRUNBVEVEfFdFQktJVF9ERVBSRUNBVEVEX0ZPUlwoLitcKScsCiAgICAg
ICAgICdkZXByZWNhdGlvbl9ndWFyZCc6ICdXRUJLSVRfRElTQUJMRV9ERVBSRUNBVEVEJywKLSAg
ICAgICAgJ2xpYnJhcnlfcGF0aCcgOiBjb21tb24uYnVpbGRfcGF0aCgnLmxpYnMnKSwKKyAgICAg
ICAgJ2xpYnJhcnlfcGF0aCcgOiBjb21tb24ubGlicmFyeV9idWlsZF9wYXRoKCksCiAgICAgICAg
ICd2aXJ0dWFsX3Jvb3QnIDogdmlydHVhbF9yb290LAogICAgIH0KIApAQCAtMTIwLDYgKzEyMCwx
MiBAQCBkZWYgZ2V0X3dlYmtpdDFfb3B0aW9ucyhndGtfdmVyc2lvbik6CiAgICAgZGVmIHNyY19w
YXRoKCphcmdzKToKICAgICAgICAgcmV0dXJuIGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgqKCgnU291
cmNlJywgJ1dlYktpdCcsICdndGsnKSArIGFyZ3MpKQogCisgICAgZGVmIHdlYmtpdHZlcnNpb25o
X3BhdGgoKToKKyAgICAgICAgaWYgY29tbW9uLmlzX2NtYWtlX2J1aWxkKCk6CisgICAgICAgICAg
ICByZXR1cm4gY29tbW9uLmJ1aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2VzJywgJ3dlYmtpdCcpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gY29tbW9uLmJ1aWxkX3BhdGgoJ1NvdXJj
ZScsICdXZWJLaXQnLCAnZ3RrJywgJ3dlYmtpdCcpCisKICAgICB4cmVmX2RlcHMgPSBnZXRfY29t
bW9uX3hyZWZfZGVwcygpLmNvcHkoKQogICAgIGlmIGd0a192ZXJzaW9uID09IDM6CiAgICAgICAg
IHhyZWZfZGVwcy51cGRhdGUoewpAQCAtMTM2LDcgKzE0Miw3IEBAIGRlZiBnZXRfd2Via2l0MV9v
cHRpb25zKGd0a192ZXJzaW9uKToKICAgICAgICAgJ25hbWVzcGFjZScgOiAnd2Via2l0JywKICAg
ICAgICAgJ2RvY19kaXInIDogc3JjX3BhdGgoJ2RvY3MnKSwKICAgICAgICAgJ291dHB1dF9kaXIn
IDogY29tbW9uLmJ1aWxkX3BhdGgoJ0RvY3VtZW50YXRpb24nLCAnd2Via2l0Z3RrJyksCi0gICAg
ICAgICdzb3VyY2VfZGlycycgOiBbc3JjX3BhdGgoJ3dlYmtpdCcpLCBjb21tb24uYnVpbGRfcGF0
aCgnU291cmNlJywgJ1dlYktpdCcsICdndGsnLCAnd2Via2l0JyldLAorICAgICAgICAnc291cmNl
X2RpcnMnIDogW3NyY19wYXRoKCd3ZWJraXQnKSwgd2Via2l0dmVyc2lvbmhfcGF0aCgpXSwKICAg
ICAgICAgJ2NmbGFncycgOiAnIC1JJyArIGNvbW1vbi5idWlsZF9wYXRoKCdXZWJLaXQnLCAnZ3Rr
JykgKyBcCiAgICAgICAgICAgICAgICAgICAgJyAtSScgKyBjb21tb24uYnVpbGRfcGF0aCgnRGVy
aXZlZFNvdXJjZXMnKSArIFwKICAgICAgICAgICAgICAgICAgICAnIC1JJyArIHNyY19wYXRoKCkg
KyBcCkBAIC0yMTYsMTYgKzIyMiwxOSBAQCBpZiBvcy5wYXRoLmV4aXN0cyh3azJfcGtnX2NvbmZp
Z19wYXRoKToKICAgICBwa2dfY29uZmlnX3BhdGggPSB3azJfcGtnX2NvbmZpZ19wYXRoCiBlbGlm
IG9zLnBhdGguZXhpc3RzKHdrMV9wa2dfY29uZmlnX3BhdGgpOgogICAgIHBrZ19jb25maWdfcGF0
aCA9IHdrMV9wa2dfY29uZmlnX3BhdGgKLWdlbmVyYXRvciA9IGd0a2RvYy5Qa2dDb25maWdHVEtE
b2MocGtnX2NvbmZpZ19wYXRoLCBnZXRfd2Via2l0ZG9tX29wdGlvbnMoKSkKLWlmICctLXJlYmFz
ZScgbm90IGluIHN5cy5hcmd2OgotICAgIHByaW50KCJcbkdlbmVyYXRpbmcgV2ViS2l0RE9NIGRv
Y3VtZW50YXRpb24uLi4iKQotICAgIHNhd193ZWJraXRkb21fd2FybmluZ3MgPSBnZW5lcmF0ZV9k
b2MoZ2VuZXJhdG9yKQotZWxzZToKLSAgICBwcmludCgiXG5SZWJhc2luZyBXZWJLaXRET00gZG9j
dW1lbnRhdGlvbi4uLiIpCi0gICAgdHJ5OgotICAgICAgICBnZW5lcmF0b3IucmViYXNlX2luc3Rh
bGxlZF9kb2NzKCkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBwcmludCgiUmViYXNl
IGRpZCBub3QgaGFwcGVuLCBsaWtlbHkgbm8gZG9jdW1lbnRhdGlvbiBpcyBwcmVzZW50LiIpCisK
K3dlYmtpdGRvbV9kb2NzX3BhdGggPSBjb21tb24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMn
LCAnd2Via2l0ZG9tJywgJ2RvY3MnKQoraWYgbm90IGNvbW1vbi5pc19jbWFrZV9idWlsZCgpOgor
ICAgIGdlbmVyYXRvciA9IGd0a2RvYy5Qa2dDb25maWdHVEtEb2MocGtnX2NvbmZpZ19wYXRoLCBn
ZXRfd2Via2l0ZG9tX29wdGlvbnMoKSkKKyAgICBpZiAnLS1yZWJhc2UnIG5vdCBpbiBzeXMuYXJn
djoKKyAgICAgICAgcHJpbnQoIlxuR2VuZXJhdGluZyBXZWJLaXRET00gZG9jdW1lbnRhdGlvbi4u
LiIpCisgICAgICAgIHNhd193ZWJraXRkb21fd2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MoZ2VuZXJh
dG9yKQorICAgIGVsc2U6CisgICAgICAgIHByaW50KCJcblJlYmFzaW5nIFdlYktpdERPTSBkb2N1
bWVudGF0aW9uLi4uIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZ2VuZXJhdG9yLnJlYmFz
ZV9pbnN0YWxsZWRfZG9jcygpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAg
ICBwcmludCgiUmViYXNlIGRpZCBub3QgaGFwcGVuLCBsaWtlbHkgbm8gZG9jdW1lbnRhdGlvbiBp
cyBwcmVzZW50LiIpCiAKIHBrZ19jb25maWdfcGF0aCA9IHdrMV9wa2dfY29uZmlnX3BhdGgKIGlm
IG9zLnBhdGguZXhpc3RzKHBrZ19jb25maWdfcGF0aCk6CkBAIC0yNTUsNCArMjY0LDcgQEAgaWYg
b3MucGF0aC5leGlzdHMocGtnX2NvbmZpZ19wYXRoKToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKICAgICAgICAgICAgIHByaW50KCJSZWJhc2UgZGlkIG5vdCBoYXBwZW4sIGxpa2VseSBubyBk
b2N1bWVudGF0aW9uIGlzIHByZXNlbnQuIikKIAotc3lzLmV4aXQoc2F3X3dlYmtpdDFfd2Fybmlu
Z3Mgb3Igc2F3X3dlYmtpdDJfd2FybmluZ3MpCisjIEZvciBDTWFrZSB3ZSBhcmUgc3RpbGwgZ2Vu
ZXJhdGluZyB3YXJuaW5ncyBiZWNhdXNlIHdlIGxhY2sgRE9NIGJpbmRpbmdzIGRvY3MsCisjIHNv
IGRvIG5vdCBjYXVzZSB0aGUgYnVpbGQgdG8gZmFpbCBmb3Igbm93LgoraWYgbm90IGNvbW1vbi5p
c19jbWFrZV9idWlsZCgpOgorICAgIHN5cy5leGl0KHNhd193ZWJraXQxX3dhcm5pbmdzIG9yIHNh
d193ZWJraXQyX3dhcm5pbmdzKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDRjYjMyNjc3MjEyODk1NThkN2YyNTZmYTA3YzczODRkM2NjOGIyZDQuLjQ5ODM0Njk5Nzdk
YTlhOTc1MTU1ZWI1NjVhMDBlMGM4MTE5NDdjYTUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysg
Yi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0xMi0yMyAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z25zQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBbQ01ha2VdIEFkZCBzdXBw
b3J0IGZvciBnZW5lcmF0aW5nIGd0a2RvYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE2Mzc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJv
Ymluc29uLgorCisgICAgICAgICogU291cmNlL1BsYXRmb3JtR1RLLmNtYWtlOiBBZGRlZC4gTmV3
IGN1c3RvbSB0YXJnZXQgdGhhdCBkZXBlbmRzIG9uIGEgY3VzdG9tIGNvbW1hbmQKKyAgICAgICAg
d2hpY2ggY2FsbHMgb3VyIGdlbmVyYXRlLWd0a2RvYyBzY3JpcHQuIEl0IHVzZXMgYSBkb2NzLWJ1
aWxkLnN0YW1wIGZvciBzaW1wbGljaXR5LAorICAgICAgICBsaWtlIHRoZSBhdXRvdG9vbHMgYnVp
bGQuCisKIDIwMTMtMTItMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU1
MTEK
</data>

          </attachment>
      

    </bug>

</bugzilla>