<?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>162556</bug_id>
          
          <creation_ts>2016-09-26 07:10:29 -0700</creation_ts>
          <short_desc>[Streams API] Align cancelReadableStream() with spec</short_desc>
          <delta_ts>2016-09-28 02:20:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Romain Bellessort">romain.wkt</reporter>
          <assigned_to name="Romain Bellessort">romain.wkt</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1233389</commentid>
    <comment_count>0</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-26 07:10:29 -0700</bug_when>
    <thetext>cancelReadableStream() behaviour is not fully in line with spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233396</commentid>
    <comment_count>1</comment_count>
      <attachid>289827</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-26 07:23:03 -0700</bug_when>
    <thetext>Created attachment 289827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233406</commentid>
    <comment_count>2</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-26 08:06:15 -0700</bug_when>
    <thetext>Uploaded patches aligns the implementation of cancelReadableStream() with spec. Latest spec in particular defines a private method &quot;cancel&quot; in controller. This method is initialized in privateInitializeReadableStreamDefaultController (ReadableStreamInternals.js). This is similar to what was done for the private method &quot;pull&quot; introduced by latest spec.

The function name (cancelReadableStream) has also been modified to be aligned with spec (readableStreamCancel).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233789</commentid>
    <comment_count>3</comment_count>
      <attachid>289827</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-09-27 03:06:09 -0700</bug_when>
    <thetext>Comment on attachment 289827
Patch

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

&gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:346
&gt; -function cancelReadableStream(stream, reason)
&gt; +function readableStreamCancel(stream, reason)

Are you planning to rename all methods? I mean not in this patch, but if you plan to rename these methods then I think we can go ahead. Otherwise I would stick to the current naming convention even when it differs from the spec one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233794</commentid>
    <comment_count>4</comment_count>
      <attachid>289827</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-27 03:17:51 -0700</bug_when>
    <thetext>Comment on attachment 289827
Patch

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

&gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:86
&gt; +        &quot;use strict&quot;;

We will create a different function for each controller.
Can we just create this function once and reuse it?
Something like this.@cancel = @readableStreamDefaultControllerCancel, readableStreamDefaultControllerCancel being defined in ReadableStreamInternals.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233795</commentid>
    <comment_count>5</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-27 03:22:13 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 289827 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=289827&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:346
&gt; &gt; -function cancelReadableStream(stream, reason)
&gt; &gt; +function readableStreamCancel(stream, reason)
&gt; 
&gt; Are you planning to rename all methods? I mean not in this patch, but if you
&gt; plan to rename these methods then I think we can go ahead. Otherwise I would
&gt; stick to the current naming convention even when it differs from the spec
&gt; one.


Yes I am planning to do so. Prior to that, I want to align behaviour of some methods that is not yet fully aligned with spec (as in this patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233797</commentid>
    <comment_count>6</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-27 03:23:42 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 289827 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=289827&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:86
&gt; &gt; +        &quot;use strict&quot;;
&gt; 
&gt; We will create a different function for each controller.
&gt; Can we just create this function once and reuse it?
&gt; Something like this.@cancel = @readableStreamDefaultControllerCancel,
&gt; readableStreamDefaultControllerCancel being defined in
&gt; ReadableStreamInternals.js.

Ok I&apos;ll do this (and I&apos;ll do the same for the similar pull() method).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233833</commentid>
    <comment_count>7</comment_count>
      <attachid>289938</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-27 06:11:56 -0700</bug_when>
    <thetext>Created attachment 289938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233839</commentid>
    <comment_count>8</comment_count>
      <attachid>289938</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-27 06:42:42 -0700</bug_when>
    <thetext>Comment on attachment 289938
Patch

The new patch implements the change suggested by Youenn (and applies it to the private &quot;pull&quot; method).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233849</commentid>
    <comment_count>9</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-09-27 07:25:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:346
&gt; &gt; -function cancelReadableStream(stream, reason)
&gt; &gt; +function readableStreamCancel(stream, reason)
&gt; 
&gt; Are you planning to rename all methods? I mean not in this patch, but if you
&gt; plan to rename these methods then I think we can go ahead. Otherwise I would
&gt; stick to the current naming convention even when it differs from the spec
&gt; one.

You didn&apos;t answer this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233850</commentid>
    <comment_count>10</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-09-27 07:29:18 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #3)
&gt; &gt; &gt; Source/WebCore/Modules/streams/ReadableStreamInternals.js:346
&gt; &gt; &gt; -function cancelReadableStream(stream, reason)
&gt; &gt; &gt; +function readableStreamCancel(stream, reason)
&gt; &gt; 
&gt; &gt; Are you planning to rename all methods? I mean not in this patch, but if you
&gt; &gt; plan to rename these methods then I think we can go ahead. Otherwise I would
&gt; &gt; stick to the current naming convention even when it differs from the spec
&gt; &gt; one.
&gt; 
&gt; You didn&apos;t answer this :)

