<?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>151303</bug_id>
          
          <creation_ts>2015-11-16 02:00:57 -0800</creation_ts>
          <short_desc>WebRTC: Check type of this in RTCPeerConnection JS built-in functions</short_desc>
          <delta_ts>2016-06-16 23:23:41 -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 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>143211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Bergkvist">adam.bergkvist</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>agouaillard</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1142197</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2015-11-16 02:00:57 -0800</bug_when>
    <thetext>The JS built-in functions should throw if this isn&apos;t of type RTCPeerConnection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202672</commentid>
    <comment_count>1</comment_count>
      <attachid>281386</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-15 13:45:19 -0700</bug_when>
    <thetext>Created attachment 281386
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202685</commentid>
    <comment_count>2</comment_count>
      <attachid>281386</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-06-15 14:06:32 -0700</bug_when>
    <thetext>Comment on attachment 281386
Proposed patch

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

&gt; LayoutTests/fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html:9
&gt; +            description(&quot;Verify that the RTCPeerConnection JS built-in methods checks calling &apos;this&apos;&quot;);

Nit: &quot;checks&quot; -&gt; &quot;check&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202694</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-06-15 14:32:04 -0700</bug_when>
    <thetext>Would you be able to add 2 tests:
- Changing a RTCPeerConnection object prototype, then calling one of RTCPeerConnection function on the object.
- Setting an object to the RTCPeerConnection prototype and calling one of the methods.

Ideally we should not rely on the object prototype itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202883</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 00:17:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Would you be able to add 2 tests:
&gt; - Changing a RTCPeerConnection object prototype, then calling one of
&gt; RTCPeerConnection function on the object.
&gt; - Setting an object to the RTCPeerConnection prototype and calling one of
&gt; the methods.
&gt; 
&gt; Ideally we should not rely on the object prototype itself.

The current @isRTCPeerConnection() cannot deal with the cases you describe Youenn. My initial thinking is to add a JSBuiltinConstructor where I can initialize the @operations field and use that one as a probe. Right now the existence for @operations is checked before every use, so a JS built-in constructor would be useful anyhow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202888</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-06-16 01:01:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Would you be able to add 2 tests:
&gt; &gt; - Changing a RTCPeerConnection object prototype, then calling one of
&gt; &gt; RTCPeerConnection function on the object.
&gt; &gt; - Setting an object to the RTCPeerConnection prototype and calling one of
&gt; &gt; the methods.
&gt; &gt; 
&gt; &gt; Ideally we should not rely on the object prototype itself.
&gt; 
&gt; The current @isRTCPeerConnection() cannot deal with the cases you describe
&gt; Youenn. My initial thinking is to add a JSBuiltinConstructor where I can
&gt; initialize the @operations field and use that one as a probe. Right now the
&gt; existence for @operations is checked before every use, so a JS built-in
&gt; constructor would be useful anyhow.

That would probably cover the cases.

