<?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>170760</bug_id>
          
          <creation_ts>2017-04-11 18:51:58 -0700</creation_ts>
          <short_desc>Web Inspector: WebSockets: messages with non-latin letters are displayed incorrectly</short_desc>
          <delta_ts>2017-04-14 20:12:23 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>169175</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1296626</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-04-11 18:51:58 -0700</bug_when>
    <thetext>Steps:
1. Open Network tab.
2. Go to http://www.websocket.org/echo.html.
3. Click &quot;Connect&quot; button.
4. Type &quot;Привет Мир&quot; in the message field.
5. In the Network&apos;s tab left sidebar, select the newly created WebSocket connection.

Expected:
&quot;Привет Мир&quot; should be present in the message log.

Actual:
&quot;ÐÑÐ¸Ð²ÐµÑ ÐÐ¸Ñ&quot; is shown instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296628</commentid>
    <comment_count>1</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-04-11 19:11:45 -0700</bug_when>
    <thetext>I have a fix, it will be in a patch for Bug 169175 - Web Inspector: Add tests for webSocketFrameSent and webSocketFrameReceived.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297243</commentid>
    <comment_count>2</comment_count>
      <attachid>307063</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-04-13 18:13:03 -0700</bug_when>
    <thetext>Created attachment 307063
Patch

This patch should fix:
Bug 170609 - Web Inspector: WebSockets: Transferred size is incorrect
Bug 169175 - Web Inspector: Add tests for webSocketFrameSent and webSocketFrameReceived

Posting the patch here because I think this bug has the most user impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297245</commentid>
    <comment_count>3</comment_count>
      <attachid>307065</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-04-13 18:14:54 -0700</bug_when>
    <thetext>Created attachment 307065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297253</commentid>
    <comment_count>4</comment_count>
      <attachid>307065</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-13 18:35:18 -0700</bug_when>
    <thetext>Comment on attachment 307065
Patch

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

r=me

&gt; LayoutTests/http/tests/websocket/tests/hybi/inspector/binary-expected.txt:11
&gt; +PASS: Resource size should increase by 21 byte.

Typo: &quot;byte&quot; =&gt; &quot;bytes&quot;

&gt; LayoutTests/http/tests/websocket/tests/hybi/inspector/binary.html:55
&gt; +                resolve();
&gt; +                InspectorTest.evaluateInPage(&quot;closeWebSocketConnection()&quot;);

Nit: Flip these lines. resolve should be the last action performed on behave of this test, because what if it synchronously triggered the next test and then the evaluate in page happened with the next test.
Style: I suggest using template strings anytime we are creating a string of code (such as the values passed to evaluateInPage).