I replied in comment #5 :) (yes, I am planing to rename all methods) (is it better to reply to multiple comments in a single comment in such cases?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234273</commentid>
    <comment_count>11</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-09-28 00:01:44 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I replied in comment #5 :) (yes, I am planing to rename all methods)

Oh, sorry, my bad, read too quickly.

&gt; (is it
&gt; better to reply to multiple comments in a single comment in such cases?)

You can do as you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234286</commentid>
    <comment_count>12</comment_count>
      <attachid>289938</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-09-28 00:51:40 -0700</bug_when>
    <thetext>Comment on attachment 289938
Patch

Romain, I don&apos;t see you online so I won&apos;t set cq+ until you let me know on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234303</commentid>
    <comment_count>13</comment_count>
      <attachid>289938</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-28 02:20:18 -0700</bug_when>
    <thetext>Comment on attachment 289938
Patch

Clearing flags on attachment: 289938

Committed r206508: &lt;http://trac.webkit.org/changeset/206508&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234304</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-28 02:20:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289827</attachid>
            <date>2016-09-26 07:23:03 -0700</date>
            <delta_ts>2016-09-27 06:11:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162556-20160926162005.patch</filename>
            <type>text/plain</type>
            <size>6464</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIyMDc5YzI3Y2YyMzQw
