<?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>136216</bug_id>
          
          <creation_ts>2014-08-25 03:23:32 -0700</creation_ts>
          <short_desc>[GTK] Add WaylandDisplay</short_desc>
          <delta_ts>2015-12-07 09:30:26 -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>New Bugs</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>115803</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1031089</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-25 03:23:32 -0700</bug_when>
    <thetext>[GTK] Add WaylandDisplay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031096</commentid>
    <comment_count>1</comment_count>
      <attachid>237074</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-25 03:54:04 -0700</bug_when>
    <thetext>Created attachment 237074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031098</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 03:56:27 -0700</bug_when>
    <thetext>Attachment 237074 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031130</commentid>
    <comment_count>3</comment_count>
      <attachid>237074</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-25 06:06:43 -0700</bug_when>
    <thetext>Comment on attachment 237074
Patch

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

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:131
&gt; +void WaylandDisplay::destroySurface(WaylandSurface* surface)
&gt; +{
&gt; +    if (surface) {
&gt; +        eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
&gt; +
&gt; +        wl_egl_window_destroy(surface-&gt;nativeWindowHandle());
&gt; +        wl_surface_destroy(surface-&gt;surface());
&gt; +    }
&gt; +}

Looking at this as I was writing the changelog, I think all this could be just executed in the WaylandSurface destructor.

I&apos;ll try it out and report back, either with a new patch or an explanation on why it can&apos;t be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031210</commentid>
    <comment_count>4</comment_count>
      <attachid>237101</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-25 12:56:41 -0700</bug_when>
    <thetext>Created attachment 237101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031212</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 12:58:05 -0700</bug_when>
    <thetext>Attachment 237101 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031343</commentid>
    <comment_count>6</comment_count>
      <attachid>237141</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-26 01:47:18 -0700</bug_when>
    <thetext>Created attachment 237141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031345</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-26 01:49:46 -0700</bug_when>
    <thetext>Attachment 237141 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031941</commentid>
    <comment_count>8</comment_count>
      <attachid>237299</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-28 00:58:13 -0700</bug_when>
    <thetext>Created attachment 237299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031942</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-28 01:00:47 -0700</bug_when>
    <thetext>Attachment 237299 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032021</commentid>
    <comment_count>10</comment_count>
      <attachid>237299</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-08-28 10:22:57 -0700</bug_when>
    <thetext>Comment on attachment 237299
Patch

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

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:78
&gt; +    m_registry = wl_display_get_registry(m_display);

This can be moved the initializer list.

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:94
&gt; +        g_warning(&quot;eglGetDisplay EGL_NO_DISPLAY&quot;);

It&apos;s probably better to issue a more descriptive warning like: &quot;WaylandDisplay initialization failed to get EGL display.&quot;

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:99
&gt; +        g_warning(&quot;eglInitialize EGL_FALSE&quot;);

Ditto.

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:104
&gt; +        g_warning(&quot;eglBindAPI EGL_FALSE&quot;);

Ditto. When these fail how does the owner of this instance detect the failure?

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:110
&gt; +    EGLint n;
&gt; +    if (!eglChooseConfig(m_eglDisplay, configAttributes, &amp;m_eglConfig, 1, &amp;n) || n != 1)
&gt; +        g_warning(&quot;eglChooseConfig failed&quot;);

n -&gt; numberOfConfigs

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:116
&gt; +    EGLNativeWindowType nativeWindow = wl_egl_window_create(wlSurface, std::max(1, width), std::max(1, height));

Perhaps better to assert(width &gt; 0 &amp;&amp; height &gt; 0)?

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:58
&gt; +    std::unique_ptr&lt;WaylandSurface&gt; createSurface(int, int, int);
&gt; +
&gt; +    PassOwnPtr&lt;GLContextEGL&gt; createSharingGLContext();
&gt; +
&gt; +private:
&gt; +    static const struct wl_registry_listener m_registryListener;
&gt; +    static void globalCallback(void*, struct wl_registry*, uint32_t, const char*, uint32_t);
&gt; +    static void globalRemoveCallback(void*, struct wl_registry*, uint32_t);

Arguments should have a name here unless the name is simply a repetition of the type. That way one can read the header and know how to call the method. For instance, &quot;struct wl_registry* registry&quot; doesn&apos;t need a name, but &quot;int height&quot; does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032362</commentid>
    <comment_count>11</comment_count>
      <attachid>237417</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-30 12:16:22 -0700</bug_when>
    <thetext>Created attachment 237417
Patch

Still have to check the possibility of asserting the non-zero size parameters in WaylandDisplay::createSurface() (and if IntSize could be used) and where in LayerTreeHostGtk do 0x0 surfaces come from in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032363</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-30 12:18:36 -0700</bug_when>
    <thetext>Attachment 237417 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032441</commentid>
    <comment_count>13</comment_count>
      <attachid>237441</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-31 23:49:16 -0700</bug_when>
    <thetext>Created attachment 237441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032442</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-31 23:51:20 -0700</bug_when>
    <thetext>Attachment 237441 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/graphics/wayland/WaylandDisplay.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032448</commentid>
    <comment_count>15</comment_count>
      <attachid>237441</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-09-01 00:08:44 -0700</bug_when>
    <thetext>Comment on attachment 237441
Patch

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

&gt; Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp:126
&gt; +    // We keep the minimum size at 1x1px since Mesa returns null values in wl_egl_window_create() for zero width or height.
&gt; +    EGLNativeWindowType nativeWindow = wl_egl_window_create(wlSurface, std::max(1, size.width()), std::max(1, size.height()));

The 0x0px surfaces are created in LayerTreeHostGtk::initialize() using the size of the WebPage object which at that point still doesn&apos;t have the proper size.

On the other hand Mesa returns a null pointer from wl_egl_window_create() if either width or height is zero. That&apos;s what&apos;s being avoided here by falling back to a 1x1px surface that is eventually resized through WaylandSurface::resize(), from LayerTreeHostGtk::sizeDidChange().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035387</commentid>
    <comment_count>16</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-09-15 23:53:51 -0700</bug_when>
    <thetext>Committed r173651: &lt;http://trac.webkit.org/changeset/173651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146876</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-07 09:30:26 -0800</bug_when>
    <thetext>It&apos;s very confusing to have an unused Wayland protocol in the source tree. I think we should get rid of this code until such time as we are ready to land patches that use it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237074</attachid>
            <date>2014-08-25 03:54:04 -0700</date>
            <delta_ts>2014-08-25 12:56:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136216-20140825035356.patch</filename>
            <type>text/plain</type>
            <size>11238</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MjkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE0LTA4LTI1ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgV2F5bGFu
ZERpc3BsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjIxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0aGUgV2F5bGFuZERpc3BsYXkgY2xhc3MuIFRoaXMgY2xhc3MgaXMgdXNlZCBpbiB0aGUg
TGF5ZXJUcmVlSG9zdEd0aywKKyAgICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGFuZCBjb250cm9s
cyB0aGUgY29ubmVjdGlvbiB0byB0aGUgbmVzdGVkIFdheWxhbmQKKyAgICAgICAgY29tcG9zaXRv
ciBpbiB0aGUgVUlQcm9jZXNzLiBPbmx5IG9uZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgaXMgdXNl
ZCBpbiB0aGUKKyAgICAgICAgV2ViUHJvY2VzcywgYWNjZXNzaWJsZSB2aWEgdGhlIHN0YXRpYyBX
YXlsYW5kRGlzcGxheTo6aW5zdGFuY2UoKSBtZXRob2QuCisKKyAgICAgICAgVGhlIFdheWxhbmRE
aXNwbGF5IGNvbnN0cnVjdG9yIHBlcmZvcm1zIHRoZSBFR0wgaW5pdGlhbGl6YXRpb24gd2hpbGUg
YWxzbworICAgICAgICBxdWVyeWluZyB0aGUgV2F5bGFuZCByZWdpc3RlciwgcmVzdWx0aW5nIGlu
IGluaXRpYWxpemluZyBjbGllbnQtc2lkZSBvYmplY3RzCisgICAgICAgIHRoYXQgY2FuIGludGVy
YWN0IHdpdGggdGhlIHdsX2NvbXBvc2l0b3IgYW5kIHdsX3dlYmtpdGd0ayBpbnRlcmZhY2VzCisg
ICAgICAgIGltcGxlbWVudGVkIGluIHRoZSBuZXN0ZWQgV2F5bGFuZCBjb21wb3NpdG9yLgorCisg
ICAgICAgIFdheWxhbmREaXNwbGF5OjpjcmVhdGVTdXJmYWNlKCkgaXMgY2FsbGVkIGJ5IHRoZSBM
YXllclRyZWVIb3N0R3RrIGR1cmluZworICAgICAgICBpdHMgb3duIGluaXRpYWxpemF0aW9uLiBU
aGUgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgd2xfc3VyZmFjZSBvYmplY3QgdmlhIHRoZQorICAgICAg
ICB3bF9jb21wb3NpdG9yIGludGVyZmFjZSBhbmQgYSBuZXcgd2xfZWdsX3dpbmRvdyBvYmplY3Qg
dGhhdCdzIGJhc2VkIG9uIHRoYXQKKyAgICAgICAgc3VyZmFjZS4gRm9yIHRoZSB3bF9lZ2xfd2lu
ZG93IG9iamVjdCwgd2UgZmFsbCBiYWNrIHRvIGEgd2lkdGggb3IgaGVpZ2h0IG9mIDEKKyAgICAg
ICAgaW4gY2FzZSB0aGUgcGFzc2VkLWluIHZhbHVlIGZvciBlaXRoZXIgaXMgMC4gVGhpcyBhdm9p
ZHMgcHJvYmxlbXMgaW4gTWVzYQorICAgICAgICB3aGVyZSB3aWR0aHMgb3IgaGVpZ2h0cyBvZiAw
IGFyZSBub3Qgc3VwcG9ydGVkLgorCisgICAgICAgIFdlIGFzc29jaWF0ZSB0aGUgY3JlYXRlZCBz
dXJmYWNlIHdpdGggdGhlIHBhc3NlZC1pbiB3aWRnZXQgSUQsIGFzIHByb3ZpZGVkCisgICAgICAg
IGJ5IExheWVyVHJlZUhvc3RHdGssIHZpYSB0aGUgd2xfd2Via2l0Z3RrIGludGVyZmFjZS4gVGhp
cyBlbmFibGVzIHByb3BlcgorICAgICAgICBtYXBwaW5nIG9mIFdheWxhbmQgc3VyZmFjZXMgYW5k
IHRoZSBHdGtXaWRnZXRzIGluIHRoZSBVSVByb2Nlc3MgYW5kIG1ha2VzCisgICAgICAgIGl0IHBv
c3NpYmxlIGZvciB0aGUgbmVzdGVkIFdheWxhbmQgY29tcG9zaXRvciB0byBjb3JyZWN0bHkgZGV0
ZXJtaW5lIHdoaWNoCisgICAgICAgIEd0a1dpZGdldCBoYXMgdG8gYmUgcmVkcmF3biBhZnRlciBz
b21lIHN1cmZhY2UgaGFzIGJlZW4gY29tbWl0dGVkLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5
OjpkZXN0cm95U3VyZmFjZSgpIHByb3Blcmx5IGRlc3Ryb3lzIHRoZSByZXNvdXJjZXMgYXNzb2Np
YXRlZAorICAgICAgICB3aXRoIGVhY2ggV2F5bGFuZFN1cmZhY2UgdGhhdCBpdCBjcmVhdGVkLiBU
aGUgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIHRoZQorICAgICAgICBXYXlsYW5kU3VyZmFjZSBkZXN0
cnVjdG9yLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5OjpjcmVhdGVTaGFyaW5nR0xDb250ZXh0
KCkgY3JlYXRlcyBhIG5ldyBHTENvbnRleHRFR0wgb2JqZWN0CisgICAgICAgIHRoYXQncyB0byBi
ZSB1c2VkIGFzIGEgc2hhcmluZyBjb250ZXh0LiBUaGUgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgc3Vy
ZmFjZQorICAgICAgICB2aWEgdGhlIHdsX2NvbXBvc2l0b3IgaW50ZXJmYWNlIGFuZCB1c2VzIGl0
IHRvIGNyZWF0ZSBhIGR1bW15IG5hdGl2ZSBFR0wKKyAgICAgICAgd2luZG93IHRoYXQncyAxeDFw
eCBpbiBzaXplLiBUaGUgR0xDb250ZXh0RUdMIG9iamVjdCBpcyB0aGVuIGNyZWF0ZWQKKyAgICAg
ICAgdGhyb3VnaCB0aGUgc3RhdGljIEdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4dCgp
IG1ldGhvZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERp
c3BsYXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjppbnN0
YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6V2F5bGFuZERpc3BsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6OmNyZWF0ZVN1cmZhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6OmRlc3Ryb3lTdXJmYWNlKToKKyAgICAgICAg
KFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjpjcmVhdGVTaGFyaW5nR0xDb250ZXh0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6Om5hdGl2ZURpc3BsYXkpOgorCiAyMDE0
LTA4LTI1ICBTaGl2YWt1bWFyIEpNICA8c2hpdmEuam1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
V2ViIENvcmU6IEZpeCB1bnVzZWQgcGFyYW1ldGVyIGJ1aWxkIHdhcm5pbmcuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dh
eWxhbmREaXNwbGF5LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldheWxhbmREaXNwbGF5LmgiCisKKyNp
ZiBQTEFURk9STShXQVlMQU5EKQorCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjaW5jbHVk
ZSAiV2F5bGFuZFN1cmZhY2UuaCIKKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGdsaWIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBzdHJ1Y3Qgd2xfcmVnaXN0cnlfbGlz
dGVuZXIgV2F5bGFuZERpc3BsYXk6Om1fcmVnaXN0cnlMaXN0ZW5lciA9IHsKKyAgICAvLyBnbG9i
YWwKKyAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd2xfcmVnaXN0cnkqIHJlZ2lzdHJ5LCB1aW50
MzJfdCBuYW1lLCBjb25zdCBjaGFyKiBpbnRlcmZhY2UsIHVpbnQzMl90KQorICAgIHsKKyAgICAg
ICAgV2F5bGFuZERpc3BsYXkqIGRpc3BsYXkgPSBzdGF0aWNfY2FzdDxXYXlsYW5kRGlzcGxheSo+
KGRhdGEpOworICAgICAgICBpZiAoIXN0ZDo6c3RyY21wKGludGVyZmFjZSwgIndsX2NvbXBvc2l0
b3IiKSkKKyAgICAgICAgICAgIGRpc3BsYXktPm1fY29tcG9zaXRvciA9IHN0YXRpY19jYXN0PHN0
cnVjdCB3bF9jb21wb3NpdG9yKj4od2xfcmVnaXN0cnlfYmluZChyZWdpc3RyeSwgbmFtZSwgJnds
X2NvbXBvc2l0b3JfaW50ZXJmYWNlLCAxKSk7CisgICAgICAgIGVsc2UgaWYgKCFzdGQ6OnN0cmNt
cChpbnRlcmZhY2UsICJ3bF93ZWJraXRndGsiKSkKKyAgICAgICAgICAgIGRpc3BsYXktPm1fd2Vi
a2l0Z3RrID0gc3RhdGljX2Nhc3Q8c3RydWN0IHdsX3dlYmtpdGd0ayo+KHdsX3JlZ2lzdHJ5X2Jp
bmQocmVnaXN0cnksIG5hbWUsICZ3bF93ZWJraXRndGtfaW50ZXJmYWNlLCAxKSk7CisgICAgfSwK
KworICAgIC8vIGdsb2JhbF9yZW1vdmUKKyAgICBbXSh2b2lkKiwgc3RydWN0IHdsX3JlZ2lzdHJ5
KiwgdWludDMyX3QpCisgICAgeworICAgICAgICAvLyBGSVhNRTogaWYgdGhpcyBjYW4gaGFwcGVu
IHdpdGhvdXQgdGhlIFVJIFByb2Nlc3MgZ2V0dGluZyBzaHV0IGRvd24KKyAgICAgICAgLy8gd2Ug
c2hvdWxkIHByb2JhYmx5IGRlc3Ryb3kgb3VyIGNhY2hlZCBkaXNwbGF5IGluc3RhbmNlLgorICAg
IH0KK307CisKK1dheWxhbmREaXNwbGF5KiBXYXlsYW5kRGlzcGxheTo6aW5zdGFuY2UoKQorewor
ICAgIHN0YXRpYyBXYXlsYW5kRGlzcGxheSogZGlzcGxheSA9IG51bGxwdHI7CisgICAgaWYgKGRp
c3BsYXkpCisgICAgICAgIHJldHVybiBkaXNwbGF5OworCisgICAgc3RydWN0IHdsX2Rpc3BsYXkq
IHdsRGlzcGxheSA9IHdsX2Rpc3BsYXlfY29ubmVjdCgid2Via2l0Z3RrLXdheWxhbmQtY29tcG9z
aXRvci1zb2NrZXQiKTsKKyAgICBpZiAoIXdsRGlzcGxheSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBkaXNwbGF5ID0gbmV3IFdheWxhbmREaXNwbGF5KHdsRGlzcGxheSk7CisgICAg
cmV0dXJuIGRpc3BsYXk7Cit9CisKK1dheWxhbmREaXNwbGF5OjpXYXlsYW5kRGlzcGxheShzdHJ1
Y3Qgd2xfZGlzcGxheSogd2xEaXNwbGF5KQorICAgIDogbV9kaXNwbGF5KHdsRGlzcGxheSkKKyAg
ICAsIG1fcmVnaXN0cnkobnVsbHB0cikKKyAgICAsIG1fY29tcG9zaXRvcihudWxscHRyKQorICAg
ICwgbV93ZWJraXRndGsobnVsbHB0cikKK3sKKyAgICBtX3JlZ2lzdHJ5ID0gd2xfZGlzcGxheV9n
ZXRfcmVnaXN0cnkobV9kaXNwbGF5KTsKKyAgICB3bF9yZWdpc3RyeV9hZGRfbGlzdGVuZXIobV9y
ZWdpc3RyeSwgJm1fcmVnaXN0cnlMaXN0ZW5lciwgdGhpcyk7CisgICAgd2xfZGlzcGxheV9yb3Vu
ZHRyaXAobV9kaXNwbGF5KTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0cmli
dXRlc1tdID0geworICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfV0lORE9XX0JJVCwKKyAg
ICAgICAgRUdMX1JFRF9TSVpFLCAxLAorICAgICAgICBFR0xfR1JFRU5fU0laRSwgMSwKKyAgICAg
ICAgRUdMX0JMVUVfU0laRSwgMSwKKyAgICAgICAgRUdMX0FMUEhBX1NJWkUsIDEsCisgICAgICAg
IEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xfRVMyX0JJVCwKKyAgICAgICAgRUdMX05P
TkUKKyAgICB9OworCisgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheShtX2Rpc3BsYXkp
OworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgZ193
YXJuaW5nKCJlZ2xHZXREaXNwbGF5IEVHTF9OT19ESVNQTEFZIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVH
TF9GQUxTRSkgeworICAgICAgICBnX3dhcm5pbmcoImVnbEluaXRpYWxpemUgRUdMX0ZBTFNFIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZWdsQmluZEFQSShFR0xfT1BFTkdM
X0VTX0FQSSkgPT0gRUdMX0ZBTFNFKSB7CisgICAgICAgIGdfd2FybmluZygiZWdsQmluZEFQSSBF
R0xfRkFMU0UiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEVHTGludCBuOworICAg
IGlmICghZWdsQ2hvb3NlQ29uZmlnKG1fZWdsRGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJm1f
ZWdsQ29uZmlnLCAxLCAmbikgfHwgbiAhPSAxKQorICAgICAgICBnX3dhcm5pbmcoImVnbENob29z
ZUNvbmZpZyBmYWlsZWQiKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRTdXJmYWNlPiBX
YXlsYW5kRGlzcGxheTo6Y3JlYXRlU3VyZmFjZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCB3
aWRnZXRJZCkKK3sKKyAgICBzdHJ1Y3Qgd2xfc3VyZmFjZSogd2xTdXJmYWNlID0gd2xfY29tcG9z
aXRvcl9jcmVhdGVfc3VyZmFjZShtX2NvbXBvc2l0b3IpOworICAgIEVHTE5hdGl2ZVdpbmRvd1R5
cGUgbmF0aXZlV2luZG93ID0gd2xfZWdsX3dpbmRvd19jcmVhdGUod2xTdXJmYWNlLCBzdGQ6Om1h
eCgxLCB3aWR0aCksIHN0ZDo6bWF4KDEsIGhlaWdodCkpOworCisgICAgd2xfd2Via2l0Z3RrX3Nl
dF9zdXJmYWNlX2Zvcl93aWRnZXQobV93ZWJraXRndGssIHdsU3VyZmFjZSwgd2lkZ2V0SWQpOwor
ICAgIHdsX2Rpc3BsYXlfcm91bmR0cmlwKG1fZGlzcGxheSk7CisKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxXYXlsYW5kU3VyZmFjZT4od2xTdXJmYWNlLCBuYXRpdmVXaW5kb3cpOworfQor
Cit2b2lkIFdheWxhbmREaXNwbGF5OjpkZXN0cm95U3VyZmFjZShXYXlsYW5kU3VyZmFjZSogc3Vy
ZmFjZSkKK3sKKyAgICBpZiAoc3VyZmFjZSkgeworICAgICAgICBlZ2xNYWtlQ3VycmVudChtX2Vn
bERpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQp
OworCisgICAgICAgIHdsX2VnbF93aW5kb3dfZGVzdHJveShzdXJmYWNlLT5uYXRpdmVXaW5kb3dI
YW5kbGUoKSk7CisgICAgICAgIHdsX3N1cmZhY2VfZGVzdHJveShzdXJmYWNlLT5zdXJmYWNlKCkp
OworICAgIH0KK30KKworUGFzc093blB0cjxHTENvbnRleHRFR0w+IFdheWxhbmREaXNwbGF5Ojpj
cmVhdGVTaGFyaW5nR0xDb250ZXh0KCkKK3sKKyAgICBzdHJ1Y3Qgd2xfc3VyZmFjZSogd2xTdXJm
YWNlID0gd2xfY29tcG9zaXRvcl9jcmVhdGVfc3VyZmFjZShtX2NvbXBvc2l0b3IpOworICAgIEVH
TE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93ID0gd2xfZWdsX3dpbmRvd19jcmVhdGUod2xT
dXJmYWNlLCAxLCAxKTsKKyAgICByZXR1cm4gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5kb3dDb250
ZXh0KG5hdGl2ZVdpbmRvdywgbnVsbHB0cik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5oCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9X
YXlsYW5kRGlzcGxheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmICBXYXlsYW5kRGlz
cGxheV9oCisjZGVmaW5lICBXYXlsYW5kRGlzcGxheV9oCisKKyNpZiBQTEFURk9STShXQVlMQU5E
KQorCisjaW5jbHVkZSAiV2ViS2l0R3RrV2F5bGFuZENsaWVudFByb3RvY29sLmgiCisjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHdheWxhbmQtY2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKworI2luY2x1ZGUgPHdheWxhbmQtZWdsLmg+CisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dEVHTDsKK2NsYXNz
IFdheWxhbmRTdXJmYWNlOworCitjbGFzcyBXYXlsYW5kRGlzcGxheSB7CitwdWJsaWM6CisgICAg
c3RhdGljIFdheWxhbmREaXNwbGF5KiBpbnN0YW5jZSgpOworICAgIHN0cnVjdCB3bF9kaXNwbGF5
KiBuYXRpdmVEaXNwbGF5KCkgeyByZXR1cm4gbV9kaXNwbGF5OyB9CisKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2F5bGFuZFN1cmZhY2U+IGNyZWF0ZVN1cmZhY2UoaW50LCBpbnQsIGludCk7CisgICAg
dm9pZCBkZXN0cm95U3VyZmFjZShXYXlsYW5kU3VyZmFjZSopOworCisgICAgUGFzc093blB0cjxH
TENvbnRleHRFR0w+IGNyZWF0ZVNoYXJpbmdHTENvbnRleHQoKTsKKworcHJpdmF0ZToKKyAgICBX
YXlsYW5kRGlzcGxheShzdHJ1Y3Qgd2xfZGlzcGxheSopOworCisgICAgc3RhdGljIGNvbnN0IHN0
cnVjdCB3bF9yZWdpc3RyeV9saXN0ZW5lciBtX3JlZ2lzdHJ5TGlzdGVuZXI7CisKKyAgICBzdHJ1
Y3Qgd2xfZGlzcGxheSogbV9kaXNwbGF5OworICAgIHN0cnVjdCB3bF9yZWdpc3RyeSogbV9yZWdp
c3RyeTsKKyAgICBzdHJ1Y3Qgd2xfY29tcG9zaXRvciogbV9jb21wb3NpdG9yOworICAgIHN0cnVj
dCB3bF93ZWJraXRndGsqIG1fd2Via2l0Z3RrOworCisgICAgRUdMRGlzcGxheSBtX2VnbERpc3Bs
YXk7CisgICAgRUdMQ29uZmlnIG1fZWdsQ29uZmlnOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKKworI2VuZGlmIC8vIFdheWxhbmRE
aXNwbGF5X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237101</attachid>
            <date>2014-08-25 12:56:41 -0700</date>
            <delta_ts>2014-08-26 01:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136216-20140825125632.patch</filename>
            <type>text/plain</type>
            <size>11284</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MjkzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTA4LTI1ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgV2F5bGFu
