<?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>186441</bug_id>
          
          <creation_ts>2018-06-08 13:12:56 -0700</creation_ts>
          <short_desc>http/tests/security/cors-post-redirect-307.html fails with PSON enabled</short_desc>
          <delta_ts>2018-06-13 16:30:37 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=184142</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>186542</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1431370</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 13:12:56 -0700</bug_when>
    <thetext>http/tests/security/cors-post-redirect-307.html and http/tests/security/cors-post-redirect-308.html fail with PSON enabled:
--- /Volumes/Data/WebKit/OpenSource/WebKitBuild/Release/layout-test-results/http/tests/security/cors-post-redirect-307-expected.txt
+++ /Volumes/Data/WebKit/OpenSource/WebKitBuild/Release/layout-test-results/http/tests/security/cors-post-redirect-307-actual.txt
@@ -1 +1 @@
-There was no origin header
+Origin header value: null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431372</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 13:15:45 -0700</bug_when>
    <thetext>Looks like a legit bug in our PSON implementation. The Origin header should not be present on cross-origin redirect requests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431374</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 13:19:00 -0700</bug_when>
    <thetext>The origin gets cleared in NetworkDataTaskCocoa::willPerformHTTPRedirection() but I suspect we add the header back later on in the case where we decide to do the redirect load in a new process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431390</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 13:45:58 -0700</bug_when>
    <thetext>It is added later on by this code:
    if (origin.isEmpty()) {
        // If we don&apos;t know what origin header to attach, we attach the value
        // for an empty origin.
        request.setHTTPOrigin(SecurityOrigin::createUnique()-&gt;toString());
        return;
    }