ZWQxOTMyNGUwMmNlZTY0MDU0ODcxYzhmNS4uOGUzYjUxMDdjMDM5NDhlNjFlZjI2ZmUyM2U4MDg5
ODNjMTQ0OTg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA5LTI2ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbU3RyZWFtcyBBUEldIEFsaWduIGNhbmNlbFJlYWRhYmxlU3RyZWFtKCkgd2l0aCBzcGVjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGlnbmVkIGNh
bmNlbFJlYWRhYmxlU3RyZWFtKCkgd2l0aCBTdHJlYW1zIEFQSS4gSW4gcGFydGljdWxhciwgcHJp
dmF0ZSBjYW5jZWwoKSBtZXRob2QKKyAgICAgICAgd2FzIGFkZGVkIHRvIFJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIgYW5kIGZ1bmN0aW9uIG5hbWUgd2FzIHJlcGxhY2VkIGJ5IHJlYWRh
YmxlU3RyZWFtQ2FuY2VsKCkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKwor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qczoKKyAgICAgICAgKGNh
bmNlbCk6IFVwZGF0ZWQgd2l0aCByZWZlcmVuY2UgdG8gcmVhZGFibGVTdHJlYW1DYW5jZWwoKS4K
KyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpz
OgorICAgICAgICAoY2FuY2VsKTogVXBkYXRlZCB3aXRoIHJlZmVyZW5jZSB0byByZWFkYWJsZVN0
cmVhbUNhbmNlbCgpLgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qczoKKyAgICAgICAgKHRoaXMuY2FuY2VsKTogTmV3IHByaXZhdGUgbWV0aG9kIGFk
ZGVkIGJhc2VkIG9uIHNwZWMuCisgICAgICAgICh0ZWVSZWFkYWJsZVN0cmVhbUJyYW5jaDJDYW5j
ZWxGdW5jdGlvbik6IFVwZGF0ZWQgd2l0aCByZWZlcmVuY2UgdG8gcmVhZGFibGVTdHJlYW1DYW5j
ZWwoKS4KKyAgICAgICAgKHJlYWRhYmxlU3RyZWFtQ2FuY2VsKTogTmV3IG5hbWUgZm9yIGNhbmNl
bFJlYWRhYmxlU3RyZWFtKCksIGJlaGF2aW91ciBhbGlnbmVkIHdpdGggc3BlYy4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6IEFkZGVkICJjYW5jZWwiLgorCiAy
MDE2LTA5LTI1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBB
dXRob3JTdHlsZVNoZWV0cyBzaG91bGRuJ3QgdHJpZ2dlciBzeW5jaHJvbm91cyBzdHlsZSByZXNv
bHV0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtLmpzCmluZGV4IDhkZjUxMmQ2OTkyNDJlNWZkM2Y1YTQzMTJjZTM4N2NjYjQxNWE0ODcuLmRk
NzAyNmJmNThmZmMyMzM0MTNkNDgxMDg5MzBhY2I4OGEwMTNiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKQEAgLTc0LDcgKzc0LDcg
QEAgZnVuY3Rpb24gY2FuY2VsKHJlYXNvbikKICAgICBpZiAoQGlzUmVhZGFibGVTdHJlYW1Mb2Nr
ZWQodGhpcykpCiAgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9y
KCJSZWFkYWJsZVN0cmVhbSBpcyBsb2NrZWQiKSk7CiAKLSAgICByZXR1cm4gQGNhbmNlbFJlYWRh
YmxlU3RyZWFtKHRoaXMsIHJlYXNvbik7CisgICAgcmV0dXJuIEByZWFkYWJsZVN0cmVhbUNhbmNl
bCh0aGlzLCByZWFzb24pOwogfQogCiBmdW5jdGlvbiBnZXRSZWFkZXIob3B0aW9ucykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyLmpzCmluZGV4IGVlMTVlN2NlYTFiOWQ1YzMxOWNlODZjYzRhZmIyZWFk
ZDY2YWYzMjcuLjMxOTVmMDlmODE3YzMwNmRkYjU0NTU2NjcwNDk0MmI4MzVjNDc5YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtRGVmYXVsdFJlYWRlci5qcwpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiBjYW5jZWwo
cmVhc29uKQogICAgIGlmICghdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSkKICAgICAgICAgcmV0
dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoImNhbmNlbCgpIGNhbGxlZCBvbiBh
IHJlYWRlciBvd25lZCBieSBubyByZWFkYWJsZSBzdHJlYW0iKSk7CiAKLSAgICByZXR1cm4gQGNh
bmNlbFJlYWRhYmxlU3RyZWFtKHRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0sIHJlYXNvbik7Cisg
ICAgcmV0dXJuIEByZWFkYWJsZVN0cmVhbUNhbmNlbCh0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFt
LCByZWFzb24pOwogfQogCiBmdW5jdGlvbiByZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwppbmRleCBm
MGEyZjVkNTI3NjFmODczMjYxNWEwNDY2YmY4MGYzOGI3MzhkYWI2Li45NTg3ZTA3OGE2YzNmMmNj
NTBiZWU0ZTZkNzE2NWZmZmE5YTZkMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCkBAIC04Miw2ICs4
MiwxMyBAQCBmdW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIoc3RyZWFtLCB1bmRlcmx5aW5nU291cgogICAgICAgICAgICAgQHJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXJFcnJvcihjb250cm9sbGVyLCBlcnJvcik7CiAgICAgfSk7CiAK
KyAgICB0aGlzLkBjYW5jZWwgPSBmdW5jdGlvbihyZWFzb24pIHsKKyAgICAgICAgInVzZSBzdHJp
Y3QiOworCisgICAgICAgIGNvbnRyb2xsZXIuQHF1ZXVlID0gQG5ld1F1ZXVlKCk7CisgICAgICAg
IHJldHVybiBAcHJvbWlzZUludm9rZU9yTm9vcChjb250cm9sbGVyLkB1bmRlcmx5aW5nU291cmNl
LCAiY2FuY2VsIiwgW3JlYXNvbl0pOworICAgIH0KKwogICAgIHRoaXMuQHB1bGwgPSBmdW5jdGlv
bigpIHsKICAgICAgICAgInVzZSBzdHJpY3QiOwogCkBAIC0yMDYsNyArMjEzLDcgQEAgZnVuY3Rp
b24gdGVlUmVhZGFibGVTdHJlYW1CcmFuY2gxQ2FuY2VsRnVuY3Rpb24odGVlU3RhdGUsIHN0cmVh
bSkKICAgICAgICAgdGVlU3RhdGUuY2FuY2VsZWQxID0gdHJ1ZTsKICAgICAgICAgdGVlU3RhdGUu
cmVhc29uMSA9IHI7CiAgICAgICAgIGlmICh0ZWVTdGF0ZS5jYW5jZWxlZDIpIHsKLSAgICAgICAg
ICAgIEBjYW5jZWxSZWFkYWJsZVN0cmVhbShzdHJlYW0sIFt0ZWVTdGF0ZS5yZWFzb24xLCB0ZWVT
dGF0ZS5yZWFzb24yXSkuQHRoZW4oCisgICAgICAgICAgICBAcmVhZGFibGVTdHJlYW1DYW5jZWwo
c3RyZWFtLCBbdGVlU3RhdGUucmVhc29uMSwgdGVlU3RhdGUucmVhc29uMl0pLkB0aGVuKAogICAg
ICAgICAgICAgICAgIHRlZVN0YXRlLmNhbmNlbFByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLAog
ICAgICAgICAgICAgICAgIHRlZVN0YXRlLmNhbmNlbFByb21pc2VDYXBhYmlsaXR5LkByZWplY3Qp
OwogICAgICAgICB9CkBAIC0yMjIsNyArMjI5LDcgQEAgZnVuY3Rpb24gdGVlUmVhZGFibGVTdHJl
YW1CcmFuY2gyQ2FuY2VsRnVuY3Rpb24odGVlU3RhdGUsIHN0cmVhbSkKICAgICAgICAgdGVlU3Rh
dGUuY2FuY2VsZWQyID0gdHJ1ZTsKICAgICAgICAgdGVlU3RhdGUucmVhc29uMiA9IHI7CiAgICAg
ICAgIGlmICh0ZWVTdGF0ZS5jYW5jZWxlZDEpIHsKLSAgICAgICAgICAgIEBjYW5jZWxSZWFkYWJs
ZVN0cmVhbShzdHJlYW0sIFt0ZWVTdGF0ZS5yZWFzb24xLCB0ZWVTdGF0ZS5yZWFzb24yXSkuQHRo
ZW4oCisgICAgICAgICAgICBAcmVhZGFibGVTdHJlYW1DYW5jZWwoc3RyZWFtLCBbdGVlU3RhdGUu
cmVhc29uMSwgdGVlU3RhdGUucmVhc29uMl0pLkB0aGVuKAogICAgICAgICAgICAgICAgIHRlZVN0
YXRlLmNhbmNlbFByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLAogICAgICAgICAgICAgICAgIHRl
ZVN0YXRlLmNhbmNlbFByb21pc2VDYXBhYmlsaXR5LkByZWplY3QpOwogICAgICAgICB9CkBAIC0z
MzYsNyArMzQzLDcgQEAgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckdl
dERlc2lyZWRTaXplKGNvbnRyb2xsZXIpCiAgICByZXR1cm4gY29udHJvbGxlci5Ac3RyYXRlZ3ku
aGlnaFdhdGVyTWFyayAtIGNvbnRyb2xsZXIuQHF1ZXVlLnNpemU7CiB9CiAKLWZ1bmN0aW9uIGNh
bmNlbFJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgcmVhc29uKQorZnVuY3Rpb24gcmVhZGFibGVTdHJl
YW1DYW5jZWwoc3RyZWFtLCByZWFzb24pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCkBAIC0zNDYs
MTggKzM1Myw5IEBAIGZ1bmN0aW9uIGNhbmNlbFJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgcmVhc29u
KQogICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKICAgICAgICAgcmV0
dXJuIEBQcm9taXNlLkByZWplY3Qoc3RyZWFtLkBzdG9yZWRFcnJvcik7CiAgICAgQGNsb3NlUmVh
ZGFibGVTdHJlYW0oc3RyZWFtKTsKLSAgICAvLyBGSVhNRTogRml4IGJlbG93LCB3aGljaCBpcyBh
IHRlbXBvcmFyeSBzb2x1dGlvbiB0byB0aGUgY2FzZSB3aGVyZSBjb250cm9sbGVyIGlzIHVuZGVm
aW5lZC4KLSAgICAvLyBUaGlzIGlzc3VlIGlzIGR1ZSB0byB0aGUgZmFjdCB0aGF0IGluIHByZXZp
b3VzIHZlcnNpb24gb2YgdGhlIHNwZWMsIGNhbmNlbCB3YXMgYXNzb2NpYXRlZAotICAgIC8vIHRv
IHVuZGVybHlpbmdTb3VyY2UsIHdoZXJlYXMgaW4gbmV3IHZlcnNpb24gaXQgaXMgYXNzb2NpYXRl
ZCB0byBjb250cm9sbGVyLiBBcyB0aGlzIHBhdGNoCi0gICAgLy8gZG9lcyBub3QgeWV0IGZ1bGx5
IGltcGxlbWVudCB0aGUgbmV3IHZlcnNpb24sIHRoaXMgc29sdXRpb24gaXMgdXNlZC4KLSAgICBj
b25zdCBjb250cm9sbGVyID0gc3RyZWFtLkByZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI7Ci0gICAg
dmFyIHVuZGVybHlpbmdTb3VyY2UgPSBAdW5kZWZpbmVkOwotICAgIGlmIChjb250cm9sbGVyICE9
PSBAdW5kZWZpbmVkKQotICAgICAgICB1bmRlcmx5aW5nU291cmNlID0gY29udHJvbGxlci5AdW5k
ZXJseWluZ1NvdXJjZTsKLSAgICByZXR1cm4gQHByb21pc2VJbnZva2VPck5vb3AodW5kZXJseWlu
Z1NvdXJjZSwgImNhbmNlbCIsIFtyZWFzb25dKS5AdGhlbihmdW5jdGlvbigpIHsgfSk7CisgICAg
cmV0dXJuIHN0cmVhbS5AcmVhZGFibGVTdHJlYW1Db250cm9sbGVyLkBjYW5jZWwocmVhc29uKS5A
dGhlbihmdW5jdGlvbigpIHsgIH0pOwogfQogCi0KIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXJDbG9zZShjb250cm9sbGVyKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRl
eCBkOTdjZjM3MWE3Yzg3M2U1OTAzY2E1ODFhM2Q0ZTMyMWM2ZWFlMmM5Li41MjljNTU1ODk0NWQ5
N2MyYmViMDJmZWZkYzZhYjFkZDFlMmQxNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhhZGRUcmFjaykgXAogICAgIG1hY3JvKGFwcGVuZEZyb21K
UykgXAogICAgIG1hY3JvKGJvZHkpIFwKKyAgICBtYWNybyhjYW5jZWwpIFwKICAgICBtYWNybyhj
bG9uZUZvckpTKSBcCiAgICAgbWFjcm8oY2xvc2VSZXF1ZXN0ZWQpIFwKICAgICBtYWNybyhjbG9z
ZWRQcm9taXNlQ2FwYWJpbGl0eSkgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289938</attachid>
            <date>2016-09-27 06:11:56 -0700</date>
            <delta_ts>2016-09-28 02:20:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162556-20160927150856.patch</filename>
            <type>text/plain</type>
            <size>8825</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNmNjk0MzM5MWI1YzU5