ZERpc3BsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjIxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0aGUgV2F5bGFuZERpc3BsYXkgY2xhc3MuIFRoaXMgY2xhc3MgaXMgdXNlZCBpbiB0aGUg
TGF5ZXJUcmVlSG9zdEd0aywKKyAgICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGFuZCBjb250cm9s
cyB0aGUgY29ubmVjdGlvbiB0byB0aGUgbmVzdGVkIFdheWxhbmQKKyAgICAgICAgY29tcG9zaXRv
ciBpbiB0aGUgVUlQcm9jZXNzLiBPbmx5IG9uZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgaXMgdXNl
ZCBpbiB0aGUKKyAgICAgICAgV2ViUHJvY2VzcywgYWNjZXNzaWJsZSB2aWEgdGhlIHN0YXRpYyBX
YXlsYW5kRGlzcGxheTo6aW5zdGFuY2UoKSBtZXRob2QuCisKKyAgICAgICAgVGhlIFdheWxhbmRE
aXNwbGF5IGNvbnN0cnVjdG9yIHBlcmZvcm1zIHRoZSBFR0wgaW5pdGlhbGl6YXRpb24gd2hpbGUg
YWxzbworICAgICAgICBxdWVyeWluZyB0aGUgV2F5bGFuZCByZWdpc3RlciwgcmVzdWx0aW5nIGlu
IGluaXRpYWxpemluZyBjbGllbnQtc2lkZSBvYmplY3RzCisgICAgICAgIHRoYXQgY2FuIGludGVy
YWN0IHdpdGggdGhlIHdsX2NvbXBvc2l0b3IgYW5kIHdsX3dlYmtpdGd0ayBpbnRlcmZhY2VzCisg
ICAgICAgIGltcGxlbWVudGVkIGluIHRoZSBuZXN0ZWQgV2F5bGFuZCBjb21wb3NpdG9yLgorCisg
ICAgICAgIFdheWxhbmREaXNwbGF5OjpjcmVhdGVTdXJmYWNlKCkgaXMgY2FsbGVkIGJ5IHRoZSBM
YXllclRyZWVIb3N0R3RrIGR1cmluZworICAgICAgICBpdHMgb3duIGluaXRpYWxpemF0aW9uLiBU
aGUgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgd2xfc3VyZmFjZSBvYmplY3QgdmlhIHRoZQorICAgICAg
ICB3bF9jb21wb3NpdG9yIGludGVyZmFjZSBhbmQgYSBuZXcgd2xfZWdsX3dpbmRvdyBvYmplY3Qg
dGhhdCdzIGJhc2VkIG9uIHRoYXQKKyAgICAgICAgc3VyZmFjZS4gRm9yIHRoZSB3bF9lZ2xfd2lu
ZG93IG9iamVjdCwgd2UgZmFsbCBiYWNrIHRvIGEgd2lkdGggb3IgaGVpZ2h0IG9mIDEKKyAgICAg
ICAgaW4gY2FzZSB0aGUgcGFzc2VkLWluIHZhbHVlIGZvciBlaXRoZXIgaXMgMC4gVGhpcyBhdm9p
ZHMgcHJvYmxlbXMgaW4gTWVzYQorICAgICAgICB3aGVyZSB3aWR0aHMgb3IgaGVpZ2h0cyBvZiAw
IGFyZSBub3Qgc3VwcG9ydGVkLgorCisgICAgICAgIFdlIGFzc29jaWF0ZSB0aGUgY3JlYXRlZCBz
dXJmYWNlIHdpdGggdGhlIHBhc3NlZC1pbiB3aWRnZXQgSUQsIGFzIHByb3ZpZGVkCisgICAgICAg
IGJ5IExheWVyVHJlZUhvc3RHdGssIHZpYSB0aGUgd2xfd2Via2l0Z3RrIGludGVyZmFjZS4gVGhp
cyBlbmFibGVzIHByb3BlcgorICAgICAgICBtYXBwaW5nIG9mIFdheWxhbmQgc3VyZmFjZXMgYW5k
IHRoZSBHdGtXaWRnZXRzIGluIHRoZSBVSVByb2Nlc3MgYW5kIG1ha2VzCisgICAgICAgIGl0IHBv
c3NpYmxlIGZvciB0aGUgbmVzdGVkIFdheWxhbmQgY29tcG9zaXRvciB0byBjb3JyZWN0bHkgZGV0
ZXJtaW5lIHdoaWNoCisgICAgICAgIEd0a1dpZGdldCBoYXMgdG8gYmUgcmVkcmF3biBhZnRlciBz
b21lIHN1cmZhY2UgaGFzIGJlZW4gY29tbWl0dGVkLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5
OjpjcmVhdGVTaGFyaW5nR0xDb250ZXh0KCkgY3JlYXRlcyBhIG5ldyBHTENvbnRleHRFR0wgb2Jq
ZWN0CisgICAgICAgIHRoYXQncyB0byBiZSB1c2VkIGFzIGEgc2hhcmluZyBjb250ZXh0LiBUaGUg
bWV0aG9kIGNyZWF0ZXMgYSBuZXcgc3VyZmFjZQorICAgICAgICB2aWEgdGhlIHdsX2NvbXBvc2l0
b3IgaW50ZXJmYWNlIGFuZCB1c2VzIGl0IHRvIGNyZWF0ZSBhIGR1bW15IG5hdGl2ZSBFR0wKKyAg
ICAgICAgd2luZG93IHRoYXQncyAxeDFweCBpbiBzaXplLiBUaGUgR0xDb250ZXh0RUdMIG9iamVj
dCBpcyB0aGVuIGNyZWF0ZWQKKyAgICAgICAgdGhyb3VnaCB0aGUgc3RhdGljIEdMQ29udGV4dEVH
TDo6Y3JlYXRlV2luZG93Q29udGV4dCgpIG1ldGhvZC4KKworICAgICAgICAqIFBsYXRmb3JtR1RL
LmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3Bs
YXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjppbnN0YW5j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6V2F5bGFuZERpc3BsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6OmNyZWF0ZVN1cmZhY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6OmNyZWF0ZVNoYXJpbmdHTENvbnRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6bmF0aXZlRGlzcGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6ZWdsRGlzcGxheSk6CisKIDIwMTQtMDgtMjUg
IEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZHVj
ZSBzdHlsZSBtYXJraW5nIHdoZW4gdXNpbmcgdGhlIHBzZXVkbyBjbGFzcyA6cGxhY2Vob2xkZXIt
c2hvd24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCShyZXZpc2lvbiAxNzI5MzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtNDM0
LDYgKzQzNCw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKIAogaWYgKEVOQUJMRV9XQVlMQU5EX1RB
UkdFVCkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlUGxhdGZvcm1HVEtfU09VUkNFUworICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmNwcAogICAgICAgICAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vV2ViS2l0R3RrV2F5bGFuZENsaWVudFByb3Rv
Y29sLmMKICAgICApCiBlbmRpZiAoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5jcHAJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxh
bmREaXNwbGF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXYXlsYW5kRGlzcGxheS5oIgorCisjaWYgUExBVEZPUk0oV0FZTEFORCkKKwor
I2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgorI2luY2x1ZGUgIldheWxhbmRTdXJmYWNlLmgiCisj
aW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY29uc3Qgc3RydWN0IHdsX3JlZ2lzdHJ5X2xpc3RlbmVyIFdheWxhbmREaXNwbGF5Ojpt
X3JlZ2lzdHJ5TGlzdGVuZXIgPSB7CisgICAgLy8gZ2xvYmFsCisgICAgW10odm9pZCogZGF0YSwg
c3RydWN0IHdsX3JlZ2lzdHJ5KiByZWdpc3RyeSwgdWludDMyX3QgbmFtZSwgY29uc3QgY2hhciog
aW50ZXJmYWNlLCB1aW50MzJfdCkKKyAgICB7CisgICAgICAgIFdheWxhbmREaXNwbGF5KiBkaXNw
bGF5ID0gc3RhdGljX2Nhc3Q8V2F5bGFuZERpc3BsYXkqPihkYXRhKTsKKyAgICAgICAgaWYgKCFz
dGQ6OnN0cmNtcChpbnRlcmZhY2UsICJ3bF9jb21wb3NpdG9yIikpCisgICAgICAgICAgICBkaXNw
bGF5LT5tX2NvbXBvc2l0b3IgPSBzdGF0aWNfY2FzdDxzdHJ1Y3Qgd2xfY29tcG9zaXRvcio+KHds
X3JlZ2lzdHJ5X2JpbmQocmVnaXN0cnksIG5hbWUsICZ3bF9jb21wb3NpdG9yX2ludGVyZmFjZSwg
MSkpOworICAgICAgICBlbHNlIGlmICghc3RkOjpzdHJjbXAoaW50ZXJmYWNlLCAid2xfd2Via2l0
Z3RrIikpCisgICAgICAgICAgICBkaXNwbGF5LT5tX3dlYmtpdGd0ayA9IHN0YXRpY19jYXN0PHN0
cnVjdCB3bF93ZWJraXRndGsqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5LCBuYW1lLCAmd2xf
d2Via2l0Z3RrX2ludGVyZmFjZSwgMSkpOworICAgIH0sCisKKyAgICAvLyBnbG9iYWxfcmVtb3Zl
CisgICAgW10odm9pZCosIHN0cnVjdCB3bF9yZWdpc3RyeSosIHVpbnQzMl90KQorICAgIHsKKyAg
ICAgICAgLy8gRklYTUU6IGlmIHRoaXMgY2FuIGhhcHBlbiB3aXRob3V0IHRoZSBVSSBQcm9jZXNz
IGdldHRpbmcgc2h1dCBkb3duCisgICAgICAgIC8vIHdlIHNob3VsZCBwcm9iYWJseSBkZXN0cm95
IG91ciBjYWNoZWQgZGlzcGxheSBpbnN0YW5jZS4KKyAgICB9Cit9OworCitXYXlsYW5kRGlzcGxh
eSogV2F5bGFuZERpc3BsYXk6Omluc3RhbmNlKCkKK3sKKyAgICBzdGF0aWMgV2F5bGFuZERpc3Bs
YXkqIGRpc3BsYXkgPSBudWxscHRyOworICAgIGlmIChkaXNwbGF5KQorICAgICAgICByZXR1cm4g
ZGlzcGxheTsKKworICAgIHN0cnVjdCB3bF9kaXNwbGF5KiB3bERpc3BsYXkgPSB3bF9kaXNwbGF5
X2Nvbm5lY3QoIndlYmtpdGd0ay13YXlsYW5kLWNvbXBvc2l0b3Itc29ja2V0Iik7CisgICAgaWYg
KCF3bERpc3BsYXkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgZGlzcGxheSA9IG5l
dyBXYXlsYW5kRGlzcGxheSh3bERpc3BsYXkpOworICAgIHJldHVybiBkaXNwbGF5OworfQorCitX
YXlsYW5kRGlzcGxheTo6V2F5bGFuZERpc3BsYXkoc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxh
eSkKKyAgICA6IG1fZGlzcGxheSh3bERpc3BsYXkpCisgICAgLCBtX3JlZ2lzdHJ5KG51bGxwdHIp
CisgICAgLCBtX2NvbXBvc2l0b3IobnVsbHB0cikKKyAgICAsIG1fd2Via2l0Z3RrKG51bGxwdHIp
Cit7CisgICAgbV9yZWdpc3RyeSA9IHdsX2Rpc3BsYXlfZ2V0X3JlZ2lzdHJ5KG1fZGlzcGxheSk7
CisgICAgd2xfcmVnaXN0cnlfYWRkX2xpc3RlbmVyKG1fcmVnaXN0cnksICZtX3JlZ2lzdHJ5TGlz
dGVuZXIsIHRoaXMpOworICAgIHdsX2Rpc3BsYXlfcm91bmR0cmlwKG1fZGlzcGxheSk7CisKKyAg
ICBzdGF0aWMgY29uc3QgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNbXSA9IHsKKyAgICAgICAgRUdM
X1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCisgICAgICAgIEVHTF9SRURfU0laRSwgMSwK
KyAgICAgICAgRUdMX0dSRUVOX1NJWkUsIDEsCisgICAgICAgIEVHTF9CTFVFX1NJWkUsIDEsCisg
ICAgICAgIEVHTF9BTFBIQV9TSVpFLCAxLAorICAgICAgICBFR0xfUkVOREVSQUJMRV9UWVBFLCBF
R0xfT1BFTkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9OT05FCisgICAgfTsKKworICAgIG1fZWds
RGlzcGxheSA9IGVnbEdldERpc3BsYXkobV9kaXNwbGF5KTsKKyAgICBpZiAobV9lZ2xEaXNwbGF5
ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIGdfd2FybmluZygiZWdsR2V0RGlzcGxheSBF
R0xfTk9fRElTUExBWSIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGVnbElu
aXRpYWxpemUobV9lZ2xEaXNwbGF5LCAwLCAwKSA9PSBFR0xfRkFMU0UpIHsKKyAgICAgICAgZ193
YXJuaW5nKCJlZ2xJbml0aWFsaXplIEVHTF9GQUxTRSIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKGVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpID09IEVHTF9GQUxTRSkg
eworICAgICAgICBnX3dhcm5pbmcoImVnbEJpbmRBUEkgRUdMX0ZBTFNFIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBFR0xpbnQgbjsKKyAgICBpZiAoIWVnbENob29zZUNvbmZpZyht
X2VnbERpc3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbENvbmZpZywgMSwgJm4pIHx8IG4g
IT0gMSkKKyAgICAgICAgZ193YXJuaW5nKCJlZ2xDaG9vc2VDb25maWcgZmFpbGVkIik7Cit9CisK
K3N0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kU3VyZmFjZT4gV2F5bGFuZERpc3BsYXk6OmNyZWF0ZVN1
cmZhY2UoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgd2lkZ2V0SWQpCit7CisgICAgc3RydWN0
IHdsX3N1cmZhY2UqIHdsU3VyZmFjZSA9IHdsX2NvbXBvc2l0b3JfY3JlYXRlX3N1cmZhY2UobV9j
b21wb3NpdG9yKTsKKyAgICBFR0xOYXRpdmVXaW5kb3dUeXBlIG5hdGl2ZVdpbmRvdyA9IHdsX2Vn
bF93aW5kb3dfY3JlYXRlKHdsU3VyZmFjZSwgc3RkOjptYXgoMSwgd2lkdGgpLCBzdGQ6Om1heCgx
LCBoZWlnaHQpKTsKKworICAgIHdsX3dlYmtpdGd0a19zZXRfc3VyZmFjZV9mb3Jfd2lkZ2V0KG1f
d2Via2l0Z3RrLCB3bFN1cmZhY2UsIHdpZGdldElkKTsKKyAgICB3bF9kaXNwbGF5X3JvdW5kdHJp
cChtX2Rpc3BsYXkpOworCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2F5bGFuZFN1cmZh
Y2U+KHdsU3VyZmFjZSwgbmF0aXZlV2luZG93KTsKK30KKworUGFzc093blB0cjxHTENvbnRleHRF
R0w+IFdheWxhbmREaXNwbGF5OjpjcmVhdGVTaGFyaW5nR0xDb250ZXh0KCkKK3sKKyAgICBzdHJ1
Y3Qgd2xfc3VyZmFjZSogd2xTdXJmYWNlID0gd2xfY29tcG9zaXRvcl9jcmVhdGVfc3VyZmFjZSht
X2NvbXBvc2l0b3IpOworICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93ID0gd2xf
ZWdsX3dpbmRvd19jcmVhdGUod2xTdXJmYWNlLCAxLCAxKTsKKyAgICByZXR1cm4gR0xDb250ZXh0
RUdMOjpjcmVhdGVXaW5kb3dDb250ZXh0KG5hdGl2ZVdpbmRvdywgbnVsbHB0cik7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFu
ZC9XYXlsYW5kRGlzcGxheS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmICBXYXlsYW5kRGlzcGxheV9oCisjZGVmaW5lICBXYXlsYW5kRGlzcGxheV9oCisK
KyNpZiBQTEFURk9STShXQVlMQU5EKQorCisjaW5jbHVkZSAiV2ViS2l0R3RrV2F5bGFuZENsaWVu
dFByb3RvY29sLmgiCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHdheWxhbmQtY2xpZW50
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2luY2x1ZGUgPHdheWxhbmQtZWds
Lmg+CisjaW5jbHVkZSA8RUdML2VnbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEdMQ29udGV4dEVHTDsKK2NsYXNzIFdheWxhbmRTdXJmYWNlOworCitjbGFzcyBXYXlsYW5kRGlz
cGxheSB7CitwdWJsaWM6CisgICAgc3RhdGljIFdheWxhbmREaXNwbGF5KiBpbnN0YW5jZSgpOwor
CisgICAgc3RydWN0IHdsX2Rpc3BsYXkqIG5hdGl2ZURpc3BsYXkoKSBjb25zdCB7IHJldHVybiBt
X2Rpc3BsYXk7IH0KKyAgICBFR0xEaXNwbGF5IGVnbERpc3BsYXkoKSBjb25zdCB7IHJldHVybiBt
X2VnbERpc3BsYXk7IH0KKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kU3VyZmFjZT4gY3Jl
YXRlU3VyZmFjZShpbnQsIGludCwgaW50KTsKKworICAgIFBhc3NPd25QdHI8R0xDb250ZXh0RUdM
PiBjcmVhdGVTaGFyaW5nR0xDb250ZXh0KCk7CisKK3ByaXZhdGU6CisgICAgV2F5bGFuZERpc3Bs
YXkoc3RydWN0IHdsX2Rpc3BsYXkqKTsKKworICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2xfcmVn
aXN0cnlfbGlzdGVuZXIgbV9yZWdpc3RyeUxpc3RlbmVyOworCisgICAgc3RydWN0IHdsX2Rpc3Bs
YXkqIG1fZGlzcGxheTsKKyAgICBzdHJ1Y3Qgd2xfcmVnaXN0cnkqIG1fcmVnaXN0cnk7CisgICAg
c3RydWN0IHdsX2NvbXBvc2l0b3IqIG1fY29tcG9zaXRvcjsKKyAgICBzdHJ1Y3Qgd2xfd2Via2l0
Z3RrKiBtX3dlYmtpdGd0azsKKworICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OworICAgIEVH
TENvbmZpZyBtX2VnbENvbmZpZzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCisKKyNlbmRpZiAvLyBXYXlsYW5kRGlzcGxheV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237141</attachid>
            <date>2014-08-26 01:47:18 -0700</date>
            <delta_ts>2014-08-28 00:58:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136216-20140826014709.patch</filename>
            <type>text/plain</type>
            <size>11563</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Mjk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE0LTA4LTI2ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgV2F5bGFu