&gt; LayoutTests/http/tests/websocket/tests/hybi/inspector/send-and-receive.html:9
&gt; +    let webSocket = new WebSocket(&quot;ws://127.0.0.1:8880/websocket/tests/hybi/inspector/send-and-receive&quot;);

This could get garbage collected and never do anything, right? I&apos;d prefer if we assigned to a global to prevent any possible flakiness.

&gt; LayoutTests/http/tests/websocket/tests/hybi/inspector/send-and-receive.html:93
&gt; +&lt;p&gt;Tests sending and receiving WebSocket messages.&lt;/p&gt;

We should also test sending binary data. That is the one path not tested in these changes.

&gt; Source/WebInspectorUI/UserInterface/Models/WebSocketResource.js:76
&gt; +        if (typeof payloadLength === &quot;undefined&quot;)

Style: No need to typeof, you can just compare to undefined:

    if (payloadLength === undefined)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297619</commentid>
    <comment_count>5</comment_count>
      <attachid>307180</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-04-14 19:27:50 -0700</bug_when>
    <thetext>Created attachment 307180
Patch

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

&gt;&gt; LayoutTests/http/tests/websocket/tests/hybi/inspector/send-and-receive.html:9
&gt;&gt; +    let webSocket = new WebSocket(&quot;ws://127.0.0.1:8880/websocket/tests/hybi/inspector/send-and-receive&quot;);
&gt; 
&gt; This could get garbage collected and never do anything, right? I&apos;d prefer if we assigned to a global to prevent any possible flakiness.

It hasn&apos;t been the case for me, but I made it global just in case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297625</commentid>
    <comment_count>6</comment_count>
      <attachid>307180</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-14 20:12:22 -0700</bug_when>
    <thetext>Comment on attachment 307180
Patch

Clearing flags on attachment: 307180

Committed r215388: &lt;http://trac.webkit.org/changeset/215388&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297626</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-14 20:12:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307063</attachid>
            <date>2017-04-13 18:13:03 -0700</date>
            <delta_ts>2017-04-13 18:15:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>22693</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMzMwMDQxLi5iNjkwOGFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTctMDQt
MTMgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogV2ViU29ja2V0czogbWVzc2FnZXMgd2l0aCBub24tbGF0aW4gbGV0dGVycyBh
cmUgZGlzcGxheWVkIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA3NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0IHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0ZXh0IGFuZCBiaW5h
cnkgKGJsb2IgYW5kIGFycmF5IGJ1ZmZlcikgZGF0YS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2JpbmFyeS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2Jp
bmFyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3Rvci9iaW5hcnlfd3NoLnB5OiBBZGRlZC4KKyAgICAgICAgKHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKToKKyAgICAgICAgKHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSk6
CisgICAgICAgIChhbGxfZGlzdGluY3RfYnl0ZXMpOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3Bl
Y3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmVfd3NoLnB5OiBB
ZGRlZC4KKyAgICAgICAgKHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKToKKyAgICAgICAg
KHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSk6CisKIDIwMTctMDQtMTEgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dFRlc3Qgd2VicnRjL3ZpZGVvLW11
dGUuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2JpbmFyeS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9i
aW5hcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJj
ODNhZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDgg
QEAKK1Rlc3RzIHJlY2VpdmluZyBiaW5hcnkgZGF0YS4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IFdlYlNvY2tldC5CaW5hcnkKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXZWJTb2NrZXQuQmlu
YXJ5QmxvYgorUEFTUzogUmVzb3VyY2UgaXplIHNob3VsZCBiZSAxMyBieXRlcy4KK1BBU1M6IEZy
YW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4K
K1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHNob3VsZCBoYXZl
IHdhbGx0aW1lLgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgaW5jcmVhc2UgYnkgMjEgYnl0
ZS4KK1BBU1M6IEZyYW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxk
IGJlIGJpbmFyeS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1l
IHdhbGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4KK1BBU1M6
IFJlc291cmNlIHNpemUgc2hvdWxkIG5vdCBpbmNyZWFzZS4KK1BBU1M6IEZyYW1lIHNob3VsZCBu
b3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6IEZyYW1l
IHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBncmVh
dGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4KK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxkIGlu
Y3JlYXNlIGJ5IDI1NiBieXRlcy4KK1BBU1M6IEZyYW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgor
UEFTUzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNv
bWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHBy
ZXZpb3VzIG9uZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdlYlNvY2tldC5BcnJheUJ1ZmZl
cgorUEFTUzogUmVzb3VyY2UgaXplIHNob3VsZCBiZSAxMyBieXRlcy4KK1BBU1M6IEZyYW1lIHNo
b3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6
IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHNob3VsZCBoYXZlIHdhbGx0
aW1lLgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgaW5jcmVhc2UgYnkgMjEgYnl0ZS4KK1BB
U1M6IEZyYW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGJp
bmFyeS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0
aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4KK1BBU1M6IFJlc291
cmNlIHNpemUgc2hvdWxkIG5vdCBpbmNyZWFzZS4KK1BBU1M6IEZyYW1lIHNob3VsZCBub3QgaGF2
ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6IEZyYW1lIHNob3Vs
ZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRo
YW4gdGhlIHByZXZpb3VzIG9uZS4KK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxkIGluY3JlYXNl
IGJ5IDI1NiBieXRlcy4KK1BBU1M6IEZyYW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzog
RnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4K
K1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3Vz
IG9uZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9pbnNwZWN0b3IvYmluYXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zMDA3NTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3IvYmluYXJ5Lmh0bWwK
QEAgLTAsMCArMSwxMDEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisvLyBHbG9iYWwg
dmFyaWFibGUgdG8ga2VlcCBpdCBhbGl2ZS4KK2xldCB3ZWJTb2NrZXQgPSBudWxsOworCitmdW5j
dGlvbiBjcmVhdGVXZWJTb2NrZXRDb25uZWN0aW9uKGJpbmFyeVR5cGUpCit7CisgICAgY2xvc2VX
ZWJTb2NrZXRDb25uZWN0aW9uKCk7CisgICAgd2ViU29ja2V0ID0gbmV3IFdlYlNvY2tldCgid3M6
Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3IvYmluYXJ5Iik7
CisgICAgd2ViU29ja2V0LmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOworfQorCitmdW5jdGlvbiBj
bG9zZVdlYlNvY2tldENvbm5lY3Rpb24oKQoreworICAgIGlmICghd2ViU29ja2V0KQorICAgICAg
ICByZXR1cm47CisKKyAgICB3ZWJTb2NrZXQuY2xvc2UoKTsKKyAgICB3ZWJTb2NrZXQgPSBudWxs
OworfQorCisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRl
c3QuY3JlYXRlQXN5bmNTdWl0ZSgiV2ViU29ja2V0LkJpbmFyeSIpOworCisgICAgZnVuY3Rpb24g
cmVzb3VyY2VXYXNBZGRlZChyZXNvbHZlLCByZWplY3QsIGV2ZW50KSB7CisgICAgICAgIGxldCBm
cmFtZUFkZGVkQ291bnQgPSAwOworICAgICAgICBsZXQgbGFzdE1lc3NhZ2VXYWxsdGltZTsKKyAg
ICAgICAgbGV0IHJlc291cmNlID0gZXZlbnQuZGF0YS5yZXNvdXJjZTsKKworICAgICAgICByZXNv
dXJjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5FdmVu
dC5GcmFtZUFkZGVkLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgbGV0IGZyYW1lID0g
ZXZlbnQuZGF0YTsKKyAgICAgICAgICAgIGZyYW1lQWRkZWRDb3VudCsrOworCisgICAgICAgICAg
ICBpZiAoZnJhbWVBZGRlZENvdW50IDw9IDQpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKGZyYW1lLmRhdGEsIG51bGwsICJGcmFtZSBzaG91bGQgbm90IGhhdmUg
ZGF0YS4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGZyYW1l
Lm9wY29kZSwgV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29kZXMuQmluYXJ5RnJh
bWUsICJGcmFtZSBzaG91bGQgYmUgYmluYXJ5LiIpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdCghZnJhbWUuaXNPdXRnb2luZywgIkZyYW1lIHNob3VsZCBiZSBpbmNv
bWluZy4iKTsKKworICAgICAgICAgICAgICAgIGlmIChmcmFtZUFkZGVkQ291bnQgPT09IDEpCisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCh0eXBlb2YgZnJhbWUu
d2FsbHRpbWUgPT09ICJudW1iZXIiLCAiRnJhbWUgc2hvdWxkIGhhdmUgd2FsbHRpbWUuIik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQoZnJhbWUud2FsbHRpbWUgPiBsYXN0TWVzc2FnZVdhbGx0aW1lLCAiRnJhbWUgd2Fs
bHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLiIpOworCisgICAg
ICAgICAgICAgICAgbGFzdE1lc3NhZ2VXYWxsdGltZSA9IGZyYW1lLndhbGx0aW1lOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAoZnJhbWVBZGRlZENvdW50ID09PSA0KSB7CisgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImNsb3NlV2ViU29ja2V0Q29ubmVjdGlvbigpIik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0pOworCisgICAgICAgIGxldCBzaXplRGlkQ2hhbmdlQ291bnQgPSAwOworCisg
ICAgICAgIHJlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlLkV2
ZW50LlNpemVEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBzaXplRGlk
Q2hhbmdlQ291bnQrKzsKKworICAgICAgICAgICAgaWYgKHNpemVEaWRDaGFuZ2VDb3VudCA9PT0g
MSkKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRoaXMuc2l6ZSwg
MTMsICJSZXNvdXJjZSBpemUgc2hvdWxkIGJlIDEzIGJ5dGVzLiIpOworICAgICAgICAgICAgZWxz
ZSBpZiAoc2l6ZURpZENoYW5nZUNvdW50ID09PSAyKQorICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwodGhpcy5zaXplLCAxMyArIDIxLCAiUmVzb3VyY2Ugc2l6ZSBzaG91
bGQgaW5jcmVhc2UgYnkgMjEgYnl0ZS4iKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNpemVEaWRD
aGFuZ2VDb3VudCA9PT0gMykKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKHRoaXMuc2l6ZSwgMTMgKyAyMSwgIlJlc291cmNlIHNpemUgc2hvdWxkIG5vdCBpbmNyZWFz
ZS4iKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNpemVEaWRDaGFuZ2VDb3VudCA9PT0gNCkKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRoaXMuc2l6ZSwgMTMgKyAy
MSArIDI1NiwgIlJlc291cmNlIHNpemUgc2hvdWxkIGluY3JlYXNlIGJ5IDI1NiBieXRlcy4iKTsK
KworICAgICAgICB9LCByZXNvdXJjZSk7CisgICAgfQorCisgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiV2ViU29ja2V0LkJpbmFyeUJsb2IiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIlNob3VsZCByZWNlaXZlIGJpbmFyeSBibG9iIFdlYlNvY2tldCBtZXNzYWdlcy4iLAor
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LkZyYW1lLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5S
ZXNvdXJjZVdhc0FkZGVkLCByZXNvdXJjZVdhc0FkZGVkLmJpbmQobnVsbCwgcmVzb2x2ZSwgcmVq
ZWN0KSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVX
ZWJTb2NrZXRDb25uZWN0aW9uKCJibG9iIilgKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiV2ViU29ja2V0LkFycmF5QnVmZmVy
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmVjZWl2ZSBBcnJheUJ1ZmZlciBXZWJT
b2NrZXQgbWVzc2FnZXMuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5GcmFtZS5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRnJhbWUuRXZlbnQuUmVzb3VyY2VXYXNBZGRlZCwgcmVzb3VyY2VXYXNBZGRlZC5iaW5k
KG51bGwsIHJlc29sdmUsIHJlamVjdCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShgY3JlYXRlV2ViU29ja2V0Q29ubmVjdGlvbigiYXJyYXlidWZmZXIiKWApOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dHMgcmVjZWl2aW5nIGJpbmFyeSBkYXRhLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9y
L2JpbmFyeV93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3Rvci9iaW5hcnlfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjcwOTY3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnlfd3NoLnB5CkBAIC0wLDAgKzEs
MTggQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBzdHJlYW0KKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hh
a2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEo
cmVxdWVzdCk6CisgICAgbWVzc2FnZXNfdG9fc2VuZCA9IFsnSGVsbG8sIHdvcmxkIScsICfQn9GA
0LjQstC10YIsINCc0LjRgCEnLCAnJywgYWxsX2Rpc3RpbmN0X2J5dGVzKCldCisgICAgZm9yIG1l
c3NhZ2UgaW4gbWVzc2FnZXNfdG9fc2VuZDoKKyAgICAgICAgIyBGSVhNRTogU2hvdWxkIHVzZSBi
ZXR0ZXIgQVBJIHRvIHNlbmQgYmluYXJ5IG1lc3NhZ2VzIHdoZW4gcHl3ZWJzb2NrZXQgc3VwcG9y
dHMgaXQuCisgICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVyKGNvbW1vbi5PUENP
REVfQklOQVJZLCBsZW4obWVzc2FnZSksIDEsIDAsIDAsIDAsIDApCisgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0ZShoZWFkZXIgKyBtZXNzYWdlKQorCisKK2RlZiBhbGxfZGlzdGluY3Rf
Ynl0ZXMoKToKKyAgICByZXR1cm4gJycuam9pbihbY2hyKGkpIGZvciBpIGluIHhyYW5nZSgyNTYp
XSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhOWNj
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjIgQEAKK1Rlc3RzIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBXZWJTb2NrZXQgbWVzc2FnZXMu
CisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBXZWJTb2NrZXQuU2VuZEFuZFJlY2VpdmUKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBTZW5kQW5kUmVjZWl2ZQorUEFTUzogUmVzb3VyY2Ugc2l6ZSBz
aG91bGQgYmUgMzMgYnl0ZXMuCitQQVNTOiBGcmFtZSBkYXRhIHNob3VsZCBiZSAnSGVsbG8gV29y
bGQhINCf0YDQuNCy0LXRgiDQnNC40YAhJworUEFTUzogRnJhbWUgc2hvdWxkIGJlIHRleHQuCitQ
QVNTOiBGcmFtZSBzaG91bGQgYmUgb3V0Z29pbmcuCitQQVNTOiBNZXNzYWdlIGlzIHdhbGx0aW1l
LgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgZG91YmxlLgorUEFTUzogRnJhbWUgZGF0YSBz
aG91bGQgYmUgJ0hlbGxvIFdvcmxkISDQn9GA0LjQstC10YIg0JzQuNGAIScKK1BBU1M6IEZyYW1l
IHNob3VsZCBiZSB0ZXh0LgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGluY29taW5nLgorUEFTUzog
RnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLgor
UEFTUzogRnJhbWUgc2hvdWxkIGNsb3NlIGNvbm5lY3Rpb24uCitQQVNTOiBGcmFtZSBzaG91bGQg
YmUgb3V0Z29pbmcuCitQQVNTOiBGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFu
IHRoZSBwcmV2aW91cyBvbmUuCitQQVNTOiBGcmFtZSBzaG91bGQgY2xvc2UgY29ubmVjdGlvbi4K
K1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNo
b3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1h
bmQtcmVjZWl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmE1M2VmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZl
Lmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGNyZWF0ZVdlYlNvY2tldENvbm5lY3Rpb24oKQoreworICAgIGxldCB3ZWJTb2NrZXQgPSBu
ZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2lu
c3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlIik7CisKKyAgICB3ZWJTb2NrZXQub25vcGVuID0gZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgd2ViU29ja2V0LnNlbmQoIkhlbGxvIFdvcmxkISDQn9GA
0LjQstC10YIg0JzQuNGAISIpOworICAgIH07CisKKyAgICB3ZWJTb2NrZXQub25tZXNzYWdlID0g
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgd2ViU29ja2V0LmNsb3NlKCk7CisgICAgfTsKK30K
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJXZWJTb2NrZXQuU2VuZEFuZFJlY2VpdmUiKTsKKworICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlNlbmRBbmRSZWNlaXZlIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJTaG91bGQgc2VuZCBhbmQgcmVjZWl2ZSB0ZXh0IGZyYW1lcy4iLAorICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkZyYW1l
LnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5SZXNvdXJj
ZVdhc0FkZGVkLCBmdW5jdGlvbihldmVudCkgeworCisgICAgICAgICAgICAgICAgbGV0IGZyYW1l
QWRkZWRDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgbGV0IGxhc3RNZXNzYWdlV2FsbHRpbWU7
CisgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gZXZlbnQuZGF0YS5yZXNvdXJjZTsKKwor
ICAgICAgICAgICAgICAgIHJlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldl
YlNvY2tldFJlc291cmNlLkV2ZW50LkZyYW1lQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgICAgICAgICAgICAgIGxldCBmcmFtZSA9IGV2ZW50LmRhdGE7CisgICAgICAgICAgICAgICAg
ICAgIGZyYW1lQWRkZWRDb3VudCsrOworCisgICAgICAgICAgICAgICAgICAgIGlmIChmcmFtZUFk
ZGVkQ291bnQgPT09IDEpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChmcmFtZS5kYXRhLCAiSGVsbG8gV29ybGQhINCf0YDQuNCy0LXRgiDQnNC4
0YAhIiwgIkZyYW1lIGRhdGEgc2hvdWxkIGJlICdIZWxsbyBXb3JsZCEg0J/RgNC40LLQtdGCINCc
0LjRgCEnIik7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKGZyYW1lLm9wY29kZSwgV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29kZXMu
VGV4dEZyYW1lLCAiRnJhbWUgc2hvdWxkIGJlIHRleHQuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZnJhbWUuaXNPdXRnb2luZywgIkZyYW1lIHNo
b3VsZCBiZSBvdXRnb2luZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCh0eXBlb2YgZnJhbWUud2FsbHRpbWUgPT09ICJudW1iZXIiLCAiTWVzc2Fn
ZSBpcyB3YWxsdGltZS4iKTsKKworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZyYW1l
QWRkZWRDb3VudCA9PT0gMikgeworCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKGZyYW1lLmRhdGEsICJIZWxsbyBXb3JsZCEg0J/RgNC40LLQtdGCINCc
0LjRgCEiLCAiRnJhbWUgZGF0YSBzaG91bGQgYmUgJ0hlbGxvIFdvcmxkISDQn9GA0LjQstC10YIg
0JzQuNGAISciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
RXF1YWwoZnJhbWUub3Bjb2RlLCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BDb2Rl
cy5UZXh0RnJhbWUsICJGcmFtZSBzaG91bGQgYmUgdGV4dC4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghZnJhbWUuaXNPdXRnb2luZywgIkZyYW1l
IHNob3VsZCBiZSBpbmNvbWluZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChmcmFtZS53YWxsdGltZSA+IGxhc3RNZXNzYWdlV2FsbHRpbWUsICJG
cmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUuIik7
CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmcmFtZUFkZGVkQ291bnQgPT09IDMp
IHsKKworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChm
cmFtZS5vcGNvZGUsIFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5PcENvZGVzLkNvbm5l
Y3Rpb25DbG9zZUZyYW1lLCAiRnJhbWUgc2hvdWxkIGNsb3NlIGNvbm5lY3Rpb24uIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZnJhbWUuaXNPdXRn
b2luZywgIkZyYW1lIHNob3VsZCBiZSBvdXRnb2luZy4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChmcmFtZS53YWxsdGltZSA+IGxhc3RNZXNzYWdl
V2FsbHRpbWUsICJGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2
aW91cyBvbmUuIik7CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmcmFtZUFkZGVk
Q291bnQgPT09IDQpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChmcmFtZS5vcGNvZGUsIFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5P
cENvZGVzLkNvbm5lY3Rpb25DbG9zZUZyYW1lLCAiRnJhbWUgc2hvdWxkIGNsb3NlIGNvbm5lY3Rp
b24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
IWZyYW1lLmlzT3V0Z29pbmcsICJGcmFtZSBzaG91bGQgYmUgaW5jb21pbmcuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZnJhbWUud2FsbHRpbWUg
PiBsYXN0TWVzc2FnZVdhbGx0aW1lLCAiRnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIg
dGhhbiB0aGUgcHJldmlvdXMgb25lLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbGFzdE1l
c3NhZ2VXYWxsdGltZSA9IGZyYW1lLndhbGx0aW1lOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICAgICAgbGV0IHNpemVEaWRDaGFuZ2VDb3VudCA9IDA7CisKKyAgICAgICAgICAg
ICAgICByZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5FdmVu
dC5TaXplRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAgICAgICBz
aXplRGlkQ2hhbmdlQ291bnQrKzsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZURpZENo
YW5nZUNvdW50ID09PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbCh0aGlzLnNpemUsIDMzLCAiUmVzb3VyY2Ugc2l6ZSBzaG91bGQgYmUgMzMgYnl0
ZXMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNpemVEaWRDaGFuZ2VDb3VudCA9
PT0gMikKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
dGhpcy5zaXplLCAzMyAqIDIsICJSZXNvdXJjZSBzaXplIHNob3VsZCBkb3VibGUuIik7CisKKyAg
ICAgICAgICAgICAgICB9LCByZXNvdXJjZSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY3JlYXRlV2ViU29ja2V0Q29ubmVjdGlv
bigpIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8cD5UZXN0cyBzZW5kaW5nIGFuZCByZWNlaXZpbmcgV2ViU29ja2V0IG1lc3NhZ2VzLjwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmVfd3NoLnB5IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1h
bmQtcmVjZWl2ZV93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNm
MWNhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmVfd3NoLnB5CkBAIC0wLDAgKzEs
MTEgQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCisKKworZGVmIHdlYl9z
b2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIHBhc3MgIyBBbHdheXMgYWNj
ZXB0LgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgIyBF
Y2hvIG1lc3NhZ2UgYmFjaworICAgIG1lc3NhZ2UgPSBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShy
ZXF1ZXN0KQorICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIG1lc3NhZ2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwppbmRleCA2OTJjOWYwLi5jYmRhZGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wNC0xMyAgTmlraXRhIFZhc2lseWV2ICA8
bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBXZWJTb2NrZXRz
OiBtZXNzYWdlcyB3aXRoIG5vbi1sYXRpbiBsZXR0ZXJzIGFyZSBkaXNwbGF5ZWQgaW5jb3JyZWN0
bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDc2
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBw
YXlsb2FkTGVuZ3RoIHByb3BlcnR5LCB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgc2l6ZS4gV2hl
biBwYXlsb2FkTGVuZ3RoIGlzIHVuYXZhaWxhYmxlLAorICAgICAgICBpdCBpcyBjYWxjdWxhdGVk
IGZyb20gcGF5bG9hZERhdGEgYnkgV2ViIEluc3BlY3RvciBmcm9udGVuZC4KKworICAgICAgICBU
aGlzIGZpeGVzIDx3ZWJraXQub3JnL2IvMTcwNjA5PiBXZWIgSW5zcGVjdG9yOiBXZWJTb2NrZXRz
OiBUcmFuc2ZlcnJlZCBzaXplIGlzIGluY29ycmVjdC4KKworICAgICAgICAqIGluc3BlY3Rvci9w
cm90b2NvbC9OZXR3b3JrLmpzb246CisKIDIwMTctMDQtMTEgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgb3V0ZGF0ZWQgV3JpdGFibGVTdHJlYW0gQVBJ
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05l
dHdvcmsuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCmluZGV4IGViNTQ1YWEuLjI3ZGI5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCkBAIC0xMTMsNyAr
MTEzLDggQEAKICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib3Bjb2RlIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIldlYlNv
Y2tldCBmcmFtZSBvcGNvZGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWFzayIs
ICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiV2ViU29ja2V0IGZyYW1lIG1hc2su
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGF5bG9hZERhdGEiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiV2ViU29ja2V0IGZyYW1lIHBheWxvYWQgZGF0YS4iIH0K
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBheWxvYWREYXRhIiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIldlYlNvY2tldCBmcmFtZSBwYXlsb2FkIGRhdGEuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicGF5bG9hZExlbmd0aCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJXZWJTb2NrZXQgZnJhbWUgcGF5bG9hZCBsZW5ndGggaW4gYnl0ZXMu
IiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBh
MGZiNzk0Li4zY2VhNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDQtMTMg
IE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogV2ViU29ja2V0czogbWVzc2FnZXMgd2l0aCBub24tbGF0aW4gbGV0dGVycyBhcmUg
ZGlzcGxheWVkIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA3NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgcGF5bG9hZExlbmd0aCBwcm9wZXJ0eSwgd2hpY2ggaXMgdXNlZCB0
byBkaXNwbGF5IHNpemUuIFdoZW4gcGF5bG9hZExlbmd0aCBpcyB1bmF2YWlsYWJsZSwKKyAgICAg
ICAgaXQgaXMgY2FsY3VsYXRlZCBmcm9tIHBheWxvYWREYXRhIGJ5IFdlYiBJbnNwZWN0b3IgZnJv
bnRlbmQuCisKKyAgICAgICAgVGhpcyBmaXhlcyA8d2Via2l0Lm9yZy9iLzE3MDYwOT4gV2ViIElu
c3BlY3RvcjogV2ViU29ja2V0czogVHJhbnNmZXJyZWQgc2l6ZSBpcyBpbmNvcnJlY3QuCisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2Jp
bmFyeS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0
d29ya0FnZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yTmV0d29ya0FnZW50OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUpOgorCiAyMDE3LTA0
LTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVy
biBNZWRpYSBDb250cm9sc10gQWxsb3cgbW9kZXJuLW1lZGlhLWNvbnRyb2xzIHRvIGJlIHByb3Zp
ZGVkIHRocm91Z2ggV2ViS2l0QWRkaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDUwYTliOTkuLmZkNmE5NDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwCkBAIC02MTEsNyArNjExLDggQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZFJl
Y2VpdmVXZWJTb2NrZXRGcmFtZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGMKICAgICBhdXRv
IGZyYW1lT2JqZWN0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0d29yazo6V2ViU29ja2V0RnJh
bWU6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRPcGNvZGUoZnJhbWUub3BDb2RlKQogICAgICAgICAu
c2V0TWFzayhmcmFtZS5tYXNrZWQpCi0gICAgICAgIC5zZXRQYXlsb2FkRGF0YShTdHJpbmcoZnJh
bWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkpCisgICAgICAgIC5zZXRQYXlsb2FkRGF0
YShTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKGZyYW1lLnBheWxvYWQsIGZyYW1l
LnBheWxvYWRMZW5ndGgpKQorICAgICAgICAuc2V0UGF5bG9hZExlbmd0aChmcmFtZS5wYXlsb2Fk
TGVuZ3RoKQogICAgICAgICAucmVsZWFzZSgpOwogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT53
ZWJTb2NrZXRGcmFtZVJlY2VpdmVkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50
aWZpZXIpLCB0aW1lc3RhbXAoKSwgV1RGTW92ZShmcmFtZU9iamVjdCkpOwogfQpAQCAtNjIxLDcg
KzYyMiw4IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjpkaWRTZW5kV2ViU29ja2V0RnJh
bWUodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zCiAgICAgYXV0byBmcmFtZU9iamVjdCA9
IEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OldlYlNvY2tldEZyYW1lOjpjcmVhdGUoKQog
ICAgICAgICAuc2V0T3Bjb2RlKGZyYW1lLm9wQ29kZSkKICAgICAgICAgLnNldE1hc2soZnJhbWUu
bWFza2VkKQotICAgICAgICAuc2V0UGF5bG9hZERhdGEoU3RyaW5nKGZyYW1lLnBheWxvYWQsIGZy
YW1lLnBheWxvYWRMZW5ndGgpKQorICAgICAgICAuc2V0UGF5bG9hZERhdGEoU3RyaW5nOjpmcm9t
VVRGOFdpdGhMYXRpbjFGYWxsYmFjayhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3Ro
KSkKKyAgICAgICAgLnNldFBheWxvYWRMZW5ndGgoZnJhbWUucGF5bG9hZExlbmd0aCkKICAgICAg
ICAgLnJlbGVhc2UoKTsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d2ViU29ja2V0RnJhbWVT
ZW50KElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCB0aW1lc3RhbXAo
KSwgV1RGTW92ZShmcmFtZU9iamVjdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXgg
ZWYxNmIwNC4uNTI2MGRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTctMDQtMTMgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogV2ViU29ja2V0czogbWVzc2FnZXMgd2l0aCBub24tbGF0
aW4gbGV0dGVycyBhcmUgZGlzcGxheWVkIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA3NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGF5bG9hZExlbmd0aCBwcm9wZXJ0eSwg
d2hpY2ggaXMgdXNlZCB0byBkaXNwbGF5IHNpemUuIFdoZW4gcGF5bG9hZExlbmd0aCBpcyB1bmF2
YWlsYWJsZSwKKyAgICAgICAgaXQgaXMgY2FsY3VsYXRlZCBmcm9tIHBheWxvYWREYXRhIGJ5IFdl
YiBJbnNwZWN0b3IgZnJvbnRlbmQuCisKKyAgICAgICAgVGhpcyBmaXhlcyA8d2Via2l0Lm9yZy9i
LzE3MDYwOT4gV2ViIEluc3BlY3RvcjogV2ViU29ja2V0czogVHJhbnNmZXJyZWQgc2l6ZSBpcyBp
bmNvcnJlY3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0ZyYW1lUmVz
b3VyY2VNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5h
Z2VyLnByb3RvdHlwZS5fd2ViU29ja2V0RnJhbWVSZWNlaXZlZE9yU2VudCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvV2ViU29ja2V0UmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UucHJvdG90eXBlLmFkZEZyYW1lKToKKwogMjAxNy0w
NC0xMCAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBXZWJTb2NrZXRzOiBEb24ndCBjbGlwIGRhdGEgaW4gdGhlIGRhdGEgZ3Jp
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvRnJhbWVSZXNvdXJjZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdlci5qcwppbmRleCA3NWEw
YjA5Li44ODU3YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdl
ci5qcwpAQCAtMjkwLDEyICsyOTAsMTAgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5h
Z2VyID0gY2xhc3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAg
ICAgLy8gRGF0YSBnb2luZyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciBpcyBhbHdheXMg
bWFza2VkLgogICAgICAgICBsZXQgaXNPdXRnb2luZyA9ICEhcmVzcG9uc2UubWFzazsKIAotICAg
ICAgICBsZXQgZGF0YSA9IHJlc3BvbnNlLnBheWxvYWREYXRhOwotICAgICAgICBsZXQgb3Bjb2Rl
ID0gcmVzcG9uc2Uub3Bjb2RlOwotCisgICAgICAgIGxldCB7cGF5bG9hZERhdGEsIHBheWxvYWRM
ZW5ndGgsIG9wY29kZX0gPSByZXNwb25zZTsKICAgICAgICAgbGV0IGVsYXBzZWRUaW1lID0gV2Vi
SW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5jb21wdXRlRWxhcHNlZFRpbWUodGltZXN0YW1wKTsK
IAotICAgICAgICByZXNvdXJjZS5hZGRGcmFtZShkYXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHRp
bWVzdGFtcCwgZWxhcHNlZFRpbWUpOworICAgICAgICByZXNvdXJjZS5hZGRGcmFtZShwYXlsb2Fk
RGF0YSwgcGF5bG9hZExlbmd0aCwgaXNPdXRnb2luZywgb3Bjb2RlLCB0aW1lc3RhbXAsIGVsYXBz
ZWRUaW1lKTsKICAgICB9CiAKICAgICBtYXJrUmVzb3VyY2VSZXF1ZXN0QXNTZXJ2ZWRGcm9tTWVt
b3J5Q2FjaGUocmVxdWVzdElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvV2ViU29ja2V0UmVzb3VyY2UuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvV2ViU29ja2V0UmVzb3VyY2UuanMK
aW5kZXggMTBiZjc0NC4uMDZlNWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1dlYlNvY2tldFJlc291cmNlLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9XZWJTb2NrZXRSZXNvdXJjZS5qcwpA
QCAtNTksNyArNTksNyBAQCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UgPSBjbGFzcyBX
ZWJTb2NrZXRSZXNvdXJjZSBleHRlbmRzIFdlYkluc3BlY3Rvci5SZQogICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZl
bnQuUmVhZHlTdGF0ZUNoYW5nZWQsIHtwcmV2aW91c1N0YXRlLCBzdGF0ZX0pOwogICAgIH0KIAot
ICAgIGFkZEZyYW1lKGRhdGEsIGlzT3V0Z29pbmcsIG9wY29kZSwgdGltZXN0YW1wLCBlbGFwc2Vk
VGltZSkKKyAgICBhZGRGcmFtZShkYXRhLCBwYXlsb2FkTGVuZ3RoLCBpc091dGdvaW5nLCBvcGNv
ZGUsIHRpbWVzdGFtcCwgZWxhcHNlZFRpbWUpCiAgICAgewogICAgICAgICBsZXQgZnJhbWVEYXRh
OwogCkBAIC03Miw3ICs3MiwxMSBAQCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UgPSBj
bGFzcyBXZWJTb2NrZXRSZXNvdXJjZSBleHRlbmRzIFdlYkluc3BlY3Rvci5SZQogICAgICAgICBs
ZXQgZnJhbWUgPSB7ZGF0YTogZnJhbWVEYXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHdhbGx0aW1l
OiB0aGlzLl93YWxsdGltZUZvcldlYlNvY2tldFRpbWVzdGFtcCh0aW1lc3RhbXApfTsKICAgICAg
ICAgdGhpcy5fZnJhbWVzLnB1c2goZnJhbWUpOwogCi0gICAgICAgIHRoaXMuaW5jcmVhc2VTaXpl
KGRhdGEubGVuZ3RoLCBlbGFwc2VkVGltZSk7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlP
UyAxMC4zKTogYHBheWxvYWRMZW5ndGhgIGRpZCBub3QgZXhpc3QgaW4gMTAuMyBhbmQgZWFybGll
ci4KKyAgICAgICAgaWYgKHR5cGVvZiBwYXlsb2FkTGVuZ3RoID09PSAidW5kZWZpbmVkIikKKyAg
ICAgICAgICAgIHBheWxvYWRMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoInV0Zi04IikuZW5jb2Rl
KGRhdGEpLmxlbmd0aDsKKworICAgICAgICB0aGlzLmluY3JlYXNlU2l6ZShwYXlsb2FkTGVuZ3Ro
LCBlbGFwc2VkVGltZSk7CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLkV2ZW50LkZyYW1lQWRkZWQsIGZyYW1lKTsK
ICAgICB9Cg==
</data>
<flag name="review"
          id="328355"
          type_id="1"
          status="-"
          setter="nvasilyev"
    />
    <flag name="commit-queue"
          id="328356"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307065</attachid>
            <date>2017-04-13 18:14:54 -0700</date>
            <delta_ts>2017-04-14 19:28:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>22696</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMzMwMDQxLi5iNjkwOGFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTctMDQt
MTMgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogV2ViU29ja2V0czogbWVzc2FnZXMgd2l0aCBub24tbGF0aW4gbGV0dGVycyBh
cmUgZGlzcGxheWVkIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA3NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0IHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0ZXh0IGFuZCBiaW5h
cnkgKGJsb2IgYW5kIGFycmF5IGJ1ZmZlcikgZGF0YS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2JpbmFyeS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2Jp
bmFyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3Rvci9iaW5hcnlfd3NoLnB5OiBBZGRlZC4KKyAgICAgICAgKHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKToKKyAgICAgICAgKHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSk6
CisgICAgICAgIChhbGxfZGlzdGluY3RfYnl0ZXMpOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3Bl
Y3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmVfd3NoLnB5OiBB
ZGRlZC4KKyAgICAgICAgKHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKToKKyAgICAgICAg
KHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSk6CisKIDIwMTctMDQtMTEgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dFRlc3Qgd2VicnRjL3ZpZGVvLW11
dGUuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2JpbmFyeS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9i
aW5hcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjky
OTEyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDgg
QEAKK1Rlc3RzIHJlY2VpdmluZyBiaW5hcnkgZGF0YS4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IFdlYlNvY2tldC5CaW5hcnkKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXZWJTb2NrZXQuQmlu
YXJ5QmxvYgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgYmUgMTMgYnl0ZXMuCitQQVNTOiBG
cmFtZSBzaG91bGQgbm90IGhhdmUgZGF0YS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBiaW5hcnku
CitQQVNTOiBGcmFtZSBzaG91bGQgYmUgaW5jb21pbmcuCitQQVNTOiBGcmFtZSBzaG91bGQgaGF2
ZSB3YWxsdGltZS4KK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxkIGluY3JlYXNlIGJ5IDIxIGJ5
dGUuCitQQVNTOiBGcmFtZSBzaG91bGQgbm90IGhhdmUgZGF0YS4KK1BBU1M6IEZyYW1lIHNob3Vs
ZCBiZSBiaW5hcnkuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUgaW5jb21pbmcuCitQQVNTOiBGcmFt
ZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUuCitQQVNT
OiBSZXNvdXJjZSBzaXplIHNob3VsZCBub3QgaW5jcmVhc2UuCitQQVNTOiBGcmFtZSBzaG91bGQg
bm90IGhhdmUgZGF0YS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBiaW5hcnkuCitQQVNTOiBGcmFt
ZSBzaG91bGQgYmUgaW5jb21pbmcuCitQQVNTOiBGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3Jl
YXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUuCitQQVNTOiBSZXNvdXJjZSBzaXplIHNob3VsZCBp
bmNyZWFzZSBieSAyNTYgYnl0ZXMuCitQQVNTOiBGcmFtZSBzaG91bGQgbm90IGhhdmUgZGF0YS4K
K1BBU1M6IEZyYW1lIHNob3VsZCBiZSBiaW5hcnkuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUgaW5j
b21pbmcuCitQQVNTOiBGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBw
cmV2aW91cyBvbmUuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXZWJTb2NrZXQuQXJyYXlCdWZm
ZXIKK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxkIGJlIDEzIGJ5dGVzLgorUEFTUzogRnJhbWUg
c2hvdWxkIG5vdCBoYXZlIGRhdGEuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUgYmluYXJ5LgorUEFT
UzogRnJhbWUgc2hvdWxkIGJlIGluY29taW5nLgorUEFTUzogRnJhbWUgc2hvdWxkIGhhdmUgd2Fs
bHRpbWUuCitQQVNTOiBSZXNvdXJjZSBzaXplIHNob3VsZCBpbmNyZWFzZSBieSAyMSBieXRlLgor
UEFTUzogRnJhbWUgc2hvdWxkIG5vdCBoYXZlIGRhdGEuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUg
YmluYXJ5LgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGluY29taW5nLgorUEFTUzogRnJhbWUgd2Fs
bHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLgorUEFTUzogUmVz
b3VyY2Ugc2l6ZSBzaG91bGQgbm90IGluY3JlYXNlLgorUEFTUzogRnJhbWUgc2hvdWxkIG5vdCBo
YXZlIGRhdGEuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUgYmluYXJ5LgorUEFTUzogRnJhbWUgc2hv
dWxkIGJlIGluY29taW5nLgorUEFTUzogRnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIg
dGhhbiB0aGUgcHJldmlvdXMgb25lLgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgaW5jcmVh
c2UgYnkgMjU2IGJ5dGVzLgorUEFTUzogRnJhbWUgc2hvdWxkIG5vdCBoYXZlIGRhdGEuCitQQVNT
OiBGcmFtZSBzaG91bGQgYmUgYmluYXJ5LgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGluY29taW5n
LgorUEFTUzogRnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlv
dXMgb25lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2JpbmFyeS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2N2E2N2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnkuaHRt
bApAQCAtMCwwICsxLDEwMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIEdsb2Jh
bCB2YXJpYWJsZSB0byBrZWVwIGl0IGFsaXZlLgorbGV0IHdlYlNvY2tldCA9IG51bGw7CisKK2Z1
bmN0aW9uIGNyZWF0ZVdlYlNvY2tldENvbm5lY3Rpb24oYmluYXJ5VHlwZSkKK3sKKyAgICBjbG9z
ZVdlYlNvY2tldENvbm5lY3Rpb24oKTsKKyAgICB3ZWJTb2NrZXQgPSBuZXcgV2ViU29ja2V0KCJ3
czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnki
KTsKKyAgICB3ZWJTb2NrZXQuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7Cit9CisKK2Z1bmN0aW9u
IGNsb3NlV2ViU29ja2V0Q29ubmVjdGlvbigpCit7CisgICAgaWYgKCF3ZWJTb2NrZXQpCisgICAg
ICAgIHJldHVybjsKKworICAgIHdlYlNvY2tldC5jbG9zZSgpOworICAgIHdlYlNvY2tldCA9IG51
bGw7Cit9CisKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJXZWJTb2NrZXQuQmluYXJ5Iik7CisKKyAgICBmdW5jdGlv
biByZXNvdXJjZVdhc0FkZGVkKHJlc29sdmUsIHJlamVjdCwgZXZlbnQpIHsKKyAgICAgICAgbGV0
IGZyYW1lQWRkZWRDb3VudCA9IDA7CisgICAgICAgIGxldCBsYXN0TWVzc2FnZVdhbGx0aW1lOwor
ICAgICAgICBsZXQgcmVzb3VyY2UgPSBldmVudC5kYXRhLnJlc291cmNlOworCisgICAgICAgIHJl
c291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLkV2
ZW50LkZyYW1lQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsZXQgZnJhbWUg
PSBldmVudC5kYXRhOworICAgICAgICAgICAgZnJhbWVBZGRlZENvdW50Kys7CisKKyAgICAgICAg
ICAgIGlmIChmcmFtZUFkZGVkQ291bnQgPD0gNCkgeworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwoZnJhbWUuZGF0YSwgbnVsbCwgIkZyYW1lIHNob3VsZCBub3QgaGF2
ZSBkYXRhLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZnJh
bWUub3Bjb2RlLCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BDb2Rlcy5CaW5hcnlG
cmFtZSwgIkZyYW1lIHNob3VsZCBiZSBiaW5hcnkuIik7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KCFmcmFtZS5pc091dGdvaW5nLCAiRnJhbWUgc2hvdWxkIGJlIGlu
Y29taW5nLiIpOworCisgICAgICAgICAgICAgICAgaWYgKGZyYW1lQWRkZWRDb3VudCA9PT0gMSkK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHR5cGVvZiBmcmFt
ZS53YWxsdGltZSA9PT0gIm51bWJlciIsICJGcmFtZSBzaG91bGQgaGF2ZSB3YWxsdGltZS4iKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChmcmFtZS53YWxsdGltZSA+IGxhc3RNZXNzYWdlV2FsbHRpbWUsICJGcmFtZSB3
YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUuIik7CisKKyAg
ICAgICAgICAgICAgICBsYXN0TWVzc2FnZVdhbGx0aW1lID0gZnJhbWUud2FsbHRpbWU7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmcmFtZUFkZGVkQ291bnQgPT09IDQpIHsKKyAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZSgiY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKCkiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IHNpemVEaWRDaGFuZ2VDb3VudCA9IDA7CisK
KyAgICAgICAgcmVzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2Uu
RXZlbnQuU2l6ZURpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHNpemVE
aWRDaGFuZ2VDb3VudCsrOworCisgICAgICAgICAgICBpZiAoc2l6ZURpZENoYW5nZUNvdW50ID09
PSAxKQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGhpcy5zaXpl
LCAxMywgIlJlc291cmNlIHNpemUgc2hvdWxkIGJlIDEzIGJ5dGVzLiIpOworICAgICAgICAgICAg
ZWxzZSBpZiAoc2l6ZURpZENoYW5nZUNvdW50ID09PSAyKQorICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwodGhpcy5zaXplLCAxMyArIDIxLCAiUmVzb3VyY2Ugc2l6ZSBz
aG91bGQgaW5jcmVhc2UgYnkgMjEgYnl0ZS4iKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNpemVE
aWRDaGFuZ2VDb3VudCA9PT0gMykKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHRoaXMuc2l6ZSwgMTMgKyAyMSwgIlJlc291cmNlIHNpemUgc2hvdWxkIG5vdCBpbmNy
ZWFzZS4iKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNpemVEaWRDaGFuZ2VDb3VudCA9PT0gNCkK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRoaXMuc2l6ZSwgMTMg
KyAyMSArIDI1NiwgIlJlc291cmNlIHNpemUgc2hvdWxkIGluY3JlYXNlIGJ5IDI1NiBieXRlcy4i
KTsKKworICAgICAgICB9LCByZXNvdXJjZSk7CisgICAgfQorCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiV2ViU29ja2V0LkJpbmFyeUJsb2IiLAorICAgICAgICBkZXNj
cmlwdGlvbjogIlNob3VsZCByZWNlaXZlIGJpbmFyeSBibG9iIFdlYlNvY2tldCBtZXNzYWdlcy4i
LAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLkZyYW1lLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVu
dC5SZXNvdXJjZVdhc0FkZGVkLCByZXNvdXJjZVdhc0FkZGVkLmJpbmQobnVsbCwgcmVzb2x2ZSwg
cmVqZWN0KSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVh
dGVXZWJTb2NrZXRDb25uZWN0aW9uKCJibG9iIilgKTsKKyAgICAgICAgfQorICAgIH0pOworCisg
ICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiV2ViU29ja2V0LkFycmF5QnVm
ZmVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmVjZWl2ZSBBcnJheUJ1ZmZlciBX
ZWJTb2NrZXQgbWVzc2FnZXMuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5GcmFtZS5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRnJhbWUuRXZlbnQuUmVzb3VyY2VXYXNBZGRlZCwgcmVzb3VyY2VXYXNBZGRlZC5i
aW5kKG51bGwsIHJlc29sdmUsIHJlamVjdCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZShgY3JlYXRlV2ViU29ja2V0Q29ubmVjdGlvbigiYXJyYXlidWZmZXIiKWAp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2go
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
VGVzdHMgcmVjZWl2aW5nIGJpbmFyeSBkYXRhLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVj
dG9yL2JpbmFyeV93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2luc3BlY3Rvci9iaW5hcnlfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjcwOTY3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnlfd3NoLnB5CkBAIC0wLDAg
KzEsMTggQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEocmVxdWVzdCk6CisgICAgbWVzc2FnZXNfdG9fc2VuZCA9IFsnSGVsbG8sIHdvcmxkIScsICfQ
n9GA0LjQstC10YIsINCc0LjRgCEnLCAnJywgYWxsX2Rpc3RpbmN0X2J5dGVzKCldCisgICAgZm9y
IG1lc3NhZ2UgaW4gbWVzc2FnZXNfdG9fc2VuZDoKKyAgICAgICAgIyBGSVhNRTogU2hvdWxkIHVz
ZSBiZXR0ZXIgQVBJIHRvIHNlbmQgYmluYXJ5IG1lc3NhZ2VzIHdoZW4gcHl3ZWJzb2NrZXQgc3Vw
cG9ydHMgaXQuCisgICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVyKGNvbW1vbi5P
UENPREVfQklOQVJZLCBsZW4obWVzc2FnZSksIDEsIDAsIDAsIDAsIDApCisgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0ZShoZWFkZXIgKyBtZXNzYWdlKQorCisKK2RlZiBhbGxfZGlzdGlu
Y3RfYnl0ZXMoKToKKyAgICByZXR1cm4gJycuam9pbihbY2hyKGkpIGZvciBpIGluIHhyYW5nZSgy
NTYpXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVj
ZWl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Fh
OWNjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjIgQEAKK1Rlc3RzIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBXZWJTb2NrZXQgbWVzc2Fn
ZXMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBXZWJTb2NrZXQuU2VuZEFuZFJlY2VpdmUK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTZW5kQW5kUmVjZWl2ZQorUEFTUzogUmVzb3VyY2Ugc2l6
ZSBzaG91bGQgYmUgMzMgYnl0ZXMuCitQQVNTOiBGcmFtZSBkYXRhIHNob3VsZCBiZSAnSGVsbG8g
V29ybGQhINCf0YDQuNCy0LXRgiDQnNC40YAhJworUEFTUzogRnJhbWUgc2hvdWxkIGJlIHRleHQu
CitQQVNTOiBGcmFtZSBzaG91bGQgYmUgb3V0Z29pbmcuCitQQVNTOiBNZXNzYWdlIGlzIHdhbGx0
aW1lLgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgZG91YmxlLgorUEFTUzogRnJhbWUgZGF0
YSBzaG91bGQgYmUgJ0hlbGxvIFdvcmxkISDQn9GA0LjQstC10YIg0JzQuNGAIScKK1BBU1M6IEZy
YW1lIHNob3VsZCBiZSB0ZXh0LgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGluY29taW5nLgorUEFT
UzogRnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25l
LgorUEFTUzogRnJhbWUgc2hvdWxkIGNsb3NlIGNvbm5lY3Rpb24uCitQQVNTOiBGcmFtZSBzaG91
bGQgYmUgb3V0Z29pbmcuCitQQVNTOiBGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0
aGFuIHRoZSBwcmV2aW91cyBvbmUuCitQQVNTOiBGcmFtZSBzaG91bGQgY2xvc2UgY29ubmVjdGlv
bi4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1l
IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2Vu
ZC1hbmQtcmVjZWl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmE1M2VmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNl
aXZlLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGNyZWF0ZVdlYlNvY2tldENvbm5lY3Rpb24oKQoreworICAgIGxldCB3ZWJTb2NrZXQg
PSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlIik7CisKKyAgICB3ZWJTb2NrZXQub25vcGVuID0g
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgd2ViU29ja2V0LnNlbmQoIkhlbGxvIFdvcmxkISDQ
n9GA0LjQstC10YIg0JzQuNGAISIpOworICAgIH07CisKKyAgICB3ZWJTb2NrZXQub25tZXNzYWdl
ID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgd2ViU29ja2V0LmNsb3NlKCk7CisgICAgfTsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJXZWJTb2NrZXQuU2VuZEFuZFJlY2VpdmUiKTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlNlbmRBbmRSZWNlaXZlIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJTaG91bGQgc2VuZCBhbmQgcmVjZWl2ZSB0ZXh0IGZyYW1lcy4iLAorICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkZy
YW1lLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5SZXNv
dXJjZVdhc0FkZGVkLCBmdW5jdGlvbihldmVudCkgeworCisgICAgICAgICAgICAgICAgbGV0IGZy
YW1lQWRkZWRDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgbGV0IGxhc3RNZXNzYWdlV2FsbHRp
bWU7CisgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gZXZlbnQuZGF0YS5yZXNvdXJjZTsK
KworICAgICAgICAgICAgICAgIHJlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LldlYlNvY2tldFJlc291cmNlLkV2ZW50LkZyYW1lQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCBmcmFtZSA9IGV2ZW50LmRhdGE7CisgICAgICAgICAgICAg
ICAgICAgIGZyYW1lQWRkZWRDb3VudCsrOworCisgICAgICAgICAgICAgICAgICAgIGlmIChmcmFt
ZUFkZGVkQ291bnQgPT09IDEpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChmcmFtZS5kYXRhLCAiSGVsbG8gV29ybGQhINCf0YDQuNCy0LXRgiDQ
nNC40YAhIiwgIkZyYW1lIGRhdGEgc2hvdWxkIGJlICdIZWxsbyBXb3JsZCEg0J/RgNC40LLQtdGC
INCc0LjRgCEnIik7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKGZyYW1lLm9wY29kZSwgV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29k
ZXMuVGV4dEZyYW1lLCAiRnJhbWUgc2hvdWxkIGJlIHRleHQuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZnJhbWUuaXNPdXRnb2luZywgIkZyYW1l
IHNob3VsZCBiZSBvdXRnb2luZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdCh0eXBlb2YgZnJhbWUud2FsbHRpbWUgPT09ICJudW1iZXIiLCAiTWVz
c2FnZSBpcyB3YWxsdGltZS4iKTsKKworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZy
YW1lQWRkZWRDb3VudCA9PT0gMikgeworCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKGZyYW1lLmRhdGEsICJIZWxsbyBXb3JsZCEg0J/RgNC40LLQtdGC
INCc0LjRgCEiLCAiRnJhbWUgZGF0YSBzaG91bGQgYmUgJ0hlbGxvIFdvcmxkISDQn9GA0LjQstC1
0YIg0JzQuNGAISciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoZnJhbWUub3Bjb2RlLCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BD
b2Rlcy5UZXh0RnJhbWUsICJGcmFtZSBzaG91bGQgYmUgdGV4dC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghZnJhbWUuaXNPdXRnb2luZywgIkZy
YW1lIHNob3VsZCBiZSBpbmNvbWluZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChmcmFtZS53YWxsdGltZSA+IGxhc3RNZXNzYWdlV2FsbHRpbWUs
ICJGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUu
Iik7CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmcmFtZUFkZGVkQ291bnQgPT09
IDMpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChmcmFtZS5vcGNvZGUsIFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5PcENvZGVzLkNv
bm5lY3Rpb25DbG9zZUZyYW1lLCAiRnJhbWUgc2hvdWxkIGNsb3NlIGNvbm5lY3Rpb24uIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZnJhbWUuaXNP
dXRnb2luZywgIkZyYW1lIHNob3VsZCBiZSBvdXRnb2luZy4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChmcmFtZS53YWxsdGltZSA+IGxhc3RNZXNz
YWdlV2FsbHRpbWUsICJGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBw
cmV2aW91cyBvbmUuIik7CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmcmFtZUFk
ZGVkQ291bnQgPT09IDQpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChmcmFtZS5vcGNvZGUsIFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJj
ZS5PcENvZGVzLkNvbm5lY3Rpb25DbG9zZUZyYW1lLCAiRnJhbWUgc2hvdWxkIGNsb3NlIGNvbm5l
Y3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQoIWZyYW1lLmlzT3V0Z29pbmcsICJGcmFtZSBzaG91bGQgYmUgaW5jb21pbmcuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZnJhbWUud2FsbHRp
bWUgPiBsYXN0TWVzc2FnZVdhbGx0aW1lLCAiRnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0
ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbGFz
dE1lc3NhZ2VXYWxsdGltZSA9IGZyYW1lLndhbGx0aW1lOworICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgICAgbGV0IHNpemVEaWRDaGFuZ2VDb3VudCA9IDA7CisKKyAgICAgICAg
ICAgICAgICByZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5F
dmVudC5TaXplRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAgICAg
ICBzaXplRGlkQ2hhbmdlQ291bnQrKzsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZURp
ZENoYW5nZUNvdW50ID09PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbCh0aGlzLnNpemUsIDMzLCAiUmVzb3VyY2Ugc2l6ZSBzaG91bGQgYmUgMzMg
Ynl0ZXMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNpemVEaWRDaGFuZ2VDb3Vu
dCA9PT0gMikKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwodGhpcy5zaXplLCAzMyAqIDIsICJSZXNvdXJjZSBzaXplIHNob3VsZCBkb3VibGUuIik7CisK
KyAgICAgICAgICAgICAgICB9LCByZXNvdXJjZSk7CisgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY3JlYXRlV2ViU29ja2V0Q29ubmVj
dGlvbigpIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0Fu
ZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8cD5UZXN0cyBzZW5kaW5nIGFuZCByZWNlaXZpbmcgV2ViU29ja2V0IG1lc3NhZ2VzLjwv
cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmVfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2Vu
ZC1hbmQtcmVjZWl2ZV93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MGNmMWNhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJlY2VpdmVfd3NoLnB5CkBAIC0wLDAg
KzEsMTEgQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCisKKworZGVmIHdl
Yl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIHBhc3MgIyBBbHdheXMg
YWNjZXB0LgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAg
IyBFY2hvIG1lc3NhZ2UgYmFjaworICAgIG1lc3NhZ2UgPSBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KQorICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIG1lc3NhZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2OTJjOWYwLi5jYmRhZGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wNC0xMyAgTmlraXRhIFZhc2lseWV2
ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBXZWJTb2Nr
ZXRzOiBtZXNzYWdlcyB3aXRoIG5vbi1sYXRpbiBsZXR0ZXJzIGFyZSBkaXNwbGF5ZWQgaW5jb3Jy
ZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MDc2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBwYXlsb2FkTGVuZ3RoIHByb3BlcnR5LCB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgc2l6ZS4g
V2hlbiBwYXlsb2FkTGVuZ3RoIGlzIHVuYXZhaWxhYmxlLAorICAgICAgICBpdCBpcyBjYWxjdWxh
dGVkIGZyb20gcGF5bG9hZERhdGEgYnkgV2ViIEluc3BlY3RvciBmcm9udGVuZC4KKworICAgICAg
ICBUaGlzIGZpeGVzIDx3ZWJraXQub3JnL2IvMTcwNjA5PiBXZWIgSW5zcGVjdG9yOiBXZWJTb2Nr
ZXRzOiBUcmFuc2ZlcnJlZCBzaXplIGlzIGluY29ycmVjdC4KKworICAgICAgICAqIGluc3BlY3Rv
ci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisKIDIwMTctMDQtMTEgIERlYW4gSmFja3NvbiAgPGRp
bm9AYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgb3V0ZGF0ZWQgV3JpdGFibGVTdHJlYW0g
QVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L05ldHdvcmsuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
TmV0d29yay5qc29uCmluZGV4IGViNTQ1YWEuLjI3ZGI5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCkBAIC0xMTMs
NyArMTEzLDggQEAKICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAib3Bjb2RlIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIldl
YlNvY2tldCBmcmFtZSBvcGNvZGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWFz
ayIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiV2ViU29ja2V0IGZyYW1lIG1h
c2suIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGF5bG9hZERhdGEiLCAidHlwZSI6
ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiV2ViU29ja2V0IGZyYW1lIHBheWxvYWQgZGF0YS4i
IH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBheWxvYWREYXRhIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIldlYlNvY2tldCBmcmFtZSBwYXlsb2FkIGRhdGEuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGF5bG9hZExlbmd0aCIsICJ0eXBlIjogIm51bWJl
ciIsICJkZXNjcmlwdGlvbiI6ICJXZWJTb2NrZXQgZnJhbWUgcGF5bG9hZCBsZW5ndGggaW4gYnl0
ZXMuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBhMGZiNzk0Li4zY2VhNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDQt
MTMgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogV2ViU29ja2V0czogbWVzc2FnZXMgd2l0aCBub24tbGF0aW4gbGV0dGVycyBh
cmUgZGlzcGxheWVkIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA3NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgcGF5bG9hZExlbmd0aCBwcm9wZXJ0eSwgd2hpY2ggaXMgdXNl
ZCB0byBkaXNwbGF5IHNpemUuIFdoZW4gcGF5bG9hZExlbmd0aCBpcyB1bmF2YWlsYWJsZSwKKyAg
ICAgICAgaXQgaXMgY2FsY3VsYXRlZCBmcm9tIHBheWxvYWREYXRhIGJ5IFdlYiBJbnNwZWN0b3Ig
ZnJvbnRlbmQuCisKKyAgICAgICAgVGhpcyBmaXhlcyA8d2Via2l0Lm9yZy9iLzE3MDYwOT4gV2Vi
IEluc3BlY3RvcjogV2ViU29ja2V0czogVHJhbnNmZXJyZWQgc2l6ZSBpcyBpbmNvcnJlY3QuCisK
KyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9y
L2JpbmFyeS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
TmV0d29ya0FnZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUpOgorCiAyMDE3
LTA0LTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01v
ZGVybiBNZWRpYSBDb250cm9sc10gQWxsb3cgbW9kZXJuLW1lZGlhLWNvbnRyb2xzIHRvIGJlIHBy
b3ZpZGVkIHRocm91Z2ggV2ViS2l0QWRkaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDUwYTliOTkuLmZkNmE5NDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdl
bnQuY3BwCkBAIC02MTEsNyArNjExLDggQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRp
ZFJlY2VpdmVXZWJTb2NrZXRGcmFtZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGMKICAgICBh
dXRvIGZyYW1lT2JqZWN0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0d29yazo6V2ViU29ja2V0
RnJhbWU6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRPcGNvZGUoZnJhbWUub3BDb2RlKQogICAgICAg
ICAuc2V0TWFzayhmcmFtZS5tYXNrZWQpCi0gICAgICAgIC5zZXRQYXlsb2FkRGF0YShTdHJpbmco
ZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkpCisgICAgICAgIC5zZXRQYXlsb2Fk
RGF0YShTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKGZyYW1lLnBheWxvYWQsIGZy
YW1lLnBheWxvYWRMZW5ndGgpKQorICAgICAgICAuc2V0UGF5bG9hZExlbmd0aChmcmFtZS5wYXls
b2FkTGVuZ3RoKQogICAgICAgICAucmVsZWFzZSgpOwogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
LT53ZWJTb2NrZXRGcmFtZVJlY2VpdmVkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlk
ZW50aWZpZXIpLCB0aW1lc3RhbXAoKSwgV1RGTW92ZShmcmFtZU9iamVjdCkpOwogfQpAQCAtNjIx
LDcgKzYyMiw4IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjpkaWRTZW5kV2ViU29ja2V0
RnJhbWUodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zCiAgICAgYXV0byBmcmFtZU9iamVj
dCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OldlYlNvY2tldEZyYW1lOjpjcmVhdGUo
KQogICAgICAgICAuc2V0T3Bjb2RlKGZyYW1lLm9wQ29kZSkKICAgICAgICAgLnNldE1hc2soZnJh
bWUubWFza2VkKQotICAgICAgICAuc2V0UGF5bG9hZERhdGEoU3RyaW5nKGZyYW1lLnBheWxvYWQs
IGZyYW1lLnBheWxvYWRMZW5ndGgpKQorICAgICAgICAuc2V0UGF5bG9hZERhdGEoU3RyaW5nOjpm
cm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVu
Z3RoKSkKKyAgICAgICAgLnNldFBheWxvYWRMZW5ndGgoZnJhbWUucGF5bG9hZExlbmd0aCkKICAg
ICAgICAgLnJlbGVhc2UoKTsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d2ViU29ja2V0RnJh
bWVTZW50KElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCB0aW1lc3Rh
bXAoKSwgV1RGTW92ZShmcmFtZU9iamVjdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5k
ZXggZWYxNmIwNC4uNTI2MGRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTctMDQtMTMgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2ViU29ja2V0czogbWVzc2FnZXMgd2l0aCBub24t
bGF0aW4gbGV0dGVycyBhcmUgZGlzcGxheWVkIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA3NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGF5bG9hZExlbmd0aCBwcm9wZXJ0
eSwgd2hpY2ggaXMgdXNlZCB0byBkaXNwbGF5IHNpemUuIFdoZW4gcGF5bG9hZExlbmd0aCBpcyB1
bmF2YWlsYWJsZSwKKyAgICAgICAgaXQgaXMgY2FsY3VsYXRlZCBmcm9tIHBheWxvYWREYXRhIGJ5
IFdlYiBJbnNwZWN0b3IgZnJvbnRlbmQuCisKKyAgICAgICAgVGhpcyBmaXhlcyA8d2Via2l0Lm9y
Zy9iLzE3MDYwOT4gV2ViIEluc3BlY3RvcjogV2ViU29ja2V0czogVHJhbnNmZXJyZWQgc2l6ZSBp
cyBpbmNvcnJlY3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0ZyYW1l
UmVzb3VyY2VNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VN
YW5hZ2VyLnByb3RvdHlwZS5fd2ViU29ja2V0RnJhbWVSZWNlaXZlZE9yU2VudCk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvV2ViU29ja2V0UmVzb3VyY2UuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UucHJvdG90eXBlLmFkZEZyYW1lKToKKwogMjAx
Ny0wNC0xMCAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBXZWJTb2NrZXRzOiBEb24ndCBjbGlwIGRhdGEgaW4gdGhlIGRhdGEg
Z3JpZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvRnJhbWVSZXNvdXJjZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdlci5qcwppbmRleCA3
NWEwYjA5Li44ODU3YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNlTWFu
YWdlci5qcwpAQCAtMjkwLDEyICsyOTAsMTAgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VN
YW5hZ2VyID0gY2xhc3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAg
ICAgICAgLy8gRGF0YSBnb2luZyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciBpcyBhbHdh
eXMgbWFza2VkLgogICAgICAgICBsZXQgaXNPdXRnb2luZyA9ICEhcmVzcG9uc2UubWFzazsKIAot
ICAgICAgICBsZXQgZGF0YSA9IHJlc3BvbnNlLnBheWxvYWREYXRhOwotICAgICAgICBsZXQgb3Bj
b2RlID0gcmVzcG9uc2Uub3Bjb2RlOwotCisgICAgICAgIGxldCB7cGF5bG9hZERhdGEsIHBheWxv
YWRMZW5ndGgsIG9wY29kZX0gPSByZXNwb25zZTsKICAgICAgICAgbGV0IGVsYXBzZWRUaW1lID0g
V2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5jb21wdXRlRWxhcHNlZFRpbWUodGltZXN0YW1w
KTsKIAotICAgICAgICByZXNvdXJjZS5hZGRGcmFtZShkYXRhLCBpc091dGdvaW5nLCBvcGNvZGUs
IHRpbWVzdGFtcCwgZWxhcHNlZFRpbWUpOworICAgICAgICByZXNvdXJjZS5hZGRGcmFtZShwYXls
b2FkRGF0YSwgcGF5bG9hZExlbmd0aCwgaXNPdXRnb2luZywgb3Bjb2RlLCB0aW1lc3RhbXAsIGVs
YXBzZWRUaW1lKTsKICAgICB9CiAKICAgICBtYXJrUmVzb3VyY2VSZXF1ZXN0QXNTZXJ2ZWRGcm9t
TWVtb3J5Q2FjaGUocmVxdWVzdElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvV2ViU29ja2V0UmVzb3VyY2UuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvV2ViU29ja2V0UmVzb3VyY2Uu
anMKaW5kZXggMTBiZjc0NC4uMDZlNWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1dlYlNvY2tldFJlc291cmNlLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9XZWJTb2NrZXRSZXNvdXJjZS5q
cwpAQCAtNTksNyArNTksNyBAQCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UgPSBjbGFz
cyBXZWJTb2NrZXRSZXNvdXJjZSBleHRlbmRzIFdlYkluc3BlY3Rvci5SZQogICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2Uu
RXZlbnQuUmVhZHlTdGF0ZUNoYW5nZWQsIHtwcmV2aW91c1N0YXRlLCBzdGF0ZX0pOwogICAgIH0K
IAotICAgIGFkZEZyYW1lKGRhdGEsIGlzT3V0Z29pbmcsIG9wY29kZSwgdGltZXN0YW1wLCBlbGFw
c2VkVGltZSkKKyAgICBhZGRGcmFtZShkYXRhLCBwYXlsb2FkTGVuZ3RoLCBpc091dGdvaW5nLCBv
cGNvZGUsIHRpbWVzdGFtcCwgZWxhcHNlZFRpbWUpCiAgICAgewogICAgICAgICBsZXQgZnJhbWVE
YXRhOwogCkBAIC03Miw3ICs3MiwxMSBAQCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2Ug
PSBjbGFzcyBXZWJTb2NrZXRSZXNvdXJjZSBleHRlbmRzIFdlYkluc3BlY3Rvci5SZQogICAgICAg
ICBsZXQgZnJhbWUgPSB7ZGF0YTogZnJhbWVEYXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHdhbGx0
aW1lOiB0aGlzLl93YWxsdGltZUZvcldlYlNvY2tldFRpbWVzdGFtcCh0aW1lc3RhbXApfTsKICAg
ICAgICAgdGhpcy5fZnJhbWVzLnB1c2goZnJhbWUpOwogCi0gICAgICAgIHRoaXMuaW5jcmVhc2VT
aXplKGRhdGEubGVuZ3RoLCBlbGFwc2VkVGltZSk7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkg
KGlPUyAxMC4zKTogYHBheWxvYWRMZW5ndGhgIGRpZCBub3QgZXhpc3QgaW4gMTAuMyBhbmQgZWFy
bGllci4KKyAgICAgICAgaWYgKHR5cGVvZiBwYXlsb2FkTGVuZ3RoID09PSAidW5kZWZpbmVkIikK
KyAgICAgICAgICAgIHBheWxvYWRMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoInV0Zi04IikuZW5j
b2RlKGRhdGEpLmxlbmd0aDsKKworICAgICAgICB0aGlzLmluY3JlYXNlU2l6ZShwYXlsb2FkTGVu
Z3RoLCBlbGFwc2VkVGltZSk7CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLkV2ZW50LkZyYW1lQWRkZWQsIGZyYW1l
KTsKICAgICB9Cg==
</data>
<flag name="review"
          id="328357"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307180</attachid>
            <date>2017-04-14 19:27:50 -0700</date>
            <delta_ts>2017-04-14 20:12:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>23865</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMzMwMDQxLi4zOWE0NmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTctMDQt
MTMgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogV2ViU29ja2V0czogbWVzc2FnZXMgd2l0aCBub24tbGF0aW4gbGV0dGVycyBh
cmUgZGlzcGxheWVkIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA3NjAKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVj
b3Jhcm8uCisKKyAgICAgICAgVGVzdCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgdGV4dCBhbmQgYmlu
YXJ5IChibG9iIGFuZCBhcnJheSBidWZmZXIpIGRhdGEuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9i
aW5hcnkuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9pbnNwZWN0b3IvYmluYXJ5X3dzaC5weTogQWRkZWQuCisgICAgICAgICh3ZWJfc29ja2V0
X2RvX2V4dHJhX2hhbmRzaGFrZSk6CisgICAgICAgICh3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEp
OgorICAgICAgICAoYWxsX2Rpc3RpbmN0X2J5dGVzKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNw
ZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlX3dzaC5weTog
QWRkZWQuCisgICAgICAgICh3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSk6CisgICAgICAg
ICh3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEpOgorCiAyMDE3LTA0LTExICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXRUZXN0IHdlYnJ0Yy92aWRlby1t
dXRlLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Iv
YmluYXJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
ODQ1ZDFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9pbnNwZWN0b3IvYmluYXJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU4
IEBACitUZXN0cyBzZW5kaW5nIGFuZCByZWNlaXZpbmcgYmluYXJ5IGRhdGEuCisKKworPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBXZWJTb2NrZXQuQmluYXJ5CistLSBSdW5uaW5nIHRlc3QgY2FzZTog
V2ViU29ja2V0LkJpbmFyeUJsb2IKK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxkIGJlIDEzIGJ5
dGVzLgorUEFTUzogRnJhbWUgc2hvdWxkIG5vdCBoYXZlIGRhdGEuCitQQVNTOiBGcmFtZSBzaG91
bGQgYmUgYmluYXJ5LgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIG91dGdvaW5nLgorUEFTUzogRnJh
bWUgc2hvdWxkIGhhdmUgd2FsbHRpbWUuCitQQVNTOiBSZXNvdXJjZSBzaXplIHNob3VsZCBpbmNy
ZWFzZSBieSAxMyBieXRlcy4KK1BBU1M6IEZyYW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgorUEFT
UzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWlu
Zy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZp
b3VzIG9uZS4KK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxkIGluY3JlYXNlIGJ5IDIxIGJ5dGVz
LgorUEFTUzogRnJhbWUgc2hvdWxkIG5vdCBoYXZlIGRhdGEuCitQQVNTOiBGcmFtZSBzaG91bGQg
YmUgYmluYXJ5LgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGluY29taW5nLgorUEFTUzogRnJhbWUg
d2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLgorUEFTUzog
UmVzb3VyY2Ugc2l6ZSBzaG91bGQgbm90IGluY3JlYXNlLgorUEFTUzogRnJhbWUgc2hvdWxkIG5v
dCBoYXZlIGRhdGEuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUgYmluYXJ5LgorUEFTUzogRnJhbWUg
c2hvdWxkIGJlIGluY29taW5nLgorUEFTUzogRnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0
ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgaW5j
cmVhc2UgYnkgMjU2IGJ5dGVzLgorUEFTUzogRnJhbWUgc2hvdWxkIG5vdCBoYXZlIGRhdGEuCitQ
QVNTOiBGcmFtZSBzaG91bGQgYmUgYmluYXJ5LgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGluY29t
aW5nLgorUEFTUzogRnJhbWUgd2FsbHRpbWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJl
dmlvdXMgb25lLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV2ViU29ja2V0LkFycmF5QnVmZmVy
CitQQVNTOiBSZXNvdXJjZSBzaXplIHNob3VsZCBiZSAxMyBieXRlcy4KK1BBU1M6IEZyYW1lIHNo
b3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6
IEZyYW1lIHNob3VsZCBiZSBvdXRnb2luZy4KK1BBU1M6IEZyYW1lIHNob3VsZCBoYXZlIHdhbGx0
aW1lLgorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgaW5jcmVhc2UgYnkgMTMgYnl0ZXMuCitQ
QVNTOiBGcmFtZSBzaG91bGQgbm90IGhhdmUgZGF0YS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBi
aW5hcnkuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUgaW5jb21pbmcuCitQQVNTOiBGcmFtZSB3YWxs
dGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUuCitQQVNTOiBSZXNv
dXJjZSBzaXplIHNob3VsZCBpbmNyZWFzZSBieSAyMSBieXRlcy4KK1BBU1M6IEZyYW1lIHNob3Vs
ZCBub3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6IEZy
YW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBn
cmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4KK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxk
IG5vdCBpbmNyZWFzZS4KK1BBU1M6IEZyYW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzog
RnJhbWUgc2hvdWxkIGJlIGJpbmFyeS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4K
K1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3Vz
IG9uZS4KK1BBU1M6IFJlc291cmNlIHNpemUgc2hvdWxkIGluY3JlYXNlIGJ5IDI1NiBieXRlcy4K
K1BBU1M6IEZyYW1lIHNob3VsZCBub3QgaGF2ZSBkYXRhLgorUEFTUzogRnJhbWUgc2hvdWxkIGJl
IGJpbmFyeS4KK1BBU1M6IEZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdh
bGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0
b3IvYmluYXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3Rvci9iaW5hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi43ZDhiMTYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3IvYmluYXJ5Lmh0bWwKQEAgLTAsMCArMSwxMTkg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisvLyBHbG9iYWwgdmFyaWFibGUgdG8ga2Vl
cCBpdCBhbGl2ZS4KK2xldCB3ZWJTb2NrZXQgPSBudWxsOworCitmdW5jdGlvbiBjcmVhdGVBcnJh
eUJ1ZmZlckNvbnRhaW5pbmdIZWxsb1dvcmxkKCkKK3sKKyAgICBsZXQgaGVsbG8gPSAiSGVsbG8s
IHdvcmxkISI7CisgICAgbGV0IGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoaGVsbG8ubGVuZ3RoKTsK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlbGxvLmxlbmd0aDsgKytpKQorICAgICAgICBhcnJh
eVtpXSA9IGhlbGxvLmNoYXJDb2RlQXQoaSk7CisKKyAgICByZXR1cm4gYXJyYXkuYnVmZmVyOwor
fQorCitmdW5jdGlvbiBjcmVhdGVXZWJTb2NrZXRDb25uZWN0aW9uKGJpbmFyeVR5cGUpCit7Cisg
ICAgY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKCk7CisgICAgd2ViU29ja2V0ID0gbmV3IFdlYlNv
Y2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Iv
YmluYXJ5Iik7CisgICAgd2ViU29ja2V0LmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOworCisgICAg
d2ViU29ja2V0Lm9ub3BlbiA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHdlYlNvY2tldC5z
ZW5kKGNyZWF0ZUFycmF5QnVmZmVyQ29udGFpbmluZ0hlbGxvV29ybGQoKSk7CisgICAgfTsKK30K
KworZnVuY3Rpb24gY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIXdlYlNv
Y2tldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2ViU29ja2V0LmNsb3NlKCk7CisgICAgd2Vi
U29ja2V0ID0gbnVsbDsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJXZWJTb2NrZXQuQmluYXJ5Iik7CisKKyAg
ICBmdW5jdGlvbiByZXNvdXJjZVdhc0FkZGVkKHJlc29sdmUsIHJlamVjdCwgZXZlbnQpIHsKKyAg
ICAgICAgbGV0IGZyYW1lQWRkZWRDb3VudCA9IDA7CisgICAgICAgIGxldCBsYXN0TWVzc2FnZVdh
bGx0aW1lOworICAgICAgICBsZXQgcmVzb3VyY2UgPSBldmVudC5kYXRhLnJlc291cmNlOworCisg
ICAgICAgIHJlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJl
c291cmNlLkV2ZW50LkZyYW1lQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBs
ZXQgZnJhbWUgPSBldmVudC5kYXRhOworICAgICAgICAgICAgZnJhbWVBZGRlZENvdW50Kys7CisK
KyAgICAgICAgICAgIGlmIChmcmFtZUFkZGVkQ291bnQgPD0gNSkgeworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZnJhbWUuZGF0YSwgbnVsbCwgIkZyYW1lIHNob3Vs
ZCBub3QgaGF2ZSBkYXRhLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
RXF1YWwoZnJhbWUub3Bjb2RlLCBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BDb2Rl
cy5CaW5hcnlGcmFtZSwgIkZyYW1lIHNob3VsZCBiZSBiaW5hcnkuIik7CisKKyAgICAgICAgICAg
ICAgICBpZiAoZnJhbWVBZGRlZENvdW50ID09PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChmcmFtZS5pc091dGdvaW5nLCAiRnJhbWUgc2hvdWxkIGJl
IG91dGdvaW5nLiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQodHlwZW9mIGZyYW1lLndhbGx0aW1lID09PSAibnVtYmVyIiwgIkZyYW1lIHNob3VsZCBoYXZl
IHdhbGx0aW1lLiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghZnJhbWUuaXNPdXRnb2luZywgIkZyYW1lIHNo
b3VsZCBiZSBpbmNvbWluZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RUaGF0KGZyYW1lLndhbGx0aW1lID4gbGFzdE1lc3NhZ2VXYWxsdGltZSwgIkZyYW1lIHdh
bGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4iKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsYXN0TWVzc2FnZVdhbGx0aW1lID0gZnJh
bWUud2FsbHRpbWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmcmFtZUFkZGVk
Q291bnQgPT09IDUpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKGBjbG9zZVdlYlNvY2tldENvbm5lY3Rpb24oKWApOworICAgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IHNpemVEaWRD
aGFuZ2VDb3VudCA9IDA7CisKKyAgICAgICAgcmVzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuRXZlbnQuU2l6ZURpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgICAgIHNpemVEaWRDaGFuZ2VDb3VudCsrOworCisgICAgICAgICAgICBpZiAoc2l6
ZURpZENoYW5nZUNvdW50ID09PSAxKQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwodGhpcy5zaXplLCAxMywgIlJlc291cmNlIHNpemUgc2hvdWxkIGJlIDEzIGJ5dGVz
LiIpOworICAgICAgICAgICAgZWxzZSBpZiAoc2l6ZURpZENoYW5nZUNvdW50ID09PSAyKQorICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGhpcy5zaXplLCAxMyArIDEz
LCAiUmVzb3VyY2Ugc2l6ZSBzaG91bGQgaW5jcmVhc2UgYnkgMTMgYnl0ZXMuIik7CisgICAgICAg
ICAgICBlbHNlIGlmIChzaXplRGlkQ2hhbmdlQ291bnQgPT09IDMpCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCh0aGlzLnNpemUsIDEzICsgMTMgKyAyMSwgIlJlc291
cmNlIHNpemUgc2hvdWxkIGluY3JlYXNlIGJ5IDIxIGJ5dGVzLiIpOworICAgICAgICAgICAgZWxz
ZSBpZiAoc2l6ZURpZENoYW5nZUNvdW50ID09PSA0KQorICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwodGhpcy5zaXplLCAxMyArIDEzICsgMjEsICJSZXNvdXJjZSBzaXpl
IHNob3VsZCBub3QgaW5jcmVhc2UuIik7CisgICAgICAgICAgICBlbHNlIGlmIChzaXplRGlkQ2hh
bmdlQ291bnQgPT09IDUpCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bCh0aGlzLnNpemUsIDEzICsgMTMgKyAyMSArIDI1NiwgIlJlc291cmNlIHNpemUgc2hvdWxkIGlu
Y3JlYXNlIGJ5IDI1NiBieXRlcy4iKTsKKworICAgICAgICB9LCByZXNvdXJjZSk7CisgICAgfQor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiV2ViU29ja2V0LkJpbmFy
eUJsb2IiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZWNlaXZlIGJpbmFyeSBibG9i
IFdlYlNvY2tldCBtZXNzYWdlcy4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkZyYW1lLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5GcmFtZS5FdmVudC5SZXNvdXJjZVdhc0FkZGVkLCByZXNvdXJjZVdhc0FkZGVk
LmJpbmQobnVsbCwgcmVzb2x2ZSwgcmVqZWN0KSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVXZWJTb2NrZXRDb25uZWN0aW9uKCJibG9iIilgKTsKKyAg
ICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiV2ViU29ja2V0LkFycmF5QnVmZmVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQg
cmVjZWl2ZSBBcnJheUJ1ZmZlciBXZWJTb2NrZXQgbWVzc2FnZXMuIiwKKyAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5GcmFtZS5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQuUmVzb3VyY2VXYXNBZGRl
ZCwgcmVzb3VyY2VXYXNBZGRlZC5iaW5kKG51bGwsIHJlc29sdmUsIHJlamVjdCkpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlV2ViU29ja2V0Q29ubmVj
dGlvbigiYXJyYXlidWZmZXIiKWApOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgc2VuZGluZyBhbmQgcmVjZWl2aW5nIGJpbmFyeSBk
YXRhLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL2JpbmFyeV93c2gucHkgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnlf
d3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwOTY3NDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2luc3BlY3Rvci9iaW5hcnlfd3NoLnB5CkBAIC0wLDAgKzEsMTggQEAKK2Zyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0K
KworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFz
cworCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgbWVzc2Fn
ZXNfdG9fc2VuZCA9IFsnSGVsbG8sIHdvcmxkIScsICfQn9GA0LjQstC10YIsINCc0LjRgCEnLCAn
JywgYWxsX2Rpc3RpbmN0X2J5dGVzKCldCisgICAgZm9yIG1lc3NhZ2UgaW4gbWVzc2FnZXNfdG9f
c2VuZDoKKyAgICAgICAgIyBGSVhNRTogU2hvdWxkIHVzZSBiZXR0ZXIgQVBJIHRvIHNlbmQgYmlu
YXJ5IG1lc3NhZ2VzIHdoZW4gcHl3ZWJzb2NrZXQgc3VwcG9ydHMgaXQuCisgICAgICAgIGhlYWRl
ciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVyKGNvbW1vbi5PUENPREVfQklOQVJZLCBsZW4obWVzc2Fn
ZSksIDEsIDAsIDAsIDAsIDApCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShoZWFk
ZXIgKyBtZXNzYWdlKQorCisKK2RlZiBhbGxfZGlzdGluY3RfYnl0ZXMoKToKKyAgICByZXR1cm4g
Jycuam9pbihbY2hyKGkpIGZvciBpIGluIHhyYW5nZSgyNTYpXSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5k
LXJlY2VpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhOWNjYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3Nl
bmQtYW5kLXJlY2VpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3RzIHNlbmRp
bmcgYW5kIHJlY2VpdmluZyBXZWJTb2NrZXQgbWVzc2FnZXMuCisKKworPT0gUnVubmluZyB0ZXN0
IHN1aXRlOiBXZWJTb2NrZXQuU2VuZEFuZFJlY2VpdmUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBT
ZW5kQW5kUmVjZWl2ZQorUEFTUzogUmVzb3VyY2Ugc2l6ZSBzaG91bGQgYmUgMzMgYnl0ZXMuCitQ
QVNTOiBGcmFtZSBkYXRhIHNob3VsZCBiZSAnSGVsbG8gV29ybGQhINCf0YDQuNCy0LXRgiDQnNC4
0YAhJworUEFTUzogRnJhbWUgc2hvdWxkIGJlIHRleHQuCitQQVNTOiBGcmFtZSBzaG91bGQgYmUg
b3V0Z29pbmcuCitQQVNTOiBNZXNzYWdlIGlzIHdhbGx0aW1lLgorUEFTUzogUmVzb3VyY2Ugc2l6
ZSBzaG91bGQgZG91YmxlLgorUEFTUzogRnJhbWUgZGF0YSBzaG91bGQgYmUgJ0hlbGxvIFdvcmxk
ISDQn9GA0LjQstC10YIg0JzQuNGAIScKK1BBU1M6IEZyYW1lIHNob3VsZCBiZSB0ZXh0LgorUEFT
UzogRnJhbWUgc2hvdWxkIGJlIGluY29taW5nLgorUEFTUzogRnJhbWUgd2FsbHRpbWUgc2hvdWxk
IGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLgorUEFTUzogRnJhbWUgc2hvdWxkIGNs
b3NlIGNvbm5lY3Rpb24uCitQQVNTOiBGcmFtZSBzaG91bGQgYmUgb3V0Z29pbmcuCitQQVNTOiBG
cmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUuCitQ
QVNTOiBGcmFtZSBzaG91bGQgY2xvc2UgY29ubmVjdGlvbi4KK1BBU1M6IEZyYW1lIHNob3VsZCBi
ZSBpbmNvbWluZy4KK1BBU1M6IEZyYW1lIHdhbGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4g
dGhlIHByZXZpb3VzIG9uZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1h
bmQtcmVjZWl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYzlk
ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlLmh0bWwKQEAgLTAsMCArMSw5OCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIEdsb2JhbCB2YXJpYWJsZSB0byBrZWVw
IGl0IGFsaXZlLgorbGV0IHdlYlNvY2tldCA9IG51bGw7CisKK2Z1bmN0aW9uIGNyZWF0ZVdlYlNv
Y2tldENvbm5lY3Rpb24oKQoreworICAgIHdlYlNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzOi8v
MTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yL3NlbmQtYW5kLXJl
Y2VpdmUiKTsKKworICAgIHdlYlNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB3ZWJTb2NrZXQuc2VuZCgiSGVsbG8gV29ybGQhINCf0YDQuNCy0LXRgiDQnNC40YAhIik7
CisgICAgfTsKKworICAgIHdlYlNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICB3ZWJTb2NrZXQuY2xvc2UoKTsKKyAgICB9OworfQorCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIldlYlNv
Y2tldC5TZW5kQW5kUmVjZWl2ZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiU2VuZEFuZFJlY2VpdmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCBz
ZW5kIGFuZCByZWNlaXZlIHRleHQgZnJhbWVzLiIsCisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuRnJhbWUuc2luZ2xlRmlyZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50LlJlc291cmNlV2FzQWRkZWQsIGZ1bmN0aW9u
KGV2ZW50KSB7CisKKyAgICAgICAgICAgICAgICBsZXQgZnJhbWVBZGRlZENvdW50ID0gMDsKKyAg
ICAgICAgICAgICAgICBsZXQgbGFzdE1lc3NhZ2VXYWxsdGltZTsKKyAgICAgICAgICAgICAgICBs
ZXQgcmVzb3VyY2UgPSBldmVudC5kYXRhLnJlc291cmNlOworCisgICAgICAgICAgICAgICAgcmVz
b3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZl
bnQuRnJhbWVBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IGZyYW1lID0gZXZlbnQuZGF0YTsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVBZGRlZENvdW50
Kys7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZyYW1lQWRkZWRDb3VudCA9PT0gMSkgewor
CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGZyYW1l
LmRhdGEsICJIZWxsbyBXb3JsZCEg0J/RgNC40LLQtdGCINCc0LjRgCEiLCAiRnJhbWUgZGF0YSBz
aG91bGQgYmUgJ0hlbGxvIFdvcmxkISDQn9GA0LjQstC10YIg0JzQuNGAISciKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZnJhbWUub3Bjb2RlLCBX
ZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BDb2Rlcy5UZXh0RnJhbWUsICJGcmFtZSBz
aG91bGQgYmUgdGV4dC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChmcmFtZS5pc091dGdvaW5nLCAiRnJhbWUgc2hvdWxkIGJlIG91dGdvaW5nLiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHR5cGVv
ZiBmcmFtZS53YWxsdGltZSA9PT0gIm51bWJlciIsICJNZXNzYWdlIGlzIHdhbGx0aW1lLiIpOwor
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJhbWVBZGRlZENvdW50ID09PSAyKSB7
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZnJh
bWUuZGF0YSwgIkhlbGxvIFdvcmxkISDQn9GA0LjQstC10YIg0JzQuNGAISIsICJGcmFtZSBkYXRh
IHNob3VsZCBiZSAnSGVsbG8gV29ybGQhINCf0YDQuNCy0LXRgiDQnNC40YAhJyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChmcmFtZS5vcGNvZGUs
IFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5PcENvZGVzLlRleHRGcmFtZSwgIkZyYW1l
IHNob3VsZCBiZSB0ZXh0LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KCFmcmFtZS5pc091dGdvaW5nLCAiRnJhbWUgc2hvdWxkIGJlIGluY29taW5n
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGZy
YW1lLndhbGx0aW1lID4gbGFzdE1lc3NhZ2VXYWxsdGltZSwgIkZyYW1lIHdhbGx0aW1lIHNob3Vs
ZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4iKTsKKworICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGZyYW1lQWRkZWRDb3VudCA9PT0gMykgeworCisgICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGZyYW1lLm9wY29kZSwgV2ViSW5z
cGVjdG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29kZXMuQ29ubmVjdGlvbkNsb3NlRnJhbWUsICJG
cmFtZSBzaG91bGQgY2xvc2UgY29ubmVjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChmcmFtZS5pc091dGdvaW5nLCAiRnJhbWUgc2hvdWxk
IGJlIG91dGdvaW5nLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RUaGF0KGZyYW1lLndhbGx0aW1lID4gbGFzdE1lc3NhZ2VXYWxsdGltZSwgIkZyYW1lIHdh
bGx0aW1lIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4iKTsKKworICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZyYW1lQWRkZWRDb3VudCA9PT0gNCkgeworCisg
ICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGZyYW1lLm9w
Y29kZSwgV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29kZXMuQ29ubmVjdGlvbkNs
b3NlRnJhbWUsICJGcmFtZSBzaG91bGQgY2xvc2UgY29ubmVjdGlvbi4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghZnJhbWUuaXNPdXRnb2luZywg
IkZyYW1lIHNob3VsZCBiZSBpbmNvbWluZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChmcmFtZS53YWxsdGltZSA+IGxhc3RNZXNzYWdlV2FsbHRp
bWUsICJGcmFtZSB3YWxsdGltZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBv
bmUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBsYXN0TWVzc2FnZVdhbGx0aW1lID0gZnJh
bWUud2FsbHRpbWU7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBsZXQg
c2l6ZURpZENoYW5nZUNvdW50ID0gMDsKKworICAgICAgICAgICAgICAgIHJlc291cmNlLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlLkV2ZW50LlNpemVEaWRDaGFuZ2UsIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIHNpemVEaWRDaGFuZ2VDb3VudCsr
OworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaXplRGlkQ2hhbmdlQ291bnQgPT09IDEpCisg
ICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRoaXMuc2l6
ZSwgMzMsICJSZXNvdXJjZSBzaXplIHNob3VsZCBiZSAzMyBieXRlcy4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZSBpZiAoc2l6ZURpZENoYW5nZUNvdW50ID09PSAyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCh0aGlzLnNpemUsIDMzICogMiwg
IlJlc291cmNlIHNpemUgc2hvdWxkIGRvdWJsZS4iKTsKKworICAgICAgICAgICAgICAgIH0sIHJl
c291cmNlKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGBjcmVhdGVXZWJTb2NrZXRDb25uZWN0aW9uKClgKTsKKyAgICAgICAgfQor
ICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIHNlbmRpbmcg
YW5kIHJlY2VpdmluZyBXZWJTb2NrZXQgbWVzc2FnZXMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9p
bnNwZWN0b3Ivc2VuZC1hbmQtcmVjZWl2ZV93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNlaXZlX3dzaC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2YxY2EwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0
b3Ivc2VuZC1hbmQtcmVjZWl2ZV93c2gucHkKQEAgLTAsMCArMSwxMSBAQAorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCk6CisgICAgcGFzcyAjIEFsd2F5cyBhY2NlcHQuCisKKworZGVmIHdlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICAjIEVjaG8gbWVzc2FnZSBiYWNrCisg
ICAgbWVzc2FnZSA9IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpCisgICAgbXNndXRp
bC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDY5MmM5ZjAuLjdiMGJhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDE3LTA0LTEzICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYlNvY2tldHM6IG1lc3NhZ2VzIHdpdGggbm9u
LWxhdGluIGxldHRlcnMgYXJlIGRpc3BsYXllZCBpbmNvcnJlY3RseQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzYwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEFkZCBwYXlsb2FkTGVuZ3RoIHByb3Bl
cnR5LCB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgc2l6ZS4gV2hlbiBwYXlsb2FkTGVuZ3RoIGlz
IHVuYXZhaWxhYmxlLAorICAgICAgICBpdCBpcyBjYWxjdWxhdGVkIGZyb20gcGF5bG9hZERhdGEg
YnkgV2ViIEluc3BlY3RvciBmcm9udGVuZC4KKworICAgICAgICBUaGlzIGZpeGVzIDx3ZWJraXQu
b3JnL2IvMTcwNjA5PiBXZWIgSW5zcGVjdG9yOiBXZWJTb2NrZXRzOiBUcmFuc2ZlcnJlZCBzaXpl
IGlzIGluY29ycmVjdC4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpz
b246CisKIDIwMTctMDQtMTEgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIERpc2FibGUgb3V0ZGF0ZWQgV3JpdGFibGVTdHJlYW0gQVBJCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCmluZGV4IGVi
NTQ1YWEuLjI3ZGI5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCkBAIC0xMTMsNyArMTEzLDggQEAKICAgICAgICAg
ICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3Bjb2RlIiwg
InR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIldlYlNvY2tldCBmcmFtZSBvcGNvZGUu
IiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWFzayIsICJ0eXBlIjogImJvb2xlYW4i
LCAiZGVzY3JpcHRpb24iOiAiV2ViU29ja2V0IGZyYW1lIG1hc2suIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicGF5bG9hZERhdGEiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiV2ViU29ja2V0IGZyYW1lIHBheWxvYWQgZGF0YS4iIH0KKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInBheWxvYWREYXRhIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IldlYlNvY2tldCBmcmFtZSBwYXlsb2FkIGRhdGEuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicGF5bG9hZExlbmd0aCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJX
ZWJTb2NrZXQgZnJhbWUgcGF5bG9hZCBsZW5ndGggaW4gYnl0ZXMuIiB9CiAgICAgICAgICAgICBd
CiAgICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMGZiNzk0Li42ZDk5Yzc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDQtMTMgIE5pa2l0YSBWYXNpbHlldiAg
PG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2ViU29ja2V0
czogbWVzc2FnZXMgd2l0aCBub24tbGF0aW4gbGV0dGVycyBhcmUgZGlzcGxheWVkIGluY29ycmVj
dGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA3
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgQWRk
IHBheWxvYWRMZW5ndGggcHJvcGVydHksIHdoaWNoIGlzIHVzZWQgdG8gZGlzcGxheSBzaXplLiBX
aGVuIHBheWxvYWRMZW5ndGggaXMgdW5hdmFpbGFibGUsCisgICAgICAgIGl0IGlzIGNhbGN1bGF0
ZWQgZnJvbSBwYXlsb2FkRGF0YSBieSBXZWIgSW5zcGVjdG9yIGZyb250ZW5kLgorCisgICAgICAg
IFRoaXMgZml4ZXMgPHdlYmtpdC5vcmcvYi8xNzA2MDk+IFdlYiBJbnNwZWN0b3I6IFdlYlNvY2tl
dHM6IFRyYW5zZmVycmVkIHNpemUgaXMgaW5jb3JyZWN0LgorCisgICAgICAgIFRlc3RzOiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9iaW5hcnkuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3Ivc2VuZC1h
bmQtcmVjZWl2ZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0Fn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkUmVj
ZWl2ZVdlYlNvY2tldEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtB
Z2VudDo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKToKKwogMjAxNy0wNC0xMSAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNd
IEFsbG93IG1vZGVybi1tZWRpYS1jb250cm9scyB0byBiZSBwcm92aWRlZCB0aHJvdWdoIFdlYktp
dEFkZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmNwcAppbmRleCA1MGE5Yjk5Li5mZDZhOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtNjExLDcgKzYx
MSw4IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJh
bWUodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjCiAgICAgYXV0byBmcmFtZU9iamVjdCA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OldlYlNvY2tldEZyYW1lOjpjcmVhdGUoKQogICAg
ICAgICAuc2V0T3Bjb2RlKGZyYW1lLm9wQ29kZSkKICAgICAgICAgLnNldE1hc2soZnJhbWUubWFz
a2VkKQotICAgICAgICAuc2V0UGF5bG9hZERhdGEoU3RyaW5nKGZyYW1lLnBheWxvYWQsIGZyYW1l
LnBheWxvYWRMZW5ndGgpKQorICAgICAgICAuc2V0UGF5bG9hZERhdGEoU3RyaW5nOjpmcm9tVVRG
OFdpdGhMYXRpbjFGYWxsYmFjayhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSkK
KyAgICAgICAgLnNldFBheWxvYWRMZW5ndGgoZnJhbWUucGF5bG9hZExlbmd0aCkKICAgICAgICAg
LnJlbGVhc2UoKTsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d2ViU29ja2V0RnJhbWVSZWNl
aXZlZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgdGltZXN0YW1w
KCksIFdURk1vdmUoZnJhbWVPYmplY3QpKTsKIH0KQEAgLTYyMSw3ICs2MjIsOCBAQCB2b2lkIElu
c3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29ucwogICAgIGF1dG8gZnJhbWVPYmplY3QgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpOZXR3b3JrOjpXZWJTb2NrZXRGcmFtZTo6Y3JlYXRlKCkKICAgICAgICAgLnNldE9wY29k
ZShmcmFtZS5vcENvZGUpCiAgICAgICAgIC5zZXRNYXNrKGZyYW1lLm1hc2tlZCkKLSAgICAgICAg
LnNldFBheWxvYWREYXRhKFN0cmluZyhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3Ro
KSkKKyAgICAgICAgLnNldFBheWxvYWREYXRhKFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0aW4xRmFs
bGJhY2soZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkpCisgICAgICAgIC5zZXRQ
YXlsb2FkTGVuZ3RoKGZyYW1lLnBheWxvYWRMZW5ndGgpCiAgICAgICAgIC5yZWxlYXNlKCk7CiAg
ICAgbV9mcm9udGVuZERpc3BhdGNoZXItPndlYlNvY2tldEZyYW1lU2VudChJZGVudGlmaWVyc0Zh
Y3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgdGltZXN0YW1wKCksIFdURk1vdmUoZnJhbWVP
YmplY3QpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGVmMTZiMDQuLjhiYzUwMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA0LTEzICBO
aWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFdlYlNvY2tldHM6IG1lc3NhZ2VzIHdpdGggbm9uLWxhdGluIGxldHRlcnMgYXJlIGRp
c3BsYXllZCBpbmNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJv
LgorCisgICAgICAgIEFkZCBwYXlsb2FkTGVuZ3RoIHByb3BlcnR5LCB3aGljaCBpcyB1c2VkIHRv
IGRpc3BsYXkgc2l6ZS4gV2hlbiBwYXlsb2FkTGVuZ3RoIGlzIHVuYXZhaWxhYmxlLAorICAgICAg
ICBpdCBpcyBjYWxjdWxhdGVkIGZyb20gcGF5bG9hZERhdGEgYnkgV2ViIEluc3BlY3RvciBmcm9u
dGVuZC4KKworICAgICAgICBUaGlzIGZpeGVzIDx3ZWJraXQub3JnL2IvMTcwNjA5PiBXZWIgSW5z
cGVjdG9yOiBXZWJTb2NrZXRzOiBUcmFuc2ZlcnJlZCBzaXplIGlzIGluY29ycmVjdC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRnJhbWVSZXNvdXJjZU1hbmFnZXIuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLl93
ZWJTb2NrZXRGcmFtZVJlY2VpdmVkT3JTZW50KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01v
ZGVscy9XZWJTb2NrZXRSZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2Nr
ZXRSZXNvdXJjZS5wcm90b3R5cGUuYWRkRnJhbWUpOgorCiAyMDE3LTA0LTEwICBOaWtpdGEgVmFz
aWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdl
YlNvY2tldHM6IERvbid0IGNsaXAgZGF0YSBpbiB0aGUgZGF0YSBncmlkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291
cmNlTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0ZyYW1lUmVzb3VyY2VNYW5hZ2VyLmpzCmluZGV4IDc1YTBiMDkuLjg4NTdiOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0ZyYW1lUmVzb3VyY2VNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0ZyYW1lUmVzb3VyY2VNYW5hZ2VyLmpzCkBAIC0yOTAsMTIg
KzI5MCwxMCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIgPSBjbGFzcyBGcmFt
ZVJlc291cmNlTWFuYWdlciBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAvLyBEYXRhIGdvaW5n
IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIGlzIGFsd2F5cyBtYXNrZWQuCiAgICAgICAg
IGxldCBpc091dGdvaW5nID0gISFyZXNwb25zZS5tYXNrOwogCi0gICAgICAgIGxldCBkYXRhID0g
cmVzcG9uc2UucGF5bG9hZERhdGE7Ci0gICAgICAgIGxldCBvcGNvZGUgPSByZXNwb25zZS5vcGNv
ZGU7Ci0KKyAgICAgICAgbGV0IHtwYXlsb2FkRGF0YSwgcGF5bG9hZExlbmd0aCwgb3Bjb2RlfSA9
IHJlc3BvbnNlOwogICAgICAgICBsZXQgZWxhcHNlZFRpbWUgPSBXZWJJbnNwZWN0b3IudGltZWxp
bmVNYW5hZ2VyLmNvbXB1dGVFbGFwc2VkVGltZSh0aW1lc3RhbXApOwogCi0gICAgICAgIHJlc291
cmNlLmFkZEZyYW1lKGRhdGEsIGlzT3V0Z29pbmcsIG9wY29kZSwgdGltZXN0YW1wLCBlbGFwc2Vk
VGltZSk7CisgICAgICAgIHJlc291cmNlLmFkZEZyYW1lKHBheWxvYWREYXRhLCBwYXlsb2FkTGVu
Z3RoLCBpc091dGdvaW5nLCBvcGNvZGUsIHRpbWVzdGFtcCwgZWxhcHNlZFRpbWUpOwogICAgIH0K
IAogICAgIG1hcmtSZXNvdXJjZVJlcXVlc3RBc1NlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0
SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9XZWJTb2NrZXRSZXNvdXJjZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9XZWJTb2NrZXRSZXNvdXJjZS5qcwppbmRleCAxMGJmNzQ0Li5h
OTFkNTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvV2ViU29ja2V0UmVzb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1dlYlNvY2tldFJlc291cmNlLmpzCkBAIC01OSw3ICs1OSw3IEBA
IFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZSA9IGNsYXNzIFdlYlNvY2tldFJlc291cmNl
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlJlCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5FdmVudC5SZWFkeVN0YXRlQ2hh
bmdlZCwge3ByZXZpb3VzU3RhdGUsIHN0YXRlfSk7CiAgICAgfQogCi0gICAgYWRkRnJhbWUoZGF0
YSwgaXNPdXRnb2luZywgb3Bjb2RlLCB0aW1lc3RhbXAsIGVsYXBzZWRUaW1lKQorICAgIGFkZEZy
YW1lKGRhdGEsIHBheWxvYWRMZW5ndGgsIGlzT3V0Z29pbmcsIG9wY29kZSwgdGltZXN0YW1wLCBl
bGFwc2VkVGltZSkKICAgICB7CiAgICAgICAgIGxldCBmcmFtZURhdGE7CiAKQEAgLTcyLDcgKzcy
LDExIEBAIFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZSA9IGNsYXNzIFdlYlNvY2tldFJl
c291cmNlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlJlCiAgICAgICAgIGxldCBmcmFtZSA9IHtkYXRh
OiBmcmFtZURhdGEsIGlzT3V0Z29pbmcsIG9wY29kZSwgd2FsbHRpbWU6IHRoaXMuX3dhbGx0aW1l
Rm9yV2ViU29ja2V0VGltZXN0YW1wKHRpbWVzdGFtcCl9OwogICAgICAgICB0aGlzLl9mcmFtZXMu
cHVzaChmcmFtZSk7CiAKLSAgICAgICAgdGhpcy5pbmNyZWFzZVNpemUoZGF0YS5sZW5ndGgsIGVs
YXBzZWRUaW1lKTsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEwLjMpOiBgcGF5bG9h
ZExlbmd0aGAgZGlkIG5vdCBleGlzdCBpbiAxMC4zIGFuZCBlYXJsaWVyLgorICAgICAgICBpZiAo
cGF5bG9hZExlbmd0aCA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgcGF5bG9hZExlbmd0aCA9
IG5ldyBUZXh0RW5jb2RlcigidXRmLTgiKS5lbmNvZGUoZGF0YSkubGVuZ3RoOworCisgICAgICAg
IHRoaXMuaW5jcmVhc2VTaXplKHBheWxvYWRMZW5ndGgsIGVsYXBzZWRUaW1lKTsKIAogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVz
b3VyY2UuRXZlbnQuRnJhbWVBZGRlZCwgZnJhbWUpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>