<?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>196484</bug_id>
          
          <creation_ts>2019-04-02 00:19:03 -0700</creation_ts>
          <short_desc>Web Inspector: fake value descriptors for promises add a catch handler, preventing &quot;rejectionhandled&quot; events from being fired</short_desc>
          <delta_ts>2019-12-19 09:02:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=205439</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1523239</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-02 00:19:03 -0700</bug_when>
    <thetext>```
window.addEventListener(&quot;unhandledrejection&quot;, (event) =&gt; {
    console.log(&quot;unhandledrejection&quot;, event);
});

window.addEventListener(&quot;rejectionhandled&quot;, (event) =&gt; {
    console.log(&quot;rejectionhandled&quot;, event);
});

var promise = Promise.reject(42);

setTimeout(() =&gt; {
    promise.catch((x) =&gt; {
        console.log(x);
    });
}, 500);
```

Running that code with Web Inspector open will cause the following to be logged:
1
[Log] unhandledrejection – PromiseRejectionEvent { ... }
[Error] Unhandled Promise Rejection: 42
[Log] 42

There should also be a &quot;[Log] rejectionhandled - PromiseRejectionEvent { ... }&quot;, but that doesn&apos;t get fired because when `InjectedScript` creates a fake value descriptor (since there is a native getter `PromiseRejectionEvent.prototype.get promise`), it adds a `catch` handler to the promise to prevent &quot;The PromiseRejectionEvent.promise getter can only be used on instances of PromiseRejectionEvent&quot; messages from being logged to the console.  Since this `catch` handler is added as a response to &quot;unhandledrejection&quot;, it becomes handled and is therefore no longer kept track of to fire a &quot;rejectionhandled&quot; when a `catch` handler is added.

&lt;https://html.spec.whatwg.org/multipage/webappapis.html#unhandled-promise-rejections&gt;

If the &quot;unhandledrejection&quot; event listener is removed (or the `event` value isn&apos;t logged to the console), the &quot;rejectionhandled&quot; event is fired as expected, because we don&apos;t generate a preview (which involves generating a fake value descriptor).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523240</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-02 00:19:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/49114725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523243</commentid>
    <comment_count>2</comment_count>
      <attachid>366474</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-02 00:35:49 -0700</bug_when>
    <thetext>Created attachment 366474
Patch

For bots, to see if any tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527274</commentid>
    <comment_count>3</comment_count>
      <attachid>366474</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-04-15 11:26:50 -0700</bug_when>
    <thetext>Comment on attachment 366474
Patch

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

r- just because this needs a test and we should be able to add one. Otherwise this looks great.

&gt; Source/JavaScriptCore/runtime/ErrorInstance.h:69
&gt; +    bool isNativeGetterTypeError() { return m_nativeGetterTypeError; }

Nit: `const`

&gt; Source/WebCore/Modules/streams/WritableStream.js:157
&gt; +        return @Promise.@reject(@makeGetterTypeError(&quot;WritableStream&quot;, &quot;closed&quot;));

Awesome!

&gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:260
&gt; +JSC::EncodedJSValue createRejectedPromiseWithTypeError(JSC::ExecState&amp;, const String&amp;, bool forNativeGetter);

Nit: This boolean should really be an enum ForNativeGetter { Yes, No }. Right now at callsites it is not easily readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527385</commentid>
    <comment_count>4</comment_count>
      <attachid>367455</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-15 13:53:43 -0700</bug_when>
    <thetext>Created attachment 367455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527391</commentid>
    <comment_count>5</comment_count>
      <attachid>367457</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-15 14:06:11 -0700</bug_when>
    <thetext>Created attachment 367457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527397</commentid>
    <comment_count>6</comment_count>
      <attachid>367457</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-04-15 14:18:54 -0700</bug_when>
    <thetext>Comment on attachment 367457
Patch

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

&gt; LayoutTests/inspector/runtime/promise-native-getter.html:22
&gt; +    }, 5);

I&apos;d make this 50 instead of 5, but it shouldn&apos;t really matter as long as it is enough of a tick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527398</commentid>
    <comment_count>7</comment_count>
      <attachid>367457</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-04-15 14:19:18 -0700</bug_when>
    <thetext>Comment on attachment 367457
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527424</commentid>
    <comment_count>8</comment_count>
      <attachid>367461</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-15 14:42:07 -0700</bug_when>
    <thetext>Created attachment 367461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527527</commentid>
    <comment_count>9</comment_count>
      <attachid>367461</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-15 17:02:38 -0700</bug_when>
    <thetext>Comment on attachment 367461
Patch

Clearing flags on attachment: 367461

Committed r244312: &lt;https://trac.webkit.org/changeset/244312&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527528</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-15 17:02:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366474</attachid>
            <date>2019-04-02 00:35:49 -0700</date>
            <delta_ts>2019-04-15 13:53:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196484-20190402003548.patch</filename>
            <type>text/plain</type>
            <size>21616</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjZjk0NDQwOWNjMGQzMGNhYTNjODJmNGM1MDJl
