<?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>117508</bug_id>
          
          <creation_ts>2013-06-11 07:01:04 -0700</creation_ts>
          <short_desc>[CSS Regions] Add new regionOversetChange event</short_desc>
          <delta_ts>2013-07-02 00:54:05 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>117833</dependson>
          <blocked>57312</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Radu Stavila">stavila</reporter>
          <assigned_to name="Radu Stavila">stavila</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mihnea</cc>
    
    <cc>stavila</cc>
    
    <cc>syoichi</cc>
    
    <cc>timothy</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>899192</commentid>
    <comment_count>0</comment_count>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-11 07:01:04 -0700</bug_when>
    <thetext>Add new regionOversetChange event according to http://www.w3.org/TR/2013/WD-css3-regions-20130528/#named-flow-events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902101</commentid>
    <comment_count>1</comment_count>
      <attachid>205076</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 05:42:13 -0700</bug_when>
    <thetext>Created attachment 205076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902128</commentid>
    <comment_count>2</comment_count>
      <attachid>205083</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 06:43:56 -0700</bug_when>
    <thetext>Created attachment 205083
Patch without inspector changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902136</commentid>
    <comment_count>3</comment_count>
      <attachid>205083</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-06-20 06:51:05 -0700</bug_when>
    <thetext>Comment on attachment 205083
Patch without inspector changes

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

&gt; Source/WebCore/rendering/RenderRegion.cpp:136
&gt; +    if (isValid() &amp;&amp; node() &amp;&amp; node()-&gt;isElementNode())

Can node ever actually be anything else than Element? If not then the element test should be removed (toElement() asserts).

It would be nicer to reverse the conditions and bail out fast on error case.

&gt; Source/WebCore/rendering/RenderRegion.cpp:145
&gt; +    if (node() &amp;&amp; node()-&gt;isElementNode())
&gt; +        toElement(node())-&gt;setRegionOversetState(state);

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902138</commentid>
    <comment_count>4</comment_count>
      <attachid>205083</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 06:53:53 -0700</bug_when>
    <thetext>Comment on attachment 205083
Patch without inspector changes

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

&gt;&gt; Source/WebCore/rendering/RenderRegion.cpp:136
&gt;&gt; +    if (isValid() &amp;&amp; node() &amp;&amp; node()-&gt;isElementNode())
&gt; 
&gt; Can node ever actually be anything else than Element? If not then the element test should be removed (toElement() asserts).
&gt; 
&gt; It would be nicer to reverse the conditions and bail out fast on error case.

Yes, it is possible for it not to be an element, when using regions-based multicol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902149</commentid>
    <comment_count>5</comment_count>
      <attachid>205083</attachid>
    <who name="alan">zalan</who>
    <bug_when>2013-06-20 07:30:23 -0700</bug_when>
    <thetext>Comment on attachment 205083
Patch without inspector changes

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

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:783
&gt; +        updatePreviousRegionCount();

any particular reason why just not do &apos;m_previousRegionCount = m_regionList.size();&apos; instead?

&gt; Source/WebCore/rendering/RenderFlowThread.h:194
&gt; +    bool shouldDispatchRegionOversetChangeEvent() { return m_dispatchRegionOversetChangeEvent; }

missing const

&gt;&gt; Source/WebCore/rendering/RenderRegion.cpp:145
&gt;&gt; +        toElement(node())-&gt;setRegionOversetState(state);
&gt; 
&gt; Here too.

Shouldn&apos;t this check against the same set of conditions as regionOversetState does? (diff: isValid())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902151</commentid>
    <comment_count>6</comment_count>
      <attachid>205083</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 07:35:57 -0700</bug_when>
    <thetext>Comment on attachment 205083
Patch without inspector changes

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

&gt;&gt; Source/WebCore/rendering/RenderFlowThread.cpp:783
&gt;&gt; +        updatePreviousRegionCount();
&gt; 
&gt; any particular reason why just not do &apos;m_previousRegionCount = m_regionList.size();&apos; instead?

No, no particular reason... just thought it looked cleaner.

&gt;&gt; Source/WebCore/rendering/RenderFlowThread.h:194
&gt;&gt; +    bool shouldDispatchRegionOversetChangeEvent() { return m_dispatchRegionOversetChangeEvent; }
&gt; 
&gt; missing const

Will fix.

&gt;&gt;&gt; Source/WebCore/rendering/RenderRegion.cpp:145
&gt;&gt;&gt; +        toElement(node())-&gt;setRegionOversetState(state);
&gt;&gt; 
&gt;&gt; Here too.
&gt; 
&gt; Shouldn&apos;t this check against the same set of conditions as regionOversetState does? (diff: isValid())

This is part of the old code, I did not change it (I just moved it from RenderRegion.h to RenderRegion.cpp).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902153</commentid>
    <comment_count>7</comment_count>
      <attachid>205090</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 07:47:56 -0700</bug_when>
    <thetext>Created attachment 205090
Final patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902154</commentid>
    <comment_count>8</comment_count>
      <attachid>205090</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 07:54:18 -0700</bug_when>
    <thetext>Comment on attachment 205090
Final patch

Rejecting attachment 205090 from commit-queue.

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

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/908131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902155</commentid>
    <comment_count>9</comment_count>
      <attachid>205091</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 08:01:17 -0700</bug_when>
    <thetext>Created attachment 205091
Final patch (added reviewed by to change log)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902178</commentid>
    <comment_count>10</comment_count>
      <attachid>205091</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 09:13:33 -0700</bug_when>
    <thetext>Comment on attachment 205091
Final patch (added reviewed by to change log)

Clearing flags on attachment: 205091

Committed r151777: &lt;http://trac.webkit.org/changeset/151777&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205076</attachid>
            <date>2013-06-20 05:42:13 -0700</date>
            <delta_ts>2013-06-20 06:43:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>117508.patch</filename>
            <type>text/plain</type>
            <size>79911</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTQwMjI2Li4zODUyNWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDYt
MjAgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gQWRkIG5ldyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1MDgKKworICAgICAgICBDaGFuZ2Vk
IHJlZ2lvbkxheW91dFVwZGF0ZSB0ZXN0cyB0byByZWdpb25PdmVyc2V0Q2hhbmdlIGFuZCBhZGRl
ZCBuZXcgdGVzdHMgZm9yIHJlZ2lvbk92ZXJzZXRDaGFuZ2UuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sOgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1
dG8taGVpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdp
b25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lv
bnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQt
cmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJv
eC1uby1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9t
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ct
ZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1m
bG93LWV2ZW50LXRhcmdldC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sOgorCiAyMDEzLTA2LTIwICBab2x0
YW4gQXJ2YWkgIDx6YXJ2YWlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZp
ZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93LWV4cGVj
dGVkLnR4dAppbmRleCBjODFhMDVlLi5kYjAxZDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hZGQtdG8tZmxvdy1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTEgQEAKLVRlc3RzIHJlZ2lv
bkxheW91dEV2ZW50CitUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogIEZsb3cgY29udGVudAogUEFTUyBldmVudC50YXJnZXQubmFt
ZSBpcyAiYXJ0aWNsZSIKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCmluZGV4IGZhY2RjMjcu
LmM2YjJkMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCkBAIC0xNyw3ICsx
Nyw3IEBACiAuYmxvY2sgewogICAgZGlzcGxheTpibG9jazsKIH0KLSNyZWdpb25fMSwgI3JlZ2lv
bl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7fQorI3JlZ2lvbl8x
LCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDsgYm9y
ZGVyOiAxcHggc29saWQgcmVkO30KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTM0LDcg
KzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+CiAKIDxzY3Jp
cHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IikKKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCIpCiAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ0LDE2ICs0NCwxOSBAQAogICAgICAg
ICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlZ2lvbik7CiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9Ci0gICAgCi0gICAgdmFyIGNvdW50
ID0gMDsKLSAgICBmdW5jdGlvbiByZWdpb25MYXlvdXRVcGRhdGVkKGV2ZW50KSB7CisKKyAgICB2
YXIgZXZlbnRDb3VudCA9IDA7CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2hvdWxkQmUoImV2ZW50Q291bnQiLCAiMiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsK
ICAgICAgICAgCi0gICAgICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICAgZXZlbnQu
dGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJl
Z2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAgCisgICAgICAgIGlmICgrK2V2ZW50Q291
bnQgPiAxKSB7CiAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJl
Z2lvbl8yIGlzIGFkZGVkIHRvIGZsb3cKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIApAQCAtNjIsNyArNjUsNyBAQAogCiAgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewog
ICAgICAgICB2YXIgZmxvdyA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxv
dy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlv
dXRVcGRhdGVkKTsKKyAgICAgICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25v
dmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAKICAgICAgICAg
ZGVidWcoIkZsb3cgY29udGVudCIpOwogICAgICAgICBmbG93Q29udGVudCgicmVnaW9uXzEiLCAi
YXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1u
YW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVmNzU5MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hdXRvLWhlaWdodC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhlIHJl
Z2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9yIHJlZ2lvbnMgd2l0aCBoZWlnaHQ6YXV0bworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9u
cy4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMDc1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwK
QEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzog
YXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAj
cmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRp
Y2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJs
b2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4Owor
ICAgICAgICBoZWlnaHQ6YXV0bzsKKyAgICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIHJlZDsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgIH0KKyAgICAuY29u
dGVudCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICBib3JkZXI6
IDNweCBkYXNoZWQgYmx1ZTsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAx
ODBweDsKKyAgICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgLXdlYmtpdC1yZWdpb24tYnJlYWst
YmVmb3JlOiBhbHdheXM7CisgICAgICAgIGhlaWdodDogMTYwcHg7CisgICAgfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFydGljbGUiPgorICAgICAgICA8ZGl2Pgor
ICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNzPSJjb250ZW50Ij48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29udGVudCI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0icmVnaW9uXzEiPjwvZGl2PgorICAgIDxk
aXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIHdp
dGggaGVpZ2h0OmF1dG8iKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjEiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdh
aXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAgICAgICAgICBzZXRU
aW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxv
d0J5TmFtZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3Rl
bmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVn
aW9ucy4uLiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAg
fQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLWV4cGVjdGVkLnR4dAppbmRleCBjNWIxYjRjLi42NGQ5NDlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IGZvciBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyOTQ0IFtDU1MgUmVnaW9uc10gQ3Jh
c2ggd2hlbiBkaXNwYXRjaGluZyByZWdpb25sYXlvdXR1cGRhdGUuIFRoZSB0ZXN0IHBhc3NlcyBp
ZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3NlcnQuCitUaGUgdGVzdCBwYXNzZXMgaWYgdGhlcmUg
aXMgbm8gY3Jhc2ggb3IgYXNzZXJ0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LWNyYXNoLmh0bWwKaW5kZXggZmU2M2MzYi4uODFmZjNjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLmh0bWwKQEAgLTI3LDI0ICsyNywyNSBAQAogICAgICAgICA8ZGl2IGlkPSJyZWdpb24iPgog
ICAgICAgICA8L2Rpdj4KICAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5NDQgW0NT
UyBSZWdpb25zXSBDcmFzaCB3aGVuIGRpc3BhdGNoaW5nIHJlZ2lvbmxheW91dHVwZGF0ZS4gVGhl
IHRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5vIGNyYXNoIG9yIGFzc2VydC4iKTsKKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3Nl
cnQuIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGR1bW15SGFuZGxlciAoZXZ0KSB7
Ci0gICAgICAgICAgICBldnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lv
bmxheW91dHVwZGF0ZSIsIGR1bW15SGFuZGxlcik7CisgICAgICAgICAgICBldnQudGFyZ2V0LnJl
bW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhhbmRs
ZXIpOworICAgICAgICAgICAgZGVidWcoIlRoaXMgbGluZSBzaG91bGQgbm90IGFwcGVhciEiKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93cyA9IGRvY3VtZW50LndlYmtpdEdldE5hbWVkRmxvd3MoKTsKLSAgICAg
ICAgICAgIG5hbWVkRmxvd3NbImZsb3ciXS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25s
YXlvdXR1cGRhdGUiLCBkdW1teUhhbmRsZXIpOworICAgICAgICAgICAgbmFtZWRGbG93c1siZmxv
dyJdLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhh
bmRsZXIpOwogICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpOwogICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKTsKICAgICAgICAgICAgIGNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gIjYw
MHB4IjsKIAotICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSByZWdpb25sYXlvdXR1cGRhdGUgZXZl
bnQuCisgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHJlZ2lvbm92ZXJzZXRjaGFuZ2UgZXZlbnQu
CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKIAogICAgICAgICAgICAgLy8g
VHJhbnNpdGlvbiB0aGUgZmxvdyB0byB0aGUgIk5VTEwiIHN0YXRlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBl
Y3RlZC50eHQKaW5kZXggZjkzZTljNzkuLjdjNzkzMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3RzIHJlZ2lvbkxheW91dEV2ZW50CitUZXN0cyByZWdp
b25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGVhMmIyMTku
LjgyMGJkOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRj
aGVkIHdoZW4gdGhlIHJlZ2lvbiBjaGFpbiBpcyByZW1vdmVkCitUZXN0cyByZWdpb25PdmVyc2V0
Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQgd2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQK
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDYgKzgsNyBAQCBQQVNTIGV2ZW50
LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uIDEKIFJlbW92aW5nIHJl
Z2lvbiAyCiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBldmVudENv
dW50IGlzIDIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LW5vLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLmh0bWwKaW5kZXggMjdmZTYzMi4uYmI0NmZhMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LW5vLXJlZ2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0
LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sCkBAIC0zNSw3ICszNSw3IEBACiA8L2Rp
dj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQg
YmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSByZWdpb24gY2hhaW4gaXMgcmVtb3ZlZCIpOworICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQg
d2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQiKTsKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDksMTIgKzQ5LDE3IEBACiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9CiAKLSAgICB2YXIgY291bnQgPSAw
OwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZlbnQpIHsKKyAgICBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIHZhciBldmVudENvdW50ID0gMDsK
KyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsKLSAgICAg
ICAgaWYgKCsrY291bnQgPiAxKSB7Ci0gICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlvdXRVcGRhdGVk
KTsKLSAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQg
PiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJr
aXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC02OCw3
ICs3Myw3IEBACiAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgICAgIHZhciBmbG93
ID0gZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOwotICAgICAgICBmbG93LmFkZEV2ZW50TGlzdGVu
ZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAg
ICAgICBmbG93LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBy
ZWdpb25PdmVyc2V0Q2hhbmdlZCk7CiAKICAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOwog
ICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW5v
LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIyOTQ2
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQgZm9yIHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4uLgorUEFTUyBldmVudC50YXJn
ZXQubmFtZSBpcyAiYXJ0aWNsZSIKK0VuZ2FnaW5nIGZsZXhib3guLi4KK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4t
ZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQzMGEzMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNl
dC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Vi
a2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNr
OworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxv
dy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRp
c3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAg
IG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6MTkwcHg7CisgICAgICAgIHdpZHRoOjIwMHB4
OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgICAgIHBhZGRpbmc6IDVweDsK
KyAgICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7CisgICAgICAgIC13ZWJraXQtZmxleC1iYXNp
czogMTAwJTsKKyAgICB9CisgICAgI3JlZ2lvbl8yIHsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWJh
c2lzOiAzMCU7CisgICAgfQorICAgIC5jb250ZW50IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47CisgICAgICAgIGJvcmRlcjogM3B4IGRhc2hlZCBibHVlOworICAgICAgICBtYXJn
aW46IDVweDsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAxNDBweDsKKyAg
ICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgaGVpZ2h0OiAxNjBweDsKKyAgICB9CisgICAgI2Zs
ZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKKyAgICAgICAgbWFyZ2lu
OiA1cHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFy
dGljbGUiPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNz
PSJjb250ZW50Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29u
dGVudCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0i
ZmxleGJveCI+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0icmVnaW9uXzIiPjwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9y
IHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcyIpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIGZ1bmN0aW9uIGZsb3dDb250ZW50KGZsb3dO
YW1lKSB7CisgICAgICAgICAgICB2YXIgcmVnaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl8xIik7CisgICAgICAgICAgICByZWdpb24uc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBm
bG93TmFtZTsKKyAgICAgICAgICAgIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb25fMiIpOworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxv
d05hbWU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZXZlbnRGaXJlZENvdW50ID0gMDsKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVu
dEZpcmVkQ291bnQiLCAiMSIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBFbmFibGVGbGV4Ym94KCkgeworICAgICAgICAgICAgZGVi
dWcoIkVuZ2FnaW5nIGZsZXhib3guLi4iKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImZsZXhib3giKS5zdHlsZS5kaXNwbGF5ID0gIi13ZWJraXQtZmxleCI7CisKKyAgICAg
ICAgICAgIC8vIHdhaXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsr
ZXZlbnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRo
ZSBmbGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVu
YWJsZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3Rh
cnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFt
ZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3RlbmVyKCJ3
ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4u
LiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKKyAgICA8
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3Zl
cnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODE4ZGU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUZXN0cyB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBmb3IgcmVn
aW9ucyBpbnNpZGUgZmxleGJveGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitG
bG93aW5nIGNvbnRlbnQgaW50byByZWdpb25zLi4uCitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlz
ICJhcnRpY2xlIgorRW5nYWdpbmcgZmxleGJveC4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBp
cyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJlZENvdW50IGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gt
b3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOTA5MjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9u
LWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGlj
bGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVy
OiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7Cisg
ICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpo
aWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6YXV0bzsKKyAg
ICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICAg
ICAgcGFkZGluZzogNXB4OworICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTsKKyAgICAgICAg
LXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlOworICAgIH0KKyAgICAjcmVnaW9uXzIgeworICAgICAg
ICAtd2Via2l0LWZsZXgtYmFzaXM6IDcwJTsKKyAgICB9CisgICAgLmNvbnRlbnQgeworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgYm9yZGVyOiAzcHggZGFzaGVkIGJs
dWU7CisgICAgICAgIG1hcmdpbjogNXB4OworICAgIH0KKyAgICAjcGFydDEgeworICAgICAgICBo
ZWlnaHQ6IDcwcHg7CisgICAgfQorICAgICNwYXJ0MiB7CisgICAgICAgIGhlaWdodDogODBweDsK
KyAgICB9CisgICAgI2ZsZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsK
KyAgICAgICAgbWFyZ2luOiA1cHg7CisgICAgICAgIHdpZHRoOiAyNDBweDsKKyAgICAgICAgaGVp
Z2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAg
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAg
ICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQxIiBjbGFzcz0iY29udGVudCI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGlkPSJwYXJ0MiIgY2xhc3M9ImNvbnRlbnQiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgaWQ9ImZsZXhib3giPgor
ICAgICAgICA8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bl8yIj48L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIGlu
c2lkZSBmbGV4Ym94ZXMiKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjIiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gRW5hYmxlRmxleGJveCgpIHsKKyAgICAgICAgICAgIGRlYnVnKCJFbmdhZ2lu
ZyBmbGV4Ym94Li4uIikKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmbGV4
Ym94Iikuc3R5bGUuZGlzcGxheSA9ICItd2Via2l0LWZsZXgiOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRoZSBm
bGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVuYWJs
ZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDIwMCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAorICAgICAgICAgICAgdmFyIGZsb3dUaHJlYWQgPSBn
ZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7CisgICAgICAgICAgICBmbG93VGhyZWFkLmFkZEV2ZW50
TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCByZWdpb25PdmVyc2V0Q2hhbmdl
ZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlYnVnKCJGbG93aW5nIGNvbnRlbnQgaW50
byByZWdpb25zLi4uIik7CisgICAgICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOworICAg
ICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRl
c3QpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJv
bS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKaW5kZXggY2I0YWUwMS4u
Mjc1OTRmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudAorVGVz
dHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKQEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBET00KIFBBU1Mg
ZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNTIGV2ZW50Q291bnQgaXMgMgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3Zl
LWZyb20tZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWwKaW5kZXggMDI1ODllNi4uM2I0NjM4ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1kb20uaHRtbApAQCAtMTcsNyArMTcsNyBA
QAogLmJsb2NrIHsKICAgIGRpc3BsYXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7
IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IG1hcmdpbjogNXB4O30KKyNyZWdpb25fMSwgI3Jl
Z2lvbl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7IGJvcmRlcjog
MXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC0zNiw3ICszNiw3
IEBACiA8ZGl2IGlkPSJjb25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2PgogCiA8c2NyaXB0Pgot
ICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCIpCisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQiKQogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkBAIC00OSwxNCArNDksMTkgQEAKICAgICAgICAgciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwogICAgICAgICByLnN0eWxlLndl
YmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CiAgICAgfQotICAgIAotICAgIHZhciBjb3VudCA9IDA7
Ci0gICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworCisgICAgdmFyIGV2
ZW50Q291bnQgPSAwOworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3Vs
ZEJlKCJldmVudENvdW50IiwgIjIiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7Ci0gICAg
ICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRl
ZCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVk
IGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIApAQCAtNjcsNyArNzIsNyBAQAogICAgIAogICAgIGZ1bmN0aW9uIHN0
YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7
Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRl
IiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2VkKTsKICAgICAg
ICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQo
ImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
LWV4cGVjdGVkLnR4dAppbmRleCAyMzRlNDYyLi45ZTZlNGM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxv
dy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC03LDYgKzcsNyBAQCBGbG93IGNv
bnRlbnQKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCiBSZW1vdmluZyByZWdp
b25fMiBmcm9tIGZsb3cKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbAppbmRl
eCAwMjhkNDQ4Li42NDUwZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1m
bG93Lmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKIC5ibG9jayB7CiAgICBkaXNwbGF5OmJsb2NrOwog
fQotI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJn
aW46IDVweDt9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAw
cHg7IG1hcmdpbjogNXB4OyBib3JkZXI6IDFweCBzb2xpZCByZWQ7fQogPC9zdHlsZT4KIDwvaGVh
ZD4KIDxib2R5PgpAQCAtMzQsNyArMzQsNyBAQAogPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJs
b2NrIj48L2Rpdj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5
b3V0RXZlbnQiKQorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2
ZW50IikKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDcs
MTQgKzQ3LDE4IEBACiAgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
XzIiKTsKICAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOwogICAgIH0K
LSAgICAKLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0
ZWQoZXZlbnQpIHsKKworICAgIHZhciBldmVudENvdW50ID0gMDsKKyAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlZ2lvbk92ZXJzZXRDaGFu
Z2VkKGV2ZW50KSB7CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0
Lm5hbWUiLCAiYXJ0aWNsZSIpOwotICAgICAgICBpZiAoKytjb3VudCA+IDEpIHsKLSAgICAgICAg
ICAgZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVw
ZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBi
ZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAg
ICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQg
ZnJvbSBET00KKyAgICAgICAgICAgc2V0VGltZW91dCgiZmluaXNoVGVzdCgpIiwgMjAwKTsKICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIApAQCAtNjUsNyArNjksNyBAQAog
ICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRG
bG93QnlOYW1lKCJhcnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Vi
a2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZs
b3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92
ZXJzZXRDaGFuZ2VkKTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsK
ICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdl
dC1leHBlY3RlZC50eHQKaW5kZXggZGE4ZTU0ZC4uY2QxNjQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogRmxvdyBjb250ZW50CiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRp
Y2xlIgotUEFTUyAyIGlzID49IHVwZGF0ZWRDb3VudAogUEFTUyBnZXRGbG93QnlOYW1lKCJhcnRp
Y2xlIikgaXMgbm9uLW51bGwuCiBQQVNTIHJlY3JlYXRlZCBpcyBmYWxzZQogUEFTUyBnZXRGbG93
QnlOYW1lKCJhcnRpY2xlIikgaXMgbnVsbAogUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0
aWNsZSIKLVBBU1MgMiBpcyA+PSB1cGRhdGVkQ291bnQKIFBBU1MgcmVjcmVhdGVkIGlzIHRydWUK
IFBBU1MgZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpIGlzIG5vbi1udWxsLgorUEFTUyB1cGRhdGVk
Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtdGFyZ2V0Lmh0bWwKaW5kZXggZWY2YmIxNC4uMDY5NWViMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC10YXJnZXQuaHRtbApAQCAtMTksNyArMTksNyBAQAogLmJsb2NrIHsKICAgIGRpc3Bs
YXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6
MjAwcHh9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7
IGJvcmRlcjogMXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC03
NSwxNyArNzUsMjAgQEAgZnVuY3Rpb24gbWFrZUZsb3dDcmVhdGVkKCkgewogfQogCiB2YXIgdXBk
YXRlZENvdW50ID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmUoInVw
ZGF0ZWRDb3VudCIsICIyIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKIGZ1bmN0aW9uIGZs
b3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7CiAJKyt1cGRhdGVkQ291bnQ7CiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAKLSAgICBzaG91
bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiMiIsICJ1cGRhdGVkQ291bnQiKTsKLQogICAgIGlmICh1
cGRhdGVkQ291bnQgPT0gMikgewogICAgIAlzaG91bGRCZVRydWUoInJlY3JlYXRlZCIpOwotICAg
IAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBk
YXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsK
ICAgICAJbWFrZUZsb3dOdWxsKCk7Ci0gICAgCWZpbmlzaEpTVGVzdCgpOworICAgIAlzZXRUaW1l
b3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOwogICAgIAlyZXR1cm47CiAgICAgfQogCkBAIC05OCw3
ICsxMDEsNyBAQCBmdW5jdGlvbiBmbG93VGhyZWFkVXBkYXRlZChldmVudCkgewogCiBmdW5jdGlv
biBzdGFydFRlc3QoKSB7ICAgIAogICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFtZSgi
YXJ0aWNsZSIpOwotICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
bGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIGZsb3dUaHJlYWQuYWRkRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVk
KTsKICAgICAKICAgICBkZWJ1ZygiRmxvdyBjb250ZW50Iik7CiAgICAgZmxvd0NvbnRlbnQoImFy
dGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dAppbmRleCBl
YjJjY2I5Li42OTQwYzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQgYmVpbmcgZGlzcGF0
Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFu
Z2UgZXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDcgKzgsNyBAQCBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93CiBSZW1v
dmluZyByZWdpb25fMSBmcm9tIGZsb3cKIFJlbW92aW5nIGFydGljbGUgZnJvbSBmbG93Ci1QQVNT
IGxheW91dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyBpcyBmYWxzZQorUEFTUyByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93IGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sCmlu
ZGV4IDUzZjVkZWMuLjY0ZmQ4YWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwuaHRtbApAQCAtMzYs
NyArMzYsNyBAQAogCiA8c2NyaXB0PgogCi1kZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0
RXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQiKTsKK2Rl
c2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGJlaW5nIGRpc3BhdGNo
ZWQgd2hlbiB0aGUgY29udGVudCBpcyByZW1vdmVkIik7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKQEAgLTUyLDEyICs1MiwxMiBA
QCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB9CiAgICAgCiAgICAgdmFyIGNvdW50ID0g
MDsKLSAgICB2YXIgbGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7Ci0g
ICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworICAgIHZhciByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7CisgICAgZnVuY3Rpb24gcmVnaW9u
T3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
dmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAgICAgICAgIGlmICgrK2NvdW50ID4gMSkg
ewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVn
aW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7Ci0gICAgICAgICAgIGxheW91
dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyA9IHRydWU7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAgICByZWdpb25PdmVyc2V0RGlzcGF0Y2hlZEZv
ck51bGxGbG93ID0gdHJ1ZTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtNzEsMTcgKzcxLDE3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBk
ZWJ1ZygiUmVtb3ZpbmcgYXJ0aWNsZSBmcm9tIGZsb3ciKTsKICAgICAgICAgZWwuc3R5bGUud2Vi
a2l0Rmxvd0ludG8gPSAibm9uZSI7CiAKLSAgICAgICAgc2V0VGltZW91dChjaGVja0lmRXZlbnRE
aXNwYXRjaGVkLCA1MDApOworICAgICAgICBzZXRUaW1lb3V0KGNoZWNrSWZFdmVudERpc3BhdGNo
ZWQsIDIwMCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY2hlY2tJZkV2ZW50RGlzcGF0Y2hlZCgp
IHsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgibGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxG
bG93Iik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInJlZ2lvbk92ZXJzZXREaXNwYXRjaGVkRm9y
TnVsbEZsb3ciKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogICAgIAogICAgIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJh
cnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5
b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2Vk
KTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxv
d0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50Lmh0bWwKaW5kZXggNzY2ZTIwOS4uYWUwODRlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9j
ayI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91
dEV2ZW50IikKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dCIpCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ5LDE5
ICs0OSwxOCBAQAogICAgIAogICAgIGZ1bmN0aW9uIGZsb3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7
CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0Lm5hbWUiLCAiYXJ0
aWNsZSIpOwotICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0
cmVnaW9ubGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgICAgICBldmVudC50
YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZs
b3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
IH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAogICAgICAgICB2YXIgZmxv
d1RocmVhZCA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxvd1RocmVhZC5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCBmbG93VGhyZWFkVXBk
YXRlZCk7CisgICAgICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
b3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGRl
YnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKICAg
ICB9Ci0gICAgLy9zdGFydFRlc3QoKTsKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHN0YXJ0VGVzdCk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZDJkZWIu
LjEwZmU1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MCBAQAorMjAxMy0wNi0yMCAgUmFkdSBT
dGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBBZGQg
bmV3IHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzUwOAorCisgICAgICAgIEFkZGVkIHJlZ2lvbk92ZXJz
ZXRDaGFuZ2UgZXZlbnQgYW5kIHRlc3RzIGZvciBpdC4gVGhlIG92ZXJzZXQgdmFsdWUgb2YgdGhl
IHJlZ2lvbiBoYXMgYmVlbiBtb3ZlZCB0byB0aGUgRWxlbWVudFJhcmVEYXRhCisgICAgICAgIG9i
amVjdCBpbnN0ZWFkIG9mIHRoZSBSZW5kZXJSZWdpb24gb2JqZWN0LiBUaGlzIHdhcyBuZWVkZWQg
Zm9yIHRoZSBjYXNlIHdoZW4gYSByZWF0dGFjaCBpcyBwZXJmb3JtZWQgKGZvciBpbnN0YW5jZSBi
eSBjaGFuZ2luZworICAgICAgICB0aGUgZGlzcGxheSB0eXBlIG9mIHRoZSByZWdpb24ncyBjb250
YWluaW5nIGJsb2NrKSBhbmQgdGhlIFJlbmRlclJlZ2lvbiBvYmplY3QgaXMgZGVzdHJveWVkLiBX
aGVuIGNvbXB1dGluZyB0aGUgb3ZlcnNldCBhZ2FpbiwKKyAgICAgICAgdGhlcmUgd291bGQgYmUg
bm8gInByZXZpb3VzIiB2YWx1ZSB0byBjb21wYXJlIGl0IHRvIGFuZCBkZWNpZGUgd2hldGhlciB0
aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6ICBmYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbDoKKyAgICAgICAg
ICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQu
aHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZl
bnQtY3Jhc2guaHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNo
YW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWw6CisgICAgICAgICAgICAg
ICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC5odG1sOgorICAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxs
Lmh0bWw6CisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWw6CisKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlZ2lv
bk92ZXJzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3ZWJraXRSZWdpb25P
dmVyc2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50
UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6cmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAg
KiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpmaXJzdEVtcHR5UmVnaW9uSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpkaXNwYXRjaFJlZ2lvbk92ZXJz
ZXRDaGFuZ2VFdmVudCk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRh
c2s6OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVJl
Z2lvbk92ZXJzZXRUYXNrOjpzY2hlZHVsZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VS
ZWdpb25PdmVyc2V0VGFzazo6dW5zY2hlZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VS
ZWdpb25PdmVyc2V0VGFzazo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9u
T3ZlcnNldFRhc2s6Om9uVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdl
bnQ6OnJlc2V0Tm9uUGVyc2lzdGVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q1NTQWdlbnQ6OndpbGxSZW1vdmVOYW1lZEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ1NTQWdlbnQ6OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ1NTQWdlbnQ6OnJlZ2lvbk92ZXJzZXRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNTU0FnZW50OjpidWlsZEFycmF5Rm9yUmVnaW9ucyk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5wcm90b3R5cGUu
X3JlZ2lvbk92ZXJzZXRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NOYW1lZEZs
b3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlLndpbGxIaWRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX3JlZ2lvbk92ZXJzZXRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3RvdHlwZS5yZWdpb25M
YXlvdXRVcGRhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3Rv
dHlwZS5yZWdpb25PdmVyc2V0Q2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlZ2lvbk92
ZXJzZXRTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVPdmVyZmxvdyk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1Ro
cmVhZDo6Y29tcHV0ZU92ZXJzZXRTdGF0ZUZvclJlZ2lvbnMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxv
d1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJl
bmRlck5hbWVkRmxvd1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dU
aHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXJG
aXJlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9u
OjpyZWdpb25PdmVyc2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpz
ZXRSZWdpb25PdmVyc2V0U3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24u
aDoKKwogMjAxMy0wNi0yMCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIGFuZCB0ZXh0LWRlY29yYXRpb24g
YXJlIG5vdCBwcmVzZXJ2ZWQgd2hlbiBtZXJnaW5nIHBhcmFncmFwaHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IGJlY2M0ZDMuLjA4ZTMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDQwMCw2ICs0NDAwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRQaGFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1BvaW50ZXJFdmVudHNIaXRSdWxlcy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVnaW9uT3ZlcnNldFN0YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJBcHBsZXQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcmVuYS5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggYjM1ZmI2OC4uY2JhNDI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0yNDIxLDYgKzI0MjEsNyBA
QCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvUGFpbnRJbmZvLmggXAogICAgIHJlbmRlcmlu
Zy9QYWludFBoYXNlLmggXAogICAgIHJlbmRlcmluZy9Qb2ludGVyRXZlbnRzSGl0UnVsZXMuaCBc
CisgICAgcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oIFwKICAgICByZW5kZXJpbmcvUmVu
ZGVyQXBwbGV0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJBcmVuYS5oIFwKICAgICByZW5kZXJp
bmcvUmVuZGVyQmxvY2suaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjdkOTM0Ny4uYjgxYThjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTgxMCw2ICsx
ODEwLDcgQEAKIAkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjM0ODA5MjBF
RUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CisJCTZDRERFOEQwMTc3MEJCMjIwMDE2
RTA3MiAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVy
c2V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QkYxMTI2
MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLzsgfTsKIAkJNkUyMUM2QzIx
MTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAy
IC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9OwogCQk2RTNGQUQzODE0NzMzRjQwMDBF
NDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYg
LyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi87IH07CkBAIC04MTk4LDYgKzgx
OTksNyBAQAogCQk2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpb25PdmVyc2V0U3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QkYxMTI2MzM4NTAwQTdC
RTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RD
Ry5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAwMEU0
MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk5MDksNiArMTk5MTEsNyBAQAogCQkJCTA4
ODUwNjdFMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludFBoYXNlLmggKi8sCiAJCQkJQjJCMUY3MTQw
RDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5jcHAgKi8sCiAJCQkJQjJC
MUY3MTUwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oICovLAorCQkJ
CTZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLywKIAkJ
CQlCQ0VBNDgxQzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQXBwbGV0LmNwcCAqLywKIAkJCQlC
Q0VBNDgxRDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQXBwbGV0LmggKi8sCiAJCQkJQkNFQTQ4
MUUwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckFyZW5hLmNwcCAqLywKQEAgLTIzOTczLDYgKzIz
OTc2LDcgQEAKIAkJCQlCRThFRjA0QjE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0RDE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1Ry
YWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkI3MTlDM0YxNzIzOENBODAwMjJERTM0IC8q
IFdlYktpdENTU01hdEZ1bmN0aW9uVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTZDRERFOEQw
MTc3MEJCMjIwMDE2RTA3MiAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDgzNWY4YjMuLjc3MmI0NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTI0MjAsNiArMjQyMCwxNiBAQCBib29sIEVsZW1lbnQ6OmlzSW5DYW52YXNT
dWJ0cmVlKCkgY29uc3QKICAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFyZURh
dGEoKS0+aXNJbkNhbnZhc1N1YnRyZWUoKTsKIH0KIAordm9pZCBFbGVtZW50OjpzZXRSZWdpb25P
dmVyc2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKQoreworICAgIGVuc3VyZUVsZW1l
bnRSYXJlRGF0YSgpLT5zZXRSZWdpb25PdmVyc2V0U3RhdGUoc3RhdGUpOworfQorCitSZWdpb25P
dmVyc2V0U3RhdGUgRWxlbWVudDo6cmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5yZWdpb25PdmVyc2V0U3Rh
dGUoKSA6IFJlZ2lvblVuZGVmaW5lZDsKK30KKwogQXRvbWljU3RyaW5nIEVsZW1lbnQ6OmNvbXB1
dGVJbmhlcml0ZWRMYW5ndWFnZSgpIGNvbnN0CiB7CiAgICAgY29uc3QgTm9kZSogbiA9IHRoaXM7
CkBAIC0yNzkwLDIwICsyODAwLDIwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6d2Vi
a2l0UmVnaW9uT3ZlcnNldCgpIGNvbnN0CiAgICAgaWYgKCFkb2N1bWVudCgpLT5jc3NSZWdpb25z
RW5hYmxlZCgpIHx8ICFyZW5kZXJSZWdpb24oKSkKICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFN0
YXRlOwogCi0gICAgc3dpdGNoIChyZW5kZXJSZWdpb24oKS0+cmVnaW9uU3RhdGUoKSkgewotICAg
IGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25GaXQ6IHsKKyAgICBzd2l0Y2ggKHJlbmRlclJlZ2lv
bigpLT5yZWdpb25PdmVyc2V0U3RhdGUoKSkgeworICAgIGNhc2UgUmVnaW9uRml0OiB7CiAgICAg
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaXRTdGF0ZSwgKCJmaXQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBmaXRT
dGF0ZTsKICAgICB9Ci0gICAgY2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvbkVtcHR5OiB7CisgICAg
Y2FzZSBSZWdpb25FbXB0eTogewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgZW1wdHlTdGF0ZSwgKCJlbXB0eSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICAgICAgcmV0dXJuIGVtcHR5U3RhdGU7CiAgICAgfQotICAgIGNhc2UgUmVu
ZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0OiB7CisgICAgY2FzZSBSZWdpb25PdmVyc2V0OiB7CiAg
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdmVyZmxvd1N0YXRlLCAo
Im92ZXJzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAg
IHJldHVybiBvdmVyZmxvd1N0YXRlOwogICAgIH0KLSAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVn
aW9uVW5kZWZpbmVkOgorICAgIGNhc2UgUmVnaW9uVW5kZWZpbmVkOgogICAgICAgICByZXR1cm4g
dW5kZWZpbmVkU3RhdGU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA5M2I5Njc3Li5k
YTc2ZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJD
b2xsZWN0aW9uVHlwZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCisjaW5jbHVkZSAiUmVnaW9uT3ZlcnNldFN0YXRlLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
VHlwZXMuaCIKICNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCiAKQEAgLTQ3OCw2ICs0Nzks
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc0luQ2FudmFzU3VidHJlZShib29sKTsKICAgICBi
b29sIGlzSW5DYW52YXNTdWJ0cmVlKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFJlZ2lvbk92ZXJz
ZXRTdGF0ZShSZWdpb25PdmVyc2V0U3RhdGUpOworICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSByZWdp
b25PdmVyc2V0U3RhdGUoKSBjb25zdDsKKwogICAgIEF0b21pY1N0cmluZyBjb21wdXRlSW5oZXJp
dGVkTGFuZ3VhZ2UoKSBjb25zdDsKICAgICBMb2NhbGUmIGxvY2FsZSgpIGNvbnN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCmluZGV4IGJjODI0NzguLmM0OTg3NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKLQorI2lu
Y2x1ZGUgIlJlZ2lvbk92ZXJzZXRTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RydWN0IFNhbWVTaXplQXNFbGVtZW50UmFyZURhdGEgOiBOb2RlUmFyZURhdGEgewogICAg
IHNob3J0IGluZGljZXNbMl07CiAgICAgdW5zaWduZWQgYml0ZmllbGRzOworICAgIFJlZ2lvbk92
ZXJzZXRTdGF0ZSByZWdpb25PdmVyc2V0U3RhdGU7CiAgICAgTGF5b3V0U2l6ZSBzaXplRm9yUmVz
aXppbmc7CiAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQ7CiAgICAgdm9pZCogcG9pbnRlcnNbN107
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggYzgwMjc5ZS4uOWM1OGEyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtNjAsNiArNjAsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbkNh
bnZhc1N1YnRyZWU7IH0KICAgICB2b2lkIHNldElzSW5DYW52YXNTdWJ0cmVlKGJvb2wgdmFsdWUp
IHsgbV9pc0luQ2FudmFzU3VidHJlZSA9IHZhbHVlOyB9CiAKKyAgICBSZWdpb25PdmVyc2V0U3Rh
dGUgcmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25PdmVyc2V0U3Rh
dGU7IH0KKyAgICB2b2lkIHNldFJlZ2lvbk92ZXJzZXRTdGF0ZShSZWdpb25PdmVyc2V0U3RhdGUg
c3RhdGUpIHsgbV9yZWdpb25PdmVyc2V0U3RhdGUgPSBzdGF0ZTsgfQorCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogICAgIGJvb2wgY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpIHsgcmV0
dXJuIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudDsgfQogICAgIHZvaWQgc2V0Q29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudChib29sIHZhbHVlKSB7IG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVu
dCA9IHZhbHVlOyB9CkBAIC0xNTYsNiArMTU5LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X2NoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIHVuc2ln
bmVkIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogCisg
ICAgUmVnaW9uT3ZlcnNldFN0YXRlIG1fcmVnaW9uT3ZlcnNldFN0YXRlOworCiAgICAgTGF5b3V0
U2l6ZSBtX21pbmltdW1TaXplRm9yUmVzaXppbmc7CiAgICAgSW50U2l6ZSBtX3NhdmVkTGF5ZXJT
Y3JvbGxPZmZzZXQ7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2NvbXB1dGVkU3R5bGU7CkBA
IC0yMDIsNiArMjA3LDcgQEAgaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRh
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVj
dEFkamFjZW50UnVsZXMoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQ
b3NpdGlvbmFsUnVsZXMoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJk
UG9zaXRpb25hbFJ1bGVzKGZhbHNlKQorICAgICwgbV9yZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9u
VW5kZWZpbmVkKQogICAgICwgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nKGRlZmF1bHRNaW5pbXVt
U2l6ZUZvclJlc2l6aW5nKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA4MDY0
ZGYyLi5jMWQ2NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTI0Niw2ICsyNDYsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgXAogICAgIG1hY3JvKHdlYmtpdHJlZ2lvbmxheW91
dHVwZGF0ZSkgXAogICAgIFwKKyAgICBtYWNybyh3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlKSBc
CisgICAgXAogICAgIG1hY3JvKHdlYmtpdG5ldHdvcmtpbmZvY2hhbmdlKSBcCiAgICAgXAogICAg
IG1hY3JvKHdlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbCkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
V2ViS2l0TmFtZWRGbG93LmNwcAppbmRleCA1OWYwOTk5Li4yNzA5YWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIGludCBXZWJLaXRO
YW1lZEZsb3c6OmZpcnN0RW1wdHlSZWdpb25JbmRleCgpIGNvbnN0CiAgICAgUmVuZGVyUmVnaW9u
TGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHJlZ2lvbkxpc3QuYmVnaW4oKTsKICAgICBmb3Ig
KGludCBpbmRleCA9IDA7IGl0ZXIgIT0gcmVnaW9uTGlzdC5lbmQoKTsgKytpbmRleCwgKytpdGVy
KSB7CiAgICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbiogcmVuZGVyUmVnaW9uID0gKml0ZXI7Ci0g
ICAgICAgIGlmIChyZW5kZXJSZWdpb24tPnJlZ2lvblN0YXRlKCkgPT0gUmVuZGVyUmVnaW9uOjpS
ZWdpb25FbXB0eSkKKyAgICAgICAgaWYgKHJlbmRlclJlZ2lvbi0+cmVnaW9uT3ZlcnNldFN0YXRl
KCkgPT0gUmVnaW9uRW1wdHkpCiAgICAgICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgfQogICAg
IHJldHVybiAtMTsKQEAgLTIxNCw2ICsyMTQsMTkgQEAgdm9pZCBXZWJLaXROYW1lZEZsb3c6OmRp
c3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKQogCiAgICAgZGlzcGF0Y2hFdmVudChldmVu
dCk7CiB9CisgICAgCit2b2lkIFdlYktpdE5hbWVkRmxvdzo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0
Q2hhbmdlRXZlbnQoKQoreworICAgIEFTU0VSVCghTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjpp
c0V2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CisgICAgCisgICAgLy8gSWYgdGhlIGZsb3cgaXMg
aW4gdGhlICJOVUxMIiBzdGF0ZSB0aGUgZXZlbnQgc2hvdWxkIG5vdCBiZSBkaXNwYXRjaGVkIGFu
eSBtb3JlLgorICAgIGlmIChmbG93U3RhdGUoKSA9PSBGbG93U3RhdGVOdWxsKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IFVJRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkud2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZUV2ZW50LCBmYWxzZSwgZmFsc2Us
IG1fZmxvd01hbmFnZXItPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIDApOworICAgIAorICAg
IGRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFdlYktpdE5h
bWVkRmxvdzo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFt
ZWRGbG93LmgKaW5kZXggYzU0NGE4OS4uZmZmMzYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRO
YW1lZEZsb3cuaApAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAgRmxvd1N0YXRlIGZsb3dT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50Rmxvd1RocmVhZCA/IEZsb3dTdGF0ZUNyZWF0
ZWQgOiBGbG93U3RhdGVOdWxsOyB9CiAKICAgICB2b2lkIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBk
YXRlRXZlbnQoKTsKKyAgICB2b2lkIGRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCk7
CiAKIHByaXZhdGU6CiAgICAgV2ViS2l0TmFtZWRGbG93KFBhc3NSZWZQdHI8TmFtZWRGbG93Q29s
bGVjdGlvbj4sIGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uCmluZGV4IGMwODA1NWUuLjg5MDQ0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTI1NDYsNiArMjU0NiwxMyBAQAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5hbWVkRmxvdyIsICIkcmVmIjogIk5hbWVkRmxvdyIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgTmFtZWQgRmxvdyB3aG9zZSBsYXlvdXQgbWF5IGhhdmUgY2hhbmdlZC4i
IH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJG
aXJlcyB3aGVuIGEgTmFtZWQgRmxvdydzIGxheW91dCBtYXkgaGF2ZSBjaGFuZ2VkLiIKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVnaW9u
T3ZlcnNldENoYW5nZWQiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWVkRmxvdyIsICIkcmVmIjogIk5hbWVkRmxvdyIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgTmFtZWQgRmxvdyBjb250YWluaW5nIHRoZSByZWdpb25zIHdo
b3NlIHJlZ2lvbk92ZXJzZXQgdmFsdWVzIGNoYW5nZWQuIiB9CisgICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZXMgaWYgYW55IG9mIHRoZSByZWdp
b25PdmVyc2V0IHZhbHVlcyBjaGFuZ2VkIGluIGEgTmFtZWQgRmxvdydzIHJlZ2lvbiBjaGFpbi4i
CiAgICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggNzZiOTAyNy4uZTZmMzBlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0y
OTAsNiArMjkwLDY3IEBAIHZvaWQgVXBkYXRlUmVnaW9uTGF5b3V0VGFzazo6b25UaW1lcihUaW1l
cjxVcGRhdGVSZWdpb25MYXlvdXRUYXNrPiopCiAgICAgaWYgKCFtX25hbWVkRmxvd3MuaXNFbXB0
eSgpICYmICFtX3RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90
KDApOwogfQorICAgIAorY2xhc3MgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2sgeworcHVibGljOgor
ICAgIENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrKEluc3BlY3RvckNTU0FnZW50Kik7CisgICAgdm9p
ZCBzY2hlZHVsZUZvcihXZWJLaXROYW1lZEZsb3cqLCBpbnQgZG9jdW1lbnROb2RlSWQpOworICAg
IHZvaWQgdW5zY2hlZHVsZShXZWJLaXROYW1lZEZsb3cqKTsKKyAgICB2b2lkIHJlc2V0KCk7Cisg
ICAgdm9pZCBvblRpbWVyKFRpbWVyPENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrPiopOworICAgIAor
cHJpdmF0ZToKKyAgICBJbnNwZWN0b3JDU1NBZ2VudCogbV9jc3NBZ2VudDsKKyAgICBUaW1lcjxD
aGFuZ2VSZWdpb25PdmVyc2V0VGFzaz4gbV90aW1lcjsKKyAgICBIYXNoTWFwPFdlYktpdE5hbWVk
RmxvdyosIGludD4gbV9uYW1lZEZsb3dzOworfTsKKworQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6
OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrKEluc3BlY3RvckNTU0FnZW50KiBjc3NBZ2VudCkKKzog
bV9jc3NBZ2VudChjc3NBZ2VudCkKKywgbV90aW1lcih0aGlzLCAmQ2hhbmdlUmVnaW9uT3ZlcnNl
dFRhc2s6Om9uVGltZXIpCit7Cit9CisKK3ZvaWQgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OnNj
aGVkdWxlRm9yKFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93LCBpbnQgZG9jdW1lbnROb2RlSWQp
Cit7CisgICAgbV9uYW1lZEZsb3dzLmFkZChuYW1lZEZsb3csIGRvY3VtZW50Tm9kZUlkKTsKKyAg
ICAKKyAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV90aW1lci5zdGFydE9u
ZVNob3QoMCk7Cit9CisKK3ZvaWQgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OnVuc2NoZWR1bGUo
V2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cpCit7CisgICAgbV9uYW1lZEZsb3dzLnJlbW92ZShu
YW1lZEZsb3cpOworfQorCit2b2lkIENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpyZXNldCgpCit7
CisgICAgbV90aW1lci5zdG9wKCk7CisgICAgbV9uYW1lZEZsb3dzLmNsZWFyKCk7Cit9CisKK3Zv
aWQgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6Om9uVGltZXIoVGltZXI8Q2hhbmdlUmVnaW9uT3Zl
cnNldFRhc2s+KikKK3sKKyAgICAvLyBUaGUgdGltZXIgaXMgc3RvcHBlZCBvbiBtX2Nzc0FnZW50
IGRlc3RydWN0aW9uLCBzbyB0aGlzIG1ldGhvZCB3aWxsIG5ldmVyIGJlIGNhbGxlZCBhZnRlciBt
X2Nzc0FnZW50IGhhcyBiZWVuIGRlc3Ryb3llZC4KKyAgICBWZWN0b3I8c3RkOjpwYWlyPFdlYktp
dE5hbWVkRmxvdyosIGludD4gPiBuYW1lZEZsb3dzOworICAgIAorICAgIGZvciAoSGFzaE1hcDxX
ZWJLaXROYW1lZEZsb3cqLCBpbnQ+OjppdGVyYXRvciBpdCA9IG1fbmFtZWRGbG93cy5iZWdpbigp
LCBlbmQgPSBtX25hbWVkRmxvd3MuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgbmFt
ZWRGbG93cy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoaXQtPmtleSwgaXQtPnZhbHVlKSk7CisgICAg
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IG5hbWVkRmxvd3Muc2l6ZSgpOyBpIDwg
c2l6ZTsgKytpKSB7CisgICAgICAgIFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93ID0gbmFtZWRG
bG93cy5hdChpKS5maXJzdDsKKyAgICAgICAgaW50IGRvY3VtZW50Tm9kZUlkID0gbmFtZWRGbG93
cy5hdChpKS5zZWNvbmQ7CisgICAgICAgIAorICAgICAgICBpZiAobV9uYW1lZEZsb3dzLmNvbnRh
aW5zKG5hbWVkRmxvdykpIHsKKyAgICAgICAgICAgIG1fY3NzQWdlbnQtPnJlZ2lvbk92ZXJzZXRD
aGFuZ2VkKG5hbWVkRmxvdywgZG9jdW1lbnROb2RlSWQpOworICAgICAgICAgICAgbV9uYW1lZEZs
b3dzLnJlbW92ZShuYW1lZEZsb3cpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmICgh
bV9uYW1lZEZsb3dzLmlzRW1wdHkoKSAmJiAhbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBt
X3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KIAogY2xhc3MgSW5zcGVjdG9yQ1NTQWdlbnQ6OlN0
eWxlU2hlZXRBY3Rpb24gOiBwdWJsaWMgSW5zcGVjdG9ySGlzdG9yeTo6QWN0aW9uIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShTdHlsZVNoZWV0QWN0aW9uKTsKQEAgLTYzNCw2ICs2OTUsOCBA
QCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpyZXNldE5vblBlcnNpc3RlbnREYXRhKCkKICAgICBt
X25hbWVkRmxvd0NvbGxlY3Rpb25zUmVxdWVzdGVkLmNsZWFyKCk7CiAgICAgaWYgKG1fdXBkYXRl
UmVnaW9uTGF5b3V0VGFzaykKICAgICAgICAgbV91cGRhdGVSZWdpb25MYXlvdXRUYXNrLT5yZXNl
dCgpOworICAgIGlmIChtX2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrKQorICAgICAgICBtX2NoYW5n
ZVJlZ2lvbk92ZXJzZXRUYXNrLT5yZXNldCgpOwogICAgIHJlc2V0UHNldWRvU3RhdGVzKCk7CiB9
CiAKQEAgLTY3Myw2ICs3MzYsOSBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsUmVtb3Zl
TmFtZWRGbG93KERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KgogCiAgICAgaWYg
KG1fdXBkYXRlUmVnaW9uTGF5b3V0VGFzaykKICAgICAgICAgbV91cGRhdGVSZWdpb25MYXlvdXRU
YXNrLT51bnNjaGVkdWxlKG5hbWVkRmxvdyk7CisgICAgCisgICAgaWYgKG1fY2hhbmdlUmVnaW9u
T3ZlcnNldFRhc2spCisgICAgICAgIG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2stPnVuc2NoZWR1
bGUobmFtZWRGbG93KTsKIAogICAgIG1fZnJvbnRlbmQtPm5hbWVkRmxvd1JlbW92ZWQoZG9jdW1l
bnROb2RlSWQsIG5hbWVkRmxvdy0+bmFtZSgpLnN0cmluZygpKTsKIH0KQEAgLTY5OSw2ICs3NjUs
MjggQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6cmVnaW9uTGF5b3V0VXBkYXRlZChXZWJLaXRO
YW1lZEZsb3cqIG5hbWVkRmxvdywgaW50IGRvY3UKICAgICBtX2Zyb250ZW5kLT5yZWdpb25MYXlv
dXRVcGRhdGVkKGJ1aWxkT2JqZWN0Rm9yTmFtZWRGbG93KCZlcnJvclN0cmluZywgbmFtZWRGbG93
LCBkb2N1bWVudE5vZGVJZCkpOwogfQogCit2b2lkIEluc3BlY3RvckNTU0FnZW50OjpkaWRDaGFu
Z2VSZWdpb25PdmVyc2V0KERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KiBuYW1l
ZEZsb3cpCit7CisgICAgaW50IGRvY3VtZW50Tm9kZUlkID0gZG9jdW1lbnROb2RlV2l0aFJlcXVl
c3RlZEZsb3dzSWQoZG9jdW1lbnQpOworICAgIGlmICghZG9jdW1lbnROb2RlSWQpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBpZiAoIW1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2spCisgICAg
ICAgIG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2sgPSBhZG9wdFB0cihuZXcgQ2hhbmdlUmVnaW9u
T3ZlcnNldFRhc2sodGhpcykpOworICAgIG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2stPnNjaGVk
dWxlRm9yKG5hbWVkRmxvdywgZG9jdW1lbnROb2RlSWQpOworfQorCit2b2lkIEluc3BlY3RvckNT
U0FnZW50OjpyZWdpb25PdmVyc2V0Q2hhbmdlZChXZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdywg
aW50IGRvY3VtZW50Tm9kZUlkKQoreworICAgIGlmIChuYW1lZEZsb3ctPmZsb3dTdGF0ZSgpID09
IFdlYktpdE5hbWVkRmxvdzo6Rmxvd1N0YXRlTnVsbCkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIEVycm9yU3RyaW5nIGVycm9yU3RyaW5nOworICAgIFJlZlB0cjxXZWJLaXROYW1lZEZsb3c+
IHByb3RlY3RvcihuYW1lZEZsb3cpOworICAgIAorICAgIG1fZnJvbnRlbmQtPnJlZ2lvbk92ZXJz
ZXRDaGFuZ2VkKGJ1aWxkT2JqZWN0Rm9yTmFtZWRGbG93KCZlcnJvclN0cmluZywgbmFtZWRGbG93
LCBkb2N1bWVudE5vZGVJZCkpOworfQorCiBib29sIEluc3BlY3RvckNTU0FnZW50Ojpmb3JjZVBz
ZXVkb1N0YXRlKEVsZW1lbnQqIGVsZW1lbnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBzZXVk
b1R5cGUpCiB7CiAgICAgaWYgKG1fbm9kZUlkVG9Gb3JjZWRQc2V1ZG9TdGF0ZS5pc0VtcHR5KCkp
CkBAIC0xMjg1LDE3ICsxMzczLDE3IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5
cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbj4gPiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlZ2lvbkxpc3QtPmxlbmd0aCgpOyArK2kpIHsKICAgICAg
ICAgVHlwZUJ1aWxkZXI6OkNTUzo6UmVnaW9uOjpSZWdpb25PdmVyc2V0OjpFbnVtIHJlZ2lvbk92
ZXJzZXQ7CiAKLSAgICAgICAgc3dpdGNoICh0b0VsZW1lbnQocmVnaW9uTGlzdC0+aXRlbShpKSkt
PnJlbmRlclJlZ2lvbigpLT5yZWdpb25TdGF0ZSgpKSB7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVn
aW9uOjpSZWdpb25GaXQ6CisgICAgICAgIHN3aXRjaCAodG9FbGVtZW50KHJlZ2lvbkxpc3QtPml0
ZW0oaSkpLT5yZW5kZXJSZWdpb24oKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsKKyAgICAgICAg
Y2FzZSBSZWdpb25GaXQ6CiAgICAgICAgICAgICByZWdpb25PdmVyc2V0ID0gVHlwZUJ1aWxkZXI6
OkNTUzo6UmVnaW9uOjpSZWdpb25PdmVyc2V0OjpGaXQ7CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvbkVtcHR5OgorICAgICAgICBjYXNlIFJlZ2lv
bkVtcHR5OgogICAgICAgICAgICAgcmVnaW9uT3ZlcnNldCA9IFR5cGVCdWlsZGVyOjpDU1M6OlJl
Z2lvbjo6UmVnaW9uT3ZlcnNldDo6RW1wdHk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvbk92ZXJzZXQ6CisgICAgICAgIGNhc2UgUmVnaW9uT3Zl
cnNldDoKICAgICAgICAgICAgIHJlZ2lvbk92ZXJzZXQgPSBUeXBlQnVpbGRlcjo6Q1NTOjpSZWdp
b246OlJlZ2lvbk92ZXJzZXQ6Ok92ZXJzZXQ7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvblVuZGVmaW5lZDoKKyAgICAgICAgY2FzZSBSZWdpb25V
bmRlZmluZWQ6CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRleCAzNzg3M2IyLi5hNjM2ZDQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtNTksNiArNTksNyBAQCBj
bGFzcyBTZWxlY3RvclByb2ZpbGU7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVS
dWxlOwogY2xhc3MgVXBkYXRlUmVnaW9uTGF5b3V0VGFzazsKK2NsYXNzIENoYW5nZVJlZ2lvbk92
ZXJzZXRUYXNrOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIApAQCAtMTA3LDYgKzEwOCw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHdpbGxSZW1vdmVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJLaXRO
YW1lZEZsb3cqKTsKICAgICB2b2lkIGRpZFVwZGF0ZVJlZ2lvbkxheW91dChEb2N1bWVudCosIFdl
YktpdE5hbWVkRmxvdyopOwogICAgIHZvaWQgcmVnaW9uTGF5b3V0VXBkYXRlZChXZWJLaXROYW1l
ZEZsb3cqLCBpbnQgZG9jdW1lbnROb2RlSWQpOworICAgIHZvaWQgZGlkQ2hhbmdlUmVnaW9uT3Zl
cnNldChEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOworICAgIHZvaWQgcmVnaW9uT3ZlcnNl
dENoYW5nZWQoV2ViS2l0TmFtZWRGbG93KiwgaW50IGRvY3VtZW50Tm9kZUlkKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShFcnJvclN0cmluZyosIGludCBub2Rl
SWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTQ29tcHV0
ZWRTdHlsZVByb3BlcnR5PiA+Jik7CiAgICAgdmlydHVhbCB2b2lkIGdldElubGluZVN0eWxlc0Zv
ck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6
Q1NTU3R5bGU+JiBpbmxpbmVTdHlsZSwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxl
PiYgYXR0cmlidXRlcyk7CkBAIC0xODksNiArMTkyLDcgQEAgcHJpdmF0ZToKICAgICBOb2RlSWRU
b0ZvcmNlZFBzZXVkb1N0YXRlIG1fbm9kZUlkVG9Gb3JjZWRQc2V1ZG9TdGF0ZTsKICAgICBIYXNo
U2V0PGludD4gbV9uYW1lZEZsb3dDb2xsZWN0aW9uc1JlcXVlc3RlZDsKICAgICBPd25QdHI8VXBk
YXRlUmVnaW9uTGF5b3V0VGFzaz4gbV91cGRhdGVSZWdpb25MYXlvdXRUYXNrOworICAgIE93blB0
cjxDaGFuZ2VSZWdpb25PdmVyc2V0VGFzaz4gbV9jaGFuZ2VSZWdpb25PdmVyc2V0VGFzazsKIAog
ICAgIGludCBtX2xhc3RTdHlsZVNoZWV0SWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNmE5OTFhYy4uZDBm
MjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTI4OSw2ICsyODksMTIgQEAgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFVwZGF0ZVJlZ2lvbkxheW91dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW4KICAgICAgICAgY3NzQWdlbnQtPmRpZFVwZGF0ZVJlZ2lvbkxheW91dChkb2N1bWVudCwg
bmFtZWRGbG93KTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5n
ZVJlZ2lvbk92ZXJzZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cpCit7Cisg
ICAgaWYgKEluc3BlY3RvckNTU0FnZW50KiBjc3NBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvckNTU0FnZW50KCkpCisgICAgICAgIGNzc0FnZW50LT5kaWRDaGFuZ2VSZWdpb25P
dmVyc2V0KGRvY3VtZW50LCBuYW1lZEZsb3cpOworfQorCiB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWdu
ZWQgbW9kaWZpZXJGbGFncykKIHsKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAw
ZThhNzc0Li40MjIwOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xMzMsNiArMTMzLDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGRpZENyZWF0ZU5hbWVkRmxvdyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxv
dyopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJL
aXROYW1lZEZsb3cqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRVcGRhdGVSZWdpb25MYXlvdXQoRG9j
dW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VSZWdp
b25PdmVyc2V0KERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAKICAgICBzdGF0aWMgdm9p
ZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChQYWdlKiwgY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVu
c2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogICAgIHN0YXRpYyBib29sIGhhbmRsZU1vdXNlUHJlc3Mo
UGFnZSopOwpAQCAtMzM3LDYgKzMzOCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlk
Q3JlYXRlTmFtZWRGbG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqLCBXZWJL
aXROYW1lZEZsb3cqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKICAgICBz
dGF0aWMgdm9pZCBkaWRVcGRhdGVSZWdpb25MYXlvdXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5n
ZVJlZ2lvbk92ZXJzZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudCosIFdlYktp
dE5hbWVkRmxvdyopOwogCiAgICAgc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQg
bW9kaWZpZXJGbGFncyk7CiAgICAgc3RhdGljIGJvb2wgaGFuZGxlVG91Y2hFdmVudEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIE5vZGUqKTsKQEAgLTcxOSw2ICs3MjEsMTggQEAgaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRVcGRhdGVSZWdpb25MYXlvdXQoRG9jdW1l
bnQqIGRvY3VtZW50LAogI2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldChEb2N1bWVudCogZG9jdW1lbnQsIFdlYktp
dE5hbWVkRmxvdyogbmFtZWRGbG93KQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRkFT
VF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1l
bnQoZG9jdW1lbnQpKQorICAgICAgICBkaWRDaGFuZ2VSZWdpb25PdmVyc2V0SW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBkb2N1bWVudCwgbmFtZWRGbG93KTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGRvY3VtZW50KTsKKyAgICBVTlVTRURfUEFSQU0obmFtZWRGbG93KTsKKyNlbmRpZgorfQor
CiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KFBhZ2UqIHBhZ2UsIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQg
bW9kaWZpZXJGbGFncykKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1Zp
ZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU05hbWVkRmxvd0Nv
bGxlY3Rpb25zVmlldy5qcwppbmRleCBkNDIwZDI3Li44YTU1NTgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmll
dy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU05hbWVkRmxv
d0NvbGxlY3Rpb25zVmlldy5qcwpAQCAtMjQ3LDYgKzI0NywxOSBAQCBXZWJJbnNwZWN0b3IuQ1NT
TmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGZsb3cg
PSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5OYW1lZEZsb3d9ICovIChldmVudC5kYXRhKTsKICAg
ICAgICAgdGhpcy5fdXBkYXRlTmFtZWRGbG93KGZsb3cpOwogICAgIH0sCisgICAgCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAg
X3JlZ2lvbk92ZXJzZXRDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIC8v
IEZJWE1FOiBXZSBvbmx5IGhhdmUgc3VwcG9ydCBmb3IgTmFtZWQgRmxvd3MgaW4gdGhlIG1haW4g
ZG9jdW1lbnQuCisgICAgICAgIGlmIChldmVudC5kYXRhLmRvY3VtZW50Tm9kZUlkICE9PSB0aGlz
Ll9kb2N1bWVudC5pZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIHZh
ciBmbG93ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuTmFtZWRGbG93fSAqLyAoZXZlbnQuZGF0
YSk7CisgICAgICAgIHRoaXMuX3VwZGF0ZU5hbWVkRmxvdyhmbG93KTsKKyAgICB9LAogCiAgICAg
LyoqCiAgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IGRvY3VtZW50Tm9kZUlkCkBAIC0z
NTIsNiArMzY1LDcgQEAgV2ViSW5zcGVjdG9yLkNTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5OYW1lZEZsb3dDcmVhdGVkLCB0
aGlzLl9uYW1lZEZsb3dDcmVhdGVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk5h
bWVkRmxvd1JlbW92ZWQsIHRoaXMuX25hbWVkRmxvd1JlbW92ZWQsIHRoaXMpOwogICAgICAgICBX
ZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbC5FdmVudHMuUmVnaW9uTGF5b3V0VXBkYXRlZCwgdGhpcy5fcmVnaW9uTGF5b3V0VXBk
YXRlZCwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5SZWdpb25PdmVyc2V0Q2hhbmdl
ZCwgdGhpcy5fcmVnaW9uT3ZlcnNldENoYW5nZWQsIHRoaXMpOwogCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbCgiZWxlbWVudHMiKS50cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLkV2ZW50cy5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0
aGlzLl9zZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzKTsKIApAQCAtMzY2LDYgKzM4MCw3IEBAIFdl
Ykluc3BlY3Rvci5DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93Q3JlYXRlZCwgdGhpcy5fbmFtZWRGbG93
Q3JlYXRlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZW1vdmVFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5OYW1lZEZsb3dSZW1v
dmVkLCB0aGlzLl9uYW1lZEZsb3dSZW1vdmVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9y
LmNzc01vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
RXZlbnRzLlJlZ2lvbkxheW91dFVwZGF0ZWQsIHRoaXMuX3JlZ2lvbkxheW91dFVwZGF0ZWQsIHRo
aXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuUmVnaW9uT3ZlcnNldENoYW5nZWQsIHRo
aXMuX3JlZ2lvbk92ZXJzZXRDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWwoImVsZW1lbnRzIikudHJlZU91dGxpbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5FdmVudHMuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhp
cy5fc2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCA3NTI5ZDZlLi5jZDBk
MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0
eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NT
dHlsZU1vZGVsLmpzCkBAIC03Nyw3ICs3Nyw4IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LkV2ZW50cyA9IHsKICAgICBNZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZDogIk1lZGlhUXVlcnlSZXN1
bHRDaGFuZ2VkIiwKICAgICBOYW1lZEZsb3dDcmVhdGVkOiAiTmFtZWRGbG93Q3JlYXRlZCIsCiAg
ICAgTmFtZWRGbG93UmVtb3ZlZDogIk5hbWVkRmxvd1JlbW92ZWQiLAotICAgIFJlZ2lvbkxheW91
dFVwZGF0ZWQ6ICJSZWdpb25MYXlvdXRVcGRhdGVkIgorICAgIFJlZ2lvbkxheW91dFVwZGF0ZWQ6
ICJSZWdpb25MYXlvdXRVcGRhdGVkIiwKKyAgICBSZWdpb25PdmVyc2V0Q2hhbmdlZDogIlJlZ2lv
bk92ZXJzZXRDaGFuZ2VkIgogfQogCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5NZWRpYVR5
cGVzID0gWyJhbGwiLCAiYnJhaWxsZSIsICJlbWJvc3NlZCIsICJoYW5kaGVsZCIsICJwcmludCIs
ICJwcm9qZWN0aW9uIiwgInNjcmVlbiIsICJzcGVlY2giLCAidHR5IiwgInR2Il07CkBAIC00Mjgs
NiArNDI5LDIxIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgbmFtZWRGbG93Q29sbGVjdGlvbi5fYXBwZW5kTmFtZWRGbG93KG5hbWVkRmxvdyk7CiAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLkV2ZW50cy5SZWdpb25MYXlvdXRVcGRhdGVkLCBuYW1lZEZsb3cpOwogICAgIH0sCisg
ICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtDU1NBZ2VudC5OYW1lZEZsb3d9IG5hbWVkRmxv
d1BheWxvYWQKKyAgICAgKi8KKyAgICBfcmVnaW9uT3ZlcnNldENoYW5nZWQ6IGZ1bmN0aW9uKG5h
bWVkRmxvd1BheWxvYWQpCisgICAgeworICAgICAgICB2YXIgbmFtZWRGbG93ID0gV2ViSW5zcGVj
dG9yLk5hbWVkRmxvdy5wYXJzZVBheWxvYWQobmFtZWRGbG93UGF5bG9hZCk7CisgICAgICAgIHZh
ciBuYW1lZEZsb3dDb2xsZWN0aW9uID0gdGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnNbbmFtZWRG
bG93LmRvY3VtZW50Tm9kZUlkXTsKKyAgICAgICAgCisgICAgICAgIGlmICghbmFtZWRGbG93Q29s
bGVjdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIG5hbWVkRmxv
d0NvbGxlY3Rpb24uX2FwcGVuZE5hbWVkRmxvdyhuYW1lZEZsb3cpOworICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMu
UmVnaW9uT3ZlcnNldENoYW5nZWQsIG5hbWVkRmxvdyk7CisgICAgfSwKIAogICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7Q1NTQWdlbnQuU3R5bGVTaGVldElkfSBzdHlsZVNoZWV0SWQKQEAgLTE0Mzks
NiArMTQ1NSwxNCBAQCBXZWJJbnNwZWN0b3IuQ1NTRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAg
ICAgcmVnaW9uTGF5b3V0VXBkYXRlZDogZnVuY3Rpb24obmFtZWRGbG93UGF5bG9hZCkKICAgICB7
CiAgICAgICAgIHRoaXMuX2Nzc01vZGVsLl9yZWdpb25MYXlvdXRVcGRhdGVkKG5hbWVkRmxvd1Bh
eWxvYWQpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtDU1NBZ2VudC5O
YW1lZEZsb3d9IG5hbWVkRmxvd1BheWxvYWQKKyAgICAgKi8KKyAgICByZWdpb25PdmVyc2V0Q2hh
bmdlZDogZnVuY3Rpb24obmFtZWRGbG93UGF5bG9hZCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Nz
c01vZGVsLl9yZWdpb25PdmVyc2V0Q2hhbmdlZChuYW1lZEZsb3dQYXlsb2FkKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3Rh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjllMzcwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oCkBAIC0wLDAg
KzEsMzMgQEAKKy8qCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKgorICovCisKKyNpZm5kZWYgUmVnaW9uT3ZlcnNldFN0YXRlX2gKKyNkZWZpbmUgUmVnaW9u
T3ZlcnNldFN0YXRlX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFJlZ2lvbk92ZXJz
ZXRTdGF0ZSB7CisgICAgUmVnaW9uVW5kZWZpbmVkLAorICAgIFJlZ2lvbkVtcHR5LAorICAgIFJl
Z2lvbkZpdCwKKyAgICBSZWdpb25PdmVyc2V0Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBSZWdpb25PdmVyc2V0U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggOWQ2YTBkOS4uNmUwMTQwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xODE2LDcgKzE4MTYsNyBAQCB2b2lkIFJl
bmRlckJsb2NrOjpjb21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Us
IGJvb2wgcmVjb21wdXRlRgogICAgIGFkZFZpc3VhbE92ZXJmbG93RnJvbVRoZW1lKCk7CiAKICAg
ICBpZiAoaXNSZW5kZXJGbG93VGhyZWFkKCkpCi0gICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZCh0
aGlzKS0+Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKG9sZENsaWVudEFmdGVyRWRnZSk7
CisgICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+Y29tcHV0ZU92ZXJzZXRTdGF0ZUZv
clJlZ2lvbnMob2xkQ2xpZW50QWZ0ZXJFZGdlKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6Y2xl
YXJMYXlvdXRPdmVyZmxvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5jcHAKaW5kZXggNzAyMDhmNi4uODAwZWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoKQogICAg
IDogUmVuZGVyQmxvY2soMCkKKyAgICAsIG1fcHJldmlvdXNSZWdpb25Db3VudCgwKQogICAgICwg
bV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxp
ZGF0ZWQoZmFsc2UpCiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCh0cnVl
KQpAQCAtNTcsNiArNTgsNyBAQCBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKCkK
ICAgICAsIG1fb3ZlcnNldCh0cnVlKQogICAgICwgbV9oYXNSZWdpb25zV2l0aFN0eWxpbmcoZmFs
c2UpCiAgICAgLCBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoZmFsc2UpCisgICAg
LCBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGZhbHNlKQogICAgICwgbV9wYWdl
TG9naWNhbFNpemVDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhh
c2UoZmFsc2UpCiAgICAgLCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0KGZhbHNlKQpAQCAtMjE5LDYg
KzIyMSw5IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKIAogICAgIGlmIChzaG91
bGREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkpCiAgICAgICAgIGRpc3BhdGNoUmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnQoKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkRGlzcGF0Y2hSZWdp
b25PdmVyc2V0Q2hhbmdlRXZlbnQoKSkKKyAgICAgICAgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnQoKTsKIH0KIAogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMb2dpY2FsV2lk
dGgoKQpAQCAtNzM1LDcgKzc0MCw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6YXBwbHlCcmVh
a0FmdGVyQ29udGVudChMYXlvdXRVbml0IGNsaWVudEhlaWdodCkKICAgICBhZGRGb3JjZWRSZWdp
b25CcmVhayhjbGllbnRIZWlnaHQsIHRoaXMsIGZhbHNlKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93
VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGll
bnRBZnRlckVkZ2UpCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVG
b3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKQogewogICAgIExheW91dFVu
aXQgaGVpZ2h0ID0gb2xkQ2xpZW50QWZ0ZXJFZGdlOwogCkBAIC03NTMsMjUgKzc1OCwzNCBAQCB2
b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlv
dXRVbml0IG9sZENsaWVudEFmdGVyRQogICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICpp
dGVyOwogICAgICAgICBMYXlvdXRVbml0IGZsb3dNaW4gPSBoZWlnaHQgLSAoaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgpIDogcmVn
aW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS54KCkpOwogICAgICAgICBMYXlvdXRVbml0IGZs
b3dNYXggPSBoZWlnaHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxv
d1RocmVhZFBvcnRpb25SZWN0KCkubWF4WSgpIDogcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJl
Y3QoKS5tYXhYKCkpOwotICAgICAgICBSZW5kZXJSZWdpb246OlJlZ2lvblN0YXRlIHByZXZpb3Vz
U3RhdGUgPSByZWdpb24tPnJlZ2lvblN0YXRlKCk7Ci0gICAgICAgIFJlbmRlclJlZ2lvbjo6UmVn
aW9uU3RhdGUgc3RhdGUgPSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdDsKKyAgICAgICAgUmVnaW9u
T3ZlcnNldFN0YXRlIHByZXZpb3VzU3RhdGUgPSByZWdpb24tPnJlZ2lvbk92ZXJzZXRTdGF0ZSgp
OworICAgICAgICBSZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUgPSBSZWdpb25GaXQ7CiAgICAgICAg
IGlmIChmbG93TWluIDw9IDApCi0gICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVn
aW9uRW1wdHk7CisgICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbkVtcHR5OwogICAgICAgICBpZiAo
Zmxvd01heCA+IDAgJiYgcmVnaW9uID09IGxhc3RSZWcpCi0gICAgICAgICAgICBzdGF0ZSA9IFJl
bmRlclJlZ2lvbjo6UmVnaW9uT3ZlcnNldDsKLSAgICAgICAgcmVnaW9uLT5zZXRSZWdpb25TdGF0
ZShzdGF0ZSk7CisgICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbk92ZXJzZXQ7CisgICAgICAgIHJl
Z2lvbi0+c2V0UmVnaW9uT3ZlcnNldFN0YXRlKHN0YXRlKTsKICAgICAgICAgLy8gZGV0ZXJtaW5l
IHdoZXRoZXIgdGhlIE5hbWVkRmxvdyBvYmplY3Qgc2hvdWxkIGRpc3BhdGNoIGEgcmVnaW9uTGF5
b3V0VXBkYXRlIGV2ZW50CiAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgaXQgY2Fubm90IGRl
dGVybWluZSB3aGV0aGVyIGEgcmVnaW9uIHdob3NlIHJlZ2lvbk92ZXJzZXQgc3RhdGUgcmVtYWlu
ZWQgZWl0aGVyICJmaXQiIG9yICJvdmVyc2V0IiBoYXMgYWN0dWFsbHkKICAgICAgICAgLy8gY2hh
bmdlZCwgc28gaXQganVzdCBhc3N1bWVzIHRoYXQgdGhlIE5hbWVkRmxvdyBzaG91bGQgZGlzcGF0
Y2ggdGhlIGV2ZW50CiAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlCi0gICAgICAg
ICAgICB8fCBzdGF0ZSA9PSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdAotICAgICAgICAgICAgfHwg
c3RhdGUgPT0gUmVuZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0KQorICAgICAgICAgICAgfHwgc3Rh
dGUgPT0gUmVnaW9uRml0CisgICAgICAgICAgICB8fCBzdGF0ZSA9PSBSZWdpb25PdmVyc2V0KQog
ICAgICAgICAgICAgc2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCh0cnVlKTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlKQorICAgICAgICAgICAg
c2V0RGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQodHJ1ZSk7CisgICAgfQorICAgIAor
ICAgIC8vIElmIHRoZSBudW1iZXIgb2YgcmVnaW9ucyBoYXMgY2hhbmdlZCBzaW5jZSB3ZSBsYXN0
IGNvbXB1dGVkIHRoZSBvdmVyc2V0IHByb3BlcnR5LCBzY2hlZHVsZSB0aGUgcmVnaW9uT3ZlcnNl
dENoYW5nZSBldmVudC4KKyAgICBpZiAocHJldmlvdXNSZWdpb25Db3VudCgpICE9IG1fcmVnaW9u
TGlzdC5zaXplKCkpIHsKKyAgICAgICAgc2V0RGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZl
bnQodHJ1ZSk7CisgICAgICAgIHVwZGF0ZVByZXZpb3VzUmVnaW9uQ291bnQoKTsKICAgICB9CiAK
ICAgICAvLyBXaXRoIHRoZSByZWdpb25zIG92ZXJmbG93IHN0YXRlIGNvbXB1dGVkIHdlIGNhbiBh
bHNvIHNldCB0aGUgb3ZlcnNldCBmbGFnIGZvciB0aGUgbmFtZWQgZmxvdy4KICAgICAvLyBJZiB0
aGVyZSBhcmUgbm8gdmFsaWQgcmVnaW9ucyBpbiB0aGUgY2hhaW4sIG92ZXJzZXQgaXMgdHJ1ZS4K
LSAgICBtX292ZXJzZXQgPSBsYXN0UmVnID8gbGFzdFJlZy0+cmVnaW9uU3RhdGUoKSA9PSBSZW5k
ZXJSZWdpb246OlJlZ2lvbk92ZXJzZXQgOiB0cnVlOworICAgIG1fb3ZlcnNldCA9IGxhc3RSZWcg
PyBsYXN0UmVnLT5yZWdpb25PdmVyc2V0U3RhdGUoKSA9PSBSZWdpb25PdmVyc2V0IDogdHJ1ZTsK
IH0KIAogYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25JblJhbmdlKGNvbnN0IFJlbmRlclJl
Z2lvbiogdGFyZ2V0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uLCBjb25z
dCBSZW5kZXJSZWdpb24qIGVuZFJlZ2lvbikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IDEzYmQ3MjYuLjY0ZTY3OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMTI2LDYgKzEyNiw5IEBA
IHB1YmxpYzoKICAgICAKICAgICBSZW5kZXJSZWdpb24qIGZpcnN0UmVnaW9uKCkgY29uc3Q7CiAg
ICAgUmVuZGVyUmVnaW9uKiBsYXN0UmVnaW9uKCkgY29uc3Q7CisgICAgCisgICAgdW5zaWduZWQg
c2hvcnQgcHJldmlvdXNSZWdpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNSZWdp
b25Db3VudDsgfTsKKyAgICB2b2lkIHVwZGF0ZVByZXZpb3VzUmVnaW9uQ291bnQoKSB7IG1fcHJl
dmlvdXNSZWdpb25Db3VudCA9IG1fcmVnaW9uTGlzdC5zaXplKCk7IH07CiAKICAgICB2b2lkIHNl
dFJlZ2lvblJhbmdlRm9yQm94KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQgb2Zmc2V0RnJv
bUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSk7CiAgICAgdm9pZCBnZXRSZWdpb25SYW5nZUZvckJveChj
b25zdCBSZW5kZXJCb3gqLCBSZW5kZXJSZWdpb24qJiBzdGFydFJlZ2lvbiwgUmVuZGVyUmVnaW9u
KiYgZW5kUmVnaW9uKSBjb25zdDsKQEAgLTEzNCw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IFJlbmRlclJlZ2lvbiogb2xkU3RhcnRSZWdpb24gPSAwLCBjb25zdCBSZW5kZXJSZWdp
b24qIG9sZEVuZFJlZ2lvbiA9IDAsCiAgICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbiogbmV3U3Rh
cnRSZWdpb24gPSAwLCBjb25zdCBSZW5kZXJSZWdpb24qIG5ld0VuZFJlZ2lvbiA9IDApOwogICAg
IAotICAgIHZvaWQgY29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xk
Q2xpZW50QWZ0ZXJFZGdlKTsKKyAgICB2b2lkIGNvbXB1dGVPdmVyc2V0U3RhdGVGb3JSZWdpb25z
KExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKTsKIAogICAgIGJvb2wgb3ZlcnNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fb3ZlcnNldDsgfQogCkBAIC0xODcsOCArMTkwLDEyIEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoYm9vbCB2YWx1
ZSkgeyBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgPSB2YWx1ZTsgfQogICAgIGJv
b2wgc2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgcmV0dXJuIG1fZGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudDsgfQogICAgIAorICAgIHZvaWQgc2V0RGlzcGF0
Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoYm9vbCB2YWx1ZSkgeyBtX2Rpc3BhdGNoUmVnaW9u
T3ZlcnNldENoYW5nZUV2ZW50ID0gdmFsdWU7IH0KKyAgICBib29sIHNob3VsZERpc3BhdGNoUmVn
aW9uT3ZlcnNldENoYW5nZUV2ZW50KCkgeyByZXR1cm4gbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudDsgfQorICAgIAogICAgIC8vIE92ZXJyaWRlIGlmIHRoZSBmbG93IHRocmVhZCBp
bXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBkaXNwYXRjaGluZyBldmVudHMgd2hlbiB0aGUgZmxvdyBs
YXlvdXQgaXMgdXBkYXRlZCAoZS5nLiBmb3IgbmFtZWQgZmxvd3MpCiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSB7IG1fZGlzcGF0Y2hSZWdpb25MYXlv
dXRVcGRhdGVFdmVudCA9IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9u
T3ZlcnNldENoYW5nZUV2ZW50KCkgeyBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50
ID0gZmFsc2U7IH0KIAogICAgIHZvaWQgaW5pdGlhbGl6ZVJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxD
b250ZW50SGVpZ2h0KFJlbmRlclJlZ2lvbiogPSAwKTsKIApAQCAtMjAyLDYgKzIwOSw3IEBAIHBy
b3RlY3RlZDoKICAgICBpbmxpbmUgY29uc3QgUmVuZGVyQm94KiBjdXJyZW50QWN0aXZlUmVuZGVy
Qm94KCkgY29uc3Q7CiAKICAgICBSZW5kZXJSZWdpb25MaXN0IG1fcmVnaW9uTGlzdDsKKyAgICB1
bnNpZ25lZCBzaG9ydCBtX3ByZXZpb3VzUmVnaW9uQ291bnQ7CiAKICAgICBjbGFzcyBSZW5kZXJS
ZWdpb25SYW5nZSB7CiAgICAgcHVibGljOgpAQCAtMjc0LDYgKzI4Miw3IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1fb3ZlcnNldCA6IDE7CiAgICAgYm9vbCBtX2hhc1JlZ2lvbnNXaXRoU3R5bGlu
ZyA6IDE7CiAgICAgYm9vbCBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgOiAxOwor
ICAgIGJvb2wgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA6IDE7CiAgICAgYm9v
bCBtX3BhZ2VMb2dpY2FsU2l6ZUNoYW5nZWQgOiAxOwogICAgIGJvb2wgbV9pbkNvbnN0cmFpbmVk
TGF5b3V0UGhhc2UgOiAxOwogICAgIGJvb2wgbV9uZWVkc1R3b1BoYXNlc0xheW91dCA6IDE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3Bw
CmluZGV4IDE1MmNkZjguLmJmYjM4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC01NCw2ICs1NCw3IEBAIFJlbmRlck5h
bWVkRmxvd1RocmVhZCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjcmVhdGVBbm9ueW1vdXMoRG9j
dW1lbnQqIGRvY3VtZW50CiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJlbmRlck5hbWVkRmxvd1Ro
cmVhZChQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gbmFtZWRGbG93KQogICAgIDogbV9uYW1l
ZEZsb3cobmFtZWRGbG93KQogICAgICwgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyKHRo
aXMsICZSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJG
aXJlZCkKKyAgICAsIG1fcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXIodGhpcywgJlJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXJGaXJlZCkKIHsK
IH0KIApAQCAtNDI3LDYgKzQyOCwxNSBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpCiAgICAgICAgIG1fcmVnaW9uTGF5b3V0VXBk
YXRlRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpCit7CisgICAgUmVuZGVy
Rmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsKKyAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoZG9jdW1lbnQoKSwg
bV9uYW1lZEZsb3cuZ2V0KCkpOworICAgIAorICAgIGlmICghbV9yZWdpb25PdmVyc2V0Q2hhbmdl
RXZlbnRUaW1lci5pc0FjdGl2ZSgpICYmIG1fbmFtZWRGbG93LT5oYXNFdmVudExpc3RlbmVycygp
KQorICAgICAgICBtX3JlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKK30KKwogdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+KikKIHsKICAgICBBU1NF
UlQobV9uYW1lZEZsb3cpOwpAQCAtNDM0LDYgKzQ0NCwxMyBAQCB2b2lkIFJlbmRlck5hbWVkRmxv
d1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlck5h
bWVkRgogICAgIG1fbmFtZWRGbG93LT5kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7
CiB9CiAKK3ZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZWdpb25PdmVyc2V0Q2hhbmdlRXZl
bnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlck5hbWVkRmxvd1RocmVhZD4qKQoreworICAgIEFTU0VS
VChtX25hbWVkRmxvdyk7CisgICAgCisgICAgbV9uYW1lZEZsb3ctPmRpc3BhdGNoUmVnaW9uT3Zl
cnNldENoYW5nZUV2ZW50KCk7Cit9CisKIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpzZXRN
YXJrRm9yRGVzdHJ1Y3Rpb24oKQogewogICAgIGlmIChtX25hbWVkRmxvdy0+Zmxvd1N0YXRlKCkg
PT0gV2ViS2l0TmFtZWRGbG93OjpGbG93U3RhdGVOdWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4IDNkM2E3NjYuLjE1MDJiZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJl
YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFs
bG93ZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkgT1ZF
UlJJREU7CiAKICAgICBib29sIGRlcGVuZHNPbihSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIG90aGVy
UmVuZGVyRmxvd1RocmVhZCkgY29uc3Q7CiAgICAgdm9pZCBhZGREZXBlbmRlbmN5T25GbG93VGhy
ZWFkKFJlbmRlck5hbWVkRmxvd1RocmVhZCopOwpAQCAtOTgsNiArOTksNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBjYW5CZURlc3Ryb3llZCgpIGNvbnN0IHsgcmV0dXJuIG1faW52YWxpZFJlZ2lv
bkxpc3QuaXNFbXB0eSgpICYmIG1fcmVnaW9uTGlzdC5pc0VtcHR5KCkgJiYgbV9jb250ZW50Tm9k
ZXMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCByZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyRmly
ZWQoVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiopOworICAgIHZvaWQgcmVnaW9uT3ZlcnNl
dENoYW5nZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+Kik7CiAg
ICAgdm9pZCBjbGVhckNvbnRlbnROb2RlcygpOwogCiBwcml2YXRlOgpAQCAtMTIzLDYgKzEyNSw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gbV9uYW1lZEZsb3c7CiAK
ICAgICBUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+IG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZl
bnRUaW1lcjsKKyAgICBUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+IG1fcmVnaW9uT3ZlcnNl
dENoYW5nZUV2ZW50VGltZXI7CiB9OwogCiBpbmxpbmUgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiB0
b1JlbmRlck5hbWVkRmxvd1RocmVhZChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggOGU5Mzk0NS4uNDBkMjY5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTU0LDcgKzU0LDYg
QEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRmxv
d1RocmVhZCogZmxvd1RocmVhZCkKICAgICAsIG1faXNWYWxpZChmYWxzZSkKICAgICAsIG1faGFz
Q3VzdG9tUmVnaW9uU3R5bGUoZmFsc2UpCiAgICAgLCBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0KGZh
bHNlKQotICAgICwgbV9yZWdpb25TdGF0ZShSZWdpb25VbmRlZmluZWQpCiB7CiB9CiAKQEAgLTEz
Miw2ICsxMzEsMjAgQEAgTGF5b3V0UmVjdCBSZW5kZXJSZWdpb246Om92ZXJmbG93UmVjdEZvckZs
b3dUaHJlYWRQb3J0aW9uKGNvbnN0IExheW91dFJlY3QmIGZsb3cKICAgICByZXR1cm4gY2xpcFJl
Y3Q7CiB9CiAKK1JlZ2lvbk92ZXJzZXRTdGF0ZSBSZW5kZXJSZWdpb246OnJlZ2lvbk92ZXJzZXRT
dGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKGlzVmFsaWQoKSAmJiBub2RlKCkgJiYgbm9kZSgpLT5p
c0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiB0b0VsZW1lbnQobm9kZSgpKS0+cmVnaW9u
T3ZlcnNldFN0YXRlKCk7CisgICAgCisgICAgcmV0dXJuIFJlZ2lvblVuZGVmaW5lZDsKK30KKwor
dm9pZCBSZW5kZXJSZWdpb246OnNldFJlZ2lvbk92ZXJzZXRTdGF0ZShSZWdpb25PdmVyc2V0U3Rh
dGUgc3RhdGUpCit7CisgICAgaWYgKG5vZGUoKSAmJiBub2RlKCktPmlzRWxlbWVudE5vZGUoKSkK
KyAgICAgICAgdG9FbGVtZW50KG5vZGUoKSktPnNldFJlZ2lvbk92ZXJzZXRTdGF0ZShzdGF0ZSk7
Cit9CisKIExheW91dFVuaXQgUmVuZGVyUmVnaW9uOjpwYWdlTG9naWNhbFRvcEZvck9mZnNldChM
YXlvdXRVbml0IC8qIG9mZnNldCAqLykgY29uc3QKIHsKICAgICByZXR1cm4gZmxvd1RocmVhZCgp
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgp
IDogZmxvd1RocmVhZFBvcnRpb25SZWN0KCkueCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5oCmluZGV4IDQ0ZjgwMTguLmY4Y2I4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTgyLDE1ICs4Miw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY2xlYXJPYmplY3RTdHlsZUluUmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCopOwogCi0gICAg
ZW51bSBSZWdpb25TdGF0ZSB7Ci0gICAgICAgIFJlZ2lvblVuZGVmaW5lZCwKLSAgICAgICAgUmVn
aW9uRW1wdHksCi0gICAgICAgIFJlZ2lvbkZpdCwKLSAgICAgICAgUmVnaW9uT3ZlcnNldAotICAg
IH07Ci0KLSAgICBSZWdpb25TdGF0ZSByZWdpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGlzVmFs
aWQoKSA/IG1fcmVnaW9uU3RhdGUgOiBSZWdpb25VbmRlZmluZWQ7IH0KLSAgICB2b2lkIHNldFJl
Z2lvblN0YXRlKFJlZ2lvblN0YXRlIHJlZ2lvblN0YXRlKSB7IG1fcmVnaW9uU3RhdGUgPSByZWdp
b25TdGF0ZTsgfQorICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSByZWdpb25PdmVyc2V0U3RhdGUoKSBj
b25zdDsKKyAgICB2b2lkIHNldFJlZ2lvbk92ZXJzZXRTdGF0ZShSZWdpb25PdmVyc2V0U3RhdGUp
OwogICAgIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgcmVwcmVzZW50IHRoZSB3aWR0aCBhbmQgaGVp
Z2h0IG9mIGEgInBhZ2UiIGFuZCBmb3IgYSBSZW5kZXJSZWdpb24gdGhleSBhcmUganVzdCB0aGUK
ICAgICAvLyBjb250ZW50IHdpZHRoIGFuZCBjb250ZW50IGhlaWdodCBvZiBhIHJlZ2lvbi4gRm9y
IFJlbmRlclJlZ2lvblNldHMsIGhvd2V2ZXIsIHRoZXkgd2lsbCBiZSB0aGUgd2lkdGggYW5kCkBA
IC0yMDAsNyArMTkzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNWYWxpZCA6IDE7CiAgICAg
Ym9vbCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlIDogMTsKICAgICBib29sIG1faGFzQXV0b0xvZ2lj
YWxIZWlnaHQgOiAxOwotICAgIFJlZ2lvblN0YXRlIG1fcmVnaW9uU3RhdGU7CiB9OwogCiBpbmxp
bmUgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJlZ2lvbihSZW5kZXJPYmplY3QqIG9iamVjdCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205083</attachid>
            <date>2013-06-20 06:43:56 -0700</date>
            <delta_ts>2013-06-20 07:35:57 -0700</delta_ts>
            <desc>Patch without inspector changes</desc>
            <filename>117508.patch</filename>
            <type>text/plain</type>
            <size>64651</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTQwMjI2Li4zODUyNWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDYt
MjAgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gQWRkIG5ldyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1MDgKKworICAgICAgICBDaGFuZ2Vk
IHJlZ2lvbkxheW91dFVwZGF0ZSB0ZXN0cyB0byByZWdpb25PdmVyc2V0Q2hhbmdlIGFuZCBhZGRl
ZCBuZXcgdGVzdHMgZm9yIHJlZ2lvbk92ZXJzZXRDaGFuZ2UuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sOgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1
dG8taGVpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdp
b25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lv
bnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQt
cmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJv
eC1uby1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9t
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ct
ZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1m
bG93LWV2ZW50LXRhcmdldC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sOgorCiAyMDEzLTA2LTIwICBab2x0
YW4gQXJ2YWkgIDx6YXJ2YWlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZp
ZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93LWV4cGVj
dGVkLnR4dAppbmRleCBjODFhMDVlLi5kYjAxZDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hZGQtdG8tZmxvdy1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTEgQEAKLVRlc3RzIHJlZ2lv
bkxheW91dEV2ZW50CitUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogIEZsb3cgY29udGVudAogUEFTUyBldmVudC50YXJnZXQubmFt
ZSBpcyAiYXJ0aWNsZSIKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCmluZGV4IGZhY2RjMjcu
LmM2YjJkMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCkBAIC0xNyw3ICsx
Nyw3IEBACiAuYmxvY2sgewogICAgZGlzcGxheTpibG9jazsKIH0KLSNyZWdpb25fMSwgI3JlZ2lv
bl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7fQorI3JlZ2lvbl8x
LCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDsgYm9y
ZGVyOiAxcHggc29saWQgcmVkO30KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTM0LDcg
KzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+CiAKIDxzY3Jp
cHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IikKKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCIpCiAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ0LDE2ICs0NCwxOSBAQAogICAgICAg
ICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlZ2lvbik7CiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9Ci0gICAgCi0gICAgdmFyIGNvdW50
ID0gMDsKLSAgICBmdW5jdGlvbiByZWdpb25MYXlvdXRVcGRhdGVkKGV2ZW50KSB7CisKKyAgICB2
YXIgZXZlbnRDb3VudCA9IDA7CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2hvdWxkQmUoImV2ZW50Q291bnQiLCAiMiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsK
ICAgICAgICAgCi0gICAgICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICAgZXZlbnQu
dGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJl
Z2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAgCisgICAgICAgIGlmICgrK2V2ZW50Q291
bnQgPiAxKSB7CiAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJl
Z2lvbl8yIGlzIGFkZGVkIHRvIGZsb3cKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIApAQCAtNjIsNyArNjUsNyBAQAogCiAgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewog
ICAgICAgICB2YXIgZmxvdyA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxv
dy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlv
dXRVcGRhdGVkKTsKKyAgICAgICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25v
dmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAKICAgICAgICAg
ZGVidWcoIkZsb3cgY29udGVudCIpOwogICAgICAgICBmbG93Q29udGVudCgicmVnaW9uXzEiLCAi
YXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1u
YW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVmNzU5MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hdXRvLWhlaWdodC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhlIHJl
Z2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9yIHJlZ2lvbnMgd2l0aCBoZWlnaHQ6YXV0bworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9u
cy4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMDc1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwK
QEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzog
YXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAj
cmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRp
Y2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJs
b2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4Owor
ICAgICAgICBoZWlnaHQ6YXV0bzsKKyAgICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIHJlZDsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgIH0KKyAgICAuY29u
dGVudCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICBib3JkZXI6
IDNweCBkYXNoZWQgYmx1ZTsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAx
ODBweDsKKyAgICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgLXdlYmtpdC1yZWdpb24tYnJlYWst
YmVmb3JlOiBhbHdheXM7CisgICAgICAgIGhlaWdodDogMTYwcHg7CisgICAgfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFydGljbGUiPgorICAgICAgICA8ZGl2Pgor
ICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNzPSJjb250ZW50Ij48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29udGVudCI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0icmVnaW9uXzEiPjwvZGl2PgorICAgIDxk
aXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIHdp
dGggaGVpZ2h0OmF1dG8iKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjEiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdh
aXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAgICAgICAgICBzZXRU
aW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxv
d0J5TmFtZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3Rl
bmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVn
aW9ucy4uLiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAg
fQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLWV4cGVjdGVkLnR4dAppbmRleCBjNWIxYjRjLi42NGQ5NDlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IGZvciBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyOTQ0IFtDU1MgUmVnaW9uc10gQ3Jh
c2ggd2hlbiBkaXNwYXRjaGluZyByZWdpb25sYXlvdXR1cGRhdGUuIFRoZSB0ZXN0IHBhc3NlcyBp
ZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3NlcnQuCitUaGUgdGVzdCBwYXNzZXMgaWYgdGhlcmUg
aXMgbm8gY3Jhc2ggb3IgYXNzZXJ0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LWNyYXNoLmh0bWwKaW5kZXggZmU2M2MzYi4uODFmZjNjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLmh0bWwKQEAgLTI3LDI0ICsyNywyNSBAQAogICAgICAgICA8ZGl2IGlkPSJyZWdpb24iPgog
ICAgICAgICA8L2Rpdj4KICAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5NDQgW0NT
UyBSZWdpb25zXSBDcmFzaCB3aGVuIGRpc3BhdGNoaW5nIHJlZ2lvbmxheW91dHVwZGF0ZS4gVGhl
IHRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5vIGNyYXNoIG9yIGFzc2VydC4iKTsKKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3Nl
cnQuIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGR1bW15SGFuZGxlciAoZXZ0KSB7
Ci0gICAgICAgICAgICBldnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lv
bmxheW91dHVwZGF0ZSIsIGR1bW15SGFuZGxlcik7CisgICAgICAgICAgICBldnQudGFyZ2V0LnJl
bW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhhbmRs
ZXIpOworICAgICAgICAgICAgZGVidWcoIlRoaXMgbGluZSBzaG91bGQgbm90IGFwcGVhciEiKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93cyA9IGRvY3VtZW50LndlYmtpdEdldE5hbWVkRmxvd3MoKTsKLSAgICAg
ICAgICAgIG5hbWVkRmxvd3NbImZsb3ciXS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25s
YXlvdXR1cGRhdGUiLCBkdW1teUhhbmRsZXIpOworICAgICAgICAgICAgbmFtZWRGbG93c1siZmxv
dyJdLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhh
bmRsZXIpOwogICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpOwogICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKTsKICAgICAgICAgICAgIGNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gIjYw
MHB4IjsKIAotICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSByZWdpb25sYXlvdXR1cGRhdGUgZXZl
bnQuCisgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHJlZ2lvbm92ZXJzZXRjaGFuZ2UgZXZlbnQu
CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKIAogICAgICAgICAgICAgLy8g
VHJhbnNpdGlvbiB0aGUgZmxvdyB0byB0aGUgIk5VTEwiIHN0YXRlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBl
Y3RlZC50eHQKaW5kZXggZjkzZTljNzkuLjdjNzkzMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3RzIHJlZ2lvbkxheW91dEV2ZW50CitUZXN0cyByZWdp
b25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGVhMmIyMTku
LjgyMGJkOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRj
aGVkIHdoZW4gdGhlIHJlZ2lvbiBjaGFpbiBpcyByZW1vdmVkCitUZXN0cyByZWdpb25PdmVyc2V0
Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQgd2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQK
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDYgKzgsNyBAQCBQQVNTIGV2ZW50
LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uIDEKIFJlbW92aW5nIHJl
Z2lvbiAyCiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBldmVudENv
dW50IGlzIDIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LW5vLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLmh0bWwKaW5kZXggMjdmZTYzMi4uYmI0NmZhMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LW5vLXJlZ2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0
LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sCkBAIC0zNSw3ICszNSw3IEBACiA8L2Rp
dj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQg
YmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSByZWdpb24gY2hhaW4gaXMgcmVtb3ZlZCIpOworICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQg
d2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQiKTsKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDksMTIgKzQ5LDE3IEBACiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9CiAKLSAgICB2YXIgY291bnQgPSAw
OwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZlbnQpIHsKKyAgICBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIHZhciBldmVudENvdW50ID0gMDsK
KyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsKLSAgICAg
ICAgaWYgKCsrY291bnQgPiAxKSB7Ci0gICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlvdXRVcGRhdGVk
KTsKLSAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQg
PiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJr
aXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC02OCw3
ICs3Myw3IEBACiAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgICAgIHZhciBmbG93
ID0gZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOwotICAgICAgICBmbG93LmFkZEV2ZW50TGlzdGVu
ZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAg
ICAgICBmbG93LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBy
ZWdpb25PdmVyc2V0Q2hhbmdlZCk7CiAKICAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOwog
ICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW5v
LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIyOTQ2
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQgZm9yIHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4uLgorUEFTUyBldmVudC50YXJn
ZXQubmFtZSBpcyAiYXJ0aWNsZSIKK0VuZ2FnaW5nIGZsZXhib3guLi4KK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4t
ZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQzMGEzMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNl
dC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Vi
a2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNr
OworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxv
dy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRp
c3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAg
IG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6MTkwcHg7CisgICAgICAgIHdpZHRoOjIwMHB4
OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgICAgIHBhZGRpbmc6IDVweDsK
KyAgICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7CisgICAgICAgIC13ZWJraXQtZmxleC1iYXNp
czogMTAwJTsKKyAgICB9CisgICAgI3JlZ2lvbl8yIHsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWJh
c2lzOiAzMCU7CisgICAgfQorICAgIC5jb250ZW50IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47CisgICAgICAgIGJvcmRlcjogM3B4IGRhc2hlZCBibHVlOworICAgICAgICBtYXJn
aW46IDVweDsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAxNDBweDsKKyAg
ICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgaGVpZ2h0OiAxNjBweDsKKyAgICB9CisgICAgI2Zs
ZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKKyAgICAgICAgbWFyZ2lu
OiA1cHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFy
dGljbGUiPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNz
PSJjb250ZW50Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29u
dGVudCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0i
ZmxleGJveCI+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0icmVnaW9uXzIiPjwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9y
IHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcyIpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIGZ1bmN0aW9uIGZsb3dDb250ZW50KGZsb3dO
YW1lKSB7CisgICAgICAgICAgICB2YXIgcmVnaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl8xIik7CisgICAgICAgICAgICByZWdpb24uc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBm
bG93TmFtZTsKKyAgICAgICAgICAgIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb25fMiIpOworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxv
d05hbWU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZXZlbnRGaXJlZENvdW50ID0gMDsKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVu
dEZpcmVkQ291bnQiLCAiMSIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBFbmFibGVGbGV4Ym94KCkgeworICAgICAgICAgICAgZGVi
dWcoIkVuZ2FnaW5nIGZsZXhib3guLi4iKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImZsZXhib3giKS5zdHlsZS5kaXNwbGF5ID0gIi13ZWJraXQtZmxleCI7CisKKyAgICAg
ICAgICAgIC8vIHdhaXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsr
ZXZlbnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRo
ZSBmbGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVu
YWJsZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3Rh
cnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFt
ZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3RlbmVyKCJ3
ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4u
LiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKKyAgICA8
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3Zl
cnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODE4ZGU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUZXN0cyB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBmb3IgcmVn
aW9ucyBpbnNpZGUgZmxleGJveGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitG
bG93aW5nIGNvbnRlbnQgaW50byByZWdpb25zLi4uCitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlz
ICJhcnRpY2xlIgorRW5nYWdpbmcgZmxleGJveC4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBp
cyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJlZENvdW50IGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gt
b3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOTA5MjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9u
LWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGlj
bGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVy
OiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7Cisg
ICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpo
aWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6YXV0bzsKKyAg
ICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICAg
ICAgcGFkZGluZzogNXB4OworICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTsKKyAgICAgICAg
LXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlOworICAgIH0KKyAgICAjcmVnaW9uXzIgeworICAgICAg
ICAtd2Via2l0LWZsZXgtYmFzaXM6IDcwJTsKKyAgICB9CisgICAgLmNvbnRlbnQgeworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgYm9yZGVyOiAzcHggZGFzaGVkIGJs
dWU7CisgICAgICAgIG1hcmdpbjogNXB4OworICAgIH0KKyAgICAjcGFydDEgeworICAgICAgICBo
ZWlnaHQ6IDcwcHg7CisgICAgfQorICAgICNwYXJ0MiB7CisgICAgICAgIGhlaWdodDogODBweDsK
KyAgICB9CisgICAgI2ZsZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsK
KyAgICAgICAgbWFyZ2luOiA1cHg7CisgICAgICAgIHdpZHRoOiAyNDBweDsKKyAgICAgICAgaGVp
Z2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAg
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAg
ICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQxIiBjbGFzcz0iY29udGVudCI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGlkPSJwYXJ0MiIgY2xhc3M9ImNvbnRlbnQiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgaWQ9ImZsZXhib3giPgor
ICAgICAgICA8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bl8yIj48L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIGlu
c2lkZSBmbGV4Ym94ZXMiKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjIiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gRW5hYmxlRmxleGJveCgpIHsKKyAgICAgICAgICAgIGRlYnVnKCJFbmdhZ2lu
ZyBmbGV4Ym94Li4uIikKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmbGV4
Ym94Iikuc3R5bGUuZGlzcGxheSA9ICItd2Via2l0LWZsZXgiOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRoZSBm
bGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVuYWJs
ZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDIwMCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAorICAgICAgICAgICAgdmFyIGZsb3dUaHJlYWQgPSBn
ZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7CisgICAgICAgICAgICBmbG93VGhyZWFkLmFkZEV2ZW50
TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCByZWdpb25PdmVyc2V0Q2hhbmdl
ZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlYnVnKCJGbG93aW5nIGNvbnRlbnQgaW50
byByZWdpb25zLi4uIik7CisgICAgICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOworICAg
ICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRl
c3QpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJv
bS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKaW5kZXggY2I0YWUwMS4u
Mjc1OTRmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudAorVGVz
dHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKQEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBET00KIFBBU1Mg
ZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNTIGV2ZW50Q291bnQgaXMgMgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3Zl
LWZyb20tZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWwKaW5kZXggMDI1ODllNi4uM2I0NjM4ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1kb20uaHRtbApAQCAtMTcsNyArMTcsNyBA
QAogLmJsb2NrIHsKICAgIGRpc3BsYXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7
IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IG1hcmdpbjogNXB4O30KKyNyZWdpb25fMSwgI3Jl
Z2lvbl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7IGJvcmRlcjog
MXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC0zNiw3ICszNiw3
IEBACiA8ZGl2IGlkPSJjb25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2PgogCiA8c2NyaXB0Pgot
ICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCIpCisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQiKQogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkBAIC00OSwxNCArNDksMTkgQEAKICAgICAgICAgciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwogICAgICAgICByLnN0eWxlLndl
YmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CiAgICAgfQotICAgIAotICAgIHZhciBjb3VudCA9IDA7
Ci0gICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworCisgICAgdmFyIGV2
ZW50Q291bnQgPSAwOworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3Vs
ZEJlKCJldmVudENvdW50IiwgIjIiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7Ci0gICAg
ICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRl
ZCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVk
IGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIApAQCAtNjcsNyArNzIsNyBAQAogICAgIAogICAgIGZ1bmN0aW9uIHN0
YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7
Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRl
IiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2VkKTsKICAgICAg
ICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQo
ImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
LWV4cGVjdGVkLnR4dAppbmRleCAyMzRlNDYyLi45ZTZlNGM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxv
dy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC03LDYgKzcsNyBAQCBGbG93IGNv
bnRlbnQKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCiBSZW1vdmluZyByZWdp
b25fMiBmcm9tIGZsb3cKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbAppbmRl
eCAwMjhkNDQ4Li42NDUwZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1m
bG93Lmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKIC5ibG9jayB7CiAgICBkaXNwbGF5OmJsb2NrOwog
fQotI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJn
aW46IDVweDt9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAw
cHg7IG1hcmdpbjogNXB4OyBib3JkZXI6IDFweCBzb2xpZCByZWQ7fQogPC9zdHlsZT4KIDwvaGVh
ZD4KIDxib2R5PgpAQCAtMzQsNyArMzQsNyBAQAogPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJs
b2NrIj48L2Rpdj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5
b3V0RXZlbnQiKQorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2
ZW50IikKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDcs
MTQgKzQ3LDE4IEBACiAgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
XzIiKTsKICAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOwogICAgIH0K
LSAgICAKLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0
ZWQoZXZlbnQpIHsKKworICAgIHZhciBldmVudENvdW50ID0gMDsKKyAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlZ2lvbk92ZXJzZXRDaGFu
Z2VkKGV2ZW50KSB7CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0
Lm5hbWUiLCAiYXJ0aWNsZSIpOwotICAgICAgICBpZiAoKytjb3VudCA+IDEpIHsKLSAgICAgICAg
ICAgZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVw
ZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBi
ZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAg
ICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQg
ZnJvbSBET00KKyAgICAgICAgICAgc2V0VGltZW91dCgiZmluaXNoVGVzdCgpIiwgMjAwKTsKICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIApAQCAtNjUsNyArNjksNyBAQAog
ICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRG
bG93QnlOYW1lKCJhcnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Vi
a2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZs
b3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92
ZXJzZXRDaGFuZ2VkKTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsK
ICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdl
dC1leHBlY3RlZC50eHQKaW5kZXggZGE4ZTU0ZC4uY2QxNjQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogRmxvdyBjb250ZW50CiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRp
Y2xlIgotUEFTUyAyIGlzID49IHVwZGF0ZWRDb3VudAogUEFTUyBnZXRGbG93QnlOYW1lKCJhcnRp
Y2xlIikgaXMgbm9uLW51bGwuCiBQQVNTIHJlY3JlYXRlZCBpcyBmYWxzZQogUEFTUyBnZXRGbG93
QnlOYW1lKCJhcnRpY2xlIikgaXMgbnVsbAogUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0
aWNsZSIKLVBBU1MgMiBpcyA+PSB1cGRhdGVkQ291bnQKIFBBU1MgcmVjcmVhdGVkIGlzIHRydWUK
IFBBU1MgZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpIGlzIG5vbi1udWxsLgorUEFTUyB1cGRhdGVk
Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtdGFyZ2V0Lmh0bWwKaW5kZXggZWY2YmIxNC4uMDY5NWViMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC10YXJnZXQuaHRtbApAQCAtMTksNyArMTksNyBAQAogLmJsb2NrIHsKICAgIGRpc3Bs
YXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6
MjAwcHh9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7
IGJvcmRlcjogMXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC03
NSwxNyArNzUsMjAgQEAgZnVuY3Rpb24gbWFrZUZsb3dDcmVhdGVkKCkgewogfQogCiB2YXIgdXBk
YXRlZENvdW50ID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmUoInVw
ZGF0ZWRDb3VudCIsICIyIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKIGZ1bmN0aW9uIGZs
b3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7CiAJKyt1cGRhdGVkQ291bnQ7CiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAKLSAgICBzaG91
bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiMiIsICJ1cGRhdGVkQ291bnQiKTsKLQogICAgIGlmICh1
cGRhdGVkQ291bnQgPT0gMikgewogICAgIAlzaG91bGRCZVRydWUoInJlY3JlYXRlZCIpOwotICAg
IAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBk
YXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsK
ICAgICAJbWFrZUZsb3dOdWxsKCk7Ci0gICAgCWZpbmlzaEpTVGVzdCgpOworICAgIAlzZXRUaW1l
b3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOwogICAgIAlyZXR1cm47CiAgICAgfQogCkBAIC05OCw3
ICsxMDEsNyBAQCBmdW5jdGlvbiBmbG93VGhyZWFkVXBkYXRlZChldmVudCkgewogCiBmdW5jdGlv
biBzdGFydFRlc3QoKSB7ICAgIAogICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFtZSgi
YXJ0aWNsZSIpOwotICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
bGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIGZsb3dUaHJlYWQuYWRkRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVk
KTsKICAgICAKICAgICBkZWJ1ZygiRmxvdyBjb250ZW50Iik7CiAgICAgZmxvd0NvbnRlbnQoImFy
dGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dAppbmRleCBl
YjJjY2I5Li42OTQwYzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQgYmVpbmcgZGlzcGF0
Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFu
Z2UgZXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDcgKzgsNyBAQCBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93CiBSZW1v
dmluZyByZWdpb25fMSBmcm9tIGZsb3cKIFJlbW92aW5nIGFydGljbGUgZnJvbSBmbG93Ci1QQVNT
IGxheW91dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyBpcyBmYWxzZQorUEFTUyByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93IGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sCmlu
ZGV4IDUzZjVkZWMuLjY0ZmQ4YWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwuaHRtbApAQCAtMzYs
NyArMzYsNyBAQAogCiA8c2NyaXB0PgogCi1kZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0
RXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQiKTsKK2Rl
c2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGJlaW5nIGRpc3BhdGNo
ZWQgd2hlbiB0aGUgY29udGVudCBpcyByZW1vdmVkIik7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKQEAgLTUyLDEyICs1MiwxMiBA
QCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB9CiAgICAgCiAgICAgdmFyIGNvdW50ID0g
MDsKLSAgICB2YXIgbGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7Ci0g
ICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworICAgIHZhciByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7CisgICAgZnVuY3Rpb24gcmVnaW9u
T3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
dmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAgICAgICAgIGlmICgrK2NvdW50ID4gMSkg
ewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVn
aW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7Ci0gICAgICAgICAgIGxheW91
dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyA9IHRydWU7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAgICByZWdpb25PdmVyc2V0RGlzcGF0Y2hlZEZv
ck51bGxGbG93ID0gdHJ1ZTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtNzEsMTcgKzcxLDE3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBk
ZWJ1ZygiUmVtb3ZpbmcgYXJ0aWNsZSBmcm9tIGZsb3ciKTsKICAgICAgICAgZWwuc3R5bGUud2Vi
a2l0Rmxvd0ludG8gPSAibm9uZSI7CiAKLSAgICAgICAgc2V0VGltZW91dChjaGVja0lmRXZlbnRE
aXNwYXRjaGVkLCA1MDApOworICAgICAgICBzZXRUaW1lb3V0KGNoZWNrSWZFdmVudERpc3BhdGNo
ZWQsIDIwMCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY2hlY2tJZkV2ZW50RGlzcGF0Y2hlZCgp
IHsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgibGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxG
bG93Iik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInJlZ2lvbk92ZXJzZXREaXNwYXRjaGVkRm9y
TnVsbEZsb3ciKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogICAgIAogICAgIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJh
cnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5
b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2Vk
KTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxv
d0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50Lmh0bWwKaW5kZXggNzY2ZTIwOS4uYWUwODRlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9j
ayI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91
dEV2ZW50IikKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dCIpCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ5LDE5
ICs0OSwxOCBAQAogICAgIAogICAgIGZ1bmN0aW9uIGZsb3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7
CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0Lm5hbWUiLCAiYXJ0
aWNsZSIpOwotICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0
cmVnaW9ubGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgICAgICBldmVudC50
YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZs
b3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
IH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAogICAgICAgICB2YXIgZmxv
d1RocmVhZCA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxvd1RocmVhZC5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCBmbG93VGhyZWFkVXBk
YXRlZCk7CisgICAgICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
b3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGRl
YnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKICAg
ICB9Ci0gICAgLy9zdGFydFRlc3QoKTsKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHN0YXJ0VGVzdCk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZDJkZWIu
LjNkMDNhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMy0wNi0yMCAgUmFkdSBT
dGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBBZGQg
bmV3IHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzUwOAorCisgICAgICAgIEFkZGVkIHJlZ2lvbk92ZXJz
ZXRDaGFuZ2UgZXZlbnQgYW5kIHRlc3RzIGZvciBpdC4gVGhlIG92ZXJzZXQgdmFsdWUgb2YgdGhl
IHJlZ2lvbiBoYXMgYmVlbiBtb3ZlZCB0byB0aGUgRWxlbWVudFJhcmVEYXRhCisgICAgICAgIG9i
amVjdCBpbnN0ZWFkIG9mIHRoZSBSZW5kZXJSZWdpb24gb2JqZWN0LiBUaGlzIHdhcyBuZWVkZWQg
Zm9yIHRoZSBjYXNlIHdoZW4gYSByZWF0dGFjaCBpcyBwZXJmb3JtZWQgKGZvciBpbnN0YW5jZSBi
eSBjaGFuZ2luZworICAgICAgICB0aGUgZGlzcGxheSB0eXBlIG9mIHRoZSByZWdpb24ncyBjb250
YWluaW5nIGJsb2NrKSBhbmQgdGhlIFJlbmRlclJlZ2lvbiBvYmplY3QgaXMgZGVzdHJveWVkLiBX
aGVuIGNvbXB1dGluZyB0aGUgb3ZlcnNldCBhZ2FpbiwKKyAgICAgICAgdGhlcmUgd291bGQgYmUg
bm8gInByZXZpb3VzIiB2YWx1ZSB0byBjb21wYXJlIGl0IHRvIGFuZCBkZWNpZGUgd2hldGhlciB0
aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6ICBmYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbDoKKyAgICAgICAg
ICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQu
aHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZl
bnQtY3Jhc2guaHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNo
YW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWw6CisgICAgICAgICAgICAg
ICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC5odG1sOgorICAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxs
Lmh0bWw6CisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWw6CisKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlZ2lv
bk92ZXJzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3ZWJraXRSZWdpb25P
dmVyc2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50
UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6cmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAg
KiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpmaXJzdEVtcHR5UmVnaW9uSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpkaXNwYXRjaFJlZ2lvbk92ZXJz
ZXRDaGFuZ2VFdmVudCk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OkNoYW5nZVJlZ2lvbk92ZXJzZXRU
YXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpzY2hlZHVs
ZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6dW5zY2hl
ZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6cmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6Om9uVGltZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaDogQWRkZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpjb21wdXRlT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dU
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JS
ZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJl
Z2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6cmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisKIDIwMTMtMDYtMjAgIEdyemVnb3J6IEN6
YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvciBhbmQgdGV4dC1kZWNvcmF0aW9uIGFyZSBub3QgcHJlc2VydmVkIHdoZW4gbWVyZ2lu
ZyBwYXJhZ3JhcGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiZWNjNGQzLi4w
OGUzMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ0MDAsNiArNDQwMCw3
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50
UGhhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BvaW50ZXJFdmVudHNIaXRSdWxl
cy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Qb2ludGVyRXZlbnRzSGl0UnVsZXMu
aCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQXJlbmEuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIzNWZiNjguLmNiYTQyNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjQyMSw2ICsyNDIxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5n
L1BhaW50SW5mby5oIFwKICAgICByZW5kZXJpbmcvUGFpbnRQaGFzZS5oIFwKICAgICByZW5kZXJp
bmcvUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggXAorICAgIHJlbmRlcmluZy9SZWdpb25PdmVyc2V0
U3RhdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oIFwKICAgICByZW5kZXJpbmcv
UmVuZGVyQXJlbmEuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY3ZDkz
NDcuLmI4MWE4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE4MTAsNiArMTgxMCw3IEBACiAJCTZCMzQ4MDk0MEVFRjUwRDQw
MEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdl
UHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4
ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkM2Mzg4
OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRB
OTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICov
OyB9OworCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzcwQTgxNDE3
NzA3QzQ5MDA5QTQ0NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAy
IC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHQzRC5jcHAgKi87IH07CiAJCTZFMjFDNkMyMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0Nv
bnRleHQzRENHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAq
LzsgfTsKIAkJNkUzRkFEMzgxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuY3BwICovOyB9OwpAQCAtODE5OCw2ICs4MTk5LDcgQEAKIAkJNkIzNDgwOTIwRUVGNTBENDAw
QUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXRpdmVJbWFnZVB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYz
ODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYzODg5NEE5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNzBBODE0MTc3MDdD
NDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVnaW9uT3ZlcnNldFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUw
MiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5OTA5LDYgKzE5OTExLDcgQEAKIAkJCQkwODg1MDY3RTExREEwNDVCMDAxODJCOTggLyogUGFp
bnRQaGFzZS5oICovLAogCQkJCUIyQjFGNzE0MEQwMENBQTgwMDRBRUE2NCAvKiBQb2ludGVyRXZl
bnRzSGl0UnVsZXMuY3BwICovLAogCQkJCUIyQjFGNzE1MEQwMENBQTgwMDRBRUE2NCAvKiBQb2lu
dGVyRXZlbnRzSGl0UnVsZXMuaCAqLywKKwkJCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0NkUgLyog
UmVnaW9uT3ZlcnNldFN0YXRlLmggKi8sCiAJCQkJQkNFQTQ4MUMwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlckFwcGxldC5jcHAgKi8sCiAJCQkJQkNFQTQ4MUQwOTdEOTMwMjAwOTRDOUU0IC8qIFJl
bmRlckFwcGxldC5oICovLAogCQkJCUJDRUE0ODFFMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJB
cmVuYS5jcHAgKi8sCkBAIC0yMzk3Myw2ICsyMzk3Niw3IEBACiAJCQkJQkU4RUYwNEIxNzFDOTAx
NDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEQx
NzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZCNzE5QzNGMTcyMzhDQTgwMDIyREUzNCAvKiBXZWJLaXRDU1NNYXRGdW5jdGlvblZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3Zl
cnNldFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4MzVm
OGIzLi43NzJiNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNDIwLDYgKzI0MjAsMTYg
QEAgYm9vbCBFbGVtZW50Ojppc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlzSW5DYW52YXNTdWJ0cmVlKCk7CiB9
CiAKK3ZvaWQgRWxlbWVudDo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvbk92ZXJzZXRTdGF0
ZSBzdGF0ZSkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0UmVnaW9uT3ZlcnNl
dFN0YXRlKHN0YXRlKTsKK30KKworUmVnaW9uT3ZlcnNldFN0YXRlIEVsZW1lbnQ6OnJlZ2lvbk92
ZXJzZXRTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50
UmFyZURhdGEoKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkgOiBSZWdpb25VbmRlZmluZWQ7Cit9CisK
IEF0b21pY1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAog
ewogICAgIGNvbnN0IE5vZGUqIG4gPSB0aGlzOwpAQCAtMjc5MCwyMCArMjgwMCwyMCBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQoKSBjb25zdAogICAg
IGlmICghZG9jdW1lbnQoKS0+Y3NzUmVnaW9uc0VuYWJsZWQoKSB8fCAhcmVuZGVyUmVnaW9uKCkp
CiAgICAgICAgIHJldHVybiB1bmRlZmluZWRTdGF0ZTsKIAotICAgIHN3aXRjaCAocmVuZGVyUmVn
aW9uKCktPnJlZ2lvblN0YXRlKCkpIHsKLSAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0
OiB7CisgICAgc3dpdGNoIChyZW5kZXJSZWdpb24oKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsK
KyAgICBjYXNlIFJlZ2lvbkZpdDogewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZml0U3RhdGUsICgiZml0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgICAgICByZXR1cm4gZml0U3RhdGU7CiAgICAgfQotICAgIGNhc2UgUmVuZGVy
UmVnaW9uOjpSZWdpb25FbXB0eTogeworICAgIGNhc2UgUmVnaW9uRW1wdHk6IHsKICAgICAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3RhdGUsICgiZW1wdHkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBlbXB0
eVN0YXRlOwogICAgIH0KLSAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uT3ZlcnNldDogewor
ICAgIGNhc2UgUmVnaW9uT3ZlcnNldDogewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gb3ZlcmZsb3dTdGF0ZTsKICAgICB9
Ci0gICAgY2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvblVuZGVmaW5lZDoKKyAgICBjYXNlIFJlZ2lv
blVuZGVmaW5lZDoKICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFN0YXRlOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKaW5kZXggOTNiOTY3Ny4uZGE3NmYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29sbGVjdGlvblR5cGUuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlZ2lvbk92ZXJz
ZXRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxp
dFN0cmluZy5oIgogCkBAIC00NzgsNiArNDc5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNJ
bkNhbnZhc1N1YnRyZWUoYm9vbCk7CiAgICAgYm9vbCBpc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0
OwogCisgICAgdm9pZCBzZXRSZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlKTsK
KyAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3Q7CisKICAg
ICBBdG9taWNTdHJpbmcgY29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3Q7CiAgICAgTG9j
YWxlJiBsb2NhbGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNw
cAppbmRleCBiYzgyNDc4Li5jNDk4NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudFJhcmVEYXRhLmgiCi0KKyNpbmNsdWRlICJSZWdpb25PdmVyc2V0U3RhdGUuaCIK
ICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2
ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBTYW1lU2l6ZUFzRWxlbWVudFJh
cmVEYXRhIDogTm9kZVJhcmVEYXRhIHsKICAgICBzaG9ydCBpbmRpY2VzWzJdOwogICAgIHVuc2ln
bmVkIGJpdGZpZWxkczsKKyAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRl
OwogICAgIExheW91dFNpemUgc2l6ZUZvclJlc2l6aW5nOwogICAgIEludFNpemUgc2Nyb2xsT2Zm
c2V0OwogICAgIHZvaWQqIHBvaW50ZXJzWzddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5oCmluZGV4IGM4MDI3OWUuLjljNThhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbkNhbnZhc1N1YnRy
ZWUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5DYW52YXNTdWJ0cmVlOyB9CiAgICAgdm9pZCBzZXRJ
c0luQ2FudmFzU3VidHJlZShib29sIHZhbHVlKSB7IG1faXNJbkNhbnZhc1N1YnRyZWUgPSB2YWx1
ZTsgfQogCisgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVnaW9uT3ZlcnNldFN0YXRlOyB9CisgICAgdm9pZCBzZXRSZWdpb25PdmVy
c2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKSB7IG1fcmVnaW9uT3ZlcnNldFN0YXRl
ID0gc3RhdGU7IH0KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIGNvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQoKSB7IHJldHVybiBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1l
bnQ7IH0KICAgICB2b2lkIHNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCB2YWx1ZSkg
eyBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQgPSB2YWx1ZTsgfQpAQCAtMTU2LDYgKzE1OSw4
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9z
aXRpb25hbFJ1bGVzIDogMTsKICAgICB1bnNpZ25lZCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3
YXJkUG9zaXRpb25hbFJ1bGVzIDogMTsKIAorICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSBtX3JlZ2lv
bk92ZXJzZXRTdGF0ZTsKKwogICAgIExheW91dFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5n
OwogICAgIEludFNpemUgbV9zYXZlZExheWVyU2Nyb2xsT2Zmc2V0OwogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwpAQCAtMjAyLDYgKzIwNyw3IEBAIGlubGluZSBFbGVt
ZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAg
ICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZhbHNlKQogICAgICwg
bV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwg
bV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyhmYWxzZSkKKyAgICAs
IG1fcmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvblVuZGVmaW5lZCkKICAgICAsIG1fbWluaW11bVNp
emVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKaW5kZXggODA2NGRmMi4uYzFkNjVjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCkBAIC0yNDYsNiArMjQ2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFwK
ICAgICBtYWNybyh3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUpIFwKICAgICBcCisgICAgbWFjcm8o
d2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSkgXAorICAgIFwKICAgICBtYWNybyh3ZWJraXRuZXR3
b3JraW5mb2NoYW5nZSkgXAogICAgIFwKICAgICBtYWNybyh3ZWJraXRyZXNvdXJjZXRpbWluZ2J1
ZmZlcmZ1bGwpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKaW5kZXggNTlm
MDk5OS4uMjcwOWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVk
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKQEAg
LTEwMSw3ICsxMDEsNyBAQCBpbnQgV2ViS2l0TmFtZWRGbG93OjpmaXJzdEVtcHR5UmVnaW9uSW5k
ZXgoKSBjb25zdAogICAgIFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBy
ZWdpb25MaXN0LmJlZ2luKCk7CiAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpdGVyICE9IHJlZ2lv
bkxpc3QuZW5kKCk7ICsraW5kZXgsICsraXRlcikgewogICAgICAgICBjb25zdCBSZW5kZXJSZWdp
b24qIHJlbmRlclJlZ2lvbiA9ICppdGVyOwotICAgICAgICBpZiAocmVuZGVyUmVnaW9uLT5yZWdp
b25TdGF0ZSgpID09IFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1wdHkpCisgICAgICAgIGlmIChyZW5k
ZXJSZWdpb24tPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpID09IFJlZ2lvbkVtcHR5KQogICAgICAgICAg
ICAgcmV0dXJuIGluZGV4OwogICAgIH0KICAgICByZXR1cm4gLTE7CkBAIC0yMTQsNiArMjE0LDE5
IEBAIHZvaWQgV2ViS2l0TmFtZWRGbG93OjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50
KCkKIAogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQorICAgIAordm9pZCBXZWJLaXROYW1l
ZEZsb3c6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkKK3sKKyAgICBBU1NFUlQo
IU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwor
ICAgIAorICAgIC8vIElmIHRoZSBmbG93IGlzIGluIHRoZSAiTlVMTCIgc3RhdGUgdGhlIGV2ZW50
IHNob3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBhbnkgbW9yZS4KKyAgICBpZiAoZmxvd1N0YXRlKCkg
PT0gRmxvd1N0YXRlTnVsbCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQgPSBVSUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHJlZ2lvbm92ZXJz
ZXRjaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlLCBtX2Zsb3dNYW5hZ2VyLT5kb2N1bWVudCgpLT5k
ZWZhdWx0VmlldygpLCAwKTsKKyAgICAKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXROYW1lZEZsb3c6OmludGVyZmFjZU5hbWUoKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGM1NDRhODkuLmZmZjM2
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTc5LDYgKzc5LDcgQEAg
cHVibGljOgogICAgIEZsb3dTdGF0ZSBmbG93U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVu
dEZsb3dUaHJlYWQgPyBGbG93U3RhdGVDcmVhdGVkIDogRmxvd1N0YXRlTnVsbDsgfQogCiAgICAg
dm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7CisgICAgdm9pZCBkaXNwYXRj
aFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOwogCiBwcml2YXRlOgogICAgIFdlYktpdE5hbWVk
RmxvdyhQYXNzUmVmUHRyPE5hbWVkRmxvd0NvbGxlY3Rpb24+LCBjb25zdCBBdG9taWNTdHJpbmcm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmlu
ZGV4IDc2YjkwMjcuLjRiNzc0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTI4NSwxNyArMTI4NSwxNyBAQCBQYXNzUmVmUHRyPFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpSZWdpb24+ID4gSW5zcGVjdG9yQ1NT
QWdlbnQ6OmJ1aQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWdpb25MaXN0LT5sZW5n
dGgoKTsgKytpKSB7CiAgICAgICAgIFR5cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbjo6UmVnaW9uT3Zl
cnNldDo6RW51bSByZWdpb25PdmVyc2V0OwogCi0gICAgICAgIHN3aXRjaCAodG9FbGVtZW50KHJl
Z2lvbkxpc3QtPml0ZW0oaSkpLT5yZW5kZXJSZWdpb24oKS0+cmVnaW9uU3RhdGUoKSkgewotICAg
ICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0OgorICAgICAgICBzd2l0Y2ggKHRvRWxl
bWVudChyZWdpb25MaXN0LT5pdGVtKGkpKS0+cmVuZGVyUmVnaW9uKCktPnJlZ2lvbk92ZXJzZXRT
dGF0ZSgpKSB7CisgICAgICAgIGNhc2UgUmVnaW9uRml0OgogICAgICAgICAgICAgcmVnaW9uT3Zl
cnNldCA9IFR5cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbjo6UmVnaW9uT3ZlcnNldDo6Rml0OwogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25FbXB0eToK
KyAgICAgICAgY2FzZSBSZWdpb25FbXB0eToKICAgICAgICAgICAgIHJlZ2lvbk92ZXJzZXQgPSBU
eXBlQnVpbGRlcjo6Q1NTOjpSZWdpb246OlJlZ2lvbk92ZXJzZXQ6OkVtcHR5OwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0OgorICAg
ICAgICBjYXNlIFJlZ2lvbk92ZXJzZXQ6CiAgICAgICAgICAgICByZWdpb25PdmVyc2V0ID0gVHlw
ZUJ1aWxkZXI6OkNTUzo6UmVnaW9uOjpSZWdpb25PdmVyc2V0OjpPdmVyc2V0OwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25VbmRlZmluZWQ6Cisg
ICAgICAgIGNhc2UgUmVnaW9uVW5kZWZpbmVkOgogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMjllMzcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpZm5kZWYgUmVnaW9uT3ZlcnNldFN0YXRlX2gKKyNkZWZpbmUgUmVnaW9uT3ZlcnNldFN0YXRl
X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFJlZ2lvbk92ZXJzZXRTdGF0ZSB7Cisg
ICAgUmVnaW9uVW5kZWZpbmVkLAorICAgIFJlZ2lvbkVtcHR5LAorICAgIFJlZ2lvbkZpdCwKKyAg
ICBSZWdpb25PdmVyc2V0Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBSZWdpb25PdmVyc2V0U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggOWQ2YTBkOS4uNmUwMTQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC0xODE2LDcgKzE4MTYsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpj
b21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UsIGJvb2wgcmVjb21w
dXRlRgogICAgIGFkZFZpc3VhbE92ZXJmbG93RnJvbVRoZW1lKCk7CiAKICAgICBpZiAoaXNSZW5k
ZXJGbG93VGhyZWFkKCkpCi0gICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+Y29tcHV0
ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKG9sZENsaWVudEFmdGVyRWRnZSk7CisgICAgICAgIHRv
UmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+Y29tcHV0ZU92ZXJzZXRTdGF0ZUZvclJlZ2lvbnMob2xk
Q2xpZW50QWZ0ZXJFZGdlKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6Y2xlYXJMYXlvdXRPdmVy
ZmxvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAK
aW5kZXggNzAyMDhmNi4uODAwZWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoKQogICAgIDogUmVuZGVyQmxv
Y2soMCkKKyAgICAsIG1fcHJldmlvdXNSZWdpb25Db3VudCgwKQogICAgICwgbV9hdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxpZGF0ZWQoZmFsc2Up
CiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCh0cnVlKQpAQCAtNTcsNiAr
NTgsNyBAQCBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKCkKICAgICAsIG1fb3Zl
cnNldCh0cnVlKQogICAgICwgbV9oYXNSZWdpb25zV2l0aFN0eWxpbmcoZmFsc2UpCiAgICAgLCBt
X2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoZmFsc2UpCisgICAgLCBtX2Rpc3BhdGNo
UmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGZhbHNlKQogICAgICwgbV9wYWdlTG9naWNhbFNpemVD
aGFuZ2VkKGZhbHNlKQogICAgICwgbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UoZmFsc2UpCiAg
ICAgLCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0KGZhbHNlKQpAQCAtMjE5LDYgKzIyMSw5IEBAIHZv
aWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKIAogICAgIGlmIChzaG91bGREaXNwYXRjaFJl
Z2lvbkxheW91dFVwZGF0ZUV2ZW50KCkpCiAgICAgICAgIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBk
YXRlRXZlbnQoKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkRGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnQoKSkKKyAgICAgICAgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsK
IH0KIAogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMb2dpY2FsV2lkdGgoKQpAQCAtNzM1
LDcgKzc0MCw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6YXBwbHlCcmVha0FmdGVyQ29udGVu
dChMYXlvdXRVbml0IGNsaWVudEhlaWdodCkKICAgICBhZGRGb3JjZWRSZWdpb25CcmVhayhjbGll
bnRIZWlnaHQsIHRoaXMsIGZhbHNlKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Up
Cit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JSZWdpb25zKExh
eW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKQogewogICAgIExheW91dFVuaXQgaGVpZ2h0ID0g
b2xkQ2xpZW50QWZ0ZXJFZGdlOwogCkBAIC03NTMsMjUgKzc1OCwzNCBAQCB2b2lkIFJlbmRlckZs
b3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENs
aWVudEFmdGVyRQogICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwogICAgICAg
ICBMYXlvdXRVbml0IGZsb3dNaW4gPSBoZWlnaHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgpIDogcmVnaW9uLT5mbG93VGhy
ZWFkUG9ydGlvblJlY3QoKS54KCkpOwogICAgICAgICBMYXlvdXRVbml0IGZsb3dNYXggPSBoZWln
aHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRp
b25SZWN0KCkubWF4WSgpIDogcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS5tYXhYKCkp
OwotICAgICAgICBSZW5kZXJSZWdpb246OlJlZ2lvblN0YXRlIHByZXZpb3VzU3RhdGUgPSByZWdp
b24tPnJlZ2lvblN0YXRlKCk7Ci0gICAgICAgIFJlbmRlclJlZ2lvbjo6UmVnaW9uU3RhdGUgc3Rh
dGUgPSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdDsKKyAgICAgICAgUmVnaW9uT3ZlcnNldFN0YXRl
IHByZXZpb3VzU3RhdGUgPSByZWdpb24tPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpOworICAgICAgICBS
ZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUgPSBSZWdpb25GaXQ7CiAgICAgICAgIGlmIChmbG93TWlu
IDw9IDApCi0gICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1wdHk7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbkVtcHR5OwogICAgICAgICBpZiAoZmxvd01heCA+IDAg
JiYgcmVnaW9uID09IGxhc3RSZWcpCi0gICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6
UmVnaW9uT3ZlcnNldDsKLSAgICAgICAgcmVnaW9uLT5zZXRSZWdpb25TdGF0ZShzdGF0ZSk7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbk92ZXJzZXQ7CisgICAgICAgIHJlZ2lvbi0+c2V0UmVn
aW9uT3ZlcnNldFN0YXRlKHN0YXRlKTsKICAgICAgICAgLy8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhl
IE5hbWVkRmxvdyBvYmplY3Qgc2hvdWxkIGRpc3BhdGNoIGEgcmVnaW9uTGF5b3V0VXBkYXRlIGV2
ZW50CiAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgaXQgY2Fubm90IGRldGVybWluZSB3aGV0
aGVyIGEgcmVnaW9uIHdob3NlIHJlZ2lvbk92ZXJzZXQgc3RhdGUgcmVtYWluZWQgZWl0aGVyICJm
aXQiIG9yICJvdmVyc2V0IiBoYXMgYWN0dWFsbHkKICAgICAgICAgLy8gY2hhbmdlZCwgc28gaXQg
anVzdCBhc3N1bWVzIHRoYXQgdGhlIE5hbWVkRmxvdyBzaG91bGQgZGlzcGF0Y2ggdGhlIGV2ZW50
CiAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlCi0gICAgICAgICAgICB8fCBzdGF0
ZSA9PSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdAotICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVu
ZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0KQorICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVnaW9u
Rml0CisgICAgICAgICAgICB8fCBzdGF0ZSA9PSBSZWdpb25PdmVyc2V0KQogICAgICAgICAgICAg
c2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCh0cnVlKTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlKQorICAgICAgICAgICAgc2V0RGlzcGF0Y2hS
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQodHJ1ZSk7CisgICAgfQorICAgIAorICAgIC8vIElmIHRo
ZSBudW1iZXIgb2YgcmVnaW9ucyBoYXMgY2hhbmdlZCBzaW5jZSB3ZSBsYXN0IGNvbXB1dGVkIHRo
ZSBvdmVyc2V0IHByb3BlcnR5LCBzY2hlZHVsZSB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dC4KKyAgICBpZiAocHJldmlvdXNSZWdpb25Db3VudCgpICE9IG1fcmVnaW9uTGlzdC5zaXplKCkp
IHsKKyAgICAgICAgc2V0RGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQodHJ1ZSk7Cisg
ICAgICAgIHVwZGF0ZVByZXZpb3VzUmVnaW9uQ291bnQoKTsKICAgICB9CiAKICAgICAvLyBXaXRo
IHRoZSByZWdpb25zIG92ZXJmbG93IHN0YXRlIGNvbXB1dGVkIHdlIGNhbiBhbHNvIHNldCB0aGUg
b3ZlcnNldCBmbGFnIGZvciB0aGUgbmFtZWQgZmxvdy4KICAgICAvLyBJZiB0aGVyZSBhcmUgbm8g
dmFsaWQgcmVnaW9ucyBpbiB0aGUgY2hhaW4sIG92ZXJzZXQgaXMgdHJ1ZS4KLSAgICBtX292ZXJz
ZXQgPSBsYXN0UmVnID8gbGFzdFJlZy0+cmVnaW9uU3RhdGUoKSA9PSBSZW5kZXJSZWdpb246OlJl
Z2lvbk92ZXJzZXQgOiB0cnVlOworICAgIG1fb3ZlcnNldCA9IGxhc3RSZWcgPyBsYXN0UmVnLT5y
ZWdpb25PdmVyc2V0U3RhdGUoKSA9PSBSZWdpb25PdmVyc2V0IDogdHJ1ZTsKIH0KIAogYm9vbCBS
ZW5kZXJGbG93VGhyZWFkOjpyZWdpb25JblJhbmdlKGNvbnN0IFJlbmRlclJlZ2lvbiogdGFyZ2V0
UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdp
b24qIGVuZFJlZ2lvbikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCmluZGV4IDEzYmQ3MjYuLjY0ZTY3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMTI2LDYgKzEyNiw5IEBAIHB1YmxpYzoKICAg
ICAKICAgICBSZW5kZXJSZWdpb24qIGZpcnN0UmVnaW9uKCkgY29uc3Q7CiAgICAgUmVuZGVyUmVn
aW9uKiBsYXN0UmVnaW9uKCkgY29uc3Q7CisgICAgCisgICAgdW5zaWduZWQgc2hvcnQgcHJldmlv
dXNSZWdpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNSZWdpb25Db3VudDsgfTsK
KyAgICB2b2lkIHVwZGF0ZVByZXZpb3VzUmVnaW9uQ291bnQoKSB7IG1fcHJldmlvdXNSZWdpb25D
b3VudCA9IG1fcmVnaW9uTGlzdC5zaXplKCk7IH07CiAKICAgICB2b2lkIHNldFJlZ2lvblJhbmdl
Rm9yQm94KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BP
ZkZpcnN0UGFnZSk7CiAgICAgdm9pZCBnZXRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJC
b3gqLCBSZW5kZXJSZWdpb24qJiBzdGFydFJlZ2lvbiwgUmVuZGVyUmVnaW9uKiYgZW5kUmVnaW9u
KSBjb25zdDsKQEAgLTEzNCw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFJlbmRl
clJlZ2lvbiogb2xkU3RhcnRSZWdpb24gPSAwLCBjb25zdCBSZW5kZXJSZWdpb24qIG9sZEVuZFJl
Z2lvbiA9IDAsCiAgICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbiogbmV3U3RhcnRSZWdpb24gPSAw
LCBjb25zdCBSZW5kZXJSZWdpb24qIG5ld0VuZFJlZ2lvbiA9IDApOwogICAgIAotICAgIHZvaWQg
Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJF
ZGdlKTsKKyAgICB2b2lkIGNvbXB1dGVPdmVyc2V0U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQg
b2xkQ2xpZW50QWZ0ZXJFZGdlKTsKIAogICAgIGJvb2wgb3ZlcnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fb3ZlcnNldDsgfQogCkBAIC0xODcsOCArMTkwLDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IHNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoYm9vbCB2YWx1ZSkgeyBtX2Rpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgPSB2YWx1ZTsgfQogICAgIGJvb2wgc2hvdWxkRGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgcmV0dXJuIG1fZGlzcGF0Y2hSZWdpb25M
YXlvdXRVcGRhdGVFdmVudDsgfQogICAgIAorICAgIHZvaWQgc2V0RGlzcGF0Y2hSZWdpb25PdmVy
c2V0Q2hhbmdlRXZlbnQoYm9vbCB2YWx1ZSkgeyBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5n
ZUV2ZW50ID0gdmFsdWU7IH0KKyAgICBib29sIHNob3VsZERpc3BhdGNoUmVnaW9uT3ZlcnNldENo
YW5nZUV2ZW50KCkgeyByZXR1cm4gbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudDsg
fQorICAgIAogICAgIC8vIE92ZXJyaWRlIGlmIHRoZSBmbG93IHRocmVhZCBpbXBsZW1lbnRhdGlv
biBzdXBwb3J0cyBkaXNwYXRjaGluZyBldmVudHMgd2hlbiB0aGUgZmxvdyBsYXlvdXQgaXMgdXBk
YXRlZCAoZS5nLiBmb3IgbmFtZWQgZmxvd3MpCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnQoKSB7IG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVu
dCA9IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5n
ZUV2ZW50KCkgeyBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50ID0gZmFsc2U7IH0K
IAogICAgIHZvaWQgaW5pdGlhbGl6ZVJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0
KFJlbmRlclJlZ2lvbiogPSAwKTsKIApAQCAtMjAyLDYgKzIwOSw3IEBAIHByb3RlY3RlZDoKICAg
ICBpbmxpbmUgY29uc3QgUmVuZGVyQm94KiBjdXJyZW50QWN0aXZlUmVuZGVyQm94KCkgY29uc3Q7
CiAKICAgICBSZW5kZXJSZWdpb25MaXN0IG1fcmVnaW9uTGlzdDsKKyAgICB1bnNpZ25lZCBzaG9y
dCBtX3ByZXZpb3VzUmVnaW9uQ291bnQ7CiAKICAgICBjbGFzcyBSZW5kZXJSZWdpb25SYW5nZSB7
CiAgICAgcHVibGljOgpAQCAtMjc0LDYgKzI4Miw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1f
b3ZlcnNldCA6IDE7CiAgICAgYm9vbCBtX2hhc1JlZ2lvbnNXaXRoU3R5bGluZyA6IDE7CiAgICAg
Ym9vbCBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgOiAxOworICAgIGJvb2wgbV9k
aXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA6IDE7CiAgICAgYm9vbCBtX3BhZ2VMb2dp
Y2FsU2l6ZUNoYW5nZWQgOiAxOwogICAgIGJvb2wgbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2Ug
OiAxOwogICAgIGJvb2wgbV9uZWVkc1R3b1BoYXNlc0xheW91dCA6IDE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmluZGV4IDE1MmNk
ZjguLjFmY2QzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJO
YW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJO
YW1lZEZsb3dUaHJlYWQuY3BwCkBAIC01NCw2ICs1NCw3IEBAIFJlbmRlck5hbWVkRmxvd1RocmVh
ZCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqIGRvY3Vt
ZW50CiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJlbmRlck5hbWVkRmxvd1RocmVhZChQYXNzUmVm
UHRyPFdlYktpdE5hbWVkRmxvdz4gbmFtZWRGbG93KQogICAgIDogbV9uYW1lZEZsb3cobmFtZWRG
bG93KQogICAgICwgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyKHRoaXMsICZSZW5kZXJO
YW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZCkKKyAgICAs
IG1fcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXIodGhpcywgJlJlbmRlck5hbWVkRmxvd1Ro
cmVhZDo6cmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNDI3
LDYgKzQyOCwxNCBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25M
YXlvdXRVcGRhdGVFdmVudCgpCiAgICAgICAgIG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1l
ci5zdGFydE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNw
YXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpCit7CisgICAgUmVuZGVyRmxvd1RocmVhZDo6
ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsKKyAgICAKKyAgICBpZiAoIW1fcmVn
aW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXIuaXNBY3RpdmUoKSAmJiBtX25hbWVkRmxvdy0+aGFz
RXZlbnRMaXN0ZW5lcnMoKSkKKyAgICAgICAgbV9yZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1l
ci5zdGFydE9uZVNob3QoMCk7Cit9CisKIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZWdp
b25MYXlvdXRVcGRhdGVFdmVudFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFk
PiopCiB7CiAgICAgQVNTRVJUKG1fbmFtZWRGbG93KTsKQEAgLTQzNCw2ICs0NDMsMTMgQEAgdm9p
ZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJl
ZChUaW1lcjxSZW5kZXJOYW1lZEYKICAgICBtX25hbWVkRmxvdy0+ZGlzcGF0Y2hSZWdpb25MYXlv
dXRVcGRhdGVFdmVudCgpOwogfQogCit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaW9u
T3ZlcnNldENoYW5nZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+
KikKK3sKKyAgICBBU1NFUlQobV9uYW1lZEZsb3cpOworICAgIAorICAgIG1fbmFtZWRGbG93LT5k
aXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOworfQorCiB2b2lkIFJlbmRlck5hbWVk
Rmxvd1RocmVhZDo6c2V0TWFya0ZvckRlc3RydWN0aW9uKCkKIHsKICAgICBpZiAobV9uYW1lZEZs
b3ctPmZsb3dTdGF0ZSgpID09IFdlYktpdE5hbWVkRmxvdzo6Rmxvd1N0YXRlTnVsbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAppbmRleCAz
ZDNhNzY2Li4xNTAyYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTmFtZWRGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5oCkBAIC04Nyw2ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGlzQ2hpbGRBbGxvd2VkKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKikgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVF
dmVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCgpIE9WRVJSSURFOwogCiAgICAgYm9vbCBkZXBlbmRzT24oUmVuZGVyTmFtZWRG
bG93VGhyZWFkKiBvdGhlclJlbmRlckZsb3dUaHJlYWQpIGNvbnN0OwogICAgIHZvaWQgYWRkRGVw
ZW5kZW5jeU9uRmxvd1RocmVhZChSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsKQEAgLTk4LDYgKzk5
LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2FuQmVEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVy
biBtX2ludmFsaWRSZWdpb25MaXN0LmlzRW1wdHkoKSAmJiBtX3JlZ2lvbkxpc3QuaXNFbXB0eSgp
ICYmIG1fY29udGVudE5vZGVzLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgcmVnaW9uTGF5b3V0VXBk
YXRlRXZlbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlck5hbWVkRmxvd1RocmVhZD4qKTsKKyAgICB2
b2lkIHJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyTmFtZWRG
bG93VGhyZWFkPiopOwogICAgIHZvaWQgY2xlYXJDb250ZW50Tm9kZXMoKTsKIAogcHJpdmF0ZToK
QEAgLTEyMyw2ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJLaXROYW1lZEZsb3c+
IG1fbmFtZWRGbG93OwogCiAgICAgVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiBtX3JlZ2lv
bkxheW91dFVwZGF0ZUV2ZW50VGltZXI7CisgICAgVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFk
PiBtX3JlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyOwogfTsKIAogaW5saW5lIFJlbmRlck5h
bWVkRmxvd1RocmVhZCogdG9SZW5kZXJOYW1lZEZsb3dUaHJlYWQoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IDhlOTM5
NDUuLjQwZDI2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3Bw
CkBAIC01NCw3ICs1NCw2IEBAIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQqIGVs
ZW1lbnQsIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCiAgICAgLCBtX2lzVmFsaWQoZmFs
c2UpCiAgICAgLCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlKGZhbHNlKQogICAgICwgbV9oYXNBdXRv
TG9naWNhbEhlaWdodChmYWxzZSkKLSAgICAsIG1fcmVnaW9uU3RhdGUoUmVnaW9uVW5kZWZpbmVk
KQogewogfQogCkBAIC0xMzIsNiArMTMxLDIwIEBAIExheW91dFJlY3QgUmVuZGVyUmVnaW9uOjpv
dmVyZmxvd1JlY3RGb3JGbG93VGhyZWFkUG9ydGlvbihjb25zdCBMYXlvdXRSZWN0JiBmbG93CiAg
ICAgcmV0dXJuIGNsaXBSZWN0OwogfQogCitSZWdpb25PdmVyc2V0U3RhdGUgUmVuZGVyUmVnaW9u
OjpyZWdpb25PdmVyc2V0U3RhdGUoKSBjb25zdAoreworICAgIGlmIChpc1ZhbGlkKCkgJiYgbm9k
ZSgpICYmIG5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gdG9FbGVtZW50
KG5vZGUoKSktPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpOworICAgIAorICAgIHJldHVybiBSZWdpb25V
bmRlZmluZWQ7Cit9CisKK3ZvaWQgUmVuZGVyUmVnaW9uOjpzZXRSZWdpb25PdmVyc2V0U3RhdGUo
UmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKQoreworICAgIGlmIChub2RlKCkgJiYgbm9kZSgpLT5p
c0VsZW1lbnROb2RlKCkpCisgICAgICAgIHRvRWxlbWVudChub2RlKCkpLT5zZXRSZWdpb25PdmVy
c2V0U3RhdGUoc3RhdGUpOworfQorCiBMYXlvdXRVbml0IFJlbmRlclJlZ2lvbjo6cGFnZUxvZ2lj
YWxUb3BGb3JPZmZzZXQoTGF5b3V0VW5pdCAvKiBvZmZzZXQgKi8pIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGZsb3dUaHJlYWQoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZsb3dUaHJlYWRQ
b3J0aW9uUmVjdCgpLnkoKSA6IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLngoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA0NGY4MDE4Li5mOGNiOGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC04MiwxNSArODIsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGNsZWFyT2JqZWN0U3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJP
YmplY3QqKTsKIAotICAgIGVudW0gUmVnaW9uU3RhdGUgewotICAgICAgICBSZWdpb25VbmRlZmlu
ZWQsCi0gICAgICAgIFJlZ2lvbkVtcHR5LAotICAgICAgICBSZWdpb25GaXQsCi0gICAgICAgIFJl
Z2lvbk92ZXJzZXQKLSAgICB9OwotCi0gICAgUmVnaW9uU3RhdGUgcmVnaW9uU3RhdGUoKSBjb25z
dCB7IHJldHVybiBpc1ZhbGlkKCkgPyBtX3JlZ2lvblN0YXRlIDogUmVnaW9uVW5kZWZpbmVkOyB9
Ci0gICAgdm9pZCBzZXRSZWdpb25TdGF0ZShSZWdpb25TdGF0ZSByZWdpb25TdGF0ZSkgeyBtX3Jl
Z2lvblN0YXRlID0gcmVnaW9uU3RhdGU7IH0KKyAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9u
T3ZlcnNldFN0YXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSZWdpb25PdmVyc2V0U3RhdGUoUmVn
aW9uT3ZlcnNldFN0YXRlKTsKICAgICAKICAgICAvLyBUaGVzZSBtZXRob2RzIHJlcHJlc2VudCB0
aGUgd2lkdGggYW5kIGhlaWdodCBvZiBhICJwYWdlIiBhbmQgZm9yIGEgUmVuZGVyUmVnaW9uIHRo
ZXkgYXJlIGp1c3QgdGhlCiAgICAgLy8gY29udGVudCB3aWR0aCBhbmQgY29udGVudCBoZWlnaHQg
b2YgYSByZWdpb24uIEZvciBSZW5kZXJSZWdpb25TZXRzLCBob3dldmVyLCB0aGV5IHdpbGwgYmUg
dGhlIHdpZHRoIGFuZApAQCAtMjAwLDcgKzE5Myw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
VmFsaWQgOiAxOwogICAgIGJvb2wgbV9oYXNDdXN0b21SZWdpb25TdHlsZSA6IDE7CiAgICAgYm9v
bCBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0IDogMTsKLSAgICBSZWdpb25TdGF0ZSBtX3JlZ2lvblN0
YXRlOwogfTsKIAogaW5saW5lIFJlbmRlclJlZ2lvbiogdG9SZW5kZXJSZWdpb24oUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCg==
</data>
<flag name="review"
          id="226540"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="226541"
          type_id="3"
          status="-"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205090</attachid>
            <date>2013-06-20 07:47:56 -0700</date>
            <delta_ts>2013-06-20 08:01:17 -0700</delta_ts>
            <desc>Final patch</desc>
            <filename>117508.patch</filename>
            <type>text/plain</type>
            <size>64653</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTQwMjI2Li4zODUyNWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDYt
MjAgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gQWRkIG5ldyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1MDgKKworICAgICAgICBDaGFuZ2Vk
IHJlZ2lvbkxheW91dFVwZGF0ZSB0ZXN0cyB0byByZWdpb25PdmVyc2V0Q2hhbmdlIGFuZCBhZGRl
ZCBuZXcgdGVzdHMgZm9yIHJlZ2lvbk92ZXJzZXRDaGFuZ2UuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sOgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1
dG8taGVpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdp
b25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lv
bnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQt
cmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJv
eC1uby1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9t
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ct
ZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1m
bG93LWV2ZW50LXRhcmdldC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sOgorCiAyMDEzLTA2LTIwICBab2x0
YW4gQXJ2YWkgIDx6YXJ2YWlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZp
ZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93LWV4cGVj
dGVkLnR4dAppbmRleCBjODFhMDVlLi5kYjAxZDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hZGQtdG8tZmxvdy1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTEgQEAKLVRlc3RzIHJlZ2lv
bkxheW91dEV2ZW50CitUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogIEZsb3cgY29udGVudAogUEFTUyBldmVudC50YXJnZXQubmFt
ZSBpcyAiYXJ0aWNsZSIKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCmluZGV4IGZhY2RjMjcu
LmM2YjJkMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCkBAIC0xNyw3ICsx
Nyw3IEBACiAuYmxvY2sgewogICAgZGlzcGxheTpibG9jazsKIH0KLSNyZWdpb25fMSwgI3JlZ2lv
bl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7fQorI3JlZ2lvbl8x
LCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDsgYm9y
ZGVyOiAxcHggc29saWQgcmVkO30KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTM0LDcg
KzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+CiAKIDxzY3Jp
cHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IikKKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCIpCiAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ0LDE2ICs0NCwxOSBAQAogICAgICAg
ICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlZ2lvbik7CiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9Ci0gICAgCi0gICAgdmFyIGNvdW50
ID0gMDsKLSAgICBmdW5jdGlvbiByZWdpb25MYXlvdXRVcGRhdGVkKGV2ZW50KSB7CisKKyAgICB2
YXIgZXZlbnRDb3VudCA9IDA7CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2hvdWxkQmUoImV2ZW50Q291bnQiLCAiMiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsK
ICAgICAgICAgCi0gICAgICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICAgZXZlbnQu
dGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJl
Z2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAgCisgICAgICAgIGlmICgrK2V2ZW50Q291
bnQgPiAxKSB7CiAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJl
Z2lvbl8yIGlzIGFkZGVkIHRvIGZsb3cKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIApAQCAtNjIsNyArNjUsNyBAQAogCiAgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewog
ICAgICAgICB2YXIgZmxvdyA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxv
dy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlv
dXRVcGRhdGVkKTsKKyAgICAgICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25v
dmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAKICAgICAgICAg
ZGVidWcoIkZsb3cgY29udGVudCIpOwogICAgICAgICBmbG93Q29udGVudCgicmVnaW9uXzEiLCAi
YXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1u
YW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVmNzU5MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hdXRvLWhlaWdodC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhlIHJl
Z2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9yIHJlZ2lvbnMgd2l0aCBoZWlnaHQ6YXV0bworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9u
cy4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMDc1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwK
QEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzog
YXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAj
cmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRp
Y2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJs
b2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4Owor
ICAgICAgICBoZWlnaHQ6YXV0bzsKKyAgICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIHJlZDsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgIH0KKyAgICAuY29u
dGVudCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICBib3JkZXI6
IDNweCBkYXNoZWQgYmx1ZTsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAx
ODBweDsKKyAgICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgLXdlYmtpdC1yZWdpb24tYnJlYWst
YmVmb3JlOiBhbHdheXM7CisgICAgICAgIGhlaWdodDogMTYwcHg7CisgICAgfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFydGljbGUiPgorICAgICAgICA8ZGl2Pgor
ICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNzPSJjb250ZW50Ij48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29udGVudCI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0icmVnaW9uXzEiPjwvZGl2PgorICAgIDxk
aXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIHdp
dGggaGVpZ2h0OmF1dG8iKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjEiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdh
aXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAgICAgICAgICBzZXRU
aW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxv
d0J5TmFtZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3Rl
bmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVn
aW9ucy4uLiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAg
fQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLWV4cGVjdGVkLnR4dAppbmRleCBjNWIxYjRjLi42NGQ5NDlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IGZvciBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyOTQ0IFtDU1MgUmVnaW9uc10gQ3Jh
c2ggd2hlbiBkaXNwYXRjaGluZyByZWdpb25sYXlvdXR1cGRhdGUuIFRoZSB0ZXN0IHBhc3NlcyBp
ZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3NlcnQuCitUaGUgdGVzdCBwYXNzZXMgaWYgdGhlcmUg
aXMgbm8gY3Jhc2ggb3IgYXNzZXJ0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LWNyYXNoLmh0bWwKaW5kZXggZmU2M2MzYi4uODFmZjNjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLmh0bWwKQEAgLTI3LDI0ICsyNywyNSBAQAogICAgICAgICA8ZGl2IGlkPSJyZWdpb24iPgog
ICAgICAgICA8L2Rpdj4KICAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5NDQgW0NT
UyBSZWdpb25zXSBDcmFzaCB3aGVuIGRpc3BhdGNoaW5nIHJlZ2lvbmxheW91dHVwZGF0ZS4gVGhl
IHRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5vIGNyYXNoIG9yIGFzc2VydC4iKTsKKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3Nl
cnQuIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGR1bW15SGFuZGxlciAoZXZ0KSB7
Ci0gICAgICAgICAgICBldnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lv
bmxheW91dHVwZGF0ZSIsIGR1bW15SGFuZGxlcik7CisgICAgICAgICAgICBldnQudGFyZ2V0LnJl
bW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhhbmRs
ZXIpOworICAgICAgICAgICAgZGVidWcoIlRoaXMgbGluZSBzaG91bGQgbm90IGFwcGVhciEiKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93cyA9IGRvY3VtZW50LndlYmtpdEdldE5hbWVkRmxvd3MoKTsKLSAgICAg
ICAgICAgIG5hbWVkRmxvd3NbImZsb3ciXS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25s
YXlvdXR1cGRhdGUiLCBkdW1teUhhbmRsZXIpOworICAgICAgICAgICAgbmFtZWRGbG93c1siZmxv
dyJdLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhh
bmRsZXIpOwogICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpOwogICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKTsKICAgICAgICAgICAgIGNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gIjYw
MHB4IjsKIAotICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSByZWdpb25sYXlvdXR1cGRhdGUgZXZl
bnQuCisgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHJlZ2lvbm92ZXJzZXRjaGFuZ2UgZXZlbnQu
CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKIAogICAgICAgICAgICAgLy8g
VHJhbnNpdGlvbiB0aGUgZmxvdyB0byB0aGUgIk5VTEwiIHN0YXRlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBl
Y3RlZC50eHQKaW5kZXggZjkzZTljNzkuLjdjNzkzMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3RzIHJlZ2lvbkxheW91dEV2ZW50CitUZXN0cyByZWdp
b25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGVhMmIyMTku
LjgyMGJkOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRj
aGVkIHdoZW4gdGhlIHJlZ2lvbiBjaGFpbiBpcyByZW1vdmVkCitUZXN0cyByZWdpb25PdmVyc2V0
Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQgd2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQK
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDYgKzgsNyBAQCBQQVNTIGV2ZW50
LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uIDEKIFJlbW92aW5nIHJl
Z2lvbiAyCiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBldmVudENv
dW50IGlzIDIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LW5vLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLmh0bWwKaW5kZXggMjdmZTYzMi4uYmI0NmZhMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LW5vLXJlZ2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0
LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sCkBAIC0zNSw3ICszNSw3IEBACiA8L2Rp
dj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQg
YmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSByZWdpb24gY2hhaW4gaXMgcmVtb3ZlZCIpOworICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQg
d2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQiKTsKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDksMTIgKzQ5LDE3IEBACiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9CiAKLSAgICB2YXIgY291bnQgPSAw
OwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZlbnQpIHsKKyAgICBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIHZhciBldmVudENvdW50ID0gMDsK
KyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsKLSAgICAg
ICAgaWYgKCsrY291bnQgPiAxKSB7Ci0gICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlvdXRVcGRhdGVk
KTsKLSAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQg
PiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJr
aXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC02OCw3
ICs3Myw3IEBACiAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgICAgIHZhciBmbG93
ID0gZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOwotICAgICAgICBmbG93LmFkZEV2ZW50TGlzdGVu
ZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAg
ICAgICBmbG93LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBy
ZWdpb25PdmVyc2V0Q2hhbmdlZCk7CiAKICAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOwog
ICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW5v
LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIyOTQ2
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQgZm9yIHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4uLgorUEFTUyBldmVudC50YXJn
ZXQubmFtZSBpcyAiYXJ0aWNsZSIKK0VuZ2FnaW5nIGZsZXhib3guLi4KK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4t
ZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQzMGEzMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNl
dC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Vi
a2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNr
OworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxv
dy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRp
c3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAg
IG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6MTkwcHg7CisgICAgICAgIHdpZHRoOjIwMHB4
OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgICAgIHBhZGRpbmc6IDVweDsK
KyAgICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7CisgICAgICAgIC13ZWJraXQtZmxleC1iYXNp
czogMTAwJTsKKyAgICB9CisgICAgI3JlZ2lvbl8yIHsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWJh
c2lzOiAzMCU7CisgICAgfQorICAgIC5jb250ZW50IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47CisgICAgICAgIGJvcmRlcjogM3B4IGRhc2hlZCBibHVlOworICAgICAgICBtYXJn
aW46IDVweDsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAxNDBweDsKKyAg
ICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgaGVpZ2h0OiAxNjBweDsKKyAgICB9CisgICAgI2Zs
ZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKKyAgICAgICAgbWFyZ2lu
OiA1cHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFy
dGljbGUiPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNz
PSJjb250ZW50Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29u
dGVudCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0i
ZmxleGJveCI+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0icmVnaW9uXzIiPjwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9y
IHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcyIpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIGZ1bmN0aW9uIGZsb3dDb250ZW50KGZsb3dO
YW1lKSB7CisgICAgICAgICAgICB2YXIgcmVnaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl8xIik7CisgICAgICAgICAgICByZWdpb24uc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBm
bG93TmFtZTsKKyAgICAgICAgICAgIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb25fMiIpOworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxv
d05hbWU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZXZlbnRGaXJlZENvdW50ID0gMDsKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVu
dEZpcmVkQ291bnQiLCAiMSIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBFbmFibGVGbGV4Ym94KCkgeworICAgICAgICAgICAgZGVi
dWcoIkVuZ2FnaW5nIGZsZXhib3guLi4iKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImZsZXhib3giKS5zdHlsZS5kaXNwbGF5ID0gIi13ZWJraXQtZmxleCI7CisKKyAgICAg
ICAgICAgIC8vIHdhaXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsr
ZXZlbnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRo
ZSBmbGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVu
YWJsZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3Rh
cnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFt
ZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3RlbmVyKCJ3
ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4u
LiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKKyAgICA8
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3Zl
cnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODE4ZGU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUZXN0cyB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBmb3IgcmVn
aW9ucyBpbnNpZGUgZmxleGJveGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitG
bG93aW5nIGNvbnRlbnQgaW50byByZWdpb25zLi4uCitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlz
ICJhcnRpY2xlIgorRW5nYWdpbmcgZmxleGJveC4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBp
cyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJlZENvdW50IGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gt
b3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOTA5MjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9u
LWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGlj
bGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVy
OiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7Cisg
ICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpo
aWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6YXV0bzsKKyAg
ICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICAg
ICAgcGFkZGluZzogNXB4OworICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTsKKyAgICAgICAg
LXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlOworICAgIH0KKyAgICAjcmVnaW9uXzIgeworICAgICAg
ICAtd2Via2l0LWZsZXgtYmFzaXM6IDcwJTsKKyAgICB9CisgICAgLmNvbnRlbnQgeworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgYm9yZGVyOiAzcHggZGFzaGVkIGJs
dWU7CisgICAgICAgIG1hcmdpbjogNXB4OworICAgIH0KKyAgICAjcGFydDEgeworICAgICAgICBo
ZWlnaHQ6IDcwcHg7CisgICAgfQorICAgICNwYXJ0MiB7CisgICAgICAgIGhlaWdodDogODBweDsK
KyAgICB9CisgICAgI2ZsZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsK
KyAgICAgICAgbWFyZ2luOiA1cHg7CisgICAgICAgIHdpZHRoOiAyNDBweDsKKyAgICAgICAgaGVp
Z2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAg
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAg
ICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQxIiBjbGFzcz0iY29udGVudCI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGlkPSJwYXJ0MiIgY2xhc3M9ImNvbnRlbnQiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgaWQ9ImZsZXhib3giPgor
ICAgICAgICA8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bl8yIj48L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIGlu
c2lkZSBmbGV4Ym94ZXMiKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjIiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gRW5hYmxlRmxleGJveCgpIHsKKyAgICAgICAgICAgIGRlYnVnKCJFbmdhZ2lu
ZyBmbGV4Ym94Li4uIikKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmbGV4
Ym94Iikuc3R5bGUuZGlzcGxheSA9ICItd2Via2l0LWZsZXgiOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRoZSBm
bGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVuYWJs
ZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDIwMCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAorICAgICAgICAgICAgdmFyIGZsb3dUaHJlYWQgPSBn
ZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7CisgICAgICAgICAgICBmbG93VGhyZWFkLmFkZEV2ZW50
TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCByZWdpb25PdmVyc2V0Q2hhbmdl
ZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlYnVnKCJGbG93aW5nIGNvbnRlbnQgaW50
byByZWdpb25zLi4uIik7CisgICAgICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOworICAg
ICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRl
c3QpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJv
bS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKaW5kZXggY2I0YWUwMS4u
Mjc1OTRmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudAorVGVz
dHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKQEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBET00KIFBBU1Mg
ZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNTIGV2ZW50Q291bnQgaXMgMgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3Zl
LWZyb20tZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWwKaW5kZXggMDI1ODllNi4uM2I0NjM4ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1kb20uaHRtbApAQCAtMTcsNyArMTcsNyBA
QAogLmJsb2NrIHsKICAgIGRpc3BsYXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7
IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IG1hcmdpbjogNXB4O30KKyNyZWdpb25fMSwgI3Jl
Z2lvbl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7IGJvcmRlcjog
MXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC0zNiw3ICszNiw3
IEBACiA8ZGl2IGlkPSJjb25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2PgogCiA8c2NyaXB0Pgot
ICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCIpCisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQiKQogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkBAIC00OSwxNCArNDksMTkgQEAKICAgICAgICAgciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwogICAgICAgICByLnN0eWxlLndl
YmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CiAgICAgfQotICAgIAotICAgIHZhciBjb3VudCA9IDA7
Ci0gICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworCisgICAgdmFyIGV2
ZW50Q291bnQgPSAwOworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3Vs
ZEJlKCJldmVudENvdW50IiwgIjIiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7Ci0gICAg
ICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRl
ZCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVk
IGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIApAQCAtNjcsNyArNzIsNyBAQAogICAgIAogICAgIGZ1bmN0aW9uIHN0
YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7
Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRl
IiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2VkKTsKICAgICAg
ICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQo
ImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
LWV4cGVjdGVkLnR4dAppbmRleCAyMzRlNDYyLi45ZTZlNGM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxv
dy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC03LDYgKzcsNyBAQCBGbG93IGNv
bnRlbnQKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCiBSZW1vdmluZyByZWdp
b25fMiBmcm9tIGZsb3cKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbAppbmRl
eCAwMjhkNDQ4Li42NDUwZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1m
bG93Lmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKIC5ibG9jayB7CiAgICBkaXNwbGF5OmJsb2NrOwog
fQotI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJn
aW46IDVweDt9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAw
cHg7IG1hcmdpbjogNXB4OyBib3JkZXI6IDFweCBzb2xpZCByZWQ7fQogPC9zdHlsZT4KIDwvaGVh
ZD4KIDxib2R5PgpAQCAtMzQsNyArMzQsNyBAQAogPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJs
b2NrIj48L2Rpdj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5
b3V0RXZlbnQiKQorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2
ZW50IikKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDcs
MTQgKzQ3LDE4IEBACiAgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
XzIiKTsKICAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOwogICAgIH0K
LSAgICAKLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0
ZWQoZXZlbnQpIHsKKworICAgIHZhciBldmVudENvdW50ID0gMDsKKyAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlZ2lvbk92ZXJzZXRDaGFu
Z2VkKGV2ZW50KSB7CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0
Lm5hbWUiLCAiYXJ0aWNsZSIpOwotICAgICAgICBpZiAoKytjb3VudCA+IDEpIHsKLSAgICAgICAg
ICAgZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVw
ZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBi
ZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAg
ICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQg
ZnJvbSBET00KKyAgICAgICAgICAgc2V0VGltZW91dCgiZmluaXNoVGVzdCgpIiwgMjAwKTsKICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIApAQCAtNjUsNyArNjksNyBAQAog
ICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRG
bG93QnlOYW1lKCJhcnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Vi
a2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZs
b3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92
ZXJzZXRDaGFuZ2VkKTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsK
ICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdl
dC1leHBlY3RlZC50eHQKaW5kZXggZGE4ZTU0ZC4uY2QxNjQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogRmxvdyBjb250ZW50CiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRp
Y2xlIgotUEFTUyAyIGlzID49IHVwZGF0ZWRDb3VudAogUEFTUyBnZXRGbG93QnlOYW1lKCJhcnRp
Y2xlIikgaXMgbm9uLW51bGwuCiBQQVNTIHJlY3JlYXRlZCBpcyBmYWxzZQogUEFTUyBnZXRGbG93
QnlOYW1lKCJhcnRpY2xlIikgaXMgbnVsbAogUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0
aWNsZSIKLVBBU1MgMiBpcyA+PSB1cGRhdGVkQ291bnQKIFBBU1MgcmVjcmVhdGVkIGlzIHRydWUK
IFBBU1MgZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpIGlzIG5vbi1udWxsLgorUEFTUyB1cGRhdGVk
Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtdGFyZ2V0Lmh0bWwKaW5kZXggZWY2YmIxNC4uMDY5NWViMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC10YXJnZXQuaHRtbApAQCAtMTksNyArMTksNyBAQAogLmJsb2NrIHsKICAgIGRpc3Bs
YXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6
MjAwcHh9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7
IGJvcmRlcjogMXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC03
NSwxNyArNzUsMjAgQEAgZnVuY3Rpb24gbWFrZUZsb3dDcmVhdGVkKCkgewogfQogCiB2YXIgdXBk
YXRlZENvdW50ID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmUoInVw
ZGF0ZWRDb3VudCIsICIyIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKIGZ1bmN0aW9uIGZs
b3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7CiAJKyt1cGRhdGVkQ291bnQ7CiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAKLSAgICBzaG91
bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiMiIsICJ1cGRhdGVkQ291bnQiKTsKLQogICAgIGlmICh1
cGRhdGVkQ291bnQgPT0gMikgewogICAgIAlzaG91bGRCZVRydWUoInJlY3JlYXRlZCIpOwotICAg
IAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBk
YXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsK
ICAgICAJbWFrZUZsb3dOdWxsKCk7Ci0gICAgCWZpbmlzaEpTVGVzdCgpOworICAgIAlzZXRUaW1l
b3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOwogICAgIAlyZXR1cm47CiAgICAgfQogCkBAIC05OCw3
ICsxMDEsNyBAQCBmdW5jdGlvbiBmbG93VGhyZWFkVXBkYXRlZChldmVudCkgewogCiBmdW5jdGlv
biBzdGFydFRlc3QoKSB7ICAgIAogICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFtZSgi
YXJ0aWNsZSIpOwotICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
bGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIGZsb3dUaHJlYWQuYWRkRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVk
KTsKICAgICAKICAgICBkZWJ1ZygiRmxvdyBjb250ZW50Iik7CiAgICAgZmxvd0NvbnRlbnQoImFy
dGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dAppbmRleCBl
YjJjY2I5Li42OTQwYzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQgYmVpbmcgZGlzcGF0
Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFu
Z2UgZXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDcgKzgsNyBAQCBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93CiBSZW1v
dmluZyByZWdpb25fMSBmcm9tIGZsb3cKIFJlbW92aW5nIGFydGljbGUgZnJvbSBmbG93Ci1QQVNT
IGxheW91dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyBpcyBmYWxzZQorUEFTUyByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93IGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sCmlu
ZGV4IDUzZjVkZWMuLjY0ZmQ4YWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwuaHRtbApAQCAtMzYs
NyArMzYsNyBAQAogCiA8c2NyaXB0PgogCi1kZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0
RXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQiKTsKK2Rl
c2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGJlaW5nIGRpc3BhdGNo
ZWQgd2hlbiB0aGUgY29udGVudCBpcyByZW1vdmVkIik7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKQEAgLTUyLDEyICs1MiwxMiBA
QCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB9CiAgICAgCiAgICAgdmFyIGNvdW50ID0g
MDsKLSAgICB2YXIgbGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7Ci0g
ICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworICAgIHZhciByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7CisgICAgZnVuY3Rpb24gcmVnaW9u
T3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
dmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAgICAgICAgIGlmICgrK2NvdW50ID4gMSkg
ewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVn
aW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7Ci0gICAgICAgICAgIGxheW91
dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyA9IHRydWU7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAgICByZWdpb25PdmVyc2V0RGlzcGF0Y2hlZEZv
ck51bGxGbG93ID0gdHJ1ZTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtNzEsMTcgKzcxLDE3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBk
ZWJ1ZygiUmVtb3ZpbmcgYXJ0aWNsZSBmcm9tIGZsb3ciKTsKICAgICAgICAgZWwuc3R5bGUud2Vi
a2l0Rmxvd0ludG8gPSAibm9uZSI7CiAKLSAgICAgICAgc2V0VGltZW91dChjaGVja0lmRXZlbnRE
aXNwYXRjaGVkLCA1MDApOworICAgICAgICBzZXRUaW1lb3V0KGNoZWNrSWZFdmVudERpc3BhdGNo
ZWQsIDIwMCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY2hlY2tJZkV2ZW50RGlzcGF0Y2hlZCgp
IHsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgibGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxG
bG93Iik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInJlZ2lvbk92ZXJzZXREaXNwYXRjaGVkRm9y
TnVsbEZsb3ciKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogICAgIAogICAgIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJh
cnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5
b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2Vk
KTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxv
d0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50Lmh0bWwKaW5kZXggNzY2ZTIwOS4uYWUwODRlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9j
ayI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91
dEV2ZW50IikKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dCIpCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ5LDE5
ICs0OSwxOCBAQAogICAgIAogICAgIGZ1bmN0aW9uIGZsb3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7
CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0Lm5hbWUiLCAiYXJ0
aWNsZSIpOwotICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0
cmVnaW9ubGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgICAgICBldmVudC50
YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZs
b3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
IH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAogICAgICAgICB2YXIgZmxv
d1RocmVhZCA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxvd1RocmVhZC5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCBmbG93VGhyZWFkVXBk
YXRlZCk7CisgICAgICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
b3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGRl
YnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKICAg
ICB9Ci0gICAgLy9zdGFydFRlc3QoKTsKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHN0YXJ0VGVzdCk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZDJkZWIu
LjNkMDNhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMy0wNi0yMCAgUmFkdSBT
dGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBBZGQg
bmV3IHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzUwOAorCisgICAgICAgIEFkZGVkIHJlZ2lvbk92ZXJz
ZXRDaGFuZ2UgZXZlbnQgYW5kIHRlc3RzIGZvciBpdC4gVGhlIG92ZXJzZXQgdmFsdWUgb2YgdGhl
IHJlZ2lvbiBoYXMgYmVlbiBtb3ZlZCB0byB0aGUgRWxlbWVudFJhcmVEYXRhCisgICAgICAgIG9i
amVjdCBpbnN0ZWFkIG9mIHRoZSBSZW5kZXJSZWdpb24gb2JqZWN0LiBUaGlzIHdhcyBuZWVkZWQg
Zm9yIHRoZSBjYXNlIHdoZW4gYSByZWF0dGFjaCBpcyBwZXJmb3JtZWQgKGZvciBpbnN0YW5jZSBi
eSBjaGFuZ2luZworICAgICAgICB0aGUgZGlzcGxheSB0eXBlIG9mIHRoZSByZWdpb24ncyBjb250
YWluaW5nIGJsb2NrKSBhbmQgdGhlIFJlbmRlclJlZ2lvbiBvYmplY3QgaXMgZGVzdHJveWVkLiBX
aGVuIGNvbXB1dGluZyB0aGUgb3ZlcnNldCBhZ2FpbiwKKyAgICAgICAgdGhlcmUgd291bGQgYmUg
bm8gInByZXZpb3VzIiB2YWx1ZSB0byBjb21wYXJlIGl0IHRvIGFuZCBkZWNpZGUgd2hldGhlciB0
aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6ICBmYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbDoKKyAgICAgICAg
ICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQu
aHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZl
bnQtY3Jhc2guaHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNo
YW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWw6CisgICAgICAgICAgICAg
ICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC5odG1sOgorICAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxs
Lmh0bWw6CisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWw6CisKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlZ2lv
bk92ZXJzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3ZWJraXRSZWdpb25P
dmVyc2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50
UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6cmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAg
KiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpmaXJzdEVtcHR5UmVnaW9uSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpkaXNwYXRjaFJlZ2lvbk92ZXJz
ZXRDaGFuZ2VFdmVudCk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OkNoYW5nZVJlZ2lvbk92ZXJzZXRU
YXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpzY2hlZHVs
ZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6dW5zY2hl
ZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6cmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6Om9uVGltZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaDogQWRkZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpjb21wdXRlT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dU
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JS
ZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJl
Z2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6cmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisKIDIwMTMtMDYtMjAgIEdyemVnb3J6IEN6
YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvciBhbmQgdGV4dC1kZWNvcmF0aW9uIGFyZSBub3QgcHJlc2VydmVkIHdoZW4gbWVyZ2lu
ZyBwYXJhZ3JhcGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiZWNjNGQzLi4w
OGUzMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ0MDAsNiArNDQwMCw3
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50
UGhhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BvaW50ZXJFdmVudHNIaXRSdWxl
cy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Qb2ludGVyRXZlbnRzSGl0UnVsZXMu
aCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQXJlbmEuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIzNWZiNjguLmNiYTQyNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjQyMSw2ICsyNDIxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5n
L1BhaW50SW5mby5oIFwKICAgICByZW5kZXJpbmcvUGFpbnRQaGFzZS5oIFwKICAgICByZW5kZXJp
bmcvUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggXAorICAgIHJlbmRlcmluZy9SZWdpb25PdmVyc2V0
U3RhdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oIFwKICAgICByZW5kZXJpbmcv
UmVuZGVyQXJlbmEuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY3ZDkz
NDcuLmI4MWE4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE4MTAsNiArMTgxMCw3IEBACiAJCTZCMzQ4MDk0MEVFRjUwRDQw
MEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdl
UHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4
ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkM2Mzg4
OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRB
OTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICov
OyB9OworCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzcwQTgxNDE3
NzA3QzQ5MDA5QTQ0NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAy
IC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHQzRC5jcHAgKi87IH07CiAJCTZFMjFDNkMyMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0Nv
bnRleHQzRENHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAq
LzsgfTsKIAkJNkUzRkFEMzgxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuY3BwICovOyB9OwpAQCAtODE5OCw2ICs4MTk5LDcgQEAKIAkJNkIzNDgwOTIwRUVGNTBENDAw
QUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXRpdmVJbWFnZVB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYz
ODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYzODg5NEE5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNzBBODE0MTc3MDdD
NDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVnaW9uT3ZlcnNldFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUw
MiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5OTA5LDYgKzE5OTExLDcgQEAKIAkJCQkwODg1MDY3RTExREEwNDVCMDAxODJCOTggLyogUGFp
bnRQaGFzZS5oICovLAogCQkJCUIyQjFGNzE0MEQwMENBQTgwMDRBRUE2NCAvKiBQb2ludGVyRXZl
bnRzSGl0UnVsZXMuY3BwICovLAogCQkJCUIyQjFGNzE1MEQwMENBQTgwMDRBRUE2NCAvKiBQb2lu
dGVyRXZlbnRzSGl0UnVsZXMuaCAqLywKKwkJCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0NkUgLyog
UmVnaW9uT3ZlcnNldFN0YXRlLmggKi8sCiAJCQkJQkNFQTQ4MUMwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlckFwcGxldC5jcHAgKi8sCiAJCQkJQkNFQTQ4MUQwOTdEOTMwMjAwOTRDOUU0IC8qIFJl
bmRlckFwcGxldC5oICovLAogCQkJCUJDRUE0ODFFMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJB
cmVuYS5jcHAgKi8sCkBAIC0yMzk3Myw2ICsyMzk3Niw3IEBACiAJCQkJQkU4RUYwNEIxNzFDOTAx
NDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEQx
NzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZCNzE5QzNGMTcyMzhDQTgwMDIyREUzNCAvKiBXZWJLaXRDU1NNYXRGdW5jdGlvblZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3Zl
cnNldFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4MzVm
OGIzLi43NzJiNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNDIwLDYgKzI0MjAsMTYg
QEAgYm9vbCBFbGVtZW50Ojppc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlzSW5DYW52YXNTdWJ0cmVlKCk7CiB9
CiAKK3ZvaWQgRWxlbWVudDo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvbk92ZXJzZXRTdGF0
ZSBzdGF0ZSkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0UmVnaW9uT3ZlcnNl
dFN0YXRlKHN0YXRlKTsKK30KKworUmVnaW9uT3ZlcnNldFN0YXRlIEVsZW1lbnQ6OnJlZ2lvbk92
ZXJzZXRTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50
UmFyZURhdGEoKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkgOiBSZWdpb25VbmRlZmluZWQ7Cit9CisK
IEF0b21pY1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAog
ewogICAgIGNvbnN0IE5vZGUqIG4gPSB0aGlzOwpAQCAtMjc5MCwyMCArMjgwMCwyMCBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQoKSBjb25zdAogICAg
IGlmICghZG9jdW1lbnQoKS0+Y3NzUmVnaW9uc0VuYWJsZWQoKSB8fCAhcmVuZGVyUmVnaW9uKCkp
CiAgICAgICAgIHJldHVybiB1bmRlZmluZWRTdGF0ZTsKIAotICAgIHN3aXRjaCAocmVuZGVyUmVn
aW9uKCktPnJlZ2lvblN0YXRlKCkpIHsKLSAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0
OiB7CisgICAgc3dpdGNoIChyZW5kZXJSZWdpb24oKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsK
KyAgICBjYXNlIFJlZ2lvbkZpdDogewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZml0U3RhdGUsICgiZml0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgICAgICByZXR1cm4gZml0U3RhdGU7CiAgICAgfQotICAgIGNhc2UgUmVuZGVy
UmVnaW9uOjpSZWdpb25FbXB0eTogeworICAgIGNhc2UgUmVnaW9uRW1wdHk6IHsKICAgICAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3RhdGUsICgiZW1wdHkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBlbXB0
eVN0YXRlOwogICAgIH0KLSAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uT3ZlcnNldDogewor
ICAgIGNhc2UgUmVnaW9uT3ZlcnNldDogewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gb3ZlcmZsb3dTdGF0ZTsKICAgICB9
Ci0gICAgY2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvblVuZGVmaW5lZDoKKyAgICBjYXNlIFJlZ2lv
blVuZGVmaW5lZDoKICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFN0YXRlOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKaW5kZXggOTNiOTY3Ny4uZGE3NmYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29sbGVjdGlvblR5cGUuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlZ2lvbk92ZXJz
ZXRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxp
dFN0cmluZy5oIgogCkBAIC00NzgsNiArNDc5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNJ
bkNhbnZhc1N1YnRyZWUoYm9vbCk7CiAgICAgYm9vbCBpc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0
OwogCisgICAgdm9pZCBzZXRSZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlKTsK
KyAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3Q7CisKICAg
ICBBdG9taWNTdHJpbmcgY29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3Q7CiAgICAgTG9j
YWxlJiBsb2NhbGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNw
cAppbmRleCBiYzgyNDc4Li5jNDk4NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudFJhcmVEYXRhLmgiCi0KKyNpbmNsdWRlICJSZWdpb25PdmVyc2V0U3RhdGUuaCIK
ICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2
ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBTYW1lU2l6ZUFzRWxlbWVudFJh
cmVEYXRhIDogTm9kZVJhcmVEYXRhIHsKICAgICBzaG9ydCBpbmRpY2VzWzJdOwogICAgIHVuc2ln
bmVkIGJpdGZpZWxkczsKKyAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRl
OwogICAgIExheW91dFNpemUgc2l6ZUZvclJlc2l6aW5nOwogICAgIEludFNpemUgc2Nyb2xsT2Zm
c2V0OwogICAgIHZvaWQqIHBvaW50ZXJzWzddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5oCmluZGV4IGM4MDI3OWUuLjljNThhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbkNhbnZhc1N1YnRy
ZWUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5DYW52YXNTdWJ0cmVlOyB9CiAgICAgdm9pZCBzZXRJ
c0luQ2FudmFzU3VidHJlZShib29sIHZhbHVlKSB7IG1faXNJbkNhbnZhc1N1YnRyZWUgPSB2YWx1
ZTsgfQogCisgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVnaW9uT3ZlcnNldFN0YXRlOyB9CisgICAgdm9pZCBzZXRSZWdpb25PdmVy
c2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKSB7IG1fcmVnaW9uT3ZlcnNldFN0YXRl
ID0gc3RhdGU7IH0KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIGNvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQoKSB7IHJldHVybiBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1l
bnQ7IH0KICAgICB2b2lkIHNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCB2YWx1ZSkg
eyBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQgPSB2YWx1ZTsgfQpAQCAtMTU2LDYgKzE1OSw4
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9z
aXRpb25hbFJ1bGVzIDogMTsKICAgICB1bnNpZ25lZCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3
YXJkUG9zaXRpb25hbFJ1bGVzIDogMTsKIAorICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSBtX3JlZ2lv
bk92ZXJzZXRTdGF0ZTsKKwogICAgIExheW91dFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5n
OwogICAgIEludFNpemUgbV9zYXZlZExheWVyU2Nyb2xsT2Zmc2V0OwogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwpAQCAtMjAyLDYgKzIwNyw3IEBAIGlubGluZSBFbGVt
ZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAg
ICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZhbHNlKQogICAgICwg
bV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwg
bV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyhmYWxzZSkKKyAgICAs
IG1fcmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvblVuZGVmaW5lZCkKICAgICAsIG1fbWluaW11bVNp
emVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKaW5kZXggODA2NGRmMi4uYzFkNjVjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCkBAIC0yNDYsNiArMjQ2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFwK
ICAgICBtYWNybyh3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUpIFwKICAgICBcCisgICAgbWFjcm8o
d2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSkgXAorICAgIFwKICAgICBtYWNybyh3ZWJraXRuZXR3
b3JraW5mb2NoYW5nZSkgXAogICAgIFwKICAgICBtYWNybyh3ZWJraXRyZXNvdXJjZXRpbWluZ2J1
ZmZlcmZ1bGwpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKaW5kZXggNTlm
MDk5OS4uMjcwOWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVk
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKQEAg
LTEwMSw3ICsxMDEsNyBAQCBpbnQgV2ViS2l0TmFtZWRGbG93OjpmaXJzdEVtcHR5UmVnaW9uSW5k
ZXgoKSBjb25zdAogICAgIFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBy
ZWdpb25MaXN0LmJlZ2luKCk7CiAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpdGVyICE9IHJlZ2lv
bkxpc3QuZW5kKCk7ICsraW5kZXgsICsraXRlcikgewogICAgICAgICBjb25zdCBSZW5kZXJSZWdp
b24qIHJlbmRlclJlZ2lvbiA9ICppdGVyOwotICAgICAgICBpZiAocmVuZGVyUmVnaW9uLT5yZWdp
b25TdGF0ZSgpID09IFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1wdHkpCisgICAgICAgIGlmIChyZW5k
ZXJSZWdpb24tPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpID09IFJlZ2lvbkVtcHR5KQogICAgICAgICAg
ICAgcmV0dXJuIGluZGV4OwogICAgIH0KICAgICByZXR1cm4gLTE7CkBAIC0yMTQsNiArMjE0LDE5
IEBAIHZvaWQgV2ViS2l0TmFtZWRGbG93OjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50
KCkKIAogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQorICAgIAordm9pZCBXZWJLaXROYW1l
ZEZsb3c6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkKK3sKKyAgICBBU1NFUlQo
IU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwor
ICAgIAorICAgIC8vIElmIHRoZSBmbG93IGlzIGluIHRoZSAiTlVMTCIgc3RhdGUgdGhlIGV2ZW50
IHNob3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBhbnkgbW9yZS4KKyAgICBpZiAoZmxvd1N0YXRlKCkg
PT0gRmxvd1N0YXRlTnVsbCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQgPSBVSUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHJlZ2lvbm92ZXJz
ZXRjaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlLCBtX2Zsb3dNYW5hZ2VyLT5kb2N1bWVudCgpLT5k
ZWZhdWx0VmlldygpLCAwKTsKKyAgICAKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXROYW1lZEZsb3c6OmludGVyZmFjZU5hbWUoKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGM1NDRhODkuLmZmZjM2
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTc5LDYgKzc5LDcgQEAg
cHVibGljOgogICAgIEZsb3dTdGF0ZSBmbG93U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVu
dEZsb3dUaHJlYWQgPyBGbG93U3RhdGVDcmVhdGVkIDogRmxvd1N0YXRlTnVsbDsgfQogCiAgICAg
dm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7CisgICAgdm9pZCBkaXNwYXRj
aFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOwogCiBwcml2YXRlOgogICAgIFdlYktpdE5hbWVk
RmxvdyhQYXNzUmVmUHRyPE5hbWVkRmxvd0NvbGxlY3Rpb24+LCBjb25zdCBBdG9taWNTdHJpbmcm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmlu
ZGV4IDc2YjkwMjcuLjRiNzc0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTI4NSwxNyArMTI4NSwxNyBAQCBQYXNzUmVmUHRyPFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpSZWdpb24+ID4gSW5zcGVjdG9yQ1NT
QWdlbnQ6OmJ1aQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWdpb25MaXN0LT5sZW5n
dGgoKTsgKytpKSB7CiAgICAgICAgIFR5cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbjo6UmVnaW9uT3Zl
cnNldDo6RW51bSByZWdpb25PdmVyc2V0OwogCi0gICAgICAgIHN3aXRjaCAodG9FbGVtZW50KHJl
Z2lvbkxpc3QtPml0ZW0oaSkpLT5yZW5kZXJSZWdpb24oKS0+cmVnaW9uU3RhdGUoKSkgewotICAg
ICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0OgorICAgICAgICBzd2l0Y2ggKHRvRWxl
bWVudChyZWdpb25MaXN0LT5pdGVtKGkpKS0+cmVuZGVyUmVnaW9uKCktPnJlZ2lvbk92ZXJzZXRT
dGF0ZSgpKSB7CisgICAgICAgIGNhc2UgUmVnaW9uRml0OgogICAgICAgICAgICAgcmVnaW9uT3Zl
cnNldCA9IFR5cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbjo6UmVnaW9uT3ZlcnNldDo6Rml0OwogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25FbXB0eToK
KyAgICAgICAgY2FzZSBSZWdpb25FbXB0eToKICAgICAgICAgICAgIHJlZ2lvbk92ZXJzZXQgPSBU
eXBlQnVpbGRlcjo6Q1NTOjpSZWdpb246OlJlZ2lvbk92ZXJzZXQ6OkVtcHR5OwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0OgorICAg
ICAgICBjYXNlIFJlZ2lvbk92ZXJzZXQ6CiAgICAgICAgICAgICByZWdpb25PdmVyc2V0ID0gVHlw
ZUJ1aWxkZXI6OkNTUzo6UmVnaW9uOjpSZWdpb25PdmVyc2V0OjpPdmVyc2V0OwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25VbmRlZmluZWQ6Cisg
ICAgICAgIGNhc2UgUmVnaW9uVW5kZWZpbmVkOgogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMjllMzcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpZm5kZWYgUmVnaW9uT3ZlcnNldFN0YXRlX2gKKyNkZWZpbmUgUmVnaW9uT3ZlcnNldFN0YXRl
X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFJlZ2lvbk92ZXJzZXRTdGF0ZSB7Cisg
ICAgUmVnaW9uVW5kZWZpbmVkLAorICAgIFJlZ2lvbkVtcHR5LAorICAgIFJlZ2lvbkZpdCwKKyAg
ICBSZWdpb25PdmVyc2V0Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBSZWdpb25PdmVyc2V0U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggOWQ2YTBkOS4uNmUwMTQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC0xODE2LDcgKzE4MTYsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpj
b21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UsIGJvb2wgcmVjb21w
dXRlRgogICAgIGFkZFZpc3VhbE92ZXJmbG93RnJvbVRoZW1lKCk7CiAKICAgICBpZiAoaXNSZW5k
ZXJGbG93VGhyZWFkKCkpCi0gICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+Y29tcHV0
ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKG9sZENsaWVudEFmdGVyRWRnZSk7CisgICAgICAgIHRv
UmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+Y29tcHV0ZU92ZXJzZXRTdGF0ZUZvclJlZ2lvbnMob2xk
Q2xpZW50QWZ0ZXJFZGdlKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6Y2xlYXJMYXlvdXRPdmVy
ZmxvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAK
aW5kZXggNzAyMDhmNi4uOGQzNGU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoKQogICAgIDogUmVuZGVyQmxv
Y2soMCkKKyAgICAsIG1fcHJldmlvdXNSZWdpb25Db3VudCgwKQogICAgICwgbV9hdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxpZGF0ZWQoZmFsc2Up
CiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCh0cnVlKQpAQCAtNTcsNiAr
NTgsNyBAQCBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKCkKICAgICAsIG1fb3Zl
cnNldCh0cnVlKQogICAgICwgbV9oYXNSZWdpb25zV2l0aFN0eWxpbmcoZmFsc2UpCiAgICAgLCBt
X2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoZmFsc2UpCisgICAgLCBtX2Rpc3BhdGNo
UmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGZhbHNlKQogICAgICwgbV9wYWdlTG9naWNhbFNpemVD
aGFuZ2VkKGZhbHNlKQogICAgICwgbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UoZmFsc2UpCiAg
ICAgLCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0KGZhbHNlKQpAQCAtMjE5LDYgKzIyMSw5IEBAIHZv
aWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKIAogICAgIGlmIChzaG91bGREaXNwYXRjaFJl
Z2lvbkxheW91dFVwZGF0ZUV2ZW50KCkpCiAgICAgICAgIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBk
YXRlRXZlbnQoKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkRGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnQoKSkKKyAgICAgICAgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsK
IH0KIAogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMb2dpY2FsV2lkdGgoKQpAQCAtNzM1
LDcgKzc0MCw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6YXBwbHlCcmVha0FmdGVyQ29udGVu
dChMYXlvdXRVbml0IGNsaWVudEhlaWdodCkKICAgICBhZGRGb3JjZWRSZWdpb25CcmVhayhjbGll
bnRIZWlnaHQsIHRoaXMsIGZhbHNlKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Up
Cit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JSZWdpb25zKExh
eW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKQogewogICAgIExheW91dFVuaXQgaGVpZ2h0ID0g
b2xkQ2xpZW50QWZ0ZXJFZGdlOwogCkBAIC03NTMsMjUgKzc1OCwzNCBAQCB2b2lkIFJlbmRlckZs
b3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENs
aWVudEFmdGVyRQogICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwogICAgICAg
ICBMYXlvdXRVbml0IGZsb3dNaW4gPSBoZWlnaHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgpIDogcmVnaW9uLT5mbG93VGhy
ZWFkUG9ydGlvblJlY3QoKS54KCkpOwogICAgICAgICBMYXlvdXRVbml0IGZsb3dNYXggPSBoZWln
aHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRp
b25SZWN0KCkubWF4WSgpIDogcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS5tYXhYKCkp
OwotICAgICAgICBSZW5kZXJSZWdpb246OlJlZ2lvblN0YXRlIHByZXZpb3VzU3RhdGUgPSByZWdp
b24tPnJlZ2lvblN0YXRlKCk7Ci0gICAgICAgIFJlbmRlclJlZ2lvbjo6UmVnaW9uU3RhdGUgc3Rh
dGUgPSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdDsKKyAgICAgICAgUmVnaW9uT3ZlcnNldFN0YXRl
IHByZXZpb3VzU3RhdGUgPSByZWdpb24tPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpOworICAgICAgICBS
ZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUgPSBSZWdpb25GaXQ7CiAgICAgICAgIGlmIChmbG93TWlu
IDw9IDApCi0gICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1wdHk7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbkVtcHR5OwogICAgICAgICBpZiAoZmxvd01heCA+IDAg
JiYgcmVnaW9uID09IGxhc3RSZWcpCi0gICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6
UmVnaW9uT3ZlcnNldDsKLSAgICAgICAgcmVnaW9uLT5zZXRSZWdpb25TdGF0ZShzdGF0ZSk7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbk92ZXJzZXQ7CisgICAgICAgIHJlZ2lvbi0+c2V0UmVn
aW9uT3ZlcnNldFN0YXRlKHN0YXRlKTsKICAgICAgICAgLy8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhl
IE5hbWVkRmxvdyBvYmplY3Qgc2hvdWxkIGRpc3BhdGNoIGEgcmVnaW9uTGF5b3V0VXBkYXRlIGV2
ZW50CiAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgaXQgY2Fubm90IGRldGVybWluZSB3aGV0
aGVyIGEgcmVnaW9uIHdob3NlIHJlZ2lvbk92ZXJzZXQgc3RhdGUgcmVtYWluZWQgZWl0aGVyICJm
aXQiIG9yICJvdmVyc2V0IiBoYXMgYWN0dWFsbHkKICAgICAgICAgLy8gY2hhbmdlZCwgc28gaXQg
anVzdCBhc3N1bWVzIHRoYXQgdGhlIE5hbWVkRmxvdyBzaG91bGQgZGlzcGF0Y2ggdGhlIGV2ZW50
CiAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlCi0gICAgICAgICAgICB8fCBzdGF0
ZSA9PSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdAotICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVu
ZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0KQorICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVnaW9u
Rml0CisgICAgICAgICAgICB8fCBzdGF0ZSA9PSBSZWdpb25PdmVyc2V0KQogICAgICAgICAgICAg
c2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCh0cnVlKTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlKQorICAgICAgICAgICAgc2V0RGlzcGF0Y2hS
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQodHJ1ZSk7CisgICAgfQorICAgIAorICAgIC8vIElmIHRo
ZSBudW1iZXIgb2YgcmVnaW9ucyBoYXMgY2hhbmdlZCBzaW5jZSB3ZSBsYXN0IGNvbXB1dGVkIHRo
ZSBvdmVyc2V0IHByb3BlcnR5LCBzY2hlZHVsZSB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dC4KKyAgICBpZiAocHJldmlvdXNSZWdpb25Db3VudENoYW5nZWQoKSkgeworICAgICAgICBzZXRE
aXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCh0cnVlKTsKKyAgICAgICAgdXBkYXRlUHJl
dmlvdXNSZWdpb25Db3VudCgpOwogICAgIH0KIAogICAgIC8vIFdpdGggdGhlIHJlZ2lvbnMgb3Zl
cmZsb3cgc3RhdGUgY29tcHV0ZWQgd2UgY2FuIGFsc28gc2V0IHRoZSBvdmVyc2V0IGZsYWcgZm9y
IHRoZSBuYW1lZCBmbG93LgogICAgIC8vIElmIHRoZXJlIGFyZSBubyB2YWxpZCByZWdpb25zIGlu
IHRoZSBjaGFpbiwgb3ZlcnNldCBpcyB0cnVlLgotICAgIG1fb3ZlcnNldCA9IGxhc3RSZWcgPyBs
YXN0UmVnLT5yZWdpb25TdGF0ZSgpID09IFJlbmRlclJlZ2lvbjo6UmVnaW9uT3ZlcnNldCA6IHRy
dWU7CisgICAgbV9vdmVyc2V0ID0gbGFzdFJlZyA/IGxhc3RSZWctPnJlZ2lvbk92ZXJzZXRTdGF0
ZSgpID09IFJlZ2lvbk92ZXJzZXQgOiB0cnVlOwogfQogCiBib29sIFJlbmRlckZsb3dUaHJlYWQ6
OnJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVnaW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJl
bmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXgg
MTNiZDcyNi4uZjkxNzY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCkBAIC0xMjcsNiArMTI3LDkgQEAgcHVibGljOgogICAgIFJlbmRlclJlZ2lvbiog
Zmlyc3RSZWdpb24oKSBjb25zdDsKICAgICBSZW5kZXJSZWdpb24qIGxhc3RSZWdpb24oKSBjb25z
dDsKIAorICAgIGJvb2wgcHJldmlvdXNSZWdpb25Db3VudENoYW5nZWQoKSBjb25zdCB7IHJldHVy
biBtX3ByZXZpb3VzUmVnaW9uQ291bnQgIT0gbV9yZWdpb25MaXN0LnNpemUoKTsgfTsKKyAgICB2
b2lkIHVwZGF0ZVByZXZpb3VzUmVnaW9uQ291bnQoKSB7IG1fcHJldmlvdXNSZWdpb25Db3VudCA9
IG1fcmVnaW9uTGlzdC5zaXplKCk7IH07CisKICAgICB2b2lkIHNldFJlZ2lvblJhbmdlRm9yQm94
KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0
UGFnZSk7CiAgICAgdm9pZCBnZXRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gqLCBS
ZW5kZXJSZWdpb24qJiBzdGFydFJlZ2lvbiwgUmVuZGVyUmVnaW9uKiYgZW5kUmVnaW9uKSBjb25z
dDsKIApAQCAtMTM0LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgUmVuZGVyUmVn
aW9uKiBvbGRTdGFydFJlZ2lvbiA9IDAsIGNvbnN0IFJlbmRlclJlZ2lvbiogb2xkRW5kUmVnaW9u
ID0gMCwKICAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBuZXdTdGFydFJlZ2lvbiA9IDAsIGNv
bnN0IFJlbmRlclJlZ2lvbiogbmV3RW5kUmVnaW9uID0gMCk7CiAgICAgCi0gICAgdm9pZCBjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Up
OworICAgIHZvaWQgY29tcHV0ZU92ZXJzZXRTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRD
bGllbnRBZnRlckVkZ2UpOwogCiAgICAgYm9vbCBvdmVyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9v
dmVyc2V0OyB9CiAKQEAgLTE4Nyw4ICsxOTAsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0
RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChib29sIHZhbHVlKSB7IG1fZGlzcGF0Y2hS
ZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IHZhbHVlOyB9CiAgICAgYm9vbCBzaG91bGREaXNwYXRj
aFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgeyByZXR1cm4gbV9kaXNwYXRjaFJlZ2lvbkxheW91
dFVwZGF0ZUV2ZW50OyB9CiAgICAgCisgICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudChib29sIHZhbHVlKSB7IG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZl
bnQgPSB2YWx1ZTsgfQorICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdl
RXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50
OyB9CisgICAgCiAgICAgLy8gT3ZlcnJpZGUgaWYgdGhlIGZsb3cgdGhyZWFkIGltcGxlbWVudGF0
aW9uIHN1cHBvcnRzIGRpc3BhdGNoaW5nIGV2ZW50cyB3aGVuIHRoZSBmbG93IGxheW91dCBpcyB1
cGRhdGVkIChlLmcuIGZvciBuYW1lZCBmbG93cykKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hS
ZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50ID0gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnQoKSB7IG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQgPSBmYWxzZTsg
fQogCiAgICAgdm9pZCBpbml0aWFsaXplUmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWln
aHQoUmVuZGVyUmVnaW9uKiA9IDApOwogCkBAIC0yMDIsNiArMjA5LDcgQEAgcHJvdGVjdGVkOgog
ICAgIGlubGluZSBjb25zdCBSZW5kZXJCb3gqIGN1cnJlbnRBY3RpdmVSZW5kZXJCb3goKSBjb25z
dDsKIAogICAgIFJlbmRlclJlZ2lvbkxpc3QgbV9yZWdpb25MaXN0OworICAgIHVuc2lnbmVkIHNo
b3J0IG1fcHJldmlvdXNSZWdpb25Db3VudDsKIAogICAgIGNsYXNzIFJlbmRlclJlZ2lvblJhbmdl
IHsKICAgICBwdWJsaWM6CkBAIC0yNzQsNiArMjgyLDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wg
bV9vdmVyc2V0IDogMTsKICAgICBib29sIG1faGFzUmVnaW9uc1dpdGhTdHlsaW5nIDogMTsKICAg
ICBib29sIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA6IDE7CisgICAgYm9vbCBt
X2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50IDogMTsKICAgICBib29sIG1fcGFnZUxv
Z2ljYWxTaXplQ2hhbmdlZCA6IDE7CiAgICAgYm9vbCBtX2luQ29uc3RyYWluZWRMYXlvdXRQaGFz
ZSA6IDE7CiAgICAgYm9vbCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0IDogMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggMTUy
Y2RmOC4uMWZjZDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkKiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCogZG9j
dW1lbnQKIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6UmVuZGVyTmFtZWRGbG93VGhyZWFkKFBhc3NS
ZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBuYW1lZEZsb3cpCiAgICAgOiBtX25hbWVkRmxvdyhuYW1l
ZEZsb3cpCiAgICAgLCBtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXIodGhpcywgJlJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKQorICAg
ICwgbV9yZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lcih0aGlzLCAmUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpyZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lckZpcmVkKQogewogfQogCkBAIC00
MjcsNiArNDI4LDE0IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lv
bkxheW91dFVwZGF0ZUV2ZW50KCkKICAgICAgICAgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRp
c3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkKK3sKKyAgICBSZW5kZXJGbG93VGhyZWFk
OjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOworICAgIAorICAgIGlmICghbV9y
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lci5pc0FjdGl2ZSgpICYmIG1fbmFtZWRGbG93LT5o
YXNFdmVudExpc3RlbmVycygpKQorICAgICAgICBtX3JlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwogdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJl
Z2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ+KikKIHsKICAgICBBU1NFUlQobV9uYW1lZEZsb3cpOwpAQCAtNDM0LDYgKzQ0MywxMyBAQCB2
b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZp
cmVkKFRpbWVyPFJlbmRlck5hbWVkRgogICAgIG1fbmFtZWRGbG93LT5kaXNwYXRjaFJlZ2lvbkxh
eW91dFVwZGF0ZUV2ZW50KCk7CiB9CiAKK3ZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZWdp
b25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlck5hbWVkRmxvd1RocmVh
ZD4qKQoreworICAgIEFTU0VSVChtX25hbWVkRmxvdyk7CisgICAgCisgICAgbV9uYW1lZEZsb3ct
PmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCk7Cit9CisKIHZvaWQgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkOjpzZXRNYXJrRm9yRGVzdHJ1Y3Rpb24oKQogewogICAgIGlmIChtX25hbWVk
Rmxvdy0+Zmxvd1N0YXRlKCkgPT0gV2ViS2l0TmFtZWRGbG93OjpGbG93U3RhdGVOdWxsKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4
IDNkM2E3NjYuLjE1MDJiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTmFtZWRGbG93VGhyZWFkLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqKSBjb25z
dCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0
ZUV2ZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9uT3ZlcnNl
dENoYW5nZUV2ZW50KCkgT1ZFUlJJREU7CiAKICAgICBib29sIGRlcGVuZHNPbihSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQqIG90aGVyUmVuZGVyRmxvd1RocmVhZCkgY29uc3Q7CiAgICAgdm9pZCBhZGRE
ZXBlbmRlbmN5T25GbG93VGhyZWFkKFJlbmRlck5hbWVkRmxvd1RocmVhZCopOwpAQCAtOTgsNiAr
OTksNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5CZURlc3Ryb3llZCgpIGNvbnN0IHsgcmV0
dXJuIG1faW52YWxpZFJlZ2lvbkxpc3QuaXNFbXB0eSgpICYmIG1fcmVnaW9uTGlzdC5pc0VtcHR5
KCkgJiYgbV9jb250ZW50Tm9kZXMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCByZWdpb25MYXlvdXRV
cGRhdGVFdmVudFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiopOworICAg
IHZvaWQgcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ+Kik7CiAgICAgdm9pZCBjbGVhckNvbnRlbnROb2RlcygpOwogCiBwcml2YXRl
OgpAQCAtMTIzLDYgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYktpdE5hbWVkRmxv
dz4gbV9uYW1lZEZsb3c7CiAKICAgICBUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+IG1fcmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lcjsKKyAgICBUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ+IG1fcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXI7CiB9OwogCiBpbmxpbmUgUmVuZGVy
TmFtZWRGbG93VGhyZWFkKiB0b1JlbmRlck5hbWVkRmxvd1RocmVhZChSZW5kZXJPYmplY3QqIG9i
amVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggOGU5
Mzk0NS4uNDBkMjY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5j
cHAKQEAgLTU0LDcgKzU0LDYgQEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oRWxlbWVudCog
ZWxlbWVudCwgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKICAgICAsIG1faXNWYWxpZChm
YWxzZSkKICAgICAsIG1faGFzQ3VzdG9tUmVnaW9uU3R5bGUoZmFsc2UpCiAgICAgLCBtX2hhc0F1
dG9Mb2dpY2FsSGVpZ2h0KGZhbHNlKQotICAgICwgbV9yZWdpb25TdGF0ZShSZWdpb25VbmRlZmlu
ZWQpCiB7CiB9CiAKQEAgLTEzMiw2ICsxMzEsMjAgQEAgTGF5b3V0UmVjdCBSZW5kZXJSZWdpb246
Om92ZXJmbG93UmVjdEZvckZsb3dUaHJlYWRQb3J0aW9uKGNvbnN0IExheW91dFJlY3QmIGZsb3cK
ICAgICByZXR1cm4gY2xpcFJlY3Q7CiB9CiAKK1JlZ2lvbk92ZXJzZXRTdGF0ZSBSZW5kZXJSZWdp
b246OnJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKGlzVmFsaWQoKSAmJiBu
b2RlKCkgJiYgbm9kZSgpLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiB0b0VsZW1l
bnQobm9kZSgpKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCk7CisgICAgCisgICAgcmV0dXJuIFJlZ2lv
blVuZGVmaW5lZDsKK30KKwordm9pZCBSZW5kZXJSZWdpb246OnNldFJlZ2lvbk92ZXJzZXRTdGF0
ZShSZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG5vZGUoKSAmJiBub2RlKCkt
PmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgdG9FbGVtZW50KG5vZGUoKSktPnNldFJlZ2lvbk92
ZXJzZXRTdGF0ZShzdGF0ZSk7Cit9CisKIExheW91dFVuaXQgUmVuZGVyUmVnaW9uOjpwYWdlTG9n
aWNhbFRvcEZvck9mZnNldChMYXlvdXRVbml0IC8qIG9mZnNldCAqLykgY29uc3QKIHsKICAgICBy
ZXR1cm4gZmxvd1RocmVhZCgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZmxvd1RocmVh
ZFBvcnRpb25SZWN0KCkueSgpIDogZmxvd1RocmVhZFBvcnRpb25SZWN0KCkueCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDQ0ZjgwMTguLmY4Y2I4YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTgyLDE1ICs4Miw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJPYmplY3RTdHlsZUluUmVnaW9uKGNvbnN0IFJlbmRl
ck9iamVjdCopOwogCi0gICAgZW51bSBSZWdpb25TdGF0ZSB7Ci0gICAgICAgIFJlZ2lvblVuZGVm
aW5lZCwKLSAgICAgICAgUmVnaW9uRW1wdHksCi0gICAgICAgIFJlZ2lvbkZpdCwKLSAgICAgICAg
UmVnaW9uT3ZlcnNldAotICAgIH07Ci0KLSAgICBSZWdpb25TdGF0ZSByZWdpb25TdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIGlzVmFsaWQoKSA/IG1fcmVnaW9uU3RhdGUgOiBSZWdpb25VbmRlZmluZWQ7
IH0KLSAgICB2b2lkIHNldFJlZ2lvblN0YXRlKFJlZ2lvblN0YXRlIHJlZ2lvblN0YXRlKSB7IG1f
cmVnaW9uU3RhdGUgPSByZWdpb25TdGF0ZTsgfQorICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSByZWdp
b25PdmVyc2V0U3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldFJlZ2lvbk92ZXJzZXRTdGF0ZShS
ZWdpb25PdmVyc2V0U3RhdGUpOwogICAgIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgcmVwcmVzZW50
IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIGEgInBhZ2UiIGFuZCBmb3IgYSBSZW5kZXJSZWdpb24g
dGhleSBhcmUganVzdCB0aGUKICAgICAvLyBjb250ZW50IHdpZHRoIGFuZCBjb250ZW50IGhlaWdo
dCBvZiBhIHJlZ2lvbi4gRm9yIFJlbmRlclJlZ2lvblNldHMsIGhvd2V2ZXIsIHRoZXkgd2lsbCBi
ZSB0aGUgd2lkdGggYW5kCkBAIC0yMDAsNyArMTkzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aXNWYWxpZCA6IDE7CiAgICAgYm9vbCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlIDogMTsKICAgICBi
b29sIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgOiAxOwotICAgIFJlZ2lvblN0YXRlIG1fcmVnaW9u
U3RhdGU7CiB9OwogCiBpbmxpbmUgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJlZ2lvbihSZW5kZXJP
YmplY3QqIG9iamVjdCkK
</data>
<flag name="commit-queue"
          id="226553"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205091</attachid>
            <date>2013-06-20 08:01:17 -0700</date>
            <delta_ts>2013-06-20 09:13:33 -0700</delta_ts>
            <desc>Final patch (added reviewed by to change log)</desc>
            <filename>117508.patch</filename>
            <type>text/plain</type>
            <size>64653</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTQwMjI2Li5iZWQyY2JjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDYt
MjAgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gQWRkIG5ldyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1MDgKKworICAgICAgICBDaGFuZ2Vk
IHJlZ2lvbkxheW91dFVwZGF0ZSB0ZXN0cyB0byByZWdpb25PdmVyc2V0Q2hhbmdlIGFuZCBhZGRl
ZCBuZXcgdGVzdHMgZm9yIHJlZ2lvbk92ZXJzZXRDaGFuZ2UuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sOgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1
dG8taGVpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdp
b25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lv
bnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQt
cmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJv
eC1uby1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9t
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ct
ZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1m
bG93LWV2ZW50LXRhcmdldC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sOgorCiAyMDEzLTA2LTIwICBab2x0
YW4gQXJ2YWkgIDx6YXJ2YWlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZp
ZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWFkZC10by1mbG93LWV4cGVj
dGVkLnR4dAppbmRleCBjODFhMDVlLi5kYjAxZDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hZGQtdG8tZmxvdy1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTEgQEAKLVRlc3RzIHJlZ2lv
bkxheW91dEV2ZW50CitUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogIEZsb3cgY29udGVudAogUEFTUyBldmVudC50YXJnZXQubmFt
ZSBpcyAiYXJ0aWNsZSIKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCmluZGV4IGZhY2RjMjcu
LmM2YjJkMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hZGQtdG8tZmxvdy5odG1sCkBAIC0xNyw3ICsx
Nyw3IEBACiAuYmxvY2sgewogICAgZGlzcGxheTpibG9jazsKIH0KLSNyZWdpb25fMSwgI3JlZ2lv
bl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7fQorI3JlZ2lvbl8x
LCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJnaW46IDVweDsgYm9y
ZGVyOiAxcHggc29saWQgcmVkO30KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTM0LDcg
KzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+CiAKIDxzY3Jp
cHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91dEV2ZW50IikKKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCIpCiAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ0LDE2ICs0NCwxOSBAQAogICAgICAg
ICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlZ2lvbik7CiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9Ci0gICAgCi0gICAgdmFyIGNvdW50
ID0gMDsKLSAgICBmdW5jdGlvbiByZWdpb25MYXlvdXRVcGRhdGVkKGV2ZW50KSB7CisKKyAgICB2
YXIgZXZlbnRDb3VudCA9IDA7CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2hvdWxkQmUoImV2ZW50Q291bnQiLCAiMiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsK
ICAgICAgICAgCi0gICAgICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICAgZXZlbnQu
dGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJl
Z2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAgCisgICAgICAgIGlmICgrK2V2ZW50Q291
bnQgPiAxKSB7CiAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJl
Z2lvbl8yIGlzIGFkZGVkIHRvIGZsb3cKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIApAQCAtNjIsNyArNjUsNyBAQAogCiAgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewog
ICAgICAgICB2YXIgZmxvdyA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxv
dy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlv
dXRVcGRhdGVkKTsKKyAgICAgICAgZmxvdy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25v
dmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAKICAgICAgICAg
ZGVidWcoIkZsb3cgY29udGVudCIpOwogICAgICAgICBmbG93Q29udGVudCgicmVnaW9uXzEiLCAi
YXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1u
YW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1hdXRvLWhlaWdodC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVmNzU5MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1hdXRvLWhlaWdodC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhlIHJl
Z2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9yIHJlZ2lvbnMgd2l0aCBoZWlnaHQ6YXV0bworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9u
cy4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMDc1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWF1dG8taGVpZ2h0Lmh0bWwK
QEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzog
YXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAj
cmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRp
Y2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJs
b2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4Owor
ICAgICAgICBoZWlnaHQ6YXV0bzsKKyAgICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIHJlZDsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgIH0KKyAgICAuY29u
dGVudCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICBib3JkZXI6
IDNweCBkYXNoZWQgYmx1ZTsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAx
ODBweDsKKyAgICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgLXdlYmtpdC1yZWdpb24tYnJlYWst
YmVmb3JlOiBhbHdheXM7CisgICAgICAgIGhlaWdodDogMTYwcHg7CisgICAgfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFydGljbGUiPgorICAgICAgICA8ZGl2Pgor
ICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNzPSJjb250ZW50Ij48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29udGVudCI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0icmVnaW9uXzEiPjwvZGl2PgorICAgIDxk
aXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIHdp
dGggaGVpZ2h0OmF1dG8iKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjEiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdh
aXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAgICAgICAgICBzZXRU
aW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxv
d0J5TmFtZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3Rl
bmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVn
aW9ucy4uLiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAg
fQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLWV4cGVjdGVkLnR4dAppbmRleCBjNWIxYjRjLi42NGQ5NDlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtY3Jhc2gtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1l
dmVudC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0IGZvciBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyOTQ0IFtDU1MgUmVnaW9uc10gQ3Jh
c2ggd2hlbiBkaXNwYXRjaGluZyByZWdpb25sYXlvdXR1cGRhdGUuIFRoZSB0ZXN0IHBhc3NlcyBp
ZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3NlcnQuCitUaGUgdGVzdCBwYXNzZXMgaWYgdGhlcmUg
aXMgbm8gY3Jhc2ggb3IgYXNzZXJ0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVu
dC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LWNyYXNoLmh0bWwKaW5kZXggZmU2M2MzYi4uODFmZjNjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNyYXNoLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWNy
YXNoLmh0bWwKQEAgLTI3LDI0ICsyNywyNSBAQAogICAgICAgICA8ZGl2IGlkPSJyZWdpb24iPgog
ICAgICAgICA8L2Rpdj4KICAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5NDQgW0NT
UyBSZWdpb25zXSBDcmFzaCB3aGVuIGRpc3BhdGNoaW5nIHJlZ2lvbmxheW91dHVwZGF0ZS4gVGhl
IHRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5vIGNyYXNoIG9yIGFzc2VydC4iKTsKKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBjcmFzaCBvciBhc3Nl
cnQuIik7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGR1bW15SGFuZGxlciAoZXZ0KSB7
Ci0gICAgICAgICAgICBldnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lv
bmxheW91dHVwZGF0ZSIsIGR1bW15SGFuZGxlcik7CisgICAgICAgICAgICBldnQudGFyZ2V0LnJl
bW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhhbmRs
ZXIpOworICAgICAgICAgICAgZGVidWcoIlRoaXMgbGluZSBzaG91bGQgbm90IGFwcGVhciEiKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93cyA9IGRvY3VtZW50LndlYmtpdEdldE5hbWVkRmxvd3MoKTsKLSAgICAg
ICAgICAgIG5hbWVkRmxvd3NbImZsb3ciXS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25s
YXlvdXR1cGRhdGUiLCBkdW1teUhhbmRsZXIpOworICAgICAgICAgICAgbmFtZWRGbG93c1siZmxv
dyJdLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBkdW1teUhh
bmRsZXIpOwogICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpOwogICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKTsKICAgICAgICAgICAgIGNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gIjYw
MHB4IjsKIAotICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSByZWdpb25sYXlvdXR1cGRhdGUgZXZl
bnQuCisgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHJlZ2lvbm92ZXJzZXRjaGFuZ2UgZXZlbnQu
CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKIAogICAgICAgICAgICAgLy8g
VHJhbnNpdGlvbiB0aGUgZmxvdyB0byB0aGUgIk5VTEwiIHN0YXRlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBl
Y3RlZC50eHQKaW5kZXggZjkzZTljNzkuLjdjNzkzMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3RzIHJlZ2lvbkxheW91dEV2ZW50CitUZXN0cyByZWdp
b25PdmVyc2V0Q2hhbmdlIGV2ZW50CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LW5vLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGVhMmIyMTku
LjgyMGJkOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudCBiZWluZyBkaXNwYXRj
aGVkIHdoZW4gdGhlIHJlZ2lvbiBjaGFpbiBpcyByZW1vdmVkCitUZXN0cyByZWdpb25PdmVyc2V0
Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQgd2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQK
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDYgKzgsNyBAQCBQQVNTIGV2ZW50
LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uIDEKIFJlbW92aW5nIHJl
Z2lvbiAyCiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRpY2xlIgorUEFTUyBldmVudENv
dW50IGlzIDIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LW5vLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1uby1yZWdpb25zLmh0bWwKaW5kZXggMjdmZTYzMi4uYmI0NmZhMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LW5vLXJlZ2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0
LW5hbWVkLWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sCkBAIC0zNSw3ICszNSw3IEBACiA8L2Rp
dj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQg
YmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSByZWdpb24gY2hhaW4gaXMgcmVtb3ZlZCIpOworICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGJlaW5nIGRpc3BhdGNoZWQg
d2hlbiB0aGUgcmVnaW9uIGNoYWluIGlzIHJlbW92ZWQiKTsKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDksMTIgKzQ5LDE3IEBACiAgICAgICAgIHIuc3R5
bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKICAgICB9CiAKLSAgICB2YXIgY291bnQgPSAw
OwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0ZWQoZXZlbnQpIHsKKyAgICBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIHZhciBldmVudENvdW50ID0gMDsK
KyAgICBmdW5jdGlvbiByZWdpb25PdmVyc2V0Q2hhbmdlZChldmVudCkgewogICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5uYW1lIiwgImFydGljbGUiKTsKLSAgICAg
ICAgaWYgKCsrY291bnQgPiAxKSB7Ci0gICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCByZWdpb25MYXlvdXRVcGRhdGVk
KTsKLSAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQg
PiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJr
aXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC02OCw3
ICs3Myw3IEBACiAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgICAgIHZhciBmbG93
ID0gZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpOwotICAgICAgICBmbG93LmFkZEV2ZW50TGlzdGVu
ZXIoIndlYmtpdHJlZ2lvbmxheW91dHVwZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOworICAg
ICAgICBmbG93LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCBy
ZWdpb25PdmVyc2V0Q2hhbmdlZCk7CiAKICAgICAgICAgZGVidWcoIkZsb3cgY29udGVudCIpOwog
ICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW5v
LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93
ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIyOTQ2
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQgZm9yIHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4uLgorUEFTUyBldmVudC50YXJn
ZXQubmFtZSBpcyAiYXJ0aWNsZSIKK0VuZ2FnaW5nIGZsZXhib3guLi4KK1BBU1MgZXZlbnRGaXJl
ZENvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4t
ZmxleGJveC1uby1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQzMGEzMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtbm8tb3ZlcnNl
dC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGljbGUgeworICAgICAgICAtd2Vi
a2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsYWNr
OworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7CisgICAgICAgIC13ZWJraXQtZmxv
dy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpoaWRkZW47CisgICAgICAgIGRp
c3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgICAg
IG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6MTkwcHg7CisgICAgICAgIHdpZHRoOjIwMHB4
OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgICAgIHBhZGRpbmc6IDVweDsK
KyAgICAgICAgLXdlYmtpdC1mbGV4LWdyb3c6IDE7CisgICAgICAgIC13ZWJraXQtZmxleC1iYXNp
czogMTAwJTsKKyAgICB9CisgICAgI3JlZ2lvbl8yIHsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWJh
c2lzOiAzMCU7CisgICAgfQorICAgIC5jb250ZW50IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47CisgICAgICAgIGJvcmRlcjogM3B4IGRhc2hlZCBibHVlOworICAgICAgICBtYXJn
aW46IDVweDsKKyAgICB9CisgICAgI3BhcnQxIHsKKyAgICAgICAgaGVpZ2h0OiAxNDBweDsKKyAg
ICB9CisgICAgI3BhcnQyIHsKKyAgICAgICAgaGVpZ2h0OiAxNjBweDsKKyAgICB9CisgICAgI2Zs
ZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKKyAgICAgICAgbWFyZ2lu
OiA1cHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImFy
dGljbGUiPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0icGFydDEiIGNsYXNz
PSJjb250ZW50Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQyIiBjbGFzcz0iY29u
dGVudCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0i
ZmxleGJveCI+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbl8xIj48L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0icmVnaW9uXzIiPjwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgZm9y
IHJlZ2lvbnMgaW5zaWRlIGZsZXhib3hlcyIpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIGZ1bmN0aW9uIGZsb3dDb250ZW50KGZsb3dO
YW1lKSB7CisgICAgICAgICAgICB2YXIgcmVnaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbl8xIik7CisgICAgICAgICAgICByZWdpb24uc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBm
bG93TmFtZTsKKyAgICAgICAgICAgIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb25fMiIpOworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxv
d05hbWU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZXZlbnRGaXJlZENvdW50ID0gMDsKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVu
dEZpcmVkQ291bnQiLCAiMSIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBFbmFibGVGbGV4Ym94KCkgeworICAgICAgICAgICAgZGVi
dWcoIkVuZ2FnaW5nIGZsZXhib3guLi4iKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImZsZXhib3giKS5zdHlsZS5kaXNwbGF5ID0gIi13ZWJraXQtZmxleCI7CisKKyAgICAg
ICAgICAgIC8vIHdhaXQgYW5kIG1ha2Ugc3VyZSBubyBvdGhlciBldmVudHMgYXJyaXZlCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsr
ZXZlbnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRo
ZSBmbGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVu
YWJsZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3Rh
cnRUZXN0KCkgeyAgICAKKyAgICAgICAgICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFt
ZSgiYXJ0aWNsZSIpOworICAgICAgICAgICAgZmxvd1RocmVhZC5hZGRFdmVudExpc3RlbmVyKCJ3
ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVnaW9uT3ZlcnNldENoYW5nZWQpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBkZWJ1ZygiRmxvd2luZyBjb250ZW50IGludG8gcmVnaW9ucy4u
LiIpOworICAgICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc3RhcnRUZXN0KTsKKyAgICA8
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3Zl
cnNldC1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtp
dC1uYW1lZC1mbG93LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODE4ZGU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWV2ZW50LXJlZ2lvbi1pbi1mbGV4Ym94LW92ZXJzZXQtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUZXN0cyB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBmb3IgcmVn
aW9ucyBpbnNpZGUgZmxleGJveGVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitG
bG93aW5nIGNvbnRlbnQgaW50byByZWdpb25zLi4uCitQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlz
ICJhcnRpY2xlIgorRW5nYWdpbmcgZmxleGJveC4uLgorUEFTUyBldmVudC50YXJnZXQubmFtZSBp
cyAiYXJ0aWNsZSIKK1BBU1MgZXZlbnRGaXJlZENvdW50IGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gt
b3ZlcnNldC1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1vdmVyc2V0LWNoYW5nZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOTA5MjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVnaW9u
LWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI2FydGlj
bGUgeworICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICAgICAgYm9yZGVy
OiAxMHB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAjcmVnaW9uXzEsICNyZWdpb25fMiB7Cisg
ICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOworICAgICAgICBvdmVyZmxvdzpo
aWRkZW47CisgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjp0b3A7CisgICAgICAgIG1hcmdpbjoxMHB4OworICAgICAgICBoZWlnaHQ6YXV0bzsKKyAg
ICAgICAgd2lkdGg6MjAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICAg
ICAgcGFkZGluZzogNXB4OworICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTsKKyAgICAgICAg
LXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlOworICAgIH0KKyAgICAjcmVnaW9uXzIgeworICAgICAg
ICAtd2Via2l0LWZsZXgtYmFzaXM6IDcwJTsKKyAgICB9CisgICAgLmNvbnRlbnQgeworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgYm9yZGVyOiAzcHggZGFzaGVkIGJs
dWU7CisgICAgICAgIG1hcmdpbjogNXB4OworICAgIH0KKyAgICAjcGFydDEgeworICAgICAgICBo
ZWlnaHQ6IDcwcHg7CisgICAgfQorICAgICNwYXJ0MiB7CisgICAgICAgIGhlaWdodDogODBweDsK
KyAgICB9CisgICAgI2ZsZXhib3ggeworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsK
KyAgICAgICAgbWFyZ2luOiA1cHg7CisgICAgICAgIHdpZHRoOiAyNDBweDsKKyAgICAgICAgaGVp
Z2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAg
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAg
ICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhcnQxIiBjbGFzcz0iY29udGVudCI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGlkPSJwYXJ0MiIgY2xhc3M9ImNvbnRlbnQiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgaWQ9ImZsZXhib3giPgor
ICAgICAgICA8ZGl2IGlkPSJyZWdpb25fMSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bl8yIj48L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGZvciByZWdpb25zIGlu
c2lkZSBmbGV4Ym94ZXMiKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAg
ICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIp
OworICAgICAgICAgICAgcmVnaW9uLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7Cisg
ICAgICAgICAgICByZWdpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzIiKTsK
KyAgICAgICAgICAgIHJlZ2lvbi5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGV2ZW50RmlyZWRDb3VudCA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnRGaXJlZENvdW50
IiwgIjIiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gRW5hYmxlRmxleGJveCgpIHsKKyAgICAgICAgICAgIGRlYnVnKCJFbmdhZ2lu
ZyBmbGV4Ym94Li4uIikKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmbGV4
Ym94Iikuc3R5bGUuZGlzcGxheSA9ICItd2Via2l0LWZsZXgiOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKKyAgICAgICAgCSsrZXZl
bnRGaXJlZENvdW50OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50
YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CisKKyAgICAgICAgICAgIC8vIGFjdGl2YXRlIHRoZSBm
bGV4Ym94CisgICAgICAgICAgICBpZiAoZXZlbnRGaXJlZENvdW50ID09IDEpIHsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIEVuYWJs
ZUZsZXhib3goKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoIkVuYWJsZUZsZXhib3goKSIsIDEwMDApOworCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDIwMCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAorICAgICAgICAgICAgdmFyIGZsb3dUaHJlYWQgPSBn
ZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7CisgICAgICAgICAgICBmbG93VGhyZWFkLmFkZEV2ZW50
TGlzdGVuZXIoIndlYmtpdHJlZ2lvbm92ZXJzZXRjaGFuZ2UiLCByZWdpb25PdmVyc2V0Q2hhbmdl
ZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlYnVnKCJGbG93aW5nIGNvbnRlbnQgaW50
byByZWdpb25zLi4uIik7CisgICAgICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOworICAg
ICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzdGFydFRl
c3QpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJv
bS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKaW5kZXggY2I0YWUwMS4u
Mjc1OTRmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWRvbS1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyByZWdpb25MYXlvdXRFdmVudAorVGVz
dHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKQEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBET00KIFBBU1Mg
ZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNTIGV2ZW50Q291bnQgaXMgMgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3Zl
LWZyb20tZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtcmVtb3ZlLWZyb20tZG9tLmh0bWwKaW5kZXggMDI1ODllNi4uM2I0NjM4ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1kb20uaHRtbApAQCAtMTcsNyArMTcsNyBA
QAogLmJsb2NrIHsKICAgIGRpc3BsYXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7
IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IG1hcmdpbjogNXB4O30KKyNyZWdpb25fMSwgI3Jl
Z2lvbl8yIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgbWFyZ2luOiA1cHg7IGJvcmRlcjog
MXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC0zNiw3ICszNiw3
IEBACiA8ZGl2IGlkPSJjb25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2PgogCiA8c2NyaXB0Pgot
ICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25MYXlvdXRFdmVudCIpCisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQiKQogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CkBAIC00OSwxNCArNDksMTkgQEAKICAgICAgICAgciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMiIpOwogICAgICAgICByLnN0eWxlLndl
YmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CiAgICAgfQotICAgIAotICAgIHZhciBjb3VudCA9IDA7
Ci0gICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworCisgICAgdmFyIGV2
ZW50Q291bnQgPSAwOworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3Vs
ZEJlKCJldmVudENvdW50IiwgIjIiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcmVnaW9uT3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7Ci0gICAg
ICAgIGlmICgrK2NvdW50ID4gMSkgewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRl
ZCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOwogICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVk
IGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIApAQCAtNjcsNyArNzIsNyBAQAogICAgIAogICAgIGZ1bmN0aW9uIHN0
YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJhcnRpY2xlIik7
Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBkYXRl
IiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2VkKTsKICAgICAg
ICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQo
ImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQt
bmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93
LWV4cGVjdGVkLnR4dAppbmRleCAyMzRlNDYyLi45ZTZlNGM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxv
dy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1l
ZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC03LDYgKzcsNyBAQCBGbG93IGNv
bnRlbnQKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCiBSZW1vdmluZyByZWdp
b25fMiBmcm9tIGZsb3cKIFBBU1MgZXZlbnQudGFyZ2V0Lm5hbWUgaXMgImFydGljbGUiCitQQVNT
IGV2ZW50Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXJlbW92ZS1mcm9tLWZsb3cuaHRtbAppbmRl
eCAwMjhkNDQ4Li42NDUwZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
d2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtcmVtb3ZlLWZyb20tZmxvdy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1m
bG93Lmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKIC5ibG9jayB7CiAgICBkaXNwbGF5OmJsb2NrOwog
fQotI3JlZ2lvbl8xLCAjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBtYXJn
aW46IDVweDt9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAw
cHg7IG1hcmdpbjogNXB4OyBib3JkZXI6IDFweCBzb2xpZCByZWQ7fQogPC9zdHlsZT4KIDwvaGVh
ZD4KIDxib2R5PgpAQCAtMzQsNyArMzQsNyBAQAogPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJs
b2NrIj48L2Rpdj4KIAogPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5
b3V0RXZlbnQiKQorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2
ZW50IikKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpAQCAtNDcs
MTQgKzQ3LDE4IEBACiAgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
XzIiKTsKICAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOwogICAgIH0K
LSAgICAKLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZ1bmN0aW9uIHJlZ2lvbkxheW91dFVwZGF0
ZWQoZXZlbnQpIHsKKworICAgIHZhciBldmVudENvdW50ID0gMDsKKyAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRDb3VudCIsICIyIik7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlZ2lvbk92ZXJzZXRDaGFu
Z2VkKGV2ZW50KSB7CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0
Lm5hbWUiLCAiYXJ0aWNsZSIpOwotICAgICAgICBpZiAoKytjb3VudCA+IDEpIHsKLSAgICAgICAg
ICAgZXZlbnQudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdHJlZ2lvbmxheW91dHVw
ZGF0ZSIsIHJlZ2lvbkxheW91dFVwZGF0ZWQpOwotICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBi
ZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQgZnJvbSBET00KLSAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGlmICgrK2V2ZW50Q291bnQgPiAxKSB7CisgICAgICAg
ICAgICAvLyB0aGlzIHNob3VsZCBiZSByZWFjaGVkIGFmdGVyIHJlZ2lvbl8yIGlzIHJlbW92ZWQg
ZnJvbSBET00KKyAgICAgICAgICAgc2V0VGltZW91dCgiZmluaXNoVGVzdCgpIiwgMjAwKTsKICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIApAQCAtNjUsNyArNjksNyBAQAog
ICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRG
bG93QnlOYW1lKCJhcnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Vi
a2l0cmVnaW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZs
b3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92
ZXJzZXRDaGFuZ2VkKTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsK
ICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10YXJnZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdl
dC1leHBlY3RlZC50eHQKaW5kZXggZGE4ZTU0ZC4uY2QxNjQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50LXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogRmxvdyBjb250ZW50CiBQQVNTIGV2ZW50LnRhcmdldC5uYW1lIGlzICJhcnRp
Y2xlIgotUEFTUyAyIGlzID49IHVwZGF0ZWRDb3VudAogUEFTUyBnZXRGbG93QnlOYW1lKCJhcnRp
Y2xlIikgaXMgbm9uLW51bGwuCiBQQVNTIHJlY3JlYXRlZCBpcyBmYWxzZQogUEFTUyBnZXRGbG93
QnlOYW1lKCJhcnRpY2xlIikgaXMgbnVsbAogUEFTUyBldmVudC50YXJnZXQubmFtZSBpcyAiYXJ0
aWNsZSIKLVBBU1MgMiBpcyA+PSB1cGRhdGVkQ291bnQKIFBBU1MgcmVjcmVhdGVkIGlzIHRydWUK
IFBBU1MgZ2V0Rmxvd0J5TmFtZSgiYXJ0aWNsZSIpIGlzIG5vbi1udWxsLgorUEFTUyB1cGRhdGVk
Q291bnQgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZs
b3ctZXZlbnQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtdGFyZ2V0Lmh0bWwKaW5kZXggZWY2YmIxNC4uMDY5NWViMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRh
cmdldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxv
dy1ldmVudC10YXJnZXQuaHRtbApAQCAtMTksNyArMTksNyBAQAogLmJsb2NrIHsKICAgIGRpc3Bs
YXk6YmxvY2s7CiB9Ci0jcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6
MjAwcHh9CisjcmVnaW9uXzEsICNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7
IGJvcmRlcjogMXB4IHNvbGlkIHJlZDt9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CkBAIC03
NSwxNyArNzUsMjAgQEAgZnVuY3Rpb24gbWFrZUZsb3dDcmVhdGVkKCkgewogfQogCiB2YXIgdXBk
YXRlZENvdW50ID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmUoInVw
ZGF0ZWRDb3VudCIsICIyIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKIGZ1bmN0aW9uIGZs
b3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7CiAJKyt1cGRhdGVkQ291bnQ7CiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAKLSAgICBzaG91
bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiMiIsICJ1cGRhdGVkQ291bnQiKTsKLQogICAgIGlmICh1
cGRhdGVkQ291bnQgPT0gMikgewogICAgIAlzaG91bGRCZVRydWUoInJlY3JlYXRlZCIpOwotICAg
IAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5b3V0dXBk
YXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIAlldmVudC50YXJnZXQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsK
ICAgICAJbWFrZUZsb3dOdWxsKCk7Ci0gICAgCWZpbmlzaEpTVGVzdCgpOworICAgIAlzZXRUaW1l
b3V0KCJmaW5pc2hUZXN0KCkiLCAyMDApOwogICAgIAlyZXR1cm47CiAgICAgfQogCkBAIC05OCw3
ICsxMDEsNyBAQCBmdW5jdGlvbiBmbG93VGhyZWFkVXBkYXRlZChldmVudCkgewogCiBmdW5jdGlv
biBzdGFydFRlc3QoKSB7ICAgIAogICAgIHZhciBmbG93VGhyZWFkID0gZ2V0Rmxvd0J5TmFtZSgi
YXJ0aWNsZSIpOwotICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
bGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgIGZsb3dUaHJlYWQuYWRkRXZl
bnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVk
KTsKICAgICAKICAgICBkZWJ1ZygiRmxvdyBjb250ZW50Iik7CiAgICAgZmxvd0NvbnRlbnQoImFy
dGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFt
ZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLWV4cGVjdGVkLnR4dAppbmRleCBl
YjJjY2I5Li42OTQwYzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Vi
a2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdHMgcmVnaW9uTGF5b3V0RXZlbnQgYmVpbmcgZGlzcGF0
Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKK1Rlc3RzIHJlZ2lvbk92ZXJzZXRDaGFu
Z2UgZXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQKIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC04LDcgKzgsNyBAQCBQQVNTIGV2ZW50LnRh
cmdldC5uYW1lIGlzICJhcnRpY2xlIgogUmVtb3ZpbmcgcmVnaW9uXzIgZnJvbSBmbG93CiBSZW1v
dmluZyByZWdpb25fMSBmcm9tIGZsb3cKIFJlbW92aW5nIGFydGljbGUgZnJvbSBmbG93Ci1QQVNT
IGxheW91dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyBpcyBmYWxzZQorUEFTUyByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93IGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtdG8tbnVsbC5odG1sCmlu
ZGV4IDUzZjVkZWMuLjY0ZmQ4YWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRvLW51bGwuaHRtbApAQCAtMzYs
NyArMzYsNyBAQAogCiA8c2NyaXB0PgogCi1kZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uTGF5b3V0
RXZlbnQgYmVpbmcgZGlzcGF0Y2hlZCB3aGVuIHRoZSBjb250ZW50IGlzIHJlbW92ZWQiKTsKK2Rl
c2NyaXB0aW9uKCJUZXN0cyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IGJlaW5nIGRpc3BhdGNo
ZWQgd2hlbiB0aGUgY29udGVudCBpcyByZW1vdmVkIik7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKQEAgLTUyLDEyICs1MiwxMiBA
QCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB9CiAgICAgCiAgICAgdmFyIGNvdW50ID0g
MDsKLSAgICB2YXIgbGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7Ci0g
ICAgZnVuY3Rpb24gcmVnaW9uTGF5b3V0VXBkYXRlZChldmVudCkgeworICAgIHZhciByZWdpb25P
dmVyc2V0RGlzcGF0Y2hlZEZvck51bGxGbG93ID0gZmFsc2U7CisgICAgZnVuY3Rpb24gcmVnaW9u
T3ZlcnNldENoYW5nZWQoZXZlbnQpIHsKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
dmVudC50YXJnZXQubmFtZSIsICJhcnRpY2xlIik7CiAgICAgICAgIGlmICgrK2NvdW50ID4gMSkg
ewotICAgICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVn
aW9ubGF5b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7Ci0gICAgICAgICAgIGxheW91
dFVwZGF0ZURpc3BhdGNoZWRGb3JOdWxsRmxvdyA9IHRydWU7CisgICAgICAgICAgIGV2ZW50LnRh
cmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25vdmVyc2V0Y2hhbmdlIiwgcmVn
aW9uT3ZlcnNldENoYW5nZWQpOworICAgICAgICAgICByZWdpb25PdmVyc2V0RGlzcGF0Y2hlZEZv
ck51bGxGbG93ID0gdHJ1ZTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtNzEsMTcgKzcxLDE3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBk
ZWJ1ZygiUmVtb3ZpbmcgYXJ0aWNsZSBmcm9tIGZsb3ciKTsKICAgICAgICAgZWwuc3R5bGUud2Vi
a2l0Rmxvd0ludG8gPSAibm9uZSI7CiAKLSAgICAgICAgc2V0VGltZW91dChjaGVja0lmRXZlbnRE
aXNwYXRjaGVkLCA1MDApOworICAgICAgICBzZXRUaW1lb3V0KGNoZWNrSWZFdmVudERpc3BhdGNo
ZWQsIDIwMCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY2hlY2tJZkV2ZW50RGlzcGF0Y2hlZCgp
IHsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgibGF5b3V0VXBkYXRlRGlzcGF0Y2hlZEZvck51bGxG
bG93Iik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInJlZ2lvbk92ZXJzZXREaXNwYXRjaGVkRm9y
TnVsbEZsb3ciKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogICAgIAogICAgIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdmFyIGZsb3cgPSBnZXRGbG93QnlOYW1lKCJh
cnRpY2xlIik7Ci0gICAgICAgIGZsb3cuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ubGF5
b3V0dXBkYXRlIiwgcmVnaW9uTGF5b3V0VXBkYXRlZCk7CisgICAgICAgIGZsb3cuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIHJlZ2lvbk92ZXJzZXRDaGFuZ2Vk
KTsKICAgICAgICAgCiAgICAgICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxv
d0NvbnRlbnQoImFydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50Lmh0bWwKaW5kZXggNzY2ZTIwOS4uYWUwODRlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9j
ayI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3RzIHJlZ2lvbkxheW91
dEV2ZW50IikKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dCIpCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKQEAgLTQ5LDE5
ICs0OSwxOCBAQAogICAgIAogICAgIGZ1bmN0aW9uIGZsb3dUaHJlYWRVcGRhdGVkKGV2ZW50KSB7
CiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQudGFyZ2V0Lm5hbWUiLCAiYXJ0
aWNsZSIpOwotICAgICAgICBldmVudC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0
cmVnaW9ubGF5b3V0dXBkYXRlIiwgZmxvd1RocmVhZFVwZGF0ZWQpOworICAgICAgICBldmVudC50
YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSIsIGZs
b3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
IH0KICAgICAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7ICAgIAogICAgICAgICB2YXIgZmxv
d1RocmVhZCA9IGdldEZsb3dCeU5hbWUoImFydGljbGUiKTsKLSAgICAgICAgZmxvd1RocmVhZC5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUiLCBmbG93VGhyZWFkVXBk
YXRlZCk7CisgICAgICAgIGZsb3dUaHJlYWQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVnaW9u
b3ZlcnNldGNoYW5nZSIsIGZsb3dUaHJlYWRVcGRhdGVkKTsKICAgICAgICAgCiAgICAgICAgIGRl
YnVnKCJGbG93IGNvbnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUiKTsKICAg
ICB9Ci0gICAgLy9zdGFydFRlc3QoKTsKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHN0YXJ0VGVzdCk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZDJkZWIu
LjJkYjQ0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMy0wNi0yMCAgUmFkdSBT
dGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBBZGQg
bmV3IHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzUwOAorCisgICAgICAgIEFkZGVkIHJlZ2lvbk92ZXJz
ZXRDaGFuZ2UgZXZlbnQgYW5kIHRlc3RzIGZvciBpdC4gVGhlIG92ZXJzZXQgdmFsdWUgb2YgdGhl
IHJlZ2lvbiBoYXMgYmVlbiBtb3ZlZCB0byB0aGUgRWxlbWVudFJhcmVEYXRhCisgICAgICAgIG9i
amVjdCBpbnN0ZWFkIG9mIHRoZSBSZW5kZXJSZWdpb24gb2JqZWN0LiBUaGlzIHdhcyBuZWVkZWQg
Zm9yIHRoZSBjYXNlIHdoZW4gYSByZWF0dGFjaCBpcyBwZXJmb3JtZWQgKGZvciBpbnN0YW5jZSBi
eSBjaGFuZ2luZworICAgICAgICB0aGUgZGlzcGxheSB0eXBlIG9mIHRoZSByZWdpb24ncyBjb250
YWluaW5nIGJsb2NrKSBhbmQgdGhlIFJlbmRlclJlZ2lvbiBvYmplY3QgaXMgZGVzdHJveWVkLiBX
aGVuIGNvbXB1dGluZyB0aGUgb3ZlcnNldCBhZ2FpbiwKKyAgICAgICAgdGhlcmUgd291bGQgYmUg
bm8gInByZXZpb3VzIiB2YWx1ZSB0byBjb21wYXJlIGl0IHRvIGFuZCBkZWNpZGUgd2hldGhlciB0
aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGVzdHM6ICBmYXN0L3Jl
Z2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYWRkLXRvLWZsb3cuaHRtbDoKKyAgICAgICAg
ICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZlbnQtYXV0by1oZWlnaHQu
aHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZXZl
bnQtY3Jhc2guaHRtbDoKKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZXZlbnQtbm8tcmVnaW9ucy5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9u
cy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC1yZWdpb24taW4tZmxleGJveC1uby1vdmVyc2V0LWNo
YW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvd2Via2l0LW5h
bWVkLWZsb3ctZXZlbnQtcmVnaW9uLWluLWZsZXhib3gtb3ZlcnNldC1jaGFuZ2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50
LXJlbW92ZS1mcm9tLWRvbS5odG1sOgorICAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJr
aXQtbmFtZWQtZmxvdy1ldmVudC1yZW1vdmUtZnJvbS1mbG93Lmh0bWw6CisgICAgICAgICAgICAg
ICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2ZW50LXRhcmdldC5odG1sOgorICAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1ldmVudC10by1udWxs
Lmh0bWw6CisgICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWV2
ZW50Lmh0bWw6CisKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlZ2lv
bk92ZXJzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3ZWJraXRSZWdpb25P
dmVyc2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50
UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6cmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAg
KiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpmaXJzdEVtcHR5UmVnaW9uSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpkaXNwYXRjaFJlZ2lvbk92ZXJz
ZXRDaGFuZ2VFdmVudCk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OkNoYW5nZVJlZ2lvbk92ZXJzZXRU
YXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpzY2hlZHVs
ZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6dW5zY2hl
ZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6cmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6Om9uVGltZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaDogQWRkZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpjb21wdXRlT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dU
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JS
ZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJl
Z2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6cmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisKIDIwMTMtMDYtMjAgIEdyemVnb3J6IEN6
YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvciBhbmQgdGV4dC1kZWNvcmF0aW9uIGFyZSBub3QgcHJlc2VydmVkIHdoZW4gbWVyZ2lu
ZyBwYXJhZ3JhcGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiZWNjNGQzLi4w
OGUzMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ0MDAsNiArNDQwMCw3
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50
UGhhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BvaW50ZXJFdmVudHNIaXRSdWxl
cy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Qb2ludGVyRXZlbnRzSGl0UnVsZXMu
aCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQXJlbmEuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIzNWZiNjguLmNiYTQyNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjQyMSw2ICsyNDIxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5n
L1BhaW50SW5mby5oIFwKICAgICByZW5kZXJpbmcvUGFpbnRQaGFzZS5oIFwKICAgICByZW5kZXJp
bmcvUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggXAorICAgIHJlbmRlcmluZy9SZWdpb25PdmVyc2V0
U3RhdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oIFwKICAgICByZW5kZXJpbmcv
UmVuZGVyQXJlbmEuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY3ZDkz
NDcuLmI4MWE4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE4MTAsNiArMTgxMCw3IEBACiAJCTZCMzQ4MDk0MEVFRjUwRDQw
MEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdl
UHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4
ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkM2Mzg4
OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRB
OTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICov
OyB9OworCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzcwQTgxNDE3
NzA3QzQ5MDA5QTQ0NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAy
IC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHQzRC5jcHAgKi87IH07CiAJCTZFMjFDNkMyMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0Nv
bnRleHQzRENHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAq
LzsgfTsKIAkJNkUzRkFEMzgxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuY3BwICovOyB9OwpAQCAtODE5OCw2ICs4MTk5LDcgQEAKIAkJNkIzNDgwOTIwRUVGNTBENDAw
QUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXRpdmVJbWFnZVB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYz
ODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYzODg5NEE5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNzBBODE0MTc3MDdD
NDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVnaW9uT3ZlcnNldFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUw
MiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5OTA5LDYgKzE5OTExLDcgQEAKIAkJCQkwODg1MDY3RTExREEwNDVCMDAxODJCOTggLyogUGFp
bnRQaGFzZS5oICovLAogCQkJCUIyQjFGNzE0MEQwMENBQTgwMDRBRUE2NCAvKiBQb2ludGVyRXZl
bnRzSGl0UnVsZXMuY3BwICovLAogCQkJCUIyQjFGNzE1MEQwMENBQTgwMDRBRUE2NCAvKiBQb2lu
dGVyRXZlbnRzSGl0UnVsZXMuaCAqLywKKwkJCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0NkUgLyog
UmVnaW9uT3ZlcnNldFN0YXRlLmggKi8sCiAJCQkJQkNFQTQ4MUMwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlckFwcGxldC5jcHAgKi8sCiAJCQkJQkNFQTQ4MUQwOTdEOTMwMjAwOTRDOUU0IC8qIFJl
bmRlckFwcGxldC5oICovLAogCQkJCUJDRUE0ODFFMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJB
cmVuYS5jcHAgKi8sCkBAIC0yMzk3Myw2ICsyMzk3Niw3IEBACiAJCQkJQkU4RUYwNEIxNzFDOTAx
NDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEQx
NzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZCNzE5QzNGMTcyMzhDQTgwMDIyREUzNCAvKiBXZWJLaXRDU1NNYXRGdW5jdGlvblZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3Zl
cnNldFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4MzVm
OGIzLi43NzJiNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNDIwLDYgKzI0MjAsMTYg
QEAgYm9vbCBFbGVtZW50Ojppc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlzSW5DYW52YXNTdWJ0cmVlKCk7CiB9
CiAKK3ZvaWQgRWxlbWVudDo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvbk92ZXJzZXRTdGF0
ZSBzdGF0ZSkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0UmVnaW9uT3ZlcnNl
dFN0YXRlKHN0YXRlKTsKK30KKworUmVnaW9uT3ZlcnNldFN0YXRlIEVsZW1lbnQ6OnJlZ2lvbk92
ZXJzZXRTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50
UmFyZURhdGEoKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkgOiBSZWdpb25VbmRlZmluZWQ7Cit9CisK
IEF0b21pY1N0cmluZyBFbGVtZW50Ojpjb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSBjb25zdAog
ewogICAgIGNvbnN0IE5vZGUqIG4gPSB0aGlzOwpAQCAtMjc5MCwyMCArMjgwMCwyMCBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQoKSBjb25zdAogICAg
IGlmICghZG9jdW1lbnQoKS0+Y3NzUmVnaW9uc0VuYWJsZWQoKSB8fCAhcmVuZGVyUmVnaW9uKCkp
CiAgICAgICAgIHJldHVybiB1bmRlZmluZWRTdGF0ZTsKIAotICAgIHN3aXRjaCAocmVuZGVyUmVn
aW9uKCktPnJlZ2lvblN0YXRlKCkpIHsKLSAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0
OiB7CisgICAgc3dpdGNoIChyZW5kZXJSZWdpb24oKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsK
KyAgICBjYXNlIFJlZ2lvbkZpdDogewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZml0U3RhdGUsICgiZml0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgICAgICByZXR1cm4gZml0U3RhdGU7CiAgICAgfQotICAgIGNhc2UgUmVuZGVy
UmVnaW9uOjpSZWdpb25FbXB0eTogeworICAgIGNhc2UgUmVnaW9uRW1wdHk6IHsKICAgICAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3RhdGUsICgiZW1wdHkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBlbXB0
eVN0YXRlOwogICAgIH0KLSAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uT3ZlcnNldDogewor
ICAgIGNhc2UgUmVnaW9uT3ZlcnNldDogewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gb3ZlcmZsb3dTdGF0ZTsKICAgICB9
Ci0gICAgY2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvblVuZGVmaW5lZDoKKyAgICBjYXNlIFJlZ2lv
blVuZGVmaW5lZDoKICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFN0YXRlOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKaW5kZXggOTNiOTY3Ny4uZGE3NmYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29sbGVjdGlvblR5cGUuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlZ2lvbk92ZXJz
ZXRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxp
dFN0cmluZy5oIgogCkBAIC00NzgsNiArNDc5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNJ
bkNhbnZhc1N1YnRyZWUoYm9vbCk7CiAgICAgYm9vbCBpc0luQ2FudmFzU3VidHJlZSgpIGNvbnN0
OwogCisgICAgdm9pZCBzZXRSZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlKTsK
KyAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3Q7CisKICAg
ICBBdG9taWNTdHJpbmcgY29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkgY29uc3Q7CiAgICAgTG9j
YWxlJiBsb2NhbGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNw
cAppbmRleCBiYzgyNDc4Li5jNDk4NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudFJhcmVEYXRhLmgiCi0KKyNpbmNsdWRlICJSZWdpb25PdmVyc2V0U3RhdGUuaCIK
ICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2
ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBTYW1lU2l6ZUFzRWxlbWVudFJh
cmVEYXRhIDogTm9kZVJhcmVEYXRhIHsKICAgICBzaG9ydCBpbmRpY2VzWzJdOwogICAgIHVuc2ln
bmVkIGJpdGZpZWxkczsKKyAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRl
OwogICAgIExheW91dFNpemUgc2l6ZUZvclJlc2l6aW5nOwogICAgIEludFNpemUgc2Nyb2xsT2Zm
c2V0OwogICAgIHZvaWQqIHBvaW50ZXJzWzddOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5oCmluZGV4IGM4MDI3OWUuLjljNThhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbkNhbnZhc1N1YnRy
ZWUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5DYW52YXNTdWJ0cmVlOyB9CiAgICAgdm9pZCBzZXRJ
c0luQ2FudmFzU3VidHJlZShib29sIHZhbHVlKSB7IG1faXNJbkNhbnZhc1N1YnRyZWUgPSB2YWx1
ZTsgfQogCisgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVnaW9uT3ZlcnNldFN0YXRlOyB9CisgICAgdm9pZCBzZXRSZWdpb25PdmVy
c2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKSB7IG1fcmVnaW9uT3ZlcnNldFN0YXRl
ID0gc3RhdGU7IH0KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIGNvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQoKSB7IHJldHVybiBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1l
bnQ7IH0KICAgICB2b2lkIHNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCB2YWx1ZSkg
eyBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQgPSB2YWx1ZTsgfQpAQCAtMTU2LDYgKzE1OSw4
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9z
aXRpb25hbFJ1bGVzIDogMTsKICAgICB1bnNpZ25lZCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3
YXJkUG9zaXRpb25hbFJ1bGVzIDogMTsKIAorICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSBtX3JlZ2lv
bk92ZXJzZXRTdGF0ZTsKKwogICAgIExheW91dFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5n
OwogICAgIEludFNpemUgbV9zYXZlZExheWVyU2Nyb2xsT2Zmc2V0OwogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwpAQCAtMjAyLDYgKzIwNyw3IEBAIGlubGluZSBFbGVt
ZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAg
ICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZhbHNlKQogICAgICwg
bV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwg
bV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyhmYWxzZSkKKyAgICAs
IG1fcmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvblVuZGVmaW5lZCkKICAgICAsIG1fbWluaW11bVNp
emVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKaW5kZXggODA2NGRmMi4uYzFkNjVjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCkBAIC0yNDYsNiArMjQ2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFwK
ICAgICBtYWNybyh3ZWJraXRyZWdpb25sYXlvdXR1cGRhdGUpIFwKICAgICBcCisgICAgbWFjcm8o
d2Via2l0cmVnaW9ub3ZlcnNldGNoYW5nZSkgXAorICAgIFwKICAgICBtYWNybyh3ZWJraXRuZXR3
b3JraW5mb2NoYW5nZSkgXAogICAgIFwKICAgICBtYWNybyh3ZWJraXRyZXNvdXJjZXRpbWluZ2J1
ZmZlcmZ1bGwpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKaW5kZXggNTlm
MDk5OS4uMjcwOWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVk
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKQEAg
LTEwMSw3ICsxMDEsNyBAQCBpbnQgV2ViS2l0TmFtZWRGbG93OjpmaXJzdEVtcHR5UmVnaW9uSW5k
ZXgoKSBjb25zdAogICAgIFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBy
ZWdpb25MaXN0LmJlZ2luKCk7CiAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpdGVyICE9IHJlZ2lv
bkxpc3QuZW5kKCk7ICsraW5kZXgsICsraXRlcikgewogICAgICAgICBjb25zdCBSZW5kZXJSZWdp
b24qIHJlbmRlclJlZ2lvbiA9ICppdGVyOwotICAgICAgICBpZiAocmVuZGVyUmVnaW9uLT5yZWdp
b25TdGF0ZSgpID09IFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1wdHkpCisgICAgICAgIGlmIChyZW5k
ZXJSZWdpb24tPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpID09IFJlZ2lvbkVtcHR5KQogICAgICAgICAg
ICAgcmV0dXJuIGluZGV4OwogICAgIH0KICAgICByZXR1cm4gLTE7CkBAIC0yMTQsNiArMjE0LDE5
IEBAIHZvaWQgV2ViS2l0TmFtZWRGbG93OjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50
KCkKIAogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQorICAgIAordm9pZCBXZWJLaXROYW1l
ZEZsb3c6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkKK3sKKyAgICBBU1NFUlQo
IU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwor
ICAgIAorICAgIC8vIElmIHRoZSBmbG93IGlzIGluIHRoZSAiTlVMTCIgc3RhdGUgdGhlIGV2ZW50
IHNob3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBhbnkgbW9yZS4KKyAgICBpZiAoZmxvd1N0YXRlKCkg
PT0gRmxvd1N0YXRlTnVsbCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQgPSBVSUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHJlZ2lvbm92ZXJz
ZXRjaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlLCBtX2Zsb3dNYW5hZ2VyLT5kb2N1bWVudCgpLT5k
ZWZhdWx0VmlldygpLCAwKTsKKyAgICAKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXROYW1lZEZsb3c6OmludGVyZmFjZU5hbWUoKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGM1NDRhODkuLmZmZjM2
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTc5LDYgKzc5LDcgQEAg
cHVibGljOgogICAgIEZsb3dTdGF0ZSBmbG93U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVu
dEZsb3dUaHJlYWQgPyBGbG93U3RhdGVDcmVhdGVkIDogRmxvd1N0YXRlTnVsbDsgfQogCiAgICAg
dm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7CisgICAgdm9pZCBkaXNwYXRj
aFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOwogCiBwcml2YXRlOgogICAgIFdlYktpdE5hbWVk
RmxvdyhQYXNzUmVmUHRyPE5hbWVkRmxvd0NvbGxlY3Rpb24+LCBjb25zdCBBdG9taWNTdHJpbmcm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmlu
ZGV4IDc2YjkwMjcuLjRiNzc0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTI4NSwxNyArMTI4NSwxNyBAQCBQYXNzUmVmUHRyPFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpSZWdpb24+ID4gSW5zcGVjdG9yQ1NT
QWdlbnQ6OmJ1aQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWdpb25MaXN0LT5sZW5n
dGgoKTsgKytpKSB7CiAgICAgICAgIFR5cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbjo6UmVnaW9uT3Zl
cnNldDo6RW51bSByZWdpb25PdmVyc2V0OwogCi0gICAgICAgIHN3aXRjaCAodG9FbGVtZW50KHJl
Z2lvbkxpc3QtPml0ZW0oaSkpLT5yZW5kZXJSZWdpb24oKS0+cmVnaW9uU3RhdGUoKSkgewotICAg
ICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0OgorICAgICAgICBzd2l0Y2ggKHRvRWxl
bWVudChyZWdpb25MaXN0LT5pdGVtKGkpKS0+cmVuZGVyUmVnaW9uKCktPnJlZ2lvbk92ZXJzZXRT
dGF0ZSgpKSB7CisgICAgICAgIGNhc2UgUmVnaW9uRml0OgogICAgICAgICAgICAgcmVnaW9uT3Zl
cnNldCA9IFR5cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbjo6UmVnaW9uT3ZlcnNldDo6Rml0OwogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25FbXB0eToK
KyAgICAgICAgY2FzZSBSZWdpb25FbXB0eToKICAgICAgICAgICAgIHJlZ2lvbk92ZXJzZXQgPSBU
eXBlQnVpbGRlcjo6Q1NTOjpSZWdpb246OlJlZ2lvbk92ZXJzZXQ6OkVtcHR5OwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0OgorICAg
ICAgICBjYXNlIFJlZ2lvbk92ZXJzZXQ6CiAgICAgICAgICAgICByZWdpb25PdmVyc2V0ID0gVHlw
ZUJ1aWxkZXI6OkNTUzo6UmVnaW9uOjpSZWdpb25PdmVyc2V0OjpPdmVyc2V0OwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25VbmRlZmluZWQ6Cisg
ICAgICAgIGNhc2UgUmVnaW9uVW5kZWZpbmVkOgogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZWdpb25PdmVyc2V0U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMjllMzcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlZ2lvbk92ZXJzZXRTdGF0ZS5oCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpZm5kZWYgUmVnaW9uT3ZlcnNldFN0YXRlX2gKKyNkZWZpbmUgUmVnaW9uT3ZlcnNldFN0YXRl
X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFJlZ2lvbk92ZXJzZXRTdGF0ZSB7Cisg
ICAgUmVnaW9uVW5kZWZpbmVkLAorICAgIFJlZ2lvbkVtcHR5LAorICAgIFJlZ2lvbkZpdCwKKyAg
ICBSZWdpb25PdmVyc2V0Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBSZWdpb25PdmVyc2V0U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggOWQ2YTBkOS4uNmUwMTQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC0xODE2LDcgKzE4MTYsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpj
b21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UsIGJvb2wgcmVjb21w
dXRlRgogICAgIGFkZFZpc3VhbE92ZXJmbG93RnJvbVRoZW1lKCk7CiAKICAgICBpZiAoaXNSZW5k
ZXJGbG93VGhyZWFkKCkpCi0gICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+Y29tcHV0
ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKG9sZENsaWVudEFmdGVyRWRnZSk7CisgICAgICAgIHRv
UmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+Y29tcHV0ZU92ZXJzZXRTdGF0ZUZvclJlZ2lvbnMob2xk
Q2xpZW50QWZ0ZXJFZGdlKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6Y2xlYXJMYXlvdXRPdmVy
ZmxvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAK
aW5kZXggNzAyMDhmNi4uOGQzNGU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoKQogICAgIDogUmVuZGVyQmxv
Y2soMCkKKyAgICAsIG1fcHJldmlvdXNSZWdpb25Db3VudCgwKQogICAgICwgbV9hdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxpZGF0ZWQoZmFsc2Up
CiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCh0cnVlKQpAQCAtNTcsNiAr
NTgsNyBAQCBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKCkKICAgICAsIG1fb3Zl
cnNldCh0cnVlKQogICAgICwgbV9oYXNSZWdpb25zV2l0aFN0eWxpbmcoZmFsc2UpCiAgICAgLCBt
X2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoZmFsc2UpCisgICAgLCBtX2Rpc3BhdGNo
UmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGZhbHNlKQogICAgICwgbV9wYWdlTG9naWNhbFNpemVD
aGFuZ2VkKGZhbHNlKQogICAgICwgbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UoZmFsc2UpCiAg
ICAgLCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0KGZhbHNlKQpAQCAtMjE5LDYgKzIyMSw5IEBAIHZv
aWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKIAogICAgIGlmIChzaG91bGREaXNwYXRjaFJl
Z2lvbkxheW91dFVwZGF0ZUV2ZW50KCkpCiAgICAgICAgIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBk
YXRlRXZlbnQoKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkRGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnQoKSkKKyAgICAgICAgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsK
IH0KIAogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMb2dpY2FsV2lkdGgoKQpAQCAtNzM1
LDcgKzc0MCw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6YXBwbHlCcmVha0FmdGVyQ29udGVu
dChMYXlvdXRVbml0IGNsaWVudEhlaWdodCkKICAgICBhZGRGb3JjZWRSZWdpb25CcmVhayhjbGll
bnRIZWlnaHQsIHRoaXMsIGZhbHNlKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Up
Cit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JSZWdpb25zKExh
eW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKQogewogICAgIExheW91dFVuaXQgaGVpZ2h0ID0g
b2xkQ2xpZW50QWZ0ZXJFZGdlOwogCkBAIC03NTMsMjUgKzc1OCwzNCBAQCB2b2lkIFJlbmRlckZs
b3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENs
aWVudEFmdGVyRQogICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwogICAgICAg
ICBMYXlvdXRVbml0IGZsb3dNaW4gPSBoZWlnaHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgpIDogcmVnaW9uLT5mbG93VGhy
ZWFkUG9ydGlvblJlY3QoKS54KCkpOwogICAgICAgICBMYXlvdXRVbml0IGZsb3dNYXggPSBoZWln
aHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRp
b25SZWN0KCkubWF4WSgpIDogcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS5tYXhYKCkp
OwotICAgICAgICBSZW5kZXJSZWdpb246OlJlZ2lvblN0YXRlIHByZXZpb3VzU3RhdGUgPSByZWdp
b24tPnJlZ2lvblN0YXRlKCk7Ci0gICAgICAgIFJlbmRlclJlZ2lvbjo6UmVnaW9uU3RhdGUgc3Rh
dGUgPSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdDsKKyAgICAgICAgUmVnaW9uT3ZlcnNldFN0YXRl
IHByZXZpb3VzU3RhdGUgPSByZWdpb24tPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpOworICAgICAgICBS
ZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUgPSBSZWdpb25GaXQ7CiAgICAgICAgIGlmIChmbG93TWlu
IDw9IDApCi0gICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1wdHk7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbkVtcHR5OwogICAgICAgICBpZiAoZmxvd01heCA+IDAg
JiYgcmVnaW9uID09IGxhc3RSZWcpCi0gICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6
UmVnaW9uT3ZlcnNldDsKLSAgICAgICAgcmVnaW9uLT5zZXRSZWdpb25TdGF0ZShzdGF0ZSk7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbk92ZXJzZXQ7CisgICAgICAgIHJlZ2lvbi0+c2V0UmVn
aW9uT3ZlcnNldFN0YXRlKHN0YXRlKTsKICAgICAgICAgLy8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhl
IE5hbWVkRmxvdyBvYmplY3Qgc2hvdWxkIGRpc3BhdGNoIGEgcmVnaW9uTGF5b3V0VXBkYXRlIGV2
ZW50CiAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgaXQgY2Fubm90IGRldGVybWluZSB3aGV0
aGVyIGEgcmVnaW9uIHdob3NlIHJlZ2lvbk92ZXJzZXQgc3RhdGUgcmVtYWluZWQgZWl0aGVyICJm
aXQiIG9yICJvdmVyc2V0IiBoYXMgYWN0dWFsbHkKICAgICAgICAgLy8gY2hhbmdlZCwgc28gaXQg
anVzdCBhc3N1bWVzIHRoYXQgdGhlIE5hbWVkRmxvdyBzaG91bGQgZGlzcGF0Y2ggdGhlIGV2ZW50
CiAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlCi0gICAgICAgICAgICB8fCBzdGF0
ZSA9PSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdAotICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVu
ZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0KQorICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVnaW9u
Rml0CisgICAgICAgICAgICB8fCBzdGF0ZSA9PSBSZWdpb25PdmVyc2V0KQogICAgICAgICAgICAg
c2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCh0cnVlKTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlKQorICAgICAgICAgICAgc2V0RGlzcGF0Y2hS
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQodHJ1ZSk7CisgICAgfQorICAgIAorICAgIC8vIElmIHRo
ZSBudW1iZXIgb2YgcmVnaW9ucyBoYXMgY2hhbmdlZCBzaW5jZSB3ZSBsYXN0IGNvbXB1dGVkIHRo
ZSBvdmVyc2V0IHByb3BlcnR5LCBzY2hlZHVsZSB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dC4KKyAgICBpZiAocHJldmlvdXNSZWdpb25Db3VudENoYW5nZWQoKSkgeworICAgICAgICBzZXRE
aXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCh0cnVlKTsKKyAgICAgICAgdXBkYXRlUHJl
dmlvdXNSZWdpb25Db3VudCgpOwogICAgIH0KIAogICAgIC8vIFdpdGggdGhlIHJlZ2lvbnMgb3Zl
cmZsb3cgc3RhdGUgY29tcHV0ZWQgd2UgY2FuIGFsc28gc2V0IHRoZSBvdmVyc2V0IGZsYWcgZm9y
IHRoZSBuYW1lZCBmbG93LgogICAgIC8vIElmIHRoZXJlIGFyZSBubyB2YWxpZCByZWdpb25zIGlu
IHRoZSBjaGFpbiwgb3ZlcnNldCBpcyB0cnVlLgotICAgIG1fb3ZlcnNldCA9IGxhc3RSZWcgPyBs
YXN0UmVnLT5yZWdpb25TdGF0ZSgpID09IFJlbmRlclJlZ2lvbjo6UmVnaW9uT3ZlcnNldCA6IHRy
dWU7CisgICAgbV9vdmVyc2V0ID0gbGFzdFJlZyA/IGxhc3RSZWctPnJlZ2lvbk92ZXJzZXRTdGF0
ZSgpID09IFJlZ2lvbk92ZXJzZXQgOiB0cnVlOwogfQogCiBib29sIFJlbmRlckZsb3dUaHJlYWQ6
OnJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVnaW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJl
bmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXgg
MTNiZDcyNi4uZjkxNzY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCkBAIC0xMjcsNiArMTI3LDkgQEAgcHVibGljOgogICAgIFJlbmRlclJlZ2lvbiog
Zmlyc3RSZWdpb24oKSBjb25zdDsKICAgICBSZW5kZXJSZWdpb24qIGxhc3RSZWdpb24oKSBjb25z
dDsKIAorICAgIGJvb2wgcHJldmlvdXNSZWdpb25Db3VudENoYW5nZWQoKSBjb25zdCB7IHJldHVy
biBtX3ByZXZpb3VzUmVnaW9uQ291bnQgIT0gbV9yZWdpb25MaXN0LnNpemUoKTsgfTsKKyAgICB2
b2lkIHVwZGF0ZVByZXZpb3VzUmVnaW9uQ291bnQoKSB7IG1fcHJldmlvdXNSZWdpb25Db3VudCA9
IG1fcmVnaW9uTGlzdC5zaXplKCk7IH07CisKICAgICB2b2lkIHNldFJlZ2lvblJhbmdlRm9yQm94
KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0
UGFnZSk7CiAgICAgdm9pZCBnZXRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gqLCBS
ZW5kZXJSZWdpb24qJiBzdGFydFJlZ2lvbiwgUmVuZGVyUmVnaW9uKiYgZW5kUmVnaW9uKSBjb25z
dDsKIApAQCAtMTM0LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgUmVuZGVyUmVn
aW9uKiBvbGRTdGFydFJlZ2lvbiA9IDAsIGNvbnN0IFJlbmRlclJlZ2lvbiogb2xkRW5kUmVnaW9u
ID0gMCwKICAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBuZXdTdGFydFJlZ2lvbiA9IDAsIGNv
bnN0IFJlbmRlclJlZ2lvbiogbmV3RW5kUmVnaW9uID0gMCk7CiAgICAgCi0gICAgdm9pZCBjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Up
OworICAgIHZvaWQgY29tcHV0ZU92ZXJzZXRTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRD
bGllbnRBZnRlckVkZ2UpOwogCiAgICAgYm9vbCBvdmVyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9v
dmVyc2V0OyB9CiAKQEAgLTE4Nyw4ICsxOTAsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0
RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChib29sIHZhbHVlKSB7IG1fZGlzcGF0Y2hS
ZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IHZhbHVlOyB9CiAgICAgYm9vbCBzaG91bGREaXNwYXRj
aFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgeyByZXR1cm4gbV9kaXNwYXRjaFJlZ2lvbkxheW91
dFVwZGF0ZUV2ZW50OyB9CiAgICAgCisgICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudChib29sIHZhbHVlKSB7IG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZl
bnQgPSB2YWx1ZTsgfQorICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdl
RXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50
OyB9CisgICAgCiAgICAgLy8gT3ZlcnJpZGUgaWYgdGhlIGZsb3cgdGhyZWFkIGltcGxlbWVudGF0
aW9uIHN1cHBvcnRzIGRpc3BhdGNoaW5nIGV2ZW50cyB3aGVuIHRoZSBmbG93IGxheW91dCBpcyB1
cGRhdGVkIChlLmcuIGZvciBuYW1lZCBmbG93cykKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hS
ZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50ID0gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnQoKSB7IG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQgPSBmYWxzZTsg
fQogCiAgICAgdm9pZCBpbml0aWFsaXplUmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWln
aHQoUmVuZGVyUmVnaW9uKiA9IDApOwogCkBAIC0yMDIsNiArMjA5LDcgQEAgcHJvdGVjdGVkOgog
ICAgIGlubGluZSBjb25zdCBSZW5kZXJCb3gqIGN1cnJlbnRBY3RpdmVSZW5kZXJCb3goKSBjb25z
dDsKIAogICAgIFJlbmRlclJlZ2lvbkxpc3QgbV9yZWdpb25MaXN0OworICAgIHVuc2lnbmVkIHNo
b3J0IG1fcHJldmlvdXNSZWdpb25Db3VudDsKIAogICAgIGNsYXNzIFJlbmRlclJlZ2lvblJhbmdl
IHsKICAgICBwdWJsaWM6CkBAIC0yNzQsNiArMjgyLDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wg
bV9vdmVyc2V0IDogMTsKICAgICBib29sIG1faGFzUmVnaW9uc1dpdGhTdHlsaW5nIDogMTsKICAg
ICBib29sIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA6IDE7CisgICAgYm9vbCBt
X2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50IDogMTsKICAgICBib29sIG1fcGFnZUxv
Z2ljYWxTaXplQ2hhbmdlZCA6IDE7CiAgICAgYm9vbCBtX2luQ29uc3RyYWluZWRMYXlvdXRQaGFz
ZSA6IDE7CiAgICAgYm9vbCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0IDogMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggMTUy
Y2RmOC4uMWZjZDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkKiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCogZG9j
dW1lbnQKIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6UmVuZGVyTmFtZWRGbG93VGhyZWFkKFBhc3NS
ZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBuYW1lZEZsb3cpCiAgICAgOiBtX25hbWVkRmxvdyhuYW1l
ZEZsb3cpCiAgICAgLCBtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXIodGhpcywgJlJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKQorICAg
ICwgbV9yZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lcih0aGlzLCAmUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpyZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lckZpcmVkKQogewogfQogCkBAIC00
MjcsNiArNDI4LDE0IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lv
bkxheW91dFVwZGF0ZUV2ZW50KCkKICAgICAgICAgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRp
c3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkKK3sKKyAgICBSZW5kZXJGbG93VGhyZWFk
OjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOworICAgIAorICAgIGlmICghbV9y
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lci5pc0FjdGl2ZSgpICYmIG1fbmFtZWRGbG93LT5o
YXNFdmVudExpc3RlbmVycygpKQorICAgICAgICBtX3JlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwogdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJl
Z2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ+KikKIHsKICAgICBBU1NFUlQobV9uYW1lZEZsb3cpOwpAQCAtNDM0LDYgKzQ0MywxMyBAQCB2
b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZp
cmVkKFRpbWVyPFJlbmRlck5hbWVkRgogICAgIG1fbmFtZWRGbG93LT5kaXNwYXRjaFJlZ2lvbkxh
eW91dFVwZGF0ZUV2ZW50KCk7CiB9CiAKK3ZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZWdp
b25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlck5hbWVkRmxvd1RocmVh
ZD4qKQoreworICAgIEFTU0VSVChtX25hbWVkRmxvdyk7CisgICAgCisgICAgbV9uYW1lZEZsb3ct
PmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCk7Cit9CisKIHZvaWQgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkOjpzZXRNYXJrRm9yRGVzdHJ1Y3Rpb24oKQogewogICAgIGlmIChtX25hbWVk
Rmxvdy0+Zmxvd1N0YXRlKCkgPT0gV2ViS2l0TmFtZWRGbG93OjpGbG93U3RhdGVOdWxsKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4
IDNkM2E3NjYuLjE1MDJiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTmFtZWRGbG93VGhyZWFkLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqKSBjb25z
dCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0
ZUV2ZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9uT3ZlcnNl
dENoYW5nZUV2ZW50KCkgT1ZFUlJJREU7CiAKICAgICBib29sIGRlcGVuZHNPbihSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQqIG90aGVyUmVuZGVyRmxvd1RocmVhZCkgY29uc3Q7CiAgICAgdm9pZCBhZGRE
ZXBlbmRlbmN5T25GbG93VGhyZWFkKFJlbmRlck5hbWVkRmxvd1RocmVhZCopOwpAQCAtOTgsNiAr
OTksNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5CZURlc3Ryb3llZCgpIGNvbnN0IHsgcmV0
dXJuIG1faW52YWxpZFJlZ2lvbkxpc3QuaXNFbXB0eSgpICYmIG1fcmVnaW9uTGlzdC5pc0VtcHR5
KCkgJiYgbV9jb250ZW50Tm9kZXMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCByZWdpb25MYXlvdXRV
cGRhdGVFdmVudFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiopOworICAg
IHZvaWQgcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ+Kik7CiAgICAgdm9pZCBjbGVhckNvbnRlbnROb2RlcygpOwogCiBwcml2YXRl
OgpAQCAtMTIzLDYgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYktpdE5hbWVkRmxv
dz4gbV9uYW1lZEZsb3c7CiAKICAgICBUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJlYWQ+IG1fcmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lcjsKKyAgICBUaW1lcjxSZW5kZXJOYW1lZEZsb3dUaHJl
YWQ+IG1fcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXI7CiB9OwogCiBpbmxpbmUgUmVuZGVy
TmFtZWRGbG93VGhyZWFkKiB0b1JlbmRlck5hbWVkRmxvd1RocmVhZChSZW5kZXJPYmplY3QqIG9i
amVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggOGU5
Mzk0NS4uNDBkMjY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5j
cHAKQEAgLTU0LDcgKzU0LDYgQEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oRWxlbWVudCog
ZWxlbWVudCwgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKICAgICAsIG1faXNWYWxpZChm
YWxzZSkKICAgICAsIG1faGFzQ3VzdG9tUmVnaW9uU3R5bGUoZmFsc2UpCiAgICAgLCBtX2hhc0F1
dG9Mb2dpY2FsSGVpZ2h0KGZhbHNlKQotICAgICwgbV9yZWdpb25TdGF0ZShSZWdpb25VbmRlZmlu
ZWQpCiB7CiB9CiAKQEAgLTEzMiw2ICsxMzEsMjAgQEAgTGF5b3V0UmVjdCBSZW5kZXJSZWdpb246
Om92ZXJmbG93UmVjdEZvckZsb3dUaHJlYWRQb3J0aW9uKGNvbnN0IExheW91dFJlY3QmIGZsb3cK
ICAgICByZXR1cm4gY2xpcFJlY3Q7CiB9CiAKK1JlZ2lvbk92ZXJzZXRTdGF0ZSBSZW5kZXJSZWdp
b246OnJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKGlzVmFsaWQoKSAmJiBu
b2RlKCkgJiYgbm9kZSgpLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiB0b0VsZW1l
bnQobm9kZSgpKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCk7CisgICAgCisgICAgcmV0dXJuIFJlZ2lv
blVuZGVmaW5lZDsKK30KKwordm9pZCBSZW5kZXJSZWdpb246OnNldFJlZ2lvbk92ZXJzZXRTdGF0
ZShSZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG5vZGUoKSAmJiBub2RlKCkt
PmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgdG9FbGVtZW50KG5vZGUoKSktPnNldFJlZ2lvbk92
ZXJzZXRTdGF0ZShzdGF0ZSk7Cit9CisKIExheW91dFVuaXQgUmVuZGVyUmVnaW9uOjpwYWdlTG9n
aWNhbFRvcEZvck9mZnNldChMYXlvdXRVbml0IC8qIG9mZnNldCAqLykgY29uc3QKIHsKICAgICBy
ZXR1cm4gZmxvd1RocmVhZCgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZmxvd1RocmVh
ZFBvcnRpb25SZWN0KCkueSgpIDogZmxvd1RocmVhZFBvcnRpb25SZWN0KCkueCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDQ0ZjgwMTguLmY4Y2I4YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTgyLDE1ICs4Miw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJPYmplY3RTdHlsZUluUmVnaW9uKGNvbnN0IFJlbmRl
ck9iamVjdCopOwogCi0gICAgZW51bSBSZWdpb25TdGF0ZSB7Ci0gICAgICAgIFJlZ2lvblVuZGVm
aW5lZCwKLSAgICAgICAgUmVnaW9uRW1wdHksCi0gICAgICAgIFJlZ2lvbkZpdCwKLSAgICAgICAg
UmVnaW9uT3ZlcnNldAotICAgIH07Ci0KLSAgICBSZWdpb25TdGF0ZSByZWdpb25TdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIGlzVmFsaWQoKSA/IG1fcmVnaW9uU3RhdGUgOiBSZWdpb25VbmRlZmluZWQ7
IH0KLSAgICB2b2lkIHNldFJlZ2lvblN0YXRlKFJlZ2lvblN0YXRlIHJlZ2lvblN0YXRlKSB7IG1f
cmVnaW9uU3RhdGUgPSByZWdpb25TdGF0ZTsgfQorICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSByZWdp
b25PdmVyc2V0U3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldFJlZ2lvbk92ZXJzZXRTdGF0ZShS
ZWdpb25PdmVyc2V0U3RhdGUpOwogICAgIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgcmVwcmVzZW50
IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIGEgInBhZ2UiIGFuZCBmb3IgYSBSZW5kZXJSZWdpb24g
dGhleSBhcmUganVzdCB0aGUKICAgICAvLyBjb250ZW50IHdpZHRoIGFuZCBjb250ZW50IGhlaWdo
dCBvZiBhIHJlZ2lvbi4gRm9yIFJlbmRlclJlZ2lvblNldHMsIGhvd2V2ZXIsIHRoZXkgd2lsbCBi
ZSB0aGUgd2lkdGggYW5kCkBAIC0yMDAsNyArMTkzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aXNWYWxpZCA6IDE7CiAgICAgYm9vbCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlIDogMTsKICAgICBi
b29sIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgOiAxOwotICAgIFJlZ2lvblN0YXRlIG1fcmVnaW9u
U3RhdGU7CiB9OwogCiBpbmxpbmUgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJlZ2lvbihSZW5kZXJP
YmplY3QqIG9iamVjdCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>