In the future we might want to make checks more uniform, for instance something like:
if (!(object instanceof @RTCPeerConnection))
   throw new @TypeError(...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202889</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 01:15:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; In the future we might want to make checks more uniform, for instance
&gt; something like:
&gt; if (!(object instanceof @RTCPeerConnection))
&gt;    throw new @TypeError(...)

That would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202892</commentid>
    <comment_count>7</comment_count>
      <attachid>281448</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 01:33:14 -0700</bug_when>
    <thetext>Created attachment 281448
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202893</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 01:34:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 281386 [details]
&gt; Proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281386&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html:9
&gt; &gt; +            description(&quot;Verify that the RTCPeerConnection JS built-in methods checks calling &apos;this&apos;&quot;);
&gt; 
&gt; Nit: &quot;checks&quot; -&gt; &quot;check&quot;

Fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202895</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 01:47:04 -0700</bug_when>
    <thetext>I would prefer to not add a JS built-in constructor in this change so I&apos;ve added expected failures that can be converted to passing tests when [1] is resolved. Which in turns depend on [2].

[1] https://bugs.webkit.org/show_bug.cgi?id=158831
[2] https://bugs.webkit.org/show_bug.cgi?id=158832</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202924</commentid>
    <comment_count>10</comment_count>
      <attachid>281448</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-06-16 08:10:04 -0700</bug_when>
    <thetext>Comment on attachment 281448
Updated patch

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

&gt; LayoutTests/fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html:52
&gt; +            window.successfullyParsed = true;

With testharness.js, these 10 lines would no longer be needed.

Promise-based test handling by testharness.js is really nice.
I would tend to use those here. You can have a look in fetch or streams tests.

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.js:38
&gt; +        return @Promise.@reject(new @TypeError(&quot;Function should be called on an RTCPeerConnection&quot;));

This message is consistent with other built-ins which is good.
But it is not with binding generated messages (something like &quot;Can only call RTCPeerConnection.createOffer on instances of RTCPeerConnection&quot;).

Maybe we should add something like @createBadThisFunctionError taking interface and function name as input to have the same messages in both places.

Or maybe making consistent is not all that important?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202957</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 10:50:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 281448 [details]
&gt; Updated patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281448&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html:52
&gt; &gt; +            window.successfullyParsed = true;
&gt; 
&gt; With testharness.js, these 10 lines would no longer be needed.
&gt; 
&gt; Promise-based test handling by testharness.js is really nice.
&gt; I would tend to use those here. You can have a look in fetch or streams
&gt; tests.

I might do that and see if we can contribute tests to the W3C test suite.

&gt; &gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.js:38
&gt; &gt; +        return @Promise.@reject(new @TypeError(&quot;Function should be called on an RTCPeerConnection&quot;));
&gt; 
&gt; This message is consistent with other built-ins which is good.
&gt; But it is not with binding generated messages (something like &quot;Can only call
&gt; RTCPeerConnection.createOffer on instances of RTCPeerConnection&quot;).
&gt; 
&gt; Maybe we should add something like @createBadThisFunctionError taking
&gt; interface and function name as input to have the same messages in both
&gt; places.
&gt; 
&gt; Or maybe making consistent is not all that important?

I think that&apos;s a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202958</commentid>
    <comment_count>12</comment_count>
      <attachid>281448</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 10:52:00 -0700</bug_when>
    <thetext>Comment on attachment 281448
Updated patch

Thanks for reviewing Youenn and Eric!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202962</commentid>
    <comment_count>13</comment_count>
      <attachid>281448</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-16 11:12:41 -0700</bug_when>
    <thetext>Comment on attachment 281448
Updated patch

Clearing flags on attachment: 281448

Committed r202130: &lt;http://trac.webkit.org/changeset/202130&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202963</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-16 11:12:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203223</commentid>
    <comment_count>15</comment_count>
    <who name="Alex. Gouaillard">agouaillard</who>
    <bug_when>2016-06-16 22:38:43 -0700</bug_when>
    <thetext>Adam, I am one of the maintainer of the w3c webrtc tests, so you can send the test my way for commit, I have access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203241</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-16 23:23:41 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Adam, I am one of the maintainer of the w3c webrtc tests, so you can send
&gt; the test my way for commit, I have access.

Got it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281386</attachid>
            <date>2016-06-15 13:45:19 -0700</date>
            <delta_ts>2016-06-16 01:33:14 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>pc-check-this_0.patch</filename>
            <type>text/plain</type>
            <size>8949</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZGNmNTkxLi5mYmI5YTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMDYt
MTUgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQ2hlY2sgdHlwZSBvZiB0aGlzIGluIFJUQ1BlZXJDb25uZWN0aW9uIEpTIGJ1
aWx0LWluIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxMzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVmVyaWZ5IHRoYXQgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIEpTIGJ1aWx0LWluIG1l
dGhvZHMgY2hlY2tzICd0aGlzJy4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tanMtYnVpbHQtaW5zLWNoZWNrLXRoaXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWpzLWJ1aWx0LWlu
cy1jaGVjay10aGlzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICBUaGUgbWFjIHBvcnQgZG9lcyBub3QgYnVpbGQgd2l0aCBXRUJf
UlRDIGVuYWJsZWQgeWV0LgorCiAyMDE2LTA2LTE0ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIEluY3JlYXNlIHRpbWVvdXRzIGZvciB1c2Vyc2NyaXB0cy93
aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMy5odG1sIHRvIGZpeCBmbGFraW5lc3Mu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWpzLWJ1aWx0LWlucy1jaGVjay10aGlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tanMtYnVpbHQtaW5zLWNoZWNrLXRoaXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkYTBlMzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLWpzLWJ1aWx0LWlucy1jaGVjay10aGlzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE2IEBACitWZXJpZnkgdGhhdCB0aGUgUlRDUGVlckNvbm5lY3Rpb24gSlMgYnVpbHQtaW4gbWV0
aG9kcyBjaGVja3MgY2FsbGluZyAndGhpcycKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcHJvbWlzZSB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuY3JlYXRl
T2ZmZXIuY2FsbCh7fSkgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IEZ1bmN0aW9uIHNob3VsZCBi
ZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK1BBU1MgcHJvbWlzZSB3ZWJraXRSVENQ
ZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuY3JlYXRlQW5zd2VyLmNhbGwoe30pIHJlamVjdGVkIHdp
dGggVHlwZUVycm9yOiBGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFuIFJUQ1BlZXJDb25u
ZWN0aW9uCitQQVNTIHByb21pc2Ugd2Via2l0UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLnNl
dExvY2FsRGVzY3JpcHRpb24uY2FsbCh7fSwgZGVzYykgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6
IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK1BBU1Mg
cHJvbWlzZSB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuc2V0UmVtb3RlRGVzY3Jp
cHRpb24uY2FsbCh7fSwgZGVzYykgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IEZ1bmN0aW9uIHNo
b3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK1BBU1MgcHJvbWlzZSB3ZWJr
aXRSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuYWRkSWNlQ2FuZGlkYXRlLmNhbGwoe30pIHJl
amVjdGVkIHdpdGggVHlwZUVycm9yOiBGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFuIFJU
Q1BlZXJDb25uZWN0aW9uCitQQVNTIHByb21pc2Ugd2Via2l0UlRDUGVlckNvbm5lY3Rpb24ucHJv
dG90eXBlLmdldFN0YXRzLmNhbGwoe30sIG51bGwpIHJlamVjdGVkIHdpdGggVHlwZUVycm9yOiBG
dW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFuIFJUQ1BlZXJDb25uZWN0aW9uCitQQVNTIEVu
ZCBvZiB0ZXN0IHByb21pc2UgY2hhaW4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWpzLWJ1aWx0LWlucy1jaGVjay10aGlzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWpzLWJ1aWx0LWlucy1j
aGVjay10aGlzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZhMmUz
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tanMtYnVpbHQtaW5zLWNoZWNrLXRoaXMuaHRtbApAQCAtMCwwICsxLDM3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9taXNlLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlv
bigiVmVyaWZ5IHRoYXQgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIEpTIGJ1aWx0LWluIG1ldGhvZHMg
Y2hlY2tzIGNhbGxpbmcgJ3RoaXMnIik7CisKKyAgICAgICAgICAgIGNvbnN0IGRlc2MgPSBuZXcg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHsgdHlwZTogIm9mZmVyIiwgc2RwOiAiZm9vIn0pOworICAg
ICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7IGNhbmRpZGF0
ZTogIiIsIHNkcE1pZDogImZvbyJ9KTsKKworICAgICAgICAgICAgY29uc3QgcmVhc29uID0gIlR5
cGVFcnJvcjogRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBSVENQZWVyQ29ubmVjdGlv
biI7CisKKyAgICAgICAgICAgIHByb21pc2VTaG91bGRSZWplY3QoIndlYmtpdFJUQ1BlZXJDb25u
ZWN0aW9uLnByb3RvdHlwZS5jcmVhdGVPZmZlci5jYWxsKHt9KSIsICJyZWFzb24iKQorICAgICAg
ICAgICAgLnRoZW4oKCkgPT4gcHJvbWlzZVNob3VsZFJlamVjdCgid2Via2l0UlRDUGVlckNvbm5l
Y3Rpb24ucHJvdG90eXBlLmNyZWF0ZUFuc3dlci5jYWxsKHt9KSIsICJyZWFzb24iKSkKKyAgICAg
ICAgICAgIC50aGVuKCgpID0+IHByb21pc2VTaG91bGRSZWplY3QoIndlYmtpdFJUQ1BlZXJDb25u
ZWN0aW9uLnByb3RvdHlwZS5zZXRMb2NhbERlc2NyaXB0aW9uLmNhbGwoe30sIGRlc2MpIiwgInJl
YXNvbiIpKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gcHJvbWlzZVNob3VsZFJlamVjdCgid2Vi
a2l0UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLnNldFJlbW90ZURlc2NyaXB0aW9uLmNhbGwo
e30sIGRlc2MpIiwgInJlYXNvbiIpKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gcHJvbWlzZVNo
b3VsZFJlamVjdCgid2Via2l0UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLmFkZEljZUNhbmRp
ZGF0ZS5jYWxsKHt9KSIsICJyZWFzb24iKSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHByb21p
c2VTaG91bGRSZWplY3QoIndlYmtpdFJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5nZXRTdGF0
cy5jYWxsKHt9LCBudWxsKSIsICJyZWFzb24iKSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJFbmQgb2YgdGVzdCBwcm9taXNlIGNoYWluIik7
CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KQorICAgICAg
ICAgICAgLmNhdGNoKGVycm9yID0+IHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJFcnJv
ciBpbiBwcm9taXNlIGNoYWluOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworCisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlYmNiMTlkLi4xNTMw
ZGZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTgz
LDYgKzE4Myw3IEBAIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRt
bAogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0c1NlbGVjdG9yLmh0bWwK
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhYmxlLmh0bWwKIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaHRtbAorZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1qcy1idWlsdC1pbnMtY2hlY2stdGhpcy5odG1sCiBmYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLWluc3BlY3Qtb2ZmZXIuaHRtbAogZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1hZGQtcmVtb3ZlVHJhY2suaHRtbAogZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay1yZXVzZS1zZW5kZXIuaHRtbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDU3NzExNGEuLjQzYTJlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNi0wNi0x
NSAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdrdmlzdEBlcmljc3Nvbi5jb20+CisKKyAgICAg
ICAgV2ViUlRDOiBDaGVjayB0eXBlIG9mIHRoaXMgaW4gUlRDUGVlckNvbm5lY3Rpb24gSlMgYnVp
bHQtaW4gZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTEzMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDaGVjayB0eXBlIG9mICd0aGlzJyBpbiBSVENQZWVyQ29ubmVjdGlvbiBKUyBidWls
dC1pbiBmdW5jdGlvbnMuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1qcy1idWlsdC1pbnMtY2hlY2stdGhpcy5odG1sCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzOgorICAgICAgICAoY3JlYXRlT2Zm
ZXIpOgorICAgICAgICAoY3JlYXRlQW5zd2VyKToKKyAgICAgICAgKHNldExvY2FsRGVzY3JpcHRp
b24pOgorICAgICAgICAoc2V0UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoYWRkSWNlQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKGdldFN0YXRzKToKKyAgICAgICAgUmVqZWN0IGlmICd0aGlzJyBp
c24ndCBvZiB0eXBlIFJUQ1BlZXJDb25uZWN0aW9uLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMuanM6CisgICAgICAgIChpc1JUQ1BlZXJD
b25uZWN0aW9uKToKKyAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbiB0byBwZXJmb3JtIHR5cGUg
Y2hlY2suCisKIDIwMTYtMDYtMTQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDIwNTcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5qcwppbmRleCBiMzY1NTljLi45Yjc4OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uanMKQEAgLTM0LDYgKzM0
LDkgQEAgZnVuY3Rpb24gY3JlYXRlT2ZmZXIoKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAorICAg
IGlmICghQGlzUlRDUGVlckNvbm5lY3Rpb24odGhpcykpCisgICAgICAgIHJldHVybiBAUHJvbWlz
ZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFu
IFJUQ1BlZXJDb25uZWN0aW9uIikpOworCiAgICAgY29uc3QgcGVlckNvbm5lY3Rpb24gPSB0aGlz
OwogCiAgICAgcmV0dXJuIEBjYWxsYmFja3NBbmREaWN0aW9uYXJ5T3ZlcmxvYWQoYXJndW1lbnRz
LCAiY3JlYXRlT2ZmZXIiLCBmdW5jdGlvbiAob3B0aW9ucykgewpAQCAtNTUsNiArNTgsOSBAQCBm
dW5jdGlvbiBjcmVhdGVBbnN3ZXIoKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAorICAgIGlmICgh
QGlzUlRDUGVlckNvbm5lY3Rpb24odGhpcykpCisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVq
ZWN0KG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFuIFJUQ1Bl
ZXJDb25uZWN0aW9uIikpOworCiAgICAgY29uc3QgcGVlckNvbm5lY3Rpb24gPSB0aGlzOwogCiAg
ICAgcmV0dXJuIEBjYWxsYmFja3NBbmREaWN0aW9uYXJ5T3ZlcmxvYWQoYXJndW1lbnRzLCAiY3Jl
YXRlQW5zd2VyIiwgZnVuY3Rpb24gKG9wdGlvbnMpIHsKQEAgLTc2LDYgKzgyLDkgQEAgZnVuY3Rp
b24gc2V0TG9jYWxEZXNjcmlwdGlvbigpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCisgICAgaWYg
KCFAaXNSVENQZWVyQ29ubmVjdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBQcm9taXNlLkBy
ZWplY3QobmV3IEBUeXBlRXJyb3IoIkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRD
UGVlckNvbm5lY3Rpb24iKSk7CisKICAgICBjb25zdCBwZWVyQ29ubmVjdGlvbiA9IHRoaXM7CiAK
ICAgICBjb25zdCBvYmplY3RJbmZvID0gewpAQCAtMTAyLDYgKzExMSw5IEBAIGZ1bmN0aW9uIHNl
dFJlbW90ZURlc2NyaXB0aW9uKCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKKyAgICBpZiAoIUBp
c1JUQ1BlZXJDb25uZWN0aW9uKHRoaXMpKQorICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVj
dChuZXcgQFR5cGVFcnJvcigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBSVENQZWVy
Q29ubmVjdGlvbiIpKTsKKwogICAgIGNvbnN0IHBlZXJDb25uZWN0aW9uID0gdGhpczsKIAogICAg
IGNvbnN0IG9iamVjdEluZm8gPSB7CkBAIC0xMjgsNiArMTQwLDkgQEAgZnVuY3Rpb24gYWRkSWNl
Q2FuZGlkYXRlKCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKKyAgICBpZiAoIUBpc1JUQ1BlZXJD
b25uZWN0aW9uKHRoaXMpKQorICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChuZXcgQFR5
cGVFcnJvcigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBSVENQZWVyQ29ubmVjdGlv
biIpKTsKKwogICAgIGNvbnN0IHBlZXJDb25uZWN0aW9uID0gdGhpczsKIAogICAgIGNvbnN0IG9i
amVjdEluZm8gPSB7CkBAIC0xNTQsNiArMTY5LDkgQEAgZnVuY3Rpb24gZ2V0U3RhdHMoKQogewog
ICAgICJ1c2Ugc3RyaWN0IjsKIAorICAgIGlmICghQGlzUlRDUGVlckNvbm5lY3Rpb24odGhpcykp
CisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJGdW5jdGlv
biBzaG91bGQgYmUgY2FsbGVkIG9uIGFuIFJUQ1BlZXJDb25uZWN0aW9uIikpOworCiAgICAgY29u
c3QgcGVlckNvbm5lY3Rpb24gPSB0aGlzOwogCiAgICAgY29uc3Qgb2JqZWN0SW5mbyA9IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb25JbnRlcm5hbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSW50ZXJuYWxzLmpzCmluZGV4IDg5ODIxMmEuLjNmOTMyNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b25JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbkludGVybmFscy5qcwpAQCAtMTI4LDMgKzEyOCwxMCBAQCBmdW5jdGlv
biBjYWxsYmFja3NBbmREaWN0aW9uYXJ5T3ZlcmxvYWQoYXJncywgZnVuY3Rpb25OYW1lLCBwcm9t
aXNlTW9kZSwgbGVnYWN5TQogCiAgICAgcmV0dXJuIGxlZ2FjeU1vZGUoc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrLCBhcmdzWzJdKTsKIH0KKworZnVuY3Rpb24gaXNSVENQZWVyQ29ubmVj
dGlvbihjb25uZWN0aW9uKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHJldHVybiBAaXNP
YmplY3QoY29ubmVjdGlvbikgJiYgISFjb25uZWN0aW9uLkBxdWV1ZWRDcmVhdGVPZmZlcjsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281448</attachid>
            <date>2016-06-16 01:33:14 -0700</date>
            <delta_ts>2016-06-16 11:12:41 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>pc-check-this_1.patch</filename>
            <type>text/plain</type>
            <size>12727</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZGNmNTkxLi5mOGY3MzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDYt
MTUgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQ2hlY2sgdHlwZSBvZiB0aGlzIGluIFJUQ1BlZXJDb25uZWN0aW9uIEpTIGJ1
aWx0LWluIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxMzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVmVyaWZ5IHRoYXQgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIEpTIGJ1aWx0LWluIG1l
dGhvZHMgY2hlY2tzICd0aGlzJy4gVGhlIHRlc3QgaGFzIGV4cGVjdGVkCisgICAgICAgIGZhaWx1
cmVzIChidWc6IGh0dHA6Ly93ZWJraXQub3JnL2IvMTU4ODMxKS4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tanMtYnVpbHQtaW5zLWNoZWNrLXRoaXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLWpzLWJ1aWx0LWlucy1jaGVjay10aGlzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBUaGUgbWFjIHBvcnQgZG9lcyBu
b3QgYnVpbGQgd2l0aCBXRUJfUlRDIGVuYWJsZWQgeWV0LgorCiAyMDE2LTA2LTE0ICBSeWFuIEhh
ZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIEluY3JlYXNlIHRpbWVvdXRz
IGZvciB1c2Vyc2NyaXB0cy93aW5kb3ctb25lcnJvci1mb3ItaXNvbGF0ZWQtd29ybGQtMy5odG1s
IHRvIGZpeCBmbGFraW5lc3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWpzLWJ1aWx0LWlucy1jaGVjay10aGlzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tanMtYnVp
bHQtaW5zLWNoZWNrLXRoaXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmY5YzM0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWpzLWJ1aWx0LWlucy1jaGVjay10aGlzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitWZXJpZnkgdGhhdCB0aGUgUlRDUGVlckNvbm5lY3Rp
b24gSlMgYnVpbHQtaW4gbWV0aG9kcyBjaGVjayBjYWxsaW5nICd0aGlzJworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwcm9taXNlIHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9u
LnByb3RvdHlwZS5jcmVhdGVPZmZlci5jYWxsKHt9KSByZWplY3RlZCB3aXRoIFR5cGVFcnJvcjog
RnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBSVENQZWVyQ29ubmVjdGlvbgorUEFTUyBw
cm9taXNlIHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jcmVhdGVBbnN3ZXIuY2Fs
bCh7fSkgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQg
b24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK1BBU1MgcHJvbWlzZSB3ZWJraXRSVENQZWVyQ29ubmVj
dGlvbi5wcm90b3R5cGUuc2V0TG9jYWxEZXNjcmlwdGlvbi5jYWxsKHt9KSByZWplY3RlZCB3aXRo
IFR5cGVFcnJvcjogRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBSVENQZWVyQ29ubmVj
dGlvbgorUEFTUyBwcm9taXNlIHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5zZXRS
ZW1vdGVEZXNjcmlwdGlvbi5jYWxsKHt9KSByZWplY3RlZCB3aXRoIFR5cGVFcnJvcjogRnVuY3Rp
b24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBSVENQZWVyQ29ubmVjdGlvbgorUEFTUyBwcm9taXNl
IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5hZGRJY2VDYW5kaWRhdGUuY2FsbCh7
fSkgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24g
YW4gUlRDUGVlckNvbm5lY3Rpb24KK1BBU1MgcHJvbWlzZSB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bi5wcm90b3R5cGUuZ2V0U3RhdHMuY2FsbCh7fSwgbnVsbCkgcmVqZWN0ZWQgd2l0aCBUeXBlRXJy
b3I6IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK0ZB
SUwgcHJvbWlzZSBvYmplY3RXaXRoUGNQcm90b3R5cGUuY3JlYXRlT2ZmZXIoKSByZWplY3RlZCB3
aXRoIFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBSVENQZWVyQ29ubmVjdGlvbi5xdWV1ZWRDcmVh
dGVPZmZlciBvbiBpbnN0YW5jZXMgb2YgUlRDUGVlckNvbm5lY3Rpb247IGV4cGVjdGVkIHJlYXNv
biBUeXBlRXJyb3I6IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5l
Y3Rpb24KK0ZBSUwgcHJvbWlzZSBvYmplY3RXaXRoUGNQcm90b3R5cGUuY3JlYXRlQW5zd2VyKCkg
cmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgUlRDUGVlckNvbm5lY3Rpb24u
cXVldWVkQ3JlYXRlQW5zd2VyIG9uIGluc3RhbmNlcyBvZiBSVENQZWVyQ29ubmVjdGlvbjsgZXhw
ZWN0ZWQgcmVhc29uIFR5cGVFcnJvcjogRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBS
VENQZWVyQ29ubmVjdGlvbgorRkFJTCBwcm9taXNlIG9iamVjdFdpdGhQY1Byb3RvdHlwZS5zZXRM
b2NhbERlc2NyaXB0aW9uKCkgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzOyBleHBlY3RlZCByZWFzb24gVHlwZUVycm9yOiBGdW5jdGlvbiBzaG91bGQgYmUgY2Fs
bGVkIG9uIGFuIFJUQ1BlZXJDb25uZWN0aW9uCitGQUlMIHByb21pc2Ugb2JqZWN0V2l0aFBjUHJv
dG90eXBlLnNldFJlbW90ZURlc2NyaXB0aW9uKCkgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzOyBleHBlY3RlZCByZWFzb24gVHlwZUVycm9yOiBGdW5jdGlvbiBz
aG91bGQgYmUgY2FsbGVkIG9uIGFuIFJUQ1BlZXJDb25uZWN0aW9uCitGQUlMIHByb21pc2Ugb2Jq
ZWN0V2l0aFBjUHJvdG90eXBlLmFkZEljZUNhbmRpZGF0ZSgpIHJlamVjdGVkIHdpdGggVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50czsgZXhwZWN0ZWQgcmVhc29uIFR5cGVFcnJvcjogRnVu
Y3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhbiBSVENQZWVyQ29ubmVjdGlvbgorRkFJTCBwcm9t
aXNlIG9iamVjdFdpdGhQY1Byb3RvdHlwZS5nZXRTdGF0cygpIHJlamVjdGVkIHdpdGggVHlwZUVy
cm9yOiBDYW4gb25seSBjYWxsIFJUQ1BlZXJDb25uZWN0aW9uLnByaXZhdGVHZXRTdGF0cyBvbiBp
bnN0YW5jZXMgb2YgUlRDUGVlckNvbm5lY3Rpb247IGV4cGVjdGVkIHJlYXNvbiBUeXBlRXJyb3I6
IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK0ZBSUwg
cHJvbWlzZSBwY1dpdGhFbXB0eVByb3RvdHlwZS5jcmVhdGVPZmZlcigpIGZ1bGZpbGxlZCB1bmV4
cGVjdGVkbHkuCitGQUlMIHByb21pc2UgcGNXaXRoRW1wdHlQcm90b3R5cGUuY3JlYXRlQW5zd2Vy
KCkgcmVqZWN0ZWQgd2l0aCBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24g
MTE7IGV4cGVjdGVkIHJlYXNvbiBUeXBlRXJyb3I6IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQg
b24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK0ZBSUwgcHJvbWlzZSBwY1dpdGhFbXB0eVByb3RvdHlw
ZS5zZXRMb2NhbERlc2NyaXB0aW9uKCkgcmVqZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzOyBleHBlY3RlZCByZWFzb24gVHlwZUVycm9yOiBGdW5jdGlvbiBzaG91bGQg
YmUgY2FsbGVkIG9uIGFuIFJUQ1BlZXJDb25uZWN0aW9uCitGQUlMIHByb21pc2UgcGNXaXRoRW1w
dHlQcm90b3R5cGUuc2V0UmVtb3RlRGVzY3JpcHRpb24oKSByZWplY3RlZCB3aXRoIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHM7IGV4cGVjdGVkIHJlYXNvbiBUeXBlRXJyb3I6IEZ1bmN0
aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK0ZBSUwgcHJvbWlz
ZSBwY1dpdGhFbXB0eVByb3RvdHlwZS5hZGRJY2VDYW5kaWRhdGUoKSByZWplY3RlZCB3aXRoIFR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHM7IGV4cGVjdGVkIHJlYXNvbiBUeXBlRXJyb3I6
IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24KK0ZBSUwg
cHJvbWlzZSBwY1dpdGhFbXB0eVByb3RvdHlwZS5nZXRTdGF0cygpIHJlamVjdGVkIHdpdGggRXJy
b3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDk7IGV4cGVjdGVkIHJlYXNvbiBU
eXBlRXJyb3I6IEZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rp
b24KK1BBU1MgRW5kIG9mIHRlc3QgcHJvbWlzZSBjaGFpbgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tanMtYnVpbHQtaW5zLWNoZWNrLXRoaXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tanMt
YnVpbHQtaW5zLWNoZWNrLXRoaXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wM2VjNjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1qcy1idWlsdC1pbnMtY2hlY2stdGhpcy5odG1sCkBAIC0w
LDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb21pc2UtdXRpbHMuanMiPjwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCB0aGUgUlRDUGVlckNvbm5lY3Rpb24gSlMgYnVpbHQt
aW4gbWV0aG9kcyBjaGVjayBjYWxsaW5nICd0aGlzJyIpOworCisgICAgICAgICAgICBjb25zdCBy
ZWFzb24gPSAiVHlwZUVycm9yOiBGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFuIFJUQ1Bl
ZXJDb25uZWN0aW9uIjsKKworICAgICAgICAgICAgZnVuY3Rpb24gRm9vKCkge30KKyAgICAgICAg
ICAgIEZvby5wcm90b3R5cGUgPSB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGU7Cisg
ICAgICAgICAgICBsZXQgb2JqZWN0V2l0aFBjUHJvdG90eXBlID0gbmV3IEZvbygpOworCisgICAg
ICAgICAgICB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUgPSB7fTsKKyAgICAgICAg
ICAgIGxldCBwY1dpdGhFbXB0eVByb3RvdHlwZSA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bih7aWNlU2VydmVyczpbe3VybHM6J3N0dW46Zm9vLmNvbSd9XX0pOworCisgICAgICAgICAgICBw
cm9taXNlU2hvdWxkUmVqZWN0KCJ3ZWJraXRSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuY3Jl
YXRlT2ZmZXIuY2FsbCh7fSkiLCAicmVhc29uIikKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHBy
b21pc2VTaG91bGRSZWplY3QoIndlYmtpdFJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jcmVh
dGVBbnN3ZXIuY2FsbCh7fSkiLCAicmVhc29uIikpCisgICAgICAgICAgICAudGhlbigoKSA9PiBw
cm9taXNlU2hvdWxkUmVqZWN0KCJ3ZWJraXRSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuc2V0
TG9jYWxEZXNjcmlwdGlvbi5jYWxsKHt9KSIsICJyZWFzb24iKSkKKyAgICAgICAgICAgIC50aGVu
KCgpID0+IHByb21pc2VTaG91bGRSZWplY3QoIndlYmtpdFJUQ1BlZXJDb25uZWN0aW9uLnByb3Rv
dHlwZS5zZXRSZW1vdGVEZXNjcmlwdGlvbi5jYWxsKHt9KSIsICJyZWFzb24iKSkKKyAgICAgICAg
ICAgIC50aGVuKCgpID0+IHByb21pc2VTaG91bGRSZWplY3QoIndlYmtpdFJUQ1BlZXJDb25uZWN0
aW9uLnByb3RvdHlwZS5hZGRJY2VDYW5kaWRhdGUuY2FsbCh7fSkiLCAicmVhc29uIikpCisgICAg
ICAgICAgICAudGhlbigoKSA9PiBwcm9taXNlU2hvdWxkUmVqZWN0KCJ3ZWJraXRSVENQZWVyQ29u
bmVjdGlvbi5wcm90b3R5cGUuZ2V0U3RhdHMuY2FsbCh7fSwgbnVsbCkiLCAicmVhc29uIikpCisK
KyAgICAgICAgICAgIC8vIFRlc3RzIGFyZSBleHBlY3RlZCB0byBmYWlsIGJlbG93IHRoaXMgcG9p
bnQ6IGh0dHA6Ly93ZWJraXQub3JnL2IvMTU4ODMxCisgICAgICAgICAgICAudGhlbigoKSA9PiBw
cm9taXNlU2hvdWxkUmVqZWN0KCJvYmplY3RXaXRoUGNQcm90b3R5cGUuY3JlYXRlT2ZmZXIoKSIs
ICJyZWFzb24iKSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHByb21pc2VTaG91bGRSZWplY3Qo
Im9iamVjdFdpdGhQY1Byb3RvdHlwZS5jcmVhdGVBbnN3ZXIoKSIsICJyZWFzb24iKSkKKyAgICAg
ICAgICAgIC50aGVuKCgpID0+IHByb21pc2VTaG91bGRSZWplY3QoIm9iamVjdFdpdGhQY1Byb3Rv
dHlwZS5zZXRMb2NhbERlc2NyaXB0aW9uKCkiLCAicmVhc29uIikpCisgICAgICAgICAgICAudGhl
bigoKSA9PiBwcm9taXNlU2hvdWxkUmVqZWN0KCJvYmplY3RXaXRoUGNQcm90b3R5cGUuc2V0UmVt
b3RlRGVzY3JpcHRpb24oKSIsICJyZWFzb24iKSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHBy
b21pc2VTaG91bGRSZWplY3QoIm9iamVjdFdpdGhQY1Byb3RvdHlwZS5hZGRJY2VDYW5kaWRhdGUo
KSIsICJyZWFzb24iKSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHByb21pc2VTaG91bGRSZWpl
Y3QoIm9iamVjdFdpdGhQY1Byb3RvdHlwZS5nZXRTdGF0cygpIiwgInJlYXNvbiIpKQorCisgICAg
ICAgICAgICAudGhlbigoKSA9PiBwcm9taXNlU2hvdWxkUmVqZWN0KCJwY1dpdGhFbXB0eVByb3Rv
dHlwZS5jcmVhdGVPZmZlcigpIiwgInJlYXNvbiIpKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4g
cHJvbWlzZVNob3VsZFJlamVjdCgicGNXaXRoRW1wdHlQcm90b3R5cGUuY3JlYXRlQW5zd2VyKCki
LCAicmVhc29uIikpCisgICAgICAgICAgICAudGhlbigoKSA9PiBwcm9taXNlU2hvdWxkUmVqZWN0
KCJwY1dpdGhFbXB0eVByb3RvdHlwZS5zZXRMb2NhbERlc2NyaXB0aW9uKCkiLCAicmVhc29uIikp
CisgICAgICAgICAgICAudGhlbigoKSA9PiBwcm9taXNlU2hvdWxkUmVqZWN0KCJwY1dpdGhFbXB0
eVByb3RvdHlwZS5zZXRSZW1vdGVEZXNjcmlwdGlvbigpIiwgInJlYXNvbiIpKQorICAgICAgICAg
ICAgLnRoZW4oKCkgPT4gcHJvbWlzZVNob3VsZFJlamVjdCgicGNXaXRoRW1wdHlQcm90b3R5cGUu
YWRkSWNlQ2FuZGlkYXRlKCkiLCAicmVhc29uIikpCisgICAgICAgICAgICAudGhlbigoKSA9PiBw
cm9taXNlU2hvdWxkUmVqZWN0KCJwY1dpdGhFbXB0eVByb3RvdHlwZS5nZXRTdGF0cygpIiwgInJl
YXNvbiIpKQorCisgICAgICAgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiRW5kIG9mIHRlc3QgcHJvbWlzZSBjaGFpbiIpOworICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC5jYXRjaChlcnJvciA9
PiB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXJyb3IgaW4gcHJvbWlzZSBjaGFpbjog
IiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAg
ICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworICAgICAgICA8L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWJjYjE5ZC4uMTUzMGRmZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4Myw2ICsxODMsNyBAQCBmYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHNTZWxlY3Rvci5odG1sCiBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXN0YWJsZS5odG1sCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmh0bWwKK2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tanMtYnVpbHQt
aW5zLWNoZWNrLXRoaXMuaHRtbAogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1p
bnNwZWN0LW9mZmVyLmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tYWRk
LXJlbW92ZVRyYWNrLmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tYWRk
VHJhY2stcmV1c2Utc2VuZGVyLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NzcxMTRhLi5hMGIzN2JlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTYtMDYtMTUgIEFkYW0gQmVyZ2t2aXN0ICA8
YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAgICAgIFdlYlJUQzogQ2hlY2sgdHlw
ZSBvZiB0aGlzIGluIFJUQ1BlZXJDb25uZWN0aW9uIEpTIGJ1aWx0LWluIGZ1bmN0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzAzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2sgdHlwZSBv
ZiAndGhpcycgaW4gUlRDUGVlckNvbm5lY3Rpb24gSlMgYnVpbHQtaW4gZnVuY3Rpb25zLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tanMtYnVpbHQt
aW5zLWNoZWNrLXRoaXMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5qczoKKyAgICAgICAgKGNyZWF0ZU9mZmVyKToKKyAgICAgICAgKGNyZWF0
ZUFuc3dlcik6CisgICAgICAgIChzZXRMb2NhbERlc2NyaXB0aW9uKToKKyAgICAgICAgKHNldFJl
bW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKGFkZEljZUNhbmRpZGF0ZSk6CisgICAgICAgIChn
ZXRTdGF0cyk6CisgICAgICAgIFJlamVjdCBpZiAndGhpcycgaXNuJ3Qgb2YgdHlwZSBSVENQZWVy
Q29ubmVjdGlvbi4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uSW50ZXJuYWxzLmpzOgorICAgICAgICAoaXNSVENQZWVyQ29ubmVjdGlvbik6CisgICAgICAg
IEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8gcGVyZm9ybSB0eXBlIGNoZWNrLiBOZWVkcyBmdXJ0aGVy
IHJvYnVzdGlmeWluZy4KKwogMjAxNi0wNi0xNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMjA1Ny4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmpzCmluZGV4IGIzNjU1OWMuLjliNzg4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uanMKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5qcwpAQCAt
MzQsNiArMzQsOSBAQCBmdW5jdGlvbiBjcmVhdGVPZmZlcigpCiB7CiAgICAgInVzZSBzdHJpY3Qi
OwogCisgICAgaWYgKCFAaXNSVENQZWVyQ29ubmVjdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJu
IEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoIkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxs
ZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24iKSk7CisKICAgICBjb25zdCBwZWVyQ29ubmVjdGlv
biA9IHRoaXM7CiAKICAgICByZXR1cm4gQGNhbGxiYWNrc0FuZERpY3Rpb25hcnlPdmVybG9hZChh
cmd1bWVudHMsICJjcmVhdGVPZmZlciIsIGZ1bmN0aW9uIChvcHRpb25zKSB7CkBAIC01NSw2ICs1
OCw5IEBAIGZ1bmN0aW9uIGNyZWF0ZUFuc3dlcigpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCisg
ICAgaWYgKCFAaXNSVENQZWVyQ29ubmVjdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBQcm9t
aXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoIkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24g
YW4gUlRDUGVlckNvbm5lY3Rpb24iKSk7CisKICAgICBjb25zdCBwZWVyQ29ubmVjdGlvbiA9IHRo
aXM7CiAKICAgICByZXR1cm4gQGNhbGxiYWNrc0FuZERpY3Rpb25hcnlPdmVybG9hZChhcmd1bWVu
dHMsICJjcmVhdGVBbnN3ZXIiLCBmdW5jdGlvbiAob3B0aW9ucykgewpAQCAtNzYsNiArODIsOSBA
QCBmdW5jdGlvbiBzZXRMb2NhbERlc2NyaXB0aW9uKCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAK
KyAgICBpZiAoIUBpc1JUQ1BlZXJDb25uZWN0aW9uKHRoaXMpKQorICAgICAgICByZXR1cm4gQFBy
b21pc2UuQHJlamVjdChuZXcgQFR5cGVFcnJvcigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBv
biBhbiBSVENQZWVyQ29ubmVjdGlvbiIpKTsKKwogICAgIGNvbnN0IHBlZXJDb25uZWN0aW9uID0g
dGhpczsKIAogICAgIGNvbnN0IG9iamVjdEluZm8gPSB7CkBAIC0xMDIsNiArMTExLDkgQEAgZnVu
Y3Rpb24gc2V0UmVtb3RlRGVzY3JpcHRpb24oKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAorICAg
IGlmICghQGlzUlRDUGVlckNvbm5lY3Rpb24odGhpcykpCisgICAgICAgIHJldHVybiBAUHJvbWlz
ZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFu
IFJUQ1BlZXJDb25uZWN0aW9uIikpOworCiAgICAgY29uc3QgcGVlckNvbm5lY3Rpb24gPSB0aGlz
OwogCiAgICAgY29uc3Qgb2JqZWN0SW5mbyA9IHsKQEAgLTEyOCw2ICsxNDAsOSBAQCBmdW5jdGlv
biBhZGRJY2VDYW5kaWRhdGUoKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAorICAgIGlmICghQGlz
UlRDUGVlckNvbm5lY3Rpb24odGhpcykpCisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0
KG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGFuIFJUQ1BlZXJD
b25uZWN0aW9uIikpOworCiAgICAgY29uc3QgcGVlckNvbm5lY3Rpb24gPSB0aGlzOwogCiAgICAg
Y29uc3Qgb2JqZWN0SW5mbyA9IHsKQEAgLTE1NCw2ICsxNjksOSBAQCBmdW5jdGlvbiBnZXRTdGF0
cygpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCisgICAgaWYgKCFAaXNSVENQZWVyQ29ubmVjdGlv
bih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3Io
IkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYW4gUlRDUGVlckNvbm5lY3Rpb24iKSk7CisK
ICAgICBjb25zdCBwZWVyQ29ubmVjdGlvbiA9IHRoaXM7CiAKICAgICBjb25zdCBvYmplY3RJbmZv
ID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbkludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHMuanMKaW5kZXggODk4MjEyYS4uYTVlMzIz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbkludGVybmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSW50ZXJuYWxzLmpzCkBAIC0xMjgsMyArMTI4LDExIEBA
IGZ1bmN0aW9uIGNhbGxiYWNrc0FuZERpY3Rpb25hcnlPdmVybG9hZChhcmdzLCBmdW5jdGlvbk5h
bWUsIHByb21pc2VNb2RlLCBsZWdhY3lNCiAKICAgICByZXR1cm4gbGVnYWN5TW9kZShzdWNjZXNz
Q2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGFyZ3NbMl0pOwogfQorCitmdW5jdGlvbiBpc1JUQ1Bl
ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24pCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgLy8g
RklYTUU6IFJvYnVzdGlmeSB0aGlzIGNoZWNrIChodHRwOi8vd2Via2l0Lm9yZy9iLzE1ODgzMSkK
KyAgICByZXR1cm4gQGlzT2JqZWN0KGNvbm5lY3Rpb24pICYmICEhY29ubmVjdGlvbi5AcXVldWVk
Q3JlYXRlT2ZmZXI7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>