NDA3YzQ0OWJmNmUuLjhkZTY3YjI3N2Y3NzhlMzViZmNiZGQ5YTZkNmIyYTA1MThkZWI2ZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA0LTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
YWtlIHZhbHVlIGRlc2NyaXB0b3JzIGZvciBwcm9taXNlcyBhZGQgYSBjYXRjaCBoYW5kbGVyLCBw
cmV2ZW50aW5nICJyZWplY3Rpb25oYW5kbGVkIiBldmVudHMgZnJvbSBiZWluZyBmaXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDg0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80OTExNDcyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGFkZCBhIGNhdGNoIGhhbmRsZXIgd2hlbiB0aGUg
cHJvbWlzZSBpcyByZWFjaGFibGUgdmlhIGEgbmF0aXZlIGdldHRlciBhbmQgaXMga25vd24gdG8K
KyAgICAgICAgaGF2ZSByZWplY3RlZC4gQSBub24tcmVqZWN0ZWQgcHJvbWlzZSBkb2Vzbid0IG5l
ZWQgYSBjYXRjaCBoYW5kbGVyLCBhbmQgYW55IHByb21pc2UgdGhhdAorICAgICAgICBpc24ndCBy
ZWFjaGFibGUgdmlhIGEgZ2V0dGVyIHdvbid0IGFjdHVhbGx5IGJlIHJlYWNoZWQsIGFzIGBJbmpl
Y3RlZFNjcmlwdGAgZG9lc24ndCBjYWxsIGFueQorICAgICAgICBmdW5jdGlvbnMsIGluc3RlYWQg
b25seSBnZXR0aW5nIHRoZSBmdW5jdGlvbiBvYmplY3QgaXRzZWxmLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQu
cHJvdG90eXBlLl9wcm9wZXJ0eURlc2NyaXB0b3JzLmNyZWF0ZUZha2VWYWx1ZURlc2NyaXB0b3Ip
OgorCisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRl
clR5cGVFcnJvcik6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3RlZFdpdGhOYXRp
dmVHZXR0ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0
YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpzZXROYXRpdmVHZXR0ZXJUeXBl
RXJyb3IpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6aXNOYXRpdmVHZXR0
ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuaDoKKyAgICAg
ICAgKEpTQzo6dGhyb3dWTUdldHRlclR5cGVFcnJvcik6IEFkZGVkLgorICAgICAgICAqIHJ1bnRp
bWUvRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVHZXR0ZXJUeXBlRXJyb3IpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6dGhyb3dHZXR0ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKyAgICAgICAg
KEpTQzo6dGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IpOgorCiAyMDE5LTA0LTAxICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gSlNSdW5M
b29wVGltZXI6Ok1hbmFnZXIgc2hvdWxkIGJlIHNtYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRiMDU4NzJk
MDliNGRkMDAyNWQ5OGM5YmYxNTAxNmVkNzI5Njc3Yi4uNDVhODIzYzkyOWM1YTg5OTlhOWRkYWQ1
NTk3NzIxN2Y5NjE3ZGRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA0LTAy
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBmYWtlIHZhbHVlIGRlc2NyaXB0b3JzIGZvciBwcm9taXNlcyBhZGQgYSBjYXRjaCBoYW5k
bGVyLCBwcmV2ZW50aW5nICJyZWplY3Rpb25oYW5kbGVkIiBldmVudHMgZnJvbSBiZWluZyBmaXJl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDg0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTExNDcyNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIGVycm9ycyBjcmVhdGVkIGZyb20gZ2V0
dGVycyBhcyBiZWluZyBgaXNOYXRpdmVHZXR0ZXJUeXBlRXJyb3JgLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
aHJvd0dldHRlclR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpyZWplY3RQcm9taXNlV2l0
aEdldHRlclR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpyZWplY3RQcm9taXNlV2l0aFRo
aXNUeXBlRXJyb3IpOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFrZUdldHRlclR5cGVFcnJvckZvckJ1aWx0aW5zKToK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvcik6CisKKyAgICAgICAgKiBNb2R1
bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanM6CisgICAgICAgIChnZXR0ZXIuY2xvc2VkKToK
KyAgICAgICAgKGdldHRlci5yZWFkeSk6CisKIDIwMTktMDQtMDEgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIFNWRyB0ZWFy
IG9mZiBvYmplY3RzIGZvciBTVkdNYXRyaXgsIFNWR1RyYW5zZnJvbSwgU1ZHVHJhbnNmb3JtTGlz
dCBhbmQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCBjNDQwYzYy
NWIxMzFlM2YyZGJkYzQ3OTE3YjM2MTE4YjVmZTY5YTIwLi42MzBlNWRjMDE0NTk1OTc1ZGViYzc2
MTQzNDNiNDJiM2Y1NzM5NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTY1Myw3ICs2NTMsNyBAQCBs
ZXQgSW5qZWN0ZWRTY3JpcHQgPSBjbGFzcyBJbmplY3RlZFNjcmlwdAogICAgICAgICAgICAgICAg
IGlmIChzeW1ib2wpCiAgICAgICAgICAgICAgICAgICAgIGZha2VEZXNjcmlwdG9yLnN5bWJvbCA9
IHN5bWJvbDsKICAgICAgICAgICAgICAgICAvLyBTaWxlbmNlIGFueSBwb3NzaWJsZSB1bmhhbmRs
ZWRyZWplY3Rpb24gZXhjZXB0aW9ucyBjcmVhdGVkIGZyb20gYWNjZXNzaW5nIGEgbmF0aXZlIGFj
Y2Vzc29yIHdpdGggYSB3cm9uZyB0aGlzIG9iamVjdC4KLSAgICAgICAgICAgICAgICBpZiAoZmFr
ZURlc2NyaXB0b3IudmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlKQorICAgICAgICAgICAgICAgIGlm
IChmYWtlRGVzY3JpcHRvci52YWx1ZSBpbnN0YW5jZW9mIFByb21pc2UgJiYgSW5qZWN0ZWRTY3Jp
cHRIb3N0LmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvcihmYWtlRGVz
Y3JpcHRvci52YWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIGZha2VEZXNjcmlwdG9yLnZhbHVl
LmNhdGNoKGZ1bmN0aW9uKCl7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZha2VEZXNjcmlw
dG9yOwogICAgICAgICAgICAgfSBjYXRjaCAoZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCAyNDFm
NWRiMzdkNDE0NDAwNjViNTMyYzhiYmQzYjEzNjI3MjFhNmUzLi5kOTcyNWMwZDhmNDZlNzc0NDU3
OTU1MWI0ZmY5MGZmYTI2ZGIyN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMTQyLDYgKzE0Miwy
MSBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxBbGxDb2xsZWN0aW9uKEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4ganNCb29sZWFuKGltcGwoKS5pc0hUTUxBbGxDb2xs
ZWN0aW9uKHZtLCB2YWx1ZSkpOwogfQogCitKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpp
c1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVj
KQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworCisgICAgYXV0byogcHJvbWlzZSA9IGpzRHluYW1pY0Nhc3Q8SlNQ
cm9taXNlKj4odm0sIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXByb21pc2UgfHwgcHJv
bWlzZS0+c3RhdHVzKHZtKSAhPSBKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpCisgICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgIkluamVjdGVkU2NyaXB0SG9zdC5p
c1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IgZmlyc3QgYXJndW1lbnQg
bXVzdCBiZSBhIHJlamVjdGVkIFByb21pc2UuIl9zKTsKKworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgaWYgKGF1dG8qIGVycm9ySW5zdGFuY2UgPSBqc0R5bmFtaWNDYXN0PEVycm9ySW5z
dGFuY2UqPih2bSwgcHJvbWlzZS0+cmVzdWx0KHZtKSkpCisgICAgICAgIHJlc3VsdCA9IGVycm9y
SW5zdGFuY2UtPmlzTmF0aXZlR2V0dGVyVHlwZUVycm9yKCk7CisgICAgcmV0dXJuIGpzQm9vbGVh
bihyZXN1bHQpOworfQorCiBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oCmlu
ZGV4IGJhY2MzN2FhYjE3MzA4ZDZmMjE4OTFlNzljNzA5MGE1OTc5Zjc2NDMuLjhkOTIwZjU5N2Zi
ZTEzNjEwMTMxZDJlNWMzZDJkMmI5YWMzYmUzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTYyLDYgKzYy
LDcgQEAgcHVibGljOgogICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lv
bihKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBpbnRlcm5hbENvbnN0cnVjdG9y
TmFtZShKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBpc0hUTUxBbGxDb2xsZWN0
aW9uKEpTQzo6RXhlY1N0YXRlKik7CisgICAgSlNDOjpKU1ZhbHVlIGlzUHJvbWlzZVJlamVjdGVk
V2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNW
YWx1ZSBzdWJ0eXBlKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgSlNDOjpKU1ZhbHVlIGZ1bmN0aW9u
RGV0YWlscyhKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBnZXRJbnRlcm5hbFBy
b3BlcnRpZXMoSlNDOjpFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5j
cHAKaW5kZXggMDFmNjFmNGQ2NTQ4ZjFkMzhkYzk0NDMzYmUwZDU1Njk3ZmM5YTA5Yy4uZGYwMGJm
YWFkYzExYmRlNjcyZWExMzJhMWU1NWRjYTE2Y2M3ZmMzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW8K
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlRnVuY3Rpb25HZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKik7CiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoRXhlY1N0YXRlKik7CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25Jc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKik7
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25XZWFrTWFwU2l6ZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFw
RW50cmllcyhFeGVjU3RhdGUqKTsKQEAgLTY3LDYgKzY4LDcgQEAgdm9pZCBKU0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmEKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ2V0SW50
ZXJuYWxQcm9wZXJ0aWVzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdl
dEludGVybmFsUHJvcGVydGllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJpbnRlcm5hbENvbnN0cnVjdG9yTmFtZSIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc0hUTUxBbGxDb2xsZWN0aW9uIiwganNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24sIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaXNQcm9taXNlUmVqZWN0ZWRXaXRo
TmF0aXZlR2V0dGVyVHlwZUVycm9yIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwcm94eVRhcmdldFZhbHVlIiwganNJ
bmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0VmFsdWUsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01hcFNpemUiLCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01hcEVudHJpZXMiLCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKQEAgLTExOCw2ICsx
MjAsMTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNhc3RlZFRoaXMtPmlzSFRNTEFsbENvbGxlY3Rpb24oZXhlYykpOwogfQogCitFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25Jc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKKyAgICBKU0luamVjdGVkU2NyaXB0SG9zdCogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNJbmplY3RlZFNjcmlwdEhvc3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoIWNh
c3RlZFRoaXMpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
KworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+aXNQcm9taXNlUmVqZWN0
ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKGV4ZWMpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlU
YXJnZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCAwOWJhNjI3ZjJjNzY0
Y2UxZWVmNjViY2VlOGY2YjZlYTYyMDJkMWM1Li43MGM3MTQ3MzMyNDQ0MDgwNzg3OTM0MDE5ODY2
NzNjOTdlMWVhODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBA
IC0xMjMsNiArMTIzLDE1IEBAIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMs
IEVycm9yVHlwZSBlcnJvclR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKK0pTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1w
dHkoKSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKTsKKyAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShl
eGVjLCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlKTsKKyAgICBlcnJvci0+c2V0TmF0aXZlR2V0dGVy
VHlwZUVycm9yKCk7CisgICAgcmV0dXJuIGVycm9yOworfQorCiBjbGFzcyBGaW5kRmlyc3RDYWxs
ZXJGcmFtZVdpdGhDb2RlYmxvY2tGdW5jdG9yIHsKIHB1YmxpYzoKICAgICBGaW5kRmlyc3RDYWxs
ZXJGcmFtZVdpdGhDb2RlYmxvY2tGdW5jdG9yKENhbGxGcmFtZSogc3RhcnRDYWxsRnJhbWUpCkBA
IC0yOTAsOSArMjk5LDE0IEBAIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhFcnJvcihFeGVjU3RhdGUq
IGV4ZWMsIFRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBTdHJpbmcmIG1lCiAgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCBtZXNzYWdl
KSk7CiB9CiAKK0V4Y2VwdGlvbiogdGhyb3dHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVj
LCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHJldHVy
biB0aHJvd0V4Y2VwdGlvbihleGVjLCBzY29wZSwgY3JlYXRlR2V0dGVyVHlwZUVycm9yKGV4ZWMs
IG1lc3NhZ2UpKTsKK30KKwogSlNWYWx1ZSB0aHJvd0RPTUF0dHJpYnV0ZUdldHRlclR5cGVFcnJv
cihFeGVjU3RhdGUqIGV4ZWMsIFRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBDbGFzc0luZm8qIGNs
YXNzSW5mbywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYywgc2NvcGUsIG1ha2VTdHJpbmcoIlRoZSAiLCBjbGFzc0luZm8tPmNsYXNz
TmFtZSwgJy4nLCBTdHJpbmcocHJvcGVydHlOYW1lLnVpZCgpKSwgIiBnZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgY2xhc3NJbmZvLT5jbGFzc05hbWUpKTsKKyAgICBy
ZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoZXhlYywgc2NvcGUsIG1ha2VTdHJpbmcoIlRoZSAi
LCBjbGFzc0luZm8tPmNsYXNzTmFtZSwgJy4nLCBTdHJpbmcocHJvcGVydHlOYW1lLnVpZCgpKSwg
IiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgY2xhc3NJbmZvLT5j
bGFzc05hbWUpKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgK
aW5kZXggZjFmOWQ4NWEzMGRhMzJlYTg0NjQ4ODkxYzk5NTFlMGEwNzAzYzJiYy4uYzA0YmM1NWNl
M2NhNTRhYjkzZGY5OTQzYjM2ZTY0MjFmZTIyZjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvci5oCkBAIC02Nyw2ICs2Nyw4IEBAIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0
KiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpOwogCiBK
U19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlRXJyb3IoRXhlY1N0YXRlKiwgRXJyb3JU
eXBlLCBjb25zdCBTdHJpbmcmKTsKIAorSlNPYmplY3QqIGNyZWF0ZUdldHRlclR5cGVFcnJvcihF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKTsKKwogc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdGFj
a0ZyYW1lPj4gZ2V0U3RhY2tUcmFjZShFeGVjU3RhdGUqLCBWTSYsIEpTT2JqZWN0KiwgYm9vbCB1
c2VDdXJyZW50RnJhbWUpOwogdm9pZCBnZXRCeXRlY29kZU9mZnNldChFeGVjU3RhdGUqLCBWTSYs
IFZlY3RvcjxTdGFja0ZyYW1lPiosIENhbGxGcmFtZSomLCB1bnNpZ25lZCYgYnl0ZWNvZGVPZmZz
ZXQpOwogYm9vbCBnZXRMaW5lQ29sdW1uQW5kU291cmNlKFZlY3RvcjxTdGFja0ZyYW1lPiogc3Rh
Y2tUcmFjZSwgdW5zaWduZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4sIFN0cmluZyYgc291cmNl
VVJMKTsKQEAgLTg0LDYgKzg2LDggQEAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJv
d1R5cGVFcnJvcihFeGVjU3RhdGUqLCBUaHJvd1Njb3BlJiwgY29uc3QgU3RyaW4KIEpTX0VYUE9S
VF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhFcnJvcihFeGVjU3RhdGUqLCBUaHJvd1Nj
b3BlJik7CiBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoRXhl
Y1N0YXRlKiwgVGhyb3dTY29wZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIGlubGlu
ZSBFeGNlcHRpb24qIHRocm93UmFuZ2VFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJvd1Njb3Bl
JiBzY29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIHRocm93RXhjZXB0
aW9uKHN0YXRlLCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihzdGF0ZSwgZXJyb3JNZXNzYWdlKSk7
IH0KKworSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0dldHRlclR5cGVFcnJvcihF
eGVjU3RhdGUqLCBUaHJvd1Njb3BlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogSlNf
RVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSB0aHJvd0RPTUF0dHJpYnV0ZUdldHRlclR5cGVFcnJvcihF
eGVjU3RhdGUqLCBUaHJvd1Njb3BlJiwgY29uc3QgQ2xhc3NJbmZvKiwgUHJvcGVydHlOYW1lKTsK
IAogLy8gQ29udmVuaWVuY2Ugd3JhcHBlcnMsIHdyYXAgcmVzdWx0IGFzIGFuIEVuY29kZWRKU1Zh
bHVlLgpAQCAtOTQsNiArOTgsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTVR5cGVF
cnJvcihFeGVjU3RhdGUqIGV4ZWMsIFRocm93U2NvcGUmIHNjb3BlKSB7IHJldAogaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIHRocm93Vk1UeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBUaHJvd1Njb3Bl
JiBzY29wZSwgQVNDSUlMaXRlcmFsIGVycm9yTWVzc2FnZSkgeyByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBlcnJvck1lc3NhZ2UpKTsgfQogaW5saW5l
IEVuY29kZWRKU1ZhbHVlIHRocm93Vk1UeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBUaHJvd1Nj
b3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgZXJyb3JNZXNzYWdlKSk7IH0KIGlu
bGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNUmFuZ2VFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBU
aHJvd1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aHJvd1JhbmdlRXJyb3Ioc3RhdGUsIHNjb3BlLCBlcnJvck1lc3NhZ2Up
KTsgfQoraW5saW5lIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1HZXR0ZXJUeXBlRXJyb3IoRXhlY1N0
YXRlKiBleGVjLCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
IHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0dldHRlclR5cGVFcnJvcihleGVjLCBzY29w
ZSwgZXJyb3JNZXNzYWdlKSk7IH0KIGlubGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNRE9NQXR0
cmlidXRlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFRocm93U2NvcGUmIHNjb3Bl
LCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkg
eyByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RE9NQXR0cmlidXRlR2V0dGVyVHlwZUVycm9y
KHN0YXRlLCBzY29wZSwgY2xhc3NJbmZvLCBwcm9wZXJ0eU5hbWUpKTsgfQogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
SW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
aAppbmRleCBmYmM2ZjI1M2Q5MzZkZjM3ZWZhN2E2YzRiZWUxNWY1YjkxNmI3ZWJiLi40ZTIzMTky
MDg4Yzg1YjU2ZTk4NTE5OWU5ZWIxOTEzZjY2OWIyM2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC02NSw2ICs2NSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE91dE9mTWVtb3J5RXJyb3IoKSB7IG1fb3V0T2ZNZW1vcnlFcnJvciA9IHRy
dWU7IH0KICAgICBib29sIGlzT3V0T2ZNZW1vcnlFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fb3V0
T2ZNZW1vcnlFcnJvcjsgfQogCisgICAgdm9pZCBzZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKSB7
IG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yID0gdHJ1ZTsgfQorICAgIGJvb2wgaXNOYXRpdmVHZXR0
ZXJUeXBlRXJyb3IoKSB7IHJldHVybiBtX25hdGl2ZUdldHRlclR5cGVFcnJvcjsgfQorCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZFRvU3RyaW5nKEV4ZWNTdGF0ZSopOwog
ICAgIAogICAgIFZlY3RvcjxTdGFja0ZyYW1lPiogc3RhY2tUcmFjZSgpIHsgcmV0dXJuIG1fc3Rh
Y2tUcmFjZS5nZXQoKTsgfQpAQCAtMTA1LDYgKzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICBib29s
IG1fc3RhY2tPdmVyZmxvd0Vycm9yIHsgZmFsc2UgfTsKICAgICBib29sIG1fb3V0T2ZNZW1vcnlF
cnJvciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Vycm9ySW5mb01hdGVyaWFsaXplZCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVFcnJvciB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9Xcml0YWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9X
cml0YWJsZVN0cmVhbS5qcwppbmRleCBmNjhhZGZiMTFkYTVjNjc5NzgwMjkwMGE4NmExMDM4NmZm
ZGRiM2Q4Li4wNGFjZjgxN2UzYmFhNTRhN2IzYTQzMjQ1OGZlODUxZTc0NzdjMWM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzCkBAIC0x
NTQsNyArMTU0LDcgQEAgZnVuY3Rpb24gY2xvc2VkKCkKICAgICAidXNlIHN0cmljdCI7CiAKICAg
ICBpZiAoIUBpc1dyaXRhYmxlU3RyZWFtKHRoaXMpKQotICAgICAgICByZXR1cm4gQFByb21pc2Uu
QHJlamVjdChAbWFrZVR5cGVFcnJvcigiVGhlIFdyaXRhYmxlU3RyZWFtLmNsb3NlZCBnZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0iKSk7CisgICAg
ICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KEBtYWtlR2V0dGVyVHlwZUVycm9yKCJXcml0YWJs
ZVN0cmVhbSIsICJjbG9zZWQiKSk7CiAKICAgICByZXR1cm4gQGdldEJ5SWREaXJlY3RQcml2YXRl
KHRoaXMsICJjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSIpLkBwcm9taXNlOwogfQpAQCAtMTY1LDcg
KzE2NSw3IEBAIGZ1bmN0aW9uIHJlYWR5KCkKICAgICAidXNlIHN0cmljdCI7CiAKICAgICBpZiAo
IUBpc1dyaXRhYmxlU3RyZWFtKHRoaXMpKQotICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVj
dChAbWFrZVR5cGVFcnJvcigiVGhlIFdyaXRhYmxlU3RyZWFtLnJlYWR5IGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXcml0YWJsZVN0cmVhbSIpKTsKKyAgICAgICAgcmV0
dXJuIEBQcm9taXNlLkByZWplY3QoQG1ha2VHZXR0ZXJUeXBlRXJyb3IoIldyaXRhYmxlU3RyZWFt
IiwgInJlYWR5IikpOwogCiAgICAgcmV0dXJuIEBnZXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAi
cmVhZHlQcm9taXNlQ2FwYWJpbGl0eSIpLkBwcm9taXNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAppbmRleCAxMzEx
YzlkYTA1YTljMDFjZDY5NTNmZmYyZmM0Nzk5ZGZlMDQ5NjkzLi4zY2M2ZjA4YWYzODA2YjRmN2Vl
NjgzNGNlNjFkM2UzMjQxYTAyMzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcApAQCAtMjcwLDEyICsyNzAsMTIgQEAg
U3RyaW5nIG1ha2VHZXR0ZXJUeXBlRXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIGludGVyZmFjZU5h
bWUsIGNvbnN0IGNoYXIqIGF0dHJpYnUKIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0dldHRl
clR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUs
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUpCiB7
Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgbWFrZUdldHRlclR5
cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZSwgYXR0cmlidXRlTmFtZSkpOworICAgIHJldHVy
biB0aHJvd1ZNR2V0dGVyVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIG1ha2VHZXR0ZXJUeXBlRXJy
b3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGF0dHJpYnV0ZU5hbWUpKTsKIH0KIAogSlNDOjpFbmNv
ZGVkSlNWYWx1ZSByZWplY3RQcm9taXNlV2l0aEdldHRlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0
ZU5hbWUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3Io
c3RhdGUsIG1ha2VHZXR0ZXJUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGF0dHJpYnV0
ZU5hbWUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvcihz
dGF0ZSwgbWFrZUdldHRlclR5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZSwgYXR0cmlidXRl
TmFtZSksIHRydWUpOwogfQogCiBib29sIHRocm93U2V0dGVyVHlwZUVycm9yKEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgY2hhciogaW50ZXJmYWNl
TmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRlTmFtZSkKQEAgLTMwMiw3ICszMDIsNyBAQCBKU0M6
OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJvcihEZWZlcnJlZFBy
b21pc2UmIHByb21pc2UsIGNvbgogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VX
aXRoVGhpc1R5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IGNoYXIqIGludGVy
ZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJl
amVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3Ioc3RhdGUsIG1ha2VUaGlzVHlwZUVycm9yTWVzc2Fn
ZShpbnRlcmZhY2VOYW1lLCBtZXRob2ROYW1lKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlamVjdGVk
UHJvbWlzZVdpdGhUeXBlRXJyb3Ioc3RhdGUsIG1ha2VUaGlzVHlwZUVycm9yTWVzc2FnZShpbnRl
cmZhY2VOYW1lLCBtZXRob2ROYW1lKSwgZmFsc2UpOwogfQogCiB2b2lkIHRocm93RE9NU3ludGF4
RXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBBU0NJ
SUxpdGVyYWwgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmNwcAppbmRleCBkMTQ0MDkxMjU5NWQ1OGJlOWQ1YWQyYzc1NmM4NjYwZDUz
MjEzNzEyLi43ODhlMmU2NzdmN2YyMGNkMzlkMjE3MTJjZjg2NzQ2MGI1NmY1YjRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC0x
MDAsNyArMTAwLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZUdldHRlclR5
cGVFcnJvckZvckJ1aWx0aW5zKEV4ZWNTdGF0ZSogZXhlY1N0YXRlCiAgICAgc2NvcGUuYXNzZXJ0
Tm9FeGNlcHRpb24oKTsKICAgICBhdXRvIGF0dHJpYnV0ZU5hbWUgPSBleGVjU3RhdGUtPnVuY2hl
Y2tlZEFyZ3VtZW50KDEpLmdldFN0cmluZyhleGVjU3RhdGUpOwogICAgIHNjb3BlLmFzc2VydE5v
RXhjZXB0aW9uKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVhdGVUeXBlRXJyb3Io
ZXhlY1N0YXRlLCBtYWtlR2V0dGVyVHlwZUVycm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLnV0Zjgo
KS5kYXRhKCksIGF0dHJpYnV0ZU5hbWUudXRmOCgpLmRhdGEoKSkpKTsKKworICAgIGF1dG8gZXJy
b3IgPSBzdGF0aWNfY2FzdDxFcnJvckluc3RhbmNlKj4oY3JlYXRlVHlwZUVycm9yKGV4ZWNTdGF0
ZSwgbWFrZUdldHRlclR5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZS51dGY4KCkuZGF0YSgp
LCBhdHRyaWJ1dGVOYW1lLnV0ZjgoKS5kYXRhKCkpKSk7CisgICAgZXJyb3ItPnNldE5hdGl2ZUdl
dHRlclR5cGVFcnJvcigpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXJyb3IpOwogfQog
CiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IDIwZjk3MzdiMWNiMDhmNjkxODQz
OTVkNDFhMTc3NDhmOTgyNzhhZGEuLmRiYWQ5MDI0NWRjYmM2ZjFkYTQwN2QzN2E5MzBhZGU4Y2E0
ZDM3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21p
c2VEZWZlcnJlZC5jcHAKQEAgLTE5NywxNCArMTk3LDE2IEBAIFJlZjxEZWZlcnJlZFByb21pc2U+
IGNyZWF0ZURlZmVycmVkUHJvbWlzZShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NV2luZG93
JiBkCiAgICAgcmV0dXJuIERlZmVycmVkUHJvbWlzZTo6Y3JlYXRlKGRvbVdpbmRvdywgKmRlZmVy
cmVkKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRo
VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpCitKU0M6OkVuY29kZWRKU1ZhbHVlIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJy
b3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgYm9v
bCBmb3JOYXRpdmVHZXR0ZXIpCiB7CiAgICAgQVNTRVJUKHN0YXRlLmxleGljYWxHbG9iYWxPYmpl
Y3QoKSk7CiAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKnN0YXRlLmxleGljYWxHbG9iYWxPYmpl
Y3QoKTsKIAogICAgIGF1dG8gcHJvbWlzZUNvbnN0cnVjdG9yID0gZ2xvYmFsT2JqZWN0LnByb21p
c2VDb25zdHJ1Y3RvcigpOwogICAgIGF1dG8gcmVqZWN0RnVuY3Rpb24gPSBwcm9taXNlQ29uc3Ry
dWN0b3ItPmdldCgmc3RhdGUsIHN0YXRlLnZtKCkucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7Ci0gICAgYXV0byByZWplY3Rpb25WYWx1ZSA9IGNyZWF0
ZVR5cGVFcnJvcigmc3RhdGUsIGVycm9yTWVzc2FnZSk7CisgICAgYXV0byogcmVqZWN0aW9uVmFs
dWUgPSBzdGF0aWNfY2FzdDxFcnJvckluc3RhbmNlKj4oY3JlYXRlVHlwZUVycm9yKCZzdGF0ZSwg
ZXJyb3JNZXNzYWdlKSk7CisgICAgaWYgKGZvck5hdGl2ZUdldHRlcikKKyAgICAgICAgcmVqZWN0
aW9uVmFsdWUtPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigpOwogCiAgICAgQ2FsbERhdGEgY2Fs
bERhdGE7CiAgICAgYXV0byBjYWxsVHlwZSA9IGdldENhbGxEYXRhKHN0YXRlLnZtKCksIHJlamVj
dEZ1bmN0aW9uLCBjYWxsRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Qcm9taXNlRGVmZXJyZWQuaAppbmRleCA0MzE4YzlmMzdkYzE2MGNlYmRkMGQ1MTdmYjRk
MmU5MGQ0ZjA1NmExLi5jZDY0N2EzMmU3YjkxZGQ1YzEzMGExOGZhMjEwNWMxYjg4ZjBlY2E3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJl
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVk
LmgKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lkIGZ1bGZpbGxQcm9taXNlV2l0aEpTT04oUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiwgY29uc3QgU3RyaW5nJik7CiB2b2lkIGZ1bGZpbGxQcm9taXNlV2l0
aEFycmF5QnVmZmVyKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIEFycmF5QnVmZmVyKik7CiB2b2lk
IGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIGNv
bnN0IHZvaWQqLCBzaXplX3QpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZWplY3RQcm9taXNlV2l0
aEV4Y2VwdGlvbklmQW55KEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6
OkpTUHJvbWlzZURlZmVycmVkJik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGNyZWF0ZVJlamVjdGVk
UHJvbWlzZVdpdGhUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgY3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvcihKU0M6
OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yTmF0aXZlR2V0dGVyKTsKIAogdXNp
bmcgUHJvbWlzZUZ1bmN0aW9uID0gdm9pZChKU0M6OkV4ZWNTdGF0ZSYsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367455</attachid>
            <date>2019-04-15 13:53:43 -0700</date>
            <delta_ts>2019-04-15 14:06:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196484-20190415135342.patch</filename>
            <type>text/plain</type>
            <size>24665</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg0MWU3MjBiZDdhYmI5NWQ1Zjg3MzA2OTZlZDU3