ZERpc3BsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjIxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0aGUgV2F5bGFuZERpc3BsYXkgY2xhc3MuIFRoaXMgY2xhc3MgaXMgdXNlZCBpbiB0aGUg
TGF5ZXJUcmVlSG9zdEd0aywKKyAgICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGFuZCBjb250cm9s
cyB0aGUgY29ubmVjdGlvbiB0byB0aGUgbmVzdGVkIFdheWxhbmQKKyAgICAgICAgY29tcG9zaXRv
ciBpbiB0aGUgVUlQcm9jZXNzLiBPbmx5IG9uZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgaXMgdXNl
ZCBpbiB0aGUKKyAgICAgICAgV2ViUHJvY2VzcywgYWNjZXNzaWJsZSB2aWEgdGhlIHN0YXRpYyBX
YXlsYW5kRGlzcGxheTo6aW5zdGFuY2UoKSBtZXRob2QuCisKKyAgICAgICAgVGhlIFdheWxhbmRE
aXNwbGF5IGNvbnN0cnVjdG9yIHBlcmZvcm1zIHRoZSBFR0wgaW5pdGlhbGl6YXRpb24gd2hpbGUg
YWxzbworICAgICAgICBxdWVyeWluZyB0aGUgV2F5bGFuZCByZWdpc3RlciwgcmVzdWx0aW5nIGlu
IGluaXRpYWxpemluZyBjbGllbnQtc2lkZSBvYmplY3RzCisgICAgICAgIHRoYXQgY2FuIGludGVy
YWN0IHdpdGggdGhlIHdsX2NvbXBvc2l0b3IgYW5kIHdsX3dlYmtpdGd0ayBpbnRlcmZhY2VzCisg
ICAgICAgIGltcGxlbWVudGVkIGluIHRoZSBuZXN0ZWQgV2F5bGFuZCBjb21wb3NpdG9yLgorCisg
ICAgICAgIFdheWxhbmREaXNwbGF5OjpjcmVhdGVTdXJmYWNlKCkgaXMgY2FsbGVkIGJ5IHRoZSBM
YXllclRyZWVIb3N0R3RrIGR1cmluZworICAgICAgICBpdHMgb3duIGluaXRpYWxpemF0aW9uLiBU
aGUgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgd2xfc3VyZmFjZSBvYmplY3QgdmlhIHRoZQorICAgICAg
ICB3bF9jb21wb3NpdG9yIGludGVyZmFjZSBhbmQgYSBuZXcgd2xfZWdsX3dpbmRvdyBvYmplY3Qg
dGhhdCdzIGJhc2VkIG9uIHRoYXQKKyAgICAgICAgc3VyZmFjZS4gRm9yIHRoZSB3bF9lZ2xfd2lu
ZG93IG9iamVjdCwgd2UgZmFsbCBiYWNrIHRvIGEgd2lkdGggb3IgaGVpZ2h0IG9mIDEKKyAgICAg
ICAgaW4gY2FzZSB0aGUgcGFzc2VkLWluIHZhbHVlIGZvciBlaXRoZXIgaXMgMC4gVGhpcyBhdm9p
ZHMgcHJvYmxlbXMgaW4gTWVzYQorICAgICAgICB3aGVyZSB3aWR0aHMgb3IgaGVpZ2h0cyBvZiAw
IGFyZSBub3Qgc3VwcG9ydGVkLgorCisgICAgICAgIFdlIGFzc29jaWF0ZSB0aGUgY3JlYXRlZCBz
dXJmYWNlIHdpdGggdGhlIHBhc3NlZC1pbiB3aWRnZXQgSUQsIGFzIHByb3ZpZGVkCisgICAgICAg
IGJ5IExheWVyVHJlZUhvc3RHdGssIHZpYSB0aGUgd2xfd2Via2l0Z3RrIGludGVyZmFjZS4gVGhp
cyBlbmFibGVzIHByb3BlcgorICAgICAgICBtYXBwaW5nIG9mIFdheWxhbmQgc3VyZmFjZXMgYW5k
IHRoZSBHdGtXaWRnZXRzIGluIHRoZSBVSVByb2Nlc3MgYW5kIG1ha2VzCisgICAgICAgIGl0IHBv
c3NpYmxlIGZvciB0aGUgbmVzdGVkIFdheWxhbmQgY29tcG9zaXRvciB0byBjb3JyZWN0bHkgZGV0
ZXJtaW5lIHdoaWNoCisgICAgICAgIEd0a1dpZGdldCBoYXMgdG8gYmUgcmVkcmF3biBhZnRlciBz
b21lIHN1cmZhY2UgaGFzIGJlZW4gY29tbWl0dGVkLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5
OjpjcmVhdGVTaGFyaW5nR0xDb250ZXh0KCkgY3JlYXRlcyBhIG5ldyBHTENvbnRleHRFR0wgb2Jq
ZWN0CisgICAgICAgIHRoYXQncyB0byBiZSB1c2VkIGFzIGEgc2hhcmluZyBjb250ZXh0LiBUaGUg
bWV0aG9kIGNyZWF0ZXMgYSBuZXcgc3VyZmFjZQorICAgICAgICB2aWEgdGhlIHdsX2NvbXBvc2l0
b3IgaW50ZXJmYWNlIGFuZCB1c2VzIGl0IHRvIGNyZWF0ZSBhIGR1bW15IG5hdGl2ZSBFR0wKKyAg
ICAgICAgd2luZG93IHRoYXQncyAxeDFweCBpbiBzaXplLiBUaGUgR0xDb250ZXh0RUdMIG9iamVj
dCBpcyB0aGVuIGNyZWF0ZWQKKyAgICAgICAgdGhyb3VnaCB0aGUgc3RhdGljIEdMQ29udGV4dEVH
TDo6Y3JlYXRlV2luZG93Q29udGV4dCgpIG1ldGhvZC4KKworICAgICAgICAqIFBsYXRmb3JtR1RL
LmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3Bs
YXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjpnbG9iYWxD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6Z2xvYmFsUmVtb3Zl
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6Omluc3RhbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjpXYXlsYW5kRGlzcGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6Y3JlYXRlU3VyZmFjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6Y3JlYXRlU2hhcmluZ0dMQ29udGV4dCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjpuYXRpdmVEaXNwbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjplZ2xEaXNwbGF5KToKKwogMjAxNC0wOC0yNiAgTWFy
ayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciByMTcy
OTUxLgpJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UJKHJldmlzaW9uIDE3Mjk1MykKKysr
IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00MzQs
NiArNDM0LDcgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogCiBpZiAoRU5BQkxFX1dBWUxBTkRfVEFS
R0VUKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVQbGF0Zm9ybUdUS19TT1VSQ0VTCisgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuY3BwCiAgICAgICAgICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJLaXRHdGtXYXlsYW5kQ2xpZW50UHJvdG9j
b2wuYwogICAgICkKIGVuZGlmICgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFu
ZERpc3BsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldheWxhbmREaXNwbGF5LmgiCisKKyNpZiBQTEFURk9STShXQVlMQU5EKQorCisj
aW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjaW5jbHVkZSAiV2F5bGFuZFN1cmZhY2UuaCIKKyNp
bmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGdsaWIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjb25zdCBzdHJ1Y3Qgd2xfcmVnaXN0cnlfbGlzdGVuZXIgV2F5bGFuZERpc3BsYXk6Om1f
cmVnaXN0cnlMaXN0ZW5lciA9IHsKKyAgICBXYXlsYW5kRGlzcGxheTo6Z2xvYmFsQ2FsbGJhY2ss
CisgICAgV2F5bGFuZERpc3BsYXk6Omdsb2JhbFJlbW92ZUNhbGxiYWNrCit9OworCit2b2lkIFdh
eWxhbmREaXNwbGF5OjpnbG9iYWxDYWxsYmFjayh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd2xfcmVnaXN0
cnkqIHJlZ2lzdHJ5LCB1aW50MzJfdCBuYW1lLCBjb25zdCBjaGFyKiBpbnRlcmZhY2UsIHVpbnQz
Ml90KQoreworICAgIGF1dG8gZGlzcGxheSA9IHN0YXRpY19jYXN0PFdheWxhbmREaXNwbGF5Kj4o
ZGF0YSk7CisgICAgaWYgKCFzdGQ6OnN0cmNtcChpbnRlcmZhY2UsICJ3bF9jb21wb3NpdG9yIikp
CisgICAgICAgIGRpc3BsYXktPm1fY29tcG9zaXRvciA9IHN0YXRpY19jYXN0PHN0cnVjdCB3bF9j
b21wb3NpdG9yKj4od2xfcmVnaXN0cnlfYmluZChyZWdpc3RyeSwgbmFtZSwgJndsX2NvbXBvc2l0
b3JfaW50ZXJmYWNlLCAxKSk7CisgICAgZWxzZSBpZiAoIXN0ZDo6c3RyY21wKGludGVyZmFjZSwg
IndsX3dlYmtpdGd0ayIpKQorICAgICAgICBkaXNwbGF5LT5tX3dlYmtpdGd0ayA9IHN0YXRpY19j
YXN0PHN0cnVjdCB3bF93ZWJraXRndGsqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5LCBuYW1l
LCAmd2xfd2Via2l0Z3RrX2ludGVyZmFjZSwgMSkpOworfQorCit2b2lkIFdheWxhbmREaXNwbGF5
OjpnbG9iYWxSZW1vdmVDYWxsYmFjayh2b2lkKiwgc3RydWN0IHdsX3JlZ2lzdHJ5KiwgdWludDMy
X3QpCit7CisgICAgLy8gRklYTUU6IGlmIHRoaXMgY2FuIGhhcHBlbiB3aXRob3V0IHRoZSBVSSBQ
cm9jZXNzIGdldHRpbmcgc2h1dCBkb3duCisgICAgLy8gd2Ugc2hvdWxkIHByb2JhYmx5IGRlc3Ry
b3kgb3VyIGNhY2hlZCBkaXNwbGF5IGluc3RhbmNlLgorfQorCitXYXlsYW5kRGlzcGxheSogV2F5
bGFuZERpc3BsYXk6Omluc3RhbmNlKCkKK3sKKyAgICBzdGF0aWMgV2F5bGFuZERpc3BsYXkqIGRp
c3BsYXkgPSBudWxscHRyOworICAgIGlmIChkaXNwbGF5KQorICAgICAgICByZXR1cm4gZGlzcGxh
eTsKKworICAgIHN0cnVjdCB3bF9kaXNwbGF5KiB3bERpc3BsYXkgPSB3bF9kaXNwbGF5X2Nvbm5l
Y3QoIndlYmtpdGd0ay13YXlsYW5kLWNvbXBvc2l0b3Itc29ja2V0Iik7CisgICAgaWYgKCF3bERp
c3BsYXkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgZGlzcGxheSA9IG5ldyBXYXls
YW5kRGlzcGxheSh3bERpc3BsYXkpOworICAgIHJldHVybiBkaXNwbGF5OworfQorCitXYXlsYW5k
RGlzcGxheTo6V2F5bGFuZERpc3BsYXkoc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSkKKyAg
ICA6IG1fZGlzcGxheSh3bERpc3BsYXkpCisgICAgLCBtX3JlZ2lzdHJ5KG51bGxwdHIpCisgICAg
LCBtX2NvbXBvc2l0b3IobnVsbHB0cikKKyAgICAsIG1fd2Via2l0Z3RrKG51bGxwdHIpCit7Cisg
ICAgbV9yZWdpc3RyeSA9IHdsX2Rpc3BsYXlfZ2V0X3JlZ2lzdHJ5KG1fZGlzcGxheSk7CisgICAg
d2xfcmVnaXN0cnlfYWRkX2xpc3RlbmVyKG1fcmVnaXN0cnksICZtX3JlZ2lzdHJ5TGlzdGVuZXIs
IHRoaXMpOworICAgIHdsX2Rpc3BsYXlfcm91bmR0cmlwKG1fZGlzcGxheSk7CisKKyAgICBzdGF0
aWMgY29uc3QgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNbXSA9IHsKKyAgICAgICAgRUdMX1NVUkZB
Q0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCisgICAgICAgIEVHTF9SRURfU0laRSwgMSwKKyAgICAg
ICAgRUdMX0dSRUVOX1NJWkUsIDEsCisgICAgICAgIEVHTF9CTFVFX1NJWkUsIDEsCisgICAgICAg
IEVHTF9BTFBIQV9TSVpFLCAxLAorICAgICAgICBFR0xfUkVOREVSQUJMRV9UWVBFLCBFR0xfT1BF
TkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9OT05FCisgICAgfTsKKworICAgIG1fZWdsRGlzcGxh
eSA9IGVnbEdldERpc3BsYXkobV9kaXNwbGF5KTsKKyAgICBpZiAobV9lZ2xEaXNwbGF5ID09IEVH
TF9OT19ESVNQTEFZKSB7CisgICAgICAgIGdfd2FybmluZygiZWdsR2V0RGlzcGxheSBFR0xfTk9f
RElTUExBWSIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGVnbEluaXRpYWxp
emUobV9lZ2xEaXNwbGF5LCAwLCAwKSA9PSBFR0xfRkFMU0UpIHsKKyAgICAgICAgZ193YXJuaW5n
KCJlZ2xJbml0aWFsaXplIEVHTF9GQUxTRSIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpID09IEVHTF9GQUxTRSkgeworICAg
ICAgICBnX3dhcm5pbmcoImVnbEJpbmRBUEkgRUdMX0ZBTFNFIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBFR0xpbnQgbjsKKyAgICBpZiAoIWVnbENob29zZUNvbmZpZyhtX2VnbERp
c3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbENvbmZpZywgMSwgJm4pIHx8IG4gIT0gMSkK
KyAgICAgICAgZ193YXJuaW5nKCJlZ2xDaG9vc2VDb25maWcgZmFpbGVkIik7Cit9CisKK3N0ZDo6
dW5pcXVlX3B0cjxXYXlsYW5kU3VyZmFjZT4gV2F5bGFuZERpc3BsYXk6OmNyZWF0ZVN1cmZhY2Uo
aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgd2lkZ2V0SWQpCit7CisgICAgc3RydWN0IHdsX3N1
cmZhY2UqIHdsU3VyZmFjZSA9IHdsX2NvbXBvc2l0b3JfY3JlYXRlX3N1cmZhY2UobV9jb21wb3Np
dG9yKTsKKyAgICBFR0xOYXRpdmVXaW5kb3dUeXBlIG5hdGl2ZVdpbmRvdyA9IHdsX2VnbF93aW5k
b3dfY3JlYXRlKHdsU3VyZmFjZSwgc3RkOjptYXgoMSwgd2lkdGgpLCBzdGQ6Om1heCgxLCBoZWln
aHQpKTsKKworICAgIHdsX3dlYmtpdGd0a19zZXRfc3VyZmFjZV9mb3Jfd2lkZ2V0KG1fd2Via2l0
Z3RrLCB3bFN1cmZhY2UsIHdpZGdldElkKTsKKyAgICB3bF9kaXNwbGF5X3JvdW5kdHJpcChtX2Rp
c3BsYXkpOworCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2F5bGFuZFN1cmZhY2U+KHds
U3VyZmFjZSwgbmF0aXZlV2luZG93KTsKK30KKworUGFzc093blB0cjxHTENvbnRleHRFR0w+IFdh
eWxhbmREaXNwbGF5OjpjcmVhdGVTaGFyaW5nR0xDb250ZXh0KCkKK3sKKyAgICBzdHJ1Y3Qgd2xf
c3VyZmFjZSogd2xTdXJmYWNlID0gd2xfY29tcG9zaXRvcl9jcmVhdGVfc3VyZmFjZShtX2NvbXBv
c2l0b3IpOworICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93ID0gd2xfZWdsX3dp
bmRvd19jcmVhdGUod2xTdXJmYWNlLCAxLCAxKTsKKyAgICByZXR1cm4gR0xDb250ZXh0RUdMOjpj
cmVhdGVXaW5kb3dDb250ZXh0KG5hdGl2ZVdpbmRvdywgbnVsbHB0cik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXls
YW5kRGlzcGxheS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmICBXYXlsYW5kRGlzcGxheV9oCisjZGVmaW5lICBXYXlsYW5kRGlzcGxheV9oCisKKyNpZiBQ
TEFURk9STShXQVlMQU5EKQorCisjaW5jbHVkZSAiV2ViS2l0R3RrV2F5bGFuZENsaWVudFByb3Rv
Y29sLmgiCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHdheWxhbmQtY2xpZW50Lmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2luY2x1ZGUgPHdheWxhbmQtZWdsLmg+Cisj
aW5jbHVkZSA8RUdML2VnbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29u
dGV4dEVHTDsKK2NsYXNzIFdheWxhbmRTdXJmYWNlOworCitjbGFzcyBXYXlsYW5kRGlzcGxheSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFdheWxhbmREaXNwbGF5KiBpbnN0YW5jZSgpOworCisgICAg
c3RydWN0IHdsX2Rpc3BsYXkqIG5hdGl2ZURpc3BsYXkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3Bs
YXk7IH0KKyAgICBFR0xEaXNwbGF5IGVnbERpc3BsYXkoKSBjb25zdCB7IHJldHVybiBtX2VnbERp
c3BsYXk7IH0KKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kU3VyZmFjZT4gY3JlYXRlU3Vy
ZmFjZShpbnQsIGludCwgaW50KTsKKworICAgIFBhc3NPd25QdHI8R0xDb250ZXh0RUdMPiBjcmVh
dGVTaGFyaW5nR0xDb250ZXh0KCk7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IHN0cnVj
dCB3bF9yZWdpc3RyeV9saXN0ZW5lciBtX3JlZ2lzdHJ5TGlzdGVuZXI7CisgICAgc3RhdGljIHZv
aWQgZ2xvYmFsQ2FsbGJhY2sodm9pZCosIHN0cnVjdCB3bF9yZWdpc3RyeSosIHVpbnQzMl90LCBj
b25zdCBjaGFyKiwgdWludDMyX3QpOworICAgIHN0YXRpYyB2b2lkIGdsb2JhbFJlbW92ZUNhbGxi
YWNrKHZvaWQqLCBzdHJ1Y3Qgd2xfcmVnaXN0cnkqLCB1aW50MzJfdCk7CisKKyAgICBXYXlsYW5k
RGlzcGxheShzdHJ1Y3Qgd2xfZGlzcGxheSopOworCisgICAgc3RydWN0IHdsX2Rpc3BsYXkqIG1f
ZGlzcGxheTsKKyAgICBzdHJ1Y3Qgd2xfcmVnaXN0cnkqIG1fcmVnaXN0cnk7CisgICAgc3RydWN0
IHdsX2NvbXBvc2l0b3IqIG1fY29tcG9zaXRvcjsKKyAgICBzdHJ1Y3Qgd2xfd2Via2l0Z3RrKiBt
X3dlYmtpdGd0azsKKworICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OworICAgIEVHTENvbmZp
ZyBtX2VnbENvbmZpZzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFBMQVRGT1JNKFdBWUxBTkQpCisKKyNlbmRpZiAvLyBXYXlsYW5kRGlzcGxheV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237299</attachid>
            <date>2014-08-28 00:58:13 -0700</date>
            <delta_ts>2014-08-30 12:16:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136216-20140828005804.patch</filename>
            <type>text/plain</type>
            <size>11694</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzA1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE0LTA4LTI4ICBJYWdvIFRv
