<?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>182399</bug_id>
          
          <creation_ts>2018-02-01 11:32:46 -0800</creation_ts>
          <short_desc>[WebIDL] Support optional Promise arguments</short_desc>
          <delta_ts>2018-02-06 13:45:59 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>182538</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jfbastien</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1395577</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-01 11:32:46 -0800</bug_when>
    <thetext>[WebIDL] Support optional Promise arguments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395583</commentid>
    <comment_count>1</comment_count>
      <attachid>332898</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-01 11:39:29 -0800</bug_when>
    <thetext>Created attachment 332898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395590</commentid>
    <comment_count>2</comment_count>
      <attachid>332898</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-02-01 11:48:43 -0800</bug_when>
    <thetext>Comment on attachment 332898
Patch

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

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:6282
&gt; +    auto promise = state-&gt;argument(0).isUndefined() ? nullptr : convert&lt;IDLPromise&lt;IDLVoid&gt;&gt;(*state, state-&gt;uncheckedArgument(0));

Seems weird to do argument(0) followed by uncheckedArgument(0) here. I think it&apos;s probably semantically correct (you can&apos;t have non-undefined passed unless an argument was passed there), but I&apos;d just use argument(0) twice. The compiler should eliminate the second bounds check anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395602</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-01 12:57:24 -0800</bug_when>
    <thetext>rdar://problem/36754552</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395892</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-02 09:37:27 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #2)
&gt; Comment on attachment 332898 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=332898&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:6282
&gt; &gt; +    auto promise = state-&gt;argument(0).isUndefined() ? nullptr : convert&lt;IDLPromise&lt;IDLVoid&gt;&gt;(*state, state-&gt;uncheckedArgument(0));
&gt; 
&gt; Seems weird to do argument(0) followed by uncheckedArgument(0) here. I think
&gt; it&apos;s probably semantically correct (you can&apos;t have non-undefined passed
&gt; unless an argument was passed there), but I&apos;d just use argument(0) twice.
&gt; The compiler should eliminate the second bounds check anyways.

Ok, I&apos;ll look to do this in a follow-up. This change will update a bunch of bindings test expectations and I&apos;d like to keep this patch small for merging purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396841</commentid>
    <comment_count>5</comment_count>
      <attachid>332898</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 10:56:29 -0800</bug_when>
    <thetext>Comment on attachment 332898
Patch

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

Change seems fine since Promise types cannot be nullable as per Web IDL spec (therefore, we will never need to distinguish null parameter from missing/undefined parameter). A few comments though.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1540
&gt; +    return &quot;WTFMove(${name})&quot; if $type-&gt;isNullable || (ref($context) eq &quot;IDLArgument&quot; &amp;&amp; $context-&gt;isOptional);

Could we instead use below:
return &quot;${name}.releaseNonNull()&quot; if $codeGenerator-&gt;IsCallbackInterface($type) || $codeGenerator-&gt;IsCallbackFunction($type) || ($codeGenerator-&gt;IsPromiseType($type) &amp;&amp; !$context-&gt;isOptional);

I do not like that this line is not Promise type specific.

&gt;&gt;&gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:6282
&gt;&gt;&gt; +    auto promise = state-&gt;argument(0).isUndefined() ? nullptr : convert&lt;IDLPromise&lt;IDLVoid&gt;&gt;(*state, state-&gt;uncheckedArgument(0));
&gt;&gt; 
&gt;&gt; Seems weird to do argument(0) followed by uncheckedArgument(0) here. I think it&apos;s probably semantically correct (you can&apos;t have non-undefined passed unless an argument was passed there), but I&apos;d just use argument(0) twice. The compiler should eliminate the second bounds check anyways.
&gt; 
&gt; Ok, I&apos;ll look to do this in a follow-up. This change will update a bunch of bindings test expectations and I&apos;d like to keep this patch small for merging purposes.

I would keep using uncheckedArgument(), we do this on purpose in the bindings generator.

Does this build though? is the compiler able to figure out the auto type given the ternary and nullptr ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396843</commentid>
    <comment_count>6</comment_count>
      <attachid>332898</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-06 10:57:19 -0800</bug_when>
    <thetext>Comment on attachment 332898
Patch