MjVjYjEzZGYyNGEuLjUyZTUzNTU1MjcwM2UxYmRjYjYxNTBjZjM1MzA3ODQ5ZWQ1NzM0ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA0LTE1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
YWtlIHZhbHVlIGRlc2NyaXB0b3JzIGZvciBwcm9taXNlcyBhZGQgYSBjYXRjaCBoYW5kbGVyLCBw
cmV2ZW50aW5nICJyZWplY3Rpb25oYW5kbGVkIiBldmVudHMgZnJvbSBiZWluZyBmaXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDg0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80OTExNDcyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGFkZCBhIGNhdGNoIGhhbmRsZXIgd2hlbiB0aGUg
cHJvbWlzZSBpcyByZWFjaGFibGUgdmlhIGEgbmF0aXZlIGdldHRlciBhbmQgaXMga25vd24gdG8K
KyAgICAgICAgaGF2ZSByZWplY3RlZC4gQSBub24tcmVqZWN0ZWQgcHJvbWlzZSBkb2Vzbid0IG5l
ZWQgYSBjYXRjaCBoYW5kbGVyLCBhbmQgYW55IHByb21pc2UgdGhhdAorICAgICAgICBpc24ndCBy
ZWFjaGFibGUgdmlhIGEgZ2V0dGVyIHdvbid0IGFjdHVhbGx5IGJlIHJlYWNoZWQsIGFzIGBJbmpl
Y3RlZFNjcmlwdGAgZG9lc24ndCBjYWxsIGFueQorICAgICAgICBmdW5jdGlvbnMsIGluc3RlYWQg
b25seSBnZXR0aW5nIHRoZSBmdW5jdGlvbiBvYmplY3QgaXRzZWxmLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQu
cHJvdG90eXBlLl9wcm9wZXJ0eURlc2NyaXB0b3JzLmNyZWF0ZUZha2VWYWx1ZURlc2NyaXB0b3Ip
OgorCisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRl
clR5cGVFcnJvcik6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3RlZFdpdGhOYXRp
dmVHZXR0ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0
YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpzZXROYXRpdmVHZXR0ZXJUeXBl
RXJyb3IpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6aXNOYXRpdmVHZXR0
ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuaDoKKyAgICAg
ICAgKEpTQzo6dGhyb3dWTUdldHRlclR5cGVFcnJvcik6IEFkZGVkLgorICAgICAgICAqIHJ1bnRp
bWUvRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVHZXR0ZXJUeXBlRXJyb3IpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6dGhyb3dHZXR0ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKyAgICAgICAg
KEpTQzo6dGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IpOgorCiAyMDE5LTA0LTE0ICBE
b24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBK
YXZhU2NyaXB0Q29yZSBkZXJpdmVkIHNvdXJjZXMgc2hvdWxkIG9ubHkgYmUgcmVmZXJlbmNlZCBp
bnNpZGUgSmF2YVNjcmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMzVhOWU4ZTZjN2VmMjI3MTIyZDk1
MzVhYjA4YzhhMjI2YjYwOGVjLi41YThhNzBlMTQ4OGZiYTdlM2ViZjk0YmQ4NTE1YWQ1YmEzOGNm
MjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDQtMTUgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZha2UgdmFs
dWUgZGVzY3JpcHRvcnMgZm9yIHByb21pc2VzIGFkZCBhIGNhdGNoIGhhbmRsZXIsIHByZXZlbnRp
bmcgInJlamVjdGlvbmhhbmRsZWQiIGV2ZW50cyBmcm9tIGJlaW5nIGZpcmVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY0ODQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ5MTE0NzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0aXZlLWdl
dHRlci5odG1sCisKKyAgICAgICAgTWFyayBlcnJvcnMgY3JlYXRlZCBmcm9tIGdldHRlcnMgYXMg
YmVpbmcgYGlzTmF0aXZlR2V0dGVyVHlwZUVycm9yYC4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dHZXR0
ZXJUeXBlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZVdpdGhHZXR0ZXJU
eXBlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlwZUVy
cm9yKToKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyk6CisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3IpOgorCisgICAgICAgICogTW9kdWxlcy9zdHJl
YW1zL1dyaXRhYmxlU3RyZWFtLmpzOgorICAgICAgICAoZ2V0dGVyLmNsb3NlZCk6CisgICAgICAg
IChnZXR0ZXIucmVhZHkpOgorCiAyMDE5LTA0LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMjM3OTAzKSBTcGVlZG9tZXRlciAyIGlzIDEt
MiUgcmVncmVzc2VkIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYzQ0MGM2MjViMTMxZTNmMmRi
ZGM0NzkxN2IzNjExOGI1ZmU2OWEyMC4uNjMwZTVkYzAxNDU5NTk3NWRlYmM3NjE0MzQzYjQyYjNm
NTczOTViZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC02NTMsNyArNjUzLDcgQEAgbGV0IEluamVjdGVk
U2NyaXB0ID0gY2xhc3MgSW5qZWN0ZWRTY3JpcHQKICAgICAgICAgICAgICAgICBpZiAoc3ltYm9s
KQogICAgICAgICAgICAgICAgICAgICBmYWtlRGVzY3JpcHRvci5zeW1ib2wgPSBzeW1ib2w7CiAg
ICAgICAgICAgICAgICAgLy8gU2lsZW5jZSBhbnkgcG9zc2libGUgdW5oYW5kbGVkcmVqZWN0aW9u
IGV4Y2VwdGlvbnMgY3JlYXRlZCBmcm9tIGFjY2Vzc2luZyBhIG5hdGl2ZSBhY2Nlc3NvciB3aXRo
IGEgd3JvbmcgdGhpcyBvYmplY3QuCi0gICAgICAgICAgICAgICAgaWYgKGZha2VEZXNjcmlwdG9y
LnZhbHVlIGluc3RhbmNlb2YgUHJvbWlzZSkKKyAgICAgICAgICAgICAgICBpZiAoZmFrZURlc2Ny
aXB0b3IudmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlICYmIEluamVjdGVkU2NyaXB0SG9zdC5pc1By
b21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoZmFrZURlc2NyaXB0b3IudmFs
dWUpKQogICAgICAgICAgICAgICAgICAgICBmYWtlRGVzY3JpcHRvci52YWx1ZS5jYXRjaChmdW5j
dGlvbigpe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWtlRGVzY3JpcHRvcjsKICAgICAg
ICAgICAgIH0gY2F0Y2ggKGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggMjQxZjVkYjM3ZDQxNDQw
MDY1YjUzMmM4YmJkM2IxMzYyNzIxYTZlMy4uZDk3MjVjMGQ4ZjQ2ZTc3NDQ1Nzk1NTFiNGZmOTBm
ZmEyNmRiMjdlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0luamVjdGVkU2NyaXB0SG9zdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTE0Miw2ICsxNDIsMjEgQEAgSlNWYWx1
ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6aXNIVE1MQWxsQ29sbGVjdGlvbihFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIGpzQm9vbGVhbihpbXBsKCkuaXNIVE1MQWxsQ29sbGVjdGlvbih2bSwg
dmFsdWUpKTsKIH0KIAorSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6aXNQcm9taXNlUmVq
ZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBW
TSYgdm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKworICAgIGF1dG8qIHByb21pc2UgPSBqc0R5bmFtaWNDYXN0PEpTUHJvbWlzZSo+KHZt
LCBleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKCFwcm9taXNlIHx8IHByb21pc2UtPnN0YXR1
cyh2bSkgIT0gSlNQcm9taXNlOjpTdGF0dXM6OlJlamVjdGVkKQorICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsICJJbmplY3RlZFNjcmlwdEhvc3QuaXNQcm9taXNlUmVq
ZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBy
ZWplY3RlZCBQcm9taXNlLiJfcyk7CisKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIGlm
IChhdXRvKiBlcnJvckluc3RhbmNlID0ganNEeW5hbWljQ2FzdDxFcnJvckluc3RhbmNlKj4odm0s
IHByb21pc2UtPnJlc3VsdCh2bSkpKQorICAgICAgICByZXN1bHQgPSBlcnJvckluc3RhbmNlLT5p
c05hdGl2ZUdldHRlclR5cGVFcnJvcigpOworICAgIHJldHVybiBqc0Jvb2xlYW4ocmVzdWx0KTsK
K30KKwogSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaAppbmRleCBiYWNjMzdh
YWIxNzMwOGQ2ZjIxODkxZTc5YzcwOTBhNTk3OWY3NjQzLi44ZDkyMGY1OTdmYmUxMzYxMDEzMWQy
ZTVjM2QyZDJiOWFjM2JlMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oCkBAIC02Miw2ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oSlNDOjpFeGVj
U3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUgaW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoSlNDOjpF
eGVjU3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUgaXNIVE1MQWxsQ29sbGVjdGlvbihKU0M6OkV4
ZWNTdGF0ZSopOworICAgIEpTQzo6SlNWYWx1ZSBpc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVH
ZXR0ZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUgc3VidHlw
ZShKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBmdW5jdGlvbkRldGFpbHMoSlND
OjpFeGVjU3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUgZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEpT
Qzo6RXhlY1N0YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCmluZGV4IDAx
ZjYxZjRkNjU0OGYxZDM4ZGM5NDQzM2JlMGQ1NTY5N2ZjOWEwOWMuLmRmMDBiZmFhZGMxMWJkZTY3
MmVhMTMyYTFlNTVkY2ExNmNjN2ZjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUu
Y3BwCkBAIC00Myw2ICs0Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uR2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bkludGVybmFsQ29uc3RydWN0b3JOYW1lKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklz
SFRNTEFsbENvbGxlY3Rpb24oRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNl
UmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvblByb3h5VGFyZ2V0VmFsdWUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vh
a01hcFNpemUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMoRXhl
Y1N0YXRlKik7CkBAIC02Nyw2ICs2OCw3IEBAIHZvaWQgSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldEludGVybmFsUHJvcGVy
dGllcyIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25HZXRJbnRlcm5hbFBy
b3BlcnRpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW50
ZXJuYWxDb25zdHJ1Y3Rvck5hbWUiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0
aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiaXNIVE1MQWxsQ29sbGVjdGlvbiIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0aW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRl
clR5cGVFcnJvciIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21p
c2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigicHJveHlUYXJnZXRWYWx1ZSIsIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIndlYWtNYXBTaXplIiwganNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBTaXplLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oIndlYWtNYXBFbnRyaWVzIiwganNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CkBAIC0xMTgsNiArMTIwLDE5IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbklzSFRNTEFsbENvbGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRU
aGlzLT5pc0hUTUxBbGxDb2xsZWN0aW9uKGV4ZWMpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNl
UmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Cisg
ICAgSlNJbmplY3RlZFNjcmlwdEhvc3QqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTSW5q
ZWN0ZWRTY3JpcHRIb3N0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKCFjYXN0ZWRUaGlzKQor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CisKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2
ZUdldHRlclR5cGVFcnJvcihleGVjKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0VmFsdWUo
RXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggMDliYTYyN2YyYzc2NGNlMWVlZjY1YmNl
ZThmNmI2ZWE2MjAyZDFjNS4uNzBjNzE0NzMzMjQ0NDA4MDc4NzkzNDAxOTg2NjczYzk3ZTFlYTgz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAtMTIzLDYgKzEy
MywxNSBAQCBKU09iamVjdCogY3JlYXRlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBFcnJvclR5cGUg
ZXJyb3JUeXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogICAgIHJldHVybiBudWxscHRyOwogfQog
CitKU09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQoreworICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOworICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCk7CisgICAgYXV0byogZXJyb3IgPSBFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlw
ZUVycm9yKSwgbWVzc2FnZSk7CisgICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigp
OworICAgIHJldHVybiBlcnJvcjsKK30KKwogY2xhc3MgRmluZEZpcnN0Q2FsbGVyRnJhbWVXaXRo
Q29kZWJsb2NrRnVuY3RvciB7CiBwdWJsaWM6CiAgICAgRmluZEZpcnN0Q2FsbGVyRnJhbWVXaXRo
Q29kZWJsb2NrRnVuY3RvcihDYWxsRnJhbWUqIHN0YXJ0Q2FsbEZyYW1lKQpAQCAtMjkwLDkgKzI5
OSwxNCBAQCBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoRXhlY1N0YXRlKiBleGVjLCBUaHJv
d1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBtZQogICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bihleGVjLCBzY29wZSwgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgbWVzc2FnZSkpOwogfQogCitF
eGNlcHRpb24qIHRocm93R2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgVGhyb3dTY29w
ZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gdGhyb3dFeGNl
cHRpb24oZXhlYywgc2NvcGUsIGNyZWF0ZUdldHRlclR5cGVFcnJvcihleGVjLCBtZXNzYWdlKSk7
Cit9CisKIEpTVmFsdWUgdGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRl
KiBleGVjLCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMsIHNjb3BlLCBtYWtlU3RyaW5nKCJUaGUgIiwgY2xhc3NJbmZvLT5jbGFzc05hbWUsICcuJywg
U3RyaW5nKHByb3BlcnR5TmFtZS51aWQoKSksICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24g
aW5zdGFuY2VzIG9mICIsIGNsYXNzSW5mby0+Y2xhc3NOYW1lKSk7CisgICAgcmV0dXJuIHRocm93
R2V0dGVyVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBtYWtlU3RyaW5nKCJUaGUgIiwgY2xhc3NJbmZv
LT5jbGFzc05hbWUsICcuJywgU3RyaW5nKHByb3BlcnR5TmFtZS51aWQoKSksICIgZ2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsIGNsYXNzSW5mby0+Y2xhc3NOYW1lKSk7
CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCmluZGV4IGYxZjlk
ODVhMzBkYTMyZWE4NDY0ODg5MWM5OTUxZTBhMDcwM2MyYmMuLmMwNGJjNTVjZTNjYTU0YWI5M2Rm
OTk0M2IzNmU2NDIxZmUyMmYyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3Iu
aApAQCAtNjcsNiArNjcsOCBAQCBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlT3V0
T2ZNZW1vcnlFcnJvcihFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKTsKIAogSlNfRVhQT1JUX1BS
SVZBVEUgSlNPYmplY3QqIGNyZWF0ZUVycm9yKEV4ZWNTdGF0ZSosIEVycm9yVHlwZSwgY29uc3Qg
U3RyaW5nJik7CiAKK0pTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJik7CisKIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8U3RhY2tGcmFtZT4+IGdl
dFN0YWNrVHJhY2UoRXhlY1N0YXRlKiwgVk0mLCBKU09iamVjdCosIGJvb2wgdXNlQ3VycmVudEZy
YW1lKTsKIHZvaWQgZ2V0Qnl0ZWNvZGVPZmZzZXQoRXhlY1N0YXRlKiwgVk0mLCBWZWN0b3I8U3Rh
Y2tGcmFtZT4qLCBDYWxsRnJhbWUqJiwgdW5zaWduZWQmIGJ5dGVjb2RlT2Zmc2V0KTsKIGJvb2wg
Z2V0TGluZUNvbHVtbkFuZFNvdXJjZShWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2UsIHVu
c2lnbmVkJiBsaW5lLCB1bnNpZ25lZCYgY29sdW1uLCBTdHJpbmcmIHNvdXJjZVVSTCk7CkBAIC04
NCw2ICs4Niw4IEBAIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dUeXBlRXJyb3Io
RXhlY1N0YXRlKiwgVGhyb3dTY29wZSYsIGNvbnN0IFN0cmluCiBKU19FWFBPUlRfUFJJVkFURSBF
eGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoRXhlY1N0YXRlKiwgVGhyb3dTY29wZSYpOwogSlNf
RVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd1N5bnRheEVycm9yKEV4ZWNTdGF0ZSosIFRo
cm93U2NvcGUmLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiBpbmxpbmUgRXhjZXB0aW9u
KiB0aHJvd1JhbmdlRXJyb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVGhyb3dTY29wZSYgc2NvcGUsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJldHVybiB0aHJvd0V4Y2VwdGlvbihzdGF0ZSwg
c2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3Ioc3RhdGUsIGVycm9yTWVzc2FnZSkpOyB9CisKK0pTX0VY
UE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiwg
VGhyb3dTY29wZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIEpTX0VYUE9SVF9QUklW
QVRFIEpTVmFsdWUgdGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiwg
VGhyb3dTY29wZSYsIGNvbnN0IENsYXNzSW5mbyosIFByb3BlcnR5TmFtZSk7CiAKIC8vIENvbnZl
bmllbmNlIHdyYXBwZXJzLCB3cmFwIHJlc3VsdCBhcyBhbiBFbmNvZGVkSlNWYWx1ZS4KQEAgLTk0
LDYgKzk4LDcgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1UeXBlRXJyb3IoRXhlY1N0
YXRlKiBleGVjLCBUaHJvd1Njb3BlJiBzY29wZSkgeyByZXQKIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSB0aHJvd1ZNVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgVGhyb3dTY29wZSYgc2NvcGUsIEFT
Q0lJTGl0ZXJhbCBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5
cGVFcnJvcihleGVjLCBzY29wZSwgZXJyb3JNZXNzYWdlKSk7IH0KIGlubGluZSBFbmNvZGVkSlNW
YWx1ZSB0aHJvd1ZNVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgVGhyb3dTY29wZSYgc2NvcGUs
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhy
b3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIGVycm9yTWVzc2FnZSkpOyB9CiBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUgdGhyb3dWTVJhbmdlRXJyb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVGhyb3dTY29wZSYg
c2NvcGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dSYW5nZUVycm9yKHN0YXRlLCBzY29wZSwgZXJyb3JNZXNzYWdlKSk7IH0KK2lubGlu
ZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywg
VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJldHVybiBK
U1ZhbHVlOjplbmNvZGUodGhyb3dHZXR0ZXJUeXBlRXJyb3IoZXhlYywgc2NvcGUsIGVycm9yTWVz
c2FnZSkpOyB9CiBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTURPTUF0dHJpYnV0ZUdldHRl
clR5cGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgQ2xh
c3NJbmZvKiBjbGFzc0luZm8sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIHsgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aHJvd0RPTUF0dHJpYnV0ZUdldHRlclR5cGVFcnJvcihzdGF0ZSwgc2Nv
cGUsIGNsYXNzSW5mbywgcHJvcGVydHlOYW1lKSk7IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5kZXggZmJj
NmYyNTNkOTM2ZGYzN2VmYTdhNmM0YmVlMTVmNWI5MTZiN2ViYi4uNGUyMzE5MjA4OGM4NWI1NmU5
ODUxOTllOWViMTkxM2Y2NjliMjNlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtNjUsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRPdXRPZk1lbW9yeUVycm9yKCkgeyBtX291dE9mTWVtb3J5RXJyb3IgPSB0cnVlOyB9CiAgICAg
Ym9vbCBpc091dE9mTWVtb3J5RXJyb3IoKSBjb25zdCB7IHJldHVybiBtX291dE9mTWVtb3J5RXJy
b3I7IH0KIAorICAgIHZvaWQgc2V0TmF0aXZlR2V0dGVyVHlwZUVycm9yKCkgeyBtX25hdGl2ZUdl
dHRlclR5cGVFcnJvciA9IHRydWU7IH0KKyAgICBib29sIGlzTmF0aXZlR2V0dGVyVHlwZUVycm9y
KCkgeyByZXR1cm4gbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3I7IH0KKwogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyBzYW5pdGl6ZWRUb1N0cmluZyhFeGVjU3RhdGUqKTsKICAgICAKICAgICBW
ZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2UoKSB7IHJldHVybiBtX3N0YWNrVHJhY2UuZ2V0
KCk7IH0KQEAgLTEwNSw2ICsxMDgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3N0YWNrT3Zl
cmZsb3dFcnJvciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX291dE9mTWVtb3J5RXJyb3IgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFi
bGVTdHJlYW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJl
YW0uanMKaW5kZXggZjY4YWRmYjExZGE1YzY3OTc4MDI5MDBhODZhMTAzODZmZmRkYjNkOC4uMDRh
Y2Y4MTdlM2JhYTU0YTdiM2E0MzI0NThmZTg1MWU3NDc3YzFjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcwpAQCAtMTU0LDcgKzE1NCw3
IEBAIGZ1bmN0aW9uIGNsb3NlZCgpCiAgICAgInVzZSBzdHJpY3QiOwogCiAgICAgaWYgKCFAaXNX
cml0YWJsZVN0cmVhbSh0aGlzKSkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1h
a2VUeXBlRXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5jbG9zZWQgZ2V0dGVyIGNhbiBvbmx5IGJl
IHVzZWQgb24gaW5zdGFuY2VzIG9mIFdyaXRhYmxlU3RyZWFtIikpOworICAgICAgICByZXR1cm4g
QFByb21pc2UuQHJlamVjdChAbWFrZUdldHRlclR5cGVFcnJvcigiV3JpdGFibGVTdHJlYW0iLCAi
Y2xvc2VkIikpOwogCiAgICAgcmV0dXJuIEBnZXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAiY2xv
c2VkUHJvbWlzZUNhcGFiaWxpdHkiKS5AcHJvbWlzZTsKIH0KQEAgLTE2NSw3ICsxNjUsNyBAQCBm
dW5jdGlvbiByZWFkeSgpCiAgICAgInVzZSBzdHJpY3QiOwogCiAgICAgaWYgKCFAaXNXcml0YWJs
ZVN0cmVhbSh0aGlzKSkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1ha2VUeXBl
RXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5yZWFkeSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0iKSk7CisgICAgICAgIHJldHVybiBAUHJvbWlz
ZS5AcmVqZWN0KEBtYWtlR2V0dGVyVHlwZUVycm9yKCJXcml0YWJsZVN0cmVhbSIsICJyZWFkeSIp
KTsKIAogICAgIHJldHVybiBAZ2V0QnlJZERpcmVjdFByaXZhdGUodGhpcywgInJlYWR5UHJvbWlz
ZUNhcGFiaWxpdHkiKS5AcHJvbWlzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKaW5kZXggMTMxMWM5ZGEwNWE5YzAx
Y2Q2OTUzZmZmMmZjNDc5OWRmZTA0OTY5My4uM2NjNmYwOGFmMzgwNmI0ZjdlZTY4MzRjZTYxZDNl
MzI0MWEwMjM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01F
eGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTI3MCwxMiArMjcwLDEyIEBAIFN0cmluZyBtYWtl
R2V0dGVyVHlwZUVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBj
aGFyKiBhdHRyaWJ1CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dHZXR0ZXJUeXBlRXJyb3Io
SlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBjaGFy
KiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIG1ha2VHZXR0ZXJUeXBlRXJyb3JNZXNz
YWdlKGludGVyZmFjZU5hbWUsIGF0dHJpYnV0ZU5hbWUpKTsKKyAgICByZXR1cm4gdGhyb3dWTUdl
dHRlclR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBtYWtlR2V0dGVyVHlwZUVycm9yTWVzc2FnZShp
bnRlcmZhY2VOYW1lLCBhdHRyaWJ1dGVOYW1lKSk7CiB9CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
cmVqZWN0UHJvbWlzZVdpdGhHZXR0ZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBj
b25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lKQogewot
ICAgIHJldHVybiBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yKHN0YXRlLCBtYWtl
R2V0dGVyVHlwZUVycm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLCBhdHRyaWJ1dGVOYW1lKSk7Cisg
ICAgcmV0dXJuIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3Ioc3RhdGUsIG1ha2VH
ZXR0ZXJUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGF0dHJpYnV0ZU5hbWUpLCB0cnVl
KTsKIH0KIAogYm9vbCB0aHJvd1NldHRlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUs
IEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0
IGNoYXIqIGF0dHJpYnV0ZU5hbWUpCkBAIC0zMDIsNyArMzAyLDcgQEAgSlNDOjpFbmNvZGVkSlNW
YWx1ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoRGVmZXJyZWRQcm9taXNlJiBwcm9t
aXNlLCBjb24KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBl
RXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBj
b25zdCBjaGFyKiBtZXRob2ROYW1lKQogewotICAgIHJldHVybiBjcmVhdGVSZWplY3RlZFByb21p
c2VXaXRoVHlwZUVycm9yKHN0YXRlLCBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNl
TmFtZSwgbWV0aG9kTmFtZSkpOworICAgIHJldHVybiBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRo
VHlwZUVycm9yKHN0YXRlLCBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZSwg
bWV0aG9kTmFtZSksIGZhbHNlKTsKIH0KIAogdm9pZCB0aHJvd0RPTVN5bnRheEVycm9yKEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgQVNDSUlMaXRlcmFsIG1l
c3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKaW5kZXggZDE0NDA5MTI1OTVkNThiZTlkNWFkMmM3NTZjODY2MGQ1MzIxMzcxMi4uNzg4
ZTJlNjc3ZjdmMjBjZDM5ZDIxNzEyY2Y4Njc0NjBiNTZmNWI0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtMTAwLDcgKzEwMCwx
MCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JC
dWlsdGlucyhFeGVjU3RhdGUqIGV4ZWNTdGF0ZQogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAgICAgYXV0byBhdHRyaWJ1dGVOYW1lID0gZXhlY1N0YXRlLT51bmNoZWNrZWRBcmd1bWVu
dCgxKS5nZXRTdHJpbmcoZXhlY1N0YXRlKTsKICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlVHlwZUVycm9yKGV4ZWNTdGF0ZSwg
bWFrZUdldHRlclR5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZS51dGY4KCkuZGF0YSgpLCBh
dHRyaWJ1dGVOYW1lLnV0ZjgoKS5kYXRhKCkpKSk7CisKKyAgICBhdXRvIGVycm9yID0gc3RhdGlj
X2Nhc3Q8RXJyb3JJbnN0YW5jZSo+KGNyZWF0ZVR5cGVFcnJvcihleGVjU3RhdGUsIG1ha2VHZXR0
ZXJUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUudXRmOCgpLmRhdGEoKSwgYXR0cmlidXRl
TmFtZS51dGY4KCkuZGF0YSgpKSkpOworICAgIGVycm9yLT5zZXROYXRpdmVHZXR0ZXJUeXBlRXJy
b3IoKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVycm9yKTsKIH0KIAogI2lmIEVOQUJM
RShTVFJFQU1TX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NUHJvbWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
UHJvbWlzZURlZmVycmVkLmNwcAppbmRleCAyMGY5NzM3YjFjYjA4ZjY5MTg0Mzk1ZDQxYTE3NzQ4
Zjk4Mjc4YWRhLi5kYmFkOTAyNDVkY2JjNmYxZGE0MDdkMzdhOTMwYWRlOGNhNGQzNzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQu
Y3BwCkBAIC0xOTcsMTQgKzE5NywxNiBAQCBSZWY8RGVmZXJyZWRQcm9taXNlPiBjcmVhdGVEZWZl
cnJlZFByb21pc2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0RPTVdpbmRvdyYgZAogICAgIHJl
dHVybiBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShkb21XaW5kb3csICpkZWZlcnJlZCk7CiB9CiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgY3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvcihK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQorSlNDOjpF
bmNvZGVkSlNWYWx1ZSBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yKEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wgZm9yTmF0aXZl
R2V0dGVyKQogewogICAgIEFTU0VSVChzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogICAg
IGF1dG8mIGdsb2JhbE9iamVjdCA9ICpzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAKICAg
ICBhdXRvIHByb21pc2VDb25zdHJ1Y3RvciA9IGdsb2JhbE9iamVjdC5wcm9taXNlQ29uc3RydWN0
b3IoKTsKICAgICBhdXRvIHJlamVjdEZ1bmN0aW9uID0gcHJvbWlzZUNvbnN0cnVjdG9yLT5nZXQo
JnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFBy
aXZhdGVOYW1lKCkpOwotICAgIGF1dG8gcmVqZWN0aW9uVmFsdWUgPSBjcmVhdGVUeXBlRXJyb3Io
JnN0YXRlLCBlcnJvck1lc3NhZ2UpOworICAgIGF1dG8qIHJlamVjdGlvblZhbHVlID0gc3RhdGlj
X2Nhc3Q8RXJyb3JJbnN0YW5jZSo+KGNyZWF0ZVR5cGVFcnJvcigmc3RhdGUsIGVycm9yTWVzc2Fn
ZSkpOworICAgIGlmIChmb3JOYXRpdmVHZXR0ZXIpCisgICAgICAgIHJlamVjdGlvblZhbHVlLT5z
ZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKTsKIAogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAg
IGF1dG8gY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShzdGF0ZS52bSgpLCByZWplY3RGdW5jdGlvbiwg
Y2FsbERhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Q
cm9taXNlRGVmZXJyZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZURlZmVycmVkLmgKaW5kZXggNDMxOGM5ZjM3ZGMxNjBjZWJkZDBkNTE3ZmI0ZDJlOTBkNGYwNTZh
MS4uY2Q2NDdhMzJlN2I5MWRkNWMxMzBhMThmYTIxMDVjMWI4OGYwZWNhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCkBAIC0yNTcs
NyArMjU3LDcgQEAgdm9pZCBmdWxmaWxsUHJvbWlzZVdpdGhKU09OKFJlZjxEZWZlcnJlZFByb21p
c2U+JiYsIGNvbnN0IFN0cmluZyYpOwogdm9pZCBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZl
cihSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBBcnJheUJ1ZmZlciopOwogdm9pZCBmdWxmaWxsUHJv
bWlzZVdpdGhBcnJheUJ1ZmZlcihSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBjb25zdCB2b2lkKiwg
c2l6ZV90KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25J
ZkFueShKU0M6OkV4ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1Byb21pc2VE
ZWZlcnJlZCYpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRo
VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJik7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBTdHJpbmcmLCBib29sIGZvck5hdGl2ZUdldHRlcik7CiAKIHVzaW5nIFByb21pc2VG
dW5jdGlvbiA9IHZvaWQoSlNDOjpFeGVjU3RhdGUmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGM1OTlhMWE3ZDIxODliYWRmYjhhNTYzYWMwMjRjN2YyZGJlMzM2MWMuLjUwNjJm
ZGI3YmExYWFjNGQyNzVjZDQ0NmVhNDVlMzZkOTViMDE2YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxOS0wNC0xNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogZmFrZSB2YWx1ZSBkZXNjcmlwdG9ycyBmb3IgcHJvbWlzZXMgYWRk
IGEgY2F0Y2ggaGFuZGxlciwgcHJldmVudGluZyAicmVqZWN0aW9uaGFuZGxlZCIgZXZlbnRzIGZy
b20gYmVpbmcgZmlyZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NjQ4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDkxMTQ3MjU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcnVu
dGltZS9wcm9taXNlLW5hdGl2ZS1nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3J1bnRpbWUvcHJvbWlzZS1uYXRpdmUtZ2V0dGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisK
IDIwMTktMDQtMTUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHIyNDA2NDQpOiBMYXlvdXQgVGVzdCBpbnNwZWN0b3IvcGFnZS9vdmVycmlk
ZVNldHRpbmctSUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZC5odG1sIGlzIGEgZmxha3kgdGlt
ZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcHJvbWlzZS1u
YXRpdmUtZ2V0dGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1l
L3Byb21pc2UtbmF0aXZlLWdldHRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNmZTJkZGM1
NDdlZjAzYWExMmJjMTcxYzg3YzNiNTRjYjA1ZmYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0aXZlLWdldHRlci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogdW5oYW5kbGVkcmVq
ZWN0aW9uIC0gInRlc3QiCitDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVj
dGlvbjogdGVzdAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBjYXVnaHQgLSAidGVzdCIKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjogcmVqZWN0aW9uaGFuZGxlZCAtICJ0ZXN0IgorVGVzdHMg
dGhhdCB0aGUgaW5qZWN0ZWQgc2NyaXB0IG9ubHkgYC50aGVuKClgcyBwcm9taXNlcyBpZiB0aGV5
IGFyZSByZXR1cm5lZCBieSBuYXRpdmUgZ2V0dGVycy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0aXZlLWdldHRlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3J1bnRpbWUvcHJvbWlzZS1uYXRpdmUtZ2V0dGVyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGUzOWJjMGY3MGU0ODkzYjI2Yjc0NDcwZDYxZmYzOTViZDU3M2JkMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0aXZlLWdldHRl
ci5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9j
b2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gY3JlYXRlVW5oYW5kbGVk
UHJvbWlzZSgpIHsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0
aW9uIiwgKGV2ZW50KSA9PiB7CisgICAgICAgIGNvbnNvbGUubG9nKCJ1bmhhbmRsZWRyZWplY3Rp
b24gLSAiICsgSlNPTi5zdHJpbmdpZnkoZXZlbnQucmVhc29uKSk7CisgICAgfSk7CisKKyAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVqZWN0aW9uaGFuZGxlZCIsIChldmVudCkgPT4gewor
ICAgICAgICBjb25zb2xlLmxvZygicmVqZWN0aW9uaGFuZGxlZCAtICIgKyBKU09OLnN0cmluZ2lm
eShldmVudC5yZWFzb24pKTsKKyAgICAgICAgVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRl
bmQoInJlamVjdGlvbmhhbmRsZWQiKTsKKyAgICB9KTsKKworICAgIGxldCBwcm9taXNlID0gUHJv
bWlzZS5yZWplY3QoInRlc3QiKTsKKworICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBw
cm9taXNlLmNhdGNoKCh2YWx1ZSkgPT4geworICAgICAgICAgICAgY29uc29sZS5sb2coImNhdWdo
dCAtICIgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpOworICAgICAgICB9KTsKKyAgICB9LCA1KTsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgUHJvdG9jb2xUZXN0LmF3YWl0RXZlbnQoInJl
amVjdGlvbmhhbmRsZWQiKQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgUHJvdG9jb2xUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgIH0pOworCisgICAgUHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5Q
YWdlKGBjcmVhdGVVbmhhbmRsZWRQcm9taXNlKClgKQorICAgIC5jYXRjaCgoZSkgPT4geworICAg
ICAgICBQcm90b2NvbFRlc3QuZmFpbChlKTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIHRoYXQgdGhlIGluamVj
dGVkIHNjcmlwdCBvbmx5IGAudGhlbigpYHMgcHJvbWlzZXMgaWYgdGhleSBhcmUgcmV0dXJuZWQg
YnkgbmF0aXZlIGdldHRlcnMuPC9wPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367457</attachid>
            <date>2019-04-15 14:06:11 -0700</date>
            <delta_ts>2019-04-15 14:42:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196484-20190415140610.patch</filename>
            <type>text/plain</type>
            <size>24878</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg0MWU3MjBiZDdhYmI5NWQ1Zjg3MzA2OTZlZDU3