cmFsICA8aXRvcmFsQGlnYWxpYS5jb20+IGFuZCBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgV2F5bGFuZERpc3BsYXkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjIxNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgV2F5bGFuZERpc3Bs
YXkgY2xhc3MuIFRoaXMgY2xhc3MgaXMgdXNlZCBpbiB0aGUgTGF5ZXJUcmVlSG9zdEd0aywKKyAg
ICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGFuZCBjb250cm9scyB0aGUgY29ubmVjdGlvbiB0byB0
aGUgbmVzdGVkIFdheWxhbmQKKyAgICAgICAgY29tcG9zaXRvciBpbiB0aGUgVUlQcm9jZXNzLiBP
bmx5IG9uZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgaXMgdXNlZCBpbiB0aGUKKyAgICAgICAgV2Vi
UHJvY2VzcywgYWNjZXNzaWJsZSB2aWEgdGhlIHN0YXRpYyBXYXlsYW5kRGlzcGxheTo6aW5zdGFu
Y2UoKSBtZXRob2QuCisKKyAgICAgICAgVGhlIFdheWxhbmREaXNwbGF5IGNvbnN0cnVjdG9yIHBl
cmZvcm1zIHRoZSBFR0wgaW5pdGlhbGl6YXRpb24gd2hpbGUgYWxzbworICAgICAgICBxdWVyeWlu
ZyB0aGUgV2F5bGFuZCByZWdpc3RlciwgcmVzdWx0aW5nIGluIGluaXRpYWxpemluZyBjbGllbnQt
c2lkZSBvYmplY3RzCisgICAgICAgIHRoYXQgY2FuIGludGVyYWN0IHdpdGggdGhlIHdsX2NvbXBv
c2l0b3IgYW5kIHdsX3dlYmtpdGd0ayBpbnRlcmZhY2VzCisgICAgICAgIGltcGxlbWVudGVkIGlu
IHRoZSBuZXN0ZWQgV2F5bGFuZCBjb21wb3NpdG9yLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5
OjpjcmVhdGVTdXJmYWNlKCkgaXMgY2FsbGVkIGJ5IHRoZSBMYXllclRyZWVIb3N0R3RrIGR1cmlu
ZworICAgICAgICBpdHMgb3duIGluaXRpYWxpemF0aW9uLiBUaGUgbWV0aG9kIGNyZWF0ZXMgYSBu
ZXcgd2xfc3VyZmFjZSBvYmplY3QgdmlhIHRoZQorICAgICAgICB3bF9jb21wb3NpdG9yIGludGVy
ZmFjZSBhbmQgYSBuZXcgd2xfZWdsX3dpbmRvdyBvYmplY3QgdGhhdCdzIGJhc2VkIG9uIHRoYXQK
KyAgICAgICAgc3VyZmFjZS4gRm9yIHRoZSB3bF9lZ2xfd2luZG93IG9iamVjdCwgd2UgZmFsbCBi
YWNrIHRvIGEgd2lkdGggb3IgaGVpZ2h0IG9mIDEKKyAgICAgICAgaW4gY2FzZSB0aGUgcGFzc2Vk
LWluIHZhbHVlIGZvciBlaXRoZXIgaXMgMC4gVGhpcyBhdm9pZHMgcHJvYmxlbXMgaW4gTWVzYQor
ICAgICAgICB3aGVyZSB3aWR0aHMgb3IgaGVpZ2h0cyBvZiAwIGFyZSBub3Qgc3VwcG9ydGVkLgor
CisgICAgICAgIFdlIGFzc29jaWF0ZSB0aGUgY3JlYXRlZCBzdXJmYWNlIHdpdGggdGhlIHBhc3Nl
ZC1pbiB3aWRnZXQgSUQsIGFzIHByb3ZpZGVkCisgICAgICAgIGJ5IExheWVyVHJlZUhvc3RHdGss
IHZpYSB0aGUgd2xfd2Via2l0Z3RrIGludGVyZmFjZS4gVGhpcyBlbmFibGVzIHByb3BlcgorICAg
ICAgICBtYXBwaW5nIG9mIFdheWxhbmQgc3VyZmFjZXMgYW5kIHRoZSBHdGtXaWRnZXRzIGluIHRo
ZSBVSVByb2Nlc3MgYW5kIG1ha2VzCisgICAgICAgIGl0IHBvc3NpYmxlIGZvciB0aGUgbmVzdGVk
IFdheWxhbmQgY29tcG9zaXRvciB0byBjb3JyZWN0bHkgZGV0ZXJtaW5lIHdoaWNoCisgICAgICAg
IEd0a1dpZGdldCBoYXMgdG8gYmUgcmVkcmF3biBhZnRlciBzb21lIHN1cmZhY2UgaGFzIGJlZW4g
Y29tbWl0dGVkLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5OjpjcmVhdGVTaGFyaW5nR0xDb250
ZXh0KCkgY3JlYXRlcyBhIG5ldyBHTENvbnRleHRFR0wgb2JqZWN0CisgICAgICAgIHRoYXQncyB0
byBiZSB1c2VkIGFzIGEgc2hhcmluZyBjb250ZXh0LiBUaGUgbWV0aG9kIGNyZWF0ZXMgYSBuZXcg
c3VyZmFjZQorICAgICAgICB2aWEgdGhlIHdsX2NvbXBvc2l0b3IgaW50ZXJmYWNlIGFuZCB1c2Vz
IGl0IHRvIGNyZWF0ZSBhIGR1bW15IG5hdGl2ZSBFR0wKKyAgICAgICAgd2luZG93IHRoYXQncyAx
eDFweCBpbiBzaXplLiBUaGUgR0xDb250ZXh0RUdMIG9iamVjdCBpcyB0aGVuIGNyZWF0ZWQKKyAg
ICAgICAgdGhyb3VnaCB0aGUgc3RhdGljIEdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4
dCgpIG1ldGhvZC4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjpnbG9iYWxDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6Z2xvYmFsUmVtb3ZlQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6Omluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Oldh
eWxhbmREaXNwbGF5OjpXYXlsYW5kRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpXYXlsYW5k
RGlzcGxheTo6Y3JlYXRlU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxh
eTo6Y3JlYXRlU2hhcmluZ0dMQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2F5bGFuZC9XYXlsYW5kRGlzcGxheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldheWxh
bmREaXNwbGF5OjpuYXRpdmVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNw
bGF5OjplZ2xEaXNwbGF5KToKKwogMjAxNC0wOC0yOCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgYnVpbGQgZml4IGZvciB0aGUg
V2F5bGFuZCB3aW5kb3dpbmcgdGFyZ2V0IGFmdGVyIHIxNzMwNTIuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUdUSy5jbWFrZQkocmV2aXNpb24gMTczMDU3KQorKysgU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1HVEsuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTQzNCw2ICs0MzQsNyBAQCBhZGRfY3VzdG9t
X2NvbW1hbmQoCiAKIGlmIChFTkFCTEVfV0FZTEFORF9UQVJHRVQpCiAgICAgbGlzdChBUFBFTkQg
V2ViQ29yZVBsYXRmb3JtR1RLX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5
bGFuZC9XYXlsYW5kRGlzcGxheS5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFu
ZC9XYXlsYW5kU3VyZmFjZS5jcHAKIAogICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vV2ViS2l0R3RrV2F5bGFuZENsaWVudFByb3RvY29sLmMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERp
c3BsYXkuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2F5bGFuZERpc3BsYXkuaCIKKworI2lmIFBMQVRG
T1JNKFdBWUxBTkQpCisKKyNpbmNsdWRlICJHTENvbnRleHRFR0wuaCIKKyNpbmNsdWRlICJXYXls
YW5kU3VyZmFjZS5oIgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8Z2xpYi5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IHN0cnVjdCB3bF9yZWdpc3RyeV9saXN0ZW5lciBX
YXlsYW5kRGlzcGxheTo6bV9yZWdpc3RyeUxpc3RlbmVyID0geworICAgIFdheWxhbmREaXNwbGF5
OjpnbG9iYWxDYWxsYmFjaywKKyAgICBXYXlsYW5kRGlzcGxheTo6Z2xvYmFsUmVtb3ZlQ2FsbGJh
Y2sKK307CisKK3ZvaWQgV2F5bGFuZERpc3BsYXk6Omdsb2JhbENhbGxiYWNrKHZvaWQqIGRhdGEs
IHN0cnVjdCB3bF9yZWdpc3RyeSogcmVnaXN0cnksIHVpbnQzMl90IG5hbWUsIGNvbnN0IGNoYXIq
IGludGVyZmFjZSwgdWludDMyX3QpCit7CisgICAgYXV0byBkaXNwbGF5ID0gc3RhdGljX2Nhc3Q8
V2F5bGFuZERpc3BsYXkqPihkYXRhKTsKKyAgICBpZiAoIXN0ZDo6c3RyY21wKGludGVyZmFjZSwg
IndsX2NvbXBvc2l0b3IiKSkKKyAgICAgICAgZGlzcGxheS0+bV9jb21wb3NpdG9yID0gc3RhdGlj
X2Nhc3Q8c3RydWN0IHdsX2NvbXBvc2l0b3IqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5LCBu
YW1lLCAmd2xfY29tcG9zaXRvcl9pbnRlcmZhY2UsIDEpKTsKKyAgICBlbHNlIGlmICghc3RkOjpz
dHJjbXAoaW50ZXJmYWNlLCAid2xfd2Via2l0Z3RrIikpCisgICAgICAgIGRpc3BsYXktPm1fd2Vi
a2l0Z3RrID0gc3RhdGljX2Nhc3Q8c3RydWN0IHdsX3dlYmtpdGd0ayo+KHdsX3JlZ2lzdHJ5X2Jp
bmQocmVnaXN0cnksIG5hbWUsICZ3bF93ZWJraXRndGtfaW50ZXJmYWNlLCAxKSk7Cit9CisKK3Zv
aWQgV2F5bGFuZERpc3BsYXk6Omdsb2JhbFJlbW92ZUNhbGxiYWNrKHZvaWQqLCBzdHJ1Y3Qgd2xf
cmVnaXN0cnkqLCB1aW50MzJfdCkKK3sKKyAgICAvLyBGSVhNRTogaWYgdGhpcyBjYW4gaGFwcGVu
IHdpdGhvdXQgdGhlIFVJIFByb2Nlc3MgZ2V0dGluZyBzaHV0IGRvd24KKyAgICAvLyB3ZSBzaG91
bGQgcHJvYmFibHkgZGVzdHJveSBvdXIgY2FjaGVkIGRpc3BsYXkgaW5zdGFuY2UuCit9CisKK1dh
eWxhbmREaXNwbGF5KiBXYXlsYW5kRGlzcGxheTo6aW5zdGFuY2UoKQoreworICAgIHN0YXRpYyBX
YXlsYW5kRGlzcGxheSogZGlzcGxheSA9IG51bGxwdHI7CisgICAgaWYgKGRpc3BsYXkpCisgICAg
ICAgIHJldHVybiBkaXNwbGF5OworCisgICAgc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSA9
IHdsX2Rpc3BsYXlfY29ubmVjdCgid2Via2l0Z3RrLXdheWxhbmQtY29tcG9zaXRvci1zb2NrZXQi
KTsKKyAgICBpZiAoIXdsRGlzcGxheSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBk
aXNwbGF5ID0gbmV3IFdheWxhbmREaXNwbGF5KHdsRGlzcGxheSk7CisgICAgcmV0dXJuIGRpc3Bs
YXk7Cit9CisKK1dheWxhbmREaXNwbGF5OjpXYXlsYW5kRGlzcGxheShzdHJ1Y3Qgd2xfZGlzcGxh
eSogd2xEaXNwbGF5KQorICAgIDogbV9kaXNwbGF5KHdsRGlzcGxheSkKKyAgICAsIG1fcmVnaXN0
cnkobnVsbHB0cikKKyAgICAsIG1fY29tcG9zaXRvcihudWxscHRyKQorICAgICwgbV93ZWJraXRn
dGsobnVsbHB0cikKK3sKKyAgICBtX3JlZ2lzdHJ5ID0gd2xfZGlzcGxheV9nZXRfcmVnaXN0cnko
bV9kaXNwbGF5KTsKKyAgICB3bF9yZWdpc3RyeV9hZGRfbGlzdGVuZXIobV9yZWdpc3RyeSwgJm1f
cmVnaXN0cnlMaXN0ZW5lciwgdGhpcyk7CisgICAgd2xfZGlzcGxheV9yb3VuZHRyaXAobV9kaXNw
bGF5KTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0cmlidXRlc1tdID0gewor
ICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfV0lORE9XX0JJVCwKKyAgICAgICAgRUdMX1JF
RF9TSVpFLCAxLAorICAgICAgICBFR0xfR1JFRU5fU0laRSwgMSwKKyAgICAgICAgRUdMX0JMVUVf
U0laRSwgMSwKKyAgICAgICAgRUdMX0FMUEhBX1NJWkUsIDEsCisgICAgICAgIEVHTF9SRU5ERVJB
QkxFX1RZUEUsIEVHTF9PUEVOR0xfRVMyX0JJVCwKKyAgICAgICAgRUdMX05PTkUKKyAgICB9Owor
CisgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheShtX2Rpc3BsYXkpOworICAgIGlmICht
X2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgZ193YXJuaW5nKCJlZ2xH
ZXREaXNwbGF5IEVHTF9OT19ESVNQTEFZIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVHTF9GQUxTRSkgewor
ICAgICAgICBnX3dhcm5pbmcoImVnbEluaXRpYWxpemUgRUdMX0ZBTFNFIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkgPT0g
RUdMX0ZBTFNFKSB7CisgICAgICAgIGdfd2FybmluZygiZWdsQmluZEFQSSBFR0xfRkFMU0UiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEVHTGludCBuOworICAgIGlmICghZWdsQ2hv
b3NlQ29uZmlnKG1fZWdsRGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJm1fZWdsQ29uZmlnLCAx
LCAmbikgfHwgbiAhPSAxKQorICAgICAgICBnX3dhcm5pbmcoImVnbENob29zZUNvbmZpZyBmYWls
ZWQiKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRTdXJmYWNlPiBXYXlsYW5kRGlzcGxh
eTo6Y3JlYXRlU3VyZmFjZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCB3aWRnZXRJZCkKK3sK
KyAgICBzdHJ1Y3Qgd2xfc3VyZmFjZSogd2xTdXJmYWNlID0gd2xfY29tcG9zaXRvcl9jcmVhdGVf
c3VyZmFjZShtX2NvbXBvc2l0b3IpOworICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2lu
ZG93ID0gd2xfZWdsX3dpbmRvd19jcmVhdGUod2xTdXJmYWNlLCBzdGQ6Om1heCgxLCB3aWR0aCks
IHN0ZDo6bWF4KDEsIGhlaWdodCkpOworCisgICAgd2xfd2Via2l0Z3RrX3NldF9zdXJmYWNlX2Zv
cl93aWRnZXQobV93ZWJraXRndGssIHdsU3VyZmFjZSwgd2lkZ2V0SWQpOworICAgIHdsX2Rpc3Bs
YXlfcm91bmR0cmlwKG1fZGlzcGxheSk7CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxX
YXlsYW5kU3VyZmFjZT4od2xTdXJmYWNlLCBuYXRpdmVXaW5kb3cpOworfQorCitQYXNzT3duUHRy
PEdMQ29udGV4dEVHTD4gV2F5bGFuZERpc3BsYXk6OmNyZWF0ZVNoYXJpbmdHTENvbnRleHQoKQor
eworICAgIHN0cnVjdCB3bF9zdXJmYWNlKiB3bFN1cmZhY2UgPSB3bF9jb21wb3NpdG9yX2NyZWF0
ZV9zdXJmYWNlKG1fY29tcG9zaXRvcik7CisgICAgRUdMTmF0aXZlV2luZG93VHlwZSBuYXRpdmVX
aW5kb3cgPSB3bF9lZ2xfd2luZG93X2NyZWF0ZSh3bFN1cmZhY2UsIDEsIDEpOworICAgIHJldHVy
biBHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQobmF0aXZlV2luZG93LCBudWxscHRy
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZ
TEFORCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5
bGFuZERpc3BsYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgIFdheWxhbmREaXNwbGF5X2gKKyNkZWZpbmUgIFdheWxhbmRE
aXNwbGF5X2gKKworI2lmIFBMQVRGT1JNKFdBWUxBTkQpCisKKyNpbmNsdWRlICJXZWJLaXRHdGtX
YXlsYW5kQ2xpZW50UHJvdG9jb2wuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d2F5
bGFuZC1jbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCisjaW5jbHVkZSA8
d2F5bGFuZC1lZ2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgR0xDb250ZXh0RUdMOworY2xhc3MgV2F5bGFuZFN1cmZhY2U7CisKK2NsYXNz
IFdheWxhbmREaXNwbGF5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2F5bGFuZERpc3BsYXkqIGlu
c3RhbmNlKCk7CisKKyAgICBzdHJ1Y3Qgd2xfZGlzcGxheSogbmF0aXZlRGlzcGxheSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGlzcGxheTsgfQorICAgIEVHTERpc3BsYXkgZWdsRGlzcGxheSgpIGNvbnN0
IHsgcmV0dXJuIG1fZWdsRGlzcGxheTsgfQorCisgICAgc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRT
dXJmYWNlPiBjcmVhdGVTdXJmYWNlKGludCwgaW50LCBpbnQpOworCisgICAgUGFzc093blB0cjxH
TENvbnRleHRFR0w+IGNyZWF0ZVNoYXJpbmdHTENvbnRleHQoKTsKKworcHJpdmF0ZToKKyAgICBz
dGF0aWMgY29uc3Qgc3RydWN0IHdsX3JlZ2lzdHJ5X2xpc3RlbmVyIG1fcmVnaXN0cnlMaXN0ZW5l
cjsKKyAgICBzdGF0aWMgdm9pZCBnbG9iYWxDYWxsYmFjayh2b2lkKiwgc3RydWN0IHdsX3JlZ2lz
dHJ5KiwgdWludDMyX3QsIGNvbnN0IGNoYXIqLCB1aW50MzJfdCk7CisgICAgc3RhdGljIHZvaWQg
Z2xvYmFsUmVtb3ZlQ2FsbGJhY2sodm9pZCosIHN0cnVjdCB3bF9yZWdpc3RyeSosIHVpbnQzMl90
KTsKKworICAgIFdheWxhbmREaXNwbGF5KHN0cnVjdCB3bF9kaXNwbGF5Kik7CisKKyAgICBzdHJ1
Y3Qgd2xfZGlzcGxheSogbV9kaXNwbGF5OworICAgIHN0cnVjdCB3bF9yZWdpc3RyeSogbV9yZWdp
c3RyeTsKKyAgICBzdHJ1Y3Qgd2xfY29tcG9zaXRvciogbV9jb21wb3NpdG9yOworICAgIHN0cnVj
dCB3bF93ZWJraXRndGsqIG1fd2Via2l0Z3RrOworCisgICAgRUdMRGlzcGxheSBtX2VnbERpc3Bs
YXk7CisgICAgRUdMQ29uZmlnIG1fZWdsQ29uZmlnOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKKworI2VuZGlmIC8vIFdheWxhbmRE
aXNwbGF5X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237417</attachid>
            <date>2014-08-30 12:16:22 -0700</date>
            <delta_ts>2014-08-31 23:49:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136216-20140830121614.patch</filename>
            <type>text/plain</type>
            <size>13384</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE0LTA4LTMwICBJYWdvIFRv