NjRmMDk4ODNlOTkxYTY4MWZlYzVhNWRlOC4uNjJlZmU1NzJhYjBiNGExNzcyNDU3NTAwMmY5ZTFh
N2U0YTRmNzEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE2LTA5LTI3ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbU3RyZWFtcyBBUEldIEFsaWduIGNhbmNlbFJlYWRhYmxlU3RyZWFtKCkgd2l0aCBzcGVjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGlnbmVkIGNh
bmNlbFJlYWRhYmxlU3RyZWFtKCkgd2l0aCBTdHJlYW1zIEFQSS4gSW4gcGFydGljdWxhciwgcHJp
dmF0ZSBjYW5jZWwoKSBtZXRob2QKKyAgICAgICAgd2FzIGFkZGVkIHRvIFJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIgYW5kIGZ1bmN0aW9uIG5hbWUgd2FzIHJlcGxhY2VkIGJ5IHJlYWRh
YmxlU3RyZWFtQ2FuY2VsKCkuCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIGNhbmNlbCgpIChh
cyB3ZWxsIGFzIHB1bGwoKSkgaXMgYWN0dWFsbHkgbWFkZSBpbiBSZWFkYWJsZVN0cmVhbUludGVy
bmFscy5qcyB0bworICAgICAgICBhdm9pZCBjcmVhdGluZyBuZXcgZnVuY3Rpb24gZm9yIGVhY2gg
Y29udHJvbGxlci4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAgICAg
ICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOgorICAgICAgICAoY2FuY2VsKTog
VXBkYXRlZCB3aXRoIHJlZmVyZW5jZSB0byByZWFkYWJsZVN0cmVhbUNhbmNlbCgpLgorICAgICAg
ICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanM6CisgICAg
ICAgIChjYW5jZWwpOiBVcGRhdGVkIHdpdGggcmVmZXJlbmNlIHRvIHJlYWRhYmxlU3RyZWFtQ2Fu
Y2VsKCkuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxz
LmpzOgorICAgICAgICAocHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250
cm9sbGVyKTogUmVmZXIgdG8gZXh0ZXJuYWwgZnVuY3Rpb25zIChjYW5jZWwvcHVsbCkgdG8gYXZv
aWQKKyAgICAgICAgY3JlYXRpbmcgbmV3IGZ1bmN0aW9ucy4KKyAgICAgICAgKHRlZVJlYWRhYmxl
U3RyZWFtQnJhbmNoMkNhbmNlbEZ1bmN0aW9uKTogVXBkYXRlZCB3aXRoIHJlZmVyZW5jZSB0byBy
ZWFkYWJsZVN0cmVhbUNhbmNlbCgpLgorICAgICAgICAocmVhZGFibGVTdHJlYW1DYW5jZWwpOiBO
ZXcgbmFtZSBmb3IgY2FuY2VsUmVhZGFibGVTdHJlYW0oKSwgYmVoYXZpb3VyIGFsaWduZWQgd2l0
aCBzcGVjLgorICAgICAgICAocmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckNhbmNlbCk6
IEFkZGVkIHRvIGF2b2lkIGNyZWF0aW5nIG5ldyBmdW5jdGlvbiBmb3IgZWFjaCBjb250cm9sbGVy
LgorICAgICAgICAocmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclB1bGwpOiBBZGRlZCB0
byBhdm9pZCBjcmVhdGluZyBuZXcgZnVuY3Rpb24gZm9yIGVhY2ggY29udHJvbGxlci4KKyAgICAg
ICAgKHJlYWRGcm9tUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKTogVXBkYXRlZCBjYWxsIHRv
IHB1bGwgbWV0aG9kIHRvIHBhc3MgY29udHJvbGxlci4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmg6IEFkZGVkICJjYW5jZWwiLgorCiAyMDE2LTA5LTI2ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBGaXgg
ZGVidWcgYnVpbGQgYnJlYWsgc2luY2UgcjIwNDIwNS4gVW5yZXZpZXdlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCmluZGV4IDhkZjUxMmQ2
OTkyNDJlNWZkM2Y1YTQzMTJjZTM4N2NjYjQxNWE0ODcuLmRkNzAyNmJmNThmZmMyMzM0MTNkNDgx
MDg5MzBhY2I4OGEwMTNiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW0uanMKQEAgLTc0LDcgKzc0LDcgQEAgZnVuY3Rpb24gY2FuY2VsKHJl
YXNvbikKICAgICBpZiAoQGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQodGhpcykpCiAgICAgICAgIHJl
dHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBs
b2NrZWQiKSk7CiAKLSAgICByZXR1cm4gQGNhbmNlbFJlYWRhYmxlU3RyZWFtKHRoaXMsIHJlYXNv
bik7CisgICAgcmV0dXJuIEByZWFkYWJsZVN0cmVhbUNhbmNlbCh0aGlzLCByZWFzb24pOwogfQog
CiBmdW5jdGlvbiBnZXRSZWFkZXIob3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzCmlu
ZGV4IGVlMTVlN2NlYTFiOWQ1YzMxOWNlODZjYzRhZmIyZWFkZDY2YWYzMjcuLjMxOTVmMDlmODE3
YzMwNmRkYjU0NTU2NjcwNDk0MmI4MzVjNDc5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5q
cwpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiBjYW5jZWwocmVhc29uKQogICAgIGlmICghdGhp
cy5Ab3duZXJSZWFkYWJsZVN0cmVhbSkKICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3Qo
bmV3IEBUeXBlRXJyb3IoImNhbmNlbCgpIGNhbGxlZCBvbiBhIHJlYWRlciBvd25lZCBieSBubyBy
ZWFkYWJsZSBzdHJlYW0iKSk7CiAKLSAgICByZXR1cm4gQGNhbmNlbFJlYWRhYmxlU3RyZWFtKHRo
aXMuQG93bmVyUmVhZGFibGVTdHJlYW0sIHJlYXNvbik7CisgICAgcmV0dXJuIEByZWFkYWJsZVN0
cmVhbUNhbmNlbCh0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtLCByZWFzb24pOwogfQogCiBmdW5j
dGlvbiByZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwppbmRleCBmMGEyZjVkNTI3NjFmODczMjYxNWEw
NDY2YmY4MGYzOGI3MzhkYWI2Li5kY2RmNWVmZjlkNDc2YzQxOWYyMGFlMjAzYWE1MGU3YzRkMjkz
ZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCkBAIC04MiwyMiArODIsOSBAQCBmdW5jdGlvbiBwcml2
YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIoc3RyZWFtLCB1bmRl
cmx5aW5nU291cgogICAgICAgICAgICAgQHJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJF
cnJvcihjb250cm9sbGVyLCBlcnJvcik7CiAgICAgfSk7CiAKLSAgICB0aGlzLkBwdWxsID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgICAgICBjb25zdCBzdHJlYW0g
PSBjb250cm9sbGVyLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW07Ci0gICAgICAgIGlmIChjb250
cm9sbGVyLkBxdWV1ZS5jb250ZW50Lmxlbmd0aCkgewotICAgICAgICAgICAgY29uc3QgY2h1bmsg
PSBAZGVxdWV1ZVZhbHVlKGNvbnRyb2xsZXIuQHF1ZXVlKTsKLSAgICAgICAgICAgIGlmIChjb250
cm9sbGVyLkBjbG9zZVJlcXVlc3RlZCAmJiBjb250cm9sbGVyLkBxdWV1ZS5jb250ZW50Lmxlbmd0
aCA9PT0gMCkKLSAgICAgICAgICAgICAgICBAY2xvc2VSZWFkYWJsZVN0cmVhbShzdHJlYW0pOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEByZXF1ZXN0UmVhZGFibGVTdHJlYW1Q
dWxsKGNvbnRyb2xsZXIpOwotICAgICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZXNvbHZlKHt2
YWx1ZTogY2h1bmssIGRvbmU6IGZhbHNlfSk7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgcGVu
ZGluZ1Byb21pc2UgPSBAcmVhZGFibGVTdHJlYW1BZGRSZWFkUmVxdWVzdChzdHJlYW0pOwotICAg
ICAgICBAcmVxdWVzdFJlYWRhYmxlU3RyZWFtUHVsbChjb250cm9sbGVyKTsKLSAgICAgICAgcmV0
dXJuIHBlbmRpbmdQcm9taXNlOwotICAgIH0KKyAgICB0aGlzLkBjYW5jZWwgPSBAcmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlckNhbmNlbDsKKworICAgIHRoaXMuQHB1bGwgPSBAcmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclB1bGw7CiAKICAgICByZXR1cm4gdGhpczsKIH0KQEAg
LTIwNiw3ICsxOTMsNyBAQCBmdW5jdGlvbiB0ZWVSZWFkYWJsZVN0cmVhbUJyYW5jaDFDYW5jZWxG
dW5jdGlvbih0ZWVTdGF0ZSwgc3RyZWFtKQogICAgICAgICB0ZWVTdGF0ZS5jYW5jZWxlZDEgPSB0
cnVlOwogICAgICAgICB0ZWVTdGF0ZS5yZWFzb24xID0gcjsKICAgICAgICAgaWYgKHRlZVN0YXRl
LmNhbmNlbGVkMikgewotICAgICAgICAgICAgQGNhbmNlbFJlYWRhYmxlU3RyZWFtKHN0cmVhbSwg
W3RlZVN0YXRlLnJlYXNvbjEsIHRlZVN0YXRlLnJlYXNvbjJdKS5AdGhlbigKKyAgICAgICAgICAg
IEByZWFkYWJsZVN0cmVhbUNhbmNlbChzdHJlYW0sIFt0ZWVTdGF0ZS5yZWFzb24xLCB0ZWVTdGF0
ZS5yZWFzb24yXSkuQHRoZW4oCiAgICAgICAgICAgICAgICAgdGVlU3RhdGUuY2FuY2VsUHJvbWlz
ZUNhcGFiaWxpdHkuQHJlc29sdmUsCiAgICAgICAgICAgICAgICAgdGVlU3RhdGUuY2FuY2VsUHJv
bWlzZUNhcGFiaWxpdHkuQHJlamVjdCk7CiAgICAgICAgIH0KQEAgLTIyMiw3ICsyMDksNyBAQCBm
dW5jdGlvbiB0ZWVSZWFkYWJsZVN0cmVhbUJyYW5jaDJDYW5jZWxGdW5jdGlvbih0ZWVTdGF0ZSwg
c3RyZWFtKQogICAgICAgICB0ZWVTdGF0ZS5jYW5jZWxlZDIgPSB0cnVlOwogICAgICAgICB0ZWVT
dGF0ZS5yZWFzb24yID0gcjsKICAgICAgICAgaWYgKHRlZVN0YXRlLmNhbmNlbGVkMSkgewotICAg
ICAgICAgICAgQGNhbmNlbFJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgW3RlZVN0YXRlLnJlYXNvbjEs
IHRlZVN0YXRlLnJlYXNvbjJdKS5AdGhlbigKKyAgICAgICAgICAgIEByZWFkYWJsZVN0cmVhbUNh
bmNlbChzdHJlYW0sIFt0ZWVTdGF0ZS5yZWFzb24xLCB0ZWVTdGF0ZS5yZWFzb24yXSkuQHRoZW4o
CiAgICAgICAgICAgICAgICAgdGVlU3RhdGUuY2FuY2VsUHJvbWlzZUNhcGFiaWxpdHkuQHJlc29s
dmUsCiAgICAgICAgICAgICAgICAgdGVlU3RhdGUuY2FuY2VsUHJvbWlzZUNhcGFiaWxpdHkuQHJl
amVjdCk7CiAgICAgICAgIH0KQEAgLTMzNiw3ICszMjMsNyBAQCBmdW5jdGlvbiByZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyR2V0RGVzaXJlZFNpemUoY29udHJvbGxlcikKICAgIHJldHVy
biBjb250cm9sbGVyLkBzdHJhdGVneS5oaWdoV2F0ZXJNYXJrIC0gY29udHJvbGxlci5AcXVldWUu
c2l6ZTsKIH0KIAotZnVuY3Rpb24gY2FuY2VsUmVhZGFibGVTdHJlYW0oc3RyZWFtLCByZWFzb24p
CitmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUNhbmNlbChzdHJlYW0sIHJlYXNvbikKIHsKICAgICAi
dXNlIHN0cmljdCI7CiAKQEAgLTM0NiwxNyArMzMzLDM0IEBAIGZ1bmN0aW9uIGNhbmNlbFJlYWRh
YmxlU3RyZWFtKHN0cmVhbSwgcmVhc29uKQogICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAc3Ry
ZWFtRXJyb3JlZCkKICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3Qoc3RyZWFtLkBzdG9y
ZWRFcnJvcik7CiAgICAgQGNsb3NlUmVhZGFibGVTdHJlYW0oc3RyZWFtKTsKLSAgICAvLyBGSVhN
RTogRml4IGJlbG93LCB3aGljaCBpcyBhIHRlbXBvcmFyeSBzb2x1dGlvbiB0byB0aGUgY2FzZSB3
aGVyZSBjb250cm9sbGVyIGlzIHVuZGVmaW5lZC4KLSAgICAvLyBUaGlzIGlzc3VlIGlzIGR1ZSB0
byB0aGUgZmFjdCB0aGF0IGluIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIHNwZWMsIGNhbmNlbCB3
YXMgYXNzb2NpYXRlZAotICAgIC8vIHRvIHVuZGVybHlpbmdTb3VyY2UsIHdoZXJlYXMgaW4gbmV3
IHZlcnNpb24gaXQgaXMgYXNzb2NpYXRlZCB0byBjb250cm9sbGVyLiBBcyB0aGlzIHBhdGNoCi0g
ICAgLy8gZG9lcyBub3QgeWV0IGZ1bGx5IGltcGxlbWVudCB0aGUgbmV3IHZlcnNpb24sIHRoaXMg
c29sdXRpb24gaXMgdXNlZC4KLSAgICBjb25zdCBjb250cm9sbGVyID0gc3RyZWFtLkByZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXI7Ci0gICAgdmFyIHVuZGVybHlpbmdTb3VyY2UgPSBAdW5kZWZpbmVk
OwotICAgIGlmIChjb250cm9sbGVyICE9PSBAdW5kZWZpbmVkKQotICAgICAgICB1bmRlcmx5aW5n
U291cmNlID0gY29udHJvbGxlci5AdW5kZXJseWluZ1NvdXJjZTsKLSAgICByZXR1cm4gQHByb21p
c2VJbnZva2VPck5vb3AodW5kZXJseWluZ1NvdXJjZSwgImNhbmNlbCIsIFtyZWFzb25dKS5AdGhl
bihmdW5jdGlvbigpIHsgfSk7CisgICAgcmV0dXJuIHN0cmVhbS5AcmVhZGFibGVTdHJlYW1Db250
cm9sbGVyLkBjYW5jZWwoc3RyZWFtLkByZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIsIHJlYXNvbiku
QHRoZW4oZnVuY3Rpb24oKSB7ICB9KTsKK30KKworZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlckNhbmNlbChjb250cm9sbGVyLCByZWFzb24pCit7CisgICAgInVzZSBzdHJp
Y3QiOworCisgICAgY29udHJvbGxlci5AcXVldWUgPSBAbmV3UXVldWUoKTsKKyAgICByZXR1cm4g
QHByb21pc2VJbnZva2VPck5vb3AoY29udHJvbGxlci5AdW5kZXJseWluZ1NvdXJjZSwgImNhbmNl
bCIsIFtyZWFzb25dKTsKIH0KIAorZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlclB1bGwoY29udHJvbGxlcikKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBjb25zdCBz
dHJlYW0gPSBjb250cm9sbGVyLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW07CisgICAgaWYgKGNv
bnRyb2xsZXIuQHF1ZXVlLmNvbnRlbnQubGVuZ3RoKSB7CisgICAgICAgIGNvbnN0IGNodW5rID0g
QGRlcXVldWVWYWx1ZShjb250cm9sbGVyLkBxdWV1ZSk7CisgICAgICAgIGlmIChjb250cm9sbGVy
LkBjbG9zZVJlcXVlc3RlZCAmJiBjb250cm9sbGVyLkBxdWV1ZS5jb250ZW50Lmxlbmd0aCA9PT0g
MCkKKyAgICAgICAgICAgIEBjbG9zZVJlYWRhYmxlU3RyZWFtKHN0cmVhbSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIEByZXF1ZXN0UmVhZGFibGVTdHJlYW1QdWxsKGNvbnRyb2xsZXIpOwor
ICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlc29sdmUoe3ZhbHVlOiBjaHVuaywgZG9uZTogZmFs
c2V9KTsKKyAgICB9CisgICAgY29uc3QgcGVuZGluZ1Byb21pc2UgPSBAcmVhZGFibGVTdHJlYW1B
ZGRSZWFkUmVxdWVzdChzdHJlYW0pOworICAgIEByZXF1ZXN0UmVhZGFibGVTdHJlYW1QdWxsKGNv
bnRyb2xsZXIpOworICAgIHJldHVybiBwZW5kaW5nUHJvbWlzZTsKK30KIAogZnVuY3Rpb24gcmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckNsb3NlKGNvbnRyb2xsZXIpCiB7CkBAIC00Mzcs
NyArNDQxLDcgQEAgZnVuY3Rpb24gcmVhZEZyb21SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIo
cmVhZGVyKQogICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChzdHJlYW0uQHN0b3JlZEVy
cm9yKTsKICAgICBAYXNzZXJ0KHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1SZWFkYWJsZSk7CiAK
LSAgICByZXR1cm4gc3RyZWFtLkByZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuQHB1bGwoKTsKKyAg
ICByZXR1cm4gc3RyZWFtLkByZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuQHB1bGwoc3RyZWFtLkBy
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIpOwogfQogCiBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUFk
ZFJlYWRSZXF1ZXN0KHN0cmVhbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBkOTdjZjM3MWE3Yzg3M2U1OTAzY2E1ODFhM2Q0ZTMy
MWM2ZWFlMmM5Li41MjljNTU1ODk0NWQ5N2MyYmViMDJmZWZkYzZhYjFkZDFlMmQxNDc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBA
IC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhhZGRUcmFjaykg
XAogICAgIG1hY3JvKGFwcGVuZEZyb21KUykgXAogICAgIG1hY3JvKGJvZHkpIFwKKyAgICBtYWNy
byhjYW5jZWwpIFwKICAgICBtYWNybyhjbG9uZUZvckpTKSBcCiAgICAgbWFjcm8oY2xvc2VSZXF1
ZXN0ZWQpIFwKICAgICBtYWNybyhjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSkgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>