MjVjYjEzZGYyNGEuLmRiNzQwNjA2Y2Q1MDRkZjlhYzlhZDBiYWY5MjhjMDI1ZjFmYjY4N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA0LTE1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
YWtlIHZhbHVlIGRlc2NyaXB0b3JzIGZvciBwcm9taXNlcyBhZGQgYSBjYXRjaCBoYW5kbGVyLCBw
cmV2ZW50aW5nICJyZWplY3Rpb25oYW5kbGVkIiBldmVudHMgZnJvbSBiZWluZyBmaXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDg0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80OTExNDcyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGFkZCBhIGNhdGNoIGhhbmRsZXIgd2hlbiB0aGUg
cHJvbWlzZSBpcyByZWFjaGFibGUgdmlhIGEgbmF0aXZlIGdldHRlciBhbmQgaXMga25vd24gdG8K
KyAgICAgICAgaGF2ZSByZWplY3RlZC4gQSBub24tcmVqZWN0ZWQgcHJvbWlzZSBkb2Vzbid0IG5l
ZWQgYSBjYXRjaCBoYW5kbGVyLCBhbmQgYW55IHByb21pc2UgdGhhdAorICAgICAgICBpc24ndCBy
ZWFjaGFibGUgdmlhIGEgZ2V0dGVyIHdvbid0IGFjdHVhbGx5IGJlIHJlYWNoZWQsIGFzIGBJbmpl
Y3RlZFNjcmlwdGAgZG9lc24ndCBjYWxsIGFueQorICAgICAgICBmdW5jdGlvbnMsIGluc3RlYWQg
b25seSBnZXR0aW5nIHRoZSBmdW5jdGlvbiBvYmplY3QgaXRzZWxmLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQu
cHJvdG90eXBlLl9wcm9wZXJ0eURlc2NyaXB0b3JzLmNyZWF0ZUZha2VWYWx1ZURlc2NyaXB0b3Ip
OgorCisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRl
clR5cGVFcnJvcik6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3RlZFdpdGhOYXRp
dmVHZXR0ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0
YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpzZXROYXRpdmVHZXR0ZXJUeXBl
RXJyb3IpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6aXNOYXRpdmVHZXR0
ZXJUeXBlRXJyb3IgY29uc3QpOiBBZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuaDoK
KyAgICAgICAgKEpTQzo6dGhyb3dWTUdldHRlclR5cGVFcnJvcik6IEFkZGVkLgorICAgICAgICAq
IHJ1bnRpbWUvRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVHZXR0ZXJUeXBlRXJyb3Ip
OiBBZGRlZC4KKyAgICAgICAgKEpTQzo6dGhyb3dHZXR0ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6dGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IpOgorCiAyMDE5LTA0
LTE0ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NN
YWtlXSBKYXZhU2NyaXB0Q29yZSBkZXJpdmVkIHNvdXJjZXMgc2hvdWxkIG9ubHkgYmUgcmVmZXJl
bmNlZCBpbnNpZGUgSmF2YVNjcmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMzVhOWU4ZTZjN2VmMjI3
MTIyZDk1MzVhYjA4YzhhMjI2YjYwOGVjLi41YThhNzBlMTQ4OGZiYTdlM2ViZjk0YmQ4NTE1YWQ1
YmEzOGNmMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDQtMTUgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZh
a2UgdmFsdWUgZGVzY3JpcHRvcnMgZm9yIHByb21pc2VzIGFkZCBhIGNhdGNoIGhhbmRsZXIsIHBy
ZXZlbnRpbmcgInJlamVjdGlvbmhhbmRsZWQiIGV2ZW50cyBmcm9tIGJlaW5nIGZpcmVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY0ODQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ5MTE0NzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0
aXZlLWdldHRlci5odG1sCisKKyAgICAgICAgTWFyayBlcnJvcnMgY3JlYXRlZCBmcm9tIGdldHRl
cnMgYXMgYmVpbmcgYGlzTmF0aXZlR2V0dGVyVHlwZUVycm9yYC4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhy
b3dHZXR0ZXJUeXBlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZVdpdGhH
ZXR0ZXJUeXBlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZVdpdGhUaGlz
VHlwZUVycm9yKToKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyk6CisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3IpOgorCisgICAgICAgICogTW9kdWxl
cy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzOgorICAgICAgICAoZ2V0dGVyLmNsb3NlZCk6Cisg
ICAgICAgIChnZXR0ZXIucmVhZHkpOgorCiAyMDE5LTA0LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMjM3OTAzKSBTcGVlZG9tZXRlciAy
IGlzIDEtMiUgcmVncmVzc2VkIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYzQ0MGM2MjViMTMx
ZTNmMmRiZGM0NzkxN2IzNjExOGI1ZmU2OWEyMC4uNjMwZTVkYzAxNDU5NTk3NWRlYmM3NjE0MzQz
YjQyYjNmNTczOTViZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC02NTMsNyArNjUzLDcgQEAgbGV0IElu
amVjdGVkU2NyaXB0ID0gY2xhc3MgSW5qZWN0ZWRTY3JpcHQKICAgICAgICAgICAgICAgICBpZiAo
c3ltYm9sKQogICAgICAgICAgICAgICAgICAgICBmYWtlRGVzY3JpcHRvci5zeW1ib2wgPSBzeW1i
b2w7CiAgICAgICAgICAgICAgICAgLy8gU2lsZW5jZSBhbnkgcG9zc2libGUgdW5oYW5kbGVkcmVq
ZWN0aW9uIGV4Y2VwdGlvbnMgY3JlYXRlZCBmcm9tIGFjY2Vzc2luZyBhIG5hdGl2ZSBhY2Nlc3Nv
ciB3aXRoIGEgd3JvbmcgdGhpcyBvYmplY3QuCi0gICAgICAgICAgICAgICAgaWYgKGZha2VEZXNj
cmlwdG9yLnZhbHVlIGluc3RhbmNlb2YgUHJvbWlzZSkKKyAgICAgICAgICAgICAgICBpZiAoZmFr
ZURlc2NyaXB0b3IudmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlICYmIEluamVjdGVkU2NyaXB0SG9z
dC5pc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoZmFrZURlc2NyaXB0
b3IudmFsdWUpKQogICAgICAgICAgICAgICAgICAgICBmYWtlRGVzY3JpcHRvci52YWx1ZS5jYXRj
aChmdW5jdGlvbigpe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWtlRGVzY3JpcHRvcjsK
ICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggMjQxZjVkYjM3
ZDQxNDQwMDY1YjUzMmM4YmJkM2IxMzYyNzIxYTZlMy4uZDk3MjVjMGQ4ZjQ2ZTc3NDQ1Nzk1NTFi
NGZmOTBmZmEyNmRiMjdlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTE0Miw2ICsxNDIsMjEgQEAg
SlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6aXNIVE1MQWxsQ29sbGVjdGlvbihFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzQm9vbGVhbihpbXBsKCkuaXNIVE1MQWxsQ29sbGVjdGlv
bih2bSwgdmFsdWUpKTsKIH0KIAorSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6aXNQcm9t
aXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIGF1dG8qIHByb21pc2UgPSBqc0R5bmFtaWNDYXN0PEpTUHJvbWlz
ZSo+KHZtLCBleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKCFwcm9taXNlIHx8IHByb21pc2Ut
PnN0YXR1cyh2bSkgIT0gSlNQcm9taXNlOjpTdGF0dXM6OlJlamVjdGVkKQorICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsICJJbmplY3RlZFNjcmlwdEhvc3QuaXNQcm9t
aXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yIGZpcnN0IGFyZ3VtZW50IG11c3Qg
YmUgYSByZWplY3RlZCBQcm9taXNlLiJfcyk7CisKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOwor
ICAgIGlmIChhdXRvKiBlcnJvckluc3RhbmNlID0ganNEeW5hbWljQ2FzdDxFcnJvckluc3RhbmNl
Kj4odm0sIHByb21pc2UtPnJlc3VsdCh2bSkpKQorICAgICAgICByZXN1bHQgPSBlcnJvckluc3Rh
bmNlLT5pc05hdGl2ZUdldHRlclR5cGVFcnJvcigpOworICAgIHJldHVybiBqc0Jvb2xlYW4ocmVz
dWx0KTsKK30KKwogSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaAppbmRleCBi
YWNjMzdhYWIxNzMwOGQ2ZjIxODkxZTc5YzcwOTBhNTk3OWY3NjQzLi44ZDkyMGY1OTdmYmUxMzYx
MDEzMWQyZTVjM2QyZDJiOWFjM2JlMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oCkBAIC02Miw2ICs2Miw3IEBA
IHB1YmxpYzoKICAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oSlND
OjpFeGVjU3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUgaW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUo
SlNDOjpFeGVjU3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUgaXNIVE1MQWxsQ29sbGVjdGlvbihK
U0M6OkV4ZWNTdGF0ZSopOworICAgIEpTQzo6SlNWYWx1ZSBpc1Byb21pc2VSZWplY3RlZFdpdGhO
YXRpdmVHZXR0ZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUg
c3VidHlwZShKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBmdW5jdGlvbkRldGFp
bHMoSlNDOjpFeGVjU3RhdGUqKTsKICAgICBKU0M6OkpTVmFsdWUgZ2V0SW50ZXJuYWxQcm9wZXJ0
aWVzKEpTQzo6RXhlY1N0YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCmlu
ZGV4IDAxZjYxZjRkNjU0OGYxZDM4ZGM5NDQzM2JlMGQ1NTY5N2ZjOWEwOWMuLmRmMDBiZmFhZGMx
MWJkZTY3MmVhMTMyYTFlNTVkY2ExNmNjN2ZjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGUuY3BwCkBAIC00Myw2ICs0Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uR2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbkludGVybmFsQ29uc3RydWN0b3JOYW1lKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbklzSFRNTEFsbENvbGxlY3Rpb24oRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQ
cm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0VmFsdWUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0
aW9uV2Vha01hcFNpemUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJp
ZXMoRXhlY1N0YXRlKik7CkBAIC02Nyw2ICs2OCw3IEBAIHZvaWQgSlNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldEludGVybmFs
UHJvcGVydGllcyIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25HZXRJbnRl
cm5hbFByb3BlcnRpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigiaW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUiLCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiaXNIVE1MQWxsQ29sbGVjdGlvbiIsIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0aW9uLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2
ZUdldHRlclR5cGVFcnJvciIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25J
c1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicHJveHlUYXJnZXRWYWx1ZSIsIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIndlYWtNYXBTaXplIiwganNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBTaXplLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIndlYWtNYXBFbnRyaWVzIiwganNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CkBAIC0xMTgsNiArMTIwLDE5
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
YXN0ZWRUaGlzLT5pc0hUTUxBbGxDb2xsZWN0aW9uKGV4ZWMpKTsKIH0KIAorRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQ
cm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CisgICAgSlNJbmplY3RlZFNjcmlwdEhvc3QqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTSW5qZWN0ZWRTY3JpcHRIb3N0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKCFjYXN0ZWRU
aGlzKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CisKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmlzUHJvbWlzZVJlamVjdGVkV2l0
aE5hdGl2ZUdldHRlclR5cGVFcnJvcihleGVjKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0
VmFsdWUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggMDliYTYyN2YyYzc2NGNlMWVl
ZjY1YmNlZThmNmI2ZWE2MjAyZDFjNS4uNzBjNzE0NzMzMjQ0NDA4MDc4NzkzNDAxOTg2NjczYzk3
ZTFlYTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAtMTIz
LDYgKzEyMywxNSBAQCBKU09iamVjdCogY3JlYXRlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBFcnJv
clR5cGUgZXJyb3JUeXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZwogICAgIHJldHVybiBudWxscHRy
OwogfQogCitKU09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkp
OworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCk7CisgICAgYXV0byogZXJyb3IgPSBFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywg
Z2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlw
ZTo6VHlwZUVycm9yKSwgbWVzc2FnZSk7CisgICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVF
cnJvcigpOworICAgIHJldHVybiBlcnJvcjsKK30KKwogY2xhc3MgRmluZEZpcnN0Q2FsbGVyRnJh
bWVXaXRoQ29kZWJsb2NrRnVuY3RvciB7CiBwdWJsaWM6CiAgICAgRmluZEZpcnN0Q2FsbGVyRnJh
bWVXaXRoQ29kZWJsb2NrRnVuY3RvcihDYWxsRnJhbWUqIHN0YXJ0Q2FsbEZyYW1lKQpAQCAtMjkw
LDkgKzI5OSwxNCBAQCBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoRXhlY1N0YXRlKiBleGVj
LCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBtZQogICAgIHJldHVybiB0aHJvd0V4
Y2VwdGlvbihleGVjLCBzY29wZSwgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgbWVzc2FnZSkpOwog
fQogCitFeGNlcHRpb24qIHRocm93R2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgVGhy
b3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oZXhlYywgc2NvcGUsIGNyZWF0ZUdldHRlclR5cGVFcnJvcihleGVjLCBtZXNz
YWdlKSk7Cit9CisKIEpTVmFsdWUgdGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoRXhl
Y1N0YXRlKiBleGVjLCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0lu
Zm8sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKGV4ZWMsIHNjb3BlLCBtYWtlU3RyaW5nKCJUaGUgIiwgY2xhc3NJbmZvLT5jbGFzc05hbWUs
ICcuJywgU3RyaW5nKHByb3BlcnR5TmFtZS51aWQoKSksICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVz
ZWQgb24gaW5zdGFuY2VzIG9mICIsIGNsYXNzSW5mby0+Y2xhc3NOYW1lKSk7CisgICAgcmV0dXJu
IHRocm93R2V0dGVyVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBtYWtlU3RyaW5nKCJUaGUgIiwgY2xh
c3NJbmZvLT5jbGFzc05hbWUsICcuJywgU3RyaW5nKHByb3BlcnR5TmFtZS51aWQoKSksICIgZ2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsIGNsYXNzSW5mby0+Y2xhc3NO
YW1lKSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCmluZGV4
IGYxZjlkODVhMzBkYTMyZWE4NDY0ODg5MWM5OTUxZTBhMDcwM2MyYmMuLmMwNGJjNTVjZTNjYTU0
YWI5M2RmOTk0M2IzNmU2NDIxZmUyMmYyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3IuaApAQCAtNjcsNiArNjcsOCBAQCBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlT3V0T2ZNZW1vcnlFcnJvcihFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKTsKIAogSlNfRVhQ
T1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZUVycm9yKEV4ZWNTdGF0ZSosIEVycm9yVHlwZSwg
Y29uc3QgU3RyaW5nJik7CiAKK0pTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJik7CisKIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8U3RhY2tGcmFt
ZT4+IGdldFN0YWNrVHJhY2UoRXhlY1N0YXRlKiwgVk0mLCBKU09iamVjdCosIGJvb2wgdXNlQ3Vy
cmVudEZyYW1lKTsKIHZvaWQgZ2V0Qnl0ZWNvZGVPZmZzZXQoRXhlY1N0YXRlKiwgVk0mLCBWZWN0
b3I8U3RhY2tGcmFtZT4qLCBDYWxsRnJhbWUqJiwgdW5zaWduZWQmIGJ5dGVjb2RlT2Zmc2V0KTsK
IGJvb2wgZ2V0TGluZUNvbHVtbkFuZFNvdXJjZShWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJh
Y2UsIHVuc2lnbmVkJiBsaW5lLCB1bnNpZ25lZCYgY29sdW1uLCBTdHJpbmcmIHNvdXJjZVVSTCk7
CkBAIC04NCw2ICs4Niw4IEBAIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dUeXBl
RXJyb3IoRXhlY1N0YXRlKiwgVGhyb3dTY29wZSYsIGNvbnN0IFN0cmluCiBKU19FWFBPUlRfUFJJ
VkFURSBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoRXhlY1N0YXRlKiwgVGhyb3dTY29wZSYp
OwogSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd1N5bnRheEVycm9yKEV4ZWNTdGF0
ZSosIFRocm93U2NvcGUmLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiBpbmxpbmUgRXhj
ZXB0aW9uKiB0aHJvd1JhbmdlRXJyb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVGhyb3dTY29wZSYgc2Nv
cGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJldHVybiB0aHJvd0V4Y2VwdGlvbihz
dGF0ZSwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3Ioc3RhdGUsIGVycm9yTWVzc2FnZSkpOyB9CisK
K0pTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0
YXRlKiwgVGhyb3dTY29wZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIEpTX0VYUE9S
VF9QUklWQVRFIEpTVmFsdWUgdGhyb3dET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0
YXRlKiwgVGhyb3dTY29wZSYsIGNvbnN0IENsYXNzSW5mbyosIFByb3BlcnR5TmFtZSk7CiAKIC8v
IENvbnZlbmllbmNlIHdyYXBwZXJzLCB3cmFwIHJlc3VsdCBhcyBhbiBFbmNvZGVkSlNWYWx1ZS4K
QEAgLTk0LDYgKzk4LDcgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1UeXBlRXJyb3Io
RXhlY1N0YXRlKiBleGVjLCBUaHJvd1Njb3BlJiBzY29wZSkgeyByZXQKIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSB0aHJvd1ZNVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgVGhyb3dTY29wZSYgc2Nv
cGUsIEFTQ0lJTGl0ZXJhbCBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgZXJyb3JNZXNzYWdlKSk7IH0KIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSB0aHJvd1ZNVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgVGhyb3dTY29wZSYg
c2NvcGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIGVycm9yTWVzc2FnZSkpOyB9CiBpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgdGhyb3dWTVJhbmdlRXJyb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVGhyb3dT
Y29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodGhyb3dSYW5nZUVycm9yKHN0YXRlLCBzY29wZSwgZXJyb3JNZXNzYWdlKSk7IH0K
K2lubGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSog
ZXhlYywgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7IHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dHZXR0ZXJUeXBlRXJyb3IoZXhlYywgc2NvcGUsIGVy
cm9yTWVzc2FnZSkpOyB9CiBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTURPTUF0dHJpYnV0
ZUdldHRlclR5cGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgY29u
c3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIHsgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0RPTUF0dHJpYnV0ZUdldHRlclR5cGVFcnJvcihzdGF0
ZSwgc2NvcGUsIGNsYXNzSW5mbywgcHJvcGVydHlOYW1lKSk7IH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5k
ZXggZmJjNmYyNTNkOTM2ZGYzN2VmYTdhNmM0YmVlMTVmNWI5MTZiN2ViYi4uOTdhODlkYWY4YzI2
MzEyNzQ3ZjgxMTY4ZjU5MTYzM2FmMjU5YTJkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtNjUsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRPdXRPZk1lbW9yeUVycm9yKCkgeyBtX291dE9mTWVtb3J5RXJyb3IgPSB0cnVlOyB9
CiAgICAgYm9vbCBpc091dE9mTWVtb3J5RXJyb3IoKSBjb25zdCB7IHJldHVybiBtX291dE9mTWVt
b3J5RXJyb3I7IH0KIAorICAgIHZvaWQgc2V0TmF0aXZlR2V0dGVyVHlwZUVycm9yKCkgeyBtX25h
dGl2ZUdldHRlclR5cGVFcnJvciA9IHRydWU7IH0KKyAgICBib29sIGlzTmF0aXZlR2V0dGVyVHlw
ZUVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3I7IH0KKwogICAg
IEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBzYW5pdGl6ZWRUb1N0cmluZyhFeGVjU3RhdGUqKTsK
ICAgICAKICAgICBWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2UoKSB7IHJldHVybiBtX3N0
YWNrVHJhY2UuZ2V0KCk7IH0KQEAgLTEwNSw2ICsxMDgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBtX3N0YWNrT3ZlcmZsb3dFcnJvciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX291dE9mTWVtb3J5
RXJyb3IgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvV3JpdGFibGVTdHJlYW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
V3JpdGFibGVTdHJlYW0uanMKaW5kZXggZjY4YWRmYjExZGE1YzY3OTc4MDI5MDBhODZhMTAzODZm
ZmRkYjNkOC4uMDRhY2Y4MTdlM2JhYTU0YTdiM2E0MzI0NThmZTg1MWU3NDc3YzFjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcwpAQCAt
MTU0LDcgKzE1NCw3IEBAIGZ1bmN0aW9uIGNsb3NlZCgpCiAgICAgInVzZSBzdHJpY3QiOwogCiAg
ICAgaWYgKCFAaXNXcml0YWJsZVN0cmVhbSh0aGlzKSkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNl
LkByZWplY3QoQG1ha2VUeXBlRXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5jbG9zZWQgZ2V0dGVy
IGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFdyaXRhYmxlU3RyZWFtIikpOworICAg
ICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChAbWFrZUdldHRlclR5cGVFcnJvcigiV3JpdGFi
bGVTdHJlYW0iLCAiY2xvc2VkIikpOwogCiAgICAgcmV0dXJuIEBnZXRCeUlkRGlyZWN0UHJpdmF0
ZSh0aGlzLCAiY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkiKS5AcHJvbWlzZTsKIH0KQEAgLTE2NSw3
ICsxNjUsNyBAQCBmdW5jdGlvbiByZWFkeSgpCiAgICAgInVzZSBzdHJpY3QiOwogCiAgICAgaWYg
KCFAaXNXcml0YWJsZVN0cmVhbSh0aGlzKSkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWpl
Y3QoQG1ha2VUeXBlRXJyb3IoIlRoZSBXcml0YWJsZVN0cmVhbS5yZWFkeSBnZXR0ZXIgY2FuIG9u
bHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0iKSk7CisgICAgICAgIHJl
dHVybiBAUHJvbWlzZS5AcmVqZWN0KEBtYWtlR2V0dGVyVHlwZUVycm9yKCJXcml0YWJsZVN0cmVh
bSIsICJyZWFkeSIpKTsKIAogICAgIHJldHVybiBAZ2V0QnlJZERpcmVjdFByaXZhdGUodGhpcywg
InJlYWR5UHJvbWlzZUNhcGFiaWxpdHkiKS5AcHJvbWlzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKaW5kZXggMTMx
MWM5ZGEwNWE5YzAxY2Q2OTUzZmZmMmZjNDc5OWRmZTA0OTY5My4uNzAwMjQ1MzAwNWJkMGQ1N2Y5
OGNkNDJmNDBjYWM5MDA1NGU0N2Y0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTI3MCwxMiArMjcwLDEyIEBA
IFN0cmluZyBtYWtlR2V0dGVyVHlwZUVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBpbnRlcmZhY2VO
YW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dHZXR0
ZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3Bl
LCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lKQog
ewotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIG1ha2VHZXR0ZXJU
eXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGF0dHJpYnV0ZU5hbWUpKTsKKyAgICByZXR1
cm4gdGhyb3dWTUdldHRlclR5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBtYWtlR2V0dGVyVHlwZUVy
cm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLCBhdHRyaWJ1dGVOYW1lKSk7CiB9CiAKIEpTQzo6RW5j
b2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhHZXR0ZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1
dGVOYW1lKQogewotICAgIHJldHVybiBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9y
KHN0YXRlLCBtYWtlR2V0dGVyVHlwZUVycm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLCBhdHRyaWJ1
dGVOYW1lKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3Io
c3RhdGUsIG1ha2VHZXR0ZXJUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGF0dHJpYnV0
ZU5hbWUpLCBSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yQ2F1c2U6Ok5hdGl2ZUdldHRlcik7
CiB9CiAKIGJvb2wgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBj
aGFyKiBhdHRyaWJ1dGVOYW1lKQpAQCAtMzAyLDcgKzMwMiw3IEBAIEpTQzo6RW5jb2RlZEpTVmFs
dWUgcmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlwZUVycm9yKERlZmVycmVkUHJvbWlzZSYgcHJvbWlz
ZSwgY29uCiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlwZUVy
cm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29u
c3QgY2hhciogbWV0aG9kTmFtZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVqZWN0ZWRQcm9taXNl
V2l0aFR5cGVFcnJvcihzdGF0ZSwgbWFrZVRoaXNUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5h
bWUsIG1ldGhvZE5hbWUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5
cGVFcnJvcihzdGF0ZSwgbWFrZVRoaXNUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIG1l
dGhvZE5hbWUpLCBSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yQ2F1c2U6OkludmFsaWRUaGlz
KTsKIH0KIAogdm9pZCB0aHJvd0RPTVN5bnRheEVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgQVNDSUlMaXRlcmFsIG1lc3NhZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggZDE0NDA5
MTI1OTVkNThiZTlkNWFkMmM3NTZjODY2MGQ1MzIxMzcxMi4uNzg4ZTJlNjc3ZjdmMjBjZDM5ZDIx
NzEyY2Y4Njc0NjBiNTZmNWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtMTAwLDcgKzEwMCwxMCBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyhFeGVjU3RhdGUq
IGV4ZWNTdGF0ZQogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgYXV0byBhdHRy
aWJ1dGVOYW1lID0gZXhlY1N0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKS5nZXRTdHJpbmcoZXhl
Y1N0YXRlKTsKICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY3JlYXRlVHlwZUVycm9yKGV4ZWNTdGF0ZSwgbWFrZUdldHRlclR5cGVFcnJv
ck1lc3NhZ2UoaW50ZXJmYWNlTmFtZS51dGY4KCkuZGF0YSgpLCBhdHRyaWJ1dGVOYW1lLnV0Zjgo
KS5kYXRhKCkpKSk7CisKKyAgICBhdXRvIGVycm9yID0gc3RhdGljX2Nhc3Q8RXJyb3JJbnN0YW5j
ZSo+KGNyZWF0ZVR5cGVFcnJvcihleGVjU3RhdGUsIG1ha2VHZXR0ZXJUeXBlRXJyb3JNZXNzYWdl
KGludGVyZmFjZU5hbWUudXRmOCgpLmRhdGEoKSwgYXR0cmlidXRlTmFtZS51dGY4KCkuZGF0YSgp
KSkpOworICAgIGVycm9yLT5zZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGVycm9yKTsKIH0KIAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNw
cAppbmRleCAyMGY5NzM3YjFjYjA4ZjY5MTg0Mzk1ZDQxYTE3NzQ4Zjk4Mjc4YWRhLi41MGJhYzI0
ZDU0YzY4MGY2YjBiNjc2MWQ5OTEyYWM0ODU4MWU1ZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwCkBAIC0xOTcsMTQgKzE5
NywxNiBAQCBSZWY8RGVmZXJyZWRQcm9taXNlPiBjcmVhdGVEZWZlcnJlZFByb21pc2UoSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBKU0RPTVdpbmRvdyYgZAogICAgIHJldHVybiBEZWZlcnJlZFByb21p
c2U6OmNyZWF0ZShkb21XaW5kb3csICpkZWZlcnJlZCk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgY3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3Rh
dGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQorSlNDOjpFbmNvZGVkSlNWYWx1ZSBjcmVh
dGVSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIFJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3JDYXVz
ZSBjYXVzZSkKIHsKICAgICBBU1NFUlQoc3RhdGUubGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAg
ICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqc3RhdGUubGV4aWNhbEdsb2JhbE9iamVjdCgpOwogCiAg
ICAgYXV0byBwcm9taXNlQ29uc3RydWN0b3IgPSBnbG9iYWxPYmplY3QucHJvbWlzZUNvbnN0cnVj
dG9yKCk7CiAgICAgYXV0byByZWplY3RGdW5jdGlvbiA9IHByb21pc2VDb25zdHJ1Y3Rvci0+Z2V0
KCZzdGF0ZSwgc3RhdGUudm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQ
cml2YXRlTmFtZSgpKTsKLSAgICBhdXRvIHJlamVjdGlvblZhbHVlID0gY3JlYXRlVHlwZUVycm9y
KCZzdGF0ZSwgZXJyb3JNZXNzYWdlKTsKKyAgICBhdXRvKiByZWplY3Rpb25WYWx1ZSA9IHN0YXRp
Y19jYXN0PEVycm9ySW5zdGFuY2UqPihjcmVhdGVUeXBlRXJyb3IoJnN0YXRlLCBlcnJvck1lc3Nh
Z2UpKTsKKyAgICBpZiAoY2F1c2UgPT0gTmF0aXZlR2V0dGVyKQorICAgICAgICByZWplY3Rpb25W
YWx1ZS0+c2V0TmF0aXZlR2V0dGVyVHlwZUVycm9yKCk7CiAKICAgICBDYWxsRGF0YSBjYWxsRGF0
YTsKICAgICBhdXRvIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoc3RhdGUudm0oKSwgcmVqZWN0RnVu
Y3Rpb24sIGNhbGxEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NUHJvbWlzZURlZmVycmVkLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVByb21pc2VEZWZlcnJlZC5oCmluZGV4IDQzMThjOWYzN2RjMTYwY2ViZGQwZDUxN2ZiNGQyZTkw
ZDRmMDU2YTEuLmI0YWFiNzhmNDdhNjkwMDMwZmU1ZGFiNWI3ODc2Nzg3ZTU2MmJiNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaApA
QCAtMjU3LDcgKzI1Nyw5IEBAIHZvaWQgZnVsZmlsbFByb21pc2VXaXRoSlNPTihSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmLCBjb25zdCBTdHJpbmcmKTsKIHZvaWQgZnVsZmlsbFByb21pc2VXaXRoQXJy
YXlCdWZmZXIoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgQXJyYXlCdWZmZXIqKTsKIHZvaWQgZnVs
ZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgY29uc3Qg
dm9pZCosIHNpemVfdCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlamVjdFByb21pc2VXaXRoRXhj
ZXB0aW9uSWZBbnkoSlNDOjpFeGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6SlNQ
cm9taXNlRGVmZXJyZWQmKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgY3JlYXRlUmVqZWN0ZWRQcm9t
aXNlV2l0aFR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpOworCitlbnVt
IGNsYXNzIFJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3JDYXVzZSB7IE5hdGl2ZUdldHRlciwg
SW52YWxpZFRoaXMgfTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgY3JlYXRlUmVqZWN0ZWRQcm9taXNl
V2l0aFR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYsIFJlamVjdGVkUHJv
bWlzZVdpdGhUeXBlRXJyb3JDYXVzZSk7CiAKIHVzaW5nIFByb21pc2VGdW5jdGlvbiA9IHZvaWQo
SlNDOjpFeGVjU3RhdGUmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM1OTlh
MWE3ZDIxODliYWRmYjhhNTYzYWMwMjRjN2YyZGJlMzM2MWMuLjUwNjJmZGI3YmExYWFjNGQyNzVj
ZDQ0NmVhNDVlMzZkOTViMDE2YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wNC0xNSAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZmFrZSB2YWx1ZSBkZXNjcmlwdG9ycyBmb3IgcHJvbWlzZXMgYWRkIGEgY2F0Y2ggaGFuZGxl
ciwgcHJldmVudGluZyAicmVqZWN0aW9uaGFuZGxlZCIgZXZlbnRzIGZyb20gYmVpbmcgZmlyZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjQ4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDkxMTQ3MjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcnVudGltZS9wcm9taXNlLW5h
dGl2ZS1nZXR0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUvcHJv
bWlzZS1uYXRpdmUtZ2V0dGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTktMDQtMTUgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
NDA2NDQpOiBMYXlvdXQgVGVzdCBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctSUNFQ2Fu
ZGlkYXRlRmlsdGVyaW5nRW5hYmxlZC5odG1sIGlzIGEgZmxha3kgdGltZW91dApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcHJvbWlzZS1uYXRpdmUtZ2V0dGVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0aXZl
LWdldHRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNmZTJkZGM1NDdlZjAzYWExMmJjMTcx
Yzg3YzNiNTRjYjA1ZmYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9ydW50aW1lL3Byb21pc2UtbmF0aXZlLWdldHRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogdW5oYW5kbGVkcmVqZWN0aW9uIC0gInRlc3Qi
CitDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjogdGVzdAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDIwOiBjYXVnaHQgLSAidGVzdCIKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxMjogcmVqZWN0aW9uaGFuZGxlZCAtICJ0ZXN0IgorVGVzdHMgdGhhdCB0aGUgaW5qZWN0
ZWQgc2NyaXB0IG9ubHkgYC50aGVuKClgcyBwcm9taXNlcyBpZiB0aGV5IGFyZSByZXR1cm5lZCBi
eSBuYXRpdmUgZ2V0dGVycy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50
aW1lL3Byb21pc2UtbmF0aXZlLWdldHRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1
bnRpbWUvcHJvbWlzZS1uYXRpdmUtZ2V0dGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUzOWJjMGY3MGU0
ODkzYjI2Yjc0NDcwZDYxZmYzOTViZDU3M2JkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0aXZlLWdldHRlci5odG1sCkBAIC0wLDAg
KzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gY3JlYXRlVW5oYW5kbGVkUHJvbWlzZSgpIHsKKyAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0aW9uIiwgKGV2ZW50KSA9
PiB7CisgICAgICAgIGNvbnNvbGUubG9nKCJ1bmhhbmRsZWRyZWplY3Rpb24gLSAiICsgSlNPTi5z
dHJpbmdpZnkoZXZlbnQucmVhc29uKSk7CisgICAgfSk7CisKKyAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigicmVqZWN0aW9uaGFuZGxlZCIsIChldmVudCkgPT4geworICAgICAgICBjb25zb2xl
LmxvZygicmVqZWN0aW9uaGFuZGxlZCAtICIgKyBKU09OLnN0cmluZ2lmeShldmVudC5yZWFzb24p
KTsKKyAgICAgICAgVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoInJlamVjdGlvbmhh
bmRsZWQiKTsKKyAgICB9KTsKKworICAgIGxldCBwcm9taXNlID0gUHJvbWlzZS5yZWplY3QoInRl
c3QiKTsKKworICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBwcm9taXNlLmNhdGNoKCh2
YWx1ZSkgPT4geworICAgICAgICAgICAgY29uc29sZS5sb2coImNhdWdodCAtICIgKyBKU09OLnN0
cmluZ2lmeSh2YWx1ZSkpOworICAgICAgICB9KTsKKyAgICB9LCA1KTsKK30KKworZnVuY3Rpb24g
dGVzdCgpCit7CisgICAgUHJvdG9jb2xUZXN0LmF3YWl0RXZlbnQoInJlamVjdGlvbmhhbmRsZWQi
KQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgp
OworICAgIH0pOworCisgICAgUHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVVbmhh
bmRsZWRQcm9taXNlKClgKQorICAgIC5jYXRjaCgoZSkgPT4geworICAgICAgICBQcm90b2NvbFRl
c3QuZmFpbChlKTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIHRoYXQgdGhlIGluamVjdGVkIHNjcmlwdCBvbmx5
IGAudGhlbigpYHMgcHJvbWlzZXMgaWYgdGhleSBhcmUgcmV0dXJuZWQgYnkgbmF0aXZlIGdldHRl
cnMuPC9wPgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="383816"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367461</attachid>
            <date>2019-04-15 14:42:07 -0700</date>
            <delta_ts>2019-04-15 17:02:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>196484.patch</filename>
            <type>text/plain</type>
            <size>24916</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg0MWU3MjBiZDdhYmI5NWQ1Zjg3MzA2OTZlZDU3