cmFsICA8aXRvcmFsQGlnYWxpYS5jb20+IGFuZCBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgV2F5bGFuZERpc3BsYXkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjIxNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgV2F5bGFuZERpc3Bs
YXkgY2xhc3MuIFRoaXMgY2xhc3MgaXMgdXNlZCBpbiB0aGUgTGF5ZXJUcmVlSG9zdEd0aywKKyAg
ICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGFuZCBjb250cm9scyB0aGUgY29ubmVjdGlvbiB0byB0
aGUgbmVzdGVkIFdheWxhbmQKKyAgICAgICAgY29tcG9zaXRvciBpbiB0aGUgVUlQcm9jZXNzLiBP
bmx5IG9uZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgaXMgdXNlZCBpbiB0aGUKKyAgICAgICAgV2Vi
UHJvY2VzcywgYWNjZXNzaWJsZSB2aWEgdGhlIHN0YXRpYyBXYXlsYW5kRGlzcGxheTo6aW5zdGFu
Y2UoKSBtZXRob2QuCisKKyAgICAgICAgVGhlIFdheWxhbmREaXNwbGF5IGNvbnN0cnVjdG9yIHBl
cmZvcm1zIHRoZSBFR0wgaW5pdGlhbGl6YXRpb24gd2hpbGUgYWxzbworICAgICAgICBxdWVyeWlu
ZyB0aGUgV2F5bGFuZCByZWdpc3RlciwgcmVzdWx0aW5nIGluIGluaXRpYWxpemluZyBjbGllbnQt
c2lkZSBvYmplY3RzCisgICAgICAgIHRoYXQgY2FuIGludGVyYWN0IHdpdGggdGhlIHdsX2NvbXBv
c2l0b3IgYW5kIHdsX3dlYmtpdGd0ayBpbnRlcmZhY2VzCisgICAgICAgIGltcGxlbWVudGVkIGlu
IHRoZSBuZXN0ZWQgV2F5bGFuZCBjb21wb3NpdG9yLiBUaGUgc2luZ2xlIGNsYXNzIGluc3RhbmNl
IGlzCisgICAgICAgIG9ubHkgZGVlbWVkIHByb3Blcmx5IGluaXRpYWxpemVkIGlmIGl0IHBpY2tl
ZCB1cCB0aGUgV2F5bGFuZCBpbnRlcmZhY2Ugb2JqZWN0cworICAgICAgICBhbmQgaGFzIHByb3Bl
cmx5IGFjcXVpcmVkIHRoZSBFR0wgZGlzcGxheSBhbmQgY29uZmlnLgorCisgICAgICAgIFdheWxh
bmREaXNwbGF5OjpjcmVhdGVTdXJmYWNlKCkgaXMgY2FsbGVkIGJ5IHRoZSBMYXllclRyZWVIb3N0
R3RrIGR1cmluZworICAgICAgICBpdHMgb3duIGluaXRpYWxpemF0aW9uLiBUaGUgbWV0aG9kIGNy
ZWF0ZXMgYSBuZXcgd2xfc3VyZmFjZSBvYmplY3QgdmlhIHRoZQorICAgICAgICB3bF9jb21wb3Np
dG9yIGludGVyZmFjZSBhbmQgYSBuZXcgd2xfZWdsX3dpbmRvdyBvYmplY3QgdGhhdCdzIGJhc2Vk
IG9uIHRoYXQKKyAgICAgICAgc3VyZmFjZS4gRm9yIHRoZSB3bF9lZ2xfd2luZG93IG9iamVjdCwg
d2UgZmFsbCBiYWNrIHRvIGEgd2lkdGggb3IgaGVpZ2h0IG9mIDEKKyAgICAgICAgaW4gY2FzZSB0
aGUgcGFzc2VkLWluIHZhbHVlIGZvciBlaXRoZXIgaXMgMC4gVGhpcyBhdm9pZHMgcHJvYmxlbXMg
aW4gTWVzYQorICAgICAgICB3aGVyZSB3aWR0aHMgb3IgaGVpZ2h0cyBvZiAwIGFyZSBub3Qgc3Vw
cG9ydGVkLgorCisgICAgICAgIFdlIGFzc29jaWF0ZSB0aGUgY3JlYXRlZCBzdXJmYWNlIHdpdGgg
dGhlIHBhc3NlZC1pbiB3aWRnZXQgSUQsIGFzIHByb3ZpZGVkCisgICAgICAgIGJ5IExheWVyVHJl
ZUhvc3RHdGssIHZpYSB0aGUgd2xfd2Via2l0Z3RrIGludGVyZmFjZS4gVGhpcyBlbmFibGVzIHBy
b3BlcgorICAgICAgICBtYXBwaW5nIG9mIFdheWxhbmQgc3VyZmFjZXMgYW5kIHRoZSBHdGtXaWRn
ZXRzIGluIHRoZSBVSVByb2Nlc3MgYW5kIG1ha2VzCisgICAgICAgIGl0IHBvc3NpYmxlIGZvciB0
aGUgbmVzdGVkIFdheWxhbmQgY29tcG9zaXRvciB0byBjb3JyZWN0bHkgZGV0ZXJtaW5lIHdoaWNo
CisgICAgICAgIEd0a1dpZGdldCBoYXMgdG8gYmUgcmVkcmF3biBhZnRlciBzb21lIHN1cmZhY2Ug
aGFzIGJlZW4gY29tbWl0dGVkLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5OjpjcmVhdGVTaGFy
aW5nR0xDb250ZXh0KCkgY3JlYXRlcyBhIG5ldyBHTENvbnRleHRFR0wgb2JqZWN0CisgICAgICAg
IHRoYXQncyB0byBiZSB1c2VkIGFzIGEgc2hhcmluZyBjb250ZXh0LiBUaGUgbWV0aG9kIGNyZWF0
ZXMgYSBuZXcgc3VyZmFjZQorICAgICAgICB2aWEgdGhlIHdsX2NvbXBvc2l0b3IgaW50ZXJmYWNl
IGFuZCB1c2VzIGl0IHRvIGNyZWF0ZSBhIGR1bW15IG5hdGl2ZSBFR0wKKyAgICAgICAgd2luZG93
IHRoYXQncyAxeDFweCBpbiBzaXplLiBUaGUgR0xDb250ZXh0RUdMIG9iamVjdCBpcyB0aGVuIGNy
ZWF0ZWQKKyAgICAgICAgdGhyb3VnaCB0aGUgc3RhdGljIEdMQ29udGV4dEVHTDo6Y3JlYXRlV2lu
ZG93Q29udGV4dCgpIG1ldGhvZC4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjpnbG9iYWxDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6Z2xvYmFsUmVtb3ZlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6Omluc3RhbmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OldheWxhbmREaXNwbGF5OjpXYXlsYW5kRGlzcGxheSk6CisgICAgICAgIChXZWJDb3Jl
OjpXYXlsYW5kRGlzcGxheTo6Y3JlYXRlU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpXYXls
YW5kRGlzcGxheTo6Y3JlYXRlU2hhcmluZ0dMQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldheWxhbmREaXNwbGF5OjpuYXRpdmVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Oldh
eWxhbmREaXNwbGF5OjplZ2xEaXNwbGF5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
YXlsYW5kL1dheWxhbmRTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmRTdXJm
YWNlOjp+V2F5bGFuZFN1cmZhY2UpOiBBc3NlcnQgdGhhdCB0aGUgV2F5bGFuZERpc3BsYXkKKyAg
ICAgICAgaW5zdGFuY2UgaXMgcHJlc2VudCBiZWZvcmUgZ29pbmcgb24gdG8gZGVzdHJveSB0aGUg
c3VyZmFjZSByZXNvdXJjZXMuCisKIDIwMTQtMDgtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgQ1NTOiBSZWZhY3RvciA6dmlzaXRlZCBoYW5kbGlu
ZyBpbiBTZWxlY3RvckNoZWNrZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNt
YWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCShyZXZp
c2lvbiAxNzMxNDApCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQkod29ya2lu
ZyBjb3B5KQpAQCAtNDMwLDYgKzQzMCw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKIAogaWYgKEVO
QUJMRV9XQVlMQU5EX1RBUkdFVCkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlUGxhdGZvcm1HVEtf
U09VUkNFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5
LmNwcAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmRFdmVudFNvdXJj
ZS5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kU3VyZmFjZS5j
cHAKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXls
YW5kRGlzcGxheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXYXlsYW5k
RGlzcGxheS5oIgorCisjaWYgUExBVEZPUk0oV0FZTEFORCkKKworI2luY2x1ZGUgIkdMQ29udGV4
dEVHTC5oIgorI2luY2x1ZGUgIldheWxhbmRTdXJmYWNlLmgiCisjaW5jbHVkZSA8Y3N0cmluZz4K
KyNpbmNsdWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3Qgc3RydWN0
IHdsX3JlZ2lzdHJ5X2xpc3RlbmVyIFdheWxhbmREaXNwbGF5OjptX3JlZ2lzdHJ5TGlzdGVuZXIg
PSB7CisgICAgV2F5bGFuZERpc3BsYXk6Omdsb2JhbENhbGxiYWNrLAorICAgIFdheWxhbmREaXNw
bGF5OjpnbG9iYWxSZW1vdmVDYWxsYmFjaworfTsKKwordm9pZCBXYXlsYW5kRGlzcGxheTo6Z2xv
YmFsQ2FsbGJhY2sodm9pZCogZGF0YSwgc3RydWN0IHdsX3JlZ2lzdHJ5KiByZWdpc3RyeSwgdWlu
dDMyX3QgbmFtZSwgY29uc3QgY2hhciogaW50ZXJmYWNlLCB1aW50MzJfdCkKK3sKKyAgICBhdXRv
IGRpc3BsYXkgPSBzdGF0aWNfY2FzdDxXYXlsYW5kRGlzcGxheSo+KGRhdGEpOworICAgIGlmICgh
c3RkOjpzdHJjbXAoaW50ZXJmYWNlLCAid2xfY29tcG9zaXRvciIpKQorICAgICAgICBkaXNwbGF5
LT5tX2NvbXBvc2l0b3IgPSBzdGF0aWNfY2FzdDxzdHJ1Y3Qgd2xfY29tcG9zaXRvcio+KHdsX3Jl
Z2lzdHJ5X2JpbmQocmVnaXN0cnksIG5hbWUsICZ3bF9jb21wb3NpdG9yX2ludGVyZmFjZSwgMSkp
OworICAgIGVsc2UgaWYgKCFzdGQ6OnN0cmNtcChpbnRlcmZhY2UsICJ3bF93ZWJraXRndGsiKSkK
KyAgICAgICAgZGlzcGxheS0+bV93ZWJraXRndGsgPSBzdGF0aWNfY2FzdDxzdHJ1Y3Qgd2xfd2Vi
a2l0Z3RrKj4od2xfcmVnaXN0cnlfYmluZChyZWdpc3RyeSwgbmFtZSwgJndsX3dlYmtpdGd0a19p
bnRlcmZhY2UsIDEpKTsKK30KKwordm9pZCBXYXlsYW5kRGlzcGxheTo6Z2xvYmFsUmVtb3ZlQ2Fs
bGJhY2sodm9pZCosIHN0cnVjdCB3bF9yZWdpc3RyeSosIHVpbnQzMl90KQoreworICAgIC8vIEZJ
WE1FOiBpZiB0aGlzIGNhbiBoYXBwZW4gd2l0aG91dCB0aGUgVUkgUHJvY2VzcyBnZXR0aW5nIHNo
dXQgZG93bgorICAgIC8vIHdlIHNob3VsZCBwcm9iYWJseSBkZXN0cm95IG91ciBjYWNoZWQgZGlz
cGxheSBpbnN0YW5jZS4KK30KKworV2F5bGFuZERpc3BsYXkqIFdheWxhbmREaXNwbGF5OjppbnN0
YW5jZSgpCit7CisgICAgc3RhdGljIFdheWxhbmREaXNwbGF5KiBkaXNwbGF5ID0gbnVsbHB0cjsK
KyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIGlmIChpbml0aWFsaXpl
ZCkKKyAgICAgICAgcmV0dXJuIGRpc3BsYXk7CisKKyAgICBpbml0aWFsaXplZCA9IHRydWU7Cisg
ICAgc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSA9IHdsX2Rpc3BsYXlfY29ubmVjdCgid2Vi
a2l0Z3RrLXdheWxhbmQtY29tcG9zaXRvci1zb2NrZXQiKTsKKyAgICBpZiAoIXdsRGlzcGxheSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBkaXNwbGF5ID0gbmV3IFdheWxhbmREaXNw
bGF5KHdsRGlzcGxheSk7CisgICAgaWYgKCFkaXNwbGF5LT5pc0luaXRpYWxpemVkKCkpIHsKKyAg
ICAgICAgZGVsZXRlIGRpc3BsYXk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwor
ICAgIHJldHVybiBkaXNwbGF5OworfQorCitXYXlsYW5kRGlzcGxheTo6V2F5bGFuZERpc3BsYXko
c3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSkKKyAgICA6IG1fZGlzcGxheSh3bERpc3BsYXkp
CisgICAgLCBtX3JlZ2lzdHJ5KHdsX2Rpc3BsYXlfZ2V0X3JlZ2lzdHJ5KG1fZGlzcGxheSkpCisg
ICAgLCBtX2VnbENvbmZpZ0Nob3NlbihmYWxzZSkKK3sKKyAgICB3bF9yZWdpc3RyeV9hZGRfbGlz
dGVuZXIobV9yZWdpc3RyeSwgJm1fcmVnaXN0cnlMaXN0ZW5lciwgdGhpcyk7CisgICAgd2xfZGlz
cGxheV9yb3VuZHRyaXAobV9kaXNwbGF5KTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29u
ZmlnQXR0cmlidXRlc1tdID0geworICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfV0lORE9X
X0JJVCwKKyAgICAgICAgRUdMX1JFRF9TSVpFLCAxLAorICAgICAgICBFR0xfR1JFRU5fU0laRSwg
MSwKKyAgICAgICAgRUdMX0JMVUVfU0laRSwgMSwKKyAgICAgICAgRUdMX0FMUEhBX1NJWkUsIDEs
CisgICAgICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xfRVMyX0JJVCwKKyAgICAg
ICAgRUdMX05PTkUKKyAgICB9OworCisgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheSht
X2Rpc3BsYXkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAg
ICAgICAgZ193YXJuaW5nKCJXYXlsYW5kRGlzcGxheSBpbml0aWFsaXphdGlvbjogZmFpbGVkIHRv
IGFjcXVpcmUgRUdMIGRpc3BsYXkuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVHTF9GQUxTRSkgeworICAg
ICAgICBnX3dhcm5pbmcoIldheWxhbmREaXNwbGF5IGluaXRpYWxpemF0aW9uOiBmYWlsZWQgdG8g
aW5pdGlhbGl6ZSB0aGUgRUdMIGRpc3BsYXkuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkgPT0gRUdMX0ZBTFNFKSB7Cisg
ICAgICAgIGdfd2FybmluZygiV2F5bGFuZERpc3BsYXkgaW5pdGlhbGl6YXRpb246IGZhaWxlZCB0
byBzZXQgRUdMX09QRU5HTF9FU19BUEkgYXMgdGhlIHJlbmRlcmluZyBBUEkuIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBFR0xpbnQgbnVtYmVyT2ZDb25maWdzOworICAgIGlmICgh
ZWdsQ2hvb3NlQ29uZmlnKG1fZWdsRGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJm1fZWdsQ29u
ZmlnLCAxLCAmbnVtYmVyT2ZDb25maWdzKSB8fCBudW1iZXJPZkNvbmZpZ3MgIT0gMSkgeworICAg
ICAgICBnX3dhcm5pbmcoIldheWxhbmREaXNwbGF5IGluaXRpYWxpemF0aW9uOiBmYWlsZWQgdG8g
ZmluZCB0aGUgZGVzaXJlZCBFR0wgY29uZmlndXJhdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fZWdsQ29uZmlnQ2hvc2VuID0gdHJ1ZTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPFdheWxhbmRTdXJmYWNlPiBXYXlsYW5kRGlzcGxheTo6Y3JlYXRlU3VyZmFjZShpbnQgd2lk
dGgsIGludCBoZWlnaHQsIGludCB3aWRnZXRJZCkKK3sKKyAgICBzdHJ1Y3Qgd2xfc3VyZmFjZSog
d2xTdXJmYWNlID0gd2xfY29tcG9zaXRvcl9jcmVhdGVfc3VyZmFjZShtX2NvbXBvc2l0b3IpOwor
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93ID0gd2xfZWdsX3dpbmRvd19jcmVh
dGUod2xTdXJmYWNlLCBzdGQ6Om1heCgxLCB3aWR0aCksIHN0ZDo6bWF4KDEsIGhlaWdodCkpOwor
CisgICAgd2xfd2Via2l0Z3RrX3NldF9zdXJmYWNlX2Zvcl93aWRnZXQobV93ZWJraXRndGssIHds
U3VyZmFjZSwgd2lkZ2V0SWQpOworICAgIHdsX2Rpc3BsYXlfcm91bmR0cmlwKG1fZGlzcGxheSk7
CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXYXlsYW5kU3VyZmFjZT4od2xTdXJmYWNl
LCBuYXRpdmVXaW5kb3cpOworfQorCitQYXNzT3duUHRyPEdMQ29udGV4dEVHTD4gV2F5bGFuZERp
c3BsYXk6OmNyZWF0ZVNoYXJpbmdHTENvbnRleHQoKQoreworICAgIHN0cnVjdCB3bF9zdXJmYWNl
KiB3bFN1cmZhY2UgPSB3bF9jb21wb3NpdG9yX2NyZWF0ZV9zdXJmYWNlKG1fY29tcG9zaXRvcik7
CisgICAgRUdMTmF0aXZlV2luZG93VHlwZSBuYXRpdmVXaW5kb3cgPSB3bF9lZ2xfd2luZG93X2Ny
ZWF0ZSh3bFN1cmZhY2UsIDEsIDEpOworICAgIHJldHVybiBHTENvbnRleHRFR0w6OmNyZWF0ZVdp
bmRvd0NvbnRleHQobmF0aXZlV2luZG93LCBudWxscHRyKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNw
bGF5LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
YXlsYW5kL1dheWxhbmREaXNwbGF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgIFdh
eWxhbmREaXNwbGF5X2gKKyNkZWZpbmUgIFdheWxhbmREaXNwbGF5X2gKKworI2lmIFBMQVRGT1JN
KFdBWUxBTkQpCisKKyNpbmNsdWRlICJXZWJLaXRHdGtXYXlsYW5kQ2xpZW50UHJvdG9jb2wuaCIK
KyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d2F5bGFuZC1jbGllbnQuaD4KKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorCisjaW5jbHVkZSA8d2F5bGFuZC1lZ2wuaD4KKyNpbmNsdWRl
IDxFR0wvZWdsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xDb250ZXh0RUdM
OworY2xhc3MgV2F5bGFuZFN1cmZhY2U7CisKK2NsYXNzIFdheWxhbmREaXNwbGF5IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgV2F5bGFuZERpc3BsYXkqIGluc3RhbmNlKCk7CisKKyAgICBzdHJ1Y3Qg
d2xfZGlzcGxheSogbmF0aXZlRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheTsgfQor
ICAgIEVHTERpc3BsYXkgZWdsRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZWdsRGlzcGxheTsg
fQorCisgICAgc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRTdXJmYWNlPiBjcmVhdGVTdXJmYWNlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHdpZGdldElkKTsKKworICAgIFBhc3NPd25QdHI8R0xD
b250ZXh0RUdMPiBjcmVhdGVTaGFyaW5nR0xDb250ZXh0KCk7CisKK3ByaXZhdGU6CisgICAgc3Rh
dGljIGNvbnN0IHN0cnVjdCB3bF9yZWdpc3RyeV9saXN0ZW5lciBtX3JlZ2lzdHJ5TGlzdGVuZXI7
CisgICAgc3RhdGljIHZvaWQgZ2xvYmFsQ2FsbGJhY2sodm9pZCogZGF0YSwgc3RydWN0IHdsX3Jl
Z2lzdHJ5KiwgdWludDMyX3QgbmFtZSwgY29uc3QgY2hhciogaW50ZXJmYWNlLCB1aW50MzJfdCB2
ZXJzaW9uKTsKKyAgICBzdGF0aWMgdm9pZCBnbG9iYWxSZW1vdmVDYWxsYmFjayh2b2lkKiBkYXRh
LCBzdHJ1Y3Qgd2xfcmVnaXN0cnkqLCB1aW50MzJfdCBuYW1lKTsKKworICAgIFdheWxhbmREaXNw
bGF5KHN0cnVjdCB3bF9kaXNwbGF5Kik7CisgICAgYm9vbCBpc0luaXRpYWxpemVkKCkgeyByZXR1
cm4gbV9jb21wb3NpdG9yICYmIG1fd2Via2l0Z3RrICYmIG1fZWdsRGlzcGxheSAhPSBFR0xfTk9f
RElTUExBWSAmJiBtX2VnbENvbmZpZ0Nob3NlbjsgfQorCisgICAgc3RydWN0IHdsX2Rpc3BsYXkq
IG1fZGlzcGxheTsKKyAgICBzdHJ1Y3Qgd2xfcmVnaXN0cnkqIG1fcmVnaXN0cnk7CisgICAgc3Ry
dWN0IHdsX2NvbXBvc2l0b3IqIG1fY29tcG9zaXRvcjsKKyAgICBzdHJ1Y3Qgd2xfd2Via2l0Z3Rr
KiBtX3dlYmtpdGd0azsKKworICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OworICAgIEVHTENv
bmZpZyBtX2VnbENvbmZpZzsKKyAgICBib29sIG1fZWdsQ29uZmlnQ2hvc2VuOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKKworI2Vu
ZGlmIC8vIFdheWxhbmREaXNwbGF5X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dheWxhbmQvV2F5bGFuZFN1cmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZFN1cmZhY2UuY3BwCShyZXZp
c2lvbiAxNzMxNDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5k
L1dheWxhbmRTdXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsOCBAQCBXYXls
YW5kU3VyZmFjZTo6V2F5bGFuZFN1cmZhY2Uoc3RydWN0IHdsCiAKIFdheWxhbmRTdXJmYWNlOjp+
V2F5bGFuZFN1cmZhY2UoKQogeworICAgIC8vIFRoZSBzdXJmYWNlIGNvdWxkbid0IGhhdmUgYmVl
biBjcmVhdGVkIGluIHRoZSBmaXJzdCBwbGFjZSBpZiBXYXlsYW5kRGlzcGxheSB3YXNuJ3QgcHJv
cGVybHkgaW5pdGlhbGl6ZWQuCisgICAgQVNTRVJUKFdheWxhbmREaXNwbGF5OjppbnN0YW5jZSgp
KTsKICAgICBlZ2xNYWtlQ3VycmVudChXYXlsYW5kRGlzcGxheTo6aW5zdGFuY2UoKS0+ZWdsRGlz
cGxheSgpLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsK
IAogICAgIHdsX2VnbF93aW5kb3dfZGVzdHJveShtX25hdGl2ZVdpbmRvdyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237441</attachid>
            <date>2014-08-31 23:49:16 -0700</date>
            <delta_ts>2014-09-15 14:30:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136216-20140831234909.patch</filename>
            <type>text/plain</type>
            <size>13539</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzE1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE0LTA4LTMxICBJYWdvIFRv