Rejecting attachment 332898 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 332898, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/6384993</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396845</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-06 11:02:17 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 332898 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=332898&amp;action=review
&gt; 
&gt; Change seems fine since Promise types cannot be nullable as per Web IDL spec
&gt; (therefore, we will never need to distinguish null parameter from
&gt; missing/undefined parameter). A few comments though.
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1540
&gt; &gt; +    return &quot;WTFMove(${name})&quot; if $type-&gt;isNullable || (ref($context) eq &quot;IDLArgument&quot; &amp;&amp; $context-&gt;isOptional);
&gt; 
&gt; Could we instead use below:
&gt; return &quot;${name}.releaseNonNull()&quot; if
&gt; $codeGenerator-&gt;IsCallbackInterface($type) ||
&gt; $codeGenerator-&gt;IsCallbackFunction($type) ||
&gt; ($codeGenerator-&gt;IsPromiseType($type) &amp;&amp; !$context-&gt;isOptional);
&gt; 
&gt; I do not like that this line is not Promise type specific.

We could do that, but I think the WTFMove() is right for all optionals.

&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:6282
&gt; &gt;&gt;&gt; +    auto promise = state-&gt;argument(0).isUndefined() ? nullptr : convert&lt;IDLPromise&lt;IDLVoid&gt;&gt;(*state, state-&gt;uncheckedArgument(0));
&gt; &gt;&gt; 
&gt; &gt;&gt; Seems weird to do argument(0) followed by uncheckedArgument(0) here. I think it&apos;s probably semantically correct (you can&apos;t have non-undefined passed unless an argument was passed there), but I&apos;d just use argument(0) twice. The compiler should eliminate the second bounds check anyways.
&gt; &gt; 
&gt; &gt; Ok, I&apos;ll look to do this in a follow-up. This change will update a bunch of bindings test expectations and I&apos;d like to keep this patch small for merging purposes.
&gt; 
&gt; I would keep using uncheckedArgument(), we do this on purpose in the
&gt; bindings generator.
&gt; 
&gt; Does this build though? is the compiler able to figure out the auto type
&gt; given the ternary and nullptr ?

Yes, it builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396873</commentid>
    <comment_count>8</comment_count>
      <attachid>333198</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-06 11:46:01 -0800</bug_when>
    <thetext>Created attachment 333198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396926</commentid>
    <comment_count>9</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-06 13:45:52 -0800</bug_when>
    <thetext>Committed r228189: &lt;https://trac.webkit.org/r228189&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332898</attachid>
            <date>2018-02-01 11:39:29 -0800</date>
            <delta_ts>2018-02-06 11:46:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182399-20180201113928.patch</filename>
            <type>text/plain</type>
            <size>8919</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRjOTY4OGE0OWVmNDg4