MjVjYjEzZGYyNGEuLmRiNzQwNjA2Y2Q1MDRkZjlhYzlhZDBiYWY5MjhjMDI1ZjFmYjY4N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA0LTE1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
YWtlIHZhbHVlIGRlc2NyaXB0b3JzIGZvciBwcm9taXNlcyBhZGQgYSBjYXRjaCBoYW5kbGVyLCBw
cmV2ZW50aW5nICJyZWplY3Rpb25oYW5kbGVkIiBldmVudHMgZnJvbSBiZWluZyBmaXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDg0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80OTExNDcyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3Nl
cGggUGVjb3Jhcm8uCisKKyAgICAgICAgT25seSBhZGQgYSBjYXRjaCBoYW5kbGVyIHdoZW4gdGhl
IHByb21pc2UgaXMgcmVhY2hhYmxlIHZpYSBhIG5hdGl2ZSBnZXR0ZXIgYW5kIGlzIGtub3duIHRv
CisgICAgICAgIGhhdmUgcmVqZWN0ZWQuIEEgbm9uLXJlamVjdGVkIHByb21pc2UgZG9lc24ndCBu
ZWVkIGEgY2F0Y2ggaGFuZGxlciwgYW5kIGFueSBwcm9taXNlIHRoYXQKKyAgICAgICAgaXNuJ3Qg
cmVhY2hhYmxlIHZpYSBhIGdldHRlciB3b24ndCBhY3R1YWxseSBiZSByZWFjaGVkLCBhcyBgSW5q
ZWN0ZWRTY3JpcHRgIGRvZXNuJ3QgY2FsbCBhbnkKKyAgICAgICAgZnVuY3Rpb25zLCBpbnN0ZWFk
IG9ubHkgZ2V0dGluZyB0aGUgZnVuY3Rpb24gb2JqZWN0IGl0c2VsZi4KKworICAgICAgICAqIGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKEluamVjdGVkU2NyaXB0
LnByb3RvdHlwZS5fcHJvcGVydHlEZXNjcmlwdG9ycy5jcmVhdGVGYWtlVmFsdWVEZXNjcmlwdG9y
KToKKworICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChJbnNwZWN0
b3I6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0
ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSW5zcGVjdG9yOjpqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0
aXZlR2V0dGVyVHlwZUVycm9yKTogQWRkZWQuCisKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5z
dGFuY2UuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6c2V0TmF0aXZlR2V0dGVyVHlw
ZUVycm9yKTogQWRkZWQuCisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmlzTmF0aXZlR2V0
dGVyVHlwZUVycm9yIGNvbnN0KTogQWRkZWQuCisKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmg6
CisgICAgICAgIChKU0M6OnRocm93Vk1HZXR0ZXJUeXBlRXJyb3IpOiBBZGRlZC4KKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlwZUVycm9y
KTogQWRkZWQuCisgICAgICAgIChKU0M6OnRocm93R2V0dGVyVHlwZUVycm9yKTogQWRkZWQuCisg
ICAgICAgIChKU0M6OnRocm93RE9NQXR0cmlidXRlR2V0dGVyVHlwZUVycm9yKToKKwogMjAxOS0w
NC0xNCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtD
TWFrZV0gSmF2YVNjcmlwdENvcmUgZGVyaXZlZCBzb3VyY2VzIHNob3VsZCBvbmx5IGJlIHJlZmVy
ZW5jZWQgaW5zaWRlIEphdmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM1YTllOGU2YzdlZjIy
NzEyMmQ5NTM1YWIwOGM4YTIyNmI2MDhlYy4uNWE4YTcwZTE0ODhmYmE3ZTNlYmY5NGJkODUxNWFk
NWJhMzhjZjI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA0LTE1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
YWtlIHZhbHVlIGRlc2NyaXB0b3JzIGZvciBwcm9taXNlcyBhZGQgYSBjYXRjaCBoYW5kbGVyLCBw
cmV2ZW50aW5nICJyZWplY3Rpb25oYW5kbGVkIiBldmVudHMgZnJvbSBiZWluZyBmaXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NDg0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80OTExNDcyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3Nl
cGggUGVjb3Jhcm8uCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3J1bnRpbWUvcHJvbWlzZS1u
YXRpdmUtZ2V0dGVyLmh0bWwKKworICAgICAgICBNYXJrIGVycm9ycyBjcmVhdGVkIGZyb20gZ2V0
dGVycyBhcyBiZWluZyBgaXNOYXRpdmVHZXR0ZXJUeXBlRXJyb3JgLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
aHJvd0dldHRlclR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpyZWplY3RQcm9taXNlV2l0
aEdldHRlclR5cGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpyZWplY3RQcm9taXNlV2l0aFRo
aXNUeXBlRXJyb3IpOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFrZUdldHRlclR5cGVFcnJvckZvckJ1aWx0aW5zKToK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvcik6CisKKyAgICAgICAgKiBNb2R1
bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanM6CisgICAgICAgIChnZXR0ZXIuY2xvc2VkKToK
KyAgICAgICAgKGdldHRlci5yZWFkeSk6CisKIDIwMTktMDQtMTUgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyMzc5MDMpIFNwZWVkb21ldGVy
IDIgaXMgMS0yJSByZWdyZXNzZWQgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCBjNDQwYzYyNWIx
MzFlM2YyZGJkYzQ3OTE3YjM2MTE4YjVmZTY5YTIwLi42MzBlNWRjMDE0NTk1OTc1ZGViYzc2MTQz
NDNiNDJiM2Y1NzM5NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTY1Myw3ICs2NTMsNyBAQCBsZXQg
SW5qZWN0ZWRTY3JpcHQgPSBjbGFzcyBJbmplY3RlZFNjcmlwdAogICAgICAgICAgICAgICAgIGlm
IChzeW1ib2wpCiAgICAgICAgICAgICAgICAgICAgIGZha2VEZXNjcmlwdG9yLnN5bWJvbCA9IHN5
bWJvbDsKICAgICAgICAgICAgICAgICAvLyBTaWxlbmNlIGFueSBwb3NzaWJsZSB1bmhhbmRsZWRy
ZWplY3Rpb24gZXhjZXB0aW9ucyBjcmVhdGVkIGZyb20gYWNjZXNzaW5nIGEgbmF0aXZlIGFjY2Vz
c29yIHdpdGggYSB3cm9uZyB0aGlzIG9iamVjdC4KLSAgICAgICAgICAgICAgICBpZiAoZmFrZURl
c2NyaXB0b3IudmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlKQorICAgICAgICAgICAgICAgIGlmIChm
YWtlRGVzY3JpcHRvci52YWx1ZSBpbnN0YW5jZW9mIFByb21pc2UgJiYgSW5qZWN0ZWRTY3JpcHRI
b3N0LmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvcihmYWtlRGVzY3Jp
cHRvci52YWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIGZha2VEZXNjcmlwdG9yLnZhbHVlLmNh
dGNoKGZ1bmN0aW9uKCl7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZha2VEZXNjcmlwdG9y
OwogICAgICAgICAgICAgfSBjYXRjaCAoZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCAyNDFmNWRi
MzdkNDE0NDAwNjViNTMyYzhiYmQzYjEzNjI3MjFhNmUzLi5kOTcyNWMwZDhmNDZlNzc0NDU3OTU1
MWI0ZmY5MGZmYTI2ZGIyN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMTQyLDYgKzE0MiwyMSBA
QCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxBbGxDb2xsZWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYykKICAgICByZXR1cm4ganNCb29sZWFuKGltcGwoKS5pc0hUTUxBbGxDb2xsZWN0
aW9uKHZtLCB2YWx1ZSkpOwogfQogCitKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc1By
b21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQor
eworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworCisgICAgYXV0byogcHJvbWlzZSA9IGpzRHluYW1pY0Nhc3Q8SlNQcm9t
aXNlKj4odm0sIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXByb21pc2UgfHwgcHJvbWlz
ZS0+c3RhdHVzKHZtKSAhPSBKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpCisgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgIkluamVjdGVkU2NyaXB0SG9zdC5pc1By
b21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IgZmlyc3QgYXJndW1lbnQgbXVz
dCBiZSBhIHJlamVjdGVkIFByb21pc2UuIl9zKTsKKworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgaWYgKGF1dG8qIGVycm9ySW5zdGFuY2UgPSBqc0R5bmFtaWNDYXN0PEVycm9ySW5zdGFu
Y2UqPih2bSwgcHJvbWlzZS0+cmVzdWx0KHZtKSkpCisgICAgICAgIHJlc3VsdCA9IGVycm9ySW5z
dGFuY2UtPmlzTmF0aXZlR2V0dGVyVHlwZUVycm9yKCk7CisgICAgcmV0dXJuIGpzQm9vbGVhbihy
ZXN1bHQpOworfQorCiBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNT
dGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oCmluZGV4
IGJhY2MzN2FhYjE3MzA4ZDZmMjE4OTFlNzljNzA5MGE1OTc5Zjc2NDMuLjhkOTIwZjU5N2ZiZTEz
NjEwMTMxZDJlNWMzZDJkMmI5YWMzYmUzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTYyLDYgKzYyLDcg
QEAgcHVibGljOgogICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihK
U0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBpbnRlcm5hbENvbnN0cnVjdG9yTmFt
ZShKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBpc0hUTUxBbGxDb2xsZWN0aW9u
KEpTQzo6RXhlY1N0YXRlKik7CisgICAgSlNDOjpKU1ZhbHVlIGlzUHJvbWlzZVJlamVjdGVkV2l0
aE5hdGl2ZUdldHRlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1
ZSBzdWJ0eXBlKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgSlNDOjpKU1ZhbHVlIGZ1bmN0aW9uRGV0
YWlscyhKU0M6OkV4ZWNTdGF0ZSopOwogICAgIEpTQzo6SlNWYWx1ZSBnZXRJbnRlcm5hbFByb3Bl
cnRpZXMoSlNDOjpFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAK
aW5kZXggMDFmNjFmNGQ2NTQ4ZjFkMzhkYzk0NDMzYmUwZDU1Njk3ZmM5YTA5Yy4uZGYwMGJmYWFk
YzExYmRlNjcyZWExMzJhMWU1NWRjYTE2Y2M3ZmMzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW8KIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25HZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKik7CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25J
c1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKik7CiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVu
Y3Rpb25XZWFrTWFwU2l6ZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50
cmllcyhFeGVjU3RhdGUqKTsKQEAgLTY3LDYgKzY4LDcgQEAgdm9pZCBKU0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmEKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ2V0SW50ZXJu
YWxQcm9wZXJ0aWVzIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldElu
dGVybmFsUHJvcGVydGllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJpbnRlcm5hbENvbnN0cnVjdG9yTmFtZSIsIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpc0hUTUxBbGxDb2xsZWN0aW9uIiwganNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24sIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0
aXZlR2V0dGVyVHlwZUVycm9yIiwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvciwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwcm94eVRhcmdldFZhbHVlIiwganNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0VmFsdWUsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01hcFNpemUiLCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2Vha01hcEVudHJpZXMiLCBqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKQEAgLTExOCw2ICsxMjAs
MTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNhc3RlZFRoaXMtPmlzSFRNTEFsbENvbGxlY3Rpb24oZXhlYykpOwogfQogCitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25J
c1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVj
KQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworCisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKKyAgICBKU0luamVjdGVkU2NyaXB0SG9zdCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNJbmplY3RlZFNjcmlwdEhvc3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoIWNhc3Rl
ZFRoaXMpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKKwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+aXNQcm9taXNlUmVqZWN0ZWRX
aXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yKGV4ZWMpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJn
ZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCAwOWJhNjI3ZjJjNzY0Y2Ux
ZWVmNjViY2VlOGY2YjZlYTYyMDJkMWM1Li43MGM3MTQ3MzMyNDQ0MDgwNzg3OTM0MDE5ODY2NzNj
OTdlMWVhODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0x
MjMsNiArMTIzLDE1IEBAIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEVy
cm9yVHlwZSBlcnJvclR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKK0pTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHko
KSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKTsKKyAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVj
LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JU
eXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlKTsKKyAgICBlcnJvci0+c2V0TmF0aXZlR2V0dGVyVHlw
ZUVycm9yKCk7CisgICAgcmV0dXJuIGVycm9yOworfQorCiBjbGFzcyBGaW5kRmlyc3RDYWxsZXJG
cmFtZVdpdGhDb2RlYmxvY2tGdW5jdG9yIHsKIHB1YmxpYzoKICAgICBGaW5kRmlyc3RDYWxsZXJG
cmFtZVdpdGhDb2RlYmxvY2tGdW5jdG9yKENhbGxGcmFtZSogc3RhcnRDYWxsRnJhbWUpCkBAIC0y
OTAsOSArMjk5LDE0IEBAIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhFcnJvcihFeGVjU3RhdGUqIGV4
ZWMsIFRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBTdHJpbmcmIG1lCiAgICAgcmV0dXJuIHRocm93
RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCBtZXNzYWdlKSk7
CiB9CiAKK0V4Y2VwdGlvbiogdGhyb3dHZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBU
aHJvd1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHJldHVybiB0
aHJvd0V4Y2VwdGlvbihleGVjLCBzY29wZSwgY3JlYXRlR2V0dGVyVHlwZUVycm9yKGV4ZWMsIG1l
c3NhZ2UpKTsKK30KKwogSlNWYWx1ZSB0aHJvd0RPTUF0dHJpYnV0ZUdldHRlclR5cGVFcnJvcihF
eGVjU3RhdGUqIGV4ZWMsIFRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBDbGFzc0luZm8qIGNsYXNz
SW5mbywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoZXhlYywgc2NvcGUsIG1ha2VTdHJpbmcoIlRoZSAiLCBjbGFzc0luZm8tPmNsYXNzTmFt
ZSwgJy4nLCBTdHJpbmcocHJvcGVydHlOYW1lLnVpZCgpKSwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgY2xhc3NJbmZvLT5jbGFzc05hbWUpKTsKKyAgICByZXR1
cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoZXhlYywgc2NvcGUsIG1ha2VTdHJpbmcoIlRoZSAiLCBj
bGFzc0luZm8tPmNsYXNzTmFtZSwgJy4nLCBTdHJpbmcocHJvcGVydHlOYW1lLnVpZCgpKSwgIiBn
ZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgY2xhc3NJbmZvLT5jbGFz
c05hbWUpKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKaW5k
ZXggZjFmOWQ4NWEzMGRhMzJlYTg0NjQ4ODkxYzk5NTFlMGEwNzAzYzJiYy4uYzA0YmM1NWNlM2Nh
NTRhYjkzZGY5OTQzYjM2ZTY0MjFmZTIyZjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvci5oCkBAIC02Nyw2ICs2Nyw4IEBAIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBj
cmVhdGVPdXRPZk1lbW9yeUVycm9yKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpOwogCiBKU19F
WFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlRXJyb3IoRXhlY1N0YXRlKiwgRXJyb3JUeXBl
LCBjb25zdCBTdHJpbmcmKTsKIAorSlNPYmplY3QqIGNyZWF0ZUdldHRlclR5cGVFcnJvcihFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmKTsKKwogc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdGFja0Zy
YW1lPj4gZ2V0U3RhY2tUcmFjZShFeGVjU3RhdGUqLCBWTSYsIEpTT2JqZWN0KiwgYm9vbCB1c2VD
dXJyZW50RnJhbWUpOwogdm9pZCBnZXRCeXRlY29kZU9mZnNldChFeGVjU3RhdGUqLCBWTSYsIFZl
Y3RvcjxTdGFja0ZyYW1lPiosIENhbGxGcmFtZSomLCB1bnNpZ25lZCYgYnl0ZWNvZGVPZmZzZXQp
OwogYm9vbCBnZXRMaW5lQ29sdW1uQW5kU291cmNlKFZlY3RvcjxTdGFja0ZyYW1lPiogc3RhY2tU
cmFjZSwgdW5zaWduZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4sIFN0cmluZyYgc291cmNlVVJM
KTsKQEAgLTg0LDYgKzg2LDggQEAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd1R5
cGVFcnJvcihFeGVjU3RhdGUqLCBUaHJvd1Njb3BlJiwgY29uc3QgU3RyaW4KIEpTX0VYUE9SVF9Q
UklWQVRFIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhFcnJvcihFeGVjU3RhdGUqLCBUaHJvd1Njb3Bl
Jik7CiBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoRXhlY1N0
YXRlKiwgVGhyb3dTY29wZSYsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIGlubGluZSBF
eGNlcHRpb24qIHRocm93UmFuZ2VFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJvd1Njb3BlJiBz
Y29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIHRocm93RXhjZXB0aW9u
KHN0YXRlLCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihzdGF0ZSwgZXJyb3JNZXNzYWdlKSk7IH0K
KworSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0dldHRlclR5cGVFcnJvcihFeGVj
U3RhdGUqLCBUaHJvd1Njb3BlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogSlNfRVhQ
T1JUX1BSSVZBVEUgSlNWYWx1ZSB0aHJvd0RPTUF0dHJpYnV0ZUdldHRlclR5cGVFcnJvcihFeGVj
U3RhdGUqLCBUaHJvd1Njb3BlJiwgY29uc3QgQ2xhc3NJbmZvKiwgUHJvcGVydHlOYW1lKTsKIAog
Ly8gQ29udmVuaWVuY2Ugd3JhcHBlcnMsIHdyYXAgcmVzdWx0IGFzIGFuIEVuY29kZWRKU1ZhbHVl
LgpAQCAtOTQsNiArOTgsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTVR5cGVFcnJv
cihFeGVjU3RhdGUqIGV4ZWMsIFRocm93U2NvcGUmIHNjb3BlKSB7IHJldAogaW5saW5lIEVuY29k
ZWRKU1ZhbHVlIHRocm93Vk1UeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBUaHJvd1Njb3BlJiBz
Y29wZSwgQVNDSUlMaXRlcmFsIGVycm9yTWVzc2FnZSkgeyByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBlcnJvck1lc3NhZ2UpKTsgfQogaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIHRocm93Vk1UeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBUaHJvd1Njb3Bl
JiBzY29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgZXJyb3JNZXNzYWdlKSk7IH0KIGlubGlu
ZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNUmFuZ2VFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJv
d1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd1JhbmdlRXJyb3Ioc3RhdGUsIHNjb3BlLCBlcnJvck1lc3NhZ2UpKTsg
fQoraW5saW5lIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1HZXR0ZXJUeXBlRXJyb3IoRXhlY1N0YXRl
KiBleGVjLCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0dldHRlclR5cGVFcnJvcihleGVjLCBzY29wZSwg
ZXJyb3JNZXNzYWdlKSk7IH0KIGlubGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNRE9NQXR0cmli
dXRlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBj
b25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgeyBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RE9NQXR0cmlidXRlR2V0dGVyVHlwZUVycm9yKHN0
YXRlLCBzY29wZSwgY2xhc3NJbmZvLCBwcm9wZXJ0eU5hbWUpKTsgfQogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApp
bmRleCBmYmM2ZjI1M2Q5MzZkZjM3ZWZhN2E2YzRiZWUxNWY1YjkxNmI3ZWJiLi45N2E4OWRhZjhj
MjYzMTI3NDdmODExNjhmNTkxNjMzYWYyNTlhMmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC02NSw2ICs2NSw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldE91dE9mTWVtb3J5RXJyb3IoKSB7IG1fb3V0T2ZNZW1vcnlFcnJvciA9IHRydWU7
IH0KICAgICBib29sIGlzT3V0T2ZNZW1vcnlFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fb3V0T2ZN
ZW1vcnlFcnJvcjsgfQogCisgICAgdm9pZCBzZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKSB7IG1f
bmF0aXZlR2V0dGVyVHlwZUVycm9yID0gdHJ1ZTsgfQorICAgIGJvb2wgaXNOYXRpdmVHZXR0ZXJU
eXBlRXJyb3IoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUdldHRlclR5cGVFcnJvcjsgfQorCiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZFRvU3RyaW5nKEV4ZWNTdGF0ZSop
OwogICAgIAogICAgIFZlY3RvcjxTdGFja0ZyYW1lPiogc3RhY2tUcmFjZSgpIHsgcmV0dXJuIG1f
c3RhY2tUcmFjZS5nZXQoKTsgfQpAQCAtMTA1LDYgKzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1fc3RhY2tPdmVyZmxvd0Vycm9yIHsgZmFsc2UgfTsKICAgICBib29sIG1fb3V0T2ZNZW1v
cnlFcnJvciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Vycm9ySW5mb01hdGVyaWFsaXplZCB7IGZh
bHNlIH07CisgICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVFcnJvciB7IGZhbHNlIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9Xcml0YWJsZVN0cmVhbS5qcwppbmRleCBmNjhhZGZiMTFkYTVjNjc5NzgwMjkwMGE4NmExMDM4
NmZmZGRiM2Q4Li4wNGFjZjgxN2UzYmFhNTRhN2IzYTQzMjQ1OGZlODUxZTc0NzdjMWM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzCkBA
IC0xNTQsNyArMTU0LDcgQEAgZnVuY3Rpb24gY2xvc2VkKCkKICAgICAidXNlIHN0cmljdCI7CiAK
ICAgICBpZiAoIUBpc1dyaXRhYmxlU3RyZWFtKHRoaXMpKQotICAgICAgICByZXR1cm4gQFByb21p
c2UuQHJlamVjdChAbWFrZVR5cGVFcnJvcigiVGhlIFdyaXRhYmxlU3RyZWFtLmNsb3NlZCBnZXR0
ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgV3JpdGFibGVTdHJlYW0iKSk7Cisg
ICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KEBtYWtlR2V0dGVyVHlwZUVycm9yKCJXcml0
YWJsZVN0cmVhbSIsICJjbG9zZWQiKSk7CiAKICAgICByZXR1cm4gQGdldEJ5SWREaXJlY3RQcml2
YXRlKHRoaXMsICJjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSIpLkBwcm9taXNlOwogfQpAQCAtMTY1
LDcgKzE2NSw3IEBAIGZ1bmN0aW9uIHJlYWR5KCkKICAgICAidXNlIHN0cmljdCI7CiAKICAgICBp
ZiAoIUBpc1dyaXRhYmxlU3RyZWFtKHRoaXMpKQotICAgICAgICByZXR1cm4gQFByb21pc2UuQHJl
amVjdChAbWFrZVR5cGVFcnJvcigiVGhlIFdyaXRhYmxlU3RyZWFtLnJlYWR5IGdldHRlciBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBXcml0YWJsZVN0cmVhbSIpKTsKKyAgICAgICAg
cmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1ha2VHZXR0ZXJUeXBlRXJyb3IoIldyaXRhYmxlU3Ry
ZWFtIiwgInJlYWR5IikpOwogCiAgICAgcmV0dXJuIEBnZXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlz
LCAicmVhZHlQcm9taXNlQ2FwYWJpbGl0eSIpLkBwcm9taXNlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAppbmRleCAx
MzExYzlkYTA1YTljMDFjZDY5NTNmZmYyZmM0Nzk5ZGZlMDQ5NjkzLi43MDAyNDUzMDA1YmQwZDU3
Zjk4Y2Q0MmY0MGNhYzkwMDU0ZTQ3ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcApAQCAtMjcwLDEyICsyNzAsMTIg
QEAgU3RyaW5nIG1ha2VHZXR0ZXJUeXBlRXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIGludGVyZmFj
ZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnUKIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0dl
dHRlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dTY29wZSYgc2Nv
cGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUp
CiB7Ci0gICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgbWFrZUdldHRl
clR5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZSwgYXR0cmlidXRlTmFtZSkpOworICAgIHJl
dHVybiB0aHJvd1ZNR2V0dGVyVHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIG1ha2VHZXR0ZXJUeXBl
RXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGF0dHJpYnV0ZU5hbWUpKTsKIH0KIAogSlNDOjpF
bmNvZGVkSlNWYWx1ZSByZWplY3RQcm9taXNlV2l0aEdldHRlclR5cGVFcnJvcihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJp
YnV0ZU5hbWUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJy
b3Ioc3RhdGUsIG1ha2VHZXR0ZXJUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGF0dHJp
YnV0ZU5hbWUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJv
cihzdGF0ZSwgbWFrZUdldHRlclR5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZSwgYXR0cmli
dXRlTmFtZSksIFJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3JDYXVzZTo6TmF0aXZlR2V0dGVy
KTsKIH0KIAogYm9vbCB0aHJvd1NldHRlclR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUs
IEpTQzo6VGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0
IGNoYXIqIGF0dHJpYnV0ZU5hbWUpCkBAIC0zMDIsNyArMzAyLDcgQEAgSlNDOjpFbmNvZGVkSlNW
YWx1ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoRGVmZXJyZWRQcm9taXNlJiBwcm9t
aXNlLCBjb24KIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBl
RXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBj
b25zdCBjaGFyKiBtZXRob2ROYW1lKQogewotICAgIHJldHVybiBjcmVhdGVSZWplY3RlZFByb21p
c2VXaXRoVHlwZUVycm9yKHN0YXRlLCBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNl
TmFtZSwgbWV0aG9kTmFtZSkpOworICAgIHJldHVybiBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRo
VHlwZUVycm9yKHN0YXRlLCBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZSwg
bWV0aG9kTmFtZSksIFJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3JDYXVzZTo6SW52YWxpZFRo
aXMpOwogfQogCiB2b2lkIHRocm93RE9NU3ludGF4RXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBBU0NJSUxpdGVyYWwgbWVzc2FnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCBkMTQ0
MDkxMjU5NWQ1OGJlOWQ1YWQyYzc1NmM4NjYwZDUzMjEzNzEyLi43ODhlMmU2NzdmN2YyMGNkMzlk
MjE3MTJjZjg2NzQ2MGI1NmY1YjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC0xMDAsNyArMTAwLDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWFrZUdldHRlclR5cGVFcnJvckZvckJ1aWx0aW5zKEV4ZWNTdGF0
ZSogZXhlY1N0YXRlCiAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICBhdXRvIGF0
dHJpYnV0ZU5hbWUgPSBleGVjU3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLmdldFN0cmluZyhl
eGVjU3RhdGUpOwogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShjcmVhdGVUeXBlRXJyb3IoZXhlY1N0YXRlLCBtYWtlR2V0dGVyVHlwZUVy
cm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLnV0ZjgoKS5kYXRhKCksIGF0dHJpYnV0ZU5hbWUudXRm
OCgpLmRhdGEoKSkpKTsKKworICAgIGF1dG8gZXJyb3IgPSBzdGF0aWNfY2FzdDxFcnJvckluc3Rh
bmNlKj4oY3JlYXRlVHlwZUVycm9yKGV4ZWNTdGF0ZSwgbWFrZUdldHRlclR5cGVFcnJvck1lc3Nh
Z2UoaW50ZXJmYWNlTmFtZS51dGY4KCkuZGF0YSgpLCBhdHRyaWJ1dGVOYW1lLnV0ZjgoKS5kYXRh
KCkpKSk7CisgICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZXJyb3IpOwogfQogCiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJy
ZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQu
Y3BwCmluZGV4IDIwZjk3MzdiMWNiMDhmNjkxODQzOTVkNDFhMTc3NDhmOTgyNzhhZGEuLjUwYmFj
MjRkNTRjNjgwZjZiMGI2NzYxZDk5MTJhYzQ4NTgxZTVkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAKQEAgLTE5NywxNCAr
MTk3LDE2IEBAIFJlZjxEZWZlcnJlZFByb21pc2U+IGNyZWF0ZURlZmVycmVkUHJvbWlzZShKU0M6
OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NV2luZG93JiBkCiAgICAgcmV0dXJuIERlZmVycmVkUHJv
bWlzZTo6Y3JlYXRlKGRvbVdpbmRvdywgKmRlZmVycmVkKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCitKU0M6OkVuY29kZWRKU1ZhbHVlIGNy
ZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvckNh
dXNlIGNhdXNlKQogewogICAgIEFTU0VSVChzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwog
ICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAK
ICAgICBhdXRvIHByb21pc2VDb25zdHJ1Y3RvciA9IGdsb2JhbE9iamVjdC5wcm9taXNlQ29uc3Ry
dWN0b3IoKTsKICAgICBhdXRvIHJlamVjdEZ1bmN0aW9uID0gcHJvbWlzZUNvbnN0cnVjdG9yLT5n
ZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVj
dFByaXZhdGVOYW1lKCkpOwotICAgIGF1dG8gcmVqZWN0aW9uVmFsdWUgPSBjcmVhdGVUeXBlRXJy
b3IoJnN0YXRlLCBlcnJvck1lc3NhZ2UpOworICAgIGF1dG8qIHJlamVjdGlvblZhbHVlID0gc3Rh
dGljX2Nhc3Q8RXJyb3JJbnN0YW5jZSo+KGNyZWF0ZVR5cGVFcnJvcigmc3RhdGUsIGVycm9yTWVz
c2FnZSkpOworICAgIGlmIChjYXVzZSA9PSBSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yQ2F1
c2U6Ok5hdGl2ZUdldHRlcikKKyAgICAgICAgcmVqZWN0aW9uVmFsdWUtPnNldE5hdGl2ZUdldHRl
clR5cGVFcnJvcigpOwogCiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAgYXV0byBjYWxsVHlw
ZSA9IGdldENhbGxEYXRhKHN0YXRlLnZtKCksIHJlamVjdEZ1bmN0aW9uLCBjYWxsRGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJl
ZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaApp
bmRleCA0MzE4YzlmMzdkYzE2MGNlYmRkMGQ1MTdmYjRkMmU5MGQ0ZjA1NmExLi5iNGFhYjc4ZjQ3
YTY5MDAzMGZlNWRhYjViNzg3Njc4N2U1NjJiYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKQEAgLTI1Nyw3ICsyNTcsOSBAQCB2
b2lkIGZ1bGZpbGxQcm9taXNlV2l0aEpTT04oUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgY29uc3Qg
U3RyaW5nJik7CiB2b2lkIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYsIEFycmF5QnVmZmVyKik7CiB2b2lkIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5
QnVmZmVyKFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIGNvbnN0IHZvaWQqLCBzaXplX3QpOwogV0VC
Q09SRV9FWFBPUlQgdm9pZCByZWplY3RQcm9taXNlV2l0aEV4Y2VwdGlvbklmQW55KEpTQzo6RXhl
Y1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OkpTUHJvbWlzZURlZmVycmVkJik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3IoSlND
OjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKTsKKworZW51bSBjbGFzcyBSZWplY3RlZFByb21p
c2VXaXRoVHlwZUVycm9yQ2F1c2UgeyBOYXRpdmVHZXR0ZXIsIEludmFsaWRUaGlzIH07CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGNyZWF0ZVJlamVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3IoSlNDOjpF
eGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmLCBSZWplY3RlZFByb21pc2VXaXRoVHlwZUVycm9yQ2F1
c2UpOwogCiB1c2luZyBQcm9taXNlRnVuY3Rpb24gPSB2b2lkKEpTQzo6RXhlY1N0YXRlJiwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNTk5YTFhN2QyMTg5YmFkZmI4YTU2M2Fj
MDI0YzdmMmRiZTMzNjFjLi41MDYyZmRiN2JhMWFhYzRkMjc1Y2Q0NDZlYTQ1ZTM2ZDk1YjAxNmM2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDQtMTUgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZha2UgdmFsdWUgZGVzY3Jp
cHRvcnMgZm9yIHByb21pc2VzIGFkZCBhIGNhdGNoIGhhbmRsZXIsIHByZXZlbnRpbmcgInJlamVj
dGlvbmhhbmRsZWQiIGV2ZW50cyBmcm9tIGJlaW5nIGZpcmVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY0ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ5MTE0NzI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL3Byb21pc2UtbmF0aXZlLWdldHRlci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcnVudGltZS9wcm9taXNlLW5hdGl2ZS1nZXR0ZXIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxOS0wNC0xNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI0MDY0NCk6IExheW91dCBUZXN0
IGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1JQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFi
bGVkLmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcnVudGltZS9wcm9taXNlLW5hdGl2ZS1nZXR0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcHJvbWlzZS1uYXRpdmUtZ2V0dGVyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40Y2ZlMmRkYzU0N2VmMDNhYTEyYmMxNzFjODdjM2I1NGNiMDVmZjM3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcHJvbWlzZS1u
YXRpdmUtZ2V0dGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA4OiB1bmhhbmRsZWRyZWplY3Rpb24gLSAidGVzdCIKK0NPTlNPTEUgTUVTU0FHRTog
VW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiB0ZXN0CitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjA6IGNhdWdodCAtICJ0ZXN0IgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiByZWplY3Rpb25o
YW5kbGVkIC0gInRlc3QiCitUZXN0cyB0aGF0IHRoZSBpbmplY3RlZCBzY3JpcHQgb25seSBgLnRo
ZW4oKWBzIHByb21pc2VzIGlmIHRoZXkgYXJlIHJldHVybmVkIGJ5IG5hdGl2ZSBnZXR0ZXJzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcHJvbWlzZS1uYXRpdmUt
Z2V0dGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9wcm9taXNlLW5hdGl2
ZS1nZXR0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTM5YmMwZjcwZTQ4OTNiMjZiNzQ0NzBkNjFmZjM5
NWJkNTczYmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRp
bWUvcHJvbWlzZS1uYXRpdmUtZ2V0dGVyLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBjcmVhdGVVbmhhbmRsZWRQcm9taXNlKCkgeworICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJ1bmhhbmRsZWRyZWplY3Rpb24iLCAoZXZlbnQpID0+IHsKKyAgICAgICAgY29uc29s
ZS5sb2coInVuaGFuZGxlZHJlamVjdGlvbiAtICIgKyBKU09OLnN0cmluZ2lmeShldmVudC5yZWFz
b24pKTsKKyAgICB9KTsKKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZWplY3Rpb25o
YW5kbGVkIiwgKGV2ZW50KSA9PiB7CisgICAgICAgIGNvbnNvbGUubG9nKCJyZWplY3Rpb25oYW5k
bGVkIC0gIiArIEpTT04uc3RyaW5naWZ5KGV2ZW50LnJlYXNvbikpOworICAgICAgICBUZXN0UGFn
ZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgicmVqZWN0aW9uaGFuZGxlZCIpOworICAgIH0pOwor
CisgICAgbGV0IHByb21pc2UgPSBQcm9taXNlLnJlamVjdCgidGVzdCIpOworCisgICAgc2V0VGlt
ZW91dCgoKSA9PiB7CisgICAgICAgIHByb21pc2UuY2F0Y2goKHZhbHVlKSA9PiB7CisgICAgICAg
ICAgICBjb25zb2xlLmxvZygiY2F1Z2h0IC0gIiArIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7Cisg
ICAgICAgIH0pOworICAgIH0sIDUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBQcm90
b2NvbFRlc3QuYXdhaXRFdmVudCgicmVqZWN0aW9uaGFuZGxlZCIpCisgICAgLnRoZW4oKCkgPT4g
eworICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfSk7CisKKyAgICBQ
cm90b2NvbFRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVVuaGFuZGxlZFByb21pc2UoKWApCisg
ICAgLmNhdGNoKChlKSA9PiB7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKGUpOworICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAg
PHA+VGVzdHMgdGhhdCB0aGUgaW5qZWN0ZWQgc2NyaXB0IG9ubHkgYC50aGVuKClgcyBwcm9taXNl
cyBpZiB0aGV5IGFyZSByZXR1cm5lZCBieSBuYXRpdmUgZ2V0dGVycy48L3A+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>