in FrameLoader::addHTTPOriginIfNeeded().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431417</commentid>
    <comment_count>4</comment_count>
      <attachid>342325</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 14:12:54 -0700</bug_when>
    <thetext>Created attachment 342325
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431425</commentid>
    <comment_count>5</comment_count>
      <attachid>342330</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 14:24:35 -0700</bug_when>
    <thetext>Created attachment 342330
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431434</commentid>
    <comment_count>6</comment_count>
      <attachid>342332</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 14:30:06 -0700</bug_when>
    <thetext>Created attachment 342332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431453</commentid>
    <comment_count>7</comment_count>
      <attachid>342332</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-06-08 15:20:55 -0700</bug_when>
    <thetext>Comment on attachment 342332
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:-2835
&gt; -    if (origin.isEmpty()) {

This code was intentionally added and a reason was given in the comment above. Please read through the comments on  &lt;https://bugs.webkit.org/show_bug.cgi?id=20792&gt; and ensure we are not breaking anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431455</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-06-08 15:23:02 -0700</bug_when>
    <thetext>Obviously think about WebKit legacy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431495</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-08 16:56:11 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #7)
&gt; Comment on attachment 342332 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=342332&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:-2835
&gt; &gt; -    if (origin.isEmpty()) {
&gt; 
&gt; This code was intentionally added and a reason was given in the comment
&gt; above. Please read through the comments on 
&gt; &lt;https://bugs.webkit.org/show_bug.cgi?id=20792&gt; and ensure we are not
&gt; breaking anything.

Yes, I suspected this was not OK. Still uploaded it without review flag before my lab to see which tests would fail. If this is important behavior, it is sad there is no test coverage for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431931</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-11 09:55:23 -0700</bug_when>
    <thetext>I have a proper fix, will upload shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432004</commentid>
    <comment_count>11</comment_count>
      <attachid>342454</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-11 12:32:52 -0700</bug_when>
    <thetext>Created attachment 342454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432033</commentid>
    <comment_count>12</comment_count>
      <attachid>342454</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-11 13:44:18 -0700</bug_when>
    <thetext>Comment on attachment 342454
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:2839
&gt; +        WTFReportBacktrace();

Probably to be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432035</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-11 13:49:21 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #12)
&gt; Comment on attachment 342454 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=342454&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:2839
&gt; &gt; +        WTFReportBacktrace();
&gt; 
&gt; Probably to be removed.

LoL XD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432036</commentid>
    <comment_count>14</comment_count>
      <attachid>342461</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-11 13:50:38 -0700</bug_when>
    <thetext>Created attachment 342461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432037</commentid>
    <comment_count>15</comment_count>
      <attachid>342461</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-11 13:52:36 -0700</bug_when>
    <thetext>Comment on attachment 342461
Patch

Clearing flags on attachment: 342461

Committed r232730: &lt;https://trac.webkit.org/changeset/232730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432038</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-11 13:52:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432039</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-11 13:53:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/41018447&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342325</attachid>
            <date>2018-06-08 14:12:54 -0700</date>
            <delta_ts>2018-06-08 14:24:35 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>186441_wip.patch</filename>
            <type>text/plain</type>
            <size>744</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDNmYjRmMjgwZmEwLi4yNzYw
MThhMmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yODMyLDEy
ICsyODMyLDE0IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYKICAgICAvLyBGb3Igbm9uLUdFVCBh
bmQgbm9uLUhFQUQgbWV0aG9kcywgYWx3YXlzIHNlbmQgYW4gT3JpZ2luIGhlYWRlciBzbyB0aGUK
ICAgICAvLyBzZXJ2ZXIga25vd3Mgd2Ugc3VwcG9ydCB0aGlzIGZlYXR1cmUuCiAKKyNpZiAwCiAg
ICAgaWYgKG9yaWdpbi5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gSWYgd2UgZG9uJ3Qga25vdyB3
aGF0IG9yaWdpbiBoZWFkZXIgdG8gYXR0YWNoLCB3ZSBhdHRhY2ggdGhlIHZhbHVlCiAgICAgICAg
IC8vIGZvciBhbiBlbXB0eSBvcmlnaW4uCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdpbihT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCktPnRvU3RyaW5nKCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorI2VuZGlmCiAKICAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4ob3JpZ2luKTsK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342330</attachid>
            <date>2018-06-08 14:24:35 -0700</date>
            <delta_ts>2018-06-08 14:30:04 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>186441_wip.patch</filename>
            <type>text/plain</type>
            <size>2017</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJl
ZGlyZWN0LTMwNy1wc29uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwNy1wc29uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWFjMWE3NmM0Y2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0z
MDctcHNvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGhlcmUgd2FzIG5vIG9yaWdpbiBo
ZWFkZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1w
b3N0LXJlZGlyZWN0LTMwNy1wc29uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDctcHNvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4xMzNmZjc1YzVhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwNy1wc29uLmh0
bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbj10cnVlIF0gLS0+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisKK1RoaXMgdGVzdCBpcyBkZXNpZ25lZCB0byB3b3JrIG9ubHkgd2hlbiBs
b2FkZWQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwMDAKKworPGZvcm0gaWQ9J3Rlc3RGb3JtJyBt
ZXRob2Q9J1BPU1QnPgorPGlucHV0IGlkPSdyZWRpcmNvZGUnIHR5cGU9J2hpZGRlbicgbmFtZT0n
cmVkaXJjb2RlJyB2YWx1ZT0nMzA3Jz4KKzwvZm9ybT4KKworPHNjcmlwdD4KKwordmFyIGZvcm0g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdEZvcm0nKTsKK2Zvcm0uYWN0aW9uID0gIi9y
ZXNvdXJjZXMvcmVkaXJlY3QucGhwP2NvZGU9MzA3JnVybD1odHRwOi8vbG9jYWxob3N0OjgwMDAv
c2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMtcG9zdC1yZWRpcmVjdC10YXJnZXQucGhwIjsKK2Zvcm0u
c3VibWl0KCk7CisgCis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IDNmYjRmMjgwZmEwLi5mM2RjNGViZDc2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yODMyLDEzICsyODMyLDYgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU3RyaW5nJgogICAgIC8vIEZvciBub24tR0VUIGFuZCBub24tSEVBRCBtZXRob2RzLCBhbHdh
eXMgc2VuZCBhbiBPcmlnaW4gaGVhZGVyIHNvIHRoZQogICAgIC8vIHNlcnZlciBrbm93cyB3ZSBz
dXBwb3J0IHRoaXMgZmVhdHVyZS4KIAotICAgIGlmIChvcmlnaW4uaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIC8vIElmIHdlIGRvbid0IGtub3cgd2hhdCBvcmlnaW4gaGVhZGVyIHRvIGF0dGFjaCwgd2Ug
YXR0YWNoIHRoZSB2YWx1ZQotICAgICAgICAvLyBmb3IgYW4gZW1wdHkgb3JpZ2luLgotICAgICAg
ICByZXF1ZXN0LnNldEhUVFBPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpLT50
b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIHJlcXVlc3Quc2V0SFRU
UE9yaWdpbihvcmlnaW4pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342332</attachid>
            <date>2018-06-08 14:30:06 -0700</date>
            <delta_ts>2018-06-11 09:55:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186441-20180608143005.patch</filename>
            <type>text/plain</type>
            <size>3997</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRmMzBhOWYyNjY0ODU1
YTEyYjkzZGVmYTdjNWRkODRkNWY5ZGZhYi4uZGUxNDc5ZTI2NGNhNDc2YTVjNDU2OTgwYzFjNjQz
MGJhNzZiMDYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA2LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3Lmh0bWwgZmFpbHMgd2l0aCBQU09OIGVuYWJsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQ0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgYWRkaW5n
IGEgIm51bGwiIE9yaWdpbiBoZWFkZXIgb24gUE9TVCByZXF1ZXN0cyBpbiB0aGUgY2FzZSB3aGVy
ZQorICAgICAgICB3ZSBkbyBub3Qga25vdyB0aGUgb3JpZ2luLiBUaGlzIHdhcyBpbmNvcnJlY3Rs
eSBhZGRpbmcgYW4gT3JpZ2luIGhlYWRlcgorICAgICAgICBpbiB0aGUgY2FzZSB3aGVyZSBhIFBP
U1QgcmVxdWVzdCB3b3VsZCBnZXQgcmVkaXJlY3RlZCBjcm9zcy1vcmlnaW4gYW5kCisgICAgICAg
IHN3YXAgcHJvY2Vzcy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMt
cG9zdC1yZWRpcmVjdC0zMDctcHNvbi5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5l
ZWRlZCk6CisKIDIwMTgtMDYtMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CiAKICAgICAgICAgW1dURl0gQWRkIFdvcmtlclBvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDNmYjRmMjgwZmEwNmU4MGM2M2Q1NDk0Nzg3ODJjNDM1N2JiNTQ5
YjcuLmYzZGM0ZWJkNzZlZjMzZGQ3MzAzYmM2MzRlZDkxOGFlYWY5Mjc2ODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjgzMiwxMyArMjgzMiw2IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYKICAgICAvLyBGb3Igbm9uLUdFVCBhbmQgbm9uLUhFQUQgbWV0aG9kcywg
YWx3YXlzIHNlbmQgYW4gT3JpZ2luIGhlYWRlciBzbyB0aGUKICAgICAvLyBzZXJ2ZXIga25vd3Mg
d2Ugc3VwcG9ydCB0aGlzIGZlYXR1cmUuCiAKLSAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkgewot
ICAgICAgICAvLyBJZiB3ZSBkb24ndCBrbm93IHdoYXQgb3JpZ2luIGhlYWRlciB0byBhdHRhY2gs
IHdlIGF0dGFjaCB0aGUgdmFsdWUKLSAgICAgICAgLy8gZm9yIGFuIGVtcHR5IG9yaWdpbi4KLSAg
ICAgICAgcmVxdWVzdC5zZXRIVFRQT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUo
KS0+dG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICByZXF1ZXN0LnNl
dEhUVFBPcmlnaW4ob3JpZ2luKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0ZDQwOWFmZDliYTE1ZTQ0MWI2Mjlj
YTA3NDIzY2Q3NDI0NTI2MmYuLjViMDQxNjE0MTc2MzcxY2YyMTliY2JkNzQyMjM3Njg5NjI4NzQ4
NjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNi0wOCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJl
ZGlyZWN0LTMwNy5odG1sIGZhaWxzIHdpdGggUFNPTiBlbmFibGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0NDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2Uu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDct
cHNvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29ycy1wb3N0LXJlZGlyZWN0LTMwNy1wc29uLmh0bWw6IEFkZGVkLgorCiAyMDE4LTA2LTA3ICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmhhbmNlIHJ1bi1qc2Mt
c3RyZXNzLXRlc3RzIHRvIGFsbG93IGEgdGVzdCB0byBzcGVjaWZ5IHRlc3Qgc3BlY2lmaWMgb3B0
aW9ucyByZXF1aXJlZCBmb3IgaXQgdG8gcnVuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3LXBzb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3
LXBzb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhYzFhNzZjNGNlMTA2Nzg2ODhhMmM1MWVk
ZTU0MmQ1ZmI4YjljYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDctcHNvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorVGhlcmUgd2FzIG5vIG9yaWdpbiBoZWFkZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwNy1wc29uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDct
cHNvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzM2ZmNzVjNWE0ODQ1MWE2NGFmYmQwMDQ4NWQ1MGRkZmI1
OGMxMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDctcHNvbi5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb249dHJ1ZSBdIC0tPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCitUaGlzIHRlc3Qg
aXMgZGVzaWduZWQgdG8gd29yayBvbmx5IHdoZW4gbG9hZGVkIGZyb20gaHR0cDovLzEyNy4wLjAu
MTo4MDAwCisKKzxmb3JtIGlkPSd0ZXN0Rm9ybScgbWV0aG9kPSdQT1NUJz4KKzxpbnB1dCBpZD0n
cmVkaXJjb2RlJyB0eXBlPSdoaWRkZW4nIG5hbWU9J3JlZGlyY29kZScgdmFsdWU9JzMwNyc+Cis8
L2Zvcm0+CisKKzxzY3JpcHQ+CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3RGb3JtJyk7Citmb3JtLmFjdGlvbiA9ICIvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9jb2Rl
PTMwNyZ1cmw9aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXBv
c3QtcmVkaXJlY3QtdGFyZ2V0LnBocCI7Citmb3JtLnN1Ym1pdCgpOworIAorPC9zY3JpcHQ+Cis8
L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342454</attachid>
            <date>2018-06-11 12:32:52 -0700</date>
            <delta_ts>2018-06-11 13:50:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186441-20180611123251.patch</filename>
            <type>text/plain</type>
            <size>59167</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU3ZjAxYWIyYzBlYTFh
OTY3YjY5ODg2MzI5NWYxMDk2YzUwNGQzZC4uMzI1OWMwYzAxMWM4MGQ3ODRmYTdhMDFlYWU3YzAx
NDJkZDFhY2M3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTA2LTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3Lmh0bWwgZmFpbHMgd2l0aCBQU09OIGVuYWJsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQ0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gd2UgYXJl
IGNvbnRpbnVpbmcgYSBsb2FkIGluIGEgbmV3IHByb2Nlc3MsIHdlIGN1cnJlbnRseSBieXBhc3Mg
dGhlIG5hdmlnYXRpb24gcG9saWN5CisgICAgICAgIGNoZWNrLiBXZSBub3cgYWxzbyBieXBhc3Mg
dGhlIGFkZGluZyBvZiBoZWFkZXJzIHN1Y2ggYXMgdGhlIE9yaWdpbiBvbmUgc2luY2UgdGhlIHJl
cXVlc3QKKyAgICAgICAgd2FzIGFscmVhZHkgcHJvY2Vzc2VkIGluIHRoZSBwcmV2aW91cyBwcm9j
ZXNzLiBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIGluIHRoZSBjYXNlIG9mCisgICAgICAgIGEg
Y3Jvc3Mtb3JpZ2luIHJlZGlyZWN0LCB0aGUgcHJldmlvdXMgcHJvY2VzcyBoYXMgcmVtb3ZlZCB0
aGUgT3JpZ2luIGhlYWRlciBmcm9tIHRoZQorICAgICAgICByZXF1ZXN0IGFuZCB3ZSBkbyBub3Qg
d2FudCB0aGUgbmV3IHByb2Nlc3MgdG8gYWRkIGl0IGFnYWluLgorCisgICAgICAgIFRlc3Q6IGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwNy1wc29uLmh0bWwKKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoaXN0
b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9y
d2FyZENvbnRyb2xsZXI6OmdvQmFja09yRm9yd2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNr
Rm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjayk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2Fy
ZENvbnRyb2xsZXI6OmdvRm9yd2FyZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZFJlcXVl
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0Ojpz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkUmVxdWVzdDo6c2V0U2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNob3VsZENoZWNrTmF2aWdhdGlv
blBvbGljeSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6YWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6bG9hZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJldHJ5
QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVHb1RvSXRlbSk6CisgICAgICAg
ICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmg6CisgICAgICAgICogbG9hZGVyL1Nob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25Qb2xpY3lDaGVjay5oLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpnb1RvSXRlbSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisK
IDIwMTgtMDYtMTEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TEZDXSBSZW1vdmUgcmVkdW5kYW50IHBvc2l0aW9uIGZ1bmN0aW9ucyBmb3Igb3V0LW9mLWZsb3cg
ZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjFhZmQxNjkyNGM3ZmVlNDZjMjA0NzU5ZWQxMDc1NjczZTA3
Yjk4ZC4uNDI5MjcyN2Y5Y2Q0ZDBkNmRjYzVlN2E0NGNjMTkxZWY5MzA5ZjE0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMSBAQAorMjAxOC0wNi0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMw
Ny5odG1sIGZhaWxzIHdpdGggUFNPTiBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgZXhpc3RpbmcgZmxhZyB0byBzb21ldGhpbmcg
YSBiaXQgbW9yZSBnZW5lcmljLCBub3cgdGhhdCBpdCBpcyB1c2VkIGZvcgorICAgICAgICBtb3Jl
IHRoaW5ncyB0aGFuIGJ5cGFzc2luZyB0aGUgbmF2aWdhdGlvbiBwb2xpY3kgY2hlY2suCisKKyAg
ICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2Fk
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NGb3JSZWxvYWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOC0wNi0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHJ1biBydW4g
amF2YXNjcmlwdCBmcm9tIGEgV2ViS2l0V2ViVmlldyBpbiBhbiBpc29sYXRlZCB3b3JsZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDQyMDVlYTNhMzZiMjAyMTdkNGJhNDg3Yjg3MzE3
NmNmZTYyYjQ3MWEuLmQxMjY3NTU5YTMwYmE5ZjUwZGMwYjQ0YTEwMTFmMWQ5NTM3NDM3OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNi0xMSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwNy5odG1sIGZhaWxzIHdpdGggUFNPTiBlbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0NDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
ZXhpc3RpbmcgZmxhZyB0byBzb21ldGhpbmcgYSBiaXQgbW9yZSBnZW5lcmljLCBub3cgdGhhdCBp
dCBpcyB1c2VkIGZvcgorICAgICAgICBtb3JlIHRoaW5ncyB0aGFuIGJ5cGFzc2luZyB0aGUgbmF2
aWdhdGlvbiBwb2xpY3kgY2hlY2suCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlZpZXcgX2xvYWRCYWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3Ol0pOgor
ICAgICAgICAoLVtXZWJWaWV3IGdvVG9CYWNrRm9yd2FyZEl0ZW06XSk6CisKIDIwMTgtMDYtMDkg
IERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNvZGVdIENsZWFu
IHVwIGFuZCBtb2Rlcm5pemUgc29tZSBidWlsZCBzZXR0aW5nIGRlZmluaXRpb25zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggOGQyZTZjOTUxOWQ1NjQ2OWU5NWRjMzNkYzhkYjM5MTIw
YjBhMjBjMS4uM2NhMjQ1ZDg2MDk3Mjc4MDg3MTgwZGYwNmFjZDcwZGJlOWFiNjQ1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTA2LTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3Lmh0bWwgZmFpbHMgd2l0aCBQU09OIGVuYWJsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQ0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBleGlz
dGluZyBmbGFnIHRvIHNvbWV0aGluZyBhIGJpdCBtb3JlIGdlbmVyaWMsIG5vdyB0aGF0IGl0IGlz
IHVzZWQgZm9yCisgICAgICAgIG1vcmUgdGhpbmdzIHRoYW4gYnlwYXNzaW5nIHRoZSBuYXZpZ2F0
aW9uIHBvbGljeSBjaGVjay4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2Vi
Vmlldzo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJWaWV3Ojpsb2FkQmFja0Zv
cndhcmRMaXN0RnJvbU90aGVyVmlldyk6CisKIDIwMTgtMDYtMDQgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgIkNyb3NzLU9yaWdpbi1PcHRpb25zIiBI
VFRQIGhlYWRlciB0byAiQ3Jvc3MtT3JpZ2luLVdpbmRvdy1Qb2xpY3kiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmRmMmMyNmQw
MWYxYmI5MmE1ZjgwY2U5MDc0NTA3Yzk4MTVlMzdiMC4uZTU3OGY2NDRiZTY1YTFhNzA5MTQ4NTg0
N2FmYjY4ZGQ5ZDlhMjUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM3Miw3ICsxMzcyLDYgQEAKIAkJNTEwRDRBMzcxMDMx
NjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNv
Y2tldFN0cmVhbUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTEwRkNG
QzFFMDM2NDFEMDA2RjhEMEIgLyogSURCQ3Vyc29yUmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwRkNGQjFFMDM2MkE1MDA2RjhEMEIgLyog
SURCQ3Vyc29yUmVjb3JkLmggKi87IH07Ci0JCTUxMUU5N0EzMjA2MzA3NDYwMEFENDU5OSAvKiBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5
Q2hlY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUMxMjYxQzUwQUE1NzAw
MzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCAqLzsgfTsKIAkJNTExRUMxMkMxQzUwQUJCRjAw
MzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyQTFDNTBBQkJBMDAzMkY5ODMgLyogU1FMaXRl
SURCVHJhbnNhY3Rpb24uaCAqLzsgfTsKIAkJNTExRUMxMzAxQzUwQUJGNTAwMzJGOTgzIC8qIFNR
TGl0ZUlEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExRUMxMkUxQzUwQUJFQzAwMzJGOTgzIC8qIFNRTGl0ZUlEQkN1cnNvci5oICovOyB9
OwpAQCAtMjMzNSw2ICsyMzM0LDcgQEAKIAkJODM1RDJENzgxRjVGMUZCRDAwMTQxREVEIC8qIEhU
TUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzVEMkQ3NTFGNUYxRkI4MDAxNDFERUQgLyogSFRNTElucHV0RWxl
bWVudEVudHJpZXNBUEkuaCAqLzsgfTsKIAkJODM1RDM2MzcxOUZGNjE5MzAwNEM5M0FCIC8qIFN0
eWxlQnVpbGRlckN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM1RDM2MzYxOUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5o
ICovOyB9OwogCQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVENTRDMjFG
NERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmggKi87IH07CisJCTgzNjJFOEMxMjBD
RUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjJFOEJGMjBDRUY5Q0IwMDI0
NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzY1ODlERTFGNTRBNzY5MDBEQzMxRjQg
LyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzY1ODlEOTFGNTRBNzYyMDBEQzMxRjQgLyogSlNGaWxl
U3lzdGVtRGlyZWN0b3J5UmVhZGVyLmggKi87IH07CiAJCTgzNjU4OUUwMUY1NEE3NkUwMERDMzFG
NCAvKiBKU0ZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjU4OUQ4MUY1NEE3NjIwMERDMzFGNCAvKiBKU0Zp
bGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCAqLzsgfTsKIAkJODM2NzU4N0YxQzU2RTk5QjAwOEEx
MDg3IC8qIEpTSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBODFDNTZFOTNFMDBGM0YwRTMgLyogSlNIVE1MRGF0YUVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTc4MTUsNyArNzgxNSw2IEBACiAJCTUxMEQ0QTMxMTAzMTY1RUUw
MDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZG
OEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCQ3Vyc29yUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMUU5
N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdGlvblBvbGljeUNoZWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJp
YWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNl
cmlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFD
NTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJREJTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2Fj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05ODM5LDYgKzk4MzgsNyBA
QAogCQk4MzVENTRDMTFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVMaXN0Q3JlYXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUQ1NEMyMUY0REU1MzQwMEU2MDY3MSAvKiBG
aWxlTGlzdENyZWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZUxp
c3RDcmVhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUY4QjI2MUQyRDkw
QkEwMEU0MDhFQyAvKiBTbG90YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2xvdGFi
bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzYyRThCRjIwQ0VGOUNCMDAy
NDU4ODYgLyogU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzY1ODlEODFGNTRBNzYyMDBEQzMxRjQgLyogSlNGaWxlU3lz
dGVtRW50cmllc0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzY1ODlEOTFGNTRBNzYyMDBEQzMxRjQgLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsZVN5c3RlbURpcmVjdG9y
eVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzY1ODlEQTFGNTRBNzYy
MDBEQzMxRjQgLyogSlNGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDIzMSw3ICsyNDIzMSw2IEBACiAJCQkJ
OTNDQ0YwNUYwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJ
CTkzQ0NGMDI2MEFGNkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJ
OUJBODI3NzgxRjA2MTU2NTAwRjcxRTc1IC8qIE5hdmlnYXRpb25EaXNhYmxlci5oICovLAotCQkJ
CTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLywK
IAkJCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAg
Ki8sCiAJCQkJOTc5RjQzRDIxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIu
aCAqLywKIAkJCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXIuY3BwICovLApAQCAtMjQyNjMsNiArMjQyNjIsNyBAQAogCQkJCUNCQzJEMjJFMUNF
NUI3N0QwMEQxODgwQiAvKiBSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmggKi8sCiAJCQkJMjg2
RTREQ0IyMDIxMDQ4ODAwMzE1MjM4IC8qIFNlcnZlclRpbWluZy5jcHAgKi8sCiAJCQkJMjg2RTRE
Q0MyMDIxMDQ4ODAwMzE1MjM4IC8qIFNlcnZlclRpbWluZy5oICovLAorCQkJCTgzNjJFOEJGMjBD
RUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCAqLywKIAkJCQk1
MTMyN0Q1RjExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmNwcCAqLywKIAkJCQk1MTMy
N0Q1RTExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmggKi8sCiAJCQkJRDAwMEVEMjUx
MUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmNwcCAqLywKQEAgLTI5NDQ3LDcgKzI5
NDQ3LDYgQEAKIAkJCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZlTm9kZUZpbHRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwQjlCNkMwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2
ZVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDQ0YwMjcwQUY2QzUyOTAw
MDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTUxMUU5N0Ez
MjA2MzA3NDYwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdh
dG9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDE0OSw2ICszMDE0OCw3IEBACiAJCQkJMUE0
QTk1NEUwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5RUEzMDk5RUI3OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1lci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODM2MkU4QzEyMENFRjlDQjAwMjQ1ODg2IC8qIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OTQ0QTMxODBCNTdEODAw
RjE2NUQ4IC8qIFNpbXBsZUxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExRTA2N0VF
MUU2MjQ2RTUwMDE2MkQxNiAvKiBTaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU4NUQ2RTA0MUExQTc5MkUwMEZBNEYxMiAvKiBTaW1wbGVMaW5lTGF5b3V0Rmxv
d0NvbnRlbnRzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
QmFja0ZvcndhcmRDb250cm9sbGVyLmNwcAppbmRleCAwZjA1YmY2NWEzNWQ2MDdhNjhiYjI2ZmZk
Y2Y0Zjc3NjJlNDQ5YWUzLi44ZTY0OTk1YTRjMTM2NmQ0NTFkYmY3ZWQyN2U2MWE5YTZmY2Y2YWFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIu
Y3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgi
CiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgotI2luY2x1ZGUgIk5hdmlnYXRpb25Q
b2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MCw3ICs3MCw3
IEBAIHZvaWQgQmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2tPckZvcndhcmQoaW50IGRpc3Rh
bmNlKQogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmdvVG9J
dGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Q
b2xpY3lDaGVjazo6UmVxdWlyZSk7CisgICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxv
YWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
Tm8pOwogfQogCiBib29sIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Z29CYWNrKCkKQEAgLTc5LDcg
Kzc5LDcgQEAgYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjaygpCiAgICAgaWYgKCFp
dGVtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0s
IEZyYW1lTG9hZFR5cGU6OkJhY2ssIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7Cisg
ICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpCYWNrLCBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtODksNyAr
ODksNyBAQCBib29sIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Z29Gb3J3YXJkKCkKICAgICBpZiAo
IWl0ZW0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fcGFnZS5nb1RvSXRlbSgqaXRl
bSwgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJl
KTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQsIFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogICAgIHJldHVybiB0cnVlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCAwNDliYTQ3Y2U0ODFi
NGY4ZGQ0OGMzMmY2ZmY3ODBhMzFhM2M1MjNkLi4xMjk3YTc2MWQ3NDk2YTYyNmY1NWM2N2M2NjQw
NWNiZDcwNzc1NWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgK
QEAgLTYwLDggKzYwLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2hlY2tOZXdXaW5k
b3dQb2xpY3koYm9vbCBjaGVja1BvbGljeSkgeyBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5
ID0gY2hlY2tQb2xpY3k7IH0KICAgICBib29sIHNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeTsgfQogCi0gICAgdm9p
ZCBzZXRTaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3koYm9vbCBjaGVja1BvbGljeSkgeyBtX3No
b3VsZENoZWNrTmF2aWdhdGlvblBvbGljeSA9IGNoZWNrUG9saWN5OyB9Ci0gICAgYm9vbCBzaG91
bGRDaGVja05hdmlnYXRpb25Qb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENoZWNrTmF2
aWdhdGlvblBvbGljeTsgfQorICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
KGJvb2wgdmFsdWUpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQor
ICAgIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KIAogICAgIGNvbnN0IFN1YnN0aXR1dGVEYXRh
JiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7IH0KICAg
ICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKSB7IG1f
c3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9CkBAIC05OCw3ICs5OCw3IEBAIHByaXZhdGU6CiAgICAg
U3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKIAogICAgIGJvb2wgbV9zaG91bGRDaGVj
a05ld1dpbmRvd1BvbGljeSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Nob3VsZENoZWNrTmF2aWdh
dGlvblBvbGljeSB7IHRydWUgfTsKKyAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIHsgZmFsc2UgfTsKICAgICBMb2NrSGlzdG9yeSBtX2xvY2tIaXN0b3J5OwogICAgIExvY2tC
YWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0OwogICAgIFNob3VsZFNlbmRSZWZl
cnJlciBtX3Nob3VsZFNlbmRSZWZlcnJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDNmYjRmMjgwZmEwNmU4MGM2M2Q1NDk0Nzg3ODJjNDM1N2JiNTQ5YjcuLmVjNGIz
NjFkY2NlNzIwMTQ0NGEzMDNkZWI4NTg1MzJkYzE5NTFjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsNyArODcsNiBAQAogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNh
Ymxlci5oIgotI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIk5h
dmlnYXRpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNh
Y2hlLmgiCkBAIC0xMTUsNiArMTE0LDcgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIgogI2luY2x1ZGUgIlN1
YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRl
ICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBAIC05NjksNyArOTY5LDcgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHJlZmVyZXIsIEYKICAgICBpZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVtLT5jaGlsZHJlbigp
LnNpemUoKSAmJiBpc0JhY2tGb3J3YXJkTG9hZFR5cGUobG9hZFR5cGUoKSkgJiYgIW1fZnJhbWUu
ZG9jdW1lbnQoKS0+bG9hZEV2ZW50RmluaXNoZWQoKSkgewogICAgICAgICBpZiAoYXV0byogY2hp
bGRJdGVtID0gcGFyZW50SXRlbS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGlsZEZyYW1lLT50cmVl
KCkudW5pcXVlTmFtZSgpKSkgewogICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubV9y
ZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IGNoaWxkSXRlbTsKLSAgICAgICAgICAgIGNoaWxkRnJhbWUt
PmxvYWRlcigpLmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oKmNoaWxkSXRlbSwgbG9hZFR5cGUo
KSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sIE5hdmlnYXRp
b25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CisgICAgICAgICAgICBjaGlsZEZyYW1lLT5sb2FkZXIo
KS5sb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKCpjaGlsZEl0ZW0sIGxvYWRUeXBlKCksIE1heUF0
dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
QEAgLTE0NTQsNyArMTQ1NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCYmIHJlcXVlc3QpCiAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQobG9h
ZGVyLT5yZXF1ZXN0KCkpOwogICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRv
TmV3RG9jdW1lbnRMb2FkZXIobV9mcmFtZSwgbG9hZGVyLCByZXF1ZXN0KTsKIAotICAgIFNldEZv
clNjb3BlPGJvb2w+IGN1cnJlbnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5R3VhcmQo
bV9jdXJyZW50TG9hZFNob3VsZENoZWNrTmF2aWdhdGlvblBvbGljeSwgcmVxdWVzdC5zaG91bGRD
aGVja05hdmlnYXRpb25Qb2xpY3koKSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3VycmVudExv
YWRTaG91bGRCZVRyZWF0ZWRBc0NvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZFNob3Vs
ZEJlVHJlYXRlZEFzQ29udGludWluZ0xvYWQsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkKCkpOwogICAgIGxvYWQobG9hZGVyLnB0cigpKTsKIH0KIApAQCAtMTQ3MCw3ICsxNDcw
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QKICAgICBpZiAobV9kb2N1bWVudExvYWRlcikK
ICAgICAgICAgbG9hZGVyLT5zZXRPdmVycmlkZUVuY29kaW5nKG1fZG9jdW1lbnRMb2FkZXItPm92
ZXJyaWRlRW5jb2RpbmcoKSk7CiAKLSAgICBsb2FkV2l0aERvY3VtZW50TG9hZGVyKGxvYWRlci5w
dHIoKSwgdHlwZSwgV1RGTW92ZShmb3JtU3RhdGUpLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVyLnB0cigpLCB0eXBlLCBX
VEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
CiB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3VtZW50TG9hZGVyKiBuZXdEb2N1bWVudExvYWRl
cikKQEAgLTE1MDksMTAgKzE1MDksMTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChEb2N1bWVu
dExvYWRlciogbmV3RG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIHR5cGUgPSBGcmFtZUxvYWRUeXBl
OjpSZWxvYWQ7CiAgICAgfQogCi0gICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihuZXdEb2N1bWVu
dExvYWRlciwgdHlwZSwgeyB9LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmF2
aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlLCBbXSB7IH0pOworICAgIGxvYWRXaXRoRG9jdW1l
bnRMb2FkZXIobmV3RG9jdW1lbnRMb2FkZXIsIHR5cGUsIHsgfSwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMOjpZZXMsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFtdIHsgfSk7
CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0eXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZv
cm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTCwgTmF2aWdhdGlvblBvbGljeUNoZWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50
TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdHlwZSwgUmVmUHRy
PEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIC8vIFJl
dGFpbiBiZWNhdXNlIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IG1heSByZWxlYXNlIHRoZSBsYXN0
IHJlZmVyZW5jZSB0byBpdC4KICAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CkBAIC0x
NTgzLDcgKzE1ODMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVy
KERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogCiAgICAgbV9mcmFtZS5u
YXZpZ2F0aW9uU2NoZWR1bGVyKCkuY2FuY2VsKHRydWUpOwogCi0gICAgaWYgKCFtX2N1cnJlbnRM
b2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5KSB7CisgICAgaWYgKG1fY3VycmVudExvYWRT
aG91bGRCZVRyZWF0ZWRBc0NvbnRpbnVpbmdMb2FkKSB7CiAgICAgICAgIGNvbnRpbnVlTG9hZEFm
dGVyTmF2aWdhdGlvblBvbGljeShsb2FkZXItPnJlcXVlc3QoKSwgZm9ybVN0YXRlLmdldCgpLCBT
aG91bGRDb250aW51ZTo6WWVzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTY5Nyw3ICsxNjk3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcoY29uc3QgU3RyaW5nJiBlbmNvZGluZykKIAogICAg
IGxvYWRlci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhlbmNvZGluZyk7CiAKLSAgICBsb2FkV2l0aERv
Y3VtZW50TG9hZGVyKGxvYWRlci5wdHIoKSwgRnJhbWVMb2FkVHlwZTo6UmVsb2FkLCB7IH0sIEFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJl
cXVpcmUsIFtdIHsgfSk7CisgICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihsb2FkZXIucHRyKCks
IEZyYW1lTG9hZFR5cGU6OlJlbG9hZCwgeyB9LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6
OlllcywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgW10geyB9KTsKIH0KIAogdm9p
ZCBGcmFtZUxvYWRlcjo6cmVsb2FkKE9wdGlvblNldDxSZWxvYWRPcHRpb24+IG9wdGlvbnMpCkBA
IC0xNzQ0LDcgKzE3NDQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoT3B0aW9uU2V0PFJl
bG9hZE9wdGlvbj4gb3B0aW9ucykKICAgICAgICAgcmV0dXJuIEZyYW1lTG9hZFR5cGU6OlJlbG9h
ZDsKICAgICB9OwogICAgIAotICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVyLnB0cigp
LCBmcmFtZUxvYWRUeXBlRm9yUmVsb2FkT3B0aW9ucyhvcHRpb25zKSwgeyB9LCBBbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlLCBb
XSB7IH0pOworICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVyLnB0cigpLCBmcmFtZUxv
YWRUeXBlRm9yUmVsb2FkT3B0aW9ucyhvcHRpb25zKSwgeyB9LCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6OlllcywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgW10geyB9KTsK
IH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0
ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kpCkBAIC0yNzUyLDYgKzI3NTIsOSBA
QCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBGcmFtZUxvYWRlcjo6ZGVmYXVsdFJlcXVlc3RD
YWNoaW5nUG9saWN5KGNvbnN0IFJlc291cgogCiB2b2lkIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZp
ZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lTG9hZFR5cGUgbG9h
ZFR5cGUsIGJvb2wgaXNNYWluUmVzb3VyY2UpCiB7CisgICAgaWYgKG1fY3VycmVudExvYWRTaG91
bGRCZVRyZWF0ZWRBc0NvbnRpbnVpbmdMb2FkKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBE
b24ndCBzZXQgdGhlIGNvb2tpZSBwb2xpY3kgVVJMIGlmIGl0J3MgYWxyZWFkeSBiZWVuIHNldC4K
ICAgICAvLyBCdXQgbWFrZSBzdXJlIHRvIHNldCBpdCBvbiBhbGwgcmVxdWVzdHMgcmVnYXJkbGVz
cyBvZiBwcm90b2NvbCwgYXMgaXQgaGFzIHNpZ25pZmljYW5jZSBiZXlvbmQgdGhlIGNvb2tpZSBw
b2xpY3kgKDxyZGFyOi8vcHJvYmxlbS82NjE2NjY0PikuCiAgICAgaWYgKHJlcXVlc3QuZmlyc3RQ
YXJ0eUZvckNvb2tpZXMoKS5pc0VtcHR5KCkpIHsKQEAgLTI4MzMsNiArMjgzNiw3IEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYKICAgICAvLyBzZXJ2ZXIga25vd3Mgd2Ugc3VwcG9ydCB0aGlzIGZl
YXR1cmUuCiAKICAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkgeworICAgICAgICBXVEZSZXBvcnRC
YWNrdHJhY2UoKTsKICAgICAgICAgLy8gSWYgd2UgZG9uJ3Qga25vdyB3aGF0IG9yaWdpbiBoZWFk
ZXIgdG8gYXR0YWNoLCB3ZSBhdHRhY2ggdGhlIHZhbHVlCiAgICAgICAgIC8vIGZvciBhbiBlbXB0
eSBvcmlnaW4uCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdpbihTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlVW5pcXVlKCktPnRvU3RyaW5nKCkpOwpAQCAtMzU1MywxNCArMzU1NywxNCBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpsb2FkU2FtZURvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSkKIC8v
IEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCByZWFsbHkgYmUgc3BsaXQgaW50byBhIGNvdXBs
ZSBwaWVjZXMsIHNvbWUgb2YKIC8vIHdoaWNoIHNob3VsZCBiZSBtZXRob2RzIG9mIEhpc3RvcnlD
b250cm9sbGVyIGFuZCBzb21lIG9mIHdoaWNoIHNob3VsZCBiZQogLy8gbWV0aG9kcyBvZiBGcmFt
ZUxvYWRlci4KLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlz
dG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9uQ2Fj
aGVMb2FkUG9saWN5IGNhY2hlTG9hZFBvbGljeSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmln
YXRpb25Qb2xpY3lDaGVjaykKK3ZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVu
dEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUsIEZvcm1TdWJt
aXNzaW9uQ2FjaGVMb2FkUG9saWN5IGNhY2hlTG9hZFBvbGljeSwgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCkKIHsKICAgICAvLyBSZW1lbWJl
ciB0aGlzIGl0ZW0gc28gd2UgY2FuIHRyYXZlcnNlIGFueSBjaGlsZCBpdGVtcyBhcyBjaGlsZCBm
cmFtZXMgbG9hZAogICAgIGhpc3RvcnkoKS5zZXRQcm92aXNpb25hbEl0ZW0oJml0ZW0pOwogCiAg
ICAgYXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtu
b3duOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3VycmVudExvYWRTaG91bGRDaGVja05hdmln
YXRpb25Qb2xpY3lHdWFyZChtX2N1cnJlbnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5
LCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2sgIT0gTmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3Mp
OworICAgIFNldEZvclNjb3BlPGJvb2w+IGN1cnJlbnRMb2FkU2hvdWxkQmVUcmVhdGVkQXNDb250
aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRTaG91bGRCZVRyZWF0ZWRBc0NvbnRpbnVpbmdM
b2FkLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXMpOwogCiAgICAgaWYgKENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBQYWdlQ2Fj
aGU6OnNpbmdsZXRvbigpLmdldChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkpIHsKICAgICAgICAgYXV0
byBkb2N1bWVudExvYWRlciA9IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7CkBAIC0zNTcx
LDcgKzM1NzUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVt
KEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYQogICAgICAgICBkb2N1bWVudExv
YWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihXVEZNb3ZlKGFjdGlvbikpOwogCiAgICAgICAgIGRv
Y3VtZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwot
ICAgICAgICBsb2FkV2l0aERvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyLCBsb2FkVHlwZSwg
eyB9LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgbmF2aWdhdGlvblBvbGljeUNo
ZWNrLCBbXSB7IH0pOworICAgICAgICBsb2FkV2l0aERvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9h
ZGVyLCBsb2FkVHlwZSwgeyB9LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBbXSB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0zNjYzLDcgKzM2NjcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50
RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYQogfQogCiAv
LyBMb2FkcyBjb250ZW50IGludG8gdGhpcyBmcmFtZSwgYXMgc3BlY2lmaWVkIGJ5IGhpc3Rvcnkg
aXRlbQotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1l
TG9hZFR5cGUgbG9hZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5
Q2hlY2spCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJh
bWVMb2FkVHlwZSBsb2FkVHlwZSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCkKIHsKICAgICBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtID0gJml0
ZW07CiAgICAgSGlzdG9yeUl0ZW0qIGN1cnJlbnRJdGVtID0gaGlzdG9yeSgpLmN1cnJlbnRJdGVt
KCk7CkBAIC0zNjcyLDcgKzM2NzYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0
b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgTmF2aWdhdGlvbgogICAgIGlm
IChzYW1lRG9jdW1lbnROYXZpZ2F0aW9uKQogICAgICAgICBsb2FkU2FtZURvY3VtZW50SXRlbShp
dGVtKTsKICAgICBlbHNlCi0gICAgICAgIGxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oaXRlbSwg
bG9hZFR5cGUsIE1heUF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtLCBu
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOworICAgICAgICBsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVt
KGl0ZW0sIGxvYWRUeXBlLCBNYXlBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNzaW9u
SXRlbSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRl
cjo6cmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQoKQpAQCAtMzY4Nyw3
ICszNjkxLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1h
aW5SZXNvdXJjZUxvYWQoKQogICAgIEhpc3RvcnlJdGVtJiBpdGVtID0gKmhpc3RvcnkoKS5wcm92
aXNpb25hbEl0ZW0oKTsKIAogICAgIHN0b3BBbGxMb2FkZXJzKFNob3VsZE5vdENsZWFyUHJvdmlz
aW9uYWxJdGVtKTsKLSAgICBsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKGl0ZW0sIGxvYWRUeXBl
LCBNYXlOb3RBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNzaW9uSXRlbSwgTmF2aWdh
dGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKKyAgICBsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVt
KGl0ZW0sIGxvYWRUeXBlLCBNYXlOb3RBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNz
aW9uSXRlbSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiB9CiAKIFJlc291cmNl
RXJyb3IgRnJhbWVMb2FkZXI6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggY2QxNDc1
NWQxNGFjM2E4YjIxOWM1MTRmNzg5NzFlYTkxYzkxYjExNy4uMjU4OGZjYTBlZjAwNzcwMGVkMDZk
MTA1NDgyNjE3NmZkMDcyNzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAg
LTgwLDggKzgwLDggQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU3ViZnJhbWVMb2FkZXI7
CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIAotZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5Q2hl
Y2s7CiBlbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ7CiAKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMTI4LDcgKzEy
OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbG9hZFdpdGhPdmVycmlk
ZUVuY29kaW5nKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVFbmNvZGluZyk7CiAKICAgICB2b2lkIG9w
ZW4oQ2FjaGVkRnJhbWVCYXNlJik7Ci0gICAgdm9pZCBsb2FkSXRlbShIaXN0b3J5SXRlbSYsIEZy
YW1lTG9hZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgdm9pZCBsb2FkSXRlbShI
aXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCk7
CiAgICAgSGlzdG9yeUl0ZW0qIHJlcXVlc3RlZEhpc3RvcnlJdGVtKCkgY29uc3QgeyByZXR1cm4g
bV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbS5nZXQoKTsgfQogCiAgICAgdm9pZCByZXRyeUFmdGVyRmFp
bGVkQ2FjaGVPbmx5TWFpblJlc291cmNlTG9hZCgpOwpAQCAtMzI0LDcgKzMyNCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBjaGVja0NvbXBsZXRlbmVzc05vdygpOwogCiAgICAgdm9pZCBsb2FkU2Ft
ZURvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYpOwotICAgIHZvaWQgbG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9uQ2FjaGVM
b2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOworICAgIHZvaWQgbG9hZERpZmZlcmVu
dERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9u
Q2FjaGVMb2FkUG9saWN5LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOwogCiAgICAgdm9p
ZCBsb2FkUHJvdmlzaW9uYWxJdGVtRnJvbUNhY2hlZFBhZ2UoKTsKIApAQCAtMzY3LDcgKzM2Nyw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVybFNlbGVjdGVkKEZyYW1lTG9hZFJlcXVlc3QmJiwg
RXZlbnQqKTsKIAotICAgIHZvaWQgbG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRl
ciosIEZyYW1lTG9hZFR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+JiYsIEFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCwgTmF2aWdhdGlvblBvbGljeUNoZWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOyAvLyBDYWxscyBjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kKKyAgICB2
b2lkIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqLCBGcmFtZUxvYWRUeXBl
LCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsgLy8g
Q2FsbHMgY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5CiAgICAgdm9pZCBsb2FkKERv
Y3VtZW50TG9hZGVyKik7IC8vIENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIKIAogICAgIHZv
aWQgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mLCBMb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSwgUmVmUHRyPEZv
cm1TdGF0ZT4mJiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOyAvLyBDYWxscyBsb2FkV2l0aERvY3VtZW50TG9hZGVyCkBAIC00NjgsNyAr
NDY4LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFJlc291cmNlUmVxdWVzdENhY2hl
UG9saWN5PiBtX292ZXJyaWRlQ2FjaGVQb2xpY3lGb3JUZXN0aW5nOwogICAgIHN0ZDo6b3B0aW9u
YWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IG1fb3ZlcnJpZGVSZXNvdXJjZUxvYWRQcmlvcml0eUZv
clRlc3Rpbmc7CiAgICAgYm9vbCBtX2lzU3RyaWN0UmF3UmVzb3VyY2VWYWxpZGF0aW9uUG9saWN5
RGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsKLSAgICBib29sIG1fY3VycmVudExvYWRTaG91
bGRDaGVja05hdmlnYXRpb25Qb2xpY3kgeyB0cnVlIH07CisgICAgYm9vbCBtX2N1cnJlbnRMb2Fk
U2hvdWxkQmVUcmVhdGVkQXNDb250aW51aW5nTG9hZCB7IGZhbHNlIH07CiAKICAgICBib29sIG1f
Y2hlY2tpbmdMb2FkQ29tcGxldGVGb3JEZXRhY2htZW50IHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggYWVmN2I3ODBlMjFmZDgz
MGZlOGU3NWFkNDhjNjBhYWRhYmEzZWJlMi4uNDRjNDM3ZTYxYWQ1MDAwOTNjY2IzNzkyMmE2Mzdl
NWQ0NjljNjIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIu
Y3BwCkBAIC00MywxMiArNDMsMTIgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRl
ICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOYXZpZ2F0
aW9uUG9saWN5Q2hlY2suaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hl
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoLmgiCisjaW5jbHVk
ZSAiU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtT
dG9yZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMjkxLDcgKzI5MSw3
IEBAIGJvb2wgSGlzdG9yeUNvbnRyb2xsZXI6OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0
ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0pCiAKIC8vIE1haW4gZnVubmVsIGZvciBuYXZpZ2F0
aW5nIHRvIGEgcHJldmlvdXMgbG9jYXRpb24gKGJhY2svZm9yd2FyZCwgbm9uLXNlYXJjaCBzbmFw
LWJhY2spCiAvLyBUaGlzIGluY2x1ZGVzIHJlY3Vyc2lvbiB0byBoYW5kbGUgbG9hZGluZyBpbnRv
IGZyYW1lc2V0cyBwcm9wZXJseQotdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6Z29Ub0l0ZW0oSGlz
dG9yeUl0ZW0mIHRhcmdldEl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgTmF2aWdhdGlvblBvbGlj
eUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKK3ZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6Omdv
VG9JdGVtKEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVtLCBGcmFtZUxvYWRUeXBlIHR5cGUsIFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpCiB7CiAg
ICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCBnb1RvSXRlbSAlcCB0eXBlPSVk
IiwgdGhpcywgJnRhcmdldEl0ZW0sIHN0YXRpY19jYXN0PGludD4odHlwZSkpOwogCkBAIC0zMjYs
MTQgKzMyNiwxNCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbShIaXN0b3J5SXRl
bSYgdGFyZ2V0SXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBOYQogICAgIHJlY3Vyc2l2ZVNldFBy
b3Zpc2lvbmFsSXRlbSh0YXJnZXRJdGVtLCBjdXJyZW50SXRlbS5nZXQoKSk7CiAKICAgICAvLyBO
b3cgdGhhdCBhbGwgb3RoZXIgZnJhbWVzIGhhdmUgcHJvdmlzaW9uYWwgaXRlbXMsIGRvIHRoZSBh
Y3R1YWwgbmF2aWdhdGlvbi4KLSAgICByZWN1cnNpdmVHb1RvSXRlbSh0YXJnZXRJdGVtLCBjdXJy
ZW50SXRlbS5nZXQoKSwgdHlwZSwgbmF2aWdhdGlvblBvbGljeUNoZWNrKTsKKyAgICByZWN1cnNp
dmVHb1RvSXRlbSh0YXJnZXRJdGVtLCBjdXJyZW50SXRlbS5nZXQoKSwgdHlwZSwgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkKTsKIH0KIAogdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6c2V0RGVm
ZXJzTG9hZGluZyhib29sIGRlZmVyKQogewogICAgIG1fZGVmZXJzTG9hZGluZyA9IGRlZmVyOwog
ICAgIGlmICghZGVmZXIgJiYgbV9kZWZlcnJlZEl0ZW0pIHsKLSAgICAgICAgZ29Ub0l0ZW0oKm1f
ZGVmZXJyZWRJdGVtLCBtX2RlZmVycmVkRnJhbWVMb2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNo
ZWNrOjpSZXF1aXJlKTsKKyAgICAgICAgZ29Ub0l0ZW0oKm1fZGVmZXJyZWRJdGVtLCBtX2RlZmVy
cmVkRnJhbWVMb2FkVHlwZSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAg
ICAgIG1fZGVmZXJyZWRJdGVtID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC03NTAsMTAgKzc1MCwx
MCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVTZXRQcm92aXNpb25hbEl0ZW0o
SGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdAogCiAvLyBXZSBub3cgdHJhdmVyc2UgdGhlIGZy
YW1lIHRyZWUgYW5kIGl0ZW0gdHJlZSBhIHNlY29uZCB0aW1lLCBsb2FkaW5nIGZyYW1lcyB0aGF0
CiAvLyBkbyBoYXZlIHRoZSBjb250ZW50IHRoZSBpdGVtIHJlcXVlc3RzLgotdm9pZCBIaXN0b3J5
Q29udHJvbGxlcjo6cmVjdXJzaXZlR29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJ
dGVtKiBmcm9tSXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sg
bmF2aWdhdGlvblBvbGljeUNoZWNrKQordm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZl
R29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tSXRlbSwgRnJhbWVM
b2FkVHlwZSB0eXBlLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkKQogewogICAgIGlmICghaXRlbXNBcmVDbG9uZXMoaXRlbSwgZnJvbUl0ZW0p
KSB7Ci0gICAgICAgIG1fZnJhbWUubG9hZGVyKCkubG9hZEl0ZW0oaXRlbSwgdHlwZSwgbmF2aWdh
dGlvblBvbGljeUNoZWNrKTsKKyAgICAgICAgbV9mcmFtZS5sb2FkZXIoKS5sb2FkSXRlbShpdGVt
LCB0eXBlLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC03NjQsNyArNzY0LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJz
aXZlR29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tSXQKICAgICAg
ICAgSGlzdG9yeUl0ZW0qIGZyb21DaGlsZEl0ZW0gPSBmcm9tSXRlbS0+Y2hpbGRJdGVtV2l0aFRh
cmdldChjaGlsZEZyYW1lTmFtZSk7CiAgICAgICAgIEFTU0VSVChmcm9tQ2hpbGRJdGVtKTsKICAg
ICAgICAgaWYgKEZyYW1lKiBjaGlsZEZyYW1lID0gbV9mcmFtZS50cmVlKCkuY2hpbGQoY2hpbGRG
cmFtZU5hbWUpKQotICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkuaGlzdG9yeSgpLnJl
Y3Vyc2l2ZUdvVG9JdGVtKGNoaWxkSXRlbSwgZnJvbUNoaWxkSXRlbSwgdHlwZSwgbmF2aWdhdGlv
blBvbGljeUNoZWNrKTsKKyAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmhpc3Rvcnko
KS5yZWN1cnNpdmVHb1RvSXRlbShjaGlsZEl0ZW0sIGZyb21DaGlsZEl0ZW0sIHR5cGUsIHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4IDQ1MzVhYWViMzgwZDE4NWM5YTExMTlmYjU4ODRj
NThmMzBmNTkwZjUuLjQ4OTM0NDBlNTYwNTczZDAwZTBlM2VkMzk0ZTYyYjJjYWEyNWY5MGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC00MCw3ICs0MCw3
IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiAKLWVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAKIHN0cnVjdCBTdHJpbmdXaXRoRGlyZWN0
aW9uOwogCkBAIC05NCwxNCArOTQsMTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgUGFnZTsKICAgICBib29sIHNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlz
dG9yeUl0ZW0mKSBjb25zdDsKLSAgICB2b2lkIGdvVG9JdGVtKEhpc3RvcnlJdGVtJiwgRnJhbWVM
b2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrKTsKKyAgICB2b2lkIGdvVG9JdGVtKEhpc3Rv
cnlJdGVtJiwgRnJhbWVMb2FkVHlwZSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKTsKIAog
ICAgIHZvaWQgaW5pdGlhbGl6ZUl0ZW0oSGlzdG9yeUl0ZW0mKTsKICAgICBSZWY8SGlzdG9yeUl0
ZW0+IGNyZWF0ZUl0ZW0oKTsKICAgICBSZWY8SGlzdG9yeUl0ZW0+IGNyZWF0ZUl0ZW1UcmVlKEZy
YW1lJiB0YXJnZXRGcmFtZSwgYm9vbCBjbGlwQXRUYXJnZXQpOwogCiAgICAgdm9pZCByZWN1cnNp
dmVTZXRQcm92aXNpb25hbEl0ZW0oSGlzdG9yeUl0ZW0mLCBIaXN0b3J5SXRlbSopOwotICAgIHZv
aWQgcmVjdXJzaXZlR29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBIaXN0b3J5SXRlbSosIEZyYW1lTG9h
ZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgdm9pZCByZWN1cnNpdmVHb1RvSXRl
bShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlwZSwgU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkKTsKICAgICBib29sIGlzUmVwbGFjZUxvYWRUeXBlV2l0aFByb3Zpc2lv
bmFsSXRlbShGcmFtZUxvYWRUeXBlKTsKICAgICBib29sIGlzUmVsb2FkVHlwZVdpdGhQcm92aXNp
b25hbEl0ZW0oRnJhbWVMb2FkVHlwZSk7CiAgICAgdm9pZCByZWN1cnNpdmVVcGRhdGVGb3JDb21t
aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5
Q2hlY2suaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjIxNzhlZmRjYThlZDBkYThlMzlhMjZkZTJh
YzVkODZjYjNjOGI2NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblBvbGljeUNoZWNrLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0g
Y2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrIHsKLSAgICBSZXF1aXJlLAotICAgIEJ5cGFzcywK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrPiB7
Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TmF2aWdh
dGlvblBvbGljeUNoZWNrLAotICAgICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6
OlJlcXVpcmUsCi0gICAgICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjazo6QnlwYXNz
Ci0gICAgPjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZWM5
ZTU2NzgyMzZhYTlhYjI2ZDUxNDE0ZjFhOWVkMmRiOWY4MzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgKQEAgLTAs
MCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Vu
dW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCB7IE5vLCBZZXMgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
CisgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sCisgICAg
ICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzCisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOWU5ZGVmYzhmNGIy
ZDc0NDM0YmZhNmEzZTRhOTc0Zjg3MjQ0YjUxZi4uNTlhNzg3NmRkMmJjYjAwZWY2NjdkZDJkYWM1
ZjQyODhiNjgyMDUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgdm9p
ZCBQYWdlOjpzZXRPcGVuZWRCeURPTSgpCiAgICAgbV9vcGVuZWRCeURPTSA9IHRydWU7CiB9CiAK
LXZvaWQgUGFnZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlw
ZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKK3ZvaWQgUGFn
ZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCkKIHsKICAg
ICAvLyBzdG9wQWxsTG9hZGVycyBtYXkgZW5kIHVwIHJ1bm5pbmcgb25sb2FkIGhhbmRsZXJzLCB3
aGljaCBjb3VsZCBjYXVzZSBmdXJ0aGVyIGhpc3RvcnkgdHJhdmVyc2FscyB0aGF0IG1heSBsZWFk
IHRvIHRoZSBwYXNzZWQgaW4gSGlzdG9yeUl0ZW0KICAgICAvLyBiZWluZyBkZXJlZigpLWVkLiBN
YWtlIHN1cmUgd2UgY2FuIHN0aWxsIHVzZSBpdCB3aXRoIEhpc3RvcnlDb250cm9sbGVyOjpnb1Rv
SXRlbSBsYXRlci4KQEAgLTQ4Niw3ICs0ODYsNyBAQCB2b2lkIFBhZ2U6OmdvVG9JdGVtKEhpc3Rv
cnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIHR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjawog
ICAgIGlmIChmcmFtZUxvYWRlci5oaXN0b3J5KCkuc2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5
SXRlbShpdGVtKSkKICAgICAgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLnN0b3BBbGxMb2FkZXJz
QW5kQ2hlY2tDb21wbGV0ZW5lc3MoKTsKIAotICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS5oaXN0
b3J5KCkuZ29Ub0l0ZW0oaXRlbSwgdHlwZSwgbmF2aWdhdGlvblBvbGljeUNoZWNrKTsKKyAgICBt
X21haW5GcmFtZS0+bG9hZGVyKCkuaGlzdG9yeSgpLmdvVG9JdGVtKGl0ZW0sIHR5cGUsIHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk7CiB9CiAKIHZvaWQgUGFnZTo6c2V0R3JvdXBOYW1lKGNv
bnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMmI2MzI4YWExM2Y4ZGMxNGVhZGM4
YTNiODA1YjExZjRhMWIyYjQyZi4uNmI4NDgyYWQyM2U4ODdmN2QwNTU2MWMwNzVjZjNiNmI4YmU4
MTRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE1Niw4ICsxNTYsOCBAQCBlbnVtIGNsYXNzIEV2ZW50
VGhyb3R0bGluZ0JlaGF2aW9yIHsKIAogZW51bSBjbGFzcyBDYW5XcmFwIDogYm9vbDsKIGVudW0g
Y2xhc3MgRGlkV3JhcCA6IGJvb2w7Ci1lbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lDaGVjazsK
IGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5OworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ7CiAKIGNsYXNzIFBhZ2UgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8UGFn
ZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2UpOwpAQCAtMTk0LDcgKzE5NCw3IEBA
IHB1YmxpYzoKICAgICBib29sIG9wZW5lZEJ5RE9NKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPcGVu
ZWRCeURPTSgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRl
bSYsIEZyYW1lTG9hZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEdyb3Vw
TmFtZShjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTdHJpbmcmIGdy
b3VwTmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBh
cmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCmlu
ZGV4IGE2NzkxZWZhMDc0ZGZlNTBkNTlmZTBhMWNlNmZlZWEyNDZkM2Q1ZmUuLjE3ZDAzMmEyMzRh
YjY3MWNlNWFkMDAxMjdkZjE5NDA2MGVjOWI0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2Fk
UGFyYW1ldGVycy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBMb2FkUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVucmVhY2hh
YmxlVVJMU3RyaW5nOwogICAgIGVuY29kZXIgPDwgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJp
bmc7CiAgICAgZW5jb2RlciA8PCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OwotICAgIGVu
Y29kZXIgPDwgc2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5OworICAgIGVuY29kZXIgPDwgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGVuY29kZXIgPDwgdXNlckRhdGE7CiAKICAg
ICBwbGF0Zm9ybUVuY29kZShlbmNvZGVyKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIExvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYg
ZGF0YSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoZGF0YS5zaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3kpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoZGF0YS5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEudXNlckRhdGEpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggODQwMmRkYzg1MDAyYTVhY2EwY2UwMWYz
MTBjYWViYWIwOGYxZmQ1Yy4uNWExYjM0ODRhZjVkOWU4NmJhYjM2NzE2ODNjNjMxNDk5NTFlYmFh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCkBAIC02Miw3ICs2Miw3IEBA
IHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIHByb3Zpc2lvbmFsTG9hZEVycm9y
VVJMU3RyaW5nOwogCiAgICAgdWludDY0X3Qgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsK
LSAgICBib29sIHNob3VsZENoZWNrTmF2aWdhdGlvblBvbGljeSB7IHRydWUgfTsKKyAgICBib29s
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IGZhbHNlIH07CiAgICAgVXNlckRhdGEgdXNl
ckRhdGE7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDc5MmI0NTVlODZiNzE2NDY5YWM2YjU5MDJjOTRkNDQxZjhjNmU0
MDEuLmMxYzk2MWQ4MjI1NmE5YjA0OTUxNmFlYmE4YjU5ZmFkNzhiMmYwOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM2LDEzICsxMzYsMTMgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVS
ZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljU3Vm
Zml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU1NMS2V5R2VuZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxp
emVkQ3J5cHRvS2V5V3JhcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5k
aWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTc5NCw3ICs3OTQsNyBAQCBS
ZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNz
Rm9yUmVsb2FkKCkKICAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3Jl
YXRlUmVsb2FkTmF2aWdhdGlvbigpOwogCiAgICAgLy8gV2UgYWxsb3cgc3RhbGUgY29udGVudCB3
aGVuIHJlbG9hZGluZyBhIFdlYlByb2Nlc3MgdGhhdCdzIGJlZW4ga2lsbGVkIG9yIGNyYXNoZWQu
Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJ
dGVtKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVu
dEl0ZW0oKS0+aXRlbUlEKCksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2
aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgp
LCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6Tm8pLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1Rp
bWVyKCkuc3RhcnQoKTsKIAogICAgIHJldHVybiBXVEZNb3ZlKG5hdmlnYXRpb24pOwpAQCAtODEz
LDcgKzgxMyw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVhdHRh
Y2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyCiAKICAgICBhdXRvIG5hdmlnYXRp
b24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKGl0ZW0s
IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVk
QmFja0ZvcndhcmQpOwogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpH
b1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1J
RCgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lD
aGVjazo6UmVxdWlyZSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCks
IGl0ZW0uaXRlbUlEKCksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJl
c3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogCiAgICAgcmV0dXJuIFdURk1vdmUobmF2aWdh
dGlvbik7CkBAIC05NjQsMTEgKzk2NCwxMSBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQ
YWdlUHJveHk6OmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNobwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlv
blN0YXRlLT5jcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oUmVzb3VyY2VSZXF1ZXN0KHJlcXVl
c3QpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSk7Ci0gICAgbG9hZFJlcXVlc3RX
aXRoTmF2aWdhdGlvbihuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpS
ZXF1aXJlKTsKKyAgICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKG5hdmlnYXRpb24uZ2V0KCks
IFdURk1vdmUocmVxdWVzdCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRh
LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKICAgICByZXR1cm4gV1RGTW92ZShu
YXZpZ2F0aW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmln
YXRpb24oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmln
YXRpb25Qb2xpY3lDaGVjaykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2Vk
KTsKIApAQCAtOTg1LDcgKzk4NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdp
dGhOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVzb3VyCiAgICAgbG9h
ZFBhcmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CiAgICAgbG9hZFBhcmFtZXRl
cnMuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9ICh1aW50NjRfdClzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNlckRhdGEo
cHJvY2VzcygpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKTsKLSAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3kgPSBuYXZpZ2F0aW9u
UG9saWN5Q2hlY2sgPT0gTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlOworICAgIGxvYWRQ
YXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllczsKICAgICBib29s
IGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KHVybCwgbG9hZFBhcmFtZXRlcnMuc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgaWYgKGNy
ZWF0ZWRFeHRlbnNpb24pCiAgICAgICAgIG1fcHJvY2Vzcy0+d2lsbEFjcXVpcmVVbml2ZXJzYWxG
aWxlUmVhZFNhbmRib3hFeHRlbnNpb24oKTsKQEAgLTEyOTAsNyArMTI5MCw3IEBAIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtCiAgICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0o
KS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoaXRlbSkpCiAgICAgICAgIG5hdmlnYXRpb24gPSBtX25h
dmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKGl0ZW0sIG1fYmFja0Zv
cndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLCBmcmFtZUxvYWRUeXBlKTsKIAotICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9u
ID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLml0ZW1JRCgpLCBmcmFtZUxv
YWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpLCBtX3BhZ2VJRCk7CisgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5h
dmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGl0ZW0uaXRlbUlEKCks
IGZyYW1lTG9hZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pLCBtX3BhZ2VJ
RCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIAogICAg
IHJldHVybiBuYXZpZ2F0aW9uOwpAQCAtMjQ5Niw3ICsyNDk2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmln
YXRpb24sIFIKICAgICAgICAgICAgIHJldHVybiAmaXRlbSAhPSB0YXJnZXRJdGVtOwogICAgICAg
ICB9KTsKICAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVC
YWNrRm9yd2FyZExpc3RGb3JSZWF0dGFjaChXVEZNb3ZlKGl0ZW1TdGF0ZXMpKSwgbV9wYWdlSUQp
OwotICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9y
d2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgaXRlbS0+aXRlbUlEKCksICpuYXZp
Z2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6
OkJ5cGFzcyksIG1fcGFnZUlEKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0
ZW0tPml0ZW1JRCgpLCAqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMpLCBtX3BhZ2VJRCk7CiAgICAgICAgIG1fcHJv
Y2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiAKICAgICAgICAgcmV0dXJuOwpA
QCAtMjUwNCw3ICsyNTA0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlv
bkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFIKIAogICAgIC8vIEZJ
WE1FOiBXb3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGluZyB3aXRoIHRoZSBsYXN0IHBvbGljeSBk
ZWxlZ2F0ZSwgZXRjCiAgICAgQVNTRVJUKCFuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0KCkuaXNF
bXB0eSgpKTsKLSAgICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKG5hdmlnYXRpb24sIFJlc291
cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3QoKSB9LCBXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcywgbnVs
bHB0ciwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3MpOworICAgIGxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb24obmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi5jdXJy
ZW50UmVxdWVzdCgpIH0sIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzLCBudWxscHRyLCBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQ6Olllcyk7CiAKICAgICAvLyBOb3JtYWxseSwgbm90aWZpY2F0aW9uIG9mIGEgc2VydmVy
IHJlZGlyZWN0IGNvbWVzIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4KICAgICAvLyBJZiB3
ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBpbiByZXNwb25zZSB0byBhIHNlcnZlciByZWRpcmVjdCB0
aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdpbGwgbm90IGNvbWUgZnJvbSB0aGUgbmV3IFdlYkNvbnRl
bnQgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjg4
YTM2ZDBkMTk3ZTI0MTlmNGE5MzA1MDZjMTI4ZjE2MmNlYTU2ZC4uMDM5MjUwZjE5M2QyN2I4Zjc2
NDZmZDAxYjQ4YmYwM2I2Y2ZiNThhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTE3MSw5ICsxNzEsOSBAQCBlbnVtIFNlbGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4
X3Q7CiAKIGVudW0gY2xhc3MgQXV0b3BsYXlFdmVudDsKIGVudW0gY2xhc3MgSGFzSW5zZWN1cmVD
b250ZW50OwotZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s7CiBlbnVtIGNsYXNzIE5v
dGlmaWNhdGlvbkRpcmVjdGlvbjsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlOworZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAKIHN0cnVjdCBBcHBsaWNhdGlvbk1hbmlm
ZXN0Owogc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CkBAIC0xNDgzLDcgKzE0ODMs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IHJlYXR0YWNoVG9XZWJQ
cm9jZXNzRm9yUmVsb2FkKCk7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVhdHRhY2hU
b1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik7CiAKLSAgICB2b2lk
IGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrKTsKKyAg
ICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkKTsKIAogICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKTsKICAgICB2b2lk
IHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5
LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcm
IGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmln
aW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYWY2ZGM2NWFmMDQ1NDY2N2M5MGM2NTg4
MzBmNzc2NDVkMmYxZTQwYy4uNDNiZDBjMDg3MDgwNDJmNDUwNTE2NTc0NGI4NTQ0NmQ4ODZlNmVl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTEyNjgsNyArMTI2OCw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QoTG9hZFBhcmFtZXRl
cnMmJiBsb2FkUGFyYW1ldGVycykKICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVl
c3QgeyAqbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0LCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9OwogICAgIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgZXh0ZXJuYWxVUkxzUG9saWN5ID0gc3RhdGljX2Nhc3Q8
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeT4obG9hZFBhcmFtZXRlcnMuc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KGV4dGVybmFsVVJMc1BvbGljeSk7Ci0gICAgZnJhbWVMb2FkUmVxdWVz
dC5zZXRTaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3kobG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KTsKKyAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZChsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQpOwogCiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkubG9hZFJlcXVlc3QoV1RG
TW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CiAKQEAgLTEzOTMsNyArMTM5Myw3IEBAIHZvaWQgV2Vi
UGFnZTo6cmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgcmVsb2FkT3B0aW9u
cywgU2FuZGJveEV4dGVuCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6OmdvVG9CYWNrRm9yd2Fy
ZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlm
aWVyJiBiYWNrRm9yd2FyZEl0ZW1JRCwgRnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIE5h
dmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCit2b2lkIFdlYlBhZ2U6
OmdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyJiBiYWNrRm9yd2FyZEl0ZW1JRCwgRnJhbWVMb2FkVHlwZSBiYWNr
Rm9yd2FyZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQpCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXI7
CiAKQEAgLTE0MDksNyArMTQwOSw3IEBAIHZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRl
bSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkCiAgICAgQVNT
RVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwogICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9
IG5hdmlnYXRpb25JRDsKIAotICAgIG1fcGFnZS0+Z29Ub0l0ZW0oKml0ZW0sIGJhY2tGb3J3YXJk
VHlwZSwgbmF2aWdhdGlvblBvbGljeUNoZWNrKTsKKyAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVt
LCBiYWNrRm9yd2FyZFR5cGUsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCk7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6dHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA2MzQ4NWZjOGU3ZjFlMzQ3OTE2YzhhNWU1
NzQxZGJjMzNlMGMxYjFjLi5kYjIyYzE2OTc5ZDNjNmRhMjJjNWYwZTgzMTNiYjAwYmIzMjYzZGE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNTcs
NyArMTU3LDcgQEAgY2xhc3MgVVJMOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCiBlbnVtIFN5
bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKLWVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNo
ZWNrOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiBlbnVtIGNsYXNz
IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdDsKIAogc3RydWN0
IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CkBAIC0xMTYwLDcgKzExNjAsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcoY29uc3QgTG9hZFBhcmFtZXRlcnMm
KTsKICAgICB2b2lkIG5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0
cmluZyYgdXJsLCBXZWJDb3JlOjpJbnRQb2ludCBkb2N1bWVudFBvaW50LCBXZWJDb3JlOjpJbnRQ
b2ludCBzY3JlZW5Qb2ludCk7CiAgICAgdm9pZCByZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklE
LCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7Ci0g
ICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
V2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5
cGUsIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgdm9pZCBnb1RvQmFja0Zv
cndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6QmFja0Zvcndh
cmRJdGVtSWRlbnRpZmllciYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk7CiAgICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRp
b24oKTsKICAgICB2b2lkIHNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQsIGJvb2wgaXNLZXli
b2FyZEV2ZW50VmFsaWQsIGNvbnN0IFdlYktleWJvYXJkRXZlbnQmLCBDYWxsYmFja0lEKTsKICAg
ICB2b2lkIHVwZGF0ZUlzSW5XaW5kb3coYm9vbCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IGQyMTZmNWJlZGFjMzA2N2JiZjA2YmVjYzU5M2E4YTZkM2JkYmVlMWUuLjVlOTZh
N2JlOTVmYjQzNjIzYmNmMTE0YWY2ZjAxZTI0N2E5NjllYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTM5LDcg
KzEzOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNjcm9s
bEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Nyb2xsR3JhbnVsYXJpdHkp
CiAgICAgQ2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKLSAgICBHb1RvQmFja0Zvcndh
cmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJk
SXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW0gV2ViQ29yZTo6RnJhbWVMb2Fk
VHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW0gV2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNr
IG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIg
YmFja0ZvcndhcmRJdGVtSUQsIGVudW0gV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2Fy
ZFR5cGUsIGVudW0gV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCkKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiAg
ICAgTG9hZFVSTEluRnJhbWUoV2ViQ29yZTo6VVJMIHVybCwgdWludDY0X3QgZnJhbWVJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0MDc3ZTkxYWIx
MmQ3ZmIwN2I3NDBjZDA1OTFlMjliNmZkYTgxYWQzLi5iZGY5N2U3OGVlYWE5ZmY3ZDI4ODAyNTU2
MmZjY2VkYWJhMWY3YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0xNzMsNyArMTczLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdp
c3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9NZW1vcnlSZWxlYXNlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL05hdmlnYXRpb25Qb2xpY3lDaGVj
ay5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvTm9kZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CkBA
IC0xOTgsNiArMTk3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxl
UHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBA
IC0yNjM3LDcgKzI2MzcsNyBAQCAtICh2b2lkKV9sb2FkQmFja0ZvcndhcmRMaXN0RnJvbU90aGVy
VmlldzooV2ViVmlldyAqKW90aGVyVmlldwogICAgIH0KIAogICAgIEFTU0VSVChuZXdJdGVtVG9H
b1RvKTsKLSAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1l
TG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1
aXJlKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1l
TG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpObyk7CiB9CiAKIC0gKHZvaWQpX3NldEZvcm1EZWxlZ2F0ZTogKGlkPFdlYkZvcm1EZWxlZ2F0
ZT4pZGVsZWdhdGUKQEAgLTY0NjMsNyArNjQ2Myw3IEBAIC0gKEJPT0wpZ29Ub0JhY2tGb3J3YXJk
SXRlbTooV2ViSGlzdG9yeUl0ZW0gKilpdGVtCiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIEFT
U0VSVChpdGVtKTsKLSAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKmNvcmUoaXRlbSksIEZy
YW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpS
ZXF1aXJlKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKmNvcmUoaXRlbSksIEZyYW1l
TG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpObyk7CiAgICAgcmV0dXJuIFlFUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAppbmRleCAzNDM2NmVhMjY0YTVkZjBlNjNmY2YyMTcwMmI1NTc4ZGM1MTk5OWJmLi5jOWU1MjEz
N2RmMWYyYzVkOTkyMTVmNzAyYWZiYzY5ODcyZmQ0MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcApAQCAtMTI2LDcgKzEyNiw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlw
ZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTmF2aWdhdGlvblBv
bGljeUNoZWNrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+CkBAIC0xNTcsNiArMTU2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1JbmZv
Lmg+CkBAIC0zNDM4LDcgKzM0MzgsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmdvVG9CYWNrRm9yd2Fy
ZEl0ZW0oX0luX29wdF8gSVdlYkhpc3RvcnlJdGVtKiBpdGVtLCBfT3V0XyBCT09MKgogICAgIGlm
IChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CiAKLSAgICBtX3BhZ2UtPmdvVG9JdGVt
KCp3ZWJIaXN0b3J5SXRlbS0+aGlzdG9yeUl0ZW0oKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJh
Y2tGb3J3YXJkLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOworICAgIG1fcGFnZS0+
Z29Ub0l0ZW0oKndlYkhpc3RvcnlJdGVtLT5oaXN0b3J5SXRlbSgpLCBGcmFtZUxvYWRUeXBlOjpJ
bmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogICAg
ICpzdWNjZWVkZWQgPSBUUlVFOwogCiAgICAgcmV0dXJuIFNfT0s7CkBAIC01OTc1LDcgKzU5NzUs
NyBAQCBIUkVTVUxUIFdlYlZpZXc6OmxvYWRCYWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3KF9J
bl9vcHRfIElXZWJWaWV3KiBvdGhlclZpZXcpCiAgICAgfQogICAgIAogICAgIEFTU0VSVChuZXdJ
dGVtVG9Hb1RvKTsKLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCpuZXdJdGVtVG9Hb1RvLCBGcmFtZUxv
YWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWly
ZSk7CisgICAgbV9wYWdlLT5nb1RvSXRlbSgqbmV3SXRlbVRvR29UbywgRnJhbWVMb2FkVHlwZTo6
SW5kZXhlZEJhY2tGb3J3YXJkLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKICAg
ICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg1NjU4NGY5NGVjZTU2N2Q1MjY3Njk3OWNhODdl
OGFjNGMzMWFmNzIuLjAxNTAwNTNkZTVlYTZmNjRjOTJjYjUwOTA3ZjY5OGRlYWQ2YThkNTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNi0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0
LTMwNy5odG1sIGZhaWxzIHdpdGggUFNPTiBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0NDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDctcHNvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1w
b3N0LXJlZGlyZWN0LTMwNy1wc29uLmh0bWw6IEFkZGVkLgorCiAyMDE4LTA2LTExICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChNb2phdmUp
OiBMYXlvdXRUZXN0IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLW1lZGlh
LXNtYWxsLmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3LXBzb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3LXBzb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhYzFhNzZjNGNlMTA2Nzg2ODhhMmM1MWVkZTU0MmQ1
ZmI4YjljYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDctcHNvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorVGhlcmUgd2FzIG5vIG9yaWdpbiBoZWFkZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwNy1wc29uLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDctcHNvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEzM2ZmNzVjNWE0ODQ1MWE2NGFmYmQwMDQ4NWQ1MGRkZmI1OGMxMTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMt
cG9zdC1yZWRpcmVjdC0zMDctcHNvbi5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b249dHJ1ZSBdIC0tPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCitUaGlzIHRlc3QgaXMgZGVz
aWduZWQgdG8gd29yayBvbmx5IHdoZW4gbG9hZGVkIGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDAw
CisKKzxmb3JtIGlkPSd0ZXN0Rm9ybScgbWV0aG9kPSdQT1NUJz4KKzxpbnB1dCBpZD0ncmVkaXJj
b2RlJyB0eXBlPSdoaWRkZW4nIG5hbWU9J3JlZGlyY29kZScgdmFsdWU9JzMwNyc+Cis8L2Zvcm0+
CisKKzxzY3JpcHQ+CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RG
b3JtJyk7Citmb3JtLmFjdGlvbiA9ICIvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9jb2RlPTMwNyZ1
cmw9aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXBvc3QtcmVk
aXJlY3QtdGFyZ2V0LnBocCI7Citmb3JtLnN1Ym1pdCgpOworIAorPC9zY3JpcHQ+Cis8L2JvZHk+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342461</attachid>
            <date>2018-06-11 13:50:38 -0700</date>
            <delta_ts>2018-06-11 13:52:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186441-20180611135038.patch</filename>
            <type>text/plain</type>
            <size>58736</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzkzMWY3MjY0ZTMwNGI2
ZGEyMTUzOGIxOWE3NGJhMzU2ZDUwZWYyNC4uZDhmZjZhM2QwMTBiOWJiZjI5MWQ5ZjY3ODVhNGM2
ZDlhZDYwZWI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTA2LTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3Lmh0bWwgZmFpbHMgd2l0aCBQU09OIGVuYWJsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQ0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICBXaGVuIHdlIGFyZSBj
b250aW51aW5nIGEgbG9hZCBpbiBhIG5ldyBwcm9jZXNzLCB3ZSBjdXJyZW50bHkgYnlwYXNzIHRo
ZSBuYXZpZ2F0aW9uIHBvbGljeQorICAgICAgICBjaGVjay4gV2Ugbm93IGFsc28gYnlwYXNzIHRo
ZSBhZGRpbmcgb2YgaGVhZGVycyBzdWNoIGFzIHRoZSBPcmlnaW4gb25lIHNpbmNlIHRoZSByZXF1
ZXN0CisgICAgICAgIHdhcyBhbHJlYWR5IHByb2Nlc3NlZCBpbiB0aGUgcHJldmlvdXMgcHJvY2Vz
cy4gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpbiB0aGUgY2FzZSBvZgorICAgICAgICBhIGNy
b3NzLW9yaWdpbiByZWRpcmVjdCwgdGhlIHByZXZpb3VzIHByb2Nlc3MgaGFzIHJlbW92ZWQgdGhl
IE9yaWdpbiBoZWFkZXIgZnJvbSB0aGUKKyAgICAgICAgcmVxdWVzdCBhbmQgd2UgZG8gbm90IHdh
bnQgdGhlIG5ldyBwcm9jZXNzIHRvIGFkZCBpdCBhZ2Fpbi4KKworICAgICAgICBUZXN0OiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDctcHNvbi5odG1sCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaGlzdG9y
eS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFja0Zvcndh
cmRDb250cm9sbGVyOjpnb0JhY2tPckZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6QmFja0Zv
cndhcmRDb250cm9sbGVyOjpnb0JhY2spOgorICAgICAgICAoV2ViQ29yZTo6QmFja0ZvcndhcmRD
b250cm9sbGVyOjpnb0ZvcndhcmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6c2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZFJlcXVlc3Q6OnNldFNob3VsZENoZWNrTmF2aWdhdGlvblBvbGljeSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzaG91bGRDaGVja05hdmlnYXRpb25Q
b2xpY3kgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OnJlbG9hZFdpdGhPdmVycmlkZUVuY29kaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpyZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpyZXRyeUFm
dGVyRmFpbGVkQ2FjaGVPbmx5TWFpblJlc291cmNlTG9hZCk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlR29Ub0l0ZW0pOgorICAgICAgICAq
IGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oOgorICAgICAgICAqIGxvYWRlci9TaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9O
YXZpZ2F0aW9uUG9saWN5Q2hlY2suaC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6Z29Ub0l0ZW0pOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorCiAy
MDE4LTA2LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
Y2NlcHQgcmVxdWVzdCBoZWFkZXIgdmFsdWVzIHNob3VsZCBiZSBtb3JlIHRpZ2h0bHkgY2hlY2tl
ZCBhZnRlciByMjMyNTcyIGluIGNhc2Ugb2YgQ09SUyBsb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjZjEzZDBh
N2U2ZTIxYzg2NTllY2VlOWRhMzBmMThlMWJmN2ZkZjguLjk0MDlhZWJjZDIxM2RjMDhiYWU1Y2Qw
OTM3ZGJhNjM3NjhkNzIxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTgtMDYtMTEg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDcuaHRtbCBmYWlscyB3aXRoIFBTT04gZW5hYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIFJlbmFtZSBl
eGlzdGluZyBmbGFnIHRvIHNvbWV0aGluZyBhIGJpdCBtb3JlIGdlbmVyaWMsIG5vdyB0aGF0IGl0
IGlzIHVzZWQgZm9yCisgICAgICAgIG1vcmUgdGhpbmdzIHRoYW4gYnlwYXNzaW5nIHRoZSBuYXZp
Z2F0aW9uIHBvbGljeSBjaGVjay4KKworICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVycy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
TG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc0ZvclJl
bG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dlYlByb2Nl
c3NXaXRoSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnb1RvQmFja0Zvcndh
cmRJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE4LTA2LTEx
ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFtpT1NdIGFjY2Vz
c2liaWxpdHkgc29tZXRpbWVzIGRvZXNuJ3Qga25vdyBwcm9jZXNzIHN1c3BlbnNpb24gaXMgY2Fu
Y2VsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0MjA1ZWEzYTM2YjIwMjE3ZDRi
YTQ4N2I4NzMxNzZjZmU2MmI0NzFhLi4yYTc2YjM5OTAzZDA2ZmFkMmRjZDg1NmMyZTg1Yzg4ZWRj
Yjk3ZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTgtMDYtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDcuaHRtbCBmYWlscyB3aXRoIFBT
T04gZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg2NDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAg
IFJlbmFtZSBleGlzdGluZyBmbGFnIHRvIHNvbWV0aGluZyBhIGJpdCBtb3JlIGdlbmVyaWMsIG5v
dyB0aGF0IGl0IGlzIHVzZWQgZm9yCisgICAgICAgIG1vcmUgdGhpbmdzIHRoYW4gYnlwYXNzaW5n
IHRoZSBuYXZpZ2F0aW9uIHBvbGljeSBjaGVjay4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfbG9hZEJhY2tGb3J3YXJkTGlzdEZyb21PdGhlclZp
ZXc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgZ29Ub0JhY2tGb3J3YXJkSXRlbTpdKToKKwogMjAx
OC0wNi0wOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29k
ZV0gQ2xlYW4gdXAgYW5kIG1vZGVybml6ZSBzb21lIGJ1aWxkIHNldHRpbmcgZGVmaW5pdGlvbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA4ZDJlNmM5NTE5ZDU2NDY5ZTk1ZGMzM2Rj
OGRiMzkxMjBiMGEyMGMxLi45ODgxODdhMDYwYTA4MGY2Mjk5NGQyNDMxZmJmYmVkYTIxY2JjOTYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDYt
MTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDcuaHRtbCBmYWlscyB3aXRoIFBTT04gZW5h
YmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2
NDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIFJlbmFt
ZSBleGlzdGluZyBmbGFnIHRvIHNvbWV0aGluZyBhIGJpdCBtb3JlIGdlbmVyaWMsIG5vdyB0aGF0
IGl0IGlzIHVzZWQgZm9yCisgICAgICAgIG1vcmUgdGhpbmdzIHRoYW4gYnlwYXNzaW5nIHRoZSBu
YXZpZ2F0aW9uIHBvbGljeSBjaGVjay4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAg
ICAoV2ViVmlldzo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJWaWV3Ojpsb2Fk
QmFja0ZvcndhcmRMaXN0RnJvbU90aGVyVmlldyk6CisKIDIwMTgtMDYtMDQgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgIkNyb3NzLU9yaWdpbi1PcHRp
b25zIiBIVFRQIGhlYWRlciB0byAiQ3Jvc3MtT3JpZ2luLVdpbmRvdy1Qb2xpY3kiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmRm
MmMyNmQwMWYxYmI5MmE1ZjgwY2U5MDc0NTA3Yzk4MTVlMzdiMC4uZTU3OGY2NDRiZTY1YTFhNzA5
MTQ4NTg0N2FmYjY4ZGQ5ZDlhMjUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM3Miw3ICsxMzcyLDYgQEAKIAkJNTEwRDRB
MzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0
IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MTEwRkNGQzFFMDM2NDFEMDA2RjhEMEIgLyogSURCQ3Vyc29yUmVjb3JkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwRkNGQjFFMDM2MkE1MDA2RjhE
MEIgLyogSURCQ3Vyc29yUmVjb3JkLmggKi87IH07Ci0JCTUxMUU5N0EzMjA2MzA3NDYwMEFENDU5
OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9u
UG9saWN5Q2hlY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUMxMjYxQzUw
QUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCAqLzsgfTsKIAkJNTExRUMxMkMxQzUw
QUJCRjAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyQTFDNTBBQkJBMDAzMkY5ODMgLyog
U1FMaXRlSURCVHJhbnNhY3Rpb24uaCAqLzsgfTsKIAkJNTExRUMxMzAxQzUwQUJGNTAwMzJGOTgz
IC8qIFNRTGl0ZUlEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTExRUMxMkUxQzUwQUJFQzAwMzJGOTgzIC8qIFNRTGl0ZUlEQkN1cnNvci5o
ICovOyB9OwpAQCAtMjMzNSw2ICsyMzM0LDcgQEAKIAkJODM1RDJENzgxRjVGMUZCRDAwMTQxREVE
IC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVEMkQ3NTFGNUYxRkI4MDAxNDFERUQgLyogSFRNTElu
cHV0RWxlbWVudEVudHJpZXNBUEkuaCAqLzsgfTsKIAkJODM1RDM2MzcxOUZGNjE5MzAwNEM5M0FC
IC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM1RDM2MzYxOUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1
c3RvbS5oICovOyB9OwogCQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVh
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVE
NTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmggKi87IH07CisJCTgzNjJF
OEMxMjBDRUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjJFOEJGMjBDRUY5
Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzY1ODlERTFGNTRBNzY5MDBE
QzMxRjQgLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzY1ODlEOTFGNTRBNzYyMDBEQzMxRjQgLyog
SlNGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmggKi87IH07CiAJCTgzNjU4OUUwMUY1NEE3NkUw
MERDMzFGNCAvKiBKU0ZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjU4OUQ4MUY1NEE3NjIwMERDMzFGNCAv
KiBKU0ZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCAqLzsgfTsKIAkJODM2NzU4N0YxQzU2RTk5
QjAwOEExMDg3IC8qIEpTSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBODFDNTZFOTNFMDBGM0YwRTMgLyogSlNIVE1M
RGF0YUVsZW1lbnQuaCAqLzsgfTsKQEAgLTc4MTUsNyArNzgxNSw2IEBACiAJCTUxMEQ0QTMxMTAz
MTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBGQ0ZCMUUwMzYy
QTUwMDZGOEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSURCQ3Vyc29yUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdGlvblBvbGljeUNoZWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJ
REJTZXJpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IElEQlNlcmlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFF
QzEyNjFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2Fj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJU
cmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05ODM5LDYgKzk4
MzgsNyBAQAogCQk4MzVENTRDMTFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVMaXN0Q3JlYXRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUQ1NEMyMUY0REU1MzQwMEU2MDY3
MSAvKiBGaWxlTGlzdENyZWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RmlsZUxpc3RDcmVhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUY4QjI2
MUQyRDkwQkEwMEU0MDhFQyAvKiBTbG90YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U2xvdGFibGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzYyRThCRjIwQ0VG
OUNCMDAyNDU4ODYgLyogU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzY1ODlEODFGNTRBNzYyMDBEQzMxRjQgLyogSlNG
aWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzY1ODlEOTFGNTRBNzYyMDBEQzMxRjQgLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5
UmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsZVN5c3RlbURp
cmVjdG9yeVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzY1ODlEQTFG
NTRBNzYyMDBEQzMxRjQgLyogSlNGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFj
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDIzMSw3ICsyNDIzMSw2IEBA
CiAJCQkJOTNDQ0YwNUYwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICov
LAogCQkJCTkzQ0NGMDI2MEFGNkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8s
CiAJCQkJOUJBODI3NzgxRjA2MTU2NTAwRjcxRTc1IC8qIE5hdmlnYXRpb25EaXNhYmxlci5oICov
LAotCQkJCTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2su
aCAqLywKIAkJCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHAgKi8sCiAJCQkJOTc5RjQzRDIxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hl
ZHVsZXIuaCAqLywKIAkJCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIuY3BwICovLApAQCAtMjQyNjMsNiArMjQyNjIsNyBAQAogCQkJCUNCQzJE
MjJFMUNFNUI3N0QwMEQxODgwQiAvKiBSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmggKi8sCiAJ
CQkJMjg2RTREQ0IyMDIxMDQ4ODAwMzE1MjM4IC8qIFNlcnZlclRpbWluZy5jcHAgKi8sCiAJCQkJ
Mjg2RTREQ0MyMDIxMDQ4ODAwMzE1MjM4IC8qIFNlcnZlclRpbWluZy5oICovLAorCQkJCTgzNjJF
OEJGMjBDRUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCAqLywK
IAkJCQk1MTMyN0Q1RjExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmNwcCAqLywKIAkJ
CQk1MTMyN0Q1RTExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmggKi8sCiAJCQkJRDAw
MEVEMjUxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmNwcCAqLywKQEAgLTI5NDQ3
LDcgKzI5NDQ3LDYgQEAKIAkJCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZlTm9k
ZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwQjlCNkMwQjc0NzU5OTAwM0VEODkwIC8q
IE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDQ0YwMjcwQUY2
QzUyOTAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTUx
MUU5N0EzMjA2MzA3NDYwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2
aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyog
TmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDE0OSw2ICszMDE0OCw3IEBACiAJ
CQkJMUE0QTk1NEUwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5RUEzMDk5RUI3OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1l
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM2MkU4QzEyMENFRjlDQjAwMjQ1ODg2IC8qIFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OTQ0QTMxODBC
NTdEODAwRjE2NUQ4IC8qIFNpbXBsZUxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTEx
RTA2N0VFMUU2MjQ2RTUwMDE2MkQxNiAvKiBTaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTU4NUQ2RTA0MUExQTc5MkUwMEZBNEYxMiAvKiBTaW1wbGVMaW5lTGF5
b3V0Rmxvd0NvbnRlbnRzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcAppbmRleCAwZjA1YmY2NWEzNWQ2MDdhNjhi
YjI2ZmZkY2Y0Zjc3NjJlNDQ5YWUzLi44ZTY0OTk1YTRjMTM2NmQ0NTFkYmY3ZWQyN2U2MWE5YTZm
Y2Y2YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRy
b2xsZXIuY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9s
bGVyLmgiCiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgotI2luY2x1ZGUgIk5hdmln
YXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MCw3
ICs3MCw3IEBAIHZvaWQgQmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2tPckZvcndhcmQoaW50
IGRpc3RhbmNlKQogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdl
LmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmln
YXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CisgICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBG
cmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZDo6Tm8pOwogfQogCiBib29sIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Z29CYWNrKCkKQEAg
LTc5LDcgKzc5LDcgQEAgYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjaygpCiAgICAg
aWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3BhZ2UuZ29Ub0l0ZW0o
Kml0ZW0sIEZyYW1lTG9hZFR5cGU6OkJhY2ssIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWly
ZSk7CisgICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpCYWNrLCBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAt
ODksNyArODksNyBAQCBib29sIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Z29Gb3J3YXJkKCkKICAg
ICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fcGFnZS5nb1RvSXRl
bSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpS
ZXF1aXJlKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndh
cmQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCAwNDliYTQ3
Y2U0ODFiNGY4ZGQ0OGMzMmY2ZmY3ODBhMzFhM2M1MjNkLi4xMjk3YTc2MWQ3NDk2YTYyNmY1NWM2
N2M2NjQwNWNiZDcwNzc1NWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1
ZXN0LmgKQEAgLTYwLDggKzYwLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2hlY2tO
ZXdXaW5kb3dQb2xpY3koYm9vbCBjaGVja1BvbGljeSkgeyBtX3Nob3VsZENoZWNrTmV3V2luZG93
UG9saWN5ID0gY2hlY2tQb2xpY3k7IH0KICAgICBib29sIHNob3VsZENoZWNrTmV3V2luZG93UG9s
aWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeTsgfQogCi0g
ICAgdm9pZCBzZXRTaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3koYm9vbCBjaGVja1BvbGljeSkg
eyBtX3Nob3VsZENoZWNrTmF2aWdhdGlvblBvbGljeSA9IGNoZWNrUG9saWN5OyB9Ci0gICAgYm9v
bCBzaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENo
ZWNrTmF2aWdhdGlvblBvbGljeTsgfQorICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1
ZTsgfQorICAgIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1
cm4gbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KIAogICAgIGNvbnN0IFN1YnN0aXR1
dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7
IH0KICAgICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRh
KSB7IG1fc3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9CkBAIC05OCw3ICs5OCw3IEBAIHByaXZhdGU6
CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKIAogICAgIGJvb2wgbV9zaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Nob3VsZENoZWNr
TmF2aWdhdGlvblBvbGljeSB7IHRydWUgfTsKKyAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIHsgZmFsc2UgfTsKICAgICBMb2NrSGlzdG9yeSBtX2xvY2tIaXN0b3J5OwogICAg
IExvY2tCYWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0OwogICAgIFNob3VsZFNl
bmRSZWZlcnJlciBtX3Nob3VsZFNlbmRSZWZlcnJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IDNmYjRmMjgwZmEwNmU4MGM2M2Q1NDk0Nzg3ODJjNDM1N2JiNTQ5Yjcu
LmZlYTRlY2ZkZTZiYzI0OTcyYWM1YWFmZjFjMTk4YjU5OGE5ZjcwZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsNyArODcsNiBAQAogI2luY2x1ZGUgIk1lbW9y
eUNhY2hlLmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRp
b25EaXNhYmxlci5oIgotI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1
ZGUgIk5hdmlnYXRpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGFnZUNhY2hlLmgiCkBAIC0xMTUsNiArMTE0LDcgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJp
bmcuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgorI2luY2x1ZGUgIlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIgogI2luY2x1
ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNp
bmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBAIC05NjksNyArOTY5LDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHJlZmVyZXIsIEYKICAgICBpZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVtLT5jaGls
ZHJlbigpLnNpemUoKSAmJiBpc0JhY2tGb3J3YXJkTG9hZFR5cGUobG9hZFR5cGUoKSkgJiYgIW1f
ZnJhbWUuZG9jdW1lbnQoKS0+bG9hZEV2ZW50RmluaXNoZWQoKSkgewogICAgICAgICBpZiAoYXV0
byogY2hpbGRJdGVtID0gcGFyZW50SXRlbS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGlsZEZyYW1l
LT50cmVlKCkudW5pcXVlTmFtZSgpKSkgewogICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVy
KCkubV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IGNoaWxkSXRlbTsKLSAgICAgICAgICAgIGNoaWxk
RnJhbWUtPmxvYWRlcigpLmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oKmNoaWxkSXRlbSwgbG9h
ZFR5cGUoKSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sIE5h
dmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CisgICAgICAgICAgICBjaGlsZEZyYW1lLT5s
b2FkZXIoKS5sb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKCpjaGlsZEl0ZW0sIGxvYWRUeXBlKCks
IE1heUF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtLCBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KQEAgLTE0NTQsNyArMTQ1NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVM
b2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVk
ZWQobG9hZGVyLT5yZXF1ZXN0KCkpOwogICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeVRvTmV3RG9jdW1lbnRMb2FkZXIobV9mcmFtZSwgbG9hZGVyLCByZXF1ZXN0KTsKIAotICAg
IFNldEZvclNjb3BlPGJvb2w+IGN1cnJlbnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5
R3VhcmQobV9jdXJyZW50TG9hZFNob3VsZENoZWNrTmF2aWdhdGlvblBvbGljeSwgcmVxdWVzdC5z
aG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3koKSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3Vy
cmVudExvYWRTaG91bGRCZVRyZWF0ZWRBc0NvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9h
ZFNob3VsZEJlVHJlYXRlZEFzQ29udGludWluZ0xvYWQsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkKCkpOwogICAgIGxvYWQobG9hZGVyLnB0cigpKTsKIH0KIApAQCAtMTQ3MCw3
ICsxNDcwLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QKICAgICBpZiAobV9kb2N1bWVudExv
YWRlcikKICAgICAgICAgbG9hZGVyLT5zZXRPdmVycmlkZUVuY29kaW5nKG1fZG9jdW1lbnRMb2Fk
ZXItPm92ZXJyaWRlRW5jb2RpbmcoKSk7CiAKLSAgICBsb2FkV2l0aERvY3VtZW50TG9hZGVyKGxv
YWRlci5wdHIoKSwgdHlwZSwgV1RGTW92ZShmb3JtU3RhdGUpLCBhbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkwsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVyLnB0cigpLCB0
eXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3VtZW50TG9hZGVyKiBuZXdEb2N1bWVu
dExvYWRlcikKQEAgLTE1MDksMTAgKzE1MDksMTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChE
b2N1bWVudExvYWRlciogbmV3RG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIHR5cGUgPSBGcmFtZUxv
YWRUeXBlOjpSZWxvYWQ7CiAgICAgfQogCi0gICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihuZXdE
b2N1bWVudExvYWRlciwgdHlwZSwgeyB9LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olll
cywgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlLCBbXSB7IH0pOworICAgIGxvYWRXaXRo
RG9jdW1lbnRMb2FkZXIobmV3RG9jdW1lbnRMb2FkZXIsIHR5cGUsIHsgfSwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpZZXMsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFtd
IHsgfSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0eXBlLCBSZWZQdHI8Rm9ybVN0YXRl
PiYmIGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCwgTmF2aWdhdGlvblBvbGljeUNoZWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERv
Y3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdHlwZSwg
UmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IC8vIFJldGFpbiBiZWNhdXNlIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IG1heSByZWxlYXNlIHRo
ZSBsYXN0IHJlZmVyZW5jZSB0byBpdC4KICAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7
CkBAIC0xNTgzLDcgKzE1ODMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50
TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogCiAgICAgbV9m
cmFtZS5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuY2FuY2VsKHRydWUpOwogCi0gICAgaWYgKCFtX2N1
cnJlbnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5KSB7CisgICAgaWYgKG1fY3VycmVu
dExvYWRTaG91bGRCZVRyZWF0ZWRBc0NvbnRpbnVpbmdMb2FkKSB7CiAgICAgICAgIGNvbnRpbnVl
TG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShsb2FkZXItPnJlcXVlc3QoKSwgZm9ybVN0YXRlLmdl
dCgpLCBTaG91bGRDb250aW51ZTo6WWVzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTY5Nyw3ICsxNjk3LDcgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcoY29uc3QgU3RyaW5nJiBlbmNvZGluZykK
IAogICAgIGxvYWRlci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhlbmNvZGluZyk7CiAKLSAgICBsb2Fk
V2l0aERvY3VtZW50TG9hZGVyKGxvYWRlci5wdHIoKSwgRnJhbWVMb2FkVHlwZTo6UmVsb2FkLCB7
IH0sIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOYXZpZ2F0aW9uUG9saWN5Q2hl
Y2s6OlJlcXVpcmUsIFtdIHsgfSk7CisgICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihsb2FkZXIu
cHRyKCksIEZyYW1lTG9hZFR5cGU6OlJlbG9hZCwgeyB9LCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgW10geyB9KTsKIH0K
IAogdm9pZCBGcmFtZUxvYWRlcjo6cmVsb2FkKE9wdGlvblNldDxSZWxvYWRPcHRpb24+IG9wdGlv
bnMpCkBAIC0xNzQ0LDcgKzE3NDQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoT3B0aW9u
U2V0PFJlbG9hZE9wdGlvbj4gb3B0aW9ucykKICAgICAgICAgcmV0dXJuIEZyYW1lTG9hZFR5cGU6
OlJlbG9hZDsKICAgICB9OwogICAgIAotICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVy
LnB0cigpLCBmcmFtZUxvYWRUeXBlRm9yUmVsb2FkT3B0aW9ucyhvcHRpb25zKSwgeyB9LCBBbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1
aXJlLCBbXSB7IH0pOworICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVyLnB0cigpLCBm
cmFtZUxvYWRUeXBlRm9yUmVsb2FkT3B0aW9ucyhvcHRpb25zKSwgeyB9LCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkw6OlllcywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgW10g
eyB9KTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNp
b25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kpCkBAIC0yNzUyLDYgKzI3
NTIsOSBAQCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBGcmFtZUxvYWRlcjo6ZGVmYXVsdFJl
cXVlc3RDYWNoaW5nUG9saWN5KGNvbnN0IFJlc291cgogCiB2b2lkIEZyYW1lTG9hZGVyOjphZGRF
eHRyYUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lTG9hZFR5
cGUgbG9hZFR5cGUsIGJvb2wgaXNNYWluUmVzb3VyY2UpCiB7CisgICAgaWYgKG1fY3VycmVudExv
YWRTaG91bGRCZVRyZWF0ZWRBc0NvbnRpbnVpbmdMb2FkKQorICAgICAgICByZXR1cm47CisKICAg
ICAvLyBEb24ndCBzZXQgdGhlIGNvb2tpZSBwb2xpY3kgVVJMIGlmIGl0J3MgYWxyZWFkeSBiZWVu
IHNldC4KICAgICAvLyBCdXQgbWFrZSBzdXJlIHRvIHNldCBpdCBvbiBhbGwgcmVxdWVzdHMgcmVn
YXJkbGVzcyBvZiBwcm90b2NvbCwgYXMgaXQgaGFzIHNpZ25pZmljYW5jZSBiZXlvbmQgdGhlIGNv
b2tpZSBwb2xpY3kgKDxyZGFyOi8vcHJvYmxlbS82NjE2NjY0PikuCiAgICAgaWYgKHJlcXVlc3Qu
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKS5pc0VtcHR5KCkpIHsKQEAgLTM1NTMsMTQgKzM1NTYsMTQg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFNhbWVEb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0
ZW0pCiAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgcmVhbGx5IGJlIHNwbGl0IGludG8g
YSBjb3VwbGUgcGllY2VzLCBzb21lIG9mCiAvLyB3aGljaCBzaG91bGQgYmUgbWV0aG9kcyBvZiBI
aXN0b3J5Q29udHJvbGxlciBhbmQgc29tZSBvZiB3aGljaCBzaG91bGQgYmUKIC8vIG1ldGhvZHMg
b2YgRnJhbWVMb2FkZXIuCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJ
dGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBGb3JtU3VibWlz
c2lvbkNhY2hlTG9hZFBvbGljeSBjYWNoZUxvYWRQb2xpY3ksIE5hdmlnYXRpb25Qb2xpY3lDaGVj
ayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50
RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBG
b3JtU3VibWlzc2lvbkNhY2hlTG9hZFBvbGljeSBjYWNoZUxvYWRQb2xpY3ksIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpCiB7CiAgICAgLy8g
UmVtZW1iZXIgdGhpcyBpdGVtIHNvIHdlIGNhbiB0cmF2ZXJzZSBhbnkgY2hpbGQgaXRlbXMgYXMg
Y2hpbGQgZnJhbWVzIGxvYWQKICAgICBoaXN0b3J5KCkuc2V0UHJvdmlzaW9uYWxJdGVtKCZpdGVt
KTsKIAogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWluRnJhbWUgPSBJbml0aWF0ZWRCeU1haW5GcmFt
ZTo6VW5rbm93bjsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGN1cnJlbnRMb2FkU2hvdWxkQ2hl
Y2tOYXZpZ2F0aW9uUG9saWN5R3VhcmQobV9jdXJyZW50TG9hZFNob3VsZENoZWNrTmF2aWdhdGlv
blBvbGljeSwgbmF2aWdhdGlvblBvbGljeUNoZWNrICE9IE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6
QnlwYXNzKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjdXJyZW50TG9hZFNob3VsZEJlVHJlYXRl
ZEFzQ29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkU2hvdWxkQmVUcmVhdGVkQXNDb250
aW51aW5nTG9hZCwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzKTsKIAogICAgIGlmIChDYWNoZWRQYWdlKiBjYWNoZWRQYWdlID0g
UGFnZUNhY2hlOjpzaW5nbGV0b24oKS5nZXQoaXRlbSwgbV9mcmFtZS5wYWdlKCkpKSB7CiAgICAg
ICAgIGF1dG8gZG9jdW1lbnRMb2FkZXIgPSBjYWNoZWRQYWdlLT5kb2N1bWVudExvYWRlcigpOwpA
QCAtMzU3MSw3ICszNTc0LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EKICAgICAgICAgZG9j
dW1lbnRMb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oV1RGTW92ZShhY3Rpb24pKTsKIAogICAg
ICAgICBkb2N1bWVudExvYWRlci0+c2V0TGFzdENoZWNrZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCgpKTsKLSAgICAgICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRlciwgbG9h
ZFR5cGUsIHsgfSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIG5hdmlnYXRpb25Q
b2xpY3lDaGVjaywgW10geyB9KTsKKyAgICAgICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihkb2N1
bWVudExvYWRlciwgbG9hZFR5cGUsIHsgfSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZ
ZXMsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgW10geyB9KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMzY2Myw3ICszNjY2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERp
ZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EK
IH0KIAogLy8gTG9hZHMgY29udGVudCBpbnRvIHRoaXMgZnJhbWUsIGFzIHNwZWNpZmllZCBieSBo
aXN0b3J5IGl0ZW0KLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVt
LCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlv
blBvbGljeUNoZWNrKQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZEl0ZW0oSGlzdG9yeUl0ZW0mIGl0
ZW0sIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpCiB7CiAgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9ICZpdGVtOwogICAgIEhpc3RvcnlJdGVtKiBjdXJyZW50SXRlbSA9IGhpc3RvcnkoKS5jdXJy
ZW50SXRlbSgpOwpAQCAtMzY3Miw3ICszNjc1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEl0
ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUsIE5hdmlnYXRpb24K
ICAgICBpZiAoc2FtZURvY3VtZW50TmF2aWdhdGlvbikKICAgICAgICAgbG9hZFNhbWVEb2N1bWVu
dEl0ZW0oaXRlbSk7CiAgICAgZWxzZQotICAgICAgICBsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVt
KGl0ZW0sIGxvYWRUeXBlLCBNYXlBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNzaW9u
SXRlbSwgbmF2aWdhdGlvblBvbGljeUNoZWNrKTsKKyAgICAgICAgbG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShpdGVtLCBsb2FkVHlwZSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3Vi
bWlzc2lvbkl0ZW0sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCk7CiB9CiAKIHZvaWQgRnJh
bWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKQEAg
LTM2ODcsNyArMzY5MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNo
ZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKICAgICBIaXN0b3J5SXRlbSYgaXRlbSA9ICpoaXN0b3J5
KCkucHJvdmlzaW9uYWxJdGVtKCk7CiAKICAgICBzdG9wQWxsTG9hZGVycyhTaG91bGROb3RDbGVh
clByb3Zpc2lvbmFsSXRlbSk7Ci0gICAgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBs
b2FkVHlwZSwgTWF5Tm90QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0s
IE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CisgICAgbG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShpdGVtLCBsb2FkVHlwZSwgTWF5Tm90QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3Jt
U3VibWlzc2lvbkl0ZW0sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogfQogCiBS
ZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4
IGNkMTQ3NTVkMTRhYzNhOGIyMTljNTE0Zjc4OTcxZWE5MWM5MWIxMTcuLjI1ODhmY2EwZWYwMDc3
MDBlZDA2ZDEwNTQ4MjYxNzZmZDA3Mjc2ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCkBAIC04MCw4ICs4MCw4IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN1YmZyYW1l
TG9hZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiAKLWVudW0gY2xhc3MgTmF2aWdhdGlvblBv
bGljeUNoZWNrOwogZW51bSBjbGFzcyBTaG91bGRDb250aW51ZTsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogCiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKQEAgLTEy
OCw3ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxvYWRXaXRo
T3ZlcnJpZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIG92ZXJyaWRlRW5jb2RpbmcpOwogCiAgICAg
dm9pZCBvcGVuKENhY2hlZEZyYW1lQmFzZSYpOwotICAgIHZvaWQgbG9hZEl0ZW0oSGlzdG9yeUl0
ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOworICAgIHZvaWQgbG9h
ZEl0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQpOwogICAgIEhpc3RvcnlJdGVtKiByZXF1ZXN0ZWRIaXN0b3J5SXRlbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVxdWVzdGVkSGlzdG9yeUl0ZW0uZ2V0KCk7IH0KIAogICAgIHZvaWQgcmV0cnlB
ZnRlckZhaWxlZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQoKTsKQEAgLTMyNCw3ICszMjQsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tDb21wbGV0ZW5lc3NOb3coKTsKIAogICAgIHZvaWQg
bG9hZFNhbWVEb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mKTsKLSAgICB2b2lkIGxvYWREaWZmZXJl
bnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBGb3JtU3VibWlzc2lv
bkNhY2hlTG9hZFBvbGljeSwgTmF2aWdhdGlvblBvbGljeUNoZWNrKTsKKyAgICB2b2lkIGxvYWRE
aWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBGb3JtU3Vi
bWlzc2lvbkNhY2hlTG9hZFBvbGljeSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKTsKIAog
ICAgIHZvaWQgbG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCk7CiAKQEAgLTM2Nyw3
ICszNjcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1cmxTZWxlY3RlZChGcmFtZUxvYWRSZXF1
ZXN0JiYsIEV2ZW50Kik7CiAKLSAgICB2b2lkIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1l
bnRMb2FkZXIqLCBGcmFtZUxvYWRUeXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBBbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkwsIE5hdmlnYXRpb25Qb2xpY3lDaGVjaywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsgLy8gQ2FsbHMgY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5
CisgICAgdm9pZCBsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiwgRnJhbWVM
b2FkVHlwZSwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7IC8vIENhbGxzIGNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeQogICAgIHZvaWQg
bG9hZChEb2N1bWVudExvYWRlciopOyAvLyBDYWxscyBsb2FkV2l0aERvY3VtZW50TG9hZGVyCiAK
ICAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUsIFJl
ZlB0cjxGb3JtU3RhdGU+JiYsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExvYWRlcgpAQCAt
NDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxSZXNvdXJjZVJlcXVl
c3RDYWNoZVBvbGljeT4gbV9vdmVycmlkZUNhY2hlUG9saWN5Rm9yVGVzdGluZzsKICAgICBzdGQ6
Om9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBtX292ZXJyaWRlUmVzb3VyY2VMb2FkUHJp
b3JpdHlGb3JUZXN0aW5nOwogICAgIGJvb2wgbV9pc1N0cmljdFJhd1Jlc291cmNlVmFsaWRhdGlv
blBvbGljeURpc2FibGVkRm9yVGVzdGluZyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2N1cnJlbnRM
b2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9jdXJy
ZW50TG9hZFNob3VsZEJlVHJlYXRlZEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OwogCiAgICAg
Ym9vbCBtX2NoZWNraW5nTG9hZENvbXBsZXRlRm9yRGV0YWNobWVudCB7IGZhbHNlIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IGFlZjdiNzgw
ZTIxZmQ4MzBmZThlNzVhZDQ4YzYwYWFkYWJhM2ViZTIuLjQ0YzQzN2U2MWFkNTAwMDkzY2NiMzc5
MjJhNjM3ZTVkNDY5YzYyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcApAQCAtNDMsMTIgKzQzLDEyIEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAi
TmF2aWdhdGlvblBvbGljeUNoZWNrLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
Z2VDYWNoZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaC5oIgor
I2luY2x1ZGUgIlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIgogI2luY2x1ZGUgIlZpc2l0
ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTI5MSw3
ICsyOTEsNyBAQCBib29sIEhpc3RvcnlDb250cm9sbGVyOjpzaG91bGRTdG9wTG9hZGluZ0Zvckhp
c3RvcnlJdGVtKEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVtKQogCiAvLyBNYWluIGZ1bm5lbCBmb3Ig
bmF2aWdhdGluZyB0byBhIHByZXZpb3VzIGxvY2F0aW9uIChiYWNrL2ZvcndhcmQsIG5vbi1zZWFy
Y2ggc25hcC1iYWNrKQogLy8gVGhpcyBpbmNsdWRlcyByZWN1cnNpb24gdG8gaGFuZGxlIGxvYWRp
bmcgaW50byBmcmFtZXNldHMgcHJvcGVybHkKLXZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9J
dGVtKEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVtLCBGcmFtZUxvYWRUeXBlIHR5cGUsIE5hdmlnYXRp
b25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCit2b2lkIEhpc3RvcnlDb250cm9s
bGVyOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgdGFyZ2V0SXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBl
LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
KQogewogICAgIExPRyhIaXN0b3J5LCAiSGlzdG9yeUNvbnRyb2xsZXIgJXAgZ29Ub0l0ZW0gJXAg
dHlwZT0lZCIsIHRoaXMsICZ0YXJnZXRJdGVtLCBzdGF0aWNfY2FzdDxpbnQ+KHR5cGUpKTsKIApA
QCAtMzI2LDE0ICszMjYsMTQgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6Z29Ub0l0ZW0oSGlz
dG9yeUl0ZW0mIHRhcmdldEl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgTmEKICAgICByZWN1cnNp
dmVTZXRQcm92aXNpb25hbEl0ZW0odGFyZ2V0SXRlbSwgY3VycmVudEl0ZW0uZ2V0KCkpOwogCiAg
ICAgLy8gTm93IHRoYXQgYWxsIG90aGVyIGZyYW1lcyBoYXZlIHByb3Zpc2lvbmFsIGl0ZW1zLCBk
byB0aGUgYWN0dWFsIG5hdmlnYXRpb24uCi0gICAgcmVjdXJzaXZlR29Ub0l0ZW0odGFyZ2V0SXRl
bSwgY3VycmVudEl0ZW0uZ2V0KCksIHR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAg
cmVjdXJzaXZlR29Ub0l0ZW0odGFyZ2V0SXRlbSwgY3VycmVudEl0ZW0uZ2V0KCksIHR5cGUsIHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCk7CiB9CiAKIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6
OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcikKIHsKICAgICBtX2RlZmVyc0xvYWRpbmcgPSBk
ZWZlcjsKICAgICBpZiAoIWRlZmVyICYmIG1fZGVmZXJyZWRJdGVtKSB7Ci0gICAgICAgIGdvVG9J
dGVtKCptX2RlZmVycmVkSXRlbSwgbV9kZWZlcnJlZEZyYW1lTG9hZFR5cGUsIE5hdmlnYXRpb25Q
b2xpY3lDaGVjazo6UmVxdWlyZSk7CisgICAgICAgIGdvVG9JdGVtKCptX2RlZmVycmVkSXRlbSwg
bV9kZWZlcnJlZEZyYW1lTG9hZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8p
OwogICAgICAgICBtX2RlZmVycmVkSXRlbSA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzUwLDEw
ICs3NTAsMTAgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlU2V0UHJvdmlzaW9u
YWxJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXQKIAogLy8gV2Ugbm93IHRyYXZlcnNl
IHRoZSBmcmFtZSB0cmVlIGFuZCBpdGVtIHRyZWUgYSBzZWNvbmQgdGltZSwgbG9hZGluZyBmcmFt
ZXMgdGhhdAogLy8gZG8gaGF2ZSB0aGUgY29udGVudCB0aGUgaXRlbSByZXF1ZXN0cy4KLXZvaWQg
SGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBI
aXN0b3J5SXRlbSogZnJvbUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgTmF2aWdhdGlvblBvbGlj
eUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKK3ZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJl
Y3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbUl0ZW0s
IEZyYW1lTG9hZFR5cGUgdHlwZSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCkKIHsKICAgICBpZiAoIWl0ZW1zQXJlQ2xvbmVzKGl0ZW0sIGZy
b21JdGVtKSkgewotICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUs
IG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgICAgIG1fZnJhbWUubG9hZGVyKCkubG9hZEl0
ZW0oaXRlbSwgdHlwZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6
OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbUl0
CiAgICAgICAgIEhpc3RvcnlJdGVtKiBmcm9tQ2hpbGRJdGVtID0gZnJvbUl0ZW0tPmNoaWxkSXRl
bVdpdGhUYXJnZXQoY2hpbGRGcmFtZU5hbWUpOwogICAgICAgICBBU1NFUlQoZnJvbUNoaWxkSXRl
bSk7CiAgICAgICAgIGlmIChGcmFtZSogY2hpbGRGcmFtZSA9IG1fZnJhbWUudHJlZSgpLmNoaWxk
KGNoaWxkRnJhbWVOYW1lKSkKLSAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmhpc3Rv
cnkoKS5yZWN1cnNpdmVHb1RvSXRlbShjaGlsZEl0ZW0sIGZyb21DaGlsZEl0ZW0sIHR5cGUsIG5h
dmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgICAgICAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS5o
aXN0b3J5KCkucmVjdXJzaXZlR29Ub0l0ZW0oY2hpbGRJdGVtLCBmcm9tQ2hpbGRJdGVtLCB0eXBl
LCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaAppbmRleCA0NTM1YWFlYjM4MGQxODVjOWExMTE5
ZmI1ODg0YzU4ZjMwZjU5MGY1Li40ODkzNDQwZTU2MDU3M2QwMGUwZTNlZDM5NGU2MmIyY2FhMjVm
OTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaApAQCAtNDAs
NyArNDAsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOwogCi1lbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lDaGVjazsKK2Vu
dW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogCiBzdHJ1Y3QgU3RyaW5nV2l0
aERpcmVjdGlvbjsKIApAQCAtOTQsMTQgKzk0LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
ZnJpZW5kIGNsYXNzIFBhZ2U7CiAgICAgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJ
dGVtKEhpc3RvcnlJdGVtJikgY29uc3Q7Ci0gICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYs
IEZyYW1lTG9hZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgdm9pZCBnb1RvSXRl
bShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCk7CiAKICAgICB2b2lkIGluaXRpYWxpemVJdGVtKEhpc3RvcnlJdGVtJik7CiAgICAgUmVmPEhp
c3RvcnlJdGVtPiBjcmVhdGVJdGVtKCk7CiAgICAgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGVJdGVt
VHJlZShGcmFtZSYgdGFyZ2V0RnJhbWUsIGJvb2wgY2xpcEF0VGFyZ2V0KTsKIAogICAgIHZvaWQg
cmVjdXJzaXZlU2V0UHJvdmlzaW9uYWxJdGVtKEhpc3RvcnlJdGVtJiwgSGlzdG9yeUl0ZW0qKTsK
LSAgICB2b2lkIHJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiwgSGlzdG9yeUl0ZW0qLCBG
cmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOworICAgIHZvaWQgcmVjdXJzaXZl
R29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBIaXN0b3J5SXRlbSosIEZyYW1lTG9hZFR5cGUsIFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk7CiAgICAgYm9vbCBpc1JlcGxhY2VMb2FkVHlwZVdpdGhQ
cm92aXNpb25hbEl0ZW0oRnJhbWVMb2FkVHlwZSk7CiAgICAgYm9vbCBpc1JlbG9hZFR5cGVXaXRo
UHJvdmlzaW9uYWxJdGVtKEZyYW1lTG9hZFR5cGUpOwogICAgIHZvaWQgcmVjdXJzaXZlVXBkYXRl
Rm9yQ29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlv
blBvbGljeUNoZWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblBvbGljeUNo
ZWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyMTc4ZWZkY2E4ZWQwZGE4ZTM5
YTI2ZGUyYWM1ZDg2Y2IzYzhiNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1lbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lDaGVjayB7Ci0gICAgUmVxdWlyZSwKLSAgICBC
eXBhc3MsCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLW5hbWVzcGFjZSBXVEYgewot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lD
aGVjaz4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6
Ok5hdmlnYXRpb25Qb2xpY3lDaGVjaywKLSAgICAgICAgV2ViQ29yZTo6TmF2aWdhdGlvblBvbGlj
eUNoZWNrOjpSZXF1aXJlLAotICAgICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6
OkJ5cGFzcwotICAgID47Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NGVjOWU1Njc4MjM2YWE5YWIyNmQ1MTQxNGYxYTllZDJkYjlmODMwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBObywgWWVzIH07CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkPiB7CisgICAgdXNpbmcgdmFs
dWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5v
LAorICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcworICAg
ID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDllOWRl
ZmM4ZjRiMmQ3NDQzNGJmYTZhM2U0YTk3NGY4NzI0NGI1MWYuLjU5YTc4NzZkZDJiY2IwMGVmNjY3
ZGQyZGFjNWY0Mjg4YjY4MjA1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNDc2LDcgKzQ3Niw3
IEBAIHZvaWQgUGFnZTo6c2V0T3BlbmVkQnlET00oKQogICAgIG1fb3BlbmVkQnlET00gPSB0cnVl
OwogfQogCi12b2lkIFBhZ2U6OmdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRU
eXBlIHR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCit2
b2lkIFBhZ2U6OmdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIHR5cGUs
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQp
CiB7CiAgICAgLy8gc3RvcEFsbExvYWRlcnMgbWF5IGVuZCB1cCBydW5uaW5nIG9ubG9hZCBoYW5k
bGVycywgd2hpY2ggY291bGQgY2F1c2UgZnVydGhlciBoaXN0b3J5IHRyYXZlcnNhbHMgdGhhdCBt
YXkgbGVhZCB0byB0aGUgcGFzc2VkIGluIEhpc3RvcnlJdGVtCiAgICAgLy8gYmVpbmcgZGVyZWYo
KS1lZC4gTWFrZSBzdXJlIHdlIGNhbiBzdGlsbCB1c2UgaXQgd2l0aCBIaXN0b3J5Q29udHJvbGxl
cjo6Z29Ub0l0ZW0gbGF0ZXIuCkBAIC00ODYsNyArNDg2LDcgQEAgdm9pZCBQYWdlOjpnb1RvSXRl
bShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBOYXZpZ2F0aW9uUG9saWN5
Q2hlY2sKICAgICBpZiAoZnJhbWVMb2FkZXIuaGlzdG9yeSgpLnNob3VsZFN0b3BMb2FkaW5nRm9y
SGlzdG9yeUl0ZW0oaXRlbSkpCiAgICAgICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS5zdG9wQWxs
TG9hZGVyc0FuZENoZWNrQ29tcGxldGVuZXNzKCk7CiAKLSAgICBtX21haW5GcmFtZS0+bG9hZGVy
KCkuaGlzdG9yeSgpLmdvVG9JdGVtKGl0ZW0sIHR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7
CisgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLmhpc3RvcnkoKS5nb1RvSXRlbShpdGVtLCB0eXBl
LCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOwogfQogCiB2b2lkIFBhZ2U6OnNldEdyb3Vw
TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDJiNjMyOGFhMTNmOGRj
MTRlYWRjOGEzYjgwNWIxMWY0YTFiMmI0MmYuLjZiODQ4MmFkMjNlODg3ZjdkMDU1NjFjMDc1Y2Yz
YjZiOGJlODE0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNTYsOCArMTU2LDggQEAgZW51bSBjbGFz
cyBFdmVudFRocm90dGxpbmdCZWhhdmlvciB7CiAKIGVudW0gY2xhc3MgQ2FuV3JhcCA6IGJvb2w7
CiBlbnVtIGNsYXNzIERpZFdyYXAgOiBib29sOwotZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5
Q2hlY2s7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeTsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogCiBjbGFzcyBQYWdlIDogcHVibGljIFN1cHBsZW1lbnRh
YmxlPFBhZ2U+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlKTsKQEAgLTE5NCw3ICsx
OTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBvcGVuZWRCeURPTSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0T3BlbmVkQnlET00oKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ29Ub0l0ZW0oSGlz
dG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRHcm91cE5hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3Ry
aW5nJiBncm91cE5hbWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0xvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmNwcAppbmRleCBhNjc5MWVmYTA3NGRmZTUwZDU5ZmUwYTFjZTZmZWVhMjQ2ZDNkNWZlLi4xN2Qw
MzJhMjM0YWI2NzFjZTVhZDAwMTI3ZGYxOTQwNjBlYzliNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgTG9hZFBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1
bnJlYWNoYWJsZVVSTFN0cmluZzsKICAgICBlbmNvZGVyIDw8IHByb3Zpc2lvbmFsTG9hZEVycm9y
VVJMU3RyaW5nOwogICAgIGVuY29kZXIgPDwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsK
LSAgICBlbmNvZGVyIDw8IHNob3VsZENoZWNrTmF2aWdhdGlvblBvbGljeTsKKyAgICBlbmNvZGVy
IDw8IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBlbmNvZGVyIDw8IHVzZXJEYXRh
OwogCiAgICAgcGxhdGZvcm1FbmNvZGUoZW5jb2Rlcik7CkBAIC0xMDMsNyArMTAzLDcgQEAgYm9v
bCBMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFt
ZXRlcnMmIGRhdGEpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGRhdGEuc2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5KSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGRhdGEuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLnVzZXJEYXRhKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4IDg0MDJkZGM4NTAwMmE1YWNh
MGNlMDFmMzEwY2FlYmFiMDhmMWZkNWMuLjVhMWIzNDg0YWY1ZDllODZiYWIzNjcxNjgzYzYzMTQ5
OTUxZWJhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtNjIsNyAr
NjIsNyBAQCBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnMgewogICAgIFN0cmluZyBwcm92aXNpb25hbExv
YWRFcnJvclVSTFN0cmluZzsKIAogICAgIHVpbnQ2NF90IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k7Ci0gICAgYm9vbCBzaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3kgeyB0cnVlIH07Cisg
ICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OwogICAgIFVzZXJE
YXRhIHVzZXJEYXRhOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3OTJiNDU1ZTg2YjcxNjQ2OWFjNmI1OTAyYzk0ZDQ0
MWY4YzZlNDAxLi5jMWM5NjFkODIyNTZhOWIwNDk1MTZhZWJhOGI1OWZhZDc4YjJmMDlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzNiwxMyArMTM2LDEz
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRlIDxXZWJDb3JlL01J
TUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvTmF2aWdhdGlvblBvbGljeUNoZWNrLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1
YmxpY1N1ZmZpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRPYmplY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NTTEtleUdlbmVyYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VyaWFsaXplZENyeXB0b0tleVdyYXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VGV4dEluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkBAIC03OTQsNyArNzk0
LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzc0ZvclJlbG9hZCgpCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3Rh
dGUtPmNyZWF0ZVJlbG9hZE5hdmlnYXRpb24oKTsKIAogICAgIC8vIFdlIGFsbG93IHN0YWxlIGNv
bnRlbnQgd2hlbiByZWxvYWRpbmcgYSBXZWJQcm9jZXNzIHRoYXQncyBiZWVuIGtpbGxlZCBvciBj
cmFzaGVkLgotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tG
b3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExpc3Qt
PmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0Zvcndh
cmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSksIG1fcGFnZUlEKTsKKyAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdh
dGlvbi0+bmF2aWdhdGlvbklEKCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5p
dGVtSUQoKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6Ok5vKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2
ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiAKICAgICByZXR1cm4gV1RGTW92ZShuYXZpZ2F0aW9uKTsK
QEAgLTgxMyw3ICs4MTMsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6
OnJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcgogCiAgICAgYXV0byBu
YXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlv
bihpdGVtLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSwgRnJhbWVMb2FkVHlwZTo6
SW5kZXhlZEJhY2tGb3J3YXJkKTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgaXRl
bS5pdGVtSUQoKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBOYXZpZ2F0aW9u
UG9saWN5Q2hlY2s6OlJlcXVpcmUpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24tPm5hdmlnYXRp
b25JRCgpLCBpdGVtLml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQs
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIAogICAgIHJldHVybiBXVEZNb3Zl
KG5hdmlnYXRpb24pOwpAQCAtOTY0LDExICs5NjQsMTEgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBT
aG8KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25h
dmlnYXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVz
dChyZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpOwotICAgIGxvYWRS
ZXF1ZXN0V2l0aE5hdmlnYXRpb24obmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShyZXF1ZXN0KSwg
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIE5hdmlnYXRpb25Qb2xpY3lD
aGVjazo6UmVxdWlyZSk7CisgICAgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvbihuYXZpZ2F0aW9u
LmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1
c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgcmV0dXJuIFdU
Rk1vdmUobmF2aWdhdGlvbik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdp
dGhOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIE5hdmlnYXRpb25Qb2xpY3lDaGVj
ayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RX
aXRoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKQogewogICAgIEFTU0VSVCghbV9p
c0Nsb3NlZCk7CiAKQEAgLTk4NSw3ICs5ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJl
cXVlc3RXaXRoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlc291cgog
ICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSAodWludDY0X3Qpc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVz
ZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQo
KSk7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5ID0gbmF2
aWdhdGlvblBvbGljeUNoZWNrID09IE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZTsKKyAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7CiAg
ICAgYm9vbCBjcmVhdGVkRXh0ZW5zaW9uID0gbWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lv
bkhhbmRsZSh1cmwsIGxvYWRQYXJhbWV0ZXJzLnNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAg
IGlmIChjcmVhdGVkRXh0ZW5zaW9uKQogICAgICAgICBtX3Byb2Nlc3MtPndpbGxBY3F1aXJlVW5p
dmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKCk7CkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBS
ZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0o
V2ViQmFja0ZvcndhcmRMaXN0SXRlbQogICAgIGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJl
bnRJdGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50KGl0ZW0pKQogICAgICAgICBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbihpdGVtLCBt
X2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSwgZnJhbWVMb2FkVHlwZSk7CiAKLSAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2
aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgaXRlbS5pdGVtSUQoKSwg
ZnJhbWVMb2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKSwgbV9wYWdlSUQp
OworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJk
SXRlbShuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLml0
ZW1JRCgpLCBmcmFtZUxvYWRUeXBlLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKSwg
bV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7
CiAKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKQEAgLTI0OTYsNyArMjQ5Niw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9u
JiBuYXZpZ2F0aW9uLCBSCiAgICAgICAgICAgICByZXR1cm4gJml0ZW0gIT0gdGFyZ2V0SXRlbTsK
ICAgICAgICAgfSk7CiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
VXBkYXRlQmFja0ZvcndhcmRMaXN0Rm9yUmVhdHRhY2goV1RGTW92ZShpdGVtU3RhdGVzKSksIG1f
cGFnZUlEKTsKLSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1Rv
QmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0tPml0ZW1JRCgp
LCAqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgTmF2aWdhdGlvblBvbGlj
eUNoZWNrOjpCeXBhc3MpLCBtX3BhZ2VJRCk7CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25J
RCgpLCBpdGVtLT5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBl
KCksIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzKSwgbV9wYWdlSUQpOwogICAgICAg
ICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogCiAgICAgICAgIHJl
dHVybjsKQEAgLTI1MDQsNyArMjUwNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5h
dmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSCiAKICAg
ICAvLyBGSVhNRTogV29yayBvdXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBw
b2xpY3kgZGVsZWdhdGUsIGV0YwogICAgIEFTU0VSVCghbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVz
dCgpLmlzRW1wdHkoKSk7Ci0gICAgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvbihuYXZpZ2F0aW9u
LCBSZXNvdXJjZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0KCkgfSwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVt
ZXMsIG51bGxwdHIsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKTsKKyAgICBsb2FkUmVx
dWVzdFdpdGhOYXZpZ2F0aW9uKG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCB7IG5hdmlnYXRp
b24uY3VycmVudFJlcXVlc3QoKSB9LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcywgbnVsbHB0ciwgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpZZXMpOwogCiAgICAgLy8gTm9ybWFsbHksIG5vdGlmaWNhdGlvbiBvZiBh
IHNlcnZlciByZWRpcmVjdCBjb21lcyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuCiAgICAg
Ly8gSWYgd2UgYXJlIHByb2Nlc3Mgc3dhcHBpbmcgaW4gcmVzcG9uc2UgdG8gYSBzZXJ2ZXIgcmVk
aXJlY3QgdGhlbiB0aGF0IG5vdGlmaWNhdGlvbiB3aWxsIG5vdCBjb21lIGZyb20gdGhlIG5ldyBX
ZWJDb250ZW50IHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDI4OGEzNmQwZDE5N2UyNDE5ZjRhOTMwNTA2YzEyOGYxNjJjZWE1NmQuLjAzOTI1MGYxOTNk
MjdiOGY3NjQ2ZmQwMWI0OGJmMDNiNmNmYjU4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0xNzEsOSArMTcxLDkgQEAgZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24g
OiB1aW50OF90OwogCiBlbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7CiBlbnVtIGNsYXNzIEhhc0lu
c2VjdXJlQ29udGVudDsKLWVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOwogZW51bSBj
bGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb247CiBlbnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKK2Vu
dW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogCiBzdHJ1Y3QgQXBwbGljYXRp
b25NYW5pZmVzdDsKIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwpAQCAtMTQ4Myw3
ICsxNDgzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiByZWF0dGFj
aFRvV2ViUHJvY2Vzc0ZvclJlbG9hZCgpOwogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IHJl
YXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpOwogCi0g
ICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVj
ayk7CisgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiYs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCk7CiAKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZyk7CiAg
ICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3Qg
U3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGFmNmRjNjVhZjA0NTQ2Njdj
OTBjNjU4ODMwZjc3NjQ1ZDJmMWU0MGMuLjQzYmQwYzA4NzA4MDQyZjQ1MDUxNjU3NDRiODU0NDZk
ODg2ZTZlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0xMjY4LDcgKzEyNjgsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KExvYWRQ
YXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0IHsgKm1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgbG9hZFBhcmFtZXRlcnMucmVx
dWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cgfTsKICAg
ICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IGV4dGVybmFsVVJMc1BvbGljeSA9IHN0YXRp
Y19jYXN0PFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+KGxvYWRQYXJhbWV0ZXJzLnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeShleHRlcm5hbFVSTHNQb2xpY3kpOwotICAgIGZyYW1lTG9h
ZFJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5KGxvYWRQYXJhbWV0ZXJzLnNo
b3VsZENoZWNrTmF2aWdhdGlvblBvbGljeSk7CisgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQobG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkKTsKIAogICAgIGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmxvYWRSZXF1
ZXN0KFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogCkBAIC0xMzkzLDcgKzEzOTMsNyBAQCB2
b2lkIFdlYlBhZ2U6OnJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9h
ZE9wdGlvbnMsIFNhbmRib3hFeHRlbgogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpnb1RvQmFj
a0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgQmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciYgYmFja0ZvcndhcmRJdGVtSUQsIEZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRU
eXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQordm9pZCBX
ZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgYmFja0ZvcndhcmRJdGVtSUQsIEZyYW1lTG9hZFR5
cGUgYmFja0ZvcndhcmRUeXBlLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkKQogewogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBz
dG9wcGVyOwogCkBAIC0xNDA5LDcgKzE0MDksNyBAQCB2b2lkIFdlYlBhZ2U6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBCYWNrRm9yd2FyZEl0ZW1JZAog
ICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKICAgICBtX3BlbmRpbmdOYXZpZ2F0
aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CiAKLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVtLCBiYWNr
Rm9yd2FyZFR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CisgICAgbV9wYWdlLT5nb1RvSXRl
bSgqaXRlbSwgYmFja0ZvcndhcmRUeXBlLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OnRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNjM0ODVmYzhlN2YxZTM0Nzkx
NmM4YTVlNTc0MWRiYzMzZTBjMWIxYy4uZGIyMmMxNjk3OWQzYzZkYTIyYzVmMGU4MzEzYmIwMGJi
MzI2M2RhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTU3LDcgKzE1Nyw3IEBAIGNsYXNzIFVSTDsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIAog
ZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7Ci1lbnVtIGNsYXNzIE5hdmlnYXRpb25Q
b2xpY3lDaGVjazsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogZW51
bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CiAK
IHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwpAQCAtMTE2MCw3ICsxMTYwLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGNvbnN0IExvYWRQYXJh
bWV0ZXJzJik7CiAgICAgdm9pZCBuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhj
b25zdCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6SW50UG9pbnQgZG9jdW1lbnRQb2ludCwgV2ViQ29y
ZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpOwogICAgIHZvaWQgcmVsb2FkKHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgdWludDMyX3QgcmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiYpOwotICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBXZWJDb3JlOjpGcmFt
ZUxvYWRUeXBlLCBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOworICAgIHZvaWQgZ29U
b0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlLCBXZWJDb3Jl
OjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCk7CiAgICAgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29s
IGlzS2V5Ym9hcmRFdmVudFZhbGlkLCBjb25zdCBXZWJLZXlib2FyZEV2ZW50JiwgQ2FsbGJhY2tJ
RCk7CiAgICAgdm9pZCB1cGRhdGVJc0luV2luZG93KGJvb2wgaXNJbml0aWFsU3RhdGUgPSBmYWxz
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgppbmRleCBkMjE2ZjViZWRhYzMwNjdiYmYwNmJlY2M1OTNhOGE2ZDNiZGJlZTFl
Li41ZTk2YTdiZTk1ZmI0MzYyM2JjZjExNGFmNmYwMWUyNDdhOTY5ZWFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAg
LTEzOSw3ICsxMzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBTY3JvbGxCeSh1aW50MzJfdCBzY3JvbGxEaXJlY3Rpb24sIHVpbnQzMl90IHNjcm9sbEdyYW51
bGFyaXR5KQogICAgIENlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKQogCi0gICAgR29Ub0Jh
Y2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNr
Rm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBlbnVtIFdlYkNvcmU6OkZy
YW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xp
Y3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVu
dGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBlbnVtIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFj
a0ZvcndhcmRUeXBlLCBlbnVtIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFdlYkNvcmU6OlVSTCB1cmwsIHVpbnQ2NF90IGZyYW1l
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNDA3
N2U5MWFiMTJkN2ZiMDdiNzQwY2QwNTkxZTI5YjZmZGE4MWFkMy4uYmRmOTdlNzhlZWFhOWZmN2Qy
ODgwMjU1NjJmY2NlZGFiYTFmN2JjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQpAQCAtMTczLDcgKzE3Myw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVU
eXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9OYXZpZ2F0aW9uUG9s
aWN5Q2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL05vZGVMaXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlv
bi5oPgpAQCAtMTk4LDYgKzE5Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NldHRpbmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TdHlsZVByb3BlcnRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlc291cmNlRGVjb2Rl
ci5oPgpAQCAtMjYzNyw3ICsyNjM3LDcgQEAgLSAodm9pZClfbG9hZEJhY2tGb3J3YXJkTGlzdEZy
b21PdGhlclZpZXc6KFdlYlZpZXcgKilvdGhlclZpZXcKICAgICB9CiAKICAgICBBU1NFUlQobmV3
SXRlbVRvR29Ubyk7Ci0gICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVtKCpuZXdJdGVtVG9Hb1Rv
LCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVj
azo6UmVxdWlyZSk7CisgICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVtKCpuZXdJdGVtVG9Hb1Rv
LCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6Tm8pOwogfQogCiAtICh2b2lkKV9zZXRGb3JtRGVsZWdhdGU6IChpZDxXZWJGb3Jt
RGVsZWdhdGU+KWRlbGVnYXRlCkBAIC02NDYzLDcgKzY0NjMsNyBAQCAtIChCT09MKWdvVG9CYWNr
Rm9yd2FyZEl0ZW06KFdlYkhpc3RvcnlJdGVtICopaXRlbQogICAgICAgICByZXR1cm4gTk87CiAK
ICAgICBBU1NFUlQoaXRlbSk7Ci0gICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVtKCpjb3JlKGl0
ZW0pLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lD
aGVjazo6UmVxdWlyZSk7CisgICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVtKCpjb3JlKGl0ZW0p
LCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6Tm8pOwogICAgIHJldHVybiBZRVM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5jcHAKaW5kZXggMzQzNjZlYTI2NGE1ZGYwZTYzZmNmMjE3MDJiNTU3OGRjNTE5OTliZi4u
YzllNTIxMzdkZjFmMmM1ZDk5MjE1ZjcwMmFmYmM2OTg3MmZkNDE5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAKQEAgLTEyNiw3ICsxMjYsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
TUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL05hdmln
YXRpb25Qb2xpY3lDaGVjay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgpAQCAtMTU3LDYgKzE1Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lz
dGVtSW5mby5oPgpAQCAtMzQzOCw3ICszNDM4LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojpnb1RvQmFj
a0ZvcndhcmRJdGVtKF9Jbl9vcHRfIElXZWJIaXN0b3J5SXRlbSogaXRlbSwgX091dF8gQk9PTCoK
ICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwogCi0gICAgbV9wYWdlLT5n
b1RvSXRlbSgqd2ViSGlzdG9yeUl0ZW0tPmhpc3RvcnlJdGVtKCksIEZyYW1lTG9hZFR5cGU6Oklu
ZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKKyAgICBt
X3BhZ2UtPmdvVG9JdGVtKCp3ZWJIaXN0b3J5SXRlbS0+aGlzdG9yeUl0ZW0oKSwgRnJhbWVMb2Fk
VHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5v
KTsKICAgICAqc3VjY2VlZGVkID0gVFJVRTsKIAogICAgIHJldHVybiBTX09LOwpAQCAtNTk3NSw3
ICs1OTc1LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojpsb2FkQmFja0ZvcndhcmRMaXN0RnJvbU90aGVy
VmlldyhfSW5fb3B0XyBJV2ViVmlldyogb3RoZXJWaWV3KQogICAgIH0KICAgICAKICAgICBBU1NF
UlQobmV3SXRlbVRvR29Ubyk7Ci0gICAgbV9wYWdlLT5nb1RvSXRlbSgqbmV3SXRlbVRvR29Ubywg
RnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6
OlJlcXVpcmUpOworICAgIG1fcGFnZS0+Z29Ub0l0ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1lTG9h
ZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
byk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlOTM5M2UzMzczZjE0ODZjMWI1YWQ3
ZWFiN2U0ZjA3NDQxNzJhMGFkLi5jYWMyNDU5YzcxMjM5YTU3N2Q2NGI2ZjhmYzE4N2E0ZWY4OWE3
MWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDYtMTEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1y
ZWRpcmVjdC0zMDcuaHRtbCBmYWlscyB3aXRoIFBTT04gZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwNy1w
c29uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
b3JzLXBvc3QtcmVkaXJlY3QtMzA3LXBzb24uaHRtbDogQWRkZWQuCisKIDIwMTgtMDYtMTEgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBlbmFibGluZyBQ
U09OIGluIGxheW91dCB0ZXN0cyB3aXRob3V0IHdpbmRvdy5vcGVuIHN1cHBvcnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMw
Ny1wc29uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29y
cy1wb3N0LXJlZGlyZWN0LTMwNy1wc29uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWMxYTc2
YzRjZTEwNjc4Njg4YTJjNTFlZGU1NDJkNWZiOGI5Y2M5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3LXBzb24t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1RoZXJlIHdhcyBubyBvcmlnaW4gaGVhZGVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRp
cmVjdC0zMDctcHNvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb3Jz
LXBvc3QtcmVkaXJlY3QtMzA3LXBzb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzNmZjc1YzVhNDg0NTFh
NjRhZmJkMDA0ODVkNTBkZGZiNThjMTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzA3LXBzb24uaHRtbApAQCAt
MCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uPXRydWUgXSAtLT4KKzxoZWFkPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKworVGhpcyB0ZXN0IGlzIGRlc2lnbmVkIHRvIHdvcmsgb25seSB3aGVuIGxvYWRlZCBm
cm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorCis8Zm9ybSBpZD0ndGVzdEZvcm0nIG1ldGhvZD0n
UE9TVCc+Cis8aW5wdXQgaWQ9J3JlZGlyY29kZScgdHlwZT0naGlkZGVuJyBuYW1lPSdyZWRpcmNv
ZGUnIHZhbHVlPSczMDcnPgorPC9mb3JtPgorCis8c2NyaXB0PgorCit2YXIgZm9ybSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Rm9ybScpOworZm9ybS5hY3Rpb24gPSAiL3Jlc291cmNl
cy9yZWRpcmVjdC5waHA/Y29kZT0zMDcmdXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS9yZXNvdXJjZXMvY29ycy1wb3N0LXJlZGlyZWN0LXRhcmdldC5waHAiOworZm9ybS5zdWJtaXQo
KTsKKyAKKzwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>