cmFsICA8aXRvcmFsQGlnYWxpYS5jb20+IGFuZCBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgV2F5bGFuZERpc3BsYXkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjIxNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgV2F5bGFuZERpc3Bs
YXkgY2xhc3MuIFRoaXMgY2xhc3MgaXMgdXNlZCBpbiB0aGUgTGF5ZXJUcmVlSG9zdEd0aywKKyAg
ICAgICAgaW4gdGhlIFdlYlByb2Nlc3MsIGFuZCBjb250cm9scyB0aGUgY29ubmVjdGlvbiB0byB0
aGUgbmVzdGVkIFdheWxhbmQKKyAgICAgICAgY29tcG9zaXRvciBpbiB0aGUgVUlQcm9jZXNzLiBP
bmx5IG9uZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgaXMgdXNlZCBpbiB0aGUKKyAgICAgICAgV2Vi
UHJvY2VzcywgYWNjZXNzaWJsZSB2aWEgdGhlIHN0YXRpYyBXYXlsYW5kRGlzcGxheTo6aW5zdGFu
Y2UoKSBtZXRob2QuCisKKyAgICAgICAgVGhlIFdheWxhbmREaXNwbGF5IGNvbnN0cnVjdG9yIHBl
cmZvcm1zIHRoZSBFR0wgaW5pdGlhbGl6YXRpb24gd2hpbGUgYWxzbworICAgICAgICBxdWVyeWlu
ZyB0aGUgV2F5bGFuZCByZWdpc3RlciwgcmVzdWx0aW5nIGluIGluaXRpYWxpemluZyBjbGllbnQt
c2lkZSBvYmplY3RzCisgICAgICAgIHRoYXQgY2FuIGludGVyYWN0IHdpdGggdGhlIHdsX2NvbXBv
c2l0b3IgYW5kIHdsX3dlYmtpdGd0ayBpbnRlcmZhY2VzCisgICAgICAgIGltcGxlbWVudGVkIGlu
IHRoZSBuZXN0ZWQgV2F5bGFuZCBjb21wb3NpdG9yLiBUaGUgc2luZ2xlIGNsYXNzIGluc3RhbmNl
IGlzCisgICAgICAgIG9ubHkgZGVlbWVkIHByb3Blcmx5IGluaXRpYWxpemVkIGlmIGl0IHBpY2tl
ZCB1cCB0aGUgV2F5bGFuZCBpbnRlcmZhY2Ugb2JqZWN0cworICAgICAgICBhbmQgaGFzIHByb3Bl
cmx5IGFjcXVpcmVkIHRoZSBFR0wgZGlzcGxheSBhbmQgY29uZmlnLgorCisgICAgICAgIFdheWxh
bmREaXNwbGF5OjpjcmVhdGVTdXJmYWNlKCkgaXMgY2FsbGVkIGJ5IHRoZSBMYXllclRyZWVIb3N0
R3RrIGR1cmluZworICAgICAgICBpdHMgb3duIGluaXRpYWxpemF0aW9uLiBUaGUgbWV0aG9kIGNy
ZWF0ZXMgYSBuZXcgd2xfc3VyZmFjZSBvYmplY3QgdmlhIHRoZQorICAgICAgICB3bF9jb21wb3Np
dG9yIGludGVyZmFjZSBhbmQgYSBuZXcgd2xfZWdsX3dpbmRvdyBvYmplY3QgdGhhdCdzIGJhc2Vk
IG9uIHRoYXQKKyAgICAgICAgc3VyZmFjZS4gRm9yIHRoZSB3bF9lZ2xfd2luZG93IG9iamVjdCwg
d2UgZmFsbCBiYWNrIHRvIGEgd2lkdGggb3IgaGVpZ2h0IG9mIDEKKyAgICAgICAgaW4gY2FzZSB0
aGUgcGFzc2VkLWluIHZhbHVlIGZvciBlaXRoZXIgaXMgMC4gVGhpcyBhdm9pZHMgcHJvYmxlbXMg
aW4gTWVzYQorICAgICAgICB3aGVyZSB3aWR0aHMgb3IgaGVpZ2h0cyBvZiAwIGFyZSBub3Qgc3Vw
cG9ydGVkLgorCisgICAgICAgIFdlIGFzc29jaWF0ZSB0aGUgY3JlYXRlZCBzdXJmYWNlIHdpdGgg
dGhlIHBhc3NlZC1pbiB3aWRnZXQgSUQsIGFzIHByb3ZpZGVkCisgICAgICAgIGJ5IExheWVyVHJl
ZUhvc3RHdGssIHZpYSB0aGUgd2xfd2Via2l0Z3RrIGludGVyZmFjZS4gVGhpcyBlbmFibGVzIHBy
b3BlcgorICAgICAgICBtYXBwaW5nIG9mIFdheWxhbmQgc3VyZmFjZXMgYW5kIHRoZSBHdGtXaWRn
ZXRzIGluIHRoZSBVSVByb2Nlc3MgYW5kIG1ha2VzCisgICAgICAgIGl0IHBvc3NpYmxlIGZvciB0
aGUgbmVzdGVkIFdheWxhbmQgY29tcG9zaXRvciB0byBjb3JyZWN0bHkgZGV0ZXJtaW5lIHdoaWNo
CisgICAgICAgIEd0a1dpZGdldCBoYXMgdG8gYmUgcmVkcmF3biBhZnRlciBzb21lIHN1cmZhY2Ug
aGFzIGJlZW4gY29tbWl0dGVkLgorCisgICAgICAgIFdheWxhbmREaXNwbGF5OjpjcmVhdGVTaGFy
aW5nR0xDb250ZXh0KCkgY3JlYXRlcyBhIG5ldyBHTENvbnRleHRFR0wgb2JqZWN0CisgICAgICAg
IHRoYXQncyB0byBiZSB1c2VkIGFzIGEgc2hhcmluZyBjb250ZXh0LiBUaGUgbWV0aG9kIGNyZWF0
ZXMgYSBuZXcgc3VyZmFjZQorICAgICAgICB2aWEgdGhlIHdsX2NvbXBvc2l0b3IgaW50ZXJmYWNl
IGFuZCB1c2VzIGl0IHRvIGNyZWF0ZSBhIGR1bW15IG5hdGl2ZSBFR0wKKyAgICAgICAgd2luZG93
IHRoYXQncyAxeDFweCBpbiBzaXplLiBUaGUgR0xDb250ZXh0RUdMIG9iamVjdCBpcyB0aGVuIGNy
ZWF0ZWQKKyAgICAgICAgdGhyb3VnaCB0aGUgc3RhdGljIEdMQ29udGV4dEVHTDo6Y3JlYXRlV2lu
ZG93Q29udGV4dCgpIG1ldGhvZC4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmREaXNwbGF5OjpnbG9iYWxDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpXYXlsYW5kRGlzcGxheTo6Z2xvYmFsUmVtb3ZlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6V2F5bGFuZERpc3BsYXk6Omluc3RhbmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OldheWxhbmREaXNwbGF5OjpXYXlsYW5kRGlzcGxheSk6CisgICAgICAgIChXZWJDb3Jl
OjpXYXlsYW5kRGlzcGxheTo6Y3JlYXRlU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpXYXls
YW5kRGlzcGxheTo6Y3JlYXRlU2hhcmluZ0dMQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldheWxhbmREaXNwbGF5OjpuYXRpdmVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Oldh
eWxhbmREaXNwbGF5OjplZ2xEaXNwbGF5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
YXlsYW5kL1dheWxhbmRTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldheWxhbmRTdXJm
YWNlOjp+V2F5bGFuZFN1cmZhY2UpOiBBc3NlcnQgdGhhdCB0aGUgV2F5bGFuZERpc3BsYXkKKyAg
ICAgICAgaW5zdGFuY2UgaXMgcHJlc2VudCBiZWZvcmUgZ29pbmcgb24gdG8gZGVzdHJveSB0aGUg
c3VyZmFjZSByZXNvdXJjZXMuCisKIDIwMTQtMDgtMzEgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggYnVpbGQgYnJlYWsg
b24gRUZMIGFuZCBHVEsgc2luY2UgcjE3MzE1Mi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtR1RLLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNt
YWtlCShyZXZpc2lvbiAxNzMxNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtNDMwLDYgKzQzMCw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgK
IAogaWYgKEVOQUJMRV9XQVlMQU5EX1RBUkdFVCkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlUGxh
dGZvcm1HVEtfU09VUkNFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxh
bmREaXNwbGF5LmNwcAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmRF
dmVudFNvdXJjZS5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5k
U3VyZmFjZS5jcHAKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5
bGFuZC9XYXlsYW5kRGlzcGxheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kRGlzcGxheS5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dheWxhbmREaXNwbGF5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXYXlsYW5kRGlzcGxheS5oIgorCisjaWYgUExBVEZPUk0oV0FZTEFORCkKKworI2luY2x1ZGUg
IkdMQ29udGV4dEVHTC5oIgorI2luY2x1ZGUgIldheWxhbmRTdXJmYWNlLmgiCisjaW5jbHVkZSA8
Y3N0cmluZz4KKyNpbmNsdWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29u
c3Qgc3RydWN0IHdsX3JlZ2lzdHJ5X2xpc3RlbmVyIFdheWxhbmREaXNwbGF5OjptX3JlZ2lzdHJ5
TGlzdGVuZXIgPSB7CisgICAgV2F5bGFuZERpc3BsYXk6Omdsb2JhbENhbGxiYWNrLAorICAgIFdh
eWxhbmREaXNwbGF5OjpnbG9iYWxSZW1vdmVDYWxsYmFjaworfTsKKwordm9pZCBXYXlsYW5kRGlz
cGxheTo6Z2xvYmFsQ2FsbGJhY2sodm9pZCogZGF0YSwgc3RydWN0IHdsX3JlZ2lzdHJ5KiByZWdp
c3RyeSwgdWludDMyX3QgbmFtZSwgY29uc3QgY2hhciogaW50ZXJmYWNlLCB1aW50MzJfdCkKK3sK
KyAgICBhdXRvIGRpc3BsYXkgPSBzdGF0aWNfY2FzdDxXYXlsYW5kRGlzcGxheSo+KGRhdGEpOwor
ICAgIGlmICghc3RkOjpzdHJjbXAoaW50ZXJmYWNlLCAid2xfY29tcG9zaXRvciIpKQorICAgICAg
ICBkaXNwbGF5LT5tX2NvbXBvc2l0b3IgPSBzdGF0aWNfY2FzdDxzdHJ1Y3Qgd2xfY29tcG9zaXRv
cio+KHdsX3JlZ2lzdHJ5X2JpbmQocmVnaXN0cnksIG5hbWUsICZ3bF9jb21wb3NpdG9yX2ludGVy
ZmFjZSwgMSkpOworICAgIGVsc2UgaWYgKCFzdGQ6OnN0cmNtcChpbnRlcmZhY2UsICJ3bF93ZWJr
aXRndGsiKSkKKyAgICAgICAgZGlzcGxheS0+bV93ZWJraXRndGsgPSBzdGF0aWNfY2FzdDxzdHJ1
Y3Qgd2xfd2Via2l0Z3RrKj4od2xfcmVnaXN0cnlfYmluZChyZWdpc3RyeSwgbmFtZSwgJndsX3dl
YmtpdGd0a19pbnRlcmZhY2UsIDEpKTsKK30KKwordm9pZCBXYXlsYW5kRGlzcGxheTo6Z2xvYmFs
UmVtb3ZlQ2FsbGJhY2sodm9pZCosIHN0cnVjdCB3bF9yZWdpc3RyeSosIHVpbnQzMl90KQorewor
ICAgIC8vIEZJWE1FOiBpZiB0aGlzIGNhbiBoYXBwZW4gd2l0aG91dCB0aGUgVUkgUHJvY2VzcyBn
ZXR0aW5nIHNodXQgZG93bgorICAgIC8vIHdlIHNob3VsZCBwcm9iYWJseSBkZXN0cm95IG91ciBj
YWNoZWQgZGlzcGxheSBpbnN0YW5jZS4KK30KKworV2F5bGFuZERpc3BsYXkqIFdheWxhbmREaXNw
bGF5OjppbnN0YW5jZSgpCit7CisgICAgc3RhdGljIFdheWxhbmREaXNwbGF5KiBkaXNwbGF5ID0g
bnVsbHB0cjsKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIGlmIChp
bml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIGRpc3BsYXk7CisKKyAgICBpbml0aWFsaXplZCA9
IHRydWU7CisgICAgc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSA9IHdsX2Rpc3BsYXlfY29u
bmVjdCgid2Via2l0Z3RrLXdheWxhbmQtY29tcG9zaXRvci1zb2NrZXQiKTsKKyAgICBpZiAoIXds
RGlzcGxheSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBkaXNwbGF5ID0gbmV3IFdh
eWxhbmREaXNwbGF5KHdsRGlzcGxheSk7CisgICAgaWYgKCFkaXNwbGF5LT5pc0luaXRpYWxpemVk
KCkpIHsKKyAgICAgICAgZGVsZXRlIGRpc3BsYXk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKworICAgIHJldHVybiBkaXNwbGF5OworfQorCitXYXlsYW5kRGlzcGxheTo6V2F5bGFu
ZERpc3BsYXkoc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSkKKyAgICA6IG1fZGlzcGxheSh3
bERpc3BsYXkpCisgICAgLCBtX3JlZ2lzdHJ5KHdsX2Rpc3BsYXlfZ2V0X3JlZ2lzdHJ5KG1fZGlz
cGxheSkpCisgICAgLCBtX2VnbENvbmZpZ0Nob3NlbihmYWxzZSkKK3sKKyAgICB3bF9yZWdpc3Ry
eV9hZGRfbGlzdGVuZXIobV9yZWdpc3RyeSwgJm1fcmVnaXN0cnlMaXN0ZW5lciwgdGhpcyk7Cisg
ICAgd2xfZGlzcGxheV9yb3VuZHRyaXAobV9kaXNwbGF5KTsKKworICAgIHN0YXRpYyBjb25zdCBF
R0xpbnQgY29uZmlnQXR0cmlidXRlc1tdID0geworICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLCBF
R0xfV0lORE9XX0JJVCwKKyAgICAgICAgRUdMX1JFRF9TSVpFLCAxLAorICAgICAgICBFR0xfR1JF
RU5fU0laRSwgMSwKKyAgICAgICAgRUdMX0JMVUVfU0laRSwgMSwKKyAgICAgICAgRUdMX0FMUEhB
X1NJWkUsIDEsCisgICAgICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xfRVMyX0JJ
VCwKKyAgICAgICAgRUdMX05PTkUKKyAgICB9OworCisgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0
RGlzcGxheShtX2Rpc3BsYXkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BM
QVkpIHsKKyAgICAgICAgZ193YXJuaW5nKCJXYXlsYW5kRGlzcGxheSBpbml0aWFsaXphdGlvbjog
ZmFpbGVkIHRvIGFjcXVpcmUgRUdMIGRpc3BsYXkuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVHTF9GQUxT
RSkgeworICAgICAgICBnX3dhcm5pbmcoIldheWxhbmREaXNwbGF5IGluaXRpYWxpemF0aW9uOiBm
YWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRUdMIGRpc3BsYXkuIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkgPT0gRUdMX0ZB
TFNFKSB7CisgICAgICAgIGdfd2FybmluZygiV2F5bGFuZERpc3BsYXkgaW5pdGlhbGl6YXRpb246
IGZhaWxlZCB0byBzZXQgRUdMX09QRU5HTF9FU19BUEkgYXMgdGhlIHJlbmRlcmluZyBBUEkuIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBFR0xpbnQgbnVtYmVyT2ZDb25maWdzOwor
ICAgIGlmICghZWdsQ2hvb3NlQ29uZmlnKG1fZWdsRGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywg
Jm1fZWdsQ29uZmlnLCAxLCAmbnVtYmVyT2ZDb25maWdzKSB8fCBudW1iZXJPZkNvbmZpZ3MgIT0g
MSkgeworICAgICAgICBnX3dhcm5pbmcoIldheWxhbmREaXNwbGF5IGluaXRpYWxpemF0aW9uOiBm
YWlsZWQgdG8gZmluZCB0aGUgZGVzaXJlZCBFR0wgY29uZmlndXJhdGlvbi4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fZWdsQ29uZmlnQ2hvc2VuID0gdHJ1ZTsKK30KKworc3Rk
Ojp1bmlxdWVfcHRyPFdheWxhbmRTdXJmYWNlPiBXYXlsYW5kRGlzcGxheTo6Y3JlYXRlU3VyZmFj
ZShjb25zdCBJbnRTaXplJiBzaXplLCBpbnQgd2lkZ2V0SWQpCit7CisgICAgc3RydWN0IHdsX3N1
cmZhY2UqIHdsU3VyZmFjZSA9IHdsX2NvbXBvc2l0b3JfY3JlYXRlX3N1cmZhY2UobV9jb21wb3Np
dG9yKTsKKyAgICAvLyBXZSBrZWVwIHRoZSBtaW5pbXVtIHNpemUgYXQgMXgxcHggc2luY2UgTWVz
YSByZXR1cm5zIG51bGwgdmFsdWVzIGluIHdsX2VnbF93aW5kb3dfY3JlYXRlKCkgZm9yIHplcm8g
d2lkdGggb3IgaGVpZ2h0LgorICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93ID0g
d2xfZWdsX3dpbmRvd19jcmVhdGUod2xTdXJmYWNlLCBzdGQ6Om1heCgxLCBzaXplLndpZHRoKCkp
LCBzdGQ6Om1heCgxLCBzaXplLmhlaWdodCgpKSk7CisKKyAgICB3bF93ZWJraXRndGtfc2V0X3N1
cmZhY2VfZm9yX3dpZGdldChtX3dlYmtpdGd0aywgd2xTdXJmYWNlLCB3aWRnZXRJZCk7CisgICAg
d2xfZGlzcGxheV9yb3VuZHRyaXAobV9kaXNwbGF5KTsKKworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFdheWxhbmRTdXJmYWNlPih3bFN1cmZhY2UsIG5hdGl2ZVdpbmRvdyk7Cit9CisKK1Bh
c3NPd25QdHI8R0xDb250ZXh0RUdMPiBXYXlsYW5kRGlzcGxheTo6Y3JlYXRlU2hhcmluZ0dMQ29u
dGV4dCgpCit7CisgICAgc3RydWN0IHdsX3N1cmZhY2UqIHdsU3VyZmFjZSA9IHdsX2NvbXBvc2l0
b3JfY3JlYXRlX3N1cmZhY2UobV9jb21wb3NpdG9yKTsKKyAgICBFR0xOYXRpdmVXaW5kb3dUeXBl
IG5hdGl2ZVdpbmRvdyA9IHdsX2VnbF93aW5kb3dfY3JlYXRlKHdsU3VyZmFjZSwgMSwgMSk7Cisg
ICAgcmV0dXJuIEdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4dChuYXRpdmVXaW5kb3cs
IG51bGxwdHIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFU
Rk9STShXQVlMQU5EKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5
bGFuZC9XYXlsYW5kRGlzcGxheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZERpc3BsYXkuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiAgV2F5bGFuZERpc3BsYXlfaAorI2RlZmluZSAg
V2F5bGFuZERpc3BsYXlfaAorCisjaWYgUExBVEZPUk0oV0FZTEFORCkKKworI2luY2x1ZGUgIldl
YktpdEd0a1dheWxhbmRDbGllbnRQcm90b2NvbC5oIgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDx3YXlsYW5kLWNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKKyNp
bmNsdWRlIDx3YXlsYW5kLWVnbC5oPgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBHTENvbnRleHRFR0w7CitjbGFzcyBJbnRTaXplOworY2xhc3Mg
V2F5bGFuZFN1cmZhY2U7CisKK2NsYXNzIFdheWxhbmREaXNwbGF5IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgV2F5bGFuZERpc3BsYXkqIGluc3RhbmNlKCk7CisKKyAgICBzdHJ1Y3Qgd2xfZGlzcGxh
eSogbmF0aXZlRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheTsgfQorICAgIEVHTERp
c3BsYXkgZWdsRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZWdsRGlzcGxheTsgfQorCisgICAg
c3RkOjp1bmlxdWVfcHRyPFdheWxhbmRTdXJmYWNlPiBjcmVhdGVTdXJmYWNlKGNvbnN0IEludFNp
emUmLCBpbnQgd2lkZ2V0SUQpOworCisgICAgUGFzc093blB0cjxHTENvbnRleHRFR0w+IGNyZWF0
ZVNoYXJpbmdHTENvbnRleHQoKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3Qgc3RydWN0
IHdsX3JlZ2lzdHJ5X2xpc3RlbmVyIG1fcmVnaXN0cnlMaXN0ZW5lcjsKKyAgICBzdGF0aWMgdm9p
ZCBnbG9iYWxDYWxsYmFjayh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd2xfcmVnaXN0cnkqLCB1aW50MzJf
dCBuYW1lLCBjb25zdCBjaGFyKiBpbnRlcmZhY2UsIHVpbnQzMl90IHZlcnNpb24pOworICAgIHN0
YXRpYyB2b2lkIGdsb2JhbFJlbW92ZUNhbGxiYWNrKHZvaWQqIGRhdGEsIHN0cnVjdCB3bF9yZWdp
c3RyeSosIHVpbnQzMl90IG5hbWUpOworCisgICAgV2F5bGFuZERpc3BsYXkoc3RydWN0IHdsX2Rp
c3BsYXkqKTsKKyAgICBib29sIGlzSW5pdGlhbGl6ZWQoKSB7IHJldHVybiBtX2NvbXBvc2l0b3Ig
JiYgbV93ZWJraXRndGsgJiYgbV9lZ2xEaXNwbGF5ICE9IEVHTF9OT19ESVNQTEFZICYmIG1fZWds
Q29uZmlnQ2hvc2VuOyB9CisKKyAgICBzdHJ1Y3Qgd2xfZGlzcGxheSogbV9kaXNwbGF5OworICAg
IHN0cnVjdCB3bF9yZWdpc3RyeSogbV9yZWdpc3RyeTsKKyAgICBzdHJ1Y3Qgd2xfY29tcG9zaXRv
ciogbV9jb21wb3NpdG9yOworICAgIHN0cnVjdCB3bF93ZWJraXRndGsqIG1fd2Via2l0Z3RrOwor
CisgICAgRUdMRGlzcGxheSBtX2VnbERpc3BsYXk7CisgICAgRUdMQ29uZmlnIG1fZWdsQ29uZmln
OworICAgIGJvb2wgbV9lZ2xDb25maWdDaG9zZW47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShXQVlMQU5EKQorCisjZW5kaWYgLy8gV2F5bGFuZERp
c3BsYXlfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9X
YXlsYW5kU3VyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2F5bGFuZC9XYXlsYW5kU3VyZmFjZS5jcHAJKHJldmlzaW9uIDE3MzE1MykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2F5bGFuZFN1cmZhY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw4IEBAIFdheWxhbmRTdXJmYWNlOjpXYXls
YW5kU3VyZmFjZShzdHJ1Y3Qgd2wKIAogV2F5bGFuZFN1cmZhY2U6On5XYXlsYW5kU3VyZmFjZSgp
CiB7CisgICAgLy8gVGhlIHN1cmZhY2UgY291bGRuJ3QgaGF2ZSBiZWVuIGNyZWF0ZWQgaW4gdGhl
IGZpcnN0IHBsYWNlIGlmIFdheWxhbmREaXNwbGF5IHdhc24ndCBwcm9wZXJseSBpbml0aWFsaXpl
ZC4KKyAgICBBU1NFUlQoV2F5bGFuZERpc3BsYXk6Omluc3RhbmNlKCkpOwogICAgIGVnbE1ha2VD
dXJyZW50KFdheWxhbmREaXNwbGF5OjppbnN0YW5jZSgpLT5lZ2xEaXNwbGF5KCksIEVHTF9OT19T
VVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwogCiAgICAgd2xfZWdsX3dp
bmRvd19kZXN0cm95KG1fbmF0aXZlV2luZG93KTsK
</data>
<flag name="review"
          id="262166"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>