MTRlMjY3MzNiMDg2ZGQyOWQxODRjZmM2NC4uMTM0Nzg2NDA5Y2VkZjMxZjM4MjY1ZTQ2Yjc2ODIx
MTJhYTZjYTExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAyLTAxICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBTdXBwb3J0IG9w
dGlvbmFsIFByb21pc2UgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODIzOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCBkZWNsYXJpbmcgYSBQcm9taXNlIGFyZ3VtZW50
IGFzIG9wdGlvbmFsIHdvdWxkIHJlc3VsdCBpbiBhIG5hdGl2ZSB0eXBlIG9mCisgICAgICAgIHN0
ZDo6b3B0aW9uYWw8UmVmUHRyPERPTVByb21pc2U+Pi4gVGhpcyBpcyB3YXN0ZWZ1bCwgc2luY2Ug
UmVmUHRyIGNhbiByZXByZXNlbnQgYW4gb3B0aW9uYWwKKyAgICAgICAgYXJndW1lbnQgYnkgc3Rv
cmluZyBudWxscHRyLiBGdXJ0aGVyLCBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCkgYXNzdW1lZCBQ
cm9taXNlcyB3ZXJlIG5ldmVyCisgICAgICAgIG9wdGlvbmFsIGFuZCB0cmllZCB0byBwYXNzIHRo
ZSBhcmd1bWVudCBhcyBhIFJlZiBieSBjYWxsaW5nIFJlZlB0cjo6cmVsZWFzZU5vbk51bGwoKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIHN0ZDo6b3B0aW9uYWwgd3JhcHBlciBh
cm91bmQgb3B0aW9uYWwgUHJvbWlzZXMgYW5kIHNpbXBseSBwYXNzZXMgdGhlCisgICAgICAgIHBy
b21pc2UgYXMgYSBSZWZQdHIgdG8gbmF0aXZlIGNvZGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKFBhc3NBcmd1bWVudEV4cHJlc3Np
b24pOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlQm9keSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFByb21pc2UpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bDoKKwogMjAxOC0wMS0zMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNv
bT4KIAogICAgICAgICBVbmlmaWVkIHNvdXJjZXMgZm9yIEZFTW9ycGhvbG9neS5jcHAgc2VlbXMg
dG8gYnJlYWsgdGhlIHdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGUwNjQyNWYxODRmODI5OWZkOTlm
MDM2ZWU1NDliZTc0YjQyMGJiMzkuLjY1MTIwYzZmYjQ2YWFhYTUzNTQxYjc3ZGE1MDcwYmNlZjcy
MTk3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0xNTM3LDggKzE1MzcsOCBAQCBzdWIgUGFzc0FyZ3VtZW50RXhwcmVz
c2lvbgogCiAgICAgbXkgJHR5cGUgPSAkY29udGV4dC0+dHlwZTsKIAotICAgIHJldHVybiAiV1RG
TW92ZSgke25hbWV9KSIgaWYgJHR5cGUtPmlzTnVsbGFibGU7Ci0gICAgCisgICAgcmV0dXJuICJX
VEZNb3ZlKCR7bmFtZX0pIiBpZiAkdHlwZS0+aXNOdWxsYWJsZSB8fCAocmVmKCRjb250ZXh0KSBl
cSAiSURMQXJndW1lbnQiICYmICRjb250ZXh0LT5pc09wdGlvbmFsKTsKKwogICAgIGlmICgkY29k
ZUdlbmVyYXRvci0+SXNCdWZmZXJTb3VyY2VUeXBlKCR0eXBlKSkgewogICAgICAgICByZXR1cm4g
Iioke25hbWV9IiBpZiAkdHlwZS0+bmFtZSBlcSAiQXJyYXlCdWZmZXIiOwogICAgICAgICByZXR1
cm4gIiR7bmFtZX0ucmVsZWFzZU5vbk51bGwoKSI7CkBAIC01NjUwLDExICs1NjUwLDE3IEBAIHN1
YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgbXkgJGFyZ3VtZW50SURMVHlw
ZSA9IEdldElETFR5cGUoJGludGVyZmFjZSwgJGFyZ3VtZW50LT50eXBlKTsKLSAgICAgICAgICAg
ICAgICAgICAgbXkgJGRlZmF1bHRWYWx1ZSA9ICJzdGQ6Om9wdGlvbmFsPENvbnZlcnRlcjwkYXJn
dW1lbnRJRExUeXBlPjo6UmV0dXJuVHlwZT4oKSI7CisKKyAgICAgICAgICAgICAgICAgICAgbXkg
JGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c1Byb21pc2VUeXBlKCRhcmd1bWVudC0+dHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICRkZWZhdWx0VmFsdWUgPSAibnVsbHB0ciI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gInN0ZDo6b3B0aW9uYWw8
Q29udmVydGVyPCRhcmd1bWVudElETFR5cGU+OjpSZXR1cm5UeXBlPigpIjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRuYXRpdmVWYWx1ZUNhc3RGdW5jdGlvbiA9ICJzdGQ6Om9wdGlvbmFsPENv
bnZlcnRlcjwkYXJndW1lbnRJRExUeXBlPjo6UmV0dXJuVHlwZT4iOworICAgICAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgJG9wdGlvbmFsQ2hlY2sgPSAic3RhdGUtPmFy
Z3VtZW50KCRhcmd1bWVudEluZGV4KS5pc1VuZGVmaW5lZCgpID8gJGRlZmF1bHRWYWx1ZSA6ICI7
CiAgICAgICAgICAgICAgICAgICAgICRhcmd1bWVudExvb2t1cEZvckNvbnZlcnNpb24gPSAic3Rh
dGUtPnVuY2hlY2tlZEFyZ3VtZW50KCRhcmd1bWVudEluZGV4KSI7Ci0gICAgICAgICAgICAgICAg
ICAgICRuYXRpdmVWYWx1ZUNhc3RGdW5jdGlvbiA9ICJzdGQ6Om9wdGlvbmFsPENvbnZlcnRlcjwk
YXJndW1lbnRJRExUeXBlPjo6UmV0dXJuVHlwZT4iOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKCRhcmd1bWVudC0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57UmV0dXJuVmFsdWV9KSB7CkBAIC01NjY0LDcgKzU2NzAsNyBAQCBzdWIgR2Vu
ZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50TG9va3Vw
Rm9yQ29udmVyc2lvbiA9ICJzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoJGFyZ3VtZW50SW5kZXgp
IjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgCisKICAgICAgICAgICAg
IG15ICRnbG9iYWxPYmplY3RSZWZlcmVuY2UgPSAkb3BlcmF0aW9uLT5pc1N0YXRpYyA/ICIqanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKSkiIDog
IipjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSI7CiAgICAgICAgICAgICBteSAkYXJndW1lbnRF
eGNlcHRpb25UaHJvd2VyID0gR2V0QXJndW1lbnRFeGNlcHRpb25UaHJvd2VyKCRpbnRlcmZhY2Us
ICRhcmd1bWVudCwgJGFyZ3VtZW50SW5kZXgsICRxdW90ZWRGdW5jdGlvbk5hbWUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCmluZGV4IDA3MTVjY2ExMjZhY2FkMGQwODU1NzBlYTlkMzM5NjBlZWU5ZjgyNGMuLjJkOTQ2
ZDY3OTFlMmFmNDFkZDI3YTgyMzc3NjFhZGQ4MjgxZjljNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xMTI2
LDYgKzExMjYsNyBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdQogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsTnVsbGFibGVXcmFwcGVySXNOdWxsKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFJlY29yZChKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHJv
bWlzZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKEpTQzo6RXhl
Y1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhKU0M6
OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcoSlNDOjpF
eGVjU3RhdGUqKTsKQEAgLTE4MDAsNiArMTgwMSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJtZXRob2RXaXRo
T3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxsKSwgKGludHB0cl90KSAoMCkgfSB9
LAogICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZCksIChpbnRwdHJfdCkgKDApIH0gfSwK
KyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAi
bWV0aG9kV2l0aENhbGxiYWNrQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhD
YWxsYmFja0FyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAgICB7ICJtZXRob2RXaXRoTm9uQ2Fs
bGJhY2tBcmdBbmRDYWxsYmFja0FyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Tm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyksIChpbnRwdHJfdCkgKDIpIH0gfSwKICAgICB7
ICJtZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyksIChpbnRwdHJfdCkgKDApIH0gfSwK
QEAgLTYyNzIsNiArNjI3NCwyMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkKAogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZEJvZHk+KCpzdGF0ZSwgIm1ldGhvZFdpdGhPcHRpb25h
bFJlY29yZCIpOwogfQogCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlQm9keShKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAg
YXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAgICBhdXRvIHByb21pc2UgPSBz
dGF0ZS0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWQoKSA/IG51bGxwdHIgOiBjb252ZXJ0PElETFBy
b21pc2U8SURMVm9pZD4+KCpzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAg
IGltcGwubWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsUHJvbWlzZShFeGVjU3RhdGUqIHN0YXRlKQoreworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFByb21pc2VCb2R5Pigqc3RhdGUsICJtZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlIik7Cit9
CisKIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZ0JvZHkoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cywgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKaW5kZXggYjQ0ODQ5NDJjNDE2YzA1NDIxMTNmM2ZkOWQwNDdmN2RhY2YxY2UzYi4uMDM5NmY2
OTZkZmNhYzczNDI5NmEwYzBmYjU1ZTQzNWQxZTlkMjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMjM5LDYgKzIzOSw3IEBA
IGVudW0gVGVzdENvbmZpZGVuY2UgeyAiaGlnaCIsICJraW5kYS1sb3ciIH07CiAgICAgdm9pZCAg
ICBtZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwob3B0aW9uYWwgVGVzdE9i
aj8gb2JqID0gbnVsbCk7CiAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVz
b2x2ZXIob3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyByZXNvbHZlcik7CiAgICAgdm9pZCAgICBt
ZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQob3B0aW9uYWwgcmVjb3JkPERPTVN0cmluZywgbG9uZz4/
IHJlY29yZCA9IG51bGwpOworICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZShv
cHRpb25hbCBQcm9taXNlPHZvaWQ+IHByb21pc2UpOwogCiAgICAgLy8gQ2FsbGJhY2sgaW50ZXJm
YWNlIHBhcmFtZXRlcnMuCiAgICAgdm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tBcmcoVGVzdENh
bGxiYWNrSW50ZXJmYWNlIGNhbGxiYWNrKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333198</attachid>
            <date>2018-02-06 11:46:01 -0800</date>
            <delta_ts>2018-02-06 13:45:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182399-20180206114601.patch</filename>
            <type>text/plain</type>
            <size>9374</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY3MzZiZDVjMTA1YmRk
Zjk0M2Q5M2UxNDU3YjhlMjRlNTZhZTg5YS4uZmQwNzlhMGM4YzRkMWEwYmM0MDE2NjczMTZhZTM1
ZDkwNjI4ODkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE4LTAyLTA2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBTdXBwb3J0IG9w
dGlvbmFsIFByb21pc2UgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODIzOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2NzU0NTUy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcgYW5kIENocmlzIER1bWV6LgorCisg
ICAgICAgIFByZXZpb3VzbHksIGRlY2xhcmluZyBhIFByb21pc2UgYXJndW1lbnQgYXMgb3B0aW9u
YWwgd291bGQgcmVzdWx0IGluIGEgbmF0aXZlIHR5cGUgb2YKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxSZWZQdHI8RE9NUHJvbWlzZT4+LiBUaGlzIGlzIHdhc3RlZnVsLCBzaW5jZSBSZWZQdHIgY2Fu
IHJlcHJlc2VudCBhbiBvcHRpb25hbAorICAgICAgICBhcmd1bWVudCBieSBzdG9yaW5nIG51bGxw
dHIuIEZ1cnRoZXIsIFBhc3NBcmd1bWVudEV4cHJlc3Npb24oKSBhc3N1bWVkIFByb21pc2VzIHdl
cmUgbmV2ZXIKKyAgICAgICAgb3B0aW9uYWwgYW5kIHRyaWVkIHRvIHBhc3MgdGhlIGFyZ3VtZW50
IGFzIGEgUmVmIGJ5IGNhbGxpbmcgUmVmUHRyOjpyZWxlYXNlTm9uTnVsbCgpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgc3RkOjpvcHRpb25hbCB3cmFwcGVyIGFyb3VuZCBvcHRp
b25hbCBQcm9taXNlcyBhbmQgc2ltcGx5IHBhc3NlcyB0aGUKKyAgICAgICAgcHJvbWlzZSBhcyBh
IFJlZlB0ciB0byBuYXRpdmUgY29kZS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoUGFzc0FyZ3VtZW50RXhwcmVzc2lvbik6CisgICAg
ICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2VCb2R5KToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlz
ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorCiAyMDE4
LTAyLTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2Vydmlj
ZSB3b3JrZXJzIHJlZ2lzdHJhdGlvbnMgYXJlIHNhdmVkIHRvIGRpc2sgYmVmb3JlIHRoZSBpbnN0
YWxsIC8gYWN0aXZhdGlvbiBzdWNjZWVkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA5MGUwZWE2Y2UzNWYyZjVmYjVhNjgx
NDYzMmE4NDZhNTg2ZWM2NGQwLi5hY2JkMTIyZTdiOWJlNmZiOWM5NTQwZTUzZjExYjc0ZmQyNDlm
ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtMTUzOCwxMyArMTUzOCwxMyBAQCBzdWIgUGFzc0FyZ3VtZW50RXhwcmVz
c2lvbgogICAgIG15ICR0eXBlID0gJGNvbnRleHQtPnR5cGU7CiAKICAgICByZXR1cm4gIldURk1v
dmUoJHtuYW1lfSkiIGlmICR0eXBlLT5pc051bGxhYmxlOwotICAgIAorCiAgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc0J1ZmZlclNvdXJjZVR5cGUoJHR5cGUpKSB7CiAgICAgICAgIHJldHVybiAi
KiR7bmFtZX0iIGlmICR0eXBlLT5uYW1lIGVxICJBcnJheUJ1ZmZlciI7CiAgICAgICAgIHJldHVy
biAiJHtuYW1lfS5yZWxlYXNlTm9uTnVsbCgpIjsKICAgICB9CiAKLSAgICByZXR1cm4gIiR7bmFt
ZX0ucmVsZWFzZU5vbk51bGwoKSIgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZh
Y2UoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrRnVuY3Rpb24oJHR5cGUpIHx8
ICRjb2RlR2VuZXJhdG9yLT5Jc1Byb21pc2VUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gIiR7bmFt
ZX0ucmVsZWFzZU5vbk51bGwoKSIgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZh
Y2UoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrRnVuY3Rpb24oJHR5cGUpIHx8
ICgkY29kZUdlbmVyYXRvci0+SXNQcm9taXNlVHlwZSgkdHlwZSkgJiYgKHJlZigkY29udGV4dCkg
bmUgIklETEFyZ3VtZW50IiB8fCAhJGNvbnRleHQtPmlzT3B0aW9uYWwpKTsKICAgICByZXR1cm4g
Iioke25hbWV9IiBpZiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSk7CiAgICAg
cmV0dXJuICJXVEZNb3ZlKCR7bmFtZX0pIjsKIH0KQEAgLTU2NTYsMTEgKzU2NTYsMTcgQEAgc3Vi
IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBteSAkYXJndW1lbnRJRExUeXBl
ID0gR2V0SURMVHlwZSgkaW50ZXJmYWNlLCAkYXJndW1lbnQtPnR5cGUpOwotICAgICAgICAgICAg
ICAgICAgICBteSAkZGVmYXVsdFZhbHVlID0gInN0ZDo6b3B0aW9uYWw8Q29udmVydGVyPCRhcmd1
bWVudElETFR5cGU+OjpSZXR1cm5UeXBlPigpIjsKKworICAgICAgICAgICAgICAgICAgICBteSAk
ZGVmYXVsdFZhbHVlOworICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklz
UHJvbWlzZVR5cGUoJGFyZ3VtZW50LT50eXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
JGRlZmF1bHRWYWx1ZSA9ICJudWxscHRyIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICRkZWZhdWx0VmFsdWUgPSAic3RkOjpvcHRpb25hbDxD
b252ZXJ0ZXI8JGFyZ3VtZW50SURMVHlwZT46OlJldHVyblR5cGU+KCkiOworICAgICAgICAgICAg
ICAgICAgICAgICAgJG5hdGl2ZVZhbHVlQ2FzdEZ1bmN0aW9uID0gInN0ZDo6b3B0aW9uYWw8Q29u
dmVydGVyPCRhcmd1bWVudElETFR5cGU+OjpSZXR1cm5UeXBlPiI7CisgICAgICAgICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgICAgICAgICAkb3B0aW9uYWxDaGVjayA9ICJzdGF0ZS0+YXJn
dW1lbnQoJGFyZ3VtZW50SW5kZXgpLmlzVW5kZWZpbmVkKCkgPyAkZGVmYXVsdFZhbHVlIDogIjsK
ICAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50TG9va3VwRm9yQ29udmVyc2lvbiA9ICJzdGF0
ZS0+dW5jaGVja2VkQXJndW1lbnQoJGFyZ3VtZW50SW5kZXgpIjsKLSAgICAgICAgICAgICAgICAg
ICAgJG5hdGl2ZVZhbHVlQ2FzdEZ1bmN0aW9uID0gInN0ZDo6b3B0aW9uYWw8Q29udmVydGVyPCRh
cmd1bWVudElETFR5cGU+OjpSZXR1cm5UeXBlPiI7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoJGFyZ3VtZW50LT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntSZXR1cm5WYWx1ZX0pIHsKQEAgLTU2NzAsNyArNTY3Niw3IEBAIHN1YiBHZW5l
cmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRMb29rdXBG
b3JDb252ZXJzaW9uID0gInN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgkYXJndW1lbnRJbmRleCki
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAKKwogICAgICAgICAgICAg
bXkgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSA9ICRvcGVyYXRpb24tPmlzU3RhdGljID8gIipqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihzdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSIgOiAi
KmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpIjsKICAgICAgICAgICAgIG15ICRhcmd1bWVudEV4
Y2VwdGlvblRocm93ZXIgPSBHZXRBcmd1bWVudEV4Y2VwdGlvblRocm93ZXIoJGludGVyZmFjZSwg
JGFyZ3VtZW50LCAkYXJndW1lbnRJbmRleCwgJHF1b3RlZEZ1bmN0aW9uTmFtZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKaW5kZXggYzg1ZmIyNjhkM2MyMGI1Mjc5ZGZlZTRhNzgxNGI4ZDQ1YTBkZTE4NS4uOTdiZTRi
ZDZlOThjZjNlNTBlZWU2NmJkOWVkM2E5MzQ2NDU5Nzc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE0OTIs
NiArMTQ5Miw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXJJc051bGwoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFhQYXRoTlNSZXNvbHZlcihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsUmVjb3JkKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcm9t
aXNlKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmcoSlNDOjpFeGVj
U3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKEpTQzo6
RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhKU0M6OkV4
ZWNTdGF0ZSopOwpAQCAtMjE2Niw2ICsyMTY3LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFdpdGhP
cHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwpLCAoaW50cHRyX3QpICgwKSB9IH0s
CiAgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciksIChpbnRwdHJfdCkg
KDApIH0gfSwKICAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkKSwgKGludHB0cl90KSAoMCkgfSB9LAor
ICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZSksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJt
ZXRob2RXaXRoQ2FsbGJhY2tBcmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENh
bGxiYWNrQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm1ldGhvZFdpdGhOb25DYWxs
YmFja0FyZ0FuZENhbGxiYWNrQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsg
Im1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKSwgKGludHB0cl90KSAoMCkgfSB9LApA
QCAtNjYzOCw2ICs2NjQwLDIyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQoCiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkQm9keT4oKnN0YXRlLCAibWV0aG9kV2l0aE9wdGlvbmFs
UmVjb3JkIik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2VCb2R5KEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK3sKKyAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBh
dXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIGF1dG8gcHJvbWlzZSA9IHN0
YXRlLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpID8gbnVsbHB0ciA6IGNvbnZlcnQ8SURMUHJv
bWlzZTxJRExWb2lkPj4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAg
aW1wbC5tZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKFdURk1vdmUocHJvbWlzZSkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxQcm9taXNlKEV4ZWNTdGF0ZSogc3RhdGUpCit7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsUHJvbWlzZUJvZHk+KCpzdGF0ZSwgIm1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UiKTsKK30K
Kwogc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnQm9keShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
LCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bAppbmRleCBiNDQ4NDk0MmM0MTZjMDU0MjExM2YzZmQ5ZDA0N2Y3ZGFjZjFjZTNiLi4wMzk2ZjY5
NmRmY2FjNzM0Mjk2YTBjMGZiNTVlNDM1ZDFlOWQyNjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0yMzksNiArMjM5LDcgQEAg
ZW51bSBUZXN0Q29uZmlkZW5jZSB7ICJoaWdoIiwgImtpbmRhLWxvdyIgfTsKICAgICB2b2lkICAg
IG1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbChvcHRpb25hbCBUZXN0T2Jq
PyBvYmogPSBudWxsKTsKICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNv
bHZlcihvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyKTsKICAgICB2b2lkICAgIG1l
dGhvZFdpdGhPcHRpb25hbFJlY29yZChvcHRpb25hbCByZWNvcmQ8RE9NU3RyaW5nLCBsb25nPj8g
cmVjb3JkID0gbnVsbCk7CisgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKG9w
dGlvbmFsIFByb21pc2U8dm9pZD4gcHJvbWlzZSk7CiAKICAgICAvLyBDYWxsYmFjayBpbnRlcmZh
Y2UgcGFyYW1ldGVycy4KICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0FyZyhUZXN0Q2Fs
bGJhY2tJbnRlcmZhY2UgY2FsbGJhY2spOwo=
</data>
<flag name="commit-queue"
          id="352117"
          type_id="3"
          status="-"
          setter="aestes"
    />
          </attachment>
      

    </bug>

</bugzilla>